forked from LibreELEC/LibreELEC.tv
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request LibreELEC#4833 from OpenELEC/Python-fixes
Python fixes
- Loading branch information
Showing
10 changed files
with
341 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
54 changes: 54 additions & 0 deletions
54
packages/lang/Python/patches/Python-2.7.11-008-distutils-use-python-sysroot.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <[email protected]> | ||
|
||
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('.') |
Oops, something went wrong.