From 0d327c267a57e3a75b10becde772addb7fc49297 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 18 Feb 2014 21:40:01 +0100 Subject: python3: bump to 3.4.0rc1 This commit bumps the Python3 package to use Python 3.4.0rc1. About the patches: * The patches below 100 are significantly changed, because like for Python 2.x, a good number of improvements have been made in the upstream Python for cross-compilation. Therefore, almost all of these patches have been modified. * All the patches above 100 are simply updated for Python 3.4.0, with a small refactoring for the handling of test modules. The details of the python3.mk changes are: * --without-ensurepip to tell Python to not use PIP at build time. * Many environment variables are no longer passed, they were specific to our cross-compilation patches * The fixup of the LIBDIR in the Python Makefile is no longer needed since Python has switched to _sysconfigdata.py for distutils configuration instead of parsing the Makefile. * A new post patch hooks touches the two files generated by pgen to make sure they are newer than the pgen sources, which ensures pgen is not built/executed. Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- ...ython3-000-generate-sysconfigdata-buildir.patch | 158 --------------------- .../python3-001-remove-host-header-path.patch | 36 +++++ .../python3/python3-001-support-for-build.patch | 68 --------- .../python3/python3-002-no-host-headers-libs.patch | 72 ---------- ...thon3-002-properly-detect-if-python-build.patch | 23 +++ .../python3/python3-003-staging-header-libs.patch | 41 ------ ...ython3-003-sysconfigdata-install-location.patch | 76 ++++++++++ ...ython3-004-no-import-when-cross-compiling.patch | 27 ---- package/python3/python3-004-old-stdlib-cache.patch | 78 ++++++++++ .../python3-005-do-not-generate-pyo-files.patch | 40 ------ .../python3/python3-005-pyc-pyo-conditional.patch | 60 ++++++++ .../python3-006-cross-compile-getaddrinfo.patch | 21 +++ .../python3/python3-006-reread-environment.patch | 63 -------- .../python3-007-change-pyconfig-h-location.patch | 76 ---------- .../python3/python3-007-disable-extensions.patch | 100 +++++++++++++ ...008-distutils-sysconfig-use-sysconfigdata.patch | 58 ++++++++ package/python3/python3-008-no-rpath.patch | 51 ------- .../python3-009-distutils-use-python-sysroot.patch | 57 ++++++++ .../python3/python3-009-verbose-module-build.patch | 26 ---- ...3-010-distutils-cross-compilation-support.patch | 71 --------- .../python3/python3-010-no-termcap-host-path.patch | 22 +++ .../python3-011-cross-compile-getaddrinfo.patch | 21 --- .../python3/python3-012-disable-extensions.patch | 98 ------------- .../python3-100-optional-test-modules.patch | 60 ++++---- package/python3/python3-101-optional-pydoc.patch | 46 +++--- package/python3/python3-102-optional-2to3.patch | 68 +++++---- package/python3/python3-103-optional-sqlite.patch | 53 ++++--- package/python3/python3-104-optional-tk.patch | 51 ++++--- package/python3/python3-105-optional-curses.patch | 30 ++-- package/python3/python3-106-optional-expat.patch | 36 ++--- .../python3/python3-107-optional-codecs-cjk.patch | 8 +- package/python3/python3-108-optional-nis.patch | 8 +- .../python3/python3-109-optional-unicodedata.patch | 8 +- package/python3/python3-110-optional-idle.patch | 39 +++-- package/python3/python3-112-old-stdlib-cache.patch | 63 -------- package/python3/python3.mk | 62 +++----- 36 files changed, 755 insertions(+), 1120 deletions(-) delete mode 100644 package/python3/python3-000-generate-sysconfigdata-buildir.patch create mode 100644 package/python3/python3-001-remove-host-header-path.patch delete mode 100644 package/python3/python3-001-support-for-build.patch delete mode 100644 package/python3/python3-002-no-host-headers-libs.patch create mode 100644 package/python3/python3-002-properly-detect-if-python-build.patch delete mode 100644 package/python3/python3-003-staging-header-libs.patch create mode 100644 package/python3/python3-003-sysconfigdata-install-location.patch delete mode 100644 package/python3/python3-004-no-import-when-cross-compiling.patch create mode 100644 package/python3/python3-004-old-stdlib-cache.patch delete mode 100644 package/python3/python3-005-do-not-generate-pyo-files.patch create mode 100644 package/python3/python3-005-pyc-pyo-conditional.patch create mode 100644 package/python3/python3-006-cross-compile-getaddrinfo.patch delete mode 100644 package/python3/python3-006-reread-environment.patch delete mode 100644 package/python3/python3-007-change-pyconfig-h-location.patch create mode 100644 package/python3/python3-007-disable-extensions.patch create mode 100644 package/python3/python3-008-distutils-sysconfig-use-sysconfigdata.patch delete mode 100644 package/python3/python3-008-no-rpath.patch create mode 100644 package/python3/python3-009-distutils-use-python-sysroot.patch delete mode 100644 package/python3/python3-009-verbose-module-build.patch delete mode 100644 package/python3/python3-010-distutils-cross-compilation-support.patch create mode 100644 package/python3/python3-010-no-termcap-host-path.patch delete mode 100644 package/python3/python3-011-cross-compile-getaddrinfo.patch delete mode 100644 package/python3/python3-012-disable-extensions.patch delete mode 100644 package/python3/python3-112-old-stdlib-cache.patch (limited to 'package/python3') diff --git a/package/python3/python3-000-generate-sysconfigdata-buildir.patch b/package/python3/python3-000-generate-sysconfigdata-buildir.patch deleted file mode 100644 index a29aa0ffc8..0000000000 --- a/package/python3/python3-000-generate-sysconfigdata-buildir.patch +++ /dev/null @@ -1,158 +0,0 @@ -changeset: 79745:f85c3f4d9b98 -parent: 79743:36b2ca7dc893 -parent: 79744:24d52d3060e8 -user: Trent Nelson -date: Tue Oct 16 08:17:11 2012 -0400 -summary: Merge issue #15298: ensure _sysconfigdata is generated in build directory, - -Taken from upstream. - ---- - Lib/sysconfig.py | 11 ++++++++++- - Makefile.pre.in | 24 +++++++++++++----------- - setup.py | 14 -------------- - 3 files changed, 23 insertions(+), 26 deletions(-) - -Index: Python-3.3.0/Lib/sysconfig.py -=================================================================== ---- Python-3.3.0.orig/Lib/sysconfig.py -+++ Python-3.3.0/Lib/sysconfig.py -@@ -390,13 +390,22 @@ - if _PYTHON_BUILD: - vars['LDSHARED'] = vars['BLDSHARED'] - -- destfile = os.path.join(os.path.dirname(__file__), '_sysconfigdata.py') -+ pybuilddir = 'build/lib.%s-%s' % (get_platform(), sys.version[:3]) -+ if hasattr(sys, "gettotalrefcount"): -+ pybuilddir += '-pydebug' -+ os.makedirs(pybuilddir, exist_ok=True) -+ destfile = os.path.join(pybuilddir, '_sysconfigdata.py') -+ - with open(destfile, 'w', encoding='utf8') as f: - f.write('# system configuration generated and used by' - ' the sysconfig module\n') - f.write('build_time_vars = ') - pprint.pprint(vars, stream=f) - -+ # Create file used for sys.path fixup -- see Modules/getpath.c -+ with open('pybuilddir.txt', 'w', encoding='ascii') as f: -+ f.write(pybuilddir) -+ - def _init_posix(vars): - """Initialize the module as appropriate for POSIX systems.""" - # _sysconfigdata is generated at build time, see _generate_posix_vars() -Index: Python-3.3.0/Makefile.pre.in -=================================================================== ---- Python-3.3.0.orig/Makefile.pre.in -+++ Python-3.3.0/Makefile.pre.in -@@ -410,8 +410,6 @@ - Objects/unicodectype.o \ - Objects/weakrefobject.o - --SYSCONFIGDATA=$(srcdir)/Lib/_sysconfigdata.py -- - ########################################################################## - # objects that get linked into the Python library - LIBRARY_OBJS_OMIT_FROZEN= \ -@@ -432,7 +430,7 @@ - - # Default target - all: build_all --build_all: $(BUILDPYTHON) $(SYSCONFIGDATA) oldsharedmods sharedmods gdbhooks Modules/_testembed -+build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Modules/_testembed - - # Compile a binary with gcc profile guided optimization. - profile-opt: -@@ -466,15 +464,17 @@ - $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) - $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Modules/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) - --platform: $(BUILDPYTHON) $(SYSCONFIGDATA) -+platform: $(BUILDPYTHON) - $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print(get_platform()+"-"+sys.version[0:3])' >platform - --# Generate the sysconfig build-time data --$(SYSCONFIGDATA): $(BUILDPYTHON) -+# Create build directory and generate the sysconfig build-time data there. -+# pybuilddir.txt contains the name of the build dir and is used for -+# sys.path fixup -- see Modules/getpath.c. -+pybuilddir.txt: $(BUILDPYTHON) - $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars - - # Build the shared modules --sharedmods: $(BUILDPYTHON) $(SYSCONFIGDATA) -+sharedmods: $(BUILDPYTHON) pybuilddir.txt - case $$MAKEFLAGS in *s*) quiet=-q; esac; \ - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build -@@ -1036,7 +1036,7 @@ - else true; \ - fi; \ - done -- @for i in $(srcdir)/Lib/*.py ; \ -+ @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \ - do \ - if test -x $$i; then \ - $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ -@@ -1196,6 +1196,8 @@ - --install-scripts=$(BINDIR) \ - --install-platlib=$(DESTSHARED) \ - --root=$(DESTDIR)/ -+ -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py -+ -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__ - - # Here are a couple of targets for MacOSX again, to install a full - # framework-based Python. frameworkinstall installs everything, the -@@ -1341,9 +1343,10 @@ - find . -name '*.s[ol]' -exec rm -f {} ';' - find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';' - find build -name 'fficonfig.h' -exec rm -f {} ';' || true -- find build -name 'fficonfig.py' -exec rm -f {} ';' || true -+ find build -name '*.py' -exec rm -f {} ';' || true -+ find build -name '*.py[co]' -exec rm -f {} ';' || true -+ -rm -f pybuilddir.txt - -rm -f Lib/lib2to3/*Grammar*.pickle -- -rm -f $(SYSCONFIGDATA) - -rm -f Modules/_testembed Modules/_freeze_importlib - - profile-removal: -@@ -1367,7 +1370,6 @@ - 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 - find $(srcdir) '(' -name '*.fdc' -o -name '*~' \ - -o -name '[@,#]*' -o -name '*.old' \ - -o -name '*.orig' -o -name '*.rej' \ -Index: Python-3.3.0/setup.py -=================================================================== ---- Python-3.3.0.orig/setup.py -+++ Python-3.3.0/setup.py -@@ -33,10 +33,6 @@ - # This global variable is used to hold the list of modules to be disabled. - disabled_module_list = [] - --# File which contains the directory for shared mods (for sys.path fixup --# when running from the build dir, see Modules/getpath.c) --_BUILDDIR_COOKIE = "pybuilddir.txt" -- - def add_dir_to_list(dirlist, dir): - """Add the directory 'dir' to the list 'dirlist' (after any relative - directories) if: -@@ -252,16 +248,6 @@ - args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags - self.compiler.set_executables(**args) - -- # Not only do we write the builddir cookie, but we manually install -- # the shared modules directory if it isn't already in sys.path. -- # Otherwise trying to import the extensions after building them -- # will fail. -- with open(_BUILDDIR_COOKIE, "wb") as f: -- f.write(self.build_lib.encode('utf-8', 'surrogateescape')) -- abs_build_lib = os.path.join(os.getcwd(), self.build_lib) -- if abs_build_lib not in sys.path: -- sys.path.append(abs_build_lib) -- - build_ext.build_extensions(self) - - longest = max([len(e.name) for e in self.extensions]) diff --git a/package/python3/python3-001-remove-host-header-path.patch b/package/python3/python3-001-remove-host-header-path.patch new file mode 100644 index 0000000000..e159e868c0 --- /dev/null +++ b/package/python3/python3-001-remove-host-header-path.patch @@ -0,0 +1,36 @@ +setup.py: do not add invalid header locations + +This piece of code incorrectly adds /usr/include to +self.compiler.include_dirs, and results in the following invalid +compilation line: + +/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc + -fPIC -Wno-unused-result -Werror=declaration-after-statement -DNDEBUG -g + -O3 -Wall -Wstrict-prototypes -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE + -D_FILE_OFFSET_BITS=64 -pipe -Os + -I./Include -I/usr/include -I. -IInclude + -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include + -I/home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Include + -I/home/thomas/projets/buildroot/output/build/python3-3.4.0b1 + -c /home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Modules/_struct.c + -o build/temp.linux-arm-3.4/home/thomas/projets/buildroot/output/build/python3-3.4.0b1/Modules/_struct.o +cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories] + +The -I/usr/include is wrong when cross compiling, so we disable adding +INCLUDEDIR and LIBDIR from the host when cross compiling. + +Signed-off-by: Thomas Petazzoni +Index: b/setup.py +=================================================================== +--- a/setup.py ++++ b/setup.py +@@ -487,7 +487,8 @@ + add_dir_to_list(dir_list, directory) + + if os.path.normpath(sys.base_prefix) != '/usr' \ +- and not sysconfig.get_config_var('PYTHONFRAMEWORK'): ++ and not sysconfig.get_config_var('PYTHONFRAMEWORK') \ ++ and not cross_compiling: + # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework + # (PYTHONFRAMEWORK is set) to avoid # linking problems when + # building a framework with different architectures than diff --git a/package/python3/python3-001-support-for-build.patch b/package/python3/python3-001-support-for-build.patch deleted file mode 100644 index 8c57cfb9cc..0000000000 --- a/package/python3/python3-001-support-for-build.patch +++ /dev/null @@ -1,68 +0,0 @@ -Add support in Python build system to specify host pgen - -Python needs a "pgen" program to build itself. Unfortunately, the -Python build system assumes that it can use the pgen program it has -just built to build itself. Obviously, this cannot work in -cross-compilation mode since the pgen program have been built for the -target. - -Therefore, this patch adds support in the Python build system for the -new PGEN_FOR_BUILD variable, so that we can point Python ./configure -script to the pgen program that have been previously built for the -host. - -Patch ported to python2.7 by Maxime Ripard , and -later significantly reworked by Thomas Petazzoni -, with some inspiration taken -from the Python patches of the PTXdist project, and then ported to -python3.3 by Maxime Ripard - -Signed-off-by: Maxime Ripard ---- - Makefile.pre.in | 5 +++-- - configure.ac | 5 +++++ - 2 files changed, 8 insertions(+), 2 deletions(-) - -Index: Python-3.3.0/Makefile.pre.in -=================================================================== ---- Python-3.3.0.orig/Makefile.pre.in -+++ Python-3.3.0/Makefile.pre.in -@@ -239,6 +239,7 @@ - ########################################################################## - # Parser - PGEN= Parser/pgen$(EXE) -+PGEN_FOR_BUILD=@PGEN_FOR_BUILD@ - - PSRCS= \ - Parser/acceler.c \ -@@ -639,8 +640,8 @@ - - $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS) - @$(MKDIR_P) Include -- $(MAKE) $(PGEN) -- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) -+ $(MAKE) $(PGEN_FOR_BUILD) -+ $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) - $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS) - $(MAKE) $(GRAMMAR_H) - touch $(GRAMMAR_C) -Index: Python-3.3.0/configure.ac -=================================================================== ---- Python-3.3.0.orig/configure.ac -+++ Python-3.3.0/configure.ac -@@ -51,10 +51,15 @@ - AC_MSG_RESULT($interp) - PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=$srcdir"' _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp - fi -+ AC_MSG_CHECKING(pgen for build) -+ PGEN_FOR_BUILD="${PGEN_FOR_BUILD}" -+ AC_MSG_RESULT($PGEN_FOR_BUILD) - else - PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E' -+ PGEN_FOR_BUILD='./$(PGEN)' - fi - AC_SUBST(PYTHON_FOR_BUILD) -+AC_SUBST(PGEN_FOR_BUILD) - - dnl Ensure that if prefix is specified, it does not end in a slash. If - dnl it does, we get path names containing '//' which is both ugly and diff --git a/package/python3/python3-002-no-host-headers-libs.patch b/package/python3/python3-002-no-host-headers-libs.patch deleted file mode 100644 index 9783f28ade..0000000000 --- a/package/python3/python3-002-no-host-headers-libs.patch +++ /dev/null @@ -1,72 +0,0 @@ -Do not look at host headers/libraries in cross-compile mode - -When we are cross-compiling, setup.py should never look in /usr or -/usr/local to find headers or libraries. A later patch adds a -mechanism to tell setup.py to look in a specific directory for headers -and libraries. - -Patch first written by Thomas Petazzoni - for python2.7, and then ported -to python3.3 by Maxime Ripard - -Signed-off-by: Maxime Ripard ---- - setup.py | 23 +++++------------------ - 1 file changed, 5 insertions(+), 18 deletions(-) - -Index: Python-3.3.0/setup.py -=================================================================== ---- Python-3.3.0.orig/setup.py -+++ Python-3.3.0/setup.py -@@ -447,10 +447,8 @@ - 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') -- # only change this for cross builds for 3.3, issues on Mageia -- if cross_compiling: - self.add_gcc_paths() -- self.add_multiarch_paths() -+ self.add_multiarch_paths() - - # Add paths specified in the environment variables LDFLAGS and - # CPPFLAGS for header and library files. -@@ -458,10 +456,7 @@ - # directly since an inconsistently reproducible issue comes up where - # the environment variable is not set even though the value were passed - # into configure and stored in the Makefile (issue found on OS X 10.3). -- for env_var, arg_name, dir_list in ( -- ('LDFLAGS', '-R', self.compiler.runtime_library_dirs), -- ('LDFLAGS', '-L', self.compiler.library_dirs), -- ('CPPFLAGS', '-I', self.compiler.include_dirs)): -+ for env_var, arg_name, dir_list in (): - env_val = sysconfig.get_config_var(env_var) - if env_val: - # To prevent optparse from raising an exception about any -@@ -486,17 +481,6 @@ - for directory in reversed(options.dirs): - add_dir_to_list(dir_list, directory) - -- if os.path.normpath(sys.base_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 -- # building a framework with different architectures than -- # the one that is currently installed (issue #7473) -- add_dir_to_list(self.compiler.library_dirs, -- sysconfig.get_config_var("LIBDIR")) -- add_dir_to_list(self.compiler.include_dirs, -- sysconfig.get_config_var("INCLUDEDIR")) -- - # lib_dirs and inc_dirs are used to search for files; - # if a file is found in one of those directories, it can - # be assumed that no additional -I,-L directives are needed. -@@ -506,6 +490,9 @@ - '/lib', '/usr/lib', - ] - inc_dirs = self.compiler.include_dirs + ['/usr/include'] -+ else: -+ lib_dirs = self.compiler.library_dirs -+ inc_dirs = self.compiler.include_dirs - exts = [] - missing = [] - diff --git a/package/python3/python3-002-properly-detect-if-python-build.patch b/package/python3/python3-002-properly-detect-if-python-build.patch new file mode 100644 index 0000000000..ce874c6cdb --- /dev/null +++ b/package/python3/python3-002-properly-detect-if-python-build.patch @@ -0,0 +1,23 @@ +distutils: fix build_ext check to find whether we're building Python or not + +The build_ext logic uses +sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")) to +determine whether we're building a third-party Python extension, or a +built-in Python extension. However, this check is wrong in +cross-compilation mode, and instead, the sysconfig.python_build +variable should be used. + +Signed-off-by: Thomas Petazzoni +Index: b/Lib/distutils/command/build_ext.py +=================================================================== +--- a/Lib/distutils/command/build_ext.py ++++ b/Lib/distutils/command/build_ext.py +@@ -246,7 +246,7 @@ + # Python's library directory must be appended to library_dirs + # See Issues: #1600860, #4366 + if (sysconfig.get_config_var('Py_ENABLE_SHARED')): +- if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): ++ if not sysconfig.python_build: + # building third party extensions + self.library_dirs.append(sysconfig.get_config_var('LIBDIR')) + else: diff --git a/package/python3/python3-003-staging-header-libs.patch b/package/python3/python3-003-staging-header-libs.patch deleted file mode 100644 index b0efe29614..0000000000 --- a/package/python3/python3-003-staging-header-libs.patch +++ /dev/null @@ -1,41 +0,0 @@ -Tell setup.py the location of headers/libraries - -Allow the libraries detection routine to look for headers and libs in -other directories than /usr/include or /usr/lib through the -environment variables PYTHON_MODULES_INCLUDE and PYTHON_MODULES_LIB. - -We can then use it to look for libraries in the buildroot staging -directory. - -Ported to python3.3 by Maxime Ripard based -on the work by Thomas Petazzoni - -Signed-off-by: Maxime Ripard ---- - setup.py | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -Index: Python-3.3.0/setup.py -=================================================================== ---- Python-3.3.0.orig/setup.py -+++ Python-3.3.0/setup.py -@@ -441,6 +441,19 @@ - os.unlink(tmpfile) - - def detect_modules(self): -+ try: -+ modules_include_dirs = os.environ["PYTHON_MODULES_INCLUDE"].split() -+ except KeyError: -+ modules_include_dirs = ['/usr/include'] -+ try: -+ modules_lib_dirs = os.environ["PYTHON_MODULES_LIB"].split() -+ except KeyError: -+ modules_lib_dirs = ['/usr/lib'] -+ for dir in modules_include_dirs: -+ add_dir_to_list(self.compiler.include_dirs, dir) -+ for dir in modules_lib_dirs: -+ add_dir_to_list(self.compiler.library_dirs, dir) -+ - # Ensure that /usr/local is always used, but the local build - # directories (i.e. '.' and 'Include') must be first. See issue - # 10520. diff --git a/package/python3/python3-003-sysconfigdata-install-location.patch b/package/python3/python3-003-sysconfigdata-install-location.patch new file mode 100644 index 0000000000..af796d48d5 --- /dev/null +++ b/package/python3/python3-003-sysconfigdata-install-location.patch @@ -0,0 +1,76 @@ +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 +@@ -543,6 +543,9 @@ + # sys.path fixup -- see Modules/getpath.c. + pybuilddir.txt: $(BUILDPYTHON) + $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ++ 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 +@@ -1181,7 +1184,7 @@ + else true; \ + fi; \ + done +- @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \ ++ @for i in $(srcdir)/Lib/*.py ; \ + do \ + if test -x $$i; then \ + $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ +@@ -1191,6 +1194,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; \ +@@ -1513,7 +1521,7 @@ + find build -name 'fficonfig.h' -exec rm -f {} ';' || true + find build -name '*.py' -exec rm -f {} ';' || true + find build -name '*.py[co]' -exec rm -f {} ';' || true +- -rm -f pybuilddir.txt ++ -rm -f pybuilddir.txt pysysconfigdatadir.txt + -rm -f Lib/lib2to3/*Grammar*.pickle + -rm -f Modules/_testembed Modules/_freeze_importlib + +Index: b/configure.ac +=================================================================== +--- a/configure.ac ++++ b/configure.ac +@@ -67,7 +67,7 @@ + AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found]) + fi + AC_MSG_RESULT($interp) +- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp ++ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pysysconfigdatadir.txt && echo $(abs_builddir)/`cat pysysconfigdatadir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp + fi + elif test "$cross_compiling" = maybe; then + AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) diff --git a/package/python3/python3-004-no-import-when-cross-compiling.patch b/package/python3/python3-004-no-import-when-cross-compiling.patch deleted file mode 100644 index cd5a437472..0000000000 --- a/package/python3/python3-004-no-import-when-cross-compiling.patch +++ /dev/null @@ -1,27 +0,0 @@ -Disable import check when cross-compiling - -Once Python has compiled an extension (i.e some C code, potentially -linked to a library), it tries to import it. This cannot work in -cross-compilation mode, so we just disable this check. - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Maxime Ripard ---- - setup.py | 4 ++++ - 1 file changed, 4 insertions(+) - -Index: Python-3.3.0/setup.py -=================================================================== ---- Python-3.3.0.orig/setup.py -+++ Python-3.3.0/setup.py -@@ -318,6 +318,10 @@ - self.announce('WARNING: skipping import check for Cygwin-based "%s"' - % ext.name) - return -+ if os.environ.get('CROSS_COMPILING') == 'yes': -+ self.announce('WARNING: skipping import check for cross compiled "%s"' -+ % ext.name) -+ return - ext_filename = os.path.join( - self.build_lib, - self.get_ext_filename(self.get_ext_fullname(ext.name))) diff --git a/package/python3/python3-004-old-stdlib-cache.patch b/package/python3/python3-004-old-stdlib-cache.patch new file mode 100644 index 0000000000..ac34f8d50e --- /dev/null +++ b/package/python3/python3-004-old-stdlib-cache.patch @@ -0,0 +1,78 @@ +python3: Fix pyc-only related runtime exceptions + +Python3 changes the pyc lookup strategy, ignoring the +__pycache__ directory if the .py file is missing. Change +install location to enable use of .pyc without their parent .py + +See http://www.python.org/dev/peps/pep-3147 + +Signed-off-by: Daniel Nelson + +Index: b/configure.ac +=================================================================== +--- a/configure.ac ++++ b/configure.ac +@@ -349,6 +349,23 @@ + AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX) + AC_SUBST(FRAMEWORKINSTALLAPPSPREFIX) + ++STDLIB_CACHE_FLAGS= ++AC_MSG_CHECKING(for --enable-old-stdlib-cache) ++AC_ARG_ENABLE(old-stdlib-cache, ++ AS_HELP_STRING([--enable-old-stdlib-cache], [enable pre-pep3147 stdlib cache]), ++[ ++ if test "$enableval" = "yes" ++ then ++ STDLIB_CACHE_FLAGS="-b" ++ else ++ STDLIB_CACHE_FLAGS="" ++ fi ++], ++[ ++ STDLIB_CACHE_FLAGS="" ++]) ++AC_SUBST(STDLIB_CACHE_FLAGS) ++ + ##AC_ARG_WITH(dyld, + ## AS_HELP_STRING([--with-dyld], + ## [Use (OpenStep|Rhapsody) dynamic linker])) +Index: b/Makefile.pre.in +=================================================================== +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -157,6 +157,9 @@ + # Options to enable prebinding (for fast startup prior to Mac OS X 10.3) + OTHER_LIBTOOL_OPT=@OTHER_LIBTOOL_OPT@ + ++# Option to enable old-style precompiled stdlib ++STDLIB_CACHE_FLAGS=@STDLIB_CACHE_FLAGS@ ++ + # Environment to run shared python without installed libraries + RUNSHARED= @RUNSHARED@ + +@@ -1231,21 +1234,21 @@ + fi + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST) -f \ ++ -d $(LIBDEST) -f $(STDLIB_CACHE_FLAGS) \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + $(DESTDIR)$(LIBDEST) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST) -f \ ++ -d $(LIBDEST) -f $(STDLIB_CACHE_FLAGS) \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + $(DESTDIR)$(LIBDEST) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST)/site-packages -f \ ++ -d $(LIBDEST)/site-packages -f $(STDLIB_CACHE_FLAGS) \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST)/site-packages -f \ ++ -d $(LIBDEST)/site-packages -f $(STDLIB_CACHE_FLAGS) \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt diff --git a/package/python3/python3-005-do-not-generate-pyo-files.patch b/package/python3/python3-005-do-not-generate-pyo-files.patch deleted file mode 100644 index 983d546473..0000000000 --- a/package/python3/python3-005-do-not-generate-pyo-files.patch +++ /dev/null @@ -1,40 +0,0 @@ -Do not generate .pyo files - -By default, the Python installation byte-compiles all modules in two -forms: the normal bytecode (.pyc) and an optimized bytecode (.pyo). - -According to -http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html, -the optimization do not do anything useful, and generating both the -"non-optimized" and "optimized" bytecode variants takes time. - -Signed-off-by: Thomas Petazzoni ---- - Makefile.pre.in | 9 --------- - 1 file changed, 9 deletions(-) - -Index: Python-3.3.0/Makefile.pre.in -=================================================================== ---- Python-3.3.0.orig/Makefile.pre.in -+++ Python-3.3.0/Makefile.pre.in -@@ -1082,20 +1082,11 @@ - -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) -- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ -- -d $(LIBDEST) -f \ -- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ -- $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -- $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ -- -d $(LIBDEST)/site-packages -f \ -- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages -- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt diff --git a/package/python3/python3-005-pyc-pyo-conditional.patch b/package/python3/python3-005-pyc-pyo-conditional.patch new file mode 100644 index 0000000000..6b08c824ec --- /dev/null +++ b/package/python3/python3-005-pyc-pyo-conditional.patch @@ -0,0 +1,60 @@ +Index: b/Makefile.pre.in +=================================================================== +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1232,24 +1232,32 @@ + $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ + $(DESTDIR)$(LIBDEST)/distutils/tests ; \ + fi ++ifeq (@PYC_BUILD@,yes) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f $(STDLIB_CACHE_FLAGS) \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + $(DESTDIR)$(LIBDEST) ++endif ++ifeq (@PYO_BUILD@,yes) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f $(STDLIB_CACHE_FLAGS) \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + $(DESTDIR)$(LIBDEST) ++endif ++ifeq (@PYC_BUILD@,yes) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f $(STDLIB_CACHE_FLAGS) \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages ++endif ++ifeq (@PYO_BUILD@,yes) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f $(STDLIB_CACHE_FLAGS) \ + -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 +@@ -936,6 +936,18 @@ + + AC_MSG_CHECKING(LDLIBRARY) + ++AC_SUBST(PYC_BUILD) ++ ++AC_ARG_ENABLE(pyc-build, ++ AS_HELP_STRING([--disable-pyc-build], [disable build of pyc files]), ++ [ PYC_BUILD="${enableval}" ], [ PYC_BUILD=yes ]) ++ ++AC_SUBST(PYO_BUILD) ++ ++AC_ARG_ENABLE(pyo-build, ++ AS_HELP_STRING([--disable-pyo-build], [disable build of pyo files]), ++ [ PYO_BUILD="${enableval}" ], [ PYO_BUILD=yes ]) ++ + # MacOSX framework builds need more magic. LDLIBRARY is the dynamic + # library that we build, but we do not want to link against it (we + # will find it with a -framework option). For this reason there is an diff --git a/package/python3/python3-006-cross-compile-getaddrinfo.patch b/package/python3/python3-006-cross-compile-getaddrinfo.patch new file mode 100644 index 0000000000..512a534b9b --- /dev/null +++ b/package/python3/python3-006-cross-compile-getaddrinfo.patch @@ -0,0 +1,21 @@ +Disable buggy_getaddrinfo configure test when cross-compiling with IPv6 support + +Signed-off-by: Vanya Sergeev + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: b/configure.ac +=================================================================== +--- a/configure.ac ++++ b/configure.ac +@@ -3423,7 +3423,7 @@ + + AC_MSG_RESULT($ac_cv_buggy_getaddrinfo) + +-if test $have_getaddrinfo = no || test "$ac_cv_buggy_getaddrinfo" = yes ++if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes + then + if test $ipv6 = yes + then diff --git a/package/python3/python3-006-reread-environment.patch b/package/python3/python3-006-reread-environment.patch deleted file mode 100644 index 752b15a4e2..0000000000 --- a/package/python3/python3-006-reread-environment.patch +++ /dev/null @@ -1,63 +0,0 @@ -Make sure setup.py reads the correct CONFIG_ARGS - -The setup.py script that builds and installs all the Python modules -shipped with the interpreter looks at the CONFIG_ARGS variable stored -in the "sysconfig" module to look at the ./configure options and -adjust its behaviour accordingly. - -Unfortunately, when cross-compiling, the value of CONFIG_ARGS returned -by the sysconfig are the one passed to the ./configure script of the -*host* Python and not the one we're currently building for the target. - -In order to avoid that, we re-initialize the values in the sysconfig -module by re-reading the environment at the beginning of the setup.py -script, and we make sure that the CONFIG_ARGS variable is actually -part of the environment of setup.py. - -See the beginning of -http://article.gmane.org/gmane.comp.python.devel/99772 for the -inspiration. - -Signed-off-by: Thomas Petazzoni - ---- - Makefile.pre.in | 4 +++- - setup.py | 3 +++ - 2 files changed, 6 insertions(+), 1 deletion(-) - -Index: Python-3.3.0/setup.py -=================================================================== ---- Python-3.3.0.orig/setup.py -+++ Python-3.3.0/setup.py -@@ -30,6 +30,9 @@ - # Were we compiled --with-pydebug or with #define Py_DEBUG? - COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS")) - -+sysconfig.get_config_vars() -+sysconfig._CONFIG_VARS.update(os.environ) -+ - # This global variable is used to hold the list of modules to be disabled. - disabled_module_list = [] - -Index: Python-3.3.0/Makefile.pre.in -=================================================================== ---- Python-3.3.0.orig/Makefile.pre.in -+++ Python-3.3.0/Makefile.pre.in -@@ -478,6 +478,7 @@ - sharedmods: $(BUILDPYTHON) pybuilddir.txt - case $$MAKEFLAGS in *s*) quiet=-q; esac; \ - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ -+ CONFIG_ARGS="$(CONFIG_ARGS)" \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - - # Build static library -@@ -1183,7 +1184,8 @@ - # Install the dynamically loadable modules - # This goes into $(exec_prefix) - sharedinstall: sharedmods -- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ -+ $(RUNSHARED) CONFIG_ARGS="$(CONFIG_ARGS)" \ -+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ - --prefix=$(prefix) \ - --install-scripts=$(BINDIR) \ - --install-platlib=$(DESTSHARED) \ diff --git a/package/python3/python3-007-change-pyconfig-h-location.patch b/package/python3/python3-007-change-pyconfig-h-location.patch deleted file mode 100644 index 8d45daef4d..0000000000 --- a/package/python3/python3-007-change-pyconfig-h-location.patch +++ /dev/null @@ -1,76 +0,0 @@ -Change the location of pyconfig.h - -The Python interpreter has a really strange behaviour: at *runtime*, -it reads a Makefile and a header file named pyconfig.h to get some -information about the configuration. - -The Makefile is located in usr/lib/python3.3/config-3.3m, which is fine -since this location is kept on the target. - -However, by default, the pyconfig.h is installed in -usr/include/python3.3m, but we completely remove the usr/include -directory for the target. Since making an exception just for -pyconfig.h is annoying, this patch also installs pyconfig.h to -usr/lib/python3.3/config-3.3m, and modifies the sysconfig module so that it -looks in this location instead of usr/include. - -The pyconfig.h is still kept in usr/include/python3.3m, because it is -needed in the $(STAGING_DIR) when building third-party Python -extensions that contain C code. - -Signed-off-by: Thomas Petazzoni - ---- - Lib/distutils/sysconfig.py | 3 ++- - Lib/sysconfig.py | 2 +- - Makefile.pre.in | 3 ++- - 3 files changed, 5 insertions(+), 3 deletions(-) - -Index: Python-3.3.0/Lib/distutils/sysconfig.py -=================================================================== ---- Python-3.3.0.orig/Lib/distutils/sysconfig.py -+++ Python-3.3.0/Lib/distutils/sysconfig.py -@@ -239,7 +239,8 @@ - else: - inc_dir = _sys_home or project_base - else: -- inc_dir = get_python_inc(plat_specific=1) -+ lib_dir = get_python_lib(plat_specific=1, standard_lib=1) -+ inc_dir = os.path.join(lib_dir, "config") - if get_python_version() < '2.2': - config_h = 'config.h' - else: -Index: Python-3.3.0/Lib/sysconfig.py -=================================================================== ---- Python-3.3.0.orig/Lib/sysconfig.py -+++ Python-3.3.0/Lib/sysconfig.py -@@ -467,7 +467,7 @@ - else: - inc_dir = _sys_home or _PROJECT_BASE - else: -- inc_dir = get_path('platinclude') -+ inc_dir = os.path.join(get_path('stdlib'), "config") - return os.path.join(inc_dir, 'pyconfig.h') - - -Index: Python-3.3.0/Makefile.pre.in -=================================================================== ---- Python-3.3.0.orig/Makefile.pre.in -+++ Python-3.3.0/Makefile.pre.in -@@ -1123,7 +1123,6 @@ - echo $(INSTALL_DATA) $$i $(INCLUDEPY); \ - $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \ - done -- $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h - - # Install the library and miscellaneous stuff needed for extending/embedding - # This goes into $(exec_prefix) -@@ -1157,6 +1156,8 @@ - $(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o - $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in - $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile -+ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(LIBPL)/pyconfig.h -+ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h - $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup - $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local - $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config diff --git a/package/python3/python3-007-disable-extensions.patch b/package/python3/python3-007-disable-extensions.patch new file mode 100644 index 0000000000..462fed4ce8 --- /dev/null +++ b/package/python3/python3-007-disable-extensions.patch @@ -0,0 +1,100 @@ +Add infrastructure to disable the build of certain extensions + +Some of the extensions part of the Python core have dependencies on +external libraries (sqlite, tk, etc.) or are relatively big and not +necessarly always useful (CJK codecs for example). By extensions, we +mean part of Python modules that are written in C and therefore +compiled to binary code. + +Therefore, we introduce a small infrastructure that allows to disable +some of those extensions. This can be done inside the configure.ac by +adding values to the DISABLED_EXTENSIONS variable (which is a +word-separated list of extensions). + +The implementation works as follow : + + * configure.ac defines a DISABLED_EXTENSIONS variable, which is + substituted (so that when Makefile.pre is generated from + Makefile.pre.in, the value of the variable is substituted). For + now, this DISABLED_EXTENSIONS variable is empty, later patches will + use it. + + * Makefile.pre.in passes the DISABLED_EXTENSIONS value down to the + variables passed in the environment when calling the setup.py + script that actually builds and installs those extensions. + + * setup.py is modified so that the existing "disabled_module_list" is + filled with those pre-disabled extensions listed in + DISABLED_EXTENSIONS. + +Patch ported to python2.7 by Maxime Ripard , and +then extended by Thomas Petazzoni +. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.pre.in | 4 ++++ + configure.ac | 2 ++ + setup.py | 5 ++++- + 3 files changed, 10 insertions(+), 1 deletion(-) + +Index: b/Makefile.pre.in +=================================================================== +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -175,6 +175,8 @@ + # configure script arguments + CONFIG_ARGS= @CONFIG_ARGS@ + ++# disabled extensions ++DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@ + + # Subdirectories with code + SRCDIRS= @SRCDIRS@ +@@ -561,6 +563,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 +@@ -1371,7 +1374,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 +@@ -2360,6 +2360,8 @@ + + AC_PATH_TOOL([PKG_CONFIG], [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' (after any relative diff --git a/package/python3/python3-008-distutils-sysconfig-use-sysconfigdata.patch b/package/python3/python3-008-distutils-sysconfig-use-sysconfigdata.patch new file mode 100644 index 0000000000..c77fed3f36 --- /dev/null +++ b/package/python3/python3-008-distutils-sysconfig-use-sysconfigdata.patch @@ -0,0 +1,58 @@ +Index: b/Lib/distutils/sysconfig.py +=================================================================== +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -430,49 +430,11 @@ + + def _init_posix(): + """Initialize the module as appropriate for POSIX systems.""" +- g = {} +- # load the installed Makefile: +- try: +- filename = get_makefile_filename() +- parse_makefile(filename, g) +- except OSError as msg: +- my_msg = "invalid Python installation: unable to open %s" % filename +- if hasattr(msg, "strerror"): +- my_msg = my_msg + " (%s)" % msg.strerror +- +- raise DistutilsPlatformError(my_msg) +- +- # load the installed pyconfig.h: +- try: +- filename = get_config_h_filename() +- with open(filename) as file: +- parse_config_h(file, g) +- except OSError as msg: +- my_msg = "invalid Python installation: unable to open %s" % filename +- if hasattr(msg, "strerror"): +- my_msg = my_msg + " (%s)" % msg.strerror +- +- raise DistutilsPlatformError(my_msg) +- +- # On AIX, there are wrong paths to the linker scripts in the Makefile +- # -- these paths are relative to the Python source, but when installed +- # the scripts are in another directory. +- if python_build: +- g['LDSHARED'] = g['BLDSHARED'] +- +- elif get_python_version() < '2.1': +- # The following two branches are for 1.5.2 compatibility. +- if sys.platform == 'aix4': # what about AIX 3.x ? +- # Linker script is in the config directory, not in Modules as the +- # Makefile says. +- python_lib = get_python_lib(standard_lib=1) +- ld_so_aix = os.path.join(python_lib, 'config', 'ld_so_aix') +- python_exp = os.path.join(python_lib, 'config', 'python.exp') +- +- g['LDSHARED'] = "%s %s -bI:%s" % (ld_so_aix, g['CC'], python_exp) +- ++ # _sysconfigdata is generated at build time, see the sysconfig module ++ from _sysconfigdata import build_time_vars + global _config_vars +- _config_vars = g ++ _config_vars = {} ++ _config_vars.update(build_time_vars) + + + def _init_nt(): diff --git a/package/python3/python3-008-no-rpath.patch b/package/python3/python3-008-no-rpath.patch deleted file mode 100644 index cdeec22ce9..0000000000 --- a/package/python3/python3-008-no-rpath.patch +++ /dev/null @@ -1,51 +0,0 @@ -Remove runtime library paths - -For some extensions (sqlite and dbm), Python setup.py script -hardcode a runtime path (rpath) into the extension. However, this -runtime path is incorrect (because it points to the location of the -library directory on the development machine) and useless (because on -the target, all useful libraries are in a standard directory searched -by the dynamic loader). For those reasons, we just get rid of the -runtime paths in cross-compilation mode. - -Signed-off-by: Thomas Petazzoni ---- - setup.py | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -Index: Python-3.3.0/setup.py -=================================================================== ---- Python-3.3.0.orig/setup.py -+++ Python-3.3.0/setup.py -@@ -1134,11 +1134,15 @@ - # can end up with a bad search path order. - if sqlite_incdir not in self.compiler.include_dirs: - include_dirs.append(sqlite_incdir) -+ if cross_compiling: -+ sqlite_runtime_libdir = None -+ else: -+ sqlite_runtime_libdir = sqlite_libdir - exts.append(Extension('_sqlite3', sqlite_srcs, - define_macros=sqlite_defines, - include_dirs=include_dirs, - library_dirs=sqlite_libdir, -- runtime_library_dirs=sqlite_libdir, -+ runtime_library_dirs=sqlite_runtime_libdir, - extra_link_args=sqlite_extra_link_args, - libraries=["sqlite3",])) - else: -@@ -1205,9 +1209,13 @@ - elif cand == "bdb": - if db_incs is not None: - if dbm_setup_debug: print("building dbm using bdb") -+ if cross_compiling: -+ dblib_runtime_libdir = None -+ else: -+ dblib_runtime_libdir = dblib_dir - dbmext = Extension('_dbm', ['_dbmmodule.c'], - library_dirs=dblib_dir, -- runtime_library_dirs=dblib_dir, -+ runtime_library_dirs=dblib_runtime_libdir, - include_dirs=db_incs, - define_macros=[ - ('HAVE_BERKDB_H', None), diff --git a/package/python3/python3-009-distutils-use-python-sysroot.patch b/package/python3/python3-009-distutils-use-python-sysroot.patch new file mode 100644 index 0000000000..cfe30feb27 --- /dev/null +++ b/package/python3/python3-009-distutils-use-python-sysroot.patch @@ -0,0 +1,57 @@ +Adjust library/header paths for cross-compilation + +When cross-compiling third-party extensions, the get_python_inc() or +get_python_lib() can be called, to return the path to headers or +libraries. However, they use the sys.prefix of the host Python, which +returns incorrect paths when cross-compiling (paths pointing to host +headers and libraries). + +In order to fix this, we introduce the _python_sysroot, _python_prefix +and _python_exec_prefix variables, that allow to override these +values, and get correct header/library paths when cross-compiling +third-party Python modules. + +Signed-off-by: Thomas Petazzoni + +Index: b/Lib/distutils/sysconfig.py +=================================================================== +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -16,10 +16,17 @@ + from .errors import DistutilsPlatformError + + # These are needed in a couple of spots, so just compute them once. +-PREFIX = os.path.normpath(sys.prefix) +-EXEC_PREFIX = os.path.normpath(sys.exec_prefix) +-BASE_PREFIX = os.path.normpath(sys.base_prefix) +-BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) ++if "_python_sysroot" in os.environ: ++ _sysroot=os.environ.get('_python_sysroot') ++ PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix')) ++ EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix')) ++ BASE_PREFIX = PREFIX ++ BASE_EXEC_PREFIX = EXEC_PREFIX ++else: ++ PREFIX = os.path.normpath(sys.prefix) ++ EXEC_PREFIX = os.path.normpath(sys.exec_prefix) ++ BASE_PREFIX = os.path.normpath(sys.base_prefix) ++ BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) + + # Path to the base directory of the project. On Windows the binary may + # live in project/PCBuild9. If we're dealing with an x64 Windows build, +Index: b/Lib/distutils/command/build_ext.py +=================================================================== +--- a/Lib/distutils/command/build_ext.py ++++ b/Lib/distutils/command/build_ext.py +@@ -248,7 +248,10 @@ + if (sysconfig.get_config_var('Py_ENABLE_SHARED')): + if not sysconfig.python_build: + # building third party extensions +- self.library_dirs.append(sysconfig.get_config_var('LIBDIR')) ++ libdir = sysconfig.get_config_var('LIBDIR') ++ if "_python_sysroot" in os.environ: ++ libdir = os.environ.get("_python_sysroot") + libdir ++ self.library_dirs.append(libdir) + else: + # building python standard extensions + self.library_dirs.append('.') diff --git a/package/python3/python3-009-verbose-module-build.patch b/package/python3/python3-009-verbose-module-build.patch deleted file mode 100644 index 60b6d797d3..0000000000 --- a/package/python3/python3-009-verbose-module-build.patch +++ /dev/null @@ -1,26 +0,0 @@ -Enables verbose output when building modules - -Patch borrowed from OpenBricks. - -Signed-off-by: Thomas Petazzoni - ---- - Makefile.pre.in | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -Index: Python-3.3.0/Makefile.pre.in -=================================================================== ---- Python-3.3.0.orig/Makefile.pre.in -+++ Python-3.3.0/Makefile.pre.in -@@ -476,10 +476,9 @@ - - # Build the shared modules - sharedmods: $(BUILDPYTHON) pybuilddir.txt -- case $$MAKEFLAGS in *s*) quiet=-q; esac; \ - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ - CONFIG_ARGS="$(CONFIG_ARGS)" \ -- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build -+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py build - - # Build static library - # avoid long command lines, same as LIBRARY_OBJS diff --git a/package/python3/python3-010-distutils-cross-compilation-support.patch b/package/python3/python3-010-distutils-cross-compilation-support.patch deleted file mode 100644 index 0a51400bf5..0000000000 --- a/package/python3/python3-010-distutils-cross-compilation-support.patch +++ /dev/null @@ -1,71 +0,0 @@ -Add some cross-compilation fixes to distutils - -Inspired by work done by Marc Kleine-Budde in -PTXdist. - -Signed-off-by: Thomas Petazzoni ---- - Lib/distutils/sysconfig.py | 17 +++++++++++++---- - configure.ac | 8 +++++++- - 2 files changed, 20 insertions(+), 5 deletions(-) - -Index: Python-3.3.0/Lib/distutils/sysconfig.py -=================================================================== ---- Python-3.3.0.orig/Lib/distutils/sysconfig.py -+++ Python-3.3.0/Lib/distutils/sysconfig.py -@@ -16,15 +16,24 @@ - from .errors import DistutilsPlatformError - - # These are needed in a couple of spots, so just compute them once. --PREFIX = os.path.normpath(sys.prefix) --EXEC_PREFIX = os.path.normpath(sys.exec_prefix) -+EXECUTABLE_DIRNAME = os.path.dirname(os.path.realpath(sys.executable)) -+if os.environ.get('CROSS_COMPILING') == 'yes': -+ _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')) -+ if '_python_srcdir' in os.environ: -+ EXECUTABLE_DIRNAME = os.path.normpath(os.environ['_python_srcdir']) -+else: -+ PREFIX = os.path.normpath(sys.prefix) -+ EXEC_PREFIX = os.path.normpath(sys.exec_prefix) -+ - BASE_PREFIX = os.path.normpath(sys.base_prefix) - BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) - - # Path to the base directory of the project. On Windows the binary may - # live in project/PCBuild9. If we're dealing with an x64 Windows build, - # it'll live in project/PCbuild/amd64. --project_base = os.path.dirname(os.path.abspath(sys.executable)) -+project_base = EXECUTABLE_DIRNAME - if os.name == "nt" and "pcbuild" in project_base[-8:].lower(): - project_base = os.path.abspath(os.path.join(project_base, os.path.pardir)) - # PC/VS7.1 -@@ -98,7 +107,7 @@ - # the build directory may not be the source directory, we - # must use "srcdir" from the makefile to find the "Include" - # directory. -- base = _sys_home or os.path.dirname(os.path.abspath(sys.executable)) -+ base = _sys_home or EXECUTABLE_DIRNAME - if plat_specific: - return base - if _sys_home: -Index: Python-3.3.0/configure.ac -=================================================================== ---- Python-3.3.0.orig/configure.ac -+++ Python-3.3.0/configure.ac -@@ -963,7 +963,13 @@ - fi - - if test "$cross_compiling" = yes; then -- RUNSHARED= -+ RUNSHARED=" \ -+ CROSS_COMPILING=yes \ -+ _python_cross_host=${ac_cv_host} \ -+ _python_sysroot=\"\$(sysroot)\" \ -+ _python_srcdir=\"\$(srcdir)\" \ -+ _python_prefix=\"\$(prefix)\" \ -+ _python_exec_prefix=\"\$(exec_prefix)\"" - fi - - AC_MSG_RESULT($LDLIBRARY) diff --git a/package/python3/python3-010-no-termcap-host-path.patch b/package/python3/python3-010-no-termcap-host-path.patch new file mode 100644 index 0000000000..57fe47ab0b --- /dev/null +++ b/package/python3/python3-010-no-termcap-host-path.patch @@ -0,0 +1,22 @@ +Don't look in /usr/lib/termcap for libraries + +Signed-off-by: Thomas Petazzoni + +Index: b/setup.py +=================================================================== +--- a/setup.py ++++ b/setup.py +@@ -725,12 +725,9 @@ + pass # Issue 7384: Already linked against curses or tinfo. + elif curses_library: + readline_libs.append(curses_library) +- elif self.compiler.find_library_file(lib_dirs + +- ['/usr/lib/termcap'], +- 'termcap'): ++ elif self.compiler.find_library_file(lib_dirs, 'termcap'): + readline_libs.append('termcap') + exts.append( Extension('readline', ['readline.c'], +- library_dirs=['/usr/lib/termcap'], + extra_link_args=readline_extra_link_args, + libraries=readline_libs) ) + else: diff --git a/package/python3/python3-011-cross-compile-getaddrinfo.patch b/package/python3/python3-011-cross-compile-getaddrinfo.patch deleted file mode 100644 index 33286ce391..0000000000 --- a/package/python3/python3-011-cross-compile-getaddrinfo.patch +++ /dev/null @@ -1,21 +0,0 @@ -Disable buggy_getaddrinfo configure test when cross-compiling with IPv6 support - -Signed-off-by: Vanya Sergeev - ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: Python-3.3.0/configure.ac -=================================================================== ---- Python-3.3.0.orig/configure.ac -+++ Python-3.3.0/configure.ac -@@ -3204,7 +3204,7 @@ - - AC_MSG_RESULT($ac_cv_buggy_getaddrinfo) - --if test $have_getaddrinfo = no || test "$ac_cv_buggy_getaddrinfo" = yes -+if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes - then - if test $ipv6 = yes - then diff --git a/package/python3/python3-012-disable-extensions.patch b/package/python3/python3-012-disable-extensions.patch deleted file mode 100644 index ed1d1e2d93..0000000000 --- a/package/python3/python3-012-disable-extensions.patch +++ /dev/null @@ -1,98 +0,0 @@ -Add infrastructure to disable the build of certain extensions - -Some of the extensions part of the Python core have dependencies on -external libraries (sqlite, tk, etc.) or are relatively big and not -necessarly always useful (CJK codecs for example). By extensions, we -mean part of Python modules that are written in C and therefore -compiled to binary code. - -Therefore, we introduce a small infrastructure that allows to disable -some of those extensions. This can be done inside the configure.ac by -adding values to the DISABLED_EXTENSIONS variable (which is a -word-separated list of extensions). - -The implementation works as follow : - - * configure.ac defines a DISABLED_EXTENSIONS variable, which is - substituted (so that when Makefile.pre is generated from - Makefile.pre.in, the value of the variable is substituted). For - now, this DISABLED_EXTENSIONS variable is empty, later patches will - use it. - - * Makefile.pre.in passes the DISABLED_EXTENSIONS value down to the - variables passed in the environment when calling the setup.py - script that actually builds and installs those extensions. - - * setup.py is modified so that the existing "disabled_module_list" is - filled with those pre-disabled extensions listed in - DISABLED_EXTENSIONS. - -Patch ported to python2.7 by Maxime Ripard , and -then extended by Thomas Petazzoni -. - -Signed-off-by: Thomas Petazzoni ---- - Makefile.pre.in | 4 ++++ - configure.ac | 2 ++ - setup.py | 5 ++++- - 3 files changed, 10 insertions(+), 1 deletion(-) - -Index: cpython/Makefile.pre.in -=================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -155,6 +155,8 @@ - # configure script arguments - CONFIG_ARGS= @CONFIG_ARGS@ - -+# disabled extensions -+DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@ - - # Subdirectories with code - SRCDIRS= @SRCDIRS@ -@@ -478,6 +480,7 @@ - sharedmods: $(BUILDPYTHON) pybuilddir.txt - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ - CONFIG_ARGS="$(CONFIG_ARGS)" \ -+ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py build - - # Build static library -@@ -1185,6 +1188,7 @@ - # This goes into $(exec_prefix) - sharedinstall: sharedmods - $(RUNSHARED) CONFIG_ARGS="$(CONFIG_ARGS)" \ -+ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ - --prefix=$(prefix) \ - --install-scripts=$(BINDIR) \ -Index: cpython/configure.ac -=================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2175,6 +2175,8 @@ - - AC_PATH_TOOL([PKG_CONFIG], [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: cpython/setup.py -=================================================================== ---- cpython.orig/setup.py -+++ cpython/setup.py -@@ -34,7 +34,10 @@ - sysconfig._CONFIG_VARS.update(os.environ) - - # This global variable is used to hold the list of modules to be disabled. --disabled_module_list = [] -+try: -+ disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ") -+except KeyError: -+ disabled_module_list = list() - - def add_dir_to_list(dirlist, dir): - """Add the directory 'dir' to the list 'dirlist' (after any relative diff --git a/package/python3/python3-100-optional-test-modules.patch b/package/python3/python3-100-optional-test-modules.patch index 13e73a7ed9..6b52509b5a 100644 --- a/package/python3/python3-100-optional-test-modules.patch +++ b/package/python3/python3-100-optional-test-modules.patch @@ -11,11 +11,11 @@ Signed-off-by: Samuel Martin configure.ac | 6 ++++++ 2 files changed, 38 insertions(+), 18 deletions(-) -Index: cpython/Makefile.pre.in +Index: b/Makefile.pre.in =================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -976,8 +976,26 @@ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1120,8 +1120,30 @@ EXTRAPLATDIR= @EXTRAPLATDIR@ MACHDEPS= $(PLATDIR) $(EXTRAPLATDIR) XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax @@ -23,13 +23,16 @@ Index: cpython/Makefile.pre.in - tkinter/test/test_ttk site-packages test \ +LIBSUBDIRS= tkinter \ + site-packages \ ++ asyncio \ + collections concurrent concurrent/futures encodings \ + email email/mime \ ++ ensurepip ensurepip/_bundled \ + html json http dbm xmlrpc \ + sqlite3 \ + logging csv wsgiref urllib \ + lib2to3 lib2to3/fixes lib2to3/pgen2 \ -+ ctypes ctypes/macholib idlelib idlelib/Icons \ ++ ctypes ctypes/macholib \ ++ idlelib idlelib/Icons \ + distutils distutils/command $(XMLLIBSUBDIRS) \ + importlib \ + turtledemo \ @@ -38,37 +41,34 @@ Index: cpython/Makefile.pre.in + venv venv/scripts venv/scripts/posix \ + curses pydoc_data $(MACHDEPS) + -+ifeq (@TEST_MODULES@,yes) -+LIBSUBDIRS += tkinter/test tkinter/test/test_tkinter \ -+ tkinter/test/test_ttk test \ ++TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ ++ test test/test_asyncio ctypes/test \ ++ test/test_email test/test_email/data \ ++ test/test_json \ + test/audiodata \ test/capath test/data \ test/cjkencodings test/decimaltestdata test/xmltestdata \ - test/subprocessdata test/sndhdrdata \ -@@ -1000,26 +1018,22 @@ - test/namespace_pkgs/project3 \ - test/namespace_pkgs/project3/parent \ +@@ -1148,28 +1170,20 @@ test/namespace_pkgs/project3/parent/child \ -- test/namespace_pkgs/module_and_namespace_package \ -- test/namespace_pkgs/module_and_namespace_package/a_test \ + test/namespace_pkgs/module_and_namespace_package \ + test/namespace_pkgs/module_and_namespace_package/a_test \ +- asyncio \ +- test/test_asyncio \ - collections concurrent concurrent/futures encodings \ - email email/mime test/test_email test/test_email/data \ -- html json test/json_tests http dbm xmlrpc \ +- ensurepip ensurepip/_bundled \ +- html json test/test_json http dbm xmlrpc \ - sqlite3 sqlite3/test \ - logging csv wsgiref urllib \ - lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \ -+ test/namespace_pkgs/module_and_namespace_package \ -+ test/namespace_pkgs/module_and_namespace_package/a_test \ -+ test/test_email test/test_email/data \ -+ test/json_tests \ -+ sqlite3/test \ + lib2to3/tests \ lib2to3/tests/data lib2to3/tests/data/fixers \ lib2to3/tests/data/fixers/myfixes \ -- ctypes ctypes/test ctypes/macholib idlelib idlelib/Icons \ +- ctypes ctypes/test ctypes/macholib \ +- idlelib idlelib/Icons idlelib/idle_test \ - distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \ - importlib test/test_importlib test/test_importlib/builtin \ -+ ctypes/test \ -+ distutils/tests \ ++ sqlite3/test idlelib/idle_test \ + test/test_importlib test/test_importlib/builtin \ test/test_importlib/extension test/test_importlib/frozen \ test/test_importlib/import_ test/test_importlib/source \ @@ -77,17 +77,21 @@ Index: cpython/Makefile.pre.in - unittest unittest/test unittest/test/testmock \ - venv venv/scripts venv/scripts/posix \ - curses pydoc_data $(MACHDEPS) -+ unittest unittest/test unittest/test/testmock ++ unittest/test unittest/test/testmock \ ++ distutils/tests ++ ++ifeq (@TEST_MODULES@,yes) ++LIBSUBDIRS += $(TESTSUBDIRS) +endif + libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ -Index: cpython/configure.ac +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2449,6 +2449,12 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2667,6 +2667,12 @@ fi diff --git a/package/python3/python3-101-optional-pydoc.patch b/package/python3/python3-101-optional-pydoc.patch index ac50ac39ea..331c842d3d 100644 --- a/package/python3/python3-101-optional-pydoc.patch +++ b/package/python3/python3-101-optional-pydoc.patch @@ -12,11 +12,11 @@ Signed-off-by: Samuel Martin setup.py | 9 +++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) -Index: cpython/Makefile.pre.in +Index: b/Makefile.pre.in =================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -952,7 +952,9 @@ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1087,7 +1087,9 @@ -rm -f $(DESTDIR)$(BINDIR)/idle3 (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3) -rm -f $(DESTDIR)$(BINDIR)/pydoc3 @@ -26,32 +26,32 @@ Index: cpython/Makefile.pre.in -rm -f $(DESTDIR)$(BINDIR)/2to3 (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3) -rm -f $(DESTDIR)$(BINDIR)/pyvenv -@@ -991,7 +993,7 @@ +@@ -1138,7 +1140,7 @@ multiprocessing multiprocessing/dummy \ unittest \ venv venv/scripts venv/scripts/posix \ - curses pydoc_data $(MACHDEPS) + curses $(MACHDEPS) - ifeq (@TEST_MODULES@,yes) - LIBSUBDIRS += tkinter/test tkinter/test/test_tkinter \ -@@ -1034,6 +1036,10 @@ - unittest unittest/test unittest/test/testmock - endif + TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ + test test/test_asyncio ctypes/test \ +@@ -1180,6 +1182,10 @@ + unittest/test unittest/test/testmock \ + distutils/tests +ifeq (@PYDOC@,yes) +LIBSUBDIRS += pydoc_data +endif + - libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ -Index: cpython/configure.ac + ifeq (@TEST_MODULES@,yes) + LIBSUBDIRS += $(TESTSUBDIRS) + endif +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2448,6 +2448,11 @@ - esac]) +--- a/configure.ac ++++ b/configure.ac +@@ -2666,6 +2666,11 @@ + AC_CHECK_FUNCS(pthread_atfork) fi +AC_SUBST(PYDOC) @@ -62,11 +62,11 @@ Index: cpython/configure.ac AC_SUBST(TEST_MODULES) -Index: cpython/setup.py +Index: b/setup.py =================================================================== ---- cpython.orig/setup.py -+++ cpython/setup.py -@@ -2123,6 +2123,12 @@ +--- a/setup.py ++++ b/setup.py +@@ -2182,6 +2182,12 @@ # turn off warnings when deprecated modules are imported import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) @@ -79,7 +79,7 @@ Index: cpython/setup.py setup(# PyPI Metadata (PEP 301) name = "Python", version = sys.version.split()[0], -@@ -2147,8 +2153,7 @@ +@@ -2206,8 +2212,7 @@ # If you change the scripts installed here, you also need to # check the PyBuildScripts command above, and change the links # created by the bininstall target in Makefile.pre.in diff --git a/package/python3/python3-102-optional-2to3.patch b/package/python3/python3-102-optional-2to3.patch index f5e821ae6b..facf6e1780 100644 --- a/package/python3/python3-102-optional-2to3.patch +++ b/package/python3/python3-102-optional-2to3.patch @@ -12,11 +12,11 @@ Signed-off-by: Samuel Martin setup.py | 5 +++-- 3 files changed, 23 insertions(+), 6 deletions(-) -Index: cpython/Makefile.pre.in +Index: b/Makefile.pre.in =================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -956,7 +956,9 @@ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1091,7 +1091,9 @@ (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) endif -rm -f $(DESTDIR)$(BINDIR)/2to3 @@ -25,46 +25,44 @@ Index: cpython/Makefile.pre.in +endif -rm -f $(DESTDIR)$(BINDIR)/pyvenv (cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv) - -@@ -985,7 +987,6 @@ + if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ +@@ -1131,7 +1133,6 @@ html json http dbm xmlrpc \ sqlite3 \ logging csv wsgiref urllib \ - lib2to3 lib2to3/fixes lib2to3/pgen2 \ - ctypes ctypes/macholib idlelib idlelib/Icons \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ distutils distutils/command $(XMLLIBSUBDIRS) \ - importlib \ -@@ -1025,9 +1026,6 @@ - test/test_email test/test_email/data \ - test/json_tests \ - sqlite3/test \ +@@ -1172,9 +1173,6 @@ + test/namespace_pkgs/project3/parent/child \ + test/namespace_pkgs/module_and_namespace_package \ + test/namespace_pkgs/module_and_namespace_package/a_test \ - lib2to3/tests \ - lib2to3/tests/data lib2to3/tests/data/fixers \ - lib2to3/tests/data/fixers/myfixes \ - ctypes/test \ - distutils/tests \ + sqlite3/test idlelib/idle_test \ test/test_importlib test/test_importlib/builtin \ -@@ -1040,6 +1038,16 @@ + test/test_importlib/extension test/test_importlib/frozen \ +@@ -1186,6 +1184,14 @@ LIBSUBDIRS += pydoc_data endif +ifeq (@LIB2TO3@,yes) +LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2 -+ifeq (@TEST_MODULES@,yes) -+LIBSUBDIRS += lib2to3/tests \ -+ lib2to3/tests/data \ -+ lib2to3/tests/data/fixers \ -+ lib2to3/tests/data/fixers/myfixes -+endif ++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 \ -@@ -1109,10 +1117,12 @@ - $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ + ifeq (@TEST_MODULES@,yes) + LIBSUBDIRS += $(TESTSUBDIRS) + endif +@@ -1281,10 +1287,12 @@ + -d $(LIBDEST)/site-packages -f $(STDLIB_CACHE_FLAGS) \ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + endif +ifeq (@LIB2TO3@,yes) -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt @@ -74,11 +72,11 @@ Index: cpython/Makefile.pre.in # Create the PLATDIR source directory, if one wasn't distributed.. $(srcdir)/Lib/$(PLATDIR): -Index: cpython/setup.py +Index: b/setup.py =================================================================== ---- cpython.orig/setup.py -+++ cpython/setup.py -@@ -2124,10 +2124,11 @@ +--- a/setup.py ++++ b/setup.py +@@ -2183,10 +2183,11 @@ import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) @@ -92,11 +90,11 @@ Index: cpython/setup.py setup(# PyPI Metadata (PEP 301) name = "Python", -Index: cpython/configure.ac +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2460,6 +2460,12 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2678,6 +2678,12 @@ AS_HELP_STRING([--disable-test-modules], [disable test modules]), [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ]) diff --git a/package/python3/python3-103-optional-sqlite.patch b/package/python3/python3-103-optional-sqlite.patch index e3a63c3e02..eb8d242053 100644 --- a/package/python3/python3-103-optional-sqlite.patch +++ b/package/python3/python3-103-optional-sqlite.patch @@ -8,12 +8,12 @@ Signed-off-by: Samuel Martin configure.ac | 9 +++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) -Index: cpython/configure.ac +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2448,6 +2448,15 @@ - esac]) +--- a/configure.ac ++++ b/configure.ac +@@ -2666,6 +2666,15 @@ + AC_CHECK_FUNCS(pthread_atfork) fi +AC_SUBST(SQLITE3) @@ -28,37 +28,36 @@ Index: cpython/configure.ac AC_SUBST(PYDOC) AC_ARG_ENABLE(pydoc, -Index: cpython/Makefile.pre.in +Index: b/Makefile.pre.in =================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -985,7 +985,6 @@ - collections concurrent concurrent/futures encodings \ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1131,7 +1131,6 @@ email email/mime \ + ensurepip ensurepip/_bundled \ html json http dbm xmlrpc \ - sqlite3 \ logging csv wsgiref urllib \ - ctypes ctypes/macholib idlelib idlelib/Icons \ - distutils distutils/command $(XMLLIBSUBDIRS) \ -@@ -1025,7 +1024,6 @@ - test/namespace_pkgs/module_and_namespace_package/a_test \ - test/test_email test/test_email/data \ - test/json_tests \ -- sqlite3/test \ - ctypes/test \ - distutils/tests \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ +@@ -1173,7 +1172,7 @@ + test/namespace_pkgs/project3/parent/child \ + test/namespace_pkgs/module_and_namespace_package \ + test/namespace_pkgs/module_and_namespace_package/a_test \ +- sqlite3/test idlelib/idle_test \ ++ idlelib/idle_test \ test/test_importlib test/test_importlib/builtin \ -@@ -1048,6 +1046,13 @@ - endif + test/test_importlib/extension test/test_importlib/frozen \ + test/test_importlib/import_ test/test_importlib/source \ +@@ -1192,6 +1191,11 @@ + lib2to3/tests/data/fixers/myfixes endif +ifeq (@SQLITE3@,yes) +LIBSUBDIRS += sqlite3 -+ifeq (@TEST_MODULES@,yes) -+LIBSUBDIRS += sqlite3/test -+endif ++TESTSUBDIRS += sqlite3/test +endif + - libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ + ifeq (@TEST_MODULES@,yes) + LIBSUBDIRS += $(TESTSUBDIRS) + endif diff --git a/package/python3/python3-104-optional-tk.patch b/package/python3/python3-104-optional-tk.patch index 2f89fe014f..32e2bee797 100644 --- a/package/python3/python3-104-optional-tk.patch +++ b/package/python3/python3-104-optional-tk.patch @@ -8,50 +8,47 @@ Signed-off-by: Samuel Martin configure.ac | 9 +++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) -Index: cpython/Makefile.pre.in +Index: b/Makefile.pre.in =================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -980,7 +980,7 @@ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1124,7 +1124,7 @@ EXTRAPLATDIR= @EXTRAPLATDIR@ MACHDEPS= $(PLATDIR) $(EXTRAPLATDIR) XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax -LIBSUBDIRS= tkinter \ +LIBSUBDIRS= \ site-packages \ + asyncio \ collections concurrent concurrent/futures encodings \ - email email/mime \ -@@ -996,8 +996,7 @@ +@@ -1142,8 +1142,7 @@ + venv venv/scripts venv/scripts/posix \ curses $(MACHDEPS) - ifeq (@TEST_MODULES@,yes) --LIBSUBDIRS += tkinter/test tkinter/test/test_tkinter \ -- tkinter/test/test_ttk test \ -+LIBSUBDIRS += test \ - test/capath test/data \ - test/cjkencodings test/decimaltestdata test/xmltestdata \ - test/subprocessdata test/sndhdrdata \ -@@ -1053,6 +1052,15 @@ - endif +-TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ +- test test/test_asyncio ctypes/test \ ++TESTSUBDIRS = test test/test_asyncio ctypes/test \ + test/test_email test/test_email/data \ + test/test_json \ + test/audiodata \ +@@ -1196,6 +1195,12 @@ + TESTSUBDIRS += sqlite3/test endif +ifeq (@TK@,yes) +LIBSUBDIRS += tkinter -+ifeq (@TEST_MODULES@,yes) -+LIBSUBDIRS += \ -+ tkinter/test tkinter/test/test_tkinter \ -+ tkinter/test/test_ttk -+endif ++TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \ ++ tkinter/test/test_ttk +endif + - libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ -Index: cpython/configure.ac + ifeq (@TEST_MODULES@,yes) + LIBSUBDIRS += $(TESTSUBDIRS) + endif +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2457,6 +2457,15 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2675,6 +2675,15 @@ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi diff --git a/package/python3/python3-105-optional-curses.patch b/package/python3/python3-105-optional-curses.patch index adb31836fd..75e2558db9 100644 --- a/package/python3/python3-105-optional-curses.patch +++ b/package/python3/python3-105-optional-curses.patch @@ -8,35 +8,35 @@ Signed-off-by: Samuel Martin configure.ac | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) -Index: cpython/Makefile.pre.in +Index: b/Makefile.pre.in =================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -993,7 +993,7 @@ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1140,7 +1140,7 @@ multiprocessing multiprocessing/dummy \ unittest \ venv venv/scripts venv/scripts/posix \ - curses $(MACHDEPS) + $(MACHDEPS) - ifeq (@TEST_MODULES@,yes) - LIBSUBDIRS += test \ -@@ -1061,6 +1061,10 @@ - endif + TESTSUBDIRS = test test/test_asyncio ctypes/test \ + test/test_email test/test_email/data \ +@@ -1201,6 +1201,10 @@ + tkinter/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: cpython/configure.ac + ifeq (@TEST_MODULES@,yes) + LIBSUBDIRS += $(TESTSUBDIRS) + endif +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2466,6 +2466,15 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2684,6 +2684,15 @@ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter" fi diff --git a/package/python3/python3-106-optional-expat.patch b/package/python3/python3-106-optional-expat.patch index d171b79ef7..80da9395ee 100644 --- a/package/python3/python3-106-optional-expat.patch +++ b/package/python3/python3-106-optional-expat.patch @@ -15,20 +15,20 @@ Signed-off-by: Samuel Martin setup.py | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) -Index: cpython/Makefile.pre.in +Index: b/Makefile.pre.in =================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -987,7 +987,7 @@ - html json http dbm xmlrpc \ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1134,7 +1134,7 @@ logging csv wsgiref urllib \ - ctypes ctypes/macholib idlelib idlelib/Icons \ + ctypes ctypes/macholib \ + idlelib idlelib/Icons \ - distutils distutils/command $(XMLLIBSUBDIRS) \ + distutils distutils/command \ importlib \ turtledemo \ multiprocessing multiprocessing/dummy \ -@@ -1065,6 +1065,10 @@ +@@ -1205,6 +1205,10 @@ LIBSUBDIRS += curses endif @@ -36,14 +36,14 @@ Index: cpython/Makefile.pre.in +LIBSUBDIRS += $(XMLLIBSUBDIRS) +endif + - libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ -Index: cpython/configure.ac + ifeq (@TEST_MODULES@,yes) + LIBSUBDIRS += $(TESTSUBDIRS) + endif +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2178,13 +2178,21 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2363,13 +2363,21 @@ AC_SUBST(DISABLED_EXTENSIONS) # Check for use of the system expat library @@ -70,11 +70,11 @@ Index: cpython/configure.ac # Check for use of the system libffi library AC_MSG_CHECKING(for --with-system-ffi) -Index: cpython/setup.py +Index: b/setup.py =================================================================== ---- cpython.orig/setup.py -+++ cpython/setup.py -@@ -1404,7 +1404,7 @@ +--- a/setup.py ++++ b/setup.py +@@ -1396,7 +1396,7 @@ # # More information on Expat can be found at www.libexpat.org. # diff --git a/package/python3/python3-107-optional-codecs-cjk.patch b/package/python3/python3-107-optional-codecs-cjk.patch index de7f9109a4..f9d377d0b5 100644 --- a/package/python3/python3-107-optional-codecs-cjk.patch +++ b/package/python3/python3-107-optional-codecs-cjk.patch @@ -6,11 +6,11 @@ Signed-off-by: Thomas Petazzoni configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) -Index: cpython/configure.ac +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2465,6 +2465,12 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2683,6 +2683,12 @@ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi diff --git a/package/python3/python3-108-optional-nis.patch b/package/python3/python3-108-optional-nis.patch index 3c9149769c..7ec5b19b59 100644 --- a/package/python3/python3-108-optional-nis.patch +++ b/package/python3/python3-108-optional-nis.patch @@ -9,11 +9,11 @@ Signed-off-by: Thomas Petazzoni configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) -Index: cpython/configure.ac +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2471,6 +2471,12 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2689,6 +2689,12 @@ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022" fi]) diff --git a/package/python3/python3-109-optional-unicodedata.patch b/package/python3/python3-109-optional-unicodedata.patch index c75ee27c74..4b671ed9b0 100644 --- a/package/python3/python3-109-optional-unicodedata.patch +++ b/package/python3/python3-109-optional-unicodedata.patch @@ -6,11 +6,11 @@ Signed-off-by: Thomas Petazzoni configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) -Index: cpython/configure.ac +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2477,6 +2477,12 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2695,6 +2695,12 @@ DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" fi]) diff --git a/package/python3/python3-110-optional-idle.patch b/package/python3/python3-110-optional-idle.patch index 1a7fa65623..f657cbd965 100644 --- a/package/python3/python3-110-optional-idle.patch +++ b/package/python3/python3-110-optional-idle.patch @@ -11,11 +11,11 @@ Signed-off-by: Maxime Ripard setup.py | 4 +++- 3 files changed, 16 insertions(+), 2 deletions(-) -Index: cpython/Makefile.pre.in +Index: b/Makefile.pre.in =================================================================== ---- cpython.orig/Makefile.pre.in -+++ cpython/Makefile.pre.in -@@ -950,7 +950,9 @@ +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1085,7 +1085,9 @@ -rm -f $(DESTDIR)$(LIBPC)/python3.pc (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc) -rm -f $(DESTDIR)$(BINDIR)/idle3 @@ -25,16 +25,15 @@ Index: cpython/Makefile.pre.in -rm -f $(DESTDIR)$(BINDIR)/pydoc3 ifeq (@PYDOC@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) -@@ -986,7 +988,7 @@ - email email/mime \ +@@ -1133,7 +1135,6 @@ html json http dbm xmlrpc \ logging csv wsgiref urllib \ -- ctypes ctypes/macholib idlelib idlelib/Icons \ -+ ctypes ctypes/macholib \ + ctypes ctypes/macholib \ +- idlelib idlelib/Icons \ distutils distutils/command \ importlib \ turtledemo \ -@@ -1069,6 +1071,10 @@ +@@ -1209,6 +1210,10 @@ LIBSUBDIRS += $(XMLLIBSUBDIRS) endif @@ -42,14 +41,14 @@ Index: cpython/Makefile.pre.in +LIBSUBDIRS += idlelib idlelib/Icons +endif + - libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c - @for i in $(SCRIPTDIR) $(LIBDEST); \ - do \ -Index: cpython/configure.ac + ifeq (@TEST_MODULES@,yes) + LIBSUBDIRS += $(TESTSUBDIRS) + endif +Index: b/configure.ac =================================================================== ---- cpython.orig/configure.ac -+++ cpython/configure.ac -@@ -2519,6 +2519,12 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2737,6 +2737,12 @@ AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]), [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ]) @@ -62,11 +61,11 @@ Index: cpython/configure.ac # Check for enable-ipv6 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified]) AC_MSG_CHECKING([if --enable-ipv6 is specified]) -Index: cpython/setup.py +Index: b/setup.py =================================================================== ---- cpython.orig/setup.py -+++ cpython/setup.py -@@ -2124,11 +2124,13 @@ +--- a/setup.py ++++ b/setup.py +@@ -2183,11 +2183,13 @@ import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) diff --git a/package/python3/python3-112-old-stdlib-cache.patch b/package/python3/python3-112-old-stdlib-cache.patch deleted file mode 100644 index 5a2cf8b961..0000000000 --- a/package/python3/python3-112-old-stdlib-cache.patch +++ /dev/null @@ -1,63 +0,0 @@ -python3: Fix pyc-only related runtime exceptions - -Python3 changes the pyc lookup strategy, ignoring the -__pycache__ directory if the .py file is missing. Change -install location to enable use of .pyc without their parent .py - -See http://www.python.org/dev/peps/pep-3147 - -Signed-off-by: Daniel Nelson - ---- python3-3.3.0/configure.ac 2013-01-27 16:35:52.429067797 -0800 -+++ python3-3.3.0/configure.ac 2013-01-27 16:43:43.528601443 -0800 -@@ -1827,6 +1827,23 @@ - LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; - esac - -+STDLIB_CACHE_FLAGS= -+AC_MSG_CHECKING(for --enable-old-stdlib-cache) -+AC_ARG_ENABLE(old-stdlib-cache, -+ AS_HELP_STRING([--enable-old-stdlib-cache], [enable pre-pep3147 stdlib cache]), -+[ -+ if test "$enableval" = "yes" -+ then -+ STDLIB_CACHE_FLAGS="-b" -+ else -+ STDLIB_CACHE_FLAGS="" -+ fi -+], -+[ -+ STDLIB_CACHE_FLAGS="" -+]) -+AC_SUBST(STDLIB_CACHE_FLAGS) -+ - AC_MSG_CHECKING(for --enable-framework) - if test "$enable_framework" - then ---- python3-3.3.0/Makefile.pre.in 2013-01-27 16:35:52.422067642 -0800 -+++ python3-3.3.0/Makefile.pre.in 2013-01-27 16:37:03.710650439 -0800 -@@ -143,6 +143,9 @@ - # Options to enable prebinding (for fast startup prior to Mac OS X 10.3) - OTHER_LIBTOOL_OPT=@OTHER_LIBTOOL_OPT@ - -+# Option to enable old-style precompiled stdlib -+STDLIB_CACHE_FLAGS=@STDLIB_CACHE_FLAGS@ -+ - # Environment to run shared python without installed libraries - RUNSHARED= @RUNSHARED@ - -@@ -1079,12 +1082,12 @@ - fi - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ -- -d $(LIBDEST) -f \ -+ -d $(LIBDEST) -f $(STDLIB_CACHE_FLAGS) \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ -- -d $(LIBDEST)/site-packages -f \ -+ -d $(LIBDEST)/site-packages -f $(STDLIB_CACHE_FLAGS) \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt diff --git a/package/python3/python3.mk b/package/python3/python3.mk index 2773a1203b..ad9b989095 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -4,10 +4,11 @@ # ################################################################################ -PYTHON3_VERSION_MAJOR = 3.3 -PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).0 +PYTHON3_VERSION_MAJOR = 3.4 +PYTHON3_VERSION_MINOR = 0 +PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).$(PYTHON3_VERSION_MINOR)rc1 PYTHON3_SOURCE = Python-$(PYTHON3_VERSION).tar.xz -PYTHON3_SITE = http://python.org/ftp/python/$(PYTHON3_VERSION) +PYTHON3_SITE = http://python.org/ftp/python/$(PYTHON3_VERSION_MAJOR).$(PYTHON3_VERSION_MINOR) # Python needs itself and a "pgen" program to build itself, both being # provided in the Python sources. So in order to cross-compile Python, @@ -16,6 +17,7 @@ PYTHON3_SITE = http://python.org/ftp/python/$(PYTHON3_VERSION) # third-party Python modules. HOST_PYTHON3_CONF_OPT += \ + --without-ensurepip \ --without-cxx-main \ --disable-sqlite3 \ --disable-tk \ @@ -25,25 +27,8 @@ HOST_PYTHON3_CONF_OPT += \ --disable-nis \ --disable-unicodedata \ --disable-test-modules \ - --disable-idle3 - -HOST_PYTHON3_MAKE_ENV = \ - PYTHON_MODULES_INCLUDE=$(HOST_DIR)/usr/include \ - PYTHON_MODULES_LIB="$(HOST_DIR)/lib $(HOST_DIR)/usr/lib" - - -define HOST_PYTHON3_CONFIGURE_CMDS - (cd $(@D) && rm -rf config.cache; \ - $(HOST_CONFIGURE_OPTS) \ - CFLAGS="$(HOST_CFLAGS)" \ - LDFLAGS="$(HOST_LDFLAGS)" \ - $(HOST_PYTHON3_CONF_ENV) \ - ./configure \ - --prefix="$(HOST_DIR)/usr" \ - --sysconfdir="$(HOST_DIR)/etc" \ - $(HOST_PYTHON3_CONF_OPT) \ - ) -endef + --disable-idle3 \ + --disable-pyo-build PYTHON3_DEPENDENCIES = host-python3 libffi @@ -72,6 +57,10 @@ ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY),y) PYTHON3_CONF_OPT += --enable-old-stdlib-cache endif +ifeq ($(BR2_PACKAGE_PYTHON3_PY_ONLY),y) +PYTHON3_CONF_OPT += --disable-pyc-build +endif + ifeq ($(BR2_PACKAGE_PYTHON3_SQLITE),y) PYTHON3_DEPENDENCIES += sqlite else @@ -99,15 +88,12 @@ PYTHON3_DEPENDENCIES += zlib endif PYTHON3_CONF_ENV += \ - _PROJECT_BASE=$(PYTHON3_DIR) \ - _PYTHON_HOST_PLATFORM=$(BR2_HOSTARCH) \ - PYTHON_FOR_BUILD=$(HOST_PYTHON3_DIR)/python \ - PGEN_FOR_BUILD=$(HOST_PYTHON3_DIR)/Parser/pgen \ ac_cv_have_long_long_format=yes \ ac_cv_file__dev_ptmx=yes \ ac_cv_file__dev_ptc=yes \ PYTHON3_CONF_OPT += \ + --without-ensurepip \ --without-cxx-main \ --with-system-ffi \ --disable-pydoc \ @@ -115,22 +101,18 @@ PYTHON3_CONF_OPT += \ --disable-lib2to3 \ --disable-tk \ --disable-nis \ - --disable-idle3 - -PYTHON3_MAKE_ENV = \ - _PROJECT_BASE=$(PYTHON3_DIR) \ - _PYTHON_HOST_PLATFORM=$(BR2_HOSTARCH) \ - PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/usr/include \ - PYTHON_MODULES_LIB="$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib" - -# python distutils adds -L$LIBDIR when linking binary extensions, causing -# trouble for cross compilation -define PYTHON3_FIXUP_LIBDIR - $(SED) 's|^LIBDIR=.*|LIBDIR= $(STAGING_DIR)/usr/lib|' \ - $(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)m/Makefile + --disable-idle3 \ + --disable-pyo-build + +# This is needed to make sure the Python build process doesn't try to +# regenerate those files with the pgen program. Otherwise, it builds +# pgen for the target, and tries to run it on the host. + +define PYTHON3_TOUCH_GRAMMAR_FILES + touch $(@D)/Include/graminit.h $(@D)/Python/graminit.c endef -PYTHON3_POST_INSTALL_STAGING_HOOKS += PYTHON3_FIXUP_LIBDIR +PYTHON3_POST_PATCH_HOOKS += PYTHON3_TOUCH_GRAMMAR_FILES # # Remove useless files. In the config/ directory, only the Makefile -- cgit v1.2.1