mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 23:35:03 +01:00
add linux packaging script(s) from 2.0-ongoing
git-svn-id: svn://localhost/ardour2/branches/3.0@8625 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
85b4ff8669
commit
339ef19a6f
5 changed files with 996 additions and 189 deletions
|
|
@ -1,5 +1,10 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
#LD_LIBRARY_PATH needs to be set (empty) so that epa can swap between the original and the bundled version
|
||||||
|
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||||
|
|
||||||
|
export PREBUNDLE_ENV="$(env)"
|
||||||
|
|
||||||
BIN_DIR=$(dirname $(readlink -f $0))
|
BIN_DIR=$(dirname $(readlink -f $0))
|
||||||
INSTALL_DIR=$(dirname $BIN_DIR)
|
INSTALL_DIR=$(dirname $BIN_DIR)
|
||||||
LIB_DIR=$INSTALL_DIR/lib
|
LIB_DIR=$INSTALL_DIR/lib
|
||||||
|
|
@ -20,6 +25,7 @@ export ARDOUR_BUNDLED=true
|
||||||
%ENV%
|
%ENV%
|
||||||
|
|
||||||
export GTK_PATH=$INSTALL_DIR${GTK_PATH:+:$GTK_PATH}
|
export GTK_PATH=$INSTALL_DIR${GTK_PATH:+:$GTK_PATH}
|
||||||
|
export GTK_MODULES="" # Disable extra modules from being loaded by gtk (example, libcanberra-gtk-module.so)
|
||||||
export LD_LIBRARY_PATH=$INSTALL_DIR/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
export LD_LIBRARY_PATH=$INSTALL_DIR/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||||
|
|
||||||
# create install-location-dependent config files for Pango and GDK image loaders
|
# create install-location-dependent config files for Pango and GDK image loaders
|
||||||
|
|
@ -28,7 +34,7 @@ export LD_LIBRARY_PATH=$INSTALL_DIR/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||||
sed "s?@ROOTDIR@/modules?$LIB_DIR/modules?" < $ETC_DIR/pango.modules.in > $USER_ARDOUR_DIR/pango.modules
|
sed "s?@ROOTDIR@/modules?$LIB_DIR/modules?" < $ETC_DIR/pango.modules.in > $USER_ARDOUR_DIR/pango.modules
|
||||||
sed "s?@ROOTDIR@/loaders?$LIB_DIR/loaders?" < $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 "$@"
|
exec $INSTALL_DIR/bin/ardour-%VER% "$@"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,42 +15,55 @@ PRINT_SYSDEPS=
|
||||||
WITH_NLS=
|
WITH_NLS=
|
||||||
EXTERNAL_JACK=
|
EXTERNAL_JACK=
|
||||||
|
|
||||||
|
if [ $# -eq 0 ] ; then
|
||||||
|
echo ""
|
||||||
|
echo "ERROR - Please specify build type"
|
||||||
|
echo " --public"
|
||||||
|
echo " --sae"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
while [ $# -gt 0 ] ; do
|
while [ $# -gt 0 ] ; do
|
||||||
echo "arg = $1"
|
echo "arg = $1"
|
||||||
case $1 in
|
case $1 in
|
||||||
|
|
||||||
#
|
#
|
||||||
# top level build targets
|
# top level build targets
|
||||||
#
|
#
|
||||||
|
|
||||||
--sae) WITH_NLS= ;
|
--sae)
|
||||||
SAE=1 ;
|
WITH_NLS= ;
|
||||||
INTERNAL_JACK=1;
|
SAE=1 ;
|
||||||
WITH_LADSPA=1;
|
INTERNAL_JACK=1;
|
||||||
STRIP= ;
|
WITH_LADSPA=1;
|
||||||
APPNAME=Ardour ;
|
STRIP= ;
|
||||||
shift ;;
|
APPNAME=Ardour ;
|
||||||
--mixbus) MIXBUS=1;
|
shift ;;
|
||||||
WITH_NLS=1 ;
|
--mixbus)
|
||||||
SAE= ;
|
MIXBUS=1;
|
||||||
INTERNAL_JACK=;
|
WITH_NLS=1 ;
|
||||||
WITH_LADSPA=;
|
SAE= ;
|
||||||
STRIP= ;
|
INTERNAL_JACK=;
|
||||||
APPNAME=Mixbus ;
|
WITH_LADSPA=;
|
||||||
shift ;;
|
STRIP= ;
|
||||||
--public) WITH_NLS=1 ;
|
APPNAME=Mixbus ;
|
||||||
SAE= ;
|
shift ;;
|
||||||
INTERNAL_JACK=;
|
--public)
|
||||||
WITH_LADSPA=;
|
WITH_NLS=1 ;
|
||||||
STRIP= ;
|
SAE= ;
|
||||||
APPNAME=Ardour ;
|
INTERNAL_JACK=;
|
||||||
shift ;;
|
WITH_LADSPA=;
|
||||||
--allinone) SAE= ;
|
STRIP= ;
|
||||||
WITH_NLS= ;
|
APPNAME=Ardour ;
|
||||||
INTERNAL_JACK=1;
|
shift ;;
|
||||||
WITH_LADSPA=1;
|
--allinone)
|
||||||
STRIP= ;
|
SAE= ;
|
||||||
shift ;;
|
WITH_NLS= ;
|
||||||
|
INTERNAL_JACK=1;
|
||||||
|
WITH_LADSPA=1;
|
||||||
|
STRIP= ;
|
||||||
|
shift ;;
|
||||||
--test) SAE= ; INTERNAL_JACK=; WITH_LADSPA=; STRIP= ; shift ;;
|
--test) SAE= ; INTERNAL_JACK=; WITH_LADSPA=; STRIP= ; shift ;;
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
@ -63,11 +76,19 @@ while [ $# -gt 0 ] ; do
|
||||||
--sysdeps) PRINT_SYSDEPS=1; shift ;;
|
--sysdeps) PRINT_SYSDEPS=1; shift ;;
|
||||||
--nls) WITH_NLS=1 ; shift ;;
|
--nls) WITH_NLS=1 ; shift ;;
|
||||||
--external_jack) EXTERNAL_JACK=$2; shift ; shift ;;
|
--external_jack) EXTERNAL_JACK=$2; shift ; shift ;;
|
||||||
esac
|
|
||||||
|
*)
|
||||||
|
#catch all for unknown arguments
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Unknown argument $1"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ x$EXTERNAL_JACK != x -a x$INTERNAL_JACK != x ] ; then
|
if [ x$EXTERNAL_JACK != x -a x$INTERNAL_JACK != x ] ; then
|
||||||
echo "It makes no sense to package JACK internally and externally. Please pick one."
|
echo "It makes no sense to package JACK internally and externally. Please pick one."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
release_version=`grep -m 1 '^ardour_version' ../../SConstruct | cut -d' ' -f 3 | sed "s/'//g"`
|
release_version=`grep -m 1 '^ardour_version' ../../SConstruct | cut -d' ' -f 3 | sed "s/'//g"`
|
||||||
|
|
@ -76,9 +97,29 @@ echo "Version is $release_version / $svn_version"
|
||||||
info_string="$release_version/$svn_version built on `hostname` by `whoami` on `date`"
|
info_string="$release_version/$svn_version built on `hostname` by `whoami` on `date`"
|
||||||
echo "Info string is $info_string"
|
echo "Info string is $info_string"
|
||||||
|
|
||||||
|
# Figure out our CPU type
|
||||||
|
case `uname -m` in
|
||||||
|
i[3456789]86|x86|i86pc)
|
||||||
|
echo "Architecture is x86"
|
||||||
|
ARCH='x86'
|
||||||
|
ARCH_BITS='32-bit'
|
||||||
|
;;
|
||||||
|
x86_64|amd64|AMD64)
|
||||||
|
echo "Architecture is x86_64"
|
||||||
|
ARCH='x86_64'
|
||||||
|
ARCH_BITS='64-bit'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo ""
|
||||||
|
echo "ERROR - Unknown architecture `uname -m`"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# setup directory structure
|
# setup directory structure
|
||||||
|
|
||||||
APPDIR=${APPNAME}
|
APPDIR=${APPNAME}_${ARCH}-${release_version}_${svn_version}
|
||||||
APPBIN=$APPDIR/bin
|
APPBIN=$APPDIR/bin
|
||||||
APPLIB=$APPDIR/lib
|
APPLIB=$APPDIR/lib
|
||||||
Libraries=$APPLIB
|
Libraries=$APPLIB
|
||||||
|
|
@ -91,23 +132,23 @@ Locale=$Shared/locale
|
||||||
Modules=$Libraries/modules
|
Modules=$Libraries/modules
|
||||||
Loaders=$Libraries/loaders
|
Loaders=$Libraries/loaders
|
||||||
|
|
||||||
|
|
||||||
if [ x$PRINT_SYSDEPS != x ] ; then
|
if [ x$PRINT_SYSDEPS != x ] ; then
|
||||||
#
|
#
|
||||||
# print system dependencies
|
# print system dependencies
|
||||||
#
|
#
|
||||||
|
|
||||||
for file in $APPBIN/* $Libraries/* $Modules/* $Plugins/*.so ; do
|
for file in $APPBIN/* $Libraries/* $Modules/* $Plugins/*.so ; do
|
||||||
if ! file $file | grep -qs Mach-O ; then
|
if ! file $file | grep -qs Mach-O ; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
otool -L $file | awk '{print $1}' | egrep -v "(^@executable_path|^Ardour[0-9][.0-9]*.app)"
|
otool -L $file | awk '{print $1}' | egrep -v "(^@executable_path|^Ardour[0-9][.0-9]*.app)"
|
||||||
done | sort | uniq
|
done | sort | uniq
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Removing old $APPDIR tree ..."
|
echo "Removing old $APPDIR tree ..."
|
||||||
|
rm -rf $APPDIR/
|
||||||
rm -rf $APPDIR
|
|
||||||
|
|
||||||
echo "Building new app directory structure ..."
|
echo "Building new app directory structure ..."
|
||||||
|
|
||||||
|
|
@ -132,25 +173,21 @@ rm -f $ENVIRONMENT
|
||||||
touch $ENVIRONMENT
|
touch $ENVIRONMENT
|
||||||
|
|
||||||
if test x$SAE != x ; then
|
if test x$SAE != x ; then
|
||||||
appname="Ardour2/SAE"
|
echo "export ARDOUR_SAE=true" >> $ENVIRONMENT
|
||||||
echo "export ARDOUR_SAE=true" >> $ENVIRONMENT
|
#
|
||||||
#
|
# current default for SAE version is German keyboard layout without a keypad
|
||||||
# current default for SAE version is German keyboard layout without a keypad
|
#
|
||||||
#
|
echo export ARDOUR_KEYBOARD_LAYOUT=de-nokeypad >> $ENVIRONMENT
|
||||||
echo export ARDOUR_KEYBOARD_LAYOUT=de-nokeypad >> $ENVIRONMENT
|
echo export ARDOUR_UI_CONF=ardour2_ui_sae.conf >> $ENVIRONMENT
|
||||||
echo export ARDOUR_UI_CONF=ardour2_ui_sae.conf >> $ENVIRONMENT
|
echo export ARDOUR2_UI_RC=ardour2_ui_dark_sae.rc >> $ENVIRONMENT
|
||||||
echo export ARDOUR2_UI_RC=ardour2_ui_dark_sae.rc >> $ENVIRONMENT
|
|
||||||
elif test x$MIXBUS != x ; then
|
elif test x$MIXBUS != x ; then
|
||||||
appname="Ardour2/Mixbus"
|
echo export ARDOUR_MIXBUS=true >> $ENVIRONMENT
|
||||||
echo export ARDOUR_MIXBUS=true >> $ENVIRONMENT
|
#
|
||||||
#
|
# current default for MIXBUS version is US keyboard layout without a keypad
|
||||||
# current default for MIXBUS version is US keyboard layout without a keypad
|
#
|
||||||
#
|
echo export ARDOUR_KEYBOARD_LAYOUT=us-nokeypad >> $ENVIRONMENT
|
||||||
echo export ARDOUR_KEYBOARD_LAYOUT=us-nokeypad >> $ENVIRONMENT
|
echo export ARDOUR_UI_CONF=ardour2_ui.conf >> $ENVIRONMENT
|
||||||
echo export ARDOUR_UI_CONF=ardour2_ui.conf >> $ENVIRONMENT
|
echo export ARDOUR2_UI_RC=ardour2_ui_dark.rc >> $ENVIRONMENT
|
||||||
echo export ARDOUR2_UI_RC=ardour2_ui_dark.rc >> $ENVIRONMENT
|
|
||||||
else
|
|
||||||
appname="Ardour2"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
@ -162,95 +199,223 @@ echo export 'PATH=/usr/local/bin:/opt/bin:$PATH' >> $ENVIRONMENT
|
||||||
|
|
||||||
# create startup helper script
|
# create startup helper script
|
||||||
|
|
||||||
sed -e "/^%ENV%/r $ENVIRONMENT" -e '/^%ENV%/d' < ardour.sh.in > $APPBIN/ardour2
|
sed -e "/^%ENV%/r $ENVIRONMENT" -e '/^%ENV%/d' -e 's/%VER%/'"${release_version}"'/' < ardour.sh.in > $APPBIN/ardour2
|
||||||
rm $ENVIRONMENT && chmod 775 $APPBIN/ardour2
|
rm $ENVIRONMENT && chmod 775 $APPBIN/ardour2
|
||||||
MAIN_EXECUTABLE=ardour-$release_version
|
MAIN_EXECUTABLE=ardour-$release_version
|
||||||
|
|
||||||
echo "Copying ardour executable ...."
|
echo "Copying ardour executable ...."
|
||||||
cp ../../gtk2_ardour/$MAIN_EXECUTABLE $APPBIN
|
cp ../../gtk2_ardour/$MAIN_EXECUTABLE $APPBIN
|
||||||
if test x$STRIP != x ; then
|
if test x$STRIP != x ; then
|
||||||
strip $APPBIN/$MAIN_EXECUTABLE
|
strip $APPBIN/$MAIN_EXECUTABLE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# copy locale files
|
# copy locale files
|
||||||
if test x$WITH_NLS != x ; then
|
if test x$WITH_NLS != x ; then
|
||||||
echo "NLS support ..."
|
echo "NLS support ..."
|
||||||
echo "I hope you remembered to run scons msgupdate!"
|
echo "I hope you remembered to run scons msgupdate!"
|
||||||
LINGUAS=
|
LINGUAS=
|
||||||
for file in ../../gtk2_ardour/*.mo
|
files=`find ../../gtk2_ardour/ -name "*.mo"`
|
||||||
do
|
|
||||||
lang=`basename $file | sed 's/\.mo//'`
|
|
||||||
mkdir -p $Locale/$lang/LC_MESSAGES
|
|
||||||
cp $file $Locale/$lang/LC_MESSAGES/gtk2_ardour.mo
|
|
||||||
LINGUAS="$LINGUAS $lang"
|
|
||||||
done
|
|
||||||
for file in ../../libs/ardour/*.mo
|
|
||||||
do
|
|
||||||
lang=`basename $file | sed 's/\.mo//'`
|
|
||||||
mkdir -p $Locale/$lang/LC_MESSAGES
|
|
||||||
cp $file $Locale/$lang/LC_MESSAGES/libardour.mo
|
|
||||||
done
|
|
||||||
|
|
||||||
GTK_MESSAGES="atk10.mo gdk-pixbuf.mo gtk20-properties.mo gtk20.mo atk10.mo glib20.mo"
|
if [ -z "$files" ]; then
|
||||||
LOCALEROOT=/usr/share/locale
|
echo ""
|
||||||
|
echo "!!!! WARNING !!!! - Did not find any .mo files in ../../gtk2_ardour"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
for file in $files
|
||||||
|
do
|
||||||
|
echo $file
|
||||||
|
lang=`basename $file | sed 's/\.mo//'`
|
||||||
|
mkdir -p $Locale/$lang/LC_MESSAGES
|
||||||
|
cp $file $Locale/$lang/LC_MESSAGES/gtk2_ardour.mo
|
||||||
|
LINGUAS="$LINGUAS $lang"
|
||||||
|
done
|
||||||
|
|
||||||
for l in $LINGUAS ; do
|
files=`find ../../libs/ardour/ -name "*.mo"`
|
||||||
echo "Copying GTK i18n files for $l..."
|
|
||||||
for MO in $GTK_MESSAGES ; do
|
if [ -z "$files" ]; then
|
||||||
if [ -f $LOCALEROOT/$l/LC_MESSAGES/$MO ] ; then
|
echo ""
|
||||||
cp $LOCALEROOT/$l/LC_MESSAGES/$MO $Locale/$l/LC_MESSAGES
|
echo "!!!! WARNING !!!! - Did not find any .mo files in ../../libs/ardour"
|
||||||
else
|
echo ""
|
||||||
# try with just the language spec
|
fi
|
||||||
just_lang=`echo $l | sed 's/_[A-Z][A-Z]$//'`
|
|
||||||
if [ -f $LOCALEROOT/$just_lang/LC_MESSAGES/$MO ] ; then
|
for file in $files
|
||||||
cp $LOCALEROOT/$just_lang/LC_MESSAGES/$MO $Locale/$just_lang/LC_MESSAGES
|
do
|
||||||
fi
|
echo $file
|
||||||
fi
|
lang=`basename $file | sed 's/\.mo//'`
|
||||||
done
|
mkdir -p $Locale/$lang/LC_MESSAGES
|
||||||
done
|
cp $file $Locale/$lang/LC_MESSAGES/libardour.mo
|
||||||
|
done
|
||||||
|
|
||||||
|
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
|
||||||
|
echo "Copying GTK i18n files for $l..."
|
||||||
|
for MO in $GTK_MESSAGES ; do
|
||||||
|
if [ -f $LOCALEROOT/$l/LC_MESSAGES/$MO ] ; then
|
||||||
|
cp $LOCALEROOT/$l/LC_MESSAGES/$MO $Locale/$l/LC_MESSAGES
|
||||||
|
else
|
||||||
|
# try with just the language spec
|
||||||
|
just_lang=`echo $l | sed 's/_[A-Z][A-Z]$//'`
|
||||||
|
if [ -f $LOCALEROOT/$just_lang/LC_MESSAGES/$MO ] ; then
|
||||||
|
cp $LOCALEROOT/$just_lang/LC_MESSAGES/$MO $Locale/$just_lang/LC_MESSAGES
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
else
|
else
|
||||||
echo "Skipping NLS support"
|
echo "Skipping NLS support"
|
||||||
|
fi
|
||||||
|
|
||||||
|
### Find gtk ###
|
||||||
|
GTKROOT=`pkg-config --libs-only-L gtk+-2.0 | sed -e "s/-L//" -e "s/[[:space:]]//g"`
|
||||||
|
if [ ! -z "$GTKROOT" ]; then
|
||||||
|
echo "Found GTKROOT using pkg-config"
|
||||||
|
elif [ -d /usr/lib/gtk-2.0 ]; then
|
||||||
|
GTKROOT="/usr/lib/gtk-2.0"
|
||||||
|
elif [ -d /usr/local/lib/gtk-2.0 ]; then
|
||||||
|
GTKROOT="/usr/local/lib/gtk-2.0"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Unable to locate gtk-2.0 directory. Packager will exit"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "GTKROOT is ${GTKROOT}"
|
||||||
|
versionDir=`ls ${GTKROOT}/gtk-2.0/ | grep "[0-9]*\.[0-9]*\.[0-9]*"`
|
||||||
|
|
||||||
|
num=0
|
||||||
|
for name in $versionDir ; do
|
||||||
|
let "num += 1"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $num -eq 1 ]; then
|
||||||
|
GTKLIB=${GTKROOT}/gtk-2.0/$versionDir
|
||||||
|
echo "GTKLIB is ${GTKLIB}"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - More than one gtk-2.0 version found in ${GTKROOT}/gtk-2.0/ ( $versionDir ). Packager will exit"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
### Find pango ###
|
||||||
|
PANGOROOT=`pkg-config --libs-only-L pango | sed -e "s/-L//" -e "s/[[:space:]]//g"`
|
||||||
|
if [ ! -z "$PANGOROOT" ]; then
|
||||||
|
echo "Found PANGOROOT using pkg-config"
|
||||||
|
elif [ -d /usr/lib/pango ]; then
|
||||||
|
PANGOROOT="/usr/lib/pango"
|
||||||
|
elif [ -d /usr/local/lib/pango ]; then
|
||||||
|
PANGOROOT="/usr/local/lib/pango"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Unable to locate pango directory. Packager will exit"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "PANGOROOT is ${PANGOROOT}"
|
||||||
|
versionDir=`ls ${PANGOROOT}/pango/ | grep "[0-9]*\.[0-9]*\.[0-9]*"`
|
||||||
|
|
||||||
|
num=0
|
||||||
|
for name in $versionDir ; do
|
||||||
|
let "num += 1"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $num -eq 1 ]; then
|
||||||
|
PANGOLIB=${PANGOROOT}/pango/$versionDir
|
||||||
|
echo "PANGOLIB is ${PANGOLIB}"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - More than one pango version found in ${PANGOROOT}/pango/ ( $versionDir ). Packager will exit"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
### Find gdk-pixbuf ###
|
||||||
|
GDKPIXBUFROOT=`pkg-config --libs-only-L gdk-pixbuf-2.0 | sed -e "s/-L//" -e "s/[[:space:]]//g"`
|
||||||
|
if [ ! -z "$GDKPIXBUFROOT" ]; then
|
||||||
|
echo "Found GDKPIXBUFROOT using pkg-config"
|
||||||
|
elif [ -d /usr/lib/gdk-pixbuf-2.0 ]; then
|
||||||
|
GDKPIXBUFROOT="/usr/lib/gdk-pixbuf-2.0"
|
||||||
|
elif [ -d /usr/local/lib/gdk-pixbuf-2.0 ]; then
|
||||||
|
GDKPIXBUFROOT="/usr/local/lib/gdk-pixbuf-2.0"
|
||||||
|
elif [ -d ${GTKLIB}/loaders ]; then #odd ball case
|
||||||
|
GDKPIXBUFROOT=${GTKROOT}
|
||||||
|
GDKPIXBUFLIB=${GTKLIB}
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Unable to locate gdk-pixbuf-2.0 directory. Packager will exit"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "GDKPIXBUFROOT is ${GDKPIXBUFROOT}"
|
||||||
|
|
||||||
|
if [ -z ${GDKPIXBUFLIB} ]; then
|
||||||
|
versionDir=`ls ${GDKPIXBUFROOT}/gdk-pixbuf-2.0/ | grep "[0-9]*\.[0-9]*\.[0-9]*"`
|
||||||
|
|
||||||
|
num=0
|
||||||
|
for name in $versionDir ; do
|
||||||
|
let "num += 1"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $num -eq 1 ]; then
|
||||||
|
GDKPIXBUFLIB=${GDKPIXBUFROOT}/gdk-pixbuf-2.0/$versionDir
|
||||||
|
echo "GDKPIXBUFLIB is ${GDKPIXBUFLIB}"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - More than one gdk-pixbuf-2.0 version found in ${GDKPIXBUFROOT}/pango/ ( $versionDir ). Packager will exit"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GTKROOT=`pkg-config --libs-only-L gtk+-2.0 | sed s/-L//`
|
|
||||||
GTKROOT=`dirname $GTKROOT`
|
|
||||||
echo GTK stack root is $GTKROOT
|
|
||||||
|
|
||||||
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 ..."
|
echo "Copying all Pango modules ..."
|
||||||
cp -R $PANGOLIB/modules/*.so $Modules
|
cp -R $PANGOLIB/modules/*.so $Modules
|
||||||
|
|
||||||
echo "Copying all GDK Pixbuf loaders ..."
|
echo "Copying all GDK Pixbuf loaders ..."
|
||||||
cp -R $GDKPIXBUFLIB/loaders/*.so $Loaders
|
cp -R $GDKPIXBUFLIB/loaders/*.so $Loaders
|
||||||
|
|
||||||
pwd=`pwd`
|
pango-querymodules | sed "s?$PANGOLIB/?@ROOTDIR@/?" > $Etc/pango.modules.in
|
||||||
|
gdk-pixbuf-query-loaders | sed "s?$GDKPIXBUFLIB/?@ROOTDIR@/?" > $Etc/gdk-pixbuf.loaders.in
|
||||||
if test x$WITH_LADSPA != x ; then
|
|
||||||
if test x$SAE != x ; then
|
|
||||||
plugdir=sae_ladspa
|
|
||||||
elif test x$MIXBUS != x ; then
|
|
||||||
plugdir=mixbus_ladspa
|
|
||||||
else
|
|
||||||
plugdir=ladspa
|
|
||||||
fi
|
|
||||||
echo "Copying `ls $plugdir | wc -l` plugins ..."
|
|
||||||
if [ -d $plugdir ] ; then
|
|
||||||
cp -r $plugdir/* $Plugins
|
|
||||||
fi
|
|
||||||
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
|
# We sort of rely on clearlooks, so include a version
|
||||||
# this one is special - we will set GTK_PATH to $Libraries/clearlooks
|
# this one is special - we will set GTK_PATH to $Libraries/clearlooks
|
||||||
cp /usr/lib64/gtk-2.0/2.10.0/engines/libclearlooks.so $Libraries
|
|
||||||
|
if [ ! -e ${GTKLIB}/engines/libclearlooks.so ]; then
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - not able to locate libclearlooks.so"
|
||||||
|
echo ""
|
||||||
|
echo "Packager with exit"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Copying clearlooks ..."
|
||||||
|
cp ${GTKLIB}/engines/libclearlooks.so $Libraries
|
||||||
mkdir -p $Libraries/clearlooks/engines
|
mkdir -p $Libraries/clearlooks/engines
|
||||||
(cd $Libraries/clearlooks/engines && ln -s ../../libclearlooks.so* )
|
(cd $Libraries/clearlooks/engines && ln -s ../../libclearlooks* libclearlooks.so )
|
||||||
|
|
||||||
|
# LADSPA
|
||||||
|
if test x$WITH_LADSPA != x ; then
|
||||||
|
if test x$SAE != x ; then
|
||||||
|
plugdir=sae_ladspa
|
||||||
|
elif test x$MIXBUS != x ; then
|
||||||
|
plugdir=mixbus_ladspa
|
||||||
|
else
|
||||||
|
plugdir=ladspa
|
||||||
|
fi
|
||||||
|
echo "Copying `ls $plugdir | wc -l` plugins ..."
|
||||||
|
if [ -d $plugdir ] ; then
|
||||||
|
cp -r $plugdir/* $Plugins
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# XXX STILL NEED TO DO PANNERS FOR TRUNK
|
# XXX STILL NEED TO DO PANNERS FOR TRUNK
|
||||||
cp ../../libs/surfaces/*/libardour_*.so* $Surfaces
|
cp ../../libs/surfaces/*/libardour_*.so* $Surfaces
|
||||||
|
|
@ -263,56 +428,88 @@ cp ../../libs/vamp-plugins/libardourvampplugins.so* $Libraries
|
||||||
OURLIBDIR=../../libs
|
OURLIBDIR=../../libs
|
||||||
OURLIBS=$OURLIBDIR/vamp-sdk:$OURLIBDIR/surfaces/control_protocol:$OURLIBDIR/ardour:$OURLIBDIR/midi++2:$OURLIBDIR/pbd:$OURLIBDIR/rubberband:$OURLIBDIR/soundtouch:$OURLIBDIR/gtkmm2ext:$OURLIBDIR/sigc++2:$OURLIBDIR/glibmm2:$OURLIBDIR/gtkmm2/atk:$OURLIBDIR/gtkmm2/pango:$OURLIBDIR/gtkmm2/gdk:$OURLIBDIR/gtkmm2/gtk:$OURLIBDIR/libgnomecanvasmm:$OURLIBDIR/libsndfile
|
OURLIBS=$OURLIBDIR/vamp-sdk:$OURLIBDIR/surfaces/control_protocol:$OURLIBDIR/ardour:$OURLIBDIR/midi++2:$OURLIBDIR/pbd:$OURLIBDIR/rubberband:$OURLIBDIR/soundtouch:$OURLIBDIR/gtkmm2ext:$OURLIBDIR/sigc++2:$OURLIBDIR/glibmm2:$OURLIBDIR/gtkmm2/atk:$OURLIBDIR/gtkmm2/pango:$OURLIBDIR/gtkmm2/gdk:$OURLIBDIR/gtkmm2/gtk:$OURLIBDIR/libgnomecanvasmm:$OURLIBDIR/libsndfile
|
||||||
|
|
||||||
|
echo $OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||||
|
|
||||||
|
checkedIdx=0
|
||||||
|
|
||||||
while [ true ] ; do
|
while [ true ] ; do
|
||||||
missing=false
|
missing=false
|
||||||
for file in $APPBIN/* $Libraries/* $Modules/* $Plugins/*.so ; do
|
filelist=`find $APPLIB/ -type f`
|
||||||
if ! file $file | grep -qs ELF ; then
|
filelist="$APPBIN/$MAIN_EXECUTABLE $filelist"
|
||||||
continue
|
|
||||||
fi
|
|
||||||
# do not include 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
|
|
||||||
echo "Missing dependant library. Use ldd to find and fix"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't use anything mapped at a specific address
|
for file in $filelist ; do
|
||||||
if echo $dep | grep -qs '0x' ; then continue; fi
|
if ! file $file | grep -qs ELF ; then
|
||||||
# don't include any X Window libraries
|
continue
|
||||||
if echo $dep | grep -qs libX ; then continue; fi
|
|
||||||
# don't include libc
|
|
||||||
if echo $dep | grep -qs 'libc\.' ; then continue; fi
|
|
||||||
|
|
||||||
base=`basename $dep`
|
|
||||||
if ! test -f $Libraries/$base; then
|
|
||||||
if echo $dep | grep -sq '^libs' ; then
|
|
||||||
# echo Copying ../../$dep
|
|
||||||
cp ../../$dep $Libraries
|
|
||||||
else
|
|
||||||
# echo Copying $dep
|
|
||||||
cp $dep $Libraries
|
|
||||||
fi
|
fi
|
||||||
missing=true
|
|
||||||
fi
|
# speed this up a bit by not checking things multiple times.
|
||||||
|
for i in "${depCheckedList[@]}"; do
|
||||||
|
if [ $i == $file ]; then
|
||||||
|
continue 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
depCheckedList[$checkIdx]=$file
|
||||||
|
let "checkIdx += 1"
|
||||||
|
|
||||||
|
# do not include libjack
|
||||||
|
deps=`LD_LIBRARY_PATH=$OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ldd $file | awk '{print $3}'`
|
||||||
|
|
||||||
|
# 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 test "not" = ${dep}; then
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Missing dependant library for $file."
|
||||||
|
echo ""
|
||||||
|
(LD_LIBRARY_PATH=$OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ldd $file)
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - See Above"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't use anything mapped at a specific address
|
||||||
|
if echo $dep | grep -qs '0x' ; then continue; fi
|
||||||
|
# don't include /lib
|
||||||
|
if echo $dep | grep -qs "^/lib/" ; then continue; fi
|
||||||
|
# don't include jack
|
||||||
|
if echo $dep | grep -qs libjack ; then continue; fi
|
||||||
|
# don't include any X Window libraries
|
||||||
|
if echo $dep | grep -qs libX ; then continue; fi
|
||||||
|
if echo $dep | grep -qs libxcb ; then continue; fi
|
||||||
|
# don't include libc
|
||||||
|
if echo $dep | grep -qs 'libc\.' ; then continue; fi
|
||||||
|
# don't include libstdc++
|
||||||
|
if echo $dep | grep -qs libstdc++ ; then continue; fi
|
||||||
|
|
||||||
|
base=`basename $dep`
|
||||||
|
if ! test -f $Libraries/$base; then
|
||||||
|
parent=$(basename ${file})
|
||||||
|
if echo $dep | grep -sq '^libs' ; then
|
||||||
|
echo "Copying dependant lib ../../$dep (required by ${parent})"
|
||||||
|
cp ../../$dep $Libraries
|
||||||
|
else
|
||||||
|
echo "Copying dependant lib $dep (required by ${parent})"
|
||||||
|
cp $dep $Libraries
|
||||||
|
fi
|
||||||
|
missing=true
|
||||||
|
fi
|
||||||
|
done
|
||||||
done
|
done
|
||||||
done
|
if test x$missing = xfalse ; then
|
||||||
if test x$missing = xfalse ; then
|
# everything has been found
|
||||||
# everything has been found
|
break
|
||||||
break
|
fi
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# strip libraries
|
# strip libraries
|
||||||
echo Stripping libraries
|
echo Stripping libraries
|
||||||
strip $APPLIB/*.so*
|
find $APPLIB/ -name "*.so*" | xargs strip
|
||||||
|
find $APPLIB/ -name "*.so*" | xargs chmod a+rx
|
||||||
|
|
||||||
echo "Copying other stuff to $APPDIR ..."
|
echo "Copying other stuff to $APPDIR ..."
|
||||||
|
|
||||||
cp ../../gtk2_ardour/ergonomic-us.bindings $Etc
|
cp ../../gtk2_ardour/ergonomic-us.bindings $Etc
|
||||||
cp ../../gtk2_ardour/mnemonic-us.bindings $Etc
|
cp ../../gtk2_ardour/mnemonic-us.bindings $Etc
|
||||||
cp ../../gtk2_ardour/SAE-de-keypad.bindings $Etc
|
cp ../../gtk2_ardour/SAE-de-keypad.bindings $Etc
|
||||||
cp ../../gtk2_ardour/SAE-de-nokeypad.bindings $Etc
|
cp ../../gtk2_ardour/SAE-de-nokeypad.bindings $Etc
|
||||||
|
|
@ -321,15 +518,15 @@ cp ../../gtk2_ardour/SAE-us-nokeypad.bindings $Etc
|
||||||
cp ../../gtk2_ardour/ardour.menus $Etc
|
cp ../../gtk2_ardour/ardour.menus $Etc
|
||||||
cp ../../gtk2_ardour/ardour-sae.menus $Etc
|
cp ../../gtk2_ardour/ardour-sae.menus $Etc
|
||||||
if test x$SAE != x ; then
|
if test x$SAE != x ; then
|
||||||
cp ../../ardour_system_sae.rc $Etc/ardour_system.rc
|
cp ../../ardour_system_sae.rc $Etc/ardour_system.rc
|
||||||
echo cp ../../ardour_system_sae.rc $Etc/ardour_system.rc
|
echo cp ../../ardour_system_sae.rc $Etc/ardour_system.rc
|
||||||
cp ../../instant.xml.sae $Etc/instant.xml
|
cp ../../instant.xml.sae $Etc/instant.xml
|
||||||
echo cp ../../instant.xml.sae $Etc/instant.xml
|
echo cp ../../instant.xml.sae $Etc/instant.xml
|
||||||
else
|
else
|
||||||
# cp ../../ardour_system.rc $Etc/ardour_system.rc
|
cp ../../ardour_system.rc $Etc/ardour_system.rc
|
||||||
# echo FOO cp ../../ardour_system.rc $Etc/ardour_system.rc
|
echo cp ../../ardour_system.rc $Etc/ardour_system.rc
|
||||||
cp ../../instant.xml $Etc/instant.xml
|
cp ../../instant.xml $Etc/instant.xml
|
||||||
echo cp ../../instant.xml $Etc/instant.xml
|
echo cp ../../instant.xml $Etc/instant.xml
|
||||||
fi
|
fi
|
||||||
cp ../../gtk2_ardour/ardour2_ui_sae.conf $Etc
|
cp ../../gtk2_ardour/ardour2_ui_sae.conf $Etc
|
||||||
cp ../../gtk2_ardour/ardour2_ui_default.conf $Etc
|
cp ../../gtk2_ardour/ardour2_ui_default.conf $Etc
|
||||||
|
|
@ -347,7 +544,7 @@ cp -r ../../gtk2_ardour/pixmaps $Etc
|
||||||
#
|
#
|
||||||
|
|
||||||
if [ -d specialSauce ] ; then
|
if [ -d specialSauce ] ; then
|
||||||
cp -r specialSauce $Etc
|
cp -r specialSauce $Etc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# share stuff
|
# share stuff
|
||||||
|
|
@ -357,38 +554,46 @@ cp ../../templates/*.template $Shared/templates/
|
||||||
|
|
||||||
# go through and recursively remove any .svn dirs in the bundle
|
# go through and recursively remove any .svn dirs in the bundle
|
||||||
for svndir in `find $APPDIR -name .svn -type d`; do
|
for svndir in `find $APPDIR -name .svn -type d`; do
|
||||||
rm -rf $svndir
|
rm -rf $svndir
|
||||||
done
|
done
|
||||||
|
|
||||||
|
#Sanity Check file
|
||||||
|
if [ -e ../sanity_check/sanityCheck ]; then
|
||||||
|
cp ../sanity_check/sanityCheck $APPDIR
|
||||||
|
else
|
||||||
|
echo "!!!ERROR !!! sanityCheck program is missing. packager will exit without being complete"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# and now ... the final package
|
# and now ... the final package
|
||||||
#
|
#
|
||||||
|
|
||||||
if [ x$SAE != x ] ; then
|
if [ x$SAE != x ] ; then
|
||||||
|
|
||||||
# SAE packaging
|
# SAE packaging
|
||||||
|
|
||||||
echo "Creating SAE packaging directory"
|
echo "Creating SAE packaging directory"
|
||||||
cp HowToInstallArdourSAE.pdf "$APPDIR/How To Install Ardour SAE.pdf"
|
cp HowToInstallArdourSAE.pdf "$APPDIR/How To Install Ardour SAE.pdf"
|
||||||
cp SAE-de-keypad.pdf "$APPDIR/Ardour SAE Shortcuts (keypad).pdf"
|
cp SAE-de-keypad.pdf "$APPDIR/Ardour SAE Shortcuts (keypad).pdf"
|
||||||
cp SAE-de-nokeypad.pdf "$APPDIR/Ardour SAE Shortcuts.pdf"
|
cp SAE-de-nokeypad.pdf "$APPDIR/Ardour SAE Shortcuts.pdf"
|
||||||
|
|
||||||
elif [ x$MIXBUS != x ] ; then
|
elif [ x$MIXBUS != x ] ; then
|
||||||
|
|
||||||
# Mixbus packaging
|
# Mixbus packaging
|
||||||
|
|
||||||
echo "Creating Mixbus packaging directory"
|
echo "Creating Mixbus packaging directory"
|
||||||
cp MixBus_Install_QuickStart.pdf "$APPDIR/Mixbus Install & Quick Start Guide.pdf"
|
cp MixBus_Install_QuickStart.pdf "$APPDIR/Mixbus Install & Quick Start Guide.pdf"
|
||||||
|
|
||||||
if [ -x $EXTERNAL_JACK != x ] ; then
|
if [ -x $EXTERNAL_JACK != x ] ; then
|
||||||
cp $EXTERNAL_JACK $PRODUCT_PKG_DIR
|
cp $EXTERNAL_JACK $PRODUCT_PKG_DIR
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#echo "Building tarball ..."
|
echo "Building tarball ..."
|
||||||
|
|
||||||
#rm -f $APPNAME-$release_version.tar.bz2
|
rm -f $APPDIR.tar.bz2
|
||||||
#tar -jcf $APPNAME-$release_version.tar.bz2 $APPDIR
|
tar -cjf $APPDIR.tar.bz2 $APPDIR
|
||||||
|
|
||||||
echo "Done."
|
echo "Done."
|
||||||
|
|
||||||
|
|
|
||||||
16
tools/linux_packaging/install.sh
Executable file
16
tools/linux_packaging/install.sh
Executable file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Make sure we have a terminal for the user to see and then run
|
||||||
|
# the real install script.
|
||||||
|
|
||||||
|
if [ -z $WINDOWID ]; then
|
||||||
|
if which xterm > /dev/null; then
|
||||||
|
exec xterm -e ./stage2.run
|
||||||
|
elif which gnome-terminal > /dev/null; then
|
||||||
|
exec gnome-terminal -e ./stage2.run
|
||||||
|
elif which konsole > /dev/null; then
|
||||||
|
exec konsole -e ./stage2.run
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
./stage2.run
|
||||||
|
fi
|
||||||
85
tools/linux_packaging/package
Executable file
85
tools/linux_packaging/package
Executable file
|
|
@ -0,0 +1,85 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# bundle
|
||||||
|
|
||||||
|
if [ $# -eq 0 ] ; then
|
||||||
|
echo ""
|
||||||
|
echo "ERROR - Please specify build type"
|
||||||
|
echo " --public"
|
||||||
|
echo " --sae"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while [ $# -gt 0 ] ; do
|
||||||
|
echo "arg = $1"
|
||||||
|
case $1 in
|
||||||
|
|
||||||
|
#
|
||||||
|
# top level build targets
|
||||||
|
#
|
||||||
|
|
||||||
|
--sae)
|
||||||
|
APPNAME=Ardour ;
|
||||||
|
shift ;;
|
||||||
|
--mixbus)
|
||||||
|
APPNAME=Mixbus ;
|
||||||
|
shift ;;
|
||||||
|
--public)
|
||||||
|
APPNAME=Ardour ;
|
||||||
|
shift ;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
#catch all for unknown arguments
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Unknown argument $1"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
release_version=`grep -m 1 '^ardour_version' ../../SConstruct | cut -d' ' -f 3 | sed "s/'//g"`
|
||||||
|
svn_version=`grep -m 1 'svn_revision =' ../../libs/ardour/svn_revision.cc | cut -d' ' -f 6 | sed 's/[";]//g'`
|
||||||
|
|
||||||
|
X86_BUILD="${APPNAME}_x86-${release_version}_${svn_version}.tar.bz2"
|
||||||
|
X86_64_BUILD="${APPNAME}_x86_64-${release_version}_${svn_version}.tar.bz2"
|
||||||
|
PACKAGE="${APPNAME}-${release_version}_${svn_version}"
|
||||||
|
|
||||||
|
if [ ! -e ${X86_BUILD} ]; then
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Can't locate x86 build file ${X86_BUILD}"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ${X86_64_BUILD} ]; then
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Can't locate x86_64 build file ${X86_64_BUILD}"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Cleaning up any old package files for this build"
|
||||||
|
#Get rid of any old packages of this same name.
|
||||||
|
rm -f ${PACKAGE}.tar.bz2
|
||||||
|
rm -rf ${PACKAGE}
|
||||||
|
|
||||||
|
|
||||||
|
echo "Creating new package dir..."
|
||||||
|
mkdir ${PACKAGE}
|
||||||
|
mv ${X86_BUILD} ${PACKAGE}
|
||||||
|
mv ${X86_64_BUILD} ${PACKAGE}
|
||||||
|
cp install.sh ${PACKAGE}
|
||||||
|
cp stage2.run ${PACKAGE}
|
||||||
|
|
||||||
|
echo "Creating tarball..."
|
||||||
|
tar -czf ${PACKAGE}.tar.gz ${PACKAGE}
|
||||||
|
|
||||||
|
echo "Clean up"
|
||||||
|
rm -rf ${PACKAGE}
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Done"
|
||||||
|
echo ""
|
||||||
495
tools/linux_packaging/stage2.run
Executable file
495
tools/linux_packaging/stage2.run
Executable file
|
|
@ -0,0 +1,495 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
####################################
|
||||||
|
#
|
||||||
|
# stage2.run
|
||||||
|
# Ardour/Mixbus bundle installer
|
||||||
|
# Todd Naugle
|
||||||
|
#
|
||||||
|
###################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PGM_NAME="Ardour"
|
||||||
|
PGM_VENDOR="Ardour"
|
||||||
|
PGM_EXEC_FILE="ardour2"
|
||||||
|
|
||||||
|
INSTALL_DEST_BASE="/usr/local/bin"
|
||||||
|
|
||||||
|
#### Derived Variables ####
|
||||||
|
PGM_NAME_LOWER=$(echo $PGM_NAME | tr '[:upper:]' '[:lower:]')
|
||||||
|
ICON_NAME="${PGM_VENDOR}-${PGM_NAME}"
|
||||||
|
MENU_FILE="${PGM_VENDOR}-${PGM_NAME}.desktop"
|
||||||
|
DESKTOP_LINK_FILE="${PGM_NAME}.desktop"
|
||||||
|
|
||||||
|
PGM_EXEC_PATH="${INSTALL_DEST_BASE}/${PGM_NAME}/bin/${PGM_EXEC_FILE}"
|
||||||
|
ICON_PATH="${INSTALL_DEST_BASE}/${PGM_NAME}/etc/icons"
|
||||||
|
MENU_FILE_PATH="${INSTALL_DEST_BASE}/${PGM_NAME}/${MENU_FILE}"
|
||||||
|
|
||||||
|
#### Global Variables ####
|
||||||
|
HAS_XDG="T"
|
||||||
|
|
||||||
|
########################
|
||||||
|
# Function Definitions
|
||||||
|
########################
|
||||||
|
|
||||||
|
VaildateYesNoQuestion ()
|
||||||
|
{
|
||||||
|
# $1 = Question Text
|
||||||
|
|
||||||
|
local INPUT_OK="n"
|
||||||
|
local USER_INPUT=""
|
||||||
|
|
||||||
|
until test "y" = $INPUT_OK;
|
||||||
|
do
|
||||||
|
echo ""
|
||||||
|
read -p "$1 [y/n]: " USER_INPUT
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
if [ ! -z $USER_INPUT ];
|
||||||
|
then
|
||||||
|
if [ "Y" = $USER_INPUT -o "y" = $USER_INPUT -o "n" = $USER_INPUT -o "N" = $USER_INPUT ];
|
||||||
|
then
|
||||||
|
INPUT_OK="y"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo $USER_INPUT | tr '[:upper:]' '[:lower:]'
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
SystemInstall ()
|
||||||
|
{
|
||||||
|
|
||||||
|
# Determine which software install app to use and then install requested package
|
||||||
|
# $1 = Package Name
|
||||||
|
|
||||||
|
if which yum > /dev/null;
|
||||||
|
then
|
||||||
|
sudo yum -y install $1
|
||||||
|
rtrn=$?
|
||||||
|
|
||||||
|
if [ $rtrn -ne 0 ];
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! yum install failed for an unknown reason."
|
||||||
|
echo "Please install package $1 after this installer completes."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif which apt-get > /dev/null;
|
||||||
|
then
|
||||||
|
sudo apt-get -y install $1
|
||||||
|
rtrn=$?
|
||||||
|
|
||||||
|
if [ $rtrn -ne 0 ];
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! apt-get install failed for an unknown reason."
|
||||||
|
echo "Please install package $1 after this installer completes."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Not able to detect which software install tool to use (yum or apt-get)."
|
||||||
|
echo "Please install package $1 using the system software install tool."
|
||||||
|
echo ""
|
||||||
|
rtrn=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
return $rtrn
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Main
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
##############
|
||||||
|
# Check sudo
|
||||||
|
##############
|
||||||
|
|
||||||
|
if ! sudo date;
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!!"
|
||||||
|
echo ""
|
||||||
|
echo "Either you don't know the root password or the user is not allowed to sudo"
|
||||||
|
echo "Please correct this and run the installer again (hint: use visudo to edit sudoers file)"
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to exit installer:" BLAH
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Determine processor type
|
||||||
|
############################
|
||||||
|
|
||||||
|
case `uname -m` in
|
||||||
|
i[3456789]86|x86|i86pc)
|
||||||
|
echo "Architecture is x86"
|
||||||
|
ARCH='x86'
|
||||||
|
BUNDLE_DIR=${PGM_NAME}_${ARCH}-*
|
||||||
|
;;
|
||||||
|
x86_64|amd64|AMD64)
|
||||||
|
echo "Architecture is x86_64"
|
||||||
|
ARCH='x86_64'
|
||||||
|
BUNDLE_DIR=${PGM_NAME}_${ARCH}-*
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Unknown architecture `uname -m`"
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to exit installer:" BLAH
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# untar the correct bundle for us to install
|
||||||
|
echo "Unpacking bundle for $ARCH"
|
||||||
|
tar -xjf ${BUNDLE_DIR}.tar.bz2
|
||||||
|
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# Check for xdg utils
|
||||||
|
#######################
|
||||||
|
|
||||||
|
XDG_MENU_VER=$(xdg-desktop-menu --version 2> /dev/null)
|
||||||
|
if [ -z "$XDG_MENU_VER" ];
|
||||||
|
then
|
||||||
|
echo "System does not have xdg-desktop-menu installed"
|
||||||
|
HAS_XDG="F"
|
||||||
|
fi
|
||||||
|
|
||||||
|
XDG_ICON_VER=$(xdg-icon-resource --version 2> /dev/null)
|
||||||
|
if [ -z "$XDG_ICON_VER" ];
|
||||||
|
then
|
||||||
|
echo "System does not have xdg-icon-resource installed"
|
||||||
|
HAS_XDG="F"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#################################################
|
||||||
|
# Check if system libs are OK (libc, etc)
|
||||||
|
#################################################
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Checking system libs to see if they are compatible with ${PGM_NAME}."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
LIB_ERROR="F"
|
||||||
|
LD_PATH=`pwd`/${BUNDLE_DIR}/lib
|
||||||
|
|
||||||
|
# check the main App
|
||||||
|
LDD_RESULT=$(LD_LIBRARY_PATH=${LD_PATH} ldd ${BUNDLE_DIR}/bin/${PGM_NAME_LOWER}-* 2>&1 > /dev/null)
|
||||||
|
|
||||||
|
if [ -n "$LDD_RESULT" ];
|
||||||
|
then
|
||||||
|
echo "$LDD_RESULT"
|
||||||
|
LIB_ERROR="T"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check the libs
|
||||||
|
LIB_FILES=$(find ${BUNDLE_DIR}/lib -name "*.so")
|
||||||
|
|
||||||
|
for path in $LIB_FILES
|
||||||
|
do
|
||||||
|
LDD_RESULT=$(LD_LIBRARY_PATH=${LD_PATH} ldd $path 2>&1 > /dev/null)
|
||||||
|
if [ -n "$LDD_RESULT" ];
|
||||||
|
then
|
||||||
|
echo "$LDD_RESULT"
|
||||||
|
LIB_ERROR="T"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test "T" = $LIB_ERROR;
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Missing library detected!"
|
||||||
|
echo "This system does not have the correct libs to run ${PGM_NAME}."
|
||||||
|
echo "Installation will not complete. Please use a compatible distro."
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to exit installer:" BLAH
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
################################
|
||||||
|
# Install bundle and Menu/Link
|
||||||
|
################################
|
||||||
|
|
||||||
|
# uninstall any older versions
|
||||||
|
if [ -d ${INSTALL_DEST_BASE}/${PGM_NAME} ];
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "Removing existing ${PGM_NAME} installation from ${INSTALL_DEST_BASE}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
if [ "T" = ${HAS_XDG} ];
|
||||||
|
then
|
||||||
|
sudo xdg-desktop-menu uninstall ${MENU_FILE_PATH}
|
||||||
|
sudo xdg-icon-resource uninstall --size 16 ${ICON_NAME}
|
||||||
|
sudo xdg-icon-resource uninstall --size 22 ${ICON_NAME}
|
||||||
|
sudo xdg-icon-resource uninstall --size 32 ${ICON_NAME}
|
||||||
|
sudo xdg-icon-resource uninstall --size 48 ${ICON_NAME}
|
||||||
|
|
||||||
|
if [ -e /usr/share/icons/hicolor/scalable/apps/${ICON_NAME}.svg ];
|
||||||
|
then
|
||||||
|
sudo rm -f /usr/share/icons/hicolor/scalable/apps/${ICON_NAME}.svg
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ~/Desktop/${DESKTOP_LINK_FILE} ];
|
||||||
|
then
|
||||||
|
sudo rm -f ~/Desktop/${DESKTOP_LINK_FILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# delete the old package
|
||||||
|
sudo rm -rf ${INSTALL_DEST_BASE}/${PGM_NAME}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Installing ${PGM_NAME} in ${INSTALL_DEST_BASE}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Copy the new version in the install directory
|
||||||
|
sudo mkdir ${INSTALL_DEST_BASE}/${PGM_NAME}
|
||||||
|
sudo cp -Rf ${BUNDLE_DIR}/* ${INSTALL_DEST_BASE}/${PGM_NAME}
|
||||||
|
|
||||||
|
# write the desktop/menu file
|
||||||
|
echo "[Desktop Entry]" > /tmp/${MENU_FILE}
|
||||||
|
echo "Encoding=UTF-8" >> /tmp/${MENU_FILE}
|
||||||
|
echo "Version=1.0" >> /tmp/${MENU_FILE}
|
||||||
|
echo "Type=Application" >> /tmp/${MENU_FILE}
|
||||||
|
echo "Terminal=false" >> /tmp/${MENU_FILE}
|
||||||
|
echo "Exec=${PGM_EXEC_PATH}" >> /tmp/${MENU_FILE}
|
||||||
|
echo "Name=${PGM_NAME}" >> /tmp/${MENU_FILE}
|
||||||
|
echo "Icon=${ICON_NAME}" >> /tmp/${MENU_FILE}
|
||||||
|
echo "Comment=Digital Audio Workstation" >> /tmp/${MENU_FILE}
|
||||||
|
echo "Categories=AudioVideo;Audio;Recorder;" >> /tmp/${MENU_FILE}
|
||||||
|
|
||||||
|
chmod ugo+rx /tmp/${MENU_FILE}
|
||||||
|
sudo mv /tmp/${MENU_FILE} ${MENU_FILE_PATH}
|
||||||
|
|
||||||
|
# install the Menu, Link, and Icon(s)
|
||||||
|
if [ "T" = ${HAS_XDG} ];
|
||||||
|
then
|
||||||
|
echo "Adding ${PGM_NAME} to the applications menu"
|
||||||
|
sudo xdg-icon-resource install --context apps --size 16 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_16px.png ${ICON_NAME}
|
||||||
|
sudo xdg-icon-resource install --context apps --size 22 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_22px.png ${ICON_NAME}
|
||||||
|
sudo xdg-icon-resource install --context apps --size 32 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_32px.png ${ICON_NAME}
|
||||||
|
sudo xdg-icon-resource install --context apps --size 48 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_48px.png ${ICON_NAME}
|
||||||
|
|
||||||
|
if [ -e ${ICON_PATH}/${PGM_NAME_LOWER}_icon.svg -a -d /usr/share/icons/hicolor/scalable/apps ];
|
||||||
|
then
|
||||||
|
sudo cp -f ${ICON_PATH}/${PGM_NAME_LOWER}_icon.svg /usr/share/icons/hicolor/scalable/apps/${ICON_NAME}.svg
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo xdg-desktop-menu install ${MENU_FILE_PATH}
|
||||||
|
|
||||||
|
echo "Creating a desktop link for ${PGM_NAME}"
|
||||||
|
cp ${MENU_FILE_PATH} ~/Desktop/${DESKTOP_LINK_FILE}
|
||||||
|
chmod ugo+rx ~/Desktop/${DESKTOP_LINK_FILE}
|
||||||
|
else
|
||||||
|
echo "Creating a desktop link for ${PGM_NAME}"
|
||||||
|
cp ${MENU_FILE_PATH} ~/Desktop/${DESKTOP_LINK_FILE}
|
||||||
|
chmod ugo+rx ~/Desktop/${DESKTOP_LINK_FILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Check Jack and qjackctl
|
||||||
|
###########################
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Checking to see if Jack is installed"
|
||||||
|
|
||||||
|
if ! which jackd > /dev/null;
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "The program Jack is missing from this system. Jack is a required component of $PGM_NAME."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
ANSWER=$(VaildateYesNoQuestion "Install jack using system software repository?")
|
||||||
|
|
||||||
|
if test "y" = $ANSWER;
|
||||||
|
then
|
||||||
|
echo "Attempting to install Jack"
|
||||||
|
SystemInstall "jackd"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ];
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Jack OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if ! which qjackctl > /dev/null;
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "The program QjackCtl is missing from this system. QjackCtl is an OPTIONAL component of $PGM_NAME."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
ANSWER=$(VaildateYesNoQuestion "Install QjackCtl using system software repository?")
|
||||||
|
|
||||||
|
if test "y" = $ANSWER;
|
||||||
|
then
|
||||||
|
echo "Attempting to install QjackCtl"
|
||||||
|
SystemInstall "qjackctl"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ];
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
########################
|
||||||
|
# Run Sanity Check
|
||||||
|
########################
|
||||||
|
|
||||||
|
USER_GROUP_ADJUSTED="f"
|
||||||
|
|
||||||
|
if ! ./${BUNDLE_DIR}/sanityCheck -a > /dev/null;
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "System failed the quick sanity check... Looking for the cause"
|
||||||
|
|
||||||
|
if ! ./${BUNDLE_DIR}/sanityCheck -rt > /dev/null;
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "System does not allow realtime for the current user... Looking for a solution"
|
||||||
|
|
||||||
|
if ./${BUNDLE_DIR}/sanityCheck -hasaudiogroup > /dev/null;
|
||||||
|
then
|
||||||
|
if ./${BUNDLE_DIR}/sanityCheck -memberaudiogroup > /dev/null 2>&1;
|
||||||
|
then
|
||||||
|
## This is an odd case. We have an audio group and are a member.
|
||||||
|
echo ""
|
||||||
|
echo "!!! WARNING !!! - The current user can not execute realtime processes."
|
||||||
|
echo "This will adversely affect audio latency."
|
||||||
|
echo "This system has an audio group and the user is a member. If jack was"
|
||||||
|
echo "just installed, a simple log out/in may fix this."
|
||||||
|
echo ""
|
||||||
|
echo "For best results, please correct this on your system."
|
||||||
|
echo "(Hint: check /etc/security/limits.conf or /etc/security/limits.d/)"
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
else
|
||||||
|
# Not a member of an audio group. Try to fix it.
|
||||||
|
|
||||||
|
if ./${BUNDLE_DIR}/sanityCheck -hasgroup audio > /dev/null && find /etc/security -type f -name "*.conf" | xargs grep -q "^@audio.*rtprio";
|
||||||
|
then
|
||||||
|
# add user to audio group
|
||||||
|
echo ""
|
||||||
|
echo "Adding user `whoami` to the audio group."
|
||||||
|
echo "This should allow you to run realtime tasks. Please re-login for this change to take affect."
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
|
||||||
|
user=`whoami`
|
||||||
|
if sudo usermod -a -G audio $user;
|
||||||
|
then
|
||||||
|
USER_GROUP_ADJUSTED="t"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Not able to add user to the audio group (usermod failed)!"
|
||||||
|
echo ""
|
||||||
|
echo "Please add yourself to the audio group and re-login"
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif ./${BUNDLE_DIR}/sanityCheck -hasgroup jackuser > /dev/null && find /etc/security -type f -name "*.conf" | xargs grep -q "^@jackuser.*rtprio";
|
||||||
|
then
|
||||||
|
# add user to jackuser group
|
||||||
|
echo ""
|
||||||
|
echo "Adding user `whoami` to the jackuser group."
|
||||||
|
echo "This should allow you to run realtime tasks. Please re-login for this change to take affect."
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
|
||||||
|
user=`whoami`
|
||||||
|
if sudo usermod -a -G jackuser $user;
|
||||||
|
then
|
||||||
|
USER_GROUP_ADJUSTED="t"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "!!! ERROR !!! - Not able to add user to the jackuser group."
|
||||||
|
echo ""
|
||||||
|
echo "Please add yourself to the audio group and re-login"
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# No audio group found on this system!
|
||||||
|
echo ""
|
||||||
|
echo "!!! WARNING !!! - The system does not seem to have an audio group (audio or jackuser)."
|
||||||
|
echo ""
|
||||||
|
echo "We will not attempt to fix this. Please configure your system to allow"
|
||||||
|
echo "non-root users to execute realtime tasks."
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! ./${BUNDLE_DIR}/sanityCheck -freqscaling > /dev/null;
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "!!! WARNING !!! - Your system seems to use frequency scaling."
|
||||||
|
echo "This can have a serious impact on audio latency. You have two choices:"
|
||||||
|
echo "(1) turn it off, e.g. by chosing the 'performance' governor."
|
||||||
|
echo "(2) Use the HPET clocksource by passing \"-c h\" to JACK"
|
||||||
|
echo "(this second option only works on relatively recent computers)"
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "f" = $USER_GROUP_ADJUSTED ];
|
||||||
|
then
|
||||||
|
if ! ./${BUNDLE_DIR}/sanityCheck -memlock > /dev/null;
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
echo "!!! WARNING !!! - You are not allowed to lock memory."
|
||||||
|
echo ""
|
||||||
|
echo "We will not attempt to fix this. Please configure your system to allow"
|
||||||
|
echo "non-root users to execute lock memory."
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to continue:" BLAH
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
########################
|
||||||
|
# Install Complete
|
||||||
|
########################
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Cleaning up"
|
||||||
|
rm -rf ${BUNDLE_DIR}/
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "!!! Install Complete !!!"
|
||||||
|
|
||||||
|
if [ "t" = $USER_GROUP_ADJUSTED ];
|
||||||
|
then
|
||||||
|
echo "You will need to logout and then login again for all changes to be complete"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
read -p "Press ENTER to close this window:" BLAH
|
||||||
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue