Proposal title

Currently, all Build-Depends dependencies must exist for a Debian package but in Emdebian, some Build-Depends packages only need to be present on the cross-building host and are neither needed nor available on the target (e.g. perl). This proposal seeks to determine whether packages listed as build-dependencies for a specific Debian package can be automatically classified as host or target. In addition, some dependencies may only be needed to install a package, not to run the package. Other dependencies may be removed entirely by the cross-building process.

The proposal seeks to create a program to determine how to subdivide build dependencies such that packages can be processed automatically and the list of build-dependencies broken down into four groups. (Some build dependencies may occur in more than one group.)

  1. Host-Build-Depends : dependencies that must be installed on the machine running the cross-compiler.
  2. Target-Build-Depends : dependencies that must be available on the target machine.
  3. Install-Depends : dependencies that are needed to process the installation of a package.
  4. Runtime-Depends : dependencies that must be available on the target every time a package is run.

The results of these classifications will be used to develop and expand Emdebian policy.

This work will touch on a lot of the other areas, (See The topics cover a wide range of expertise - buildd setup, policy development, pushing far-reaching tool-changes upstream and documentation. The existing developers and the project mentor will help, but the project does demand significant 'self-starting' on the part of the applicant.

Debian is in a position to improve cross-building in the same way that it has improved architecture support over the last few years. All packages should cross-build, but many do not for various reasons. Work fixing these is valuable to many people. Implementing a set-up to cross-build debian packages and report bugs on those that fail to build using dpkg-cross and emdebian tools would be excellent. However cross-building is not a necessary part of emdebian; it can be natively built too.