Bootstrappable Debian
Description of the project: The goal is to make Debian buildable using itself, primarily to make the task of bringing up new architectures easier, and Debian self-supporting. Work towards this goal has been going on for several years, a large part of it undertaken by GSOC students, and we now have all the necessary components: build profiles, multiarch, cross-toolchains, botch, autobootstrap and bootstrap.debian.net. The remaining piece of work is actually modifying the packages that botch/bootstrap.debian.net and manual inspection identify as being the optimum places to break loops, and coding up the necessary variant builds and altered build-dependencies, so that a linear build order exists.
The fundamental issue is that there are many cyclic build-dependencies in Debian so there is no way to just build everything in order. The rules changes and metadata you add turns the cyclic build graph into a build tree (acyclic graph) so that there actually is an order.
Confirmed Mentor: Wookey
How to contact the mentor: mailto:wookey@debian.org (IRC: wookey on #debian-bootstrap on OFTC)
Confirmed co-mentors: Johanes Schauer (josch on #debian-bootstrap)
Deliverables of the project: Patches filed in the Debian BTS for the 60-odd packages that need fixing. Status webpage showing current bootstrapability of Debian.
Desirable skills: A good understanding of Debian packaging tools will help enormously as you will have to deal with a wide range of tools, helpers and build systems. Some idea of how autotools works is also very handy, as is some experience of crossbuilding. This is in ideal task for the 'Jack of all trades, master of none' type person.
What the student will learn: You will gain a detailed understanding of Debian packaging and packaging helpers, build engineering, dependencies, multiarch, and profiles. If you succeed you will enable Debian to achieve its long-term aspiration to be the 'Universal OS' by being properly self-hosting.