Michael Stapelberg: > On Mon, May 15, 2017 at 8:34 PM, Niels Thykier <ni...@thykier.net> wrote: > >> Michael Stapelberg: >>> On Mon, Apr 10, 2017 at 12:55 PM, Niels Thykier <ni...@thykier.net> >> wrote: >>> >>>> On Wed, 22 Mar 2017 19:01:54 +0100 Michael Stapelberg >>>> <stapelb...@debian.org> wrote: >>>>> Package: debhelper >>>>> Version: 10.2.5 >>>>> Severity: normal >>>>> >>>>> Currently, when trying to build a Debian package whose binary packages >>>>> specify “€œArchitecture: arm64“€ on an amd64 machine, I get the >>>> following >>>>> error message: >>>>> >>>>> raspi3-firmware $ dh clean >>>>> dh: No packages to build. >>>>> >>>>> While this is technically correct, the error message could be way >>>>> friendlier: I’€™d suggest something along the lines of “No packages to >>>>> build (architecture mismatch: got amd64, want arm64)“€ . >>>>> >>>>> What do you think? >>>>> >>>>> [...] >>>> >>>> I am fine with getting patches for the better error messages. >>>> >>> >>> Perfect. Find attached a patch to that effect. >>> >>> >> >> Thanks, >> >> I am not sure that it is safe to change the return value of >> package_arch(). E.g. it is used to determine the name of the binNMU >> changelog, and I suspect things will break if all binNMUs start to use >> "changelog.Debian.linux-any.gz" regardless architecture. :) >> > > Thanks for the details. I found 4 callers of package_arch, of which 2 > merely compare whether package_arch returns 'all'.
Inside debhelper itself only or archive-wide? It is a part of debhelper's API for dh_* tools, so I would rather be safe than sorry. > I think it would be > cleaner to move the “turn specified arch into actual build arch” logic into > the remaining 2 callsites, rather than keep the old misnomer package_arch > around. Do you agree? If not, what do you suggest we do? > I think it was designed to be "give me the concrete architecture value of this package in this build" (which would either be "all" or DEB_HOST_ARCH, which buildarch() gives despite its name). I would be happy to have all of the following three functions (with good names): * is-this-an-arch-all-package - would clarify two of the callsites despite being trivial - package_is_arch_all ? * The function that behaves like packages_arch does now - This basically gives you the architecture value that goes into the Architecture field of the .deb - package_binary_arch * The function that behaves like packages_arch as you proposed - This basically gives you the value of the Architecture field for the binary as it is listed in d/control. - package_declared_arch ? What is your take on the above functions and good names for them? Thanks, ~Niels