build: add PRODUCT_FLAVOUR awareness to ports/packages

This commit is contained in:
Franco Fichtner 2015-05-07 09:00:32 +02:00
parent 020d1eac63
commit a63303ada9
5 changed files with 25 additions and 24 deletions

View File

@ -32,15 +32,6 @@ export PRODUCT_VERSION=${PRODUCT_VERSION:-"`date '+%Y%m%d%H%M'`"}
export PRODUCT_FLAVOUR=${PRODUCT_FLAVOUR:-"OpenSSL"}
export PRODUCT_NAME="OPNsense"
# define target directories
export STAGEDIR="/usr/local/stage"
export PACKAGESDIR="/tmp/packages"
export IMAGESDIR="/tmp/images"
export SETSDIR="/tmp/sets"
# bootstrap target directories
mkdir -p ${STAGEDIR} ${PACKAGESDIR} ${IMAGESDIR} ${SETSDIR}
# code reositories
export TOOLSDIR="/usr/tools"
export PORTSDIR="/usr/ports"
@ -56,6 +47,15 @@ export LABEL=${PRODUCT_NAME}
export TARGET_ARCH=${ARCH}
export TARGETARCH=${ARCH}
# define target directories
export PACKAGESDIR="/tmp/packages/${ARCH}/${PRODUCT_FLAVOUR}"
export STAGEDIR="/usr/local/stage"
export IMAGESDIR="/tmp/images"
export SETSDIR="/tmp/sets"
# bootstrap target directories
mkdir -p ${STAGEDIR} ${PACKAGESDIR} ${IMAGESDIR} ${SETSDIR}
# target files
export CDROM="${IMAGESDIR}/${PRODUCT_NAME}-${PRODUCT_VERSION}-cdrom-${ARCH}.iso"
export SERIALIMG="${IMAGESDIR}/${PRODUCT_NAME}-${PRODUCT_VERSION}-serial-${ARCH}.img"
@ -173,11 +173,12 @@ setup_packages()
shift
PKGLIST=${@}
mkdir -p ${PACKAGESDIR}/${ARCH} ${BASEDIR}${PACKAGESDIR}
cp -r ${PACKAGESDIR}/${ARCH} ${BASEDIR}${PACKAGESDIR}
mkdir -p ${BASEDIR}${PACKAGESDIR}
tar -C ${PACKAGESDIR} -cf - . | \
tar -C ${BASEDIR}${PACKAGESDIR} -xpf -
if [ -z "${PKGLIST}" ]; then
PKGLIST=$(ls ${PACKAGESDIR}/${ARCH}/*.txz || true)
PKGLIST=$(ls ${PACKAGESDIR}/*.txz || true)
for PKG in ${PKGLIST}; do
# Adds all available packages but ignores the
# ones that cannot be installed due to missing
@ -190,7 +191,7 @@ setup_packages()
# Adds all selected packages and fails if
# one cannot be installed. Used to build
# final images or regression test systems.
pkg -c ${BASEDIR} add ${PACKAGESDIR}/${ARCH}/${PKG}-*.txz
pkg -c ${BASEDIR} add ${PACKAGESDIR}/${PKG}-*.txz
done
fi
@ -204,7 +205,7 @@ setup_packages()
done
# keep the directory!
rm -rf ${BASEDIR}${PACKAGESDIR}/${ARCH}/*
rm -rf ${BASEDIR}${PACKAGESDIR}/*
}
setup_mtree()

View File

@ -29,7 +29,7 @@ set -e
. ./common.sh
rm -f ${PACKAGESDIR}/${ARCH}/opnsense-*.txz
rm -f ${PACKAGESDIR}/opnsense-*.txz
git_clear ${PORTSDIR}
git_clear ${COREDIR}
@ -81,7 +81,7 @@ sed -i "" -e '/%%REPO_DEPENDS%%/d' ${STAGEDIR}/+MANIFEST
echo -n ">>> Creating custom package for ${COREDIR}... "
pkg -c ${STAGEDIR} create -m / -r / -p /plist -o ${PACKAGESDIR}/${ARCH}
mv ${STAGEDIR}${PACKAGESDIR}/${ARCH}/opnsense-*.txz ${PACKAGESDIR}/${ARCH}
pkg -c ${STAGEDIR} create -m / -r / -p /plist -o ${PACKAGESDIR}
mv ${STAGEDIR}${PACKAGESDIR}/opnsense-*.txz ${PACKAGESDIR}
echo "done"

View File

@ -38,7 +38,7 @@ mkdir -p ${STAGEDIR}/Latest
mkdir -p ${STAGEDIR}/All
# push packages to home location
cp ${PACKAGESDIR}/${ARCH}/* ${STAGEDIR}/All
cp ${PACKAGESDIR}/* ${STAGEDIR}/All
# needed bootstrap glue when no packages are on the system
cd ${STAGEDIR}/Latest && ln -s ../All/pkg-*.txz pkg.txz

View File

@ -38,7 +38,7 @@ git_clear ${SRCDIR}
if [ -n "${PORT_JOBS}" ]; then
for PORT_JOB in ${PORT_JOBS}; do
# clear out the ports that ought to be rebuilt
rm -f ${PACKAGESDIR}/${ARCH}/${PORT_JOB}-*.txz
rm -f ${PACKAGESDIR}/${PORT_JOB}-*.txz
done
fi
@ -116,7 +116,7 @@ pkg_resolve_deps()
done
for PORT in \${PORTS}; do
pkg create -no ${PACKAGESDIR}/${ARCH} -f txz \${PORT}
pkg create -no ${PACKAGESDIR} -f txz \${PORT}
done
}
@ -131,8 +131,8 @@ echo "${PORT_LIST}" | { while read PORT_NAME PORT_CAT PORT_OPT; do
done }
EOF
rm -rf ${PACKAGESDIR}/${ARCH}/*
mv ${STAGEDIR}${PACKAGESDIR}/${ARCH}/* ${PACKAGESDIR}/${ARCH}/
rm -rf ${PACKAGESDIR}/*
mv ${STAGEDIR}${PACKAGESDIR}/* ${PACKAGESDIR}
if [ -n "${PORT_ABORT}" ]; then
echo ">>> The ports build failed. Please inspect the log."

View File

@ -36,9 +36,9 @@ fi
if [ -n "${1}" ]; then
# make sure the all-encompassing package is a release, too
if [ ! -f ${PACKAGESDIR}/${ARCH}/opnsense-${1}.txz ]; then
if [ ! -f ${PACKAGESDIR}/opnsense-${1}.txz ]; then
echo "Release version mismatch:"
ls ${PACKAGESDIR}/${ARCH}/opnsense-*.txz
ls ${PACKAGESDIR}/opnsense-*.txz
exit 1
fi
fi