On 2024-03-04 06:19:58 +0000, Warlich, Christof wrote: > Sebastian Ramacher wrote: > > This is wrong. apache2-data is an Architecture: all package, > > but apache2 is Architecture: any. So using ${source:Version} > > here is correct. Note that Debian does not currently support > > binNMUs for Architecture: all packages, so apache2-data will > > never have a +bX version. > > Thanks for that clarification. > > This is somewhat confusing for someone not doing package builds as a daily > profession: If just doing a "dpkg-buildpackage -us -uc" on the apache2 > sources _with_ the +bX extension, the apache2-data binary package _does_ get > the +bX extension as well, at least with my build, causing the issue that I > described initially.
For binNMUs you'll need to pass "-B" at least, but see below. > Thus, as much as I think I've leaned so far, binNMU builds on source packages > that also produce Architekture: all binary packages must always be built > separately from sources without the +bX extension for the Architecture: all > binary packages, whereras the architecture-dependent binary packages may be > built from a source package with a +bX extension, right? Not exactly. The source packages are not changed for binNMUs. This is handled via sbuild's --binNMU-* options to set the changelog and the version. Specifically, these options imply that Arch: all binaries are not built. > If this assumption is true, then why is the Debian build system (i.e. > dpkg-buildpackage) not smart enough to simply ignore an existing +bX > extension for Architecture: all binary packages? IMHO, this would simplify > matters, as it would have avoided the pitfall that I stumbled into altogether. binNMUs are handled a layer above. sbuild will pass the correct options to dpkg-buildpackage to build binNMUs. If you are interested in having binNMU builds for your own infrastructure, you'll probably need to take a look at the sbuild source to see how it is implemented. Cheers -- Sebastian Ramacher