From f984704e319fdaeec7c872c2f936844091dd5fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Thu, 30 Jan 2025 10:02:24 -0300 Subject: [PATCH 01/11] flintlib: update to 3.1.3+p1. --- srcpkgs/flintlib/template | 12 ++++++------ srcpkgs/flintlib/update | 8 +++++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/srcpkgs/flintlib/template b/srcpkgs/flintlib/template index 465cdf1d0d3f71..7bccdd746a28b6 100644 --- a/srcpkgs/flintlib/template +++ b/srcpkgs/flintlib/template @@ -1,7 +1,7 @@ # Template file for 'flintlib' pkgname=flintlib -version=3.1.2 -revision=2 +version=3.1.3+p1 +revision=1 build_style=gnu-configure configure_args="--prefix=/usr --disable-arch $(vopt_with ntl) $(vopt_if openblas --with-blas-include=${XBPS_CROSS_BASE}/usr/include/openblas)" @@ -9,11 +9,11 @@ makedepends="mpfr-devel $(vopt_if ntl ntl-devel) $(vopt_if openblas openblas-devel)" short_desc="Fast Library for Number Theory" maintainer="Gonzalo Tornaría " -license="LGPL-2.1-or-later" +license="LGPL-3.0-or-later" homepage="https://flintlib.org" -changelog="https://raw.githubusercontent.com/wbhart/flint2/trunk/NEWS" -distfiles="https://flintlib.org/flint-${version}.tar.gz" -checksum=fdb3a431a37464834acff3bdc145f4fe8d0f951dd5327c4c6f93f4cbac5c2700 +changelog="https://raw.githubusercontent.com/flintlib/flint/refs/heads/main/doc/source/history.rst" +distfiles="https://github.com/flintlib/flint/releases/download/v${version/+/-}/flint-${version/+/-}.tar.xz" +checksum=8d75df8f2347534bd3245ef6f43cb91e43abd152572c6fe0bfffda55ec014920 build_options="ntl openblas" desc_option_ntl="enable NTL support" diff --git a/srcpkgs/flintlib/update b/srcpkgs/flintlib/update index 21d6ab4bae5b5c..4cdaabc14b20ea 100644 --- a/srcpkgs/flintlib/update +++ b/srcpkgs/flintlib/update @@ -1,3 +1,5 @@ -# package was named 'flintlib' because of another package -pkgname=flint -site="https://flintlib.org/downloads.html" +pattern="/archive/refs/tags/v?\K[\d.]+(-(p|rc)[0-9]+)?(?=\.tar\.gz)" +version=${version/+/.} +if [[ "$version" != *rc* ]]; then + ignore=*rc* +fi From a4303d92f010f3dc23300cb7ded0bdeb7e8c42ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Thu, 30 Jan 2025 08:42:56 -0300 Subject: [PATCH 02/11] python3-cysignals: update to 1.12.3. --- .../patches/216-fix_custom_signal.patch | 54 ------------------- .../patches/222-fix_data_race.patch | 51 ------------------ srcpkgs/python3-cysignals/template | 4 +- 3 files changed, 2 insertions(+), 107 deletions(-) delete mode 100644 srcpkgs/python3-cysignals/patches/216-fix_custom_signal.patch delete mode 100644 srcpkgs/python3-cysignals/patches/222-fix_data_race.patch diff --git a/srcpkgs/python3-cysignals/patches/216-fix_custom_signal.patch b/srcpkgs/python3-cysignals/patches/216-fix_custom_signal.patch deleted file mode 100644 index ced6b8732c579c..00000000000000 --- a/srcpkgs/python3-cysignals/patches/216-fix_custom_signal.patch +++ /dev/null @@ -1,54 +0,0 @@ -Taken from https://github.com/sagemath/cysignals/pull/222 - -diff --git a/pyproject.toml b/pyproject.toml -index d30ad23..edcb5c8 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -34,4 +34,4 @@ requires-python = ">=3.9" - - [tool.pytest.ini_options] - addopts = "--doctest-modules --import-mode importlib" --norecursedirs = "builddir docs example" -+testpaths = "src tests" -diff --git a/src/cysignals/implementation.c b/src/cysignals/implementation.c -index 20a83d0..18b8144 100644 ---- a/src/cysignals/implementation.c -+++ b/src/cysignals/implementation.c -@@ -591,7 +591,7 @@ static void _sig_on_interrupt_received(void) - do_raise_exception(cysigs.interrupt_received); - cysigs.sig_on_count = 0; - cysigs.interrupt_received = 0; -- custom_signal_unblock(); -+ custom_set_pending_signal(0); - - #if HAVE_SIGPROCMASK - sigprocmask(SIG_SETMASK, &oldset, NULL); -diff --git a/tests/test_custom_signals.py b/tests/test_custom_signals.py -new file mode 100644 -index 0000000..0afc36f ---- /dev/null -+++ b/tests/test_custom_signals.py -@@ -0,0 +1,23 @@ -+""" -+Tests for custom signals. -+""" -+ -+import time -+import pytest -+ -+def test_clear_pending(): -+ """ -+ Regression test for https://github.com/sagemath/cysignals/pull/216 -+ """ -+ -+ alarm = pytest.importorskip("cysignals.alarm") # n/a on windows -+ cypari2 = pytest.importorskip("cypari2") -+ -+ with pytest.raises(alarm.AlarmInterrupt): -+ alarm.alarm(0.01) -+ time.sleep(1) -+ -+ try: -+ cypari2.Pari() -+ except alarm.AlarmInterrupt: -+ pytest.fail("AlarmInterrupt was not cleared") diff --git a/srcpkgs/python3-cysignals/patches/222-fix_data_race.patch b/srcpkgs/python3-cysignals/patches/222-fix_data_race.patch deleted file mode 100644 index c9fdf3885f5c22..00000000000000 --- a/srcpkgs/python3-cysignals/patches/222-fix_data_race.patch +++ /dev/null @@ -1,51 +0,0 @@ -Taken from https://github.com/sagemath/cysignals/pull/222 - -diff --git a/src/cysignals/signals.pyx b/src/cysignals/signals.pyx -index 72f206e..96a99ad 100644 ---- a/src/cysignals/signals.pyx -+++ b/src/cysignals/signals.pyx -@@ -25,7 +25,7 @@ See ``tests.pyx`` for extensive tests. - - from libc.signal cimport * - from libc.stdio cimport freopen, stdin --from cpython.ref cimport Py_XINCREF, Py_XDECREF -+from cpython.ref cimport Py_XINCREF, Py_CLEAR - from cpython.exc cimport (PyErr_Occurred, PyErr_NormalizeException, - PyErr_Fetch, PyErr_Restore) - from cpython.version cimport PY_MAJOR_VERSION -@@ -204,7 +204,7 @@ cdef int sig_raise_exception "sig_raise_exception"(int sig, const char* msg) exc - PyErr_Fetch(&typ, &val, &tb) - PyErr_NormalizeException(&typ, &val, &tb) - Py_XINCREF(val) -- Py_XDECREF(cysigs.exc_value) -+ Py_CLEAR(cysigs.exc_value) - cysigs.exc_value = val - PyErr_Restore(typ, val, tb) - -@@ -362,8 +362,7 @@ cdef void verify_exc_value() noexcept: - """ - if cysigs.exc_value.ob_refcnt == 1: - # No other references => exception is certainly gone -- Py_XDECREF(cysigs.exc_value) -- cysigs.exc_value = NULL -+ Py_CLEAR(cysigs.exc_value) - return - - if PyErr_Occurred() is not NULL: -@@ -394,8 +393,7 @@ cdef void verify_exc_value() noexcept: - pass - else: - if handled is cysigs.exc_value: -- Py_XDECREF(cysigs.exc_value) -- cysigs.exc_value = NULL -+ Py_CLEAR(cysigs.exc_value) - return - - # To be safe, we run the garbage collector because it may clear -@@ -411,5 +409,4 @@ cdef void verify_exc_value() noexcept: - # called again during garbage collection it might have already been set - # to NULL; see https://github.com/sagemath/cysignals/issues/126 - if cysigs.exc_value != NULL and cysigs.exc_value.ob_refcnt == 1: -- Py_XDECREF(cysigs.exc_value) -- cysigs.exc_value = NULL -+ Py_CLEAR(cysigs.exc_value) diff --git a/srcpkgs/python3-cysignals/template b/srcpkgs/python3-cysignals/template index b2bb20342806b1..e2216146e4c207 100644 --- a/srcpkgs/python3-cysignals/template +++ b/srcpkgs/python3-cysignals/template @@ -1,6 +1,6 @@ # Template file for 'python3-cysignals' pkgname=python3-cysignals -version=1.12.2 +version=1.12.3 revision=1 build_style=python3-pep517 build_helper=meson @@ -14,7 +14,7 @@ license="LGPL-3.0-or-later" homepage="https://github.com/sagemath/cysignals" changelog="https://github.com/sagemath/cysignals/releases" distfiles="${PYPI_SITE}/c/cysignals/cysignals-${version}.tar.gz" -checksum=407db178fb18a91118ca742ede62000b2bee62b617eb49d26fcdad7e9ba2771a +checksum=89f7626dbf29db5ab3d6eff15a89978f4eb5193c320e9099bcc157dacdefd1eb # cysignals must be compiled without _FORTIFY_SOURCE CFLAGS="-U_FORTIFY_SOURCE" From 3115af345479f5c8ff2781cd9392c99e08dc376c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 14 Jan 2025 21:00:12 -0300 Subject: [PATCH 03/11] symmetrica: update to 3.1.0. --- common/shlibs | 2 +- srcpkgs/symmetrica/template | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common/shlibs b/common/shlibs index 175786786b4936..9cc55b67ac1bac 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4199,7 +4199,7 @@ libgf2x.so.3 gf2x-1.3.0_1 libntl.so.44 ntl-11.5.1_1 libflint.so.19 flintlib-3.1.0_1 libec.so.14 eclib-20241112_1 -libsymmetrica.so.2 symmetrica-3.0.1_1 +libsymmetrica.so.3 symmetrica-3.1.0_1 libLfunction.so.1 lcalc-2.0.4_1 liblrcalc.so.2 lrcalc-2.1_1 libwayland-client++.so.1 libwaylandpp-1.0.0_1 diff --git a/srcpkgs/symmetrica/template b/srcpkgs/symmetrica/template index b6b53d3cbf6fe5..f6966e30268b17 100644 --- a/srcpkgs/symmetrica/template +++ b/srcpkgs/symmetrica/template @@ -1,15 +1,16 @@ # Template file for 'symmetrica' pkgname=symmetrica -version=3.0.1 +version=3.1.0 revision=1 build_style=gnu-configure -hostmakedepends="automake libtool" +hostmakedepends="automake libtool pkg-config" short_desc="Collection of C routines for representation theory" maintainer="Gonzalo Tornaría " license="ISC" homepage="https://gitlab.com/sagemath/symmetrica" +changelog="https://gitlab.com/sagemath/symmetrica/-/releases" distfiles="https://gitlab.com/sagemath/symmetrica/-/archive/${version}/symmetrica-${version}.tar.bz2" -checksum=260028143f3ea3594fed75651e10176d2f53edae5e1af1661d5b82d617e233d6 +checksum=46137328f5dfae50167356ed9bcdf0aadef9dcb70553d3788106dc7c5b890ee8 pre_configure() { autoreconf -fi @@ -24,7 +25,6 @@ symmetrica-devel_package() { short_desc+=" - development files" pkg_install() { vmove usr/include - vmove "usr/lib/*.a" vmove "usr/lib/*.so" } } From 47991110e7640fc995aa5b6462e3e123c6c283b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 14 Jan 2025 21:14:45 -0300 Subject: [PATCH 04/11] lcalc: update to 2.1.0. --- common/shlibs | 2 +- srcpkgs/lcalc/template | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/common/shlibs b/common/shlibs index 9cc55b67ac1bac..3583ac959a0220 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4200,7 +4200,7 @@ libntl.so.44 ntl-11.5.1_1 libflint.so.19 flintlib-3.1.0_1 libec.so.14 eclib-20241112_1 libsymmetrica.so.3 symmetrica-3.1.0_1 -libLfunction.so.1 lcalc-2.0.4_1 +libLfunction.so.2 lcalc-2.1.0_1 liblrcalc.so.2 lrcalc-2.1_1 libwayland-client++.so.1 libwaylandpp-1.0.0_1 libwayland-cursor++.so.1 libwaylandpp-1.0.0_1 diff --git a/srcpkgs/lcalc/template b/srcpkgs/lcalc/template index aaab6d14ead440..71795bbb947a49 100644 --- a/srcpkgs/lcalc/template +++ b/srcpkgs/lcalc/template @@ -1,7 +1,7 @@ # Template file for 'lcalc' pkgname=lcalc -version=2.0.5 -revision=3 +version=2.1.0 +revision=1 build_style=gnu-configure configure_args="--with-pari" hostmakedepends="automake libtool pkg-config gengetopt" @@ -12,7 +12,12 @@ license="GPL-2.0-or-later" homepage="https://gitlab.com/sagemath/lcalc" changelog="https://gitlab.com/sagemath/lcalc/-/raw/master/doc/ChangeLog" distfiles="https://gitlab.com/sagemath/lcalc/-/archive/${version}/lcalc-${version}.tar.bz2" -checksum=94efc160a2761de75df534707fd2ec53949c5389296d20ddbac1b285fe26d1ad +checksum=463f26cc42262a90440fcec95a56cc267f00d6ac9870dfe1f4838359696664d5 + +case $XBPS_TARGET_MACHINE in + # avoid numerical noise caused by extended-precision of registers + i686*) CXXFLAGS="-mfpmath=sse -msse2" ;; +esac pre_configure() { autoreconf -fi From 41c31a5060e31ef76c03089c86d47834a4fbe139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Thu, 2 Jan 2025 22:22:06 -0300 Subject: [PATCH 05/11] m4ri: update to 20250128. --- common/shlibs | 2 +- .../patches/m4ri-simd_cflags_in_tests.patch | 11 ---------- srcpkgs/m4ri/template | 21 ++++++++++++------- 3 files changed, 15 insertions(+), 19 deletions(-) delete mode 100644 srcpkgs/m4ri/patches/m4ri-simd_cflags_in_tests.patch diff --git a/common/shlibs b/common/shlibs index 3583ac959a0220..c5faa959613064 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4251,7 +4251,7 @@ libpolys-4.4.0.so singular-4.4.0_1 libsingular_resources-4.4.0.so singular-4.4.0_1 libbrial.so.3 brial-1.2.10_1 libbrial_groebner.so.3 brial-1.2.10_1 -libm4ri-0.0.20200125.so m4ri-20200125_1 +libm4ri.so.1 m4ri-20250128_1 libm4rie-0.0.20200125.so m4rie-20200125_1 libptytty.so.0 libptytty-2.0_1 libcoeurl.so.0.3 coeurl-0.3.0_1 diff --git a/srcpkgs/m4ri/patches/m4ri-simd_cflags_in_tests.patch b/srcpkgs/m4ri/patches/m4ri-simd_cflags_in_tests.patch deleted file mode 100644 index ffa64b120fc28f..00000000000000 --- a/srcpkgs/m4ri/patches/m4ri-simd_cflags_in_tests.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/tests/Makefile.in 2020-01-25 01:34:59.000000000 -0300 -+++ b/tests/Makefile.in 2021-11-10 08:13:46.505793446 -0300 -@@ -609,7 +609,7 @@ - TOPBUILDDIR = $(builddir)/.. - DEFINES = - # include TOPBUILDIR for m4ri_config.h --AM_CFLAGS = -I$(TOPSRCDIR) -I$(TOPBUILDDIR) -D_XOPEN_SOURCE=600 $(DEFINES) @OPENMP_CFLAGS@ @PAPI_CFLAGS@ -+AM_CFLAGS = -I$(TOPSRCDIR) -I$(TOPBUILDDIR) -D_XOPEN_SOURCE=600 $(DEFINES) $(SIMD_CFLAGS) $(OPENMP_CFLAGS) $(PAPI_CFLAGS) - STAGEDIR := $(realpath -s $(TOPBUILDDIR)/.libs) - AM_LDFLAGS = -L$(STAGEDIR) -Wl,-rpath,$(STAGEDIR) -lm4ri $(LIBM) @PAPI_LDFLAGS@ @PAPI_LIBS@ -no-install - test_smallops_SOURCES = test_smallops.c testing.c testing.h diff --git a/srcpkgs/m4ri/template b/srcpkgs/m4ri/template index 56e60ed16f5998..2d7041d9591440 100644 --- a/srcpkgs/m4ri/template +++ b/srcpkgs/m4ri/template @@ -1,17 +1,24 @@ # Template file for 'm4ri' pkgname=m4ri -version=20200125 -revision=2 +version=20250128 +revision=1 build_style=gnu-configure -configure_args="--enable-openmp ax_cv_have_sse3_ext=no ax_cv_have_ssse3_ext=no" +# use defaults for cache sizes instead of build machine +configure_args="--enable-openmp --with-cachesize=0:0:0" hostmakedepends="pkg-config" makedepends="libgomp-devel libpng-devel" short_desc="Library for fast arithmetic with dense matrices over GF(2)" -maintainer="Eloi Torrents " +maintainer="Eloi Torrents " license="GPL-2.0-or-later" -homepage="https://bitbucket.org/malb/m4ri" -distfiles="https://bitbucket.org/malb/m4ri/downloads/${pkgname}-${version}.tar.gz" -checksum=0dfb34aed351882a0f2281535ea6f81c690a5efeb14edab131d9ba0dffe44863 +homepage="https://github.com/malb/m4ri" +changelog="https://github.com/malb/m4ri#history" +distfiles="https://github.com/malb/m4ri/releases/download/${version}/m4ri-${version}.tar.gz" +checksum=b4098db651483c0e1506c16f79091eba02f41dadbacf1bb25be8eb97e5515f96 + +pre_check() { + # the testsuite is very slow when run in parallel! + unset makejobs +} m4ri-devel_package() { short_desc+=" - development files" From c4854aef85219295eb79b99426ee18063892fc3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 3 Jan 2025 00:50:12 -0300 Subject: [PATCH 06/11] m4rie: update to 20250128. --- common/shlibs | 2 +- srcpkgs/m4rie/template | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/common/shlibs b/common/shlibs index c5faa959613064..09e5acf3fc7625 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4252,7 +4252,7 @@ libsingular_resources-4.4.0.so singular-4.4.0_1 libbrial.so.3 brial-1.2.10_1 libbrial_groebner.so.3 brial-1.2.10_1 libm4ri.so.1 m4ri-20250128_1 -libm4rie-0.0.20200125.so m4rie-20200125_1 +libm4rie.so.1 m4rie-20250128_1 libptytty.so.0 libptytty-2.0_1 libcoeurl.so.0.3 coeurl-0.3.0_1 libKPim6PkPass.so.6 kpkpass-24.02.0_1 diff --git a/srcpkgs/m4rie/template b/srcpkgs/m4rie/template index 0e775df1dc1ce0..f327a02526a0b4 100644 --- a/srcpkgs/m4rie/template +++ b/srcpkgs/m4rie/template @@ -1,19 +1,26 @@ # Template file for 'm4rie' pkgname=m4rie -version=20200125 -revision=2 +version=20250128 +revision=1 build_style=gnu-configure +hostmakedepends="pkg-config" makedepends="m4ri-devel" short_desc="Library for fast arithmetic with dense matrices over GF(2^e)" -maintainer="Eloi Torrents " +maintainer="Eloi Torrents " license="GPL-2.0-or-later" -homepage="https://bitbucket.org/malb/m4rie/wiki/Home" -distfiles="https://bitbucket.org/malb/m4rie/downloads/m4rie-${version}.tar.gz" -checksum=7f3107f7cd10f6c22d9663d9536e1af2f551e10183601852a60d760918caf58d +homepage="https://github.com/malb/m4rie" +changelog="https://github.com/malb/m4rie#history" +distfiles="https://github.com/malb/m4rie/releases/download/${version}/m4rie-${version}.tar.gz" +checksum=96f1adafd50e6a0b51dc3aa1cb56cb6c1361ae7c10d97dc35c3fa70822a55bd7 + +pre_check() { + # the testsuite is very slow when run in parallel! + unset makejobs +} m4rie-devel_package() { short_desc+=" - development files" - depends="${sourcepkg}>=${version}_${revision}" + depends="${sourcepkg}>=${version}_${revision} ${makedepends}" pkg_install() { vmove usr/include vmove "usr/lib/*.a" From ff14aefa9fc34c9a05cbf14ebf6c6aa4ed9fd866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 3 Jan 2025 14:53:06 -0300 Subject: [PATCH 07/11] brial: rebuild for m4ri-20250128. --- srcpkgs/brial/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/brial/template b/srcpkgs/brial/template index 2f8e195a8804ba..3fee9468bdc86d 100644 --- a/srcpkgs/brial/template +++ b/srcpkgs/brial/template @@ -1,7 +1,7 @@ # Template file for 'brial' pkgname=brial version=1.2.12 -revision=1 +revision=2 build_style=gnu-configure hostmakedepends="pkg-config" makedepends="boost-devel m4ri-devel" From 94d030420f985ce5516efb6e5ead2494c9f9e439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Thu, 23 Jan 2025 00:49:42 -0300 Subject: [PATCH 08/11] eclib: update to 20250122. --- srcpkgs/eclib/patches/fix-32bit-modrat.patch | 15 --------------- srcpkgs/eclib/template | 6 +++--- 2 files changed, 3 insertions(+), 18 deletions(-) delete mode 100644 srcpkgs/eclib/patches/fix-32bit-modrat.patch diff --git a/srcpkgs/eclib/patches/fix-32bit-modrat.patch b/srcpkgs/eclib/patches/fix-32bit-modrat.patch deleted file mode 100644 index 14988e0a793fa5..00000000000000 --- a/srcpkgs/eclib/patches/fix-32bit-modrat.patch +++ /dev/null @@ -1,15 +0,0 @@ -new_modrat is broken on 32 bit, revert to old_modrat - ---- a/libsrc/arith.cc -+++ b/libsrc/arith.cc -@@ -429,8 +430,8 @@ int new_modrat(long n, long m, long& a, long& b); - - int modrat(long n, long m, long& a, long& b) - { -- // return old_modrat(n, m, a, b); -- return new_modrat(n, m, a, b); -+ return old_modrat(n, m, a, b); -+ //return new_modrat(n, m, a, b); - } - - int old_modrat(long n, long m, long& a, long& b) diff --git a/srcpkgs/eclib/template b/srcpkgs/eclib/template index 75fd264f57be5a..86294212ae64a9 100644 --- a/srcpkgs/eclib/template +++ b/srcpkgs/eclib/template @@ -1,6 +1,6 @@ # Template file for 'eclib' pkgname=eclib -version=20241112 +version=20250122 revision=1 build_style=gnu-configure configure_args="--with-flint --with-boost" @@ -10,8 +10,8 @@ maintainer="Gonzalo Tornaría " license="GPL-2.0-or-later" homepage="https://github.com/JohnCremona/eclib" changelog="https://github.com/JohnCremona/eclib/releases" -distfiles="https://github.com/JohnCremona/eclib/releases/download/v${version}/eclib-${version}.tar.bz2" -checksum=30765c27ca1420141f83517897119d0185fea9b31132392170ddae40b060e46f +distfiles="https://github.com/JohnCremona/eclib/releases/download/${version}/eclib-${version}.tar.bz2" +checksum=9f8c2b32e24a4f20d7cc2d336ea30c8ea03b5b0953c2d32adda0c496e7616899 eclib-devel_package() { depends="${sourcepkg}>=${version}_${revision} ntl-devel" From 9bac68e387cf5460453fd29299a34d06102eaa11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 21 Jan 2025 20:11:14 -0300 Subject: [PATCH 09/11] singular: update to 4.4.1. --- common/shlibs | 8 ++++---- srcpkgs/singular/template | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/common/shlibs b/common/shlibs index 09e5acf3fc7625..34eb4ce8b27957 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4245,10 +4245,10 @@ libecl.so.24.5 ecl-24.5.10_1 libecm.so.1 ecm-7.0.4_3 libcliquer.so.1 cliquer-1.22_1 libomalloc-0.9.6.so singular-4.2.1_1 -libSingular-4.4.0.so singular-4.4.0_1 -libfactory-4.4.0.so singular-4.4.0_1 -libpolys-4.4.0.so singular-4.4.0_1 -libsingular_resources-4.4.0.so singular-4.4.0_1 +libSingular-4.4.1.so singular-4.4.1_1 +libfactory-4.4.1.so singular-4.4.1_1 +libpolys-4.4.1.so singular-4.4.1_1 +libsingular_resources-4.4.1.so singular-4.4.1_1 libbrial.so.3 brial-1.2.10_1 libbrial_groebner.so.3 brial-1.2.10_1 libm4ri.so.1 m4ri-20250128_1 diff --git a/srcpkgs/singular/template b/srcpkgs/singular/template index aa4899c7bdaab9..310b5a08ec064a 100644 --- a/srcpkgs/singular/template +++ b/srcpkgs/singular/template @@ -1,6 +1,6 @@ # Template file for 'singular' pkgname=singular -version=4.4.0 +version=4.4.1 revision=1 _majver=${version%p*} build_style=gnu-configure @@ -20,7 +20,7 @@ maintainer="dkwo , Gonzalo Tornaría license="GPL-2.0-or-later" homepage="https://www.singular.uni-kl.de" distfiles="https://www.singular.uni-kl.de/ftp/pub/Math/Singular/SOURCES/${_majver//./-}/singular-${version}.tar.gz" -checksum=c269abbd24c84fe33edc0af1e78b8fec53d8e94338410ac06c2666cfd40d43f2 +checksum=6a4fbaaed05b89c35bff3b1c5e124344a088097f81affe129c9ae619b282b49b if [ -z "$CROSS_BUILD" ]; then makedepends+=" ntl-devel" From e0a264fbf5a279d91302932a52ad7582e624906c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 3 Jan 2025 15:08:10 -0300 Subject: [PATCH 10/11] sagemath: rebuild for updates changed sonames: symmetrica, lcalc, m4ri, m4rie, brial, singular --- .../patches/39368-singular_4.4.1.patch | 715 ++++++++++++++++++ srcpkgs/sagemath/patches/get_patches | 3 +- srcpkgs/sagemath/template | 2 +- 3 files changed, 718 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/sagemath/patches/39368-singular_4.4.1.patch diff --git a/srcpkgs/sagemath/patches/39368-singular_4.4.1.patch b/srcpkgs/sagemath/patches/39368-singular_4.4.1.patch new file mode 100644 index 00000000000000..aba16fa1d7ae75 --- /dev/null +++ b/srcpkgs/sagemath/patches/39368-singular_4.4.1.patch @@ -0,0 +1,715 @@ +diff --git a/src/sage/categories/pushout.py b/src/sage/categories/pushout.py +index a2b5e910257..17f059f967f 100644 +--- a/src/sage/categories/pushout.py ++++ b/src/sage/categories/pushout.py +@@ -3925,8 +3925,8 @@ class BlackBoxConstructionFunctor(ConstructionFunctor): + sage: FS = BlackBoxConstructionFunctor(singular) + sage: FS(QQ['t']) # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names t + // block 2 : ordering C +diff --git a/src/sage/interfaces/expect.py b/src/sage/interfaces/expect.py +index 91f8efcf651..ff424335d56 100644 +--- a/src/sage/interfaces/expect.py ++++ b/src/sage/interfaces/expect.py +@@ -1328,8 +1328,8 @@ def _synchronize(self, cmd='1+%s;\n'): + sage: R. = QQ[]; f = x^3 + x + 1; g = x^3 - x - 1; r = f.resultant(g); gap(ZZ); singular(R) + Integers + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +diff --git a/src/sage/interfaces/interface.py b/src/sage/interfaces/interface.py +index bd1095e8c70..22fb4b8487c 100644 +--- a/src/sage/interfaces/interface.py ++++ b/src/sage/interfaces/interface.py +@@ -817,8 +817,8 @@ def __reduce__(self): + sage: S = singular.ring(0, ('x')) + sage: loads(dumps(S)) + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py +index d110c17bf16..59d01f4493d 100644 +--- a/src/sage/interfaces/singular.py ++++ b/src/sage/interfaces/singular.py +@@ -39,8 +39,8 @@ + sage: R1 = singular.ring(0, '(x,y)', 'dp') + sage: R1 + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 2 ++ // coefficients: QQ... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -220,12 +220,12 @@ + + sage: singular.lib('polylib.lib') + sage: singular.ring(32003, '(a,b,c,d,e,f)', 'lp') +- polynomial ring, over a field, global ordering +- // coefficients: ZZ/32003 +- // number of vars : 6 +- // block 1 : ordering lp +- // : names a b c d e f +- // block 2 : ordering C ++ polynomial ring, over a field, global ordering ++ // coefficients: ZZ/32003... ++ // number of vars : 6 ++ // block 1 : ordering lp ++ // : names a b c d e f ++ // block 2 : ordering C + sage: I = singular.ideal('cyclic(6)') + sage: g = singular('groebner(I)') + Traceback (most recent call last): +@@ -1074,8 +1074,8 @@ def ring(self, char=0, vars='(x)', order='lp', check=None): + sage: R = singular.ring(0, '(x,y,z)', 'dp') + sage: R + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 3 ++ // coefficients: QQ... ++ // number of vars : 3 + // block 1 : ordering dp + // : names x y z + // block 2 : ordering C +@@ -1153,16 +1153,16 @@ def set_ring(self, R): + sage: S = singular.ring('real', '(a,b)', 'lp') + sage: singular.current_ring() + polynomial ring, over a field, global ordering +- // coefficients: Float() +- // number of vars : 2 ++ // coefficients: Float()... ++ // number of vars : 2 + // block 1 : ordering lp + // : names a b + // block 2 : ordering C + sage: singular.set_ring(R) + sage: singular.current_ring() + polynomial ring, over a field, local ordering +- // coefficients: ZZ/7 +- // number of vars : 2 ++ // coefficients: ZZ/7... ++ // number of vars : 2 + // block 1 : ordering ds + // : names a b + // block 2 : ordering C +@@ -1203,15 +1203,15 @@ def current_ring(self): + sage: r = PolynomialRing(GF(127),3,'xyz', order='invlex') + sage: r._singular_() + polynomial ring, over a field, global ordering +- // coefficients: ZZ/127 +- // number of vars : 3 ++ // coefficients: ZZ/127... ++ // number of vars : 3 + // block 1 : ordering ip + // : names x y z + // block 2 : ordering C + sage: singular.current_ring() + polynomial ring, over a field, global ordering +- // coefficients: ZZ/127 +- // number of vars : 3 ++ // coefficients: ZZ/127... ++ // number of vars : 3 + // block 1 : ordering ip + // : names x y z + // block 2 : ordering C +@@ -1430,8 +1430,8 @@ def __copy__(self): + sage: cpQ.set_ring() + sage: cpQ + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 2 ++ // coefficients: QQ... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -1996,8 +1996,8 @@ def _sage_(self, R=None): + + sage: singular('basering') + polynomial ring, over a domain, global ordering +- // coefficients: ZZ +- // number of vars : 3 ++ // coefficients: ZZ... ++ // number of vars : 3 + // block 1 : ordering lp + // : names x y z + // block 2 : ordering C +@@ -2087,16 +2087,16 @@ def set_ring(self): + sage: S = singular.ring('real', '(a,b)', 'lp') + sage: singular.current_ring() + polynomial ring, over a field, global ordering +- // coefficients: Float() +- // number of vars : 2 ++ // coefficients: Float()... ++ // number of vars : 2 + // block 1 : ordering lp + // : names a b + // block 2 : ordering C + sage: R.set_ring() + sage: singular.current_ring() + polynomial ring, over a field, local ordering +- // coefficients: ZZ/7 +- // number of vars : 2 ++ // coefficients: ZZ/7... ++ // number of vars : 2 + // block 1 : ordering ds + // : names a b + // block 2 : ordering C +diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx +index 67cadf5d35c..87f0b7bab69 100644 +--- a/src/sage/libs/singular/function.pyx ++++ b/src/sage/libs/singular/function.pyx +@@ -276,8 +276,8 @@ cdef class RingWrap: + sage: l = ringlist(P) + sage: ring = singular_function("ring") + sage: ring(l, ring=P)._output() +- // coefficients: QQ +- // number of vars : 3 ++ // coefficients: QQ... ++ // number of vars : 3 + // block 1 : ordering dp + // : names x y z + // block 2 : ordering C +diff --git a/src/sage/libs/singular/ring.pyx b/src/sage/libs/singular/ring.pyx +index 1d8dd844385..4f7e288e2ad 100644 +--- a/src/sage/libs/singular/ring.pyx ++++ b/src/sage/libs/singular/ring.pyx +@@ -159,8 +159,13 @@ cdef ring *singular_ring_new(base_ring, n, names, term_order) except NULL: + sage: R. = F[] + sage: from sage.libs.singular.function import singular_function + sage: sing_print = singular_function('print') +- sage: sing_print(R) +- 'polynomial ring, over a field, global ordering\n// coefficients: ZZ/7(a, b)\n// number of vars : 3\n// block 1 : ordering dp\n// : names x y z\n// block 2 : ordering C' ++ sage: print(sing_print(R)) ++ polynomial ring, over a field, global ordering ++ // coefficients: ZZ/7(a, b)... ++ // number of vars : 3 ++ // block 1 : ordering dp ++ // : names x y z ++ // block 2 : ordering C + + :: + +@@ -168,8 +173,13 @@ cdef ring *singular_ring_new(base_ring, n, names, term_order) except NULL: + sage: R. = F[] + sage: from sage.libs.singular.function import singular_function + sage: sing_print = singular_function('print') +- sage: sing_print(R) +- 'polynomial ring, over a field, global ordering\n// coefficients: QQ(s, t)\n// number of vars : 3\n// block 1 : ordering dp\n// : names x y z\n// block 2 : ordering C' ++ sage: print(sing_print(R)) ++ polynomial ring, over a field, global ordering ++ // coefficients: QQ(s, t)... ++ // number of vars : 3 ++ // block 1 : ordering dp ++ // : names x y z ++ // block 2 : ordering C + """ + cdef long cexponent + cdef GFInfo* _param +diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +index adf3df1cf95..bab5935004b 100644 +--- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx ++++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +@@ -619,8 +619,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + + sage: P._singular_() + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 3 ++ // coefficients: QQ... ++ // number of vars : 3 + // block 1 : ordering dp + // : names x y z + // block 2 : ordering C +@@ -1182,8 +1182,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: P. = QQ[] + sage: P._singular_() + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 3 ++ // coefficients: QQ... ++ // number of vars : 3 + // block 1 : ordering dp + // : names x y z + // block 2 : ordering C +@@ -1198,8 +1198,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: P. = PolynomialRing(k, 3) # needs sage.rings.finite_rings + sage: P._singular_() # needs sage.rings.finite_rings + polynomial ring, over a field, global ordering +- // coefficients: ZZ/3[a]/(a^3-a+1) +- // number of vars : 3 ++ // coefficients: ZZ/3[a]/(a^3-a+1)... ++ // number of vars : 3 + // block 1 : ordering dp + // : names x y z + // block 2 : ordering C +@@ -1215,8 +1215,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: P. = QQ[] + sage: P._singular_() + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +@@ -1257,8 +1257,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: P. = QQ[] + sage: P._singular_init_() + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 3 ++ // coefficients: QQ... ++ // number of vars : 3 + // block 1 : ordering dp + // : names x y z + // block 2 : ordering C +@@ -1272,8 +1272,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R. = PolynomialRing(NumberField(w^2 + 1,'s')) # needs sage.rings.number_field + sage: singular(R) # needs sage.rings.number_field + polynomial ring, over a field, global ordering +- // coefficients: QQ[s]/(s^2+1) +- // number of vars : 2 ++ // coefficients: QQ[s]/(s^2+1)... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -1281,8 +1281,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = PolynomialRing(GF(2**8,'a'),10,'x', order='invlex') # needs sage.rings.finite_rings + sage: singular(R) # needs sage.rings.finite_rings + polynomial ring, over a field, global ordering +- // coefficients: ZZ/2[a]/(a^8+a^4+a^3+a^2+1) +- // number of vars : 10 ++ // coefficients: ZZ/2[a]/(a^8+a^4+a^3+a^2+1)... ++ // number of vars : 10 + // block 1 : ordering ip + // : names x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 + // block 2 : ordering C +@@ -1290,8 +1290,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = PolynomialRing(GF(127),2,'x', order='invlex') + sage: singular(R) # needs sage.rings.finite_rings + polynomial ring, over a field, global ordering +- // coefficients: ZZ/127 +- // number of vars : 2 ++ // coefficients: ZZ/127... ++ // number of vars : 2 + // block 1 : ordering ip + // : names x0 x1 + // block 2 : ordering C +@@ -1299,8 +1299,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = PolynomialRing(QQ,2,'x', order='invlex') + sage: singular(R) # needs sage.rings.function_field + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 2 ++ // coefficients: QQ... ++ // number of vars : 2 + // block 1 : ordering ip + // : names x0 x1 + // block 2 : ordering C +@@ -1308,8 +1308,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = PolynomialRing(QQ,2,'x', order='degneglex') + sage: singular(R) # needs sage.rings.function_field + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 2 ++ // coefficients: QQ... ++ // number of vars : 2 + // block 1 : ordering a + // : names x0 x1 + // : weights 1 1 +@@ -1320,8 +1320,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = PolynomialRing(QQ,'x') + sage: singular(R) # needs sage.rings.function_field + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +@@ -1329,8 +1329,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = PolynomialRing(GF(127),'x') + sage: singular(R) # needs sage.rings.finite_rings + polynomial ring, over a field, global ordering +- // coefficients: ZZ/127 +- // number of vars : 1 ++ // coefficients: ZZ/127... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +@@ -1338,8 +1338,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = ZZ['x,y'] + sage: singular(R) # needs sage.rings.function_field + polynomial ring, over a domain, global ordering +- // coefficients: ZZ +- // number of vars : 2 ++ // coefficients: ZZ... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -1347,8 +1347,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = IntegerModRing(1024)['x,y'] + sage: singular(R) # needs sage.rings.function_field + polynomial ring, over a ring (with zero-divisors), global ordering +- // coefficients: ZZ/(2^10) +- // number of vars : 2 ++ // coefficients: ZZ/(2^10)... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -1356,8 +1356,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: R = IntegerModRing(15)['x,y'] + sage: singular(R) # needs sage.rings.function_field + polynomial ring, over a ring (with zero-divisors), global ordering +- // coefficients: ZZ/...(15) +- // number of vars : 2 ++ // coefficients: ZZ/(15)... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -1367,8 +1367,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): + sage: P. = QQ[] + sage: P._singular_init_() + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +diff --git a/src/sage/rings/polynomial/pbori/pbori.pyx b/src/sage/rings/polynomial/pbori/pbori.pyx +index 14a929c3238..404771a2c85 100644 +--- a/src/sage/rings/polynomial/pbori/pbori.pyx ++++ b/src/sage/rings/polynomial/pbori/pbori.pyx +@@ -1425,8 +1425,8 @@ cdef class BooleanPolynomialRing(BooleanPolynomialRing_base): + sage: B. = BooleanPolynomialRing(2) + sage: B._singular_() # indirect doctest + polynomial ring, over a field, global ordering +- // coefficients: ZZ/2 +- // number of vars : 2 ++ // coefficients: ZZ/2... ++ // number of vars : 2 + // block 1 : ordering lp + // : names x y + // block 2 : ordering C +diff --git a/src/sage/rings/polynomial/polynomial_quotient_ring.py b/src/sage/rings/polynomial/polynomial_quotient_ring.py +index 115647adadf..627765cf8f0 100644 +--- a/src/sage/rings/polynomial/polynomial_quotient_ring.py ++++ b/src/sage/rings/polynomial/polynomial_quotient_ring.py +@@ -749,8 +749,8 @@ def _singular_init_(self, S=None): + sage: Q = P.quo([(x^2 + 1)]) + sage: singular(Q) # indirect doctest # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names xbar + // block 2 : ordering C +diff --git a/src/sage/rings/polynomial/polynomial_singular_interface.py b/src/sage/rings/polynomial/polynomial_singular_interface.py +index 60d2dd74b52..10bbc6d6ec0 100644 +--- a/src/sage/rings/polynomial/polynomial_singular_interface.py ++++ b/src/sage/rings/polynomial/polynomial_singular_interface.py +@@ -62,7 +62,7 @@ def _do_singular_init_(singular, base_ring, char, _vars, order): + sage: from sage.rings.polynomial.polynomial_singular_interface import _do_singular_init_ + sage: _do_singular_init_(singular, ZZ, 0, 'X', 'dp') # needs sage.libs.singular + (polynomial ring, over a domain, global ordering +- // coefficients: ZZ ++ // coefficients: ZZ... + // number of vars : 1 + // block 1 : ordering dp + // : names X +@@ -196,7 +196,7 @@ def _singular_(self, singular=None): + sage: R. = PolynomialRing(CC) # needs sage.rings.real_mpfr + sage: singular(R) # needs sage.libs.singular sage.rings.real_mpfr + polynomial ring, over a field, global ordering +- // coefficients: real[I](complex:15 digits, additional 0 digits)/(I^2+1) ++ // coefficients: real[I](complex:15 digits, additional 0 digits)/(I^2+1)... + // number of vars : 2 + // block 1 : ordering dp + // : names x y +@@ -205,7 +205,7 @@ def _singular_(self, singular=None): + sage: R. = PolynomialRing(RealField(100)) # needs sage.rings.real_mpfr + sage: singular(R) # needs sage.libs.singular sage.rings.real_mpfr + polynomial ring, over a field, global ordering +- // coefficients: Float() ++ // coefficients: Float()... + // number of vars : 2 + // block 1 : ordering dp + // : names x y +@@ -215,8 +215,8 @@ def _singular_(self, singular=None): + sage: R. = PolynomialRing(NumberField(w^2 + 1, 's')) # needs sage.rings.number_field + sage: singular(R) # needs sage.libs.singular sage.rings.number_field + polynomial ring, over a field, global ordering +- // coefficients: QQ[s]/(s^2+1) +- // number of vars : 1 ++ // coefficients: QQ[s]/(s^2+1)... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +@@ -224,8 +224,8 @@ def _singular_(self, singular=None): + sage: R = PolynomialRing(GF(127), 'x', implementation='singular') # needs sage.libs.singular + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: ZZ/127 +- // number of vars : 1 ++ // coefficients: ZZ/127... ++ // number of vars : 1 + // block 1 : ordering dp + // : names x + // block 2 : ordering C +@@ -233,8 +233,8 @@ def _singular_(self, singular=None): + sage: R = PolynomialRing(QQ, 'x', implementation='singular') # needs sage.libs.singular + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering dp + // : names x + // block 2 : ordering C +@@ -242,8 +242,8 @@ def _singular_(self, singular=None): + sage: R = PolynomialRing(QQ,'x') + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +@@ -251,8 +251,8 @@ def _singular_(self, singular=None): + sage: R = PolynomialRing(GF(127), 'x') + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: ZZ/127 +- // number of vars : 1 ++ // coefficients: ZZ/127... ++ // number of vars : 1 + // block 1 : ordering lp + // : names x + // block 2 : ordering C +@@ -260,8 +260,8 @@ def _singular_(self, singular=None): + sage: R = Frac(ZZ['a,b'])['x,y'] + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ(a, b) +- // number of vars : 2 ++ // coefficients: QQ(a, b)... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -270,8 +270,8 @@ def _singular_(self, singular=None): + sage: R = IntegerModRing(1024)['x,y'] + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a ring (with zero-divisors), global ordering +- // coefficients: ZZ/(2^10) +- // number of vars : 2 ++ // coefficients: ZZ/(2^10)... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -279,8 +279,8 @@ def _singular_(self, singular=None): + sage: R = IntegerModRing(15)['x,y'] + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a ring (with zero-divisors), global ordering +- // coefficients: ZZ/...(15) +- // number of vars : 2 ++ // coefficients: ZZ/(15)... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -288,8 +288,8 @@ def _singular_(self, singular=None): + sage: R = ZZ['x,y'] + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a domain, global ordering +- // coefficients: ZZ +- // number of vars : 2 ++ // coefficients: ZZ... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +@@ -297,7 +297,7 @@ def _singular_(self, singular=None): + sage: R = ZZ['x'] + sage: singular(R) # needs sage.libs.singular + polynomial ring, over a domain, global ordering +- // coefficients: ZZ ++ // coefficients: ZZ... + // number of vars : 1 + // block 1 : ordering lp + // : names x +@@ -310,8 +310,8 @@ def _singular_(self, singular=None): + sage: S = K['y'] + sage: singular(S) # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: ZZ/5(x) +- // number of vars : 2 ++ // coefficients: ZZ/5(x)... ++ // number of vars : 2 + // block 1 : ordering lp + // : names a y + // block 2 : ordering C +@@ -353,8 +353,8 @@ def _singular_init_(self, singular=None): + + sage: PolynomialRing(QQ,'u_ba')._singular_init_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 1 ++ // coefficients: QQ... ++ // number of vars : 1 + // block 1 : ordering lp + // : names u_ba + // block 2 : ordering C +diff --git a/src/sage/rings/polynomial/term_order.py b/src/sage/rings/polynomial/term_order.py +index a88568248ce..f8ddd0a9652 100644 +--- a/src/sage/rings/polynomial/term_order.py ++++ b/src/sage/rings/polynomial/term_order.py +@@ -660,7 +660,7 @@ def __init__(self, name='lex', n=0, force=False): + sage: R. = PolynomialRing(QQ, order=T) + sage: R._singular_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ ++ // coefficients: QQ... + // number of vars : 3 + // block 1 : ordering dp + // : names x y z +@@ -676,7 +676,7 @@ def __init__(self, name='lex', n=0, force=False): + False + sage: S._singular_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ ++ // coefficients: QQ... + // number of vars : 3 + // block 1 : ordering C + // block 2 : ordering dp +@@ -1661,8 +1661,8 @@ def singular_str(self): + '(lp(3),Dp(5),lp(2))' + sage: P._singular_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: ZZ/127 +- // number of vars : 10 ++ // coefficients: ZZ/127... ++ // number of vars : 10 + // block 1 : ordering lp + // : names x0 x1 x2 + // block 2 : ordering Dp +@@ -1687,8 +1687,8 @@ def singular_str(self): + '(a(1:2),ls(2),a(1:2),ls(2))' + sage: P._singular_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 4 ++ // coefficients: QQ... ++ // number of vars : 4 + // block 1 : ordering a + // : names x0 x1 + // : weights 1 1 +@@ -1709,7 +1709,7 @@ def singular_str(self): + sage: P = PolynomialRing(QQ, 4, names='x', order=T) + sage: P._singular_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ ++ // coefficients: QQ... + // number of vars : 4 + // block 1 : ordering C + // block 2 : ordering a +@@ -1727,7 +1727,7 @@ def singular_str(self): + sage: P = PolynomialRing(QQ, 4, names='y', order=T) + sage: P._singular_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ ++ // coefficients: QQ... + // number of vars : 4 + // block 1 : ordering c + // block 2 : ordering a +@@ -1745,7 +1745,7 @@ def singular_str(self): + sage: P = PolynomialRing(QQ, 4, names='z', order=T) + sage: P._singular_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ ++ // coefficients: QQ... + // number of vars : 4 + // block 1 : ordering a + // : names z0 z1 +@@ -2183,7 +2183,7 @@ def termorder_from_singular(S): + sage: # needs sage.libs.singular + sage: singular.ring(0, '(x,y,z,w)', '(C,dp(2),lp(2))') + polynomial ring, over a field, global ordering +- // coefficients: QQ ++ // coefficients: QQ... + // number of vars : 4 + // block 1 : ordering C + // block 2 : ordering dp +@@ -2201,7 +2201,7 @@ def termorder_from_singular(S): + sage: # needs sage.libs.singular + sage: singular.ring(0, '(x,y,z,w)', '(c,dp(2),lp(2))') + polynomial ring, over a field, global ordering +- // coefficients: QQ ++ // coefficients: QQ... + // number of vars : 4 + // block 1 : ordering c + // block 2 : ordering dp +diff --git a/src/sage/rings/quotient_ring.py b/src/sage/rings/quotient_ring.py +index 1043333a63e..45f8147cde9 100644 +--- a/src/sage/rings/quotient_ring.py ++++ b/src/sage/rings/quotient_ring.py +@@ -1268,8 +1268,8 @@ def _singular_(self, singular=None): + sage: S = R.quotient_ring(x^2 + y^2) + sage: S._singular_() # needs sage.libs.singular + polynomial ring, over a field, global ordering +- // coefficients: QQ +- // number of vars : 2 ++ // coefficients: QQ... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C +diff --git a/src/sage/rings/quotient_ring_element.py b/src/sage/rings/quotient_ring_element.py +index 6699ae9f74b..9f05c54f21c 100644 +--- a/src/sage/rings/quotient_ring_element.py ++++ b/src/sage/rings/quotient_ring_element.py +@@ -813,8 +813,8 @@ def _singular_(self, singular=None): + sage: Q = P.quo(I) + sage: Q._singular_() + polynomial ring, over a field, global ordering +- // coefficients: ZZ/2 +- // number of vars : 2 ++ // coefficients: ZZ/2... ++ // number of vars : 2 + // block 1 : ordering dp + // : names x y + // block 2 : ordering C diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index 571d8939163695..c617fe7e216c57 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -1,6 +1,6 @@ #! /bin/sh -version=10.4 +version=10.5 URL_BASE_PR="https://github.com/sagemath/sage/pull/" URL_BASE_COMPARE="https://github.com/sagemath/sage/compare/${version}..." @@ -42,6 +42,7 @@ get_pr 38749 "pari 2.17" get_pr 38962 "eclib 20241112" get_pr 39178 "giac 1.9.0.998" get_pr 39261 "scipy 1.15" +get_pr 39368 "singular 4.4.1" get_pr 38940 "fix flaky simplicial set test" diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index 82b7e6deae951a..44706ee35410e1 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,7 +1,7 @@ # Template file for 'sagemath' pkgname=sagemath version=10.5 -revision=1 +revision=2 _pypi_version=${version/.beta/b} _pypi_version=${_pypi_version/.rc/rc} build_style=python3-pep517 From 1444c52aea791711d61b1261a7f66c621c676c7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Mon, 3 Feb 2025 17:10:48 -0300 Subject: [PATCH 11/11] m4ri: fix overflow on i686 --- srcpkgs/m4ri/patches/fix-overflow-32bit.patch | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 srcpkgs/m4ri/patches/fix-overflow-32bit.patch diff --git a/srcpkgs/m4ri/patches/fix-overflow-32bit.patch b/srcpkgs/m4ri/patches/fix-overflow-32bit.patch new file mode 100644 index 00000000000000..5249b0b51cac04 --- /dev/null +++ b/srcpkgs/m4ri/patches/fix-overflow-32bit.patch @@ -0,0 +1,35 @@ +diff --git a/m4ri/mmc.h b/m4ri/mmc.h +index e6db4ca..3e97391 100644 +--- a/m4ri/mmc.h ++++ b/m4ri/mmc.h +@@ -72,6 +72,10 @@ typedef struct _mm_block { + * \return Pointer to allocated memory block. + */ + static inline void *m4ri_mmc_calloc(size_t count, size_t size) { ++ if (size && count > SIZE_MAX/size) { ++ m4ri_die("m4ri_mmc_calloc: overflow in multiplication\n"); ++ return NULL; /* unreachable */ ++ } + size_t total_size = count * size; + void *ret = m4ri_mmc_malloc(total_size); + memset((char *)ret, 0, total_size); +diff --git a/m4ri/mzd.c b/m4ri/mzd.c +index ba04b7c..ac62c5c 100644 +--- a/m4ri/mzd.c ++++ b/m4ri/mzd.c +@@ -144,13 +144,12 @@ mzd_t *mzd_init(rci_t r, rci_t c) { + mzd_t *A = mzd_t_malloc(); + A->nrows = r; + A->ncols = c; +- A->width = (c + m4ri_radix - 1) / m4ri_radix; ++ A->width = c > 0 ? (c - 1) / m4ri_radix + 1 : 0; + A->rowstride = ((A->width & 1) == 0) ? A->width : A->width + 1; + A->high_bitmask = __M4RI_LEFT_BITMASK(c % m4ri_radix); + A->flags = (A->high_bitmask != m4ri_ffff) ? mzd_flag_nonzero_excess : 0; + if (r && c) { +- size_t block_words = r * A->rowstride; +- A->data = m4ri_mmc_calloc(block_words, sizeof(word)); ++ A->data = m4ri_mmc_calloc(r, sizeof(word) * A->rowstride); + } else { + A->data = NULL; + }