summaryrefslogtreecommitdiff
path: root/lang/python
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2015-03-06 15:29:30 +0100
committerSteven Barth <steven@midlink.org>2015-03-06 15:29:30 +0100
commit66331c6de2f8e2e56db4c25e0910896afd6f6b18 (patch)
tree65dec08a9e7b696f0dd32e5075156c9698e44445 /lang/python
parent05dbcba3d7e31dc606d484fd454404ae7d81595a (diff)
parentbb87de33dd85bf49f87606c58098013ae66e536b (diff)
Merge pull request #992 from commodo/python-patch-updates
python: patch updates
Diffstat (limited to 'lang/python')
-rw-r--r--lang/python/files/python-package.mk3
-rw-r--r--lang/python/patches/001-enable-zlib.patch (renamed from lang/python/patches/110-enable-zlib.patch)0
-rw-r--r--lang/python/patches/002-do-not-add-include-dirs-when-cross-compiling.patch (renamed from lang/python/patches/120-do-not-add-include-dirs-when-cross-compiling.patch)0
-rw-r--r--lang/python/patches/003-do-not-compile-tests-at-build.patch (renamed from lang/python/patches/130-do-not-compile-tests-at-build.patch)0
-rw-r--r--lang/python/patches/004-do-not-write-bytes-codes.patch (renamed from lang/python/patches/140-do-not-write-bytes-codes.patch)0
-rw-r--r--lang/python/patches/005-fix-libffi-x86-64-configure.patch (renamed from lang/python/patches/150-fix-libffi-x86-64-configure.patch)0
-rw-r--r--lang/python/patches/006-remove-debian-multiarch-support.patch (renamed from lang/python/patches/160-remove-debian-multiarch-support.patch)0
-rw-r--r--lang/python/patches/007-distutils-do-not-adjust-path.patch (renamed from lang/python/patches/170-distutils-do-not-adjust-path.patch)0
-rw-r--r--lang/python/patches/008-distutils-use-python-sysroot.patch54
9 files changed, 57 insertions, 0 deletions
diff --git a/lang/python/files/python-package.mk b/lang/python/files/python-package.mk
index ba692ccf2..6936a0748 100644
--- a/lang/python/files/python-package.mk
+++ b/lang/python/files/python-package.mk
@@ -25,6 +25,9 @@ define HostPython
( export PYTHONPATH="$(PYTHONPATH)"; \
export PYTHONOPTIMIZE=""; \
export PYTHONDONTWRITEBYTECODE=1; \
+ export _python_sysroot="$(STAGING_DIR)"; \
+ export _python_prefix="/usr"; \
+ export _python_exec_prefix="/usr"; \
$(1) \
$(HOST_PYTHON_BIN) $(2); \
)
diff --git a/lang/python/patches/110-enable-zlib.patch b/lang/python/patches/001-enable-zlib.patch
index 780831e86..780831e86 100644
--- a/lang/python/patches/110-enable-zlib.patch
+++ b/lang/python/patches/001-enable-zlib.patch
diff --git a/lang/python/patches/120-do-not-add-include-dirs-when-cross-compiling.patch b/lang/python/patches/002-do-not-add-include-dirs-when-cross-compiling.patch
index fb2fe8a77..fb2fe8a77 100644
--- a/lang/python/patches/120-do-not-add-include-dirs-when-cross-compiling.patch
+++ b/lang/python/patches/002-do-not-add-include-dirs-when-cross-compiling.patch
diff --git a/lang/python/patches/130-do-not-compile-tests-at-build.patch b/lang/python/patches/003-do-not-compile-tests-at-build.patch
index a6774e174..a6774e174 100644
--- a/lang/python/patches/130-do-not-compile-tests-at-build.patch
+++ b/lang/python/patches/003-do-not-compile-tests-at-build.patch
diff --git a/lang/python/patches/140-do-not-write-bytes-codes.patch b/lang/python/patches/004-do-not-write-bytes-codes.patch
index f67e7dcad..f67e7dcad 100644
--- a/lang/python/patches/140-do-not-write-bytes-codes.patch
+++ b/lang/python/patches/004-do-not-write-bytes-codes.patch
diff --git a/lang/python/patches/150-fix-libffi-x86-64-configure.patch b/lang/python/patches/005-fix-libffi-x86-64-configure.patch
index ea062a350..ea062a350 100644
--- a/lang/python/patches/150-fix-libffi-x86-64-configure.patch
+++ b/lang/python/patches/005-fix-libffi-x86-64-configure.patch
diff --git a/lang/python/patches/160-remove-debian-multiarch-support.patch b/lang/python/patches/006-remove-debian-multiarch-support.patch
index 52d52b94e..52d52b94e 100644
--- a/lang/python/patches/160-remove-debian-multiarch-support.patch
+++ b/lang/python/patches/006-remove-debian-multiarch-support.patch
diff --git a/lang/python/patches/170-distutils-do-not-adjust-path.patch b/lang/python/patches/007-distutils-do-not-adjust-path.patch
index 49fe92629..49fe92629 100644
--- a/lang/python/patches/170-distutils-do-not-adjust-path.patch
+++ b/lang/python/patches/007-distutils-do-not-adjust-path.patch
diff --git a/lang/python/patches/008-distutils-use-python-sysroot.patch b/lang/python/patches/008-distutils-use-python-sysroot.patch
new file mode 100644
index 000000000..7cd748761
--- /dev/null
+++ b/lang/python/patches/008-distutils-use-python-sysroot.patch
@@ -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('.')