## racing with another process, but that's why we're trying in a loop.
if mkdir "$ver#$nn" >/dev/null 2>&1; then
winp=t
+ cd "$ver#$nn"
break
fi
## Make sure we actually succeeded.
case $winp in t) ;; *) fail "failed to create build directory" ;; esac
+ ## Make an empty directory for dependency packages.
+ mkdir -p pkgs/
+
## Done.
echo "$buildroot/$dist#$nn"
;;
nil) firstopt="$firstopt --debbuildopt=-A" ;;
esac
+ ## Sort out the additional packages. This is rather annoying, because
+ ## sbuild(1) does this in a really stupid way.
+ rm -rf pkgs.*
+ for a in $buildarchs; do
+ mkdir pkgs.$a
+ for f in $(dpkg-scanpackages -a$a pkgs/ |
+ sed -n '/^Filename: /s///p')
+ do
+ ln $f pkgs.$a/
+ done
+ done
+
## Build a cheesy makefile to run these in parallel.
cat >build.mk <<EOF
### -*-makefile-*-
suite=\$\${full%%-*} target=\$\${full\#*-}; \\
{ echo started >build-status.\$\$full; \\
sbuild \\
+ --extra-package=pkgs.\$\$target/ \\
--dist=\$\$suite --build=\$\$host --host=\$\$target \\
--chroot=\$\$suite-\$\$host --verbose \$1 \$(DSC); \\
rc=\$\$?; case \$\$rc in \\