Bug#345619: debian-policy: 4.8. binary-{arch, indep} should fail with error code 2 -> must
Package: debian-policy
Version: 3.6.2.1
Severity: wishlist
Debian policy 4.8. states:
If one or both of the targets `build-arch' and `build-indep' are
not provided, then invoking `debian/rules' with one of the
not-provided targets as arguments should produce a exit status
code of 2.
I'm proposing that this would be changed to "must produce".
debian/rules binary-* has the bits requiring root privileges and
build-* has the steps that can be done without. As such, debian/rules
build-* is often called explicitly before $rootcommand debian/rules
binary-*.
But, since it's not a requirement for debian/rules build-{arch,indep}
to return an error when the targets are missing, tools such as
dpkg-buildpackage have no choice but to always call debian-rules build
even when building arch dependent packages.
If it was required that the missing rules returned an exit status,
dpkg-buildpackage could try debian/rules build-arch first and then
debian/rules build if that failed.
An alternative would be to require that build-{arch,indep} are always
present and both depending on build target, just like already done
with binary-* targets. But that would require larger changes.
As they are now, build-{arch,indep} targets are less useful than what
they could be.
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
-- no debconf information
Reply to: