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.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Tue, 22 Aug 2017 14:53:28 +0200
with message-id <874lsz7ohj.fsf <at> gnu.org>
and subject line Re: [bug#28016] [PATCH] Reproducible issue for libjpeg-turbo
has caused the debbugs.gnu.org bug report #28016,
regarding [PATCH] Reproducible issue for libjpeg-turbo
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
28016: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28016
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (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)]
[Message part 5 (message/rfc822, inline)]
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’.
This bug report was last modified 7 years and 333 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.