python: bump to 2.7.6
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 13 Feb 2014 20:48:53 +0000 (21:48 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 14 Feb 2014 20:41:43 +0000 (21:41 +0100)
Even though jumping from 2.7.3 to 2.7.6 looks like a minor version
bump, it is in fact a fairly significant one, because a good number of
changes to help cross-compilation have been merged into Python
upstream. Therefore, most of our patches are affected by this change.

In detail, this commit:

 * Renames all the patches to follow the naming convention of patches
   in Buildroot: the patch file names should not have any version
   number.

 * The patches numbered above 100, that add configuration options to
   disable certain modules of the Python standard library, are only
   renamed and slightly adapted, they didn't change that much.

 * The patches numbered below 100 are almost entirely rewritten: many
   of the cross-compilation problems that used to exist in Python
   2.7.3 no longer exist, and the number of remaining problems is
   smaller, and can be fixed with smaller patches.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
53 files changed:
package/python/python-001-remove-host-header-path.patch [new file with mode: 0644]
package/python/python-002-fix-get-python-inc.patch [new file with mode: 0644]
package/python/python-003-properly-detect-if-python-build.patch [new file with mode: 0644]
package/python/python-004-sysconfigdata-install-location.patch [new file with mode: 0644]
package/python/python-005-pyc-pyo-conditional.patch [new file with mode: 0644]
package/python/python-006-cross-compile-getaddrinfo.patch [new file with mode: 0644]
package/python/python-007-disable-extensions.patch [new file with mode: 0644]
package/python/python-008-distutils-use-python-sysroot.patch [new file with mode: 0644]
package/python/python-009-no-termcap-host-path.patch [new file with mode: 0644]
package/python/python-100-optional-test-modules.patch [new file with mode: 0644]
package/python/python-101-optional-pydoc.patch [new file with mode: 0644]
package/python/python-102-optional-2to3.patch [new file with mode: 0644]
package/python/python-103-optional-sqlite.patch [new file with mode: 0644]
package/python/python-104-optional-tk.patch [new file with mode: 0644]
package/python/python-105-optional-curses.patch [new file with mode: 0644]
package/python/python-106-optional-expat.patch [new file with mode: 0644]
package/python/python-107-optional-codecs-cjk.patch [new file with mode: 0644]
package/python/python-108-optional-nis.patch [new file with mode: 0644]
package/python/python-109-optional-unicodedata.patch [new file with mode: 0644]
package/python/python-110-optional-db.patch [new file with mode: 0644]
package/python/python-111-optional-ssl.patch [new file with mode: 0644]
package/python/python-112-optional-bzip2.patch [new file with mode: 0644]
package/python/python-113-optional-zlib.patch [new file with mode: 0644]
package/python/python-2.7-001-support-for-build.patch [deleted file]
package/python/python-2.7-002-cross-compile-variable.patch [deleted file]
package/python/python-2.7-003-no-import-when-cross-compiling.patch [deleted file]
package/python/python-2.7-004-no-host-headers-libs.patch [deleted file]
package/python/python-2.7-005-staging-headers-libs.patch [deleted file]
package/python/python-2.7-006-disable-extensions.patch [deleted file]
package/python/python-2.7-007-do-not-generate-pyo-files.patch [deleted file]
package/python/python-2.7-008-reread-environment.patch [deleted file]
package/python/python-2.7-010-change-pyconfig-h-location.patch [deleted file]
package/python/python-2.7-011-no-rpath.patch [deleted file]
package/python/python-2.7-012-correct-32bit-64bit-check.patch [deleted file]
package/python/python-2.7-013-fix-linux-3-compilation.patch [deleted file]
package/python/python-2.7-014-verbose-module-build.patch [deleted file]
package/python/python-2.7-015-distutils-cross-compilation-support.patch [deleted file]
package/python/python-2.7-016-cross-compile-getaddrinfo.patch [deleted file]
package/python/python-2.7-100-optional-test-modules.patch [deleted file]
package/python/python-2.7-101-optional-pydoc.patch [deleted file]
package/python/python-2.7-102-optional-2to3.patch [deleted file]
package/python/python-2.7-103-optional-sqlite.patch [deleted file]
package/python/python-2.7-104-optional-tk.patch [deleted file]
package/python/python-2.7-105-optional-curses.patch [deleted file]
package/python/python-2.7-106-optional-expat.patch [deleted file]
package/python/python-2.7-107-optional-codecs-cjk.patch [deleted file]
package/python/python-2.7-108-optional-nis.patch [deleted file]
package/python/python-2.7-109-optional-unicodedata.patch [deleted file]
package/python/python-2.7-110-optional-db.patch [deleted file]
package/python/python-2.7-111-optional-ssl.patch [deleted file]
package/python/python-2.7-112-optional-bzip2.patch [deleted file]
package/python/python-2.7-113-optional-zlib.patch [deleted file]
package/python/python.mk

diff --git a/package/python/python-001-remove-host-header-path.patch b/package/python/python-001-remove-host-header-path.patch
new file mode 100644 (file)
index 0000000..206751d
--- /dev/null
@@ -0,0 +1,32 @@
+setup.py: do not add invalid header locations
+
+This piece of code incorrectly adds /usr/include to
+self.compiler.include_dirs, and results in the following invalid
+compilation line:
+
+/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc -fPIC \
+  -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 \
+  -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \
+  -I/usr/include -I. -IInclude -I./Include \
+  -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \
+  -I/home/thomas/projets/buildroot/output/build/python-2.7.6/Include \
+  -I/home/thomas/projets/buildroot/output/build/python-2.7.6 \
+  -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/mathmodule.c \
+  -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/mathmodule.o
+cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories]
+[...]
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Index: b/setup.py
+===================================================================
+--- a/setup.py
++++ b/setup.py
+@@ -478,7 +478,7 @@
+                     for directory in reversed(options.dirs):
+                         add_dir_to_list(dir_list, directory)
+-        if os.path.normpath(sys.prefix) != '/usr' \
++        if False and os.path.normpath(sys.prefix) != '/usr' \
+                 and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
+             # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
+             # (PYTHONFRAMEWORK is set) to avoid # linking problems when
diff --git a/package/python/python-002-fix-get-python-inc.patch b/package/python/python-002-fix-get-python-inc.patch
new file mode 100644 (file)
index 0000000..bfee03a
--- /dev/null
@@ -0,0 +1,36 @@
+Fix get_python_inc() for cross-compilation
+
+When we are cross compiling, doing os.path.dirname(sys.executable) to
+get the build directory is incorrect, because we're executing the host
+Python to build things for the target. Instead, we should use the
+project_base variable.
+
+This fixes cross-compilation, which was adding incorrect header paths
+pointing to the location where the host Python was built:
+
+/home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-gcc -fPIC -fno-strict-aliasing \
+  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -DNDEBUG -g -O3 -Wall -Wstrict-prototypes \
+  -I/usr/include -I. -IInclude -I./Include -I/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include \
+  -I/home/thomas/projets/buildroot/output/host/usr/bin/Include -I/home/thomas/projets/buildroot/output/host/usr/bin \
+  -c /home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.c \
+  -o build/temp.linux2-arm-2.7/home/thomas/projets/buildroot/output/build/python-2.7.6/Modules/_struct.o
+
+This patch allows to fix the
+/home/thomas/projets/buildroot/output/host/usr/bin/Include and
+/home/thomas/projets/buildroot/output/host/usr/bin paths that are
+incorrectly added to the header paths.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Index: b/Lib/distutils/sysconfig.py
+===================================================================
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -79,7 +79,7 @@
+     if os.name == "posix":
+         if python_build:
+-            buildir = os.path.dirname(sys.executable)
++            buildir = project_base
+             if plat_specific:
+                 # python.h is located in the buildir
+                 inc_dir = buildir
diff --git a/package/python/python-003-properly-detect-if-python-build.patch b/package/python/python-003-properly-detect-if-python-build.patch
new file mode 100644 (file)
index 0000000..3fb865f
--- /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
+@@ -235,7 +235,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/python/python-004-sysconfigdata-install-location.patch b/package/python/python-004-sysconfigdata-install-location.patch
new file mode 100644 (file)
index 0000000..940dde7
--- /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
+@@ -449,6 +449,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
+@@ -965,7 +968,7 @@
+               else    true; \
+               fi; \
+       done
+-      @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \
++      @for i in $(srcdir)/Lib/*.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \
+       do \
+               if test -x $$i; then \
+                       $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
+@@ -975,6 +978,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; \
+@@ -1299,7 +1307,7 @@
+               Modules/Setup Modules/Setup.local Modules/Setup.config \
+               Modules/ld_so_aix Modules/python.exp Misc/python.pc
+       -rm -f python*-gdb.py
+-      -rm -f pybuilddir.txt
++      -rm -f pybuilddir.txt pysysconfigdatadir.txt
+       find $(srcdir)/[a-zA-Z]* '(' -name '*.fdc' -o -name '*~' \
+                                    -o -name '[@,#]*' -o -name '*.old' \
+                                    -o -name '*.orig' -o -name '*.rej' \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -30,7 +30,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/plat-$(MACHDEP) '$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/plat-$(MACHDEP) '$interp
+     fi
+ elif test "$cross_compiling" = maybe; then
+     AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
diff --git a/package/python/python-005-pyc-pyo-conditional.patch b/package/python/python-005-pyc-pyo-conditional.patch
new file mode 100644 (file)
index 0000000..aa3b330
--- /dev/null
@@ -0,0 +1,59 @@
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1013,24 +1013,32 @@
+               $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
+                       $(DESTDIR)$(LIBDEST)/distutils/tests ; \
+       fi
++ifeq (@PYC_BUILD@,yes)
+       PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
+               -d $(LIBDEST) -f \
+               -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+               $(DESTDIR)$(LIBDEST)
++endif
++ifeq (@PYO_BUILD@,yes)
+       PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
+               -d $(LIBDEST) -f \
+               -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+               $(DESTDIR)$(LIBDEST)
++endif
++ifeq (@PYC_BUILD@,yes)
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
+               -d $(LIBDEST)/site-packages -f \
+               -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
++endif
++ifeq (@PYO_BUILD@,yes)
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
+               -d $(LIBDEST)/site-packages -f \
+               -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
++endif
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+               $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
+       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -733,6 +733,17 @@
+     ;;
+ esac
++AC_SUBST(PYC_BUILD)
++
++AC_ARG_ENABLE(pyc-build,
++      AS_HELP_STRING([--disable-pyc-build], [disable build of pyc files]),
++      [ PYC_BUILD="${enableval}" ], [ PYC_BUILD=yes ])
++
++AC_SUBST(PYO_BUILD)
++
++AC_ARG_ENABLE(pyo-build,
++      AS_HELP_STRING([--disable-pyo-build], [disable build of pyo files]),
++      [ PYO_BUILD="${enableval}" ], [ PYO_BUILD=yes ])
+ AC_SUBST(LIBRARY)
+ AC_MSG_CHECKING(LIBRARY)
diff --git a/package/python/python-006-cross-compile-getaddrinfo.patch b/package/python/python-006-cross-compile-getaddrinfo.patch
new file mode 100644 (file)
index 0000000..2c8248f
--- /dev/null
@@ -0,0 +1,13 @@
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -3337,7 +3337,7 @@
+ AC_MSG_RESULT($ac_cv_buggy_getaddrinfo)
+-if test $have_getaddrinfo = no -o "$ac_cv_buggy_getaddrinfo" = yes
++if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes
+ then
+       if test $ipv6 = yes
+       then
diff --git a/package/python/python-007-disable-extensions.patch b/package/python/python-007-disable-extensions.patch
new file mode 100644 (file)
index 0000000..c03f84c
--- /dev/null
@@ -0,0 +1,60 @@
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -153,6 +153,8 @@
+ # configure script arguments
+ CONFIG_ARGS=  @CONFIG_ARGS@
++# disabled extensions
++DISABLED_EXTENSIONS=  @DISABLED_EXTENSIONS@
+ # Subdirectories with code
+ SRCDIRS=      @SRCDIRS@
+@@ -464,6 +466,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
+@@ -1154,7 +1157,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
+@@ -2275,6 +2275,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' (at the front) if
diff --git a/package/python/python-008-distutils-use-python-sysroot.patch b/package/python/python-008-distutils-use-python-sysroot.patch
new file mode 100644 (file)
index 0000000..7cd7487
--- /dev/null
@@ -0,0 +1,54 @@
+Adjust library/header paths for cross-compilation
+
+When cross-compiling third-party extensions, the get_python_inc() or
+get_python_lib() can be called, to return the path to headers or
+libraries. However, they use the sys.prefix of the host Python, which
+returns incorrect paths when cross-compiling (paths pointing to host
+headers and libraries).
+
+In order to fix this, we introduce the _python_sysroot, _python_prefix
+and _python_exec_prefix variables, that allow to override these
+values, and get correct header/library paths when cross-compiling
+third-party Python modules.
+
+The _python_sysroot variable is also used to prefix the LIBDIR value
+taken from the sysconfigdata module.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Lib/distutils/sysconfig.py
+===================================================================
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -19,8 +19,13 @@
+ from distutils.errors import DistutilsPlatformError
+ # These are needed in a couple of spots, so just compute them once.
+-PREFIX = os.path.normpath(sys.prefix)
+-EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
++if "_python_sysroot" in os.environ:
++    _sysroot=os.environ.get('_python_sysroot')
++    PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix'))
++    EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix'))
++else:
++    PREFIX = os.path.normpath(sys.prefix)
++    EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
+ # Path to the base directory of the project. On Windows the binary may
+ # live in project/PCBuild9.  If we're dealing with an x64 Windows build,
+Index: b/Lib/distutils/command/build_ext.py
+===================================================================
+--- a/Lib/distutils/command/build_ext.py
++++ b/Lib/distutils/command/build_ext.py
+@@ -237,7 +237,10 @@
+         if (sysconfig.get_config_var('Py_ENABLE_SHARED')):
+             if not sysconfig.python_build:
+                 # building third party extensions
+-                self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
++                libdir = sysconfig.get_config_var('LIBDIR')
++                if "_python_sysroot" in os.environ:
++                    libdir = os.environ.get("_python_sysroot") + libdir
++                self.library_dirs.append(libdir)
+             else:
+                 # building python standard extensions
+                 self.library_dirs.append('.')
diff --git a/package/python/python-009-no-termcap-host-path.patch b/package/python/python-009-no-termcap-host-path.patch
new file mode 100644 (file)
index 0000000..7df8a32
--- /dev/null
@@ -0,0 +1,23 @@
+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
+@@ -760,12 +760,9 @@
+                 pass # Issue 7384: Already linked against curses or tinfo.
+             elif curses_library:
+                 readline_libs.append(curses_library)
+-            elif self.compiler.find_library_file(lib_dirs +
+-                                                     ['/usr/lib/termcap'],
+-                                                     'termcap'):
++            elif self.compiler.find_library_file(lib_dirs, 'termcap'):
+                 readline_libs.append('termcap')
+             exts.append( Extension('readline', ['readline.c'],
+-                                   library_dirs=['/usr/lib/termcap'],
+                                    extra_link_args=readline_extra_link_args,
+                                    libraries=readline_libs) )
+         else:
diff --git a/package/python/python-100-optional-test-modules.patch b/package/python/python-100-optional-test-modules.patch
new file mode 100644 (file)
index 0000000..a5f7545
--- /dev/null
@@ -0,0 +1,88 @@
+Add an option to disable installation of test modules
+
+The Python standard distribution comes with many test modules, that
+are not necessarly useful on embedded targets.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+ Makefile.pre.in |   40 +++++++++++++++++++++++++++-------------
+ configure.in    |    6 ++++++
+ 2 files changed, 33 insertions(+), 13 deletions(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -934,23 +934,40 @@
+       plat-mac/lib-scriptpackages/SystemEvents \
+       plat-mac/lib-scriptpackages/Terminal
+ PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
+-LIBSUBDIRS=   lib-tk lib-tk/test lib-tk/test/test_tkinter \
+-              lib-tk/test/test_ttk site-packages test test/audiodata test/data \
+-              test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
+-              test/tracedmodules \
++LIBSUBDIRS=   lib-tk \
++              site-packages \
+               encodings compiler hotshot \
+-              email email/mime email/test email/test/data \
+-              json json/tests \
+-              sqlite3 sqlite3/test \
+-              logging bsddb bsddb/test csv importlib wsgiref \
+-              lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
+-              lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
+-              ctypes ctypes/test ctypes/macholib idlelib idlelib/Icons \
+-              distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
++              email email/mime \
++              json \
++              sqlite3 \
++              logging bsddb csv importlib wsgiref \
++              lib2to3 lib2to3/fixes lib2to3/pgen2 \
++              ctypes  ctypes/macholib idlelib idlelib/Icons \
++              distutils distutils/command $(XMLLIBSUBDIRS) \
+               multiprocessing multiprocessing/dummy \
+-              unittest unittest/test \
++              unittest \
+               lib-old \
+               curses pydoc_data $(MACHDEPS)
++
++TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \
++      lib-tk/test/test_ttk \
++      test test/audiodata test/data \
++      test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
++      test/tracedmodules \
++      email/test email/test/data \
++      json/tests \
++      sqlite3/test \
++      bsddb/test \
++      lib2to3/tests \
++      lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
++      ctypes/test \
++      distutils/tests \
++      unittest/test
++
++ifeq (@TEST_MODULES@,yes)
++LIBSUBDIRS += $(TESTSUBDIRS)
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2614,6 +2614,12 @@
+ fi
++AC_SUBST(TEST_MODULES)
++
++AC_ARG_ENABLE(test-modules,
++      AS_HELP_STRING([--disable-test-modules], [disable test modules]),
++      [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
++
+ # Check for enable-ipv6
+ AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
+ AC_MSG_CHECKING([if --enable-ipv6 is specified])
diff --git a/package/python/python-101-optional-pydoc.patch b/package/python/python-101-optional-pydoc.patch
new file mode 100644 (file)
index 0000000..c9b05bd
--- /dev/null
@@ -0,0 +1,82 @@
+Add an option to disable pydoc
+
+It removes 0.5 MB of data from the target plus the pydoc script
+itself.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+ Makefile.pre.in |    6 +++++-
+ configure.in    |    5 +++++
+ setup.py        |   10 +++++++---
+ 3 files changed, 17 insertions(+), 4 deletions(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -947,7 +947,7 @@
+               multiprocessing multiprocessing/dummy \
+               unittest \
+               lib-old \
+-              curses pydoc_data $(MACHDEPS)
++              curses $(MACHDEPS)
+ TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \
+       lib-tk/test/test_ttk \
+@@ -968,6 +968,10 @@
+ LIBSUBDIRS += $(TESTSUBDIRS)
+ endif
++ifeq (@PYDOC@,yes)
++LIBSUBDIRS += pydoc_data
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2613,6 +2613,11 @@
+       AC_CHECK_FUNCS(pthread_atfork)
+ fi
++AC_SUBST(PYDOC)
++
++AC_ARG_ENABLE(pydoc,
++      AS_HELP_STRING([--disable-pydoc], [disable pydoc]),
++      [ PYDOC="${enableval}" ], [ PYDOC=yes ])
+ AC_SUBST(TEST_MODULES)
+Index: b/setup.py
+===================================================================
+--- a/setup.py
++++ b/setup.py
+@@ -2205,6 +2205,12 @@
+     # turn off warnings when deprecated modules are imported
+     import warnings
+     warnings.filterwarnings("ignore",category=DeprecationWarning)
++
++    scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3',
++               'Lib/smtpd.py']
++    if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
++        scripts += [ 'Tools/scripts/pydoc' ]
++
+     setup(# PyPI Metadata (PEP 301)
+           name = "Python",
+           version = sys.version.split()[0],
+@@ -2225,9 +2231,7 @@
+           ext_modules=[Extension('_struct', ['_struct.c'])],
+           # Scripts to install
+-          scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle',
+-                     'Tools/scripts/2to3',
+-                     'Lib/smtpd.py']
++          scripts = scripts,
+         )
+ # --install-platlib
diff --git a/package/python/python-102-optional-2to3.patch b/package/python/python-102-optional-2to3.patch
new file mode 100644 (file)
index 0000000..586b24b
--- /dev/null
@@ -0,0 +1,85 @@
+Add an option to disable lib2to3
+
+lib2to3 is a library to convert Python 2.x code to Python 3.x. As
+such, it is probably not very useful on embedded system targets.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+ Makefile.pre.in |   24 +++++++++++++++++-------
+ configure.in    |    6 ++++++
+ setup.py        |    5 +++--
+ 3 files changed, 26 insertions(+), 9 deletions(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -941,7 +941,6 @@
+               json \
+               sqlite3 \
+               logging bsddb csv importlib wsgiref \
+-              lib2to3 lib2to3/fixes lib2to3/pgen2 \
+               ctypes  ctypes/macholib idlelib idlelib/Icons \
+               distutils distutils/command $(XMLLIBSUBDIRS) \
+               multiprocessing multiprocessing/dummy \
+@@ -958,8 +957,6 @@
+       json/tests \
+       sqlite3/test \
+       bsddb/test \
+-      lib2to3/tests \
+-      lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
+       ctypes/test \
+       distutils/tests \
+       unittest/test
+@@ -972,6 +969,14 @@
+ LIBSUBDIRS += pydoc_data
+ endif
++ifeq (@LIB2TO3@,yes)
++LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2
++TESTSUBDIRS +=        lib2to3/tests                           \
++              lib2to3/tests/data                      \
++              lib2to3/tests/data/fixers               \
++              lib2to3/tests/data/fixers/myfixes
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2625,6 +2625,12 @@
+       AS_HELP_STRING([--disable-test-modules], [disable test modules]),
+       [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
++AC_SUBST(LIB2TO3)
++
++AC_ARG_ENABLE(lib2to3,
++      AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
++      [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
++
+ # Check for enable-ipv6
+ AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
+ AC_MSG_CHECKING([if --enable-ipv6 is specified])
+Index: b/setup.py
+===================================================================
+--- a/setup.py
++++ b/setup.py
+@@ -2206,10 +2206,11 @@
+     import warnings
+     warnings.filterwarnings("ignore",category=DeprecationWarning)
+-    scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3',
+-               'Lib/smtpd.py']
++    scripts = ['Tools/scripts/idle', 'Lib/smtpd.py']
+     if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
+         scripts += [ 'Tools/scripts/pydoc' ]
++    if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"):
++        scripts += [ 'Tools/scripts/2to3' ]
+     setup(# PyPI Metadata (PEP 301)
+           name = "Python",
diff --git a/package/python/python-103-optional-sqlite.patch b/package/python/python-103-optional-sqlite.patch
new file mode 100644 (file)
index 0000000..a20afc7
--- /dev/null
@@ -0,0 +1,62 @@
+Add option to disable the sqlite3 module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+ Makefile.pre.in |   24 +++++++++++++++++-------
+ configure.in |    9 +++++++++
+ 2 file changed, 9 insertions(+)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2613,6 +2613,15 @@
+       AC_CHECK_FUNCS(pthread_atfork)
+ fi
++AC_SUBST(SQLITE3)
++AC_ARG_ENABLE(sqlite3,
++      AS_HELP_STRING([--disable-sqlite3], [disable sqlite3]),
++      [ SQLITE3="${enableval}" ], [ SQLITE3=yes ])
++
++if test "$SQLITE3" = "no" ; then
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
++fi
++
+ AC_SUBST(PYDOC)
+ AC_ARG_ENABLE(pydoc,
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -939,7 +939,6 @@
+               encodings compiler hotshot \
+               email email/mime \
+               json \
+-              sqlite3 \
+               logging bsddb csv importlib wsgiref \
+               ctypes  ctypes/macholib idlelib idlelib/Icons \
+               distutils distutils/command $(XMLLIBSUBDIRS) \
+@@ -955,7 +954,6 @@
+       test/tracedmodules \
+       email/test email/test/data \
+       json/tests \
+-      sqlite3/test \
+       bsddb/test \
+       ctypes/test \
+       distutils/tests \
+@@ -977,6 +975,11 @@
+               lib2to3/tests/data/fixers/myfixes
+ endif
++ifeq (@SQLITE3@,yes)
++LIBSUBDIRS += sqlite3
++TESTSUBDIRS += sqlite3/test
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
diff --git a/package/python/python-104-optional-tk.patch b/package/python/python-104-optional-tk.patch
new file mode 100644 (file)
index 0000000..3e0dd16
--- /dev/null
@@ -0,0 +1,68 @@
+Add an option to disable the tk module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+ Makefile.pre.in |   14 ++++++++++----
+ configure.in    |    9 +++++++++
+ 2 files changed, 19 insertions(+), 4 deletions(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -934,8 +934,7 @@
+       plat-mac/lib-scriptpackages/SystemEvents \
+       plat-mac/lib-scriptpackages/Terminal
+ PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
+-LIBSUBDIRS=   lib-tk \
+-              site-packages \
++LIBSUBDIRS=   site-packages \
+               encodings compiler hotshot \
+               email email/mime \
+               json \
+@@ -947,9 +946,7 @@
+               lib-old \
+               curses $(MACHDEPS)
+-TESTSUBDIRS = lib-tk/test lib-tk/test/test_tkinter \
+-      lib-tk/test/test_ttk \
+-      test test/audiodata test/data \
++TESTSUBDIRS = test test/audiodata test/data \
+       test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
+       test/tracedmodules \
+       email/test email/test/data \
+@@ -980,6 +977,12 @@
+ TESTSUBDIRS += sqlite3/test
+ endif
++ifeq (@TK@,yes)
++LIBSUBDIRS += lib-tk
++TESTSUBDIRS += lib-tk/test lib-tk/test/test_tkinter   \
++            lib-tk/test/test_ttk
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2622,6 +2622,15 @@
+    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
+ fi
++AC_SUBST(TK)
++AC_ARG_ENABLE(tk,
++      AS_HELP_STRING([--disable-tk], [disable tk]),
++      [ TK="${enableval}" ], [ TK=yes ])
++
++if test "$TK" = "no"; then
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
++fi
++
+ AC_SUBST(PYDOC)
+ AC_ARG_ENABLE(pydoc,
diff --git a/package/python/python-105-optional-curses.patch b/package/python/python-105-optional-curses.patch
new file mode 100644 (file)
index 0000000..2ae4989
--- /dev/null
@@ -0,0 +1,54 @@
+Add an option to disable the curses module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+ Makefile.pre.in |    6 +++++-
+ configure.in    |    9 +++++++++
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -944,7 +944,7 @@
+               multiprocessing multiprocessing/dummy \
+               unittest \
+               lib-old \
+-              curses $(MACHDEPS)
++              $(MACHDEPS)
+ TESTSUBDIRS = test test/audiodata test/data \
+       test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
+@@ -983,6 +983,10 @@
+             lib-tk/test/test_ttk
+ endif
++ifeq (@CURSES@,yes)
++LIBSUBDIRS += curses
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2631,6 +2631,15 @@
+    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
+ fi
++AC_SUBST(CURSES)
++AC_ARG_ENABLE(curses,
++      AS_HELP_STRING([--disable-curses], [disable curses]),
++      [ CURSES="${enableval}" ], [ CURSES=yes ])
++
++if test "$CURSES" = "no"; then
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel"
++fi
++
+ AC_SUBST(PYDOC)
+ AC_ARG_ENABLE(pydoc,
diff --git a/package/python/python-106-optional-expat.patch b/package/python/python-106-optional-expat.patch
new file mode 100644 (file)
index 0000000..9eee2cd
--- /dev/null
@@ -0,0 +1,85 @@
+Add an option to disable expat
+
+This patch replaces the existing --with-system-expat option with a
+--with-expat={system,builtin,none} option, which allows to tell Python
+whether we want to use the system expat (already installed), the expat
+builtin the Python sources, or no expat at all (which disables the
+installation of XML modules).
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+ Makefile.pre.in |    6 +++++-
+ configure.in    |   18 +++++++++++++-----
+ setup.py        |    2 +-
+ 3 files changed, 19 insertions(+), 7 deletions(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -940,7 +940,7 @@
+               json \
+               logging bsddb csv importlib wsgiref \
+               ctypes  ctypes/macholib idlelib idlelib/Icons \
+-              distutils distutils/command $(XMLLIBSUBDIRS) \
++              distutils distutils/command \
+               multiprocessing multiprocessing/dummy \
+               unittest \
+               lib-old \
+@@ -987,6 +987,10 @@
+ LIBSUBDIRS += curses
+ endif
++ifeq (@EXPAT@,yes)
++LIBSUBDIRS += $(XMLLIBSUBDIRS)
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2278,13 +2278,21 @@
+ AC_SUBST(DISABLED_EXTENSIONS)
+ # Check for use of the system expat library
+-AC_MSG_CHECKING(for --with-system-expat)
+-AC_ARG_WITH(system_expat,
+-            AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library]),
++AC_MSG_CHECKING(for --with-expat)
++AC_ARG_WITH(expat,
++            AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]),
+             [],
+-            [with_system_expat="no"])
++            [with_expat="builtin"])
+-AC_MSG_RESULT($with_system_expat)
++AC_MSG_RESULT($with_expat)
++
++if test "$with_expat" != "none"; then
++   EXPAT=yes
++else
++   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat"
++   EXPAT=no
++fi
++AC_SUBST(EXPAT)
+ # Check for use of the system libffi library
+ AC_MSG_CHECKING(for --with-system-ffi)
+Index: b/setup.py
+===================================================================
+--- a/setup.py
++++ b/setup.py
+@@ -1457,7 +1457,7 @@
+         #
+         # More information on Expat can be found at www.libexpat.org.
+         #
+-        if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
++        if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"):
+             expat_inc = []
+             define_macros = []
+             expat_lib = ['expat']
diff --git a/package/python/python-107-optional-codecs-cjk.patch b/package/python/python-107-optional-codecs-cjk.patch
new file mode 100644 (file)
index 0000000..1b3acac
--- /dev/null
@@ -0,0 +1,25 @@
+Add an option to disable CJK codecs
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+---
+ configure.in |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2630,6 +2630,12 @@
+    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
+ fi
++AC_ARG_ENABLE(codecs-cjk,
++      AS_HELP_STRING([--disable-codecs-cjk], [disable CJK codecs]),
++      [ if test "$enableval" = "no"; then
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk"
++        fi])
++
+ AC_SUBST(TK)
+ AC_ARG_ENABLE(tk,
+       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python/python-108-optional-nis.patch b/package/python/python-108-optional-nis.patch
new file mode 100644 (file)
index 0000000..8749dfc
--- /dev/null
@@ -0,0 +1,28 @@
+Add an option to disable NIS
+
+NIS is not necessarily available in uClibc, so we need an option to
+not compile support for it.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+---
+ configure.in |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2636,6 +2636,12 @@
+            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk"
+         fi])
++AC_ARG_ENABLE(nis,
++      AS_HELP_STRING([--disable-nis], [disable NIS]),
++      [ if test "$enableval" = "no"; then
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
++        fi])
++
+ AC_SUBST(TK)
+ AC_ARG_ENABLE(tk,
+       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python/python-109-optional-unicodedata.patch b/package/python/python-109-optional-unicodedata.patch
new file mode 100644 (file)
index 0000000..2d78818
--- /dev/null
@@ -0,0 +1,25 @@
+Add an option to disable unicodedata
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+---
+ configure.in |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2642,6 +2642,12 @@
+            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
+         fi])
++AC_ARG_ENABLE(unicodedata,
++      AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]),
++      [ if test "$enableval" = "no"; then
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata"
++        fi])
++
+ AC_SUBST(TK)
+ AC_ARG_ENABLE(tk,
+       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python/python-110-optional-db.patch b/package/python/python-110-optional-db.patch
new file mode 100644 (file)
index 0000000..ea756da
--- /dev/null
@@ -0,0 +1,80 @@
+Add an option to disable bsddb
+
+bsddb has an external dependency on Berkeley DB. Since we want to be
+able to build Python without it, this patch adds an option to disable
+the build/installation of this Python module.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+ Makefile.pre.in |   10 ++++++++--
+ configure.in    |   22 ++++++++++++++++++++++
+ 2 files changed, 30 insertions(+), 2 deletions(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -938,7 +938,7 @@
+               encodings compiler hotshot \
+               email email/mime \
+               json \
+-              logging bsddb csv importlib wsgiref \
++              logging csv importlib wsgiref \
+               ctypes  ctypes/macholib idlelib idlelib/Icons \
+               distutils distutils/command \
+               multiprocessing multiprocessing/dummy \
+@@ -951,7 +951,6 @@
+       test/tracedmodules \
+       email/test email/test/data \
+       json/tests \
+-      bsddb/test \
+       ctypes/test \
+       distutils/tests \
+       unittest/test
+@@ -991,6 +990,11 @@
+ LIBSUBDIRS += $(XMLLIBSUBDIRS)
+ endif
++ifeq (@BSDDB@,yes)
++LIBSUBDIRS += bsddb
++TESTSUBDIRS += bsddb/test
++endif
++
+ libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+       @for i in $(SCRIPTDIR) $(LIBDEST); \
+       do \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2642,6 +2642,28 @@
+            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
+         fi])
++AC_ARG_ENABLE(dbm,
++      AS_HELP_STRING([--disable-dbm], [disable DBM]),
++      [ if test "$enableval" = "no"; then
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} dbm"
++        fi])
++
++AC_ARG_ENABLE(gdbm,
++      AS_HELP_STRING([--disable-gdbm], [disable GDBM]),
++      [ if test "$enableval" = "no"; then
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} gdbm"
++        fi])
++
++AC_SUBST(BSDDB)
++AC_ARG_ENABLE(bsddb,
++      AS_HELP_STRING([--disable-bsddb], [disable BerkeyleyDB]),
++      [ if test "$enableval" = "no"; then
++           BSDDB=no
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bsddb"
++        else
++           BSDDB=yes
++        fi], [ BSDDB=yes ])
++
+ AC_ARG_ENABLE(unicodedata,
+       AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]),
+       [ if test "$enableval" = "no"; then
diff --git a/package/python/python-111-optional-ssl.patch b/package/python/python-111-optional-ssl.patch
new file mode 100644 (file)
index 0000000..8d4599d
--- /dev/null
@@ -0,0 +1,25 @@
+Add an option to disable the ssl module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+---
+ configure.in |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2642,6 +2642,12 @@
+            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
+         fi])
++AC_ARG_ENABLE(ssl,
++      AS_HELP_STRING([--disable-ssl], [disable SSL]),
++      [ if test "$enableval" = "no"; then
++           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl"
++        fi])
++
+ AC_ARG_ENABLE(dbm,
+       AS_HELP_STRING([--disable-dbm], [disable DBM]),
+       [ if test "$enableval" = "no"; then
diff --git a/package/python/python-112-optional-bzip2.patch b/package/python/python-112-optional-bzip2.patch
new file mode 100644 (file)
index 0000000..ba7dbaa
--- /dev/null
@@ -0,0 +1,24 @@
+Add an option to disable the bz2 module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.in |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2648,6 +2648,12 @@
+            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl"
+         fi])
++AC_ARG_ENABLE(bz2,
++       AS_HELP_STRING([--disable-bz2], [disable BZIP2]),
++       [ if test "$enableval" = "no"; then
++            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2"
++         fi])
++
+ AC_ARG_ENABLE(dbm,
+       AS_HELP_STRING([--disable-dbm], [disable DBM]),
+       [ if test "$enableval" = "no"; then
diff --git a/package/python/python-113-optional-zlib.patch b/package/python/python-113-optional-zlib.patch
new file mode 100644 (file)
index 0000000..19f100b
--- /dev/null
@@ -0,0 +1,24 @@
+Add an option to disable the zlib module
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.in |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2654,6 +2654,12 @@
+             DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2"
+          fi])
++AC_ARG_ENABLE(zlib,
++       AS_HELP_STRING([--disable-zlib], [disable ZLIB]),
++       [ if test "$enableval" = "no"; then
++            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} zlib"
++         fi])
++
+ AC_ARG_ENABLE(dbm,
+       AS_HELP_STRING([--disable-dbm], [disable DBM]),
+       [ if test "$enableval" = "no"; then
diff --git a/package/python/python-2.7-001-support-for-build.patch b/package/python/python-2.7-001-support-for-build.patch
deleted file mode 100644 (file)
index b0430a4..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-Add support in Python build system to specify host tools
-
-Python needs a Python interpreter and a "pgen" program to build
-itself. Unfortunately, the Python build system assumes that it can use
-the interpreter and pgen program it has just built to build
-itself. Obviously, this cannot work in cross-compilation mode since
-the interpreter and the pgen program have been built for the target.
-
-Therefore, this patch adds support in the Python build system for the
-new PYTHON_FOR_BUILD and PGEN_FOR_BUILD variables, so that we can
-point Python ./configure script to the Python interpreter and 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.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile.pre.in |   32 +++++++++++++++++---------------
- configure.in    |   17 +++++++++++++++++
- 2 files changed, 34 insertions(+), 15 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -181,7 +181,8 @@
- UNICODE_OBJS=   @UNICODE_OBJS@
- PYTHON=               python$(EXE)
--BUILDPYTHON=  python$(BUILDEXE)
-+BUILDPYTHON=  ./python$(BUILDEXE)
-+PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
- # The task to run while instrument when building the profile-opt target
- PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
-@@ -213,7 +214,8 @@
- ##########################################################################
- # Parser
--PGEN=         Parser/pgen$(EXE)
-+BUILDPGEN=    Parser/pgen$(EXE)
-+PGEN_FOR_BUILD=@PGEN_FOR_BUILD@
- POBJS=                \
-               Parser/acceler.o \
-@@ -407,8 +409,8 @@
- # Build the shared modules
- sharedmods: $(BUILDPYTHON)
-       @case $$MAKEFLAGS in \
--      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
--      *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
-+      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \
-+      *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-       esac
- # Build static library
-@@ -540,13 +542,13 @@
- # Use a stamp file to prevent make -j invoking pgen twice
- $(GRAMMAR_H) $(GRAMMAR_C): Parser/pgen.stamp
--Parser/pgen.stamp: $(PGEN) $(GRAMMAR_INPUT)
-+Parser/pgen.stamp: $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT)
-               -@$(INSTALL) -d Include
--              $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-+              $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-               -touch Parser/pgen.stamp
--$(PGEN):      $(PGENOBJS)
--              $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
-+$(BUILDPGEN): $(PGENOBJS)
-+              $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(BUILDPGEN)
- Parser/grammar.o:     $(srcdir)/Parser/grammar.c \
-                               $(srcdir)/Include/token.h \
-@@ -926,25 +928,25 @@
-       done
-       $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
-       PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
--              ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-+              $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-               -d $(LIBDEST) -f \
-               -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-               $(DESTDIR)$(LIBDEST)
-       PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+              $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
-               -d $(LIBDEST) -f \
-               -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-               $(DESTDIR)$(LIBDEST)
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
--              ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
-+              $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
-               -d $(LIBDEST)/site-packages -f \
-               -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+              $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
-               -d $(LIBDEST)/site-packages -f \
-               -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
-+              $(PYTHON_FOR_BUILD) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
- # Create the PLATDIR source directory, if one wasn't distributed..
- $(srcdir)/Lib/$(PLATDIR):
-@@ -1049,7 +1051,7 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall: sharedmods
--      $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
-+      $(RUNSHARED) $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \
-               --prefix=$(prefix) \
-               --install-scripts=$(BINDIR) \
-               --install-platlib=$(DESTSHARED) \
-@@ -1188,7 +1190,7 @@
-       find . -name '*.gc??' -exec rm -f {} ';'
- clobber: clean profile-removal
--      -rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
-+      -rm -f $(BUILDPYTHON) $(BUILDPGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
-               tags TAGS Parser/pgen.stamp \
-               config.cache config.log pyconfig.h Modules/config.c
-       -rm -rf build platform
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -4305,6 +4305,23 @@
- done
- AC_MSG_RESULT(done)
-+if test "$cross_compiling" = "yes"; then
-+   AC_MSG_CHECKING(python for build)
-+   PYTHON_FOR_BUILD="${PYTHON_FOR_BUILD}"
-+   AC_MSG_RESULT($PYTHON_FOR_BUILD)
-+   AC_MSG_CHECKING(pgen for build)
-+   PGEN_FOR_BUILD="${PGEN_FOR_BUILD}"
-+   AC_MSG_RESULT($PGEN_FOR_BUILD)
-+else
-+   PYTHON_FOR_BUILD='$(BUILDPYTHON)'
-+   PGEN_FOR_BUILD='$(BUILDPGEN)'
-+fi
-+
-+AC_SUBST(PYTHON_FOR_BUILD)
-+AC_SUBST(PGEN_FOR_BUILD)
-+AC_ARG_VAR(PYTHON_FOR_BUILD,[build system Python])
-+AC_ARG_VAR(PGEN_FOR_BUILD,[build system Python pgen])
-+
- # generate output files
- AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
- AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
diff --git a/package/python/python-2.7-002-cross-compile-variable.patch b/package/python/python-2.7-002-cross-compile-variable.patch
deleted file mode 100644 (file)
index f91ee71..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-Pass a CROSS_COMPILING variable to setup.py
-
-The setup.py script in the Python source code plays a significant role
-in the Python build process. It is responsible for building all the
-modules and extensions, and due to this, does various checks that need
-to be adjusted when we are cross-compiling.
-
-For that reason, this patch makes sure that a CROSS_COMPILING variable
-is passed in the environment of the setup.py script. Later patches in
-the stack make use of this variable.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile.pre.in |    6 +++---
- configure.in    |    3 +++
- 2 files changed, 6 insertions(+), 3 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -409,8 +409,8 @@
- # Build the shared modules
- sharedmods: $(BUILDPYTHON)
-       @case $$MAKEFLAGS in \
--      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \
--      *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-+      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \
-+      *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-       esac
- # Build static library
-@@ -1051,7 +1051,7 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall: sharedmods
--      $(RUNSHARED) $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \
-+      $(RUNSHARED) CROSS_COMPILING=@CROSS_COMPILING@ $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \
-               --prefix=$(prefix) \
-               --install-scripts=$(BINDIR) \
-               --install-platlib=$(DESTSHARED) \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -4322,6 +4322,9 @@
- AC_ARG_VAR(PYTHON_FOR_BUILD,[build system Python])
- AC_ARG_VAR(PGEN_FOR_BUILD,[build system Python pgen])
-+CROSS_COMPILING=$cross_compiling
-+AC_SUBST(CROSS_COMPILING)
-+
- # generate output files
- AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
- AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
diff --git a/package/python/python-2.7-003-no-import-when-cross-compiling.patch b/package/python/python-2.7-003-no-import-when-cross-compiling.patch
deleted file mode 100644 (file)
index 17d6702..0000000
+++ /dev/null
@@ -1,26 +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>
----
- setup.py |    4 ++++
- 1 file changed, 4 insertions(+)
-
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -304,6 +304,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/python/python-2.7-004-no-host-headers-libs.patch b/package/python/python-2.7-004-no-host-headers-libs.patch
deleted file mode 100644 (file)
index c0c528a..0000000
+++ /dev/null
@@ -1,111 +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.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- setup.py |   39 +++++++++++++++++++++------------------
- 1 file changed, 21 insertions(+), 18 deletions(-)
-
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -373,9 +373,10 @@
-     def detect_modules(self):
-         # Ensure that /usr/local is always used
--        add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
--        add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
--        self.add_multiarch_paths()
-+        if os.environ.get('CROSS_COMPILING') != 'yes':
-+            add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-+            add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-+            self.add_multiarch_paths()
-         # Add paths specified in the environment variables LDFLAGS and
-         # CPPFLAGS for header and library files.
-@@ -383,10 +384,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
-@@ -411,17 +409,6 @@
-                     for directory in reversed(options.dirs):
-                         add_dir_to_list(dir_list, directory)
--        if os.path.normpath(sys.prefix) != '/usr' \
--                and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
--            # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
--            # (PYTHONFRAMEWORK is set) to avoid # linking problems when
--            # 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"))
--
-         try:
-             have_unicode = unicode
-         except NameError:
-@@ -430,11 +417,16 @@
-         # 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.
--        lib_dirs = self.compiler.library_dirs + [
--            '/lib64', '/usr/lib64',
--            '/lib', '/usr/lib',
--            ]
--        inc_dirs = self.compiler.include_dirs + ['/usr/include']
-+        lib_dirs = self.compiler.library_dirs
-+        inc_dirs = self.compiler.include_dirs
-+
-+        if os.environ.get('CROSS_COMPILING') != 'yes':
-+            lib_dirs += [
-+                '/lib64', '/usr/lib64',
-+                '/lib', '/usr/lib',
-+                ]
-+            inc_dirs += ['/usr/include']
-+
-         exts = []
-         missing = []
-@@ -867,6 +859,9 @@
-             db_inc_paths.append('/pkg/db-3.%d/include' % x)
-             db_inc_paths.append('/opt/db-3.%d/include' % x)
-+        if os.environ.get('CROSS_COMPILING') == 'yes':
-+            db_inc_paths = []
-+
-         # Add some common subdirectories for Sleepycat DB to the list,
-         # based on the standard include directories. This way DB3/4 gets
-         # picked up when it is installed in a non-standard prefix and
-@@ -1019,6 +1014,9 @@
-         MIN_SQLITE_VERSION = ".".join([str(x)
-                                     for x in MIN_SQLITE_VERSION_NUMBER])
-+        if os.environ.get('CROSS_COMPILING') == 'yes':
-+            sqlite_inc_paths = []
-+
-         # Scan the default include directories before the SQLite specific
-         # ones. This allows one to override the copy of sqlite on OSX,
-         # where /usr/include contains an old version of sqlite.
-@@ -1118,6 +1116,8 @@
-         # the more recent berkeleydb's db.h file first in the include path
-         # when attempting to compile and it will fail.
-         f = "/usr/include/db.h"
-+        if os.environ.get('CROSS_COMPILING') == 'yes':
-+            f = ''
-         if sys.platform == 'darwin':
-             if is_macosx_sdk_path(f):
diff --git a/package/python/python-2.7-005-staging-headers-libs.patch b/package/python/python-2.7-005-staging-headers-libs.patch
deleted file mode 100644 (file)
index cd378f2..0000000
+++ /dev/null
@@ -1,38 +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.
-
-Patch ported to python2.7 by Maxime Ripard <ripard@archos.com>
----
- setup.py |   13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -372,6 +372,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
-         if os.environ.get('CROSS_COMPILING') != 'yes':
-             add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
diff --git a/package/python/python-2.7-006-disable-extensions.patch b/package/python/python-2.7-006-disable-extensions.patch
deleted file mode 100644 (file)
index f62a50f..0000000
+++ /dev/null
@@ -1,102 +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.in by
-adding values to the DISABLED_EXTENSIONS variable (which is a
-word-separated list of extensions).
-
-The implementation works as follow :
-
- * configure.in 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 |    8 +++++---
- configure.in    |    2 ++
- setup.py        |    5 ++++-
- 3 files changed, 11 insertions(+), 4 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -144,6 +144,8 @@
- # configure script arguments
- CONFIG_ARGS=  @CONFIG_ARGS@
-+# disabled extensions
-+DISABLED_EXTENSIONS=  @DISABLED_EXTENSIONS@
- # Subdirectories with code
- SRCDIRS=      @SRCDIRS@
-@@ -409,8 +411,8 @@
- # Build the shared modules
- sharedmods: $(BUILDPYTHON)
-       @case $$MAKEFLAGS in \
--      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \
--      *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-+      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \
-+      *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-       esac
- # Build static library
-@@ -1051,7 +1053,7 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall: sharedmods
--      $(RUNSHARED) CROSS_COMPILING=@CROSS_COMPILING@ $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \
-+      $(RUNSHARED) CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \
-               --prefix=$(prefix) \
-               --install-scripts=$(BINDIR) \
-               --install-platlib=$(DESTSHARED) \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2098,6 +2098,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: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -21,7 +21,10 @@
- COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
- # This global variable is used to hold the list of modules to be disabled.
--disabled_module_list = []
-+try:
-+    disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ")
-+except KeyError:
-+    disabled_module_list = list()
- def add_dir_to_list(dirlist, dir):
-     """Add the directory 'dir' to the list 'dirlist' (at the front) if
diff --git a/package/python/python-2.7-007-do-not-generate-pyo-files.patch b/package/python/python-2.7-007-do-not-generate-pyo-files.patch
deleted file mode 100644 (file)
index 4ae5ef5..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-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -934,20 +934,11 @@
-               -d $(LIBDEST) -f \
-               -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-               $(DESTDIR)$(LIBDEST)
--      PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
--              -d $(LIBDEST) -f \
--              -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
--              $(DESTDIR)$(LIBDEST)
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
-               $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
-               -d $(LIBDEST)/site-packages -f \
-               -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-       -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
--              -d $(LIBDEST)/site-packages -f \
--              -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
--      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-               $(PYTHON_FOR_BUILD) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
- # Create the PLATDIR source directory, if one wasn't distributed..
diff --git a/package/python/python-2.7-008-reread-environment.patch b/package/python/python-2.7-008-reread-environment.patch
deleted file mode 100644 (file)
index 4ca22a4..0000000
+++ /dev/null
@@ -1,65 +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 |    6 +++---
- setup.py        |    3 +++
- 2 files changed, 6 insertions(+), 3 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -411,8 +411,8 @@
- # Build the shared modules
- sharedmods: $(BUILDPYTHON)
-       @case $$MAKEFLAGS in \
--      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \
--      *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-+      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \
-+      *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-       esac
- # Build static library
-@@ -1044,7 +1044,7 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall: sharedmods
--      $(RUNSHARED) CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \
-+      $(RUNSHARED) CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \
-               --prefix=$(prefix) \
-               --install-scripts=$(BINDIR) \
-               --install-platlib=$(DESTSHARED) \
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -20,6 +20,9 @@
- # Were we compiled --with-pydebug or with #define Py_DEBUG?
- COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
-+sysconfig.get_config_vars()
-+sysconfig._CONFIG_VARS.update(os.environ)
-+
- # This global variable is used to hold the list of modules to be disabled.
- try:
-     disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ")
diff --git a/package/python/python-2.7-010-change-pyconfig-h-location.patch b/package/python/python-2.7-010-change-pyconfig-h-location.patch
deleted file mode 100644 (file)
index 9b95ddb..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/python2.7/config, which is fine
-since this location is kept on the target.
-
-However, by default, the pyconfig.h is installed in
-usr/include/python2.7, 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/python2.7/config, 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/python2.7, 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-2.7.2/Lib/distutils/sysconfig.py
-===================================================================
---- Python-2.7.2.orig/Lib/distutils/sysconfig.py
-+++ Python-2.7.2/Lib/distutils/sysconfig.py
-@@ -193,7 +193,8 @@
-         else:
-             inc_dir = 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-2.7.2/Lib/sysconfig.py
-===================================================================
---- Python-2.7.2.orig/Lib/sysconfig.py
-+++ Python-2.7.2/Lib/sysconfig.py
-@@ -356,7 +356,7 @@
-         else:
-             inc_dir = _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')
- def get_scheme_names():
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -972,7 +972,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)
-@@ -1006,6 +1005,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/python/python-2.7-011-no-rpath.patch b/package/python/python-2.7-011-no-rpath.patch
deleted file mode 100644 (file)
index 3422dce..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-Remove runtime library paths
-
-For some extensions (bsddb, 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 |   21 ++++++++++++++++++---
- 1 file changed, 18 insertions(+), 3 deletions(-)
-
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -997,6 +997,12 @@
-                 print "bsddb lib dir:", dblib_dir, " inc dir:", db_incdir
-             db_incs = [db_incdir]
-             dblibs = [dblib]
-+
-+            if os.environ.get('CROSS_COMPILING') == 'yes':
-+                bsddb_runtime_library_dir = None
-+            else:
-+                bsddb_runtime_library_dir = dblib_dir
-+
-             # We add the runtime_library_dirs argument because the
-             # BerkeleyDB lib we're linking against often isn't in the
-             # system dynamic library search path.  This is usually
-@@ -1006,7 +1012,7 @@
-             exts.append(Extension('_bsddb', ['_bsddb.c'],
-                                   depends = ['bsddb.h'],
-                                   library_dirs=dblib_dir,
--                                  runtime_library_dirs=dblib_dir,
-+                                  runtime_library_dirs=bsddb_runtime_library_dir,
-                                   include_dirs=db_incs,
-                                   libraries=dblibs))
-         else:
-@@ -1112,12 +1118,17 @@
-             else:
-                 sqlite_extra_link_args = ()
-+            if os.environ.get('CROSS_COMPILING') == 'yes':
-+                sqlite_runtime_library_dirs = None
-+            else:
-+                sqlite_runtime_library_dirs = sqlite_libdir
-+
-             exts.append(Extension('_sqlite3', sqlite_srcs,
-                                   define_macros=sqlite_defines,
-                                   include_dirs=["Modules/_sqlite",
-                                                 sqlite_incdir],
-                                   library_dirs=sqlite_libdir,
--                                  runtime_library_dirs=sqlite_libdir,
-+                                  runtime_library_dirs=sqlite_runtime_library_dirs,
-                                   extra_link_args=sqlite_extra_link_args,
-                                   libraries=["sqlite3",]))
-         else:
-@@ -1218,9 +1229,13 @@
-                 elif cand == "bdb":
-                     if db_incs is not None:
-                         print "building dbm using bdb"
-+                        if os.environ.get('CROSS_COMPILING') == 'yes':
-+                            db_runtime_library_dir = None
-+                        else:
-+                            db_runtime_library_dir = dblib_dir
-                         dbmext = Extension('dbm', ['dbmmodule.c'],
-                                            library_dirs=dblib_dir,
--                                           runtime_library_dirs=dblib_dir,
-+                                           runtime_library_dirs=db_runtime_library_dir,
-                                            include_dirs=db_incs,
-                                            define_macros=[
-                                                ('HAVE_BERKDB_H', None),
diff --git a/package/python/python-2.7-012-correct-32bit-64bit-check.patch b/package/python/python-2.7-012-correct-32bit-64bit-check.patch
deleted file mode 100644 (file)
index bfccbfd..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-Use correct mechanism to determine 32/64 bits
-
-Python setup.py builds certain extensions (dl and imageop) only on 32
-bits architecture. However, to test whether the architecture is 32
-bits or not, it was looking at the sys.maxint value of the host Python
-interpreter... which might run on a 64 bits architecture even though
-the target is 32 bits, or which might run on a 32 bits architecture
-even though the target is 64 bits.
-
-Therefore, we introduce a is_arch_64_bits() function, which looks at
-the pyconfig.h file generated by ./configure for the value of
-SIZEOF_LONG to determine if the architecture is 32 or 64 bits.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- setup.py |   12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -29,6 +29,14 @@
- except KeyError:
-     disabled_module_list = list()
-+def is_arch_64_bits():
-+    data = open('pyconfig.h').read()
-+    m = re.search(r"#s*define\s+SIZEOF_LONG\s+4\s*", data)
-+    if m is None:
-+        return True
-+    else:
-+        return False
-+
- def add_dir_to_list(dirlist, dir):
-     """Add the directory 'dir' to the list 'dirlist' (at the front) if
-     1) 'dir' is not already in 'dirlist'
-@@ -628,7 +636,7 @@
-         exts.append( Extension('audioop', ['audioop.c']) )
-         # Disabled on 64-bit platforms
--        if sys.maxint != 9223372036854775807L:
-+        if not is_arch_64_bits():
-             # Operations on images
-             exts.append( Extension('imageop', ['imageop.c']) )
-         else:
-@@ -1444,7 +1452,7 @@
-                 missing.append('_codecs_%s' % loc)
-         # Dynamic loading module
--        if sys.maxint == 0x7fffffff:
-+        if not is_arch_64_bits():
-             # This requires sizeof(int) == sizeof(long) == sizeof(char*)
-             dl_inc = find_file('dlfcn.h', [], inc_dirs)
-             if (dl_inc is not None) and (platform not in ['atheos']):
diff --git a/package/python/python-2.7-013-fix-linux-3-compilation.patch b/package/python/python-2.7-013-fix-linux-3-compilation.patch
deleted file mode 100644 (file)
index e834b9f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Index: Python-2.7.2/configure
-===================================================================
---- Python-2.7.2.orig/configure
-+++ Python-2.7.2/configure
-@@ -3007,6 +3007,7 @@
-       darwin*) MACHDEP="darwin";;
-       atheos*) MACHDEP="atheos";;
-         irix646) MACHDEP="irix6";;
-+        linux*) MACHDEP="linux2";;
-       '')     MACHDEP="unknown";;
-       esac
- fi
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -297,6 +297,7 @@
-       darwin*) MACHDEP="darwin";;
-       atheos*) MACHDEP="atheos";;
-         irix646) MACHDEP="irix6";;
-+        linux*) MACHDEP="linux2";;
-       '')     MACHDEP="unknown";;
-       esac
- fi
diff --git a/package/python/python-2.7-014-verbose-module-build.patch b/package/python/python-2.7-014-verbose-module-build.patch
deleted file mode 100644 (file)
index ea81e55..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Enables verbose output when building modules
-
-Patch borrowed from OpenBricks.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -411,7 +411,7 @@
- # Build the shared modules
- sharedmods: $(BUILDPYTHON)
-       @case $$MAKEFLAGS in \
--      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \
-+      *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-       *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \
-       esac
diff --git a/package/python/python-2.7-015-distutils-cross-compilation-support.patch b/package/python/python-2.7-015-distutils-cross-compilation-support.patch
deleted file mode 100644 (file)
index 7fd404e..0000000
+++ /dev/null
@@ -1,125 +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 |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-Index: b/Lib/distutils/sysconfig.py
-===================================================================
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -18,14 +18,38 @@
- from distutils.errors import DistutilsPlatformError
--# These are needed in a couple of spots, so just compute them once.
--PREFIX = os.path.normpath(sys.prefix)
--EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
-+if 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'))
-+    # In the cross-compilation case, we have two cases:
-+    #
-+    #  1/ We're currently cross-compiling Python itself. In this case,
-+    #  EXECUTABLE_DIRNAME should point to the source directory of the
-+    #  target Python, so that the rest of the code, especially the
-+    #  _python_build() function will properly understand that we are
-+    #  building Python itself. In this case, _python_srcdir is
-+    #  defined.
-+    #
-+    #  2/ We're currently cross-compiling third party Python
-+    #  modules. In this case, EXECUTABLE_DIRNAME should point to where
-+    #  the target python executable is installed in the sysroot, so
-+    #  that the proper Makefile is going to be read. In this case,
-+    #  _python_srcdir is not defined.
-+    #
-+    if os.environ.get('_python_srcdir') is not None:
-+        EXECUTABLE_DIRNAME = os.environ.get('_python_srcdir')
-+    else:
-+        EXECUTABLE_DIRNAME = os.path.join(_sysroot, "usr/bin")
-+else:
-+    PREFIX = os.path.normpath(sys.prefix)
-+    EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
-+    EXECUTABLE_DIRNAME = os.path.dirname(os.path.realpath(sys.executable))
- # 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
-@@ -74,7 +98,7 @@
-     if os.name == "posix":
-         if python_build:
--            buildir = os.path.dirname(sys.executable)
-+            buildir = EXECUTABLE_DIRNAME
-             if plat_specific:
-                 # python.h is located in the buildir
-                 inc_dir = buildir
-@@ -245,7 +269,7 @@
- def get_makefile_filename():
-     """Return full pathname of installed Makefile from the Python build."""
-     if python_build:
--        return os.path.join(os.path.dirname(sys.executable), "Makefile")
-+        return os.path.join(EXECUTABLE_DIRNAME, "Makefile")
-     lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
-     return os.path.join(lib_dir, "config", "Makefile")
-@@ -311,6 +335,11 @@
-             # `$$' is a literal `$' in make
-             tmpv = v.replace('$$', '')
-+            # Adjust prefix and exec_prefix when we're cross compiling
-+            if os.environ.get('CROSS_COMPILING') == "yes":
-+                if n == "prefix" or n == "exec_prefix":
-+                    v = _sysroot + v
-+
-             if "$" in tmpv:
-                 notdone[n] = v
-             else:
-Index: b/configure.in
-===================================================================
---- a/configure.in
-+++ b/configure.in
-@@ -4342,6 +4342,20 @@
- CROSS_COMPILING=$cross_compiling
- AC_SUBST(CROSS_COMPILING)
-+#
-+# Cross compiling
-+#
-+# special RUNSHARED
-+if test "$cross_compiling" = "yes"; then
-+    RUNSHARED="\
-+               CROSS_COMPILING=yes \
-+               _python_cross_host=${ac_cv_host} \
-+               _python_srcdir=\"\$(srcdir)\" \
-+               _python_prefix=\"\$(prefix)\" \
-+               _python_exec_prefix=\"\$(exec_prefix)\""
-+fi
-+
-+
- # generate output files
- AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
- AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
-Index: b/Lib/distutils/command/build_ext.py
-===================================================================
---- a/Lib/distutils/command/build_ext.py
-+++ b/Lib/distutils/command/build_ext.py
-@@ -237,7 +237,7 @@
-         if ((sys.platform.startswith('linux') or sys.platform.startswith('gnu')
-              or sys.platform.startswith('sunos'))
-             and 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/python/python-2.7-016-cross-compile-getaddrinfo.patch b/package/python/python-2.7-016-cross-compile-getaddrinfo.patch
deleted file mode 100644 (file)
index dae3005..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Disable buggy_getaddrinfo configure test when cross-compiling with IPv6 support
-
-Signed-off-by: Vanya Sergeev <vsergeev at gmail.com>
-
---- python-2.7.2.orig/configure.in     2012-04-22 06:52:09.361809545 -0400
-+++ python-2.7.2/configure.in  2012-04-22 06:56:37.900634194 -0400
-@@ -3128,7 +3128,7 @@
- AC_MSG_RESULT($ac_cv_buggy_getaddrinfo)
--if test $have_getaddrinfo = no -o "$ac_cv_buggy_getaddrinfo" = yes
-+if test $have_getaddrinfo = no || test "$cross_compiling" != "yes" -a "$ac_cv_buggy_getaddrinfo" = yes
- then
-       if test $ipv6 = yes
-       then
diff --git a/package/python/python-2.7-100-optional-test-modules.patch b/package/python/python-2.7-100-optional-test-modules.patch
deleted file mode 100644 (file)
index a988717..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-Add an option to disable installation of test modules
-
-The Python standard distribution comes with many test modules, that
-are not necessarly useful on embedded targets.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |   40 +++++++++++++++++++++++++++-------------
- configure.in    |    6 ++++++
- 2 files changed, 33 insertions(+), 13 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -856,23 +856,30 @@
-       plat-mac/lib-scriptpackages/SystemEvents \
-       plat-mac/lib-scriptpackages/Terminal 
- PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
--LIBSUBDIRS=   lib-tk lib-tk/test lib-tk/test/test_tkinter \
--              lib-tk/test/test_ttk site-packages test test/data \
--              test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
--              test/tracedmodules \
-+LIBSUBDIRS=   lib-tk  site-packages \
-               encodings compiler hotshot \
--              email email/mime email/test email/test/data \
--              json json/tests \
--              sqlite3 sqlite3/test \
--              logging bsddb bsddb/test csv importlib wsgiref \
--              lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
--              lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
--              ctypes ctypes/test ctypes/macholib idlelib idlelib/Icons \
--              distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
-+              email email/mime \
-+              json \
-+              sqlite3 \
-+              logging bsddb csv importlib wsgiref \
-+              lib2to3 lib2to3/fixes lib2to3/pgen2 \
-+              ctypes  ctypes/macholib idlelib idlelib/Icons \
-+              distutils distutils/command  $(XMLLIBSUBDIRS) \
-               multiprocessing multiprocessing/dummy \
--              unittest unittest/test \
-+              unittest \
-               lib-old \
-               curses pydoc_data $(MACHDEPS)
-+
-+ifeq (@TEST_MODULES@,yes)
-+LIBSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \
-+              lib-tk/test/test_ttk test test/data \
-+              test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
-+              test/tracedmodules email/test email/test/data \
-+              json/tests sqlite3/test bsddb/test lib2to3/tests \
-+              lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
-+              ctypes/test distutils/tests unittest/test
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2408,6 +2408,12 @@
- fi
-+AC_SUBST(TEST_MODULES)
-+
-+AC_ARG_ENABLE(test-modules,
-+      AS_HELP_STRING([--disable-test-modules], [disable test modules]),
-+      [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
-+
- # Check for enable-ipv6
- AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
- AC_MSG_CHECKING([if --enable-ipv6 is specified])
diff --git a/package/python/python-2.7-101-optional-pydoc.patch b/package/python/python-2.7-101-optional-pydoc.patch
deleted file mode 100644 (file)
index ccc937b..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-Add an option to disable pydoc
-
-It removes 0.5 MB of data from the target plus the pydoc script
-itself.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |    6 +++++-
- configure.in    |    5 +++++
- setup.py        |   10 +++++++---
- 3 files changed, 17 insertions(+), 4 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -868,7 +868,7 @@
-               multiprocessing multiprocessing/dummy \
-               unittest \
-               lib-old \
--              curses pydoc_data $(MACHDEPS)
-+              curses $(MACHDEPS)
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \
-@@ -880,6 +880,10 @@
-               ctypes/test distutils/tests unittest/test
- endif
-+ifeq (@PYDOC@,yes)
-+LIBSUBDIRS += pydoc_data
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2407,6 +2407,11 @@
-         esac])
- fi
-+AC_SUBST(PYDOC)
-+
-+AC_ARG_ENABLE(pydoc,
-+      AS_HELP_STRING([--disable-pydoc], [disable pydoc]),
-+      [ PYDOC="${enableval}" ], [ PYDOC=yes ])
- AC_SUBST(TEST_MODULES)
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -2092,6 +2092,12 @@
-     # turn off warnings when deprecated modules are imported
-     import warnings
-     warnings.filterwarnings("ignore",category=DeprecationWarning)
-+
-+    scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3',
-+               'Lib/smtpd.py']
-+    if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
-+        scripts += [ 'Tools/scripts/pydoc' ]
-+
-     setup(# PyPI Metadata (PEP 301)
-           name = "Python",
-           version = sys.version.split()[0],
-@@ -2112,9 +2118,7 @@
-           ext_modules=[Extension('_struct', ['_struct.c'])],
-           # Scripts to install
--          scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle',
--                     'Tools/scripts/2to3',
--                     'Lib/smtpd.py']
-+          scripts = scripts,
-         )
- # --install-platlib
diff --git a/package/python/python-2.7-102-optional-2to3.patch b/package/python/python-2.7-102-optional-2to3.patch
deleted file mode 100644 (file)
index 0321619..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-Add an option to disable lib2to3
-
-lib2to3 is a library to convert Python 2.x code to Python 3.x. As
-such, it is probably not very useful on embedded system targets.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |   24 +++++++++++++++++-------
- configure.in    |    6 ++++++
- setup.py        |    5 +++--
- 3 files changed, 26 insertions(+), 9 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -862,7 +862,6 @@
-               json \
-               sqlite3 \
-               logging bsddb csv importlib wsgiref \
--              lib2to3 lib2to3/fixes lib2to3/pgen2 \
-               ctypes  ctypes/macholib idlelib idlelib/Icons \
-               distutils distutils/command  $(XMLLIBSUBDIRS) \
-               multiprocessing multiprocessing/dummy \
-@@ -875,8 +874,7 @@
-               lib-tk/test/test_ttk test test/data \
-               test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
-               test/tracedmodules email/test email/test/data \
--              json/tests sqlite3/test bsddb/test lib2to3/tests \
--              lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
-+              json/tests sqlite3/test bsddb/test \
-               ctypes/test distutils/tests unittest/test
- endif
-@@ -884,6 +882,16 @@
- 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
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2419,6 +2419,12 @@
-       AS_HELP_STRING([--disable-test-modules], [disable test modules]),
-       [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
-+AC_SUBST(LIB2TO3)
-+
-+AC_ARG_ENABLE(lib2to3,
-+      AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
-+      [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
-+
- # Check for enable-ipv6
- AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
- AC_MSG_CHECKING([if --enable-ipv6 is specified])
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -2093,10 +2093,11 @@
-     import warnings
-     warnings.filterwarnings("ignore",category=DeprecationWarning)
--    scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3',
--               'Lib/smtpd.py']
-+    scripts = ['Tools/scripts/idle', 'Lib/smtpd.py']
-     if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
-         scripts += [ 'Tools/scripts/pydoc' ]
-+    if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"):
-+        scripts += [ 'Tools/scripts/2to3' ]
-     setup(# PyPI Metadata (PEP 301)
-           name = "Python",
diff --git a/package/python/python-2.7-103-optional-sqlite.patch b/package/python/python-2.7-103-optional-sqlite.patch
deleted file mode 100644 (file)
index a915c55..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-Add option to disable the sqlite3 module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |   24 +++++++++++++++++-------
- configure.in |    9 +++++++++
- 2 file changed, 9 insertions(+)
-
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2407,6 +2407,15 @@
-         esac])
- fi
-+AC_SUBST(SQLITE3)
-+AC_ARG_ENABLE(sqlite3,
-+      AS_HELP_STRING([--disable-sqlite3], [disable sqlite3]),
-+      [ SQLITE3="${enableval}" ], [ SQLITE3=yes ])
-+
-+if test "$SQLITE3" = "no" ; then
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
-+fi
-+
- AC_SUBST(PYDOC)
- AC_ARG_ENABLE(pydoc,
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -875,7 +874,7 @@
-               lib-tk/test/test_ttk test test/data \
-               test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
-               test/tracedmodules email/test email/test/data \
--              json/tests sqlite3/test bsddb/test \
-+              json/tests  bsddb/test \
-               ctypes/test distutils/tests unittest/test
- endif
-@@ -884,6 +882,13 @@
- LIBSUBDIRS += pydoc_data
- endif
-+ifeq (@SQLITE3@,yes)
-+LIBSUBDIRS += sqlite3
-+ifeq (@TEST_MODULES@,yes)
-+LIBSUBDIRS += sqlite3/test
-+endif
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
diff --git a/package/python/python-2.7-104-optional-tk.patch b/package/python/python-2.7-104-optional-tk.patch
deleted file mode 100644 (file)
index 9333e33..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-Add an option to disable the tk module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |   14 ++++++++++----
- configure.in    |    9 +++++++++
- 2 files changed, 19 insertions(+), 4 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -856,7 +856,7 @@
-       plat-mac/lib-scriptpackages/SystemEvents \
-       plat-mac/lib-scriptpackages/Terminal 
- PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
--LIBSUBDIRS=   lib-tk  site-packages \
-+LIBSUBDIRS=   site-packages \
-               encodings compiler hotshot \
-               email email/mime \
-               json \
-@@ -870,8 +870,7 @@
-               curses $(MACHDEPS)
- ifeq (@TEST_MODULES@,yes)
--LIBSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \
--              lib-tk/test/test_ttk test test/data \
-+LIBSUBDIRS +=   test test/data \
-               test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
-               test/tracedmodules email/test email/test/data \
-               json/tests sqlite3/test bsddb/test \
-@@ -899,6 +898,14 @@
- endif
- endif
-+ifeq (@TK@,yes)
-+LIBSUBDIRS += lib-tk
-+ifeq (@TEST_MODULES@,yes)
-+LIBSUBDIRS += lib-tk/test lib-tk/test/test_tkinter    \
-+            lib-tk/test/test_ttk
-+endif
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2416,6 +2416,15 @@
-    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
- fi
-+AC_SUBST(TK)
-+AC_ARG_ENABLE(tk,
-+      AS_HELP_STRING([--disable-tk], [disable tk]),
-+      [ TK="${enableval}" ], [ TK=yes ])
-+
-+if test "$TK" = "no"; then
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
-+fi
-+
- AC_SUBST(PYDOC)
- AC_ARG_ENABLE(pydoc,
diff --git a/package/python/python-2.7-105-optional-curses.patch b/package/python/python-2.7-105-optional-curses.patch
deleted file mode 100644 (file)
index 7f8da7c..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-Add an option to disable the curses module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |    6 +++++-
- configure.in    |    9 +++++++++
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -867,7 +867,7 @@
-               multiprocessing multiprocessing/dummy \
-               unittest \
-               lib-old \
--              curses $(MACHDEPS)
-+              $(MACHDEPS)
- ifeq (@TEST_MODULES@,yes)
- LIBSUBDIRS +=   test test/data \
-@@ -906,6 +906,10 @@
- endif
- endif
-+ifeq (@CURSES@,yes)
-+LIBSUBDIRS += curses
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2425,6 +2425,15 @@
-    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter"
- fi
-+AC_SUBST(CURSES)
-+AC_ARG_ENABLE(curses,
-+      AS_HELP_STRING([--disable-curses], [disable curses]),
-+      [ CURSES="${enableval}" ], [ CURSES=yes ])
-+
-+if test "$CURSES" = "no"; then
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _curses _curses_panel"
-+fi
-+
- AC_SUBST(PYDOC)
- AC_ARG_ENABLE(pydoc,
diff --git a/package/python/python-2.7-106-optional-expat.patch b/package/python/python-2.7-106-optional-expat.patch
deleted file mode 100644 (file)
index 2d8ae74..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-Add an option to disable expat
-
-This patch replaces the existing --with-system-expat option with a
---with-expat={system,builtin,none} option, which allows to tell Python
-whether we want to use the system expat (already installed), the expat
-builtin the Python sources, or no expat at all (which disables the
-installation of XML modules).
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |    6 +++++-
- configure.in    |   18 +++++++++++++-----
- setup.py        |    2 +-
- 3 files changed, 19 insertions(+), 7 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -863,7 +863,7 @@
-               sqlite3 \
-               logging bsddb csv importlib wsgiref \
-               ctypes  ctypes/macholib idlelib idlelib/Icons \
--              distutils distutils/command  $(XMLLIBSUBDIRS) \
-+              distutils distutils/command \
-               multiprocessing multiprocessing/dummy \
-               unittest \
-               lib-old \
-@@ -910,6 +910,10 @@
- LIBSUBDIRS += curses
- endif
-+ifeq (@EXPAT@,yes)
-+LIBSUBDIRS += $(XMLLIBSUBDIRS)
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2102,13 +2102,21 @@
- AC_SUBST(DISABLED_EXTENSIONS)
- # Check for use of the system expat library
--AC_MSG_CHECKING(for --with-system-expat)
--AC_ARG_WITH(system_expat,
--            AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library]),
-+AC_MSG_CHECKING(for --with-expat)
-+AC_ARG_WITH(expat,
-+            AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]),
-             [],
--            [with_system_expat="no"])
-+            [with_expat="builtin"])
--AC_MSG_RESULT($with_system_expat)
-+AC_MSG_RESULT($with_expat)
-+
-+if test "$with_expat" != "none"; then
-+   EXPAT=yes
-+else
-+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat"
-+   EXPAT=no
-+fi
-+AC_SUBST(EXPAT)
- # Check for use of the system libffi library
- AC_MSG_CHECKING(for --with-system-ffi)
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py
-+++ Python-2.7.2/setup.py
-@@ -1403,7 +1403,7 @@
-         #
-         # More information on Expat can be found at www.libexpat.org.
-         #
--        if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
-+        if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"):
-             expat_inc = []
-             define_macros = []
-             expat_lib = ['expat']
diff --git a/package/python/python-2.7-107-optional-codecs-cjk.patch b/package/python/python-2.7-107-optional-codecs-cjk.patch
deleted file mode 100644 (file)
index 8ba61fe..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Add an option to disable CJK codecs
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- configure.in |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2424,6 +2424,12 @@
-    DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3"
- fi
-+AC_ARG_ENABLE(codecs-cjk,
-+      AS_HELP_STRING([--disable-codecs-cjk], [disable CJK codecs]),
-+      [ if test "$enableval" = "no"; then
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk"
-+        fi])
-+
- AC_SUBST(TK)
- AC_ARG_ENABLE(tk,
-       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python/python-2.7-108-optional-nis.patch b/package/python/python-2.7-108-optional-nis.patch
deleted file mode 100644 (file)
index 212f8d6..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-Add an option to disable NIS
-
-NIS is not necessarily available in uClibc, so we need an option to
-not compile support for it.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- configure.in |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2430,6 +2430,12 @@
-            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk"
-         fi])
-+AC_ARG_ENABLE(nis,
-+      AS_HELP_STRING([--disable-nis], [disable NIS]),
-+      [ if test "$enableval" = "no"; then
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
-+        fi])
-+
- AC_SUBST(TK)
- AC_ARG_ENABLE(tk,
-       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python/python-2.7-109-optional-unicodedata.patch b/package/python/python-2.7-109-optional-unicodedata.patch
deleted file mode 100644 (file)
index 229ba8c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Add an option to disable unicodedata
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- configure.in |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2436,6 +2436,12 @@
-            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
-         fi])
-+AC_ARG_ENABLE(unicodedata,
-+      AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]),
-+      [ if test "$enableval" = "no"; then
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} unicodedata"
-+        fi])
-+
- AC_SUBST(TK)
- AC_ARG_ENABLE(tk,
-       AS_HELP_STRING([--disable-tk], [disable tk]),
diff --git a/package/python/python-2.7-110-optional-db.patch b/package/python/python-2.7-110-optional-db.patch
deleted file mode 100644 (file)
index b32eea9..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-Add an option to disable bsddb
-
-bsddb has an external dependency on Berkeley DB. Since we want to be
-able to build Python without it, this patch adds an option to disable
-the build/installation of this Python module.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
- Makefile.pre.in |   10 ++++++++--
- configure.in    |   22 ++++++++++++++++++++++
- 2 files changed, 30 insertions(+), 2 deletions(-)
-
-Index: Python-2.7.2/Makefile.pre.in
-===================================================================
---- Python-2.7.2.orig/Makefile.pre.in
-+++ Python-2.7.2/Makefile.pre.in
-@@ -861,7 +861,7 @@
-               email email/mime \
-               json \
-               sqlite3 \
--              logging bsddb csv importlib wsgiref \
-+              logging csv importlib wsgiref \
-               ctypes  ctypes/macholib idlelib idlelib/Icons \
-               distutils distutils/command \
-               multiprocessing multiprocessing/dummy \
-@@ -873,7 +873,7 @@
- LIBSUBDIRS +=   test test/data \
-               test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
-               test/tracedmodules email/test email/test/data \
--              json/tests  bsddb/test \
-+              json/tests \
-               ctypes/test distutils/tests unittest/test
- endif
-@@ -914,6 +914,13 @@
- LIBSUBDIRS += $(XMLLIBSUBDIRS)
- endif
-+ifeq (@BSDDB@,yes)
-+LIBSUBDIRS += bsddb
-+ifeq (@TEST_MODULES@,yes)
-+LIBSUBDIRS += bsddb/test
-+endif
-+endif
-+
- libinstall:   build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-       @for i in $(SCRIPTDIR) $(LIBDEST); \
-       do \
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2436,6 +2436,28 @@
-            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
-         fi])
-+AC_ARG_ENABLE(dbm,
-+      AS_HELP_STRING([--disable-dbm], [disable DBM]),
-+      [ if test "$enableval" = "no"; then
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} dbm"
-+        fi])
-+
-+AC_ARG_ENABLE(gdbm,
-+      AS_HELP_STRING([--disable-gdbm], [disable GDBM]),
-+      [ if test "$enableval" = "no"; then
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} gdbm"
-+        fi])
-+
-+AC_SUBST(BSDDB)
-+AC_ARG_ENABLE(bsddb,
-+      AS_HELP_STRING([--disable-bsddb], [disable BerkeyleyDB]),
-+      [ if test "$enableval" = "no"; then
-+           BSDDB=no
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bsddb"
-+        else
-+           BSDDB=yes
-+        fi], [ BSDDB=yes ])
-+
- AC_ARG_ENABLE(unicodedata,
-       AS_HELP_STRING([--disable-unicodedata], [disable unicodedata]),
-       [ if test "$enableval" = "no"; then
diff --git a/package/python/python-2.7-111-optional-ssl.patch b/package/python/python-2.7-111-optional-ssl.patch
deleted file mode 100644 (file)
index 5885b4e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Add an option to disable the ssl module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- configure.in |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2436,6 +2436,12 @@
-            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis"
-         fi])
-+AC_ARG_ENABLE(ssl,
-+      AS_HELP_STRING([--disable-ssl], [disable SSL]),
-+      [ if test "$enableval" = "no"; then
-+           DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl"
-+        fi])
-+
- AC_ARG_ENABLE(dbm,
-       AS_HELP_STRING([--disable-dbm], [disable DBM]),
-       [ if test "$enableval" = "no"; then
diff --git a/package/python/python-2.7-112-optional-bzip2.patch b/package/python/python-2.7-112-optional-bzip2.patch
deleted file mode 100644 (file)
index 83a2479..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Add an option to disable the bz2 module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- configure.in |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2442,6 +2442,12 @@
-            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} ssl"
-         fi])
-+AC_ARG_ENABLE(bz2,
-+       AS_HELP_STRING([--disable-bz2], [disable BZIP2]),
-+       [ if test "$enableval" = "no"; then
-+            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2"
-+         fi])
-+
- AC_ARG_ENABLE(dbm,
-       AS_HELP_STRING([--disable-dbm], [disable DBM]),
-       [ if test "$enableval" = "no"; then
diff --git a/package/python/python-2.7-113-optional-zlib.patch b/package/python/python-2.7-113-optional-zlib.patch
deleted file mode 100644 (file)
index f24eb17..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Add an option to disable the zlib module
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- configure.in |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: Python-2.7.2/configure.in
-===================================================================
---- Python-2.7.2.orig/configure.in
-+++ Python-2.7.2/configure.in
-@@ -2448,6 +2448,12 @@
-             DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} bz2"
-          fi])
-+AC_ARG_ENABLE(zlib,
-+       AS_HELP_STRING([--disable-zlib], [disable ZLIB]),
-+       [ if test "$enableval" = "no"; then
-+            DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} zlib"
-+         fi])
-+
- AC_ARG_ENABLE(dbm,
-       AS_HELP_STRING([--disable-dbm], [disable DBM]),
-       [ if test "$enableval" = "no"; then
index f2e48c4e5d8af7c721d956e1326f4ceac157a972..0469820a68faec037d1408d44590fb19dfcc2a5a 100644 (file)
@@ -5,16 +5,15 @@
 ################################################################################
 
 PYTHON_VERSION_MAJOR = 2.7
-PYTHON_VERSION       = $(PYTHON_VERSION_MAJOR).3
+PYTHON_VERSION       = $(PYTHON_VERSION_MAJOR).6
 PYTHON_SOURCE        = Python-$(PYTHON_VERSION).tar.xz
 PYTHON_SITE          = http://python.org/ftp/python/$(PYTHON_VERSION)
 PYTHON_LICENSE       = Python software foundation license v2, others
 PYTHON_LICENSE_FILES = LICENSE
 
-# Python needs itself and a "pgen" program to build itself, both being
-# provided in the Python sources. So in order to cross-compile Python,
-# we need to build a host Python first. This host Python is also
-# installed in $(HOST_DIR), as it is needed when cross-compiling
+# Python needs itself to be built, so in order to cross-compile
+# Python, we need to build a host Python first. This host Python is
+# also installed in $(HOST_DIR), as it is needed when cross-compiling
 # third-party Python modules.
 
 HOST_PYTHON_CONF_OPT +=        \
@@ -32,12 +31,8 @@ HOST_PYTHON_CONF_OPT +=      \
        --disable-bsddb         \
        --disable-test-modules  \
        --disable-bz2           \
-       --disable-ssl
-
-HOST_PYTHON_MAKE_ENV = \
-       PYTHON_MODULES_INCLUDE=$(HOST_DIR)/usr/include \
-       PYTHON_MODULES_LIB="$(HOST_DIR)/lib $(HOST_DIR)/usr/lib"
-
+       --disable-ssl           \
+       --disable-pyo-build
 
 # Building host python in parallel sometimes triggers a "Bus error"
 # during the execution of "./python setup.py build" in the
@@ -51,12 +46,6 @@ PYTHON_DEPENDENCIES  = host-python libffi
 
 HOST_PYTHON_DEPENDENCIES = host-expat host-zlib
 
-define HOST_PYTHON_INSTALL_PGEN
-       $(INSTALL) -m0755 -D $(@D)/Parser/pgen $(HOST_DIR)/usr/bin/python-pgen
-endef
-
-HOST_PYTHON_POST_INSTALL_HOOKS += HOST_PYTHON_INSTALL_PGEN
-
 PYTHON_INSTALL_STAGING = YES
 
 ifeq ($(BR2_PACKAGE_PYTHON_READLINE),y)
@@ -124,14 +113,9 @@ PYTHON_DEPENDENCIES += openssl
 endif
 
 PYTHON_CONF_ENV += \
-       PYTHON_FOR_BUILD=$(HOST_DIR)/usr/bin/python \
-       PGEN_FOR_BUILD=$(HOST_DIR)/usr/bin/python-pgen \
-       ac_cv_have_long_long_format=yes
-
-PYTHON_MAKE_ENV += \
-       _python_sysroot=$(STAGING_DIR) \
-       PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/usr/include \
-       PYTHON_MODULES_LIB="$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib"
+       ac_cv_have_long_long_format=yes \
+       ac_cv_file__dev_ptmx=yes \
+       ac_cv_file__dev_ptc=yes
 
 PYTHON_CONF_OPT += \
        --without-cxx-main      \
@@ -143,7 +127,18 @@ PYTHON_CONF_OPT += \
        --disable-gdbm          \
        --disable-tk            \
        --disable-nis           \
-       --disable-dbm
+       --disable-dbm           \
+       --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 PYTHON_TOUCH_GRAMMAR_FILES
+       touch $(@D)/Include/graminit.h $(@D)/Python/graminit.c
+endef
+
+PYTHON_POST_PATCH_HOOKS += PYTHON_TOUCH_GRAMMAR_FILES
 
 #
 # Remove useless files. In the config/ directory, only the Makefile
@@ -168,7 +163,7 @@ PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_REMOVE_USELESS_FILES
 PYTHON_AUTORECONF = YES
 
 # Provided to other packages
-PYTHON_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/
+PYTHON_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/sysconfigdata/:$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/
 
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))