blob: 597a620144b74bd2bbdec5cab8add497d5fcbfb8 [file] [log] [blame]
This is like python-2.7.10-cross-distutils.patch, but we update the sysconfig
module instead of the distutils.sysconfig module. Python ships two different
modules with strong overlap in functionality.
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -7,10 +7,10 @@ from os.path import pardir, realpath
_INSTALL_SCHEMES = {
'posix_prefix': {
- 'stdlib': '{base}/@@GENTOO_LIBDIR@@/python{py_version_short}',
- 'platstdlib': '{platbase}/@@GENTOO_LIBDIR@@/python{py_version_short}',
- 'purelib': '{base}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages',
+ 'stdlib': '{base}/{libdirname}/python{py_version_short}',
+ 'platstdlib': '{platbase}/{libdirname}/python{py_version_short}',
+ 'purelib': '{base}/{libdirname}/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/{libdirname}/python{py_version_short}/site-packages',
'include': '{base}/include/python{py_version_short}',
'platinclude': '{platbase}/include/python{py_version_short}',
'scripts': '{base}/bin',
@@ -65,10 +65,10 @@ _INSTALL_SCHEMES = {
'data' : '{userbase}',
},
'posix_user': {
- 'stdlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}',
- 'platstdlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}',
- 'purelib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages',
- 'platlib': '{userbase}/@@GENTOO_LIBDIR@@/python{py_version_short}/site-packages',
+ 'stdlib': '{userbase}/{libdirname}/python{py_version_short}',
+ 'platstdlib': '{userbase}/{libdirname}/python{py_version_short}',
+ 'purelib': '{userbase}/{libdirname}/python{py_version_short}/site-packages',
+ 'platlib': '{userbase}/{libdirname}/python{py_version_short}/site-packages',
'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin',
'data' : '{userbase}',
@@ -358,7 +358,16 @@ def _generate_posix_vars():
def _init_posix(vars):
"""Initialize the module as appropriate for POSIX systems."""
# _sysconfigdata is generated at build time, see _generate_posix_vars()
- from _sysconfigdata import build_time_vars
+ if '_PYTHON_PROJECT_BASE' not in os.environ and os.getenv('SYSROOT'):
+ lib_dir = get_path('platstdlib')
+ sysconfig_path = os.path.join(lib_dir, '_sysconfigdata.py')
+ import imp
+ if not os.path.exists(sysconfig_path):
+ _, sysconfig_path, _ = imp.find_module('_sysconfigdata')
+ sysconfig_module = imp.load_source('_sysconfigdata', sysconfig_path)
+ build_time_vars = sysconfig_module.build_time_vars
+ else:
+ from _sysconfigdata import build_time_vars
vars.update(build_time_vars)
def _init_non_posix(vars):
@@ -471,7 +480,16 @@ def get_config_vars(*args):
_CONFIG_VARS['base'] = _PREFIX
_CONFIG_VARS['platbase'] = _EXEC_PREFIX
_CONFIG_VARS['projectbase'] = _PROJECT_BASE
+ _CONFIG_VARS['srcdir'] = _PROJECT_BASE
+ libdir = None
+ if '_PYTHON_PROJECT_BASE' not in os.environ and os.getenv('SYSROOT'):
+ abi = os.getenv('ABI')
+ libdir = os.getenv('LIBDIR_%s' % abi)
+ if not libdir:
+ libdir = '@@GENTOO_LIBDIR@@'
+ _CONFIG_VARS['libdirname'] = libdir
+
if os.name in ('nt', 'os2'):
_init_non_posix(_CONFIG_VARS)
if os.name == 'posix':
@@ -495,9 +513,6 @@
# the init-function.
_CONFIG_VARS['userbase'] = _getuserbase()
- if 'srcdir' not in _CONFIG_VARS:
- _CONFIG_VARS['srcdir'] = _PROJECT_BASE
-
# Convert srcdir into an absolute path if it appears necessary.
# Normally it is relative to the build directory. However, during
# testing, for example, we might be running a non-installed python