I wrote: > It would probably work something like this: If debootstrap is told to > use a suite that it does not have a script for, try calling > download_release_indices. If that is able to download a release file for > the suite, look for the codename. If there is a script for the codename, > then use it (and try to avoid re-downloading the Release and Packages > files again, probably). Else abort. Patch attached. It does download the Release file an extra time if the suite is one that must map to a code name. That could be fixed, but the extra complexity may not be worth it. -- see shy jo
diff -ur old/debootstrap-0.2.18/debian/changelog debootstrap-0.2.18/debian/changelog --- old/debootstrap-0.2.18/debian/changelog 2003-11-14 09:19:28.000000000 -0500 +++ debootstrap-0.2.18/debian/changelog 2003-12-03 13:53:43.000000000 -0500 @@ -1,3 +1,9 @@ +debootstrap (0.2.19) unstable; urgency=low + + * Add support for mapping from symbolic suite names to code names. + + -- Joey Hess <joeyh@debian.org> Wed, 3 Dec 2003 13:52:56 -0500 + debootstrap (0.2.18) unstable; urgency=low * Thanks to Steinar Gunderson and Matt Kraii for the NMU fixing some diff -ur old/debootstrap-0.2.18/debootstrap debootstrap-0.2.18/debootstrap --- old/debootstrap-0.2.18/debootstrap 2003-11-10 09:06:10.000000000 -0500 +++ debootstrap-0.2.18/debootstrap 2003-12-03 14:11:38.000000000 -0500 @@ -176,7 +176,19 @@ fi if [ ! -e "$SCRIPT" ]; then - error 1 NOSCRIPT "No such script: %s" "$SCRIPT" + tmp_release="tmp.$$/Release" + on_exit "rm -rf tmp.$$" + (download_release_file $tmp_release 2>/dev/null) || true + if [ -e $tmp_release ]; then + SUITE=$(get_release_suite $tmp_release) + if [ "$SUITE" != "" ]; then + SCRIPT="$DEBOOTSTRAP_DIR/scripts/$SUITE" + fi + fi + + if [ ! -e "$SCRIPT" ]; then + error 1 NOSCRIPT "No such script: %s" "$SCRIPT" + fi fi mkdir -p "$TARGET" diff -ur old/debootstrap-0.2.18/functions debootstrap-0.2.18/functions --- old/debootstrap-0.2.18/functions 2003-11-14 09:18:27.000000000 -0500 +++ debootstrap-0.2.18/functions 2003-12-03 13:50:57.000000000 -0500 @@ -324,9 +324,14 @@ done | head -n 1 } -download_release_indices () { +get_release_suite () { + local reldest="$1" + sed -n 's/^Codename: //p' < $reldest +} + +download_release_file () { + local reldest=$1 local m1=${MIRRORS%% *} - local reldest="$TARGET/$($DLDEST rel $SUITE $m1 dists/$SUITE/Release)" progress 0 100 DOWNREL "Downloading Release file" progress_next 100 get "$m1/dists/$SUITE/Release" $reldest || @@ -348,6 +353,11 @@ error 1 INVALIDREL "Invalid Release file, no valid components" fi progress 100 100 DOWNREL "Downloading Release file" +} + +download_release_indices () { + local reldest="$TARGET/$($DLDEST rel $SUITE $m1 dists/$SUITE/Release)" + download_release_file $reldest local totalpkgs=0 for c in $COMPONENTS; do
Attachment:
signature.asc
Description: Digital signature