diff options
author | Sam James <sam@gentoo.org> | 2023-12-09 16:25:15 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-12-09 18:05:59 +0000 |
commit | ce49e41b8d2e03a25f46940ef684daebea64dfd0 (patch) | |
tree | 6df6b087df10c22e7bb953da6c33c90bf6adc4b1 /dev-python/sympy | |
parent | dev-lang/mono: fix modern C issue in configure (diff) | |
download | gentoo-ce49e41b8d2e03a25f46940ef684daebea64dfd0.tar.gz gentoo-ce49e41b8d2e03a25f46940ef684daebea64dfd0.tar.bz2 gentoo-ce49e41b8d2e03a25f46940ef684daebea64dfd0.zip |
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 <sam@gentoo.org>
Diffstat (limited to 'dev-python/sympy')
-rw-r--r-- | dev-python/sympy/files/sympy-1.12-c99.patch | 48 | ||||
-rw-r--r-- | dev-python/sympy/sympy-1.12-r1.ebuild | 116 |
2 files changed, 164 insertions, 0 deletions
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 <loganjerry@gmail.com> +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 "<dev-python/pypy3_10-exe-7.3.13_p2" || + has_version "<dev-python/pypy3_10-exe-bin-7.3.13_p2" + then + EPYTEST_DESELECT+=( + # https://foss.heptapod.net/pypy/pypy/-/issues/4032 + sympy/tensor/array/tests/test_array_comprehension.py::test_arraycomprehensionmap + ) + fi + ;; + esac + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + nonfatal epytest --veryquickcheck || + die -n "Tests failed with ${EPYTHON}" +} + +python_install_all() { + local DOCS=( AUTHORS README.md ) + + if use examples; then + dodoc -r examples + docompress -x /usr/share/doc/${PF}/examples + fi + + distutils-r1_python_install_all + + if use texmacs; then + exeinto /usr/libexec/TeXmacs/bin/ + doexe data/TeXmacs/bin/tm_sympy + insinto /usr/share/TeXmacs/plugins/sympy/ + doins -r data/TeXmacs/progs + fi +} |