X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=tools%2Flinux_packaging%2Fpackage;h=cf11346eb8f2399476508f825478c9744429d90a;hb=b951448750e1e5f9023467aea26eb631a19e8363;hp=f405ad386b0c6b9e29953665c7e5d5cd29db31ff;hpb=368e656e661cd3236a4bfdc319d9d45cca2be39e;p=ardour.git diff --git a/tools/linux_packaging/package b/tools/linux_packaging/package index f405ad386b..cf11346eb8 100755 --- a/tools/linux_packaging/package +++ b/tools/linux_packaging/package @@ -1,6 +1,16 @@ #!/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. + +BUILDTYPE="" +SINGLE_ARCH="F" +X86_BUNDLE_OK="F" +X86_64_BUNDLE_OK="F" +MAKESELF="" + if [ $# -eq 0 ] ; then echo "" @@ -29,6 +39,12 @@ while [ $# -gt 0 ] ; do APPNAME=Ardour ; shift ;; + --makeself) + MAKESELF=`which makeself`; + shift ;; + + --singlearch) SINGLE_ARCH="T" ; shift ;; + *) #catch all for unknown arguments echo "" @@ -39,27 +55,88 @@ while [ $# -gt 0 ] ; do esac done -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` +. ../define_versions.sh + +if [ x$DEBUG = xT ]; then + BUILDTYPE="dbg" +fi -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}" +X86_BUNDLE="${APPNAME}_x86-${release_version}" +X86_64_BUNDLE="${APPNAME}_x86_64-${release_version}" -if [ ! -e ${X86_BUILD} ]; then +if [ ! -z ${BUILDTYPE} ]; then + X86_BUNDLE="${X86_BUNDLE}-${BUILDTYPE}" + X86_64_BUNDLE="${X86_64_BUNDLE}-${BUILDTYPE}" +fi + +if [ ! -e ${X86_BUNDLE}.tar.bz2 ] ; then echo "" - echo "!!! ERROR !!! - Can't locate x86 build file ${X86_BUILD}" + echo "Can't locate x86 bundle file ${X86_BUNDLE}.tar.bz2" echo "" - exit 1 +elif [ ! -e ${X86_BUNDLE}.size ] ; then + echo "" + echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size" + echo "" +else + X86_BUNDLE_OK="T" fi -if [ ! -e ${X86_64_BUILD} ]; then +if [ ! -e ${X86_64_BUNDLE}.tar.bz2 ]; then echo "" - echo "!!! ERROR !!! - Can't locate x86_64 build file ${X86_64_BUILD}" + echo "Can't locate x86_64 bundle file ${X86_64_BUNDLE}.tar.bz2" echo "" - exit 1 +elif [ ! -e ${X86_64_BUNDLE}.size ]; then + echo "" + echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size" + echo "" +else + X86_64_BUNDLE_OK="T" fi + +if [ "${X86_BUNDLE_OK}" = "F" ] || [ "${X86_64_BUNDLE_OK}" = "F" ]; then + if [ "${X86_BUNDLE_OK}" = "${X86_64_BUNDLE_OK}" ]; then + echo "" + echo "!!! ERROR !!! - Can't locate bundle files ${X86_BUNDLE} or ${X86_64_BUNDLE}" + echo "" + exit 1 + elif [ "${SINGLE_ARCH}" = "T" ]; then + echo "" + echo "!!! Warning !!! - A single architecture package has been selected" + echo "" + else + echo "" + echo "!!! ERROR !!! - Missing bundle files." + echo "" + exit 1 + fi +fi + + + +if [ -z ${BUILDTYPE} ]; then + if [ "${SINGLE_ARCH}" = "T" ]; then + if [ "${X86_BUNDLE_OK}" = "T" ]; then + PACKAGE="${APPNAME}_32bit-${release_version}" + else + PACKAGE="${APPNAME}_64bit-${release_version}" + fi + else + PACKAGE="${APPNAME}-${release_version}" + fi +else + if [ "${SINGLE_ARCH}" = "T" ]; then + if [ "${X86_BUNDLE_OK}" = "T" ]; then + PACKAGE="${APPNAME}_32bit-${release_version}-${BUILDTYPE}" + else + PACKAGE="${APPNAME}_64bit-${release_version}-${BUILDTYPE}" + fi + else + PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}" + fi +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 @@ -68,16 +145,32 @@ 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} +if [ "${X86_BUNDLE_OK}" = "T" ]; then + mv ${X86_BUNDLE}.tar.bz2 ${PACKAGE} + mv ${X86_BUNDLE}.size ${PACKAGE}/.${X86_BUNDLE}.size +fi + +if [ "${X86_64_BUNDLE_OK}" = "T" ]; then + mv ${X86_64_BUNDLE}.tar.bz2 ${PACKAGE} + mv ${X86_64_BUNDLE}.size ${PACKAGE}/.${X86_64_BUNDLE}.size +fi + +cp install.sh ${PACKAGE} +cp stage2.run ${PACKAGE}/.stage2.run +cp README ${PACKAGE} + +if test -n "$MAKESELF"; then + echo "Creating self-extracting installer" + $MAKESELF --nocomp ${PACKAGE}/ ${PACKAGE}.run ${APPNAME} ./install.sh +else + echo "Creating tarball..." + tar -cf ${PACKAGE}.tar ${PACKAGE} +fi echo "Clean up" rm -rf ${PACKAGE} +rm -f stage2.run echo "" echo "Done"