Re: Port's Makefile with variable version?
- In reply to: Milan Obuch : "Port's Makefile with variable version?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 30 Jul 2021 15:22:35 UTC
On 2021-07-30 05:44, Milan Obuch wrote: > Hi, > > is there any possibility for a port's Makefile to define variable > version? I did some research and the answer seems to be 'no' currently, > I'd like to ask, however. > > My port of interest is mail/claws-mail. It was recently upgraded to > version 3.18.0, uses GTK2 framework and upstream created first version > using GTK3, numbered as 4.0.0. I tried and verify it builds with almost > no changes to the port itself... > > First change - Makefile: > > --- Makefile.gtk2 2021-07-15 07:05:05.355402000 +0200 > +++ Makefile.gtk3 2021-07-15 07:09:42.161819000 +0200 > @@ -26,5 +26,5 @@ > USE_XORG= ice sm > -USE_GNOME= cairo gtk20 librsvg2 > +USE_GNOME= cairo gtk30 librsvg2 > SHEBANG_FILES= tools/*.pl tools/*.py tools/tb2claws-mail > INSTALLS_ICONS= yes > > Second change - Makefile.claws: > > --- Makefile.claws.gtk2 2021-07-15 07:06:03.491680000 +0200 > +++ Makefile.claws.gtk3 2021-07-15 07:09:23.416226000 +0200 > @@ -1,4 +1,4 @@ > -PORTVERSION= 3.18.0 > +PORTVERSION= 4.0.0 > CATEGORIES?= mail > MASTER_SITES= > http://www.claws-mail.org/download.php?file=releases/ > > Third change - distinfo: > > --- distinfo.gtk2 2021-07-15 07:46:52.734820000 +0200 > +++ distinfo.gtk3 2021-07-15 07:47:22.478838000 +0200 > @@ -1,4 +1,3 @@ > -TIMESTAMP = 1626114302 > -SHA256 (claws-mail-3.18.0.tar.xz) = > cb5819e66b4bb3bbd44eb79c58f516a932389367a7900554321c24b509ece6bb > -SHA512 (claws-mail-3.18.0.tar.xz) = > 3f73e11fc75234c44c0faf266a196c7f1c80b837fb920fc4a3979ede81f37efd180c006ab6436ae9c2dffde2d6c3bf6340a90d93e1e3fa8821fb09693d030811 > -SIZE (claws-mail-3.18.0.tar.xz) = 6517632 > +TIMESTAMP = 1626328037 > +SHA256 (claws-mail-4.0.0.tar.xz) = > 4af2bd26a5d91eacb2a9c09f67a6a46c2222b40817c1f525dc050bdc7b0ee475 > +SIZE (claws-mail-4.0.0.tar.xz) = 6390300 > > Last change - pkg-plist (works for me, however, no guaranty for > completness/correctness): > > --- pkg-plist.gtk2 2021-07-15 07:05:30.162500000 +0200 > +++ pkg-plist.gtk3 2021-07-15 08:41:25.194732000 +0200 > @@ -105,7 +105,6 @@ > include/claws-mail/gtk/gtkaspell.h > include/claws-mail/gtk/gtkcmclist.h > include/claws-mail/gtk/gtkcmctree.h > -include/claws-mail/gtk/gtkcmoptionmenu.h > include/claws-mail/gtk/gtksctree.h > include/claws-mail/gtk/gtkshruler.h > include/claws-mail/gtk/gtkunit.h > @@ -293,7 +292,6 @@ > %%NLS%%share/locale/nl/LC_MESSAGES/claws-mail.mo > %%NLS%%share/locale/pl/LC_MESSAGES/claws-mail.mo > %%NLS%%share/locale/pt_BR/LC_MESSAGES/claws-mail.mo > -%%NLS%%share/locale/pt_PT/LC_MESSAGES/claws-mail.mo > %%NLS%%share/locale/ro/LC_MESSAGES/claws-mail.mo > %%NLS%%share/locale/ru/LC_MESSAGES/claws-mail.mo > %%NLS%%share/locale/sk/LC_MESSAGES/claws-mail.mo > > While first idea, create mail/claws-mail-gtk3 port, seems natural, > there is one problem. In ports tree, we have 26 or so plugin ports > (various claws-mail plugins have additional dependencies, that's the > main reason they were done this way, I think). So there is need to > create 26 basically identical plugin ports for this approach, difference > being just the master port reference. > > With all the above changes applied to normal claws-mail port, all > plugin ports builds and works. Plugin ports get their version from > master port and everything just works, both Claws Mail itself and all > plugins as well. Important thing is, plugin ports require no change in > their Makefile, thus I think this way has its advantage. > > I am looking for some way to integrate both GTK2 and GTK3 versions into > one port, using some OPTION to choose desired version. One problem is > GTK2 and GTK3 version actually conflict with the other one, they could > not be installed concurrently, at least with my current knowledge > level. Maybe this port could be FLAVORed? I have no experiences in this > area. > > Anybody out there with any idea on this? Currently, I have *.gtk2 and > *.gtk3 versions for files mentioned above and copy them over when I'd > like to switch with simple script, but this is not ideal, and I like to > offer simple way to test new version for anybody interested to test... > In the long run, in future, GTK2 version will be obsolete and not > developed anymore. When this time comes, mail/claws-mail port version > would be 4.x.y. For the time being, GTK2 version is still the 'master' > one. I think what you're looking for, is to isolate GTK2 v GTK3 via OPTION(s)/ FLAVOR. At least this is the direction I am planning to take with it. IOW OPTIONS_DEFINE= COMPFACE DEBUG DOCS ENCHANT GTK2 GTK3 IPV6 LDAP \ NLS STARTUP THEMES OPTIONS_DEFAULT= ... BUT GTK2 && GTK3 will need to be either within a conditional. So that only ONE will be acted upon. Or it can be chosen as a SUBoption, where the user is only permitted to choose one of the 2. As to the plugins; I don't see any exception to any of them being able to use either of GTK(2|3). So that needn't be a consideration. In the event that that should prove untrue. It'd be easy enough to isolate and cure on a plugin-by-plugin basis. --Chris > > Regards, > Milan