--- Begin Message ---
Subject: |
[PATCH] Reproducible issue for libjpeg-turbo |
Date: |
Tue, 8 Aug 2017 15:32:45 +0800 (GMT+08:00) |
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
Description: Binary data
--- End Message ---
--- Begin Message ---
Subject: |
Re: [bug#28016] [PATCH] Reproducible issue for libjpeg-turbo |
Date: |
Tue, 22 Aug 2017 14:53:28 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hi,
"Z. Ren" <address@hidden> 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’.
--- End Message ---