Source packages in Debian based distributions make two assumptions: that they are always compiled natively and that the full distribution is available during compile time.
These assumptions conflict with the requirements during a port of a Debian based distribution. Some source packages must be cross compiled for a minimal build system from which the rest can be compiled natively. Since the full distribution for the new architecture is not yet available, dependency cycles have to be broken during cross as well as native compilation. As support for either is not yet part of the source package description, porting was so far a long, manual and error-prone process.
This project aims to develop tools and techniques that make the process of bootstrapping Debian based distributions for a new architecture from scratch automated, repeatable and deterministic. Starting off from zero, a minimal build system is cross compiled. Through native compilation and breaking of build dependency cycles, the rest of the distribution is built.
The talk will cover the current status, the techniques and algorithms used as well as future developments of these tools and what is missing in Debian to make bootstrapping easier in the future.
Speakers: Johannes Schauer