#!/bin/bash source /usr/lib/mage/mage4.functions.sh SMAGEFILE="$1" if [[ -z ${SMAGEFILE} ]] then echo "No smagefile given." exit 1 fi [[ -n $2 ]] && [[ $2 != -st ]] && SVN_COMMIT="$2" if [[ $3 = -st ]] || [[ $2 = -st ]] then echo "Using SRCTARBALL ..." USE_SRCTARBALL=true fi CURARCH=i486 if [[ -z ${CURARCH} ]] then echo "Environment variable \${CURARCH} not given. Aborted." exit 1 fi BUILDROOT="/mnt/alx-0.6.0-toolchain/chroot" SMAGEDIR=$(dirname ${SMAGEFILE}) MD5DIR=${SMAGEDIR}/md5 MD5NAME=$(basename $1 .smage2).md5 SMAGENAME=$(basename $1) CURPNAME=$(magename2pname $1) CURPVER=$(magename2pver $1) CURPBUILD=$(magename2pbuild $(basename $1 .smage2)) PKGNAME=${CURPNAME}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk SRCPKGNAME=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks #REPO="$(echo ${SMAGEFILE#*trunk/} | cut -d'/' -f1)" REPO="$(echo ${SMAGEFILE#*branches/alx-0_6_0/} | cut -d'/' -f1)" SSHLOGIN="tjoke@magellan-linux.de:/var/www/htdocs/magellan/alx-0.6.0/unstable/packages" SRCTARBALL_URI="http://magellan-linux.de/magellan/alx-0.6.0/unstable/packages/src" # abort if the package is already installed in BUILDROOT get_value_from_file() { local var="$1" local file="$2" local value # source /etc/mage.rc to get the includes right source /etc/mage.rc.global source /etc/mage.rc # evaluate the value source ${file} $> /dev/null eval value=\$$(echo ${var}) echo "${value}" } get_function_from_file() { local function="$1" local file="$2" # source /etc/mage.rc to get the includes right source /etc/mage.rc.global source /etc/mage.rc # evaluate the value source ${file} $> /dev/null export -f ${function} } CURPCATEGORIE=$(get_value_from_file PCATEGORIE ${SMAGEFILE}) INSTALLDB_BUILDROOT=$(get_value_from_file INSTALLDB ${BUILDROOT}/etc/mage.rc) CURSPLITPACKAGES="$(get_value_from_file SPLIT_PACKAGES ${SMAGEFILE})" if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} ]] then echo "Package '${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD}' already installed in ${BUILDROOT}. Aborting!" exit 1 fi # delete md5 if exist [[ -f ${MD5DIR}/${MD5NAME} ]] && rm ${MD5DIR}/${MD5NAME} if [[ ${USE_SRCTARBALL} != true ]] then /sbin/smage2 download ${SMAGEFILE} /sbin/smage2 calcmd5 ${SMAGEFILE} ${MD5DIR} pushd ${SMAGEDIR}/../ svn add ${CURPNAME} pushd ${SMAGEDIR} svn add md5 svn add ${SMAGENAME} md5/${MD5NAME} [[ -d mcore ]] && svn add mcore [[ -d mcore/files ]] && svn add mcore/files [[ -z ${SVN_COMMIT} ]] && SVN_COMMIT="auto added: ver bump to ${CURPVER}-${CURPBUILD}" svn commit -m "${SVN_COMMIT}" ../${CURPNAME} ${SMAGENAME} md5 md5/${MD5NAME} popd fi # update target repo #sudo svn update ${BUILDROOT}/var/cache/mage/smage/trunk/include sudo svn update ${BUILDROOT}/var/cache/mage/smage/branches/alx-0_6_0/include #sudo svn update ${BUILDROOT}/var/cache/mage/smage/trunk/${REPO} #sudo svn update ${BUILDROOT}/var/cache/mage/smage/trunk/${REPO}/include sudo svn update ${BUILDROOT}/var/cache/mage/smage/branches/alx-0_6_0/${REPO}/include #sudo svn update ${BUILDROOT}/var/cache/mage/smage/trunk/${REPO}/${CURPNAME} sudo svn update ${BUILDROOT}/var/cache/mage/smage/branches/alx-0_6_0/${REPO}/${CURPNAME} sudo -s << EOF :> ${BUILDROOT}/.installrc echo "export LC_ALL=C" >> ${BUILDROOT}/.installrc echo "REPO=${REPO}" >> ${BUILDROOT}/.installrc echo "CURPNAME=${CURPNAME}" >> ${BUILDROOT}/.installrc echo "CURPVER=${CURPVER}" >> ${BUILDROOT}/.installrc echo "CURPBUILD=${CURPBUILD}" >> ${BUILDROOT}/.installrc echo "CURARCH=${CURARCH}" >> ${BUILDROOT}/.installrc echo "CURSPLITPACKAGES=\"${CURSPLITPACKAGES}\"" >> ${BUILDROOT}/.installrc echo "SMAGENAME=${SMAGENAME}" >> ${BUILDROOT}/.installrc echo "MD5NAME=${MD5NAME}" >> ${BUILDROOT}/.installrc echo "PKGNAME=${PKGNAME}" >> ${BUILDROOT}/.installrc echo "SPKGNAME=${SPKGNAME}" >> ${BUILDROOT}/.installrc echo '/usr/bin/whoami' >> ${BUILDROOT}/.installrc echo 'source /etc/profile' >> ${BUILDROOT}/.installrc #echo 'echo PATH=\${PATH};read' >> ${BUILDROOT}/.installrc #echo 'cd /var/cache/mage/smage/trunk/${REPO}' >> ${BUILDROOT}/.installrc echo 'cd /var/cache/mage/smage/branches/alx-0_6_0/${REPO}' >> ${BUILDROOT}/.installrc #echo 'svn update include' >> ${BUILDROOT}/.installrc #echo 'svn update ../include' >> ${BUILDROOT}/.installrc #echo 'svn update ${CURPNAME}' >> ${BUILDROOT}/.installrc echo 'USE_SRCTARBALL=${USE_SRCTARBALL}' >> ${BUILDROOT}/.installrc echo 'if [[ \${USE_SRCTARBALL} != true ]];then ' >> ${BUILDROOT}/.installrc #echo '/sbin/smage2 /var/cache/mage/smage/trunk/${REPO}/${CURPNAME}/${SMAGENAME} || exit 1' >> ${BUILDROOT}/.installrc echo '/sbin/smage2 /var/cache/mage/smage/branches/alx-0_6_0/${REPO}/${CURPNAME}/${SMAGENAME} || exit 1' >> ${BUILDROOT}/.installrc echo 'else' >> ${BUILDROOT}/.installrc echo 'echo "Fetching SRC_TARBALL"' >> ${BUILDROOT}/.installrc echo 'pushd /var/tmp/magebuild > /dev/null' >> ${BUILDROOT}/.installrc echo "SRCTARBALL=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks" >> ${BUILDROOT}/.installrc echo "SRCTARBALL_URI=${SRCTARBALL_URI}" >> ${BUILDROOT}/.installrc echo '/usr/bin/wget -c \${SRCTARBALL_URI}/\${SRCTARBALL}' >> ${BUILDROOT}/.installrc echo '/sbin/smage2 -st \${SRCTARBALL}' >> ${BUILDROOT}/.installrc echo '[[ -f \${SRCTARBALL} ]] && rm \${SRCTARBALL}' >> ${BUILDROOT}/.installrc echo 'popd > /dev/null' >> ${BUILDROOT}/.installrc echo 'fi' >> ${BUILDROOT}/.installrc echo 'if [[ ! -z \${CURSPLITPACKAGES} ]]' >> ${BUILDROOT}/.installrc echo 'then' >> ${BUILDROOT}/.installrc echo 'for package in \${CURSPLITPACKAGES}' >> ${BUILDROOT}/.installrc echo 'do' >> ${BUILDROOT}/.installrc echo '/sbin/mage install \${package} || exit 1' >> ${BUILDROOT}/.installrc echo 'mv /var/cache/mage/packages/\${package}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk /BUILDED' >> ${BUILDROOT}/.installrc echo 'done' >> ${BUILDROOT}/.installrc echo 'else' >> ${BUILDROOT}/.installrc echo '/sbin/mage install ${CURPNAME} || exit 1' >> ${BUILDROOT}/.installrc echo 'mv /var/cache/mage/packages/${PKGNAME} /BUILDED' >> ${BUILDROOT}/.installrc echo 'fi' >> ${BUILDROOT}/.installrc echo 'mv /var/cache/mage/packages/sources/${SRCPKGNAME} /BUILDED/sources' >> ${BUILDROOT}/.installrc echo 'rm -rf /var/cache/mage/sources/${CURPNAME}' >> ${BUILDROOT}/.installrc EOF sudo -H /sbin/chroot ${BUILDROOT} /bin/bash /.installrc sudo rm ${BUILDROOT}/.installrc if [[ ! -z ${CURSPLITPACKAGES} ]] then for package in ${CURSPLITPACKAGES} do # get pkgtyp get_function_from_file split_info_${package} ${SMAGEFILE} split_info_${package} if [[ ${PKGTYPE} = virtual ]] then unset PKGTYPE continue fi if [[ ${NOPKGBUILD} = true ]] then unset NOPKGBUILD continue fi pkgname="${package}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk" if [[ -f ${BUILDROOT}/BUILDED/${pkgname} ]] then scp ${BUILDROOT}/BUILDED/${pkgname} ${SSHLOGIN}/${CURARCH}/ else echo "Error: ${BUILDROOT}/BUILDED/${pkgname} missing!" exit 1 fi done else if [[ -f ${BUILDROOT}/BUILDED/${PKGNAME} ]] then scp ${BUILDROOT}/BUILDED/${PKGNAME} ${SSHLOGIN}/${CURARCH}/ else echo "Error: ${BUILDROOT}/BUILDED/${PKGNAME} missing!" exit 1 fi fi if [[ -f ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ]] then scp ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ${SSHLOGIN}/src/ else echo "Error: ${BUILDROOT}/BUILDED/${SRCPKGNAME} missing!" # exit 1 fi [[ -d /var/cache/mage/sources/${CURPNAME} ]] && rm -rf /var/cache/mage/sources/${CURPNAME} # if we don't break before; all things are right - regardless if $? is not zero # because some things like src-pkg creation may be disabled exit 0