Page MenuHomeFreeBSD

finance/gnucash flavoring
ClosedPublic

Authored by madpilot on Dec 13 2017, 3:49 PM.

Details

Summary

The gnucash port at present has a single option to choose on which guile version to depend, which defaults to guile1.

Changing the option's default has proven problematic, due to guile1 and guile2 conflicting with each other.

At the same time guile1 is old and unsupported upstream, and the gnucash developers have stated they intend to drop guile1 support in the next major release.

Converting those options to flavors allows us to distribute both versions so also binary package users have an option. This also allows to change the default to guile2 since users can change flavor, if desired.

I've also added an UPDATING note to let the users know about this.

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

madpilot created this revision.Dec 13 2017, 3:49 PM
mat added a comment.Dec 14 2017, 12:43 PM

Is there any interest in having both versions ? Do they do things differently ? Wouldn't simply changing the default to use Guile 2 be simpler ?

In D13478#281891, @mat wrote:

Is there any interest in having both versions ? Do they do things differently ? Wouldn't simply changing the default to use Guile 2 be simpler ?

The resulting packages are equivalent regarding functionality.

The port shortly switched to strictly using guile2 between r369578 and r370067. At the time I got many complaints about pkg forcing users to disinstall many other packages depending on guile1 to satisfy the guile2 requirement.

I thought I could take advantage of flavors to have both packages available, so users insisting on guile1 had an easy and fast solution without need for recompilation.

At the same time I see the list of ports depending on guile1 has considerably shrunk lately, so it is possible the backlash would be quite smaller now.

I'd anyway would like to have the flavor available to avoid any backlash.

mat added a comment.Dec 14 2017, 4:32 PM
In D13478#281891, @mat wrote:

Is there any interest in having both versions ? Do they do things differently ? Wouldn't simply changing the default to use Guile 2 be simpler ?

The resulting packages are equivalent regarding functionality.
The port shortly switched to strictly using guile2 between r369578 and r370067. At the time I got many complaints about pkg forcing users to disinstall many other packages depending on guile1 to satisfy the guile2 requirement.
I thought I could take advantage of flavors to have both packages available, so users insisting on guile1 had an easy and fast solution without need for recompilation.
At the same time I see the list of ports depending on guile1 has considerably shrunk lately, so it is possible the backlash would be quite smaller now.
I'd anyway would like to have the flavor available to avoid any backlash.

Mmmm, ok, I get it. (It looks stupid that lang/guile and lang/guile2 are conflicting though.)

As a side note, could you use devel/arcanist, or at least generate a diff with full context like it does, with svn diff -x -U9999 or git diff -U9999.

finance/gnucash/Makefile
102 ↗(On Diff #36546)

This could be .else.

Also, as the default flavor is implicit and may not be set, if you want this to work, you'll have to write something like:

.elif ${FLAVOR:Uguile2} == guile2

or

.elif ${FLAVOR:U${FLAVORS:[1]}} == guile2
madpilot edited the summary of this revision. (Show Details)Dec 14 2017, 7:58 PM
madpilot updated this revision to Diff 36611.

Fixed the elif stanza, simple .elsse seems more correct in this case.

madpilot planned changes to this revision.Dec 14 2017, 8:00 PM

Sorry, my first try at using arcanist did not work out as expected, and unrelated changes slipped in.

I'm fixing this shortly.

madpilot updated this revision to Diff 36612.Dec 14 2017, 8:04 PM

Fixed patch to only include related changes.

madpilot marked an inline comment as done.Dec 14 2017, 8:04 PM
mat accepted this revision as: portmgr.Dec 15 2017, 3:05 PM

I was going to say that the flavors block should happen earlier, but in fact, it is all the options block that should happen later. See Chapter 15. Order of Variables in Port Makefiles. But this can wait for another time.

This revision was not accepted when it landed; it landed in state Needs Review.Dec 15 2017, 5:20 PM
This revision was automatically updated to reflect the committed changes.