Subject: Re: bug#60032: 30.0.50; [WISH] Customizing Info directories

From: Ihor Radchenko <[email-masked]>
Date: Wed, 14 Dec 2022 10:27:19 +0000

Eli Zaretskii <[email-masked]> writes:

>> However, `Info-default-directory-list' being ignored is rather
>> surprising, especially given that setting the other defcustom
>> (`Info-additional-directory-list') does not allow overriding system
>> settings.
>
> It is done for a good reason.  Setting up the list correctly is
> difficult enough, what with the requirement that Emacs's own manuals
> should sometimes be before the system-wide installation, and sometimes
> after it (to support different use cases).  When INFOPATH is defined,
> and used by the stand-alone Info reader, install-info, and other
> stuff, it becomes impossible to DTRT.  So we punt, in effect saying:
> if you have INFOPATH, you should already know what you are doing.

INFOPATH may be set by OS, not by user. For example, it is the case for
me. I have never changed the default value of INFOPATH, which is
non-empty on Gentoo.

> If you want the gory details (which I happily forgot), run "git log -L"
> (or vc-region-history) on the area where Info-default-directory-list
> is defined and used, and read the discussions related to the changes
> and bugs reported against that.

I fail to see why a new variable, symmetric to
`Info-additional-directory-list' cannot be added. It will be prepended,
as opposed to `Info-additional-directory-list', to the Info path.

Also, searching through the commits I noticed the following entry in
Emacs FAQ:

3.5 How do I install a piece of Texinfo documentation?

   • You can create your own Info directory.  You can tell Emacs where
     that Info directory is by adding its pathname to the value of the
     variable ‘Info-default-directory-list’.  For example, to use a
     private Info directory which is a subdirectory of your home
     directory named ‘Info’, you could put this in your init file (*note
     Setting up a customization file::):

          (add-to-list 'Info-default-directory-list "~/Info/")

     You will need a top-level Info file named ‘dir’ in this directory
     which has everything the system ‘dir’ file has in it, except it
     should list only entries for Info files in that directory.  You
     might not need it if (fortuitously) all files in this directory
     were referenced by other ‘dir’ files.  The node lists from all
     ‘dir’ files in ‘Info-default-directory-list’ are merged by the Info
     system.

The above if not true when INFOPATH environment variable is set, AFAIU.

>> Changing environment variables is something I never ever needed to
>> customize Emacs' behaviour. Once I see it, my thinking goes: "Surely,
>> there should be some custom variable.", but no such variable exists.
>
> Does this include PATH?  If not, why not?
>
> IME, the *PATH variables are quite special: they should generally be
> set from outside Emacs, and doing the same via customization options
> is usually not a good idea.

I agree. However, I expect in-Emacs info reader to be more configurable.
It's not like info.el requires external system tools. I prefer Emacs to
be portable as much as sanely possible.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>