Debian Bug report logs - #950806
dh_strip_nondeterminism: breaks Multi-Arch: same on binNMU

version graph

Package: dh-strip-nondeterminism; Maintainer for dh-strip-nondeterminism is Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>; Source for dh-strip-nondeterminism is src:strip-nondeterminism (PTS, buildd, popcon).

Affects: libruby2.5

Reported by: Helmut Grohne <helmut@subdivi.de>

Date: Thu, 6 Feb 2020 19:39:04 UTC

Severity: important

Tags: patch

Merged with 999665

Found in version strip-nondeterminism/1.6.3-2

Fixed in version strip-nondeterminism/1.13.0-1

Done: Holger Levsen <holger@debian.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>:
Bug#950806; Package dh-strip-nondeterminism. (Thu, 06 Feb 2020 19:39:06 GMT) (full text, mbox, link).


Acknowledgement sent to Helmut Grohne <helmut@subdivi.de>:
New Bug report received and forwarded. Copy sent to Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>. (Thu, 06 Feb 2020 19:39:06 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: Helmut Grohne <helmut@subdivi.de>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: dh_strip_nondeterminism: breaks Multi-Arch: same on binNMU
Date: Thu, 6 Feb 2020 20:35:38 +0100
Package: dh-strip-nondeterminism
Version: 1.6.3-2
Severity: important
Control: affects -1 + libruby2.5

libruby2.5 is marked Multi-Arch: same. However trying to coinstall it
for multiple architectures yields an unpack error:

| Unpacking libruby2.5:ppc64el (2.5.7-1+b1) ...
| dpkg: error processing archive /tmp/apt-dpkg-install-ogGPd3/261-libruby2.5_2.5.7-1+b1_ppc64el.deb (--unpack):
|  trying to overwrite shared '/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png', which is different from other instances of package libruby2.5:ppc64el
| dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

Now looking into the ruby2.5 source package, we see that there is a
macFFBgHack.png:

028ebc15ad448256635073ebedaf1282006227f4cef68a8402c6c4d7001994a8  lib/rdoc/generator/template/darkfish/images/macFFBgHack.png

However it differs from the one being installed:

5921908de94f1f1c32b39848cab4e01738eead861484034896a5232aba8ae106  amd64/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png
9c9ea17044f29a72ec885908a94e338f478048963b70c2dff1ccba43341f82de  arm64/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png
af77542eac693dea616f874d680cc8060e554fc169ffa5c27f5b9cf7616e4ec7  ppc64el/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png
eba3347383f8247df7f6055dc3144f79313107fc4ad702b13a902d2d9c494344  s390x/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png

Where does the difference come from?

diffoscope tells us that it likely has to do with some timestamp:

| $ diffoscope {amd64,ppc64el}/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png
| 2020-02-06 19:27:08 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.
| --- amd64/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png
| +++ ppc64el/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png
| │┄ Command `sng` exited with exit code 1. Standard output:
| │┄     sng: in stdin, 0 sBIT red bits not valid for 8bit/sample image
| @@ -3,13 +3,13 @@
|  00000020: 6300 0000 0473 4249 5408 0808 087c 0864  c....sBIT....|.d
|  00000030: 8800 0000 0970 4859 7300 000b 1200 000b  .....pHYs.......
|  00000040: 1201 d2dd 7efc 0000 001c 7445 5874 536f  ....~.....tEXtSo
|  00000050: 6674 7761 7265 0041 646f 6265 2046 6972  ftware.Adobe Fir
|  00000060: 6577 6f72 6b73 2043 5333 98d6 4603 0000  eworks CS3..F...
|  00000070: 0027 7445 5874 4372 6561 7469 6f6e 2054  .'tEXtCreation T
|  00000080: 696d 6500 3230 3230 2d30 312d 3139 5431  ime.2020-01-19T1
| -00000090: 383a 3036 3a34 362d 3030 3a30 30c9 ea2c  8:06:46-00:00..,
| -000000a0: e700 0000 2849 4441 5448 89ed cd41 0100  ....(IDATH...A..
| +00000090: 373a 3438 3a33 372d 3030 3a30 30ec 38b8  7:48:37-00:00.8.
| +000000a0: 4e00 0000 2849 4441 5448 89ed cd41 0100  N...(IDATH...A..
|  000000b0: 3008 0021 b47f a755 5b0a 7f47 0106 cfb1  0..!...U[..G....
|  000000c0: bd0e 4a4a 4a4a 4a4a 4a4a 4ac0 0759 d100  ..JJJJJJJJJ..Y..
|  000000d0: f11f fc9f 8500 0000 0049 454e 44ae 4260  .........IEND.B`
|  000000e0: 82                                       .
| $

But why would anything change the timestamp of a plain png file which
isn't created during build?

A look into the build logs revewals:

https://buildd.debian.org/status/fetch.php?pkg=ruby2.5&arch=amd64&ver=2.5.7-1%2Bb1&stamp=1579457813&raw=0
|    dh_strip_nondeterminism -a
| 	Using 1579457206 as canonical time
|  ...
| 	Normalizing debian/libruby2.5/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png using File::StripNondeterminism::handlers::png

https://buildd.debian.org/status/fetch.php?pkg=ruby2.5&arch=ppc64el&ver=2.5.7-1%2Bb1&stamp=1579456774&raw=0
|    dh_strip_nondeterminism -a
| 	Using 1579456117 as canonical time
|  ...
| 	Normalizing debian/libruby2.5/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/macFFBgHack.png using File::StripNondeterminism::handlers::png

So what breaks macFFBgHack.png is nothing else than
dh_strip_nondeterminism.

This could affect any Multi-Arch: same package that is being binNMUed. I
think the only sane solution to this problem is having
dh_strip_nondeterminism skip binNMU changelog entries when generating
the timestamp.

Helmut



Added indication that 950806 affects libruby2.5 Request was from Helmut Grohne <helmut@subdivi.de> to submit@bugs.debian.org. (Thu, 06 Feb 2020 19:39:06 GMT) (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>:
Bug#950806; Package dh-strip-nondeterminism. (Sun, 09 Feb 2020 09:00:03 GMT) (full text, mbox, link).


Acknowledgement sent to "Chris Lamb" <lamby@debian.org>:
Extra info received and forwarded to list. Copy sent to Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>. (Sun, 09 Feb 2020 09:00:03 GMT) (full text, mbox, link).


Message #12 received at 950806@bugs.debian.org (full text, mbox, reply):

From: "Chris Lamb" <lamby@debian.org>
To: "Helmut Grohne" <helmut@subdivi.de>, "Debian Bug Tracking System" <950806@bugs.debian.org>
Subject: Re: Bug#950806: dh_strip_nondeterminism: breaks Multi-Arch: same on binNMU
Date: Sun, 09 Feb 2020 08:57:10 -0000
Hi Helmut,

>    dh_strip_nondeterminism -a
> 	Using 1579457206 as canonical time
[…]
>    dh_strip_nondeterminism -a
> 	Using 1579456117 as canonical time
[…]
> This could affect any Multi-Arch: same package that is being binNMUed.

I can't seem to summon enough braincells this second to work out the
right solution but whilst I see this I *think* this has been discussed
a little before (likely with no resolution).

Ah yes, here we go perhaps:

  https://bugs.debian.org/894441

Again, just linking whilst I remember it so we are aware of past thoughts.

> I think the only sane solution to this problem is having
> dh_strip_nondeterminism skip binNMU changelog entries when generating
> the timestamp.

(This seems... suboptimal? I mean, not just because it's kinda ugly
but other parts of a Debian build could be using a different
SOURCE_DATE_EPOCH they obtained via some other means...)


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby@debian.org 🍥 chris-lamb.co.uk
       `-



Information forwarded to debian-bugs-dist@lists.debian.org, Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>:
Bug#950806; Package dh-strip-nondeterminism. (Sun, 09 Feb 2020 10:39:02 GMT) (full text, mbox, link).


Acknowledgement sent to Helmut Grohne <helmut@subdivi.de>:
Extra info received and forwarded to list. Copy sent to Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>. (Sun, 09 Feb 2020 10:39:02 GMT) (full text, mbox, link).


Message #17 received at 950806@bugs.debian.org (full text, mbox, reply):

From: Helmut Grohne <helmut@subdivi.de>
To: Chris Lamb <lamby@debian.org>
Cc: Debian Bug Tracking System <950806@bugs.debian.org>
Subject: Re: Bug#950806: dh_strip_nondeterminism: breaks Multi-Arch: same on binNMU
Date: Sun, 9 Feb 2020 11:33:46 +0100
[Message part 1 (text/plain, inline)]
Control: clone -1 -2
Control: reassign -2 src:ruby2.5
Control: retitle -2 ruby2.5 is not binNMU-safe
Control: affects -2 =
Control: tags -2 = patch

Hi Chris,

On Sun, Feb 09, 2020 at 08:57:10AM -0000, Chris Lamb wrote:
> Hi Helmut,
> 
> >    dh_strip_nondeterminism -a
> > 	Using 1579457206 as canonical time
> […]
> >    dh_strip_nondeterminism -a
> > 	Using 1579456117 as canonical time
> […]
> > This could affect any Multi-Arch: same package that is being binNMUed.
> 
> I can't seem to summon enough braincells this second to work out the
> right solution but whilst I see this I *think* this has been discussed
> a little before (likely with no resolution).
> 
> Ah yes, here we go perhaps:
> 
>   https://bugs.debian.org/894441

It seems to me that this bug is pretty much a duplicate of #894441.
Though there is kind of severity-inversion going on here. For ruby2.5,
it is a matter of being installable or not. That ends up being wishlist
on the ftp side. In essence, I think this asks for a intermediate
solution on the dh_strip_nondeterminism side until the long-term
solution becomes implementable.

Possibly strip-nondeterminism should be even more careful in figuring
out which files it should touch. The affected file appears to have a
very old timestamp and it might be corrupted in some way as sng gives an
error.

In any case, I think we an work around the issue in ruby2.5. So let's
just do that for now. Attaching a patch.

Helmut
[ruby2.5_2.5.7-1.1.debdiff (text/plain, attachment)]

Bug 950806 cloned as bug 950989 Request was from Helmut Grohne <helmut@subdivi.de> to 950806-submit@bugs.debian.org. (Sun, 09 Feb 2020 10:39:02 GMT) (full text, mbox, link).


Marked Bug as done Request was from Mattia Rizzolo <mattia@debian.org> to control@bugs.debian.org. (Mon, 10 Jan 2022 23:09:04 GMT) (full text, mbox, link).


Notification sent to Helmut Grohne <helmut@subdivi.de>:
Bug acknowledged by developer. (Mon, 10 Jan 2022 23:09:05 GMT) (full text, mbox, link).


Removed indication that 950806 affects libruby2.5 Request was from Mattia Rizzolo <mattia@debian.org> to control@bugs.debian.org. (Mon, 10 Jan 2022 23:09:05 GMT) (full text, mbox, link).


Added tag(s) patch. Request was from Mattia Rizzolo <mattia@debian.org> to control@bugs.debian.org. (Mon, 10 Jan 2022 23:09:05 GMT) (full text, mbox, link).


Merged 950806 999665 Request was from Mattia Rizzolo <mattia@debian.org> to control@bugs.debian.org. (Mon, 10 Jan 2022 23:09:06 GMT) (full text, mbox, link).


Marked as fixed in versions strip-nondeterminism/1.13.0-1. Request was from Mattia Rizzolo <mattia@debian.org> to control@bugs.debian.org. (Mon, 10 Jan 2022 23:21:03 GMT) (full text, mbox, link).


Added indication that 950806 affects libruby2.5 Request was from Mattia Rizzolo <mattia@debian.org> to control@bugs.debian.org. (Mon, 10 Jan 2022 23:21:04 GMT) (full text, mbox, link).


Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Tue, 08 Feb 2022 07:25:01 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Wed May 17 13:39:54 2023; Machine Name: bembo

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.