FTBFS with gdl >= 3.6

Bug #1196070 reported by Stefan Husmann
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
Fix Released
High
Alex Valavanis

Bug Description

I was asked in the comments of https://bugs.launchpad.net/inkscape/+bug/1193841 to open a seperate report for this.
I use Arch Linux 64 bit, glib 2.37.2.8.g69afaf6-1 and gdl 3.8.1

In file included from /usr/include/glib-2.0/gobject/gobject.h:26:0,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:25,
                 from /usr/include/glibmm-2.4/glibmm/value.h:25,
                 from /usr/include/glibmm-2.4/glibmm/propertyproxy_base.h:25,
                 from /usr/include/glibmm-2.4/glibmm/propertyproxy.h:25,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:24,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:32,
                 from /usr/include/gtkmm-3.0/gtkmm/widget.h:32,
                 from /usr/include/gtkmm-3.0/gtkmm/container.h:29,
                 from /usr/include/gtkmm-3.0/gtkmm/box.h:28,
                 from ui/widget/dock.h:23,
                 from ui/widget/dock.cpp:13:
ui/widget/dock.cpp: In constructor 'Inkscape::UI::Widget::Dock::Dock(Gtk::Orientation)':
ui/widget/dock.cpp:52:72: error: cannot convert 'GdlDock* {aka _GdlDock*}' to 'GObject* {aka _GObject*}' for argument '1' to 'GtkWidget* gdl_dock_bar_new(GObject*)'
       _gdl_dock_bar (GDL_DOCK_BAR (gdl_dock_bar_new(GDL_DOCK(_gdl_dock)))),
                                                                        ^
/usr/include/glib-2.0/gobject/gtype.h:1735:57: note: in definition of macro '_G_TYPE_CIC'
     ((ct*) g_type_check_instance_cast ((GTypeInstance*) ip, gt))
                                                         ^
/usr/include/libgdl-3.0/gdl/gdl-dock-bar.h:34:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GDL_DOCK_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_BAR, GdlDockBar))
                                       ^
ui/widget/dock.cpp:52:22: note: in expansion of macro 'GDL_DOCK_BAR'
       _gdl_dock_bar (GDL_DOCK_BAR (gdl_dock_bar_new(GDL_DOCK(_gdl_dock)))),
                      ^
ui/widget/dock.cpp:55:5: warning: 'void gdl_dock_bar_set_orientation(GdlDockBar*, GtkOrientation)' is deprecated (declared at /usr/include/libgdl-3.0/gdl/gdl-dock-bar.h:86): Use gtk_orientable_set_orientation in
stead [-Wdeprecated-declarations]
     gdl_dock_bar_set_orientation(_gdl_dock_bar, static_cast<GtkOrientation>(orientation));
     ^
ui/widget/dock.cpp:55:89: warning: 'void gdl_dock_bar_set_orientation(GdlDockBar*, GtkOrientation)' is deprecated (declared at /usr/include/libgdl-3.0/gdl/gdl-dock-bar.h:86): Use gtk_orientable_set_orientation i
nstead [-Wdeprecated-declarations]
     gdl_dock_bar_set_orientation(_gdl_dock_bar, static_cast<GtkOrientation>(orientation));
                                                                                         ^
make[3]: *** [ui/widget/dock.o] Error 1
make[3]: Leaving directory `/home/haawda/paketierung/maintained_by_me/inkscape-gtk3-bzr/src/inkscape/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/haawda/paketierung/maintained_by_me/inkscape-gtk3-bzr/src/inkscape/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/haawda/paketierung/maintained_by_me/inkscape-gtk3-bzr/src/inkscape'
make: *** [all] Error 2

Tags: build gtk3
su_v (suv-lp)
tags: added: build gtk3
Revision history for this message
su_v (suv-lp) wrote :

Build failure reproduced on OS X 10.7.5 since r12355 with
- GTK+/Quartz 3.6.4, gdl 3.6.2, glib 2.34.3
- GTK+/X11 3.8.2, gdl 3.8.1, glib 2.36.3
- GTK+/Quartz 3.8.2, gdl 3.8.1, glib 2.36.3

Building (tested up to r12395) still succeeds with older versions:
- GTK+/X11 3.4.4, gdl 3.4.2, glib 2.32.4

Changed in inkscape:
importance: Undecided → High
status: New → Confirmed
Revision history for this message
su_v (suv-lp) wrote :

- GTK+/Quartz 3.6.4, gdl 3.6.2, glib 2.34.3:
compiler: i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)

  CXX ui/widget/dock.o
../../src/ui/widget/dock.cpp: In constructor ‘Inkscape::UI::Widget::Dock::Dock(Gtk::Orientation)’:
../../src/ui/widget/dock.cpp:52: error: cannot convert ‘GdlDock*’ to ‘GObject*’ for argument ‘1’ to ‘GtkWidget* gdl_dock_bar_new(GObject*)’
../../src/ui/widget/dock.cpp:55: warning: ‘gdl_dock_bar_set_orientation’ is deprecated (declared at /Volumes/cyan/mp-quartz/with-a-long-long-long-directory-name/include/libgdl-3.0/gdl/gdl-dock-bar.h:87)
../../src/ui/widget/dock.cpp:55: warning: ‘gdl_dock_bar_set_orientation’ is deprecated (declared at /Volumes/cyan/mp-quartz/with-a-long-long-long-directory-name/include/libgdl-3.0/gdl/gdl-dock-bar.h:87)
make[3]: *** [ui/widget/dock.o] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

- GTK+/Quartz 3.8.2, gdl 3.8.1, glib 2.36.3:
compiler: Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn)

  CXX ui/widget/dock.o
../../src/ui/widget/dock.cpp:52:36: error: no matching function for call to 'gdl_dock_bar_new'
      _gdl_dock_bar (GDL_DOCK_BAR (gdl_dock_bar_new(GDL_DOCK(_gdl_dock)))),
                     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Volumes/magenta/mp-trunk/quartz/include/libgdl-3.0/gdl/gdl-dock-bar.h:34:68: note: expanded from macro 'GDL_DOCK_BAR'
#define GDL_DOCK_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_BAR, GdlDockBar))
                                                                   ^
/Volumes/magenta/mp-trunk/quartz/include/glib-2.0/gobject/gtype.h:481:80: note: expanded from macro 'G_TYPE_CHECK_INSTANCE_CAST'
#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) (_G_TYPE_CIC ((instance), (g_type), c_type))
                                                                               ^
/Volumes/magenta/mp-trunk/quartz/include/glib-2.0/gobject/gtype.h:1733:57: note: expanded from macro '_G_TYPE_CIC'
    ((ct*) g_type_check_instance_cast ((GTypeInstance*) ip, gt))
                                                        ^~
/Volumes/magenta/mp-trunk/quartz/include/libgdl-3.0/gdl/gdl-dock-bar.h:78:17: note: candidate function not viable: no known conversion from 'GdlDock *' (aka '_GdlDock *') to 'GObject *' (aka '_GObject *') for 1st argument;
GtkWidget *gdl_dock_bar_new (GObject *master);
                ^
../../src/ui/widget/dock.cpp:55:5: warning: 'gdl_dock_bar_set_orientation' is deprecated [-Wdeprecated-declarations]
    gdl_dock_bar_set_orientation(_gdl_dock_bar, static_cast<GtkOrientation>(orientation));
    ^
1 warning and 1 error generated.
make[3]: *** [ui/widget/dock.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Revision history for this message
Alex Valavanis (valavanisalex) wrote :

This looks like it's caused by the recent API change in GDL 3.6 [1] rather than anything we've done in Inkscape. It should be a pretty easy fix. Looking into it now.

[1] https://git.gnome.org/browse/gdl/commit/?id=4ed3a2d82eba460c96779703470a1c0b2da5f726

summary: - Build error caused by changes to fix bug #1179338 in gtk3-build
+ FTBFS with gdl >= 3.6
Changed in inkscape:
assignee: nobody → Alex Valavanis (valavanisalex)
status: Confirmed → In Progress
Revision history for this message
Alex Valavanis (valavanisalex) wrote :

...and here's a patch. I'm not on my normal development system, so I can't do complete testing right now. It needs to be checked for

(a) Gtk+ 3 build with GDL >= 3.6
(b) Gtk+ 3 build with GDL between 3.34 and 3.6
(c) Gtk+ 2 build (using internal GDL fork)

Revision history for this message
Stefan Husmann (stefan-husmann) wrote :

There was a typo in the patch, a missing underscore charakter. I attached the corrcted patch. It works for case a) and c), if WITH_EXT_GDL_FALSE='' in the config.og indicates that the internal GDL fork was taken..

Revision history for this message
su_v (suv-lp) wrote :

Alex Valavanis (valavanisalex) wrote:
> ...and here's a patch. (…) It needs to be checked for

Testing on OS X 10.7.5 with Stefan's version of the patch (comment #5) applied to trunk @rev 12405:

> (a) Gtk+ 3 build with GDL >= 3.6

Builds succeed with
- GTK+/Quartz 3.6.4, gdl 3.6.2, glib 2.34.3
- GTK+/X11 3.8.2, gdl 3.8.1, glib 2.36.3
- GTK+/Quartz 3.8.2, gdl 3.8.1, glib 2.36.3

> (b) Gtk+ 3 build with GDL between 3.34 and 3.6

Build succeeds with:
 - GTK+/X11 3.4.4, gdl 3.4.2, glib 2.32.4

> (c) Gtk+ 2 build (using internal GDL fork)

Build succeeds with:
- GTK+/X11 2.24.13, gtkmm 2.24.2, glib 2.32.4, glibmm 2.32.1
- GTK+/Quartz 2.24.17, gtkmm 2.24.2, glib 2.34.3, glibmm 2.34.1
- GTK+/X11 2.24.19, gtkmm 2.24.4, glib 2.36.3, glibmm 2.36.2
- GTK+/Quartz 2.24.19, gtkmm 2.24.4, glib 2.36.3, glibmm 2.36.2

Revision history for this message
Alex Valavanis (valavanisalex) wrote :

Thanks for testing. Fixed in lp:inkscape r12407

Changed in inkscape:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.