From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Akira Yokosawa <akiyks@gmail.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
Jani Nikula <jani.nikula@linux.intel.com>
Subject: Re: [PATCH v6 10/21] tools/docs: sphinx-build-wrapper: add a wrapper for sphinx-build
Date: Thu, 18 Sep 2025 10:24:37 +0200 [thread overview]
Message-ID: <20250918102437.3a9c770b@foz.lan> (raw)
In-Reply-To: <ed4eeee3-4e95-4bf4-b19f-cf7d38d8a1ea@gmail.com>
Em Thu, 18 Sep 2025 08:43:19 +0900
Akira Yokosawa <akiyks@gmail.com> escreveu:
> Hi Jon,
>
> Jonathan Corbet wrote:
> > Akira Yokosawa <akiyks@gmail.com> writes:
> >
> >> Wait! In the cover-letter, you said:
> >>
> >> It should be noticed that it is out of the scope of this series
> >> to change the implementation. Surely the process can be improved,
> >> but first let's consolidate and document everything on a single
> >> place.
> >>
> >> Removing current restriction on SPHINXDIRS does look inconsistent with
> >> your own words to me.
> >>
> >> So, I guess I have to NAK 06/21 as well.
> >
> > Is there an actual problem with this change that we need to know about?
> > I am not quite understanding the objection here.
>
> As Mauro has pointed out, and as I could not apply v6 series, I failed
> to look at the whole patch.
>
> My knee jerk reaction came from the fact that, for example,
>
> make SPHINXDIRS=translations/zh_CN pdfdocs
>
> won't build. This is because I didn't know such a sub-directory is
> allowed (despite what "make dochelp" says) in SPHINXDIRS.
The build system does support it, provided that the directory has
an index.rst file (not all subdirs have)...
>
> At the time I made "improvements in CJK font configs", I embedded
> hacky ".. raw:: latex \kerneldocCJKoff" and others in:
>
> Documentations/index.rst
> /*/index.rst
... and that ".. raw:: " entries don't depend on previous .rst files.
> , assuming all of those latex macros would appear in translations.tex
> in the right order.
>
> I admit it was not ideal, but I could not, and still can not, come up
> with a more robust approach.
For LaTeX build, ".. raw:: " entries can be unavoidable, but you could
place it either:
- at conf.py if they're global;
- on each rst file (that's what we do on media);
- in the case of translations, for the languages that require CJK.
Grepping it:
$ git grep kerneldocCJK Documentation/translations/
Documentation/translations/index.rst: \kerneldocCJKoff
Documentation/translations/it_IT/index.rst: \kerneldocCJKoff
Documentation/translations/ja_JP/index.rst: \kerneldocCJKon
Documentation/translations/ko_KR/index.rst: \kerneldocCJKon
Documentation/translations/ko_KR/process/howto.rst: \kerneldocCJKoff
Documentation/translations/ko_KR/process/howto.rst: \kerneldocCJKon
Documentation/translations/sp_SP/index.rst: \kerneldocCJKoff
Documentation/translations/zh_CN/index.rst: \kerneldocCJKon
Documentation/translations/zh_TW/index.rst: \kerneldocCJKon
Indeed it assumes that translations/index.rst will be the last one,
as it is needed to disable \kerneldocCJKoff.
What I would do is move \kerneldocCJK to each book, e.g.:
zh_CN/index: will have a \kerneldocCJK{on/off} pair;
zh_TW/index: will have a \kerneldocCJK{on/off} pair;
it_IT/index: won't use it, as it doesn't need CJK fonts;
ko_KR/index: will have a \kerneldocCJK{on/off} pair;
ja_JP/index: will have a \kerneldocCJK{on/off} pair;
sp_SP/index: will have a \kerneldocCJK{on/off} pair;
process/index: won't use it, as everything there is in English;
This would likely allow creating each translation on separate books
like:
make SPHINXDIRS="translations/zh_CN translations/ko_KR ..." pdfdocs
Heh, the audience for each language is completely different, so
merging them altogether is actually weird. This doesn't matter
much for html output, but for all other outputs, ideally each
translation should be a separate book.
With the current Makefile-hacky-based-approach, supporting separate
build books would be very complex, but with a wrapper containing the
entire building logic, it doesn't sound hard to add support in the
future to build translations as separate entities.=
Heh, when we added Sphinx support, we have a single Documentation
directory, but now we have multiple ones:
$ find . -name Documentation
./tools/bpf/bpftool/Documentation
./tools/perf/Documentation
./tools/memory-model/Documentation
./tools/lib/perf/Documentation
./tools/objtool/Documentation
./tools/build/Documentation
./Documentation
./drivers/staging/most/Documentation
./drivers/staging/greybus/Documentation
./drivers/staging/iio/Documentation
Considering that, and considering the some of the above books can
be in ReST format, it doesn't sound too complex to add a --docdir
parameter at sphinx-build-wrapper and do things like:
./tools/docs/sphinx-build-wrapper --docdir Documentation/translations/zh_CN htmldocs
./tools/docs/sphinx-build-wrapper --docdir Documentation/translations/zh_TW epubdocs
./tools/docs/sphinx-build-wrapper --docdir ./tools/bpf/bpftool/Documentation mandocs
On such scenario, we likely need intersphinx, as translation books contain lots of
references pointing to the English one.
Thanks,
Mauro
next prev parent reply other threads:[~2025-09-18 8:24 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-16 10:22 [PATCH v6 00/21] Split sphinx call logic from docs Makefile Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 01/21] scripts/jobserver-exec: move the code to a class Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 02/21] scripts/jobserver-exec: move its class to the lib directory Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 03/21] scripts/jobserver-exec: add a help message Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 04/21] scripts: check-variable-fonts.sh: convert to Python Mauro Carvalho Chehab
2025-09-17 1:09 ` Akira Yokosawa
2025-09-17 8:48 ` Mauro Carvalho Chehab
2025-09-17 23:22 ` Akira Yokosawa
2025-09-18 8:51 ` Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 05/21] tools/docs: check-variable-fonts.py: split into a lib and an exec file Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 06/21] scripts: sphinx-pre-install: move it to tools/docs Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 07/21] tools/docs: python_version: move version check from sphinx-pre-install Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 08/21] tools/docs: python_version: drop a debug print Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 09/21] tools/docs: python_version: allow check for alternatives and bail out Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 10/21] tools/docs: sphinx-build-wrapper: add a wrapper for sphinx-build Mauro Carvalho Chehab
2025-09-17 8:35 ` Akira Yokosawa
2025-09-17 8:45 ` Akira Yokosawa
2025-09-17 15:11 ` Jonathan Corbet
2025-09-17 23:43 ` Akira Yokosawa
2025-09-18 8:24 ` Mauro Carvalho Chehab [this message]
2025-09-17 15:18 ` Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 11/21] docs: parallel-wrapper.sh: remove script Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 12/21] docs: Makefile: document latex/PDF PAPER= parameter Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 13/21] tools/docs: sphinx-build-wrapper: add an argument for LaTeX interactive mode Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 14/21] tools/docs,scripts: sphinx-*: prevent sphinx-build crashes Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 15/21] tools/docs: sphinx-build-wrapper: allow building PDF files in parallel Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 16/21] tools/docs: sphinx-build-wrapper: Fix output for duplicated names Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 17/21] docs: add support to build manpages from kerneldoc output Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 18/21] tools: kernel-doc: add a see also section at man pages Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 19/21] scripts: kdoc_parser.py: warn about Python version only once Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 20/21] tools/docs: sphinx-* break documentation bulds on openSUSE Mauro Carvalho Chehab
2025-09-16 10:22 ` [PATCH v6 21/21] tools/docs: sphinx-build-wrapper: add support to run inside venv Mauro Carvalho Chehab
2025-09-16 10:31 ` [PATCH v6 00/21] Split sphinx call logic from docs Makefile Mauro Carvalho Chehab
2025-09-16 15:47 ` Jonathan Corbet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250918102437.3a9c770b@foz.lan \
--to=mchehab+huawei@kernel.org \
--cc=akiyks@gmail.com \
--cc=corbet@lwn.net \
--cc=jani.nikula@linux.intel.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox