GNU bug report logs -
#28016
[PATCH] Reproducible issue for libjpeg-turbo
Previous Next
Reported by: "Z. Ren" <zren <at> dlut.edu.cn>
Date: Tue, 8 Aug 2017 15:30:04 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 28016 in the body.
You can then email your comments to 28016 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#28016
; Package
guix-patches
.
(Tue, 08 Aug 2017 15:30:04 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
"Z. Ren" <zren <at> dlut.edu.cn>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Tue, 08 Aug 2017 15:30:04 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi!
While conducting a study inspired by the "reproducible builds" practice [1], we have noticed that the package libjpeg-turbo could not be built reproducibly.
After investigation, we observe that the unreproducibility is caused by the "configure" script, in which the output of `date` is captured.
The attached patch substitutes the `date` according to the SOUR_DATE_EPOCH. Once applied, libjpeg-turbo could be built deterministically.
[1]: https://wiki.debian.org/ReproducibleBuilds
[0001-reproducible-fix-for-libjpeg-turbo.patch (application/octet-stream, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#28016
; Package
guix-patches
.
(Wed, 16 Aug 2017 04:03:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 28016 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
There was a typo (redundant brackets around SOURCE_DATE_EPOCH) in the previous submitted patch, sorry that I'm not very familiar with the Guix system. I attach the modified patch. Following the suggestion of Leo (https://lists.gnu.org/archive/html/help-guix/2017-08/msg00053.html Thanks for the suggestion), I investigate the source code of libjpeg-turbo. It appears that the upstream package supports the argument --with-build-date. Maybe this is more suitable for fixing the unreproducible problem?
Based on this idea, I tried setting configure-flags with SOURCE_DATE_EPOCH. Unfortunately, the flag is not assigned properly with the following snippet:
#:configure-flags
(list (string-append "--with-build-date="
(date->string
(time-utc->date
(make-time time-utc 0
(string->number (getenv "SOURCE_DATE_EPOCH")))) "'~Y~m~d'")))
Is it because the environmental variable SOURCE_DATE_EPOCH is not yet set at the time of #:configure-flags? I read the recipe of other packages, maybe "replace 'configure" is the right solution? Again, sorry that I'm not very familiar with Guix, and haven't come up with the patch yet. However, it would be appreciated if it could be confirmed whether the unreproducibility is caused by the `date` command in the onfigure script.
Best regards,
Ren
[0001-reproducible.patch (application/octet-stream, attachment)]
Reply sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
You have taken responsibility.
(Tue, 22 Aug 2017 12:54:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
"Z. Ren" <zren <at> dlut.edu.cn>
:
bug acknowledged by developer.
(Tue, 22 Aug 2017 12:54:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 28016-done <at> debbugs.gnu.org (full text, mbox):
Hi,
"Z. Ren" <zren <at> dlut.edu.cn> skribis:
> There was a typo (redundant brackets around SOURCE_DATE_EPOCH) in the previous submitted patch, sorry that I'm not very familiar with the Guix system. I attach the modified patch. Following the suggestion of Leo (https://lists.gnu.org/archive/html/help-guix/2017-08/msg00053.html Thanks for the suggestion), I investigate the source code of libjpeg-turbo. It appears that the upstream package supports the argument --with-build-date. Maybe this is more suitable for fixing the unreproducible problem?
>
> Based on this idea, I tried setting configure-flags with SOURCE_DATE_EPOCH. Unfortunately, the flag is not assigned properly with the following snippet:
>
> #:configure-flags
> (list (string-append "--with-build-date="
> (date->string
> (time-utc->date
> (make-time time-utc 0
> (string->number (getenv "SOURCE_DATE_EPOCH")))) "'~Y~m~d'")))
>
> Is it because the environmental variable SOURCE_DATE_EPOCH is not yet
> set at the time of #:configure-flags?
Yes, that’s correct.
I’ve pushed a simple version that does:
#:configure-flags (list "--with-build-date=1970-01-01")
It’s good enough because we set SOURCE_DATE_EPOCH to 0 anyway.
Thank you for working on reproducibility issues!
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 20 Sep 2017 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 7 years and 332 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.