diff --git a/pkgs/applications/editors/emacs/build-support/wrapper-test.nix b/pkgs/applications/editors/emacs/build-support/wrapper-test.nix index e782bc5d50b6..6ba33006ce64 100644 --- a/pkgs/applications/editors/emacs/build-support/wrapper-test.nix +++ b/pkgs/applications/editors/emacs/build-support/wrapper-test.nix @@ -15,6 +15,10 @@ runCommand "test-emacs-withPackages-wrapper" )) git # needed by magit ]; + env = { + # emulate a default NixOS env where INFOPATH is set like this (not ending with a ":") + INFOPATH = "/fake-info-dir1:/fake-info-dir2"; + }; } '' emacs --batch --eval="(require 'magit)" @@ -23,5 +27,9 @@ runCommand "test-emacs-withPackages-wrapper" # transitive dependencies should be made available # https://github.com/NixOS/nixpkgs/issues/388829 emacs --batch --eval="(require 'flx)" + + # test that https://debbugs.gnu.org/cgi/bugreport.cgi?bug=81105 is fixed or worked around + emacs --batch --eval='(progn (package-activate-all) (info "(magit)Top"))' + touch $out '' diff --git a/pkgs/applications/editors/emacs/site-start.el b/pkgs/applications/editors/emacs/site-start.el index 8c7ea3dfc913..06e13c756759 100644 --- a/pkgs/applications/editors/emacs/site-start.el +++ b/pkgs/applications/editors/emacs/site-start.el @@ -72,6 +72,14 @@ least specific (the system profile)" (nix--profile-paths)) woman-manpath))) +;;; Make info manuals of installed elisp pkgs available (work around Emacs bug#81105) +(when-let* ((path (getenv "INFOPATH"))) + ;; Normally, Emacs 31 extends `Info-default-directory-list' when activating elisp pkgs. + ;; We add a trailing path-separator ":" to INFOPATH when needed + ;; to ensure `Info-default-directory-list' is used to initialize `Info-directory-list'. + (unless (string-suffix-p path-separator path) + (setenv "INFOPATH" (concat path path-separator)))) + ;;; Make tramp work for remote NixOS machines (defvar tramp-remote-path) (eval-after-load 'tramp