debootstrap prior to 1.0.67 generated an empty sources.list during foreign bootstraps (Debian#732255 [1]). Fall back to the git checkout if the installed debootstrap version is too old.
[1] https://bugs.debian.org/732255 Signed-off-by: Sascha Silbe <si...@linux.vnet.ibm.com> --- v2→v3: - fix unbalanced white space around pipes - replaced GNU-specific version sort option with POSIX compliant set of options tests/docker/dockerfiles/debian-bootstrap.pre | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/docker/dockerfiles/debian-bootstrap.pre b/tests/docker/dockerfiles/debian-bootstrap.pre index 3d9f7f4..ee69e89 100755 --- a/tests/docker/dockerfiles/debian-bootstrap.pre +++ b/tests/docker/dockerfiles/debian-bootstrap.pre @@ -3,6 +3,8 @@ # Simple wrapper for debootstrap, run in the docker build context # FAKEROOT=`which fakeroot 2> /dev/null` +# debootstrap < 1.0.67 generates empty sources.list, see Debian#732255 +MIN_DEBOOTSTRAP_VERSION=1.0.67 exit_and_skip() { @@ -40,9 +42,17 @@ fi # if [ -z $DEBOOTSTRAP_DIR ]; then + NEED_DEBOOTSTRAP=false DEBOOTSTRAP=`which debootstrap 2> /dev/null` if [ -z $DEBOOTSTRAP ]; then echo "No debootstrap installed, attempting to install from SCM" + NEED_DEBOOTSTRAP=true + elif ! (echo "${MIN_DEBOOTSTRAP_VERSION}" ; "${DEBOOTSTRAP}" --version \ + | cut -d ' ' -f 2) | sort -t . -n -k 1,1 -k 2,2 -k 3,3 -C; then + echo "debootstrap too old, attempting to install from SCM" + NEED_DEBOOTSTRAP=true + fi + if $NEED_DEBOOTSTRAP; then DEBOOTSTRAP_SOURCE=https://anonscm.debian.org/git/d-i/debootstrap.git git clone ${DEBOOTSTRAP_SOURCE} ./debootstrap.git export DEBOOTSTRAP_DIR=./debootstrap.git -- 1.9.1