From: Thomas Petazzoni Date: Tue, 7 Mar 2017 23:00:26 +0000 (+0100) Subject: python: move to Git formatted patches X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=652076293235276e2f978fe377322a6cbd615455;p=buildroot.git python: move to Git formatted patches Now that the cpython project has a nice Github repository, with tags, it's much nicer to handle the stack of Python patches with Git. The python3 package patches had already been converted, but not the python package patches. Therefore, this commit does the move. There is no functional change, only reformatting of the patches. Signed-off-by: Thomas Petazzoni Reviewed-by: Yegor Yefremov Signed-off-by: Thomas Petazzoni --- diff --git a/package/python/0001-setup.py-do-not-add-invalid-header-locations.patch b/package/python/0001-setup.py-do-not-add-invalid-header-locations.patch new file mode 100644 index 0000000000..3b2c9833e8 --- /dev/null +++ b/package/python/0001-setup.py-do-not-add-invalid-header-locations.patch @@ -0,0 +1,42 @@ +From 3dc31a435b67de2ba3dd3457f0c939e20b58e8de Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:17:06 +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 \ + -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 \ + -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \ + -I/usr/include -I. -IInclude -I./Include \ + -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \ + -I/home/thomas/projets/buildroot/output/build/python-2.7.6/Include \ + -I/home/thomas/projets/buildroot/output/build/python-2.7.6 \ + -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/mathmodule.c \ + -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/mathmodule.o +cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories] +[...] + +Signed-off-by: Thomas Petazzoni +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 54054c2..64001e2 100644 +--- a/setup.py ++++ b/setup.py +@@ -496,7 +496,7 @@ class PyBuildExt(build_ext): + for directory in reversed(options.dirs): + add_dir_to_list(dir_list, directory) + +- if os.path.normpath(sys.prefix) != '/usr' \ ++ if False and os.path.normpath(sys.prefix) != '/usr' \ + and not sysconfig.get_config_var('PYTHONFRAMEWORK'): + # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework + # (PYTHONFRAMEWORK is set) to avoid # linking problems when +-- +2.7.4 + diff --git a/package/python/0002-Fix-get_python_inc-for-cross-compilation.patch b/package/python/0002-Fix-get_python_inc-for-cross-compilation.patch new file mode 100644 index 0000000000..b28ef2440e --- /dev/null +++ b/package/python/0002-Fix-get_python_inc-for-cross-compilation.patch @@ -0,0 +1,46 @@ +From 367ee7d103cf9f670c3925d555edf6f6a5b9d8d5 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:17:25 +0100 +Subject: [PATCH] Fix get_python_inc() for cross-compilation + +When we are cross compiling, doing os.path.dirname(sys.executable) to +get the build directory is incorrect, because we're executing the host +Python to build things for the target. Instead, we should use the +project_base variable. + +This fixes cross-compilation, which was adding incorrect header paths +pointing to the location where the host Python was built: + +/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc -fPIC -fno-strict-aliasing \ + -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \ + -I/usr/include -I. -IInclude -I./Include -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \ + -I/home/thomas/projets/buildroot/output/host/usr/bin/Include -I/home/thomas/projets/buildroot/output/host/usr/bin \ + -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.c \ + -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.o + +This patch allows to fix the +/home/thomas/projets/buildroot/output/host/usr/bin/Include and +/home/thomas/projets/buildroot/output/host/usr/bin paths that are +incorrectly added to the header paths. + +Signed-off-by: Thomas Petazzoni +--- + Lib/distutils/sysconfig.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index de7da1d..d72b6e5 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -79,7 +79,7 @@ def get_python_inc(plat_specific=0, prefix=None): + + if os.name == "posix": + if python_build: +- buildir = os.path.dirname(sys.executable) ++ buildir = project_base + if plat_specific: + # python.h is located in the buildir + inc_dir = buildir +-- +2.7.4 + diff --git a/package/python/0003-Change-the-install-location-of-_sysconfigdata.py.patch b/package/python/0003-Change-the-install-location-of-_sysconfigdata.py.patch new file mode 100644 index 0000000000..db5bfe1a10 --- /dev/null +++ b/package/python/0003-Change-the-install-location-of-_sysconfigdata.py.patch @@ -0,0 +1,86 @@ +From 0ef0d4ddd3f2261e381f22061a9a451dfbb1dc9e Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:17:59 +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 e288964..5367df7 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -529,6 +529,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` + + # This is shared by the math and cmath modules + Modules/_math.o: Modules/_math.c Modules/_math.h +@@ -1080,7 +1083,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 $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \ ++ @for i in $(srcdir)/Lib/*.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \ + do \ + if test -x $$i; then \ + $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ +@@ -1090,6 +1093,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; \ +@@ -1418,7 +1426,7 @@ distclean: clobber + Modules/Setup Modules/Setup.local Modules/Setup.config \ + Modules/ld_so_aix Modules/python.exp Misc/python.pc + -rm -f python*-gdb.py +- -rm -f pybuilddir.txt ++ -rm -f pybuilddir.txt pysysconfigdatadir.txt + # Issue #28258: set LC_ALL to avoid issues with Estonian locale. + # Expansion is performed here by shell (spawned by make) itself before + # arguments are passed to find. So LC_ALL=C must be set as a separate +diff --git a/configure.ac b/configure.ac +index 1273465..5f89797 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -33,7 +33,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 + # Used to comment out stuff for rebuilding generated files + GENERATED_COMMENT='#' +-- +2.7.4 + diff --git a/package/python/0004-Make-the-compilation-of-.pyc-and-.pyo-conditional.patch b/package/python/0004-Make-the-compilation-of-.pyc-and-.pyo-conditional.patch new file mode 100644 index 0000000000..3bf407d542 --- /dev/null +++ b/package/python/0004-Make-the-compilation-of-.pyc-and-.pyo-conditional.patch @@ -0,0 +1,76 @@ +From 168e6c594e80395583de5ab0d082be119b2061fc Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:18:57 +0100 +Subject: [PATCH] Make the compilation of .pyc and .pyo conditional + +This commit adds --{enable,disable}-{pyc,pyo} options to enable/disable +the compilation of pyc/pyo files. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.pre.in | 8 ++++++++ + configure.ac | 11 +++++++++++ + 2 files changed, 19 insertions(+) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 5367df7..96fc718 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1128,24 +1128,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 -tt $(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 -tt -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 -t $(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 -t -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 5f89797..4aafc82 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -759,6 +759,17 @@ SunOS*) + ;; + esac + ++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 ]) + + AC_SUBST(LIBRARY) + AC_MSG_CHECKING(LIBRARY) +-- +2.7.4 + diff --git a/package/python/0005-Adjust-getaddrinfo-test-for-cross-compilation.patch b/package/python/0005-Adjust-getaddrinfo-test-for-cross-compilation.patch new file mode 100644 index 0000000000..e0a24ec806 --- /dev/null +++ b/package/python/0005-Adjust-getaddrinfo-test-for-cross-compilation.patch @@ -0,0 +1,29 @@ +From 2d971c3cdca9ecc55f2da8aba12ca89e1a66519a Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:19:47 +0100 +Subject: [PATCH] Adjust getaddrinfo() test for cross-compilation + +The getaddrinfo() test in configure.ac uses AC_RUN_IFELSE(), which isn't +cross-compilation friendly. + +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 4aafc82..63e6918 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3527,7 +3527,7 @@ fi + + AC_MSG_RESULT($ac_cv_buggy_getaddrinfo) + +-if test $have_getaddrinfo = no -o "$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.7.4 + diff --git a/package/python/0006-Add-minimal-infrastructure-to-be-able-to-disable-ext.patch b/package/python/0006-Add-minimal-infrastructure-to-be-able-to-disable-ext.patch new file mode 100644 index 0000000000..44a8ae2cc5 --- /dev/null +++ b/package/python/0006-Add-minimal-infrastructure-to-be-able-to-disable-ext.patch @@ -0,0 +1,79 @@ +From 977de9474c1fb46359ab6a487e153fbd91a2b568 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:21:28 +0100 +Subject: [PATCH] Add minimal infrastructure to be able to disable extensions + +This commit adds some logic to the Python build system to be able to +disable Python extensions. Follow-up commits actually add options to +disable specific extensions. + +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 96fc718..33b994d 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -161,6 +161,8 @@ FILEMODE= 644 + # configure script arguments + CONFIG_ARGS= @CONFIG_ARGS@ + ++# disabled extensions ++DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@ + + # Subdirectories with code + SRCDIRS= @SRCDIRS@ +@@ -548,6 +550,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o + 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 +@@ -1269,7 +1272,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 63e6918..5d4232f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2462,6 +2462,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 64001e2..3b51c0a 100644 +--- a/setup.py ++++ b/setup.py +@@ -33,7 +33,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' (at the front) if +-- +2.7.4 + diff --git a/package/python/0007-Adjust-library-header-paths-for-cross-compilation.patch b/package/python/0007-Adjust-library-header-paths-for-cross-compilation.patch new file mode 100644 index 0000000000..c68f1bf7f2 --- /dev/null +++ b/package/python/0007-Adjust-library-header-paths-for-cross-compilation.patch @@ -0,0 +1,64 @@ +From f3e0a677c4736f95338825a022a884f8dc7a5c14 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:22:19 +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. + +The _python_sysroot variable is also used to prefix the LIBDIR value +taken from the sysconfigdata module. + +Signed-off-by: Thomas Petazzoni +--- + Lib/distutils/command/build_ext.py | 5 ++++- + Lib/distutils/sysconfig.py | 9 +++++++-- + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py +index 2c68be3..375b08c 100644 +--- a/Lib/distutils/command/build_ext.py ++++ b/Lib/distutils/command/build_ext.py +@@ -240,7 +240,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 d72b6e5..72151df 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -19,8 +19,13 @@ import sys + from distutils.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) ++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')) ++else: ++ PREFIX = os.path.normpath(sys.prefix) ++ EXEC_PREFIX = os.path.normpath(sys.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.7.4 + diff --git a/package/python/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch b/package/python/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch new file mode 100644 index 0000000000..d523b74638 --- /dev/null +++ b/package/python/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch @@ -0,0 +1,31 @@ +From 87b627d8845e67fd798449b414bece04f18bd450 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:22:40 +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 3b51c0a..fa32532 100644 +--- a/setup.py ++++ b/setup.py +@@ -784,12 +784,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.7.4 + diff --git a/package/python/0009-Fix-python-config-for-cross-builds.patch b/package/python/0009-Fix-python-config-for-cross-builds.patch new file mode 100644 index 0000000000..44ddbcec6f --- /dev/null +++ b/package/python/0009-Fix-python-config-for-cross-builds.patch @@ -0,0 +1,225 @@ +From e5b0d225f4343e82791cb80e4e0c01a9b49eeff4 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 7 Mar 2017 22:23:14 +0100 +Subject: [PATCH] Fix python-config for cross-builds + +Add a backport of http://bugs.python.org/issue16235 so we can use +python-config for cross builds. + +This basically replaces the python version of python-config with a +pure-shell version that's already preprocessed when installed and +doesn't depend on the sysconfig import that usually leads to bad +data/results. + +Signed-off-by: Gustavo Zacarias +--- + Makefile.pre.in | 13 +++--- + Misc/python-config.sh.in | 102 +++++++++++++++++++++++++++++++++++++++++++++++ + configure.ac | 7 +++- + 3 files changed, 116 insertions(+), 6 deletions(-) + create mode 100644 Misc/python-config.sh.in + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 33b994d..beb0837 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -171,7 +171,7 @@ SRCDIRS= @SRCDIRS@ + SUBDIRSTOO= Include Lib Misc Demo + + # Files and directories to be distributed +-CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in ++CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Misc/python-config.sh + DISTFILES= README ChangeLog $(CONFIGFILES) + DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy + DIST= $(DISTFILES) $(DISTDIRS) +@@ -431,7 +431,7 @@ LIBRARY_OBJS= \ + + # Default target + all: @DEF_MAKE_ALL_RULE@ +-build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks ++build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks python-config + + # Compile a binary with profile guided optimization. + profile-opt: +@@ -1179,10 +1179,12 @@ $(srcdir)/Lib/$(PLATDIR): + fi; \ + cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen + +-python-config: $(srcdir)/Misc/python-config.in ++python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh + # Substitution happens here, as the completely-expanded BINDIR + # is not available in configure +- sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config ++ sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py ++ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} ++ sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' Misc/python-config.sh >python-config + + # Install the include files + INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) +@@ -1241,7 +1243,7 @@ libainstall: all python-config + $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup + $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh + $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config +- rm python-config ++ $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py + @if [ -s Modules/python.exp -a \ + "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ + echo; echo "Installing support files for building shared extension modules on AIX:"; \ +@@ -1426,6 +1428,7 @@ clobber: clean profile-removal + config.cache config.log pyconfig.h Modules/config.c + -rm -rf build platform + -rm -rf $(PYTHONFRAMEWORKDIR) ++ -rm -f python-config.py python-config + + # Make things extra clean, before making a distribution: + # remove all generated files, even Makefile[.pre] +diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in +new file mode 100644 +index 0000000..10db4c1 +--- /dev/null ++++ b/Misc/python-config.sh.in +@@ -0,0 +1,102 @@ ++#!/bin/sh ++ ++exit_with_usage () ++{ ++ echo "Usage: $0 --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--configdir" ++ exit $1 ++} ++ ++if [ "$1" = "" ] ; then ++ exit_with_usage 1 ++fi ++ ++# Returns the actual prefix where this script was installed to. ++installed_prefix () ++{ ++ RESULT=$(dirname $(cd $(dirname "$1") && pwd -P)) ++ if which readlink >/dev/null 2>&1 ; then ++ RESULT=$(readlink -f "$RESULT") ++ fi ++ echo $RESULT ++} ++ ++prefix_build="@prefix@" ++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#") ++exec_prefix_build="@exec_prefix@" ++exec_prefix=$(echo "$exec_prefix_build" | sed "s#$exec_prefix_build#$prefix_real#") ++includedir=$(echo "@includedir@") ++libdir=$(echo "@libdir@" | sed "s#$prefix_build#$prefix_real#") ++CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix_build#$prefix_real#") ++VERSION="@VERSION@" ++LIBM="@LIBM@" ++LIBC="@LIBC@" ++SYSLIBS="$LIBM $LIBC" ++LIBS="@LIBS@ $SYSLIBS -lpython${VERSION}" ++BASECFLAGS="@BASECFLAGS@" ++LDLIBRARY="@LDLIBRARY@" ++LINKFORSHARED="@LINKFORSHARED@" ++OPT="@OPT@" ++PY_ENABLE_SHARED="@PY_ENABLE_SHARED@" ++LDVERSION="@LDVERSION@" ++LIBDEST=${prefix}/lib/python${VERSION} ++LIBPL=$(echo "@LIBPL@" | sed "s#$prefix_build#$prefix_real#") ++SO="@SO@" ++PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" ++INCDIR="-I$includedir/python${VERSION}" ++PLATINCDIR="-I$includedir/python${VERSION}" ++ ++# Scan for --help or unknown argument. ++for ARG in $* ++do ++ case $ARG in ++ --help) ++ exit_with_usage 0 ++ ;; ++ --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--abiflags|--configdir) ++ ;; ++ *) ++ exit_with_usage 1 ++ ;; ++esac ++done ++ ++for ARG in "$@" ++do ++ case "$ARG" in ++ --prefix) ++ echo "$prefix" ++ ;; ++ --exec-prefix) ++ echo "$exec_prefix" ++ ;; ++ --includes) ++ echo "$INCDIR $PLATINCDIR" ++ ;; ++ --cflags) ++ echo "$INCDIR $PLATINCDIR $BASECFLAGS $CFLAGS $OPT" ++ ;; ++ --libs) ++ echo "$LIBS" ++ ;; ++ --ldflags) ++ LINKFORSHAREDUSED= ++ if [ -z "$PYTHONFRAMEWORK" ] ; then ++ LINKFORSHAREDUSED=$LINKFORSHARED ++ fi ++ LIBPLUSED= ++ if [ "$PY_ENABLE_SHARED" = "0" ] ; then ++ LIBPLUSED="-L$LIBPL" ++ fi ++ echo "$LIBPLUSED -L$libdir $LIBS $LINKFORSHAREDUSED" ++ ;; ++ --extension-suffix) ++ echo "$SO" ++ ;; ++ --configdir) ++ echo "$LIBPL" ++ ;; ++esac ++done +diff --git a/configure.ac b/configure.ac +index 5d4232f..183a903 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -905,6 +905,7 @@ fi + + # Other platforms follow + if test $enable_shared = "yes"; then ++ PY_ENABLE_SHARED=1 + AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.]) + case $ac_sys_system in + BeOS*) +@@ -965,6 +966,7 @@ if test $enable_shared = "yes"; then + + esac + else # shared is disabled ++ PY_ENABLE_SHARED=0 + case $ac_sys_system in + CYGWIN*) + BLDLIBRARY='$(LIBRARY)' +@@ -2096,6 +2098,9 @@ AC_SUBST(LDCXXSHARED) + AC_SUBST(BLDSHARED) + AC_SUBST(CCSHARED) + AC_SUBST(LINKFORSHARED) ++AC_SUBST(PY_ENABLE_SHARED) ++LIBPL="${prefix}/lib/python${VERSION}/config" ++AC_SUBST(LIBPL) + # SO is the extension of shared libraries `(including the dot!) + # -- usually .so, .sl on HP-UX, .dll on Cygwin + AC_MSG_CHECKING(SO) +@@ -4818,7 +4823,7 @@ AC_MSG_RESULT($ENSUREPIP) + AC_SUBST(ENSUREPIP) + + # generate output files +-AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc) ++AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh) + AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix]) + AC_OUTPUT + +-- +2.7.4 + diff --git a/package/python/001-remove-host-header-path.patch b/package/python/001-remove-host-header-path.patch deleted file mode 100644 index dfb84ffa1e..0000000000 --- a/package/python/001-remove-host-header-path.patch +++ /dev/null @@ -1,32 +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 \ - -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 \ - -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \ - -I/usr/include -I. -IInclude -I./Include \ - -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \ - -I/home/thomas/projets/buildroot/output/build/python-2.7.6/Include \ - -I/home/thomas/projets/buildroot/output/build/python-2.7.6 \ - -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/mathmodule.c \ - -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/mathmodule.o -cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories] -[...] - -Signed-off-by: Thomas Petazzoni -Index: b/setup.py -=================================================================== ---- a/setup.py -+++ b/setup.py -@@ -480,7 +480,7 @@ - for directory in reversed(options.dirs): - add_dir_to_list(dir_list, directory) - -- if os.path.normpath(sys.prefix) != '/usr' \ -+ if False and os.path.normpath(sys.prefix) != '/usr' \ - and not sysconfig.get_config_var('PYTHONFRAMEWORK'): - # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework - # (PYTHONFRAMEWORK is set) to avoid # linking problems when diff --git a/package/python/0010-Remove-the-python-symlink-install-rules.patch b/package/python/0010-Remove-the-python-symlink-install-rules.patch new file mode 100644 index 0000000000..864ccbfb7d --- /dev/null +++ b/package/python/0010-Remove-the-python-symlink-install-rules.patch @@ -0,0 +1,41 @@ +From bddfcbb8a4c011ca2fe471f7a4124cd64b5b0f00 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Tue, 7 Mar 2017 22:23:58 +0100 +Subject: [PATCH] Remove the python symlink install rules + +The python symlink installation will be handled by Buildroot itself, +because Buildroot needs to control to what python interpreter (python2 +or python3) the python symlink points to. + +Signed-off-by: Samuel Martin +[Bernd: rebased against version 2.7.12.] +Signed-off-by: Bernd Kuhls +--- + Makefile.pre.in | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index beb0837..dedcf61 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -968,17 +968,10 @@ bininstall: altbininstall + echo "Creating directory $(LIBPC)"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC); \ + fi +- -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \ +- then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \ +- else true; \ +- fi +- (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON)) + -rm -f $(DESTDIR)$(BINDIR)/python2$(EXE) + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE)) + -rm -f $(DESTDIR)$(BINDIR)/python2-config + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python2-config) +- -rm -f $(DESTDIR)$(BINDIR)/python-config +- (cd $(DESTDIR)$(BINDIR); $(LN) -s python2-config python-config) + -test -d $(DESTDIR)$(LIBPC) || $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC) + -rm -f $(DESTDIR)$(LIBPC)/python2.pc + (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc) +-- +2.7.4 + diff --git a/package/python/0011-Don-t-add-multiarch-paths.patch b/package/python/0011-Don-t-add-multiarch-paths.patch new file mode 100644 index 0000000000..b84c9077c9 --- /dev/null +++ b/package/python/0011-Don-t-add-multiarch-paths.patch @@ -0,0 +1,36 @@ +From 50a243a9c90f95e9248ac720e42e802b5922ab90 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:24:28 +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 fa32532..0b9ea57 100644 +--- a/setup.py ++++ b/setup.py +@@ -461,9 +461,9 @@ 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() + 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.7.4 + diff --git a/package/python/0012-Abort-on-failed-module-build.patch b/package/python/0012-Abort-on-failed-module-build.patch new file mode 100644 index 0000000000..7d952ca5c2 --- /dev/null +++ b/package/python/0012-Abort-on-failed-module-build.patch @@ -0,0 +1,30 @@ +From a131e2ff219872d97eef6585117bd2f8ff9e310d Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:24:48 +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 0b9ea57..9a5c2b8 100644 +--- a/setup.py ++++ b/setup.py +@@ -299,6 +299,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.7.4 + diff --git a/package/python/0013-sqlite3-fix-build-when-threads-are-not-used-availabl.patch b/package/python/0013-sqlite3-fix-build-when-threads-are-not-used-availabl.patch new file mode 100644 index 0000000000..dfc11efc7e --- /dev/null +++ b/package/python/0013-sqlite3-fix-build-when-threads-are-not-used-availabl.patch @@ -0,0 +1,58 @@ +From 0f0be88526ece7d2f6ee21c1f59b1546ec6dc7c0 Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Tue, 7 Mar 2017 22:25:14 +0100 +Subject: [PATCH] sqlite3: fix build when threads are not used/available + +When threads are not used/available, a function in the sqlite3 extension +ends up with a label at the end: + + void _pysqlite_final_callback(sqlite3_context* context) + { + PyObject* function_result; + PyObject** aggregate_instance; + int ok; + + #ifdef WITH_THREAD + PyGILState_STATE threadstate; + + threadstate = PyGILState_Ensure(); + #endif + + aggregate_instance = (PyObject**)sqlite3_aggregate_context(context, sizeof(PyObject*)); + if (!*aggregate_instance) { + goto error; + } + + [......] + + error: + #ifdef WITH_THREAD + PyGILState_Release(threadstate); + #endif + } + +This is not valid, and gcc complains. + +Fix that by adding a dummy statement after the label, so that the label +is never the last statement of the function. + +Signed-off-by: "Yann E. MORIN" +--- + Modules/_sqlite/connection.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c +index 237d6e4..cdf69ab 100644 +--- a/Modules/_sqlite/connection.c ++++ b/Modules/_sqlite/connection.c +@@ -794,6 +794,7 @@ error: + #ifdef WITH_THREAD + PyGILState_Release(threadstate); + #endif ++ ; /* Make gcc happy: a label can't be at the end of a function */ + } + + static void _pysqlite_drop_unused_statement_references(pysqlite_Connection* self) +-- +2.7.4 + diff --git a/package/python/0014-Serial-ioctl-workaround.patch b/package/python/0014-Serial-ioctl-workaround.patch new file mode 100644 index 0000000000..468d535ac3 --- /dev/null +++ b/package/python/0014-Serial-ioctl-workaround.patch @@ -0,0 +1,33 @@ +From 22e5a4c5d29ddf0856d7f68f5a613aec00e26168 Mon Sep 17 00:00:00 2001 +From: Baruch Siach +Date: Tue, 7 Mar 2017 22:25:36 +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 57f30dc..a8c9855 100644 +--- a/Modules/termios.c ++++ b/Modules/termios.c +@@ -16,7 +16,9 @@ + * so this needs to be included first on that platform. */ + #include + #endif ++#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.7.4 + diff --git a/package/python/0015-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch b/package/python/0015-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch new file mode 100644 index 0000000000..fecf29f4d6 --- /dev/null +++ b/package/python/0015-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch @@ -0,0 +1,35 @@ +From 70049366ddf1fc9084bb02cf4459380976cdf8f7 Mon Sep 17 00:00:00 2001 +From: Christophe Vu-Brugier +Date: Tue, 7 Mar 2017 22:26:09 +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 567df65..4922d50 100644 +--- a/Lib/distutils/command/build_scripts.py ++++ b/Lib/distutils/command/build_scripts.py +@@ -89,7 +89,7 @@ class build_scripts (Command): + adjust = 1 + post_interp = match.group(1) or '' + +- if adjust: ++ if adjust and not '_python_sysroot' in os.environ: + log.info("copying and adjusting %s -> %s", script, + self.build_dir) + if not self.dry_run: +-- +2.7.4 + diff --git a/package/python/0016-Add-an-option-to-disable-installation-of-test-module.patch b/package/python/0016-Add-an-option-to-disable-installation-of-test-module.patch new file mode 100644 index 0000000000..a147655af8 --- /dev/null +++ b/package/python/0016-Add-an-option-to-disable-installation-of-test-module.patch @@ -0,0 +1,99 @@ +From 0eac7789c0dd4aebe9e69d3c73d0c95e96922ea3 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:27:16 +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 | 48 ++++++++++++++++++++++++++++++++---------------- + configure.ac | 6 ++++++ + 2 files changed, 38 insertions(+), 16 deletions(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index dedcf61..280cc4e 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1038,27 +1038,43 @@ PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \ + plat-mac/lib-scriptpackages/SystemEvents \ + plat-mac/lib-scriptpackages/Terminal + PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages +-LIBSUBDIRS= lib-tk lib-tk/test lib-tk/test/test_tkinter \ +- lib-tk/test/test_ttk site-packages test test/audiodata test/capath \ +- test/data test/cjkencodings test/decimaltestdata test/xmltestdata \ +- test/imghdrdata \ +- test/subprocessdata \ +- test/tracedmodules \ ++LIBSUBDIRS= lib-tk site-packages \ + encodings compiler hotshot \ +- email email/mime email/test email/test/data \ ++ email email/mime \ + ensurepip ensurepip/_bundled \ +- json json/tests \ +- sqlite3 sqlite3/test \ +- logging bsddb bsddb/test csv importlib wsgiref \ +- lib2to3 lib2to3/fixes lib2to3/pgen2 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) \ ++ json \ ++ sqlite3 \ ++ logging bsddb csv importlib wsgiref \ ++ lib2to3 lib2to3/fixes lib2to3/pgen2 \ ++ ctypes ctypes/macholib \ ++ idlelib idlelib/Icons \ ++ distutils distutils/command $(XMLLIBSUBDIRS) \ + multiprocessing multiprocessing/dummy \ +- unittest unittest/test \ ++ unittest \ + lib-old \ + curses pydoc_data $(MACHDEPS) ++ ++TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ ++ lib-tk/test/test_ttk test test/audiodata test/capath test/data \ ++ test/cjkencodings test/decimaltestdata test/xmltestdata \ ++ test/imghdrdata \ ++ test/subprocessdata \ ++ test/tracedmodules \ ++ email/test email/test/data \ ++ json/tests \ ++ sqlite3/test \ ++ bsddb/test \ ++ lib2to3/tests \ ++ lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \ ++ ctypes/test \ ++ idlelib/idle_test \ ++ distutils/tests \ ++ unittest/test ++ ++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 183a903..a1a35f6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2806,6 +2806,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.7.4 + diff --git a/package/python/0017-Add-an-option-to-disable-pydoc.patch b/package/python/0017-Add-an-option-to-disable-pydoc.patch new file mode 100644 index 0000000000..18582f189e --- /dev/null +++ b/package/python/0017-Add-an-option-to-disable-pydoc.patch @@ -0,0 +1,87 @@ +From 52463745b6c46a46a6f2e2bc17983bb3f7bdac6e Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:27:34 +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 | 6 +++++- + configure.ac | 5 +++++ + setup.py | 10 +++++++--- + 3 files changed, 17 insertions(+), 4 deletions(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 280cc4e..84d5fc6 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1052,7 +1052,7 @@ LIBSUBDIRS= lib-tk site-packages \ + multiprocessing multiprocessing/dummy \ + unittest \ + lib-old \ +- curses pydoc_data $(MACHDEPS) ++ curses $(MACHDEPS) + + TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ + lib-tk/test/test_ttk test test/audiodata test/capath test/data \ +@@ -1075,6 +1075,10 @@ ifeq (@TEST_MODULES@,yes) + LIBSUBDIRS += $(TESTSUBDIRS) + endif + ++ifeq (@PYDOC@,yes) ++LIBSUBDIRS += pydoc_data ++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 a1a35f6..8bab160 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2805,6 +2805,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 9a5c2b8..69771e2 100644 +--- a/setup.py ++++ b/setup.py +@@ -2233,6 +2233,12 @@ def main(): + # turn off warnings when deprecated modules are imported + import warnings + warnings.filterwarnings("ignore",category=DeprecationWarning) ++ ++ scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3', ++ 'Lib/smtpd.py'] ++ if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): ++ scripts += [ 'Tools/scripts/pydoc' ] ++ + setup(# PyPI Metadata (PEP 301) + name = "Python", + version = sys.version.split()[0], +@@ -2253,9 +2259,7 @@ def main(): + ext_modules=[Extension('_struct', ['_struct.c'])], + + # Scripts to install +- scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle', +- 'Tools/scripts/2to3', +- 'Lib/smtpd.py'] ++ scripts = scripts, + ) + + # --install-platlib +-- +2.7.4 + diff --git a/package/python/0018-Add-an-option-to-disable-lib2to3.patch b/package/python/0018-Add-an-option-to-disable-lib2to3.patch new file mode 100644 index 0000000000..765b05d979 --- /dev/null +++ b/package/python/0018-Add-an-option-to-disable-lib2to3.patch @@ -0,0 +1,90 @@ +From d0cf9ebed6d34d820cf594578cf513797fb52772 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:27:49 +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 | 11 ++++++++--- + configure.ac | 6 ++++++ + setup.py | 5 +++-- + 3 files changed, 17 insertions(+), 5 deletions(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 84d5fc6..b2a0490 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1045,7 +1045,6 @@ LIBSUBDIRS= lib-tk site-packages \ + json \ + sqlite3 \ + logging bsddb csv importlib wsgiref \ +- lib2to3 lib2to3/fixes lib2to3/pgen2 \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ + distutils distutils/command $(XMLLIBSUBDIRS) \ +@@ -1064,8 +1063,6 @@ TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ + json/tests \ + sqlite3/test \ + bsddb/test \ +- lib2to3/tests \ +- lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \ + ctypes/test \ + idlelib/idle_test \ + distutils/tests \ +@@ -1079,6 +1076,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 ++ + 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 8bab160..270f337 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2817,6 +2817,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 69771e2..f51ef8c 100644 +--- a/setup.py ++++ b/setup.py +@@ -2234,10 +2234,11 @@ def main(): + import warnings + warnings.filterwarnings("ignore",category=DeprecationWarning) + +- scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3', +- 'Lib/smtpd.py'] ++ scripts = ['Tools/scripts/idle', 'Lib/smtpd.py'] + if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): + scripts += [ 'Tools/scripts/pydoc' ] ++ if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"): ++ scripts += [ 'Tools/scripts/2to3' ] + + setup(# PyPI Metadata (PEP 301) + name = "Python", +-- +2.7.4 + diff --git a/package/python/0019-Add-option-to-disable-the-sqlite3-module.patch b/package/python/0019-Add-option-to-disable-the-sqlite3-module.patch new file mode 100644 index 0000000000..bffe3faaba --- /dev/null +++ b/package/python/0019-Add-option-to-disable-the-sqlite3-module.patch @@ -0,0 +1,67 @@ +From 570e1e81484d9bcbd30a7719b07d02785a5cab24 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:28:06 +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 b2a0490..974a052 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1043,7 +1043,6 @@ LIBSUBDIRS= lib-tk site-packages \ + email email/mime \ + ensurepip ensurepip/_bundled \ + json \ +- sqlite3 \ + logging bsddb csv importlib wsgiref \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ +@@ -1061,7 +1060,6 @@ TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ + test/tracedmodules \ + email/test email/test/data \ + json/tests \ +- sqlite3/test \ + bsddb/test \ + ctypes/test \ + idlelib/idle_test \ +@@ -1084,6 +1082,11 @@ TESTSUBDIRS += lib2to3/tests \ + lib2to3/tests/data/fixers/myfixes + endif + ++ifeq (@SQLITE3@,yes) ++LIBSUBDIRS += sqlite3 ++TESTSUBDIRS += sqlite3/test ++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 270f337..e9e1897 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2805,6 +2805,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.7.4 + diff --git a/package/python/002-fix-get-python-inc.patch b/package/python/002-fix-get-python-inc.patch deleted file mode 100644 index bfee03aaac..0000000000 --- a/package/python/002-fix-get-python-inc.patch +++ /dev/null @@ -1,36 +0,0 @@ -Fix get_python_inc() for cross-compilation - -When we are cross compiling, doing os.path.dirname(sys.executable) to -get the build directory is incorrect, because we're executing the host -Python to build things for the target. Instead, we should use the -project_base variable. - -This fixes cross-compilation, which was adding incorrect header paths -pointing to the location where the host Python was built: - -/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc -fPIC -fno-strict-aliasing \ - -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \ - -I/usr/include -I. -IInclude -I./Include -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \ - -I/home/thomas/projets/buildroot/output/host/usr/bin/Include -I/home/thomas/projets/buildroot/output/host/usr/bin \ - -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.c \ - -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.o - -This patch allows to fix the -/home/thomas/projets/buildroot/output/host/usr/bin/Include and -/home/thomas/projets/buildroot/output/host/usr/bin paths that are -incorrectly added to the header paths. - -Signed-off-by: Thomas Petazzoni -Index: b/Lib/distutils/sysconfig.py -=================================================================== ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -79,7 +79,7 @@ - - if os.name == "posix": - if python_build: -- buildir = os.path.dirname(sys.executable) -+ buildir = project_base - if plat_specific: - # python.h is located in the buildir - inc_dir = buildir diff --git a/package/python/0020-Add-an-option-to-disable-the-tk-module.patch b/package/python/0020-Add-an-option-to-disable-the-tk-module.patch new file mode 100644 index 0000000000..82df405e45 --- /dev/null +++ b/package/python/0020-Add-an-option-to-disable-the-tk-module.patch @@ -0,0 +1,71 @@ +From 05fbe2527b6f87edeef11f288c36bcbaa378ca02 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:28:57 +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 974a052..f7f025f 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1038,7 +1038,7 @@ PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \ + plat-mac/lib-scriptpackages/SystemEvents \ + plat-mac/lib-scriptpackages/Terminal + PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages +-LIBSUBDIRS= lib-tk site-packages \ ++LIBSUBDIRS= site-packages \ + encodings compiler hotshot \ + email email/mime \ + ensurepip ensurepip/_bundled \ +@@ -1052,8 +1052,7 @@ LIBSUBDIRS= lib-tk site-packages \ + lib-old \ + curses $(MACHDEPS) + +-TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ +- lib-tk/test/test_ttk test test/audiodata test/capath test/data \ ++TESTSUBDIRS = test test/audiodata test/capath test/data \ + test/cjkencodings test/decimaltestdata test/xmltestdata \ + test/imghdrdata \ + test/subprocessdata \ +@@ -1087,6 +1086,12 @@ LIBSUBDIRS += sqlite3 + TESTSUBDIRS += sqlite3/test + endif + ++ifeq (@TK@,yes) ++LIBSUBDIRS += lib-tk ++TESTSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \ ++ lib-tk/test/test_ttk ++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 e9e1897..d0f032c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2814,6 +2814,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.7.4 + diff --git a/package/python/0021-Add-an-option-to-disable-the-curses-module.patch b/package/python/0021-Add-an-option-to-disable-the-curses-module.patch new file mode 100644 index 0000000000..c36942ad6b --- /dev/null +++ b/package/python/0021-Add-an-option-to-disable-the-curses-module.patch @@ -0,0 +1,59 @@ +From dba12f15baad06cc7e17a275201cc022bb6c84f7 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:29:06 +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 f7f025f..bd537d9 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1050,7 +1050,7 @@ LIBSUBDIRS= site-packages \ + multiprocessing multiprocessing/dummy \ + unittest \ + lib-old \ +- curses $(MACHDEPS) ++ $(MACHDEPS) + + TESTSUBDIRS = test test/audiodata test/capath test/data \ + test/cjkencodings test/decimaltestdata test/xmltestdata \ +@@ -1092,6 +1092,10 @@ TESTSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \ + lib-tk/test/test_ttk + endif + ++ifeq (@CURSES@,yes) ++LIBSUBDIRS += curses ++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 d0f032c..ab081bc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2823,6 +2823,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.7.4 + diff --git a/package/python/0022-Add-an-option-to-disable-expat.patch b/package/python/0022-Add-an-option-to-disable-expat.patch new file mode 100644 index 0000000000..8253f112fe --- /dev/null +++ b/package/python/0022-Add-an-option-to-disable-expat.patch @@ -0,0 +1,90 @@ +From 5f0f30bf342cd2b13f98513c39fd8f17351b1a2f Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:29:20 +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 bd537d9..e5d0dd7 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1046,7 +1046,7 @@ LIBSUBDIRS= site-packages \ + logging bsddb csv importlib wsgiref \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ +- distutils distutils/command $(XMLLIBSUBDIRS) \ ++ distutils distutils/command \ + multiprocessing multiprocessing/dummy \ + unittest \ + lib-old \ +@@ -1096,6 +1096,10 @@ ifeq (@CURSES@,yes) + LIBSUBDIRS += curses + endif + ++ifeq (@EXPAT@,yes) ++LIBSUBDIRS += $(XMLLIBSUBDIRS) ++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 ab081bc..63ee545 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2470,13 +2470,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 f51ef8c..c68f6b4 100644 +--- a/setup.py ++++ b/setup.py +@@ -1483,7 +1483,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.7.4 + diff --git a/package/python/0023-Add-an-option-to-disable-CJK-codecs.patch b/package/python/0023-Add-an-option-to-disable-CJK-codecs.patch new file mode 100644 index 0000000000..e2c2d98b30 --- /dev/null +++ b/package/python/0023-Add-an-option-to-disable-CJK-codecs.patch @@ -0,0 +1,30 @@ +From cb848dae763a3f57e31d734d3be6889f660fa0d0 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:29:31 +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 63ee545..6a854ab 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2822,6 +2822,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" ++ fi]) ++ + AC_SUBST(TK) + AC_ARG_ENABLE(tk, + AS_HELP_STRING([--disable-tk], [disable tk]), +-- +2.7.4 + diff --git a/package/python/0024-Add-an-option-to-disable-NIS.patch b/package/python/0024-Add-an-option-to-disable-NIS.patch new file mode 100644 index 0000000000..877dfd965c --- /dev/null +++ b/package/python/0024-Add-an-option-to-disable-NIS.patch @@ -0,0 +1,33 @@ +From 133776d396b8eaf0243484dc990a53576de9685f Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:29:41 +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 6a854ab..4c2cbc1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2828,6 +2828,12 @@ AC_ARG_ENABLE(codecs-cjk, + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk" + 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.7.4 + diff --git a/package/python/0025-Add-an-option-to-disable-unicodedata.patch b/package/python/0025-Add-an-option-to-disable-unicodedata.patch new file mode 100644 index 0000000000..a1255e5684 --- /dev/null +++ b/package/python/0025-Add-an-option-to-disable-unicodedata.patch @@ -0,0 +1,30 @@ +From aa78e3684c0e8f7a5e910e838f9eca2631262048 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:29:52 +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 4c2cbc1..09cb3de 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2834,6 +2834,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.7.4 + diff --git a/package/python/0026-Add-an-option-to-disable-bsddb.patch b/package/python/0026-Add-an-option-to-disable-bsddb.patch new file mode 100644 index 0000000000..e3ccd44986 --- /dev/null +++ b/package/python/0026-Add-an-option-to-disable-bsddb.patch @@ -0,0 +1,85 @@ +From cfad2bcae8f572a9422ce5a6adb4caa7c0e521ad Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:30:06 +0100 +Subject: [PATCH] Add an option to disable bsddb + +bsddb has an external dependency on Berkeley DB. Since we want to be +able to build Python without it, this patch adds an option to disable +the build/installation of this Python module. + +Signed-off-by: Thomas Petazzoni +Signed-off-by: Samuel Martin +--- + Makefile.pre.in | 8 ++++++-- + configure.ac | 22 ++++++++++++++++++++++ + 2 files changed, 28 insertions(+), 2 deletions(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index e5d0dd7..2582574 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1043,7 +1043,7 @@ LIBSUBDIRS= site-packages \ + email email/mime \ + ensurepip ensurepip/_bundled \ + json \ +- logging bsddb csv importlib wsgiref \ ++ logging csv importlib wsgiref \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ + distutils distutils/command \ +@@ -1059,7 +1059,6 @@ TESTSUBDIRS = test test/audiodata test/capath test/data \ + test/tracedmodules \ + email/test email/test/data \ + json/tests \ +- bsddb/test \ + ctypes/test \ + idlelib/idle_test \ + distutils/tests \ +@@ -1100,6 +1099,11 @@ ifeq (@EXPAT@,yes) + LIBSUBDIRS += $(XMLLIBSUBDIRS) + endif + ++ifeq (@BSDDB@,yes) ++LIBSUBDIRS += bsddb ++TESTSUBDIRS += bsddb/test ++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 09cb3de..524614c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2834,6 +2834,28 @@ AC_ARG_ENABLE(nis, + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" + fi]) + ++AC_ARG_ENABLE(dbm, ++ AS_HELP_STRING([--disable-dbm], [disable DBM]), ++ [ if test "$enableval" = "no"; then ++ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} dbm" ++ fi]) ++ ++AC_ARG_ENABLE(gdbm, ++ AS_HELP_STRING([--disable-gdbm], [disable GDBM]), ++ [ if test "$enableval" = "no"; then ++ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} gdbm" ++ fi]) ++ ++AC_SUBST(BSDDB) ++AC_ARG_ENABLE(bsddb, ++ AS_HELP_STRING([--disable-bsddb], [disable BerkeyleyDB]), ++ [ if test "$enableval" = "no"; then ++ BSDDB=no ++ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _bsddb" ++ else ++ BSDDB=yes ++ fi], [ BSDDB=yes ]) ++ + AC_ARG_ENABLE(unicodedata, + AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]), + [ if test "$enableval" = "no"; then +-- +2.7.4 + diff --git a/package/python/0027-Add-an-option-to-disable-the-ssl-module.patch b/package/python/0027-Add-an-option-to-disable-the-ssl-module.patch new file mode 100644 index 0000000000..3cb823b271 --- /dev/null +++ b/package/python/0027-Add-an-option-to-disable-the-ssl-module.patch @@ -0,0 +1,30 @@ +From 45fcf92ec1e89e0afd0bf2bbc7a1008b56135ba3 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:30:22 +0100 +Subject: [PATCH] Add an option to disable the ssl module + +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 524614c..743707a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2834,6 +2834,12 @@ AC_ARG_ENABLE(nis, + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" + fi]) + ++AC_ARG_ENABLE(ssl, ++ AS_HELP_STRING([--disable-ssl], [disable SSL]), ++ [ if test "$enableval" = "no"; then ++ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl" ++ fi]) ++ + AC_ARG_ENABLE(dbm, + AS_HELP_STRING([--disable-dbm], [disable DBM]), + [ if test "$enableval" = "no"; then +-- +2.7.4 + diff --git a/package/python/0028-Add-an-option-to-disable-the-bz2-module.patch b/package/python/0028-Add-an-option-to-disable-the-bz2-module.patch new file mode 100644 index 0000000000..da914b4783 --- /dev/null +++ b/package/python/0028-Add-an-option-to-disable-the-bz2-module.patch @@ -0,0 +1,30 @@ +From 6b10788fa040442ace100c3a28cbfff29c9db471 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:30:33 +0100 +Subject: [PATCH] Add an option to disable the bz2 module + +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 743707a..f1762e9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2840,6 +2840,12 @@ AC_ARG_ENABLE(ssl, + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl" + fi]) + ++AC_ARG_ENABLE(bz2, ++ AS_HELP_STRING([--disable-bz2], [disable BZIP2]), ++ [ if test "$enableval" = "no"; then ++ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2" ++ fi]) ++ + AC_ARG_ENABLE(dbm, + AS_HELP_STRING([--disable-dbm], [disable DBM]), + [ if test "$enableval" = "no"; then +-- +2.7.4 + diff --git a/package/python/0029-Add-an-option-to-disable-the-zlib-module.patch b/package/python/0029-Add-an-option-to-disable-the-zlib-module.patch new file mode 100644 index 0000000000..b4354e27d2 --- /dev/null +++ b/package/python/0029-Add-an-option-to-disable-the-zlib-module.patch @@ -0,0 +1,30 @@ +From af2c56aa0a5900272cc2d04ce667d4b38e34b596 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:30:45 +0100 +Subject: [PATCH] Add an option to disable the zlib module + +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/configure.ac b/configure.ac +index f1762e9..291ba35 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2846,6 +2846,12 @@ AC_ARG_ENABLE(bz2, + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2" + fi]) + ++AC_ARG_ENABLE(zlib, ++ AS_HELP_STRING([--disable-zlib], [disable ZLIB]), ++ [ if test "$enableval" = "no"; then ++ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} zlib" ++ fi]) ++ + AC_ARG_ENABLE(dbm, + AS_HELP_STRING([--disable-dbm], [disable DBM]), + [ if test "$enableval" = "no"; then +-- +2.7.4 + diff --git a/package/python/0030-Do-not-install-the-idle-editor.patch b/package/python/0030-Do-not-install-the-idle-editor.patch new file mode 100644 index 0000000000..60e64c885f --- /dev/null +++ b/package/python/0030-Do-not-install-the-idle-editor.patch @@ -0,0 +1,53 @@ +From 4b7c45c756dccfd3b5ece36fe572042353d1c2f0 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 7 Mar 2017 22:30:56 +0100 +Subject: [PATCH] Do not install the idle editor + +IDLE is the Python IDE built with the tkinter GUI toolkit. Since it's +highly unlikely to ever be useful in an embedded Linux system +generated by Buildroot, this patch simply disables the installation of +idle and the related Python modules. It saves 800 KB-900 KB of +installed .pyc files. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.pre.in | 2 -- + setup.py | 2 +- + 2 files changed, 1 insertion(+), 3 deletions(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 2582574..3cfc590 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1045,7 +1045,6 @@ LIBSUBDIRS= site-packages \ + json \ + logging csv importlib wsgiref \ + ctypes ctypes/macholib \ +- idlelib idlelib/Icons \ + distutils distutils/command \ + multiprocessing multiprocessing/dummy \ + unittest \ +@@ -1060,7 +1059,6 @@ TESTSUBDIRS = test test/audiodata test/capath test/data \ + email/test email/test/data \ + json/tests \ + ctypes/test \ +- idlelib/idle_test \ + distutils/tests \ + unittest/test + +diff --git a/setup.py b/setup.py +index c68f6b4..8045a9b 100644 +--- a/setup.py ++++ b/setup.py +@@ -2234,7 +2234,7 @@ def main(): + import warnings + warnings.filterwarnings("ignore",category=DeprecationWarning) + +- scripts = ['Tools/scripts/idle', 'Lib/smtpd.py'] ++ scripts = ['Lib/smtpd.py'] + if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): + scripts += [ 'Tools/scripts/pydoc' ] + if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"): +-- +2.7.4 + diff --git a/package/python/0031-Add-an-option-to-disable-the-ossaudiodev-module.patch b/package/python/0031-Add-an-option-to-disable-the-ossaudiodev-module.patch new file mode 100644 index 0000000000..c2aea5ede7 --- /dev/null +++ b/package/python/0031-Add-an-option-to-disable-the-ossaudiodev-module.patch @@ -0,0 +1,30 @@ +From 6af0f179d3db956146bbabac8748675e3abc1f78 Mon Sep 17 00:00:00 2001 +From: Zoltan Gyarmati +Date: Tue, 7 Mar 2017 22:31:22 +0100 +Subject: [PATCH] Add an option to disable the ossaudiodev module + +Signed-off-by: Zoltan Gyarmati +--- + configure.ac | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 291ba35..8dc573e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2898,6 +2898,12 @@ if test "$CURSES" = "no"; then + DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel" + fi + ++AC_ARG_ENABLE(ossaudiodev, ++ AS_HELP_STRING([--disable-ossaudiodev], [disable OSSAUDIODEV]), ++ [ if test "$enableval" = "no"; then ++ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ossaudiodev" ++ fi]) ++ + AC_SUBST(PYDOC) + + AC_ARG_ENABLE(pydoc, +-- +2.7.4 + diff --git a/package/python/004-sysconfigdata-install-location.patch b/package/python/004-sysconfigdata-install-location.patch deleted file mode 100644 index 2998364fbf..0000000000 --- a/package/python/004-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 -@@ -462,6 +462,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 -@@ -1002,7 +1005,7 @@ - else true; \ - fi; \ - done -- @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \ -+ @for i in $(srcdir)/Lib/*.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \ - do \ - if test -x $$i; then \ - $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ -@@ -1012,6 +1015,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; \ -@@ -1337,7 +1345,7 @@ - Modules/Setup Modules/Setup.local Modules/Setup.config \ - Modules/ld_so_aix Modules/python.exp Misc/python.pc - -rm -f python*-gdb.py -- -rm -f pybuilddir.txt -+ -rm -f pybuilddir.txt pysysconfigdatadir.txt - # Issue #28258: set LC_ALL to avoid issues with Estonian locale. - # Expansion is performed here by shell (spawned by make) itself before - # arguments are passed to find. So LC_ALL=C must be set as a separate -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -33,7 +33,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/python/005-pyc-pyo-conditional.patch b/package/python/005-pyc-pyo-conditional.patch deleted file mode 100644 index 1b677dfb11..0000000000 --- a/package/python/005-pyc-pyo-conditional.patch +++ /dev/null @@ -1,59 +0,0 @@ -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -1050,24 +1050,32 @@ - $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ - $(DESTDIR)$(LIBDEST)/distutils/tests ; \ - fi -+ifeq (@PYC_BUILD@,yes) - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi -tt $(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 -tt -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 -t $(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 -t -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 -@@ -739,6 +739,17 @@ - ;; - esac - -+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 ]) - - AC_SUBST(LIBRARY) - AC_MSG_CHECKING(LIBRARY) diff --git a/package/python/006-cross-compile-getaddrinfo.patch b/package/python/006-cross-compile-getaddrinfo.patch deleted file mode 100644 index dd44ec1558..0000000000 --- a/package/python/006-cross-compile-getaddrinfo.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -3353,7 +3353,7 @@ - - AC_MSG_RESULT($ac_cv_buggy_getaddrinfo) - --if test $have_getaddrinfo = no -o "$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/python/007-disable-extensions.patch b/package/python/007-disable-extensions.patch deleted file mode 100644 index 9365cb1f5b..0000000000 --- a/package/python/007-disable-extensions.patch +++ /dev/null @@ -1,60 +0,0 @@ -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -156,6 +156,8 @@ - # configure script arguments - CONFIG_ARGS= @CONFIG_ARGS@ - -+# disabled extensions -+DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@ - - # Subdirectories with code - SRCDIRS= @SRCDIRS@ -@@ -477,6 +479,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 -@@ -1191,7 +1194,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 -@@ -2290,6 +2290,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 -@@ -33,7 +33,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' (at the front) if diff --git a/package/python/008-distutils-use-python-sysroot.patch b/package/python/008-distutils-use-python-sysroot.patch deleted file mode 100644 index 7cd748761a..0000000000 --- a/package/python/008-distutils-use-python-sysroot.patch +++ /dev/null @@ -1,54 +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. - -The _python_sysroot variable is also used to prefix the LIBDIR value -taken from the sysconfigdata module. - -Signed-off-by: Thomas Petazzoni - -Index: b/Lib/distutils/sysconfig.py -=================================================================== ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -19,8 +19,13 @@ - from distutils.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) -+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')) -+else: -+ PREFIX = os.path.normpath(sys.prefix) -+ EXEC_PREFIX = os.path.normpath(sys.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 -@@ -237,7 +237,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/python/009-no-termcap-host-path.patch b/package/python/009-no-termcap-host-path.patch deleted file mode 100644 index 781e17952f..0000000000 --- a/package/python/009-no-termcap-host-path.patch +++ /dev/null @@ -1,23 +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 -@@ -764,12 +764,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/python/010-fix-python-config.patch b/package/python/010-fix-python-config.patch deleted file mode 100644 index b40339b42d..0000000000 --- a/package/python/010-fix-python-config.patch +++ /dev/null @@ -1,208 +0,0 @@ -Add a backport of http://bugs.python.org/issue16235 so we can use -python-config for cross builds. -This basically replaces the python version of python-config with a pure-shell -version that's already preprocessed when installed and doesn't depend -on the sysconfig import that usually leads to bad data/results. - -Signed-off-by: Gustavo Zacarias - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -885,6 +885,7 @@ - - # Other platforms follow - if test $enable_shared = "yes"; then -+ PY_ENABLE_SHARED=1 - AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.]) - case $ac_sys_system in - BeOS*) -@@ -945,6 +946,7 @@ - - esac - else # shared is disabled -+ PY_ENABLE_SHARED=0 - case $ac_sys_system in - CYGWIN*) - BLDLIBRARY='$(LIBRARY)' -@@ -1921,6 +1923,9 @@ - AC_SUBST(BLDSHARED) - AC_SUBST(CCSHARED) - AC_SUBST(LINKFORSHARED) -+AC_SUBST(PY_ENABLE_SHARED) -+LIBPL="${prefix}/lib/python${VERSION}/config" -+AC_SUBST(LIBPL) - # SO is the extension of shared libraries `(including the dot!) - # -- usually .so, .sl on HP-UX, .dll on Cygwin - AC_MSG_CHECKING(SO) -@@ -4588,7 +4593,7 @@ - AC_SUBST(ENSUREPIP) - - # generate output files --AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc) -+AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh) - AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix]) - AC_OUTPUT - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -166,7 +166,7 @@ - SUBDIRSTOO= Include Lib Misc Demo - - # Files and directories to be distributed --CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in -+CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Misc/python-config.sh - DISTFILES= README ChangeLog $(CONFIGFILES) - DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy - DIST= $(DISTFILES) $(DISTDIRS) -@@ -410,7 +410,7 @@ - - # Default target - all: @DEF_MAKE_ALL_RULE@ --build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks -+build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks python-config - - # Compile a binary with gcc profile guided optimization. - profile-opt: -@@ -1101,10 +1101,12 @@ - fi; \ - cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen - --python-config: $(srcdir)/Misc/python-config.in -+python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh - # Substitution happens here, as the completely-expanded BINDIR - # is not available in configure -- sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config -+ sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py -+ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} -+ sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' Misc/python-config.sh >python-config - - # Install the include files - INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) -@@ -1163,7 +1165,7 @@ - $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup - $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh - $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config -- rm python-config -+ $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py - @if [ -s Modules/python.exp -a \ - "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ - echo; echo "Installing support files for building shared extension modules on AIX:"; \ -@@ -1345,6 +1347,7 @@ - config.cache config.log pyconfig.h Modules/config.c - -rm -rf build platform - -rm -rf $(PYTHONFRAMEWORKDIR) -+ -rm -f python-config.py python-config - - # Make things extra clean, before making a distribution: - # remove all generated files, even Makefile[.pre] -Index: b/Misc/python-config.sh.in -=================================================================== ---- /dev/null -+++ b/Misc/python-config.sh.in -@@ -0,0 +1,102 @@ -+#!/bin/sh -+ -+exit_with_usage () -+{ -+ echo "Usage: $0 --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--configdir" -+ exit $1 -+} -+ -+if [ "$1" = "" ] ; then -+ exit_with_usage 1 -+fi -+ -+# Returns the actual prefix where this script was installed to. -+installed_prefix () -+{ -+ RESULT=$(dirname $(cd $(dirname "$1") && pwd -P)) -+ if which readlink >/dev/null 2>&1 ; then -+ RESULT=$(readlink -f "$RESULT") -+ fi -+ echo $RESULT -+} -+ -+prefix_build="@prefix@" -+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#") -+exec_prefix_build="@exec_prefix@" -+exec_prefix=$(echo "$exec_prefix_build" | sed "s#$exec_prefix_build#$prefix_real#") -+includedir=$(echo "@includedir@") -+libdir=$(echo "@libdir@" | sed "s#$prefix_build#$prefix_real#") -+CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix_build#$prefix_real#") -+VERSION="@VERSION@" -+LIBM="@LIBM@" -+LIBC="@LIBC@" -+SYSLIBS="$LIBM $LIBC" -+LIBS="@LIBS@ $SYSLIBS -lpython${VERSION}" -+BASECFLAGS="@BASECFLAGS@" -+LDLIBRARY="@LDLIBRARY@" -+LINKFORSHARED="@LINKFORSHARED@" -+OPT="@OPT@" -+PY_ENABLE_SHARED="@PY_ENABLE_SHARED@" -+LDVERSION="@LDVERSION@" -+LIBDEST=${prefix}/lib/python${VERSION} -+LIBPL=$(echo "@LIBPL@" | sed "s#$prefix_build#$prefix_real#") -+SO="@SO@" -+PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" -+INCDIR="-I$includedir/python${VERSION}" -+PLATINCDIR="-I$includedir/python${VERSION}" -+ -+# Scan for --help or unknown argument. -+for ARG in $* -+do -+ case $ARG in -+ --help) -+ exit_with_usage 0 -+ ;; -+ --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--abiflags|--configdir) -+ ;; -+ *) -+ exit_with_usage 1 -+ ;; -+esac -+done -+ -+for ARG in "$@" -+do -+ case "$ARG" in -+ --prefix) -+ echo "$prefix" -+ ;; -+ --exec-prefix) -+ echo "$exec_prefix" -+ ;; -+ --includes) -+ echo "$INCDIR $PLATINCDIR" -+ ;; -+ --cflags) -+ echo "$INCDIR $PLATINCDIR $BASECFLAGS $CFLAGS $OPT" -+ ;; -+ --libs) -+ echo "$LIBS" -+ ;; -+ --ldflags) -+ LINKFORSHAREDUSED= -+ if [ -z "$PYTHONFRAMEWORK" ] ; then -+ LINKFORSHAREDUSED=$LINKFORSHARED -+ fi -+ LIBPLUSED= -+ if [ "$PY_ENABLE_SHARED" = "0" ] ; then -+ LIBPLUSED="-L$LIBPL" -+ fi -+ echo "$LIBPLUSED -L$libdir $LIBS $LINKFORSHAREDUSED" -+ ;; -+ --extension-suffix) -+ echo "$SO" -+ ;; -+ --configdir) -+ echo "$LIBPL" -+ ;; -+esac -+done diff --git a/package/python/011-remove-python-symlink.patch b/package/python/011-remove-python-symlink.patch deleted file mode 100644 index e021d8320a..0000000000 --- a/package/python/011-remove-python-symlink.patch +++ /dev/null @@ -1,32 +0,0 @@ -Remove the python symlink install rules. - -The python symlink installation will be handled by Buildroot itself, because -Buildroot needs to control to what python interpreter (python2 or python3) the -python symlink points to. - -Signed-off-by: Samuel Martin -Signed-off-by: Bernd Kuhls -(rebased against version 2.7.12) - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -974,17 +974,10 @@ - echo "Creating directory $(LIBPC)"; \ - $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC); \ - fi -- -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \ -- then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \ -- else true; \ -- fi -- (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON)) - -rm -f $(DESTDIR)$(BINDIR)/python2$(EXE) - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE)) - -rm -f $(DESTDIR)$(BINDIR)/python2-config - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python2-config) -- -rm -f $(DESTDIR)$(BINDIR)/python-config -- (cd $(DESTDIR)$(BINDIR); $(LN) -s python2-config python-config) - -test -d $(DESTDIR)$(LIBPC) || $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC) - -rm -f $(DESTDIR)$(LIBPC)/python2.pc - (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc) diff --git a/package/python/013-dont-add-multiarch-path.patch b/package/python/013-dont-add-multiarch-path.patch deleted file mode 100644 index 94fcb0f7fb..0000000000 --- a/package/python/013-dont-add-multiarch-path.patch +++ /dev/null @@ -1,27 +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 -@@ -445,9 +445,9 @@ - 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() - 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/python/014-abort-on-failed-modules.patch b/package/python/014-abort-on-failed-modules.patch deleted file mode 100644 index 4bceeb62d7..0000000000 --- a/package/python/014-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 -@@ -283,6 +283,7 @@ - print "Failed to build these modules:" - print_three_column(failed) - print -+ sys.exit(1) - - def build_extension(self, ext): - diff --git a/package/python/015-fix-sqlite-without-threads.patch b/package/python/015-fix-sqlite-without-threads.patch deleted file mode 100644 index f51c37b372..0000000000 --- a/package/python/015-fix-sqlite-without-threads.patch +++ /dev/null @@ -1,49 +0,0 @@ -sqlite3: fix build when threads are not used/available - -When threads are not used/available, a function in the sqlite3 extension -ends up with a label at the end: - - void _pysqlite_final_callback(sqlite3_context* context) - { - PyObject* function_result; - PyObject** aggregate_instance; - int ok; - - #ifdef WITH_THREAD - PyGILState_STATE threadstate; - - threadstate = PyGILState_Ensure(); - #endif - - aggregate_instance = (PyObject**)sqlite3_aggregate_context(context, sizeof(PyObject*)); - if (!*aggregate_instance) { - goto error; - } - - [......] - - error: - #ifdef WITH_THREAD - PyGILState_Release(threadstate); - #endif - } - -This is not valid, and gcc complains. - -Fix that by adding a dummy statement after the label, so that the label -is never the last statement of the function. - -Signed-off-by: "Yann E. MORIN" - -Index: b/Modules/_sqlite/connection.c -=================================================================== ---- a/Modules/_sqlite/connection.c -+++ b/Modules/_sqlite/connection.c -@@ -786,6 +786,7 @@ - #ifdef WITH_THREAD - PyGILState_Release(threadstate); - #endif -+ ; /* Make gcc happy: a label can't be at the end of a function */ - } - - static void _pysqlite_drop_unused_statement_references(pysqlite_Connection* self) diff --git a/package/python/016-serial-ioctl-workaround.patch b/package/python/016-serial-ioctl-workaround.patch deleted file mode 100644 index 80ed65e39a..0000000000 --- a/package/python/016-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 -@@ -16,7 +16,9 @@ - * so this needs to be included first on that platform. */ - #include - #endif -+#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/python/017-distutils-scripts-dont-adjust-shebang.patch b/package/python/017-distutils-scripts-dont-adjust-shebang.patch deleted file mode 100644 index da4dc36df5..0000000000 --- a/package/python/017-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 -@@ -89,7 +89,7 @@ - adjust = 1 - post_interp = match.group(1) or '' - -- if adjust: -+ if adjust and not '_python_sysroot' in os.environ: - log.info("copying and adjusting %s -> %s", script, - self.build_dir) - if not self.dry_run: diff --git a/package/python/018-fix-add-gcc-paths-logic.patch b/package/python/018-fix-add-gcc-paths-logic.patch deleted file mode 100644 index af6efcc38c..0000000000 --- a/package/python/018-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 -@@ -414,7 +414,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/python/100-optional-test-modules.patch b/package/python/100-optional-test-modules.patch deleted file mode 100644 index 3de6f2669d..0000000000 --- a/package/python/100-optional-test-modules.patch +++ /dev/null @@ -1,94 +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 | 40 +++++++++++++++++++++++++++------------- - configure.in | 6 ++++++ - 2 files changed, 33 insertions(+), 13 deletions(-) - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -960,27 +960,43 @@ - plat-mac/lib-scriptpackages/SystemEvents \ - plat-mac/lib-scriptpackages/Terminal - PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages --LIBSUBDIRS= lib-tk lib-tk/test lib-tk/test/test_tkinter \ -- lib-tk/test/test_ttk site-packages test test/audiodata test/capath \ -- test/data test/cjkencodings test/decimaltestdata test/xmltestdata \ -- test/imghdrdata \ -- test/subprocessdata \ -- test/tracedmodules \ -+LIBSUBDIRS= lib-tk site-packages \ - encodings compiler hotshot \ -- email email/mime email/test email/test/data \ -+ email email/mime \ - ensurepip ensurepip/_bundled \ -- json json/tests \ -- sqlite3 sqlite3/test \ -- logging bsddb bsddb/test csv importlib wsgiref \ -- lib2to3 lib2to3/fixes lib2to3/pgen2 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) \ -+ json \ -+ sqlite3 \ -+ logging bsddb csv importlib wsgiref \ -+ lib2to3 lib2to3/fixes lib2to3/pgen2 \ -+ ctypes ctypes/macholib \ -+ idlelib idlelib/Icons \ -+ distutils distutils/command $(XMLLIBSUBDIRS) \ - multiprocessing multiprocessing/dummy \ -- unittest unittest/test \ -+ unittest \ - lib-old \ - curses pydoc_data $(MACHDEPS) -+ -+TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ -+ lib-tk/test/test_ttk test test/audiodata test/capath test/data \ -+ test/cjkencodings test/decimaltestdata test/xmltestdata \ -+ test/imghdrdata \ -+ test/subprocessdata \ -+ test/tracedmodules \ -+ email/test email/test/data \ -+ json/tests \ -+ sqlite3/test \ -+ bsddb/test \ -+ lib2to3/tests \ -+ lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \ -+ ctypes/test \ -+ idlelib/idle_test \ -+ distutils/tests \ -+ unittest/test -+ -+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 -@@ -2634,6 +2634,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/python/101-optional-pydoc.patch b/package/python/101-optional-pydoc.patch deleted file mode 100644 index 143e11ab92..0000000000 --- a/package/python/101-optional-pydoc.patch +++ /dev/null @@ -1,82 +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 | 6 +++++- - configure.in | 5 +++++ - setup.py | 10 +++++++--- - 3 files changed, 17 insertions(+), 4 deletions(-) - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -974,7 +974,7 @@ - multiprocessing multiprocessing/dummy \ - unittest \ - lib-old \ -- curses pydoc_data $(MACHDEPS) -+ curses $(MACHDEPS) - - TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ - lib-tk/test/test_ttk test test/audiodata test/capath test/data \ -@@ -997,6 +997,10 @@ - LIBSUBDIRS += $(TESTSUBDIRS) - endif - -+ifeq (@PYDOC@,yes) -+LIBSUBDIRS += pydoc_data -+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 -@@ -2633,6 +2633,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 -@@ -2211,6 +2211,12 @@ - # turn off warnings when deprecated modules are imported - import warnings - warnings.filterwarnings("ignore",category=DeprecationWarning) -+ -+ scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3', -+ 'Lib/smtpd.py'] -+ if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): -+ scripts += [ 'Tools/scripts/pydoc' ] -+ - setup(# PyPI Metadata (PEP 301) - name = "Python", - version = sys.version.split()[0], -@@ -2231,9 +2237,7 @@ - ext_modules=[Extension('_struct', ['_struct.c'])], - - # Scripts to install -- scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle', -- 'Tools/scripts/2to3', -- 'Lib/smtpd.py'] -+ scripts = scripts, - ) - - # --install-platlib diff --git a/package/python/102-optional-2to3.patch b/package/python/102-optional-2to3.patch deleted file mode 100644 index 100c417a21..0000000000 --- a/package/python/102-optional-2to3.patch +++ /dev/null @@ -1,85 +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 | 24 +++++++++++++++++------- - configure.in | 6 ++++++ - setup.py | 5 +++-- - 3 files changed, 26 insertions(+), 9 deletions(-) - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -967,7 +967,6 @@ - json \ - sqlite3 \ - logging bsddb csv importlib wsgiref \ -- lib2to3 lib2to3/fixes lib2to3/pgen2 \ - ctypes ctypes/macholib \ - idlelib idlelib/Icons \ - distutils distutils/command $(XMLLIBSUBDIRS) \ -@@ -986,8 +985,6 @@ - json/tests \ - sqlite3/test \ - bsddb/test \ -- lib2to3/tests \ -- lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \ - ctypes/test \ - idlelib/idle_test \ - distutils/tests \ -@@ -1001,6 +998,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 -+ - 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 -@@ -2645,6 +2645,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]) -Index: b/setup.py -=================================================================== ---- a/setup.py -+++ b/setup.py -@@ -2212,10 +2212,11 @@ - import warnings - warnings.filterwarnings("ignore",category=DeprecationWarning) - -- scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3', -- 'Lib/smtpd.py'] -+ scripts = ['Tools/scripts/idle', 'Lib/smtpd.py'] - if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): - scripts += [ 'Tools/scripts/pydoc' ] -+ if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"): -+ scripts += [ 'Tools/scripts/2to3' ] - - setup(# PyPI Metadata (PEP 301) - name = "Python", diff --git a/package/python/103-optional-sqlite.patch b/package/python/103-optional-sqlite.patch deleted file mode 100644 index 3a48011919..0000000000 --- a/package/python/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 | 24 +++++++++++++++++------- - configure.in | 9 +++++++++ - 2 file changed, 9 insertions(+) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -2633,6 +2633,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 -@@ -965,7 +965,6 @@ - email email/mime \ - ensurepip ensurepip/_bundled \ - json \ -- sqlite3 \ - logging bsddb csv importlib wsgiref \ - ctypes ctypes/macholib \ - idlelib idlelib/Icons \ -@@ -983,7 +982,6 @@ - test/tracedmodules \ - email/test email/test/data \ - json/tests \ -- sqlite3/test \ - bsddb/test \ - ctypes/test \ - idlelib/idle_test \ -@@ -1006,6 +1004,11 @@ - lib2to3/tests/data/fixers/myfixes - endif - -+ifeq (@SQLITE3@,yes) -+LIBSUBDIRS += sqlite3 -+TESTSUBDIRS += sqlite3/test -+endif -+ - libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ diff --git a/package/python/104-optional-tk.patch b/package/python/104-optional-tk.patch deleted file mode 100644 index 18024d3a1e..0000000000 --- a/package/python/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.in | 9 +++++++++ - 2 files changed, 19 insertions(+), 4 deletions(-) - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -960,7 +960,7 @@ - plat-mac/lib-scriptpackages/SystemEvents \ - plat-mac/lib-scriptpackages/Terminal - PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages --LIBSUBDIRS= lib-tk site-packages \ -+LIBSUBDIRS= site-packages \ - encodings compiler hotshot \ - email email/mime \ - ensurepip ensurepip/_bundled \ -@@ -974,8 +974,7 @@ - lib-old \ - curses $(MACHDEPS) - --TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \ -- lib-tk/test/test_ttk test test/audiodata test/capath test/data \ -+TESTSUBDIRS = test test/audiodata test/capath test/data \ - test/cjkencodings test/decimaltestdata test/xmltestdata \ - test/imghdrdata \ - test/subprocessdata \ -@@ -1009,6 +1008,12 @@ - TESTSUBDIRS += sqlite3/test - endif - -+ifeq (@TK@,yes) -+LIBSUBDIRS += lib-tk -+TESTSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \ -+ lib-tk/test/test_ttk -+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 -@@ -2642,6 +2642,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/python/105-optional-curses.patch b/package/python/105-optional-curses.patch deleted file mode 100644 index 9e1ac5ad54..0000000000 --- a/package/python/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.in | 9 +++++++++ - 2 files changed, 14 insertions(+), 1 deletion(-) - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -972,7 +972,7 @@ - multiprocessing multiprocessing/dummy \ - unittest \ - lib-old \ -- curses $(MACHDEPS) -+ $(MACHDEPS) - - TESTSUBDIRS = test test/audiodata test/capath test/data \ - test/cjkencodings test/decimaltestdata test/xmltestdata \ -@@ -1014,6 +1014,10 @@ - lib-tk/test/test_ttk - endif - -+ifeq (@CURSES@,yes) -+LIBSUBDIRS += curses -+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 -@@ -2651,6 +2651,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/python/106-optional-expat.patch b/package/python/106-optional-expat.patch deleted file mode 100644 index 6ebaf166d1..0000000000 --- a/package/python/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.in | 18 +++++++++++++----- - setup.py | 2 +- - 3 files changed, 19 insertions(+), 7 deletions(-) - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -968,7 +968,7 @@ - logging bsddb csv importlib wsgiref \ - ctypes ctypes/macholib \ - idlelib idlelib/Icons \ -- distutils distutils/command $(XMLLIBSUBDIRS) \ -+ distutils distutils/command \ - multiprocessing multiprocessing/dummy \ - unittest \ - lib-old \ -@@ -1018,6 +1018,10 @@ - LIBSUBDIRS += curses - endif - -+ifeq (@EXPAT@,yes) -+LIBSUBDIRS += $(XMLLIBSUBDIRS) -+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 -@@ -2298,13 +2298,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 -@@ -1463,7 +1463,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/python/107-optional-codecs-cjk.patch b/package/python/107-optional-codecs-cjk.patch deleted file mode 100644 index 22a2fed8b8..0000000000 --- a/package/python/107-optional-codecs-cjk.patch +++ /dev/null @@ -1,25 +0,0 @@ -Add an option to disable CJK codecs - -Signed-off-by: Thomas Petazzoni - ---- - configure.in | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -2650,6 +2650,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" -+ fi]) -+ - AC_SUBST(TK) - AC_ARG_ENABLE(tk, - AS_HELP_STRING([--disable-tk], [disable tk]), diff --git a/package/python/108-optional-nis.patch b/package/python/108-optional-nis.patch deleted file mode 100644 index d19ebe1e07..0000000000 --- a/package/python/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.in | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -2656,6 +2656,12 @@ - DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk" - 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/python/109-optional-unicodedata.patch b/package/python/109-optional-unicodedata.patch deleted file mode 100644 index 841f2a77b5..0000000000 --- a/package/python/109-optional-unicodedata.patch +++ /dev/null @@ -1,25 +0,0 @@ -Add an option to disable unicodedata - -Signed-off-by: Thomas Petazzoni - ---- - configure.in | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -2662,6 +2662,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/python/110-optional-db.patch b/package/python/110-optional-db.patch deleted file mode 100644 index b8c454c90b..0000000000 --- a/package/python/110-optional-db.patch +++ /dev/null @@ -1,80 +0,0 @@ -Add an option to disable bsddb - -bsddb has an external dependency on Berkeley DB. Since we want to be -able to build Python without it, this patch adds an option to disable -the build/installation of this Python module. - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Samuel Martin - ---- - Makefile.pre.in | 10 ++++++++-- - configure.in | 22 ++++++++++++++++++++++ - 2 files changed, 30 insertions(+), 2 deletions(-) - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -965,7 +965,7 @@ - email email/mime \ - ensurepip ensurepip/_bundled \ - json \ -- logging bsddb csv importlib wsgiref \ -+ logging csv importlib wsgiref \ - ctypes ctypes/macholib \ - idlelib idlelib/Icons \ - distutils distutils/command \ -@@ -981,7 +981,6 @@ - test/tracedmodules \ - email/test email/test/data \ - json/tests \ -- bsddb/test \ - ctypes/test \ - idlelib/idle_test \ - distutils/tests \ -@@ -1022,6 +1021,11 @@ - LIBSUBDIRS += $(XMLLIBSUBDIRS) - endif - -+ifeq (@BSDDB@,yes) -+LIBSUBDIRS += bsddb -+TESTSUBDIRS += bsddb/test -+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 -@@ -2662,6 +2662,28 @@ - DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" - fi]) - -+AC_ARG_ENABLE(dbm, -+ AS_HELP_STRING([--disable-dbm], [disable DBM]), -+ [ if test "$enableval" = "no"; then -+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} dbm" -+ fi]) -+ -+AC_ARG_ENABLE(gdbm, -+ AS_HELP_STRING([--disable-gdbm], [disable GDBM]), -+ [ if test "$enableval" = "no"; then -+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} gdbm" -+ fi]) -+ -+AC_SUBST(BSDDB) -+AC_ARG_ENABLE(bsddb, -+ AS_HELP_STRING([--disable-bsddb], [disable BerkeyleyDB]), -+ [ if test "$enableval" = "no"; then -+ BSDDB=no -+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _bsddb" -+ else -+ BSDDB=yes -+ fi], [ BSDDB=yes ]) -+ - AC_ARG_ENABLE(unicodedata, - AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]), - [ if test "$enableval" = "no"; then diff --git a/package/python/111-optional-ssl.patch b/package/python/111-optional-ssl.patch deleted file mode 100644 index 956d2a0726..0000000000 --- a/package/python/111-optional-ssl.patch +++ /dev/null @@ -1,25 +0,0 @@ -Add an option to disable the ssl module - -Signed-off-by: Thomas Petazzoni - ---- - configure.in | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -2662,6 +2662,12 @@ - DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" - fi]) - -+AC_ARG_ENABLE(ssl, -+ AS_HELP_STRING([--disable-ssl], [disable SSL]), -+ [ if test "$enableval" = "no"; then -+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl" -+ fi]) -+ - AC_ARG_ENABLE(dbm, - AS_HELP_STRING([--disable-dbm], [disable DBM]), - [ if test "$enableval" = "no"; then diff --git a/package/python/112-optional-bzip2.patch b/package/python/112-optional-bzip2.patch deleted file mode 100644 index 99fe83ca69..0000000000 --- a/package/python/112-optional-bzip2.patch +++ /dev/null @@ -1,24 +0,0 @@ -Add an option to disable the bz2 module - -Signed-off-by: Thomas Petazzoni ---- - configure.in | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -2668,6 +2668,12 @@ - DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl" - fi]) - -+AC_ARG_ENABLE(bz2, -+ AS_HELP_STRING([--disable-bz2], [disable BZIP2]), -+ [ if test "$enableval" = "no"; then -+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2" -+ fi]) -+ - AC_ARG_ENABLE(dbm, - AS_HELP_STRING([--disable-dbm], [disable DBM]), - [ if test "$enableval" = "no"; then diff --git a/package/python/113-optional-zlib.patch b/package/python/113-optional-zlib.patch deleted file mode 100644 index 652a586eae..0000000000 --- a/package/python/113-optional-zlib.patch +++ /dev/null @@ -1,24 +0,0 @@ -Add an option to disable the zlib module - -Signed-off-by: Thomas Petazzoni ---- - configure.in | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -2674,6 +2674,12 @@ - DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2" - fi]) - -+AC_ARG_ENABLE(zlib, -+ AS_HELP_STRING([--disable-zlib], [disable ZLIB]), -+ [ if test "$enableval" = "no"; then -+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} zlib" -+ fi]) -+ - AC_ARG_ENABLE(dbm, - AS_HELP_STRING([--disable-dbm], [disable DBM]), - [ if test "$enableval" = "no"; then diff --git a/package/python/114-remove-idle-editor.patch b/package/python/114-remove-idle-editor.patch deleted file mode 100644 index 512eedcb5f..0000000000 --- a/package/python/114-remove-idle-editor.patch +++ /dev/null @@ -1,43 +0,0 @@ -Do not install the idle editor - -IDLE is the Python IDE built with the tkinter GUI toolkit. Since it's -highly unlikely to ever be useful in an embedded Linux system -generated by Buildroot, this patch simply disables the installation of -idle and the related Python modules. It saves 800 KB-900 KB of -installed .pyc files. - -Signed-off-by: Thomas Petazzoni - -Index: b/Makefile.pre.in -=================================================================== ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -967,7 +967,6 @@ - json \ - logging csv importlib wsgiref \ - ctypes ctypes/macholib \ -- idlelib idlelib/Icons \ - distutils distutils/command \ - multiprocessing multiprocessing/dummy \ - unittest \ -@@ -982,7 +981,6 @@ - email/test email/test/data \ - json/tests \ - ctypes/test \ -- idlelib/idle_test \ - distutils/tests \ - unittest/test - -Index: b/setup.py -=================================================================== ---- a/setup.py -+++ b/setup.py -@@ -2212,7 +2212,7 @@ - import warnings - warnings.filterwarnings("ignore",category=DeprecationWarning) - -- scripts = ['Tools/scripts/idle', 'Lib/smtpd.py'] -+ scripts = ['Lib/smtpd.py'] - if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"): - scripts += [ 'Tools/scripts/pydoc' ] - if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"): diff --git a/package/python/115-optional-ossaudiodev.patch b/package/python/115-optional-ossaudiodev.patch deleted file mode 100644 index 89335ba2d0..0000000000 --- a/package/python/115-optional-ossaudiodev.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 30351d9b41a03c43d627d52d46e49ab91bfe342d Mon Sep 17 00:00:00 2001 -From: Zoltan Gyarmati -Date: Thu, 8 Jan 2015 11:41:40 +0100 -Subject: [PATCH 1/1] Add an option to disable the ossaudiodev module - -Signed-off-by: Zoltan Gyarmati ---- - configure.ac | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -2726,6 +2726,12 @@ - DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel" - fi - -+AC_ARG_ENABLE(ossaudiodev, -+ AS_HELP_STRING([--disable-ossaudiodev], [disable OSSAUDIODEV]), -+ [ if test "$enableval" = "no"; then -+ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ossaudiodev" -+ fi]) -+ - AC_SUBST(PYDOC) - - AC_ARG_ENABLE(pydoc,