From e424050cfcaa2d14e10746908778615434cd0a49 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 18 Feb 2014 21:39:56 +0100 Subject: python3: removal of *.py/*.pyc is now done globally Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/python3/python3.mk | 21 --------------------- 1 file changed, 21 deletions(-) (limited to 'package/python3/python3.mk') diff --git a/package/python3/python3.mk b/package/python3/python3.mk index b5e9689324..d49fe4860b 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -159,26 +159,5 @@ ifneq ($(BR2_PACKAGE_PYTHON),y) PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_INSTALL_SYMLINK endif -ifeq ($(BR2_PACKAGE_PYTHON3_PY_ONLY),y) -define PYTHON3_REMOVE_MODULES_FILES - for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) \ - -name __pycache__` ; do \ - rm -rf $$i ; \ - done -endef -endif - -ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY),y) -define PYTHON3_REMOVE_MODULES_FILES - for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) \ - -name *.py` ; do \ - rm -f $$i ; \ - done -endef -endif - -PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_REMOVE_MODULES_FILES - - $(eval $(autotools-package)) $(eval $(host-autotools-package)) -- cgit v1.2.3 From a30f276a4a0af40fadf860f981fcae1ab74ab2c8 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 18 Feb 2014 21:39:58 +0100 Subject: python3: add python -> python3 symlink for the host variant The target python3 depends on host-python3, but most of the scripts call "python", so we need to ensure that $(HOST_DIR)/usr/bin/python exists. This patch achieves this by creating a python -> python3 symbolic link in $(HOST_DIR), just like we are already doing for the target Python 3. Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/python3/python3.mk | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'package/python3/python3.mk') diff --git a/package/python3/python3.mk b/package/python3/python3.mk index d49fe4860b..ba72e75329 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -159,5 +159,11 @@ ifneq ($(BR2_PACKAGE_PYTHON),y) PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_INSTALL_SYMLINK endif +define HOST_PYTHON3_INSTALL_SYMLINK + ln -fs python3 $(HOST_DIR)/usr/bin/python +endef + +HOST_PYTHON3_POST_INSTALL_HOOKS += HOST_PYTHON3_INSTALL_SYMLINK + $(eval $(autotools-package)) $(eval $(host-autotools-package)) -- cgit v1.2.3 From 249778541b68c10156c6687e14888f6047556922 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 18 Feb 2014 21:40:00 +0100 Subject: python3: use proper PYTHON3_VERSION_MAJOR instead of harcoding 3.3 Some parts of python3.mk were hardcoding the 3.3 version as the major version, which does not work for Python 3.4 and other future versions. Instead, use the existing PYTHON3_VERSION_MAJOR. Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/python3/python3.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'package/python3/python3.mk') diff --git a/package/python3/python3.mk b/package/python3/python3.mk index ba72e75329..2773a1203b 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -127,7 +127,7 @@ PYTHON3_MAKE_ENV = \ # 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-3.3m/Makefile + $(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)m/Makefile endef PYTHON3_POST_INSTALL_STAGING_HOOKS += PYTHON3_FIXUP_LIBDIR @@ -141,7 +141,7 @@ define PYTHON3_REMOVE_USELESS_FILES rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)m-config rm -f $(TARGET_DIR)/usr/bin/python3-config rm -f $(TARGET_DIR)/usr/bin/smtpd.py.3 - for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-3.3m/ \ + for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)m/ \ -type f -not -name pyconfig.h -a -not -name Makefile` ; do \ rm -f $$i ; \ done -- cgit v1.2.3 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/python3.mk') 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.3 From eb7667bf41d4ebb8a3de3c6bebdaadfa65ec775c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 18 Feb 2014 21:40:02 +0100 Subject: python3: provide a PYTHON3_PATH The Python package infrastructure will need the Python 3 package to provide a PYTHON3_PATH environment variable in order to build third-party Python modules. Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/python3/python3.mk | 3 +++ 1 file changed, 3 insertions(+) (limited to 'package/python3/python3.mk') diff --git a/package/python3/python3.mk b/package/python3/python3.mk index ad9b989095..1bf85004d0 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -147,5 +147,8 @@ endef HOST_PYTHON3_POST_INSTALL_HOOKS += HOST_PYTHON3_INSTALL_SYMLINK +# Provided to other packages +PYTHON3_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/sysconfigdata/:$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/ + $(eval $(autotools-package)) $(eval $(host-autotools-package)) -- cgit v1.2.3 From 73293e88c828c9bddc0b684a4603f86f70f8e876 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 18 Feb 2014 21:40:05 +0100 Subject: python, python3: enable unicodedata for host-python, needed by setuptools As we are going to bump setuptools to a much newer version, the host python needs to be built with support for unicodedata. Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/python/python.mk | 2 +- package/python3/python3.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'package/python3/python3.mk') diff --git a/package/python/python.mk b/package/python/python.mk index 0469820a68..3b0a4ddfd5 100644 --- a/package/python/python.mk +++ b/package/python/python.mk @@ -25,7 +25,7 @@ HOST_PYTHON_CONF_OPT += \ --disable-curses \ --disable-codecs-cjk \ --disable-nis \ - --disable-unicodedata \ + --enable-unicodedata \ --disable-dbm \ --disable-gdbm \ --disable-bsddb \ diff --git a/package/python3/python3.mk b/package/python3/python3.mk index 1bf85004d0..13f53f4f03 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -25,7 +25,7 @@ HOST_PYTHON3_CONF_OPT += \ --disable-curses \ --disable-codecs-cjk \ --disable-nis \ - --disable-unicodedata \ + --enable-unicodedata \ --disable-test-modules \ --disable-idle3 \ --disable-pyo-build -- cgit v1.2.3 From 99d930e65db24ac1ed5e768324154cc1f10e9eae Mon Sep 17 00:00:00 2001 From: Przemyslaw Wrzos Date: Tue, 18 Feb 2014 21:40:07 +0100 Subject: python, python3: fix to ensure libpython is stripped The python and python3 builds mark libpython as read-only which prevents it from being stripped out correctly for the target. Signed-off-by: Przemyslaw Wrzos Acked-by: Thomas De Schampheleire Tested-by: Thomas De Schampheleire Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/python/python.mk | 9 +++++++++ package/python3/python3.mk | 9 +++++++++ 2 files changed, 18 insertions(+) (limited to 'package/python3/python3.mk') diff --git a/package/python/python.mk b/package/python/python.mk index 3b0a4ddfd5..94765cbb84 100644 --- a/package/python/python.mk +++ b/package/python/python.mk @@ -160,6 +160,15 @@ endef PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_REMOVE_USELESS_FILES +# +# Make sure libpython gets stripped out on target +# +define PYTHON_ENSURE_LIBPYTHON_STRIPPED + chmod u+w $(TARGET_DIR)/usr/lib/libpython$(PYTHON_VERSION_MAJOR)*.so +endef + +PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_ENSURE_LIBPYTHON_STRIPPED + PYTHON_AUTORECONF = YES # Provided to other packages diff --git a/package/python3/python3.mk b/package/python3/python3.mk index 13f53f4f03..880b66e3c5 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -131,6 +131,15 @@ endef PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_REMOVE_USELESS_FILES +# +# Make sure libpython gets stripped out on target +# +define PYTHON3_ENSURE_LIBPYTHON_STRIPPED + chmod u+w $(TARGET_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR)*.so +endef + +PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_ENSURE_LIBPYTHON_STRIPPED + PYTHON3_AUTORECONF = YES define PYTHON3_INSTALL_SYMLINK -- cgit v1.2.3