[OpenWrt-Devel] [PATCH 5/6] build: switch to Python 3

Y.b. Lu yangbo.lu at nxp.com
Tue Jun 18 23:20:43 EDT 2019


Hi Petr,

> -----Original Message-----
> From: Petr Štetiar <ynezz at true.cz>
> Sent: 2019年6月18日 4:09
> To: openwrt-devel at lists.openwrt.org
> Cc: Petr Štetiar <ynezz at true.cz>; Y.b. Lu <yangbo.lu at nxp.com>; Mathew
> McBride <matt at traverse.com.au>
> Subject: [PATCH 5/6] build: switch to Python 3
> 
> 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.

[Y.b. Lu] I created a pull request for ls-rcw to convert to python3. I compared the binaries generated with python2 and python3. Looked good.
Please help to review or cherry-pick if you need.
https://github.com/openwrt/openwrt/pull/2149


> 
> Run tested on ath79 (Archer C7 v5), ipq40xx (nbg6617) and x86_64 (QEMU
> and apu2).
> 
> 1.
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.p
> ython.org%2Fdev%2Fpeps%2Fpep-0373%2F&data=02%7C01%7Cyangbo.
> lu%40nxp.com%7C8ea4f054b5be452b1f8808d6f35fa7af%7C686ea1d3bc2b4c
> 6fa92cd99c5c301635%7C0%7C1%7C636963989493552800&sdata=mnt
> xb7ox6zgB2n%2B%2Fe07n%2Blhq%2FLqVAxaSgvTzCfb6YvE%3D&reserve
> d=0
> 
> Ref: PR#1937
> Cc: Yangbo Lu <yangbo.lu at nxp.com>
> Cc: Mathew McBride <matt at traverse.com.au>
> Signed-off-by: Petr Štetiar <ynezz at true.cz>
> ---
>  README                  |  2 +-
>  include/prereq-build.mk | 15 +++++++++++----
>  2 files changed, 12 insertions(+), 5 deletions(-)
> 
> diff --git a/README b/README
> index 55ca92af65f8..c867c1fa4da8 100644
> --- 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.
> 
> -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
> diff --git a/include/prereq-build.mk b/include/prereq-build.mk index
> f7da916f648c..c52ca719087c 100644
> --- a/include/prereq-build.mk
> +++ b/include/prereq-build.mk
> @@ -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,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))
> --
> 1.9.1

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list