On 2024-03-04 06:19:58 +, 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