# --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: package/*/python/fix-system-libdir.patch # Copyright (C) 2023 The T2 SDE Project # # This Copyright note is generated by scripts/Create-CopyPatch, # more information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License version 2 as used by the T2 SDE. # --- T2-COPYRIGHT-NOTE-END --- Fixes python to always respect sys.platlibdir as supplied with ./configure --with-platlibdir=lib64 for example. - NoTag --- Python-3.11.4/Lib/sysconfig.py.vanilla 2023-09-05 23:15:11.583154351 +0200 +++ Python-3.11.4/Lib/sysconfig.py 2023-09-05 23:22:28.587151742 +0200 @@ -27,7 +27,7 @@ 'posix_prefix': { 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}', 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}', - 'purelib': '{base}/lib/python{py_version_short}/site-packages', + 'purelib': '{base}/{platlibdir}/python{py_version_short}/site-packages', 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', 'include': '{installed_base}/include/python{py_version_short}{abiflags}', @@ -37,10 +37,10 @@ 'data': '{base}', }, 'posix_home': { - 'stdlib': '{installed_base}/lib/python', - 'platstdlib': '{base}/lib/python', - 'purelib': '{base}/lib/python', - 'platlib': '{base}/lib/python', + 'stdlib': '{installed_base}/{platlibdir}/python', + 'platstdlib': '{base}/{platlibdir}/python', + 'purelib': '{base}/{platlibdir}/python', + 'platlib': '{base}/{platlibdir}/python', 'include': '{installed_base}/include/python', 'platinclude': '{installed_base}/include/python', 'scripts': '{base}/bin', @@ -76,7 +76,7 @@ 'posix_venv': { 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}', 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}', - 'purelib': '{base}/lib/python{py_version_short}/site-packages', + 'purelib': '{base}/{platlibdir}/python{py_version_short}/site-packages', 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', 'include': '{installed_base}/include/python{py_version_short}{abiflags}', @@ -145,17 +145,17 @@ 'posix_user': { 'stdlib': '{userbase}/{platlibdir}/python{py_version_short}', 'platstdlib': '{userbase}/{platlibdir}/python{py_version_short}', - 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', - 'platlib': '{userbase}/lib/python{py_version_short}/site-packages', + 'purelib': '{userbase}/{platlibdir}/python{py_version_short}/site-packages', + 'platlib': '{userbase}/{platlibdir}/python{py_version_short}/site-packages', 'include': '{userbase}/include/python{py_version_short}', 'scripts': '{userbase}/bin', 'data': '{userbase}', }, 'osx_framework_user': { - 'stdlib': '{userbase}/lib/python', - 'platstdlib': '{userbase}/lib/python', - 'purelib': '{userbase}/lib/python/site-packages', - 'platlib': '{userbase}/lib/python/site-packages', + 'stdlib': '{userbase}/{platlibdir}/python', + 'platstdlib': '{userbase}/{platlibdir}/python', + 'purelib': '{userbase}/{platlibdir}/python/site-packages', + 'platlib': '{userbase}/{platlibdir}/python/site-packages', 'include': '{userbase}/include/python{py_version_short}', 'scripts': '{userbase}/bin', 'data': '{userbase}', @@ -508,6 +508,7 @@ module.build_time_vars = vars sys.modules[name] = module + # relevant? pybuilddir = f'build/lib.{get_platform()}-{_PY_VERSION_SHORT}' if hasattr(sys, "gettotalrefcount"): pybuilddir += '-pydebug' --- Python-3.11.4/Lib/site.py.vanilla 2023-09-05 23:04:24.444158216 +0200 +++ Python-3.11.4/Lib/site.py 2023-09-05 23:38:59.586145824 +0200 @@ -293,9 +293,9 @@ return f'{userbase}\\Python{ver_nodot}\\site-packages' if sys.platform == 'darwin' and sys._framework: - return f'{userbase}/lib/python/site-packages' + return f'{userbase}/' + sys.platlibdir + '/python/site-packages' - return f'{userbase}/lib/python{version[0]}.{version[1]}/site-packages' + return f'{userbase}/' + sys.platlibdir + '/python{version[0]}.{version[1]}/site-packages' def getuserbase(): @@ -363,7 +363,10 @@ if os.sep == '/': libdirs = [sys.platlibdir] - if sys.platlibdir != "lib": + # Only use /lib when lib64, lib32 or else are not defined, + # preventing to install anything in lib the something else + # is already set. + if len(libdirs) == 0 or libdirs[0] == None: libdirs.append("lib") for libdir in libdirs: