Ludovic Courtès (2015-10-21 19:55 +0300) wrote: > Alex Kost <alez...@gmail.com> skribis: > >> I like the idea to honor SOURCE_DATE_EPOCH, so I'm attaching a patch for >> this. But now I don't know how to make Guix set this variable during >> the build process :-( Need help. > > Ahem, eventually, we’ll have to set it in ‘gnu-build’ in (guix build > gnu-build-system) in the next ‘core-updates’ cycle.
So would it be as simple as this (?):
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index ff7646b..92e15d1 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -576,6 +576,9 @@ in order. Return #t if all the PHASES succeeded, #f otherwise." ;; Encoding/decoding errors shouldn't be silent. (fluid-set! %default-port-conversion-strategy 'error) + ;; Avoid non-determinism related to generated timestamps. + (setenv "SOURCE_DATE_EPOCH" "1") + ;; The trick is to #:allow-other-keys everywhere, so that each procedure in ;; PHASES can pick the keyword arguments it's interested in. (every (match-lambda
> In the interim, we can set it in a phase of ‘emacs-build-system’, which > would entail few rebuilds. > > WDYT? I think it is not so important to make a temporary workaround for master. What about just fixing it in core-updates? >> +++ b/gnu/packages/patches/emacs-source-date-epoch.patch >> @@ -0,0 +1,20 @@ >> +Honor SOURCE_DATE_EPOCH variable to avoid non-determinism in generated >> +"autoloads" files. >> + >> +--- a/lisp/emacs-lisp/autoload.el >> ++++ b/lisp/emacs-lisp/autoload.el >> +@@ -378,8 +378,12 @@ >> + "Insert the section-header line, >> + which lists the file name and which functions are in it, etc." >> + (insert generate-autoload-section-header) >> +- (prin1 `(autoloads ,autoloads ,load-name ,file ,time) >> +- outbuf) >> ++ (let* ((env (getenv "SOURCE_DATE_EPOCH")) >> ++ (time (if env >> ++ (seconds-to-time (string-to-number env)) >> ++ time))) >> ++ (prin1 `(autoloads ,autoloads ,load-name ,file ,time) >> ++ outbuf)) >> + (terpri outbuf) >> + ;; Break that line at spaces, to avoid very long lines. >> + ;; Make each sub-line into a comment. > > Could you also submit it upstream, Cc’ing guix-devel and > reproducible-bui...@lists.alioth.debian.org? Hopefully that is > acceptable. (I searched a bit but didn’t find a similar patch by the > Debian Reproducible team, but patch-tracker.debian.org is unreachable.) I'm afraid it's a too hard task for me, sorry. I wouldn't like to mail to so many places. Sorry for the long delay. -- Alex