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. >