guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/33: gnu: emacs: Add coreutils and gzip to PATH.


From: guix-commits
Subject: 03/33: gnu: emacs: Add coreutils and gzip to PATH.
Date: Sat, 1 May 2021 14:37:47 -0400 (EDT)

leoprikler pushed a commit to branch master
in repository guix.

commit d13b46fae46fe0e0d529e67ffc7f4074440d1b6e
Author: Leo Prikler <leo.prikler@student.tugraz.at>
AuthorDate: Sat Apr 17 19:06:18 2021 +0200

    gnu: emacs: Add coreutils and gzip to PATH.
    
    Some parts of Emacs (dired, compression handling, Tramp) shell out to 
commands
    and patching them all is a daunting task.  Also, w.r.t. Tramp, we need those
    commands to be portable across multiple machines, which need not only be 
Guix
    machines (and even if they are, store items can be different).  This patch
    ensures a ‘sane’ setup FSVO ‘sane’.
    
    * gnu/packages/emacs.scm (emacs)[wrap-load-path]: Rename to...
    [wrap-emacs-paths] ... this.  Also patch PATH.
---
 gnu/packages/emacs.scm | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index e1b01ac..5316d25 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -201,8 +201,8 @@
                 (car (find-files "bin" "^emacs-([0-9]+\\.)+[0-9]+$"))
                 "bin/emacs")
                #t)))
-         (add-after 'strip-double-wrap 'wrap-load-path
-           (lambda* (#:key outputs #:allow-other-keys)
+         (add-after 'strip-double-wrap 'wrap-emacs-paths
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (lisp-dirs (find-files (string-append out "/share/emacs")
                                            "^lisp$"
@@ -210,6 +210,13 @@
                (for-each
                 (lambda (prog)
                   (wrap-program prog
+                    ;; emacs-next and variants rely on uname being in PATH for
+                    ;; Tramp.  Tramp paths can't be hardcoded, because they
+                    ;; need to be portable.
+                    `("PATH" suffix
+                      ,(map (lambda (in) (string-append in "/bin"))
+                            (list (assoc-ref inputs "gzip")
+                                  (assoc-ref inputs "coreutils"))))
                     `("EMACSLOADPATH" suffix ,lisp-dirs)))
                 (find-files (string-append out "/bin")
                             ;; Matches versioned and unversioned emacs 
binaries.
@@ -231,6 +238,10 @@
      `(("gnutls" ,gnutls)
        ("ncurses" ,ncurses)
 
+       ;; Required for "core" functionality, such as dired and compression.
+       ("coreutils" ,coreutils)
+       ("gzip" ,gzip)
+
        ;; Avoid Emacs's limited movemail substitute that retrieves POP3 email
        ;; only via insecure channels.  This is not needed for (modern) IMAP.
        ("mailutils" ,mailutils)
@@ -361,7 +372,9 @@ also enabled and works without glitches even on X 
server."))))
            (delete 'strip-double-wrap)))))
     (inputs
      `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
-       ("ncurses" ,ncurses)))
+       ("ncurses" ,ncurses)
+       ("coreutils" ,coreutils)
+       ("gzip" ,gzip)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]