linux packaging changes that use a specially installed GTK stack
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 24 Oct 2010 21:55:18 +0000 (21:55 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 24 Oct 2010 21:55:18 +0000 (21:55 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@7920 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/main.cc
tools/linux_packaging/ardour.sh.in
tools/linux_packaging/build
tools/linux_packaging/buildenv [new file with mode: 0644]

index c32d0d7ffbb7fe04fd3097aa7d08905900fdf470..3508c17d8fbd9b4da92657dd2260217f4c3e14d9 100644 (file)
@@ -366,13 +366,12 @@ fixup_bundle_environment (int argc, char* argv[])
        setenv ("GTK_PATH", path.c_str(), 1);
 
        if (!ARDOUR::translations_are_disabled ()) {
-
-               path = dir_path;
-               path += "/shared/locale";
-               
-               localedir = strdup (path.c_str());
-               setenv ("GTK_LOCALEDIR", localedir, 1);
-       }
+                path = dir_path;
+                path += "/share/locale";
+                
+                localedir = strdup (path.c_str());
+                setenv ("GTK_LOCALEDIR", localedir, 1);
+        }
 
        /* write a pango.rc file and tell pango to use it. we'd love
           to put this into the Ardour.app bundle and leave it there,
index cc9b4ff5269f14d1d88c8eb95daba5dd5e497a75..c36e91bc246eee778536a45b0718075adafd63fe 100644 (file)
@@ -26,7 +26,7 @@ export LD_LIBRARY_PATH=$INSTALL_DIR/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
 # We have to do this every time because its possible that BIN_DIR has changed
 
 sed "s?@ROOTDIR@/modules?$LIB_DIR/modules?" < $ETC_DIR/pango.modules.in > $USER_ARDOUR_DIR/pango.modules
-sed "s?@ROOTDIR@/loaders?$LIB_DIR/modules?" < $ETC_DIR/gdk-pixbuf.loaders.in > $USER_ARDOUR_DIR/gdk-pixbuf.loaders
+sed "s?@ROOTDIR@/loaders?$LIB_DIR/loaders?" < $ETC_DIR/gdk-pixbuf.loaders.in > $USER_ARDOUR_DIR/gdk-pixbuf.loaders
 
 exec $INSTALL_DIR/bin/ardour-2.8.11 "$@"
 
index 70acf1ed6d395063b45893f059a95ee0e25fd0a8..4d2d0d9f1ae579845a060aeda3bb71b35994bd19 100755 (executable)
@@ -1,8 +1,11 @@
 #!/bin/bash
 
+#
+
+. ./buildenv
+
 # script for pulling together a Linux app bundle.
 
-GTKROOT=
 SAE=
 MIXBUS=
 INTERNAL_JACK=1
@@ -38,7 +41,7 @@ while [ $# -gt 0 ] ; do
        --public) WITH_NLS=1 ; 
                  SAE= ; 
                  INTERNAL_JACK=; 
-                  WITH_LADSPA=1
+                  WITH_LADSPA=; 
                   STRIP= ; 
                  APPNAME=Ardour ;
                  shift ;;
@@ -86,6 +89,7 @@ Surfaces=$APPLIB/surfaces
 Panners=$APPLIB/panners
 Locale=$Shared/locale
 Modules=$Libraries/modules
+Loaders=$Libraries/loaders
 
 if [ x$PRINT_SYSDEPS != x ] ; then
 #
@@ -115,6 +119,7 @@ mkdir -p $APPLIB
 mkdir -p $Etc
 mkdir -p $Plugins
 mkdir -p $Modules
+mkdir -p $Loaders
 mkdir -p $Shared
 mkdir -p $Locale
 mkdir -p $Surfaces
@@ -186,7 +191,7 @@ if test x$WITH_NLS != x ; then
        cp $file $Locale/$lang/LC_MESSAGES/libardour.mo
     done
 
-    GTK_MESSAGES="gtk20-properties.mo gtk20.mo atk10.mo glib20.mo"
+    GTK_MESSAGES="atk10.mo gdk-pixbuf.mo gtk20-properties.mo gtk20.mo atk10.mo glib20.mo"
     LOCALEROOT=/usr/share/locale
 
     for l in $LINGUAS ; do
@@ -207,21 +212,20 @@ else
     echo "Skipping NLS support"
 fi
 
-if [ -d /usr/lib64 ] ; then
-    SYSLIB=/usr/lib64
-else 
-    SYSLIB=/usr/lib
-fi
+GTKROOT=`pkg-config --libs-only-L gtk+-2.0 | sed s/-L//`
+GTKROOT=`dirname $GTKROOT`
+echo GTK stack root is $GTKROOT
 
-GTKETC=/etc/gtk-2.0
-GTKLIB=$SYSLIB/gtk-2.0/2.10.0/
-PANGO=$SYSLIB/pango/1.6.0/
+GTKETC=${GTKROOT}/etc/gtk-2.0
+GTKLIB=${GTKROOT}/lib/gtk-2.0/2.10.0
+PANGOLIB=${GTKROOT}/lib/pango/1.6.0
+GDKPIXBUFLIB=${GTKROOT}/lib/gdk-pixbuf-2.0/2.10.0
 
 cp -R $GTKETC/* $Etc
 echo "Copying all Pango modules ..."
-cp -R $PANGO/modules/*.so $Modules
+cp -R $PANGOLIB/modules/*.so $Modules
 echo "Copying all GDK Pixbuf loaders ..."
-cp -R $GTKLIB/loaders/*.so $Modules
+cp -R $GDKPIXBUFLIB/loaders/*.so $Loaders
 
 pwd=`pwd`
 
@@ -239,17 +243,12 @@ if test x$WITH_LADSPA != x ; then
     fi
 fi
 
-if [ -x `which pango-querymodules-64` ] ; then
-    pango-querymodules-64 | sed "s?$SYSLIB/pango/[0-9][0-9]*\.[0-9][0-9]*.[0-9][0-9]*/?@ROOTDIR@/?" > $Etc/pango.modules.in
-    gdk-pixbuf-query-loaders-64 | sed "s?$SYSLIB/gtk-2.0/[0-9][0-9]*\.[0-9][0-9]*.[0-9][0-9]*/?@ROOTDIR@/?" > $Etc/gdk-pixbuf.loaders.in
-else
-    pango-querymodules | sed "s?$SYSLIB/pango/[0-9][0-9]*\.[0-9][0-9]*.[0-9][0-9]*/?@ROOTDIR@/?" > $Etc/pango.modules.in
-    gdk-pixbuf-query-loaders | sed "s?$SYSLIB/gtk-2.0/[0-9][0-9]*\.[0-9][0-9]*.[0-9][0-9]*/?@ROOTDIR@/?" > $Etc/gdk-pixbuf.loaders.in
-fi
+pango-querymodules | sed "s?$GTKROOT/lib/pango/[0-9][0-9]*\.[0-9][0-9]*.[0-9][0-9]*/?@ROOTDIR@/?" > $Etc/pango.modules.in
+gdk-pixbuf-query-loaders | sed "s?$GTKROOT/lib/gdk-pixbuf-2.0/[0-9][0-9]*\.[0-9][0-9]*.[0-9][0-9]*/?@ROOTDIR@/?" > $Etc/gdk-pixbuf.loaders.in
 
 # We sort of rely on clearlooks, so include a version
 # this one is special - we will set GTK_PATH to $Libraries/clearlooks
-cp $GTKLIB/engines/libclearlooks.so $Libraries
+cp /usr/lib64/gtk-2.0/2.10.0/engines/libclearlooks.so $Libraries
 mkdir -p $Libraries/clearlooks/engines
 (cd $Libraries/clearlooks/engines && ln -s ../../libclearlooks.so* )
 
@@ -271,8 +270,8 @@ while [ true ] ; do
            continue
        fi
         # do not include libjack
-       deps=`LD_LIBRARY_PATH=$OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}S ldd $file | awk '{print $3}' | egrep "($GTKROOT|/opt/|/local/|libs/|/usr/lib)" | grep -v 'libjack\.'`
-       # LD_LIBRARY_PATH=$OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}S ldd $file | egrep "($GTKROOT|/opt/|/local/|libs/|/usr/lib)" | grep -v 'libjack\.'
+       deps=`LD_LIBRARY_PATH=$OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ldd $file | awk '{print $3}' | egrep "(/opt/|/local/|libs/|/usr/lib|/gtk)" | grep -v 'libjack\.'`
+       # LD_LIBRARY_PATH=$OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ldd $file | egrep "(/opt/|/local/|libs/|/usr/lib|/gtk)" | grep -v 'libjack\.'
        echo -n "."
        for dep in $deps ; do
             if [ "x$dep" = "xnot" ] ; then 
@@ -290,10 +289,10 @@ while [ true ] ; do
            base=`basename $dep`
            if ! test -f $Libraries/$base; then
                if echo $dep | grep -sq '^libs' ; then
-                    echo Copying ../../$dep
+                    echo Copying ../../$dep
                    cp ../../$dep $Libraries
                else
-                    echo Copying $dep
+                    echo Copying $dep
                    cp $dep $Libraries
                fi
                missing=true
@@ -386,10 +385,10 @@ elif [ x$MIXBUS != x ] ; then
     fi
 fi
 
-echo "Building tarball ..."
+#echo "Building tarball ..."
 
-rm -f $APPNAME-$release_version.tar.bz2
-tar -jcf $APPNAME-$release_version.tar.bz2 $APPDIR
+#rm -f $APPNAME-$release_version.tar.bz2
+#tar -jcf $APPNAME-$release_version.tar.bz2 $APPDIR
 
 echo "Done."
 
diff --git a/tools/linux_packaging/buildenv b/tools/linux_packaging/buildenv
new file mode 100644 (file)
index 0000000..5d94591
--- /dev/null
@@ -0,0 +1,8 @@
+GTK_PREFIX_DIR=/gtk/will/search/here
+
+if ! echo $LD_LIBRARY_PATH | grep -qs $GTK_PREFIX_DIR ; then
+   LD_LIBRARY_PATH=${GTK_PREFIX_DIR}/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+   PATH=${GTK_PREFIX_DIR}/bin:$PATH
+   PKG_CONFIG_PATH=${GTK_PREFIX_DIR}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}
+fi
+