Hi,

On Tue, 01 Dec 2020, Simon McVittie wrote:
> If I understand correctly, one of the ftp team's objections to discarding
> and rebuilding maintainer-uploaded binaries is that if I upload foo_1.2-3,
> and they discard my binary upload and rebuild it on the buildds, this
> would result in having two binary builds of foo-bin_1.2-3_amd64.deb and two
> binary builds of foo-data_1.2-3_all.deb with the same version number but
> potentially different content, breaking the important design principle
> that things that are different should have different names.

That objection is debatable for packages that have not yet reached the
archive. Dropping the binary after NEW review ought to be sufficient.

And as an aside, the archive has big holes when enforcing this "design
principle":
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876643
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=620356
It would be nice to have this fixed.

> At the moment, builds in OBS cannot make use of Debian's binNMU machinery
> for this, because if they did, they would break the same ${source:Version}
> assumption I described in my previous message. The result is that they
> have to behave as though +bsos1 was a new sourceful upload, and
> foo-bin_1.2-3+bsos1_amd64.deb and foo-data_1.2-3+bsos1_all.deb both have
> Source: foo (= 1.2-3+bsos1). Consumers have to "just know" that to
> get the source code for foo-bin_1.2-3+bsos1_amd64.deb, you strip the
> /\+bsos[0-9]+$/ suffix from the version number before looking for the
> foo=1.2-3 source package. Obviously, this scales poorly if you are looking
> at multiple derivatives each with its own pseudo-binNMU suffix.
>
> If we had a way to do Architecture: all binNMUs, then OBS would be able to
> use it for all builds: for instance, foo-bin_1.2-3+bsos1_amd64.deb and
> foo-data_1.2-3+bsos1_all.deb could both have Source: foo (= 1.2-3).

In fact, dpkg has support for such binary-only rebuild. Have your
changelog entry like this:
| foo (1.2-3+bsos1) unstable; urgency=low,binary-only=yes
| 
|   * Binary rebuild.
| 
|  -- Raphaël Hertzog <hert...@debian.org>  Wed, 02 Dec 2020 10:48:12 +0100

And then "arch: all" and "arch: any" packages will have the proper
"Source" entry with a value of "foo (1.2-3)".

I just tested it and it works (at least with raw dpkg-buildpackage).

But this has the obvious downside that "${source:Version}" is unchanged
and that you might have issues with dependencies against the arch: all
package.

In the end, the solution to make it easy to bump the version with a no-change
source upload is more likely to happen quickly.

Cheers,
-- 
  ⢀⣴⠾⠻⢶⣦⠀   Raphaël Hertzog <hert...@debian.org>
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋    The Debian Handbook: https://debian-handbook.info/get/
  ⠈⠳⣄⠀⠀⠀⠀   Debian Long Term Support: https://deb.li/LTS

Reply via email to