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)))
 

Reply via email to