From: František Dvořák Date: Sun, 8 Jul 2012 22:28:23 +0000 (+0200) Subject: pbuilder support (requires pbuilder, dput, mini-dinstall, ...) X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=c10c1f00dfea1dd8a93cd4abce90c3fac67c6532;p=mock.git pbuilder support (requires pbuilder, dput, mini-dinstall, ...) --- diff --git a/mock.sh b/mock.sh index 74bfd7b..311b315 100755 --- a/mock.sh +++ b/mock.sh @@ -1,8 +1,31 @@ #! /bin/bash -e +# +# script to build binary packages from prepared source packages in source tree +# +# ==== mock ==== +# +# moduser -a -A mock $LOGNAME +# +# ==== pbuilder ==== +# +# pbuilder --create --distribution squeeze +# +# cat > /root/.pbuilderrc < mock/$CONF.cfg -fi - mkdir -p $REPORTS 2>/dev/null || : -createrepo results +if test "$CONF" != "pbuilder"; then + if ! test -d mock; then + mkdir mock + ln -s /etc/mock/logging.ini mock/ + touch mock/site-defaults.cfg + fi + if test ! -s mock/$CONF.cfg -o $LAUNCHDIR/$CONF.cfg.template -nt mock/$CONF.cfg; then + sed -e "s,@PWD@,`pwd`," -e "s,@REPO@,results," $LAUNCHDIR/$CONF.cfg.template > mock/$CONF.cfg + fi + + createrepo results +fi -build() { +mock_build() { local FILE="$1" local BASENAME=`basename "$FILE" | sed -e 's/-[0-9]\+.*//'` @@ -62,13 +86,40 @@ build() { echo "==== Done $BASENAME ====" } +pbuilder_build() { + local FILE="$1" + local BASENAME=`basename "$FILE" | sed -e 's/_[0-9]\+.*//'` + local DIR=`dirname "$FILE"` + local SUBDIR + local BASEDIR="`pwd`" + local CHANGES + + echo "==== Building $BASENAME ==== " + touch $REPORTS/fail.$BASENAME + (cd $DIR; dpkg-source -x "`basename $FILE`") + SUBDIR=`find $DIR -type d -name ${BASENAME}-\* | head -n 1` + (cd $SUBDIR; pdebuild --buildresult $BASEDIR/results/pbuilder -- --hookdir $LAUNCHDIR/pbuilder) + mv $DIR/*.build results/reports + CHANGES=`find results/pbuilder -type f -name ${BASENAME}_\*.changes | head -n 1` + # buggy mini-dinstall? + rm -f ~/debian/*.db + dput -uU local $CHANGES + rm -f $REPORTS/fail.$BASENAME + echo $BASENAME >> $REPORTS/success.log + echo "==== Done $BASENAME ====" +} package() { local file if test -d $1/dist; then - file=`find $1/dist -maxdepth 1 -type f -name $2-\*.src.rpm | head -n 1` - build $file + if test "$CONF" = "pbuilder"; then + file=`find $1/dist -maxdepth 1 -type f -name $2_\*.dsc | head -n 1` + pbuilder_build $file + else + file=`find $1/dist -maxdepth 1 -type f -name $2-\*.src.rpm | head -n 1` + mock_build $file + fi else echo "==== Skipping $1 ====" fi @@ -79,7 +130,7 @@ while test -n "$1"; do case "$1" in gridsite|grids) file=`find org.gridsite.core/RPMTMP -type f -name gridsite-\*.src.rpm | head -n 1` - build $file + mock_build $file ;; jobid) @@ -129,7 +180,11 @@ while test -n "$1"; do ;; *) - build "$1" + if test "$CONF" = "pbuilder"; then + pbuilder_build "$1" + else + mock_build "$1" + fi esac shift diff --git a/pbuilder/D00update b/pbuilder/D00update new file mode 100755 index 0000000..748356d --- /dev/null +++ b/pbuilder/D00update @@ -0,0 +1,2 @@ +#! /bin/sh +aptitude update