After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 759603 - gtkmm build broken by recent GtkBorder change
gtkmm build broken by recent GtkBorder change
Status: RESOLVED FIXED
Product: gtkmm
Classification: Bindings
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gtkmm-forge
gtkmm-forge
Depends on:
Blocks:
 
 
Reported: 2015-12-17 16:42 UTC by Matthias Clasen
Modified: 2015-12-17 19:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gtk+ patch reverting the GtkBorder = GdkBorder change (1.17 KB, patch)
2015-12-17 17:42 UTC, fakey
none Details | Review

Description Matthias Clasen 2015-12-17 16:42:15 UTC
After this commit:

https://git.gnome.org/browse/gtk+/commit/?id=a6e4de28842002e7bfdf73def26c4c52d9f9126a

gtkmm now fails to build with:

../gtkmm/border.h:32:40: error: conflicting declaration ‘typedef struct _GtkBorder GtkBorder’
 extern "C" { typedef struct _GtkBorder GtkBorder; }
Comment 1 fakey 2015-12-17 17:42:26 UTC
Created attachment 317585 [details] [review]
gtk+ patch reverting the GtkBorder = GdkBorder change

To be applied to GTK+. It mostly reverts the old change that caused this and the breakage in WebKit.
Comment 2 Murray Cumming 2015-12-17 19:10:04 UTC
Thanks, Mathias. This fixes the gtkmm build:
https://git.gnome.org/browse/gtkmm/commit/?id=5e6b1912b0ed627dccb16b2cf00547cfeeb7654f

It is a little odd that GtkBorder, a boxed type, with *_get_type(), copy() and free() functions, is now just a typedef to a raw struct. Is this intentional?
Comment 3 Kalev Lember 2015-12-17 19:14:37 UTC
https://git.gnome.org/browse/gtk+/commit/?id=5190d010d95010a845715c719c3b85a75e0c513a reverted GtkBorder back to what it was before.
Comment 4 fakey 2015-12-17 19:31:03 UTC
Yes, sorry. Murray, could you please revert the gtkmm commit? I didn't anticipate such an innocuous change could cause these problems...
Comment 5 Murray Cumming 2015-12-17 19:40:40 UTC
Done.

Note that it wasn't a big problem for gtkmm. We don't mind a little minor API breakage as long as there's no ABI breakage.
Comment 6 Matthias Clasen 2015-12-17 19:42:08 UTC
(In reply to Murray Cumming from comment #2)
> Thanks, Mathias. This fixes the gtkmm build:
> https://git.gnome.org/browse/gtkmm/commit/
> ?id=5e6b1912b0ed627dccb16b2cf00547cfeeb7654f
> 
> It is a little odd that GtkBorder, a boxed type, with *_get_type(), copy()
> and free() functions, is now just a typedef to a raw struct. Is this
> intentional?

Not sure I follow. A boxed type is by definition just a raw struct (with copy and free).

Anyway, its all resolved now
Comment 7 Murray Cumming 2015-12-17 19:49:21 UTC
(In reply to Matthias Clasen from comment #6)
> (In reply to Murray Cumming from comment #2)
> > Thanks, Mathias. This fixes the gtkmm build:
> > https://git.gnome.org/browse/gtkmm/commit/
> > ?id=5e6b1912b0ed627dccb16b2cf00547cfeeb7654f
> > 
> > It is a little odd that GtkBorder, a boxed type, with *_get_type(), copy()
> > and free() functions, is now just a typedef to a raw struct. Is this
> > intentional?
> 
> Not sure I follow. A boxed type is by definition just a raw struct (with
> copy and free).

But GdkBorder didn't have those functions, or a GType. You couldn't do to a GdkBorder what you could do to a GtkBorder, so they weren't really the same.