Opened 14 years ago

Closed 13 years ago

#25962 closed defect (worksforme)

gimp2-devel @2.7.1 +no_x11 +quartz fails to build

Reported by: jk@… Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 1.9.1
Keywords: Cc: sewebster@…, hsivank@…, lhunath@…, obutovich@…
Port: gimp2-devel

Description

  1. PYGTK doesn't get found (might be a bug in py26-gtk @2.16.0):
[...]
checking for PYGTK... no
configure: error:
*** Could not find PyGTK 2.10.4 or newer.
*** Please install it, or skip building the python scripting extension by
*** passing --disable-python to configure (but then you will not be able
*** to use scripts for GIMP that are written in Python).

Fix: ln -s /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/pkgconfig/pygtk-2.0.pc /opt/local/lib/pkgconfig/

  1. pygtk-codegen-2.0 isn't found: (again, might be a bug in py26-gtk @2.16.0)

[...]
checking for PYGTK... yes
checking for pygtk-codegen-2.0... no
configure: error:
*** Could not find pygtk-codegen-2.0 script.
*** Please install it, or skip building the python scripting extension by
*** passing --disable-python to configure (but then you will not be able
*** to use scripts for GIMP that are written in Python).

Fix: ln -s /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/pygtk-codegen-2.0 /opt/local/bin/

  1. ige-mac-menu.c seems to use outdated stuff:
[...]
  CC     ige-mac-menu.o
ige-mac-menu.c: In function 'carbon_menu_item_update_state':
ige-mac-menu.c:222: warning: implicit declaration of function 'ChangeMenuItemAttributes'
ige-mac-menu.c: In function 'carbon_menu_item_update_active':
ige-mac-menu.c:236: warning: implicit declaration of function 'CheckMenuItem'
ige-mac-menu.c: In function 'carbon_menu_item_update_submenu':
ige-mac-menu.c:258: warning: implicit declaration of function 'CreateNewMenu'
ige-mac-menu.c:259: warning: implicit declaration of function 'SetMenuTitleWithCFString'
ige-mac-menu.c:260: warning: implicit declaration of function 'SetMenuItemHierarchicalMenu'
ige-mac-menu.c: In function 'carbon_menu_item_update_label':
ige-mac-menu.c:288: warning: implicit declaration of function 'SetMenuItemTextWithCFString'
ige-mac-menu.c: In function 'carbon_menu_item_update_accelerator':
ige-mac-menu.c:304: error: 'GtkAccelLabel' has no member named 'accel_closure'
ige-mac-menu.c:308: error: 'GtkAccelLabel' has no member named 'accel_group'
ige-mac-menu.c:310: error: 'GtkAccelLabel' has no member named 'accel_closure'
ige-mac-menu.c:326: warning: implicit declaration of function 'SetMenuItemCommandKey'
ige-mac-menu.c:345: warning: implicit declaration of function 'SetMenuItemModifiers'
ige-mac-menu.c: In function 'carbon_menu_item_accel_changed':
ige-mac-menu.c:375: error: 'GtkAccelLabel' has no member named 'accel_closure'
ige-mac-menu.c: In function 'carbon_menu_item_update_accel_closure':
ige-mac-menu.c:401: error: 'GtkAccelLabel' has no member named 'accel_closure'
ige-mac-menu.c: In function 'menu_event_handler_func':
ige-mac-menu.c:524: warning: implicit declaration of function 'GetMenuItemProperty'
ige-mac-menu.c: In function 'sync_menu_shell':
ige-mac-menu.c:655: warning: implicit declaration of function 'DeleteMenuItem'
ige-mac-menu.c:677: warning: implicit declaration of function 'GTK_WIDGET_IS_SENSITIVE'
ige-mac-menu.c:680: warning: implicit declaration of function 'GTK_WIDGET_VISIBLE'
ige-mac-menu.c:683: warning: implicit declaration of function 'InsertMenuItemTextWithCFString'
ige-mac-menu.c:686: warning: implicit declaration of function 'SetMenuItemProperty'
ige-mac-menu.c: In function 'parent_set_emission_hook':
ige-mac-menu.c:733: error: 'GtkWidget' has no member named 'parent'
ige-mac-menu.c:735: error: 'GtkWidget' has no member named 'parent'
ige-mac-menu.c: In function 'ige_mac_menu_set_menu_bar':
ige-mac-menu.c:800: warning: implicit declaration of function 'SetRootMenu'
ige-mac-menu.c: In function 'ige_mac_menu_set_quit_menu_item':
ige-mac-menu.c:838: warning: implicit declaration of function 'GetIndMenuItemWithCommandID'
ige-mac-menu.c:841: warning: implicit declaration of function 'SetMenuItemCommandID'
make[3]: *** [ige-mac-menu.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Attachments (5)

app-gui-gui.c.diff (2.5 KB) - added by hsivank@… 14 years ago.
app-gui-Makefile.am.diff (306 bytes) - added by hsivank@… 14 years ago.
app-gui-Makefile.in.diff (1.4 KB) - added by hsivank@… 14 years ago.
app-main.c.diff (1.4 KB) - added by hsivank@… 14 years ago.
Portfile-gimp2-devel.diff (693 bytes) - added by hsivank@… 14 years ago.

Download all attachments as: .zip

Change History (25)

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

Owner: changed from macports-tickets@… to devans@…

comment:2 Changed 14 years ago by sewebster@…

Cc: sewebster@… added

Cc Me!

comment:3 Changed 14 years ago by sewebster@…

Has duplicate #25972. First problem seems to somehow have been caused by switch to py26?

comment:4 Changed 14 years ago by hackdefendr (HackDefendr)

For #1 and #2 ... port install python_select ... then ... python_select python26

That is all I did, and got past the first two obstacles.

As for the menu integration...that is going to be tricky. I have a bugzilla opened for this, and have even tried to take a whack at fixing things...but I truly am not skilled enough to tackle this. https://bugzilla.gnome.org/show_bug.cgi?id=624642

This happens because IGE-MAC-MENU is now GTK-OSX-APPLICATION and uses Cocoa for 64-bit menu integration, which the GIMP 2.7.1 does not have imported/integrated yet. IGE-MAC-MENU builds against Carbon which is not 64-bit capable.

That's my 2.5 cents!

-- Jeff

comment:5 Changed 14 years ago by sewebster@…

Hmm. The only python I have installed is python26, so I wouldn't expect python_select to do anything (?)

comment:6 in reply to:  5 Changed 14 years ago by mf2k (Frank Schima)

Replying to sewebster@…:

Hmm. The only python I have installed is python26, so I wouldn't expect python_select to do anything (?)

It also selects from the default Apple python. In fact, the Apple python is the default version when you type "python" from the command line. So python_select is useful even if you only have one Macports python installed.

Changed 14 years ago by hsivank@…

Attachment: app-gui-gui.c.diff added

Changed 14 years ago by hsivank@…

Attachment: app-gui-Makefile.am.diff added

Changed 14 years ago by hsivank@…

Attachment: app-gui-Makefile.in.diff added

Changed 14 years ago by hsivank@…

Attachment: app-main.c.diff added

comment:7 Changed 14 years ago by hsivank@…

Some patchs to bring gtk-osx-application support in gimp2-devel.
Need to be improved : There is a little bug in the first menu, an empty apple menu is created.

comment:8 Changed 14 years ago by hsivank@…

Cc: hsivank@… added

Cc Me!

Changed 14 years ago by hsivank@…

Attachment: Portfile-gimp2-devel.diff added

comment:9 Changed 14 years ago by hackdefendr (HackDefendr)

Once you tune these up, you should submit the none macport versions of these to my bug on the gimp site. I believe you would be aiding in a unblocking this show stopper.

Thanks, I am going to take a look at the patches in a bit.

--

comment:10 in reply to:  9 Changed 14 years ago by hsivank@…

Replying to gvibe06@…:

Once you tune these up, you should submit the none macport versions of these to my bug on the gimp site.

I'm not sure it is a good idea to integrate source code from ige-mac-integration or gtk-osx-application directly in Gimp. So i will waiting feedback from Gimp dev ...

comment:11 Changed 14 years ago by hackdefendr (HackDefendr)

ige-mac-menu is already integrated...if you build it and all deps i386, I think gimp2-devel will probably build fine. Based on some responses in my bug from Gimp Devs, it is a 64-bit with Cocoa and the migration of gtk-osx-application (this hasn't been migrated) issue. The patches you did, if this works, should be at least shown to the Gimp Devs, to help unblock this bug.

comment:12 Changed 14 years ago by sewebster@…

We have a bunch of different bugs here. Probably we should split them up. One is that gimp2 and gimp2-devel won't build anymore, unless you've got python select installed, which should not be required. Then there is the other stuff...

comment:13 in reply to:  11 Changed 14 years ago by hsivank@…

Replying to gvibe06@…:

ige-mac-menu is already integrated...if you build it and all deps i386, I think gimp2-devel will probably build fine.

I agree gimp2 will build fine on I386 with quartz out of the box.

Based on some responses in my bug from Gimp Devs, it is a 64-bit with Cocoa and the migration of gtk-osx-application (this hasn't been migrated) issue.

Gtk-osx-application can be built against carbon and cocoa ( it integrates the old 32 bit api (ige-mac-integration) and a new one (64bit) )
My patch add support for 64bit api and still support 32 bit

I'm not sure it is a good idea to add ige-mac-integration sources into gimp ( ige-*.c/.h ). so I use gtk-osx-application from macport, and i think gtk-osx-application should be integrated as a library dependency.

Gimp dev should take a look at gtk-osx-application cause it can add some great features to Gimp ( dock |menu/icon/drag and drop action| ...) we can replace gimp-app with a dummy bundle ...

The patches you did, if this works, should be at least shown to the Gimp Devs, to help unblock this bug.

Already posted a link on your bug report on bugzilla ;-)

comment:14 Changed 14 years ago by adamb2903

This is why it still fails:

:info:build pygimp-drawable.c:25:23: error: pygobject.h: No such file or directory :info:build gimpmodule.c:33:23: error: pygobject.h: No such file or directory :info:build pygimp-drawable.c: In function 'chn_set_color': :info:build pygimp-drawable.c:1913: warning: implicit declaration of function 'pyg_boxed_check' :info:build pygimp-drawable.c:1914: warning: implicit declaration of function 'pyg_boxed_get' :info:build pygimp-drawable.c:1914: error: expected expression before 'GimpRGB' :info:build pygimp-drawable.c:1914: warning: assignment makes pointer from integer without a cast :info:build pygimp-drawable.c: In function 'chn_init': :info:build pygimp-drawable.c:2030: error: expected expression before 'GimpRGB' :info:build pygimp-drawable.c:2030: warning: assignment makes pointer from integer without a cast :info:build make[4]: * [pygimp-drawable.lo] Error 1 :info:build make[4]: * Waiting for unfinished jobs.... :info:build gimpmodule.c: In function 'pygimp_user_directory': :info:build gimpmodule.c:1403: warning: implicit declaration of function 'pyg_enum_get_value' :info:build gimpmodule.c: In function 'initgimp': :info:build gimpmodule.c:1871: warning: implicit declaration of function 'init_pygobject' :info:build make[4]: * [gimpmodule.lo] Error 1 :info:build make[3]: * [all-recursive] Error 1 :info:build make[2]: * [all-recursive] Error 1 :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_graphics_gimp2/work/gimp-2.6.10" && /usr/bin/make -j2 all " returned error 2 :error:build Target org.macports.build returned: shell command failed :debug:build Backtrace: shell command failed

while executing

"command_exec build"

(procedure "portbuild::build_main" line 8) invoked from within

"$procedure $targetname" :info:build Warning: the following items did not execute (for gimp2): org.macports.activate org.macports.build org.macports.destroot org.macports.install :notice:build Log for gimp2 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_gimp2/main.log

Hope that helps!

comment:15 Changed 14 years ago by sewebster@…

That sounds like a different bug. Perhaps you should file a new ticket. Also please try to use wikiformatting in the future. In particular, surround your quoted output in triple curly braces ( {{{ and }}} ) on separate lines before and after the output.

comment:16 Changed 13 years ago by lhunath@…

Cc: lhunath@… added

Cc Me!

comment:17 Changed 13 years ago by lhunath@…

So what exactly is holding this issue up? Is more integration work needed or are we waiting for action from upstream?

comment:18 Changed 13 years ago by obutovich@…

Cc: obutovich@… added

Cc Me!

comment:19 Changed 13 years ago by mattiafrancescomoro@…

Any news?

comment:20 Changed 13 years ago by dbevans (David B. Evans)

Resolution: worksforme
Status: newclosed

Yes, there is.

Update to 2.7.3 committed in r84366. Builds on SL 10.6.8, Xcode 4.1, x86_64. Please test and submit your input as new tickets or via email lists. Native Mac OS X support seems to be a very low priority upstream (or maybe low interest).

ISSUES:

  • The Mac OS X native GUI uses 32 bit only Carbon primitives so will only build i386 or ppc.
  • Compile issues associated with GtkAccelLabel anachronisms in app/gui/ige-mac-menu.c solved by backporting patch from post 2.7.3 git master

BUILDING on 64 bit machines (x86_64 ppc64):

  • to aid building/rebuilding port and dependencies in 32 bit mode, configure MacPorts to build i386 or ppc

as the default (build_arch in $prefix/etc/macports/macports.conf)

  • rebuild all dependencies either +universal or rebuild using your new default so that they all have a 32 bit binary
  • python27 (default) needs to be built 32 bit only (not universal) so that it runs in 32 bit mode for plugins
  • build gimp2-devel in new default 32 bit mode

KNOWN PROBLEMS:

  • on startup the program waits a long time initializing the script-fu extension. Be patient.
  • gimp crashes if you try and open a file using the File->Open Recent... menu item. Using File->Open works fine.
Note: See TracTickets for help on using tickets.