gnu: Add wl-clipboard.
[jackhill/guix/guix.git] / gnu / packages / algebra.scm
index eea23bd..46ad548 100644 (file)
@@ -139,7 +139,7 @@ solve the shortest vector problem.")
 (define-public pari-gp
   (package
    (name "pari-gp")
-   (version "2.11.0")
+   (version "2.11.1")
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -147,7 +147,7 @@ solve the shortest vector problem.")
                   version ".tar.gz"))
             (sha256
               (base32
-                "18f9yj8ffn3dxignbxj1x36771zbxy4js0r18mv6831ymb6cld9q"))))
+                "1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94"))))
    (build-system gnu-build-system)
    (native-inputs `(("texlive" ,texlive-tiny)))
    (inputs `(("gmp" ,gmp)
@@ -243,7 +243,7 @@ precision.")
 (define-public giac-xcas
   (package
     (name "giac-xcas")
-    (version "1.4.9-59")
+    (version "1.5.0-29")
     (source (origin
               (method url-fetch)
               ;; "~parisse/giac" is not used because the maintainer regularly
@@ -255,16 +255,48 @@ precision.")
                                   "source/giac_" version ".tar.gz"))
               (sha256
                (base32
-                "0dv5p5y6gkrsmz3xa7fw87rjyabwdwk09mqb09kb7gai9n9dgayk"))))
+                "1d904w02x6i26crbvw2d25v7j1hv1w461casyj5mgh42kzcdhb4c"))))
     (build-system gnu-build-system)
+    (outputs '("out" "doc"))            ;77MiB of documentation
     (arguments
-     `(#:phases
+     `(#:modules ((ice-9 ftw)
+                  (guix build utils)
+                  (guix build gnu-build-system))
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-bin-cp
+           ;; Some Makefiles contain hard-coded "/bin/cp".
            (lambda _
-             ;; Some Makefiles contain hard-coded "/bin/cp".
              (substitute* (find-files "doc" "^Makefile")
                (("/bin/cp") (which "cp")))
+             #t))
+         (add-after 'unpack 'disable-failing-test
+           ;; FIXME: Test failing.  Not sure why.
+           (lambda _
+             (substitute* "check/Makefile.in"
+               (("chk_fhan11") ""))
+             #t))
+         (add-after 'install 'install-doc
+           ;; Setting --docdir to "doc" output isn't sufficient as
+           ;; documentation and examples are scattered throughout the source.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc"))
+                    (docdir (string-append doc
+                                           "/share/doc/"
+                                           (string-append ,name "-" ,version))))
+               ;; For some reason, the install process moves
+               ;; "share/giac/examples" instead of "share/giac/doc" to
+               ;; "$(docdir)".  Clean up the mess and start over.
+               (delete-file-recursively (string-append doc "/share"))
+               (mkdir-p docdir)
+               (with-directory-excursion out
+                 (for-each (lambda (f)
+                             (unless (member f '("." ".."))
+                               (copy-recursively (string-append "share/giac/" f)
+                                                 (string-append docdir "/" f))))
+                           (scandir "share/giac"))
+                 (delete-file-recursively "share/giac")))
              #t)))))
     (inputs
      `(("fltk" ,fltk)
@@ -344,47 +376,47 @@ fast arithmetic.")
 
 (define-public arb
   (package
-   (name "arb")
-   (version "2.14.0")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append
-                  "https://github.com/fredrik-johansson/arb/archive/"
-                  version ".tar.gz"))
-            (file-name (string-append name "-" version ".tar.gz"))
-            (sha256
-              (base32
-                "0ncr27nd20xxi18nj30cvpa6r52v59nq7gbi34x3l4xym3p8mlmx"))))
-   (build-system gnu-build-system)
-   (propagated-inputs
-    `(("flint" ,flint))) ; flint.h is included by arf.h
-   (inputs
-    `(("gmp" ,gmp)
-      ("mpfr" ,mpfr)))
-   (arguments
-    `(#:phases
-      (modify-phases %standard-phases
-        (replace 'configure
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out"))
-                  (flint (assoc-ref inputs "flint"))
-                  (gmp (assoc-ref inputs "gmp"))
-                  (mpfr (assoc-ref inputs "mpfr")))
-              ;; do not pass "--enable-fast-install", which makes the
-              ;; homebrew configure process fail
-              (invoke "./configure"
-                      (string-append "--prefix=" out)
-                      (string-append "--with-flint=" flint)
-                      (string-append "--with-gmp=" gmp)
-                      (string-append "--with-mpfr=" mpfr))))))))
-   (synopsis "Arbitrary precision floating-point ball arithmetic")
-   (description
-    "Arb is a C library for arbitrary-precision floating-point ball
+    (name "arb")
+    (version "2.14.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/fredrik-johansson/arb.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ndxg7h4xvccjgp5l9z2f8b66dsff6fhf86bn5n7f75a1ksd7554"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     `(("flint" ,flint)))               ; flint.h is included by arf.h
+    (inputs
+     `(("gmp" ,gmp)
+       ("mpfr" ,mpfr)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (flint (assoc-ref inputs "flint"))
+                   (gmp (assoc-ref inputs "gmp"))
+                   (mpfr (assoc-ref inputs "mpfr")))
+               ;; do not pass "--enable-fast-install", which makes the
+               ;; homebrew configure process fail
+               (invoke "./configure"
+                       (string-append "--prefix=" out)
+                       (string-append "--with-flint=" flint)
+                       (string-append "--with-gmp=" gmp)
+                       (string-append "--with-mpfr=" mpfr))))))))
+    (synopsis "Arbitrary precision floating-point ball arithmetic")
+    (description
+     "Arb is a C library for arbitrary-precision floating-point ball
 arithmetic.  It supports efficient high-precision computation with
 polynomials, power series, matrices and special functions over the
 real and complex numbers, with automatic, rigorous error control.")
-   (license license:lgpl2.1+)
-   (home-page "http://fredrikj.net/arb/")))
+    (license license:lgpl2.1+)
+    (home-page "http://fredrikj.net/arb/")))
 
 (define-public ntl
   (package
@@ -536,13 +568,14 @@ syntax is similar to that of C, so basic usage is familiar.  It also includes
     (name "kiss-fft-for-extempore")
     (version "1.3.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/extemporelang/kiss_fft/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/extemporelang/kiss_fft.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0hkp9l6l4c92fb1l2sh6a6zv1hynpvb2s4d03vd8vxyvybc0l4pv"))))
+                "0jasbmqy4wkqrqx3w64s1dfmj34875xmsl72mb26aa4hpyn14bi2"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ; no tests included
     ;; Extempore refuses to build on architectures other than x86_64