--- trunk/mage/usr/lib/mage/smage2.sh 2007/01/19 23:15:04 413 +++ trunk/mage/usr/lib/mage/smage2.sh 2007/03/20 01:15:31 447 @@ -4,12 +4,15 @@ # needs pkgbuild_dir (mage) # SMAGE2 -# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.50 2007-01-19 23:15:04 niro Exp $ +# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.55 2007-03-20 01:15:31 niro Exp $ #01.10.2004 # added ccache support # added distcc support +# set default user mage.rc +: ${MAGERC="/etc/mage.rc"} + ## setup ## PKGSUFFIX="mpk" SRCPKGSUFFIX="mpks" @@ -45,7 +48,8 @@ # export default C locale export LC_ALL=C -source /etc/mage.rc +source /etc/mage.rc.global +source ${MAGERC} # set PKGDIR and BUILDDIR and BINDIR to MROOT if [[ -n ${MROOT} ]] @@ -145,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 @@ -168,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 @@ -176,7 +180,55 @@ 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 \ @@ -195,7 +247,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 \ @@ -215,7 +267,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 @@ -347,10 +399,27 @@ { 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} } @@ -409,7 +478,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" @@ -424,7 +493,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 } @@ -448,6 +517,9 @@ # fix DEPEND while read sym dep do + # ignore empty lines + [[ -z ${dep} ]] && continue + cat="$(dirname ${dep})" # change if not virtual if [[ ${cat} = virtual ]] @@ -528,15 +600,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.50 2007-01-19 23:15:04 niro Exp $' >> ${dest} + echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.55 2007-03-20 01:15:31 niro Exp $' >> ${dest} echo >> ${dest} # pgkname and state @@ -735,12 +807,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 @@ -754,7 +826,7 @@ # gen md5sum ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \ > ${dest}/${pkgname}.md5 - echo "done" + echo -e "${COLGREEN}done${COLDEFAULT}" fi } @@ -772,7 +844,7 @@ return 0 fi - [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your mage.rc correctly." + [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your ${MAGERC} correctly." echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}" @@ -967,20 +1039,20 @@ [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting." [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] && die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting." -[ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your mage.rc correctly." -[ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly." -[ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly." -[ -z "${BINDIR}" ] && die "no BINDIR variable found in /etc/mage.rc" -[ -z "${CHOST}" ] && die "no CHOST variable found in /etc/mage.rc" -[ -z "${CFLAGS}" ] && die "no CFLAGS variable found in /etc/mage.rc" -[ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in /etc/mage.rc" +[ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly." +[ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly." +[ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly." +[ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}" +[ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}" +[ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}" +[ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}" source ${SMAGENAME} || die "source failed" PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}" 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 @@ -989,7 +1061,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 @@ -1058,15 +1130,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 @@ -1076,9 +1148,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 @@ -1114,7 +1186,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" @@ -1127,7 +1199,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