From 52c80c73fe062e84e0e766b11c499623fad99087 Mon Sep 17 00:00:00 2001 From: Philippe Pepiot Date: Wed, 29 Jun 2011 22:50:46 +0200 Subject: [PATCH] Bulk: Implement -c (run make config on each port) Run make config-recursive on each ports before starting bulk build. The way^Whack to have persistent options is to set PORTS_DBDIR somewhere in /usr/ports. Signed-off-by: Philippe Pepiot --- src/poudriere.d/bulk.sh | 25 ++++++++++++++++++++++--- src/poudriere.d/create_jail.sh | 1 - 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/poudriere.d/bulk.sh b/src/poudriere.d/bulk.sh index 57f9c39..a6a2d23 100755 --- a/src/poudriere.d/bulk.sh +++ b/src/poudriere.d/bulk.sh @@ -77,6 +77,25 @@ for JAILNAME in ${JAILNAMES}; do [ $PKGNG -eq 1 ] && EXT=txz + if [ $CONFIGSTR -eq 1 ]; then + for port in `grep -v -E '(^[[:space:]]*#|^[[:space:]]*$)' ${LISTPKGS}`; do + PORTDIRECTORY="/usr/ports/${port}" + + test -d ${JAILBASE}/${PORTDIRECTORY} || { + msg "No such port ${port}" + continue + } + + PKGNAME=$(jexec -U root ${JAILNAME} make -C ${PORTDIRECTORY} -VPKGNAME) + if [ -f ${POUDRIERE_DATA}/packages/bulk-${JAILNAME}/All/${PKGNAME}.${EXT} ]; then + msg "$PKGNAME already packaged skipping" + continue + fi + msg "Configuring ${PKGNAME}" + jexec -U root ${JAILNAME} make -C ${PORTDIRECTORY} config-recursive + done + fi + exec 3>&1 4>&2 [ ! -e ${PIPE} ] && mkfifo ${PIPE} tee ${LOGS}/bulk-${JAILNAME}.log < ${PIPE} >&3 & @@ -100,21 +119,21 @@ for JAILNAME in ${JAILNAMES}; do zfs rollback ${ZPOOL}/poudriere/${JAILNAME}@bulk rm -rf ${JAILBASE}/wrkdirs/* msg "building ${port}" - jexec -U root ${JAILNAME} make -C ${PORTDIRECTORY} clean install || : + jexec -U root ${JAILNAME} make -C ${PORTDIRECTORY} clean install BATCH=yes || : msg "packaging" if [ $PKGNG -eq 1 ]; then for pkg in `jexec -U root ${JAILNAME} /usr/sbin/pkg info -a | awk -F: '{ print $1 }'`; do [ -f ${POUDRIERE_DATA}/packages/bulk-${JAILNAME}/All/${pkg}.${EXT} ] && continue msg "packaging ${pkg}" pkgorig=`jexec -U root ${JAILNAME} /usr/sbin/pkg info -q -o ${pkg}` - jexec -U root ${JAILNAME} make -C /usr/ports/${pkgorig} package || continue + jexec -U root ${JAILNAME} make -C /usr/ports/${pkgorig} package BATCH=yes || continue done else for pkg in `jexec -U root ${JAILNAME} /usr/sbin/pkg_info | awk '{ print $1 }'`; do [ -f ${POUDRIERE_DATA}/packages/bulk-${JAILNAME}/All/${pkg}.${EXT} ] && continue msg "packaging ${pkg}" pkgorig=`jexec -U root ${JAILNAME} /usr/sbin/pkg_info -qo ${pkg}` - jexec -U root ${JAILNAME} make -C /usr/ports/${pkgorig} package + jexec -U root ${JAILNAME} make -C /usr/ports/${pkgorig} package BATCH=yes done fi done diff --git a/src/poudriere.d/create_jail.sh b/src/poudriere.d/create_jail.sh index 23d0ce8..2fb8539 100755 --- a/src/poudriere.d/create_jail.sh +++ b/src/poudriere.d/create_jail.sh @@ -145,7 +145,6 @@ pwd_mkdb -d ${JAILBASE}/etc/ -p ${JAILBASE}/etc/master.passwd cat >> ${JAILBASE}/etc/make.conf << EOF USE_PACKAGE_DEPENDS=yes -BATCH=yes WRKDIRPREFIX=/wrkdirs EOF -- 1.7.5.4