[84366] trunk/dports/graphics/gimp2-devel

devans at macports.org devans at macports.org
Fri Sep 23 15:38:05 PDT 2011


Revision: 84366
          http://trac.macports.org/changeset/84366
Author:   devans at macports.org
Date:     2011-09-23 15:38:05 -0700 (Fri, 23 Sep 2011)
Log Message:
-----------
gimp2-devel:
    * update to version 2.7.3
    * backport patch from post 2.7.3 upstream git master to allow building +quartz.
    * +quartz variant builds 32 bit only, see #25962.
    * variants simplified, no +no_x11 +x11 just +quartz, builds with X11 support by default.
    * variants added for +python25 +python26 +python27.
    * livecheck url updated.

Modified Paths:
--------------
    trunk/dports/graphics/gimp2-devel/Portfile
    trunk/dports/graphics/gimp2-devel/files/patch-etc-gimprc.diff

Added Paths:
-----------
    trunk/dports/graphics/gimp2-devel/files/patch-app-gui-ige-mac-menu.c.diff

Modified: trunk/dports/graphics/gimp2-devel/Portfile
===================================================================
--- trunk/dports/graphics/gimp2-devel/Portfile	2011-09-23 22:37:14 UTC (rev 84365)
+++ trunk/dports/graphics/gimp2-devel/Portfile	2011-09-23 22:38:05 UTC (rev 84366)
@@ -5,14 +5,13 @@
 
 name            gimp2-devel
 conflicts       gimp2
-# please remember to update the gimp metapackage to match
-version         2.7.1
-revision        5
+version         2.7.3
 categories      graphics
 maintainers     devans
 homepage        http://www.gimp.org/
 platforms       darwin
 
+
 description     The GNU Image Manipulation Program
 long_description \
 	The GNU Image Manipulation Program (GIMP) is a powerful \
@@ -20,21 +19,26 @@
 	The GIMP provides the user with a wide variety of image \
 	manipulation, painting, processing, and rendering tools.
 
+#
+#  Native Mac OS X GUI (+quartz) uses 32 bit only Carbon API
+#
+
+if {[variant_isset quartz]} {
+    supported_archs i386 ppc
+}
+
 universal_variant  no
 
 set branch      [join [lrange [split ${version} .] 0 1] .]
 master_sites    gimp:gimp/v${branch}/
 
-checksums       md5     4932a0a1645ecd5b23ea6155ddda013d \
-                sha1    3dcfc08ddccbdf541449e4ea6be252b449f6d872 \
-                rmd160  0d90735de80cc8aeeef43f6441ffcbdf6fee32c9
+checksums       sha1    bea6edc3423774ace8dd86222314f4ef2278cdd8 \
+                rmd160  5740b1b62b0fca255d0ca046477c21ab9c57a5ca
 
 distname        gimp-${version}
+
 use_bzip2       yes
 
-patchfiles      patch-etc-gimprc.diff \
-                patch-plug-ins-twain-tw_mac.c.diff
-
 depends_build   port:pkgconfig \
                 port:intltool
 
@@ -51,37 +55,69 @@
                 port:curl \
                 port:libwmf \
                 port:lcms \
-                port:dbus-glib \
-                port:py26-gtk
+                port:dbus-glib
 
-platform darwin 9 {
-    post-patch {
-        reinplace "s|-export-symbols-regex.*||g" ${worksrcpath}/plug-ins/pygimp/Makefile.am
-        reinplace "s|-export-symbols-regex.*||g" ${worksrcpath}/plug-ins/pygimp/Makefile.in
+patchfiles      patch-etc-gimprc.diff \
+                patch-plug-ins-twain-tw_mac.c.diff \
+                patch-app-gui-ige-mac-menu.c.diff
+
+pre-configure {
+    if {[file exists ${prefix}/lib/gtk-2.0/include/gdkconfig.h]} {
+        set gtk_not_quartz [catch {exec grep -q GDK_WINDOWING_QUARTZ ${prefix}/lib/gtk-2.0/include/gdkconfig.h}]
+        set gtk_not_x11 [catch {exec grep -q GDK_WINDOWING_X11 ${prefix}/lib/gtk-2.0/include/gdkconfig.h}]
+        if {[variant_isset quartz] && ${gtk_not_quartz}} {
+            error "+quartz variant selected, but gtk2+x11 is installed"
+        } elseif {[variant_isset x11] && ${gtk_not_x11}} {
+            error "+quartz variant is not selected, but gtk2+quartz is installed"
+        }
+    } else {
+            error "Cannot find gdkconfig.h"
     }
 }
 
-use_parallel_build  yes
-configure.python    ${prefix}/bin/python2.6
-set python_framework ${frameworks_dir}/Python.framework/Versions/2.6
-configure.pkg_config_path ${python_framework}/lib/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig
-configure.env   PATH=${python_framework}/bin:$env(PATH)
 configure.args  --build=${configure.build_arch}-apple-${os.platform}${os.version} \
                 --enable-mp \
                 --with-pdbgen \
                 --with-x \
-                --without-hal \
                 --without-alsa \
+                --without-gudev \
                 --without-gvfs \
                 --without-webkit \
                 --enable-default-binary \
                 --enable-gimp-console
 
+variant python25 conflicts no_python python26 python27 description {Use python 2.5} {
+    configure.python          ${prefix}/bin/python2.5
+    depends_lib-append        port:py25-gtk
+    set python_framework      ${frameworks_dir}/Python.framework/Versions/2.5
+    configure.pkg_config_path ${python_framework}/lib/pkgconfig
+    configure.env             PATH=${python_framework}/bin:$env(PATH)
+}
+
+variant python26 conflicts no_python python25 python27 description {Use python 2.6} {
+    configure.python          ${prefix}/bin/python2.6
+    depends_lib-append        port:py26-gtk
+    set python_framework      ${frameworks_dir}/Python.framework/Versions/2.6
+    configure.pkg_config_path ${python_framework}/lib/pkgconfig
+    configure.env             PATH=${python_framework}/bin:$env(PATH)
+}
+
+variant python27 conflicts no_python python25 python26 description {Use python 2.7} {
+    configure.python          ${prefix}/bin/python2.7
+    depends_lib-append        port:py27-gtk
+    set python_framework      ${frameworks_dir}/Python.framework/Versions/2.7
+    configure.pkg_config_path ${python_framework}/lib/pkgconfig
+    configure.env             PATH=${python_framework}/bin:$env(PATH)
+}
+
 variant no_python description {Disable Python scripts and filters} {
-    depends_lib-delete      port:py26-gtk
     configure.args-append   --disable-python
 }
 
+if {![variant_isset no_python] && ![variant_isset python25] && ![variant_isset python26]} {
+    default_variants +python27
+}
+
 variant gvfs description {Enable gvfs support} {
     depends_lib-append      port:gvfs
     configure.args-delete   --without-gvfs
@@ -100,46 +136,14 @@
     configure.args-append  --enable-debug
 }
 
-if {[variant_isset no_x11]} {
-    default_variants    +quartz
-}
-
-if {![variant_isset quartz]} {
-    default_variants    +x11
-}
-
-pre-fetch {
-    if {![variant_isset quartz] && ![variant_isset x11]} {
-        error "Either +x11 or +quartz is required"
-    }
-}
-
-pre-configure {
-    if {[file exists ${prefix}/lib/gtk-2.0/include/gdkconfig.h]} {
-        set gtk_not_quartz [catch {exec grep -q GDK_WINDOWING_QUARTZ ${prefix}/lib/gtk-2.0/include/gdkconfig.h}]
-        set gtk_not_x11 [catch {exec grep -q GDK_WINDOWING_X11 ${prefix}/lib/gtk-2.0/include/gdkconfig.h}]
-        if {[variant_isset quartz] && ${gtk_not_quartz}} {
-            error "+quartz variant selected, but gtk2+x11 is installed"
-        } elseif {[variant_isset x11] && ${gtk_not_x11}} {
-            error "+x11 variant selected, but gtk2+quartz is installed"
-        }
-    } else {
-            error "Cannot find gdkconfig.h"
-    }
-}
-
-variant quartz requires no_x11 conflicts x11 {
+variant quartz {
+    configure.args-delete --with-x
+    configure.args-append --without-x
     configure.ldflags-append   -framework Carbon
 }
 
-variant x11 conflicts quartz description {Enable rendering in X11} {
-}
+default_variants +debug
 
-variant no_x11 {
-    configure.args-delete --with-x
-    configure.args-append --without-x
-}
-
 livecheck.type  regex
-livecheck.url   ftp://ftp.gtk.org/pub/gimp/v${branch}/
+livecheck.url   ftp://ftp.gimp.org/pub/gimp/v${branch}/
 livecheck.regex "gimp-(${branch}(?:\\.\\d+)*)${extract.suffix}"

Added: trunk/dports/graphics/gimp2-devel/files/patch-app-gui-ige-mac-menu.c.diff
===================================================================
--- trunk/dports/graphics/gimp2-devel/files/patch-app-gui-ige-mac-menu.c.diff	                        (rev 0)
+++ trunk/dports/graphics/gimp2-devel/files/patch-app-gui-ige-mac-menu.c.diff	2011-09-23 22:38:05 UTC (rev 84366)
@@ -0,0 +1,169 @@
+--- app/gui/ige-mac-menu.c.orig
++++ app/gui/ige-mac-menu.c
+@@ -300,52 +300,60 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
+ 
+   get_menu_label_text (widget, &label);
+ 
+-  if (GTK_IS_ACCEL_LABEL (label) &&
+-      GTK_ACCEL_LABEL (label)->accel_closure)
++  if (GTK_IS_ACCEL_LABEL (label))
+     {
+-      GtkAccelKey *key;
++      GClosure      *closure;
+ 
+-      key = gtk_accel_group_find (GTK_ACCEL_LABEL (label)->accel_group,
+-				  accel_find_func,
+-				  GTK_ACCEL_LABEL (label)->accel_closure);
++      g_object_get (label, "accel-closure", &closure, NULL);
+ 
+-      if (key            &&
+-	  key->accel_key &&
+-	  key->accel_flags & GTK_ACCEL_VISIBLE)
++      if (closure)
+ 	{
+-	  GdkDisplay      *display = gtk_widget_get_display (widget);
+-	  GdkKeymap       *keymap  = gdk_keymap_get_for_display (display);
+-	  GdkKeymapKey    *keys;
+-	  gint             n_keys;
++	  GtkAccelGroup *group;
++	  GtkAccelKey   *key;
+ 
+-	  if (gdk_keymap_get_entries_for_keyval (keymap, key->accel_key,
+-						 &keys, &n_keys))
+-	    {
+-	      UInt8 modifiers = 0;
++	  group = gtk_accel_group_from_accel_closure (closure);
++	  key = gtk_accel_group_find (group, accel_find_func, closure);
+ 
+-	      SetMenuItemCommandKey (carbon_item->menu, carbon_item->index,
+-				     true, keys[0].keycode);
++	  g_closure_unref (closure);
+ 
+-	      g_free (keys);
++	  if (key            &&
++	      key->accel_key &&
++	      key->accel_flags & GTK_ACCEL_VISIBLE)
++	    {
++	      GdkDisplay      *display = gtk_widget_get_display (widget);
++	      GdkKeymap       *keymap  = gdk_keymap_get_for_display (display);
++	      GdkKeymapKey    *keys;
++	      gint             n_keys;
+ 
+-	      if (key->accel_mods)
++	      if (gdk_keymap_get_entries_for_keyval (keymap, key->accel_key,
++						     &keys, &n_keys))
+ 		{
+-		  if (key->accel_mods & GDK_SHIFT_MASK)
+-		    modifiers |= kMenuShiftModifier;
++		  UInt8 modifiers = 0;
+ 
+-		  if (key->accel_mods & GDK_MOD1_MASK)
+-		    modifiers |= kMenuOptionModifier;
+-		}
++		  SetMenuItemCommandKey (carbon_item->menu, carbon_item->index,
++					 true, keys[0].keycode);
+ 
+-	      if (!(key->accel_mods & GDK_CONTROL_MASK))
+-		{
+-		  modifiers |= kMenuNoCommandModifier;
+-		}
++		  g_free (keys);
+ 
+-	      SetMenuItemModifiers (carbon_item->menu, carbon_item->index,
+-				    modifiers);
++		  if (key->accel_mods)
++		    {
++		      if (key->accel_mods & GDK_SHIFT_MASK)
++			modifiers |= kMenuShiftModifier;
+ 
+-	      return;
++		      if (key->accel_mods & GDK_MOD1_MASK)
++			modifiers |= kMenuOptionModifier;
++		    }
++
++		  if (!(key->accel_mods & GDK_CONTROL_MASK))
++		    {
++		      modifiers |= kMenuNoCommandModifier;
++		    }
++
++		  SetMenuItemModifiers (carbon_item->menu, carbon_item->index,
++					modifiers);
++
++		  return;
++		}
+ 	    }
+ 	}
+     }
+@@ -371,9 +379,20 @@ carbon_menu_item_accel_changed (GtkAccelGroup   *accel_group,
+ 
+   get_menu_label_text (widget, &label);
+ 
+-  if (GTK_IS_ACCEL_LABEL (label) &&
+-      GTK_ACCEL_LABEL (label)->accel_closure == accel_closure)
+-    carbon_menu_item_update_accelerator (carbon_item, widget);
++  if (GTK_IS_ACCEL_LABEL (label))
++    {
++      GClosure *closure;
++
++      g_object_get (label, "accel-closure", &closure, NULL);
++
++      if (closure)
++	{
++	  if (closure == accel_closure)
++	    carbon_menu_item_update_accelerator (carbon_item, widget);
++
++	  g_closure_unref (closure);
++	}
++    } 
+ }
+ 
+ static void
+@@ -398,12 +417,10 @@ carbon_menu_item_update_accel_closure (CarbonMenuItem *carbon_item,
+     }
+ 
+   if (GTK_IS_ACCEL_LABEL (label))
+-    carbon_item->accel_closure = GTK_ACCEL_LABEL (label)->accel_closure;
++    g_object_get (label, "accel-closure", &carbon_item->accel_closure, NULL);
+ 
+   if (carbon_item->accel_closure)
+     {
+-      g_closure_ref (carbon_item->accel_closure);
+-
+       group = gtk_accel_group_from_accel_closure (carbon_item->accel_closure);
+ 
+       g_signal_connect_object (group, "accel-changed",
+@@ -674,10 +691,10 @@ sync_menu_shell (GtkMenuShell *menu_shell,
+ 	  if (GTK_IS_SEPARATOR_MENU_ITEM (menu_item))
+ 	    attributes |= kMenuItemAttrSeparator;
+ 
+-	  if (!GTK_WIDGET_IS_SENSITIVE (menu_item))
++	  if (!gtk_widget_is_sensitive (menu_item))
+ 	    attributes |= kMenuItemAttrDisabled;
+ 
+-	  if (!GTK_WIDGET_VISIBLE (menu_item))
++	  if (!gtk_widget_get_visible (menu_item))
+ 	    attributes |= kMenuItemAttrHidden;
+ 
+ 	  InsertMenuItemTextWithCFString (carbon_menu, cfstr,
+@@ -730,10 +747,17 @@ parent_set_emission_hook (GSignalInvocationHint *ihint,
+ 	{
+ 	  menu_shell = previous_parent;
+         }
+-      else if (GTK_IS_MENU_SHELL (instance->parent))
+-	{
+-	  menu_shell = instance->parent;
+-	}
++      else
++      {
++        GtkWidget *parent;
++
++        parent = gtk_widget_get_parent (instance);
++
++        if (GTK_IS_MENU_SHELL (parent))
++	  {
++	    menu_shell = parent;
++	  }
++      }
+ 
+       if (menu_shell)
+         {

Modified: trunk/dports/graphics/gimp2-devel/files/patch-etc-gimprc.diff
===================================================================
--- trunk/dports/graphics/gimp2-devel/files/patch-etc-gimprc.diff	2011-09-23 22:37:14 UTC (rev 84365)
+++ trunk/dports/graphics/gimp2-devel/files/patch-etc-gimprc.diff	2011-09-23 22:38:05 UTC (rev 84366)
@@ -1,6 +1,6 @@
---- etc/gimprc.orig	2010-06-21 23:11:43.000000000 -0700
-+++ etc/gimprc	2010-08-02 10:24:40.000000000 -0700
-@@ -691,12 +691,16 @@
+--- etc/gimprc.orig	2011-08-21 10:09:47.000000000 -0700
++++ etc/gimprc	2011-09-05 09:16:36.000000000 -0700
+@@ -675,12 +675,16 @@
  # 
  # (help-browser gimp)
  
@@ -17,7 +17,7 @@
  # The location of the online user manual. This is used if
  # 'user-manual-online' is enabled.  This is a string value.
  # 
-@@ -708,6 +712,8 @@
+@@ -692,6 +696,8 @@
  # 
  # (dock-window-hint utility)
  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20110923/64139a98/attachment-0001.html>


More information about the macports-changes mailing list