gnu: emacs: Honor 'SOURCE_DATE_EPOCH'.

Suggested by Ludovic Courtès <ludo@gnu.org>.

* gnu/packages/patches/emacs-source-date-epoch.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/emacs.scm (emacs)[source]: Use it.
This commit is contained in:
Alex Kost 2015-10-21 15:59:23 +03:00
parent f7dbeb376b
commit 6f4b23e674
3 changed files with 23 additions and 1 deletions

View File

@ -437,6 +437,7 @@ dist_patch_DATA = \
gnu/packages/patches/duplicity-test_selection-tmp.patch \
gnu/packages/patches/elfutils-tests-ptrace.patch \
gnu/packages/patches/emacs-exec-path.patch \
gnu/packages/patches/emacs-source-date-epoch.patch \
gnu/packages/patches/eudev-rules-directory.patch \
gnu/packages/patches/expat-CVE-2015-1283.patch \
gnu/packages/patches/fastcap-mulGlobal.patch \

View File

@ -70,7 +70,8 @@ (define-public emacs
(sha256
(base32
"0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx"))
(patches (list (search-patch "emacs-exec-path.patch")))))
(patches (list (search-patch "emacs-exec-path.patch")
(search-patch "emacs-source-date-epoch.patch")))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:phases (alist-cons-before

View File

@ -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.