dev-python/gmpy: Fix mpfr-4.2.1 compatibility

Closes: https://bugs.gentoo.org/916390
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2023-11-29 12:01:53 +01:00
parent 7e710bebb1
commit 67e5e19196
3 changed files with 46 additions and 7 deletions

View File

@@ -1,2 +1,3 @@
DIST gmpy-2.1.5-cache.patch 19769 BLAKE2B 72d61ea00fda608ae92c5319828cb5c0003a69cd4be4bf3cde62574a93987b2316df5334d290eca7d48e44e423227d0b5a22c142c4a95b42aebb4560c3bf7ea6 SHA512 f16dbd78a99f27c6f588b814bb9b307429927eae9828fcea04225f163c1cd28968c2994689c4802dc0b619cdfd7c50401d1ec06c220756268af17499613fda1b
DIST gmpy-2.1.5-py3.12.patch.gz 1817 BLAKE2B cbea3a9c662d52c5bfddb82ab5e920474a52c1dd715b3b9fecf55e5ee097297168ddb7961b6156e4c1f902e911890c77252d119c3651f345f01cad144ed44127 SHA512 26195e8e9a87147a05fd07fa325f262c2004fcba2b8857dbc87ca7a1e9e5e64b4a47d35be77edc263829e5df1db6a0acda6904307d01529eba832feb4f0f3f71
DIST gmpy2-2.1.5.tar.gz 261709 BLAKE2B 50958868866fadc49c97534780fa491fadfaaea902f3fd4bd51f4e76a94602a6d030a1ee6685aac742e25b5fbe4865e1419307f7215c8fb553b166761d63607a SHA512 92e16359ee1df63faaeae4a3cbefe8cdbbc576d8eda377f08d59f12b70dfe9337a299686e85d1efee6c2f5b41fc4583643fecc68ea38a500c7f876c56fc169e7

View File

@@ -0,0 +1,31 @@
From 68a6b489c3d8d95b2658a1ed884fb99f4bd955c1 Mon Sep 17 00:00:00 2001
From: Sergey B Kirpichev <skirpichev@gmail.com>
Date: Sun, 3 Sep 2023 02:35:19 +0300
Subject: [PATCH] Exclude MPFR workaround for MPFR >= 4.2.1
Co-authored-by: Vincent Lefevre <vincent@vinc17.net>
Closes #418
---
src/gmpy2_format.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/gmpy2_format.c b/src/gmpy2_format.c
index 3e450c96..303bb7bf 100644
--- a/src/gmpy2_format.c
+++ b/src/gmpy2_format.c
@@ -592,12 +592,14 @@ GMPy_MPC_Format(PyObject *self, PyObject *args)
if (mpcstyle)
strcat(tempbuf, " ");
else {
+#if MPFR_VERSION < MPFR_VERSION_NUM(4,2,1)
/* Need to insert + if imag is nan or +inf. */
if (mpfr_nan_p(mpc_imagref(MPC(self))) ||
(mpfr_inf_p(mpc_imagref(MPC(self))) &&
mpfr_sgn(mpc_imagref(MPC(self))) > 0)) {
strcat(tempbuf, "+");
}
+#endif
}
strcat(tempbuf, imagbuf);
if (strlen(imagbuf) < 50 &&

View File

@@ -6,7 +6,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYPI_PN="gmpy2"
PYTHON_COMPAT=( python3_{9..12} )
PYTHON_COMPAT=( python3_{10..12} )
inherit distutils-r1 pypi
@@ -15,8 +15,11 @@ HOMEPAGE="
https://github.com/aleaxit/gmpy/
https://pypi.org/project/gmpy2/
"
SRC_URI="${SRC_URI}
https://dev.gentoo.org/~grozin/${P}-py3.12.patch.gz"
SRC_URI+="
https://dev.gentoo.org/~grozin/${P}-py3.12.patch.gz
https://github.com/tornaria/void-packages/raw/722b32aa405804b79a74256708de6a511e255b4b/srcpkgs/python3-gmpy2/patches/cleanup-object-caching.patch
-> ${P}-cache.patch
"
LICENSE="LGPL-3+"
SLOT="2"
@@ -33,10 +36,14 @@ RDEPEND="
distutils_enable_sphinx docs
src_prepare() {
eapply "${WORKDIR}"/${P}-py3.12.patch
distutils-r1_src_prepare
}
PATCHES=(
"${WORKDIR}/${P}-py3.12.patch"
# https://github.com/aleaxit/gmpy/commit/7351e2eb1abf4b37a47a822eb3f3f29f90c7f854
# rebased by Void; needed for mpfr 4.2.1
"${DISTDIR}/${P}-cache.patch"
# https://github.com/aleaxit/gmpy/commit/68a6b489c3d8d95b2658a1ed884fb99f4bd955c1
"${FILESDIR}/${P}-mpfr-4.2.1.patch"
)
python_test() {
cd test || die