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
1 changed files with 20 additions and 15 deletions
|
@ -201,6 +201,24 @@
|
||||||
(car (find-files "bin" "^emacs-([0-9]+\\.)+[0-9]+$"))
|
(car (find-files "bin" "^emacs-([0-9]+\\.)+[0-9]+$"))
|
||||||
"bin/emacs")
|
"bin/emacs")
|
||||||
#t)))
|
#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
|
(add-before 'reset-gzip-timestamps 'make-compressed-files-writable
|
||||||
;; The 'reset-gzip-timestamps phase will throw a permission error
|
;; The 'reset-gzip-timestamps phase will throw a permission error
|
||||||
;; if gzip files aren't writable then. This phase is needed when
|
;; if gzip files aren't writable then. This phase is needed when
|
||||||
|
@ -255,9 +273,7 @@
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
(list (search-path-specification
|
(list (search-path-specification
|
||||||
(variable "EMACSLOADPATH")
|
(variable "EMACSLOADPATH")
|
||||||
;; The versioned entry is for the Emacs' builtin libraries.
|
(files '("share/emacs/site-lisp")))
|
||||||
(files (list "share/emacs/site-lisp"
|
|
||||||
(string-append "share/emacs/" version "/lisp"))))
|
|
||||||
(search-path-specification
|
(search-path-specification
|
||||||
(variable "INFOPATH")
|
(variable "INFOPATH")
|
||||||
(files '("share/info")))))
|
(files '("share/info")))))
|
||||||
|
@ -294,18 +310,7 @@ languages.")
|
||||||
"0igjm9kwiswn2dpiy2k9xikbdfc7njs07ry48fqz70anljj8y7y3"))))
|
"0igjm9kwiswn2dpiy2k9xikbdfc7njs07ry48fqz70anljj8y7y3"))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("autoconf" ,autoconf)
|
`(("autoconf" ,autoconf)
|
||||||
,@(package-native-inputs emacs)))
|
,@(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"))))))))
|
|
||||||
|
|
||||||
(define-public emacs-next-pgtk
|
(define-public emacs-next-pgtk
|
||||||
(let ((commit "ae18c8ec4f0ef37c8c9cda473770ff47e41291e2")
|
(let ((commit "ae18c8ec4f0ef37c8c9cda473770ff47e41291e2")
|
||||||
|
|
Reference in a new issue