build: refactor common custom package magic
This commit is contained in:
parent
30347d8fc6
commit
3541703340
2
Makefile
2
Makefile
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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}
|
||||
|
|
Loading…
Reference in New Issue