gnu: emacs: Wrap EMACSLOADPATH.
With this, the search path specification of EMACSLOADPATH does no longer depend on the version of Emacs, which should make upgrading major versions less painful. See also: - <https://bugs.gnu.org/43627> - <https://bugs.gnu.org/47458> * gnu/packages/emacs.scm (emacs)[#:phases]: Add ‘wrap-load-path’. [native-search-path]<EMACSLOADPATH>: Do not search for builtin libraries. (emacs-next)[native-search-path]: Inherit from emacs.
This commit is contained in:
parent
68228d80dd
commit
307a2d2e2a
|
@ -201,6 +201,24 @@ (define* (emacs-byte-compile-directory dir)
|
|||
(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)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lisp-dirs (find-files (string-append out "/share/emacs")
|
||||
"^lisp$"
|
||||
#:directories? #t)))
|
||||
(for-each
|
||||
(lambda (prog)
|
||||
(wrap-program prog
|
||||
`("EMACSLOADPATH" suffix ,lisp-dirs)))
|
||||
(find-files (string-append out "/bin")
|
||||
;; Matches versioned and unversioned emacs binaries.
|
||||
;; We don't patch emacsclient, because it takes its
|
||||
;; environment variables from emacs.
|
||||
;; Likewise, we don't need to patch helper binaries
|
||||
;; like etags, ctags or ebrowse.
|
||||
"^emacs(-[0-9]+(\\.[0-9]+)*)?$"))
|
||||
#t)))
|
||||
(add-before 'reset-gzip-timestamps 'make-compressed-files-writable
|
||||
;; The 'reset-gzip-timestamps phase will throw a permission error
|
||||
;; if gzip files aren't writable then. This phase is needed when
|
||||
|
@ -255,9 +273,7 @@ (define* (emacs-byte-compile-directory dir)
|
|||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "EMACSLOADPATH")
|
||||
;; The versioned entry is for the Emacs' builtin libraries.
|
||||
(files (list "share/emacs/site-lisp"
|
||||
(string-append "share/emacs/" version "/lisp"))))
|
||||
(files '("share/emacs/site-lisp")))
|
||||
(search-path-specification
|
||||
(variable "INFOPATH")
|
||||
(files '("share/info")))))
|
||||
|
@ -294,18 +310,7 @@ (define-public emacs-next
|
|||
"0igjm9kwiswn2dpiy2k9xikbdfc7njs07ry48fqz70anljj8y7y3"))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
,@(package-native-inputs emacs)))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "EMACSLOADPATH")
|
||||
;; The versioned entry is for the Emacs' builtin libraries.
|
||||
(files (list "share/emacs/site-lisp"
|
||||
(string-append "share/emacs/"
|
||||
(version-major+minor+point version)
|
||||
"/lisp"))))
|
||||
(search-path-specification
|
||||
(variable "INFOPATH")
|
||||
(files '("share/info"))))))))
|
||||
,@(package-native-inputs emacs))))))
|
||||
|
||||
(define-public emacs-next-pgtk
|
||||
(let ((commit "ae18c8ec4f0ef37c8c9cda473770ff47e41291e2")
|
||||
|
|
Loading…
Reference in a new issue