Support for older distros

Geert Janssens geert.gnucash at kobaltwit.be
Thu Mar 23 11:56:47 EDT 2017


On donderdag 23 maart 2017 15:52:52 CET John Ralls wrote:
> > On Mar 23, 2017, at 3:49 AM, Geert Janssens <geert.gnucash at kobaltwit.be>
> > wrote:> 
> > On woensdag 22 maart 2017 22:05:25 CET Geert Janssens wrote:
> >> commit 9f3ad5510427eb69c857814de15e1c1be0727d2d
> >> Author: Jesse Olmer <jesse at wickedgoodtimes.com>
> >> Date:   Sat Feb 13 21:59:05 2016 -0800
> >> 
> >>    Bug 739571 - Matching imported transactions doesn't indicate
> >>    previously
> >> 
> >> matched entries
> >> 
> >>    Track pending matches from the current import and display this
> >> 
> >> information in the match picker.
> > 
> > This commit (which I pushed myself) breaks travis because its unit test
> > uses g_assert_true and friends.
> > 
> > A quick lookup shows the maint branch of gnucash is still running travis
> > tests on Ubuntu 12.04 (Precise), which ships with glib-2.0 2.32 while
> > g_assert_true was introduced in glib-2.0 2.38.
> > 
> > I'm in two minds about how to proceed.
> > - I could revert the patch and rework it for master only. This will delay
> > its formal release with a few months.
> > - I could backport my patches that set the minimum required glib-2.0
> > version to 2.40 and adjust the travis environment to trusty (14.04) like
> > master.
> > 
> > The fundamental question here is do we still want to support Ubuntu 12.04
> > ? It will be EOL by the end of next month so I don't know whether it's
> > still worth spending effort for ?
> > 
> > What you others think ?
> 
> I suggest the 3rd alternative: Use HAVE_GLIB_2_38 to disable the offending
> tests on systems that don't support it. Supporting older distros doesn't
> mean supporting them as development platforms where all tests must work and
> pass.
> 
That's a good option. we already use the same macro for other exceptions. Will 
implement it that way.

> For longer term, maint's configure.ac says that it requires 2.28. Has anyone
> actually tried to build with 2.28 recently? We could set up Travis with
> various versions of glib to ensure that we don't accidentally break our
> minimum requirement claims.

I believe the 2.28 baseline stems from RHEL/Cents 6. It's the most recent 
version there. I have no idea whether current stable builds on that platform 
and I'm not sure it ever did. The epel repos only contain gnucash 2.4 so it 
may well be we have dropped support already in the 2.6 development cycle (I 
don't remember unfortunately).

RHEL/Centos 7 ship glib2 2.46.

openSuse's oldest still maintained release appears to be Leap 42.1 according 
to Frank's link. This distro ships glib2 2.44.

Travis/Ubuntu Trusty (14.04LTS) ship glib2 2.40
Travis/Ubuntu Precise (12.04LTS) ship glib2 2.32

I mentioned two other distros in my commit message:
Debian stable ships glib2 2.46 in backports
Mingw in our Windows environment has glib2 2.42

So the only two really old ones are RHEL/Centos 6 and Ubuntu Precise (12.04).

Again I don't know if we ever supported the former with gnucash 2.6. The older 
will go EOL next month.

If I find some time I'll see if I can build gnucash 2.6 on Centos 6. I believe 
I still have a vm somewhere with that distro.

Can you set up travis with custom glib2 versions ? That looks tricky.

> 
> This is also a good time to review our minimum requirements for master, as
> we've about 4 months until the first beta release and we're switching to
> WebKit2 so that 2.8 can be in Fedora and that drags in Gtk3. We've also
> implemented a lot of code that requires at least gcc-4.8 and is happier
> with gcc-5.0. We need to figure out what versions of the major distros
> support that, derive from that the minimum version of glib and gtk and
> clean up the code accordingly, fixing any deprecations as we go.

Well for glib2 I just did the exercise. All of the above mentioned distros 
except for RHEL/Centos 6 and Ubuntu Precise are supported if we set the 
baseline to 2.40. That makes Ubuntu Trusty (and by extension travis as 
configured for master) the oldest supported release.

I am only checking distros that are slow in updating here by the way. I assume 
distros like Fedora, arch and gentoo to be more recent than those (which has 
always been the case so far).

As for gcc, again RHEL/Centos 6 and Ubuntu Precise are definitely falling on 
the wayside.The former ships with  4.4.7, the latter with 4.6.3. I'll just 
stop mentioning these two distros from now on.

RHEL/Centos 7: 4.8.5 (gcc 6 available via software collections)
Mingw: 4.8 (and there are test builds of more recent versions, but not 
verified with gnucash yet)
Debian stable 4.9.2
Ubuntu trusty 4.8.4
openSuse Leap 4.8 (default), 5.3.1 (available in the repos)

Gtk3 support. I think at least 3.10 should be the baseline because that 
version introduces css styling as a replacement for GtkStyle. Maintaining both 
variants is not desirable. Luckily all platforms we care about for gnucash 2.8 
match this baseline:
RHEL/Centos 7: 3.14.13
Mingw: ?? (Mingw64 has 3.22 - which is recommended by gtk itself as platform 
for windows)
Debian stable 3.14.5
Ubuntu trusty 3.10.8
openSuse Leap 3.16.7

Webkit2gtk
RHEL/Centos 7: 2.4.9
Mingw: ?? (Mingw64 has 2.4.9)
Debian stable 2.4.9
Ubuntu trusty 2.4.10
openSuse Leap 2.10.7

boost
RHEL/Centos 7: 1.53
Mingw: 1.55 (self built; Mingw64 has 1.63)
Debian stable 1.55
Ubuntu trusty 1.54 (1.55 available)
openSuse Leap 1.58

Is there anything else we changed requirements for ?

Geert


More information about the gnucash-devel mailing list