Differences between revisions 11 and 12
Revision 11 as of 2007-03-27 21:07:20
Size: 2719
Editor: NeilWilliams
Revision 12 as of 2009-03-16 03:31:51
Size: 2719
Editor: anonymous
Comment: converted to 1.6 markup
No differences found!

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.)

  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 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.