gnu: Add cl-ana.statistical-learning.
[jackhill/guix/guix.git] / gnu / packages / databases.scm
index cb84367..393dbee 100644 (file)
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
-;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
   #:use-module (guix build-system ruby)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system scons)
+  #:use-module (guix build-system trivial)
   #:use-module ((guix build utils) #:hide (which))
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
@@ -899,6 +900,33 @@ Language.")
 as a drop-in replacement of MySQL.")
     (license license:gpl2)))
 
+;; TODO: mysql_install_db is broken in MariaDB.  This package is here as
+;; a workaround for packages that need it.  Merge with 'mariadb' in the next
+;; rebuild cycle.
+(define-public mariadb/fixed-install-db
+  (hidden-package
+   (package/inherit
+    mariadb
+    (name "mariadb-fixed")
+    (native-inputs '())
+    (inputs
+     `(("mariadb" ,mariadb)
+       ("mariadb:lib" ,mariadb "lib")))
+    (outputs '("out"))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules ((guix build utils)))
+         (let ((out (assoc-ref %outputs "out")))
+           (copy-recursively (assoc-ref %build-inputs "mariadb") out)
+           (substitute*  (string-append out "/bin/mysql_install_db")
+             (("\\$basedir/share/mysql")
+              (string-append (assoc-ref %build-inputs "mariadb:lib")
+                             "/share/mysql")))
+           #t)))))))
+
 ;; Don't forget to update the other postgresql packages when upgrading this one.
 (define-public postgresql
   (package
@@ -1363,14 +1391,14 @@ changes.")
 (define-public tdb
   (package
     (name "tdb")
-    (version "1.4.2")
+    (version "1.4.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0jh0iqbb6pkvqrqn033w5g6gwa4bdgkvp49z0qpkk3h2wk6b4h4h"))))
+                "06waz0k50c7v3chd08mzp2rv7w4k4q9isbxx3vhlfpx1vy9q61f8"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -2598,17 +2626,18 @@ PickleShare.")
 (define-public python-apsw
   (package
     (name "python-apsw")
-    (version "3.20.1-r1")
+    (version "3.28.0-r1")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "https://github.com/rogerbinns/apsw/archive/"
-                            version ".tar.gz"))
-        (file-name (string-append "apsw-" version ".tar.gz"))
+        (uri (string-append "https://github.com/rogerbinns/apsw/releases"
+                            "/download/" version "/apsw-" version ".zip"))
         (sha256
           (base32
-           "00ai7m2pqi26qaflhz314d8k5i3syw7xzr145fhfl0crhyh6adz2"))))
+           "0x62534l5hcgwrc4k2gxpdzc1sxlhm6m4nwlay74rnmr77qh8wly"))))
     (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)))
     (inputs
      `(("sqlite" ,sqlite)))
     (arguments
@@ -2623,8 +2652,7 @@ PickleShare.")
              (invoke "gcc" "-fPIC" "-shared" "-o" "./testextension.sqlext"
                      "-I." "-Isqlite3" "src/testextension.c")
              #t))
-         (delete 'check)
-         (add-after 'install 'check
+         (replace 'check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
              (invoke "python" "setup.py" "test")
@@ -3233,25 +3261,29 @@ simultaneous database connections by using this framework.")
                 "0m680h8cc4428xin4p733azysamzgzcmv4psjvraykrsaz6ymlj3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("inetutils" ,inetutils)
-       ("glibc-locales" ,glibc-locales)))
+     `(;; For tests.
+       ("inetutils" ,inetutils)
+       ("glibc-locales" ,glibc-locales)
+       ("mariadb" ,mariadb/fixed-install-db)))
     (inputs
      `(("libdbi" ,libdbi)
-       ("mysql" ,mariadb)
+       ("mariadb:dev" ,mariadb "dev")
+       ("mariadb:lib" ,mariadb "lib")
        ("postgresql" ,postgresql)
        ("sqlite" ,sqlite)))
     (arguments
      `(#:configure-flags
        (let ((libdbi (assoc-ref %build-inputs "libdbi"))
-             (mysql (assoc-ref %build-inputs "mysql"))
+             (mysql:inc (assoc-ref %build-inputs "mariadb:dev"))
+             (mysql:lib (assoc-ref %build-inputs "mariadb:lib"))
              (postgresql (assoc-ref %build-inputs "postgresql"))
              (sqlite (assoc-ref %build-inputs "sqlite")))
          (list "--disable-docs"
                (string-append "--with-dbi-incdir=" libdbi "/include")
                (string-append "--with-dbi-libdir=" libdbi "/lib")
                "--with-mysql"
-               (string-append "--with-mysql-incdir=" mysql "/include/mysql")
-               (string-append "--with-mysql-libdir=" mysql "/lib")
+               (string-append "--with-mysql-incdir=" mysql:inc "/include/mysql")
+               (string-append "--with-mysql-libdir=" mysql:lib "/lib")
                "--with-pgsql"
                (string-append "--with-pgsql-incdir=" postgresql "/include")
                (string-append "--with-pgsql-libdir=" postgresql "/lib")
@@ -3265,7 +3297,7 @@ simultaneous database connections by using this framework.")
              (substitute* "tests/test_mysql.sh"
                (("^MYMYSQLD=.*")
                 (string-append "MYMYSQLD="
-                               (assoc-ref inputs "mysql")
+                               (assoc-ref inputs "mariadb")
                                "/bin/mysqld")))
              #t))
          (add-after 'install 'remove-empty-directories