Change installation paths to platform-python

This commit is contained in:
Charalampos Stratakis 2017-07-31 15:26:31 +02:00 committed by Petr Viktorin
parent 3ead622043
commit c4081e9371
4 changed files with 87 additions and 51 deletions

View File

@ -1,14 +1,17 @@
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
index 9474e9c..c0ce4c6 100644
index 8e41290..25d6963 100644
--- a/Lib/distutils/command/install.py
+++ b/Lib/distutils/command/install.py
@@ -30,14 +30,14 @@ WINDOWS_SCHEME = {
@@ -29,15 +29,15 @@ WINDOWS_SCHEME = {
INSTALL_SCHEMES = {
'unix_prefix': {
'purelib': '$base/lib/python$py_version_short/site-packages',
- 'purelib': '$base/lib/python$py_version_short/site-packages',
- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
+ 'platlib': '$platbase/lib64/python$py_version_short/site-packages',
'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
- 'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
+ 'purelib': '$base/lib/platform-python/site-packages',
+ 'platlib': '$platbase/lib64/platform-python/site-packages',
+ 'headers': '$base/include/platform-python$abiflags/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
},
@ -19,11 +22,20 @@ index 9474e9c..c0ce4c6 100644
'headers': '$base/include/python/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
@@ -59,7 +59,7 @@ if HAS_USER_SITE:
'purelib': '$usersite',
'platlib': '$usersite',
'headers':
- '$userbase/include/python$py_version_short$abiflags/$dist_name',
+ '$userbase/include/platform-python$abiflags/$dist_name',
'scripts': '$userbase/bin',
'data' : '$userbase',
}
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index 026cca7..6d3e077 100644
index 5c2670f..721be70 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -132,8 +132,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
@@ -129,8 +129,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
prefix = plat_specific and EXEC_PREFIX or PREFIX
if os.name == "posix":
@ -33,23 +45,24 @@ index 026cca7..6d3e077 100644
+ lib = "lib"
libpython = os.path.join(prefix,
- "lib", "python" + get_python_version())
+ lib, "python" + get_python_version())
+ lib, "platform-python")
if standard_lib:
return libpython
else:
diff --git a/Lib/site.py b/Lib/site.py
index a84e3bb..ba0d3ea 100644
index 386d2ad..91a2b7f 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -303,11 +303,15 @@ def getsitepackages(prefixes=None):
@@ -304,11 +304,15 @@ def getsitepackages(prefixes=None):
seen.add(prefix)
if os.sep == '/':
+ sitepackages.append(os.path.join(prefix, "lib64",
+ "python" + sys.version[:3],
+ "platform-python",
+ "site-packages"))
sitepackages.append(os.path.join(prefix, "lib",
"python%d.%d" % sys.version_info[:2],
- "python%d.%d" % sys.version_info[:2],
+ "platform-python",
"site-packages"))
else:
sitepackages.append(prefix)
@ -58,57 +71,69 @@ index a84e3bb..ba0d3ea 100644
if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
index b9bbfe5..2a5f29c 100644
index d35b5eb..af9a664 100644
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -20,10 +20,10 @@ __all__ = [
@@ -20,14 +20,14 @@ __all__ = [
_INSTALL_SCHEMES = {
'posix_prefix': {
- 'stdlib': '{installed_base}/lib/python{py_version_short}',
- 'platstdlib': '{platbase}/lib/python{py_version_short}',
+ 'stdlib': '{installed_base}/lib64/python{py_version_short}',
+ 'platstdlib': '{platbase}/lib64/python{py_version_short}',
'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
+ 'stdlib': '{installed_base}/lib64/platform-python',
+ 'platstdlib': '{platbase}/lib64/platform-python',
+ 'purelib': '{base}/lib/platform-python/site-packages',
+ 'platlib': '{platbase}/lib64/platform-python/site-packages',
'include':
'{installed_base}/include/python{py_version_short}{abiflags}',
- '{installed_base}/include/python{py_version_short}{abiflags}',
+ '{installed_base}/include/platform-python{abiflags}',
'platinclude':
@@ -61,10 +61,10 @@ _INSTALL_SCHEMES = {
- '{installed_platbase}/include/python{py_version_short}{abiflags}',
+ '{installed_platbase}/include/platform-python{abiflags}',
'scripts': '{base}/bin',
'data': '{base}',
},
@@ -61,11 +61,11 @@ _INSTALL_SCHEMES = {
'data': '{userbase}',
},
'posix_user': {
- 'stdlib': '{userbase}/lib/python{py_version_short}',
- 'platstdlib': '{userbase}/lib/python{py_version_short}',
+ 'stdlib': '{userbase}/lib64/python{py_version_short}',
+ 'platstdlib': '{userbase}/lib64/python{py_version_short}',
'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
- 'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
+ 'platlib': '{userbase}/lib64/python{py_version_short}/site-packages',
'include': '{userbase}/include/python{py_version_short}',
- 'include': '{userbase}/include/python{py_version_short}',
+ 'stdlib': '{userbase}/lib64/platform-python',
+ 'platstdlib': '{userbase}/lib64/platform-python',
+ 'purelib': '{userbase}/lib/platform-python/site-packages',
+ 'platlib': '{userbase}/lib64/platform-python/site-packages',
+ 'include': '{userbase}/include/platform-python',
'scripts': '{userbase}/bin',
'data': '{userbase}',
},
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
index f698927..bc977b5 100644
index 4029617..9c98c06 100644
--- a/Lib/test/test_site.py
+++ b/Lib/test/test_site.py
@@ -248,8 +248,8 @@ class HelperFunctionsTests(unittest.TestCase):
@@ -260,9 +260,9 @@ class HelperFunctionsTests(unittest.TestCase):
self.assertEqual(dirs[1], wanted)
elif os.sep == '/':
# OS X non-framwework builds, Linux, FreeBSD, etc
- self.assertEqual(len(dirs), 1)
- wanted = os.path.join('xoxo', 'lib',
- 'python%d.%d' % sys.version_info[:2],
+ self.assertEqual(len(dirs), 2)
+ wanted = os.path.join('xoxo', 'lib64',
'python%d.%d' % sys.version_info[:2],
+ 'platform-python',
'site-packages')
self.assertEqual(dirs[0], wanted)
else:
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 8fa7934..a693917 100644
index e61fd55..e7414de 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -126,7 +126,7 @@ LIBDIR= @libdir@
@@ -133,14 +133,14 @@ LIBDIR= @libdir@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
@ -117,8 +142,19 @@ index 8fa7934..a693917 100644
ABIFLAGS= @ABIFLAGS@
# Detailed destination directories
-BINLIBDEST= $(LIBDIR)/python$(VERSION)
-LIBDEST= $(SCRIPTDIR)/python$(VERSION)
-INCLUDEPY= $(INCLUDEDIR)/python$(LDVERSION)
-CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(LDVERSION)
+BINLIBDEST= $(LIBDIR)/platform-python
+LIBDEST= $(SCRIPTDIR)/platform-python
+INCLUDEPY= $(INCLUDEDIR)/platform-python$(LDVERSION)
+CONFINCLUDEPY= $(CONFINCLUDEDIR)/platform-python$(LDVERSION)
# Symbols used for using shared libraries
SHLIB_SUFFIX= @SHLIB_SUFFIX@
diff --git a/Modules/getpath.c b/Modules/getpath.c
index 65b47a3..eaa756c 100644
index 0f91643..c4055be 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -494,7 +494,7 @@ calculate_path(void)
@ -126,7 +162,7 @@ index 65b47a3..eaa756c 100644
_prefix = Py_DecodeLocale(PREFIX, NULL);
_exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
- lib_python = Py_DecodeLocale("lib/python" VERSION, NULL);
+ lib_python = Py_DecodeLocale("lib64/python" VERSION, NULL);
+ lib_python = Py_DecodeLocale("lib64/platform-python", NULL);
if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
Py_FatalError(
@ -149,10 +185,10 @@ index 65b47a3..eaa756c 100644
/* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
diff --git a/setup.py b/setup.py
index 0f2dfc4..da37896 100644
index fe47797..3e5018a 100644
--- a/setup.py
+++ b/setup.py
@@ -492,7 +492,7 @@ class PyBuildExt(build_ext):
@@ -491,7 +491,7 @@ class PyBuildExt(build_ext):
# directories (i.e. '.' and 'Include') must be first. See issue
# 10520.
if not cross_compiling:
@ -161,7 +197,7 @@ index 0f2dfc4..da37896 100644
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
# only change this for cross builds for 3.3, issues on Mageia
if cross_compiling:
@@ -780,11 +780,11 @@ class PyBuildExt(build_ext):
@@ -783,11 +783,11 @@ class PyBuildExt(build_ext):
elif curses_library:
readline_libs.append(curses_library)
elif self.compiler.find_library_file(lib_dirs +
@ -175,7 +211,7 @@ index 0f2dfc4..da37896 100644
extra_link_args=readline_extra_link_args,
libraries=readline_libs) )
else:
@@ -821,8 +821,8 @@ class PyBuildExt(build_ext):
@@ -824,8 +824,8 @@ class PyBuildExt(build_ext):
if krb5_h:
ssl_incs += krb5_h
ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,

View File

@ -4,7 +4,7 @@
self.assertEqual(got, expected)
libdir = os.path.join(destination, "lib", "python")
+ platlibdir = os.path.join(destination, "lib64", "python")
+ platlibdir = os.path.join(destination, "lib64", "platform-python")
check_path(cmd.install_lib, libdir)
- check_path(cmd.install_platlib, libdir)
+ check_path(cmd.install_platlib, platlibdir)

View File

@ -41,7 +41,7 @@
# pybasever without the dot:
%global pyshortver 36
%global pylibdir %{_libdir}/python%{pybasever}
%global pylibdir %{_libdir}/%{name}
%global dynload_dir %{pylibdir}/lib-dynload
# SOABI is defined in the upstream configure.in from Python-3.2a2 onwards,
@ -206,7 +206,7 @@ Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
# to enable specfiles to selectively byte-compile individual files and paths
# with different Python runtimes as necessary:
Source3: macros.pybytecompile%{pybasever}
Source3: macros.pybytecompile-%{name}
# Systemtap tapset to make it easier to use the systemtap static probes
# (actually a template; LIBRARY_PATH will get fixed up during install)
@ -919,7 +919,7 @@ cp -ar Tools/demo %{buildroot}%{pylibdir}/Tools/
rm -f %{buildroot}%{pylibdir}/email/test/data/audiotest.au %{buildroot}%{pylibdir}/test/audiotest.au
%if "%{_lib}" == "lib64"
install -d -m 0755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
install -d -m 0755 %{buildroot}/%{_prefix}/lib/%{name}/site-packages/__pycache__
%endif
# Make python3-devel multilib-ready (bug #192747, #139911)
@ -946,7 +946,7 @@ install -d -m 0755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages/
%global PyIncludeDirs python%{LDVERSION_optimized} python%{LDVERSION_debug}
%else
%global PyIncludeDirs python%{LDVERSION_optimized}
%global PyIncludeDirs platform-python%{LDVERSION_optimized}
%endif
for PyIncludeDir in %{PyIncludeDirs} ; do
@ -1030,7 +1030,7 @@ iconv -f iso8859-1 -t utf-8 %{buildroot}/%{pylibdir}/Demo/rpc/README > README.co
# compile *.pyc
find %{buildroot} -type f -a -name "*.py" -print0 | \
LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
PYTHONPATH="%{buildroot}%{_libdir}/%{name} %{buildroot}%{_libdir}/%{name}/site-packages" \
xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=opt) for opt in range(3) for f in sys.argv[1:]]' || :
# Fixup permissions for shared libraries from non-standard 555 to standard 755:
@ -1138,7 +1138,7 @@ cp %{buildroot}%{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/platform
# first of all, check timestamps of bytecode files
find %{buildroot} -type f -a -name "*.py" -print0 | \
LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
PYTHONPATH="%{buildroot}%{_libdir}/%{name} %{buildroot}%{_libdir}/%{name}/site-packages" \
xargs -0 %{buildroot}%{_bindir}/python%{pybasever} %{SOURCE8}
# For ppc64 we need a larger stack than default (rhbz#1292462)
@ -1381,9 +1381,9 @@ fi
%{pylibdir}/xml
%if "%{_lib}" == "lib64"
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
%attr(0755,root,root) %dir %{_prefix}/lib/%{name}
%attr(0755,root,root) %dir %{_prefix}/lib/%{name}/site-packages
%attr(0755,root,root) %dir %{_prefix}/lib/%{name}/site-packages/__pycache__/
%endif
# "Makefile" and the config-32/64.h file are needed by
@ -1391,8 +1391,8 @@ fi
# package, along with their parent directories (bug 531901):
%dir %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/
%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
%dir %{_includedir}/python%{LDVERSION_optimized}/
%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%dir %{_includedir}/platform-python%{LDVERSION_optimized}/
%{_includedir}/platform-python%{LDVERSION_optimized}/%{_pyconfig_h}
%{_libdir}/%{py_INSTSONAME_optimized}
%{_libdir}/libpython3.so
@ -1472,8 +1472,8 @@ fi
%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/*
%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
%{pylibdir}/distutils/command/wininst-*.exe
%{_includedir}/python%{LDVERSION_optimized}/*.h
%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%{_includedir}/platform-python%{LDVERSION_optimized}/*.h
%exclude %{_includedir}/platform-python%{LDVERSION_optimized}/%{_pyconfig_h}
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
%{_bindir}/python3-config
%{_bindir}/python%{pybasever}-config
@ -1483,7 +1483,7 @@ fi
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
%{_libdir}/pkgconfig/python-%{pybasever}.pc
%{_libdir}/pkgconfig/python3.pc
%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
%{_rpmconfigdir}/macros.d/macros.pybytecompile-%{name}
%{_rpmconfigdir}/macros.d/macros.platformpython
%files tools