Bug#619284: Chapter 7.7 of the Policy disagrees with reality
Jonathan Nieder writes:
> (For the future: please remember that debbugs does not automatically
> cc your message to the package you are reassigning to.)
Yes, I'm always forgetting to add CC, sorry about this.
>> - by making the build-arch, build-indep obligatory for all packages or
>> at least for those source packages that provide architecture dependent
>> and independent binaries (in such a case dpkg-dev or sbuild could use
>> value of Standards-Version to determine if build-arch is available)
> See  and  for some summaries of the current status. The
> particular migration path you propose seems problematic since it ties
> this transition with other ones, and Raphaël Hertzog has indicated he
> does not want to use it for that reason.
That's a pity. It was my favourite option, easy to implement both in
dpkg and in packages, since for plenty of them build-arch and
build-indep would be the same as build. So this transition would be a
one-line change in debian/rules, unless somebody actually cared about
splitting the architecture dependent stuff from the independent stuff in
their package. Requiring the targets only for packages that actually
provides both arch:all and arch:any (or in fact
arch:anything-except-all) would make the transition less painful. Also,
it's worth noticing that more and more packages use the tiny debhelper
rules format, which already supports the optional build-* targets.
>> - or possibly by requiring packages to provide somewhere information
>> about optional debian/rules targets that it implements (see #229357).
> I've been convinced this (a Build-Options field) is the fastest safe
> way to make the change. I don't think there is any need to wait on
> policy to implement it in dpkg fwiw. (The point where policy is
> relevant is deploying in the archive.)
I'm less convinced, but it's OK, as it certainly solves the original
issue I had with ispell and auto-builders.
> Another migration path (slower but possible to carry out in parallel
> with the above) would be:
> 1. dpkg-buildpackage learns a --force-build-arch (better names
> welcome) option for the operator to use to declare that yes,
> this package has a build-arch target that should be used;
> 2. Packagers voluntarily start adding build-arch and build-indep
> targets following the current policy.
Following the current policy would be impossible (I've tried to do this
recently with ispell package) unless packagers had a way to force the
--force-build-arch on auto-builders (via debian/source/options
possibly?). Forcing the --force-build-arch however is pretty much the
same solution as that one with Build-Options.