On Mon, Jun 27, 2005 at 11:54:25AM +0100, Colin Watson wrote:
> 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).
Now that we've released breezy, the attached patch adds the final
version of this debootstrap script. The changelog entries corresponding
to changes in this script since my last mail were:
debootstrap (0.3.1.6ubuntu1) breezy; urgency=low
* Resynchronise with Debian.
* [breezy] Fix use of additions in buildd variant.
-- Colin Watson <[EMAIL PROTECTED]> Mon, 26 Sep 2005 09:52:25 +0100
debootstrap (0.3.1.4ubuntu4) breezy; urgency=low
* [breezy] Add libc6-sparc64 for buildd variant on sparc.
-- Colin Watson <[EMAIL PROTECTED]> Fri, 29 Jul 2005 10:52:39 +0100
debootstrap (0.3.1.4ubuntu3) breezy; urgency=low
* [breezy] Add gcc-4.0-base for buildd variant. (Tested this time.)
-- Colin Watson <[EMAIL PROTECTED]> Fri, 22 Jul 2005 18:44:59 +0100
debootstrap (0.3.1.4ubuntu2) breezy; urgency=low
* [breezy] Add libstdc++6 for buildd variant.
-- Colin Watson <[EMAIL PROTECTED]> Fri, 22 Jul 2005 18:04:17 +0100
Would it be a good idea to move the scripts in the source package into
subdirectories per distribution (e.g. scripts/debian/, scripts/ubuntu/,
or something like that) at some point?
Thanks,
--
Colin Watson [EMAIL PROTECTED]
diff -Nru /tmp/lQ3iHGuGeQ/debootstrap-0.3.1.6/Makefile
/tmp/txA01rzFOQ/debootstrap-0.3.1.6ubuntu1/Makefile
--- /tmp/lQ3iHGuGeQ/debootstrap-0.3.1.6/Makefile 2005-06-16
13:28:52.000000000 +0100
+++ /tmp/txA01rzFOQ/debootstrap-0.3.1.6ubuntu1/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/lQ3iHGuGeQ/debootstrap-0.3.1.6/breezy
/tmp/txA01rzFOQ/debootstrap-0.3.1.6ubuntu1/breezy
--- /tmp/lQ3iHGuGeQ/debootstrap-0.3.1.6/breezy 1970-01-01 01:00:00.000000000
+0100
+++ /tmp/txA01rzFOQ/debootstrap-0.3.1.6ubuntu1/breezy 2005-09-26
09:51:26.000000000 +0100
@@ -0,0 +1,162 @@
+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
gcc-4.0-base ${LIBC6}-dev libdb4.2 libgdbm3 libstdc++6 libstdc++6-4.0-dev
linux-kernel-headers make patch perl perl-modules"
+
+ add ia64 base "libunwind7-dev"
+ add sparc base "lib64gcc1"
+ add sparc base "libc6-dev-sparc64"
+ add sparc base "libc6-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."
+}