Re: [PATCH] Updates Documentation/Makefile to use Python3 as fallback

From: Jonathan Corbet
Date: Fri Jan 29 2021 - 19:18:45 EST


Noa Sakurajin <noasakurajin@xxxxxx> writes:

[CC += kbuild maintainers]

> Before the command python was needed for the documentation to build.
> This patch checks if python is available and uses python3 as
> fallback.
>
> This is needed because a lot of distribution (at least Ubuntu)
> only provide python3 and not python. scripts/sphinx-pre-install
> checks for python3 first and does not check if python exists
> which causes it to report that everything is installed even
> if the documentation build failed.
>
> Signed-off-by: Noa Sakurajin <noasakurajin@xxxxxx>
> ---
> Documentation/Makefile | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/Makefile b/Documentation/Makefile
> index 61a7310b49e0..8a4a7df3b74a 100644
> --- a/Documentation/Makefile
> +++ b/Documentation/Makefile
> @@ -75,7 +75,8 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
> cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
> PYTHONDONTWRITEBYTECODE=1 \
> BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
> - $(PYTHON) $(srctree)/scripts/jobserver-exec \
> + PY=$(shell command -v $(PYTHON) 2> /dev/null) \
> + $${PY:-"$(PYTHON3)"} $(srctree)/scripts/jobserver-exec \

So I see what you're trying to do, and we definitely want this to work.
I susped this isn't the right fix, though; it could leave us open to
similar issues elsewhere in the tree.

Personally, I think that $(PYTHON) should get a working Python if it's
installed, so I would suggest fixing the top-level Makefile to set it
correctly. Masahiro, thoughts on that?

Alternatively, we could just say $(PYTHON3) and explicitly leave Python2
behind; that needs to happen in the not-too-distant future regardless
but we haven't decided to actually do it yet.

Thanks,

jon