Debian 8 compatibility falling apart after one month of Debian 9

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Debian 8 compatibility falling apart after one month of Debian 9

Inkscape - Dev mailing list
Dear Inkscape Team,

I wanted to start a general discussion on compatibility. I um using
Debian 8. Ok maybe I shouldn't since Debian 9 is out since a month (June
17th, 2017), but I still like it. My problem is that in the last week
quite a few changes came in, which are not compatible with Debian 8:

- Requirement for CMake 3.2+ (Debian 8 has 3.0.2)
  specific syntax of add_custom_target

- Requirement for GTK 3.16 (Debian 8 has 3,14)
  use of gtk_label_set_xalign

- Requirement for some rather late libg++
  using isinf without :: or std:: qualifier
  See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48891
  Not sure which version introduced the fix, but Debian 8 doesn't have it.

The first two are just build issues, but the GTK issue will result in
binary incompatibilities.

I just did an update to master after a week and now sitting here since
two hours to get it build again (there were some additional dependencies
added last week which are ok in Debian 8 but still required installing
the packages). The build stopped now at 59%, not sure how much is still
ahead.

Is this wanted that compatibility with the previous version of Debian
breaks after one month?

On what kind of system do the CI tests run? Ubuntu 16.04?

Best regards,

Michael

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Inkscape - Dev mailing list
Ok, I am giving up now. The next issue is the change of
"create_popup_menu" in "filter-effects-dialog.cpp". There is no easy way
to patch this for GTK 3.14, because there Gtk::Menu::Menu(const
Gtk::Menu&) is private. Since there are no GTK backports in Debian 8, I
have to update to Debian 9 to build inkscape. Not nice :-(

Best regards,

Michael


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Josh Andler
http://wiki.inkscape.org/wiki/index.php/Tracking_Dependencies indicates that 3.8 is what should be required for GTK+... This is the official place this is tracked, so if someone introduced features that are incompatible it's their problem to fix. This is no different than us being conservative about C++ features getting introduced into the codebase years after they're available in compilers... given previous practices and reasoning, this wouldn't pass the enterprise litmus test as they wouldn't update to a newer distro version a month after release. There are cases where we did decide to push past that standard, but they've been very few and far between.

Cheers,
Josh

On Sat, Jul 22, 2017 at 1:49 AM, Michael Soegtrop via Inkscape-devel <[hidden email]> wrote:
Ok, I am giving up now. The next issue is the change of
"create_popup_menu" in "filter-effects-dialog.cpp". There is no easy way
to patch this for GTK 3.14, because there Gtk::Menu::Menu(const
Gtk::Menu&) is private. Since there are no GTK backports in Debian 8, I
have to update to Debian 9 to build inkscape. Not nice :-(

Best regards,

Michael


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Bryce Harrington-3
On Sat, Jul 22, 2017 at 09:15:54AM -0700, Josh Andler wrote:
> http://wiki.inkscape.org/wiki/index.php/Tracking_Dependencies indicates
> that 3.8 is what should be required for GTK+... This is the official place
> this is tracked, so if someone introduced features that are incompatible
> it's their problem to fix. This is no different than us being conservative
> about C++ features getting introduced into the codebase years after they're
> available in compilers... given previous practices and reasoning, this
> wouldn't pass the enterprise litmus test as they wouldn't update to a newer
> distro version a month after release. There are cases where we did decide
> to push past that standard, but they've been very few and far between.

+1 agreed on all points.

Would people like to establish a process for periodically considering
proposals for incrementing dependency versions?  I'm thinking like a
monthly project meeting to discuss development status and direction.

Bryce

> On Sat, Jul 22, 2017 at 1:49 AM, Michael Soegtrop via Inkscape-devel <
> [hidden email]> wrote:
>
> > Ok, I am giving up now. The next issue is the change of
> > "create_popup_menu" in "filter-effects-dialog.cpp". There is no easy way
> > to patch this for GTK 3.14, because there Gtk::Menu::Menu(const
> > Gtk::Menu&) is private. Since there are no GTK backports in Debian 8, I
> > have to update to Debian 9 to build inkscape. Not nice :-(
> >
> > Best regards,
> >
> > Michael
> >
> >
> > ------------------------------------------------------------
> > ------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > Inkscape-devel mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/inkscape-devel
> >

> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot

> _______________________________________________
> Inkscape-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/inkscape-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Alex Valavanis-3
Hi Guys,

This is a result of my overzealous deprecation fixes... sorry about that; I'll go back and try to insert backward-compatibility patches.

I agree that we should try to support older LTS releases, but there can be fairly major headaches in simultaneously supporting bleeding-edge distros (Arch etc) and Debian oldstable.  For example, until last month, we needed to cope with 4 years of API change history (Wheezy released in May 2013).

I think it would be useful to agree a general policy for this kind of thing... i.e., how long after a new LTS Ubuntu/Debian release will we aim to allow build compatibility?  The "safest" option is to guarantee that all Debian/Ubuntu releases are supported until their EOL.  However, that means essentially rejecting all use of new library features for ~5 years, which I can imagine will limit innovation and put off some developers from contributing.

AV



On 22 July 2017 at 19:15, Bryce Harrington <[hidden email]> wrote:
On Sat, Jul 22, 2017 at 09:15:54AM -0700, Josh Andler wrote:
> http://wiki.inkscape.org/wiki/index.php/Tracking_Dependencies indicates
> that 3.8 is what should be required for GTK+... This is the official place
> this is tracked, so if someone introduced features that are incompatible
> it's their problem to fix. This is no different than us being conservative
> about C++ features getting introduced into the codebase years after they're
> available in compilers... given previous practices and reasoning, this
> wouldn't pass the enterprise litmus test as they wouldn't update to a newer
> distro version a month after release. There are cases where we did decide
> to push past that standard, but they've been very few and far between.

+1 agreed on all points.

Would people like to establish a process for periodically considering
proposals for incrementing dependency versions?  I'm thinking like a
monthly project meeting to discuss development status and direction.

Bryce

> On Sat, Jul 22, 2017 at 1:49 AM, Michael Soegtrop via Inkscape-devel <
> [hidden email]> wrote:
>
> > Ok, I am giving up now. The next issue is the change of
> > "create_popup_menu" in "filter-effects-dialog.cpp". There is no easy way
> > to patch this for GTK 3.14, because there Gtk::Menu::Menu(const
> > Gtk::Menu&) is private. Since there are no GTK backports in Debian 8, I
> > have to update to Debian 9 to build inkscape. Not nice :-(
> >
> > Best regards,
> >
> > Michael
> >
> >
> > ------------------------------------------------------------
> > ------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > Inkscape-devel mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/inkscape-devel
> >

> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot

> _______________________________________________
> Inkscape-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/inkscape-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Eduard Braun
In reply to this post by Bryce Harrington-3
Am 22.07.2017 um 20:15 schrieb Bryce Harrington:
On Sat, Jul 22, 2017 at 09:15:54AM -0700, Josh Andler wrote:
http://wiki.inkscape.org/wiki/index.php/Tracking_Dependencies indicates
that 3.8 is what should be required for GTK+... This is the official place
this is tracked, so if someone introduced features that are incompatible
it's their problem to fix.
This is also the version indicated in the cmake scripts (which should probably be kept in sync with the wiki page), see
https://gitlab.com/inkscape/inkscape/blob/5198e38c82379f7b87f5cd964d565821a5786a49/CMakeScripts/DefineDependsandFlags.cmake#L250

If this version matches the actual requirement unexpected build failures like Michael was experiencing should be impossible as cmake would already warn at the configure stage.

Would people like to establish a process for periodically considering
proposals for incrementing dependency versions?  I'm thinking like a
monthly project meeting to discuss development status and direction.
I guess it would be more efficient to
  • decide which distributions we want to support as this will ultimately limit the dependency versions we *can* support (I doubt that would need to be re-evaluated monthly).
  • implement proper checks (likely CI builds) that ensure we do not accidentally introduce dependencies not. The ppa builds run on older Ubuntu distributions were always helpful in that regard, so I hope we can get them (or something comparable using GitLab CI) back up eventually.

Regards,
Eduard



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Martin Owens-2
In reply to this post by Bryce Harrington-3
On Sat, 2017-07-22 at 11:15 -0700, Bryce Harrington wrote:
> +1 agreed on all points.
>
> Would people like to establish a process for periodically considering
> proposals for incrementing dependency versions?  I'm thinking like a
> monthly project meeting to discuss development status and direction.

I would. I had to use some C++11 which is newer than what we have the
wiki. I haven't done as much C++ as I would have liked because of the
restrictions on C++11 and with that being now available, it's made the
process of development easier for me.

Hopefully we can set some reasonable limits and keep the page up to
date. But to make this job easier, we should try and see if we can set
up some automatic support scripts that pull in a summary of the
different distros and their versions of key dependencies.

Does anyone know anything like this?

Best Regards, Martin Owens

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Inkscape - Dev mailing list
In reply to this post by Inkscape - Dev mailing list
Dear Martin,

> Hopefully we can set some reasonable limits and keep the page up to
> date. But to make this job easier, we should try and see if we can set
> up some automatic support scripts that pull in a summary of the
> different distros and their versions of key dependencies.

For Debian there are online lists with all packages and versions, e.g.

https://packages.debian.org/stable/allpackages?format=txt.gz
https://packages.debian.org/oldstable/allpackages?format=txt.gz
https://packages.debian.org/testing/allpackages?format=txt.gz
https://packages.debian.org/jessie/allpackages?format=txt.gz

(goto https://packages.debian.org/stable/, select a version at the top
and click at the end on "(compact compressed textlist)")


For Ubuntu the lists are e.g.

https://packages.ubuntu.com/de/xenial/allpackages?format=txt.gz
https://packages.ubuntu.com/de/yakkety/allpackages?format=txt.gz
https://packages.ubuntu.com/de/zesty/allpackages?format=txt.gz

(goto https://packages.ubuntu.com/en/, click on a Ubuntu version and at
the end on "(compact compressed textlist)")


Mint has it as HTML:

http://packages.linuxmint.com/list.php?release=Sonya
Should be easy to convert with XSLT.


I guess there are similar lists for the other major distros.

It should take only a few lines of Python to fetch and check these.

What are the relevant distros?

Best regards,

Michael

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Mattia Rizzolo
On Sun, Jul 23, 2017 at 11:43:10PM +0200, Michael Soegtrop via Inkscape-devel wrote:
> For Debian there are online lists with all packages and versions, e.g.
> https://packages.debian.org/stable/allpackages?format=txt.gz
> For Ubuntu the lists are e.g.
> https://packages.ubuntu.com/de/xenial/allpackages?format=txt.gz
> Mint has it as HTML:
> http://packages.linuxmint.com/list.php?release=Sonya
> Should be easy to convert with XSLT.
>
> It should take only a few lines of Python to fetch and check these.

All of those are Debian derivates, and they share the same packaging and
repository format.
So it's (imho) way easier to instead get the Sources file (like
https://deb.debian.org/debian/dists/stretch/main/source/Sources.xz for
debian, very similar URI for the others) and use any rfc 822 parser to
read it; there are also debian-specific things like a python-debian
python module and a grep-dctrl thing for bash (both usuable outside of a
debian environment, here "debian-specific" means they are done to parse
debian (and derivative) stuff).

--
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
more about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Martin Owens-2
In reply to this post by Inkscape - Dev mailing list
Thanks Michael,


> https://packages.debian.org/stable/allpackages?format=txt.gz
> https://packages.debian.org/oldstable/allpackages?format=txt.gz
> https://packages.debian.org/testing/allpackages?format=txt.gz
> https://packages.debian.org/jessie/allpackages?format=txt.gz
>
> (goto https://packages.debian.org/stable/, select a version at the
> top
> and click at the end on "(compact compressed textlist)")


Looks like you've got a sizable amount of data here.

> I guess there are similar lists for the other major distros.
>
> It should take only a few lines of Python to fetch and check these.
>
> What are the relevant distros?

Ubuntu (this covers A LOT of distros)
Mint
Fedora
Debian
openSUSE
Arch / Manjaro (although arch is fairly bleeding edge)

That most of the targets. We'd first have to get a sensible read on
supported versions vs bleeding edge and their relevant dates.

Only then could we calculate the packages we need.

Best Regards, Martin Owens

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

mathog
In reply to this post by Inkscape - Dev mailing list
On 22-Jul-2017 01:14, Michael Soegtrop via Inkscape-devel wrote:
> My problem is that in the last week
> quite a few changes came in, which are not compatible with Debian 8:
>
> - Requirement for CMake 3.2+ (Debian 8 has 3.0.2)
>   specific syntax of add_custom_target

Developers who do not work on production systems frequently do not give
much thought to backwards compatibility.  These developers often run the
absolute latest releases of Fedora or Ubuntu, and so most of the
packages they see are on the bleeding edge of the release set.  Machines
used in production environments in business and academia usually run
much more conservative and stable releases, and that translates to much
older, versions of software.  As an example, Centos 6 (basically the
same as RHEL 6 but free), a fairly common platform in scientific
circles, was released in 2011, full updates just ended in May, and
security updates will continue until November 2020.   Version 6.9, the
last update in that version, currently has cmake 2.8.12 and it will
never have an official upgrade beyond that.  2.8.12 was released Oct
2013, so is not quite five years old, but close. Centos 7.3 also has
cmake 2.8.12.  Cmake 3.2.1 (was there a 3.2.0?) was released Mar 2015,
which in my view is much too recent to require.

As a rule of thumb, if there is a requirement for a library version,
language version, or tool which is younger than 5 years old it will
almost certainly not be satisfied in these environments with default
packages.  It _may_ be possible to find alternative packages, but a
simple download, build, and run will not work, and hours to days
scrounging up the newer requirements will need to be expended.  Now I
can already hear some developers screaming about using archaic tools,
but that's the difference between having to work in production
environments and messing about with one's own computers, where that
constraint does not exist.  For serious software if the oldest green
check for any of the OS's here:

    https://linuxlifecycle.com/

does not have the version of the package you want to use, then that
package is too recent to employ in a project.  That's how I feel,
anyway.
For Inkscape I would add in the same constraint for Mingw and whatever
environment people are using to build on OS X.

Whatever new cmake feature that 3.2 provides can certainly be worked
around using older versions.  That is almost always the case with the
latest and greatest of every package.  The primary, and quite rare,
exception being where some showstopper of a security bug exists and the
only way around it is to use a later release.

Regards,

David Mathog
[hidden email]
Manager, Sequence Analysis Facility, Biology Division, Caltech

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Debian 8 compatibility falling apart after one month of Debian 9

Alex Valavanis-3
Sure... I appreciate that business/academic users will want to run stable LTS/enterprise versions of distros.  However, they also usually either stick with old versions of applications or spend large sums of money on upstream/distro maintenance contracts for back-porting business-critical software, whereas Inkscape has no paid developers.  As such, we rely on voluntary developers working at home on their own PCs to maintain compatibility with old distros, so unfortunately it's quite a difficult task!

Speaking personally, I try my best to avoid breaking compatibility but it's very hard without good CI.

Perhaps, then, part of the solution is to offer paid maintenance contracts?  I can think of a couple of the other devs who would be willing to support users in this way.

AV

On 24 July 2017 at 17:57, mathog <[hidden email]> wrote:
On 22-Jul-2017 01:14, Michael Soegtrop via Inkscape-devel wrote:
My problem is that in the last week
quite a few changes came in, which are not compatible with Debian 8:

- Requirement for CMake 3.2+ (Debian 8 has 3.0.2)
  specific syntax of add_custom_target

Developers who do not work on production systems frequently do not give much thought to backwards compatibility.  These developers often run the absolute latest releases of Fedora or Ubuntu, and so most of the packages they see are on the bleeding edge of the release set.  Machines used in production environments in business and academia usually run much more conservative and stable releases, and that translates to much older, versions of software.  As an example, Centos 6 (basically the same as RHEL 6 but free), a fairly common platform in scientific circles, was released in 2011, full updates just ended in May, and security updates will continue until November 2020.   Version 6.9, the last update in that version, currently has cmake 2.8.12 and it will never have an official upgrade beyond that.  2.8.12 was released Oct 2013, so is not quite five years old, but close. Centos 7.3 also has cmake 2.8.12.  Cmake 3.2.1 (was there a 3.2.0?) was released Mar 2015, which in my view is much too recent to require.

As a rule of thumb, if there is a requirement for a library version, language version, or tool which is younger than 5 years old it will almost certainly not be satisfied in these environments with default packages.  It _may_ be possible to find alternative packages, but a simple download, build, and run will not work, and hours to days scrounging up the newer requirements will need to be expended.  Now I can already hear some developers screaming about using archaic tools, but that's the difference between having to work in production environments and messing about with one's own computers, where that constraint does not exist.  For serious software if the oldest green check for any of the OS's here:

   https://linuxlifecycle.com/

does not have the version of the package you want to use, then that package is too recent to employ in a project.  That's how I feel, anyway.
For Inkscape I would add in the same constraint for Mingw and whatever environment people are using to build on OS X.

Whatever new cmake feature that 3.2 provides can certainly be worked around using older versions.  That is almost always the case with the latest and greatest of every package.  The primary, and quite rare, exception being where some showstopper of a security bug exists and the only way around it is to use a later release.

Regards,

David Mathog
[hidden email]
Manager, Sequence Analysis Facility, Biology Division, Caltech


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Loading...