unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#41971] [WIP PATCH 0/5] Add SageMath
@ 2020-06-20 21:28 Jakub Kądziołka
  2020-06-20 21:31 ` [bug#41971] [PATCH 1/5] gnu: linbox: Fix linking of dependant packages Jakub Kądziołka
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Jakub Kądziołka @ 2020-06-20 21:28 UTC (permalink / raw)
  To: 41971

This patchstack builds upon #40283 and packages (some of) SageMath.
Currently, sagelib is built successfully, but the `sage' binary is not
being installed. I'm submitting this here as I'm no longer actively
working on this for now. Some things remain to be done:

 - Install the sage command itself and make sure it runs. This will
   probably require understanding what SAGE_ROOT, SAGE_SHARE and
   SAGE_LOCAL mean.
 - Run the tests. This would be best done as another package to make
   sure all the right packages are propagated. Nix does the same [0].
 - Make sure the docs are installed.
 - Remove the cython debug info. I haven't done this yet only because
   testing it would require waiting for a long build.
 - Resolve some small TODOs.

[0]: https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/science/math/sage

Jakub Kądziołka (5):
  gnu: linbox: Fix linking of dependant packages.
  gnu: sagemath: Remove unnecessary old versions of packages
  gnu: Add ECL 16.1.3 for Sage.
  gnu: lcalc: Don't rename the include directory.
  [WIP] gnu: Add sagemath.

 gnu/local.mk                                  |   4 +
 gnu/packages/algebra.scm                      |   5 +-
 .../ecl-16-format-directive-limit.patch       |  83 +++++++
 .../ecl-16-ignore-stderr-write-error.patch    |  17 ++
 gnu/packages/patches/ecl-16-libffi.patch      |  16 ++
 .../patches/linbox-fix-pkgconfig.patch        |  23 ++
 gnu/packages/sagemath.scm                     | 203 +++++++++++++-----
 7 files changed, 291 insertions(+), 60 deletions(-)
 create mode 100644 gnu/packages/patches/ecl-16-format-directive-limit.patch
 create mode 100644 gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch
 create mode 100644 gnu/packages/patches/ecl-16-libffi.patch
 create mode 100644 gnu/packages/patches/linbox-fix-pkgconfig.patch

-- 
2.26.2





^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#41971] [PATCH 1/5] gnu: linbox: Fix linking of dependant packages.
  2020-06-20 21:28 [bug#41971] [WIP PATCH 0/5] Add SageMath Jakub Kądziołka
@ 2020-06-20 21:31 ` Jakub Kądziołka
  2020-06-20 21:31 ` [bug#41971] [PATCH 2/5] gnu: sagemath: Remove unnecessary old versions of packages Jakub Kądziołka
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Jakub Kądziołka @ 2020-06-20 21:31 UTC (permalink / raw)
  To: 41971

* gnu/packages/algebra.scm (linbox)[source]: Add a patch.
  [inputs]: Move fflas-ffpack to...
  [propagated-inputs]: ...here.
* gnu/packages/patches/linbox-fix-pkgconfig.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/algebra.scm                      |  5 ++--
 .../patches/linbox-fix-pkgconfig.patch        | 23 +++++++++++++++++++
 3 files changed, 27 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/linbox-fix-pkgconfig.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index def87a4360..41b92e3830 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1219,6 +1219,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/lierolibre-newer-libconfig.patch		\
   %D%/packages/patches/lierolibre-remove-arch-warning.patch	\
   %D%/packages/patches/lierolibre-try-building-other-arch.patch	\
+  %D%/packages/patches/linbox-fix-pkgconfig.patch		\
   %D%/packages/patches/linkchecker-tests-require-network.patch	\
   %D%/packages/patches/linphoneqt-tabbutton.patch		\
   %D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index f2138bbe4e..2244b7ac94 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1323,14 +1323,15 @@ algebra, such as the row echelon form.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "10j6dspbsq7d2l4q3y0c1l1xwmaqqba2fxg59q5bhgk9h5d7q571"))))
+                "10j6dspbsq7d2l4q3y0c1l1xwmaqqba2fxg59q5bhgk9h5d7q571"))
+              (patches (search-patches "linbox-fix-pkgconfig.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
-    (inputs
+    (propagated-inputs
      `(("fflas-ffpack" ,fflas-ffpack)))
     (synopsis "C++ library for linear algebra over exact rings")
     (description
diff --git a/gnu/packages/patches/linbox-fix-pkgconfig.patch b/gnu/packages/patches/linbox-fix-pkgconfig.patch
new file mode 100644
index 0000000000..c93915fb1b
--- /dev/null
+++ b/gnu/packages/patches/linbox-fix-pkgconfig.patch
@@ -0,0 +1,23 @@
+Backported from:
+
+From 426eb97ba762c7663884f57ead0909f2aa3cd6a5 Mon Sep 17 00:00:00 2001
+From: Cyril Bouvier <cyril.bouvier@lirmm.fr>
+Date: Thu, 17 Jan 2019 16:32:19 +0100
+Subject: [PATCH] Remove @LINBOXSAGE_LIBS@ from linbox.pc.in
+
+---
+ linbox.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/linbox.pc.in b/linbox.pc.in
+index 278f127e4..c6b8091eb 100644
+--- a/linbox.pc.in
++++ b/linbox.pc.in
+@@ -9,6 +9,6 @@ Description: Exact Linear Algebra library
+ URL: http://github.com/linbox-team/linbox
+ Version: @VERSION@
+ Requires: fflas-ffpack >= 2.4.0, givaro >= 4.1.0
+-Libs: -L${libdir} -llinbox @LINBOXSAGE_LIBS@ @NTL_LIBS@ @MPFR_LIBS@ @FPLLL_LIBS@ @IML_LIBS@ @FLINT_LIBS@ @OCL_LIBS@
++Libs: -L${libdir} -llinbox @NTL_LIBS@ @MPFR_LIBS@ @FPLLL_LIBS@ @IML_LIBS@ @FLINT_LIBS@ @OCL_LIBS@
+ Cflags: @DEFAULT_CFLAGS@ -DDISABLE_COMMENTATOR -I${includedir} @NTL_CFLAGS@ @MPFR_CFLAGS@ @FPLLL_CFLAGS@  @IML_CFLAGS@ @FLINT_CFLAGS@ 
+ \-------------------------------------------------------
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [bug#41971] [PATCH 2/5] gnu: sagemath: Remove unnecessary old versions of packages
  2020-06-20 21:28 [bug#41971] [WIP PATCH 0/5] Add SageMath Jakub Kądziołka
  2020-06-20 21:31 ` [bug#41971] [PATCH 1/5] gnu: linbox: Fix linking of dependant packages Jakub Kądziołka
@ 2020-06-20 21:31 ` Jakub Kądziołka
  2020-06-20 21:31 ` [bug#41971] [PATCH 3/5] gnu: Add ECL 16.1.3 for Sage Jakub Kądziołka
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Jakub Kądziołka @ 2020-06-20 21:31 UTC (permalink / raw)
  To: 41971

Sage has updated givaro, fflas-ffpack and linbox since the comment was
written.

* gnu/packages/sagemath.scm (givaro, fflas-ffpack, linbox): Remove
  variables.
---
 gnu/packages/sagemath.scm | 54 ---------------------------------------
 1 file changed, 54 deletions(-)

diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index b96cb6b96e..34fe9e524c 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -184,60 +184,6 @@ represented as strings.")
     (license license:public-domain)
     (home-page "https://github.com/miguelmarco/libhomfly")))
 
-;; The following three packages from the Linbox group are needed in
-;; an outdated version for Sage.
-
-(define-public givaro-4.0.4
-  (package (inherit givaro)
-    (name "givaro")
-    (version "4.0.4")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/linbox-team/givaro")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "199p8wyj5i63jbnk7j8qbdbfp5rm2lpmcxyk3mdjy9bz7ygx3hhy"))))))
-
-(define-public fflas-ffpack-2.3.2
-  (package (inherit fflas-ffpack)
-    (name "fflas-ffpack")
-    (version "2.3.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/linbox-team/fflas-ffpack")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1cqhassj2dny3gx0iywvmnpq8ca0d6m82xl5rz4mb8gaxr2kwddl"))))
-    (propagated-inputs
-     `(("givaro" ,givaro-4.0.4)))
-    ;; A test fails, but since all tests pass in the latest version,
-    ;; there is not much point in investigating.
-    (arguments
-     (substitute-keyword-arguments (package-arguments fflas-ffpack)
-       ((#:tests? _ #f) #f)))))
-
-(define-public linbox-1.5.2
-  (package (inherit linbox)
-    (version "1.5.2")
-    (name "linbox")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/linbox-team/linbox")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1wfivlwp30mzdy1697w7rzb8caajim50mc8h27k82yipn2qc5n4i"))))
-    (inputs
-     `(("fflas-ffpack" ,fflas-ffpack-2.3.2)))))
-
 (define-public pynac
   (package
     (name "pynac")
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [bug#41971] [PATCH 3/5] gnu: Add ECL 16.1.3 for Sage.
  2020-06-20 21:28 [bug#41971] [WIP PATCH 0/5] Add SageMath Jakub Kądziołka
  2020-06-20 21:31 ` [bug#41971] [PATCH 1/5] gnu: linbox: Fix linking of dependant packages Jakub Kądziołka
  2020-06-20 21:31 ` [bug#41971] [PATCH 2/5] gnu: sagemath: Remove unnecessary old versions of packages Jakub Kądziołka
@ 2020-06-20 21:31 ` Jakub Kądziołka
  2020-06-20 21:32 ` [bug#41971] [PATCH 4/5] gnu: lcalc: Don't rename the include directory Jakub Kądziołka
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Jakub Kądziołka @ 2020-06-20 21:31 UTC (permalink / raw)
  To: 41971

* gnu/packages/sagemath.scm (ecl-16): New variable.
* gnu/packages/patches/ecl-16-format-directive-limit.patch,
  gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch,
  gnu/packages/patches/ecl-16-libffi.patch: New files.
* gnu/local.mk (dist_patch_DATA): Register the patches.
---
 gnu/local.mk                                  |  3 +
 .../ecl-16-format-directive-limit.patch       | 83 +++++++++++++++++++
 .../ecl-16-ignore-stderr-write-error.patch    | 17 ++++
 gnu/packages/patches/ecl-16-libffi.patch      | 16 ++++
 gnu/packages/sagemath.scm                     | 23 +++++
 5 files changed, 142 insertions(+)
 create mode 100644 gnu/packages/patches/ecl-16-format-directive-limit.patch
 create mode 100644 gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch
 create mode 100644 gnu/packages/patches/ecl-16-libffi.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 41b92e3830..486e7aa8cc 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -881,6 +881,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/dstat-skip-devices-without-io.patch	\
   %D%/packages/patches/dune-istl-2.7-fix-non-mpi-tests.patch	\
   %D%/packages/patches/dvd+rw-tools-add-include.patch 		\
+  %D%/packages/patches/ecl-16-format-directive-limit.patch	\
+  %D%/packages/patches/ecl-16-ignore-stderr-write-error.patch	\
+  %D%/packages/patches/ecl-16-libffi.patch			\
   %D%/packages/patches/eigen-stabilise-sparseqr-test.patch	\
   %D%/packages/patches/einstein-build.patch			\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
diff --git a/gnu/packages/patches/ecl-16-format-directive-limit.patch b/gnu/packages/patches/ecl-16-format-directive-limit.patch
new file mode 100644
index 0000000000..237db92722
--- /dev/null
+++ b/gnu/packages/patches/ecl-16-format-directive-limit.patch
@@ -0,0 +1,83 @@
+Patch backported by Sage.
+
+Fix from upstream that happens to work around
+https://trac.sagemath.org/ticket/23011
+diff --git a/src/lsp/format.lsp b/src/lsp/format.lsp
+index 77ca799..53b887c 100644
+--- a/src/lsp/format.lsp
++++ b/src/lsp/format.lsp
+@@ -307,11 +307,13 @@
+                   :start (format-directive-start struct)
+                   :end (format-directive-end struct))))
+ 
++(defconstant +format-directive-limit+ (1+ (char-code #\~)))
++
+ #+formatter
+ (defparameter *format-directive-expanders*
+-  (make-array char-code-limit :initial-element nil))
++  (make-array +format-directive-limit+ :initial-element nil))
+ (defparameter *format-directive-interpreters*
+-  (make-array char-code-limit :initial-element nil))
++  (make-array +format-directive-limit+ :initial-element nil))
+ 
+ (defparameter *default-format-error-control-string* nil)
+ (defparameter *default-format-error-offset* nil)
+@@ -550,24 +552,24 @@
+            (write-string directive stream)
+            (interpret-directive-list stream (cdr directives) orig-args args))
+           (#-ecl format-directive #+ecl vector
++           (multiple-value-bind
++                 (new-directives new-args)
++               (let* ((code (char-code (format-directive-character directive)))
++                      (function
++                        (and (< code +format-directive-limit+)
++                             (svref *format-directive-interpreters* code)))
++                      (*default-format-error-offset*
++                        (1- (format-directive-end directive))))
++                 (unless function
++                   (error 'format-error
++                          :complaint "Unknown format directive."))
+                  (multiple-value-bind
+                        (new-directives new-args)
+-                     (let ((function
+-                            (svref *format-directive-interpreters*
+-                                   (char-code (format-directive-character
+-                                               directive))))
+-                           (*default-format-error-offset*
+-                            (1- (format-directive-end directive))))
+-                       (unless function
+-                         (error 'format-error
+-                                :complaint "Unknown format directive."))
+-                       (multiple-value-bind
+-                             (new-directives new-args)
+-                           (funcall function stream directive
+-                                    (cdr directives) orig-args args)
+-                         (values new-directives new-args)))
+-                   (interpret-directive-list stream new-directives
+-                                             orig-args new-args)))))
++                     (funcall function stream directive
++                              (cdr directives) orig-args args)
++                   (values new-directives new-args)))
++             (interpret-directive-list stream new-directives
++                                       orig-args new-args)))))
+       args))
+ 
+ \f
+@@ -639,11 +641,12 @@
+        (values `(write-string ,directive stream)
+                more-directives))
+       (format-directive
+-       (let ((expander
+-              (aref *format-directive-expanders*
+-                    (char-code (format-directive-character directive))))
+-             (*default-format-error-offset*
+-              (1- (format-directive-end directive))))
++       (let* ((code (char-code (format-directive-character directive)))
++              (expander
++                (and (< code +format-directive-limit+)
++                     (svref *format-directive-expanders* code)))
++              (*default-format-error-offset*
++                (1- (format-directive-end directive))))
+          (if expander
+              (funcall expander directive more-directives)
+              (error 'format-error
diff --git a/gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch b/gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch
new file mode 100644
index 0000000000..42d213c0e9
--- /dev/null
+++ b/gnu/packages/patches/ecl-16-ignore-stderr-write-error.patch
@@ -0,0 +1,17 @@
+Patch adapted from Sage.
+diff -Naur ecl-16.1.2.orig/src/c/file.d ecl-16.1.2/src/c/file.d
+--- ecl-16.1.2.orig/src/c/file.d	2016-05-11 13:10:51.867673867 +1200
++++ ecl-16.1.2/src/c/file.d	2016-05-11 14:44:48.121907307 +1200
+@@ -3354,8 +3354,10 @@
+   ecl_disable_interrupts();
+   do {
+     out = fwrite(c, sizeof(char), n, IO_STREAM_FILE(strm));
+-  } while (out < n && restartable_io_error(strm, "fwrite"));
+-  ecl_enable_interrupts();
++  /* Ignore write errors to stderr to avoid an infinite loop */
++  } while (out < n && (IO_STREAM_FILE(strm) != stderr) && restartable_io_error(strm, "fwrite"));
++
++  ecl_enable_interrupts();
+   return out;
+ }
+ 
diff --git a/gnu/packages/patches/ecl-16-libffi.patch b/gnu/packages/patches/ecl-16-libffi.patch
new file mode 100644
index 0000000000..fc06a07606
--- /dev/null
+++ b/gnu/packages/patches/ecl-16-libffi.patch
@@ -0,0 +1,16 @@
+Patch adapted from Sage. Allows building ECL on libffi 3.3.
+diff --git a/src/c/ffi.d b/src/c/ffi.d
+index 8861303e..8a959c23 100644
+--- a/src/c/ffi.d
++++ b/src/c/ffi.d
+@@ -133,8 +133,8 @@ static struct {
+ #elif defined(X86_WIN64)
+   {@':win64', FFI_WIN64},
+ #elif defined(X86_ANY) || defined(X86) || defined(X86_64)
+-  {@':cdecl', FFI_SYSV},
+-  {@':sysv', FFI_SYSV},
++  {@':cdecl', FFI_UNIX64},
++  {@':sysv', FFI_UNIX64},
+   {@':unix64', FFI_UNIX64},
+ #endif
+ };
diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index 34fe9e524c..c94020f13e 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,7 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages lisp)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -184,6 +186,27 @@ represented as strings.")
     (license license:public-domain)
     (home-page "https://github.com/miguelmarco/libhomfly")))
 
+;; Sage 9.1 doesn't build with ECL 20.  This won't be necessary once 9.2 is
+;; released.  See https://trac.sagemath.org/ticket/22191
+(define-public ecl-16
+  (package
+    (inherit ecl)
+    (version "16.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://common-lisp.net/project/ecl/static/files/release/ecl"
+             "-" version ".tgz"))
+       (sha256
+        (base32 "0m0j24w5d5a9dwwqyrg0d35c0nys16ijb4r0nyk87yp82v38b9bn"))
+       (patches (search-patches
+                  "ecl-16-libffi.patch"
+                  "ecl-16-ignore-stderr-write-error.patch"
+                  "ecl-16-format-directive-limit.patch"))))
+    ;; Current ECL uses LGPL 2.1+
+    (license license:lgpl2.0+)))
+
 (define-public pynac
   (package
     (name "pynac")
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [bug#41971] [PATCH 4/5] gnu: lcalc: Don't rename the include directory.
  2020-06-20 21:28 [bug#41971] [WIP PATCH 0/5] Add SageMath Jakub Kądziołka
                   ` (2 preceding siblings ...)
  2020-06-20 21:31 ` [bug#41971] [PATCH 3/5] gnu: Add ECL 16.1.3 for Sage Jakub Kądziołka
@ 2020-06-20 21:32 ` Jakub Kądziołka
  2020-06-20 21:32 ` [bug#41971] [PATCH 5/5] [WIP] gnu: Add sagemath Jakub Kądziołka
  2020-07-07 12:47 ` [bug#41971] [WIP PATCH 0/5] Add SageMath Nicolas Goaziou
  5 siblings, 0 replies; 12+ messages in thread
From: Jakub Kądziołka @ 2020-06-20 21:32 UTC (permalink / raw)
  To: 41971

Sage no longer renames the directory, so we shouldn't either.

* gnu/packages/sagemath.scm (lcalc)[arguments]: Remove a substitution from
  the prepare-build phase.
---
 gnu/packages/sagemath.scm | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index c94020f13e..8c837fdaeb 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -368,10 +368,7 @@ used as internal storage type for polynomial structures.")
              (let ((out (assoc-ref outputs "out")))
                (substitute* "Makefile"
                  (("^INSTALL_DIR= /usr/local")
-                  (string-append "INSTALL_DIR=" out))
-                 ;; Sage renames the include directory, so we do it also.
-                 (("include/Lfunction")
-                  "include/libLfunction")))
+                  (string-append "INSTALL_DIR=" out))))
              #t))
          (add-before 'install 'make-output-dirs
            (lambda* (#:key outputs #:allow-other-keys)
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [bug#41971] [PATCH 5/5] [WIP] gnu: Add sagemath.
  2020-06-20 21:28 [bug#41971] [WIP PATCH 0/5] Add SageMath Jakub Kądziołka
                   ` (3 preceding siblings ...)
  2020-06-20 21:32 ` [bug#41971] [PATCH 4/5] gnu: lcalc: Don't rename the include directory Jakub Kądziołka
@ 2020-06-20 21:32 ` Jakub Kądziołka
  2020-07-07 12:47 ` [bug#41971] [WIP PATCH 0/5] Add SageMath Nicolas Goaziou
  5 siblings, 0 replies; 12+ messages in thread
From: Jakub Kądziołka @ 2020-06-20 21:32 UTC (permalink / raw)
  To: 41971

---
 gnu/packages/sagemath.scm | 123 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 122 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index 8c837fdaeb..9809f93060 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -29,16 +29,33 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bdw-gc)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages cmake)
+  #:use-module (gnu packages commencement)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages gd)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages graph)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages lisp)
+  #:use-module (gnu packages m4)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-xyz))
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tex)
+  #:use-module (gnu packages tls))
 
 
 (define-public python-cypari2
@@ -432,3 +449,107 @@ zeta function and its twists by quadratic characters.")
 a given height bound on a hyperelliptic curve in a very efficient way,
 by using an optimized quadratic sieve algorithm.")
     (license license:gpl2+)))
+
+(define-public sagemath
+  (package
+    (name "sagemath")
+    (version "9.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "git://git.sagemath.org/sage.git/")
+              (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1imlqa5mg7xxp6xbzzjnjjpd8k79vlx48zm0qfj7cd4bi0i809pp"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:use-setuptools? #f
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'prepare
+           (lambda _
+            (setenv "HOME" "/tmp")
+            (setenv "SAGE_ROOT" (getcwd))
+            (setenv "SAGE_LOCAL" (getcwd))
+            (setenv "SAGE_SHARE" (string-append (getcwd) "/share"))
+            (setenv "SAGE_NUM_THREADS" (number->string (parallel-job-count)))
+            (mkdir-p "var/lib/sage/installed")
+            (chdir "src")
+            #t)))))
+    (propagated-inputs
+     `(("python-cypari2" ,python-cypari2)
+       ("python-cysignals" ,python-cysignals)
+       ("python-cython" ,python-cython)
+       ("python-gmpy2" ,python-gmpy2)
+       ("python-jinja2" ,python-jinja2)
+       ("python-numpy" ,python-numpy)
+       ("python-pkgconfig" ,python-pkgconfig)
+       ("python-six" ,python-six)))
+    (inputs
+     `(("arb" ,arb)
+       ("boost" ,boost) ; TODO: Is this needed?
+       ("braiding" ,libbraiding)
+       ("brial" ,brial)
+       ("bzip2" ,bzip2)
+       ("cliquer" ,cliquer)
+       ("ecl" ,ecl-16)
+       ("eclib" ,eclib)
+       ("ecm" ,gmp-ecm)
+       ("ecm:libatomic-ops" ,libatomic-ops)
+       ("flint" ,flint)
+       ("gf2x" ,gf2x)
+       ("gap" ,gap)
+       ("gc" ,libgc)
+       ("gd" ,gd)
+       ("givaro" ,givaro)
+       ("glpk" ,glpk)
+       ("gmp" ,gmp)
+       ("gsl" ,gsl)
+       ("homfly" ,libhomfly)
+       ("iml" ,iml)
+       ("lcalc" ,lcalc)
+       ("libffi" ,libffi)
+       ("libpng" ,libpng)
+       ("linbox" ,linbox)
+       ("lrcalc" ,lrcalc)
+       ("m4ri" ,m4ri)
+       ("m4rie" ,m4rie)
+       ("mpc" ,mpc)
+       ("mpfi" ,mpfi)
+       ("mpfr" ,mpfr)
+       ("ncurses" ,ncurses)
+       ("ntl" ,ntl)
+       ("openssl" ,openssl)
+       ("pari" ,pari-gp)
+       ("pcre" ,pcre)
+       ("planarity" ,edge-addition-planarity-suite)
+       ("ppl" ,ppl)
+       ("pynac" ,pynac)
+       ("rw" ,rw)
+       ("ratpoints" ,ratpoints)
+       ("readline" ,readline)
+       ("singular" ,singular)
+       ("sqlite" ,sqlite)
+       ("symmetrica" ,symmetrica)
+       ("texlive" ,texlive-tiny)
+       ("zeromq" ,zeromq) ; TODO: Is this needed?
+       ("zlib" ,zlib)
+       ("zn-poly" ,zn-poly)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("cmake" ,cmake)
+       ("gettext" ,gettext-minimal)
+       ("gfortran" ,gfortran-toolchain)
+       ("m4" ,m4)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("yasm" ,yasm)))
+    (home-page "https://www.sagemath.org/")
+    (synopsis "Python-based computer algebra system")
+    (description "TODO")
+    (license license:gpl3)))
-- 
2.26.2





^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [bug#41971] [WIP PATCH 0/5] Add SageMath
  2020-06-20 21:28 [bug#41971] [WIP PATCH 0/5] Add SageMath Jakub Kądziołka
                   ` (4 preceding siblings ...)
  2020-06-20 21:32 ` [bug#41971] [PATCH 5/5] [WIP] gnu: Add sagemath Jakub Kądziołka
@ 2020-07-07 12:47 ` Nicolas Goaziou
  2020-07-10 21:06   ` bug#40283: " Jakub Kądziołka
  2023-03-20 14:13   ` Ludovic Courtès
  5 siblings, 2 replies; 12+ messages in thread
From: Nicolas Goaziou @ 2020-07-07 12:47 UTC (permalink / raw)
  To: Jakub Kądziołka; +Cc: 41971, andreas

Hello,

Jakub Kądziołka <kuba@kadziolka.net> writes:

> This patchstack builds upon #40283 and packages (some of) SageMath.
> Currently, sagelib is built successfully, but the `sage' binary is not
> being installed. I'm submitting this here as I'm no longer actively
> working on this for now. Some things remain to be done:

Thanks!

Would it make sense to add the uncontroversial fourth first patches,
along with #40283, so it is easier to hack on the sagemath package
itself?

I'm also Cc'ing Andreas Enge, who showed interest in packaging Sagemath
a few months ago, and, AFAIK, was close to succeeding.

Regards,
-- 
Nicolas Goaziou




^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#40283: [bug#41971] [WIP PATCH 0/5] Add SageMath
  2020-07-07 12:47 ` [bug#41971] [WIP PATCH 0/5] Add SageMath Nicolas Goaziou
@ 2020-07-10 21:06   ` Jakub Kądziołka
  2023-03-20 14:13   ` Ludovic Courtès
  1 sibling, 0 replies; 12+ messages in thread
From: Jakub Kądziołka @ 2020-07-10 21:06 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 41971, andreas, 40283-done

[-- Attachment #1: Type: text/plain, Size: 796 bytes --]

On Tue, Jul 07, 2020 at 02:47:28PM +0200, Nicolas Goaziou wrote:
> Hello,
> 
> Jakub Kądziołka <kuba@kadziolka.net> writes:
> 
> > This patchstack builds upon #40283 and packages (some of) SageMath.
> > Currently, sagelib is built successfully, but the `sage' binary is not
> > being installed. I'm submitting this here as I'm no longer actively
> > working on this for now. Some things remain to be done:
> 
> Thanks!
> 
> Would it make sense to add the uncontroversial fourth first patches,
> along with #40283, so it is easier to hack on the sagemath package
> itself?

Sure it would! I just did.

> I'm also Cc'ing Andreas Enge, who showed interest in packaging Sagemath
> a few months ago, and, AFAIK, was close to succeeding.

Thanks!

Regards,
Jakub Kądziołka

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#41971] [WIP PATCH 0/5] Add SageMath
  2020-07-07 12:47 ` [bug#41971] [WIP PATCH 0/5] Add SageMath Nicolas Goaziou
  2020-07-10 21:06   ` bug#40283: " Jakub Kądziołka
@ 2023-03-20 14:13   ` Ludovic Courtès
  2023-03-20 15:01     ` Andreas Enge
  2023-03-20 18:13     ` Maja Kądziołka
  1 sibling, 2 replies; 12+ messages in thread
From: Ludovic Courtès @ 2023-03-20 14:13 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: Jakub Kądziołka, 41971, andreas

Hello!

Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:

> Jakub Kądziołka <kuba@kadziolka.net> writes:
>
>> This patchstack builds upon #40283 and packages (some of) SageMath.
>> Currently, sagelib is built successfully, but the `sage' binary is not
>> being installed. I'm submitting this here as I'm no longer actively
>> working on this for now. Some things remain to be done:
>
> Thanks!
>
> Would it make sense to add the uncontroversial fourth first patches,
> along with #40283, so it is easier to hack on the sagemath package
> itself?

Time has passed, but it still sounds like a nice addition.

Andreas, Nicolas: should one of you go ahead and apply part of these
patches?

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#41971] [WIP PATCH 0/5] Add SageMath
  2023-03-20 14:13   ` Ludovic Courtès
@ 2023-03-20 15:01     ` Andreas Enge
  2023-03-20 18:13     ` Maja Kądziołka
  1 sibling, 0 replies; 12+ messages in thread
From: Andreas Enge @ 2023-03-20 15:01 UTC (permalink / raw)
  To: Ludovic Courtès
  Cc: Jakub Kądziołka, 41971, Guillaume Le Vaillant,
	Nicolas Goaziou

Am Mon, Mar 20, 2023 at 03:13:24PM +0100 schrieb Ludovic Courtès:
> > Would it make sense to add the uncontroversial fourth first patches,
> > along with #40283, so it is easier to hack on the sagemath package
> > itself?
> Time has passed, but it still sounds like a nice addition.

There is also
   https://issues.guix.gnu.org/56729
where I was waiting for a reply from the submitter, and/or Guillaume
concerning the Lisp version with which Maxima is compiled.

I would have to get back to both issues to see what the current status is,
but could only do so in a week or two.

Andreas





^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#41971] [WIP PATCH 0/5] Add SageMath
  2023-03-20 14:13   ` Ludovic Courtès
  2023-03-20 15:01     ` Andreas Enge
@ 2023-03-20 18:13     ` Maja Kądziołka
  2023-03-21  9:40       ` bug#41971: " Ludovic Courtès
  1 sibling, 1 reply; 12+ messages in thread
From: Maja Kądziołka @ 2023-03-20 18:13 UTC (permalink / raw)
  To: Ludovic Courtès, Nicolas Goaziou; +Cc: 41971, andreas

On 20/03/2023 15:13, Ludovic Courtès wrote:
 > Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:
 >
 >> Would it make sense to add the uncontroversial fourth first patches,
 >> along with #40283, so it is easier to hack on the sagemath package
 >> itself?
 >
 > Time has passed, but it still sounds like a nice addition.
 >
 > Andreas, Nicolas: should one of you go ahead and apply part of these
 > patches?
 >
 > Thanks,
 > Ludo’.

Wow, I wrote these patches like 2 genders and 3 distros ago :P

FWIW, they did get pushed to master when you first suggested it, at 
commit db7f74d2eb4878c0a9ed8bb33853090752277370 and friends.

Regards,
Maya :3




^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#41971: [WIP PATCH 0/5] Add SageMath
  2023-03-20 18:13     ` Maja Kądziołka
@ 2023-03-21  9:40       ` Ludovic Courtès
  0 siblings, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2023-03-21  9:40 UTC (permalink / raw)
  To: Maja Kądziołka; +Cc: andreas, 41971-done, Nicolas Goaziou

Hi,

Maja Kądziołka <kuba@kadziolka.net> skribis:

> FWIW, they did get pushed to master when you first suggested it, at
> commit db7f74d2eb4878c0a9ed8bb33853090752277370 and friends.

Ooooh, right!  My bad.

Closing, thanks!

Ludo’.




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-03-21  9:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-20 21:28 [bug#41971] [WIP PATCH 0/5] Add SageMath Jakub Kądziołka
2020-06-20 21:31 ` [bug#41971] [PATCH 1/5] gnu: linbox: Fix linking of dependant packages Jakub Kądziołka
2020-06-20 21:31 ` [bug#41971] [PATCH 2/5] gnu: sagemath: Remove unnecessary old versions of packages Jakub Kądziołka
2020-06-20 21:31 ` [bug#41971] [PATCH 3/5] gnu: Add ECL 16.1.3 for Sage Jakub Kądziołka
2020-06-20 21:32 ` [bug#41971] [PATCH 4/5] gnu: lcalc: Don't rename the include directory Jakub Kądziołka
2020-06-20 21:32 ` [bug#41971] [PATCH 5/5] [WIP] gnu: Add sagemath Jakub Kądziołka
2020-07-07 12:47 ` [bug#41971] [WIP PATCH 0/5] Add SageMath Nicolas Goaziou
2020-07-10 21:06   ` bug#40283: " Jakub Kądziołka
2023-03-20 14:13   ` Ludovic Courtès
2023-03-20 15:01     ` Andreas Enge
2023-03-20 18:13     ` Maja Kądziołka
2023-03-21  9:40       ` bug#41971: " Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).