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

Boris <[email protected]> Wed, 05 Aug 2026 07:00:11 +0000
Newsgroups gmane.emacs.bugs
Message-ID <DJnXAgzvTE8FxN4oHtvv6etDIz00XTAvpEnJzQNlBkBFRH5iJbmOtw_oeV5EZdG6_o6ci32AewVJ5xQ0Az5pi1dl7S1ETjDIo8QXH6CTx78=@d12frosted.io>
--b1=_tIxmDcPwwKsnfgbVQGEFN3orHNo7rZEDIsLIQnauZQ
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


Patch attached.

It adds MANDATORY_DOC_DIRS (emacs, lispintro, lispref) and makes FILTER_DOC=
LANGS always return the default language for those directories, so they are=
 built whatever DOCLANGS says. info/dir and INFO_NONMISC stay as they are, =
since listing those three manuals unconditionally is now correct, and build=
-aux is untouched. That is one variable and one $(if), so I hope it stays c=
heap to maintain.

Vincent, on your questions:

- translations of those three manuals, if we ever get them, are not mandato=
ry: they are selected by DOCLANGS like every other translation, and add to =
the default language rather than replace it
- so I do not think we need a "mandatory" pseudo language. What is mandator=
y here is a manual, not a language, and the forcing sits in the per-directo=
ry language list. If doc/translations/fr/emacs shows up one day, doc/emacs =
simply builds default plus fr
- doc strings pointing at a manual in the user preferred language is a sepa=
rate topic, I did not touch anything there
- your doc/emacs/foo.texi case: the forcing above does not depend on TRANSL=
ATED_DIRS, so the build side is fine. What would need work is the default l=
anguage part of srcdir_doc_info_dir_inputs, which still names the three man=
uals explicitly and knows nothing about a second manual in those directorie=
s. Nothing to do until such a manual exists, and it is independent of this =
patch

doc/misc keeps honoring DOCLANGS, as before.

Tested on top of d044ca25d03:

- DOCLANGS=3D'default': no change at all, info/dir is byte for byte the sam=
e as without the patch (65 manuals)
- DOCLANGS=3D'default fr': unchanged too, 66 manuals including SES-fr, and =
"make -j8 emacs-info lispintro-info lispref-info" copies each file exactly =
once, no "File exists"
- DOCLANGS=3D'fr': without the patch emacs-info, lispintro-info and lispref=
-info have no prerequisites at all, so nothing is built. With the patch eac=
h of them builds the default language, emacs.info, eintr.info and elisp.inf=
o are produced, and info/dir lists Emacs, Emacs Lisp Intro, Elisp and SES-f=
r
- DOCLANGS=3D'' (and blanks only): same three manuals are built, info/dir
  lists just them, so make-info-dir still gets enough arguments

Let me know if something is amiss.

Cheers,
[email protected]

On Tuesday, 4 August 2026 at 15:56, Eli Zaretskii <[email protected]> wrote:

> > From: Vincent Bela=C3=AFche <[email protected]>
> > CC: "[email protected]" <[email protected]>
> > Date: Tue, 4 Aug 2026 12:14:49 +0000
> >
> > IMHO it is not such a good idea to have specific handling for some manu=
als. This makes makefiles more
> > complex and hard to maintain.
>=20
> I respectfully disagree.
>=20
> > Concerning Eli's point:
> >
> > > THose 3 manuals must always be built and always be installed,
> > > regardless of DOCLANGS.
> >
> > I acknowledge that some manuals are really needed to be installed in a =
normal build. However, on the other
> > hand, it should be possible for the aware user to configure the build w=
ithout those manuals. I mean that it
> > should be possible to build the Emacs executable on a machine on which =
the makeinfo tools are not available.
> > The Emacs executable should be able to be installed, start and run w/o =
crashing even though the mandatory
> > manuals are not installed. The user should get some error message, just=
 like when some application's DLL is
> > not there and you cannot load it, one gets an error message telling whi=
ch DLL is missing.
>=20
> When makeinfo is not available, it's a separate issue.  We already
> provide the Info manuals as part of the release tarballs, so users who
> build their own Emacs from a release tarball have no problem with
> that.  For building from Git, makeinfo is a prerequisite.
>=20
> > I understand that this is not the case, and currently makeinfo is a bui=
ld prerequisite. Please don't take me
> > wrong: I am not saying that the user should be anyhow encouraged not to=
 compile & install the manuals. My
> > point is that having some manual build mandated prevents code factoriza=
tion in the makefiles, and that also
> > prevents aware users to disable the manual building (at their own risks=
 of not getting appropriate documentation
> > when using Emacs) to get some minimalistic build. My recommendation is =
that makeinfo should just be highly
> > recommended, but just like the TeX texinfo compiler, should not be abso=
lutely mandated (meaning that it is ok if
> > there is some trick like setting DOCLANGS to ' ' to disable manual comp=
ilation altogether).
>=20
> I realize that this makes the build more complex, but having these 3
> manuals is from my POV a requirement.  Emacs can run without them, and
> will not crash, but we don't want such situation to happen just
> because DOCLANGS was set to some value.
> 
--b1=_tIxmDcPwwKsnfgbVQGEFN3orHNo7rZEDIsLIQnauZQ
Content-Type: application/octet-stream; name=0001-Always-build-the-Emacs-Elisp-and-Intro-manuals-bug-8.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=0001-Always-build-the-Emacs-Elisp-and-Intro-manuals-bug-8.patch

RnJvbSAxZWNhZmJiYTQ0ZWJhOGIwYmZkZTgyMWY2MmFlZTNlNDlmNzg0NzExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCb3JpcyBCdWxpZ2EgPGJvcmlzQGQxMmZyb3N0ZWQuaW8+CkRh
dGU6IFdlZCwgNSBBdWcgMjAyNiAwOTo1MDozNyArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIEFsd2F5
cyBidWlsZCB0aGUgRW1hY3MsIEVsaXNwIGFuZCBJbnRybyBtYW51YWxzIChidWcjODEzMzIpCgpU
aGUgbWFudWFscyBpbiBkb2MvZW1hY3MsIGRvYy9saXNwaW50cm8gYW5kIGRvYy9saXNwcmVmIGhh
dmUgbm8KdHJhbnNsYXRpb25zLCBzbyBmaWx0ZXJpbmcgdGhlIHBlci1kaXJlY3RvcnkgbGFuZ3Vh
Z2UgbGlzdCBieSBET0NMQU5HUwpsZWZ0IHRob3NlIGRpcmVjdG9yaWVzIHdpdGggbm90aGluZyB0
byBidWlsZCB3aGVuIERPQ0xBTkdTIGRvZXMgbm90CmluY2x1ZGUgJ2RlZmF1bHQnLiAgVGhlc2Ug
dGhyZWUgbWFudWFscyBtdXN0IGJlIGJ1aWx0IGFuZCBpbnN0YWxsZWQKcmVnYXJkbGVzcyBvZiBE
T0NMQU5HUzogdGhlIEVtYWNzIGFuZCBFbWFjcyBMaXNwIG1hbnVhbHMgYXJlCnJlZmVyZW5jZWQg
ZnJvbSBkb2Mgc3RyaW5ncywgYW5kIHRoZSBJbnRyb2R1Y3Rpb24gdG8gRW1hY3MgTGlzcApQcm9n
cmFtbWluZyBpcyBhbiBpbXBvcnRhbnQgZW5vdWdoIHBhcnQgb2YgRW1hY3MgdG8gYmUgYXZhaWxh
YmxlCndoYXRldmVyIHRoZSBsYW5ndWFnZSBwcmVmZXJlbmNlcyBvZiB0aGUgdXNlciB3aG8gYnVp
bGRzIHRoZSBtYW51YWxzLgoKKiBNYWtlZmlsZS5pbiAoTUFOREFUT1JZX0RPQ19ESVJTKTogTmV3
IHZhcmlhYmxlLgooRklMVEVSX0RPQ0xBTkdTKTogVXNlIGl0IHRvIGFsd2F5cyBidWlsZCB0aGUg
ZGVmYXVsdCBsYW5ndWFnZSBmb3IKdGhvc2UgZGlyZWN0b3JpZXMuCihJTkZPX05PTk1JU0MsIHNy
Y2Rpcl9kb2NfaW5mb19kaXJfaW5wdXRzKTogU2F5IHdoeSB0aGVzZSBhcmUgbm90CmdhdGVkIGJ5
IERPQ0xBTkdTLgoqIGRvYy90cmFuc2xhdGlvbnMvUkVBRE1FOiBEb2N1bWVudCB0aGF0IHRob3Nl
IHRocmVlIG1hbnVhbHMgYXJlCmFsd2F5cyBidWlsdCBpbiB0aGUgZGVmYXVsdCBsYW5ndWFnZS4K
LS0tCiBNYWtlZmlsZS5pbiAgICAgICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKy0tLS0t
LS0tLS0KIGRvYy90cmFuc2xhdGlvbnMvUkVBRE1FIHwgIDYgKysrKysrCiAyIGZpbGVzIGNoYW5n
ZWQsIDI0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL01ha2Vm
aWxlLmluIGIvTWFrZWZpbGUuaW4KaW5kZXggNTM0ZDhkY2EzOGYuLmU1OGQyYWEzNjY3IDEwMDY0
NAotLS0gYS9NYWtlZmlsZS5pbgorKysgYi9NYWtlZmlsZS5pbgpAQCAtMTc2LDYgKzE3Niw3IEBA
IG1hbjFkaXI9CiAjIFdoZXJlIHRvIGluc3RhbGwgYW5kIGV4cGVjdCB0aGUgaW5mbyBmaWxlcyBk
ZXNjcmliaW5nIEVtYWNzLgogaW5mb2Rpcj1AaW5mb2RpckAKICMgSW5mbyBmaWxlcyBub3QgaW4g
dGhlIGRvYy9taXNjIGRpcmVjdG9yeSAod2UgZ2V0IHRob3NlIHZpYSBtYWtlIGVjaG8taW5mbyku
CisjIFRoZXNlIGFyZSBub3QgZ2F0ZWQgYnkgRE9DTEFOR1M6IHNlZSBNQU5EQVRPUllfRE9DX0RJ
UlMgYmVsb3cuCiBJTkZPX05PTk1JU0M9ZW1hY3MuaW5mbyBlaW50ci5pbmZvIGVsaXNwLmluZm8K
IAogIyBEaXJlY3RvcnkgZm9yIGxvY2FsIHN0YXRlIGZpbGVzIGZvciBhbGwgcHJvZ3JhbXMuCkBA
IC0xMTUxLDE2ICsxMTUyLDIyIEBAICQoMSktRE9DTEFORy0kKDIpOgogCSQkKE1BS0UpIC1DIGRv
Yy8kJChzdWJzdCAtLCBET0NMQU5HPSQoMikgLCQoMSkpCiAKIGVuZGVmCisjIyBEaXJlY3Rvcmll
cyB3aG9zZSBtYW51YWxzIGFyZSBhbHdheXMgYnVpbHQgaW4gdGhlIGRlZmF1bHQgbGFuZ3VhZ2Us
CisjIyB3aGF0ZXZlciBET0NMQU5HUyBzYXlzOiB0aGUgRW1hY3MgYW5kIEVtYWNzIExpc3AgbWFu
dWFscyBhcmUKKyMjIHJlZmVyZW5jZWQgZnJvbSBkb2Mgc3RyaW5ncywgYW5kIHRoZSBFbWFjcyBM
aXNwIEludHJvIGlzIGFuCisjIyBpbXBvcnRhbnQgZW5vdWdoIHBhcnQgb2YgRW1hY3MgdG8gYmUg
YXZhaWxhYmxlIHJlZ2FyZGxlc3Mgb2YgdGhlCisjIyBsYW5ndWFnZSBwcmVmZXJlbmNlcyBvZiB0
aGUgdXNlciB3aG8gYnVpbGRzIHRoZSBtYW51YWxzLgorTUFOREFUT1JZX0RPQ19ESVJTID0gZW1h
Y3MgbGlzcGludHJvIGxpc3ByZWYKICMjIExhbmd1YWdlcyBmcm9tIERPQ0xBTkdTIHRvIGJ1aWxk
IHRoZSBtYW51YWxzIGluIGRvYy8kKDEpIGZvcjogdGhlCi0jIyBkZWZhdWx0IGxhbmd1YWdlICh3
aGVuIGluIERPQ0xBTkdTKSwgcGx1cyBldmVyeSBvdGhlciBsYW5ndWFnZSBpbgotIyMgRE9DTEFO
R1MgdGhhdCBoYXMgdHJhbnNsYXRpb25zIGZvciB0aGlzIGRpcmVjdG9yeQotIyMgKGRvYy90cmFu
c2xhdGlvbnMvPGxhbmc+LyQoMSkpLiAgRGlyZWN0b3JpZXMgd2l0aG91dCB0cmFuc2xhdGlvbnMK
LSMjIGZvciBhIGxhbmd1YWdlIG11c3Qgbm90IHJ1biBhIHN1Yi1tYWtlIGZvciBpdDogdGhlIGRv
YyBNYWtlZmlsZXMgb2YKLSMjIHVudHJhbnNsYXRlZCBkaXJlY3RvcmllcyBpZ25vcmUgRE9DTEFO
Rywgc28gc3VjaCBhIHN1Yi1tYWtlIHdvdWxkCi0jIyBqdXN0IHJlcGVhdCB0aGUgZGVmYXVsdC1s
YW5ndWFnZSBidWlsZCwgYW5kIHR3byBzdWItbWFrZXMgcHJvZHVjaW5nCi0jIyB0aGUgc2FtZSBv
dXRwdXRzIHJhY2UgdW5kZXIgIm1ha2UgLWoiIChlLmcuICJjcDogY2Fubm90IGNyZWF0ZQotIyMg
cmVndWxhciBmaWxlIC4uLjogRmlsZSBleGlzdHMiKS4KLUZJTFRFUl9ET0NMQU5HUyA9ICQoZmls
dGVyICQoRE9DTEFOR1MpLGRlZmF1bHQpICQoZm9yZWFjaCBsYW5nLCQoZmlsdGVyLW91dCBkZWZh
dWx0LCQoRE9DTEFOR1MpKSwkKGlmICQod2lsZGNhcmQgJHtzcmNkaXJ9L2RvYy90cmFuc2xhdGlv
bnMvJChsYW5nKS8kKDEpKSwkKGxhbmcpKSkKKyMjIGRlZmF1bHQgbGFuZ3VhZ2UgKHdoZW4gaW4g
RE9DTEFOR1MsIG9yIGFsd2F5cyBmb3IgdGhlIGRpcmVjdG9yaWVzCisjIyBhYm92ZSksIHBsdXMg
ZXZlcnkgb3RoZXIgbGFuZ3VhZ2UgaW4gRE9DTEFOR1MgdGhhdCBoYXMgdHJhbnNsYXRpb25zCisj
IyBmb3IgdGhpcyBkaXJlY3RvcnkgKGRvYy90cmFuc2xhdGlvbnMvPGxhbmc+LyQoMSkpLiAgRGly
ZWN0b3JpZXMKKyMjIHdpdGhvdXQgdHJhbnNsYXRpb25zIGZvciBhIGxhbmd1YWdlIG11c3Qgbm90
IHJ1biBhIHN1Yi1tYWtlIGZvciBpdDoKKyMjIHRoZSBkb2MgTWFrZWZpbGVzIG9mIHVudHJhbnNs
YXRlZCBkaXJlY3RvcmllcyBpZ25vcmUgRE9DTEFORywgc28KKyMjIHN1Y2ggYSBzdWItbWFrZSB3
b3VsZCBqdXN0IHJlcGVhdCB0aGUgZGVmYXVsdC1sYW5ndWFnZSBidWlsZCwgYW5kCisjIyB0d28g
c3ViLW1ha2VzIHByb2R1Y2luZyB0aGUgc2FtZSBvdXRwdXRzIHJhY2UgdW5kZXIgIm1ha2UgLWoi
IChlLmcuCisjIyAiY3A6IGNhbm5vdCBjcmVhdGUgcmVndWxhciBmaWxlIC4uLjogRmlsZSBleGlz
dHMiKS4KK0ZJTFRFUl9ET0NMQU5HUyA9ICQoaWYgJChmaWx0ZXIgJCgxKSwkKE1BTkRBVE9SWV9E
T0NfRElSUykpLGRlZmF1bHQsJChmaWx0ZXIgJChET0NMQU5HUyksZGVmYXVsdCkpICQoZm9yZWFj
aCBsYW5nLCQoZmlsdGVyLW91dCBkZWZhdWx0LCQoRE9DTEFOR1MpKSwkKGlmICQod2lsZGNhcmQg
JHtzcmNkaXJ9L2RvYy90cmFuc2xhdGlvbnMvJChsYW5nKS8kKDEpKSwkKGxhbmcpKSkKICMgJCgx
KSA9IGRvYyB0YXJnZXQgKGUuZy4gbGlzcGludHJvLWluZm8pLCAkKDIpID0gbGFuZ3VhZ2VzIHRv
IGJ1aWxkCiBkZWZpbmUgTUFLRV9ET0MKICMgRGVmaW5lIGEgdGFyZ2V0IHRvIHdoaWNoIGRlcGVu
ZGVuY2llcyBjb21tb24gdG8gYWxsIG9mIHRoZSBkb2MgZmlsZXMKQEAgLTEyMDcsNyArMTIxNCw4
IEBAIGRlZmluZSBzZXRfdGV4aV9taXNjCiAjIyB3b3VsZCBicmVhayBpbiBhIGZyZXNoIGNoZWNr
b3V0LCBiZWNhdXNlIHRoZSAudGV4aSBmaWxlcyBvZiB0aGUKICMjIG9yZy1iYXNlZCBtYW51YWxz
IChlLmcuIG1vZHVzLXRoZW1lcy50ZXhpKSBhcmUgZ2VuZXJhdGVkIGFuZCB0aGVyZQogIyMgaXMg
bm8gcnVsZSB0byBidWlsZCB0aGVtIGF0IHRoaXMgbGV2ZWwuICBtYWtlLWluZm8tZGlyIGV4dHJh
Y3RzIGRpcgotIyMgZW50cmllcyBmcm9tIGJvdGggZm9ybWF0cy4KKyMjIGVudHJpZXMgZnJvbSBi
b3RoIGZvcm1hdHMuICBUaGUgZmlyc3QgdGhyZWUgYXJlIG5vdCBnYXRlZCBieQorIyMgRE9DTEFO
R1MsIGJlY2F1c2UgTUFOREFUT1JZX0RPQ19ESVJTIGFsd2F5cyBidWlsZHMgdGhlbS4KIHNyY2Rp
cl9kb2NfaW5mb19kaXJfaW5wdXRzIDo9IFwKICAgJHtzcmNkaXJ9L2RvYy9lbWFjcy9lbWFjcy50
ZXhpIFwKICAgJHtzcmNkaXJ9L2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpIFwK
ZGlmZiAtLWdpdCBhL2RvYy90cmFuc2xhdGlvbnMvUkVBRE1FIGIvZG9jL3RyYW5zbGF0aW9ucy9S
RUFETUUKaW5kZXggNDljNjNlZjYyYWQuLmY2OWQ4MjAyMTViIDEwMDY0NAotLS0gYS9kb2MvdHJh
bnNsYXRpb25zL1JFQURNRQorKysgYi9kb2MvdHJhbnNsYXRpb25zL1JFQURNRQpAQCAtMzgsNiAr
MzgsMTIgQEAgb2YgbGFuZ3VhZ2VzLiAgLi9jb25maWd1cmUgLS1oZWxwIGZvciB2YWx1ZXMgc3Vw
cG9ydGVkLiAgRm9yIGluc3RhbmNlOgogdG8gbWFrZSBhbGwgbWFudWFscyBmcm9tIHRoZSBtaXNj
IHN1YmRpcmVjdG9yeSBpbnRvIHRoZSBpbmZvIGZvcm1hdCBhbmQKIGZvciBsYW5ndWFnZSBGcmVu
Y2ggb25seS4KIAorTm90ZSB0aGF0IHRoZSBFbWFjcyBtYW51YWwsIHRoZSBFbWFjcyBMaXNwIFJl
ZmVyZW5jZSBtYW51YWwgYW5kIHRoZQorSW50cm9kdWN0aW9uIHRvIEVtYWNzIExpc3AgUHJvZ3Jh
bW1pbmcgYXJlIGFsd2F5cyBidWlsdCBpbiB0aGUgZGVmYXVsdAorbGFuZ3VhZ2UsIHdoYXRldmVy
IERPQ0xBTkdTIHNheXM6IHRoZSBmaXJzdCB0d28gYXJlIHJlZmVyZW5jZWQgZnJvbSBkb2MKK3N0
cmluZ3MsIGFuZCBhbGwgdGhyZWUgYXJlIGV4cGVjdGVkIHRvIGJlIHBhcnQgb2YgYW55IEVtYWNz
IGJ1aWxkLgorVGhlaXIgdHJhbnNsYXRpb25zLCBpZiBhbnksIGFyZSBzZWxlY3RlZCBieSBET0NM
QU5HUyBhcyB1c3VhbC4KKwogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2U6CiAKICAgIG1ha2Ug
LUMgZG9jL0RJUiBGT1JNQVQKLS0gCjIuNTIuMAoK

--b1=_tIxmDcPwwKsnfgbVQGEFN3orHNo7rZEDIsLIQnauZQ--