Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#50680 closed defect (fixed)

gimp @2.8.16: +gmic variant is not compatible with +quartz

Reported by: kurn@… Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: assemlal@…
Port: gimp gmic

Description

Yosemite 10.10.5 - Xcode 7.2.1 (7C1002) - I asked for +gmic variant but gmic filters did not appear in the Filters menu. Here is terminal output:

Godzilla:MacOS kurn$ /Applications/MacPorts/GIMP.app/Contents/MacOS/GIMP 
2016-02-19 22:04:00.881 GIMP[968:31788] Failed to connect (cancelButton) outlet from (ScriptExecController) to (NSButton): missing setter or instance variable
2016-02-19 22:04:00.881 GIMP[968:31788] Failed to connect (messageTextField) outlet from (ScriptExecController) to (NSTextField): missing setter or instance variable
Skipping duplicate plug-in: '/Applications/MacPorts/GIMP.app/Contents/Resources/lib/gimp/2.0/plug-ins/gmic_gimp'
dyld: Library not loaded: /tmp/skl/Gimp.app/Contents/Resources/lib/libgimpui-2.0.0.dylib
  Referenced from: /Users/kurn/Library/Application Support/GIMP/2.8/plug-ins/gmic_gimp
  Reason: image not found

(GIMP:968): LibGimpBase-WARNING **: GIMP: gimp_wire_read(): error

(GIMP:968): GLib-GObject-WARNING **: invalid cast from 'GtkMenuBar' to 'GtkWindow'

(GIMP:968): Gtk-CRITICAL **: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed

Change History (6)

comment:1 Changed 8 years ago by dbevans (David B. Evans)

Keywords: Gmic Gimp removed
Owner: changed from macports-tickets@… to devans@…
Status: newassigned
Version: 2.3.4

comment:2 Changed 8 years ago by dbevans (David B. Evans)

First, please verify which versions of gimp, gimp2 and gmic are installed. What is the output from the following commands?

$ port installed gimp gimp2 gmic
$ which gimp

comment:3 in reply to:  2 Changed 8 years ago by kurn@…

Replying to devans@…:

First, please verify which versions of gimp, gimp2 and gmic are installed. What is the output from the following commands?

$ port installed gimp gimp2 gmic
$ which gimp

Your request, plus a few more:

bash Godzilla.local 500 ~ $ port installed gimp gimp2 gmic
The following ports are currently installed:
  gimp @2.8.16_0+gmic+quartz (active)
  gimp2 @2.8.16_3+help_browser+python27+quartz (active)
  gmic @1.5.0.8_6 (active)
bash Godzilla.local 501 ~ $ which gimp
/opt/local/bin/gimp
bash Godzilla.local 502 ~ $ ls -ls /opt/local/bin/gimp
8 lrwxr-xr-x  1 root  admin  8 Feb  9 11:20 /opt/local/bin/gimp@ -> gimp-2.8
bash Godzilla.local 503 ~ $ ls -ls /opt/local/bin/gimp-2.8
10464 -rwxr-xr-x  1 root  admin  5354612 Feb  9 11:20 /opt/local/bin/gimp-2.8*

bash Godzilla.local 505 ~ $ ls -ls /Applications/GIMP.app/Contents/MacOS/GIMP
8 -rwxr--r--@ 1 kurn  admin  3095 Feb  6 03:55 /Applications/GIMP.app/Contents/MacOS/GIMP*
bash Godzilla.local 506 ~ $ ls -ls /Applications/MacPorts/GIMP.app/Contents/MacOS/GIMP 
32 -rwxr-xr-x  1 root  admin  13720 Nov 26  2014 /Applications/MacPorts/GIMP.app/Contents/MacOS/GIMP

Since I use the Finder to launch, I can choose which of the 2 in the Applications directory to start. I didn't realize there was a third. Also, strange that the one in the App is newer than the one in MacPorts and the one in /opt is newer still.

Hopefully, you can tell me where MacPorts installs and how to connect to it.

comment:4 Changed 8 years ago by dbevans (David B. Evans)

Cc: assemlal@… added
Port: gmic gimp2 added; gimp removed

Sorry for not getting back to you on this. I had it in my mind that the issue was resolved but I see it is not. So thanks for the nudge.

It appears that you have two or maybe parts of three different installations of gimp on your machine only one of which is the MacPorts version and there may be some interaction between them.

As your which command shows, port gimp2 installs the basic GIMP application itself as

/opt/local/bin/gimp

You can see where it is installed by using the command

$ port contents gimp2

The corresponding plugins directory is

/opt/local/lib/gimp/2.0/plug-ins/

Using a similar command you can see that gmic installs its plugin as

/opt/local/lib/gimp/2.0/plug-ins/gmic_gimp

This is correct and you should be able launch the GIMP app from the command line as

$ gimp

If all this is correct, then GIMP should start up and you will see the gmic plugin under the Filters menu.

Unfortunately, it appears that gmic is always compiled using gtk2 +x11 and so fails to load when using it with a clean +quartz build of gimp2

$ gimp
dyld: Library not loaded: /opt/local/lib/libgtk-x11-2.0.0.dylib
  Referenced from: /opt/local/lib/gimp/2.0/plug-ins/gmic_gimp
  Reason: image not found

(gimp:9174): LibGimpBase-WARNING **: gimp: gimp_wire_read(): error

This is an issue with the gmic port itself. Appears it needs a +quartz variant to properly configure a build using gtk2 +quartz. I'm copying the owner of that port and will file a ticket against gmic as soon as I finish a bit more testing.

Concerning the app bundle, it is installed by port gimp-app and is the one found at

/Applications/MacPorts/GIMP.app

It is just a script so start up /opt/local/bin/gimp in a Mac friendly way. You should see that

/Applications/MacPorts/GIMP.app/Contents/Resources/bin

is just a link to

/opt/local/bin

Finally, on startup, GIMP will create some configuration files in

~/Library/Application Support/GIMP/2.8

If you remove these, GIMP will recreate them with default values on the next startup.

Beyond these paths and directories, anything that looks like GIMP is not the MacPorts version and I would recommend removing them to avoid confusion or any adverse interactions with MacPorts.

The port gimp is just a "meta port", one that just installs a list of other ports, namely, those above and some extra filters, etc.

Hope this clarifies the issue. Let me know if you have any questions.

As I mentioned above, other than understanding which GIMP is which, the solution to this problem is to fix the gmic port to build using gtk2 +quartz in a +quartz environment.

Working on this.

comment:5 Changed 8 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: assignedclosed

Examination of port gmic shows that it is intended build with X11 only. Until this is changed variants +quartz and +gmic conflict with each other and need to be mutually exclusion. For now, I've updated gimp in r146459 to allow only one or the other.

If you really need to use gmic with gimp then you should build with X11 not +quartz.

comment:6 Changed 8 years ago by dbevans (David B. Evans)

Port: gimp added; gimp2 removed
Summary: gimp @2.8.16 +gmic but gmic is not availablegimp @2.8.16: +gmic variant is not compatible with +quartz

See also #33008 concerning updating gmic to latest version.

Note: See TracTickets for help on using tickets.