aboutsummaryrefslogtreecommitdiffstats
path: root/packaging
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2011-07-17 20:23:07 +0000
committerGuy Harris <guy@alum.mit.edu>2011-07-17 20:23:07 +0000
commit0b967aa242fa173e586e1ed3291f87ddfb152a60 (patch)
treeaa44b3d7775a4422e1ca28d2c2ec3618592fc363 /packaging
parent73df12fdcc0b6fe46ed1dab3821ffe34c149f91f (diff)
Handle versions of GTK+ where gdk-pixbuf is a separate library.
svn path=/trunk/; revision=38072
Diffstat (limited to 'packaging')
-rwxr-xr-xpackaging/macosx/osx-app.sh33
1 files changed, 31 insertions, 2 deletions
diff --git a/packaging/macosx/osx-app.sh b/packaging/macosx/osx-app.sh
index f819b318f1..95804a3939 100755
--- a/packaging/macosx/osx-app.sh
+++ b/packaging/macosx/osx-app.sh
@@ -274,7 +274,20 @@ cp -r $LIBPREFIX/etc/fonts/conf.avail $pkgetc/fonts/
cp -r $LIBPREFIX/etc/fonts/conf.d $pkgetc/fonts/
mkdir -p $pkgetc/gtk-2.0
-sed -e "s,$LIBPREFIX,\${CWD},g" $LIBPREFIX/etc/gtk-2.0/gdk-pixbuf.loaders > $pkgetc/gtk-2.0/gdk-pixbuf.loaders
+#
+# In newer versions of GTK+, the gdk-pixbuf library was split off from
+# GTK+, and the gdk-pixbuf.loaders file moved, so we check for its
+# existence here.
+#
+# The file is ultimately copied to the user's home directory, with
+# the pathnames adjusted to refer to the installed package, so we
+# always put it in the same location in the installed package,
+# regardless of where it lives in the machine on which it's built.
+#
+if [ -e $LIBPREFIX/etc/gtk-2.0/gdk-pixbuf.loaders ]
+then
+ sed -e "s,$LIBPREFIX,\${CWD},g" $LIBPREFIX/etc/gtk-2.0/gdk-pixbuf.loaders > $pkgetc/gtk-2.0/gdk-pixbuf.loaders
+fi
sed -e "s,$LIBPREFIX,\${CWD},g" $LIBPREFIX/etc/gtk-2.0/gtk.immodules > $pkgetc/gtk-2.0/gtk.immodules
pango_version=`pkg-config --variable=pango_module_version pango`
@@ -288,10 +301,26 @@ cp -r $LIBPREFIX/lib/gtk-2.0/$gtk_version/* $pkglib/gtk-2.0/$gtk_version/
gdk_pixbuf_version=`pkg-config --variable=gdk_pixbuf_binary_version gdk-pixbuf-2.0`
if [ ! -z $gdk_pixbuf_version ]; then
mkdir -p $pkglib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders
+ #
+ # As per the above, check whether we have a loaders.cache file
+ # in $LIBPREFIX/lib/gdk-pixbuf-2.0/$gdk_pixbuf_version, as
+ # that's where the output of gdk-pixbuf-query-loaders gets
+ # put if gdk-pixbuf and GTK+ are separated.
+ #
+ # The file is ultimately copied to the user's home directory,
+ # with the pathnames adjusted to refer to the installed package,
+ # so we always put it in the same location in the installed
+ # package, regardless of where it lives in the machine on which
+ # it's built.
+ #
+ if [ -e $LIBPREFIX/lib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders.cache ]
+ then
+ sed -e "s,$LIBPREFIX,\${CWD},g" $LIBPREFIX/lib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders.cache > $pkgetc/gtk-2.0/gdk-pixbuf.loaders
+ fi
cp -r $LIBPREFIX/lib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders/* $pkglib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders
fi
-# Find out libs we need from fink, darwinports, or from a custom install
+# Find out libs we need from Fink, MacPorts, or from a custom install
# (i.e. $LIBPREFIX), then loop until no changes.
a=1
nfiles=0