guix_mirror_bot pushed a commit to branch emacs-team
in repository guix.

commit 706a3aba152da32372c7b6a0262341595cecb339
Author: Liliana Marie Prikler <[email protected]>
AuthorDate: Thu Aug 14 10:08:25 2025 +0200

    build: emacs-utils: Add emacs-makeinfo.
    
    * guix/build/emacs-utils.scm (emacs-makeinfo): New variable.
    * gnu/packages/emacs-xyz.scm (emacs-show-font, emacs-mct, emacs-corfu)
    (emacs-cape, emacs-embark, emacs-orderless, emacs-consult, emacs-marginalia)
    (emacs-logos, emacs-tmr, emacs-beframe, emacs-tempel, emacs-lin, 
emacs-pulsar)
    (emacs-dired-preview, emacs-modus-themes, emacs-org-glossary, emacs-vertico)
    (emacs-org-margin, emacs-osm)[#:phases]<makeinfo>: Use it.
    Move before ‘install’ if it was previously after ‘install’.
---
 gnu/packages/emacs-xyz.scm | 171 +++++++++------------------------------------
 guix/build/emacs-utils.scm |   8 +++
 2 files changed, 42 insertions(+), 137 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 503d014df6..674cc772b7 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -1628,12 +1628,7 @@ is based off of Slim mode.")
       #:phases
       #~(modify-phases %standard-phases
           (add-before 'install 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs
      (list texinfo))
     (home-page "https://github.com/protesilaos/show-font";)
@@ -2431,14 +2426,8 @@ code files.")
      (list
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'install 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)")
-              (install-file "mct.info" (string-append #$output 
"/share/info")))))))
+          (add-before 'install 'makeinfo
+            (lambda _ (emacs-makeinfo))))))
     (home-page "https://protesilaos.com/emacs/mct";)
     (synopsis "Enhancement of the default Emacs minibuffer completion UI")
     (description "Minibuffer and Completions in Tandem, also known as MCT, or
@@ -6054,11 +6043,7 @@ of bibliographic references.")
                             (rename-file f (basename f)))
                           el-files))))
           (add-after 'unpack 'makeinfo
-            (lambda _
-              (invoke "emacs" "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list texinfo))
     (propagated-inputs
      (list emacs-compat))
@@ -6138,12 +6123,7 @@ be regarded as @code{emacs-company-quickhelp} for 
@code{emacs-corfu}.")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list texinfo))
     (propagated-inputs (list emacs-compat))
     (home-page "https://github.com/minad/cape";)
@@ -14143,15 +14123,8 @@ them easier to distinguish from other, less important 
buffers.")
      (list
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'install 'makeinfo
-            (lambda* (#:key outputs #:allow-other-keys)
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)")
-              (install-file "embark.info"
-                            (string-append #$output "/share/info")))))))
+          (add-before 'install 'makeinfo
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list texinfo))
     (propagated-inputs
      (list emacs-avy emacs-consult))
@@ -14244,11 +14217,8 @@ interface.")
       #:tests? #f
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'install 'makeinfo
-            (lambda _
-              (invoke "makeinfo" "orderless.texi")
-              (install-file "orderless.info"
-                            (string-append #$output "/share/info")))))))
+          (add-before 'install 'makeinfo
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list texinfo))
     (propagated-inputs (list emacs-compat))
     (home-page "https://github.com/oantolin/orderless";)
@@ -14281,12 +14251,7 @@ style, or as multiple word prefixes.")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list texinfo))
     (propagated-inputs (list emacs-compat))
     (home-page "https://github.com/minad/consult";)
@@ -14666,12 +14631,7 @@ expansion and overwriting the marked region with a new 
snippet completion.")
       #:phases
       #~(modify-phases %standard-phases
           (add-before 'install 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list texinfo))
     (propagated-inputs
      (list emacs-compat))
@@ -20678,14 +20638,8 @@ graph.  (Optional dependencies GraphViz, D3js, to be 
acquired separately!)
      (list
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'install 'makeinfo
-            (lambda* (#:key outputs #:allow-other-keys)
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)")
-              (install-file "logos.info" (string-append #$output 
"/share/info")))))))
+          (add-before 'install 'makeinfo
+            (lambda _ (emacs-makeinfo))))))
     (home-page "https://protesilaos.com/emacs/logos";)
     (synopsis "Simple focus mode for Emacs")
     (description "This package provides a simple focus mode which can be
@@ -20725,12 +20679,7 @@ structure, or any other pattern.")
                   inputs
                   
"share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga")))))
           (add-after 'unpack 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list texinfo))
     (inputs (list ffmpeg sound-theme-freedesktop))
     (home-page "https://protesilaos.com/emacs/tmr/";)
@@ -20762,12 +20711,7 @@ using a convenient notation.")
         #:phases
         #~(modify-phases %standard-phases
             (add-before 'install 'makeinfo
-              (lambda _
-                (invoke "emacs"
-                        "--batch"
-                        "--eval=(require 'ox-texinfo)"
-                        "--eval=(find-file \"README.org\")"
-                        "--eval=(org-texinfo-export-to-info)"))))))
+              (lambda _ (emacs-makeinfo))))))
       (native-inputs
        (list texinfo))
       (home-page "https://protesilaos.com/emacs/beframe";)
@@ -21222,12 +21166,7 @@ been adapted to also work with mu4e.")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list texinfo))
     (propagated-inputs
      (list emacs-compat))
@@ -21649,14 +21588,8 @@ number on the left margin in Emacs.")
       #:tests? #f                       ; no tests
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'install 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)")
-              (install-file "lin.info" (string-append #$output 
"/share/info")))))))
+          (add-before 'install 'makeinfo
+            (lambda _ (emacs-makeinfo))))))
     (home-page "https://protesilaos.com/emacs/lin";)
     (synopsis "Make Hl Line mode more suitable for selection UIs")
     (description
@@ -27926,14 +27859,8 @@ subscription.")
      (list
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'install 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)")
-              (install-file "pulsar.info" (string-append #$output 
"/share/info")))))))
+          (add-before 'install 'makeinfo
+            (lambda _ (emacs-makeinfo))))))
     (home-page "https://protesilaos.com/emacs/pulsar";)
     (synopsis "Pulse highlight line on demand or after running select 
functions")
     (description "This package temporarily highlights the current line after a
@@ -32593,12 +32520,7 @@ buffer displays recursive dir sizes.")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs (list emacs-ert-runner texinfo))
     (home-page "https://protesilaos.com/emacs/dired-preview";)
     (synopsis "Automatically preview file at point in Dired")
@@ -39193,14 +39115,7 @@ Emacs that integrate with major modes like Org-mode.")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'install 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"doc/modus-themes.org\")"
-                      "--eval=(org-texinfo-export-to-info)")
-              (install-file "doc/modus-themes.info"
-                            (string-append #$output "/share/info")))))))
+            (lambda _ (emacs-makeinfo))))))
     (home-page "https://protesilaos.com/modus-themes/";)
     (synopsis "Accessible themes for Emacs (WCAG AAA standard)")
     (description
@@ -42065,15 +41980,8 @@ org-mode templates.")
        (list
         #:phases
         #~(modify-phases %standard-phases
-            (add-after 'install 'makeinfo
-              (lambda _
-                (invoke "emacs"
-                        "--batch"
-                        "--eval=(require 'ox-texinfo)"
-                        "--eval=(find-file \"org-glossary.org\")"
-                        "--eval=(org-texinfo-export-to-info)")
-                (install-file "org-glossary.info"
-                              (string-append #$output "/share/info")))))))
+            (add-before 'install 'makeinfo
+              (lambda _ (emacs-makeinfo "org-glossary.org"))))))
       (native-inputs (list texinfo))
       (home-page "https://git.tecosaur.net/tec/org-glossary";)
       (synopsis "Interact with glossary-like structures in Org documents")
@@ -43477,12 +43385,7 @@ and preferred services can easily be configured.")
                             (rename-file f (basename f)))
                           el-files))))
           (add-after 'move-source-files 'makeinfo
-            (lambda _
-              (invoke "emacs"
-                      "--batch"
-                      "--eval=(require 'ox-texinfo)"
-                      "--eval=(find-file \"README.org\")"
-                      "--eval=(org-texinfo-export-to-info)"))))))
+            (lambda _ (emacs-makeinfo))))))
     (native-inputs
      (list texinfo))
     (propagated-inputs
@@ -44236,16 +44139,10 @@ used with or without Org Modern mode.")
        (list
         #:phases
         #~(modify-phases %standard-phases
-            (add-after 'install 'makeinfo
+            (add-before 'install 'makeinfo
               (lambda _
-                (invoke "emacs"
-                        "--batch"
-                        "--eval=(require 'ox-texinfo)"
-                        "--eval=(find-file \"README.org\")"
-                        "--eval=(org-texinfo-export-to-info)")
-                (rename-file "README.info" "org-margin.info")
-                (install-file "org-margin.info"
-                              (string-append #$output "/share/info")))))))
+                (emacs-makeinfo)
+                (rename-file "README.info" "org-margin.info"))))))
       (native-inputs (list texinfo))
       (license license:gpl3+)
       (home-page "https://github.com/rougier/org-margin";)
@@ -44365,12 +44262,12 @@ hacker.")
                                               space "\"")))))
                         (add-after 'unpack 'makeinfo
                           (lambda _
-                            (invoke "emacs"
-                             "--batch"
-                             "--eval=(require 'ox-texinfo)"
-                             "--eval=(setq org-export-with-broken-links t)"
-                             "--eval=(find-file \"README.org\")"
-                             "--eval=(org-texinfo-export-to-info)"))))))
+                            (emacs-makeinfo
+                             "README.org"
+                             '(progn
+                               (require 'ox-texinfo)
+                               (setq org-texinfo-with-broken-links t)
+                               (org-texinfo-export-to-info))))))))
     (inputs (list curl))
     (native-inputs (list texinfo))
     (propagated-inputs (list emacs-compat))
diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm
index 729dd2bdc4..41914e7dcb 100644
--- a/guix/build/emacs-utils.scm
+++ b/guix/build/emacs-utils.scm
@@ -36,6 +36,7 @@
             emacs-batch-error?
             emacs-batch-error-message
 
+            emacs-makeinfo
             emacs-generate-autoloads
             emacs-byte-compile-directory
             emacs-compile-directory
@@ -107,6 +108,13 @@ If NATIVE?, only disable native compilation."
                          (message (read-string (car error-pipe)))))))
     output))
 
+(define* (emacs-makeinfo #:optional
+                         (file "README.org")
+                         (expr '(progn
+                                 (require 'ox-texinfo)
+                                 (org-texinfo-export-to-info))))
+  (emacs-batch-edit-file file expr))
+
 (define (emacs-generate-autoloads name directory)
   "Generate autoloads for Emacs package NAME placed in DIRECTORY."
   (let* ((file (string-append directory "/" name "-autoloads.el"))

Reply via email to