From: Thomas Petazzoni Date: Mon, 4 Jan 2016 18:23:28 +0000 (+0100) Subject: python3: switch to Git formatted patches X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5c63280caf23ca7438e2fe23586cca9f450fc936;p=buildroot.git python3: switch to Git formatted patches 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 Acked-by: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Peter Korsgaard --- 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 index 0000000000..3fafd903a1 --- /dev/null +++ b/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch @@ -0,0 +1,46 @@ +From 03a4c313f42ea1bbdfc4c64a285b3930766c2b23 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..57b55fb12c --- /dev/null +++ b/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch @@ -0,0 +1,86 @@ +From 2f706a2ba92c88f1c8288e34d1937b6ba0e0214c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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.- 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.-/, 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 +--- + 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 index 0000000000..03684afec5 --- /dev/null +++ b/package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch @@ -0,0 +1,78 @@ +From 7c5338161263c290f18b1ff90859084d314be98c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..da2a65bc2f --- /dev/null +++ b/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch @@ -0,0 +1,27 @@ +From ef95d6a49f17522ed120def8093fa2fc0b86cbc8 Mon Sep 17 00:00:00 2001 +From: Vanya Sergeev +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 +--- + 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 index 0000000000..4a32bb191b --- /dev/null +++ b/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch @@ -0,0 +1,106 @@ +From 9eb1076b61e83647028a2f6b665b6f9afcb793b0 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 , and +then extended by Thomas Petazzoni +. + +Signed-off-by: Thomas Petazzoni +--- + 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 index 0000000000..dcf32d6fec --- /dev/null +++ b/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch @@ -0,0 +1,65 @@ +From bdb9cccdc2993e43af1e57ad3b8b0055bab64ba0 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..59d4ccd6d2 --- /dev/null +++ b/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch @@ -0,0 +1,67 @@ +From 678143ce6161379a3eebc20db6634f0c247f8605 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..19a76cfc85 --- /dev/null +++ b/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch @@ -0,0 +1,31 @@ +From 3ef1e30b88c4166f22220812b68e14f39f7ed15b Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..693ab6a508 --- /dev/null +++ b/package/python3/0009-Don-t-add-multiarch-paths.patch @@ -0,0 +1,37 @@ +From b910b3a6e61afcaa6f77b533a5cb4290c528f439 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 . + +Signed-off-by: Thomas Petazzoni +--- + 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 index 1eff608322..0000000000 --- a/package/python3/001-remove-host-header-path.patch +++ /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 -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 index 0000000000..d2e98224cc --- /dev/null +++ b/package/python3/0010-Abort-on-failed-module-build.patch @@ -0,0 +1,30 @@ +From 420e08fc9e77b650d11ce420f85257ce1710b70d Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..f1db62b6f2 --- /dev/null +++ b/package/python3/0011-Serial-ioctl-workaround.patch @@ -0,0 +1,33 @@ +From f67b0073a30eb83d42a2ead0a62020dfe5db8d1e Mon Sep 17 00:00:00 2001 +From: Baruch Siach +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 +--- + 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 ++#include + #include ++#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 index 0000000000..e4fbf4e4d6 --- /dev/null +++ b/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch @@ -0,0 +1,35 @@ +From 2cac07af643d989b352cccc3b96d86ed269df9b1 Mon Sep 17 00:00:00 2001 +From: Christophe Vu-Brugier +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 +--- + 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 index 0000000000..f9c7225726 --- /dev/null +++ b/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch @@ -0,0 +1,60 @@ +From 4c0893221e2978854174806f7e14f7643eea32e7 Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard +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 +--- + 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 index 0000000000..4a64427579 --- /dev/null +++ b/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch @@ -0,0 +1,30 @@ +From a87f08318cf40a27d41957dcc7312c3b3083ba86 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..e358e44462 --- /dev/null +++ b/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch @@ -0,0 +1,37 @@ +From 807357dc50a5a97016ce22646b5eb6a5b64a1a5d Mon Sep 17 00:00:00 2001 +From: Samuel Cabrero +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 +Signed-off-by: Thomas Petazzoni +--- + 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 - %s 1>/dev/null' % (gcc, tmpfile)) ++ ret = os.system('LC_ALL=C %s -E -v - %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 index 0000000000..02f1d164f7 --- /dev/null +++ b/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch @@ -0,0 +1,79 @@ +From 1153f503a38daf6388021575f1ad6ce8b702911b Mon Sep 17 00:00:00 2001 +From: Christophe Vu-Brugier +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 +--- + 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 index 0000000000..6e0f07c87e --- /dev/null +++ b/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch @@ -0,0 +1,113 @@ +From 3cdd905ad1ff001713d20b768c001b5299a2e72c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +Signed-off-by: Samuel Martin +--- + 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 index 0000000000..22f194a555 --- /dev/null +++ b/package/python3/0018-Add-an-option-to-disable-pydoc.patch @@ -0,0 +1,96 @@ +From 99ef88cb47a396e2c7005e59e50d34e0a60dd3cb Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +Signed-off-by: Samuel Martin +--- + 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 index 0000000000..8a22c0f26e --- /dev/null +++ b/package/python3/0019-Add-an-option-to-disable-lib2to3.patch @@ -0,0 +1,114 @@ +From 4d6bc8497ab740ae23a7091ff91dba06a63ba877 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +Signed-off-by: Samuel Martin +--- + 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 index 0000000000..26a7b34c3b --- /dev/null +++ b/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch @@ -0,0 +1,67 @@ +From f218ef22019d4c03427113982edc42beddd05683 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 23 Dec 2015 11:49:01 +0100 +Subject: [PATCH] Add option to disable the sqlite3 module + +Signed-off-by: Thomas Petazzoni +Signed-off-by: Samuel Martin +--- + 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 index 0000000000..fc3c9b431c --- /dev/null +++ b/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch @@ -0,0 +1,71 @@ +From 006bf215734ad63007de044fe7803f66f83a4d19 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 23 Dec 2015 11:49:14 +0100 +Subject: [PATCH] Add an option to disable the tk module + +Signed-off-by: Thomas Petazzoni +Signed-off-by: Samuel Martin +--- + 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 index 0000000000..de78bb0608 --- /dev/null +++ b/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch @@ -0,0 +1,59 @@ +From 42725aef353df06f760f0a47b80001187d04d8b4 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 23 Dec 2015 11:49:30 +0100 +Subject: [PATCH] Add an option to disable the curses module + +Signed-off-by: Thomas Petazzoni +Signed-off-by: Samuel Martin +--- + 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 index 0000000000..9cb0799c5d --- /dev/null +++ b/package/python3/0023-Add-an-option-to-disable-expat.patch @@ -0,0 +1,90 @@ +From f98b83bca09882d27bb04d7dbcd50f9979ad0569 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +Signed-off-by: Samuel Martin +--- + 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 index 0000000000..b4d77849e3 --- /dev/null +++ b/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch @@ -0,0 +1,30 @@ +From cf731841e1209c6faa99e2db4cf4c890e7c28080 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 23 Dec 2015 11:49:55 +0100 +Subject: [PATCH] Add an option to disable CJK codecs + +Signed-off-by: Thomas Petazzoni +--- + 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 index 0000000000..cd6b19d79a --- /dev/null +++ b/package/python3/0025-Add-an-option-to-disable-NIS.patch @@ -0,0 +1,33 @@ +From f99823ef41d6f5c8e67b198b04b289d9b6ef8570 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..a5880f2603 --- /dev/null +++ b/package/python3/0026-Add-an-option-to-disable-unicodedata.patch @@ -0,0 +1,30 @@ +From 4a32e709d128886dab10e59fad60fde005933aff Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 23 Dec 2015 11:50:27 +0100 +Subject: [PATCH] Add an option to disable unicodedata + +Signed-off-by: Thomas Petazzoni +--- + 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 index 0000000000..c2b59e8258 --- /dev/null +++ b/package/python3/0027-Add-an-option-to-disable-IDLE.patch @@ -0,0 +1,87 @@ +From 9336cf4eb4ded1eaa83da5549e4aba62b34ef888 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +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 +--- + 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 index 0000000000..df85325998 --- /dev/null +++ b/package/python3/0028-Add-an-option-to-disable-decimal.patch @@ -0,0 +1,62 @@ +From 8fee92a85c170ac4ce24dda5a960f24b83d6f103 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..56b6ae1a79 --- /dev/null +++ b/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch @@ -0,0 +1,30 @@ +From 53639100c2f7836ce9a51b5e5b9b4ea08ba1dc4e Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 23 Dec 2015 11:51:58 +0100 +Subject: [PATCH] Add an option to disable the ossaudiodev module + +Signed-off-by: Thomas Petazzoni +--- + 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 index cd01ccfbdb..0000000000 --- a/package/python3/003-sysconfigdata-install-location.patch +++ /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.- 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.-/, 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 - -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 index 0d60ff6949..0000000000 --- a/package/python3/005-pyc-pyo-conditional.patch +++ /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 index c530883b44..0000000000 --- a/package/python3/006-cross-compile-getaddrinfo.patch +++ /dev/null @@ -1,21 +0,0 @@ -Disable buggy_getaddrinfo configure test when cross-compiling with IPv6 support - -Signed-off-by: Vanya Sergeev - ---- - 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 index ce931f7284..0000000000 --- a/package/python3/007-disable-extensions.patch +++ /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 , and -then extended by Thomas Petazzoni -. - -Signed-off-by: Thomas Petazzoni ---- - 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 index d0758b15e6..0000000000 --- a/package/python3/008-distutils-sysconfig-use-sysconfigdata.patch +++ /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 index 06f203932b..0000000000 --- a/package/python3/009-distutils-use-python-sysroot.patch +++ /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 - -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 index 46c8a77f92..0000000000 --- a/package/python3/010-no-termcap-host-path.patch +++ /dev/null @@ -1,22 +0,0 @@ -Don't look in /usr/lib/termcap for libraries - -Signed-off-by: Thomas Petazzoni - -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 index f32372c78f..0000000000 --- a/package/python3/012-dont-add-multiarch-path.patch +++ /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 . - -Signed-off-by: Thomas Petazzoni - -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 index 5ad86fb903..0000000000 --- a/package/python3/013-abort-on-failed-modules.patch +++ /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 - -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 index e4aae0078b..0000000000 --- a/package/python3/014-serial-ioctl-workaround.patch +++ /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 ---- -Index: b/Modules/termios.c -=================================================================== ---- a/Modules/termios.c -+++ b/Modules/termios.c -@@ -9,7 +9,9 @@ - #endif - - #include -+#include - #include -+#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 index ed2f193f9e..0000000000 --- a/package/python3/015-distutils-scripts-dont-adjust-shebang.patch +++ /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 - -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 index 46d4633a4b..0000000000 --- a/package/python3/017-python-config-include-libdir.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 50f34d2cac63b6bf0935294a7d63d9451714f4c4 Mon Sep 17 00:00:00 2001 -From: Peter Korsgaard -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 ---- - 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 index 1c26438334..0000000000 --- a/package/python3/018-ncursesw-remove-wrong-includedir.patch +++ /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 - -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 index 179a29a2d0..0000000000 --- a/package/python3/019-fix-add-gcc-paths-logic.patch +++ /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 -Signed-off-by: Thomas Petazzoni - -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 - %s 1>/dev/null' % (gcc, tmpfile)) -+ ret = os.system('LC_ALL=C %s -E -v - %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 index 779b5e27c3..0000000000 --- a/package/python3/020-importlib-no-pep3147.patch +++ /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 - -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 index 765e9370d5..0000000000 --- a/package/python3/100-optional-test-modules.patch +++ /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 -Signed-off-by: Samuel Martin - ---- - 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 index a1b63d591a..0000000000 --- a/package/python3/101-optional-pydoc.patch +++ /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 -Signed-off-by: Samuel Martin - ---- - 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 index 41814568b5..0000000000 --- a/package/python3/102-optional-2to3.patch +++ /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 -Signed-off-by: Samuel Martin - ---- - 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 index f8e5352c3d..0000000000 --- a/package/python3/103-optional-sqlite.patch +++ /dev/null @@ -1,62 +0,0 @@ -Add option to disable the sqlite3 module - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Samuel Martin - ---- - 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 index 8a852c56f5..0000000000 --- a/package/python3/104-optional-tk.patch +++ /dev/null @@ -1,66 +0,0 @@ -Add an option to disable the tk module - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Samuel Martin - ---- - 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 index 72979cf3cd..0000000000 --- a/package/python3/105-optional-curses.patch +++ /dev/null @@ -1,54 +0,0 @@ -Add an option to disable the curses module - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Samuel Martin - ---- - 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 index 0bdd6f93bb..0000000000 --- a/package/python3/106-optional-expat.patch +++ /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 -Signed-off-by: Samuel Martin - ---- - 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 index 2759dd9601..0000000000 --- a/package/python3/107-optional-codecs-cjk.patch +++ /dev/null @@ -1,25 +0,0 @@ -Add an option to disable CJK codecs - -Signed-off-by: Thomas Petazzoni - ---- - 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 index 8b8c4a0633..0000000000 --- a/package/python3/108-optional-nis.patch +++ /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 - ---- - 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 index 729185230b..0000000000 --- a/package/python3/109-optional-unicodedata.patch +++ /dev/null @@ -1,25 +0,0 @@ -Add an option to disable unicodedata - -Signed-off-by: Thomas Petazzoni - ---- - 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 index d30eb02c32..0000000000 --- a/package/python3/110-optional-idle.patch +++ /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 - ---- - 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 index be17c94171..0000000000 --- a/package/python3/111-optional-decimal.patch +++ /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 ---- - -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 index 7f1611b71d..0000000000 --- a/package/python3/112-optional-ossaudiodev.patch +++ /dev/null @@ -1,21 +0,0 @@ -Add an option to disable the ossaudiodev module - -Signed-off-by: Thomas Petazzoni - -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,