Opened 13 years ago

Closed 13 years ago

#27059 closed defect (fixed)

gtkglextmm fails to build

Reported by: n.a.hawes@… Owned by: billitch@…
Priority: Normal Milestone:
Component: ports Version: 1.9.1
Keywords: Cc: staffan@…, ryandesign (Ryan Carsten Schmidt)
Port: gtkglextmm

Description (last modified by jmroot (Joshua Root))

The gtkglextmm port fails to build with the error below. It looks like the causes is that gtk2 and gtkmm are out of sync version-wise: https://bugs.launchpad.net/ubuntu/+source/gtkmm2.4/+bug/660787

:info:build In file included from /opt/local/include/gdkmm-2.4/gdkmm/gc.h:34,
:info:build                  from /opt/local/include/gdkmm-2.4/gdkmm/drawable.h:33,
:info:build                  from ../../../gdkglext/gdkmm/gl/pixmap.h:29,
:info:build                  from pixmap.cc:3:
:info:build /opt/local/include/gdkmm-2.4/gdkmm/region.h:230: error: 'GdkSpanFunc' has not been declared
:info:build In file included from /opt/local/include/gdkmm-2.4/gdkmm/gc.h:34,
:info:build                  from /opt/local/include/gdkmm-2.4/gdkmm/drawable.h:33,
:info:build                  from ../../../gdkglext/gdkmm/gl/window.h:29,
:info:build                  from window.cc:3:
:info:build /opt/local/include/gdkmm-2.4/gdkmm/region.h:230: error: 'GdkSpanFunc' has not been declared
:info:build make[6]: *** [pixmap.lo] Error 1
:info:build make[6]: *** Waiting for unfinished jobs....
:info:build make[6]: *** [window.lo] Error 1
:info:build make[5]: *** [all-recursive] Error 1
:info:build make[4]: *** [all-recursive] Error 1
:info:build make[3]: *** [all-recursive] Error 1
:info:build make[2]: *** [all] Error 2
:info:build make[1]: *** [all-recursive] Error 1
:info:build make: *** [all] Error 2
:info:build shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gtkglextmm/work/gtkglextmm-1.2.0" && /usr/bin/make -j2 all " returned error 2

Attachments (3)

main.log (96.1 KB) - added by n.a.hawes@… 13 years ago.
log file from build
Portfile.diff (738 bytes) - added by staffan@… 13 years ago.
patch-gtkglext_gtkmm_gl-widget.cc.diff (367 bytes) - added by staffan@… 13 years ago.
Patch to make gtkglextmm compile with newer versions of GTK/gtkmm

Download all attachments as: .zip

Change History (8)

Changed 13 years ago by n.a.hawes@…

Attachment: main.log added

log file from build

comment:1 Changed 13 years ago by jmroot (Joshua Root)

Description: modified (diff)
Owner: changed from macports-tickets@… to billitch@…

Please remember to preview and use WikiFormatting, and to cc the maintainer.

comment:2 Changed 13 years ago by staffan@…

Cc: staffan@… added

Cc Me!

Changed 13 years ago by staffan@…

Attachment: Portfile.diff added

Changed 13 years ago by staffan@…

Patch to make gtkglextmm compile with newer versions of GTK/gtkmm

comment:3 Changed 13 years ago by staffan@…

Although the symptoms are the same, this is in fact not a problem caused by mismatching versions of GTK and gtkmm. It's an issue with gtkglextmm not being compatible with later versions of GTK/gtkmm. Quoting from the comment in the applied patch:

# Fix build issue where build fails due to GDK_DISABLE_DEPRECATED being enabled.
# The order in which files are included matters here. gtkmm does some funky
# stuff to undefine GDK_DISABLE_DEPRECATED, if defined, before including gdk.h
# as it needs some deprecated functionality. Including gtkglwidget.h before
# widget.h causes gdk.h to be included without GDK_DISABLE_DEPRECATED being
# undefined, and gtkmm never gets the chance to work its undefine magic.

Fortunately, the fix is simple!

To the maintainer (or someone with commit rights): please apply the attached Portfile patch (Portfile.diff), add a files directory and put the attached file patch-gtkglext_gtkmm_gl-widget.cc.diff into the files directory.

I'll see if I can file a bug upstream as well, if it hasn't already been reported.

comment:5 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added
Resolution: fixed
Status: newclosed

Thanks, committed in r75607 (maintainer timeout).

Note: See TracTickets for help on using tickets.