[Buildroot] [PATCH 2/2] python3: bump to 3.5.1

Christophe Vu-Brugier cvubrugier at fastmail.fm
Wed Jan 6 08:34:56 UTC 2016


Hi Thomas,

On Mon,  4 Jan 2016 19:23:29 +0100, Thomas Petazzoni wrote :
> The major changes in terms of Buildroot packaging are:
> 
>  - Due to PEP488, Python no longer generates .pyc (unoptimized) and
>    .pyo (optimized) byte-code files. Instead, it generates <foo>.pyc,
>    <foo>.opt-1.pyc and <foo>.opt-2.pyc. Therefore, we removed the
>    --disable-pyo-build option and kept only the --disable-pyc-build
>    option, which completely disables building all .pyc files.
> 
>  - The PEP3147 disabling patch had to be significantly reworked due to
>    the code having changed heavily. The code was moved into a
>    _bootstrap_external.py, which is a "frozen" Python module, i.e a
>    module generated into a .h file at compile time using the
>    _freeze_importlib program.
> 
>  - Due to the above, we now need to regenerate importlib.h at build
>    time. Unfortunately, for the target Python _freeze_importlib is
>    built for the target, so we can't run it on the build machine. To
>    fix this, we copy the _freeze_importlib program from the
>    host-python in $(HOST_DIR), and then patch the target python to use
>    it. Since the same solution can be used for 'pgen', we do it, and
>    avoid having to touch the graminit.{c,h} files.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ---
> Ultimately, we will want to only keep a certain subset of the .pyc
> files. Ideally, keeping only the <foo>.opt-2.pyc file would be the
> ideal option (to save space). However, you can't remove the <foo>.pyc,
> otherwise the <foo>.opt-2.pyc are not usable anymore. For now, we keep
> all .pyc files.
> 
> Note: I'd like to have the review from Christophe Vu-Brugier on this
> patch, especially on the PEP3147 handling, which was changed quite a
> bit in Python 3.5. I did test Christophe use-case of kmod's python
> module, and it does import properly, but double checking would be
> good.

I tested your patches on armv5 and armv7 and can report they work fine.
I also reviewed "0016-Add-importlib-fix-for-PEP-3147-issue.patch" and
it looks great.

Tested-by: Christophe Vu-Brugier <cvubrugier at fastmail.fm>


> ---
>  ...up.py-do-not-add-invalid-header-locations.patch |  6 +-
>  ...the-install-location-of-_sysconfigdata.py.patch | 18 ++---
>  ...he-build-of-pyc-and-pyo-files-conditional.patch | 78 ----------------------
>  ...3-Make-the-build-of-pyc-files-conditional.patch | 54 +++++++++++++++
>  ...gy_getaddrinfo-configure-test-when-cross-.patch |  6 +-
>  ...ructure-to-disable-the-build-of-certain-e.patch | 18 ++---
>  ...006-distutils-sysconfig-use-sysconfigdata.patch |  6 +-
>  ...ibrary-header-paths-for-cross-compilation.patch | 12 ++--
>  ...n-t-look-in-usr-lib-termcap-for-libraries.patch |  6 +-
>  .../python3/0009-Don-t-add-multiarch-paths.patch   |  6 +-
>  .../0010-Abort-on-failed-module-build.patch        | 10 +--
>  package/python3/0011-Serial-ioctl-workaround.patch |  2 +-
>  ...st-the-shebang-of-Python-scripts-for-cros.patch |  2 +-
>  ...-config.sh.in-ensure-sed-invocations-only.patch |  6 +-
>  ...-harcode-invalid-path-to-ncursesw-headers.patch |  6 +-
>  ...stem-locale-and-set-to-default-when-addin.patch |  6 +-
>  ...0016-Add-importlib-fix-for-PEP-3147-issue.patch | 69 +++++++++++--------
>  ...on-to-disable-installation-of-test-module.patch | 16 ++---
>  .../0018-Add-an-option-to-disable-pydoc.patch      | 20 +++---
>  .../0019-Add-an-option-to-disable-lib2to3.patch    | 22 +++---
>  ...-Add-option-to-disable-the-sqlite3-module.patch | 14 ++--
>  ...21-Add-an-option-to-disable-the-tk-module.patch | 18 ++---
>  ...dd-an-option-to-disable-the-curses-module.patch | 12 ++--
>  .../0023-Add-an-option-to-disable-expat.patch      | 16 ++---
>  .../0024-Add-an-option-to-disable-CJK-codecs.patch |  6 +-
>  .../0025-Add-an-option-to-disable-NIS.patch        |  6 +-
>  ...0026-Add-an-option-to-disable-unicodedata.patch |  6 +-
>  .../0027-Add-an-option-to-disable-IDLE.patch       | 18 ++---
>  .../0028-Add-an-option-to-disable-decimal.patch    | 10 +--
>  ...-option-to-disable-the-ossaudiodev-module.patch |  6 +-
>  ...N_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch | 62 +++++++++++++++++
>  package/python3/python3.hash                       |  6 +-
>  package/python3/python3.mk                         | 34 +++++-----
>  33 files changed, 317 insertions(+), 266 deletions(-)
>  delete mode 100644 package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch
>  create mode 100644 package/python3/0003-Make-the-build-of-pyc-files-conditional.patch
>  create mode 100644 package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch
> 
> diff --git a/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch b/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch
> index 3fafd90..defaad9 100644
> --- a/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch
> +++ b/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch
> @@ -1,4 +1,4 @@
> -From 03a4c313f42ea1bbdfc4c64a285b3930766c2b23 Mon Sep 17 00:00:00 2001
> +From d6093bad6c700312ff7ff4a7bb15c815dda6f46b Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:28:34 +0100
>  Subject: [PATCH] setup.py: do not add invalid header locations
> @@ -28,10 +28,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 2 insertions(+), 1 deletion(-)
>  
>  diff --git a/setup.py b/setup.py
> -index 2779658..d3bf8e5 100644
> +index da67731..dbd2a3c 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -493,7 +493,8 @@ class PyBuildExt(build_ext):
> +@@ -511,7 +511,8 @@ class PyBuildExt(build_ext):
>                           add_dir_to_list(dir_list, directory)
>   
>           if os.path.normpath(sys.base_prefix) != '/usr' \
> diff --git a/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch b/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch
> index 57b55fb..8e930ab 100644
> --- a/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch
> +++ b/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch
> @@ -1,4 +1,4 @@
> -From 2f706a2ba92c88f1c8288e34d1937b6ba0e0214c Mon Sep 17 00:00:00 2001
> +From 4ac038d30ec71b3f223ac7c91613856dd82b6347 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:29:04 +0100
>  Subject: [PATCH] Change the install location of _sysconfigdata.py
> @@ -25,10 +25,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   2 files changed, 11 insertions(+), 3 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index 76aef28..58dab28 100644
> +index 823def3..4d2a061 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -559,6 +559,9 @@ pybuilddir.txt: $(BUILDPYTHON)
> +@@ -585,6 +585,9 @@ pybuilddir.txt: $(BUILDPYTHON)
>   		rm -f ./pybuilddir.txt ; \
>   		exit 1 ; \
>   	fi
> @@ -38,7 +38,7 @@ index 76aef28..58dab28 100644
>   
>   # Build the shared modules
>   # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
> -@@ -1197,7 +1200,7 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
> +@@ -1235,7 +1238,7 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
>   		else	true; \
>   		fi; \
>   	done
> @@ -47,7 +47,7 @@ index 76aef28..58dab28 100644
>   	do \
>   		if test -x $$i; then \
>   			$(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
> -@@ -1207,6 +1210,11 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
> +@@ -1245,6 +1248,11 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
>   			echo $(INSTALL_DATA) $$i $(LIBDEST); \
>   		fi; \
>   	done
> @@ -59,17 +59,17 @@ index 76aef28..58dab28 100644
>   	@for d in $(LIBSUBDIRS); \
>   	do \
>   		a=$(srcdir)/Lib/$$d; \
> -@@ -1533,7 +1541,7 @@ clean: pycremoval
> +@@ -1580,7 +1588,7 @@ clean: pycremoval
>   	find build -name 'fficonfig.h' -exec rm -f {} ';' || true
>   	find build -name '*.py' -exec rm -f {} ';' || true
>   	find build -name '*.py[co]' -exec rm -f {} ';' || true
>  -	-rm -f pybuilddir.txt
>  +	-rm -f pybuilddir.txt pysysconfigdatadir.txt
>   	-rm -f Lib/lib2to3/*Grammar*.pickle
> - 	-rm -f Modules/_testembed Modules/_freeze_importlib
> - 
> + 	-rm -f Programs/_testembed Programs/_freeze_importlib
> + 	-rm -rf build
>  diff --git a/configure.ac b/configure.ac
> -index a0d0afa..7b491b4 100644
> +index 694293e..76b70a0 100644
>  --- a/configure.ac
>  +++ b/configure.ac
>  @@ -70,7 +70,7 @@ if test "$cross_compiling" = yes; then
> diff --git a/package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch b/package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch
> deleted file mode 100644
> index 03684af..0000000
> --- a/package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch
> +++ /dev/null
> @@ -1,78 +0,0 @@
> -From 7c5338161263c290f18b1ff90859084d314be98c Mon Sep 17 00:00:00 2001
> -From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> -Date: Wed, 23 Dec 2015 11:29:35 +0100
> -Subject: [PATCH] Make the build of pyc and pyo files conditional
> -
> -This commit adds two new configure options: --disable-pyc-build and
> ---disable-pyo-build to disable the compilation of pyc and pyo files
> -respectively.
> -
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ----
> - Makefile.pre.in |  8 ++++++++
> - configure.ac    | 12 ++++++++++++
> - 2 files changed, 20 insertions(+)
> -
> -diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index 58dab28..f1bdd99 100644
> ---- a/Makefile.pre.in
> -+++ b/Makefile.pre.in
> -@@ -1245,24 +1245,32 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
> - 		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
> - 			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
> - 	fi
> -+ifeq (@PYC_BUILD@,yes)
> - 	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
> - 		$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
> - 		-d $(LIBDEST) -f \
> - 		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
> - 		$(DESTDIR)$(LIBDEST)
> -+endif
> -+ifeq (@PYO_BUILD@,yes)
> - 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> - 		$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
> - 		-d $(LIBDEST) -f \
> - 		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
> - 		$(DESTDIR)$(LIBDEST)
> -+endif
> -+ifeq (@PYC_BUILD@,yes)
> - 	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
> - 		$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
> - 		-d $(LIBDEST)/site-packages -f \
> - 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
> -+endif
> -+ifeq (@PYO_BUILD@,yes)
> - 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> - 		$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
> - 		-d $(LIBDEST)/site-packages -f \
> - 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
> -+endif
> - 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> - 		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
> - 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> -diff --git a/configure.ac b/configure.ac
> -index 7b491b4..f2c4705 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -922,6 +922,18 @@ fi
> - 
> - AC_MSG_CHECKING(LDLIBRARY)
> - 
> -+AC_SUBST(PYC_BUILD)
> -+
> -+AC_ARG_ENABLE(pyc-build,
> -+	AS_HELP_STRING([--disable-pyc-build], [disable build of pyc files]),
> -+	[ PYC_BUILD="${enableval}" ], [ PYC_BUILD=yes ])
> -+
> -+AC_SUBST(PYO_BUILD)
> -+
> -+AC_ARG_ENABLE(pyo-build,
> -+	AS_HELP_STRING([--disable-pyo-build], [disable build of pyo files]),
> -+	[ PYO_BUILD="${enableval}" ], [ PYO_BUILD=yes ])
> -+
> - # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
> - # library that we build, but we do not want to link against it (we
> - # will find it with a -framework option). For this reason there is an
> --- 
> -2.6.4
> -
> diff --git a/package/python3/0003-Make-the-build-of-pyc-files-conditional.patch b/package/python3/0003-Make-the-build-of-pyc-files-conditional.patch
> new file mode 100644
> index 0000000..3251da5
> --- /dev/null
> +++ b/package/python3/0003-Make-the-build-of-pyc-files-conditional.patch
> @@ -0,0 +1,54 @@
> +From 28f81597314ea3ed03935b519453a55cf6c3c20d Mon Sep 17 00:00:00 2001
> +From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> +Date: Wed, 23 Dec 2015 11:29:35 +0100
> +Subject: [PATCH] Make the build of pyc files conditional
> +
> +This commit adds a new configure option --disable-pyc-build to disable
> +the compilation of pyc.
> +
> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> +---
> + Makefile.pre.in | 2 ++
> + configure.ac    | 6 ++++++
> + 2 files changed, 8 insertions(+)
> +
> +diff --git a/Makefile.pre.in b/Makefile.pre.in
> +index 4d2a061..272f312 100644
> +--- a/Makefile.pre.in
> ++++ b/Makefile.pre.in
> +@@ -1283,6 +1283,7 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
> + 		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
> + 			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
> + 	fi
> ++ifeq (@PYC_BUILD@,yes)
> + 	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
> + 		$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
> + 		-d $(LIBDEST) -f \
> +@@ -1310,6 +1311,7 @@ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
> + 		$(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
> + 		-d $(LIBDEST)/site-packages -f \
> + 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
> ++endif
> + 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> + 		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
> + 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
> +diff --git a/configure.ac b/configure.ac
> +index 76b70a0..66d4642 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -1056,6 +1056,12 @@ fi
> + 
> + AC_MSG_CHECKING(LDLIBRARY)
> + 
> ++AC_SUBST(PYC_BUILD)
> ++
> ++AC_ARG_ENABLE(pyc-build,
> ++	AS_HELP_STRING([--disable-pyc-build], [disable build of pyc files]),
> ++	[ PYC_BUILD="${enableval}" ], [ PYC_BUILD=yes ])
> ++
> + # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
> + # library that we build, but we do not want to link against it (we
> + # will find it with a -framework option). For this reason there is an
> +-- 
> +2.6.4
> +
> diff --git a/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch b/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch
> index da2a65b..183d6b3 100644
> --- a/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch
> +++ b/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch
> @@ -1,4 +1,4 @@
> -From ef95d6a49f17522ed120def8093fa2fc0b86cbc8 Mon Sep 17 00:00:00 2001
> +From 093caf46b7a742ee2f7bcf617a915ac1653aa8ac Mon Sep 17 00:00:00 2001
>  From: Vanya Sergeev <vsergeev at gmail.com>
>  Date: Wed, 23 Dec 2015 11:30:33 +0100
>  Subject: [PATCH] Disable buggy_getaddrinfo configure test when cross-compiling
> @@ -10,10 +10,10 @@ Signed-off-by: Vanya Sergeev <vsergeev at gmail.com>
>   1 file changed, 1 insertion(+), 1 deletion(-)
>  
>  diff --git a/configure.ac b/configure.ac
> -index f2c4705..6342b81 100644
> +index 66d4642..c492594 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -3415,7 +3415,7 @@ fi
> +@@ -3662,7 +3662,7 @@ fi
>   
>   AC_MSG_RESULT($ac_cv_buggy_getaddrinfo)
>   
> diff --git a/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch b/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch
> index 4a32bb1..76a553b 100644
> --- a/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch
> +++ b/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch
> @@ -1,4 +1,4 @@
> -From 9eb1076b61e83647028a2f6b665b6f9afcb793b0 Mon Sep 17 00:00:00 2001
> +From 3a9f4aa255909ed152883eee787313efd20dbc58 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:31:08 +0100
>  Subject: [PATCH] Add infrastructure to disable the build of certain extensions
> @@ -42,10 +42,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   3 files changed, 11 insertions(+), 2 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index f1bdd99..e0f9e0f 100644
> +index 272f312..9420860 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -177,6 +177,8 @@ FILEMODE=	644
> +@@ -182,6 +182,8 @@ FILEMODE=	644
>   # configure script arguments
>   CONFIG_ARGS=	@CONFIG_ARGS@
>   
> @@ -54,7 +54,7 @@ index f1bdd99..e0f9e0f 100644
>   
>   # Subdirectories with code
>   SRCDIRS= 	@SRCDIRS@
> -@@ -574,6 +576,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt
> +@@ -600,6 +602,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt
>   	esac; \
>   	$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
>   		_TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
> @@ -62,7 +62,7 @@ index f1bdd99..e0f9e0f 100644
>   		$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
>   
>   # Build static library
> -@@ -1384,7 +1387,8 @@ libainstall:	all python-config
> +@@ -1425,7 +1428,8 @@ libainstall:	all python-config
>   # Install the dynamically loadable modules
>   # This goes into $(exec_prefix)
>   sharedinstall: sharedmods
> @@ -73,10 +73,10 @@ index f1bdd99..e0f9e0f 100644
>   		--install-scripts=$(BINDIR) \
>   		--install-platlib=$(DESTSHARED) \
>  diff --git a/configure.ac b/configure.ac
> -index 6342b81..a3026b8 100644
> +index c492594..bfb599e 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2352,6 +2352,8 @@ LIBS="$withval $LIBS"
> +@@ -2588,6 +2588,8 @@ LIBS="$withval $LIBS"
>   
>   PKG_PROG_PKG_CONFIG
>   
> @@ -86,10 +86,10 @@ index 6342b81..a3026b8 100644
>   AC_MSG_CHECKING(for --with-system-expat)
>   AC_ARG_WITH(system_expat,
>  diff --git a/setup.py b/setup.py
> -index d3bf8e5..2a504d2 100644
> +index dbd2a3c..1ebfa50 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -39,7 +39,10 @@ host_platform = get_platform()
> +@@ -44,7 +44,10 @@ host_platform = get_platform()
>   COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS"))
>   
>   # This global variable is used to hold the list of modules to be disabled.
> diff --git a/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch b/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch
> index dcf32d6..b3e41b1 100644
> --- a/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch
> +++ b/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch
> @@ -1,4 +1,4 @@
> -From bdb9cccdc2993e43af1e57ad3b8b0055bab64ba0 Mon Sep 17 00:00:00 2001
> +From 7c560d917ee0e536c76fac275d1cb0b6136269ab Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:32:23 +0100
>  Subject: [PATCH] distutils/sysconfig: use sysconfigdata
> @@ -12,10 +12,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 4 insertions(+), 33 deletions(-)
>  
>  diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
> -index a1452fe..1df20ad 100644
> +index 573724d..721edec 100644
>  --- a/Lib/distutils/sysconfig.py
>  +++ b/Lib/distutils/sysconfig.py
> -@@ -423,40 +423,11 @@ def expand_makefile_vars(s, vars):
> +@@ -414,40 +414,11 @@ def expand_makefile_vars(s, vars):
>   _config_vars = None
>   
>   def _init_posix():
> diff --git a/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch b/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch
> index 59d4ccd..9ac65ba 100644
> --- a/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch
> +++ b/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch
> @@ -1,4 +1,4 @@
> -From 678143ce6161379a3eebc20db6634f0c247f8605 Mon Sep 17 00:00:00 2001
> +From e634929f76a45f5b683dc19bc01efed2ab83e19e Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:33:14 +0100
>  Subject: [PATCH] Adjust library/header paths for cross-compilation
> @@ -21,10 +21,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   2 files changed, 15 insertions(+), 5 deletions(-)
>  
>  diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
> -index acbe648..494a8c9 100644
> +index d4cb11e..e7a0ba9 100644
>  --- a/Lib/distutils/command/build_ext.py
>  +++ b/Lib/distutils/command/build_ext.py
> -@@ -239,7 +239,10 @@ class build_ext(Command):
> +@@ -232,7 +232,10 @@ class build_ext(Command):
>           if (sysconfig.get_config_var('Py_ENABLE_SHARED')):
>               if not sysconfig.python_build:
>                   # building third party extensions
> @@ -37,10 +37,10 @@ index acbe648..494a8c9 100644
>                   # building python standard extensions
>                   self.library_dirs.append('.')
>  diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
> -index 1df20ad..905d280 100644
> +index 721edec..d20e2d8 100644
>  --- a/Lib/distutils/sysconfig.py
>  +++ b/Lib/distutils/sysconfig.py
> -@@ -16,10 +16,17 @@ import sys
> +@@ -17,10 +17,17 @@ import sys
>   from .errors import DistutilsPlatformError
>   
>   # These are needed in a couple of spots, so just compute them once.
> @@ -61,7 +61,7 @@ index 1df20ad..905d280 100644
>  +    BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
>   
>   # Path to the base directory of the project. On Windows the binary may
> - # live in project/PCBuild9.  If we're dealing with an x64 Windows build,
> + # live in project/PCBuild/win32 or project/PCBuild/amd64.
>  -- 
>  2.6.4
>  
> diff --git a/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch b/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch
> index 19a76cf..47a0b83 100644
> --- a/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch
> +++ b/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch
> @@ -1,4 +1,4 @@
> -From 3ef1e30b88c4166f22220812b68e14f39f7ed15b Mon Sep 17 00:00:00 2001
> +From d7c568632f7cb83346096ea114a06f89a0b488d6 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:36:00 +0100
>  Subject: [PATCH] Don't look in /usr/lib/termcap for libraries
> @@ -9,10 +9,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 1 insertion(+), 4 deletions(-)
>  
>  diff --git a/setup.py b/setup.py
> -index 2a504d2..acc4ad0 100644
> +index 1ebfa50..24a7153 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -733,12 +733,9 @@ class PyBuildExt(build_ext):
> +@@ -753,12 +753,9 @@ class PyBuildExt(build_ext):
>                   pass # Issue 7384: Already linked against curses or tinfo.
>               elif curses_library:
>                   readline_libs.append(curses_library)
> diff --git a/package/python3/0009-Don-t-add-multiarch-paths.patch b/package/python3/0009-Don-t-add-multiarch-paths.patch
> index 693ab6a..921e25c 100644
> --- a/package/python3/0009-Don-t-add-multiarch-paths.patch
> +++ b/package/python3/0009-Don-t-add-multiarch-paths.patch
> @@ -1,4 +1,4 @@
> -From b910b3a6e61afcaa6f77b533a5cb4290c528f439 Mon Sep 17 00:00:00 2001
> +From bac5ac529cc0902a340a5cd03308433c6e80d1f6 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:36:27 +0100
>  Subject: [PATCH] Don't add multiarch paths
> @@ -17,10 +17,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 1 insertion(+), 1 deletion(-)
>  
>  diff --git a/setup.py b/setup.py
> -index acc4ad0..eab709e 100644
> +index 24a7153..8380a64 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -456,10 +456,10 @@ class PyBuildExt(build_ext):
> +@@ -474,10 +474,10 @@ class PyBuildExt(build_ext):
>           if not cross_compiling:
>               add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
>               add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
> diff --git a/package/python3/0010-Abort-on-failed-module-build.patch b/package/python3/0010-Abort-on-failed-module-build.patch
> index d2e9822..131354b 100644
> --- a/package/python3/0010-Abort-on-failed-module-build.patch
> +++ b/package/python3/0010-Abort-on-failed-module-build.patch
> @@ -1,4 +1,4 @@
> -From 420e08fc9e77b650d11ce420f85257ce1710b70d Mon Sep 17 00:00:00 2001
> +From 86ef08e36597e14cac06aef176f12375a27fdef5 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:43:24 +0100
>  Subject: [PATCH] Abort on failed module build
> @@ -14,17 +14,17 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 1 insertion(+)
>  
>  diff --git a/setup.py b/setup.py
> -index eab709e..86758ce 100644
> +index 8380a64..15b39f5 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -284,6 +284,7 @@ class PyBuildExt(build_ext):
> +@@ -296,6 +296,7 @@ class PyBuildExt(build_ext):
>               print("Failed to build these modules:")
>               print_three_column(failed)
>               print()
>  +            sys.exit(1)
>   
> -     def build_extension(self, ext):
> - 
> +         if self.failed_on_import:
> +             failed = self.failed_on_import[:]
>  -- 
>  2.6.4
>  
> diff --git a/package/python3/0011-Serial-ioctl-workaround.patch b/package/python3/0011-Serial-ioctl-workaround.patch
> index f1db62b..9e7d79c 100644
> --- a/package/python3/0011-Serial-ioctl-workaround.patch
> +++ b/package/python3/0011-Serial-ioctl-workaround.patch
> @@ -1,4 +1,4 @@
> -From f67b0073a30eb83d42a2ead0a62020dfe5db8d1e Mon Sep 17 00:00:00 2001
> +From ace3ebd517ea0ac42208b6a06c7e8f82da3b9c1b Mon Sep 17 00:00:00 2001
>  From: Baruch Siach <baruch at tkos.co.il>
>  Date: Wed, 23 Dec 2015 11:44:02 +0100
>  Subject: [PATCH] Serial ioctl() workaround
> diff --git a/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch b/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch
> index e4fbf4e..2e50c1b 100644
> --- a/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch
> +++ b/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch
> @@ -1,4 +1,4 @@
> -From 2cac07af643d989b352cccc3b96d86ed269df9b1 Mon Sep 17 00:00:00 2001
> +From 45f482813de828415906e6a416c9c35450c38da7 Mon Sep 17 00:00:00 2001
>  From: Christophe Vu-Brugier <cvubrugier at fastmail.fm>
>  Date: Wed, 23 Dec 2015 11:44:30 +0100
>  Subject: [PATCH] Do not adjust the shebang of Python scripts for
> diff --git a/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch b/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch
> index f9c7225..872f040 100644
> --- a/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch
> +++ b/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch
> @@ -1,4 +1,4 @@
> -From 4c0893221e2978854174806f7e14f7643eea32e7 Mon Sep 17 00:00:00 2001
> +From 5858abdc25acd522869103d64b60a0c9687e2ec1 Mon Sep 17 00:00:00 2001
>  From: Peter Korsgaard <peter at korsgaard.com>
>  Date: Thu, 20 Nov 2014 13:24:59 +0100
>  Subject: [PATCH] Misc/python-config.sh.in: ensure sed invocations only match
> @@ -25,7 +25,7 @@ Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
>   1 file changed, 6 insertions(+), 6 deletions(-)
>  
>  diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in
> -index 64c81e5..f75eec5 100644
> +index 30c6927..f905a71 100644
>  --- a/Misc/python-config.sh.in
>  +++ b/Misc/python-config.sh.in
>  @@ -29,12 +29,12 @@ prefix_real=$(installed_prefix "$0")
> @@ -52,7 +52,7 @@ index 64c81e5..f75eec5 100644
>   LIBDEST=${prefix}/lib/python${VERSION}
>  -LIBPL=$(echo "@LIBPL@" | sed "s#$prefix_build#$prefix_real#")
>  +LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#")
> - SO="@SO@"
> + SO="@EXT_SUFFIX@"
>   PYTHONFRAMEWORK="@PYTHONFRAMEWORK@"
>   INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
>  -- 
> diff --git a/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch b/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch
> index 4a64427..f11d946 100644
> --- a/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch
> +++ b/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch
> @@ -1,4 +1,4 @@
> -From a87f08318cf40a27d41957dcc7312c3b3083ba86 Mon Sep 17 00:00:00 2001
> +From be44636b36086ca1b6de24265b7c3cc0c2bae913 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:45:13 +0100
>  Subject: [PATCH] Do not harcode invalid path to ncursesw headers
> @@ -14,10 +14,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 1 deletion(-)
>  
>  diff --git a/setup.py b/setup.py
> -index 86758ce..565c304 100644
> +index 15b39f5..9e08e7e 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -1276,7 +1276,6 @@ class PyBuildExt(build_ext):
> +@@ -1296,7 +1296,6 @@ class PyBuildExt(build_ext):
>           panel_library = 'panel'
>           if curses_library == 'ncursesw':
>               curses_defines.append(('HAVE_NCURSESW', '1'))
> diff --git a/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch b/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch
> index e358e44..22af71d 100644
> --- a/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch
> +++ b/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch
> @@ -1,4 +1,4 @@
> -From 807357dc50a5a97016ce22646b5eb6a5b64a1a5d Mon Sep 17 00:00:00 2001
> +From 46fda6fc83500bf5663397f9d28b618e6b6b20c1 Mon Sep 17 00:00:00 2001
>  From: Samuel Cabrero <samuelcabrero at gmail.com>
>  Date: Wed, 23 Dec 2015 11:45:48 +0100
>  Subject: [PATCH] Override system locale and set to default when adding gcc
> @@ -20,10 +20,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 1 insertion(+), 1 deletion(-)
>  
>  diff --git a/setup.py b/setup.py
> -index 565c304..8966779 100644
> +index 9e08e7e..3feca04 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -423,7 +423,7 @@ class PyBuildExt(build_ext):
> +@@ -441,7 +441,7 @@ class PyBuildExt(build_ext):
>           tmpfile = os.path.join(self.build_temp, 'gccpaths')
>           if not os.path.exists(self.build_temp):
>               os.makedirs(self.build_temp)
> diff --git a/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch b/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch
> index 02f1d16..54a0b87 100644
> --- a/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch
> +++ b/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch
> @@ -1,4 +1,4 @@
> -From 1153f503a38daf6388021575f1ad6ce8b702911b Mon Sep 17 00:00:00 2001
> +From d2b5be9a0627e38d2280ef865dab3e74b7d2bde4 Mon Sep 17 00:00:00 2001
>  From: Christophe Vu-Brugier <cvubrugier at fastmail.fm>
>  Date: Wed, 23 Dec 2015 11:46:14 +0100
>  Subject: [PATCH] Add importlib fix for PEP 3147 issue
> @@ -19,44 +19,51 @@ This effectively disables PEP 3147 for:
>  
>  Signed-off-by: Christophe Vu-Brugier <cvubrugier at fastmail.fm>
>  ---
> - Lib/importlib/_bootstrap.py | 26 +++++---------------------
> - 1 file changed, 5 insertions(+), 21 deletions(-)
> + Lib/importlib/_bootstrap_external.py | 37 +++++-------------------------------
> + 1 file changed, 5 insertions(+), 32 deletions(-)
>  
> -diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
> -index 5b91c05..a1755ec 100644
> ---- a/Lib/importlib/_bootstrap.py
> -+++ b/Lib/importlib/_bootstrap.py
> -@@ -444,8 +444,6 @@ def cache_from_source(path, debug_override=None):
> -     If debug_override is not None, then it must be a boolean and is used in
> -     place of sys.flags.optimize.
> +diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
> +index 616b17f..e30129c 100644
> +--- a/Lib/importlib/_bootstrap_external.py
> ++++ b/Lib/importlib/_bootstrap_external.py
> +@@ -255,8 +255,6 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
> +     a True value is the same as setting 'optimization' to the empty string
> +     while a False value is equivalent to setting 'optimization' to '1'.
>   
>  -    If sys.implementation.cache_tag is None then NotImplementedError is raised.
>  -
>       """
> -     debug = not sys.flags.optimize if debug_override is None else debug_override
> -     if debug:
> -@@ -454,33 +452,19 @@ def cache_from_source(path, debug_override=None):
> -         suffixes = OPTIMIZED_BYTECODE_SUFFIXES
> +     if debug_override is not None:
> +         _warnings.warn('the debug_override parameter is deprecated; use '
> +@@ -267,10 +265,7 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
> +         optimization = '' if debug_override else 1
>       head, tail = _path_split(path)
>       base, sep, rest = tail.rpartition('.')
>  -    tag = sys.implementation.cache_tag
>  -    if tag is None:
>  -        raise NotImplementedError('sys.implementation.cache_tag is None')
> --    filename = ''.join([(base if base else rest), sep, tag, suffixes[0]])
> --    return _path_join(head, _PYCACHE, filename)
> -+    filename = ''.join([(base if base else rest), suffixes[0]])
> -+    return _path_join(head, filename)
> +-    almost_filename = ''.join([(base if base else rest), sep, tag])
> ++    almost_filename = ''.join([(base if base else rest)])
> +     if optimization is None:
> +         if sys.flags.optimize == 0:
> +             optimization = ''
> +@@ -281,39 +276,17 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
> +         if not optimization.isalnum():
> +             raise ValueError('{!r} is not alphanumeric'.format(optimization))
> +         almost_filename = '{}.{}{}'.format(almost_filename, _OPT, optimization)
> +-    return _path_join(head, _PYCACHE, almost_filename + BYTECODE_SUFFIXES[0])
> ++    return _path_join(head, almost_filename + BYTECODE_SUFFIXES[0])
>   
>   
>   def source_from_cache(path):
> -     """Given the path to a .pyc./.pyo file, return the path to its .py file.
> +     """Given the path to a .pyc. file, return the path to its .py file.
>   
> -     The .pyc/.pyo file does not need to exist; this simply returns the path to
> --    the .py file calculated to correspond to the .pyc/.pyo file.  If path does
> --    not conform to PEP 3147 format, ValueError will be raised. If
> +     The .pyc file does not need to exist; this simply returns the path to
> +-    the .py file calculated to correspond to the .pyc file.  If path does
> +-    not conform to PEP 3147/488 format, ValueError will be raised. If
>  -    sys.implementation.cache_tag is None then NotImplementedError is raised.
> -+    the .py file calculated to correspond to the .pyc/.pyo file.
> - 
> +-
> ++    the .py file calculated to correspond to the .pyc file.
>       """
>  -    if sys.implementation.cache_tag is None:
>  -        raise NotImplementedError('sys.implementation.cache_tag is None')
> @@ -65,9 +72,19 @@ index 5b91c05..a1755ec 100644
>  -    if pycache != _PYCACHE:
>  -        raise ValueError('{} not bottom-level directory in '
>  -                         '{!r}'.format(_PYCACHE, path))
> --    if pycache_filename.count('.') != 2:
> --        raise ValueError('expected only 2 dots in '
> +-    dot_count = pycache_filename.count('.')
> +-    if dot_count not in {2, 3}:
> +-        raise ValueError('expected only 2 or 3 dots in '
>  -                         '{!r}'.format(pycache_filename))
> +-    elif dot_count == 3:
> +-        optimization = pycache_filename.rsplit('.', 2)[-2]
> +-        if not optimization.startswith(_OPT):
> +-            raise ValueError("optimization portion of filename does not start "
> +-                             "with {!r}".format(_OPT))
> +-        opt_level = optimization[len(_OPT):]
> +-        if not opt_level.isalnum():
> +-            raise ValueError("optimization level {!r} is not an alphanumeric "
> +-                             "value".format(optimization))
>  -    base_filename = pycache_filename.partition('.')[0]
>  +    head, filename = _path_split(path)
>  +    base_filename = filename.partition('.')[0]
> diff --git a/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch b/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch
> index 6e0f07c..ee0134a 100644
> --- a/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch
> +++ b/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch
> @@ -1,4 +1,4 @@
> -From 3cdd905ad1ff001713d20b768c001b5299a2e72c Mon Sep 17 00:00:00 2001
> +From 1d2891204c6bf05d5e2eb0e5fa2ee78f6a2b755b Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:47:00 +0100
>  Subject: [PATCH] Add an option to disable installation of test modules
> @@ -14,12 +14,12 @@ Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
>   2 files changed, 42 insertions(+), 20 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index e0f9e0f..12fae84 100644
> +index 9420860..d4c771a 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -1133,8 +1133,30 @@ PLATDIR=	plat-$(MACHDEP)
> - EXTRAPLATDIR= @EXTRAPLATDIR@
> - MACHDEPS=	$(PLATDIR) $(EXTRAPLATDIR)
> +@@ -1166,8 +1166,30 @@ maninstall:	altmaninstall
> + PLATDIR=	@PLATDIR@
> + MACHDEPS=	$(PLATDIR)
>   XMLLIBSUBDIRS=  xml xml/dom xml/etree xml/parsers xml/sax
>  -LIBSUBDIRS=	tkinter tkinter/test tkinter/test/test_tkinter \
>  -		tkinter/test/test_ttk site-packages test \
> @@ -50,7 +50,7 @@ index e0f9e0f..12fae84 100644
>   		test/audiodata \
>   		test/capath test/data \
>   		test/cjkencodings test/decimaltestdata test/xmltestdata \
> -@@ -1161,28 +1183,22 @@ LIBSUBDIRS=	tkinter tkinter/test tkinter/test/test_tkinter \
> +@@ -1199,28 +1221,22 @@ LIBSUBDIRS=	tkinter tkinter/test tkinter/test/test_tkinter \
>   		test/test_importlib/namespace_pkgs/project3/parent/child \
>                   test/test_importlib/namespace_pkgs/module_and_namespace_package \
>                   test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
> @@ -92,10 +92,10 @@ index e0f9e0f..12fae84 100644
>   	@for i in $(SCRIPTDIR) $(LIBDEST); \
>   	do \
>  diff --git a/configure.ac b/configure.ac
> -index a3026b8..b7a8836 100644
> +index bfb599e..9f3d226 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2659,6 +2659,12 @@ if test "$posix_threads" = "yes"; then
> +@@ -2895,6 +2895,12 @@ if test "$posix_threads" = "yes"; then
>   fi
>   
>   
> diff --git a/package/python3/0018-Add-an-option-to-disable-pydoc.patch b/package/python3/0018-Add-an-option-to-disable-pydoc.patch
> index 22f194a..670ad40 100644
> --- a/package/python3/0018-Add-an-option-to-disable-pydoc.patch
> +++ b/package/python3/0018-Add-an-option-to-disable-pydoc.patch
> @@ -1,4 +1,4 @@
> -From 99ef88cb47a396e2c7005e59e50d34e0a60dd3cb Mon Sep 17 00:00:00 2001
> +From a83b79b964700604de386800f86e5a55f53a0e17 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:47:11 +0100
>  Subject: [PATCH] Add an option to disable pydoc
> @@ -15,10 +15,10 @@ Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
>   3 files changed, 19 insertions(+), 3 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index 12fae84..5e2333e 100644
> +index d4c771a..a98ad65 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -1100,7 +1100,9 @@ bininstall: altbininstall
> +@@ -1134,7 +1134,9 @@ bininstall: altbininstall
>   	-rm -f $(DESTDIR)$(BINDIR)/idle3
>   	(cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
>   	-rm -f $(DESTDIR)$(BINDIR)/pydoc3
> @@ -28,7 +28,7 @@ index 12fae84..5e2333e 100644
>   	-rm -f $(DESTDIR)$(BINDIR)/2to3
>   	(cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
>   	-rm -f $(DESTDIR)$(BINDIR)/pyvenv
> -@@ -1151,7 +1153,7 @@ LIBSUBDIRS=	tkinter \
> +@@ -1184,7 +1186,7 @@ LIBSUBDIRS=	tkinter \
>   		multiprocessing multiprocessing/dummy \
>   		unittest \
>   		venv venv/scripts venv/scripts/posix \
> @@ -37,7 +37,7 @@ index 12fae84..5e2333e 100644
>   
>   TESTSUBDIRS = 	tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
>   		test test/test_asyncio \
> -@@ -1195,6 +1197,10 @@ TESTSUBDIRS = 	tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
> +@@ -1233,6 +1235,10 @@ TESTSUBDIRS = 	tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
>   		test/test_importlib/import_ test/test_importlib/source \
>   		unittest/test unittest/test/testmock
>   
> @@ -49,10 +49,10 @@ index 12fae84..5e2333e 100644
>   LIBSUBDIRS += $(TESTSUBDIRS)
>   endif
>  diff --git a/configure.ac b/configure.ac
> -index b7a8836..2e75345 100644
> +index 9f3d226..e9b6d6f 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2658,6 +2658,11 @@ if test "$posix_threads" = "yes"; then
> +@@ -2894,6 +2894,11 @@ if test "$posix_threads" = "yes"; then
>         AC_CHECK_FUNCS(pthread_atfork)
>   fi
>   
> @@ -65,10 +65,10 @@ index b7a8836..2e75345 100644
>   AC_SUBST(TEST_MODULES)
>   
>  diff --git a/setup.py b/setup.py
> -index 8966779..69198db 100644
> +index 3feca04..137911d 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -2200,6 +2200,12 @@ def main():
> +@@ -2220,6 +2220,12 @@ def main():
>       # turn off warnings when deprecated modules are imported
>       import warnings
>       warnings.filterwarnings("ignore",category=DeprecationWarning)
> @@ -81,7 +81,7 @@ index 8966779..69198db 100644
>       setup(# PyPI Metadata (PEP 301)
>             name = "Python",
>             version = sys.version.split()[0],
> -@@ -2224,8 +2230,7 @@ def main():
> +@@ -2244,8 +2250,7 @@ def main():
>             # If you change the scripts installed here, you also need to
>             # check the PyBuildScripts command above, and change the links
>             # created by the bininstall target in Makefile.pre.in
> diff --git a/package/python3/0019-Add-an-option-to-disable-lib2to3.patch b/package/python3/0019-Add-an-option-to-disable-lib2to3.patch
> index 8a22c0f..f0d4770 100644
> --- a/package/python3/0019-Add-an-option-to-disable-lib2to3.patch
> +++ b/package/python3/0019-Add-an-option-to-disable-lib2to3.patch
> @@ -1,4 +1,4 @@
> -From 4d6bc8497ab740ae23a7091ff91dba06a63ba877 Mon Sep 17 00:00:00 2001
> +From 3c877ea9f09913586f87064b7a2b9d2b49cb05aa Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:48:44 +0100
>  Subject: [PATCH] Add an option to disable lib2to3
> @@ -15,10 +15,10 @@ Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
>   3 files changed, 21 insertions(+), 6 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index 5e2333e..6656f48 100644
> +index a98ad65..3823940 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -1104,7 +1104,9 @@ ifeq (@PYDOC@,yes)
> +@@ -1138,7 +1138,9 @@ ifeq (@PYDOC@,yes)
>   	(cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
>   endif
>   	-rm -f $(DESTDIR)$(BINDIR)/2to3
> @@ -28,7 +28,7 @@ index 5e2333e..6656f48 100644
>   	-rm -f $(DESTDIR)$(BINDIR)/pyvenv
>   	(cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv)
>   	if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
> -@@ -1144,7 +1146,6 @@ LIBSUBDIRS=	tkinter \
> +@@ -1177,7 +1179,6 @@ LIBSUBDIRS=	tkinter \
>   		html json http dbm xmlrpc \
>   		sqlite3 \
>   		logging csv wsgiref urllib \
> @@ -36,7 +36,7 @@ index 5e2333e..6656f48 100644
>   		ctypes ctypes/macholib \
>   		idlelib idlelib/Icons \
>   		distutils distutils/command $(XMLLIBSUBDIRS) \
> -@@ -1186,9 +1187,6 @@ TESTSUBDIRS = 	tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
> +@@ -1224,9 +1225,6 @@ TESTSUBDIRS = 	tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
>                   test/test_importlib/namespace_pkgs/module_and_namespace_package \
>                   test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
>   		sqlite3/test \
> @@ -46,7 +46,7 @@ index 5e2333e..6656f48 100644
>   		ctypes/test \
>   		idlelib/idle_test \
>   		distutils/tests \
> -@@ -1201,6 +1199,14 @@ ifeq (@PYDOC@,yes)
> +@@ -1239,6 +1237,14 @@ ifeq (@PYDOC@,yes)
>   LIBSUBDIRS += pydoc_data
>   endif
>   
> @@ -61,7 +61,7 @@ index 5e2333e..6656f48 100644
>   ifeq (@TEST_MODULES@,yes)
>   LIBSUBDIRS += $(TESTSUBDIRS)
>   endif
> -@@ -1296,10 +1302,12 @@ ifeq (@PYO_BUILD@,yes)
> +@@ -1337,10 +1343,12 @@ ifeq (@PYC_BUILD@,yes)
>   		-d $(LIBDEST)/site-packages -f \
>   		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
>   endif
> @@ -75,10 +75,10 @@ index 5e2333e..6656f48 100644
>   # Create the PLATDIR source directory, if one wasn't distributed..
>   $(srcdir)/Lib/$(PLATDIR):
>  diff --git a/configure.ac b/configure.ac
> -index 2e75345..0ed6b17 100644
> +index e9b6d6f..652ad88 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2670,6 +2670,12 @@ AC_ARG_ENABLE(test-modules,
> +@@ -2906,6 +2906,12 @@ AC_ARG_ENABLE(test-modules,
>   	AS_HELP_STRING([--disable-test-modules], [disable test modules]),
>   	[ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
>   
> @@ -92,10 +92,10 @@ index 2e75345..0ed6b17 100644
>   AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
>   AC_MSG_CHECKING([if --enable-ipv6 is specified])
>  diff --git a/setup.py b/setup.py
> -index 69198db..a2bf05a 100644
> +index 137911d..722308b 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -2201,10 +2201,11 @@ def main():
> +@@ -2221,10 +2221,11 @@ def main():
>       import warnings
>       warnings.filterwarnings("ignore",category=DeprecationWarning)
>   
> diff --git a/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch b/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch
> index 26a7b34..2093684 100644
> --- a/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch
> +++ b/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch
> @@ -1,4 +1,4 @@
> -From f218ef22019d4c03427113982edc42beddd05683 Mon Sep 17 00:00:00 2001
> +From 9ae1dce0a2fa01fc3dbc83d8b8c1b56e4b1b162b Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:49:01 +0100
>  Subject: [PATCH] Add option to disable the sqlite3 module
> @@ -11,10 +11,10 @@ Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
>   2 files changed, 14 insertions(+), 2 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index 6656f48..433cac1 100644
> +index 3823940..c822dbd 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -1144,7 +1144,6 @@ LIBSUBDIRS=	tkinter \
> +@@ -1177,7 +1177,6 @@ LIBSUBDIRS=	tkinter \
>   		email email/mime \
>   		ensurepip ensurepip/_bundled \
>   		html json http dbm xmlrpc \
> @@ -22,7 +22,7 @@ index 6656f48..433cac1 100644
>   		logging csv wsgiref urllib \
>   		ctypes ctypes/macholib \
>   		idlelib idlelib/Icons \
> -@@ -1186,7 +1185,6 @@ TESTSUBDIRS = 	tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
> +@@ -1224,7 +1223,6 @@ TESTSUBDIRS = 	tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
>   		test/test_importlib/namespace_pkgs/project3/parent/child \
>                   test/test_importlib/namespace_pkgs/module_and_namespace_package \
>                   test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
> @@ -30,7 +30,7 @@ index 6656f48..433cac1 100644
>   		ctypes/test \
>   		idlelib/idle_test \
>   		distutils/tests \
> -@@ -1207,6 +1205,11 @@ TESTSUBDIRS += lib2to3/tests			\
> +@@ -1245,6 +1243,11 @@ TESTSUBDIRS += lib2to3/tests			\
>   	lib2to3/tests/data/fixers/myfixes
>   endif
>   
> @@ -43,10 +43,10 @@ index 6656f48..433cac1 100644
>   LIBSUBDIRS += $(TESTSUBDIRS)
>   endif
>  diff --git a/configure.ac b/configure.ac
> -index 0ed6b17..aaffbd6 100644
> +index 652ad88..cae12ad 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2658,6 +2658,15 @@ if test "$posix_threads" = "yes"; then
> +@@ -2894,6 +2894,15 @@ if test "$posix_threads" = "yes"; then
>         AC_CHECK_FUNCS(pthread_atfork)
>   fi
>   
> diff --git a/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch b/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch
> index fc3c9b4..7dfb339 100644
> --- a/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch
> +++ b/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch
> @@ -1,4 +1,4 @@
> -From 006bf215734ad63007de044fe7803f66f83a4d19 Mon Sep 17 00:00:00 2001
> +From d0d42570e5a23c3bf559e0413ec97729fd2f9e24 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:49:14 +0100
>  Subject: [PATCH] Add an option to disable the tk module
> @@ -11,19 +11,19 @@ Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
>   2 files changed, 17 insertions(+), 3 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index 433cac1..e492d7b 100644
> +index c822dbd..0a93c27 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -1137,7 +1137,7 @@ PLATDIR=	plat-$(MACHDEP)
> - EXTRAPLATDIR= @EXTRAPLATDIR@
> - MACHDEPS=	$(PLATDIR) $(EXTRAPLATDIR)
> +@@ -1170,7 +1170,7 @@ maninstall:	altmaninstall
> + PLATDIR=	@PLATDIR@
> + MACHDEPS=	$(PLATDIR)
>   XMLLIBSUBDIRS=  xml xml/dom xml/etree xml/parsers xml/sax
>  -LIBSUBDIRS=	tkinter \
>  +LIBSUBDIRS=	\
>   		site-packages \
>   		asyncio \
>   		collections concurrent concurrent/futures encodings \
> -@@ -1155,8 +1155,7 @@ LIBSUBDIRS=	tkinter \
> +@@ -1188,8 +1188,7 @@ LIBSUBDIRS=	tkinter \
>   		venv venv/scripts venv/scripts/posix \
>   		curses $(MACHDEPS)
>   
> @@ -33,7 +33,7 @@ index 433cac1..e492d7b 100644
>   		test/test_email test/test_email/data \
>   		test/test_json \
>   		test/audiodata \
> -@@ -1210,6 +1209,12 @@ LIBSUBDIRS += sqlite3
> +@@ -1248,6 +1247,12 @@ LIBSUBDIRS += sqlite3
>   TESTSUBDIRS += sqlite3/test
>   endif
>   
> @@ -47,10 +47,10 @@ index 433cac1..e492d7b 100644
>   LIBSUBDIRS += $(TESTSUBDIRS)
>   endif
>  diff --git a/configure.ac b/configure.ac
> -index aaffbd6..7efd54f 100644
> +index cae12ad..787b185 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2667,6 +2667,15 @@ if test "$SQLITE3" = "no" ; then
> +@@ -2903,6 +2903,15 @@ if test "$SQLITE3" = "no" ; then
>      DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
>   fi
>   
> diff --git a/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch b/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch
> index de78bb0..22f7a24 100644
> --- a/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch
> +++ b/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch
> @@ -1,4 +1,4 @@
> -From 42725aef353df06f760f0a47b80001187d04d8b4 Mon Sep 17 00:00:00 2001
> +From d04ec780bf7c0825ab260bd1d6b7292141b2dcde Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:49:30 +0100
>  Subject: [PATCH] Add an option to disable the curses module
> @@ -11,10 +11,10 @@ Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
>   2 files changed, 14 insertions(+), 1 deletion(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index e492d7b..66b2c45 100644
> +index 0a93c27..b97c21e 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -1153,7 +1153,7 @@ LIBSUBDIRS=	\
> +@@ -1186,7 +1186,7 @@ LIBSUBDIRS=	\
>   		multiprocessing multiprocessing/dummy \
>   		unittest \
>   		venv venv/scripts venv/scripts/posix \
> @@ -23,7 +23,7 @@ index e492d7b..66b2c45 100644
>   
>   TESTSUBDIRS = 	test test/test_asyncio \
>   		test/test_email test/test_email/data \
> -@@ -1215,6 +1215,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \
> +@@ -1253,6 +1253,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \
>   	tkinter/test/test_ttk
>   endif
>   
> @@ -35,10 +35,10 @@ index e492d7b..66b2c45 100644
>   LIBSUBDIRS += $(TESTSUBDIRS)
>   endif
>  diff --git a/configure.ac b/configure.ac
> -index 7efd54f..e48f38e 100644
> +index 787b185..0be47b2 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2676,6 +2676,15 @@ if test "$TK" = "no"; then
> +@@ -2912,6 +2912,15 @@ if test "$TK" = "no"; then
>      DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
>   fi
>   
> diff --git a/package/python3/0023-Add-an-option-to-disable-expat.patch b/package/python3/0023-Add-an-option-to-disable-expat.patch
> index 9cb0799..73f9b36 100644
> --- a/package/python3/0023-Add-an-option-to-disable-expat.patch
> +++ b/package/python3/0023-Add-an-option-to-disable-expat.patch
> @@ -1,4 +1,4 @@
> -From f98b83bca09882d27bb04d7dbcd50f9979ad0569 Mon Sep 17 00:00:00 2001
> +From 6281850ee8c3fb6d93b4997833af0cca4a48947b Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:49:42 +0100
>  Subject: [PATCH] Add an option to disable expat
> @@ -18,10 +18,10 @@ Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
>   3 files changed, 19 insertions(+), 7 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index 66b2c45..884d5aa 100644
> +index b97c21e..bdfee19 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -1147,7 +1147,7 @@ LIBSUBDIRS=	\
> +@@ -1180,7 +1180,7 @@ LIBSUBDIRS=	\
>   		logging csv wsgiref urllib \
>   		ctypes ctypes/macholib \
>   		idlelib idlelib/Icons \
> @@ -30,7 +30,7 @@ index 66b2c45..884d5aa 100644
>   		importlib \
>   		turtledemo \
>   		multiprocessing multiprocessing/dummy \
> -@@ -1219,6 +1219,10 @@ ifeq (@CURSES@,yes)
> +@@ -1257,6 +1257,10 @@ ifeq (@CURSES@,yes)
>   LIBSUBDIRS += curses
>   endif
>   
> @@ -42,10 +42,10 @@ index 66b2c45..884d5aa 100644
>   LIBSUBDIRS += $(TESTSUBDIRS)
>   endif
>  diff --git a/configure.ac b/configure.ac
> -index e48f38e..4bbd597 100644
> +index 0be47b2..e6bcacc 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2355,13 +2355,21 @@ PKG_PROG_PKG_CONFIG
> +@@ -2591,13 +2591,21 @@ PKG_PROG_PKG_CONFIG
>   AC_SUBST(DISABLED_EXTENSIONS)
>   
>   # Check for use of the system expat library
> @@ -73,10 +73,10 @@ index e48f38e..4bbd597 100644
>   # Check for use of the system libffi library
>   AC_MSG_CHECKING(for --with-system-ffi)
>  diff --git a/setup.py b/setup.py
> -index a2bf05a..fd3ac65 100644
> +index 722308b..ecddb6a 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -1414,7 +1414,7 @@ class PyBuildExt(build_ext):
> +@@ -1434,7 +1434,7 @@ class PyBuildExt(build_ext):
>           #
>           # More information on Expat can be found at www.libexpat.org.
>           #
> diff --git a/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch b/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch
> index b4d7784..d3af94f 100644
> --- a/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch
> +++ b/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch
> @@ -1,4 +1,4 @@
> -From cf731841e1209c6faa99e2db4cf4c890e7c28080 Mon Sep 17 00:00:00 2001
> +From 18265d05ee97ad0c43995acdadce2458b57d7d64 Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:49:55 +0100
>  Subject: [PATCH] Add an option to disable CJK codecs
> @@ -9,10 +9,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 6 insertions(+)
>  
>  diff --git a/configure.ac b/configure.ac
> -index 4bbd597..05817f0 100644
> +index e6bcacc..38b7515 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2675,6 +2675,12 @@ if test "$SQLITE3" = "no" ; then
> +@@ -2911,6 +2911,12 @@ if test "$SQLITE3" = "no" ; then
>      DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
>   fi
>   
> diff --git a/package/python3/0025-Add-an-option-to-disable-NIS.patch b/package/python3/0025-Add-an-option-to-disable-NIS.patch
> index cd6b19d..ef9ff42 100644
> --- a/package/python3/0025-Add-an-option-to-disable-NIS.patch
> +++ b/package/python3/0025-Add-an-option-to-disable-NIS.patch
> @@ -1,4 +1,4 @@
> -From f99823ef41d6f5c8e67b198b04b289d9b6ef8570 Mon Sep 17 00:00:00 2001
> +From 733ee65f308ec48be427463c06f372ca116ccada Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:50:11 +0100
>  Subject: [PATCH] Add an option to disable NIS
> @@ -12,10 +12,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 6 insertions(+)
>  
>  diff --git a/configure.ac b/configure.ac
> -index 05817f0..4fb35a8 100644
> +index 38b7515..f25733a 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2681,6 +2681,12 @@ AC_ARG_ENABLE(codecs-cjk,
> +@@ -2917,6 +2917,12 @@ AC_ARG_ENABLE(codecs-cjk,
>   		DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022"
>   	fi])
>   
> diff --git a/package/python3/0026-Add-an-option-to-disable-unicodedata.patch b/package/python3/0026-Add-an-option-to-disable-unicodedata.patch
> index a5880f2..56a5178 100644
> --- a/package/python3/0026-Add-an-option-to-disable-unicodedata.patch
> +++ b/package/python3/0026-Add-an-option-to-disable-unicodedata.patch
> @@ -1,4 +1,4 @@
> -From 4a32e709d128886dab10e59fad60fde005933aff Mon Sep 17 00:00:00 2001
> +From 64fa1fc3a9aea7ffba7b96d08a14df91051f2b6f Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:50:27 +0100
>  Subject: [PATCH] Add an option to disable unicodedata
> @@ -9,10 +9,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 6 insertions(+)
>  
>  diff --git a/configure.ac b/configure.ac
> -index 4fb35a8..58f2dd9 100644
> +index f25733a..a7ddb2b 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2687,6 +2687,12 @@ AC_ARG_ENABLE(nis,
> +@@ -2923,6 +2923,12 @@ AC_ARG_ENABLE(nis,
>       	     DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
>     	  fi])
>   
> diff --git a/package/python3/0027-Add-an-option-to-disable-IDLE.patch b/package/python3/0027-Add-an-option-to-disable-IDLE.patch
> index c2b59e8..73fc395 100644
> --- a/package/python3/0027-Add-an-option-to-disable-IDLE.patch
> +++ b/package/python3/0027-Add-an-option-to-disable-IDLE.patch
> @@ -1,4 +1,4 @@
> -From 9336cf4eb4ded1eaa83da5549e4aba62b34ef888 Mon Sep 17 00:00:00 2001
> +From 2766bcdd8f9b7395ce32a6d8480ef0a2186f2098 Mon Sep 17 00:00:00 2001
>  From: Maxime Ripard <maxime.ripard at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:50:42 +0100
>  Subject: [PATCH] Add an option to disable IDLE
> @@ -14,10 +14,10 @@ Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
>   3 files changed, 15 insertions(+), 2 deletions(-)
>  
>  diff --git a/Makefile.pre.in b/Makefile.pre.in
> -index 884d5aa..48b4812 100644
> +index bdfee19..2466615 100644
>  --- a/Makefile.pre.in
>  +++ b/Makefile.pre.in
> -@@ -1098,7 +1098,9 @@ bininstall: altbininstall
> +@@ -1132,7 +1132,9 @@ bininstall: altbininstall
>   	-rm -f $(DESTDIR)$(LIBPC)/python3.pc
>   	(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc)
>   	-rm -f $(DESTDIR)$(BINDIR)/idle3
> @@ -27,7 +27,7 @@ index 884d5aa..48b4812 100644
>   	-rm -f $(DESTDIR)$(BINDIR)/pydoc3
>   ifeq (@PYDOC@,yes)
>   	(cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
> -@@ -1146,7 +1148,6 @@ LIBSUBDIRS=	\
> +@@ -1179,7 +1181,6 @@ LIBSUBDIRS=	\
>   		html json http dbm xmlrpc \
>   		logging csv wsgiref urllib \
>   		ctypes ctypes/macholib \
> @@ -35,7 +35,7 @@ index 884d5aa..48b4812 100644
>   		distutils distutils/command \
>   		importlib \
>   		turtledemo \
> -@@ -1223,6 +1224,10 @@ ifeq (@EXPAT@,yes)
> +@@ -1261,6 +1262,10 @@ ifeq (@EXPAT@,yes)
>   LIBSUBDIRS += $(XMLLIBSUBDIRS)
>   endif
>   
> @@ -47,10 +47,10 @@ index 884d5aa..48b4812 100644
>   LIBSUBDIRS += $(TESTSUBDIRS)
>   endif
>  diff --git a/configure.ac b/configure.ac
> -index 58f2dd9..0ba25e4 100644
> +index a7ddb2b..6b59792 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2729,6 +2729,12 @@ AC_ARG_ENABLE(lib2to3,
> +@@ -2965,6 +2965,12 @@ AC_ARG_ENABLE(lib2to3,
>   	AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
>   	[ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
>   
> @@ -64,10 +64,10 @@ index 58f2dd9..0ba25e4 100644
>   AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
>   AC_MSG_CHECKING([if --enable-ipv6 is specified])
>  diff --git a/setup.py b/setup.py
> -index fd3ac65..3655e57 100644
> +index ecddb6a..7fe68e8 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -2201,11 +2201,13 @@ def main():
> +@@ -2221,11 +2221,13 @@ def main():
>       import warnings
>       warnings.filterwarnings("ignore",category=DeprecationWarning)
>   
> diff --git a/package/python3/0028-Add-an-option-to-disable-decimal.patch b/package/python3/0028-Add-an-option-to-disable-decimal.patch
> index df85325..1ac91dd 100644
> --- a/package/python3/0028-Add-an-option-to-disable-decimal.patch
> +++ b/package/python3/0028-Add-an-option-to-disable-decimal.patch
> @@ -1,4 +1,4 @@
> -From 8fee92a85c170ac4ce24dda5a960f24b83d6f103 Mon Sep 17 00:00:00 2001
> +From ff77defc777a57d4caee5183796fd44dd265e78b Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:51:31 +0100
>  Subject: [PATCH] Add an option to disable decimal
> @@ -15,10 +15,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   2 files changed, 13 insertions(+), 6 deletions(-)
>  
>  diff --git a/configure.ac b/configure.ac
> -index 0ba25e4..536b9b2 100644
> +index 6b59792..51e1760 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2388,13 +2388,20 @@ AC_SUBST(LIBFFI_INCLUDEDIR)
> +@@ -2624,13 +2624,20 @@ AC_SUBST(LIBFFI_INCLUDEDIR)
>   AC_MSG_RESULT($with_system_ffi)
>   
>   # Check for use of the system libmpdec library
> @@ -45,10 +45,10 @@ index 0ba25e4..536b9b2 100644
>   # Check for support for loadable sqlite extensions
>   AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
>  diff --git a/setup.py b/setup.py
> -index 3655e57..7f7627d 100644
> +index 7fe68e8..364b350 100644
>  --- a/setup.py
>  +++ b/setup.py
> -@@ -1968,7 +1968,7 @@ class PyBuildExt(build_ext):
> +@@ -1988,7 +1988,7 @@ class PyBuildExt(build_ext):
>       def _decimal_ext(self):
>           extra_compile_args = []
>           undef_macros = []
> diff --git a/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch b/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch
> index 56b6ae1..9ac9173 100644
> --- a/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch
> +++ b/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch
> @@ -1,4 +1,4 @@
> -From 53639100c2f7836ce9a51b5e5b9b4ea08ba1dc4e Mon Sep 17 00:00:00 2001
> +From 789b0f99d7c1d25bfa9c05fd12f4d55bb70f377b Mon Sep 17 00:00:00 2001
>  From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>  Date: Wed, 23 Dec 2015 11:51:58 +0100
>  Subject: [PATCH] Add an option to disable the ossaudiodev module
> @@ -9,10 +9,10 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>   1 file changed, 6 insertions(+)
>  
>  diff --git a/configure.ac b/configure.ac
> -index 536b9b2..c1ab3a1 100644
> +index 51e1760..c4c2353 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -2403,6 +2403,12 @@ else
> +@@ -2639,6 +2639,12 @@ else
>   fi
>   AC_SUBST(MPDEC)
>   
> diff --git a/package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch b/package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch
> new file mode 100644
> index 0000000..156eb29
> --- /dev/null
> +++ b/package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch
> @@ -0,0 +1,62 @@
> +From 4f851142b8f3149d23654117621285df34ec768b Mon Sep 17 00:00:00 2001
> +From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> +Date: Wed, 23 Dec 2015 13:58:00 +0100
> +Subject: [PATCH] Support PGEN_FOR_BUILD and FREEZE_IMPORTLIB_FOR_BUILD
> +
> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> +---
> + Makefile.pre.in | 10 ++++++++++
> + configure.ac    |  3 +++
> + 2 files changed, 13 insertions(+)
> +
> +diff --git a/Makefile.pre.in b/Makefile.pre.in
> +index 2466615..fdf622d 100644
> +--- a/Makefile.pre.in
> ++++ b/Makefile.pre.in
> +@@ -712,10 +712,15 @@ Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
> + ############################################################################
> + # Importlib
> + 
> ++ifeq (@FREEZE_IMPORTLIB_FOR_BUILD@,)
> + Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
> + 
> + Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
> + 	$(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
> ++else
> ++Programs/_freeze_importlib: @FREEZE_IMPORTLIB_FOR_BUILD@
> ++	cp $^ $@
> ++endif
> + 
> + Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib
> + 	./Programs/_freeze_importlib \
> +@@ -789,8 +794,13 @@ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN)
> + $(GRAMMAR_C): $(GRAMMAR_H)
> + 		touch $(GRAMMAR_C)
> + 
> ++ifeq (@PGEN_FOR_BUILD@,)
> + $(PGEN): $(PGENOBJS)
> + 		$(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
> ++else
> ++$(PGEN): @PGEN_FOR_BUILD@
> ++		cp $^ $@
> ++endif
> + 
> + Parser/grammar.o:	$(srcdir)/Parser/grammar.c \
> + 				$(srcdir)/Include/token.h \
> +diff --git a/configure.ac b/configure.ac
> +index c4c2353..750c232 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -79,6 +79,9 @@ else
> + fi
> + AC_SUBST(PYTHON_FOR_BUILD)
> + 
> ++AC_SUBST(PGEN_FOR_BUILD)
> ++AC_SUBST(FREEZE_IMPORTLIB_FOR_BUILD)
> ++
> + dnl Ensure that if prefix is specified, it does not end in a slash. If
> + dnl it does, we get path names containing '//' which is both ugly and
> + dnl can cause trouble.
> +-- 
> +2.6.4
> +
> diff --git a/package/python3/python3.hash b/package/python3/python3.hash
> index 60ac230..2894003 100644
> --- a/package/python3/python3.hash
> +++ b/package/python3/python3.hash
> @@ -1,4 +1,4 @@
> -# From https://www.python.org/downloads/release/python-343/
> -md5 7d092d1bba6e17f0d9bd21b49e441dd5 Python-3.4.3.tar.xz
> +# From https://www.python.org/downloads/release/python-351/
> +md5 e9ea6f2623fffcdd871b7b19113fde80 Python-3.5.1.tar.xz
>  # Locally computed
> -sha256 b5b3963533768d5fc325a4d7a6bd6f666726002d696f1d399ec06b043ea996b8 Python-3.4.3.tar.xz
> +sha256 c6d57c0c366d9060ab6c0cdf889ebf3d92711d466cc0119c441dbf2746f725c9 Python-3.5.1.tar.xz
> diff --git a/package/python3/python3.mk b/package/python3/python3.mk
> index a37b791..3b8e5fc 100644
> --- a/package/python3/python3.mk
> +++ b/package/python3/python3.mk
> @@ -4,8 +4,8 @@
>  #
>  ################################################################################
>  
> -PYTHON3_VERSION_MAJOR = 3.4
> -PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).3
> +PYTHON3_VERSION_MAJOR = 3.5
> +PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).1
>  PYTHON3_SOURCE = Python-$(PYTHON3_VERSION).tar.xz
>  PYTHON3_SITE = http://python.org/ftp/python/$(PYTHON3_VERSION)
>  PYTHON3_LICENSE = Python software foundation license v2, others
> @@ -139,25 +139,21 @@ PYTHON3_CONF_OPTS += \
>  	--disable-idle3		\
>  	--disable-pyo-build
>  
> -# This is needed to make sure the Python build process doesn't try to
> -# regenerate those files with the pgen program. Otherwise, it builds
> -# pgen for the target, and tries to run it on the host.
> -
> -define PYTHON3_TOUCH_GRAMMAR_FILES
> -	touch $(@D)/Include/graminit.h $(@D)/Python/graminit.c
> +# Python builds two tools to generate code: 'pgen' and
> +# '_freeze_importlib'. Unfortunately, for the target Python, they are
> +# built for the target, while we need to run them at build time. So
> +# when installing host-python, we copy them to
> +# $(HOST_DIR)/usr/bin. And then, when building the target python
> +# package, we tell the configure script where they are located.
> +define HOST_PYTHON3_INSTALL_TOOLS
> +	cp $(@D)/Parser/pgen $(HOST_DIR)/usr/bin/python-pgen
> +	cp $(@D)/Programs/_freeze_importlib $(HOST_DIR)/usr/bin/python-freeze-importlib
>  endef
> +HOST_PYTHON3_POST_INSTALL_HOOKS += HOST_PYTHON3_INSTALL_TOOLS
>  
> -# This prevents the Python Makefile from regenerating the
> -# Python/importlib.h header if Lib/importlib/_bootstrap.py has changed
> -# because its generation is broken in a cross-compilation environment
> -# and importlib.h is not used.
> -
> -define PYTHON3_TOUCH_IMPORTLIB_H
> -	touch $(@D)/Python/importlib.h
> -endef
> -
> -PYTHON3_POST_PATCH_HOOKS += PYTHON3_TOUCH_GRAMMAR_FILES
> -PYTHON3_POST_PATCH_HOOKS += PYTHON3_TOUCH_IMPORTLIB_H
> +PYTHON3_CONF_ENV += \
> +	PGEN_FOR_BUILD=$(HOST_DIR)/usr/bin/python-pgen \
> +	FREEZE_IMPORTLIB_FOR_BUILD=$(HOST_DIR)/usr/bin/python-freeze-importlib
>  
>  #
>  # Remove useless files. In the config/ directory, only the Makefile


-- 
Christophe Vu-Brugier


More information about the buildroot mailing list