diff options
Diffstat (limited to 'dev-python/gmpy')
-rw-r--r-- | dev-python/gmpy/Manifest | 4 | ||||
-rw-r--r-- | dev-python/gmpy/files/gmpy-2.1.0_beta5-failed-tests.patch | 132 | ||||
-rw-r--r-- | dev-python/gmpy/files/gmpy-2.1.0_beta5-pyhash-nan.patch | 17 | ||||
-rw-r--r-- | dev-python/gmpy/files/gmpy-2.1.0_beta5-test-input.patch | 12 | ||||
-rw-r--r-- | dev-python/gmpy/files/gmpy-2.1.5-mpfr-4.2.1.patch | 31 | ||||
-rw-r--r-- | dev-python/gmpy/gmpy-2.1.0_beta5.ebuild | 45 | ||||
-rw-r--r-- | dev-python/gmpy/gmpy-2.1.5-r2.ebuild | 51 |
7 files changed, 85 insertions, 207 deletions
diff --git a/dev-python/gmpy/Manifest b/dev-python/gmpy/Manifest index 45c5011b8ffe..545491749d8f 100644 --- a/dev-python/gmpy/Manifest +++ b/dev-python/gmpy/Manifest @@ -1 +1,3 @@ -DIST gmpy2-2.1.0b5.tar.gz 264742 BLAKE2B 1dd6dc66f9ec8cb2738f449112aa44feb40ba983f6da5f7a0760016e79ffed19037d77d47c0c0b816f9088725207e50ba3bd423349ed4c744ff03059c4c6a19a SHA512 7dc647642d7b61af77258881a7b91ab967dd11a86ba88ff5b7fd41cd4c999d2bb4cfe586511e79cc5f21f0f00d0823bbd2620d69df051c8cead15090423a657a +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 diff --git a/dev-python/gmpy/files/gmpy-2.1.0_beta5-failed-tests.patch b/dev-python/gmpy/files/gmpy-2.1.0_beta5-failed-tests.patch deleted file mode 100644 index 38a98579409a..000000000000 --- a/dev-python/gmpy/files/gmpy-2.1.0_beta5-failed-tests.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff --git a/src/gmpy2_mpz.c b/src/gmpy2_mpz.c -index e5087fa..66a297a 100644 ---- a/src/gmpy2_mpz.c -+++ b/src/gmpy2_mpz.c -@@ -69,7 +69,7 @@ static PyNumberMethods GMPy_MPZ_number_methods = - (binaryfunc) GMPy_MPZ_ISub_Slot, /* nb_inplace_subtract */ - (binaryfunc) GMPy_MPZ_IMul_Slot, /* nb_inplace_multiply */ - (binaryfunc) GMPy_MPZ_IRem_Slot, /* nb_inplace_remainder */ -- (ternaryfunc) GMPy_MPZ_IPow_Slot, /* nb_inplace_power */ -+ 0, /* nb_inplace_power */ - (binaryfunc) GMPy_MPZ_ILshift_Slot, /* nb_inplace_lshift */ - (binaryfunc) GMPy_MPZ_IRshift_Slot, /* nb_inplace_rshift */ - 0, /* nb_inplace_and */ -@@ -113,7 +113,7 @@ static PyNumberMethods GMPy_MPZ_number_methods = - (binaryfunc) GMPy_MPZ_IMul_Slot, /* nb_inplace_multiply */ - 0, /* nb_inplace_divide */ - (binaryfunc) GMPy_MPZ_IRem_Slot, /* nb_inplace_remainder */ -- (ternaryfunc) GMPy_MPZ_IPow_Slot, /* nb_inplace_power */ -+ 0, /* nb_inplace_power */ - (binaryfunc) GMPy_MPZ_ILshift_Slot, /* nb_inplace_lshift */ - (binaryfunc) GMPy_MPZ_IRshift_Slot, /* nb_inplace_rshift */ - 0, /* nb_inplace_and */ -@@ -229,4 +229,3 @@ static PyTypeObject MPZ_Type = - GMPy_MPZ_NewInit, /* tp_new */ - 0, /* tp_free */ - }; -- -diff --git a/src/gmpy2_pow.c b/src/gmpy2_pow.c -index ddcb43a..cf96470 100644 ---- a/src/gmpy2_pow.c -+++ b/src/gmpy2_pow.c -@@ -98,8 +98,11 @@ GMPy_Integer_Pow(PyObject *b, PyObject *e, PyObject *m, CTXT_Object *context) - unsigned long el; - - if (mpz_sgn(tempe->z) < 0) { -- VALUE_ERROR("pow() exponent cannot be negative"); -- goto err; -+ Py_DECREF((PyObject*)result); -+ Py_DECREF((PyObject*)tempb); -+ Py_DECREF((PyObject*)tempe); -+ -+ return GMPy_Real_Pow(b, e, m, context); - } - - /* Catch -1, 0, 1 getting raised to large exponents. */ -diff --git a/src/gmpy2_xmpz_inplace.c b/src/gmpy2_xmpz_inplace.c -index bbcd977..e5bbf09 100644 ---- a/src/gmpy2_xmpz_inplace.c -+++ b/src/gmpy2_xmpz_inplace.c -@@ -271,14 +271,14 @@ GMPy_XMPZ_IPow_Slot(PyObject *self, PyObject *other, PyObject *mod) - mp_bitcnt_t exp; - - exp = mp_bitcnt_t_From_Integer(other); -- if (exp == (mp_bitcnt_t)(-1) && PyErr_Occurred()) { -- PyErr_Clear(); -- Py_RETURN_NOTIMPLEMENTED; -- } -+ if (exp == (mp_bitcnt_t)(-1) && PyErr_Occurred()) -+ return NULL; - - mpz_pow_ui(MPZ(self), MPZ(self), exp); - Py_INCREF((PyObject*)self); - return (PyObject*)self; -+ -+ Py_RETURN_NOTIMPLEMENTED; - } - - /* Inplace xmpz and. -@@ -346,4 +346,3 @@ GMPy_XMPZ_IIor_Slot(PyObject *self, PyObject *other) - - Py_RETURN_NOTIMPLEMENTED; - } -- -diff --git a/test/test_gmpy2_mpz_inplace.txt b/test/test_gmpy2_mpz_inplace.txt -index e7a8b96..147118c 100644 ---- a/test/test_gmpy2_mpz_inplace.txt -+++ b/test/test_gmpy2_mpz_inplace.txt -@@ -147,18 +147,16 @@ Test ipow operator - mpz(25) - >>> x **= xmpz(2); x - mpz(625) -->>> x **= -2 --Traceback (most recent call last): -- File "<stdin>", line 1, in <module> --TypeError: unsupported operand type(s) for ** or pow(): 'mpz' and 'int' -+>>> x **= -2; x -+mpfr('2.5600000000000001e-06') -+>>> x = mpz(625) - >>> x **= 2; x - mpz(390625) -->>> x **= mpfr(2) --Traceback (most recent call last): -- File "<stdin>", line 1, in <module> --TypeError: unsupported operand type(s) for ** or pow(): 'mpz' and 'mpfr' -->>> 1 --1 -+>>> x **= mpfr(2); x -+mpfr('152587890625.0') -+>>> x = mpz(390625) -+>>> x **= mpfr(-2); x -+mpfr('6.5535999999999999e-12') - - Test iand operator - ------------------ -diff --git a/test/test_gmpy2_pow.txt b/test/test_gmpy2_pow.txt -index 89bd876..d5b1f45 100644 ---- a/test/test_gmpy2_pow.txt -+++ b/test/test_gmpy2_pow.txt -@@ -15,9 +15,7 @@ mpz(25) - >>> ctx.pow(z1, z2) - mpz(25) - >>> z1 ** -z2 --Traceback (most recent call last): -- File "<stdin>", line 1, in <module> --ValueError: pow() exponent cannot be negative -+mpfr('0.040000000000000001') - >>> z1 ** 0 - mpz(1) - >>> mpz(0) ** 32 -diff --git a/test/test_gmpy2_xmpz_inplace.txt b/test/test_gmpy2_xmpz_inplace.txt -index 94f86b7..c02f966 100644 ---- a/test/test_gmpy2_xmpz_inplace.txt -+++ b/test/test_gmpy2_xmpz_inplace.txt -@@ -135,7 +135,7 @@ xmpz(625) - >>> x **= -2 - Traceback (most recent call last): - File "<stdin>", line 1, in <module> --TypeError: unsupported operand type(s) for ** or pow(): 'xmpz' and 'int' -+ValueError: a non-negative value is required - >>> x **= 2; x - xmpz(390625) - >>> x **= mpfr(2) diff --git a/dev-python/gmpy/files/gmpy-2.1.0_beta5-pyhash-nan.patch b/dev-python/gmpy/files/gmpy-2.1.0_beta5-pyhash-nan.patch deleted file mode 100644 index 9f59a6096fcd..000000000000 --- a/dev-python/gmpy/files/gmpy-2.1.0_beta5-pyhash-nan.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/src/gmpy2_hash.c b/src/gmpy2_hash.c -index f276a42..1d2bfd1 100644 ---- a/src/gmpy2_hash.c -+++ b/src/gmpy2_hash.c -@@ -147,7 +147,12 @@ _mpfr_hash(mpfr_t f) - } - } - else { -+#if PY_VERSION_HEX >= 0x030A00A0 -+ // Python 3.10 -+ return _Py_HashPointer(f); -+#else - return _PyHASH_NAN; -+#endif - } - } - diff --git a/dev-python/gmpy/files/gmpy-2.1.0_beta5-test-input.patch b/dev-python/gmpy/files/gmpy-2.1.0_beta5-test-input.patch deleted file mode 100644 index 16705d917c93..000000000000 --- a/dev-python/gmpy/files/gmpy-2.1.0_beta5-test-input.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/test/runtests.py b/test/runtests.py -index 5e5842d..7d64e52 100644 ---- a/test/runtests.py -+++ b/test/runtests.py -@@ -81,7 +81,6 @@ if sys.version.startswith('3.1.'): - print("with Python 3.1. The doctest module in Python 3.2 and later does not") - print("have this issue.") - print() -- input("Press ENTER to continue.. ") - print() - - mpz_doctests = ["test_mpz_create.txt", "test_mpz.txt", "test_mpz_io.txt", diff --git a/dev-python/gmpy/files/gmpy-2.1.5-mpfr-4.2.1.patch b/dev-python/gmpy/files/gmpy-2.1.5-mpfr-4.2.1.patch new file mode 100644 index 000000000000..4bbc9097824e --- /dev/null +++ b/dev-python/gmpy/files/gmpy-2.1.5-mpfr-4.2.1.patch @@ -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 && diff --git a/dev-python/gmpy/gmpy-2.1.0_beta5.ebuild b/dev-python/gmpy/gmpy-2.1.0_beta5.ebuild deleted file mode 100644 index 4768bf50c719..000000000000 --- a/dev-python/gmpy/gmpy-2.1.0_beta5.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit distutils-r1 - -MY_PN="${PN}2" -MY_P="${MY_PN}-${PV/_beta/b}" - -DESCRIPTION="Python bindings for GMP, MPC, MPFR and MPIR libraries" -HOMEPAGE="https://github.com/aleaxit/gmpy" -SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz" -S="${WORKDIR}"/${MY_P} - -LICENSE="LGPL-3+" -SLOT="2" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" - -RDEPEND=" - >=dev-libs/mpc-1.0.2:= - >=dev-libs/mpfr-3.1.2:= - dev-libs/gmp:0= -" -DEPEND="${RDEPEND}" - -PATCHES=( - # In python 3.10 _PyHASH_NAN was removed and its usage replaced with _Py_HashPointer - # see https://github.com/python/cpython/blob/3.10/Python/pyhash.c - # https://github.com/aleaxit/gmpy/pull/297 - "${FILESDIR}"/${P}-pyhash-nan.patch - # The tests program asks for input when running, disable that - "${FILESDIR}"/${P}-test-input.patch - # Based on this commit: - # https://github.com/aleaxit/gmpy/commit/db7ce2ef46fab84e7b9c32b05725e9b02e8cf206 - "${FILESDIR}"/${P}-failed-tests.patch -) - -distutils_enable_sphinx docs - -python_test() { - cd test || die - "${EPYTHON}" runtests.py || die "tests failed under ${EPYTHON}" -} diff --git a/dev-python/gmpy/gmpy-2.1.5-r2.ebuild b/dev-python/gmpy/gmpy-2.1.5-r2.ebuild new file mode 100644 index 000000000000..1516736e6849 --- /dev/null +++ b/dev-python/gmpy/gmpy-2.1.5-r2.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYPI_PN="gmpy2" +PYTHON_COMPAT=( python3_{10..12} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python bindings for GMP, MPC, MPFR and MPIR libraries" +HOMEPAGE=" + https://github.com/aleaxit/gmpy/ + https://pypi.org/project/gmpy2/ +" +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" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" + +DEPEND=" + >=dev-libs/mpc-1.0.2:= + >=dev-libs/mpfr-3.1.2:= + dev-libs/gmp:0= +" +RDEPEND=" + ${DEPEND} +" + +distutils_enable_sphinx docs + +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 + "${EPYTHON}" runtests.py || die "tests failed under ${EPYTHON}" +} |