Debian Bug report logs -
#950806
dh_strip_nondeterminism: breaks Multi-Arch: same on binNMU
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
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):
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):
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):
[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.