python3: bump to 3.4.0rc1
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 18 Feb 2014 20:40:01 +0000 (21:40 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 18 Feb 2014 22:22:18 +0000 (23:22 +0100)
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 <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
36 files changed:
package/python3/python3-000-generate-sysconfigdata-buildir.patch [deleted file]
package/python3/python3-001-remove-host-header-path.patch [new file with mode: 0644]
package/python3/python3-001-support-for-build.patch [deleted file]
package/python3/python3-002-no-host-headers-libs.patch [deleted file]
package/python3/python3-002-properly-detect-if-python-build.patch [new file with mode: 0644]
package/python3/python3-003-staging-header-libs.patch [deleted file]
package/python3/python3-003-sysconfigdata-install-location.patch [new file with mode: 0644]
package/python3/python3-004-no-import-when-cross-compiling.patch [deleted file]
package/python3/python3-004-old-stdlib-cache.patch [new file with mode: 0644]
package/python3/python3-005-do-not-generate-pyo-files.patch [deleted file]
package/python3/python3-005-pyc-pyo-conditional.patch [new file with mode: 0644]
package/python3/python3-006-cross-compile-getaddrinfo.patch [new file with mode: 0644]
package/python3/python3-006-reread-environment.patch [deleted file]
package/python3/python3-007-change-pyconfig-h-location.patch [deleted file]
package/python3/python3-007-disable-extensions.patch [new file with mode: 0644]
package/python3/python3-008-distutils-sysconfig-use-sysconfigdata.patch [new file with mode: 0644]
package/python3/python3-008-no-rpath.patch [deleted file]
package/python3/python3-009-distutils-use-python-sysroot.patch [new file with mode: 0644]
package/python3/python3-009-verbose-module-build.patch [deleted file]
package/python3/python3-010-distutils-cross-compilation-support.patch [deleted file]
package/python3/python3-010-no-termcap-host-path.patch [new file with mode: 0644]
package/python3/python3-011-cross-compile-getaddrinfo.patch [deleted file]
package/python3/python3-012-disable-extensions.patch [deleted file]
package/python3/python3-100-optional-test-modules.patch
package/python3/python3-101-optional-pydoc.patch
package/python3/python3-102-optional-2to3.patch
package/python3/python3-103-optional-sqlite.patch
package/python3/python3-104-optional-tk.patch
package/python3/python3-105-optional-curses.patch
package/python3/python3-106-optional-expat.patch
package/python3/python3-107-optional-codecs-cjk.patch
package/python3/python3-108-optional-nis.patch
package/python3/python3-109-optional-unicodedata.patch
package/python3/python3-110-optional-idle.patch
package/python3/python3-112-old-stdlib-cache.patch [deleted file]
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 (file)
index a29aa0f..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-changeset:   79745:f85c3f4d9b98
-parent:      79743:36b2ca7dc893
-parent:      79744:24d52d3060e8
-user:        Trent Nelson <trent@trent.me>
-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 (file)
index 0000000..e159e86
--- /dev/null
@@ -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 <thomas.petazzoni@free-electrons.com>
+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 (file)
index 8c57cfb..0000000
+++ /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 <ripard@archos.com>, and
-later significantly reworked by Thomas Petazzoni
-<thomas.petazzoni@free-electrons.com>, with some inspiration taken
-from the Python patches of the PTXdist project, and then ported to
-python3.3 by Maxime Ripard <maxime.ripard@free-electrons.com>
-
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- 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 (file)
index 9783f28..0000000
+++ /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
-<thomas.petazzoni@free-electrons.com> for python2.7, and then ported
-to python3.3 by Maxime Ripard <maxime.ripard@free-electrons.com>
-
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- 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 (file)
index 0000000..ce874c6
--- /dev/null
@@ -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 <thomas.petazzoni@free-electrons.com>
+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 (file)
index b0efe29..0000000
+++ /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 <maxime.ripard@free-electrons.com> based
-on the work by Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- 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 (file)
index 0000000..af796d4
--- /dev/null
@@ -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.<arch>-<version> directory, together with a number of
+architecture-specific shared objects, which cannot be used with the
+host Python.
+
+To solve this problem, this patch moves _sysconfigdata.py to a
+separate location, build/sysconfigdata.<arch>-<version>/, and only
+this directory gets added to the PYTHONPATH of the host Python
+interpreter when building Python modules for the target.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -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 (file)
index cd5a437..0000000
+++ /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 <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- 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 (file)
index 0000000..ac34f8d
--- /dev/null
@@ -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 <daniel@sigpwr.com>
+
+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 (file)
index 983d546..0000000
+++ /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 <thomas.petazzoni@free-electrons.com>
----
- 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 (file)
index 0000000..6b08c82
--- /dev/null
@@ -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 (file)
index 0000000..512a534
--- /dev/null
@@ -0,0 +1,21 @@
+Disable buggy_getaddrinfo configure test when cross-compiling with IPv6 support
+
+Signed-off-by: Vanya Sergeev <vsergeev at gmail.com>
+
+---
+ configure.ac |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -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 (file)
index 752b15a..0000000
+++ /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 <thomas.petazzoni@free-electrons.com>
-
----
- 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 (file)
index 8d45dae..0000000
+++ /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 <thomas.petazzoni@free-electrons.com>
-
----
- 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 (file)
index 0000000..462fed4
--- /dev/null
@@ -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 <ripard@archos.com>, and
+then extended by Thomas Petazzoni
+<thomas.petazzoni@free-electrons.com>.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile.pre.in |    4 ++++
+ configure.ac    |    2 ++
+ setup.py        |    5 ++++-
+ 3 files changed, 10 insertions(+), 1 deletion(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -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 (file)
index 0000000..c77fed3
--- /dev/null
@@ -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 (file)
index cdeec22..0000000
+++ /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 <thomas.petazzoni@free-electrons.com>
----
- 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 (file)
index 0000000..cfe30fe
--- /dev/null
@@ -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 <thomas.petazzoni@free-electrons.com>
+
+Index: b/Lib/distutils/sysconfig.py
+===================================================================
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -16,10 +16,17 @@
+ from .errors import DistutilsPlatformError
+ # These are needed in a couple of spots, so just compute them once.
+-PREFIX = os.path.normpath(sys.prefix)
+-EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
+-BASE_PREFIX = os.path.normpath(sys.base_prefix)
+-BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
++if "_python_sysroot" in os.environ:
++    _sysroot=os.environ.get('_python_sysroot')
++    PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix'))
++    EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix'))
++    BASE_PREFIX = PREFIX
++    BASE_EXEC_PREFIX = EXEC_PREFIX
++else:
++    PREFIX = os.path.normpath(sys.prefix)
++    EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
++    BASE_PREFIX = os.path.normpath(sys.base_prefix)
++    BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
+ # Path to the base directory of the project. On Windows the binary may
+ # live in project/PCBuild9.  If we're dealing with an x64 Windows build,
+Index: b/Lib/distutils/command/build_ext.py
+===================================================================
+--- a/Lib/distutils/command/build_ext.py
++++ b/Lib/distutils/command/build_ext.py
+@@ -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 (file)
index 60b6d79..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-Enables verbose output when building modules
-
-Patch borrowed from OpenBricks.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- 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 (file)
index 0a51400..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-Add some cross-compilation fixes to distutils
-
-Inspired by work done by Marc Kleine-Budde <mkl@pengutronix.de> in
-PTXdist.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- 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 (file)
index 0000000..57fe47a
--- /dev/null
@@ -0,0 +1,22 @@
+Don't look in /usr/lib/termcap for libraries
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/setup.py
+===================================================================
+--- a/setup.py
++++ b/setup.py
+@@ -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 (file)
index 33286ce..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Disable buggy_getaddrinfo configure test when cross-compiling with IPv6 support
-
-Signed-off-by: Vanya Sergeev <vsergeev at gmail.com>
-
----
- configure.ac |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: 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 (file)
index ed1d1e2..0000000
+++ /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 <ripard@archos.com>, and
-then extended by Thomas Petazzoni
-<thomas.petazzoni@free-electrons.com>.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile.pre.in |    4 ++++
- configure.ac    |    2 ++
- setup.py        |    5 ++++-
- 3 files changed, 10 insertions(+), 1 deletion(-)
-
-Index: 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
index 13e73a7ed9bc3b093a077941e23de70d76ec39a2..6b52509b5ac66aff214f2c2cb0d5674c62b63510 100644 (file)
@@ -11,11 +11,11 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
  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
  
  
index ac50ac39ea5012514016f3db89ea023323970c4d..331c842d3dddc754a5d1066b1d706ce27bb9f709 100644 (file)
@@ -12,11 +12,11 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
  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
index f5e821ae6bdb7cf903a92f45d5de6ae23116cb2c..facf6e178020e4113bff13f77b0c6b34fa1ca919 100644 (file)
@@ -12,11 +12,11 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
  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 ])
  
index e3a63c3e0246f5a3c09f59767baf09258d747c43..eb8d242053f579600a839dc00ef88f66cd8845c3 100644 (file)
@@ -8,12 +8,12 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
  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
index 2f89fe014fa506a77b8c82bf7bb01d6abd09d7dc..32e2bee797f99ae58c8b03a1f2c071a4c854f80d 100644 (file)
@@ -8,50 +8,47 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
  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
  
index adb31836fdb740af4d1f9d3b7ccdfda835610289..75e2558db98d66dc393d92a4499894989a3232a6 100644 (file)
@@ -8,35 +8,35 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
  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
  
index d171b79ef7d74f6b134a9eef7e7a25742c4a2035..80da9395eec1c16b82629cdd35af7dd92f1cc0b4 100644 (file)
@@ -15,20 +15,20 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
  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.
          #
index de7f9109a46b6265a6376e0eef6f67e22237124e..f9d377d0b5183cf2f9820af3972346cd04c13ae7 100644 (file)
@@ -6,11 +6,11 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  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
  
index 3c9149769c9b7ba97672079902da2db668b25d60..7ec5b19b59f614cece4d10bc0fa5fc2cd47b0b75 100644 (file)
@@ -9,11 +9,11 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  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])
  
index c75ee27c7474c61b0ba55880a0e4812c73a1e492..4b671ed9b03fd88757bc1e18586349d43153709b 100644 (file)
@@ -6,11 +6,11 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  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])
  
index 1a7fa65623861d814b68770a9e6ba346d7ac23d2..f657cbd965822135f0385ae245610d2ff7e32a3a 100644 (file)
@@ -11,11 +11,11 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  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 (file)
index 5a2cf8b..0000000
+++ /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 <daniel@sigpwr.com>
-
---- 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
index 2773a1203b7685858b66f05fc94e46361d78bac3..ad9b9890951c0a952be01c4f06c0fca3bfa23164 100644 (file)
@@ -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