[CCing aj as debootstrap maintainer and/or release manager] Hi,
during the last couple of days, I tried to get debootstrap going. I'm happy to say that I've finally seen I: Base system installed successfully. but it's been a hacky way debootstrapping for a couple of dozen times. I've started off from the patches James Morrison sent to #149345 a while ago. Besides those patches, I did not touch anything else than the sid-script[1]. As debootstrap is able to use an alternative script, I believe this will make it easier to slowly get all the kinks out, because we would not have to wait for uploads or NMU debootstrap. Anyway, here is the log, I've put the complete one up at[2] --8<-- I: Retrieving http://ftp.de.debian.org/debian/dists/sid/Release I: Validating /local/chroot/unstable/unstable/var/lib/apt/lists/debootstrap.invalid_dists_sid_Release I: Retrieving http://ftp.de.debian.org/debian/dists/sid/main/binary-hurd-i386/Packages.bz2 I: Validating /local/chroot/unstable/unstable/var/lib/apt/lists/debootstrap.invalid_dists_sid_main_binary-hurd-i386_Packages.bz2 I: Downloading packages... --8<-- Here's the first difference already. Because quite some important packages are only available as experimental packages on alpha.gnu.org, I just made a list[3] with the urls and fed it to wget. This means I don't validate the packages for the time being, but debootstrap is not able to handle more than one mirror so I don't see another solution ATM. @@ -88,9 +131,14 @@ all_debs="$(without_package "$x" "$all_debs")" done + all_debs="" } install_debs () { + info "Downloading packages..." + mkdir -p $TARGET/var/cache/apt/archives + (cd $TARGET && wget -q -c -i ../urls) + mv $TARGET/*.deb $TARGET/var/cache/apt/archives extract $required mkdir -p "$TARGET/var/lib/dpkg" all_debs="" makes debootstrap not download anything by itself. --8<-- I: Extracting /var/cache/apt/archives/base-files_3.0.8_hurd-i386.deb... I: Extracting /var/cache/apt/archives/base-passwd_3.4.2_hurd-i386.deb... I: Extracting /var/cache/apt/archives/bash_2.05b-5_hurd-i386.deb... [...] --8<-- At this point (after extracting), I've sometimes had the problem that debootstrap hangs forever(?) apparently running sync. Probably a problem with my Hurd installation. --8<-- settrans -cg fd chown root fd chmod 666 fd [...] --8<-- This is James' setup_hurd_devices(): setup_hurd_devices () { if [ -e $TARGET/servers/socket/inet ]; then return 0 fi mkdir -p $TARGET/servers/socket /bin/settrans -c $TARGET/servers/socket/1 /hurd/pflocal /bin/settrans -c $TARGET/servers/socket/2 /hurd/pfinet /bin/settrans -ck $TARGET/servers/exec /hurd/exec /bin/settrans -c $TARGET/servers/crash-suspend /hurd/crash --suspend /bin/settrans -c $TARGET/servers/crash-kill /hurd/crash --kill /bin/settrans -c $TARGET/servers/password /hurd/password # Not functional yet: /bin/settrans -c $TARGET/servers/crash-dump-core /hurd/crash --dump-core if [ ! -e $TARGET/servers/crash ] ; then /bin/ln -s crash-suspend $TARGET/servers/crash fi if [ ! -e $TARGET/servers/socket/local ] ; then /bin/ln -s 1 $TARGET/servers/socket/local fi if [ ! -e $TARGET/servers/socket/inet ] ; then /bin/ln -s 2 $TARGET/servers/socket/inet fi # Setup crucial devices cd $TARGET/dev /bin/sh ./MAKEDEV -v fd std ptyp ptyq } For the final log I've redirect MAKEDEV's output to /dev/null. Anyway, debootstrap normally just extracts devices.tar.gz, it would be nice if there was something like this for us, too. But what about the translators? --8<-- I: Installing core packages... dpkg - warning, overriding problem because --force enabled: package architecture (hurd-i386) does not match system (i686-gnu0.3) Selecting previously deselected package base-files. --8<-- Well, that's #187509. I had to turn on --force-architecture for all dpkg-calls: @@ -132,7 +180,7 @@ } x_core_install () { - smallyes '' | in_target dpkg --force-depends --install $(debfor "$@") + smallyes '' | in_target dpkg --force-depends --force-architecture --install $(debfor "$@") } x_feign_install dpkg --8<-- Unpacking base-files (from .../base-files_3.0.8_hurd-i386.deb) ... [snip some dependency problems which are normal for debootstrap at this point] Unpacking base-passwd (from .../base-passwd_3.4.2_hurd-i386.deb) ... [...] Setting up base-passwd (3.4.2) ... [...] Setting up base-files (3.0.8) ... [...] Preparing to replace dpkg 1.10.9 (using .../dpkg_1.10.9_hurd-i386.deb) ... Unpacking replacement dpkg ... [...] Setting up dpkg (1.10.9) ... [...] Unpacking libc0.3 (from .../libc0.3_2.3.1-5_hurd-i386.deb) ... --8<-- Here we are. I had to do this: @@ -175,6 +204,8 @@ ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime" fi + for i in S 0 1 2 3 4 5 6; do mkdir -p $TARGET/etc/rc$i.d; done + because glibc sets up update-rc-like stuff in /etc/rc?.d. The hurd package provides update-rc, but apparently not these directories. Either the hurd package should ship these directories, or some other package. I'll file a bug against hurd for this issue soon if nobody objects. Everything else seems to work fine --8<-- I: Unpacking required packages... [...] I: Configuring required packages... [...] I: Installing base packages... [...] --8<-- up to: --8<-- Setting up man-db (2.4.1-6) ... Building database of manual pages ... sh: line 1: /usr/bin/gzip: No such file or directory mandb: command '' failed with exit status 32512 mandb: warning: /usr/man/man1/rcp.1.gz: bad symlink or ROFF `.so' request [...] --8<-- Quite strange that one, I did not look into it yet as it's just a warning and there are the info-manuals anyway :) well, and that's it: --8<-- sh: line 1: /usr/bin/gzip: No such file or directory mandb: command '`=^/bin/gzip -dc /usr/share/man/man4/null.4.gz > /tmp/zmanJolh5S' failed with exit status 32512 mandb: warning: /usr/share/man/man4/zero.4.gz: bad symlink or ROFF `.so' request Setting up at (3.1.8-11) ... Starting deferred execution scheduler: atd Warning: Fake start-stop-daemon called, doing nothing

