summaryrefslogtreecommitdiffstats
path: root/package/python3/python3-007-disable-extensions.patch
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-02-18 21:40:01 +0100
committerPeter Korsgaard <peter@korsgaard.com>2014-02-18 23:22:18 +0100
commit0d327c267a57e3a75b10becde772addb7fc49297 (patch)
tree31a2ffa5ec6c7b3d002fa156d81321b3c1f867cf /package/python3/python3-007-disable-extensions.patch
parent249778541b68c10156c6687e14888f6047556922 (diff)
downloadbuildroot-0d327c267a57e3a75b10becde772addb7fc49297.tar.gz
buildroot-0d327c267a57e3a75b10becde772addb7fc49297.zip
python3: bump to 3.4.0rc1
This commit bumps the Python3 package to use Python 3.4.0rc1. About the patches: * The patches below 100 are significantly changed, because like for Python 2.x, a good number of improvements have been made in the upstream Python for cross-compilation. Therefore, almost all of these patches have been modified. * All the patches above 100 are simply updated for Python 3.4.0, with a small refactoring for the handling of test modules. The details of the python3.mk changes are: * --without-ensurepip to tell Python to not use PIP at build time. * Many environment variables are no longer passed, they were specific to our cross-compilation patches * The fixup of the LIBDIR in the Python Makefile is no longer needed since Python has switched to _sysconfigdata.py for distutils configuration instead of parsing the Makefile. * A new post patch hooks touches the two files generated by pgen to make sure they are newer than the pgen sources, which ensures pgen is not built/executed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/python3/python3-007-disable-extensions.patch')
-rw-r--r--package/python3/python3-007-disable-extensions.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/package/python3/python3-007-disable-extensions.patch b/package/python3/python3-007-disable-extensions.patch
new file mode 100644
index 0000000000..462fed4ce8
--- /dev/null
+++ b/package/python3/python3-007-disable-extensions.patch
@@ -0,0 +1,100 @@
+Add infrastructure to disable the build of certain extensions
+
+Some of the extensions part of the Python core have dependencies on
+external libraries (sqlite, tk, etc.) or are relatively big and not
+necessarly always useful (CJK codecs for example). By extensions, we
+mean part of Python modules that are written in C and therefore
+compiled to binary code.
+
+Therefore, we introduce a small infrastructure that allows to disable
+some of those extensions. This can be done inside the configure.ac by
+adding values to the DISABLED_EXTENSIONS variable (which is a
+word-separated list of extensions).
+
+The implementation works as follow :
+
+ * configure.ac defines a DISABLED_EXTENSIONS variable, which is
+ substituted (so that when Makefile.pre is generated from
+ Makefile.pre.in, the value of the variable is substituted). For
+ now, this DISABLED_EXTENSIONS variable is empty, later patches will
+ use it.
+
+ * Makefile.pre.in passes the DISABLED_EXTENSIONS value down to the
+ variables passed in the environment when calling the setup.py
+ script that actually builds and installs those extensions.
+
+ * setup.py is modified so that the existing "disabled_module_list" is
+ filled with those pre-disabled extensions listed in
+ DISABLED_EXTENSIONS.
+
+Patch ported to python2.7 by Maxime Ripard <ripard@archos.com>, and
+then extended by Thomas Petazzoni
+<thomas.petazzoni@free-electrons.com>.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile.pre.in | 4 ++++
+ configure.ac | 2 ++
+ setup.py | 5 ++++-
+ 3 files changed, 10 insertions(+), 1 deletion(-)
+
+Index: b/Makefile.pre.in
+===================================================================
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -175,6 +175,8 @@
+ # configure script arguments
+ CONFIG_ARGS= @CONFIG_ARGS@
+
++# disabled extensions
++DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@
+
+ # Subdirectories with code
+ SRCDIRS= @SRCDIRS@
+@@ -561,6 +563,7 @@
+ esac; \
+ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
+ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
++ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
+
+ # Build static library
+@@ -1371,7 +1374,8 @@
+ # Install the dynamically loadable modules
+ # This goes into $(exec_prefix)
+ sharedinstall: sharedmods
+- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
++ $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
++ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
+ --prefix=$(prefix) \
+ --install-scripts=$(BINDIR) \
+ --install-platlib=$(DESTSHARED) \
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2360,6 +2360,8 @@
+
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+
++AC_SUBST(DISABLED_EXTENSIONS)
++
+ # Check for use of the system expat library
+ AC_MSG_CHECKING(for --with-system-expat)
+ AC_ARG_WITH(system_expat,
+Index: b/setup.py
+===================================================================
+--- a/setup.py
++++ b/setup.py
+@@ -33,7 +33,10 @@
+ COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS"))
+
+ # This global variable is used to hold the list of modules to be disabled.
+-disabled_module_list = []
++try:
++ disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ")
++except KeyError:
++ disabled_module_list = list()
+
+ def add_dir_to_list(dirlist, dir):
+ """Add the directory 'dir' to the list 'dirlist' (after any relative
OpenPOWER on IntegriCloud