[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Timestamps in ...-autoloads.el files
From: |
Alex Kost |
Subject: |
Re: Timestamps in ...-autoloads.el files |
Date: |
Mon, 02 Nov 2015 19:50:17 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Ludovic Courtès (2015-10-21 19:55 +0300) wrote:
> Alex Kost <address@hidden> 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
> address@hidden 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
- Re: Timestamps in ...-autoloads.el files,
Alex Kost <=