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