diff --git a/00446-Resolve-sinpi-name-clash-with-libm.patch b/00446-Resolve-sinpi-name-clash-with-libm.patch new file mode 100644 index 0000000..aa64ca9 --- /dev/null +++ b/00446-Resolve-sinpi-name-clash-with-libm.patch @@ -0,0 +1,62 @@ +From f1f8bcec93f3ec6027ddfb523a0faf9ddd9c72d6 Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 18 Dec 2024 14:31:08 +0100 +Subject: [PATCH] 00446: Resolve sinpi name clash with libm + +bpo-36106: Resolve sinpi name clash with libm (IEEE-754 violation). (GH-12027) + +The standard math library (libm) may follow IEEE-754 recommendation to +include an implementation of sinPi(), i.e. sinPi(x):=sin(pi*x). +And this triggers a name clash, found by FreeBSD developer +Steve Kargl, who worken on putting sinpi into libm used on FreeBSD +(it has to be named "sinpi", not "sinPi", cf. e.g. +https://en.cppreference.com/w/c/experimental/fpext4). + +(cherry picked from commit f57cd8288dbe6aba99c057f37ad6d58f8db75350) +--- + Modules/mathmodule.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c +index 95ea4f7fef8..670f1a04ad6 100644 +--- a/Modules/mathmodule.c ++++ b/Modules/mathmodule.c +@@ -67,7 +67,7 @@ static const double sqrtpi = 1.772453850905516027298167483341145182798; + static const double logpi = 1.144729885849400174143427351353058711647; + + static double +-sinpi(double x) ++m_sinpi(double x) + { + double y, r; + int n; +@@ -296,7 +296,7 @@ m_tgamma(double x) + integer. */ + if (absx > 200.0) { + if (x < 0.0) { +- return 0.0/sinpi(x); ++ return 0.0/m_sinpi(x); + } + else { + errno = ERANGE; +@@ -320,7 +320,7 @@ m_tgamma(double x) + } + z = z * lanczos_g / y; + if (x < 0.0) { +- r = -pi / sinpi(absx) / absx * exp(y) / lanczos_sum(absx); ++ r = -pi / m_sinpi(absx) / absx * exp(y) / lanczos_sum(absx); + r -= z * r; + if (absx < 140.0) { + r /= pow(y, absx - 0.5); +@@ -390,7 +390,7 @@ m_lgamma(double x) + r += (absx - 0.5) * (log(absx + lanczos_g - 0.5) - 1); + if (x < 0.0) + /* Use reflection formula to get value for negative x. */ +- r = logpi - log(fabs(sinpi(absx))) - log(absx) - r; ++ r = logpi - log(fabs(m_sinpi(absx))) - log(absx) - r; + if (Py_IS_INFINITY(r)) + errno = ERANGE; + return r; +-- +2.47.1 + diff --git a/python3.6.spec b/python3.6.spec index 8e741c7..73b2e92 100644 --- a/python3.6.spec +++ b/python3.6.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ #global prerel ... %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 39%{?dist} +Release: 40%{?dist} # Python is Python # pip MIT is and bundles: # appdirs: MIT @@ -786,6 +786,10 @@ Patch443: 00443-gh-124651-quote-template-strings-in-venv-activation-scripts.patc # Tests are adjusted because Python <3.9 don't support scoped IPv6 addresses. Patch444: 00444-security-fix-for-cve-2024-11168.patch +# 00446 # f1f8bcec93f3ec6027ddfb523a0faf9ddd9c72d6 +# Resolve sinpi name clash with libm +Patch446: 00446-Resolve-sinpi-name-clash-with-libm.patch + # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -2055,6 +2059,9 @@ CheckPython optimized # ====================================================== %changelog +* Wed Dec 18 2024 Victor Stinner - 3.6.15-40 +- Fix compatibility with glibc 2.41 (resolve sinpi name clash). + * Thu Nov 14 2024 Lumír Balhar - 3.6.15-39 - Security fix for CVE-2024-11168