Proposal for making Multi-Arch:same binNMU-safe
Helmut Grohne
helmut at subdivi.de
Sun Apr 19 11:20:59 BST 2026
Hello all,
On Fri, Apr 17, 2026 at 04:26:08PM +0000, Holger Levsen wrote:
> On Thu, Apr 16, 2026 at 01:32:11AM +0300, Adrian Bunk wrote:
> > AFAIR I already suggested somewhere in these discussions that the date
> > of a binNMU could be the date of the source upload plus the binNMU
> > number added in seconds (e.g. +b5 is 5 seconds after the source upload).
>
> this seems like a rather simple solution for this problem which I believe
> is much preferable to the quite complex solution Helmut proposed in the
> initial mail to this thread.
I would like to correct myself. In my previous reply to Adrian I agreed
that this would be simple, but pybuildd (or now buildd) as a component
does not have access to the relevant information (the last non-binNMU
timestamp). It gets the source package and the version. In principle it
could now download the package to extract that timestamp, but that would
require access to the apt configuration of the build environment.
Otherwise downloading the source package using the machine environment's
apt could easily fail. In addition to being error prone, downloading the
source package just for extracting a timestamp also is less than ideal
for resources.
Things would become quite a bit easier if sbuild were performing the
computation of said timestamp as it already has access to the source
package at the time it creates the binNMU changelog. I now imagine
expanding the way BIN_NMU_TIMESTAMP is interpreted by sbuild. Presently,
there is no sensible way to pass a value that starts with "+". I suggest
that BIN_NMU_TIMESTAMP="+<digits>" should be interpreted by sbuild as
adding that number of seconds to the last non-binNMU changelog's
timestamp. Is that a change sbuild maintainers would be comfortable
with?
Once doing so, the proposed change to pybuildd would become quite a bit
simpler:
https://salsa.debian.org/wb-team/pybuildd/-/blob/master/buildd.py?ref_type=heads#L291
@@ -291,6 +291,7 @@
if pkg.binnmu and pkg.binnmu_changelog:
cmd.append('--binNMU={}'.format(pkg.binnmu))
cmd.append('--make-binNMU=' + pkg.binnmu_changelog)
+ cmd.append('--binNMU-timestamp=+{}'.format(pkg.binnmu))
if pkg.extra_depends:
cmd.append('--add-depends=' + pkg.extra_depends)
if pkg.extra_conflicts:
I would also like to get feedback from Wanna Build maintainers (probably
Philipp Kern) as to whether this change (and the general scheme of using
deterministic binNMU timestamps) would be acceptable.
Helmut
More information about the Reproducible-builds
mailing list