From ce49e41b8d2e03a25f46940ef684daebea64dfd0 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sat, 9 Dec 2023 16:25:15 +0000 Subject: dev-python/sympy: fix modern C issue I only noticed this one because fweimer picked it up, I didn't end up hitting it myself. Signed-off-by: Sam James --- dev-python/sympy/files/sympy-1.12-c99.patch | 48 ++++++++++++ dev-python/sympy/sympy-1.12-r1.ebuild | 116 ++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 dev-python/sympy/files/sympy-1.12-c99.patch create mode 100644 dev-python/sympy/sympy-1.12-r1.ebuild (limited to 'dev-python/sympy') diff --git a/dev-python/sympy/files/sympy-1.12-c99.patch b/dev-python/sympy/files/sympy-1.12-c99.patch new file mode 100644 index 000000000000..311311cfcea3 --- /dev/null +++ b/dev-python/sympy/files/sympy-1.12-c99.patch @@ -0,0 +1,48 @@ +https://github.com/sympy/sympy/pull/25968 + +From 2251ba15d33656fce53668d789c390923eeae919 Mon Sep 17 00:00:00 2001 +From: Jerry James +Date: Fri, 8 Dec 2023 15:12:26 -0700 +Subject: [PATCH] Avoid incompatible pointer type error with GCC 14 + +--- a/sympy/utilities/autowrap.py ++++ b/sympy/utilities/autowrap.py +@@ -714,7 +714,11 @@ def binary_function(symfunc, expr, **kwargs): + _ufunc_outcalls = Template("*((double *)out${outnum}) = ${funcname}(${call_args});") + + _ufunc_body = Template("""\ ++#ifdef NPY_1_19_API_VERSION ++static void ${funcname}_ufunc(char **args, const npy_intp *dimensions, const npy_intp* steps, void* data) ++#else + static void ${funcname}_ufunc(char **args, npy_intp *dimensions, npy_intp* steps, void* data) ++#endif + { + npy_intp i; + npy_intp n = dimensions[0]; +--- a/sympy/utilities/tests/test_autowrap.py ++++ b/sympy/utilities/tests/test_autowrap.py +@@ -284,7 +284,11 @@ def test_ufuncify_source(): + {NULL, NULL, 0, NULL} + }; + ++#ifdef NPY_1_19_API_VERSION ++static void test_ufunc(char **args, const npy_intp *dimensions, const npy_intp* steps, void* data) ++#else + static void test_ufunc(char **args, npy_intp *dimensions, npy_intp* steps, void* data) ++#endif + { + npy_intp i; + npy_intp n = dimensions[0]; +@@ -378,7 +382,11 @@ def test_ufuncify_source_multioutput(): + {NULL, NULL, 0, NULL} + }; + ++#ifdef NPY_1_19_API_VERSION ++static void multitest_ufunc(char **args, const npy_intp *dimensions, const npy_intp* steps, void* data) ++#else + static void multitest_ufunc(char **args, npy_intp *dimensions, npy_intp* steps, void* data) ++#endif + { + npy_intp i; + npy_intp n = dimensions[0]; + diff --git a/dev-python/sympy/sympy-1.12-r1.ebuild b/dev-python/sympy/sympy-1.12-r1.ebuild new file mode 100644 index 000000000000..42a6e4905c75 --- /dev/null +++ b/dev-python/sympy/sympy-1.12-r1.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( pypy3 python3_{10..12} ) + +inherit distutils-r1 virtualx + +DESCRIPTION="Computer Algebra System in pure Python" +HOMEPAGE=" + https://www.sympy.org/ + https://github.com/sympy/sympy/ + https://pypi.org/project/sympy/ +" +SRC_URI=" + https://github.com/sympy/sympy/archive/${P}.tar.gz -> ${P}.gh.tar.gz +" +S="${WORKDIR}/${PN}-${P}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="aesara examples imaging ipython latex mathml opengl pdf png pyglet symengine texmacs" + +RDEPEND=" + dev-python/mpmath[${PYTHON_USEDEP}] + dev-python/pexpect[${PYTHON_USEDEP}] + aesara? ( + $(python_gen_cond_dep ' + dev-python/aesara[${PYTHON_USEDEP}] + ' python3_{10..11}) + ) + imaging? ( dev-python/pillow[${PYTHON_USEDEP}] ) + ipython? ( dev-python/ipython[${PYTHON_USEDEP}] ) + latex? ( + virtual/latex-base + dev-texlive/texlive-fontsextra + png? ( app-text/dvipng ) + pdf? ( app-text/ghostscript-gpl ) + ) + mathml? ( dev-python/lxml[${PYTHON_USEDEP}] ) + opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] ) + pyglet? ( dev-python/pyglet[${PYTHON_USEDEP}] ) + symengine? ( dev-python/symengine[${PYTHON_USEDEP}] ) + texmacs? ( app-office/texmacs ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +PATCHES=( + "${FILESDIR}/${P}-py312.patch" + "${FILESDIR}/${PN}-1.12-c99.patch" +) + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=( + # require old version of antlr4 + sympy/parsing/tests/test_autolev.py + sympy/parsing/tests/test_latex.py + # crash due to assertions in sys-devel/llvm[debug] + sympy/parsing/tests/test_c_parser.py + + # TODO: pytest? + sympy/solvers/ode/tests/test_systems.py::test_linear_3eq_order1_type4_long_check + sympy/solvers/ode/tests/test_systems.py::test_linear_3eq_order1_type4_long_dsolve_dotprodsimp + + # either very slow or hanging + sympy/solvers/ode/tests/test_systems.py::test_linear_new_order1_type2_de_lorentz_slow_check + sympy/integrals/tests/test_failing_integrals.py::test_issue_15227 + sympy/matrices/tests/test_matrices.py::test_pinv_rank_deficient_when_diagonalization_fails + sympy/solvers/ode/tests/test_systems.py::test_nonlinear_3eq_order1_type1 + sympy/solvers/ode/tests/test_systems.py::test_nonlinear_3eq_order1_type3 + ) + + case ${EPYTHON} in + pypy3) + if has_version "