Boost updated to 1.58.0 in rawhide and f23

Adam Williamson adamwill at fedoraproject.org
Thu Jul 23 20:58:33 UTC 2015


On Thu, 2015-07-23 at 13:39 -0700, Adam Williamson wrote:
> On Thu, 2015-07-23 at 19:55 +0100, Jonathan Wakely wrote:
> > On 23/07/15 14:27 +0200, David Tardon wrote:
> > > Hi,
> > > 
> > > On Sat, Jul 18, 2015 at 12:46:51PM +0100, Jonathan Wakely wrote:
> > > > Any problems rebuilding either open a bug or feel free to email 
> > > > 
> > > > me or
> > > > ping me on IRC (my freenode nick is 'redi') and I'll be happy 
> > > > to 
> > > > help.
> > > 
> > > This is a work-in-progress list of FTBFS packages:
> > > 
> > > * Build failures:
> > > 
> > > - F23 + Rawhide
> > > 
> > > inkscape
> > 
> > This seems to be a gtkmm or inkscape bug (I have no idea why it 
> > only 
> > shows up
> > when rebuilding with the new Boost).
> > 
> > /usr/include/gtkmm-2.4/gtkmm/box.h includes <glibmm/helperlist.h> 
> > and
> > uses Glib::HelperList unconditionally, but the definition of that
> > class template is guarded by:
> > 
> > #ifndef GLIBMM_DISABLE_DEPRECATED
> > 
> > That macro is defined when building Inkscape, so including
> > <gtkmm/box.h> gives an error.
> 
> HelperList's deprecation is fairly recent:
> 
> https://git.gnome.org/browse/glibmm/commit/?id=08c6cc2ca8dfdab8c1294b
> c9
> 25ea31df0b6ff8ff
> 
> (and obviously predicated on a wrong belief - "nothing uses it 
> anymore"
> - as we're finding out. :>)

Hum, I guess it's not really glibmm's fault. glibmm deprecated it
because only really old gtkmm uses it...like the gtkmm inkscape uses.
inkscape sets GLIBMM_DISABLE_DEPRECATED because it wants to avoid using
deprecated symbols. That's a laudable goal and maybe it was true at
some point, but it's kinda silly when it's using such an ancient
gtkmm...see below: it's only been working up till now because gtkmm 2.4
ignores the DISABLE_DEPRECATED flags a lot of the time, when it knows
it would break otherwise.

The quick fix should be to rebuild inkscape with --disable-strict-build
. A proper 'fix' might be one or both of two things:

1. inkscape configure.ac already hedges its DISABLE_DEPRECATED stuff in
one case it knows about (some particular version of pango); it could
also skip the DISABLE_DEPRECATED if the glibmm version is sufficiently
new (2.45.3 or later). See:

https://github.com/inkscape/inkscape/blob/master/inkscape
-launchpad/configure.ac#L864-L893

2. gtkmm 2.4 already quite often temporarily undefines
GTK_DISABLE_DEPRECATED and GDK_DISABLE_DEPRECATED when it knows the
thing it's about to try and use is deprecated. It could presumably
undefine GLIBMM_DISABLE_DEPRECATED right before it tries to use
HelperList.

I'll file some bugs upstream for this, and I guess check if an inkscape
build with --disable-strict-build works. I suspect it may not - I think
I see another build attempt which actually did fail on something in
boost...
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net



More information about the devel mailing list