- ## Make some marker files to say things are in progress.
- for i in $first $rest; do echo "starting" >build-status.${i%/*}; done
-
- ## And we're ready to go.
- mkfifo pipeout
- cat pipeout& catpid=$!
- set +e; make -fbuild.mk $parallel $makeopts -k all >pipeout
- rc=$?; set -e
- wait $!
- rm build.mk pipeout build-status.*
- find . -maxdepth 1 -type l -exec rm {} \;
+ ## Build the builds sequentially. Tests can conflict with each other,
+ ## e.g., over port numbers.
+ rc=0 buildopt=$firstopt
+ for t in $first $rest; do
+ host=${t##*/} full=${t%/*}
+ suite=${full%%-*} target=${full#*-}
+
+ ## And we're ready to go.
+ exec 3>&1
+ thisrc=$(
+ { { { { set +e
+ run sbuild --extra-package=pkgs.$target \
+ --dist=$suite --build=$host --host=$target \
+ --chroot=$suite-$host --verbose $buildopt $dsc \
+ ${dbpargs+--debbuildopts="$dbpargs"} \
+ 3>&- 4>&- 5>&-
+ echo $? >&5
+ } |
+ decor "$full" "|" >&4; } 2>&1 |
+ decor "$full" "*" >&4; } 4>&1 |
+ cat -u >&3; } 5>&1 </dev/null)
+ exec 3>&-
+ case $thisrc in 0) ;;
+ *)
+ echo failed rc=$thisrc >$stat; rc=$thisrc
+ case $keepon in nil) break ;; esac
+ ;;
+ esac
+ buildopt=--no-arch-all
+ done