aboutsummaryrefslogtreecommitdiff
path: root/pbuildd/buildd.sh
diff options
context:
space:
mode:
authordancer <dancer>2002-12-30 04:35:29 +0000
committerdancer <dancer>2002-12-30 04:35:29 +0000
commitcfa7e0e6a5344369a7c8831c956102deff40c619 (patch)
tree264f7718238c733544b7c350be040dd60c848b12 /pbuildd/buildd.sh
parentf7de5c6489cf90e9f1c1709f63dca8179a423262 (diff)
downloadpbuilder-cfa7e0e6a5344369a7c8831c956102deff40c619.tar
pbuilder-cfa7e0e6a5344369a7c8831c956102deff40c619.tar.gz
import from pbuildd repos.
Diffstat (limited to 'pbuildd/buildd.sh')
-rwxr-xr-xpbuildd/buildd.sh94
1 files changed, 94 insertions, 0 deletions
diff --git a/pbuildd/buildd.sh b/pbuildd/buildd.sh
new file mode 100755
index 0000000..2610ab3
--- /dev/null
+++ b/pbuildd/buildd.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+# all-rebuilder script.
+
+set -e
+
+. buildd-config.sh
+
+NOBUILDDEP=${BASEDIRECTORY}/FAILED/NOBUILDDEP
+FAILED=${BASEDIRECTORY}/FAILED
+DEPWAIT=${BASEDIRECTORY}/DEPWAIT
+SUCCESS=${BASEDIRECTORY}/SUCCESS
+DEPWAIT=${BASEDIRECTORY}/DEPWAIT
+mkdir "$FAILED" || true
+mkdir "$DEPWAIT" || true
+mkdir "$SUCCESS" || true
+mkdir "$DEPWAIT" || true
+mkdir ${BASEDIRECTORY}/WORKING || true
+mkdir ${BASEDIRECTORY}/STATUS || true
+mkdir "$NOBUILDDEP" || true
+BUILDRESULTDIR=${PWD}/RESULT-deb
+mkdir "$BUILDRESULTDIR" || true
+
+STATUSFILE=${BASEDIRECTORY}/STATUS/$(hostname)-$$
+BUILDTMP=${BASEDIRECTORY}/tmp-b-$(hostname)-$$
+
+function status () {
+ echo "$@" > $STATUSFILE
+ echo "$@"
+}
+
+function buildone() {
+ local PROGNAME="$1"
+ local LOGFILE=${BASEDIRECTORY}/WORKING/"$PROGNAME.log"
+
+
+ # this part needs to be atomic
+ status "considering $PROGNAME"
+ if grep "$PROGNAME" avoidlist; then
+ echo Skip.
+ return
+ fi
+ if echo "$PROGNAME" | grep "^kernel-image"; then
+ echo I hate kernel images.
+ return
+ fi
+
+ if [ $(find -name $PROGNAME.log | wc -l ) = "1" ]; then
+ echo Already build tried for "$PROGNAME"
+ return
+ fi
+ # end of atomic.
+
+ status "building $PROGNAME"
+ mkdir $BUILDTMP || true
+ (
+ cd $BUILDTMP
+ apt-get source -d $PROGNAME
+ if sudo pbuilder build --hookdir "${HOOKDIR}" --buildresult . --logfile "$LOGFILE" *.dsc; then
+ mv "$LOGFILE" "$SUCCESS"
+ echo Build successful
+ else
+ if grep "^E: pbuilder: Could not satisfy build-dependency." $LOGFILE > /dev/null; then
+ mv "$LOGFILE" "$DEPWAIT"
+ echo Dependency cannot be satisfied.
+ elif [ $(awk '/ -> Attempting to parse the build-deps/,/^ -> Finished parsing the build-deps/{print $0}' $LOGFILE | wc -l ) = "2" ]; then
+ echo "Missing build-deps"
+ mv "$LOGFILE" "$NOBUILDDEP"
+ elif grep '^E: Could not satisfy build-dependency' "$LOGFILE" > /dev/null ; then
+ echo "Build-dep wait"
+ mv "$LOGFILE" "$DEPWAIT"
+ else
+ mv "$LOGFILE" "$FAILED"
+ echo Build failed
+ fi
+ fi
+ )
+ status "finished building $PROGNAME"
+ rm -rf $BUILDTMP;
+}
+
+
+$ROOTCOMMAND dselect update
+$ROOTCOMMAND pbuilder update
+
+tmpfile=$(tempfile)
+wget "${MIRROR}"/debian/dists/unstable/main/source/Sources.gz -O${tmpfile}
+
+for A in $( zcat ${tmpfile} | sed -n 's/^Package: //p' | cut -d\ -f1|sort | uniq | bogosort -n ); do
+ waitingroutine
+ buildone $A
+done
+
+rm -f ${tmpfile}
+