Message ID | 1473192351-601-7-git-send-email-silbe@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 09/06 22:05, Sascha Silbe wrote: > 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 <silbe@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 Like -V, -C is not available on OSX either. Maybe use "-c"? If so, I can fix it when applying. https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/sort.1.html Fam > + 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 > >
Dear Fam, Fam Zheng <famz@redhat.com> writes: [...] >> + 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 > > Like -V, -C is not available on OSX either. Maybe use "-c"? If so, I can fix it > when applying. > > https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/sort.1.html Thanks for the pointer. So Apple took a 2005 version of GNU sort, removed version sort support (introduced in 1997) and neglected to update it for POSIX.1-2008 compliance [1]? Guess using "-c" and redirecting stderr to /dev/null is our only option then. Feel free to fix that up when applying. Thanks for pointing out these portability issues! Sascha [1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html
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
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 <silbe@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(+)