Bootstrappable Debian - Student Proposal

email: irc: alkmim at #multiarch #emdebian

Debian is currently extremely difficult to bootstrap from scratch, which makes new ports and optimisations very difficult to do. The primary issues are breaking cyclic build-dependencies and the need to cross-build at least the initial set of packages. Work has been ongoing to first analyse and then design a fix this problem over the last year or two, but a lot of work remains to turn it into a practical reality. The design is described in The analysis at

This project consists of doing the actual work of modifying packages to make optional the optional parts so that build-dependency cycles can be broken by building packages in 'minimal' form. These changes need to be made in an upstreamable way so they don't have to be done manually by every porter. In order to test the work you need to build modified build-tools that understand and use the extra fields, and in order to make it useful you need to make sure that the packages involved cross-build properly, using the new multiarch mechanisms.

This project is closely associated with the 'Port bootstrap build-ordering tool' project outlined elsewhere. The output of this work forms the test-data for that project, and the mechanism of this project is made automable by the output of that project. The two projects use each other's results, but both can also do their work independently. Both are required for a fully automated bootstrap.

This is a big problem and it involves two interesting areas:

Some important steps that probably are going to be done: (probably in this order)

  1. Build a toolchain to enable the Multi-arch crossbuild on debian. Debian does not have toolchain to do the MA-crossbuild, but Ubuntu has (See [4]). So it is important to build the toolchain sources from ubuntu on Debian. Currently I'm working on this.
  2. Crossbuild all packages needed to bootstrap debian. As commented above, a lot of packages failed do crossbuild on Debian.
  3. Untangling circular build dependencies in all packages needed to bootstrap debian.

This project is essential in order to enable Debian to bootstrap it self, since it will break cyclic dependencies and correct the crossbuild problems in some packages.

I'm going to become a Debian Manteiner (Currently I trying to find someone to sign my key)