Bug#999665: dh_strip_nondeterminism breaks Multi-Arch: same in binNMUs

Mattia Rizzolo mattia at debian.org
Sat Dec 11 14:46:23 UTC 2021


So, I did some tests here.

Helmut, look below:

On Tue, Dec 07, 2021 at 09:20:09PM +0100, Niels Thykier wrote:
> You can either depend on it or do a runtime check for the new function
> to see if the feature is available - whatever floats your boat. :)

I went this way indeed:

--- strip-nondeterminism.orig/bin/dh_strip_nondeterminism
+++ strip-nondeterminism/bin/dh_strip_nondeterminism
@@ -91,7 +91,13 @@
        find(\&testfile,$tmp);
        next unless @nondeterministic_files;
 
-       $File::StripNondeterminism::canonical_time = get_source_date_epoch();
+       if (eval "get_non_binnmu_date_epoch()") {
+               $File::StripNondeterminism::canonical_time
+                 = get_non_binnmu_date_epoch();
+               $ENV{SOURCE_DATE_EPOCH} = get_non_binnmu_date_epoch()
+       } else {
+               $File::StripNondeterminism::canonical_time = get_source_date_epoch();
+       }
 
        verbose_print("Using $File::StripNondeterminism::canonical_time as canonical time");
 


And then I built and then binNMUed p11-kit/0.24.0-2 - which was one of
those packages affected by this "bug".

I confirm that for all 2 builds, strip-nondeterminism used 1630835345 as
timestamp, so the patch works.

However, in that particular package, there is still this change:

│ │ │ ├── ./usr/share/man/man1/trust.1.gz
│ │ │ │ ├── trust.1
│ │ │ │ │ @@ -1,12 +1,12 @@
│ │ │ │ │  '\" t
│ │ │ │ │  .\"     Title: trust
│ │ │ │ │  .\"    Author: Stef Walter <stef at thewalter.net>
│ │ │ │ │  .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
│ │ │ │ │ -.\"      Date: 09/05/2021
│ │ │ │ │ +.\"      Date: 12/11/2021
│ │ │ │ │  .\"    Manual: User Commands
│ │ │ │ │  .\"    Source: p11-kit
│ │ │ │ │  .\"  Language: English
│ │ │ │ │  .\"
│ │ │ │ │  .TH "TRUST" "1" "" "p11-kit" "User Commands"
│ │ │ │ │  .\" -----------------------------------------------------------------
│ │ │ │ │  .\" * Define some portability stuff
│ │ │ ├── ./usr/share/man/man5/pkcs11.conf.5.gz
│ │ │ │ ├── pkcs11.conf.5
│ │ │ │ │ @@ -1,12 +1,12 @@
│ │ │ │ │  '\" t
│ │ │ │ │  .\"     Title: pkcs11.conf
│ │ │ │ │  .\"    Author: Stef Walter <stef at thewalter.net>
│ │ │ │ │  .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
│ │ │ │ │ -.\"      Date: 09/05/2021
│ │ │ │ │ +.\"      Date: 12/11/2021
│ │ │ │ │  .\"    Manual: System Files
│ │ │ │ │  .\"    Source: p11-kit
│ │ │ │ │  .\"  Language: English
│ │ │ │ │  .\"
│ │ │ │ │  .TH "PKCS11\&.CONF" "5" "" "p11-kit" "System Files"
│ │ │ │ │  .\" -----------------------------------------------------------------
│ │ │ │ │  .\" * Define some portability stuff
│ │ │ ├── ./usr/share/man/man8/p11-kit.8.gz
│ │ │ │ ├── p11-kit.8
│ │ │ │ │ @@ -1,12 +1,12 @@
│ │ │ │ │  '\" t
│ │ │ │ │  .\"     Title: p11-kit
│ │ │ │ │  .\"    Author: Stef Walter <stef at thewalter.net>
│ │ │ │ │  .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
│ │ │ │ │ -.\"      Date: 09/05/2021
│ │ │ │ │ +.\"      Date: 12/11/2021
│ │ │ │ │  .\"    Manual: System Commands
│ │ │ │ │  .\"    Source: p11-kit
│ │ │ │ │  .\"  Language: English
│ │ │ │ │  .\"
│ │ │ │ │  .TH "P11\-KIT" "8" "" "p11-kit" "System Commands"
│ │ │ │ │  .\" -----------------------------------------------------------------
│ │ │ │ │  .\" * Define some portability stuff


Now, this is in the binary package p11-kit, which is not m-a:same, so it
doesn't matter, but I guess this is some kind of "proof" that
strip-nondeterminism is not really "at fault" for things, IMHO.

That said, I do suppose we can go ahead with this change, since it has
the possibility of greatly lowering the chances of conflicts.  Indeed,
the .png that caused troubles in #995162 has the same content, however
different filesystem metadata (which is exactly what we wanted to
achieve.)

I committed my change to git, feel free to adjust if my non-existent
perl knowledge made things worse!
https://salsa.debian.org/reproducible-builds/strip-nondeterminism/-/commit/96fcd0f6391a8d05a30af2fb9b77f530b9f88adb

-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
More about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.reproducible-builds.org/pipermail/rb-general/attachments/20211211/a9abffaa/attachment.sig>


More information about the rb-general mailing list