Timestamps in ...-autoloads.el files

Message ID 8737pbaeic.fsf@gmail.com
State New
Headers

Commit Message

Alex Kost May 21, 2016, 10:31 a.m. UTC
  Ludovic Courtès (2016-05-19 15:56 +0300) wrote:

>> From ca571f7631bf77ddc8ad6257fe165b4ff0ef5e6b Mon Sep 17 00:00:00 2001
>> From: Alex Kost <alezost@gmail.com>
>> Date: Thu, 19 May 2016 11:01:40 +0300
>> Subject: [PATCH] gnu: emacs: Remove *.elc from the release tarball.
>>
>> * gnu/packages/emacs.scm (emacs)[arguments]: Add 'remove-compiled-elisp'
>>   phase.
>> ---
>>  gnu/packages/emacs.scm | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
>> index 32ed722..0c15f63 100644
>> --- a/gnu/packages/emacs.scm
>> +++ b/gnu/packages/emacs.scm
>> @@ -91,6 +91,15 @@
>>               (substitute* (find-files "." "^Makefile\\.in$")
>>                 (("/bin/pwd")
>>                  "pwd"))))
>> +         (add-after 'configure 'remove-compiled-elisp
>> +           (lambda _
>> +             ;; Emacs comes with compiled elisp (*.elc) and generated
>> +             ;; autoloads (*loaddefs.el) files.  This does not allow us to use
>> +             ;; "emacs-source-date-epoch.patch" effectively, so remove these
>> +             ;; files (using 'make bootstrap-clean'), as 'make' will recreate
>> +             ;; them.
>> +             (with-directory-excursion "lisp"
>> +               (zero? (system* "make" "bootstrap-clean")))))
>
> I would rather do it in a ‘snippet’ so that ‘guix build -S emacs’
> returns the cleaned-up source.

Hm, I didn't think about it; yeah, I agree it would be better, thanks!

> However, the snippet would have to duplicate the logic of this makefile
> rule, which might not be desirable (depends on how complex this rule
> is).  If you think it’s best to keep this way, please push!

The rule is rather simple, it just removes all compiled and generated
files, so attached is the version with snippet.
  

Comments

Ludovic Courtès May 21, 2016, 9:01 p.m. UTC | #1
Alex Kost <alezost@gmail.com> skribis:

> From 13c2e7123d3b8f7dda5814c2ac00acfe806cec3b Mon Sep 17 00:00:00 2001
> From: Alex Kost <alezost@gmail.com>
> Date: Thu, 19 May 2016 11:01:40 +0300
> Subject: [PATCH] gnu: emacs: Remove *.elc and autoloads from the tarball.
>
> * gnu/packages/emacs.scm (emacs)[source]: Add 'snippet' to remove
>   compiled and generated elisp files.

Perfect, thanks!

Ludo’.
  
Alex Kost May 24, 2016, 9 a.m. UTC | #2
Ludovic Courtès (2016-05-22 00:01 +0300) wrote:

> Alex Kost <alezost@gmail.com> skribis:
>
>> From 13c2e7123d3b8f7dda5814c2ac00acfe806cec3b Mon Sep 17 00:00:00 2001
>> From: Alex Kost <alezost@gmail.com>
>> Date: Thu, 19 May 2016 11:01:40 +0300
>> Subject: [PATCH] gnu: emacs: Remove *.elc and autoloads from the tarball.
>>
>> * gnu/packages/emacs.scm (emacs)[source]: Add 'snippet' to remove
>>   compiled and generated elisp files.
>
> Perfect, thanks!

Committed.
  

Patch

From 13c2e7123d3b8f7dda5814c2ac00acfe806cec3b Mon Sep 17 00:00:00 2001
From: Alex Kost <alezost@gmail.com>
Date: Thu, 19 May 2016 11:01:40 +0300
Subject: [PATCH] gnu: emacs: Remove *.elc and autoloads from the tarball.

* gnu/packages/emacs.scm (emacs)[source]: Add 'snippet' to remove
  compiled and generated elisp files.
---
 gnu/packages/emacs.scm | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 18898e9..ae02a07 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -80,7 +80,18 @@ 
               (base32
                "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx"))
              (patches (search-patches "emacs-exec-path.patch"
-                                      "emacs-source-date-epoch.patch"))))
+                                      "emacs-source-date-epoch.patch"))
+             (modules '((guix build utils)))
+             (snippet
+              ;; Delete the bundled byte-compiled elisp files and
+              ;; generated autoloads.
+              '(with-directory-excursion "lisp"
+                 (for-each delete-file
+                           (append (find-files "." "\\.elc$")
+                                   (find-files "." "loaddefs\\.el$")
+                                   ;; This is the only "autoloads" file that
+                                   ;; does not have "*loaddefs.el" name.
+                                   '("eshell/esh-groups.el")))))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
-- 
2.8.2