# --- T2-COPYRIGHT-BEGIN --- # t2/package/*/python/fix-system-libdir.patch # Copyright (C) 2023 - 2025 The T2 SDE Project # SPDX-License-Identifier: GPL-2.0 or patched project license # --- T2-COPYRIGHT-END --- Fixes python to always respect sys.platlibdir as supplied with ./configure --with-platlibdir=lib64 for example. - NoTag --- Python-3.13.5/Lib/sysconfig/__init__.py.vanilla 2025-06-25 00:05:38.070140700 +0200 +++ Python-3.13.5/Lib/sysconfig/__init__.py 2025-06-25 00:07:04.268861853 +0200 @@ -29,7 +29,7 @@ 'posix_prefix': { 'stdlib' '{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}', 'platstdlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}', - 'purelib': '{base}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages', + 'purelib': '{base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages', 'platlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages', 'include': '{installed_base}/include/{implementation_lower}{py_version_short}{abiflags}', @@ -39,10 +39,10 @@ 'data': '{base}', }, 'posix_home': { - 'stdlib': '{installed_base}/lib/{implementation_lower}', - 'platstdlib': '{base}/lib/{implementation_lower}', - 'purelib': '{base}/lib/{implementation_lower}', - 'platlib': '{base}/lib/{implementation_lower}', + 'stdlib': '{installed_base}/{platlibdir}/{implementation_lower}', + 'platstdlib': '{base}/{platlibdir}/{implementation_lower}', + 'purelib': '{base}/{platlibdir}/{implementation_lower}', + 'platlib': '{base}/{platlibdir}/{implementation_lower}', 'include': '{installed_base}/include/{implementation_lower}', 'platinclude': '{installed_base}/include/{implementation_lower}', 'scripts': '{base}/bin', @@ -51,8 +51,8 @@ 'nt': { 'stdlib': '{installed_base}/Lib', 'platstdlib': '{base}/Lib', - 'purelib': '{base}/Lib/site-packages', - 'platlib': '{base}/Lib/site-packages', + 'purelib': '{base}{platlibdir}site-packages', + 'platlib': '{base}{platlibdir}site-packages', 'include': '{installed_base}/Include', 'platinclude': '{installed_base}/Include', 'scripts': '{base}/Scripts', @@ -79,7 +79,7 @@ 'posix_venv': { 'stdlib': '{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}', 'platstdlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}', - 'purelib': '{base}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages', + 'purelib': '{base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages', 'platlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages', 'include': '{installed_base}/include/{implementation_lower}{py_version_short}{abiflags}', @@ -91,8 +91,8 @@ 'nt_venv': { 'stdlib': '{installed_base}/Lib', 'platstdlib': '{base}/Lib', - 'purelib': '{base}/Lib/site-packages', - 'platlib': '{base}/Lib/site-packages', + 'purelib': '{base}{platlibdir}site-packages', + 'platlib': '{base}{platlibdir}site-packages', 'include': '{installed_base}/Include', 'platinclude': '{installed_base}/Include', 'scripts': '{base}/Scripts', @@ -150,17 +150,17 @@ 'posix_user': { 'stdlib': '{userbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}', 'platstdlib': '{userbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}', - 'purelib': '{userbase}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages', - 'platlib': '{userbase}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages', + 'purelib': '{userbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages', + 'platlib': '{userbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages', 'include': '{userbase}/include/{implementation_lower}{py_version_short}{abi_thread}', 'scripts': '{userbase}/bin', 'data': '{userbase}', }, 'osx_framework_user': { - 'stdlib': '{userbase}/lib/{implementation_lower}', - 'platstdlib': '{userbase}/lib/{implementation_lower}', - 'purelib': '{userbase}/lib/{implementation_lower}/site-packages', - 'platlib': '{userbase}/lib/{implementation_lower}/site-packages', + 'stdlib': '{userbase}/{platlibdir}/{implementation_lower}', + 'platstdlib': '{userbase}/{platlibdir}/{implementation_lower}', + 'purelib': '{userbase}/{platlibdir}/{implementation_lower}/site-packages', + 'platlib': '{userbase}/{platlibdir}/{implementation_lower}/site-packages', 'include': '{userbase}/include/{implementation_lower}{py_version_short}', 'scripts': '{userbase}/bin', 'data': '{userbase}', --- Python-3.13.5/Lib/site.py.vanilla 2025-06-24 23:58:23.660133334 +0200 +++ Python-3.13.5/Lib/site.py 2025-06-25 00:01:36.966013373 +0200 @@ -325,9 +325,9 @@ return f'{userbase}\\{implementation}{ver_nodot}\\site-packages' if sys.platform == 'darwin' and sys._framework: - return f'{userbase}/lib/{implementation_lower}/site-packages' + return f'{userbase}/' + sys.platlibdir + '/{implementation_lower}/site-packages' - return f'{userbase}/lib/python{version[0]}.{version[1]}{abi_thread}/site-packages' + return f'{userbase}/' + sys.platlibdir + '/python{version[0]}.{version[1]}{abi_thread}/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: