From 33657b9465a62615ae6b389c7d39d8270f41cbd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Mon, 22 Jan 2024 00:30:44 -0300 Subject: [PATCH 1/2] python3-scipy: update to 1.12.0. --- srcpkgs/python3-scipy/patches/19909.patch | 40 +++++++++++++++++++ .../python3-scipy/patches/dep-versions.patch | 23 ----------- srcpkgs/python3-scipy/template | 13 ++++-- 3 files changed, 50 insertions(+), 26 deletions(-) create mode 100644 srcpkgs/python3-scipy/patches/19909.patch delete mode 100644 srcpkgs/python3-scipy/patches/dep-versions.patch diff --git a/srcpkgs/python3-scipy/patches/19909.patch b/srcpkgs/python3-scipy/patches/19909.patch new file mode 100644 index 0000000000000..b861d2b96c33c --- /dev/null +++ b/srcpkgs/python3-scipy/patches/19909.patch @@ -0,0 +1,40 @@ +See: https://github.com/scipy/scipy/pull/19909 + +From 8c96a1f742335bca283aae418763aaba62c03378 Mon Sep 17 00:00:00 2001 +From: Ilhan Polat +Date: Thu, 18 Jan 2024 14:47:42 +0100 +Subject: [PATCH] MAINT:linalg:Adjust lwork/liwork changes OpenBLAS 0.3.26 + +See https://github.com/Reference-LAPACK/lapack/pull/942 +--- + scipy/linalg/flapack_sym_herm.pyf.src | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/scipy/linalg/flapack_sym_herm.pyf.src b/scipy/linalg/flapack_sym_herm.pyf.src +index f07dbaecbc72..af04e0d8d8d8 100644 +--- a/scipy/linalg/flapack_sym_herm.pyf.src ++++ b/scipy/linalg/flapack_sym_herm.pyf.src +@@ -762,8 +762,8 @@ subroutine syevr(compute_v,range,lower,n,a,lda,vl,vu,il,iu,abstol,w,z,m + optional,intent(in) :: vl=0.0 + optional,intent(in),check(vu>=vl),depend(vl) :: vu=1.0 + intent(in) :: abstol=0.0 +- integer optional,intent(in),depend(n),check(lwork>=max(1,26*n)||lwork==-1) :: lwork=max(26*n,1) +- integer optional,intent(in),depend(n),check(liwork>=max(1,10*n)||liwork==-1):: liwork= max(1,10*n) ++ integer optional,intent(in),depend(n),check(lwork>=(n <= 1 ? 1 : max(1,26*n))||lwork==-1) :: lwork=max(26*n,1) ++ integer optional,intent(in),depend(n),check(liwork>=(n <= 1 ? 1 : max(1,10*n))||liwork==-1):: liwork= max(1,10*n) + + integer intent(hide),depend(a) :: n=shape(a,0) + integer intent(hide),depend(n) :: lda=max(1,n) +@@ -832,9 +832,9 @@ subroutine heevr(compute_v,range,lower,n,a,lda,vl,vu,il,iu,abstol,w,z, + optional,intent(in) :: vl=0.0 + optional,intent(in),check(vu>vl),depend(vl) :: vu=1.0 + intent(in) :: abstol=0.0 +- integer optional,intent(in),depend(n),check(lwork>=max(2*n,1)||lwork==-1) :: lwork=max(2*n,1) +- integer optional,intent(in),depend(n),check(lrwork>=max(24*n,1)||lrwork==-1) :: lrwork=max(24*n,1) +- integer optional,intent(in),depend(n),check(liwork>=max(1,10*n)||liwork==-1):: liwork= max(1,10*n) ++ integer optional,intent(in),depend(n),check(lwork>=(n <= 1 ? 1 : max(1,2*n))||lwork==-1) :: lwork=max(2*n,1) ++ integer optional,intent(in),depend(n),check(lrwork>=(n <= 1 ? 1 : max(1,24*n))||lrwork==-1) :: lrwork=max(24*n,1) ++ integer optional,intent(in),depend(n),check(liwork>=(n <= 1 ? 1 : max(1,10*n))||liwork==-1):: liwork= max(1,10*n) + + integer intent(hide),depend(a) :: n=shape(a,0) + integer intent(hide),depend(n) :: lda=max(1,n) diff --git a/srcpkgs/python3-scipy/patches/dep-versions.patch b/srcpkgs/python3-scipy/patches/dep-versions.patch deleted file mode 100644 index ac62f0b7fb069..0000000000000 --- a/srcpkgs/python3-scipy/patches/dep-versions.patch +++ /dev/null @@ -1,23 +0,0 @@ -Several dependencies have needlessly restrictive version requirements, which -causes build failures against more up-to-date Void packages. - ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -11,13 +11,13 @@ - build-backend = 'mesonpy' - requires = [ - # Reason for `<`: future-proofing (0.14.0 released and known to work) -- "meson-python>=0.12.1,<0.15.0", -+ "meson-python>=0.12.1", - # Reason for `<`: we want to build the 1.11.x releases with 0.29.x (too many changes in 3.0) -- "Cython>=0.29.35,<3.0", # when updating version, also update check in meson.build -+ "Cython>=0.29.35", - # Reason for `<`: future-proofing (2.11.1 is the most recent version) -- "pybind11>=2.10.4,<2.11.1", -+ "pybind11>=2.10.4", - # Reason for `<`: future-proofing (0.14.0 released and known to work) -- "pythran>=0.12.0,<0.15.0", -+ "pythran>=0.12.0", - - # NumPy dependencies - to update these, sync from - # https://github.com/scipy/oldest-supported-numpy/, and then diff --git a/srcpkgs/python3-scipy/template b/srcpkgs/python3-scipy/template index 88128aaa3a3bb..3915ca79f5f0e 100644 --- a/srcpkgs/python3-scipy/template +++ b/srcpkgs/python3-scipy/template @@ -1,6 +1,6 @@ # Template file for 'python3-scipy' pkgname=python3-scipy -version=1.11.4 +version=1.12.0 revision=1 build_style=python3-pep517 build_helper="meson numpy" @@ -12,13 +12,16 @@ hostmakedepends="python3-meson-python python3-Cython python3-pybind11 makedepends="python3-devel python3-pybind11 python3-numpy pythran $(vopt_if openblas openblas-devel "lapack-devel cblas-devel")" depends="python3-numpy" +checkdepends="python3-pytest python3-pytest-xdist python3-hypothesis python3-pooch + python3-matplotlib python3-mpmath python3-psutil python3-sympy" short_desc="Scientific library for Python3" maintainer="Andrew J. Hesford " license="BSD-3-Clause" homepage="https://scipy.org/" distfiles="${PYPI_SITE}/s/scipy/scipy-${version}.tar.gz" -checksum=90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa -make_check="no" # Tests need an installed copy to run and meson makes this tough +checksum=4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3 +# must be tested from site dir of installed version (see dev.py:739) +make_check_pre='eval env -C "${testdir}/${py3_sitelib}"' build_options="openblas" @@ -37,6 +40,10 @@ if [ "$build_option_openblas" ]; then esac fi +if [ "$XBPS_CHECK_PKGS" != full ]; then + make_check_args="-m 'not slow'" +fi + post_install() { vlicense LICENSE.txt } From cd2f090ba8b51d57a80bd5287ce535d93c1d7ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Mon, 22 Jan 2024 00:34:32 -0300 Subject: [PATCH 2/2] sagemath: patch for scipy 1.12. See: https://github.com/sagemath/sage/pull/37123 Also apply a few minor fixes. --- srcpkgs/sagemath/files/sage_conf.py | 1 + .../patches/36862-giac_1.9.0-73.patch | 15 +++++++++++ .../sagemath/patches/37123-scipy_1.12.patch | 26 +++++++++++++++++++ srcpkgs/sagemath/patches/get_patches | 7 ++++- srcpkgs/sagemath/template | 8 +++--- 5 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 srcpkgs/sagemath/patches/36862-giac_1.9.0-73.patch create mode 100644 srcpkgs/sagemath/patches/37123-scipy_1.12.patch diff --git a/srcpkgs/sagemath/files/sage_conf.py b/srcpkgs/sagemath/files/sage_conf.py index bc5388de8956d..b5b2360311844 100644 --- a/srcpkgs/sagemath/files/sage_conf.py +++ b/srcpkgs/sagemath/files/sage_conf.py @@ -1,3 +1,4 @@ # configuration for sage on void linux SAGE_SHARE = "/usr/share/sagemath" GAP_SHARE_DIR = "/usr/share/gap" +JMOL_DIR = "/usr/share/jmol" diff --git a/srcpkgs/sagemath/patches/36862-giac_1.9.0-73.patch b/srcpkgs/sagemath/patches/36862-giac_1.9.0-73.patch new file mode 100644 index 0000000000000..8eb2c20a34c52 --- /dev/null +++ b/srcpkgs/sagemath/patches/36862-giac_1.9.0-73.patch @@ -0,0 +1,15 @@ +diff --git a/src/sage/calculus/calculus.py b/src/sage/calculus/calculus.py +index dfaafb4353f..8d62ade24c8 100644 +--- a/src/sage/calculus/calculus.py ++++ b/src/sage/calculus/calculus.py +@@ -568,8 +568,8 @@ def symbolic_sum(expression, v, a, b, algorithm='maxima', hold=False): + + An example of this summation with Giac:: + +- sage: symbolic_sum(1/(1+k^2), k, -oo, oo, algorithm='giac') +- (pi*e^(2*pi) - pi*e^(-2*pi))/(e^(2*pi) + e^(-2*pi) - 2) ++ sage: symbolic_sum(1/(1+k^2), k, -oo, oo, algorithm='giac').factor() ++ pi*(e^(2*pi) + 1)/((e^pi + 1)*(e^pi - 1)) + + The same summation is solved by SymPy:: + diff --git a/srcpkgs/sagemath/patches/37123-scipy_1.12.patch b/srcpkgs/sagemath/patches/37123-scipy_1.12.patch new file mode 100644 index 0000000000000..3973b55cdbd51 --- /dev/null +++ b/srcpkgs/sagemath/patches/37123-scipy_1.12.patch @@ -0,0 +1,26 @@ +diff --git a/src/sage/matrix/matrix_double_dense.pyx b/src/sage/matrix/matrix_double_dense.pyx +index 5d19067f2ed..97e50fb2616 100644 +--- a/src/sage/matrix/matrix_double_dense.pyx ++++ b/src/sage/matrix/matrix_double_dense.pyx +@@ -867,7 +867,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): + # set cutoff as RDF element + if eps == 'auto': + if scipy is None: import scipy +- eps = 2*max(self._nrows, self._ncols)*scipy.finfo(float).eps*sv[0] ++ eps = 2*max(self._nrows, self._ncols)*numpy.finfo(float).eps*sv[0] + eps = RDF(eps) + # locate non-zero entries + rank = 0 +diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py +index 708d440a205..9f973c6bd69 100644 +--- a/src/sage/numerical/optimize.py ++++ b/src/sage/numerical/optimize.py +@@ -426,7 +426,7 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm="default", + hess = func.hessian() + hess_fast = [ [fast_callable(a, vars=var_names, domain=float) for a in row] for row in hess] + hessian = lambda p: [[a(*p) for a in row] for row in hess_fast] +- from scipy import dot ++ from numpy import dot + hessian_p = lambda p,v: dot(numpy.array(hessian(p)),v) + min = optimize.fmin_ncg(f, [float(_) for _ in x0], fprime=gradient, + fhess=hessian, fhess_p=hessian_p, disp=verbose, **args) diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index a552b402727d3..b7836e27910d5 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -20,6 +20,11 @@ get_pr() { # run from patches dir cd $(dirname "$0") -# needs review +# all merged in 10.3.beta6 or before get_pr 35848 "flintlib 3.0" get_pr 36769 "fix jmol detect" +get_pr 36862 "giac 1.9.0-73" +get_pr 37004 "fix save_session when cython changes" + +# positive review +get_pr 37123 "scipy 1.12" diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index 5d5bdccd70a25..7bc92e7c10735 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,7 +1,7 @@ # Template file for 'sagemath' pkgname=sagemath version=10.2 -revision=1 +revision=2 build_wrksrc=pkgs/sagemath-standard build_style=python3-module _bindir=/usr/lib/sagemath/$version/bin @@ -15,7 +15,7 @@ makedepends="boost-devel brial-devel cliquer-devel ecl eclib-devel mpfr-devel ntl-devel openblas-devel pari-devel planarity-devel python3-cypari2 python3-cysignals python3-devel python3-gmpy2 python3-memory_allocator python3-numpy rankwidth-devel singular symmetrica-devel" -depends="eclib-devel fflas-ffpack flintlib-devel gcc-fortran gd-devel +depends="eclib-devel fflas-ffpack flintlib-devel gcc-fortran meson gd-devel gfan giac gsl-devel gzip libpng-devel linbox-devel m4ri-devel maxima-ecl mpfr-devel nauty ntl-devel palp pari-devel pari-elldata-small pari-galdata pari-galpol-small pari-seadata-small pkg-config python3-Cython python3-cypari2 @@ -26,7 +26,7 @@ depends="eclib-devel fflas-ffpack flintlib-devel gcc-fortran gd-devel python3-sympy python3-traitlets sage-data-combinatorial_designs sage-data-conway_polynomials sage-data-elliptic_curves sage-data-graphs sage-data-polytopes_db sympow tachyon threejs-sage" -checkdepends="$depends pythran python3-Sphinx meson" +checkdepends="$depends pythran python3-Sphinx" short_desc="Open source mathematics software" maintainer="Gonzalo TornarĂ­a " license="GPL-2.0-or-later" @@ -34,7 +34,7 @@ homepage="https://www.sagemath.org/" changelog="https://github.com/sagemath/sage/releases" distfiles="https://github.com/sagemath/sage/archive/refs/tags/$version.tar.gz" checksum=e7125f13495e1068edab73735aca7f9b2c655688096e9d109e628c023e76411f -nocross="due to ntl (eclib), fflas-ffpack, givaro, linbox, sympow, maxima" +nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" post_patch() { # git tree needs bootstrapping