Bug#604397: debian-policy: require build-arch and build-indep targets
Hi!
On Wed, 2011-03-02 at 03:59:43 -0600, Jonathan Nieder wrote:
> Did you read the rest of the message?
>
> But okay, I am willing to accept that this is an approach we do
> not want to use. Which still leaves us with a number of options.
>
> To help some existing packages today (and break others):
>
> 1. Find an active "make" maintainer.
> 2. Polish the patch in Bug#598534 and apply it.
> 3. Use
> make-first-existing-target build-arch build -- -f debian/rules
Well, I don't think make-first-existing-target belongs in the make
package (but then I'm not the make maintainer). It's clearly a hack,
but if we'd decide this is good enough, then I'd rather see this
supported natively by make itself, which would avoid side-effects
when running make twice (or more), otherwise it might make slightly
more sense to be bolted into dpkg-buildpackage instead.
> To help no existing packages today but make it easy for packages
> to opt in (and not break the others):
>
> 1. Introduce a Build-Options facility for packages to advertise
> capabilities like this.
> 2. Teach dpkg-buildpackage to honor it.
I don't think Build-Options/Build-Features is a good idea, as stated
previously on these bug reports. For example most of my packages
already support build-arch/build-indep, now I have to also state that
explicitly? Buh. :)
> To move towards a world in which all packages support build-arch and
> build-indep:
>
> 1. Teach dpkg-buildpackage a new switch to use those targets.
> The operator can easily figure out when they are available if
> building by hand.
> 2. Introduce a lintian test for build-arch/build-indep presence.
> 3. Contribute patches.
> 4. When there are not so many packages left without the feature,
> propose a mass bug-filing/release goal.
> 5. Finally, update policy and make autobuilders use the switch
> to use those targets when building unstable and experimental.
And I think we should just go ahead with a flag day and declare
build-arch/build-indep mandatory (at least for the cases were it makes
sense, see below). I'd even go further and combine that with
dpkg-buildpackage stopping to set compilation flags on the environment,
so we only have to deal once with possible mass FTBFS on the archive.
Also not all packages really need them:
* Source packages that only provide arch:any packages should not have
Build-Depends-Indep nor Build-Conflicts-Indep, so it should not
matter if build/binary targets are called directly (instead of
build-arch/binary-arch).
* Source packages that only provide arch:all packages might have
Build-Depends-Indep and Build-Conflicts-Indep, and because they
have to be satisfied anyway, it does not matter if build/binary
targets are called directly (instead of build-indep/binary-indep).
* They really only makes sense for source packages providing both
arch:any and arch:all packages.
This should reduce the affected packages.
regards,
guillem
Reply to: