bug#81332: info/dir and INFO_NONMISC are not gated by DOCLANGS

Boris <[email protected]>
Newsgroups gmane.emacs.bugs
Message-ID <2PbxmXNV8PWcbpGt46TcusYbQ26JJKT_QdFO4X0w6__il_5T9qYHTg2Tq6w6t1e5SeSabjed0dpSqj-JlqRyHm-EZCrytwnTsKRgcxhbBX4=@d12frosted.io>
> THose 3 manuals must always be built and always be installed,
> regardless of DOCLANGS.

Understood, and then the situation is worse than what I described: with DOCLANGS that does not contain default, those three manuals are not built at all on master right now. info/dir and INFO_NONMISC listing them is the correct part; the build is the broken part.

That is a regression from my second patch. Before it, every doc directory ran one sub-make per language, and doc/emacs, doc/lispintro and doc/lispref have no DOCLANG in their Makefiles, so each of those sub-makes just rebuilt the default manual. That is what caused the duplicate copies under make -j. My fix made the language list per directory, and with default filtered out those directories ended up with nothing to build.

So the fix goes the other way round: doc/emacs, doc/lispintro and doc/lispref always build the default language, whatever DOCLANGS says, while doc/misc keeps honoring it. Then info/dir and INFO_NONMISC stay exactly as they are, no gating anywhere.

That also drops the build-aux question: info/dir always has those three entries, so make-info-dir never gets fewer than two arguments, and I do not need to touch it.

One question before I write the patch: should doc/misc keep honoring DOCLANGS? With DOCLANGS='fr' it currently builds only ses-fr, and the English misc manuals are skipped. I plan to leave that as is, since those manuals are not referenced from doc strings, but say the word if you want default forced everywhere.

Vincent: this also means empty DOCLANGS will no longer disable all manuals, the three above will still be built. Given Eli's requirement I do not think we can keep that property.

I will send the patch once the doc/misc question is settled.

Cheers,
[email protected]

On Tuesday, 28 July 2026 at 18:34, Eli Zaretskii <[email protected]> wrote:

> > Date: Tue, 28 Jul 2026 15:23:40 +0000
> > From: Boris <[email protected]>
> > Cc: Eli Zaretskii <[email protected]>, Vincent Belaiche <[email protected]>
> >
> > The bug is closed and this is not a regression from the patches, so this is just a question: is the remaining DOCLANGS inconsistency worth fixing? I mentioned it when Vincent and I discussed the empty DOCLANGS case, and I said I could take it as a follow-up.
> >
> > Two places still hardcode the three built-in manuals:
> >
> > - srcdir_doc_info_dir_inputs lists doc/emacs/emacs.texi, doc/lispintro/emacs-lisp-intro.texi and doc/lispref/elisp.texi unconditionally, while the misc entries are gated (texi_misc_default only exists when default is in DOCLANGS)
> > - INFO_NONMISC lists the same three .info files for install-info
> >
> > The visible effect is with DOCLANGS='fr' (or any set without default): emacs-info, lispintro-info and lispref-info are no-ops, so those manuals are never built, but info/dir still lists them, and install-info still runs install-info on them. The latter is invisible today only because the recipe ignores errors.
> 
> THose 3 manuals must always be built and always be installed,
> regardless of DOCLANGS.  The first two are referenced from various doc
> strings, and the 3rd one (Lisp Intro) is important enough part of
> Emacs to be available regardless of the language preferences of the
> user who builds the manuals.
> 
> > Gating both on $(filter default,$(DOCLANGS)) is a small change. One detail: build-aux/make-info-dir starts with "test $# -ge 2 || exit 1", so with empty DOCLANGS everything would be gated away and "make info" would fail instead of generating a dir file. I would relax that to -ge 1, so info/dir is still generated with the header and no entries.
> 
> Can we do that without involving build-aux/ files?  Those files are
> from Gnulib, so I'd prefer our local tricks to be just ours.
> 
> Thanks.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.