Proposal title
Mentor: Wookey
Summary: To differentiate between build and target build-dependencies
Required skills:
- 'A bit of everything'
- Understanding of Debian packaging, build systems
- Cross-building
- Knowledge of small system constraints
- Perl or other scripting language (existing tools are perl or shell)
- Ability to get patches accepted upstream
Description:
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.)
- Host-Build-Depends : dependencies that must be installed on the machine running the cross-compiler.
- Target-Build-Depends : dependencies that must be available on the target machine.
- Install-Depends : dependencies that are needed to process the installation of a package.
- 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 http://www.emdebian.org/develinfo.html#todo) 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.