Package: debootstrap Version: 0.3.1.3 Severity: wishlist Tags: patch The attached patch adds support for the Ubuntu breezy distribution, which I've now set up to be determined mostly dynamically (the buildd variant is still hardcoded because we haven't set up Build-Essential extraoverrides yet).
The breezy script is very similar to sid, although differs in a few places: --- sid 2005-06-16 09:48:23.000000000 +0100 +++ breezy 2005-06-26 18:39:44.000000000 +0100 @@ -14,7 +14,16 @@ # ^^ should be getting debconf here somehow maybe base="$(get_debs Priority: important)" elif doing_variant buildd; then - base="$(get_debs Build-Essential: yes)" + # TODO: add Build-Essential: yes extraoverrides + #base="$(get_debs Build-Essential: yes)" + + add () { if [ "$ARCH" = "$1" ]; then eval "$2=\"\$$2 $3\""; fi; } + + base="apt binutils cpio cpp cpp-4.0 dpkg-dev g++ g++-4.0 gcc gcc-4.0 ${LIBC6}-dev libdb4.2 libgdbm3 libstdc++6-4.0-dev linux-kernel-headers make patch perl perl-modules" + + add ia64 "libunwind7-dev" + add sparc "lib64gcc1" + add sparc "libc6-dev-sparc64" fi } @@ -68,7 +77,8 @@ in_target /sbin/ldconfig DEBIAN_FRONTEND=noninteractive - export DEBIAN_FRONTEND + DEBCONF_NONINTERACTIVE_SEEN=true + export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN baseprog=0 bases=7 Thanks, -- Colin Watson [EMAIL PROTECTED]
diff -Nru /tmp/eN8i04Oph4/debootstrap-0.3.1.3/Makefile /tmp/xLNDAjxtQ2/debootstrap-0.3.1.3ubuntu1/Makefile --- /tmp/eN8i04Oph4/debootstrap-0.3.1.3/Makefile 2005-06-16 13:28:52.000000000 +0100 +++ /tmp/xLNDAjxtQ2/debootstrap-0.3.1.3ubuntu1/Makefile 2005-06-26 19:02:52.000000000 +0100 @@ -36,6 +36,7 @@ install -o root -g root -m 0644 warty.buildd $(DSDIR)/scripts/ install -o root -g root -m 0644 hoary $(DSDIR)/scripts/ install -o root -g root -m 0644 hoary.buildd $(DSDIR)/scripts/ + install -o root -g root -m 0644 breezy $(DSDIR)/scripts/ install -o root -g root -m 0644 functions $(DSDIR)/ install -o root -g root -m 0755 debootstrap.8 $(DESTDIR)/usr/share/man/man8/ diff -Nru /tmp/eN8i04Oph4/debootstrap-0.3.1.3/breezy /tmp/xLNDAjxtQ2/debootstrap-0.3.1.3ubuntu1/breezy --- /tmp/eN8i04Oph4/debootstrap-0.3.1.3/breezy 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/xLNDAjxtQ2/debootstrap-0.3.1.3ubuntu1/breezy 2005-06-26 18:39:44.000000000 +0100 @@ -0,0 +1,161 @@ +mirror_style release +download_style apt +finddebs_style from-indices +variants - buildd + +work_out_debs () { + LIBC6=libc6 + if [ "$ARCH" = "alpha" -o "$ARCH" = "ia64" ]; then LIBC6="libc6.1"; fi + + required="$(get_debs Priority: required)" + + if doing_variant -; then + #required="$required $(get_debs Priority: important)" + # ^^ should be getting debconf here somehow maybe + base="$(get_debs Priority: important)" + elif doing_variant buildd; then + # TODO: add Build-Essential: yes extraoverrides + #base="$(get_debs Build-Essential: yes)" + + add () { if [ "$ARCH" = "$1" ]; then eval "$2=\"\$$2 $3\""; fi; } + + base="apt binutils cpio cpp cpp-4.0 dpkg-dev g++ g++-4.0 gcc gcc-4.0 ${LIBC6}-dev libdb4.2 libgdbm3 libstdc++6-4.0-dev linux-kernel-headers make patch perl perl-modules" + + add ia64 "libunwind7-dev" + add sparc "lib64gcc1" + add sparc "libc6-dev-sparc64" + fi +} + +first_stage_install () { + extract $required + + mkdir -p "$TARGET/var/lib/dpkg" + : >"$TARGET/var/lib/dpkg/status" + : >"$TARGET/var/lib/dpkg/available" + + setup_etc + if [ ! -e "$TARGET/etc/fstab" ]; then + echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab" + chown 0.0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab" + fi + + setup_devices + + x_feign_install () { + local pkg="$1" + local deb="$(debfor $pkg)" + local ver="$( + ar -p "$TARGET/$deb" control.tar.gz | zcat | + tar -O -xf - control ./control 2>/dev/null | + sed -ne 's/^Version: *//Ip' | head -n 1 + )" + + mkdir -p "$TARGET/var/lib/dpkg/info" + + echo \ +"Package: $pkg +Version: $ver +Status: install ok installed" >> "$TARGET/var/lib/dpkg/status" + + touch "$TARGET/var/lib/dpkg/info/${pkg}.list" + } + + x_feign_install dpkg +} + +second_stage_install () { + x_core_install () { + smallyes '' | in_target dpkg --force-depends --install $(debfor "$@") + } + + p () { + baseprog="$(($baseprog + ${1:-1}))" + } + + setup_proc + in_target /sbin/ldconfig + + DEBIAN_FRONTEND=noninteractive + DEBCONF_NONINTERACTIVE_SEEN=true + export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN + + baseprog=0 + bases=7 + + p; progress $baseprog $bases INSTCORE "Installing core packages" #1 + info INSTCORE "Installing core packages..." + + p; progress $baseprog $bases INSTCORE "Installing core packages" #2 + ln -sf mawk $TARGET/usr/bin/awk + x_core_install base-files base-passwd + p; progress $baseprog $bases INSTCORE "Installing core packages" #3 + x_core_install dpkg + + if [ ! -e "$TARGET/etc/localtime" ]; then + ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime" + fi + + p; progress $baseprog $bases INSTCORE "Installing core packages" #4 + x_core_install $LIBC6 + + p; progress $baseprog $bases INSTCORE "Installing core packages" #5 + x_core_install perl-base + + p; progress $baseprog $bases INSTCORE "Installing core packages" #6 + rm $TARGET/usr/bin/awk + x_core_install mawk + + p; progress $baseprog $bases INSTCORE "Installing core packages" #7 + if doing_variant -; then + x_core_install debconf + fi + + baseprog=0 + bases=$(set -- $required; echo $#) + + info UNPACKREQ "Unpacking required packages..." + + smallyes '' | + (repeat 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \ + dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 | + dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1 + + info CONFREQ "Configuring required packages..." + + mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL" + echo \ +"#!/bin/sh +echo +echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon" + chmod 755 "$TARGET/sbin/start-stop-daemon" + + setup_dselect_method apt + + smallyes '' | + (in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \ + dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 | + dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1 + + baseprog=0 + bases="$(set -- $base; echo $#)" + + info UNPACKBASE "Unpacking the base system..." + + smallyes '' | + (repeat 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \ + dpkg --status-fd 8 --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 | + dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1 + + info CONFBASE "Configuring the base system..." + + smallyes '' | + (repeat 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" \ + dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 | + dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1 + + mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon" + + progress $bases $bases CONFBASE "Configuring base system" + info BASESUCCESS "Base system installed successfully." +}