From 6941540017b0db8f28d9a6ce6a626db793692c85 Mon Sep 17 00:00:00 2001 From: liuxiaoping Date: Fri, 23 Jun 2023 17:28:15 +0800 Subject: [PATCH 1/3] update to python2-2.7.18-13.module+el8.8.0+19042+06909d2c.1 --- ...service-via-inefficient-idna-decoder.patch | 20 +++ 00399-cve-2023-24329.patch | 127 ++++++++++++++++++ 10000-python2-anolis-rebrand.patch | 63 --------- python2.spec | 39 +++--- 4 files changed, 170 insertions(+), 79 deletions(-) create mode 100644 00399-cve-2023-24329.patch delete mode 100644 10000-python2-anolis-rebrand.patch diff --git a/00394-cve-2022-45061-cpu-denial-of-service-via-inefficient-idna-decoder.patch b/00394-cve-2022-45061-cpu-denial-of-service-via-inefficient-idna-decoder.patch index 0b6a602..dbcdc03 100644 --- a/00394-cve-2022-45061-cpu-denial-of-service-via-inefficient-idna-decoder.patch +++ b/00394-cve-2022-45061-cpu-denial-of-service-via-inefficient-idna-decoder.patch @@ -96,3 +96,23 @@ index 00000000000..5185fac2e29 +length hostname involving bidirectional characters were decoded. Some protocols +such as :mod:`urllib` http ``3xx`` redirects potentially allow for an attacker +to supply such a name. +diff -urNp a/Lib/encodings/idna.py b/Lib/encodings/idna.py +--- a/Lib/encodings/idna.py 2023-02-16 08:58:06.884171667 +0100 ++++ b/Lib/encodings/idna.py 2023-02-16 08:59:31.931296399 +0100 +@@ -101,6 +101,16 @@ def ToASCII(label): + raise UnicodeError("label empty or too long") + + def ToUnicode(label): ++ if len(label) > 1024: ++ # Protection from https://github.com/python/cpython/issues/98433. ++ # https://datatracker.ietf.org/doc/html/rfc5894#section-6 ++ # doesn't specify a label size limit prior to NAMEPREP. But having ++ # one makes practical sense. ++ # This leaves ample room for nameprep() to remove Nothing characters ++ # per https://www.rfc-editor.org/rfc/rfc3454#section-3.1 while still ++ # preventing us from wasting time decoding a big thing that'll just ++ # hit the actual <= 63 length limit in Step 6. ++ raise UnicodeError("label way too long") + # Step 1: Check for ASCII + if isinstance(label, str): + pure_ascii = True diff --git a/00399-cve-2023-24329.patch b/00399-cve-2023-24329.patch new file mode 100644 index 0000000..7d09b75 --- /dev/null +++ b/00399-cve-2023-24329.patch @@ -0,0 +1,127 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lumir Balhar +Date: Thu, 25 May 2023 10:03:57 +0200 +Subject: [PATCH] 00399-cve-2023-24329.patch + +00399 # + +* gh-102153: Start stripping C0 control and space chars in `urlsplit` (GH-102508) + +`urllib.parse.urlsplit` has already been respecting the WHATWG spec a bit GH-25595. + +This adds more sanitizing to respect the "Remove any leading C0 control or space from input" [rule](https://url.spec.whatwg.org/GH-url-parsing:~:text=Remove%20any%20leading%20and%20trailing%20C0%20control%20or%20space%20from%20input.) in response to [CVE-2023-24329](https://nvd.nist.gov/vuln/detail/CVE-2023-24329). + +Backported to Python 2 from Python 3.12. + +Co-authored-by: Illia Volochii +Co-authored-by: Gregory P. Smith [Google] +Co-authored-by: Lumir Balhar +--- + Lib/test/test_urlparse.py | 57 +++++++++++++++++++++++++++++++++++++++ + Lib/urlparse.py | 10 +++++++ + 2 files changed, 67 insertions(+) + +diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py +index 16eefed56f6..419e9c2bdcc 100644 +--- a/Lib/test/test_urlparse.py ++++ b/Lib/test/test_urlparse.py +@@ -666,7 +666,64 @@ class UrlParseTestCase(unittest.TestCase): + self.assertEqual(p.scheme, "https") + self.assertEqual(p.geturl(), "https://www.python.org/javascript:alert('msg')/?query=something#fragment") + ++ def test_urlsplit_strip_url(self): ++ noise = "".join([chr(i) for i in range(0, 0x20 + 1)]) ++ base_url = "http://User:Pass@www.python.org:080/doc/?query=yes#frag" + ++ url = noise.decode("utf-8") + base_url ++ p = urlparse.urlsplit(url) ++ self.assertEqual(p.scheme, "http") ++ self.assertEqual(p.netloc, "User:Pass@www.python.org:080") ++ self.assertEqual(p.path, "/doc/") ++ self.assertEqual(p.query, "query=yes") ++ self.assertEqual(p.fragment, "frag") ++ self.assertEqual(p.username, "User") ++ self.assertEqual(p.password, "Pass") ++ self.assertEqual(p.hostname, "www.python.org") ++ self.assertEqual(p.port, 80) ++ self.assertEqual(p.geturl(), base_url) ++ ++ url = noise + base_url.encode("utf-8") ++ p = urlparse.urlsplit(url) ++ self.assertEqual(p.scheme, b"http") ++ self.assertEqual(p.netloc, b"User:Pass@www.python.org:080") ++ self.assertEqual(p.path, b"/doc/") ++ self.assertEqual(p.query, b"query=yes") ++ self.assertEqual(p.fragment, b"frag") ++ self.assertEqual(p.username, b"User") ++ self.assertEqual(p.password, b"Pass") ++ self.assertEqual(p.hostname, b"www.python.org") ++ self.assertEqual(p.port, 80) ++ self.assertEqual(p.geturl(), base_url.encode("utf-8")) ++ ++ # Test that trailing space is preserved as some applications rely on ++ # this within query strings. ++ query_spaces_url = "https://www.python.org:88/doc/?query= " ++ p = urlparse.urlsplit(noise.decode("utf-8") + query_spaces_url) ++ self.assertEqual(p.scheme, "https") ++ self.assertEqual(p.netloc, "www.python.org:88") ++ self.assertEqual(p.path, "/doc/") ++ self.assertEqual(p.query, "query= ") ++ self.assertEqual(p.port, 88) ++ self.assertEqual(p.geturl(), query_spaces_url) ++ ++ p = urlparse.urlsplit("www.pypi.org ") ++ # That "hostname" gets considered a "path" due to the ++ # trailing space and our existing logic... YUCK... ++ # and re-assembles via geturl aka unurlsplit into the original. ++ # django.core.validators.URLValidator (at least through v3.2) relies on ++ # this, for better or worse, to catch it in a ValidationError via its ++ # regular expressions. ++ # Here we test the basic round trip concept of such a trailing space. ++ self.assertEqual(urlparse.urlunsplit(p), "www.pypi.org ") ++ ++ # with scheme as cache-key ++ url = "//www.python.org/" ++ scheme = noise.decode("utf-8") + "https" + noise.decode("utf-8") ++ for _ in range(2): ++ p = urlparse.urlsplit(url, scheme=scheme) ++ self.assertEqual(p.scheme, "https") ++ self.assertEqual(p.geturl(), "https://www.python.org/") + + def test_attributes_bad_port(self): + """Check handling of non-integer ports.""" +diff --git a/Lib/urlparse.py b/Lib/urlparse.py +index 6cc40a8d2fb..0f03a7cc4a9 100644 +--- a/Lib/urlparse.py ++++ b/Lib/urlparse.py +@@ -26,6 +26,10 @@ scenarios for parsing, and for backward compatibility purposes, some + parsing quirks from older RFCs are retained. The testcases in + test_urlparse.py provides a good indicator of parsing behavior. + ++The WHATWG URL Parser spec should also be considered. We are not compliant with ++it either due to existing user code API behavior expectations (Hyrum's Law). ++It serves as a useful guide when making changes. ++ + """ + + import re +@@ -63,6 +67,10 @@ scheme_chars = ('abcdefghijklmnopqrstuvwxyz' + '0123456789' + '+-.') + ++# Leading and trailing C0 control and space to be stripped per WHATWG spec. ++# == "".join([chr(i) for i in range(0, 0x20 + 1)]) ++_WHATWG_C0_CONTROL_OR_SPACE = '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f ' ++ + # Unsafe bytes to be removed per WHATWG spec + _UNSAFE_URL_BYTES_TO_REMOVE = ['\t', '\r', '\n'] + +@@ -201,6 +209,8 @@ def urlsplit(url, scheme='', allow_fragments=True): + (e.g. netloc is a single string) and we don't expand % escapes.""" + url = _remove_unsafe_bytes_from_url(url) + scheme = _remove_unsafe_bytes_from_url(scheme) ++ url = url.lstrip(_WHATWG_C0_CONTROL_OR_SPACE) ++ scheme = scheme.strip(_WHATWG_C0_CONTROL_OR_SPACE) + allow_fragments = bool(allow_fragments) + key = url, scheme, allow_fragments, type(url), type(scheme) + cached = _parse_cache.get(key, None) diff --git a/10000-python2-anolis-rebrand.patch b/10000-python2-anolis-rebrand.patch deleted file mode 100644 index 89a6d0a..0000000 --- a/10000-python2-anolis-rebrand.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 03b5ffe43421cab1ba3b7417483ab343181ca9bd Mon Sep 17 00:00:00 2001 -From: zhangbinchen -Date: Tue, 16 Mar 2021 11:30:43 +0800 -Subject: [PATCH] rebrand : rebrand txt use anolis - -Signed-off-by: zhangbinchen ---- - Doc/library/gettext.rst | 2 +- - Doc/library/platform.rst | 4 ++-- - Lib/platform.py | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/Doc/library/gettext.rst b/Doc/library/gettext.rst -index 4b4883a..e3c20fd 100644 ---- a/Doc/library/gettext.rst -+++ b/Doc/library/gettext.rst -@@ -746,7 +746,7 @@ implementations, and valuable experience to the creation of this module: - - .. rubric:: Footnotes - --.. [#] The default locale directory is system dependent; for example, on RedHat Linux -+.. [#] The default locale directory is system dependent; for example, on Anolis OS - it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/locale`. - The :mod:`gettext` module does not try to support these system dependent - defaults; instead its default is :file:`sys.prefix/share/locale`. For this -diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst -index 3d0743b..7e35ac8 100644 ---- a/Doc/library/platform.rst -+++ b/Doc/library/platform.rst -@@ -242,7 +242,7 @@ Unix Platforms - -------------- - - --.. function:: dist(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake',...)) -+.. function:: dist(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake','anolis',...)) - - This is an old version of the functionality now provided by - :func:`linux_distribution`. For new code, please use the -@@ -254,7 +254,7 @@ Unix Platforms - - .. deprecated:: 2.6 - --.. function:: linux_distribution(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake',...), full_distribution_name=1) -+.. function:: linux_distribution(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake','anolis',...), full_distribution_name=1) - - Tries to determine the name of the Linux OS distribution name. - -diff --git a/Lib/platform.py b/Lib/platform.py -index e04d87f..e89fa52 100755 ---- a/Lib/platform.py -+++ b/Lib/platform.py -@@ -292,7 +292,7 @@ _release_version = re.compile(r'([^0-9]+)' - - _supported_dists = ( - 'SuSE', 'debian', 'fedora', 'redhat', 'centos', -- 'mandrake', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo', -+ 'mandrake', 'anolis', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo', - 'UnitedLinux', 'turbolinux') - - def _parse_release_file(firstline): --- -2.26.2 - diff --git a/python2.spec b/python2.spec index 123e9e4..d969569 100644 --- a/python2.spec +++ b/python2.spec @@ -1,4 +1,3 @@ -%define anolis_release .0.1 # ====================================================== # Conditionals and other variables controlling the build # ====================================================== @@ -49,7 +48,7 @@ %global with_systemtap 1 # some arches don't have valgrind so we need to disable its support on them -%ifnarch s390 %{mips} riscv64 loongarch64 +%ifnarch s390 %{mips} riscv64 %global with_valgrind 1 %else %global with_valgrind 0 @@ -97,6 +96,7 @@ # the rest of the build %global regenerate_autotooling_patch 0 + # ================== # Top-level metadata # ================== @@ -104,7 +104,7 @@ Summary: An interpreted, interactive, object-oriented programming language Name: %{python} # Remember to also rebase python2-docs when changing this: Version: 2.7.18 -Release: 12%{anolis_release}%{?dist} +Release: 13%{?dist}.1 License: Python Group: Development/Languages Requires: %{python}-libs%{?_isa} = %{version}-%{release} @@ -816,6 +816,16 @@ Patch382: 00382-cve-2015-20107.patch # Backported from python3. Patch394: 00394-cve-2022-45061-cpu-denial-of-service-via-inefficient-idna-decoder.patch +# 00399 # +# * gh-102153: Start stripping C0 control and space chars in `urlsplit` (GH-102508) +# +# `urllib.parse.urlsplit` has already been respecting the WHATWG spec a bit GH-25595. +# +# This adds more sanitizing to respect the "Remove any leading C0 control or space from input" [rule](https://url.spec.whatwg.org/GH-url-parsing:~:text=Remove%%20any%%20leading%%20and%%20trailing%%20C0%%20control%%20or%%20space%%20from%%20input.) in response to [CVE-2023-24329](https://nvd.nist.gov/vuln/detail/CVE-2023-24329). +# +# Backported to Python 2 from Python 3.12. +Patch399: 00399-cve-2023-24329.patch + # (New patches go here ^^^) # # When adding new patches to "python2" and "python3" in Fedora, EL, etc., @@ -831,10 +841,6 @@ Patch394: 00394-cve-2022-45061-cpu-denial-of-service-via-inefficient-idna-decode Patch5000: 05000-autotool-intermediates.patch -# Add by Anolis -Patch10000: 10000-python2-anolis-rebrand.patch -# End - # ====================================================== # Additional metadata, and subpackages # ====================================================== @@ -1154,6 +1160,7 @@ git apply %{PATCH351} %patch378 -p1 %patch382 -p1 %patch394 -p1 +%patch399 -p1 # This shouldn't be necesarry, but is right now (2.2a3) @@ -1165,9 +1172,6 @@ find -name "*~" |xargs rm -f %patch5000 -p0 -b .autotool-intermediates %endif -# Add by Anolis -%patch10000 -p1 -# End # ====================================================== # Configuring and building the code: @@ -1486,7 +1490,7 @@ install -d %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages %global _pyconfig32_h pyconfig-32.h %global _pyconfig64_h pyconfig-64.h -%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} riscv64 loongarch64 +%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} riscv64 %global _pyconfig_h %{_pyconfig64_h} %else %global _pyconfig_h %{_pyconfig32_h} @@ -1555,7 +1559,7 @@ done # Install a tapset for this libpython into tapsetdir, fixing up the path to the # library: mkdir -p %{buildroot}%{tapsetdir} -%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} loongarch64 +%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} %global libpython_stp_optimized libpython%{pybasever}-64.stp %global libpython_stp_debug libpython%{pybasever}-debug-64.stp %else @@ -1649,7 +1653,7 @@ CheckPython() { %ifarch s390 s390x %{power64} %{arm} aarch64 %{mips} EXTRATESTOPTS="$EXTRATESTOPTS -x test_gdb" %endif -%ifarch %{mips64} loongarch64 +%ifarch %{mips64} EXTRATESTOPTS="$EXTRATESTOPTS -x test_ctypes" %endif @@ -2096,9 +2100,12 @@ fi # ====================================================== %changelog -* Wed Jun 07 2023 zhangbinchen - 2.7.18-12.0.1 -- Rebrand for Anolis OS -- Support loongarch64 platform(Liwei Ge) +* Thu May 25 2023 Charalampos Stratakis - 2.7.18-13.1 +- Fix for CVE-2023-24329 +Resolves: rhbz#2173917 + +* Thu Feb 16 2023 Josef Ridky - 2.7.18-13 +- Add missing part of fix for CVE-2022-45061 (#2145071) * Wed Dec 21 2022 Charalampos Stratakis - 2.7.18-12 - Security fix for CVE-2022-45061: CPU denial of service via inefficient IDNA decoder -- Gitee From 77f0d47787dfab0ffbbfb19334d66d8aafc3022c Mon Sep 17 00:00:00 2001 From: Zhao Hang Date: Fri, 17 Dec 2021 06:35:30 +0000 Subject: [PATCH 2/3] rebrand : rebrand for anolis # Conflicts: # python2.spec --- 10000-python2-anolis-rebrand.patch | 63 ++++++++++++++++++++++++++++++ python2.spec | 14 ++++++- 2 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 10000-python2-anolis-rebrand.patch diff --git a/10000-python2-anolis-rebrand.patch b/10000-python2-anolis-rebrand.patch new file mode 100644 index 0000000..89a6d0a --- /dev/null +++ b/10000-python2-anolis-rebrand.patch @@ -0,0 +1,63 @@ +From 03b5ffe43421cab1ba3b7417483ab343181ca9bd Mon Sep 17 00:00:00 2001 +From: zhangbinchen +Date: Tue, 16 Mar 2021 11:30:43 +0800 +Subject: [PATCH] rebrand : rebrand txt use anolis + +Signed-off-by: zhangbinchen +--- + Doc/library/gettext.rst | 2 +- + Doc/library/platform.rst | 4 ++-- + Lib/platform.py | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Doc/library/gettext.rst b/Doc/library/gettext.rst +index 4b4883a..e3c20fd 100644 +--- a/Doc/library/gettext.rst ++++ b/Doc/library/gettext.rst +@@ -746,7 +746,7 @@ implementations, and valuable experience to the creation of this module: + + .. rubric:: Footnotes + +-.. [#] The default locale directory is system dependent; for example, on RedHat Linux ++.. [#] The default locale directory is system dependent; for example, on Anolis OS + it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/locale`. + The :mod:`gettext` module does not try to support these system dependent + defaults; instead its default is :file:`sys.prefix/share/locale`. For this +diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst +index 3d0743b..7e35ac8 100644 +--- a/Doc/library/platform.rst ++++ b/Doc/library/platform.rst +@@ -242,7 +242,7 @@ Unix Platforms + -------------- + + +-.. function:: dist(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake',...)) ++.. function:: dist(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake','anolis',...)) + + This is an old version of the functionality now provided by + :func:`linux_distribution`. For new code, please use the +@@ -254,7 +254,7 @@ Unix Platforms + + .. deprecated:: 2.6 + +-.. function:: linux_distribution(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake',...), full_distribution_name=1) ++.. function:: linux_distribution(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake','anolis',...), full_distribution_name=1) + + Tries to determine the name of the Linux OS distribution name. + +diff --git a/Lib/platform.py b/Lib/platform.py +index e04d87f..e89fa52 100755 +--- a/Lib/platform.py ++++ b/Lib/platform.py +@@ -292,7 +292,7 @@ _release_version = re.compile(r'([^0-9]+)' + + _supported_dists = ( + 'SuSE', 'debian', 'fedora', 'redhat', 'centos', +- 'mandrake', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo', ++ 'mandrake', 'anolis', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo', + 'UnitedLinux', 'turbolinux') + + def _parse_release_file(firstline): +-- +2.26.2 + diff --git a/python2.spec b/python2.spec index d969569..c0e015e 100644 --- a/python2.spec +++ b/python2.spec @@ -1,3 +1,4 @@ +%define anolis_release .0.1 # ====================================================== # Conditionals and other variables controlling the build # ====================================================== @@ -96,7 +97,6 @@ # the rest of the build %global regenerate_autotooling_patch 0 - # ================== # Top-level metadata # ================== @@ -104,7 +104,7 @@ Summary: An interpreted, interactive, object-oriented programming language Name: %{python} # Remember to also rebase python2-docs when changing this: Version: 2.7.18 -Release: 13%{?dist}.1 +Release: 13%{anolis_release}%{?dist}.1 License: Python Group: Development/Languages Requires: %{python}-libs%{?_isa} = %{version}-%{release} @@ -841,6 +841,10 @@ Patch399: 00399-cve-2023-24329.patch Patch5000: 05000-autotool-intermediates.patch +# Add by Anolis +Patch10000: 10000-python2-anolis-rebrand.patch +# End + # ====================================================== # Additional metadata, and subpackages # ====================================================== @@ -1172,6 +1176,9 @@ find -name "*~" |xargs rm -f %patch5000 -p0 -b .autotool-intermediates %endif +# Add by Anolis +%patch10000 -p1 +# End # ====================================================== # Configuring and building the code: @@ -2100,6 +2107,9 @@ fi # ====================================================== %changelog +* Fri Jun 23 2023 zhangbinchen - 2.7.18-13.0.1.1 +- Rebrand for Anolis OS + * Thu May 25 2023 Charalampos Stratakis - 2.7.18-13.1 - Fix for CVE-2023-24329 Resolves: rhbz#2173917 -- Gitee From bf525c504aa6198e50c99e9cc0ee264be667534f Mon Sep 17 00:00:00 2001 From: Liwei Ge Date: Thu, 4 Nov 2021 16:11:55 +0800 Subject: [PATCH 3/3] build: support loongarch64 Signed-off-by: Liwei Ge --- python2.spec | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/python2.spec b/python2.spec index c0e015e..93fcfac 100644 --- a/python2.spec +++ b/python2.spec @@ -49,7 +49,7 @@ %global with_systemtap 1 # some arches don't have valgrind so we need to disable its support on them -%ifnarch s390 %{mips} riscv64 +%ifnarch s390 %{mips} riscv64 loongarch64 %global with_valgrind 1 %else %global with_valgrind 0 @@ -1497,7 +1497,7 @@ install -d %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages %global _pyconfig32_h pyconfig-32.h %global _pyconfig64_h pyconfig-64.h -%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} riscv64 +%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} riscv64 loongarch64 %global _pyconfig_h %{_pyconfig64_h} %else %global _pyconfig_h %{_pyconfig32_h} @@ -1566,7 +1566,7 @@ done # Install a tapset for this libpython into tapsetdir, fixing up the path to the # library: mkdir -p %{buildroot}%{tapsetdir} -%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} +%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} loongarch64 %global libpython_stp_optimized libpython%{pybasever}-64.stp %global libpython_stp_debug libpython%{pybasever}-debug-64.stp %else @@ -1660,7 +1660,7 @@ CheckPython() { %ifarch s390 s390x %{power64} %{arm} aarch64 %{mips} EXTRATESTOPTS="$EXTRATESTOPTS -x test_gdb" %endif -%ifarch %{mips64} +%ifarch %{mips64} loongarch64 EXTRATESTOPTS="$EXTRATESTOPTS -x test_ctypes" %endif @@ -2109,6 +2109,7 @@ fi %changelog * Fri Jun 23 2023 zhangbinchen - 2.7.18-13.0.1.1 - Rebrand for Anolis OS +- Support loongarch64 platform(Liwei Ge) * Thu May 25 2023 Charalampos Stratakis - 2.7.18-13.1 - Fix for CVE-2023-24329 -- Gitee