Dear fellow developers,
Section 7.6[1] is an often misunderstood/forgotten part of the Policy
that explains how Build-Depends and Build-Depends-Indep are used to
build a package. Here is almost a copy&paste:
The dependencies and conflicts they define must be satisfied
in order to invoke the targets in debian/rules, as follows:
The Build-Depends and Build-Conflicts fields must be satisfied
when any of the following targets is invoked:
build, clean, binary, binary-arch, build-arch,
build-indep, binary-indep.·
The Build-Depends-Indep and Build-Conflicts-Indep fields
must be satisfied when any of the following targets is invoked:
build, build-indep, binary and binary-indep.
In particular, it means that having cdbs, yada, dbs, dh-make-php and
other packaging helpers that are included from your debian/rules in
B-D-I is wrong, and that having debhelper in B-D-I is wrong as soon as
you use dh_clean in your clean target.
Such issues generally trigger FTBFSes as soon as the source generates
one arch:any package. Though, as autobuilders do not rebuild source
packages that only build arch:all binary packages, a lot of them are
missed. In fact, it breaks pbuilder[2] and some other autobuilding
tools.
I've listed all the packages that list dbs, cdbs, dh-make-php,
debhelper, yada, dpatch or quilt in their Build-Depends-Indep, and ...
2106 source packages are affected, which rules out any mass bug filing.
I've instead setup a dynamic (regenerated once a day) list of the
packages with this bug on people.d.o[3]. Also note that most of those
problems are already reported by lintian (at least for the usual patch
helpers, debhelper and cdbs).
Greetings,
[1] http://www.debian.org/doc/debian-policy/ch-relationships.html#s-sourcebinarydeps
[2] pbuilder asks you to install Build-Depends if you miss them, but do
not ask for B-D-I (and it *is* the right behaviour), and then
builds can fail.
[3] http://people.debian.org/~madcoder/policy_7.6_violation.txt
--·
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
Attachment:
pgpnLz71XwdE9.pgp
Description: PGP signature