Matej Cepl
9921186373
- Security - gh-115398: Allow controlling Expat >=2.6.0 reparse deferral (CVE-2023-52425) by adding five new methods: xml.etree.ElementTree.XMLParser.flush() xml.etree.ElementTree.XMLPullParser.flush() xml.parsers.expat.xmlparser.GetReparseDeferralEnabled() xml.parsers.expat.xmlparser.SetReparseDeferralEnabled() xml.sax.expatreader.ExpatParser.flush() - gh-115399: Update bundled libexpat to 2.6.0 - gh-113659: Skip .pth files with names starting with a dot or hidden file attribute. - Core and Builtins - gh-102388: Fix a bug where iso2022_jp_3 and iso2022_jp_2004 codecs read out of bounds - Library - gh-115197: urllib.request no longer resolves the hostname before checking it against the system’s proxy bypass list on macOS and Windows. - gh-115133: Fix tests for XMLPullParser with Expat 2.6.0. - gh-81194: Fix a crash in socket.if_indextoname() with specific value (UINT_MAX). Fix an integer overflow in socket.if_indextoname() on 64-bit non-Windows platforms. - gh-109858: Protect zipfile from “quoted-overlap” zipbomb. It now raises BadZipFile when try to read an entry that overlaps with other entry or central directory. - gh-107077: Seems that in some conditions, OpenSSL will return SSL_ERROR_SYSCALL instead of SSL_ERROR_SSL when a certification verification has failed, but the error parameters will still contain ERR_LIB_SSL OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python38?expand=0&rev=149
237 lines
9.9 KiB
Diff
237 lines
9.9 KiB
Diff
From 81904771db8b112c8617a111e989b68e55af7a9c Mon Sep 17 00:00:00 2001
|
|
From: David Malcolm <dmalcolm@redhat.com>
|
|
Date: Wed, 13 Jan 2010 21:25:18 +0000
|
|
Subject: [PATCH] 00102: Change the various install paths to use /usr/lib64/
|
|
instead or /usr/lib/
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Only used when "%{_lib}" == "lib64".
|
|
|
|
Co-authored-by: David Malcolm <dmalcolm@redhat.com>
|
|
Co-authored-by: Thomas Spura <tomspur@fedoraproject.org>
|
|
Co-authored-by: Slavek Kabrda <bkabrda@redhat.com>
|
|
Co-authored-by: Matej Stuchlik <mstuchli@redhat.com>
|
|
Co-authored-by: Tomas Orsava <torsava@redhat.com>
|
|
Co-authored-by: Charalampos Stratakis <cstratak@redhat.com>
|
|
Co-authored-by: Petr Viktorin <pviktori@redhat.com>
|
|
Co-authored-by: Miro Hrončok <miro@hroncok.cz>
|
|
Co-authored-by: Iryna Shcherbina <shcherbina.iryna@gmail.com>
|
|
---
|
|
Lib/distutils/command/install.py | 4 ++--
|
|
Lib/distutils/sysconfig.py | 6 +++++-
|
|
Lib/distutils/tests/test_install.py | 3 ++-
|
|
Lib/site.py | 4 ++++
|
|
Lib/sysconfig.py | 12 ++++++------
|
|
Lib/test/test_site.py | 4 ++--
|
|
Makefile.pre.in | 2 +-
|
|
Modules/getpath.c | 6 +++---
|
|
configure | 4 ++--
|
|
configure.ac | 4 ++--
|
|
setup.py | 6 +++---
|
|
11 files changed, 32 insertions(+), 23 deletions(-)
|
|
|
|
--- a/Lib/distutils/command/install.py
|
|
+++ b/Lib/distutils/command/install.py
|
|
@@ -30,14 +30,14 @@ WINDOWS_SCHEME = {
|
|
INSTALL_SCHEMES = {
|
|
'unix_prefix': {
|
|
'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',
|
|
'scripts': '$base/bin',
|
|
'data' : '$base',
|
|
},
|
|
'unix_home': {
|
|
'purelib': '$base/lib/python',
|
|
- 'platlib': '$base/lib/python',
|
|
+ 'platlib': '$base/lib64/python',
|
|
'headers': '$base/include/python/$dist_name',
|
|
'scripts': '$base/bin',
|
|
'data' : '$base',
|
|
--- a/Lib/distutils/sysconfig.py
|
|
+++ b/Lib/distutils/sysconfig.py
|
|
@@ -146,8 +146,12 @@ def get_python_lib(plat_specific=0, stan
|
|
prefix = plat_specific and EXEC_PREFIX or PREFIX
|
|
|
|
if os.name == "posix":
|
|
+ if plat_specific or standard_lib:
|
|
+ lib = "lib64"
|
|
+ else:
|
|
+ lib = "lib"
|
|
libpython = os.path.join(prefix,
|
|
- "lib", "python" + get_python_version())
|
|
+ lib, "python" + get_python_version())
|
|
if standard_lib:
|
|
return libpython
|
|
else:
|
|
--- a/Lib/distutils/tests/test_install.py
|
|
+++ b/Lib/distutils/tests/test_install.py
|
|
@@ -57,8 +57,9 @@ class InstallTestCase(support.TempdirMan
|
|
self.assertEqual(got, expected)
|
|
|
|
libdir = os.path.join(destination, "lib", "python")
|
|
+ platlibdir = os.path.join(destination, "lib", "python")
|
|
check_path(cmd.install_lib, libdir)
|
|
- check_path(cmd.install_platlib, libdir)
|
|
+ check_path(cmd.install_platlib, platlibdir)
|
|
check_path(cmd.install_purelib, libdir)
|
|
check_path(cmd.install_headers,
|
|
os.path.join(destination, "include", "python", "foopkg"))
|
|
--- a/Lib/site.py
|
|
+++ b/Lib/site.py
|
|
@@ -344,11 +344,15 @@ def getsitepackages(prefixes=None):
|
|
seen.add(prefix)
|
|
|
|
if os.sep == '/':
|
|
+ sitepackages.append(os.path.join(prefix, "lib64",
|
|
+ "python" + sys.version[:3],
|
|
+ "site-packages"))
|
|
sitepackages.append(os.path.join(prefix, "lib",
|
|
"python%d.%d" % sys.version_info[:2],
|
|
"site-packages"))
|
|
else:
|
|
sitepackages.append(prefix)
|
|
+ sitepackages.append(os.path.join(prefix, "lib64", "site-packages"))
|
|
sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
|
|
return sitepackages
|
|
|
|
--- a/Lib/sysconfig.py
|
|
+++ b/Lib/sysconfig.py
|
|
@@ -25,10 +25,10 @@ _ALWAYS_STR = {
|
|
|
|
_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',
|
|
- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
|
|
+ 'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
|
|
'include':
|
|
'{installed_base}/include/python{py_version_short}{abiflags}',
|
|
'platinclude':
|
|
@@ -67,10 +67,10 @@ _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',
|
|
- '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}',
|
|
'scripts': '{userbase}/bin',
|
|
'data': '{userbase}',
|
|
--- a/Lib/test/test_site.py
|
|
+++ b/Lib/test/test_site.py
|
|
@@ -307,8 +307,8 @@ class HelperFunctionsTests(unittest.Test
|
|
dirs = site.getsitepackages()
|
|
if os.sep == '/':
|
|
# OS X, Linux, FreeBSD, etc
|
|
- self.assertEqual(len(dirs), 1)
|
|
- wanted = os.path.join('xoxo', 'lib',
|
|
+ self.assertEqual(len(dirs), 2)
|
|
+ wanted = os.path.join('xoxo', 'lib64',
|
|
'python%d.%d' % sys.version_info[:2],
|
|
'site-packages')
|
|
self.assertEqual(dirs[0], wanted)
|
|
--- a/Makefile.pre.in
|
|
+++ b/Makefile.pre.in
|
|
@@ -143,7 +143,7 @@ LIBDIR= @libdir@
|
|
MANDIR= @mandir@
|
|
INCLUDEDIR= @includedir@
|
|
CONFINCLUDEDIR= $(exec_prefix)/include
|
|
-SCRIPTDIR= $(prefix)/lib
|
|
+SCRIPTDIR= $(prefix)/lib64
|
|
ABIFLAGS= @ABIFLAGS@
|
|
|
|
# Detailed destination directories
|
|
--- a/Modules/getpath.c
|
|
+++ b/Modules/getpath.c
|
|
@@ -730,7 +730,7 @@ calculate_exec_prefix(PyCalculatePath *c
|
|
if (safe_wcscpy(exec_prefix, calculate->exec_prefix, exec_prefix_len) < 0) {
|
|
return PATHLEN_ERR();
|
|
}
|
|
- status = joinpath(exec_prefix, L"lib/lib-dynload", exec_prefix_len);
|
|
+ status = joinpath(exec_prefix, L"lib64/lib-dynload", exec_prefix_len);
|
|
if (_PyStatus_EXCEPTION(status)) {
|
|
return status;
|
|
}
|
|
@@ -1063,7 +1063,7 @@ calculate_zip_path(PyCalculatePath *calc
|
|
return PATHLEN_ERR();
|
|
}
|
|
}
|
|
- status = joinpath(zip_path, L"lib/python00.zip", zip_path_len);
|
|
+ status = joinpath(zip_path, L"lib64/python00.zip", zip_path_len);
|
|
if (_PyStatus_EXCEPTION(status)) {
|
|
return status;
|
|
}
|
|
@@ -1193,7 +1193,7 @@ calculate_init(PyCalculatePath *calculat
|
|
if (!calculate->exec_prefix) {
|
|
return DECODE_LOCALE_ERR("EXEC_PREFIX define", len);
|
|
}
|
|
- calculate->lib_python = Py_DecodeLocale("lib/python" VERSION, &len);
|
|
+ calculate->lib_python = Py_DecodeLocale("lib64/python" VERSION, &len);
|
|
if (!calculate->lib_python) {
|
|
return DECODE_LOCALE_ERR("EXEC_PREFIX define", len);
|
|
}
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -15276,9 +15276,9 @@ fi
|
|
|
|
|
|
if test x$PLATFORM_TRIPLET = x; then
|
|
- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
|
|
+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}"
|
|
else
|
|
- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
|
|
+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
|
|
fi
|
|
|
|
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -4722,9 +4722,9 @@ fi
|
|
dnl define LIBPL after ABIFLAGS and LDVERSION is defined.
|
|
AC_SUBST(PY_ENABLE_SHARED)
|
|
if test x$PLATFORM_TRIPLET = x; then
|
|
- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
|
|
+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}"
|
|
else
|
|
- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
|
|
+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
|
|
fi
|
|
AC_SUBST(LIBPL)
|
|
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -634,7 +634,7 @@ class PyBuildExt(build_ext):
|
|
# directories (i.e. '.' and 'Include') must be first. See issue
|
|
# 10520.
|
|
if not CROSS_COMPILING:
|
|
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
|
+ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64')
|
|
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:
|
|
@@ -938,11 +938,11 @@ class PyBuildExt(build_ext):
|
|
elif curses_library:
|
|
readline_libs.append(curses_library)
|
|
elif self.compiler.find_library_file(self.lib_dirs +
|
|
- ['/usr/lib/termcap'],
|
|
+ ['/usr/lib64/termcap'],
|
|
'termcap'):
|
|
readline_libs.append('termcap')
|
|
self.add(Extension('readline', ['readline.c'],
|
|
- library_dirs=['/usr/lib/termcap'],
|
|
+ library_dirs=['/usr/lib64/termcap'],
|
|
extra_link_args=readline_extra_link_args,
|
|
libraries=readline_libs))
|
|
else:
|