Created attachment 859051 [details] Output of ~emerge --info~ Hi. Under normal circumstances, GNU Emacs adds to the variable Info-directory-list the directory (as a string) of each ELPA package that ships an Info manual. For example, GNU Vertico 1.2 ships an Info manual, so Emacs adds the element "/home/jorge/.config/emacs/elpa/vertico-1.2" to Info-directory-list. This does not work on Gentoo with =app-editors/emacs-29.0.9999-r1. I noticed the problem does not occur when Emacs is invoked with the --no-site-file command-line flag. Then I looked into ~/usr/share/emacs/site-lisp/site-gentoo.el~ and noticed this code: #+begin_src emacs-lisp (let ((path (getenv "INFOPATH")) (dir "/usr/share/info/emacs-29-vcs") (re "\\`/usr/share\\>")) (and path ;; move Emacs Info dir before anything else in /usr/share (let* ((p (cons nil (split-string path ":" t))) (q p)) (while (and (cdr q) (not (string-match re (cadr q)))) (setq q (cdr q))) (setcdr q (cons dir (delete dir (cdr q)))) (setq Info-directory-list (prune-directory-list (cdr p)))))) #+end_src I have then worked around the bug by commenting-out the above excerpt. But the commentary of site-gentoo.el says: #+begin_src emacs-lisp ;;; Commentary: ;; Automatically generated by elisp-common.eclass ;; DO NOT EDIT THIS FILE #+end_src I strongly suspect Portage will later clobber site-gentoo.el but I intend to simply repeat this workaround each time Portage clobbers it. Regards
Not an eclass problem. The code originates from 20emacs-30-vcs-gentoo.el which is installed by app-editors/emacs itself. elisp-common.eclass merely reads all the snippets from usr/share/emacs/site-lisp/site-gentoo.d/ and collects them in site-gentoo.el. Could you test if the following change fixes the problem for you? In the code block below ";;; emacs-29-vcs site-lisp configuration", replace the line: (setq Info-directory-list (prune-directory-list (cdr p))))))) by: (setenv "INFOPATH" (string-join (prune-directory-list (cdr p)) ":")))))) For testing, it's probably easiest to edit /usr/share/emacs/site-lisp/site-gentoo.el (even if it says "DO NOT EDIT"). You may have to disable read-only-mode for the file with "C-u 0 C-x C-q".
(In reply to Ulrich Müller from comment #1) > [...] 20emacs-30-vcs-gentoo.el [...] This should read 20emacs-29-vcs-gentoo.el.
(In reply to Ulrich Müller from comment #1) > Could you test if the following change fixes the problem for you? Yes, it fixed my problem. I have applied it yesterday morning and have restarted Emacs at least twice after that; and Emacs is indeed able to find ELPA packages' Info manuals. Now, outside Emacs, environment variable INFOPATH is "/home/jorge/.guix-profile/share/info:/home/jorge/.config/guix/current/share/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/12/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.39/info:/usr/share/info:/usr/share/info/emacs-29-vcs" And inside Emacs, the variable is: "/home/jorge/.guix-profile/share/info:/home/jorge/.config/guix/current/share/info:/usr/share/info/emacs-29-vcs:/usr/share/gcc-data/x86_64-pc-linux-gnu/12/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.39/info:/usr/share/info" Emacs variable Info-directory-list is: ("/home/jorge/.config/emacs/elpa/jinx-0.3" "/home/jorge/.config/emacs/elpa/w3m-20230324.125" "/home/jorge/.config/emacs/elpa/org-modern-0.9" "/home/jorge/.config/emacs/elpa/vertico-1.2" "/home/jorge/.config/emacs/elpa/guix-20230309.955" "/home/jorge/.config/emacs/elpa/auctex-13.1.10" "/home/jorge/.config/emacs/elpa/modus-themes-4.1.1" "/home/jorge/.config/emacs/elpa/corfu-0.35" "/home/jorge/.config/emacs/elpa/marginalia-1.1" "/home/jorge/.config/emacs/elpa/cape-0.13" "/home/jorge/.config/emacs/elpa/osm-0.10" "/home/jorge/.config/emacs/elpa/embark-0.21.1" "/home/jorge/.config/emacs/elpa/use-package-2.4.5" "/home/jorge/.config/emacs/elpa/ebdb-0.8.17" "/home/jorge/.config/emacs/elpa/geiser-0.28.2" "/home/jorge/.config/emacs/elpa/magit-popup-20200719.1015" "/home/jorge/.config/emacs/elpa/orderless-1.0" "/home/jorge/.config/emacs/elpa/debbugs-0.35" "/home/jorge/.config/emacs/elpa/bbdb-vcard-20210325.2208" "/home/jorge/.config/emacs/elpa/bbdb-3.2.2.2" "/home/jorge/.config/emacs/elpa/lin-1.0.0" "/home/jorge/.config/emacs/elpa/org-remark-1.0.5" "/home/jorge/.config/emacs/elpa/consult-0.33" "/home/jorge/.config/emacs/elpa/compat-29.1.4.1" "/home/jorge/.config/emacs/elpa/elfeed-score-20220702.1548" "/home/jorge/.config/emacs/elpa/magit-3.3.0" "/home/jorge/.config/emacs/elpa/magit-section-3.3.0" "/home/jorge/.config/emacs/elpa/with-editor-3.2.0" "/home/jorge/.config/emacs/elpa/emms-14" "/home/jorge/.config/emacs/elpa/dash-2.19.1" "/home/jorge/.guix-profile/share/info" "/home/jorge/.config/guix/current/share/info" "/usr/share/gcc-data/x86_64-pc-linux-gnu/12/info" "/usr/share/binutils-data/x86_64-pc-linux-gnu/2.39/info" "/usr/share/info" "/usr/share/info/emacs-29-vcs") Thank you!
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ba7cc5e2b5850273eebdeb893e879099a8cef646 commit ba7cc5e2b5850273eebdeb893e879099a8cef646 Author: Ulrich Müller <ulm@gentoo.org> AuthorDate: 2023-03-28 12:55:43 +0000 Commit: Ulrich Müller <ulm@gentoo.org> CommitDate: 2023-03-28 12:55:43 +0000 app-editors/emacs: Set INFOPATH env variable in site-init file ... and leave the Info-directory-list variable alone. Closes: https://bugs.gentoo.org/903147 Signed-off-by: Ulrich Müller <ulm@gentoo.org> app-editors/emacs/emacs-25.3-r17.ebuild | 353 ++++++++++++++ app-editors/emacs/emacs-26.3-r14.ebuild | 374 +++++++++++++++ app-editors/emacs/emacs-27.2-r12.ebuild | 437 +++++++++++++++++ app-editors/emacs/emacs-28.2-r7.ebuild | 516 +++++++++++++++++++++ ...cs-28.3_rc1.ebuild => emacs-28.3_rc1-r1.ebuild} | 3 +- app-editors/emacs/emacs-29.0.9999-r1.ebuild | 3 +- app-editors/emacs/emacs-30.0.9999.ebuild | 3 +- 7 files changed, 1686 insertions(+), 3 deletions(-)