--- trunk/mage/usr/lib/mage/smage2.sh 2007/01/22 00:24:14 419 +++ trunk/mage/usr/lib/mage/smage2.sh 2007/11/05 16:47:10 597 @@ -4,7 +4,7 @@ # needs pkgbuild_dir (mage) # SMAGE2 -# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.51 2007-01-22 00:24:14 niro Exp $ +# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.59 2007-11-05 16:47:10 niro Exp $ #01.10.2004 # added ccache support @@ -48,6 +48,7 @@ # export default C locale export LC_ALL=C +source /etc/mage.rc.global source ${MAGERC} # set PKGDIR and BUILDDIR and BINDIR to MROOT @@ -148,7 +149,7 @@ ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null ) if [[ $? = 0 ]] then - # md5's ok, not fetching needed + # md5's ok, no fetching needed FETCHING=false else FETCHING=true @@ -171,7 +172,7 @@ fi # if an mirrored file than replace first the mirror uri - if [ -n "$(echo ${my_SRC_URI} | grep 'mirror://')" ] + if [[ -n $(echo ${my_SRC_URI} | grep 'mirror://') ]] then for mirror in ${MIRRORS} do @@ -179,7 +180,103 @@ if [[ ${FETCHING} = true ]] then - echo "==> fetching ${my_SRC_URI_MIRROR}" + echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}" + wget \ + --passive-ftp \ + --tries 3 \ + --continue \ + --progress bar \ + --directory-prefix="${my_SOURCEDIR}" \ + "${my_SRC_URI_MIRROR}" + if [[ $? = 0 ]] + then + break + else + continue + fi + fi + done + elif [[ -n $(echo ${my_SRC_URI} | grep 'sourceforge://') ]] + then + for mirror in ${SOURCEFORGE_MIRRORS} + do + my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|sourceforge:/|${mirror}|g")" + + if [[ ${FETCHING} = true ]] + then + echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}" + wget \ + --passive-ftp \ + --tries 3 \ + --continue \ + --progress bar \ + --directory-prefix="${my_SOURCEDIR}" \ + "${my_SRC_URI_MIRROR}" + if [[ $? = 0 ]] + then + break + else + continue + fi + fi + done + elif [[ -n $(echo ${my_SRC_URI} | grep 'gnu://') ]] + then + for mirror in ${GNU_MIRRORS} + do + my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|gnu:/|${mirror}|g")" + + if [[ ${FETCHING} = true ]] + then + echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}" + wget \ + --passive-ftp \ + --tries 3 \ + --continue \ + --progress bar \ + --directory-prefix="${my_SOURCEDIR}" \ + "${my_SRC_URI_MIRROR}" + if [[ $? = 0 ]] + then + break + else + continue + fi + fi + done + elif [[ -n $(echo ${my_SRC_URI} | grep 'kde://') ]] + then + for mirror in ${KDE_MIRRORS} + do + my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|kde:/|${mirror}|g")" + + if [[ ${FETCHING} = true ]] + then + echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}" + wget \ + --passive-ftp \ + --tries 3 \ + --continue \ + --progress bar \ + --directory-prefix="${my_SOURCEDIR}" \ + "${my_SRC_URI_MIRROR}" + if [[ $? = 0 ]] + then + break + else + continue + fi + fi + done + elif [[ -n $(echo ${my_SRC_URI} | grep 'gnome://') ]] + then + for mirror in ${GNOME_MIRRORS} + do + my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|gnome:/|${mirror}|g")" + + if [[ ${FETCHING} = true ]] + then + echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}" wget \ --passive-ftp \ --tries 3 \ @@ -198,7 +295,7 @@ else if [[ ${FETCHING} = true ]] then - echo "==> fetching ${my_SRC_URI}" + echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI}${COLDEFAULT}" wget \ --passive-ftp \ --tries 3 \ @@ -218,7 +315,7 @@ # recheck md5 sums echo - echo ">== Checking MD5 sums:" + echo -e "${COLBLUE}===${COLGREEN} Checking MD5 sums:${COLDEFAULT}" ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed" echo @@ -308,7 +405,7 @@ SRCFILE=$1 - if [ -z "$2" ] + if [[ -z $2 ]] then DEST=${BUILDDIR} else @@ -323,7 +420,11 @@ IFTAR="${IFTAR##*.}" if [[ ${IFTAR} = tar ]] then - tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} + tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tar.bz2 unpack failed." + else + pushd ${DEST} > /dev/null + bzcat ${SOURCEDIR}/${PNAME}/${SRCFILE} > ${DEST}/$(basename ${SRCFILE} .bz2) || die ".bz2 unpack failed." + popd > /dev/null fi ;; gz) @@ -331,14 +432,30 @@ IFTAR="${IFTAR##*.}" if [[ ${IFTAR} = tar ]] then - tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} + tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tar.gz unpack failed." + else + pushd ${DEST} > /dev/null + zcat ${SOURCEDIR}/${PNAME}/${SRCFILE} > ${DEST}/$(basename ${SRCFILE} .gz) || die ".gz unpack failed." + popd > /dev/null fi ;; tbz2) - tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} + tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tbz2 unpack failed." ;; tgz) - tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} + tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tgz unpack failed." + ;; + rar) + unrar x ${SOURCEDIR}/${PNAME}/${SRCFILE} ${DEST} || die ".rar unpack failed." + ;; + zip) + unzip ${SOURCEDIR}/${PNAME}/${SRCFILE} -d ${DEST} || die ".zip unpack failed." + ;; + rpm) + pushd ${BUILDDIR} > /dev/null + rpm2targz ${SOURCEDIR}/${PNAME}/${SRCFILE} || die "rpm2targz: .rpm unpack failed." + tar --no-same-owner -xvzf ${SRCFILE/.rpm/.tar.gz/} || die "tar: .rpm unpack failed." + [[ -f ${BUILDDIR}/${SRCFILE/.rpm/.tar.gz/} ]] && rm ${BUILDDIR}/${SRCFILE/.rpm/.tar.gz/} ;; *) die "munpack failed" @@ -350,14 +467,38 @@ { local PATCHOPTS local PATCHFILE + local i PATCHOPTS=$1 PATCHFILE=$2 + if [[ -z $2 ]] + then + PATCHFILE=$1 + + ## patch level auto-detection, get patch level + for ((i=0; i < 10; i++)) + do + patch --dry-run -Np${i} -i ${SOURCEDIR}/${PNAME}/${PATCHFILE} > /dev/null + if [[ $? = 0 ]] + then + PATCHOPTS="-Np${i}" + break + fi + done + fi + echo -e "${COLBLUE}*** ${COLGREEN}Applying patch '${PATCHFILE}'${COLDEFAULT}" patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE} } +mlibtoolize() +{ + local opts="$@" + [[ -z ${opts} ]] && opts="--copy --force" + + libtoolize ${opts} || die "running: mlibtoolize ${opts}" +} minstalldocs() { @@ -412,7 +553,7 @@ { if [ -x /usr/bin/distcc ] then - echo "Using DistCC for compilation ..." + echo -e "${COLBLUE}---${COLGREEN} Using DistCC for compilation ...${COLDEFAULT}" export PATH=/usr/$(mlibdir)/distcc/bin:${PATH} || die "distcc: could not export new $PATH" export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed" @@ -427,7 +568,7 @@ { if [ -x /usr/bin/ccache ] then - echo "Using CCache for compilation ..." + echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}" export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH" fi } @@ -451,6 +592,9 @@ # fix DEPEND while read sym dep do + # ignore empty lines + [[ -z ${dep} ]] && continue + cat="$(dirname ${dep})" # change if not virtual if [[ ${cat} = virtual ]] @@ -531,15 +675,15 @@ dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}" # show what we are doing - echo "Generating Mage file:" - echo " ${dest}" + echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}" + echo "${dest}" install -d "$(dirname ${dest})" # now build the mage file > ${dest} # header - echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.51 2007-01-22 00:24:14 niro Exp $' >> ${dest} + echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.59 2007-11-05 16:47:10 niro Exp $' >> ${dest} echo >> ${dest} # pgkname and state @@ -647,15 +791,15 @@ # now unset all uneeded vars to be safe # unset PKGNAME <-- don't do that; smage needs this var # unset to be safe (quotes needed !) - for i in ${SPECIAL_FUNCTIONS} - do - unset "${i}" - done +# for i in ${SPECIAL_FUNCTIONS} +# do +# unset "${i}" +# done unset SPECIAL_FUNCTIONS - for i in ${SPECIAL_VARS} - do - unset "${i}" - done +# for i in ${SPECIAL_VARS} +# do +# unset "${i}" +# done unset SPECIAL_VARS unset STATE unset DESCRIPTION @@ -738,12 +882,12 @@ # build pkg-md5-sum only if requested if [[ ${REGEN_MAGE_TREE} = true ]] then - echo -n "Generating a md5sum for ${pkgname}.${PKGSUFFIX} ... " + echo -ne "${COLBLUE}===${COLGREEN} generating md5's for ${pkgname}.${PKGSUFFIX} ... ${COLDEFAULT}" # abort if not exist if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ] then - echo "! exists" + echo -e "${COLRED}! exists${COLDEFAULT}" return 0 fi @@ -757,7 +901,7 @@ # gen md5sum ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \ > ${dest}/${pkgname}.md5 - echo "done" + echo -e "${COLGREEN}done${COLDEFAULT}" fi } @@ -983,7 +1127,7 @@ MD5DIR="$(dirname ${SMAGENAME})/md5" xtitle "Compiling ${PKGNAME}" -echo "Compiling ${PKGNAME}" +echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}" # auto regen mage tree if requested regen_mage_tree @@ -992,7 +1136,7 @@ then if [[ -d ${SOURCEDIR}/${PNAME} ]] then - echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}" + echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}" rm -rf ${SOURCEDIR}/${PNAME} fi fi @@ -1061,15 +1205,15 @@ # compressing doc, info & man files -echo -e "Compressing man-pages ..." if [ -d ${BUILDDIR}/builded/usr/share/man ] then + echo -e "${COLBLUE}===${COLGREEN} compressing man-pages ...${COLDEFAULT}" ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man fi -echo -e "Compressing info-pages ..." if [ -d ${BUILDDIR}/builded/usr/share/info ] then + echo -e "${COLBLUE}===${COLGREEN} compressing info-pages ...${COLDEFAULT}" ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info fi @@ -1079,9 +1223,9 @@ echo -e "NOSTRIP=true detected; Package will not be stripped ..." ;; *) - echo -e "Stripping binaries ..." + echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}" mstripbins ${BINDIR} - echo -e "Stripping libraries ..." + echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}" mstriplibs ${BINDIR} ;; esac @@ -1117,7 +1261,7 @@ --parch "${ARCH}" \ --target "${target}" - echo -e "\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n" + echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}" done else ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed" @@ -1130,7 +1274,7 @@ --pbuild "${PBUILD}" \ --parch "${ARCH}" - echo -e "\nPackage ${PKGNAME} successfully builded.\n" + echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}" fi # build src-pkg-tarball if requested