build: switch to Python 3
authorPetr Štetiar <ynezz@true.cz>
Tue, 19 Mar 2019 12:02:07 +0000 (13:02 +0100)
committerPetr Štetiar <ynezz@true.cz>
Fri, 26 Jul 2019 06:09:16 +0000 (08:09 +0200)
This patch switches Python used in buildroot to Python 3 as Python 2.x
series is going to be EOL relatively soon[1].

 "Being the last of the Python 2.x series, 2.7 will have an extended
  period of maintenance. Specifically, 2.7 will receive bugfix support
  until January 1, 2020. After the last release, 2.7 will receive no
  support."

It seems like Python 3 is going to be needed in order to support Meson
build system which has gained some traction recently.

Build tested on following targets:

 ath79/generic
 imx6/generic
 ipq40xx/generic
 lantiq/xway
 layerscape/armv7 (broken)
 layerscape/armv8_32b (broken)
 layerscape/armv8_64b (broken)
 mvebu/cortexa72
 ramips/mt7621
 ramips/mt7620
 sunxi/cortexa7
 x86/64

Layerscape targets are unfortunately left broken as their ls-rcw
firmware package uses Python 2 and converting it to Python 3 would take
more then reasoanble amount of time (I've tried to fix it already) and
would be better fixed by someone who can even run test it.

Run tested on ath79 (Archer C7 v5), ipq40xx (nbg6617) and x86_64 (QEMU
and apu2).

1. https://www.python.org/dev/peps/pep-0373/

Ref: PR#1937
Cc: Yangbo Lu <yangbo.lu@nxp.com>
Cc: Mathew McBride <matt@traverse.com.au>
Acked-by: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
README
include/prereq-build.mk

diff --git a/README b/README
index 55ca92af65f8f591ff528bf86c4b5133825ebc07..c867c1fa4da84aba9ea96cad3dee461301b798b1 100644 (file)
--- a/README
+++ b/README
@@ -11,7 +11,7 @@ To build your own firmware you need a Linux, BSD or MacOSX system (case
 sensitive filesystem required). Cygwin is unsupported because of the lack
 of a case sensitive file system.
 
 sensitive filesystem required). Cygwin is unsupported because of the lack
 of a case sensitive file system.
 
-You need gcc, binutils, bzip2, flex, python, perl, make, find, grep, diff,
+You need gcc, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
 unzip, gawk, getopt, subversion, libz-dev and libc headers installed.
 
 1. Run "./scripts/feeds update -a" to obtain all the latest package definitions
 unzip, gawk, getopt, subversion, libz-dev and libc headers installed.
 
 1. Run "./scripts/feeds update -a" to obtain all the latest package definitions
index f7da916f648c5c67f73938308fe2df26177204bb..c52ca719087caed3a7281b4d98cc325997ad28db 100644 (file)
@@ -141,10 +141,17 @@ $(eval $(call SetupHostCommand,wget,Please install GNU 'wget', \
 $(eval $(call SetupHostCommand,perl,Please install Perl 5.x, \
        perl --version | grep "perl.*v5"))
 
 $(eval $(call SetupHostCommand,perl,Please install Perl 5.x, \
        perl --version | grep "perl.*v5"))
 
-$(eval $(call SetupHostCommand,python,Please install Python 2.x, \
-       python2.7 -V 2>&1 | grep Python, \
-       python2 -V 2>&1 | grep Python, \
-       python -V 2>&1 | grep Python))
+$(eval $(call SetupHostCommand,python,Please install Python >= 3.5, \
+       python3.7 -V 2>&1 | grep -E 'Python 3\.[5-9]\.?', \
+       python3.6 -V 2>&1 | grep -E 'Python 3\.[5-9]\.?', \
+       python3.5 -V 2>&1 | grep -E 'Python 3\.[5-9]\.?', \
+       python3 -V 2>&1 | grep -E 'Python 3\.[5-9]\.?'))
+
+$(eval $(call SetupHostCommand,python3,Please install Python >= 3.5, \
+       python3.7 -V 2>&1 | grep -E 'Python 3\.[5-9]\.?', \
+       python3.6 -V 2>&1 | grep -E 'Python 3\.[5-9]\.?', \
+       python3.5 -V 2>&1 | grep -E 'Python 3\.[5-9]\.?', \
+       python3 -V 2>&1 | grep -E 'Python 3\.[5-9]\.?'))
 
 $(eval $(call SetupHostCommand,git,Please install Git (git-core) >= 1.7.12.2, \
        git --exec-path | xargs -I % -- grep -q -- --recursive %/git-submodule))
 
 $(eval $(call SetupHostCommand,git,Please install Git (git-core) >= 1.7.12.2, \
        git --exec-path | xargs -I % -- grep -q -- --recursive %/git-submodule))