Ludovic Courtès (2016-05-19 15:56 +0300) wrote: >> From ca571f7631bf77ddc8ad6257fe165b4ff0ef5e6b Mon Sep 17 00:00:00 2001 >> From: Alex Kost <[email protected]> >> 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.
>From 13c2e7123d3b8f7dda5814c2ac00acfe806cec3b Mon Sep 17 00:00:00 2001 From: Alex Kost <[email protected]> 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
