build/test: repair os-* globbing

We can't install both types of plugins, so when SUFFIX= we need to
exclude "-devel".  Not the prettiest approach, but should do it in
99% of cases.
This commit is contained in:
Franco Fichtner 2017-08-26 08:27:08 +02:00
parent da33dc6eeb
commit 837c52fa54
6 changed files with 18 additions and 11 deletions

View File

@ -42,7 +42,7 @@ for ARG in ${@}; do
setup_stage ${STAGEDIR} setup_stage ${STAGEDIR}
setup_base ${STAGEDIR} setup_base ${STAGEDIR}
extract_packages ${STAGEDIR} extract_packages ${STAGEDIR}
remove_packages ${STAGEDIR} ${PRODUCT_PKGNAMES} remove_packages ${STAGEDIR} ${PRODUCT_CORES}
bundle_packages ${STAGEDIR} ${SELF} core bundle_packages ${STAGEDIR} ${SELF} core
;; ;;
distfiles) distfiles)
@ -88,7 +88,7 @@ for ARG in ${@}; do
setup_stage ${STAGEDIR} setup_stage ${STAGEDIR}
setup_base ${STAGEDIR} setup_base ${STAGEDIR}
extract_packages ${STAGEDIR} extract_packages ${STAGEDIR}
remove_packages ${STAGEDIR} "os-*" remove_packages ${STAGEDIR} ${PRODUCT_PLUGINS}
bundle_packages ${STAGEDIR} ${SELF} plugins bundle_packages ${STAGEDIR} ${SELF} plugins
;; ;;
release) release)

View File

@ -216,8 +216,10 @@ export PRODUCT_PUBKEY=${PRODUCT_PUBKEY:-"${CONFIGDIR}/repo.pub"}
export PRODUCT_SIGNCMD=${PRODUCT_SIGNCMD:-"${TOOLSDIR}/scripts/pkg_sign.sh ${PRODUCT_PUBKEY} ${PRODUCT_PRIVKEY}"} export PRODUCT_SIGNCMD=${PRODUCT_SIGNCMD:-"${TOOLSDIR}/scripts/pkg_sign.sh ${PRODUCT_PUBKEY} ${PRODUCT_PRIVKEY}"}
export PRODUCT_SIGNCHK=${PRODUCT_SIGNCHK:-"${TOOLSDIR}/scripts/pkg_fingerprint.sh ${PRODUCT_PUBKEY}"} export PRODUCT_SIGNCHK=${PRODUCT_SIGNCHK:-"${TOOLSDIR}/scripts/pkg_fingerprint.sh ${PRODUCT_PUBKEY}"}
export PRODUCT_RELEASE="${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_FLAVOUR}" export PRODUCT_RELEASE="${PRODUCT_NAME}-${PRODUCT_VERSION}-${PRODUCT_FLAVOUR}"
export PRODUCT_PKGNAMES="${PRODUCT_TYPE} ${PRODUCT_TYPE}-devel" export PRODUCT_CORES="${PRODUCT_TYPE} ${PRODUCT_TYPE}-devel"
export PRODUCT_PKGNAME="${PRODUCT_TYPE}${PRODUCT_SUFFIX}" export PRODUCT_CORE="${PRODUCT_TYPE}${PRODUCT_SUFFIX}"
export PRODUCT_PLUGINS="os-*"
export PRODUCT_PLUGIN="os-*${PRODUCT_SUFFIX}"
if [ "${SELF}" != print -a "${SELF}" != info ]; then if [ "${SELF}" != print -a "${SELF}" != info ]; then
if [ -z "${PRINT_ENV_SKIP}" ]; then if [ -z "${PRINT_ENV_SKIP}" ]; then
@ -599,10 +601,15 @@ install_packages()
# Adds all selected packages and fails if one cannot # Adds all selected packages and fails if one cannot
# be installed. Used to build a runtime environment. # be installed. Used to build a runtime environment.
for PKG in pkg ${PKGLIST}; do for PKG in pkg ${PKGLIST}; do
PKGGLOB=$(echo "${PKG}" | sed 's/[^*]*//')
PKGSEARCH="-name ${PKG}-[0-9]*.txz"
PKGFOUND= PKGFOUND=
if [ -n "${PKGGLOB}" -a -z "${PRODUCT_SUFFIX}" ]; then
PKGSEARCH="${PKGSEARCH} ! -name ${PKG}-devel-[0-9]*.txz"
fi
for PKGFILE in $({ for PKGFILE in $({
cd ${BASEDIR} cd ${BASEDIR}
find .${PACKAGESDIR}/All -name "${PKG}-[0-9]*.txz" find .${PACKAGESDIR}/All ${PKGSEARCH}
}); do }); do
pkg -c ${BASEDIR} add ${PKGFILE} pkg -c ${BASEDIR} add ${PKGFILE}
PKGFOUND=1 PKGFOUND=1
@ -716,7 +723,7 @@ clean_packages()
setup_packages() setup_packages()
{ {
extract_packages ${1} extract_packages ${1}
install_packages ${@} ${PRODUCT_PKGNAME} ${PRODUCT_ADDITIONS} install_packages ${@} ${PRODUCT_CORE} ${PRODUCT_ADDITIONS}
clean_packages ${1} clean_packages ${1}
} }

View File

@ -72,7 +72,7 @@ setup_chroot ${STAGEDIR}
setup_distfiles ${STAGEDIR} setup_distfiles ${STAGEDIR}
extract_packages ${STAGEDIR} extract_packages ${STAGEDIR}
remove_packages ${STAGEDIR} ${@} ${PRODUCT_PKGNAMES} "os-*" remove_packages ${STAGEDIR} ${@} ${PRODUCT_CORES} ${PRODUCT_PLUGINS}
for PKG in $(cd ${STAGEDIR}; find .${PACKAGESDIR}/All -type f); do for PKG in $(cd ${STAGEDIR}; find .${PACKAGESDIR}/All -type f); do
# all packages that install have their dependencies fulfilled # all packages that install have their dependencies fulfilled

View File

@ -43,9 +43,9 @@ RELEASE_SET="${SETSDIR}/release-${PRODUCT_VERSION}-${PRODUCT_FLAVOUR}-${PRODUCT_
# make sure the all-encompassing package is a release, too # make sure the all-encompassing package is a release, too
setup_stage ${STAGEDIR} setup_stage ${STAGEDIR}
extract_packages ${STAGEDIR} extract_packages ${STAGEDIR}
if [ ! -f ${STAGEDIR}${PACKAGESDIR}/All/${PRODUCT_PKGNAME}-${PRODUCT_VERSION}.txz ]; then if [ ! -f ${STAGEDIR}${PACKAGESDIR}/All/${PRODUCT_CORE}-${PRODUCT_VERSION}.txz ]; then
echo "Release package version mismatch:" \ echo "Release package version mismatch:" \
"$(basename ${STAGEDIR}${PACKAGESDIR}/All/${PRODUCT_PKGNAME}-[0-9]*.txz)" "$(basename ${STAGEDIR}${PACKAGESDIR}/All/${PRODUCT_CORE}-[0-9]*.txz)"
exit 1 exit 1
fi fi

View File

@ -41,7 +41,7 @@ setup_clone ${STAGEDIR} ${PLUGINSDIR}
setup_chroot ${STAGEDIR} setup_chroot ${STAGEDIR}
extract_packages ${STAGEDIR} extract_packages ${STAGEDIR}
install_packages ${STAGEDIR} "os-*${PRODUCT_SUFFIX}" ${PRODUCT_PKGNAME} install_packages ${STAGEDIR} ${PRODUCT_CORE} ${PRODUCT_PLUGIN}
echo ">>> Running packages test suite..." echo ">>> Running packages test suite..."
chroot ${STAGEDIR} /bin/sh -es <<EOF chroot ${STAGEDIR} /bin/sh -es <<EOF

View File

@ -36,7 +36,7 @@ setup_base ${STAGEDIR}
setup_chroot ${STAGEDIR} setup_chroot ${STAGEDIR}
extract_packages ${STAGEDIR} extract_packages ${STAGEDIR}
install_packages ${STAGEDIR} ${PRODUCT_PKGNAME} install_packages ${STAGEDIR} ${PRODUCT_CORE}
mkdir -p ${STAGEDIR}${SETSDIR} mkdir -p ${STAGEDIR}${SETSDIR}
cp ${SETSDIR}/* ${STAGEDIR}${SETSDIR} cp ${SETSDIR}/* ${STAGEDIR}${SETSDIR}