New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #27059 (closed defect: fixed)

Opened 3 years ago

Last modified 2 years ago

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@…
Port: gtkglextmm

Description (last modified by jmr@…) (diff)

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

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

Change History

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

log file from build

comment:1 Changed 3 years ago by jmr@…

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

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

comment:2 Changed 2 years ago by staffan@…

  • Cc staffan@… added

Cc Me!

Changed 2 years ago by staffan@…

Changed 2 years ago by staffan@…

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

comment:3 Changed 2 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:4 Changed 2 years ago by staffan@…

comment:5 Changed 2 years ago by ryandesign@…

  • Cc ryandesign@… added
  • Status changed from new to closed
  • Resolution set to fixed

Thanks, committed in r75607 (maintainer timeout).

Note: See TracTickets for help on using tickets.