695 |
fi |
fi |
696 |
} |
} |
697 |
|
|
|
# fixes given dependencies to match a MAGE_TARGET |
|
|
# fix_mage_deps -target s/depend # <-- note -target ! |
|
|
fix_mage_deps() |
|
|
{ |
|
|
local target="$1" |
|
|
local depend="$2" |
|
|
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 |
|
|
|
|
|
# run this only if target and depend is not empty |
|
|
if [ -n "${target}" ] && [ -n "${depend}" ] |
|
|
then |
|
|
# fix DEPEND |
|
|
while read sym dep |
|
|
do |
|
|
# ignore empty lines |
|
|
[[ -z ${dep} ]] && continue |
|
|
|
|
|
cat="$(dirname ${dep})" |
|
|
# change if not virtual |
|
|
if [[ ${cat} = virtual ]] |
|
|
then |
|
|
pname="$(basename ${dep})" |
|
|
else |
|
|
# fix pver to target-pver |
|
|
# to get pname-target-pver |
|
|
|
|
|
# doing it backwards ! |
|
|
pver="${dep##*-}" |
|
|
# full pver |
|
|
pname="$(basename ${dep/-${pver}/})${target}-${pver}" |
|
|
fi |
|
|
|
|
|
# do not add empty lines |
|
|
if [ -z "${NDEPEND}" ] |
|
|
then |
|
|
NDEPEND="${sym} ${cat}/${pname}" |
|
|
else |
|
|
NDEPEND="${NDEPEND} |
|
|
${sym} ${cat}/${pname}" |
|
|
fi |
|
|
|
|
|
unset cat pname pver |
|
|
done << EOF |
|
|
${depend} |
|
|
EOF |
|
|
# set NDEPEND to DEPEND |
|
|
depend="${NDEPEND}" |
|
|
fi |
|
|
|
|
|
echo "${depend}" |
|
|
} |
|
|
|
|
698 |
# build_mage_script(): helper functions for regen_mage_tree() |
# build_mage_script(): helper functions for regen_mage_tree() |
699 |
# generates an mage file with given information in smage file |
# generates an mage file with given information in smage file |
700 |
# needs at least: |
# needs at least: |
728 |
{ |
{ |
729 |
local magefile |
local magefile |
730 |
local dest |
local dest |
|
local target |
|
731 |
local split_pkg_base |
local split_pkg_base |
732 |
local sym |
local sym |
733 |
local depname |
local depname |
735 |
# if MAGE_TREE_DEST not set use BUILDDIR |
# if MAGE_TREE_DEST not set use BUILDDIR |
736 |
: ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree} |
: ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree} |
737 |
|
|
|
# determinate which suffix this mage file should get, if any |
|
|
[[ $1 = --target ]] && shift && target="-$1" |
|
|
|
|
738 |
# mark package as splitpackage |
# mark package as splitpackage |
739 |
[[ $1 = --split-pkg-base ]] && shift && split_pkg_base="$1" |
[[ $1 = --split-pkg-base ]] && shift && split_pkg_base="$1" |
740 |
|
|
741 |
# name of magefile |
# name of magefile |
742 |
magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage" |
magefile="${PNAME}-${PVER}-${PBUILD}.mage" |
743 |
|
|
744 |
# destination to magefile |
# destination to magefile |
745 |
dest="${MAGE_TREE_DEST}/${PCAT}/${PNAME}${target}/${magefile}" |
dest="${MAGE_TREE_DEST}/${PCAT}/${PNAME}/${magefile}" |
746 |
|
|
747 |
# show what we are doing |
# show what we are doing |
748 |
echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}" |
echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}" |
753 |
> ${dest} |
> ${dest} |
754 |
|
|
755 |
# pgkname and state |
# pgkname and state |
756 |
echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}$(print_distrotag)-${PBUILD}\"" >> ${dest} |
echo "PKGNAME=\"${PNAME}-${PVER}-\${ARCH}$(print_distrotag)-${PBUILD}\"" >> ${dest} |
757 |
echo "STATE=\"${STATE}\"" >> ${dest} |
echo "STATE=\"${STATE}\"" >> ${dest} |
758 |
|
|
759 |
# description and homepage |
# description and homepage |
766 |
# special tags and vars |
# special tags and vars |
767 |
echo "PKGTYPE=\"${PKGTYPE}\"" >> ${dest} |
echo "PKGTYPE=\"${PKGTYPE}\"" >> ${dest} |
768 |
|
|
|
# echo MAGE_TARGETS ## note -target is needed ! |
|
|
echo "MAGE_TARGETS=\"${target}\"" >> ${dest} |
|
|
|
|
769 |
# split package base |
# split package base |
770 |
echo "SPLIT_PACKAGE_BASE=\"${split_pkg_base}\"" >> ${dest} |
echo "SPLIT_PACKAGE_BASE=\"${split_pkg_base}\"" >> ${dest} |
771 |
|
|
794 |
fi |
fi |
795 |
|
|
796 |
# deps and provides |
# deps and provides |
797 |
echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest} |
echo "DEPEND=\"${DEPEND}\"" >> ${dest} |
798 |
echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest} |
echo "SDEPEND=\"${SDEPEND}\"" >> ${dest} |
799 |
echo "PROVIDE=\"${PROVIDE}\"" >> ${dest} |
echo "PROVIDE=\"${PROVIDE}\"" >> ${dest} |
800 |
|
|
801 |
# add special functions |
# add special functions |
806 |
do |
do |
807 |
# add to mage (quotes needed !) |
# add to mage (quotes needed !) |
808 |
typeset -f "${i}" >> ${dest} |
typeset -f "${i}" >> ${dest} |
|
# unset to be safe (quotes needed !) |
|
|
#unset "${i}" <-- later to get every target built |
|
809 |
done |
done |
810 |
fi |
fi |
811 |
|
|
823 |
# build them only if requested |
# build them only if requested |
824 |
if mqueryfeature regentree |
if mqueryfeature regentree |
825 |
then |
then |
|
# run it without targets |
|
|
if [[ -n ${MAGE_TARGETS} ]] |
|
|
then |
|
|
# build for each target a mage file |
|
|
# run it with several targets |
|
|
echo |
|
|
for subpackage in ${MAGE_TARGETS} |
|
|
do |
|
|
build_mage_script --target "${subpackage}" |
|
|
done |
|
|
echo |
|
|
|
|
826 |
# run it for splitpackages |
# run it for splitpackages |
827 |
elif [[ -n ${SPLIT_PACKAGES} ]] |
if [[ -n ${SPLIT_PACKAGES} ]] |
828 |
then |
then |
829 |
local split_pkg_base="${PNAME}" |
local split_pkg_base="${PNAME}" |
830 |
# save smage environment |
# save smage environment |
864 |
|
|
865 |
# now unset all uneeded vars to be safe |
# now unset all uneeded vars to be safe |
866 |
# unset PKGNAME <-- don't do that; smage needs this var |
# 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 |
|
867 |
unset SPECIAL_FUNCTIONS |
unset SPECIAL_FUNCTIONS |
|
# for i in ${SPECIAL_VARS} |
|
|
# do |
|
|
# unset "${i}" |
|
|
# done |
|
868 |
unset SPECIAL_VARS |
unset SPECIAL_VARS |
869 |
unset STATE |
unset STATE |
870 |
unset DESCRIPTION |
unset DESCRIPTION |
1114 |
local pver |
local pver |
1115 |
local pbuild |
local pbuild |
1116 |
local parch |
local parch |
|
local target |
|
1117 |
local pkgname |
local pkgname |
1118 |
|
|
1119 |
# very basic getops |
# very basic getops |
1125 |
--pver|-v) shift; pver="$1" ;; |
--pver|-v) shift; pver="$1" ;; |
1126 |
--pbuild|-b) shift; pbuild="$1" ;; |
--pbuild|-b) shift; pbuild="$1" ;; |
1127 |
--parch|a) shift; parch="$1" ;; |
--parch|a) shift; parch="$1" ;; |
|
--target|t) shift; target="$1" ;; |
|
1128 |
esac |
esac |
1129 |
shift |
shift |
1130 |
done |
done |
1140 |
[ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set." |
[ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set." |
1141 |
[ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set." |
[ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set." |
1142 |
|
|
|
# fix target as it may be empty ! |
|
|
[ -n "${target}" ] && target="-${target}" |
|
|
|
|
1143 |
# build pkgname |
# build pkgname |
1144 |
pkgname="${pname}${target}-${pver}-${parch}$(print_distrotag)-${pbuild}" |
pkgname="${pname}-${pver}-${parch}$(print_distrotag)-${pbuild}" |
1145 |
|
|
1146 |
# build pkg-md5-sum only if requested |
# build pkg-md5-sum only if requested |
1147 |
if mqueryfeature regentree |
if mqueryfeature regentree |
1159 |
: ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree} |
: ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree} |
1160 |
|
|
1161 |
# setup md5 dir |
# setup md5 dir |
1162 |
dest="${MAGE_TREE_DEST}/${pcat}/${pname}${target}/md5" |
dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5" |
1163 |
install -d ${dest} |
install -d ${dest} |
1164 |
|
|
1165 |
# gen md5sum |
# gen md5sum |