merge in changes from 2.0 ongoing. Includes the build type in the package name and other fixes from 2.0

git-svn-id: svn://localhost/ardour2/branches/3.0@8962 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Todd Naugle 2011-02-25 22:05:15 +00:00
parent 5d86418fd2
commit e18cebd6d7
6 changed files with 159 additions and 48 deletions

View file

@ -1,5 +1,22 @@
#!/bin/sh #!/bin/sh
while [ $# -gt 0 ] ; do
echo "arg = $1"
case $1 in
-d)
DEBUG="T";
shift ;;
*)
#catch all for unknown arguments
echo ""
echo "!!! ERROR !!! - Unknown argument $1"
echo ""
exit 1
;;
esac
done
#LD_LIBRARY_PATH needs to be set (empty) so that epa can swap between the original and the bundled version #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 LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
@ -34,7 +51,12 @@ 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-3.0 "$@" if [ "T" = "$DEBUG" ]; then
export ARDOUR_INSIDE_GDB=1
exec gdb $INSTALL_DIR/bin/ardour-3.0 "$@"
else
exec $INSTALL_DIR/bin/ardour-3.0 "$@"
fi

View file

@ -5,6 +5,11 @@
. ./buildenv . ./buildenv
# script for pulling together a Linux app bundle. # script for pulling together a Linux app bundle.
#
# This will create a bundle for a single architecture.
# Execute this scirpt on both x86 and x86_64 and then use
# package to merge the 2 bundles into a final package with the
# installer.
MIXBUS= MIXBUS=
WITH_LADSPA=0 WITH_LADSPA=0
@ -12,7 +17,8 @@ STRIP=1
PRINT_SYSDEPS= PRINT_SYSDEPS=
WITH_NLS= WITH_NLS=
EXTERNAL_JACK= EXTERNAL_JACK=
VENDOR=Ardour VENDOR=Ardour ;
BUILDTYPE=""
if [ $# -eq 0 ] ; then if [ $# -eq 0 ] ; then
echo "" echo ""
@ -35,7 +41,7 @@ while [ $# -gt 0 ] ; do
MIXBUS=1; MIXBUS=1;
WITH_NLS=1 ; WITH_NLS=1 ;
WITH_LADSPA=; WITH_LADSPA=;
STRIP= ; STRIP=1;
APPNAME=Mixbus ; APPNAME=Mixbus ;
VENDOR=Harrison ; VENDOR=Harrison ;
shift ;; shift ;;
@ -48,7 +54,7 @@ while [ $# -gt 0 ] ; do
--allinone) --allinone)
WITH_NLS= ; WITH_NLS= ;
WITH_LADSPA=1; WITH_LADSPA=1;
STRIP= ; STRIP=1;
shift ;; shift ;;
--test) WITH_LADSPA=; STRIP= ; shift ;; --test) WITH_LADSPA=; STRIP= ; shift ;;
@ -98,13 +104,35 @@ case `uname -m` in
;; ;;
esac esac
# Figure out the Build Type
if grep -q "DEBUG = True" ../../build/c4che/default.cache.py; then
DEBUG="T"
else
DEBUG="F"
fi
if [ x$DEBUG != x ]; then
if [ x$STRIP != x ]; then
BUILDTYPE="strip"
else
BUILDTYPE="dbg"
fi
fi
# the waf build tree to use when copying built/generated files # the waf build tree to use when copying built/generated files
BUILD_ROOT=../../build/default BUILD_ROOT=../../build/default
# setup directory structure # setup directory structure
APPDIR=${APPNAME}_${ARCH}-${release_version}_${svn_version} if [ -z "${BUILDTYPE}" ]; then
APPDIR=${APPNAME}_${ARCH}-${release_version}_${svn_version}
APP_VER_NAME=${APPNAME}-${release_version}_${svn_version}
else
APPDIR=${APPNAME}_${ARCH}-${release_version}_${svn_version}-${BUILDTYPE}
APP_VER_NAME=${APPNAME}-${release_version}_${svn_version}-${BUILDTYPE}
fi
APPBIN=$APPDIR/bin APPBIN=$APPDIR/bin
APPLIB=$APPDIR/lib APPLIB=$APPDIR/lib
Libraries=$APPLIB Libraries=$APPLIB
@ -151,6 +179,7 @@ mkdir -p $Locale
mkdir -p $Surfaces mkdir -p $Surfaces
mkdir -p $Panners mkdir -p $Panners
mkdir -p $Shared/templates mkdir -p $Shared/templates
mkdir -p $Shared/doc
# maybe set variables # maybe set variables
ENVIRONMENT=environment ENVIRONMENT=environment
@ -253,9 +282,9 @@ GTKROOT=`pkg-config --libs-only-L gtk+-2.0 | sed -e "s/-L//" -e "s/[[:space:]]//
if [ ! -z "$GTKROOT" ]; then if [ ! -z "$GTKROOT" ]; then
echo "Found GTKROOT using pkg-config" echo "Found GTKROOT using pkg-config"
elif [ -d /usr/lib/gtk-2.0 ]; then elif [ -d /usr/lib/gtk-2.0 ]; then
GTKROOT="/usr/lib/gtk-2.0" GTKROOT="/usr/lib"
elif [ -d /usr/local/lib/gtk-2.0 ]; then elif [ -d /usr/local/lib/gtk-2.0 ]; then
GTKROOT="/usr/local/lib/gtk-2.0" GTKROOT="/usr/local/lib"
else else
echo "" echo ""
echo "!!! ERROR !!! - Unable to locate gtk-2.0 directory. Packager will exit" echo "!!! ERROR !!! - Unable to locate gtk-2.0 directory. Packager will exit"
@ -287,9 +316,9 @@ PANGOROOT=`pkg-config --libs-only-L pango | sed -e "s/-L//" -e "s/[[:space:]]//g
if [ ! -z "$PANGOROOT" ]; then if [ ! -z "$PANGOROOT" ]; then
echo "Found PANGOROOT using pkg-config" echo "Found PANGOROOT using pkg-config"
elif [ -d /usr/lib/pango ]; then elif [ -d /usr/lib/pango ]; then
PANGOROOT="/usr/lib/pango" PANGOROOT="/usr/lib"
elif [ -d /usr/local/lib/pango ]; then elif [ -d /usr/local/lib/pango ]; then
PANGOROOT="/usr/local/lib/pango" PANGOROOT="/usr/local/lib"
else else
echo "" echo ""
echo "!!! ERROR !!! - Unable to locate pango directory. Packager will exit" echo "!!! ERROR !!! - Unable to locate pango directory. Packager will exit"
@ -530,8 +559,7 @@ done
# #
# Add the uninstaller # Add the uninstaller
# #
APP_VER_NAME=${APPNAME}-${release_version}_${svn_version} sed -e "s/%REPLACE_PGM%/${APPNAME}/" -e "s/%REPLACE_VENDOR%/${VENDOR}/" -e "s/%REPLACE_VERSION%/${release_version}/" -e "s/%REPLACE_BUILD%/${svn_version}/" -e "s/%REPLACE_TYPE%/${BUILDTYPE}/" < uninstall.sh.in > $APPBIN/${APP_VER_NAME}.uninstall.sh
sed -e "s/%REPLACE_PGM%/${APPNAME}/" -e "s/%REPLACE_VENDOR%/${VENDOR}/" -e "s/%REPLACE_VERSION%/${release_version}/" -e "s/%REPLACE_BUILD%/${svn_version}/" < uninstall.sh.in > $APPBIN/${APP_VER_NAME}.uninstall.sh
chmod a+x $APPBIN/${APP_VER_NAME}.uninstall.sh chmod a+x $APPBIN/${APP_VER_NAME}.uninstall.sh
#Sanity Check file #Sanity Check file
@ -542,22 +570,12 @@ else
exit 1 exit 1
fi fi
#
# and now ... the final package
#
if [ x$MIXBUS != x ] ; then
# Mixbus packaging
echo "Creating Mixbus packaging directory"
cp MixBus_Install_QuickStart.pdf "$APPDIR/Mixbus Install & Quick Start Guide.pdf"
fi
echo "Building tarball ..." echo "Building tarball ..."
rm -f $APPDIR.tar.bz2 rm -f $APPDIR.tar.bz2
tar -cjf $APPDIR.tar.bz2 $APPDIR tar -cjf $APPDIR.tar.bz2 $APPDIR
rm -rf $APPDIR/
echo "Done." echo "Done."

View file

@ -3,14 +3,23 @@
# Make sure we have a terminal for the user to see and then run # Make sure we have a terminal for the user to see and then run
# the real install script. # the real install script.
if [ -z $WINDOWID ]; then # Some systems don't correctly set the PWD when a script is double-clicked,
# so go ahead and figure out our path and make sure we are in that directory.
SAVED_PWD=$PWD
PKG_PATH=$(dirname $(readlink -f $0))
cd ${PKG_PATH}
if [ -z "$TERM" ] || [ "$TERM" = "dumb" ]; then
if which xterm > /dev/null; then if which xterm > /dev/null; then
exec xterm -e ./stage2.run exec xterm -e ${PKG_PATH}/.stage2.run
elif which gnome-terminal > /dev/null; then elif which gnome-terminal > /dev/null; then
exec gnome-terminal -e ./stage2.run exec gnome-terminal -e ${PKG_PATH}/.stage2.run
elif which konsole > /dev/null; then elif which konsole > /dev/null; then
exec konsole -e ./stage2.run exec konsole -e ${PKG_PATH}/.stage2.run
fi fi
else else
./stage2.run ${PKG_PATH}/.stage2.run
fi fi
cd ${SAVED_PWD}

View file

@ -1,6 +1,12 @@
#!/bin/bash #!/bin/bash
# bundle # package
# This will collect up the x86 and x86_64 bundles created by build
# and package them together with an installer script.
STRIP=1
BUILDTYPE=""
if [ $# -eq 0 ] ; then if [ $# -eq 0 ] ; then
echo "" echo ""
@ -29,6 +35,8 @@ while [ $# -gt 0 ] ; do
APPNAME=Ardour ; APPNAME=Ardour ;
shift ;; shift ;;
--nostrip) STRIP= ; shift ;;
*) *)
#catch all for unknown arguments #catch all for unknown arguments
echo "" echo ""
@ -42,9 +50,32 @@ done
release_version=`grep -m 1 '^VERSION' ../../wscript | awk '{print $3}' | sed "s/'//g"` release_version=`grep -m 1 '^VERSION' ../../wscript | awk '{print $3}' | sed "s/'//g"`
svn_version=`grep -m 1 'svn_revision =' ../../libs/ardour/svn_revision.cc | cut -d"'" -f 2` svn_version=`grep -m 1 'svn_revision =' ../../libs/ardour/svn_revision.cc | cut -d"'" -f 2`
X86_BUILD="${APPNAME}_x86-${release_version}_${svn_version}.tar.bz2" # Figure out the Build Type
X86_64_BUILD="${APPNAME}_x86_64-${release_version}_${svn_version}.tar.bz2" if grep -q "DEBUG = True" ../../build/c4che/default.cache.py; then
PACKAGE="${APPNAME}-${release_version}_${svn_version}" DEBUG="T"
else
DEBUG="F"
fi
if [ x$DEBUG != x ]; then
if [ x$STRIP != x ]; then
BUILDTYPE="strip"
else
BUILDTYPE="dbg"
fi
fi
if [ -z ${BUILDTYPE} ]; then
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}"
else
X86_BUILD="${APPNAME}_x86-${release_version}_${svn_version}-${BUILDTYPE}.tar.bz2"
X86_64_BUILD="${APPNAME}_x86_64-${release_version}_${svn_version}-${BUILDTYPE}.tar.bz2"
PACKAGE="${APPNAME}-${release_version}_${svn_version}-${BUILDTYPE}"
fi
if [ ! -e ${X86_BUILD} ]; then if [ ! -e ${X86_BUILD} ]; then
echo "" echo ""
@ -71,7 +102,8 @@ mkdir ${PACKAGE}
mv ${X86_BUILD} ${PACKAGE} mv ${X86_BUILD} ${PACKAGE}
mv ${X86_64_BUILD} ${PACKAGE} mv ${X86_64_BUILD} ${PACKAGE}
cp install.sh ${PACKAGE} cp install.sh ${PACKAGE}
cp stage2.run ${PACKAGE} cp stage2.run ${PACKAGE}/.stage2.run
cp README ${PACKAGE}
echo "Creating tarball..." echo "Creating tarball..."
tar -czf ${PACKAGE}.tar.gz ${PACKAGE} tar -czf ${PACKAGE}.tar.gz ${PACKAGE}

View file

@ -99,6 +99,11 @@ SystemInstall ()
# Main # Main
######################################################################## ########################################################################
# If you double click a script, some systems don't get the PWD correct.
# Force it to be correct
PKG_PATH=$(dirname $(readlink -f $0))
cd ${PKG_PATH}
echo "" echo ""
echo "Welcome to the ${PGM_NAME} installer" echo "Welcome to the ${PGM_NAME} installer"
echo "" echo ""
@ -214,11 +219,20 @@ fi
################################ ################################
PGM_VERSION=$(echo ${BUNDLE_DIR} | awk 'BEGIN { FS = "-" } ; { print $2 }' | awk 'BEGIN { FS = "_"} ; { print $1}') PGM_VERSION=$(echo ${BUNDLE_DIR} | awk 'BEGIN { FS = "-" } ; { print $2 }' | awk 'BEGIN { FS = "_"} ; { print $1}')
PGM_BUILD=$(echo ${BUNDLE_DIR} | awk 'BEGIN { FS = "-" } ; { print $2 }' | awk 'BEGIN { FS = "_"} ; { print $2}') PGM_BUILD=$(echo ${BUNDLE_DIR} | awk 'BEGIN { FS = "-" } ; { print $2 }' | awk 'BEGIN { FS = "_"} ; { print $2}')
PGM_FULL_NAME="${PGM_NAME}-${PGM_VERSION}_${PGM_BUILD}" PGM_BUILDTYPE=$(echo ${BUNDLE_DIR} | awk 'BEGIN { FS = "-" } ; { print $3 }')
ICON_NAME="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}" #no dash since it seperates vendor from program if [ -z ${PGM_BUILDTYPE} ];
MENU_FILE="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}.desktop" #no dash since it seperates vendor from program then
DESKTOP_LINK_FILE="${PGM_NAME}_${PGM_VERSION}.desktop" PGM_FULL_NAME="${PGM_NAME}-${PGM_VERSION}_${PGM_BUILD}"
ICON_NAME="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}" #no dash between name and version since dash seperates vendor from program
MENU_FILE="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}.desktop" #no dash between name and version since dash seperates vendor from program
DESKTOP_LINK_FILE="${PGM_NAME}_${PGM_VERSION}.desktop"
else
PGM_FULL_NAME="${PGM_NAME}-${PGM_VERSION}_${PGM_BUILD}-${PGM_BUILDTYPE}"
ICON_NAME="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}" #no dash between name and version since dash seperates vendor from program
MENU_FILE="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}.desktop" #no dash between name and version since dash seperates vendor from program
DESKTOP_LINK_FILE="${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}.desktop"
fi
PGM_EXEC_PATH="${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/${PGM_EXEC_FILE}" PGM_EXEC_PATH="${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/${PGM_EXEC_FILE}"
ICON_PATH="${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/etc/icons" ICON_PATH="${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/etc/icons"
@ -256,6 +270,7 @@ then
echo "Running uninstaller $i" echo "Running uninstaller $i"
${i} ${i}
sudo rm -f ${i}
fi fi
done done
fi fi
@ -278,10 +293,15 @@ echo "Version=1.0" >> /tmp/${MENU_FILE}
echo "Type=Application" >> /tmp/${MENU_FILE} echo "Type=Application" >> /tmp/${MENU_FILE}
echo "Terminal=false" >> /tmp/${MENU_FILE} echo "Terminal=false" >> /tmp/${MENU_FILE}
echo "Exec=${PGM_EXEC_PATH}" >> /tmp/${MENU_FILE} echo "Exec=${PGM_EXEC_PATH}" >> /tmp/${MENU_FILE}
echo "Name=${PGM_NAME}-${PGM_VERSION}" >> /tmp/${MENU_FILE} if [ -z ${PGM_BUILDTYPE} ];
then
echo "Name=${PGM_NAME}-${PGM_VERSION}" >> /tmp/${MENU_FILE}
else
echo "Name=${PGM_NAME}-${PGM_VERSION}-${PGM_BUILDTYPE}" >> /tmp/${MENU_FILE}
fi
echo "Icon=${ICON_NAME}" >> /tmp/${MENU_FILE} echo "Icon=${ICON_NAME}" >> /tmp/${MENU_FILE}
echo "Comment=Digital Audio Workstation" >> /tmp/${MENU_FILE} echo "Comment=Digital Audio Workstation" >> /tmp/${MENU_FILE}
echo "Categories=AudioVideo;Audio;Recorder;" >> /tmp/${MENU_FILE} echo "Categories=AudioVideo;AudioEditing;Audio;Recorder;" >> /tmp/${MENU_FILE}
chmod ugo+rx /tmp/${MENU_FILE} chmod ugo+rx /tmp/${MENU_FILE}
sudo mv /tmp/${MENU_FILE} ${MENU_FILE_PATH}/. sudo mv /tmp/${MENU_FILE} ${MENU_FILE_PATH}/.
@ -301,6 +321,7 @@ then
fi fi
sudo xdg-desktop-menu install ${MENU_FILE_PATH}/${MENU_FILE} sudo xdg-desktop-menu install ${MENU_FILE_PATH}/${MENU_FILE}
sudo xdg-desktop-menu forceupdate --mode system # Some systems need an extra kick
echo "" echo ""
echo "Creating a desktop link for ${PGM_NAME}" echo "Creating a desktop link for ${PGM_NAME}"
@ -354,8 +375,9 @@ fi
if ! which qjackctl > /dev/null; if ! which qjackctl > /dev/null;
then then
echo "" echo ""
echo "The program QjackCtl is missing from this system. QjackCtl is an extremely useful tool" echo "The program QjackCtl is missing from this system."
echo "for any system that runs JACK applications like Ardour. We recommend that you install it." echo "QjackCtl is an extremely useful tool for any system that runs JACK applications like $PGM_NAME."
echo "We recommend that you install it."
echo "" echo ""
ANSWER=$(VaildateYesNoQuestion "Install QjackCtl using system software repository?") ANSWER=$(VaildateYesNoQuestion "Install QjackCtl using system software repository?")
@ -512,6 +534,6 @@ then
fi fi
echo "" echo ""
read -p "Press ENTER to close this window:" BLAH read -p "Press ENTER to exit installer:" BLAH

View file

@ -12,16 +12,24 @@ PGM_NAME="%REPLACE_PGM%"
PGM_VENDOR="%REPLACE_VENDOR%" PGM_VENDOR="%REPLACE_VENDOR%"
PGM_VERSION="%REPLACE_VERSION%" PGM_VERSION="%REPLACE_VERSION%"
PGM_BUILD="%REPLACE_BUILD%" PGM_BUILD="%REPLACE_BUILD%"
PGM_BUILDTYPE="%REPLACE_TYPE%"
INSTALL_DEST_BASE=/opt INSTALL_DEST_BASE=/opt
#### Derived Variables #### #### Derived Variables ####
PGM_PATH=${INSTALL_DEST_BASE}/${PGM_NAME}-${PGM_VERSION}_${PGM_BUILD} if [ -z "${PGM_BUILDTYPE}" ]; then
PGM_PATH=${INSTALL_DEST_BASE}/${PGM_NAME}-${PGM_VERSION}_${PGM_BUILD}
ICON_NAME="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}" #no dash between name and version since dash seperates vendor from program
MENU_FILE="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}.desktop" #no dash between name and version since dash seperates vendor from program
DESKTOP_LINK_FILE="${PGM_NAME}_${PGM_VERSION}.desktop"
else
PGM_PATH=${INSTALL_DEST_BASE}/${PGM_NAME}-${PGM_VERSION}_${PGM_BUILD}-${PGM_BUILDTYPE}
ICON_NAME="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}" #no dash between name and version since dash seperates vendor from program
MENU_FILE="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}.desktop" #no dash between name and version since dash seperates vendor from program
DESKTOP_LINK_FILE="${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}.desktop"
fi
ICON_NAME="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}" #no dash between name and version since seperates vendor from program
MENU_FILE="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}.desktop" #no dash between name and version since seperates vendor from program
DESKTOP_LINK_FILE="${PGM_NAME}_${PGM_VERSION}.desktop"
MENU_FILE_PATH="${PGM_PATH}/share/${MENU_FILE}" MENU_FILE_PATH="${PGM_PATH}/share/${MENU_FILE}"