--- trunk/mage/usr/lib/mage/smage2.functions.sh 2012/01/13 20:51:18 1648 +++ trunk/mage/usr/lib/mage/smage2.functions.sh 2013/08/14 13:51:31 2163 @@ -7,8 +7,9 @@ smagesource() { local file="$1" - local mystate - local mycodename + local localstate + local distfilestate + local mytag source ${file} @@ -19,6 +20,7 @@ if [[ -n ${PCATEGORIE} ]] then PCAT="${PCATEGORIE}" + unset PCATEGORIE # print a warning echo -e "${COLYELLOW}Warning: 'PCATEGORIE' is deprecated and gets removed in the future.${COLDEFAULT}" echo -e "${COLYELLOW} Please modify this smage2 script to use the 'PCAT' variable.${COLDEFAULT}" @@ -28,21 +30,53 @@ fi fi - [[ -n ${STATE} ]] && mystate="${STATE}" - - # do not overide if local state was broken or disabled! - case ${STATE} in - broken) return ;; - disabled) return ;; - esac + [[ -n ${STATE} ]] && localstate="${STATE}" + [[ -n ${DISTROTAG} ]] && mytag="${DISTROTAG}" if [ -f ${SMAGESCRIPTSDIR}/distribution ] then source ${SMAGESCRIPTSDIR}/distribution - [[ -n ${STATE} ]] && mystate="${STATE}" + [[ -n ${STATE} ]] && distfilestate="${STATE}" + [[ -n ${DISTROTAG} ]] && mytag="${DISTROTAG}" + fi + # now switch state and export it but do not overide any local states + if [[ ! -z ${localstate} ]] + then + STATE="${localstate}" + else + STATE="${distfilestate}" + fi + + if mqueryfeature "pkgdistrotag" + then + # if DISTROTAG was not defined globally + # or in distribution file then deactivate this feature! + # at this point $mytag must have the distrotag + if [[ -z ${mytag} ]] + then + FVERBOSE=off msetfeature "!pkgdistrotag" + unset DISTROTAG + echo -e "${COLRED}Requested 'pkgdistrotag' but no \$DISTROTAG found!${COLDEFAULT}" + echo -e "${COLRED}Disabled the feature for pkgbuild sanity!${COLDEFAULT}" + else + # now switch state and export it but do not overide any local states + export DISTROTAG="${mytag}" + fi + else + unset DISTROTAG + fi +} + +print_distrotag() +{ + if FVERBOSE=off mqueryfeature "pkgdistrotag" + then + if [[ ! -z ${DISTROTAG} ]] + then + # add a point as prefix + echo ".${DISTROTAG}" + fi fi - # now switch state and export it - STATE="${mystate}" } showversion() @@ -247,8 +281,9 @@ fi fi - # always enable shared by default - if [[ ! -z $(./configure --help | grep -- '--.*able-shared') ]] + # always enable shared by default but not for waf configure + if [[ ! -z $(./configure --help | grep -- '--.*able-shared') ]] && + [[ -z $(./configure --version | grep waf) ]] then myopts+=" --enable-shared" fi @@ -308,6 +343,8 @@ DEST=$2 fi + echo -e "${COLBLUE}>>>${COLGREEN} Unpacking ${SOURCEDIR}/${PNAME}/${SRCFILE}${COLDEFAULT}" + [[ ! -d ${DEST} ]] && install -d ${DEST} case "${SRCFILE##*.}" in @@ -357,7 +394,7 @@ tar --no-same-owner -xvJf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".txz unpack failed." ;; rar) - unrar x ${SOURCEDIR}/${PNAME}/${SRCFILE} ${DEST} || die ".rar unpack failed." + unrar x ${SOURCEDIR}/${PNAME}/${SRCFILE} ${DEST} || die ".rar unpack failed." ;; zip|xpi|jar) unzip ${SOURCEDIR}/${PNAME}/${SRCFILE} -d ${DEST} || die ".zip unpack failed." @@ -536,6 +573,82 @@ fi } +march() +{ + local retval + + if [[ ! -z ${ARCH} ]] + then + echo "${ARCH}" + retval=0 + else + retval=1 + fi + + return "${retval}" +} + +marchsrcfile() +{ + local retval + local var="$1" + + [[ -z ${var} ]] && var="SRCFILE" + + if [[ ! -z $(eval echo \$${var}_${ARCH/i*86/x86}) ]] + then + eval echo \$${var}_${ARCH/i*86/x86} | tr ';' '\n' + retval=0 + else + retval=1 + fi + + return "${retval}" +} + +marchsrcdir() +{ + local retval + if [[ ! -z $(eval echo \$SRCDIR_${ARCH/i*86/x86}) ]] + then + eval echo \$SRCDIR_${ARCH/i*86/x86} | tr ';' '\n' + retval=0 + else + retval=1 + fi + + return "${retval}" +} + +marchdepend() +{ + local retval + + if [[ ! -z $(eval echo \$DEPEND_${ARCH/i*86/x86}) ]] + then + echo "\$(eval echo \\\$DEPEND_\${ARCH/i*86/x86} | tr ';' '\n')" + retval=0 + else + retval=1 + fi + + return "${retval}" +} + +marchsdepend() +{ + local retval + if [[ ! -z $(eval echo \$SDEPEND_${ARCH/i*86/x86}) ]] + then + echo "\$(eval echo \\\$SDEPEND_\${ARCH/i*86/x86} | tr ';' '\n')" + retval=0 + else + retval=1 + fi + + return "${retval}" +} + setup_distcc_environment() { if [ -x /usr/bin/distcc ] @@ -551,10 +664,21 @@ fi } +setup_icecc_environment() +{ + if [ -x /usr/bin/icecc ] + then + echo -e "${COLBLUE}---${COLGREEN} Using IceCC for compilation ...${COLDEFAULT}" + export PATH=/usr/$(mlibdir)/icecc/bin:${PATH} || die "icecc: could not export new $PATH" + fi +} + setup_ccache_environment() { if [ -x /usr/bin/ccache ] then + mqueryfeature "icecream" && export CCACHE_PREFIX=icecc + echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}" export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH" fi @@ -569,6 +693,12 @@ local NDEPEND local sym dep cat pver pname + # first of all remove all tabs and duplicate lines + if [ -n "${depend}" ] + then + depend=$(echo "${depend}" | sed 's:\t::g' | sort -u) + fi + # deps and provides are special # they must be fixed to match the target @@ -678,7 +808,7 @@ > ${dest} # pgkname and state - echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest} + echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}$(print_distrotag)-${PBUILD}\"" >> ${dest} echo "STATE=\"${STATE}\"" >> ${dest} # description and homepage @@ -779,6 +909,12 @@ # get the right variables for the split export PNAME="${subpackage}" split_info_${subpackage} + # fix PCATEGORIE -> PCAT + if [[ ! -z ${PCATEGORIE} ]] + then + PCAT="${PCATEGORIE}" + unset PCATEGORIE + fi # get the preinstall etc split_export_inherits ${subpackage} build_mage_script --split-pkg-base "${split_pkg_base}" @@ -834,8 +970,8 @@ export SAVED_DESCRIPTION="${DESCRIPTION}" export SAVED_HOMEPAGE="${HOMEPAGE}" export SAVED_SPECIAL_VARS="${SPECIAL_VARS}" + export SAVED_SPECIAL_FUNCTIONS="${SPECIAL_FUNCTIONS}" export SAVED_STATE="${STATE}" - export SAVED_PKGTYPE="${PKGTYPE}" export SAVED_INHERITS="${INHERITS}" export SAVED_DEPEND="${DEPEND}" export SAVED_SDEPEND="${SDEPEND}" @@ -909,8 +1045,8 @@ export DESCRIPTION="${SAVED_DESCRIPTION}" export HOMEPAGE="${SAVED_HOMEPAGE}" export SPECIAL_VARS="${SAVED_SPECIAL_VARS}" + export SPECIAL_FUNCTIONS="${SAVED_SPECIAL_FUNCTIONS}" export STATE="${SAVED_STATE}" - export PKGTYPE="${SAVED_PKGTYPE}" export INHERITS="${SAVED_INHERITS}" export DEPEND="${SAVED_DEPEND}" export SDEPEND="${SAVED_SDEPEND}" @@ -978,6 +1114,7 @@ unset SAVED_DESCRIPTION unset SAVED_HOMEPAGE unset SAVED_SPECIAL_VARS + unset SAVED_SPECIAL_FUNCTIONS unset SAVED_STATE unset SAVED_PKGTYPE unset SAVED_INHERITS @@ -1090,7 +1227,7 @@ [ -n "${target}" ] && target="-${target}" # build pkgname - pkgname="${pname}${target}-${pver}-${parch}-${pbuild}" + pkgname="${pname}${target}-${pver}-${parch}$(print_distrotag)-${pbuild}" # build pkg-md5-sum only if requested if mqueryfeature regentree @@ -1143,7 +1280,7 @@ [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR} mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} - echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}" + echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}\n" } step_by_step() @@ -1175,3 +1312,8 @@ return 1 fi } + +mqalint() +{ + return 0 +}