[arch-commits] Commit in sagemath/trunk (PKGBUILD sagemath-linbox-1.7.patch)

Antonio Rojas arojas at gemini.archlinux.org
Tue Dec 14 18:07:05 UTC 2021


    Date: Tuesday, December 14, 2021 @ 18:07:05
  Author: arojas
Revision: 1072810

givaro/fflas-ffpack/linbox 1.7 rebuild

Added:
  sagemath/trunk/sagemath-linbox-1.7.patch
Modified:
  sagemath/trunk/PKGBUILD

---------------------------+
 PKGBUILD                  |   12 ++++++---
 sagemath-linbox-1.7.patch |   58 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2021-12-14 18:03:07 UTC (rev 1072809)
+++ PKGBUILD	2021-12-14 18:07:05 UTC (rev 1072810)
@@ -7,7 +7,7 @@
 
 pkgname=sagemath
 pkgver=9.4
-pkgrel=6
+pkgrel=7
 pkgdesc='Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab'
 arch=(x86_64)
 url='http://www.sagemath.org'
@@ -44,7 +44,8 @@
         sagemath-lrcalc2.patch
         sagemath-lcalc2.patch
         sagemath-mpmath.patch
-        sagemath-singular-4.2.1.p1.patch)
+        sagemath-singular-4.2.1.p1.patch
+        sagemath-linbox-1.7.patch)
 sha256sums=('47190f37e679c2483dadc13112595bacb399dfe4c4a0cde18d3627f5b2db0ea5'
             '665fc76fa57b1c50f122a8d1874e187afc97a9120921706176b63da3d9d30651'
             '88e944f23c3b2391dc2e9f9be8e1131152d837dc8c829dfc714663869a272e81'
@@ -52,7 +53,8 @@
             '240ac4c29d96d56407a20e1b7f9846e342a7eb2bb4edd6e5c86b3b5a8ff462f9'
             '791b3f2c6e5529b09c3abf2f9703b6cf754d633a7a4177645b70b72ea014135a'
             'be1c871fe6306a053169dce3edbb8bc78a96254ae7c83b2b741257ef3445b6eb'
-            'e3cdfe730d0b0f422fe837e465ecde3419b16de50bef3dd2b674f275f528ed97')
+            'e3cdfe730d0b0f422fe837e465ecde3419b16de50bef3dd2b674f275f528ed97'
+            'eacea27b214d32cb886a75695153dfc36b5bad2fd2517e8e4eee18e74220e9e3')
 
 prepare(){
   cd sage-$pkgver
@@ -64,8 +66,10 @@
   patch -p1 -i ../sagemath-lcalc2.patch
 # Make it work with vanilla mpmath https://trac.sagemath.org/ticket/32799
   patch -p1 -i ../sagemath-mpmath.patch
-# Fix build with singular 4.2.1.p1
+# Fix build with singular 4.2.1.p1 https://trac.sagemath.org/ticket/32907
   patch -p1 -i ../sagemath-singular-4.2.1.p1.patch
+# Fix build with linbox 1.7 https://trac.sagemath.org/ticket/32959
+  patch -p1 -i ../sagemath-linbox-1.7.patch
 
 # Arch-specific patches
 # assume all optional packages are installed

Added: sagemath-linbox-1.7.patch
===================================================================
--- sagemath-linbox-1.7.patch	                        (rev 0)
+++ sagemath-linbox-1.7.patch	2021-12-14 18:07:05 UTC (rev 1072810)
@@ -0,0 +1,58 @@
+diff --git a/src/sage/libs/linbox/conversion.pxd b/src/sage/libs/linbox/conversion.pxd
+index 7794c9e..1753277 100644
+--- a/src/sage/libs/linbox/conversion.pxd
++++ b/src/sage/libs/linbox/conversion.pxd
+@@ -177,9 +177,8 @@ cdef inline Vector_integer_dense new_sage_vector_integer_dense(P, DenseVector_in
+     - v -- linbox vector
+     """
+     cdef Vector_integer_dense res = P()
+-    cdef cppvector[Integer] * vec = &v.refRep()
+     cdef size_t i
+     for i in range(<size_t> res._degree):
+-        mpz_set(res._entries[i], vec[0][i].get_mpz_const())
++        mpz_set(res._entries[i], v.getEntry(i).get_mpz_const())
+ 
+     return res
+diff --git a/src/sage/libs/linbox/linbox.pxd b/src/sage/libs/linbox/linbox.pxd
+index 9112d15..dcc4829 100644
+--- a/src/sage/libs/linbox/linbox.pxd
++++ b/src/sage/libs/linbox/linbox.pxd
+@@ -32,7 +32,7 @@ cdef extern from "linbox/matrix/dense-matrix.h":
+         ctypedef Modular_double Field
+         ctypedef double Element
+         DenseMatrix_Modular_double(Field F, size_t m, size_t n)
+-        DenseMatrix_Modular_double(Field F, Element*, size_t m, size_t n)
++        DenseMatrix_Modular_double(Field F, size_t m, size_t n, Element*)
+         void setEntry(size_t i, size_t j, Element& a)
+         Element &getEntry(size_t i, size_t j)
+ 
+@@ -42,7 +42,7 @@ cdef extern from "linbox/matrix/dense-matrix.h":
+         ctypedef Modular_float Field
+         ctypedef float Element
+         DenseMatrix_Modular_float(Field F, size_t m, size_t n)
+-        DenseMatrix_Modular_float(Field F, Element*, size_t m, size_t n)
++        DenseMatrix_Modular_float(Field F, size_t m, size_t n, Element*)
+         void setEntry(size_t i, size_t j, Element& a)
+         Element &getEntry(size_t i, size_t j)
+ 
+@@ -101,7 +101,6 @@ cdef extern from "linbox/vector/vector.h":
+         DenseVector_integer (Field &F)
+         DenseVector_integer (Field &F, long& m)
+         DenseVector_integer (Field &F, cppvector[Integer]&)
+-        cppvector[Element]& refRep()
+         size_t size()
+         void resize(size_t)
+         void resize(size_t n, const Element&)
+diff --git a/src/sage/matrix/matrix_modn_dense_template.pxi b/src/sage/matrix/matrix_modn_dense_template.pxi
+index 010365d..3d60726 100644
+--- a/src/sage/matrix/matrix_modn_dense_template.pxi
++++ b/src/sage/matrix/matrix_modn_dense_template.pxi
+@@ -219,7 +219,7 @@ cdef inline linbox_echelonize_efd(celement modulus, celement* entries, Py_ssize_
+         return 0,[]
+ 
+     cdef ModField *F = new ModField(<long>modulus)
+-    cdef DenseMatrix *A = new DenseMatrix(F[0], <ModField.Element*>entries,<Py_ssize_t>nrows, <Py_ssize_t>ncols)
++    cdef DenseMatrix *A = new DenseMatrix(F[0], <Py_ssize_t>nrows, <Py_ssize_t>ncols, <ModField.Element*>entries)
+     cdef Py_ssize_t r = reducedRowEchelonize(A[0])
+     cdef Py_ssize_t i,j
+     for i in range(nrows):



More information about the arch-commits mailing list