build: refactor common custom package magic

This commit is contained in:
Franco Fichtner 2015-07-16 17:34:35 +02:00
parent 30347d8fc6
commit 3541703340
4 changed files with 19 additions and 19 deletions

View File

@ -30,7 +30,7 @@ SRCDIR?= /usr/src
# A couple of meta-targets for easy use:
source: base kernel
packages: ports core plugins
packages: ports plugins core
sets: source packages
images: iso memstick nano
everything: sets images

View File

@ -322,6 +322,18 @@ install_packages()
done
}
create_packages()
{
chroot ${1} /bin/sh -es << EOF
echo -n ">>> Creating custom package for ${2}... "
pkg create -m ${1} -r ${1} -p ${1}/plist -o ${PACKAGESDIR}/All
echo "done"
# clear the internal staging area and package files
rm -rf ${1}
EOF
}
bundle_packages()
{
sh ./clean.sh packages

View File

@ -46,22 +46,18 @@ while read PORT_NAME PORT_CAT PORT_TYPE PORT_BROKEN; do
PORT_LIST="${PORT_LIST} ${PORT_NAME}"
done < ${CONFIGDIR}/ports.conf
REPO_SUFFIX=
if [ -n "${1}" ]; then
REPO_SUFFIX=-${1}
fi
extract_packages ${STAGEDIR} opnsense"${REPO_SUFFIX}"
extract_packages ${STAGEDIR} opnsense
install_packages ${STAGEDIR} gettext-tools ${PORT_LIST}
chroot ${STAGEDIR} /bin/sh -es << EOF
make -C ${COREDIR} DESTDIR=${STAGEDIR} install
make -C ${COREDIR} DESTDIR=${STAGEDIR} scripts
make -C ${COREDIR} DESTDIR=${STAGEDIR} manifest > ${STAGEDIR}/+MANIFEST
for PKGFILE in \$(ls \${STAGEDIR}/+*); do
# fill in the blanks that come from the build
sed -i "" -e "s/%%REPO_VERSION%%/${REPO_VERSION}/g" \${PKGFILE}
sed -i "" -e "s/%%REPO_COMMENT%%/${REPO_COMMENT}/g" \${PKGFILE}
sed -i "" -e "s/%%REPO_SUFFIX%%/${REPO_SUFFIX}/g" \${PKGFILE}
done
REPO_FLAVOUR="latest"
@ -86,10 +82,7 @@ sed -i "" -e "/%%REPO_DEPENDS%%/r ${STAGEDIR}/deps" ${STAGEDIR}/+MANIFEST
sed -i "" -e '/%%REPO_DEPENDS%%/d' ${STAGEDIR}/+MANIFEST
make -C ${COREDIR} DESTDIR=${STAGEDIR} plist > ${STAGEDIR}/plist
echo -n ">>> Creating custom package for ${COREDIR}... "
pkg create -m ${STAGEDIR} -r ${STAGEDIR} -p ${STAGEDIR}/plist -o ${PACKAGESDIR}/All
echo "done"
EOF
create_packages ${STAGEDIR} ${REPO_NAME}
bundle_packages ${STAGEDIR}

View File

@ -32,26 +32,21 @@ set -e
setup_stage ${STAGEDIR}
setup_base ${STAGEDIR}
setup_clone ${STAGEDIR} ${PLUGINSDIR}
extract_packages ${STAGEDIR}
extract_packages ${STAGEDIR} opnsense
install_packages ${STAGEDIR}
PLUGINS=$(make -C ${PLUGINSDIR} list)
for PLUGIN in ${PLUGINS}; do
chroot ${STAGEDIR} /bin/sh -es << EOF
# clear the internal staging area
rm -rf ${STAGEDIR}
make -C ${PLUGINSDIR}/${PLUGIN} DESTDIR=${STAGEDIR} install
make -C ${PLUGINSDIR}/${PLUGIN} DESTDIR=${STAGEDIR} scripts
make -C ${PLUGINSDIR}/${PLUGIN} DESTDIR=${STAGEDIR} manifest > ${STAGEDIR}/+MANIFEST
make -C ${PLUGINSDIR}/${PLUGIN} DESTDIR=${STAGEDIR} plist > ${STAGEDIR}/plist
echo -n ">>> Creating custom package for plugin ${PLUGIN}... "
pkg create -m ${STAGEDIR} -r ${STAGEDIR} -p ${STAGEDIR}/plist -o ${PACKAGESDIR}/All
echo "done"
EOF
create_packages ${STAGEDIR} ${PLUGIN}
done
bundle_packages ${STAGEDIR}