guix_mirror_bot pushed a commit to branch emacs-team
in repository guix.
commit 38a789536a86505a0eb2f92464af8a71643d2bee
Author: Morgan Smith <[email protected]>
AuthorDate: Wed Aug 26 13:35:54 2026 -0400
build-system: emacs: Support elisp file compression.
* guix/build-system/emacs.scm (emacs-build): Add #:compress-elisp?.
* guix/build/emacs-build-system.scm (compress-elisp): New variable.
(%standard-phases): Insert ‘compress-elisp’ between ‘install’ and ‘build’.
Signed-off-by: Liliana Marie Prikler <[email protected]>
---
guix/build-system/emacs.scm | 2 ++
guix/build/emacs-build-system.scm | 16 +++++++++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm
index 5e34b1b5c6..ead7aa2667 100644
--- a/guix/build-system/emacs.scm
+++ b/guix/build-system/emacs.scm
@@ -86,6 +86,7 @@
(phases '%standard-phases)
(outputs '("out"))
(lisp-directory #f)
+ (compress-elisp? #f) ; disabled until grafts are
supported
(include (quote %default-include))
(exclude (quote %default-exclude))
(search-paths '())
@@ -106,6 +107,7 @@
(emacs-build #:name #$name
#:source #+source
#:lisp-directory #$lisp-directory
+ #:compress-elisp? #$compress-elisp?
#:system #$system
#:test-command #$test-command
#:tests? #$tests?
diff --git a/guix/build/emacs-build-system.scm
b/guix/build/emacs-build-system.scm
index 61921a88c6..b833449940 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -345,6 +345,19 @@ for libraries following the ELPA convention."
(string-append store-dir %install-dir "/"
(store-directory->elpa-name-version store-dir)))
+(define* (compress-elisp #:key
+ outputs compress-elisp?
+ (elisp-compressor "gzip")
+ (elisp-compressor-flags
+ '("--best" "--no-name"))
+ #:allow-other-keys)
+ "When COMPRESS-ELISP? is true, compress Elisp files found in OUTPUTS using
+ELISP-COMPRESSOR, called with ELISP-COMPRESSOR-FLAGS."
+ (if compress-elisp?
+ (apply invoke elisp-compressor
+ (append elisp-compressor-flags
+ (find-files (elpa-directory (assoc-ref outputs "out"))
"\\.el$")))))
+
(define %standard-phases
(modify-phases gnu:%standard-phases
(replace 'unpack unpack)
@@ -360,8 +373,9 @@ for libraries following the ELPA convention."
(delete 'build)
(replace 'check check)
(replace 'install install)
+ (add-after 'install 'compress-elisp compress-elisp)
;; The .el files are byte compiled directly in the store.
- (add-after 'install 'build build)
+ (add-after 'compress-elisp 'build build)
(add-after 'build 'validate-compiled-autoloads validate-compiled-autoloads)
(add-after 'validate-compiled-autoloads 'move-doc move-doc)))