\o/

After some hour spent on the sources, understanding and patching them, a patch against debootstrap 1.0.1 is available, so that debootstrap can handle an extra suite, which is unreleased for GNU/kFreeBSD. It is then possible to specify some packages to fetch from there, along with the mirror for these extras (defaults to the normal mirror) and the suite name (which defaults to unreleased).

What is needed is then to specify the appropriate extra packages. A first guess is to use the Priority: required packages from the unreleased Packages file, pull the dependencies (a tiny script was forged for that) from unreleased (those from unstable aren't considered at the moment, but could be added easily).

The problem is that some packages from unstable depend on packages from unreleased, which implies one has to track them manually. For the time being, spotted packages are the following:

Once their own dependencies have been added too, one gets the following message but there's still to do.

I: Base system installed successfully.

For example, /etc/apt/sources.list and /dev are empty, and since the base system has been successfully installed, the logs in /debootstrap have been deleted. Time to use the --keep-debootstrap-dir option, and to dig into /debootstrap/debootstrap.log.

Some messages related to work-needing stuff:

Unpacking coreutils (from .../coreutils_5.97-5.3_kfreebsd-i386.deb) ...
Use of uninitialized value in string eq at /usr/sbin/dpkg-divert line 224.
Use of uninitialized value in length at /usr/sbin/dpkg-divert line 224.
Use of uninitialized value in length at /usr/sbin/dpkg-divert line 224.
Use of uninitialized value in length at /usr/sbin/dpkg-divert line 224.
No diversion `any diversion of /usr/share/man/man1/md5sum.textutils.1.gz', none removed
Use of uninitialized value in string eq at /usr/sbin/dpkg-divert line 224.
Use of uninitialized value in length at /usr/sbin/dpkg-divert line 224.
Use of uninitialized value in length at /usr/sbin/dpkg-divert line 224.
Use of uninitialized value in length at /usr/sbin/dpkg-divert line 224.
No diversion `any diversion of /usr/bin/md5sum.textutils', none removed

Setting up makedev (2.3.1-83) ...
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
/bin/chmod: cannot access `/dev/tty[0-9]*': No such file or directory
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
Results undefined on non-Linux systems, aborting MAKEDEV invocation.
/var/lib/dpkg/info/makedev.postinst: line 47: [: 6.2-1-686: integer expression expected

Setting up initscripts (2.86.ds1-38.1) ...
mount: invalid option -- -
usage: mount [-adflpruvw] [-o options] [-t ufs | external_type]
       mount [-dfpruvw] special | node
       mount [-dfpruvw] [-o options] [-t ufs | external_type] special node

Setting up ifupdown (0.6.8) ...
ifupdown.postinst: Warning: No 'iface lo' definition found in /etc/network/interfaces
ifupdown.postinst: Warning: No 'auto lo' statement found in /etc/network/interfaces

Setting up cron (3.0pl1-100) ...
Adding group `crontab' (GID 101) ...
Done.
Starting periodic command scheduler: crond
Warning: Fake start-stop-daemon called, doing nothing
.

Setting up man-db (2.4.4-3) ...
Building database of manual pages ...
mandb: warning: /usr/share/man/man8/clock.8.gz is a dangling symlink

The whole installation log is also available, along with the installation parameters, stored in a tiny shell script holding all the parameters I used. Note that you'll have to switch from aurel32's mirror to gnuab.

As for the sources.list file, it is sufficient to put there the following, which is also documented on the GNU/kFreeBSD wiki page on the Debian wiki:

deb http://ftp.gnuab.org/debian unstable main
deb http://ftp.gnuab.org/debian unreleased main

The patch certainly needs some polishing (in particular the scripts/debian/sid part, a case would be far better than several if's), and some cleanup (at least one commit was done only to make editing with a buggy Emacs shell-mode easier). A git repository is available: <git://alioth.debian.org/~kibi-guest/debootstrap.git>.