buildd - autobuilders

Once they are uploaded to the servers, new Debian packages build without manual intervention on all the many platform that Debian supports ... and on some that it does not support. A daemon performing the building on a particular platform is referred to as the 'buildd'. Every upload to sid that is not for the platform "all", i.e. platform-independent, will be passed to each of the build daemons to become coherently accessible for all platforms.

Every user of Debian can set up such a build daemon. But only registered Debian developers can upload the resulting packages to the distribution. For practical reasons, it is hence commonly a Debian developer who runs the buildd.

main / contrib / non-free

Debian aims at providing free software, with free as in "constrained only by skill" for modifyability, not just gratis software. The motivation to run software that is not free or that needs non-free components to be useful or to be built, i.e. that are outside of main, is not close to the heart of Debian developers. Also, not every non-free software is allowed to be ported to other architectures in the first place.

Maintainers of non-free packages that require their software to be auto-built on other platforms than their own, may however request help from a special network of non-free autobuilders. Verbose instructions are laid out in the announcement referenced below. Please keep in mind that these folks behind the non-free autobuilders have some pleiotropic appearance in the Debian community and it may take a few days to weeks until you receive a reply.

buildd Differences

There are several circumstances about building under a buildd that are different from most built-by-hand environments. It's worth being aware of them, since they may cause your package to fail to build on the buildd network even though it builds fine for you from a shell. Note that if your package has a test suite that runs at build time, these constraints apply to the test suite as well as the build process itself:

To emulate some of the constraints of a buildd (no tty, default shell, pristine environment), you can try building your package like this:

Setting up a Buildd

There are two buildd networks in Debian. The official one run by DSA for released architectures, and 'debian-ports' for architectures which are not yet released or have been retired. Both networks use the same infrastructure, but the machine admin is more flexible for debian-ports due to not being part of DSA and to make it easier to get started with a new port.

BuilddSetup describes how to set a machine up to join these networks.

See also


help to complete this page towards something more usable ... thanks