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