python3: switch to Git formatted patches
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 4 Jan 2016 18:23:28 +0000 (19:23 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Mon, 4 Jan 2016 23:14:15 +0000 (00:14 +0100)
In preparation for the bump to Python 3.5.0, let's switch all the
patches to the Git format. This way, a Git repository of the Python
source code can be used to manage those patches, which makes it easier
to bump to newer Python versions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
58 files changed:
package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch [new file with mode: 0644]
package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch [new file with mode: 0644]
package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch [new file with mode: 0644]
package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch [new file with mode: 0644]
package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch [new file with mode: 0644]
package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch [new file with mode: 0644]
package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch [new file with mode: 0644]
package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch [new file with mode: 0644]
package/python3/0009-Don-t-add-multiarch-paths.patch [new file with mode: 0644]
package/python3/001-remove-host-header-path.patch [deleted file]
package/python3/0010-Abort-on-failed-module-build.patch [new file with mode: 0644]
package/python3/0011-Serial-ioctl-workaround.patch [new file with mode: 0644]
package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch [new file with mode: 0644]
package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch [new file with mode: 0644]
package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch [new file with mode: 0644]
package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch [new file with mode: 0644]
package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch [new file with mode: 0644]
package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch [new file with mode: 0644]
package/python3/0018-Add-an-option-to-disable-pydoc.patch [new file with mode: 0644]
package/python3/0019-Add-an-option-to-disable-lib2to3.patch [new file with mode: 0644]
package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch [new file with mode: 0644]
package/python3/0021-Add-an-option-to-disable-the-tk-module.patch [new file with mode: 0644]
package/python3/0022-Add-an-option-to-disable-the-curses-module.patch [new file with mode: 0644]
package/python3/0023-Add-an-option-to-disable-expat.patch [new file with mode: 0644]
package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch [new file with mode: 0644]
package/python3/0025-Add-an-option-to-disable-NIS.patch [new file with mode: 0644]
package/python3/0026-Add-an-option-to-disable-unicodedata.patch [new file with mode: 0644]
package/python3/0027-Add-an-option-to-disable-IDLE.patch [new file with mode: 0644]
package/python3/0028-Add-an-option-to-disable-decimal.patch [new file with mode: 0644]
package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch [new file with mode: 0644]
package/python3/003-sysconfigdata-install-location.patch [deleted file]
package/python3/005-pyc-pyo-conditional.patch [deleted file]
package/python3/006-cross-compile-getaddrinfo.patch [deleted file]
package/python3/007-disable-extensions.patch [deleted file]
package/python3/008-distutils-sysconfig-use-sysconfigdata.patch [deleted file]
package/python3/009-distutils-use-python-sysroot.patch [deleted file]
package/python3/010-no-termcap-host-path.patch [deleted file]
package/python3/012-dont-add-multiarch-path.patch [deleted file]
package/python3/013-abort-on-failed-modules.patch [deleted file]
package/python3/014-serial-ioctl-workaround.patch [deleted file]
package/python3/015-distutils-scripts-dont-adjust-shebang.patch [deleted file]
package/python3/017-python-config-include-libdir.patch [deleted file]
package/python3/018-ncursesw-remove-wrong-includedir.patch [deleted file]
package/python3/019-fix-add-gcc-paths-logic.patch [deleted file]
package/python3/020-importlib-no-pep3147.patch [deleted file]
package/python3/100-optional-test-modules.patch [deleted file]
package/python3/101-optional-pydoc.patch [deleted file]
package/python3/102-optional-2to3.patch [deleted file]
package/python3/103-optional-sqlite.patch [deleted file]
package/python3/104-optional-tk.patch [deleted file]
package/python3/105-optional-curses.patch [deleted file]
package/python3/106-optional-expat.patch [deleted file]
package/python3/107-optional-codecs-cjk.patch [deleted file]
package/python3/108-optional-nis.patch [deleted file]
package/python3/109-optional-unicodedata.patch [deleted file]
package/python3/110-optional-idle.patch [deleted file]
package/python3/111-optional-decimal.patch [deleted file]
package/python3/112-optional-ossaudiodev.patch [deleted file]

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
new file mode 100644 (file)
index 0000000..3fafd90
--- /dev/null
@@ -0,0 +1,46 @@
+From 03a4c313f42ea1bbdfc4c64a285b3930766c2b23 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:28:34 +0100
+Subject: [PATCH] setup.py: do not add invalid header locations
+
+This piece of code incorrectly adds /usr/include to
+self.compiler.include_dirs, and results in the following invalid
+compilation line:
+
+/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc
+  -fPIC -Wno-unused-result -Werror=declaration-after-statement -DNDEBUG -g
+  -O3 -Wall -Wstrict-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+  -D_FILE_OFFSET_BITS=64 -pipe -Os
+  -I./Include -I/usr/include -I. -IInclude
+  -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include
+  -I/home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Include
+  -I/home/thomas/projets/buildroot/output/build/python3-3.4.0b1
+  -c /home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Modules/_struct.c
+  -o build/temp.linux-arm-3.4/home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Modules/_struct.o
+cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
+
+The -I/usr/include is wrong when cross compiling, so we disable adding
+INCLUDEDIR and LIBDIR from the host when cross compiling.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ setup.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 2779658..d3bf8e5 100644
+--- a/setup.py
++++ b/setup.py
+@@ -493,7 +493,8 @@ class PyBuildExt(build_ext):
+                         add_dir_to_list(dir_list, directory)
+         if os.path.normpath(sys.base_prefix) != '/usr' \
+-                and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
++                and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
++                and not cross_compiling:
+             # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
+             # (PYTHONFRAMEWORK is set) to avoid # linking problems when
+             # building a framework with different architectures than
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..57b55fb
--- /dev/null
@@ -0,0 +1,86 @@
+From 2f706a2ba92c88f1c8288e34d1937b6ba0e0214c Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:29:04 +0100
+Subject: [PATCH] Change the install location of _sysconfigdata.py
+
+The _sysconfigdata.py module contains definitions that are needed when
+building Python modules. In cross-compilation mode, when building
+Python extensions for the target, we need to use the _sysconfigdata.py
+of the target Python while executing the host Python.
+
+However until now, the _sysconfigdata.py module was installed in
+build/lib.<arch>-<version> directory, together with a number of
+architecture-specific shared objects, which cannot be used with the
+host Python.
+
+To solve this problem, this patch moves _sysconfigdata.py to a
+separate location, build/sysconfigdata.<arch>-<version>/, and only
+this directory gets added to the PYTHONPATH of the host Python
+interpreter when building Python modules for the target.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile.pre.in | 12 ++++++++++--
+ configure.ac    |  2 +-
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 76aef28..58dab28 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -559,6 +559,9 @@ pybuilddir.txt: $(BUILDPYTHON)
+               rm -f ./pybuilddir.txt ; \
+               exit 1 ; \
+       fi
++      echo `cat pybuilddir.txt`/sysconfigdata > pysysconfigdatadir.txt
++      mkdir -p `cat pysysconfigdatadir.txt`
++      cp `cat pybuilddir.txt`/_sysconfigdata.py `cat pysysconfigdatadir.txt`
+ # 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
+               else    true; \
+               fi; \
+       done
+-      @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \
++      @for i in $(srcdir)/Lib/*.py ; \
+       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
+                       echo $(INSTALL_DATA) $$i $(LIBDEST); \
+               fi; \
+       done
++      $(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \
++              $(DESTDIR)$(LIBDEST)
++      mkdir -p $(DESTDIR)$(LIBDEST)/sysconfigdata
++      $(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \
++              $(DESTDIR)$(LIBDEST)/sysconfigdata
+       @for d in $(LIBSUBDIRS); \
+       do \
+               a=$(srcdir)/Lib/$$d; \
+@@ -1533,7 +1541,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
+diff --git a/configure.ac b/configure.ac
+index a0d0afa..7b491b4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -70,7 +70,7 @@ if test "$cross_compiling" = yes; then
+           AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
+       fi
+         AC_MSG_RESULT($interp)
+-      PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
++      PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pysysconfigdatadir.txt && echo $(abs_builddir)/`cat pysysconfigdatadir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
+     fi
+ elif test "$cross_compiling" = maybe; then
+     AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..03684af
--- /dev/null
@@ -0,0 +1,78 @@
+From 7c5338161263c290f18b1ff90859084d314be98c Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@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@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/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch b/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch
new file mode 100644 (file)
index 0000000..da2a65b
--- /dev/null
@@ -0,0 +1,27 @@
+From ef95d6a49f17522ed120def8093fa2fc0b86cbc8 Mon Sep 17 00:00:00 2001
+From: Vanya Sergeev <vsergeev@gmail.com>
+Date: Wed, 23 Dec 2015 11:30:33 +0100
+Subject: [PATCH] Disable buggy_getaddrinfo configure test when cross-compiling
+ with IPv6 support
+
+Signed-off-by: Vanya Sergeev <vsergeev@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index f2c4705..6342b81 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3415,7 +3415,7 @@ fi
+ AC_MSG_RESULT($ac_cv_buggy_getaddrinfo)
+-if test $have_getaddrinfo = no || test "$ac_cv_buggy_getaddrinfo" = yes
++if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes
+ then
+       if test $ipv6 = yes
+       then
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..4a32bb1
--- /dev/null
@@ -0,0 +1,106 @@
+From 9eb1076b61e83647028a2f6b665b6f9afcb793b0 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:31:08 +0100
+Subject: [PATCH] Add infrastructure to disable the build of certain extensions
+
+Some of the extensions part of the Python core have dependencies on
+external libraries (sqlite, tk, etc.) or are relatively big and not
+necessarly always useful (CJK codecs for example). By extensions, we
+mean part of Python modules that are written in C and therefore
+compiled to binary code.
+
+Therefore, we introduce a small infrastructure that allows to disable
+some of those extensions. This can be done inside the configure.ac by
+adding values to the DISABLED_EXTENSIONS variable (which is a
+word-separated list of extensions).
+
+The implementation works as follow :
+
+ * configure.ac defines a DISABLED_EXTENSIONS variable, which is
+   substituted (so that when Makefile.pre is generated from
+   Makefile.pre.in, the value of the variable is substituted). For
+   now, this DISABLED_EXTENSIONS variable is empty, later patches will
+   use it.
+
+ * Makefile.pre.in passes the DISABLED_EXTENSIONS value down to the
+   variables passed in the environment when calling the setup.py
+   script that actually builds and installs those extensions.
+
+ * setup.py is modified so that the existing "disabled_module_list" is
+   filled with those pre-disabled extensions listed in
+   DISABLED_EXTENSIONS.
+
+Patch ported to python2.7 by Maxime Ripard <ripard@archos.com>, and
+then extended by Thomas Petazzoni
+<thomas.petazzoni@free-electrons.com>.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile.pre.in | 6 +++++-
+ configure.ac    | 2 ++
+ setup.py        | 5 ++++-
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index f1bdd99..e0f9e0f 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -177,6 +177,8 @@ FILEMODE=  644
+ # configure script arguments
+ CONFIG_ARGS=  @CONFIG_ARGS@
++# disabled extensions
++DISABLED_EXTENSIONS=  @DISABLED_EXTENSIONS@
+ # Subdirectories with code
+ SRCDIRS=      @SRCDIRS@
+@@ -574,6 +576,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt
+       esac; \
+       $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
+               _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
++              DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
+               $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
+ # Build static library
+@@ -1384,7 +1387,8 @@ libainstall:     all python-config
+ # Install the dynamically loadable modules
+ # This goes into $(exec_prefix)
+ sharedinstall: sharedmods
+-      $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
++      $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
++              $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
+               --prefix=$(prefix) \
+               --install-scripts=$(BINDIR) \
+               --install-platlib=$(DESTSHARED) \
+diff --git a/configure.ac b/configure.ac
+index 6342b81..a3026b8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2352,6 +2352,8 @@ LIBS="$withval $LIBS"
+ PKG_PROG_PKG_CONFIG
++AC_SUBST(DISABLED_EXTENSIONS)
++
+ # Check for use of the system expat library
+ AC_MSG_CHECKING(for --with-system-expat)
+ AC_ARG_WITH(system_expat,
+diff --git a/setup.py b/setup.py
+index d3bf8e5..2a504d2 100644
+--- a/setup.py
++++ b/setup.py
+@@ -39,7 +39,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.
+-disabled_module_list = []
++try:
++    disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ")
++except KeyError:
++    disabled_module_list = list()
+ def add_dir_to_list(dirlist, dir):
+     """Add the directory 'dir' to the list 'dirlist' (after any relative
+-- 
+2.6.4
+
diff --git a/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch b/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch
new file mode 100644 (file)
index 0000000..dcf32d6
--- /dev/null
@@ -0,0 +1,65 @@
+From bdb9cccdc2993e43af1e57ad3b8b0055bab64ba0 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:32:23 +0100
+Subject: [PATCH] distutils/sysconfig: use sysconfigdata
+
+In order to make the use of sysconfig cross-compilation compatible,
+use _sysconfigdata.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Lib/distutils/sysconfig.py | 37 ++++---------------------------------
+ 1 file changed, 4 insertions(+), 33 deletions(-)
+
+diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
+index a1452fe..1df20ad 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -423,40 +423,11 @@ def expand_makefile_vars(s, vars):
+ _config_vars = None
+ def _init_posix():
+-    """Initialize the module as appropriate for POSIX systems."""
+-    g = {}
+-    # load the installed Makefile:
+-    try:
+-        filename = get_makefile_filename()
+-        parse_makefile(filename, g)
+-    except OSError as msg:
+-        my_msg = "invalid Python installation: unable to open %s" % filename
+-        if hasattr(msg, "strerror"):
+-            my_msg = my_msg + " (%s)" % msg.strerror
+-
+-        raise DistutilsPlatformError(my_msg)
+-
+-    # load the installed pyconfig.h:
+-    try:
+-        filename = get_config_h_filename()
+-        with open(filename) as file:
+-            parse_config_h(file, g)
+-    except OSError as msg:
+-        my_msg = "invalid Python installation: unable to open %s" % filename
+-        if hasattr(msg, "strerror"):
+-            my_msg = my_msg + " (%s)" % msg.strerror
+-
+-        raise DistutilsPlatformError(my_msg)
+-
+-    # On AIX, there are wrong paths to the linker scripts in the Makefile
+-    # -- these paths are relative to the Python source, but when installed
+-    # the scripts are in another directory.
+-    if python_build:
+-        g['LDSHARED'] = g['BLDSHARED']
+-
++    # _sysconfigdata is generated at build time, see the sysconfig module
++    from _sysconfigdata import build_time_vars
+     global _config_vars
+-    _config_vars = g
+-
++    _config_vars = {}
++    _config_vars.update(build_time_vars)
+ def _init_nt():
+     """Initialize the module as appropriate for NT"""
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..59d4ccd
--- /dev/null
@@ -0,0 +1,67 @@
+From 678143ce6161379a3eebc20db6634f0c247f8605 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:33:14 +0100
+Subject: [PATCH] Adjust library/header paths for cross-compilation
+
+When cross-compiling third-party extensions, the get_python_inc() or
+get_python_lib() can be called, to return the path to headers or
+libraries. However, they use the sys.prefix of the host Python, which
+returns incorrect paths when cross-compiling (paths pointing to host
+headers and libraries).
+
+In order to fix this, we introduce the _python_sysroot, _python_prefix
+and _python_exec_prefix variables, that allow to override these
+values, and get correct header/library paths when cross-compiling
+third-party Python modules.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Lib/distutils/command/build_ext.py |  5 ++++-
+ Lib/distutils/sysconfig.py         | 15 +++++++++++----
+ 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
+--- a/Lib/distutils/command/build_ext.py
++++ b/Lib/distutils/command/build_ext.py
+@@ -239,7 +239,10 @@ class build_ext(Command):
+         if (sysconfig.get_config_var('Py_ENABLE_SHARED')):
+             if not sysconfig.python_build:
+                 # building third party extensions
+-                self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
++                libdir = sysconfig.get_config_var('LIBDIR')
++                if "_python_sysroot" in os.environ:
++                    libdir = os.environ.get("_python_sysroot") + libdir
++                self.library_dirs.append(libdir)
+             else:
+                 # building python standard extensions
+                 self.library_dirs.append('.')
+diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
+index 1df20ad..905d280 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -16,10 +16,17 @@ import sys
+ from .errors import DistutilsPlatformError
+ # These are needed in a couple of spots, so just compute them once.
+-PREFIX = os.path.normpath(sys.prefix)
+-EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
+-BASE_PREFIX = os.path.normpath(sys.base_prefix)
+-BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
++if "_python_sysroot" in os.environ:
++    _sysroot=os.environ.get('_python_sysroot')
++    PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix'))
++    EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix'))
++    BASE_PREFIX = PREFIX
++    BASE_EXEC_PREFIX = EXEC_PREFIX
++else:
++    PREFIX = os.path.normpath(sys.prefix)
++    EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
++    BASE_PREFIX = os.path.normpath(sys.base_prefix)
++    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,
+-- 
+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
new file mode 100644 (file)
index 0000000..19a76cf
--- /dev/null
@@ -0,0 +1,31 @@
+From 3ef1e30b88c4166f22220812b68e14f39f7ed15b Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:36:00 +0100
+Subject: [PATCH] Don't look in /usr/lib/termcap for libraries
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ setup.py | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 2a504d2..acc4ad0 100644
+--- a/setup.py
++++ b/setup.py
+@@ -733,12 +733,9 @@ class PyBuildExt(build_ext):
+                 pass # Issue 7384: Already linked against curses or tinfo.
+             elif curses_library:
+                 readline_libs.append(curses_library)
+-            elif self.compiler.find_library_file(lib_dirs +
+-                                                     ['/usr/lib/termcap'],
+-                                                     'termcap'):
++            elif self.compiler.find_library_file(lib_dirs, 'termcap'):
+                 readline_libs.append('termcap')
+             exts.append( Extension('readline', ['readline.c'],
+-                                   library_dirs=['/usr/lib/termcap'],
+                                    extra_link_args=readline_extra_link_args,
+                                    libraries=readline_libs) )
+         else:
+-- 
+2.6.4
+
diff --git a/package/python3/0009-Don-t-add-multiarch-paths.patch b/package/python3/0009-Don-t-add-multiarch-paths.patch
new file mode 100644 (file)
index 0000000..693ab6a
--- /dev/null
@@ -0,0 +1,37 @@
+From b910b3a6e61afcaa6f77b533a5cb4290c528f439 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:36:27 +0100
+Subject: [PATCH] Don't add multiarch paths
+
+The add_multiarch_paths() function leads, in certain build
+environments, to the addition of host header paths to the CFLAGS,
+which is not appropriate for cross-compilation. This patch fixes that
+by simply removing the call to add_multiarch_paths() when we're
+cross-compiling.
+
+Investigation done by David <buildroot-2014@inbox.com>.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index acc4ad0..eab709e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -456,10 +456,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')
++            self.add_multiarch_paths()
+         # only change this for cross builds for 3.3, issues on Mageia
+         if cross_compiling:
+             self.add_gcc_paths()
+-        self.add_multiarch_paths()
+         # Add paths specified in the environment variables LDFLAGS and
+         # CPPFLAGS for header and library files.
+-- 
+2.6.4
+
diff --git a/package/python3/001-remove-host-header-path.patch b/package/python3/001-remove-host-header-path.patch
deleted file mode 100644 (file)
index 1eff608..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-setup.py: do not add invalid header locations
-
-This piece of code incorrectly adds /usr/include to
-self.compiler.include_dirs, and results in the following invalid
-compilation line:
-
-/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc
-  -fPIC -Wno-unused-result -Werror=declaration-after-statement -DNDEBUG -g
-  -O3 -Wall -Wstrict-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-  -D_FILE_OFFSET_BITS=64 -pipe -Os
-  -I./Include -I/usr/include -I. -IInclude
-  -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include
-  -I/home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Include
-  -I/home/thomas/projets/buildroot/output/build/python3-3.4.0b1
-  -c /home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Modules/_struct.c
-  -o build/temp.linux-arm-3.4/home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Modules/_struct.o
-cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
-
-The -I/usr/include is wrong when cross compiling, so we disable adding
-INCLUDEDIR and LIBDIR from the host when cross compiling.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -493,7 +493,8 @@
-                         add_dir_to_list(dir_list, directory)
-         if os.path.normpath(sys.base_prefix) != '/usr' \
--                and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
-+                and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
-+                and not cross_compiling:
-             # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
-             # (PYTHONFRAMEWORK is set) to avoid # linking problems when
-             # building a framework with different architectures than
diff --git a/package/python3/0010-Abort-on-failed-module-build.patch b/package/python3/0010-Abort-on-failed-module-build.patch
new file mode 100644 (file)
index 0000000..d2e9822
--- /dev/null
@@ -0,0 +1,30 @@
+From 420e08fc9e77b650d11ce420f85257ce1710b70d Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:43:24 +0100
+Subject: [PATCH] Abort on failed module build
+
+When building a Python module fails, the setup.py script currently
+doesn't exit with an error, and simply continues. This is not a really
+nice behavior, so this patch changes setup.py to abort with an error,
+so that the build issue is clearly noticeable.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ setup.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/setup.py b/setup.py
+index eab709e..86758ce 100644
+--- a/setup.py
++++ b/setup.py
+@@ -284,6 +284,7 @@ class PyBuildExt(build_ext):
+             print("Failed to build these modules:")
+             print_three_column(failed)
+             print()
++            sys.exit(1)
+     def build_extension(self, ext):
+-- 
+2.6.4
+
diff --git a/package/python3/0011-Serial-ioctl-workaround.patch b/package/python3/0011-Serial-ioctl-workaround.patch
new file mode 100644 (file)
index 0000000..f1db62b
--- /dev/null
@@ -0,0 +1,33 @@
+From f67b0073a30eb83d42a2ead0a62020dfe5db8d1e Mon Sep 17 00:00:00 2001
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Wed, 23 Dec 2015 11:44:02 +0100
+Subject: [PATCH] Serial ioctl() workaround
+
+The ioctls.h of some architectures (notably xtensa) references structs from
+linux/serial.h. Make sure to include this header as well.
+
+Also, undef TIOCTTYGSTRUCT that require reference to internal kernel tty_struct,
+but isn't actually referenced in modern kernels.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+ Modules/termios.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Modules/termios.c b/Modules/termios.c
+index b78d33e..58b0444 100644
+--- a/Modules/termios.c
++++ b/Modules/termios.c
+@@ -9,7 +9,9 @@
+ #endif
+ #include <termios.h>
++#include <linux/serial.h>
+ #include <sys/ioctl.h>
++#undef TIOCTTYGSTRUCT
+ /* HP-UX requires that this be included to pick up MDCD, MCTS, MDSR,
+  * MDTR, MRI, and MRTS (appearantly used internally by some things
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..e4fbf4e
--- /dev/null
@@ -0,0 +1,35 @@
+From 2cac07af643d989b352cccc3b96d86ed269df9b1 Mon Sep 17 00:00:00 2001
+From: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
+Date: Wed, 23 Dec 2015 11:44:30 +0100
+Subject: [PATCH] Do not adjust the shebang of Python scripts for
+ cross-compilation
+
+The copy_scripts() method in distutils copies the scripts listed in
+the setup file and adjusts the first line to refer to the current
+Python interpreter. When cross-compiling, this means that the adjusted
+shebang refers to the host Python interpreter.
+
+This patch modifies copy_scripts() to preserve the shebang when
+cross-compilation is detected.
+
+Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
+---
+ Lib/distutils/command/build_scripts.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Lib/distutils/command/build_scripts.py b/Lib/distutils/command/build_scripts.py
+index 90a8380..bdf4cf1 100644
+--- a/Lib/distutils/command/build_scripts.py
++++ b/Lib/distutils/command/build_scripts.py
+@@ -91,7 +91,7 @@ class build_scripts(Command):
+                     adjust = True
+                     post_interp = match.group(1) or b''
+-            if adjust:
++            if adjust and not '_python_sysroot' in os.environ:
+                 log.info("copying and adjusting %s -> %s", script,
+                          self.build_dir)
+                 updated_files.append(outfile)
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..f9c7225
--- /dev/null
@@ -0,0 +1,60 @@
+From 4c0893221e2978854174806f7e14f7643eea32e7 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <peter@korsgaard.com>
+Date: Thu, 20 Nov 2014 13:24:59 +0100
+Subject: [PATCH] Misc/python-config.sh.in: ensure sed invocations only match
+ beginning of strings
+
+The build/real prefix handling using sed breaks if build != real and the
+standard include / lib directories are used ($prefix/include and $prefix/lib).
+
+E.G.
+
+prefix_build="/usr", libdir="$prefix/lib", includedir="$prefix/include".
+
+If this gets installed with make DESTDIR="/foo" install, then we end up with
+prefix_real = prefix = "/foo/usr" as expected, but
+includedir="/foo/foo/usr/include" and libdir="/foo/foo/usr/lib" because of
+the double sed invocation (prefix is already expanded).  Work around it by
+ensuring we only match the beginning of the string.
+
+Submitted upstream: http://bugs.python.org/issue22907
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ Misc/python-config.sh.in | 12 ++++++------
+ 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
+--- a/Misc/python-config.sh.in
++++ b/Misc/python-config.sh.in
+@@ -29,12 +29,12 @@ prefix_real=$(installed_prefix "$0")
+ # Use sed to fix paths from their built-to locations to their installed-to
+ # locations.
+-prefix=$(echo "$prefix_build" | sed "s#$prefix_build#$prefix_real#")
++prefix=$(echo "$prefix_build" | sed "s#^$prefix_build#$prefix_real#")
+ exec_prefix_build="@exec_prefix@"
+-exec_prefix=$(echo "$exec_prefix_build" | sed "s#$exec_prefix_build#$prefix_real#")
+-includedir=$(echo "@includedir@" | sed "s#$prefix_build#$prefix_real#")
+-libdir=$(echo "@libdir@" | sed "s#$prefix_build#$prefix_real#")
+-CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix_build#$prefix_real#")
++exec_prefix=$(echo "$exec_prefix_build" | sed "s#^$exec_prefix_build#$prefix_real#")
++includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#")
++libdir=$(echo "@libdir@" | sed "s#^$prefix_build#$prefix_real#")
++CFLAGS=$(echo "@CFLAGS@" | sed "s#^$prefix_build#$prefix_real#")
+ VERSION="@VERSION@"
+ LIBM="@LIBM@"
+ LIBC="@LIBC@"
+@@ -48,7 +48,7 @@ OPT="@OPT@"
+ PY_ENABLE_SHARED="@PY_ENABLE_SHARED@"
+ LDVERSION="@LDVERSION@"
+ 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@"
+ PYTHONFRAMEWORK="@PYTHONFRAMEWORK@"
+ INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..4a64427
--- /dev/null
@@ -0,0 +1,30 @@
+From a87f08318cf40a27d41957dcc7312c3b3083ba86 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:45:13 +0100
+Subject: [PATCH] Do not harcode invalid path to ncursesw headers
+
+Adding /usr/include/ncursesw is obviously invalid when
+cross-compiling. Since the ncursesw headers are no longer installed in
+usr/include/ncursesw/, but directly in usr/include, there is anyway no
+need for a special header path.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ setup.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 86758ce..565c304 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1276,7 +1276,6 @@ class PyBuildExt(build_ext):
+         panel_library = 'panel'
+         if curses_library == 'ncursesw':
+             curses_defines.append(('HAVE_NCURSESW', '1'))
+-            curses_includes.append('/usr/include/ncursesw')
+             # Bug 1464056: If _curses.so links with ncursesw,
+             # _curses_panel.so must link with panelw.
+             panel_library = 'panelw'
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..e358e44
--- /dev/null
@@ -0,0 +1,37 @@
+From 807357dc50a5a97016ce22646b5eb6a5b64a1a5d Mon Sep 17 00:00:00 2001
+From: Samuel Cabrero <samuelcabrero@gmail.com>
+Date: Wed, 23 Dec 2015 11:45:48 +0100
+Subject: [PATCH] Override system locale and set to default when adding gcc
+ paths
+
+Forces the use of the default locale in the function
+add_gcc_paths, which is called when cross compiling to add the
+include and library paths. This is necessary because otherwise
+the gcc output is localized and the output parsing fails, which
+results in no paths added and detect_modules not able to find
+any system library (eg. libz, libssl, etc.)
+
+[Thomas: patch taken from https://bugs.python.org/issue23767.]
+
+Signed-off-by: Samuel Cabrero <samuelcabrero@gmail.com>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 565c304..8966779 100644
+--- a/setup.py
++++ b/setup.py
+@@ -423,7 +423,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)
+-        ret = os.system('%s -E -v - </dev/null 2>%s 1>/dev/null' % (gcc, tmpfile))
++        ret = os.system('LC_ALL=C %s -E -v - </dev/null 2>%s 1>/dev/null' % (gcc, tmpfile))
+         is_gcc = False
+         in_incdirs = False
+         inc_dirs = []
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..02f1d16
--- /dev/null
@@ -0,0 +1,79 @@
+From 1153f503a38daf6388021575f1ad6ce8b702911b Mon Sep 17 00:00:00 2001
+From: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
+Date: Wed, 23 Dec 2015 11:46:14 +0100
+Subject: [PATCH] Add importlib fix for PEP 3147 issue
+
+Python 3 has a new standard for installing .pyc file, called PEP
+3147. Unfortunately, this standard requires both the .py and .pyc
+files to be installed for a Python module to be found. This is quite
+annoying on space-constrained embedded systems, since the .py file is
+technically not required for execution.
+
+This patch changes cache_from_source() and source_from_cache() in
+importlib to get rid of the "__pycache__" directory.
+This effectively disables PEP 3147 for:
+
+* The python standard library
+* Packages built with distutils or setuptools
+* Packages built with automake that use the `py-compile` helper
+
+Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
+---
+ Lib/importlib/_bootstrap.py | 26 +++++---------------------
+ 1 file changed, 5 insertions(+), 21 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.
+-    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
+     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)
+ def source_from_cache(path):
+     """Given the path to a .pyc./.pyo 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
+-    sys.implementation.cache_tag is None then NotImplementedError is raised.
++    the .py file calculated to correspond to the .pyc/.pyo file.
+     """
+-    if sys.implementation.cache_tag is None:
+-        raise NotImplementedError('sys.implementation.cache_tag is None')
+-    head, pycache_filename = _path_split(path)
+-    head, pycache = _path_split(head)
+-    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 '
+-                         '{!r}'.format(pycache_filename))
+-    base_filename = pycache_filename.partition('.')[0]
++    head, filename = _path_split(path)
++    base_filename = filename.partition('.')[0]
+     return _path_join(head, base_filename + SOURCE_SUFFIXES[0])
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..6e0f07c
--- /dev/null
@@ -0,0 +1,113 @@
+From 3cdd905ad1ff001713d20b768c001b5299a2e72c Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:47:00 +0100
+Subject: [PATCH] Add an option to disable installation of test modules
+
+The Python standard distribution comes with many test modules, that
+are not necessarly useful on embedded targets.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile.pre.in | 56 ++++++++++++++++++++++++++++++++++++--------------------
+ configure.ac    |  6 ++++++
+ 2 files changed, 42 insertions(+), 20 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index e0f9e0f..12fae84 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1133,8 +1133,30 @@ PLATDIR=        plat-$(MACHDEP)
+ EXTRAPLATDIR= @EXTRAPLATDIR@
+ MACHDEPS=     $(PLATDIR) $(EXTRAPLATDIR)
+ 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 \
++LIBSUBDIRS=   tkinter \
++              site-packages \
++              asyncio \
++              collections concurrent concurrent/futures encodings \
++              email email/mime \
++              ensurepip ensurepip/_bundled \
++              html json http dbm xmlrpc \
++              sqlite3 \
++              logging csv wsgiref urllib \
++              lib2to3 lib2to3/fixes lib2to3/pgen2 \
++              ctypes ctypes/macholib \
++              idlelib idlelib/Icons \
++              distutils distutils/command $(XMLLIBSUBDIRS) \
++              importlib \
++              turtledemo \
++              multiprocessing multiprocessing/dummy \
++              unittest \
++              venv venv/scripts venv/scripts/posix \
++              curses pydoc_data $(MACHDEPS)
++
++TESTSUBDIRS =         tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
++              test test/test_asyncio \
++              test/test_email test/test_email/data \
++              test/test_json \
+               test/audiodata \
+               test/capath test/data \
+               test/cjkencodings test/decimaltestdata test/xmltestdata \
+@@ -1161,28 +1183,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 \
+-              asyncio \
+-              test/test_asyncio \
+-              collections concurrent concurrent/futures encodings \
+-              email email/mime test/test_email test/test_email/data \
+-              ensurepip ensurepip/_bundled \
+-              html json test/test_json http dbm xmlrpc \
+-              sqlite3 sqlite3/test \
+-              logging csv wsgiref urllib \
+-              lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
++              sqlite3/test \
++              lib2to3/tests \
+               lib2to3/tests/data lib2to3/tests/data/fixers \
+               lib2to3/tests/data/fixers/myfixes \
+-              ctypes ctypes/test ctypes/macholib \
+-              idlelib idlelib/Icons idlelib/idle_test \
+-              distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
+-              importlib test/test_importlib test/test_importlib/builtin \
++              ctypes/test \
++              idlelib/idle_test \
++              distutils/tests \
++              test/test_importlib test/test_importlib/builtin \
+               test/test_importlib/extension test/test_importlib/frozen \
+               test/test_importlib/import_ test/test_importlib/source \
+-              turtledemo \
+-              multiprocessing multiprocessing/dummy \
+-              unittest unittest/test unittest/test/testmock \
+-              venv venv/scripts venv/scripts/posix \
+-              curses pydoc_data $(MACHDEPS)
++              unittest/test unittest/test/testmock
++
++ifeq (@TEST_MODULES@,yes)
++LIBSUBDIRS += $(TESTSUBDIRS)
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
+diff --git a/configure.ac b/configure.ac
+index a3026b8..b7a8836 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2659,6 +2659,12 @@ if test "$posix_threads" = "yes"; then
+ fi
++AC_SUBST(TEST_MODULES)
++
++AC_ARG_ENABLE(test-modules,
++      AS_HELP_STRING([--disable-test-modules], [disable test modules]),
++      [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
++
+ # Check for enable-ipv6
+ AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
+ AC_MSG_CHECKING([if --enable-ipv6 is specified])
+-- 
+2.6.4
+
diff --git a/package/python3/0018-Add-an-option-to-disable-pydoc.patch b/package/python3/0018-Add-an-option-to-disable-pydoc.patch
new file mode 100644 (file)
index 0000000..22f194a
--- /dev/null
@@ -0,0 +1,96 @@
+From 99ef88cb47a396e2c7005e59e50d34e0a60dd3cb Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:47:11 +0100
+Subject: [PATCH] Add an option to disable pydoc
+
+It removes 0.5 MB of data from the target plus the pydoc script
+itself.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile.pre.in | 8 +++++++-
+ configure.ac    | 5 +++++
+ setup.py        | 9 +++++++--
+ 3 files changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 12fae84..5e2333e 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1100,7 +1100,9 @@ bininstall: altbininstall
+       -rm -f $(DESTDIR)$(BINDIR)/idle3
+       (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
+       -rm -f $(DESTDIR)$(BINDIR)/pydoc3
++ifeq (@PYDOC@,yes)
+       (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
++endif
+       -rm -f $(DESTDIR)$(BINDIR)/2to3
+       (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
+       -rm -f $(DESTDIR)$(BINDIR)/pyvenv
+@@ -1151,7 +1153,7 @@ LIBSUBDIRS=      tkinter \
+               multiprocessing multiprocessing/dummy \
+               unittest \
+               venv venv/scripts venv/scripts/posix \
+-              curses pydoc_data $(MACHDEPS)
++              curses $(MACHDEPS)
+ 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 \
+               test/test_importlib/import_ test/test_importlib/source \
+               unittest/test unittest/test/testmock
++ifeq (@PYDOC@,yes)
++LIBSUBDIRS += pydoc_data
++endif
++
+ ifeq (@TEST_MODULES@,yes)
+ LIBSUBDIRS += $(TESTSUBDIRS)
+ endif
+diff --git a/configure.ac b/configure.ac
+index b7a8836..2e75345 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2658,6 +2658,11 @@ if test "$posix_threads" = "yes"; then
+       AC_CHECK_FUNCS(pthread_atfork)
+ fi
++AC_SUBST(PYDOC)
++
++AC_ARG_ENABLE(pydoc,
++      AS_HELP_STRING([--disable-pydoc], [disable pydoc]),
++      [ PYDOC="${enableval}" ], [ PYDOC=yes ])
+ AC_SUBST(TEST_MODULES)
+diff --git a/setup.py b/setup.py
+index 8966779..69198db 100644
+--- a/setup.py
++++ b/setup.py
+@@ -2200,6 +2200,12 @@ def main():
+     # turn off warnings when deprecated modules are imported
+     import warnings
+     warnings.filterwarnings("ignore",category=DeprecationWarning)
++
++    scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3',
++               'Lib/smtpd.py']
++    if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
++        scripts += [ 'Tools/scripts/pydoc3' ]
++
+     setup(# PyPI Metadata (PEP 301)
+           name = "Python",
+           version = sys.version.split()[0],
+@@ -2224,8 +2230,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
+-          scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3",
+-                     "Tools/scripts/2to3", "Tools/scripts/pyvenv"]
++          scripts = scripts,
+         )
+ # --install-platlib
+-- 
+2.6.4
+
diff --git a/package/python3/0019-Add-an-option-to-disable-lib2to3.patch b/package/python3/0019-Add-an-option-to-disable-lib2to3.patch
new file mode 100644 (file)
index 0000000..8a22c0f
--- /dev/null
@@ -0,0 +1,114 @@
+From 4d6bc8497ab740ae23a7091ff91dba06a63ba877 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:48:44 +0100
+Subject: [PATCH] Add an option to disable lib2to3
+
+lib2to3 is a library to convert Python 2.x code to Python 3.x. As
+such, it is probably not very useful on embedded system targets.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile.pre.in | 16 ++++++++++++----
+ configure.ac    |  6 ++++++
+ setup.py        |  5 +++--
+ 3 files changed, 21 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 5e2333e..6656f48 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1104,7 +1104,9 @@ ifeq (@PYDOC@,yes)
+       (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
+ endif
+       -rm -f $(DESTDIR)$(BINDIR)/2to3
++ifeq (@LIB2TO3@,yes)
+       (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
++endif
+       -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 \
+               html json http dbm xmlrpc \
+               sqlite3 \
+               logging csv wsgiref urllib \
+-              lib2to3 lib2to3/fixes lib2to3/pgen2 \
+               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 \
+                 test/test_importlib/namespace_pkgs/module_and_namespace_package \
+                 test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
+               sqlite3/test \
+-              lib2to3/tests \
+-              lib2to3/tests/data lib2to3/tests/data/fixers \
+-              lib2to3/tests/data/fixers/myfixes \
+               ctypes/test \
+               idlelib/idle_test \
+               distutils/tests \
+@@ -1201,6 +1199,14 @@ ifeq (@PYDOC@,yes)
+ LIBSUBDIRS += pydoc_data
+ endif
++ifeq (@LIB2TO3@,yes)
++LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2
++TESTSUBDIRS += lib2to3/tests                  \
++      lib2to3/tests/data                      \
++      lib2to3/tests/data/fixers               \
++      lib2to3/tests/data/fixers/myfixes
++endif
++
+ ifeq (@TEST_MODULES@,yes)
+ LIBSUBDIRS += $(TESTSUBDIRS)
+ endif
+@@ -1296,10 +1302,12 @@ ifeq (@PYO_BUILD@,yes)
+               -d $(LIBDEST)/site-packages -f \
+               -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+ endif
++ifeq (@LIB2TO3@,yes)
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
++endif
+ # 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
+--- a/configure.ac
++++ b/configure.ac
+@@ -2670,6 +2670,12 @@ AC_ARG_ENABLE(test-modules,
+       AS_HELP_STRING([--disable-test-modules], [disable test modules]),
+       [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
++AC_SUBST(LIB2TO3)
++
++AC_ARG_ENABLE(lib2to3,
++      AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
++      [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
++
+ # Check for enable-ipv6
+ 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
+--- a/setup.py
++++ b/setup.py
+@@ -2201,10 +2201,11 @@ def main():
+     import warnings
+     warnings.filterwarnings("ignore",category=DeprecationWarning)
+-    scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3',
+-               'Lib/smtpd.py']
++    scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py']
+     if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
+         scripts += [ 'Tools/scripts/pydoc3' ]
++    if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"):
++        scripts += [ 'Tools/scripts/2to3' ]
+     setup(# PyPI Metadata (PEP 301)
+           name = "Python",
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..26a7b34
--- /dev/null
@@ -0,0 +1,67 @@
+From f218ef22019d4c03427113982edc42beddd05683 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:49:01 +0100
+Subject: [PATCH] Add option to disable the sqlite3 module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile.pre.in | 7 +++++--
+ configure.ac    | 9 +++++++++
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 6656f48..433cac1 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1144,7 +1144,6 @@ LIBSUBDIRS=      tkinter \
+               email email/mime \
+               ensurepip ensurepip/_bundled \
+               html json http dbm xmlrpc \
+-              sqlite3 \
+               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 \
+               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 \
+-              sqlite3/test \
+               ctypes/test \
+               idlelib/idle_test \
+               distutils/tests \
+@@ -1207,6 +1205,11 @@ TESTSUBDIRS += lib2to3/tests                    \
+       lib2to3/tests/data/fixers/myfixes
+ endif
++ifeq (@SQLITE3@,yes)
++LIBSUBDIRS += sqlite3
++TESTSUBDIRS += sqlite3/test
++endif
++
+ ifeq (@TEST_MODULES@,yes)
+ LIBSUBDIRS += $(TESTSUBDIRS)
+ endif
+diff --git a/configure.ac b/configure.ac
+index 0ed6b17..aaffbd6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2658,6 +2658,15 @@ if test "$posix_threads" = "yes"; then
+       AC_CHECK_FUNCS(pthread_atfork)
+ fi
++AC_SUBST(SQLITE3)
++AC_ARG_ENABLE(sqlite3,
++      AS_HELP_STRING([--disable-sqlite3], [disable sqlite3]),
++      [ SQLITE3="${enableval}" ], [ SQLITE3=yes ])
++
++if test "$SQLITE3" = "no" ; then
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
++fi
++
+ AC_SUBST(PYDOC)
+ AC_ARG_ENABLE(pydoc,
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..fc3c9b4
--- /dev/null
@@ -0,0 +1,71 @@
+From 006bf215734ad63007de044fe7803f66f83a4d19 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:49:14 +0100
+Subject: [PATCH] Add an option to disable the tk module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile.pre.in | 11 ++++++++---
+ configure.ac    |  9 +++++++++
+ 2 files changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 433cac1..e492d7b 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1137,7 +1137,7 @@ PLATDIR= plat-$(MACHDEP)
+ EXTRAPLATDIR= @EXTRAPLATDIR@
+ MACHDEPS=     $(PLATDIR) $(EXTRAPLATDIR)
+ 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 \
+               venv venv/scripts venv/scripts/posix \
+               curses $(MACHDEPS)
+-TESTSUBDIRS =         tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
+-              test test/test_asyncio \
++TESTSUBDIRS =         test test/test_asyncio \
+               test/test_email test/test_email/data \
+               test/test_json \
+               test/audiodata \
+@@ -1210,6 +1209,12 @@ LIBSUBDIRS += sqlite3
+ TESTSUBDIRS += sqlite3/test
+ endif
++ifeq (@TK@,yes)
++LIBSUBDIRS += tkinter
++TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \
++      tkinter/test/test_ttk
++endif
++
+ ifeq (@TEST_MODULES@,yes)
+ LIBSUBDIRS += $(TESTSUBDIRS)
+ endif
+diff --git a/configure.ac b/configure.ac
+index aaffbd6..7efd54f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2667,6 +2667,15 @@ if test "$SQLITE3" = "no" ; then
+    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
+ fi
++AC_SUBST(TK)
++AC_ARG_ENABLE(tk,
++      AS_HELP_STRING([--disable-tk], [disable tk]),
++      [ TK="${enableval}" ], [ TK=yes ])
++
++if test "$TK" = "no"; then
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
++fi
++
+ AC_SUBST(PYDOC)
+ AC_ARG_ENABLE(pydoc,
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..de78bb0
--- /dev/null
@@ -0,0 +1,59 @@
+From 42725aef353df06f760f0a47b80001187d04d8b4 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:49:30 +0100
+Subject: [PATCH] Add an option to disable the curses module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile.pre.in | 6 +++++-
+ configure.ac    | 9 +++++++++
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index e492d7b..66b2c45 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1153,7 +1153,7 @@ LIBSUBDIRS=      \
+               multiprocessing multiprocessing/dummy \
+               unittest \
+               venv venv/scripts venv/scripts/posix \
+-              curses $(MACHDEPS)
++              $(MACHDEPS)
+ TESTSUBDIRS =         test test/test_asyncio \
+               test/test_email test/test_email/data \
+@@ -1215,6 +1215,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \
+       tkinter/test/test_ttk
+ endif
++ifeq (@CURSES@,yes)
++LIBSUBDIRS += curses
++endif
++
+ ifeq (@TEST_MODULES@,yes)
+ LIBSUBDIRS += $(TESTSUBDIRS)
+ endif
+diff --git a/configure.ac b/configure.ac
+index 7efd54f..e48f38e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2676,6 +2676,15 @@ if test "$TK" = "no"; then
+    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
+ fi
++AC_SUBST(CURSES)
++AC_ARG_ENABLE(curses,
++      AS_HELP_STRING([--disable-curses], [disable curses]),
++      [ CURSES="${enableval}" ], [ CURSES=yes ])
++
++if test "$CURSES" = "no"; then
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel"
++fi
++
+ AC_SUBST(PYDOC)
+ AC_ARG_ENABLE(pydoc,
+-- 
+2.6.4
+
diff --git a/package/python3/0023-Add-an-option-to-disable-expat.patch b/package/python3/0023-Add-an-option-to-disable-expat.patch
new file mode 100644 (file)
index 0000000..9cb0799
--- /dev/null
@@ -0,0 +1,90 @@
+From f98b83bca09882d27bb04d7dbcd50f9979ad0569 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:49:42 +0100
+Subject: [PATCH] Add an option to disable expat
+
+This patch replaces the existing --with-system-expat option with a
+--with-expat={system,builtin,none} option, which allows to tell Python
+whether we want to use the system expat (already installed), the expat
+builtin the Python sources, or no expat at all (which disables the
+installation of XML modules).
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile.pre.in |  6 +++++-
+ configure.ac    | 18 +++++++++++++-----
+ setup.py        |  2 +-
+ 3 files changed, 19 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 66b2c45..884d5aa 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1147,7 +1147,7 @@ LIBSUBDIRS=      \
+               logging csv wsgiref urllib \
+               ctypes ctypes/macholib \
+               idlelib idlelib/Icons \
+-              distutils distutils/command $(XMLLIBSUBDIRS) \
++              distutils distutils/command \
+               importlib \
+               turtledemo \
+               multiprocessing multiprocessing/dummy \
+@@ -1219,6 +1219,10 @@ ifeq (@CURSES@,yes)
+ LIBSUBDIRS += curses
+ endif
++ifeq (@EXPAT@,yes)
++LIBSUBDIRS += $(XMLLIBSUBDIRS)
++endif
++
+ ifeq (@TEST_MODULES@,yes)
+ LIBSUBDIRS += $(TESTSUBDIRS)
+ endif
+diff --git a/configure.ac b/configure.ac
+index e48f38e..4bbd597 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2355,13 +2355,21 @@ PKG_PROG_PKG_CONFIG
+ AC_SUBST(DISABLED_EXTENSIONS)
+ # Check for use of the system expat library
+-AC_MSG_CHECKING(for --with-system-expat)
+-AC_ARG_WITH(system_expat,
+-            AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library]),
++AC_MSG_CHECKING(for --with-expat)
++AC_ARG_WITH(expat,
++            AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]),
+             [],
+-            [with_system_expat="no"])
++            [with_expat="builtin"])
+-AC_MSG_RESULT($with_system_expat)
++AC_MSG_RESULT($with_expat)
++
++if test "$with_expat" != "none"; then
++   EXPAT=yes
++else
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat"
++   EXPAT=no
++fi
++AC_SUBST(EXPAT)
+ # 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
+--- a/setup.py
++++ b/setup.py
+@@ -1414,7 +1414,7 @@ class PyBuildExt(build_ext):
+         #
+         # More information on Expat can be found at www.libexpat.org.
+         #
+-        if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
++        if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"):
+             expat_inc = []
+             define_macros = []
+             expat_lib = ['expat']
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..b4d7784
--- /dev/null
@@ -0,0 +1,30 @@
+From cf731841e1209c6faa99e2db4cf4c890e7c28080 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:49:55 +0100
+Subject: [PATCH] Add an option to disable CJK codecs
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 4bbd597..05817f0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2675,6 +2675,12 @@ if test "$SQLITE3" = "no" ; then
+    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
+ fi
++AC_ARG_ENABLE(codecs-cjk,
++      AS_HELP_STRING([--disable-codecs-cjk], [disable CJK codecs]),
++      [ if test "$enableval" = "no"; then
++              DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022"
++      fi])
++
+ AC_SUBST(TK)
+ AC_ARG_ENABLE(tk,
+       AS_HELP_STRING([--disable-tk], [disable tk]),
+-- 
+2.6.4
+
diff --git a/package/python3/0025-Add-an-option-to-disable-NIS.patch b/package/python3/0025-Add-an-option-to-disable-NIS.patch
new file mode 100644 (file)
index 0000000..cd6b19d
--- /dev/null
@@ -0,0 +1,33 @@
+From f99823ef41d6f5c8e67b198b04b289d9b6ef8570 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:50:11 +0100
+Subject: [PATCH] Add an option to disable NIS
+
+NIS is not necessarily available in uClibc, so we need an option to
+not compile support for it.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 05817f0..4fb35a8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2681,6 +2681,12 @@ AC_ARG_ENABLE(codecs-cjk,
+               DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022"
+       fi])
++AC_ARG_ENABLE(nis,
++      AS_HELP_STRING([--disable-nis], [disable NIS]),
++      [ if test "$enableval" = "no"; then
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
++        fi])
++
+ AC_SUBST(TK)
+ AC_ARG_ENABLE(tk,
+       AS_HELP_STRING([--disable-tk], [disable tk]),
+-- 
+2.6.4
+
diff --git a/package/python3/0026-Add-an-option-to-disable-unicodedata.patch b/package/python3/0026-Add-an-option-to-disable-unicodedata.patch
new file mode 100644 (file)
index 0000000..a5880f2
--- /dev/null
@@ -0,0 +1,30 @@
+From 4a32e709d128886dab10e59fad60fde005933aff Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:50:27 +0100
+Subject: [PATCH] Add an option to disable unicodedata
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 4fb35a8..58f2dd9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2687,6 +2687,12 @@ AC_ARG_ENABLE(nis,
+            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
+         fi])
++AC_ARG_ENABLE(unicodedata,
++      AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]),
++      [ if test "$enableval" = "no"; then
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata"
++        fi])
++
+ AC_SUBST(TK)
+ AC_ARG_ENABLE(tk,
+       AS_HELP_STRING([--disable-tk], [disable tk]),
+-- 
+2.6.4
+
diff --git a/package/python3/0027-Add-an-option-to-disable-IDLE.patch b/package/python3/0027-Add-an-option-to-disable-IDLE.patch
new file mode 100644 (file)
index 0000000..c2b59e8
--- /dev/null
@@ -0,0 +1,87 @@
+From 9336cf4eb4ded1eaa83da5549e4aba62b34ef888 Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime.ripard@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:50:42 +0100
+Subject: [PATCH] Add an option to disable IDLE
+
+IDLE is an IDE embedded into python, written using Tk, so it doesn't make
+much sense to have it into our build.
+
+Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+---
+ Makefile.pre.in | 7 ++++++-
+ configure.ac    | 6 ++++++
+ setup.py        | 4 +++-
+ 3 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 884d5aa..48b4812 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1098,7 +1098,9 @@ bininstall: altbininstall
+       -rm -f $(DESTDIR)$(LIBPC)/python3.pc
+       (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc)
+       -rm -f $(DESTDIR)$(BINDIR)/idle3
++ifeq (@IDLE@,yes)
+       (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
++endif
+       -rm -f $(DESTDIR)$(BINDIR)/pydoc3
+ ifeq (@PYDOC@,yes)
+       (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
+@@ -1146,7 +1148,6 @@ LIBSUBDIRS=      \
+               html json http dbm xmlrpc \
+               logging csv wsgiref urllib \
+               ctypes ctypes/macholib \
+-              idlelib idlelib/Icons \
+               distutils distutils/command \
+               importlib \
+               turtledemo \
+@@ -1223,6 +1224,10 @@ ifeq (@EXPAT@,yes)
+ LIBSUBDIRS += $(XMLLIBSUBDIRS)
+ endif
++ifeq (@IDLE@,yes)
++LIBSUBDIRS += idlelib idlelib/Icons
++endif
++
+ ifeq (@TEST_MODULES@,yes)
+ LIBSUBDIRS += $(TESTSUBDIRS)
+ endif
+diff --git a/configure.ac b/configure.ac
+index 58f2dd9..0ba25e4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2729,6 +2729,12 @@ AC_ARG_ENABLE(lib2to3,
+       AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
+       [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
++AC_SUBST(IDLE)
++
++AC_ARG_ENABLE(idle3,
++      AS_HELP_STRING([--disable-idle3], [disable idle3 IDE]),
++      [ IDLE="${enableval}" ], [ IDLE=yes ])
++
+ # Check for enable-ipv6
+ 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
+--- a/setup.py
++++ b/setup.py
+@@ -2201,11 +2201,13 @@ def main():
+     import warnings
+     warnings.filterwarnings("ignore",category=DeprecationWarning)
+-    scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py']
++    scripts = ['Lib/smtpd.py']
+     if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
+         scripts += [ 'Tools/scripts/pydoc3' ]
+     if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"):
+         scripts += [ 'Tools/scripts/2to3' ]
++    if not '--disable-idle3' in sysconfig.get_config_var("CONFIG_ARGS"):
++        scripts += [ 'Tools/scripts/idle3' ]
+     setup(# PyPI Metadata (PEP 301)
+           name = "Python",
+-- 
+2.6.4
+
diff --git a/package/python3/0028-Add-an-option-to-disable-decimal.patch b/package/python3/0028-Add-an-option-to-disable-decimal.patch
new file mode 100644 (file)
index 0000000..df85325
--- /dev/null
@@ -0,0 +1,62 @@
+From 8fee92a85c170ac4ce24dda5a960f24b83d6f103 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:51:31 +0100
+Subject: [PATCH] Add an option to disable decimal
+
+This patch replaces the existing --with-system-libmpdec option with a
+--with-libmpdec={system,builtin,none} option, which allows to tell
+Python whether we want to use the system libmpdec (already installed),
+the libmpdec builtin the Python sources, or no libmpdec at all.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.ac | 17 ++++++++++++-----
+ setup.py     |  2 +-
+ 2 files changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0ba25e4..536b9b2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2388,13 +2388,20 @@ AC_SUBST(LIBFFI_INCLUDEDIR)
+ AC_MSG_RESULT($with_system_ffi)
+ # Check for use of the system libmpdec library
+-AC_MSG_CHECKING(for --with-system-libmpdec)
+-AC_ARG_WITH(system_libmpdec,
+-            AS_HELP_STRING([--with-system-libmpdec], [build _decimal module using an installed libmpdec library]),
++AC_MSG_CHECKING(for --with-libmpdec)
++AC_ARG_WITH(libmpdec,
++            AS_HELP_STRING([--with-libmpdec], [select which libmpdec version to use: system, builtin, none]),
+             [],
+-            [with_system_libmpdec="no"])
++            [with_libmpdec="builtin"])
+-AC_MSG_RESULT($with_system_libmpdec)
++AC_MSG_RESULT($with_libmpdec)
++if test "$with_libmpdec" != "none"; then
++   MPDEC=yes
++else
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _decimal"
++   MPDEC=no
++fi
++AC_SUBST(MPDEC)
+ # 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
+--- a/setup.py
++++ b/setup.py
+@@ -1968,7 +1968,7 @@ class PyBuildExt(build_ext):
+     def _decimal_ext(self):
+         extra_compile_args = []
+         undef_macros = []
+-        if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"):
++        if '--with-libmpdec=system' in sysconfig.get_config_var("CONFIG_ARGS"):
+             include_dirs = []
+             libraries = [':libmpdec.so.2']
+             sources = ['_decimal/_decimal.c']
+-- 
+2.6.4
+
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
new file mode 100644 (file)
index 0000000..56b6ae1
--- /dev/null
@@ -0,0 +1,30 @@
+From 53639100c2f7836ce9a51b5e5b9b4ea08ba1dc4e Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:51:58 +0100
+Subject: [PATCH] Add an option to disable the ossaudiodev module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 536b9b2..c1ab3a1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2403,6 +2403,12 @@ else
+ fi
+ AC_SUBST(MPDEC)
++AC_ARG_ENABLE(ossaudiodev,
++      AS_HELP_STRING([--disable-ossaudiodev], [disable OSSAUDIODEV]),
++      [ if test "$enableval" = "no"; then
++        DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ossaudiodev"
++        fi])
++
+ # Check for support for loadable sqlite extensions
+ AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
+ AC_ARG_ENABLE(loadable-sqlite-extensions,
+-- 
+2.6.4
+
diff --git a/package/python3/003-sysconfigdata-install-location.patch b/package/python3/003-sysconfigdata-install-location.patch
deleted file mode 100644 (file)
index cd01ccf..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-Change the install location of _sysconfigdata.py
-
-The _sysconfigdata.py module contains definitions that are needed when
-building Python modules. In cross-compilation mode, when building
-Python extensions for the target, we need to use the _sysconfigdata.py
-of the target Python while executing the host Python.
-
-However until now, the _sysconfigdata.py module was installed in
-build/lib.<arch>-<version> directory, together with a number of
-architecture-specific shared objects, which cannot be used with the
-host Python.
-
-To solve this problem, this patch moves _sysconfigdata.py to a
-separate location, build/sysconfigdata.<arch>-<version>/, and only
-this directory gets added to the PYTHONPATH of the host Python
-interpreter when building Python modules for the target.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -559,6 +559,9 @@
-               rm -f ./pybuilddir.txt ; \
-               exit 1 ; \
-       fi
-+      echo `cat pybuilddir.txt`/sysconfigdata > pysysconfigdatadir.txt
-+      mkdir -p `cat pysysconfigdatadir.txt`
-+      cp `cat pybuilddir.txt`/_sysconfigdata.py `cat pysysconfigdatadir.txt`
- # Build the shared modules
- # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
-@@ -1197,7 +1200,7 @@
-               else    true; \
-               fi; \
-       done
--      @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \
-+      @for i in $(srcdir)/Lib/*.py ; \
-       do \
-               if test -x $$i; then \
-                       $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
-@@ -1207,6 +1210,11 @@
-                       echo $(INSTALL_DATA) $$i $(LIBDEST); \
-               fi; \
-       done
-+      $(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \
-+              $(DESTDIR)$(LIBDEST)
-+      mkdir -p $(DESTDIR)$(LIBDEST)/sysconfigdata
-+      $(INSTALL_DATA) `cat pysysconfigdatadir.txt`/_sysconfigdata.py \
-+              $(DESTDIR)$(LIBDEST)/sysconfigdata
-       @for d in $(LIBSUBDIRS); \
-       do \
-               a=$(srcdir)/Lib/$$d; \
-@@ -1533,7 +1541,7 @@
-       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
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -70,7 +70,7 @@
-           AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
-       fi
-         AC_MSG_RESULT($interp)
--      PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
-+      PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pysysconfigdatadir.txt && echo $(abs_builddir)/`cat pysysconfigdatadir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
-     fi
- elif test "$cross_compiling" = maybe; then
-     AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
diff --git a/package/python3/005-pyc-pyo-conditional.patch b/package/python3/005-pyc-pyo-conditional.patch
deleted file mode 100644 (file)
index 0d60ff6..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1248,24 +1248,32 @@
-               $(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) \
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -939,6 +939,18 @@
- 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
diff --git a/package/python3/006-cross-compile-getaddrinfo.patch b/package/python3/006-cross-compile-getaddrinfo.patch
deleted file mode 100644 (file)
index c530883..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Disable buggy_getaddrinfo configure test when cross-compiling with IPv6 support
-
-Signed-off-by: Vanya Sergeev <vsergeev at gmail.com>
-
----
- configure.ac |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -3432,7 +3432,7 @@
- AC_MSG_RESULT($ac_cv_buggy_getaddrinfo)
--if test $have_getaddrinfo = no || test "$ac_cv_buggy_getaddrinfo" = yes
-+if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes
- then
-       if test $ipv6 = yes
-       then
diff --git a/package/python3/007-disable-extensions.patch b/package/python3/007-disable-extensions.patch
deleted file mode 100644 (file)
index ce931f7..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-Add infrastructure to disable the build of certain extensions
-
-Some of the extensions part of the Python core have dependencies on
-external libraries (sqlite, tk, etc.) or are relatively big and not
-necessarly always useful (CJK codecs for example). By extensions, we
-mean part of Python modules that are written in C and therefore
-compiled to binary code.
-
-Therefore, we introduce a small infrastructure that allows to disable
-some of those extensions. This can be done inside the configure.ac by
-adding values to the DISABLED_EXTENSIONS variable (which is a
-word-separated list of extensions).
-
-The implementation works as follow :
-
- * configure.ac defines a DISABLED_EXTENSIONS variable, which is
-   substituted (so that when Makefile.pre is generated from
-   Makefile.pre.in, the value of the variable is substituted). For
-   now, this DISABLED_EXTENSIONS variable is empty, later patches will
-   use it.
-
- * Makefile.pre.in passes the DISABLED_EXTENSIONS value down to the
-   variables passed in the environment when calling the setup.py
-   script that actually builds and installs those extensions.
-
- * setup.py is modified so that the existing "disabled_module_list" is
-   filled with those pre-disabled extensions listed in
-   DISABLED_EXTENSIONS.
-
-Patch ported to python2.7 by Maxime Ripard <ripard@archos.com>, and
-then extended by Thomas Petazzoni
-<thomas.petazzoni@free-electrons.com>.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile.pre.in |    4 ++++
- configure.ac    |    2 ++
- setup.py        |    5 ++++-
- 3 files changed, 10 insertions(+), 1 deletion(-)
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -180,6 +180,8 @@
- # configure script arguments
- CONFIG_ARGS=  @CONFIG_ARGS@
-+# disabled extensions
-+DISABLED_EXTENSIONS=  @DISABLED_EXTENSIONS@
- # Subdirectories with code
- SRCDIRS=      @SRCDIRS@
-@@ -577,6 +579,7 @@
-       esac; \
-       $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
-               _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
-+              DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
-               $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
- # Build static library
-@@ -1387,7 +1390,8 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall: sharedmods
--      $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
-+      $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
-+              $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
-               --prefix=$(prefix) \
-               --install-scripts=$(BINDIR) \
-               --install-platlib=$(DESTSHARED) \
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2369,6 +2369,8 @@
- PKG_PROG_PKG_CONFIG
-+AC_SUBST(DISABLED_EXTENSIONS)
-+
- # Check for use of the system expat library
- AC_MSG_CHECKING(for --with-system-expat)
- AC_ARG_WITH(system_expat,
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -39,7 +39,10 @@
- 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.
--disabled_module_list = []
-+try:
-+    disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ")
-+except KeyError:
-+    disabled_module_list = list()
- def add_dir_to_list(dirlist, dir):
-     """Add the directory 'dir' to the list 'dirlist' (after any relative
diff --git a/package/python3/008-distutils-sysconfig-use-sysconfigdata.patch b/package/python3/008-distutils-sysconfig-use-sysconfigdata.patch
deleted file mode 100644 (file)
index d0758b1..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-Index: b/Lib/distutils/sysconfig.py
-===================================================================
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -423,40 +423,11 @@
- _config_vars = None
- def _init_posix():
--    """Initialize the module as appropriate for POSIX systems."""
--    g = {}
--    # load the installed Makefile:
--    try:
--        filename = get_makefile_filename()
--        parse_makefile(filename, g)
--    except OSError as msg:
--        my_msg = "invalid Python installation: unable to open %s" % filename
--        if hasattr(msg, "strerror"):
--            my_msg = my_msg + " (%s)" % msg.strerror
--
--        raise DistutilsPlatformError(my_msg)
--
--    # load the installed pyconfig.h:
--    try:
--        filename = get_config_h_filename()
--        with open(filename) as file:
--            parse_config_h(file, g)
--    except OSError as msg:
--        my_msg = "invalid Python installation: unable to open %s" % filename
--        if hasattr(msg, "strerror"):
--            my_msg = my_msg + " (%s)" % msg.strerror
--
--        raise DistutilsPlatformError(my_msg)
--
--    # On AIX, there are wrong paths to the linker scripts in the Makefile
--    # -- these paths are relative to the Python source, but when installed
--    # the scripts are in another directory.
--    if python_build:
--        g['LDSHARED'] = g['BLDSHARED']
--
-+    # _sysconfigdata is generated at build time, see the sysconfig module
-+    from _sysconfigdata import build_time_vars
-     global _config_vars
--    _config_vars = g
--
-+    _config_vars = {}
-+    _config_vars.update(build_time_vars)
- def _init_nt():
-     """Initialize the module as appropriate for NT"""
diff --git a/package/python3/009-distutils-use-python-sysroot.patch b/package/python3/009-distutils-use-python-sysroot.patch
deleted file mode 100644 (file)
index 06f2039..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-Adjust library/header paths for cross-compilation
-
-When cross-compiling third-party extensions, the get_python_inc() or
-get_python_lib() can be called, to return the path to headers or
-libraries. However, they use the sys.prefix of the host Python, which
-returns incorrect paths when cross-compiling (paths pointing to host
-headers and libraries).
-
-In order to fix this, we introduce the _python_sysroot, _python_prefix
-and _python_exec_prefix variables, that allow to override these
-values, and get correct header/library paths when cross-compiling
-third-party Python modules.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Lib/distutils/sysconfig.py
-===================================================================
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -16,10 +16,17 @@
- from .errors import DistutilsPlatformError
- # These are needed in a couple of spots, so just compute them once.
--PREFIX = os.path.normpath(sys.prefix)
--EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
--BASE_PREFIX = os.path.normpath(sys.base_prefix)
--BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
-+if "_python_sysroot" in os.environ:
-+    _sysroot=os.environ.get('_python_sysroot')
-+    PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix'))
-+    EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix'))
-+    BASE_PREFIX = PREFIX
-+    BASE_EXEC_PREFIX = EXEC_PREFIX
-+else:
-+    PREFIX = os.path.normpath(sys.prefix)
-+    EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
-+    BASE_PREFIX = os.path.normpath(sys.base_prefix)
-+    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,
-Index: b/Lib/distutils/command/build_ext.py
-===================================================================
---- a/Lib/distutils/command/build_ext.py
-+++ b/Lib/distutils/command/build_ext.py
-@@ -239,7 +239,10 @@
-         if (sysconfig.get_config_var('Py_ENABLE_SHARED')):
-             if not sysconfig.python_build:
-                 # building third party extensions
--                self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
-+                libdir = sysconfig.get_config_var('LIBDIR')
-+                if "_python_sysroot" in os.environ:
-+                    libdir = os.environ.get("_python_sysroot") + libdir
-+                self.library_dirs.append(libdir)
-             else:
-                 # building python standard extensions
-                 self.library_dirs.append('.')
diff --git a/package/python3/010-no-termcap-host-path.patch b/package/python3/010-no-termcap-host-path.patch
deleted file mode 100644 (file)
index 46c8a77..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-Don't look in /usr/lib/termcap for libraries
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -733,12 +733,9 @@
-                 pass # Issue 7384: Already linked against curses or tinfo.
-             elif curses_library:
-                 readline_libs.append(curses_library)
--            elif self.compiler.find_library_file(lib_dirs +
--                                                     ['/usr/lib/termcap'],
--                                                     'termcap'):
-+            elif self.compiler.find_library_file(lib_dirs, 'termcap'):
-                 readline_libs.append('termcap')
-             exts.append( Extension('readline', ['readline.c'],
--                                   library_dirs=['/usr/lib/termcap'],
-                                    extra_link_args=readline_extra_link_args,
-                                    libraries=readline_libs) )
-         else:
diff --git a/package/python3/012-dont-add-multiarch-path.patch b/package/python3/012-dont-add-multiarch-path.patch
deleted file mode 100644 (file)
index f32372c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-Don't add multiarch paths
-
-The add_multiarch_paths() function leads, in certain build
-environments, to the addition of host header paths to the CFLAGS,
-which is not appropriate for cross-compilation. This patch fixes that
-by simply removing the call to add_multiarch_paths() when we're
-cross-compiling.
-
-Investigation done by David <buildroot-2014@inbox.com>.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -456,10 +456,10 @@
-         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')
-+            self.add_multiarch_paths()
-         # only change this for cross builds for 3.3, issues on Mageia
-         if cross_compiling:
-             self.add_gcc_paths()
--        self.add_multiarch_paths()
-         # Add paths specified in the environment variables LDFLAGS and
-         # CPPFLAGS for header and library files.
diff --git a/package/python3/013-abort-on-failed-modules.patch b/package/python3/013-abort-on-failed-modules.patch
deleted file mode 100644 (file)
index 5ad86fb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Abort on failed module build
-
-When building a Python module fails, the setup.py script currently
-doesn't exit with an error, and simply continues. This is not a really
-nice behavior, so this patch changes setup.py to abort with an error,
-so that the build issue is clearly noticeable.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -284,6 +284,7 @@
-             print("Failed to build these modules:")
-             print_three_column(failed)
-             print()
-+            sys.exit(1)
-     def build_extension(self, ext):
diff --git a/package/python3/014-serial-ioctl-workaround.patch b/package/python3/014-serial-ioctl-workaround.patch
deleted file mode 100644 (file)
index e4aae00..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Serial ioctl() workaround
-
-The ioctls.h of some architectures (notably xtensa) references structs from
-linux/serial.h. Make sure to include this header as well.
-
-Also, undef TIOCTTYGSTRUCT that require reference to internal kernel tty_struct,
-but isn't actually referenced in modern kernels.
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
-Index: b/Modules/termios.c
-===================================================================
---- a/Modules/termios.c
-+++ b/Modules/termios.c
-@@ -9,7 +9,9 @@
- #endif
- #include <termios.h>
-+#include <linux/serial.h>
- #include <sys/ioctl.h>
-+#undef TIOCTTYGSTRUCT
- /* HP-UX requires that this be included to pick up MDCD, MCTS, MDSR,
-  * MDTR, MRI, and MRTS (appearantly used internally by some things
diff --git a/package/python3/015-distutils-scripts-dont-adjust-shebang.patch b/package/python3/015-distutils-scripts-dont-adjust-shebang.patch
deleted file mode 100644 (file)
index ed2f193..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Do not adjust the shebang of Python scripts for cross-compilation
-
-The copy_scripts() method in distutils copies the scripts listed in
-the setup file and adjusts the first line to refer to the current
-Python interpreter. When cross-compiling, this means that the adjusted
-shebang refers to the host Python interpreter.
-
-This patch modifies copy_scripts() to preserve the shebang when
-cross-compilation is detected.
-
-Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
-
-Index: b/Lib/distutils/command/build_scripts.py
-===================================================================
---- a/Lib/distutils/command/build_scripts.py
-+++ b/Lib/distutils/command/build_scripts.py
-@@ -91,7 +91,7 @@
-                     adjust = True
-                     post_interp = match.group(1) or b''
--            if adjust:
-+            if adjust and not '_python_sysroot' in os.environ:
-                 log.info("copying and adjusting %s -> %s", script,
-                          self.build_dir)
-                 updated_files.append(outfile)
diff --git a/package/python3/017-python-config-include-libdir.patch b/package/python3/017-python-config-include-libdir.patch
deleted file mode 100644 (file)
index 46d4633..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-From 50f34d2cac63b6bf0935294a7d63d9451714f4c4 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <peter@korsgaard.com>
-Date: Thu, 20 Nov 2014 13:24:59 +0100
-Subject: [PATCH] Misc/python-config.sh.in: ensure sed invocations only match
- beginning of strings
-
-The build/real prefix handling using sed breaks if build != real and the
-standard include / lib directories are used ($prefix/include and $prefix/lib).
-
-E.G.
-
-prefix_build="/usr", libdir="$prefix/lib", includedir="$prefix/include".
-
-If this gets installed with make DESTDIR="/foo" install, then we end up with
-prefix_real = prefix = "/foo/usr" as expected, but
-includedir="/foo/foo/usr/include" and libdir="/foo/foo/usr/lib" because of
-the double sed invocation (prefix is already expanded).  Work around it by
-ensuring we only match the beginning of the string.
-
-Submitted upstream: http://bugs.python.org/issue22907
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- Misc/python-config.sh.in | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-Index: b/Misc/python-config.sh.in
-===================================================================
---- a/Misc/python-config.sh.in
-+++ b/Misc/python-config.sh.in
-@@ -29,12 +29,12 @@
- # Use sed to fix paths from their built-to locations to their installed-to
- # locations.
--prefix=$(echo "$prefix_build" | sed "s#$prefix_build#$prefix_real#")
-+prefix=$(echo "$prefix_build" | sed "s#^$prefix_build#$prefix_real#")
- exec_prefix_build="@exec_prefix@"
--exec_prefix=$(echo "$exec_prefix_build" | sed "s#$exec_prefix_build#$prefix_real#")
--includedir=$(echo "@includedir@" | sed "s#$prefix_build#$prefix_real#")
--libdir=$(echo "@libdir@" | sed "s#$prefix_build#$prefix_real#")
--CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix_build#$prefix_real#")
-+exec_prefix=$(echo "$exec_prefix_build" | sed "s#^$exec_prefix_build#$prefix_real#")
-+includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#")
-+libdir=$(echo "@libdir@" | sed "s#^$prefix_build#$prefix_real#")
-+CFLAGS=$(echo "@CFLAGS@" | sed "s#^$prefix_build#$prefix_real#")
- VERSION="@VERSION@"
- LIBM="@LIBM@"
- LIBC="@LIBC@"
-@@ -48,7 +48,7 @@
- PY_ENABLE_SHARED="@PY_ENABLE_SHARED@"
- LDVERSION="@LDVERSION@"
- 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@"
- PYTHONFRAMEWORK="@PYTHONFRAMEWORK@"
- INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
diff --git a/package/python3/018-ncursesw-remove-wrong-includedir.patch b/package/python3/018-ncursesw-remove-wrong-includedir.patch
deleted file mode 100644 (file)
index 1c26438..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Do not harcode invalid path to ncursesw headers
-
-Adding /usr/include/ncursesw is obviously invalid when
-cross-compiling. Since the ncursesw headers are no longer installed in
-usr/include/ncursesw/, but directly in usr/include, there is anyway no
-need for a special header path.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -1276,7 +1276,6 @@
-         panel_library = 'panel'
-         if curses_library == 'ncursesw':
-             curses_defines.append(('HAVE_NCURSESW', '1'))
--            curses_includes.append('/usr/include/ncursesw')
-             # Bug 1464056: If _curses.so links with ncursesw,
-             # _curses_panel.so must link with panelw.
-             panel_library = 'panelw'
diff --git a/package/python3/019-fix-add-gcc-paths-logic.patch b/package/python3/019-fix-add-gcc-paths-logic.patch
deleted file mode 100644 (file)
index 179a29a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-Override system locale and set to default when adding gcc paths
-
-Forces the use of the default locale in the function
-add_gcc_paths, which is called when cross compiling to add the
-include and library paths. This is necessary because otherwise
-the gcc output is localized and the output parsing fails, which
-results in no paths added and detect_modules not able to find
-any system library (eg. libz, libssl, etc.)
-
-[Thomas: patch taken from https://bugs.python.org/issue23767.]
-
-Signed-off-by: Samuel Cabrero <samuelcabrero@gmail.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -423,7 +423,7 @@
-         tmpfile = os.path.join(self.build_temp, 'gccpaths')
-         if not os.path.exists(self.build_temp):
-             os.makedirs(self.build_temp)
--        ret = os.system('%s -E -v - </dev/null 2>%s 1>/dev/null' % (gcc, tmpfile))
-+        ret = os.system('LC_ALL=C %s -E -v - </dev/null 2>%s 1>/dev/null' % (gcc, tmpfile))
-         is_gcc = False
-         in_incdirs = False
-         inc_dirs = []
diff --git a/package/python3/020-importlib-no-pep3147.patch b/package/python3/020-importlib-no-pep3147.patch
deleted file mode 100644 (file)
index 779b5e2..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-Add importlib fix for PEP 3147 issue
-
-Python 3 has a new standard for installing .pyc file, called PEP
-3147. Unfortunately, this standard requires both the .py and .pyc
-files to be installed for a Python module to be found. This is quite
-annoying on space-constrained embedded systems, since the .py file is
-technically not required for execution.
-
-This patch changes cache_from_source() and source_from_cache() in
-importlib to get rid of the "__pycache__" directory.
-This effectively disables PEP 3147 for:
-
-* The python standard library
-* Packages built with distutils or setuptools
-* Packages built with automake that use the `py-compile` helper
-
-Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
-
-diff -purN a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
---- a/Lib/importlib/_bootstrap.py      2015-02-25 12:27:44.000000000 +0100
-+++ b/Lib/importlib/_bootstrap.py      2015-08-27 17:33:26.167191059 +0200
-@@ -444,8 +444,6 @@ def cache_from_source(path, debug_overri
-     If debug_override is not None, then it must be a boolean and is used in
-     place of sys.flags.optimize.
--    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_overri
-         suffixes = OPTIMIZED_BYTECODE_SUFFIXES
-     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)
- def source_from_cache(path):
-     """Given the path to a .pyc./.pyo 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
--    sys.implementation.cache_tag is None then NotImplementedError is raised.
-+    the .py file calculated to correspond to the .pyc/.pyo file.
-     """
--    if sys.implementation.cache_tag is None:
--        raise NotImplementedError('sys.implementation.cache_tag is None')
--    head, pycache_filename = _path_split(path)
--    head, pycache = _path_split(head)
--    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 '
--                         '{!r}'.format(pycache_filename))
--    base_filename = pycache_filename.partition('.')[0]
-+    head, filename = _path_split(path)
-+    base_filename = filename.partition('.')[0]
-     return _path_join(head, base_filename + SOURCE_SUFFIXES[0])
diff --git a/package/python3/100-optional-test-modules.patch b/package/python3/100-optional-test-modules.patch
deleted file mode 100644 (file)
index 765e937..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-Add an option to disable installation of test modules
-
-The Python standard distribution comes with many test modules, that
-are not necessarly useful on embedded targets.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |   50 ++++++++++++++++++++++++++++++++------------------
- configure.ac    |    6 ++++++
- 2 files changed, 38 insertions(+), 18 deletions(-)
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1136,8 +1136,30 @@
- EXTRAPLATDIR= @EXTRAPLATDIR@
- MACHDEPS=     $(PLATDIR) $(EXTRAPLATDIR)
- 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 \
-+LIBSUBDIRS=   tkinter \
-+              site-packages \
-+              asyncio \
-+              collections concurrent concurrent/futures encodings \
-+              email email/mime \
-+              ensurepip ensurepip/_bundled \
-+              html json http dbm xmlrpc \
-+              sqlite3 \
-+              logging csv wsgiref urllib \
-+              lib2to3 lib2to3/fixes lib2to3/pgen2 \
-+              ctypes ctypes/macholib \
-+              idlelib idlelib/Icons \
-+              distutils distutils/command $(XMLLIBSUBDIRS) \
-+              importlib \
-+              turtledemo \
-+              multiprocessing multiprocessing/dummy \
-+              unittest \
-+              venv venv/scripts venv/scripts/posix \
-+              curses pydoc_data $(MACHDEPS)
-+
-+TESTSUBDIRS =         tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
-+              test test/test_asyncio \
-+              test/test_email test/test_email/data \
-+              test/test_json \
-               test/audiodata \
-               test/capath test/data \
-               test/cjkencodings test/decimaltestdata test/xmltestdata \
-@@ -1164,28 +1186,22 @@
-               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 \
--              asyncio \
--              test/test_asyncio \
--              collections concurrent concurrent/futures encodings \
--              email email/mime test/test_email test/test_email/data \
--              ensurepip ensurepip/_bundled \
--              html json test/test_json http dbm xmlrpc \
--              sqlite3 sqlite3/test \
--              logging csv wsgiref urllib \
--              lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
-+              sqlite3/test \
-+              lib2to3/tests \
-               lib2to3/tests/data lib2to3/tests/data/fixers \
-               lib2to3/tests/data/fixers/myfixes \
--              ctypes ctypes/test ctypes/macholib \
--              idlelib idlelib/Icons idlelib/idle_test \
--              distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
--              importlib test/test_importlib test/test_importlib/builtin \
-+              ctypes/test \
-+              idlelib/idle_test \
-+              distutils/tests \
-+              test/test_importlib test/test_importlib/builtin \
-               test/test_importlib/extension test/test_importlib/frozen \
-               test/test_importlib/import_ test/test_importlib/source \
--              turtledemo \
--              multiprocessing multiprocessing/dummy \
--              unittest unittest/test unittest/test/testmock \
--              venv venv/scripts venv/scripts/posix \
--              curses pydoc_data $(MACHDEPS)
-+              unittest/test unittest/test/testmock
-+
-+ifeq (@TEST_MODULES@,yes)
-+LIBSUBDIRS += $(TESTSUBDIRS)
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2676,6 +2676,12 @@
- fi
-+AC_SUBST(TEST_MODULES)
-+
-+AC_ARG_ENABLE(test-modules,
-+      AS_HELP_STRING([--disable-test-modules], [disable test modules]),
-+      [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
-+
- # Check for enable-ipv6
- AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
- AC_MSG_CHECKING([if --enable-ipv6 is specified])
diff --git a/package/python3/101-optional-pydoc.patch b/package/python3/101-optional-pydoc.patch
deleted file mode 100644 (file)
index a1b63d5..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-Add an option to disable pydoc
-
-It removes 0.5 MB of data from the target plus the pydoc script
-itself.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |    8 +++++++-
- configure.ac    |    5 +++++
- setup.py        |    9 +++++++--
- 3 files changed, 19 insertions(+), 3 deletions(-)
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1103,7 +1103,9 @@
-       -rm -f $(DESTDIR)$(BINDIR)/idle3
-       (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
-       -rm -f $(DESTDIR)$(BINDIR)/pydoc3
-+ifeq (@PYDOC@,yes)
-       (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
-+endif
-       -rm -f $(DESTDIR)$(BINDIR)/2to3
-       (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
-       -rm -f $(DESTDIR)$(BINDIR)/pyvenv
-@@ -1154,7 +1156,7 @@
-               multiprocessing multiprocessing/dummy \
-               unittest \
-               venv venv/scripts venv/scripts/posix \
--              curses pydoc_data $(MACHDEPS)
-+              curses $(MACHDEPS)
- TESTSUBDIRS =         tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
-               test test/test_asyncio \
-@@ -1198,6 +1200,10 @@
-               test/test_importlib/import_ test/test_importlib/source \
-               unittest/test unittest/test/testmock
-+ifeq (@PYDOC@,yes)
-+LIBSUBDIRS += pydoc_data
-+endif
-+
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS += $(TESTSUBDIRS)
- endif
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2675,6 +2675,11 @@
-       AC_CHECK_FUNCS(pthread_atfork)
- fi
-+AC_SUBST(PYDOC)
-+
-+AC_ARG_ENABLE(pydoc,
-+      AS_HELP_STRING([--disable-pydoc], [disable pydoc]),
-+      [ PYDOC="${enableval}" ], [ PYDOC=yes ])
- AC_SUBST(TEST_MODULES)
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -2200,6 +2200,12 @@
-     # turn off warnings when deprecated modules are imported
-     import warnings
-     warnings.filterwarnings("ignore",category=DeprecationWarning)
-+
-+    scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3',
-+               'Lib/smtpd.py']
-+    if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
-+        scripts += [ 'Tools/scripts/pydoc3' ]
-+
-     setup(# PyPI Metadata (PEP 301)
-           name = "Python",
-           version = sys.version.split()[0],
-@@ -2224,8 +2230,7 @@
-           # 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
--          scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3",
--                     "Tools/scripts/2to3", "Tools/scripts/pyvenv"]
-+          scripts = scripts,
-         )
- # --install-platlib
diff --git a/package/python3/102-optional-2to3.patch b/package/python3/102-optional-2to3.patch
deleted file mode 100644 (file)
index 4181456..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-Add an option to disable lib2to3
-
-lib2to3 is a library to convert Python 2.x code to Python 3.x. As
-such, it is probably not very useful on embedded system targets.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |   18 ++++++++++++++----
- configure.ac    |    6 ++++++
- setup.py        |    5 +++--
- 3 files changed, 23 insertions(+), 6 deletions(-)
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1107,7 +1107,9 @@
-       (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
- endif
-       -rm -f $(DESTDIR)$(BINDIR)/2to3
-+ifeq (@LIB2TO3@,yes)
-       (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
-+endif
-       -rm -f $(DESTDIR)$(BINDIR)/pyvenv
-       (cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv)
-       if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
-@@ -1147,7 +1149,6 @@
-               html json http dbm xmlrpc \
-               sqlite3 \
-               logging csv wsgiref urllib \
--              lib2to3 lib2to3/fixes lib2to3/pgen2 \
-               ctypes ctypes/macholib \
-               idlelib idlelib/Icons \
-               distutils distutils/command $(XMLLIBSUBDIRS) \
-@@ -1189,9 +1190,6 @@
-                 test/test_importlib/namespace_pkgs/module_and_namespace_package \
-                 test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
-               sqlite3/test \
--              lib2to3/tests \
--              lib2to3/tests/data lib2to3/tests/data/fixers \
--              lib2to3/tests/data/fixers/myfixes \
-               ctypes/test \
-               idlelib/idle_test \
-               distutils/tests \
-@@ -1204,6 +1202,14 @@
- LIBSUBDIRS += pydoc_data
- endif
-+ifeq (@LIB2TO3@,yes)
-+LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2
-+TESTSUBDIRS += lib2to3/tests                  \
-+      lib2to3/tests/data                      \
-+      lib2to3/tests/data/fixers               \
-+      lib2to3/tests/data/fixers/myfixes
-+endif
-+
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS += $(TESTSUBDIRS)
- endif
-@@ -1299,10 +1305,12 @@
-               -d $(LIBDEST)/site-packages -f $(STDLIB_CACHE_FLAGS) \
-               -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- endif
-+ifeq (@LIB2TO3@,yes)
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-               $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-               $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
-+endif
- # Create the PLATDIR source directory, if one wasn't distributed..
- $(srcdir)/Lib/$(PLATDIR):
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -2201,10 +2201,11 @@
-     import warnings
-     warnings.filterwarnings("ignore",category=DeprecationWarning)
--    scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3',
--               'Lib/smtpd.py']
-+    scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py']
-     if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
-         scripts += [ 'Tools/scripts/pydoc3' ]
-+    if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"):
-+        scripts += [ 'Tools/scripts/2to3' ]
-     setup(# PyPI Metadata (PEP 301)
-           name = "Python",
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2687,6 +2687,12 @@
-       AS_HELP_STRING([--disable-test-modules], [disable test modules]),
-       [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
-+AC_SUBST(LIB2TO3)
-+
-+AC_ARG_ENABLE(lib2to3,
-+      AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
-+      [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
-+
- # Check for enable-ipv6
- AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
- AC_MSG_CHECKING([if --enable-ipv6 is specified])
diff --git a/package/python3/103-optional-sqlite.patch b/package/python3/103-optional-sqlite.patch
deleted file mode 100644 (file)
index f8e5352..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-Add option to disable the sqlite3 module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |    9 +++++++--
- configure.ac    |    9 +++++++++
- 2 files changed, 16 insertions(+), 2 deletions(-)
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2675,6 +2675,15 @@
-       AC_CHECK_FUNCS(pthread_atfork)
- fi
-+AC_SUBST(SQLITE3)
-+AC_ARG_ENABLE(sqlite3,
-+      AS_HELP_STRING([--disable-sqlite3], [disable sqlite3]),
-+      [ SQLITE3="${enableval}" ], [ SQLITE3=yes ])
-+
-+if test "$SQLITE3" = "no" ; then
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
-+fi
-+
- AC_SUBST(PYDOC)
- AC_ARG_ENABLE(pydoc,
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1147,7 +1147,6 @@
-               email email/mime \
-               ensurepip ensurepip/_bundled \
-               html json http dbm xmlrpc \
--              sqlite3 \
-               logging csv wsgiref urllib \
-               ctypes ctypes/macholib \
-               idlelib idlelib/Icons \
-@@ -1189,7 +1188,6 @@
-               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 \
--              sqlite3/test \
-               ctypes/test \
-               idlelib/idle_test \
-               distutils/tests \
-@@ -1210,6 +1208,11 @@
-       lib2to3/tests/data/fixers/myfixes
- endif
-+ifeq (@SQLITE3@,yes)
-+LIBSUBDIRS += sqlite3
-+TESTSUBDIRS += sqlite3/test
-+endif
-+
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS += $(TESTSUBDIRS)
- endif
diff --git a/package/python3/104-optional-tk.patch b/package/python3/104-optional-tk.patch
deleted file mode 100644 (file)
index 8a852c5..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-Add an option to disable the tk module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |   14 +++++++++++---
- configure.ac    |    9 +++++++++
- 2 files changed, 20 insertions(+), 3 deletions(-)
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1140,7 +1140,7 @@
- EXTRAPLATDIR= @EXTRAPLATDIR@
- MACHDEPS=     $(PLATDIR) $(EXTRAPLATDIR)
- XMLLIBSUBDIRS=  xml xml/dom xml/etree xml/parsers xml/sax
--LIBSUBDIRS=   tkinter \
-+LIBSUBDIRS=   \
-               site-packages \
-               asyncio \
-               collections concurrent concurrent/futures encodings \
-@@ -1158,8 +1158,7 @@
-               venv venv/scripts venv/scripts/posix \
-               curses $(MACHDEPS)
--TESTSUBDIRS =         tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
--              test test/test_asyncio \
-+TESTSUBDIRS =         test test/test_asyncio \
-               test/test_email test/test_email/data \
-               test/test_json \
-               test/audiodata \
-@@ -1213,6 +1212,12 @@
- TESTSUBDIRS += sqlite3/test
- endif
-+ifeq (@TK@,yes)
-+LIBSUBDIRS += tkinter
-+TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \
-+      tkinter/test/test_ttk
-+endif
-+
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS += $(TESTSUBDIRS)
- endif
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2684,6 +2684,15 @@
-    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
- fi
-+AC_SUBST(TK)
-+AC_ARG_ENABLE(tk,
-+      AS_HELP_STRING([--disable-tk], [disable tk]),
-+      [ TK="${enableval}" ], [ TK=yes ])
-+
-+if test "$TK" = "no"; then
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
-+fi
-+
- AC_SUBST(PYDOC)
- AC_ARG_ENABLE(pydoc,
diff --git a/package/python3/105-optional-curses.patch b/package/python3/105-optional-curses.patch
deleted file mode 100644 (file)
index 72979cf..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-Add an option to disable the curses module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |    6 +++++-
- configure.ac    |    9 +++++++++
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1156,7 +1156,7 @@
-               multiprocessing multiprocessing/dummy \
-               unittest \
-               venv venv/scripts venv/scripts/posix \
--              curses $(MACHDEPS)
-+              $(MACHDEPS)
- TESTSUBDIRS =         test test/test_asyncio \
-               test/test_email test/test_email/data \
-@@ -1218,6 +1218,10 @@
-       tkinter/test/test_ttk
- endif
-+ifeq (@CURSES@,yes)
-+LIBSUBDIRS += curses
-+endif
-+
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS += $(TESTSUBDIRS)
- endif
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2693,6 +2693,15 @@
-    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
- fi
-+AC_SUBST(CURSES)
-+AC_ARG_ENABLE(curses,
-+      AS_HELP_STRING([--disable-curses], [disable curses]),
-+      [ CURSES="${enableval}" ], [ CURSES=yes ])
-+
-+if test "$CURSES" = "no"; then
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel"
-+fi
-+
- AC_SUBST(PYDOC)
- AC_ARG_ENABLE(pydoc,
diff --git a/package/python3/106-optional-expat.patch b/package/python3/106-optional-expat.patch
deleted file mode 100644 (file)
index 0bdd6f9..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-Add an option to disable expat
-
-This patch replaces the existing --with-system-expat option with a
---with-expat={system,builtin,none} option, which allows to tell Python
-whether we want to use the system expat (already installed), the expat
-builtin the Python sources, or no expat at all (which disables the
-installation of XML modules).
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |    6 +++++-
- configure.ac    |   18 +++++++++++++-----
- setup.py        |    2 +-
- 3 files changed, 19 insertions(+), 7 deletions(-)
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1150,7 +1150,7 @@
-               logging csv wsgiref urllib \
-               ctypes ctypes/macholib \
-               idlelib idlelib/Icons \
--              distutils distutils/command $(XMLLIBSUBDIRS) \
-+              distutils distutils/command \
-               importlib \
-               turtledemo \
-               multiprocessing multiprocessing/dummy \
-@@ -1222,6 +1222,10 @@
- LIBSUBDIRS += curses
- endif
-+ifeq (@EXPAT@,yes)
-+LIBSUBDIRS += $(XMLLIBSUBDIRS)
-+endif
-+
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS += $(TESTSUBDIRS)
- endif
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2372,13 +2372,21 @@
- AC_SUBST(DISABLED_EXTENSIONS)
- # Check for use of the system expat library
--AC_MSG_CHECKING(for --with-system-expat)
--AC_ARG_WITH(system_expat,
--            AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library]),
-+AC_MSG_CHECKING(for --with-expat)
-+AC_ARG_WITH(expat,
-+            AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]),
-             [],
--            [with_system_expat="no"])
-+            [with_expat="builtin"])
--AC_MSG_RESULT($with_system_expat)
-+AC_MSG_RESULT($with_expat)
-+
-+if test "$with_expat" != "none"; then
-+   EXPAT=yes
-+else
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat"
-+   EXPAT=no
-+fi
-+AC_SUBST(EXPAT)
- # Check for use of the system libffi library
- AC_MSG_CHECKING(for --with-system-ffi)
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -1414,7 +1414,7 @@
-         #
-         # More information on Expat can be found at www.libexpat.org.
-         #
--        if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
-+        if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"):
-             expat_inc = []
-             define_macros = []
-             expat_lib = ['expat']
diff --git a/package/python3/107-optional-codecs-cjk.patch b/package/python3/107-optional-codecs-cjk.patch
deleted file mode 100644 (file)
index 2759dd9..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Add an option to disable CJK codecs
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- configure.ac |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2692,6 +2692,12 @@
-    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
- fi
-+AC_ARG_ENABLE(codecs-cjk,
-+      AS_HELP_STRING([--disable-codecs-cjk], [disable CJK codecs]),
-+      [ if test "$enableval" = "no"; then
-+              DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022"
-+      fi])
-+
- AC_SUBST(TK)
- AC_ARG_ENABLE(tk,
-       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python3/108-optional-nis.patch b/package/python3/108-optional-nis.patch
deleted file mode 100644 (file)
index 8b8c4a0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-Add an option to disable NIS
-
-NIS is not necessarily available in uClibc, so we need an option to
-not compile support for it.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- configure.ac |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2698,6 +2698,12 @@
-               DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022"
-       fi])
-+AC_ARG_ENABLE(nis,
-+      AS_HELP_STRING([--disable-nis], [disable NIS]),
-+      [ if test "$enableval" = "no"; then
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
-+        fi])
-+
- AC_SUBST(TK)
- AC_ARG_ENABLE(tk,
-       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python3/109-optional-unicodedata.patch b/package/python3/109-optional-unicodedata.patch
deleted file mode 100644 (file)
index 7291852..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Add an option to disable unicodedata
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- configure.ac |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2704,6 +2704,12 @@
-            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
-         fi])
-+AC_ARG_ENABLE(unicodedata,
-+      AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]),
-+      [ if test "$enableval" = "no"; then
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata"
-+        fi])
-+
- AC_SUBST(TK)
- AC_ARG_ENABLE(tk,
-       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python3/110-optional-idle.patch b/package/python3/110-optional-idle.patch
deleted file mode 100644 (file)
index d30eb02..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-Add an option to disable IDLE
-
-IDLE is an IDE embedded into python, written using Tk, so it doesn't make
-much sense to have it into our build.
-
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
-
----
- Makefile.pre.in |    8 +++++++-
- configure.ac    |    6 ++++++
- setup.py        |    4 +++-
- 3 files changed, 16 insertions(+), 2 deletions(-)
-
-Index: b/Makefile.pre.in
-===================================================================
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1101,7 +1101,9 @@
-       -rm -f $(DESTDIR)$(LIBPC)/python3.pc
-       (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc)
-       -rm -f $(DESTDIR)$(BINDIR)/idle3
-+ifeq (@IDLE@,yes)
-       (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
-+endif
-       -rm -f $(DESTDIR)$(BINDIR)/pydoc3
- ifeq (@PYDOC@,yes)
-       (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
-@@ -1149,7 +1151,6 @@
-               html json http dbm xmlrpc \
-               logging csv wsgiref urllib \
-               ctypes ctypes/macholib \
--              idlelib idlelib/Icons \
-               distutils distutils/command \
-               importlib \
-               turtledemo \
-@@ -1226,6 +1227,10 @@
- LIBSUBDIRS += $(XMLLIBSUBDIRS)
- endif
-+ifeq (@IDLE@,yes)
-+LIBSUBDIRS += idlelib idlelib/Icons
-+endif
-+
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS += $(TESTSUBDIRS)
- endif
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2746,6 +2746,12 @@
-       AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
-       [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
-+AC_SUBST(IDLE)
-+
-+AC_ARG_ENABLE(idle3,
-+      AS_HELP_STRING([--disable-idle3], [disable idle3 IDE]),
-+      [ IDLE="${enableval}" ], [ IDLE=yes ])
-+
- # Check for enable-ipv6
- AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
- AC_MSG_CHECKING([if --enable-ipv6 is specified])
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -2201,11 +2201,13 @@
-     import warnings
-     warnings.filterwarnings("ignore",category=DeprecationWarning)
--    scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py']
-+    scripts = ['Lib/smtpd.py']
-     if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
-         scripts += [ 'Tools/scripts/pydoc3' ]
-     if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"):
-         scripts += [ 'Tools/scripts/2to3' ]
-+    if not '--disable-idle3' in sysconfig.get_config_var("CONFIG_ARGS"):
-+        scripts += [ 'Tools/scripts/idle3' ]
-     setup(# PyPI Metadata (PEP 301)
-           name = "Python",
diff --git a/package/python3/111-optional-decimal.patch b/package/python3/111-optional-decimal.patch
deleted file mode 100644 (file)
index be17c94..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-Add an option to disable decimal
-
-This patch replaces the existing --with-system-libmpdec option with a
---with-libmpdec={system,builtin,none} option, which allows to tell
-Python whether we want to use the system libmpdec (already installed),
-the libmpdec builtin the Python sources, or no libmpdec at all.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2405,13 +2405,20 @@
- AC_MSG_RESULT($with_system_ffi)
- # Check for use of the system libmpdec library
--AC_MSG_CHECKING(for --with-system-libmpdec)
--AC_ARG_WITH(system_libmpdec,
--            AS_HELP_STRING([--with-system-libmpdec], [build _decimal module using an installed libmpdec library]),
-+AC_MSG_CHECKING(for --with-libmpdec)
-+AC_ARG_WITH(libmpdec,
-+            AS_HELP_STRING([--with-libmpdec], [select which libmpdec version to use: system, builtin, none]),
-             [],
--            [with_system_libmpdec="no"])
-+            [with_libmpdec="builtin"])
--AC_MSG_RESULT($with_system_libmpdec)
-+AC_MSG_RESULT($with_libmpdec)
-+if test "$with_libmpdec" != "none"; then
-+   MPDEC=yes
-+else
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _decimal"
-+   MPDEC=no
-+fi
-+AC_SUBST(MPDEC)
- # Check for support for loadable sqlite extensions
- AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -1968,7 +1968,7 @@
-     def _decimal_ext(self):
-         extra_compile_args = []
-         undef_macros = []
--        if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"):
-+        if '--with-libmpdec=system' in sysconfig.get_config_var("CONFIG_ARGS"):
-             include_dirs = []
-             libraries = [':libmpdec.so.2']
-             sources = ['_decimal/_decimal.c']
diff --git a/package/python3/112-optional-ossaudiodev.patch b/package/python3/112-optional-ossaudiodev.patch
deleted file mode 100644 (file)
index 7f1611b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Add an option to disable the ossaudiodev module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2420,6 +2420,12 @@
- fi
- AC_SUBST(MPDEC)
-+AC_ARG_ENABLE(ossaudiodev,
-+      AS_HELP_STRING([--disable-ossaudiodev], [disable OSSAUDIODEV]),
-+      [ if test "$enableval" = "no"; then
-+        DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ossaudiodev"
-+        fi])
-+
- # Check for support for loadable sqlite extensions
- AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
- AC_ARG_ENABLE(loadable-sqlite-extensions,