Opened 7 years ago

Closed 7 years ago

#54518 closed defect (fixed)

gtk3 @3.22.17_0 +quartz+universal: fails to build on Yosemite (10.10.5)

Reported by: mopihopi Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version:
Keywords: yosemite Cc: jjstickel (Jonathan Stickel), ctreleaven (Craig Treleaven), mfuhrer
Port: gtk3

Description

gtk3 @3.22.17_0 +quartz+universal fails to build on Yosemite (10.10.5) with XCode 7.2.1.

$ sudo port upgrade outdated
--->  Computing dependencies for gtk3
--->  Fetching archive for gtk3
--->  Attempting to fetch gtk3-3.22.17_0+quartz+universal.darwin_14.i386-x86_64.tbz2 from https://packages.macports.org/gtk3
--->  Attempting to fetch gtk3-3.22.17_0+quartz+universal.darwin_14.i386-x86_64.tbz2 from http://sea.us.packages.macports.org/macports/packages/gtk3
--->  Attempting to fetch gtk3-3.22.17_0+quartz+universal.darwin_14.i386-x86_64.tbz2 from http://kmq.jp.packages.macports.org/gtk3
--->  Fetching distfiles for gtk3
--->  Verifying checksums for gtk3
--->  Extracting gtk3
--->  Applying patches to gtk3
--->  Configuring gtk3
Warning: reinplace s/@host@/i686-apple-darwin14.5.0/ didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_sea.us.rsync.macports.org_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.17/gail-3.0.pc.in
Warning: reinplace s/@host@/i686-apple-darwin14.5.0/ didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_sea.us.rsync.macports.org_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.17/gdk-3.0.pc.in
--->  Building gtk3
Error: Failed to build gtk3: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_sea.us.rsync.macports.org_release_tarballs_ports_gnome_gtk3/gtk3/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
$ 

The build log includes errors like this:

:info:build In file included from gtkfilechooserentry.c:35:
:info:build ./gtkfilefilterprivate.h:34:1: error: type arguments cannot be applied to non-parameterized class 'NSArray'
:info:build NSArray<NSString *> * _gtk_file_filter_get_as_pattern_nsstrings (GtkFileFilter *filter);
:info:build ^      ~~~~~~~~~~~~
:info:build 1 error generated.
:info:build make[3]: *** [libgtk_3_la-gtkfilechooserentry.lo] Error 1
:info:build make[3]: *** Waiting for unfinished jobs....

Attachments (3)

gtk3-3.22.17-log (951.5 KB) - added by mopihopi 7 years ago.
gtk3_NSArray.patch (3.1 KB) - added by jjstickel (Jonathan Stickel) 7 years ago.
builds, but runtime errors
gtk3_Portfile.diff (382 bytes) - added by jjstickel (Jonathan Stickel) 7 years ago.

Download all attachments as: .zip

Change History (22)

Changed 7 years ago by mopihopi

Attachment: gtk3-3.22.17-log added

comment:1 Changed 7 years ago by mf2k (Frank Schima)

Cc: devans@… removed
Owner: set to dbevans
Status: newassigned

comment:2 Changed 7 years ago by jjstickel (Jonathan Stickel)

Cc: jjstickel added

comment:3 Changed 7 years ago by jjstickel (Jonathan Stickel)

I experienced the same error. I am also on Yosemite with Xcode 7.2.1, and using +quartz (but not universal).

comment:4 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: yosemite added

Looks similar to #54542.

comment:5 Changed 7 years ago by kencu (Ken)

See 51116 for a similar error with type arguments cannot be applied to non-parameterized class and a fix. In that port, to resolve this issue, the call was changed in this fashion:

NSArray<NSString *> * 

changed to simply

NSArray *

comment:6 Changed 7 years ago by ctreleaven (Craig Treleaven)

Cc: ctreleaven added

comment:7 Changed 7 years ago by kencu (Ken)

See 54542#comment:2 where I list the changes I needed to make this build.

Changed 7 years ago by jjstickel (Jonathan Stickel)

Attachment: gtk3_NSArray.patch added

builds, but runtime errors

comment:8 in reply to:  7 Changed 7 years ago by jjstickel (Jonathan Stickel)

Replying to kencu:

See 54542#comment:2 where I list the changes I needed to make this build.

Following those suggestions, I created a patch (see attached); gtk3 +quartz then builds OK, but I get this run-time error:

$ gtk3-demo

(gtk3-demo:39695): Gtk-WARNING **: Could not load a pixbuf from /org/gtk/libgtk/icons/16x16/status/image-missing.png.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
Abort trap: 6

comment:9 Changed 7 years ago by kencu (Ken)

Hmm. I didn't get any errors like that on 10.8, running webkit2-gtk with the MiniBrowser, but I didn't try the gtk3 demos.

Looks like a missing icon? Wonder why is it trying to load something from /org/gtk/...

Doesn't look too hard to debug, I hope. It may have nothing to do with the SDK issue we fixed, in fact; could be something completely different.

Last edited 7 years ago by kencu (Ken) (previous) (diff)

comment:10 Changed 7 years ago by jjstickel (Jonathan Stickel)

The error is not the warning about a missing icon (I think I used to see that before), but the one about gtkiconhelper.c (I guess also icon related, but probably not just due to a missing file).

comment:11 Changed 7 years ago by kencu (Ken)

I wonder if the missing icon makes the assertion fail...assuming that indeed there is a missing icon, and not something else causing this. Looks like Google time ...

Last edited 7 years ago by kencu (Ken) (previous) (diff)

comment:12 Changed 7 years ago by kencu (Ken)

For one: <https://github.com/NixOS/nixpkgs/issues/16490>, and another <https://bugs.launchpad.net/ubuntu/+source/blueman/+bug/1037216>. Yet another: <https://redmine.darktable.org/issues/11049>.

This looks like a different error than what your patch fixed to me, but we'll see in time, I guess.

I don't have any idea how to change or update icon themes on gtk3 in MacPorts...

One presented solution to this issue on a different OS <https://forums.fedoraforum.org/showthread.php?t=280639> was to do this

    update-mime-database /usr/share/mime
    chmod 644 /usr/share/applications/mimeinfo.cache
    reboot
Version 2, edited 7 years ago by kencu (Ken) (previous) (next) (diff)

comment:13 Changed 7 years ago by jjstickel (Jonathan Stickel)

OK, you may be right, that the missing icon file (or wrong target path) is causing the error. Not sure how to proceed with debugging that. Although maybe separate from this ticket, if we get that part resolved, we will know the patch is OK.

comment:14 Changed 7 years ago by kencu (Ken)

I poked around and I have this:

/opt/local/share/icons/Adwaita/16x16/status/image-missing.png

provided by adwaita-icon-theme.

Do you have that installed?

comment:15 Changed 7 years ago by jjstickel (Jonathan Stickel)

After installing adwaita-icon-theme:

$ gtk3-demo

(gtk3-demo:27161): Gtk-WARNING **: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
Abort trap: 6

Changed 7 years ago by jjstickel (Jonathan Stickel)

Attachment: gtk3_Portfile.diff added

comment:16 Changed 7 years ago by jjstickel (Jonathan Stickel)

OK, it seems that the "gtkiconhelper.c" error I was receiving was not related. Applying my patch (gtk3_NSArray.patch, attached) to the latest gtk3 (3.22.19) seems to result in a working install of gtk3 +quartz; at least I can run gtk3-demo now. A patch to the Portfile is also attached.

comment:17 Changed 7 years ago by mfuhrer

Cc: mfuhrer added

comment:18 Changed 7 years ago by jjstickel (Jonathan Stickel)

The patch I provided a few weeks ago has been implemented upstream. gtk3 is now several versions later than 3.22.17. I think this ticket can be closed. Also, ticket #54542 is a duplicate.

comment:19 Changed 7 years ago by mf2k (Frank Schima)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.