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

Reply via email to