gnu: calibre: Remove unrar test.
[jackhill/guix/guix.git] / gnu / packages / multiprecision.scm
index 71e1efc..6383976 100644 (file)
@@ -4,9 +4,9 @@
 ;;; Copyright © 2015, 2018 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -192,14 +192,14 @@ error.  Additionally, iRRAM uses the concept of multi-valued functions.")
 (define-public qd
   (package
     (name "qd")
-    (version "2.3.18")
+    (version "2.3.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://crd.lbl.gov/~dhbailey/mpdist/qd-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0vkihcj9fyv2cycq8515713gbs3yskhmivy8bznvx72i6ddnn2c1"))))
+                "0wpgdzjcbanwd0c9mk90n04nas0q5fwc5zkrlbxyn6yjd2n8k3i6"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -230,17 +230,16 @@ and numerical quadrature programs are included.")
 (define-public tomsfastmath
   (package
     (name "tomsfastmath")
-    (version "0.13.0")
+    (version "0.13.1")
     (synopsis "Large integer arithmetic library")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libtom/tomsfastmath/"
                                   "releases/download/v" version "/"
-                                  "tfm-" (version-major+minor version) ".tar.bz2"))
+                                  "tfm-" version ".tar.xz"))
               (sha256
                (base32
-                "01rlsvp6lskk2a0gfdi24ak5h8vdwi6kqbvbwjnmb92r0zrfdvwd"))
-              (patches (search-patches "tomsfastmath-constness.patch"))))
+                "0f0pmiaskh89sp0q933pafxb914shpaj5ad8sb5rzk1wv8d7mja7"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("libtool" ,libtool)))
@@ -252,17 +251,17 @@ and numerical quadrature programs are included.")
                           "CC=gcc")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)            ;no configuration
+         (delete 'configure)            ; no configuration
          (replace 'check
            (lambda* (#:key make-flags #:allow-other-keys)
-             (and (zero? (apply system* "make"
-                                "stest" "test_standalone"
-                                make-flags))
-                  (zero? (system* "./stest"))
-                  (zero? (system* "./test")))))
+             (apply invoke "make"
+                    "stest" "test_standalone"
+                    make-flags)
+             (invoke "./stest")
+             (invoke "./test")))
          (add-before 'install 'install-nogroup
            (lambda _
-             ;; Let permissions inherit from the current process
+             ;; Let permissions inherit from the current process.
              (substitute* "makefile.shared"
                (("-g \\$\\(GROUP\\) -o \\$\\(USER\\)") ""))
              #t))
@@ -286,8 +285,83 @@ Libs: -L~a/lib -ltfm~%"
                            ,synopsis ,version out)))
                (install-file "tomsfastmath.pc" pc-dir)
                #t))))))
-    (home-page "http://www.libtom.org/TomsFastMath/")
+    (home-page "https://www.libtom.net/TomsFastMath/")
     (description "TomsFastMath is a large integer library written in portable
 ISO C.  It is a port of LibTomMath with optional support for inline assembler
 multiplies.")
     (license public-domain)))
+
+(define-public libtommath
+  (package
+    (name "libtommath")
+    (version "1.1.0")
+    (outputs '("out" "static"))
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/libtom/libtommath/releases/"
+                            "download/v" version "/ltm-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1bbyagqzfdbg37k1n08nsqzdf44z8zsnjjinqbsyj7rxg246qilh"))
+        (patches (search-patches "libtommath-fix-linkage.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; no configure
+         (add-after 'unpack 'prepare-build
+           (lambda _
+             ;; Don't pull in coreutils.
+             (substitute* "makefile_include.mk"
+               (("arch") "uname -m"))
+
+             ;; We want the shared library by default so force it to be the
+             ;; default makefile target.
+             (delete-file "makefile")
+             (symlink "makefile.shared" "makefile")
+             #t))
+         (add-after 'install 'remove-static-library
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file (string-append (assoc-ref outputs "out")
+                                         "/lib/libtommath.a"))
+             #t))
+         (replace 'check
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "test_standalone" make-flags)
+             (invoke "sh" "test")))
+         (add-after 'install 'install-static-library
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "-f" "makefile.unix" "install"
+                     (string-append "PREFIX=" (assoc-ref outputs "static"))
+                     (string-append "CC=" (which "gcc"))))))
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                          "CC=gcc")))
+    (native-inputs
+     `(("libtool" ,libtool)))
+    (home-page "https://www.libtom.net/LibTomMath/")
+    (synopsis "Portable number theoretic multiple-precision integer library")
+    (description "LibTomMath is a portable number theoretic multiple-precision
+integer library written entirely in C.  It's designed to provide an API that is
+simple to work with that provides fairly efficient routines that build out of
+the box without configuration.")
+    (license unlicense)))
+
+(define-public libtommath-1.0
+  (package
+    (inherit libtommath)
+    (version "1.0.1")
+    (outputs '("out"))
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/libtom/libtommath/releases/"
+                            "download/v" version "/ltm-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0sbccdwbkfc680id2fi0x067j23biqcjqilwkk7y9339knrjy0s7"))))
+    (arguments
+      (substitute-keyword-arguments (package-arguments libtommath)
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (delete 'install-static-library)))))))