Hi again,
I've just found out that Inkscape no longer compiles on Debian Squeeze (Crunch Bang Linux variant, with back-ports), Inkscape trunk revision 10990. It fails on the first file with the following message:
----- CXX arc-context.o In file included from /usr/include/glibmm-2.4/glibmm/balancedtree.h:29, from /usr/include/glibmm-2.4/glibmm.h:83, from ./io/inkscapestream.h:14, from ./xml/repr.h:24, from display/canvas-grid.h:15, from sp-namedview.h:26, from arc-context.cpp:30: /usr/include/glib-2.0/glib/gtree.h:28:2: error: #error "Only <glib.h> can be included directly." -----
Last time it compiled correctly was with revision 10962 (I use it on a rather slow netbook that is not updated it as regularly as my other computers or VMs...)
Squeeze uses libgk2-2.20.1 and libglib2-2.24.2 . Maybe it's too old for the trunk?
Regards, -- Nicolas
On Thu, Feb 16, 2012 at 12:51 PM, Nicolas Dufour <nicoduf@...48...> wrote:
Squeeze uses libgk2-2.20.1 and libglib2-2.24.2 . Maybe it's too old for the trunk?
Squeeze is unsupported by trunk according to: http://wiki.inkscape.org/wiki/index.php/Tracking_Dependencies#Distros
Cheers, Josh
De : Josh Andler <scislac@...400...>
Squeeze is unsupported by trunk according to: http://wiki.inkscape.org/wiki/index.php/Tracking_Dependencies#Distros
Thanks for the link! According to the distros table, Squeeze (stable, no back-ports) is not supported due to the Cairo lib. But Squeeze+back-ports uses libcairo2 1.10.2, and thus meets the requirements (gtk and glib versions are already ok without the back-ports). -- Nicolas
This is happening because I defined the G_DISABLE_SINGLE_INCLUDES flag (a) to avoid breaking builds with glib >= 2.31, and (b) in preparation for the eventual GTK+ 3 migration. This prevents the use of any glib header except for the top-level <glib.h>. All of our own code satisfies the condition, but unfortunately glibmm versions earlier than 2.27.93 do not. I've temporarily highlighted all the affected distros in the Tracking Dependencies wiki page.
So...
Easy fix: Remove the G_DISABLE_SINGLE_INCLUDES flag from configure.ac again. This will fix the builds on older distros but it is risky because developers can easily break builds on newer platforms with glib >= 2.31 by adding single <glib/*.h> headers.
Proper fix: Bump glibmm dependency to >= 2.28. However, this will essentially kill our support for building Inkscape trunk on most older distro releases.
Neither are great solutions... any thoughts?
Cheers,
AV
On 16 February 2012 21:20, Nicolas Dufour <nicoduf@...48...> wrote:
De : Josh Andler <scislac@...400...>
Squeeze is unsupported by trunk according to: http://wiki.inkscape.org/wiki/index.php/Tracking_Dependencies#Distros
Thanks for the link! According to the distros table, Squeeze (stable, no back-ports) is not supported due to the Cairo lib. But Squeeze+back-ports uses libcairo2 1.10.2, and thus meets the requirements (gtk and glib versions are already ok without the back-ports). -- Nicolas
Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
2012/2/17 Alex Valavanis <valavanisalex@...400...>:
Easy fix: Remove the G_DISABLE_SINGLE_INCLUDES flag from configure.ac again. This will fix the builds on older distros but it is risky because developers can easily break builds on newer platforms with glib >= 2.31 by adding single <glib/*.h> headers.
Proper fix: Bump glibmm dependency to >= 2.28. However, this will essentially kill our support for building Inkscape trunk on most older distro releases.
Neither are great solutions... any thoughts?
It could be defined conditionally, based on the glibmm version in use. I think there are macros to determine the glibmm version via pkg-config in Autoconf.
Note that, as far as I can tell, the 0.48.3 tarball also suffers from this problem :/
Regards, Krzysztof
2012/2/17 Krzysztof Kosiński <tweenk.pl@...400...>:
2012/2/17 Alex Valavanis <valavanisalex@...400...>:
Easy fix: Remove the G_DISABLE_SINGLE_INCLUDES flag from configure.ac again. This will fix the builds on older distros but it is risky because developers can easily break builds on newer platforms with glib >= 2.31 by adding single <glib/*.h> headers.
Proper fix: Bump glibmm dependency to >= 2.28. However, this will essentially kill our support for building Inkscape trunk on most older distro releases.
Neither are great solutions... any thoughts?
It could be defined conditionally, based on the glibmm version in use. I think there are macros to determine the glibmm version via pkg-config in Autoconf.
Note that, as far as I can tell, the 0.48.3 tarball also suffers from this problem :/
It also suffers from not being able to build on win32. We could put out a 0.48.3.1 with fixes for both issues if someone can figure out the Autoconf-fu.
Cheers, Josh
It also suffers from not being able to build on win32. We could put out a 0.48.3.1 with fixes for both issues if someone can figure out the Autoconf-fu.
We could use this:
PKG_CHECK_MODULES(NEW_GLIBMM, glibmm-2.4 >= 2.28, new_glibmm=yes, new_glibmm=no) if test "x$new_glibmm" = "xyes"; then CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS" fi
or the line setting G_DISABLE_SINGLE_INCLUDES can be removed altogether from the stable branch. Which is preferable?
Regards, Krzysztof
On Feb 17, 2012 4:21 PM, "Krzysztof Kosiński" <tweenk.pl@...400...> wrote:
It also suffers from not being able to build on win32. We could put out a 0.48.3.1 with fixes for both issues if someone can figure out the Autoconf-fu.
We could use this:
PKG_CHECK_MODULES(NEW_GLIBMM, glibmm-2.4 >= 2.28, new_glibmm=yes, new_glibmm=no) if test "x$new_glibmm" = "xyes"; then CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS" fi
If you could commit this to trunk and us have a few people test, if all is happy then I'd say backporting would be the better of the two options.
Cheers, Josh
On Feb 17, 2012, at 4:26 PM, Josh Andler wrote:
On Feb 17, 2012 4:21 PM, "Krzysztof Kosiński" <tweenk.pl@...400...> wrote:
It also suffers from not being able to build on win32. We could put out a 0.48.3.1 with fixes for both issues if someone can figure out the Autoconf-fu.
We could use this:
PKG_CHECK_MODULES(NEW_GLIBMM, glibmm-2.4 >= 2.28, new_glibmm=yes, new_glibmm=no) if test "x$new_glibmm" = "xyes"; then CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS" fi
If you could commit this to trunk and us have a few people test, if all is happy then I'd say backporting would be the better of the two options.
There are also checks for GTKMM_2_24 and GTKMM_2_22 in configure.ac in trunk.
So if there is time for a revision, it would be helpful to just change "NEW_GLIBMM" to be "GLIBMM_2_28" instead. If not, this at least shows that the structure presented by Krzysztof is solid and a good approach. Trying the combination, it might look like:
PKG_CHECK_MODULES(GLIBMM_2_28, glibmm-2.4 >= 2.28, with_glibmm_2_28=yes, with_glibmm_2_28=no) if test "x$with_glibmm_2_28" = "xyes"; then AC_DEFINE(WITH_GLIBMM_2_28,1,[Build with Glibmm 2.28.x]) CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS" fi
Again, though, as long as people can get successful builds tested with what Krzysztof listed, we should be good.
De : Jon Cruz <jon@...18...>
On Feb 17, 2012, at 4:26 PM, Josh Andler wrote:
It also suffers from not being able to build on win32.
Trunk and 0.48.x branch now build correctly with devlibs r29.
We could use this: PKG_CHECK_MODULES(NEW_GLIBMM, glibmm-2.4 >= 2.28, new_glibmm=yes, new_glibmm=no) if test "x$new_glibmm" = "xyes"; then CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS" fi
Tested successfully on Debian Squeeze+backports, Inkscape 0.48.x branch revision 9884.
The trunk still has a compilation error: ui/dialog/text-edit.cpp: In member function 'SPCSSAttr* Inkscape::UI::Dialog::TextEdit::getTextStyle()': ui/dialog/text-edit.cpp:502: error: 'combo' was not declared in this scope
Regards, -- Nicolas
On Sat, Feb 18, 2012 at 6:43 AM, Nicolas Dufour <nicoduf@...48...> wrote:
De : Jon Cruz <jon@...18...>
On Feb 17, 2012, at 4:26 PM, Josh Andler wrote:
> > It also suffers from not being able to build on win32.
Trunk and 0.48.x branch now build correctly with devlibs r29.
I was referring to the existing 0.48.3 tarball as being unable to compile on win32 (there were a couple commits after it was cut that since fixed this).
> We could use this: > PKG_CHECK_MODULES(NEW_GLIBMM, glibmm-2.4 >= 2.28, new_glibmm=yes, > new_glibmm=no) > if test "x$new_glibmm" = "xyes"; then > CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS" > fi
Tested successfully on Debian Squeeze+backports, Inkscape 0.48.x branch revision 9884.
Awesome, any chance you'd be willing to commit?
Cheers, Josh
On Sat, Feb 18, 2012 at 10:18 AM, Nicolas Dufour <nicoduf@...48...> wrote:
Done, revision 9885.
Thanks! Ported to trunk. The build for Maverick in the PPA failed with the error you mentioned before in case anyone is wondering. Built fine here on Precise though.
Cheers, Josh
I changed this to something a bit closer to Krzysztof's suggestion in trunk r10994. I figured that we may need to compile bits of the code specifically against glibmm >= 2.28 at some stage, so it makes sense to have the GLIBMM_2_28 symbol available.
AV
On 18 February 2012 21:43, Josh Andler <scislac@...400...> wrote:
On Sat, Feb 18, 2012 at 10:18 AM, Nicolas Dufour <nicoduf@...48...> wrote:
Done, revision 9885.
Thanks! Ported to trunk. The build for Maverick in the PPA failed with the error you mentioned before in case anyone is wondering. Built fine here on Precise though.
Cheers, Josh
Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
On 16/02/2012 21:51, Nicolas Dufour wrote:
I've just found out that Inkscape no longer compiles on Debian Squeeze (Crunch Bang Linux variant, with back-ports), Inkscape trunk revision 10990. It fails on the first file with the following message:
CXX arc-context.o In file included from /usr/include/glibmm-2.4/glibmm/balancedtree.h:29, from /usr/include/glibmm-2.4/glibmm.h:83, from ./io/inkscapestream.h:14, from ./xml/repr.h:24, from display/canvas-grid.h:15, from sp-namedview.h:26, from arc-context.cpp:30: /usr/include/glib-2.0/glib/gtree.h:28:2: error: #error "Only <glib.h> can be included directly."
Last time it compiled correctly was with revision 10962 (I use it on a rather slow netbook that is not updated it as regularly as my other computers or VMs...)
Squeeze uses libgk2-2.20.1 and libglib2-2.24.2 . Maybe it's too old for the trunk?
Same build failure for Maverick builds of trunk PPA: https://launchpad.net/~inkscape.dev/+archive/trunk/+packages
https://launchpad.net/~inkscape.dev/+archive/trunk/+build/3217116/+files/buildlog_ubuntu-maverick-i386.inkscape-trunk_1%3A0.48%2Bdevel%2B10990%2B30%7Emaverick1_FAILEDTOBUILD.txt.gz https://launchpad.net/~inkscape.dev/+archive/trunk/+build/3217115/+files/buildlog_ubuntu-maverick-amd64.inkscape-trunk_1%3A0.48%2Bdevel%2B10990%2B30%7Emaverick1_FAILEDTOBUILD.txt.gz
According to the Wiki page, Maverick is still supposed to be supported for trunk: http://wiki.inkscape.org/wiki/index.php/Tracking_Dependencies#Distros
~suv
participants (6)
-
Alex Valavanis
-
Jon Cruz
-
Josh Andler
-
Krzysztof Kosiński
-
Nicolas Dufour
-
~suv