[PATCH] kbuild: remove PYTHON variable

Subsystems: documentation, kernel build + files below scripts/ (unless maintained elsewhere), the rest

STALE2007d

4 messages, 2 authors, 2021-02-01 · open the first message on its own page

[PATCH] kbuild: remove PYTHON variable

From: Masahiro Yamada <masahiroy@kernel.org>
Date: 2021-02-01 01:02:35

Python retired in 2020, and some distributions do not provide the
'python' command any more.

As in commit 51839e29cb59 ("scripts: switch explicitly to Python 3"),
we need to use more specific 'python3' to invoke scripts even if they
are written in a way compatible with both Python 2 and 3.

This commit removes the variable 'PYTHON', and switches the existing
users to 'PYTHON3'.

BTW, PEP 394 (https://www.python.org/dev/peps/pep-0394/) is a helpful
material.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 Documentation/Makefile             | 2 +-
 Documentation/kbuild/makefiles.rst | 2 +-
 Makefile                           | 3 +--
 arch/ia64/Makefile                 | 2 +-
 arch/ia64/scripts/unwcheck.py      | 2 +-
 scripts/jobserver-exec             | 2 +-
 6 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 61a7310b49e0..9c42dde97671 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -75,7 +75,7 @@ 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 \
+	$(PYTHON3) $(srctree)/scripts/jobserver-exec \
 	$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
 	$(SPHINXBUILD) \
 	-b $2 \
diff --git a/Documentation/kbuild/makefiles.rst b/Documentation/kbuild/makefiles.rst
index 9f6a11881951..300d8edcb994 100644
--- a/Documentation/kbuild/makefiles.rst
+++ b/Documentation/kbuild/makefiles.rst
@@ -755,7 +755,7 @@ more details, with real examples.
 	bits on the scripts nonetheless.
 
 	Kbuild provides variables $(CONFIG_SHELL), $(AWK), $(PERL),
-	$(PYTHON) and $(PYTHON3) to refer to interpreters for the respective
+	and $(PYTHON3) to refer to interpreters for the respective
 	scripts.
 
 	Example::
diff --git a/Makefile b/Makefile
index b0e4767735dc..89217e4e68c6 100644
--- a/Makefile
+++ b/Makefile
@@ -452,7 +452,6 @@ AWK		= awk
 INSTALLKERNEL  := installkernel
 DEPMOD		= depmod
 PERL		= perl
-PYTHON		= python
 PYTHON3		= python3
 CHECK		= sparse
 BASH		= bash
@@ -508,7 +507,7 @@ CLANG_FLAGS :=
 
 export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
 export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
-export PERL PYTHON PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
+export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
 export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
 export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
 
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
index 703b1c4f6d12..45d5368d6a99 100644
--- a/arch/ia64/Makefile
+++ b/arch/ia64/Makefile
@@ -69,7 +69,7 @@ vmlinux.bin: vmlinux FORCE
 	$(call if_changed,objcopy)
 
 unwcheck: vmlinux
-	-$(Q)READELF=$(READELF) $(PYTHON) $(srctree)/arch/ia64/scripts/unwcheck.py $<
+	-$(Q)READELF=$(READELF) $(PYTHON3) $(srctree)/arch/ia64/scripts/unwcheck.py $<
 
 archclean:
 
diff --git a/arch/ia64/scripts/unwcheck.py b/arch/ia64/scripts/unwcheck.py
index bfd1b671e35f..9581742f0db2 100644
--- a/arch/ia64/scripts/unwcheck.py
+++ b/arch/ia64/scripts/unwcheck.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # SPDX-License-Identifier: GPL-2.0
 #
 # Usage: unwcheck.py FILE
diff --git a/scripts/jobserver-exec b/scripts/jobserver-exec
index 0fdb31a790a8..48d141e3ec56 100755
--- a/scripts/jobserver-exec
+++ b/scripts/jobserver-exec
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # SPDX-License-Identifier: GPL-2.0+
 #
 # This determines how many parallel tasks "make" is expecting, as it is
-- 
2.27.0

Re: [PATCH] kbuild: remove PYTHON variable

From: Jonathan Corbet <corbet@lwn.net>
Date: 2021-02-01 16:39:41

Masahiro Yamada [off-list ref] writes:
Python retired in 2020, and some distributions do not provide the
'python' command any more.

As in commit 51839e29cb59 ("scripts: switch explicitly to Python 3"),
we need to use more specific 'python3' to invoke scripts even if they
are written in a way compatible with both Python 2 and 3.

This commit removes the variable 'PYTHON', and switches the existing
users to 'PYTHON3'.

BTW, PEP 394 (https://www.python.org/dev/peps/pep-0394/) is a helpful
material.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
So this will have the effect of making the docs build impossible for
folks who only have Python 2.  As I said before, this is a step that we
knew was coming, we just hadn't decided on the exact timing - I guess
this decides for us :)

That said, I'll copy linux-doc to see if anybody screams.  I assume this
is a 5.12 change?

Thanks,

jon

Re: [PATCH] kbuild: remove PYTHON variable

From: Masahiro Yamada <masahiroy@kernel.org>
Date: 2021-02-01 21:00:50

On Tue, Feb 2, 2021 at 1:38 AM Jonathan Corbet [off-list ref] wrote:
Masahiro Yamada [off-list ref] writes:
quoted
Python retired in 2020, and some distributions do not provide the
'python' command any more.

As in commit 51839e29cb59 ("scripts: switch explicitly to Python 3"),
we need to use more specific 'python3' to invoke scripts even if they
are written in a way compatible with both Python 2 and 3.

This commit removes the variable 'PYTHON', and switches the existing
users to 'PYTHON3'.

BTW, PEP 394 (https://www.python.org/dev/peps/pep-0394/) is a helpful
material.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
So this will have the effect of making the docs build impossible for
folks who only have Python 2.

Is this a problem?  Python 2 is EOL.

Everybody who wants to use Python
must install Python 3.


Rather, people are screaming
that the 'python' command does not exist.



 As I said before, this is a step that we
knew was coming, we just hadn't decided on the exact timing - I guess
this decides for us :)

That said, I'll copy linux-doc to see if anybody screams.  I assume this
is a 5.12 change?

No, I am planning to do this for 5.11
(a pull request this week if there is no objection).







Thanks,

jon

-- 
Best Regards
Masahiro Yamada

Re: [PATCH] kbuild: remove PYTHON variable

From: Jonathan Corbet <corbet@lwn.net>
Date: 2021-02-01 21:22:33

Masahiro Yamada [off-list ref] writes:
On Tue, Feb 2, 2021 at 1:38 AM Jonathan Corbet [off-list ref] wrote:
quoted
So this will have the effect of making the docs build impossible for
folks who only have Python 2.
Is this a problem?  Python 2 is EOL.

Everybody who wants to use Python
must install Python 3.
I honestly don't know, but people do keep things around for a
surprisingly long time.
quoted
 As I said before, this is a step that we
knew was coming, we just hadn't decided on the exact timing - I guess
this decides for us :)

That said, I'll copy linux-doc to see if anybody screams.  I assume this
is a 5.12 change?
No, I am planning to do this for 5.11
(a pull request this week if there is no objection).
I'm not going to truly object and try to block this, but I worry that
it's soon and without warning.  It's not a change I would merge for
-rc7.  IMO this should be done in 5.12 with an appropriate note added to
Documentation/process/changes.rst as well.

Thanks,

jon
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help