;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
- #:use-module (gnu packages guile)
- #:use-module (gnu packages time)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages language)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages lisp)
+ #:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages logging)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
- #:use-module (gnu packages python-web)
#:use-module (gnu packages python-science)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
#:use-module (gnu packages textutils)
+ #:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages web)
(define-public memcached
(package
(name "memcached")
- (version "1.5.20")
+ (version "1.6.9")
(source
(origin
(method url-fetch)
(uri (string-append
"https://memcached.org/files/memcached-" version ".tar.gz"))
(sha256
- (base32 "1r511qr95q0ywdaql3pdjiwzkfqxhhfzb13ilvl7mznfm4iv1myg"))))
+ (base32 "1lcjy1b9krnb2gk72qd1fvivlfiyfvknfi3wngyvyk9ifzijr9nm"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)
"-DMYSQL_DATADIR=/var/lib/mysql"
"-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
- ;; Do not install the tests or benchmark suite.
- "-DINSTALL_MYSQLTESTDIR=false"
+ ;; Do not install the benchmark suite.
"-DINSTALL_SQLBENCHDIR=false"
(string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "lib"))
;; to other variables such as $INSTALL_INCLUDEDIR, which does
;; not work when the latter uses an absolute file name.
(substitute* "libmariadb/mariadb_config/mariadb_config.c.in"
- (("@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@")
- "@INSTALL_INCLUDEDIR@"))
+ (("%s/@INSTALL_INCLUDEDIR@")
+ (string-append "@INSTALL_INCLUDEDIR@"))
+ ;; As of 10.5.8, the mariadb_config program tries to be
+ ;; clever and computes the installation directory relative
+ ;; to /proc/self/exe when running on Linux. Make it fall
+ ;; back to the old behaviour.
+ (("defined\\(__linux__\\)")
+ "0"))
(substitute* "libmariadb/mariadb_config/libmariadb.pc.in"
(("\\$\\{prefix\\}/@INSTALL_INCLUDEDIR@")
"@INSTALL_INCLUDEDIR@"))
+ (substitute* "support-files/mariadb.pc.in"
+ (("^(include|bin|script|doc|man)dir=\\$\\{prefix\\}/" _ dir)
+ (string-append dir "dir=")))
(substitute* "include/CMakeLists.txt"
(("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_INCLUDEDIR\\}")
"${INSTALL_INCLUDEDIR}"))
+ (substitute* "cmake/mariadb_connector_c.cmake"
+ (("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_BINDIR\\}")
+ "${INSTALL_BINDIR}"))
#t))
(add-after 'unpack 'adjust-tests
(lambda _
;; substitutable because several encodings are tested.
"main.sp2"
+ ;; XXX: This test occasionally fails on i686-linux:
+ ;; <https://jira.mariadb.org/browse/MDEV-24458>
+ ,@(if (string-prefix? "i686" (%current-system))
+ '("main.myisampack")
+ '())
+
;; This file contains a time bomb which makes it fail after
;; 2030-12-31. See <https://bugs.gnu.org/34351> for details.
"main.mysqldump"))
(string-append lib "/share/mysql")))
(with-directory-excursion lib
- ;; FIXME: Something creates an empty gnu/store/xxx-mariadb/bin
- ;; directory at the root of the lib output. It's not present
- ;; in the installation log. This started occuring between
- ;; 10.5.6 and 10.5.8. How to prevent it?
- (delete-file-recursively "gnu")
+ ;; Remove tests.
+ (delete-file-recursively "mysql-test")
;; Remove static libraries.
(for-each delete-file (find-files "lib" "\\.a$")))
(define-public mariadb-connector-c
(package
(name "mariadb-connector-c")
- (version "3.1.11")
+ (version "3.1.12")
(source
(origin
(method url-fetch)
"https://downloads.mariadb.org/f/connector-c-" version
"/mariadb-connector-c-" version "-src.tar.gz"
"/from/https%3A//mirrors.ukfast.co.uk/sites/mariadb/?serve"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "03svzahdf7czjlm695c11r4bfd04qdqgx8r1vkpr1zlkjhwnqvry"))))
+ (base32 "0qzyahr8x9l1xz0l79wz3iahxz7648n1azc5yr7kx0dl113y2nig"))))
(inputs
`(("openssl" ,openssl)))
(build-system cmake-build-system)
(define-public postgresql-13
(package
(name "postgresql")
+ (replacement postgresql-13.2)
(version "13.1")
(source (origin
(method url-fetch)
(patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl")
+ `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl"
+ ;; PostgreSQL installs its own Makefile (should it?).
+ ;; Prevent it from retaining needless references to
+ ;; the build tools in order to save size.
+ "MKDIR_P=mkdir -p" "INSTALL_BIN=install -c"
+ "LD=ld" "TAR=tar")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-/bin/sh
pictures, sounds, or video.")
(license (license:x11-style "file://COPYRIGHT"))))
+(define-public postgresql-13.2
+ (package
+ (inherit postgresql-13)
+ (name "postgresql")
+ (version "13.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ftp.postgresql.org/pub/source/v"
+ version "/postgresql-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1z5d847jnajcfr3wa6jn52a8xjhamvwzmz18xlm5nvxqip8grmsz"))
+ (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))))
+
(define-public postgresql-11
(package
(inherit postgresql-13)
(name "postgresql")
- (version "11.6")
+ (version "11.11")
(source (origin
(inherit (package-source postgresql-13))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "0w1iq488kpzfgfnlw4k32lz5by695mpnkq461jrgsr99z5zlz4j9"))))))
+ "0v0qk298nxmpzpgsxcsxma328hdkyzd7fwjs0zsn6zavl5zpnq20"))))))
(define-public postgresql-10
(package
(inherit postgresql-11)
- (version "10.13")
+ (version "10.16")
(source (origin
(inherit (package-source postgresql-11))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "1qal0yp7a90yzya7hl56gsmw5fvacplrdhpn7h9gnbyr1i2iyw2d"))))))
+ "1cvv8qw0gkkczqhiwx6ns7w88dwkvdz4cvb2d4ff14363f5p2p53"))))))
(define-public postgresql-9.6
(package
(inherit postgresql-10)
- (version "9.6.16")
+ (version "9.6.21")
(source (origin
(inherit (package-source postgresql-10))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "1rr2dgv4ams8r2lp13w85c77rkmzpb88fjlc28mvlw6zq2fblv2w"))))))
+ "0d0ngpadf1i7c0i2psaxcbmiwx8334ibcsn283n9fp4853pyl3wk"))))))
(define-public postgresql postgresql-13)
+(define-public pgloader
+ (package
+ (name "pgloader")
+ (version "3.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dimitri/pgloader")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "06i1jd2za3ih5caj2b4vzlzags5j65vv8dfdbz0ggdrp40wfd5lh"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; NOTE: (Sharlatan-20210119T211511+0000) Tests are disabled due to being
+ ;; dependent on Quicklisp, main build target is `pgloader-standalone' which
+ ;; does not require Quicklisp workarounds. There is no `install' target
+ ;; configured in Makefile.
+ `(#:tests? #f
+ #:strip-binaries? #f
+ #:make-flags
+ (list "pgloader-standalone" "BUILDAPP_SBCL=buildapp")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'set-home
+ (lambda _
+ (setenv "HOME" "/tmp")
+ #t))
+ (add-after 'unpack 'patch-Makefile
+ (lambda _
+ (substitute* "Makefile"
+ (("--sbcl.*") "--sbcl $(CL) --asdf-path . \\\n"))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (mkdir-p bin)
+ (install-file "build/bin/pgloader" bin))
+ #t)))))
+ (native-inputs
+ `(("buildapp" ,buildapp)
+ ("sbcl" ,sbcl)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-abnf" ,sbcl-cl-abnf)
+ ("cl-base64" ,sbcl-cl-base64)
+ ("cl-csv" ,sbcl-cl-csv)
+ ("cl-fad" ,sbcl-cl-fad)
+ ("cl-log" ,sbcl-cl-log)
+ ("cl-markdown" ,sbcl-cl-markdown)
+ ("cl-mustache" ,sbcl-cl-mustache)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("cl-sqlite" ,sbcl-cl-sqlite)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("command-line-arguments" ,sbcl-command-line-arguments)
+ ("db3" ,sbcl-db3)
+ ("drakma" ,sbcl-drakma)
+ ("esrap" ,sbcl-esrap)
+ ("flexi-streams" ,sbcl-flexi-streams)
+ ("ixf" ,sbcl-ixf)
+ ("local-time" ,sbcl-local-time)
+ ("lparallel" ,sbcl-lparallel)
+ ("metabang-bind" ,sbcl-metabang-bind)
+ ("mssql" ,sbcl-mssql)
+ ("postmodern" ,sbcl-postmodern)
+ ("py-configparser" ,sbcl-py-configparser)
+ ("qmynd" ,sbcl-qmynd)
+ ("quri" ,sbcl-quri)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("trivial-backtrace" ,sbcl-trivial-backtrace)
+ ("usocket" ,sbcl-usocket)
+ ("uuid" ,sbcl-uuid)
+ ("yason" ,sbcl-yason)
+ ("zs3" ,sbcl-zs3)))
+ (home-page "https://pgloader.io/")
+ (synopsis "Tool to migrate data to PostgreSQL")
+ (description
+ "@code{pgloader} is a program that can load data or migrate databases from
+CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.")
+ (license (license:x11-style "file://LICENSE"))))
+
(define-public python-pymysql
(package
(name "python-pymysql")
(define-public redis
(package
(name "redis")
- (version "5.0.7")
+ (version "6.0.11")
(source (origin
(method url-fetch)
(uri (string-append "http://download.redis.io/releases/redis-"
version".tar.gz"))
(sha256
(base32
- "0ax8sf3vw0yadr41kzc04917scrg5wir1d94zmbz00b8pzm79nv1"))))
+ "0prwqap452m581nyc3cz642d1z3x9nd81896hlqdm3z8238z49y9"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete bundled jemalloc, as the package will use the libc one
+ '(begin (delete-file-recursively "deps/jemalloc")
+ #t))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("procps" ,procps) ; for tests
+ ("tcl" ,tcl))) ; for tests
(arguments
- '(#:tests? #f ; tests related to master/slave and replication fail
- #:phases (modify-phases %standard-phases
- (delete 'configure))
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'use-correct-tclsh
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "runtest"
+ (("^TCLSH=.*")
+ (string-append "TCLSH="
+ (assoc-ref inputs "tcl")
+ "/bin/tclsh")))
+ #t))
+ (add-after 'unpack 'adjust-tests
+ (lambda _
+ ;; Disable failing tests
+ (substitute* "tests/test_helper.tcl"
+ ((" integration/replication[^-]") "")
+ ((" integration/replication-4") "")
+ ((" integration/replication-psync") ""))
+ #t)))
#:make-flags `("CC=gcc"
"MALLOC=libc"
"LDFLAGS=-ldl"
(define-public kyotocabinet
(package
(name "kyotocabinet")
- (version "1.2.78")
+ (version "1.2.79")
(source (origin
(method url-fetch)
(uri (string-append "https://fallabs.com/kyotocabinet/pkg/"
"kyotocabinet-" version ".tar.gz"))
(sha256
(base32
- "1bxkf9kmcavq9rqridb8mvmrk3hj4447ffi24m2admsbm61n6k29"))))
+ "079ymsahlrijswgwfr2la9yw5h57l752cprhp5dz31iamsj1vyv7"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(define-public lmdb
(package
(name "lmdb")
- (version "0.9.27")
+ (version "0.9.28")
(source
(origin
(method git-fetch)
(commit (string-append "LMDB_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "09xqqm8yjsf1gv4gd4llal48sms76hfhxadx6rik1j2g5v3d3f1k"))))
+ (base32 "012a8bs49cswsnzw7k4piis5b6dn4by85w7a7mai9i04xcjyy9as"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
(chdir "libraries/liblmdb")
(substitute* "Makefile"
(("/usr/local") (assoc-ref outputs "out")))
- #t)))))
+ #t))
+ (add-after 'install 'create-pkg-config-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/lib/pkgconfig"))
+ (with-output-to-file (string-append out "/lib/pkgconfig/liblmdb.pc")
+ (lambda _
+ (format #t "prefix=~a~@
+ exec_prefix=~a~@
+ libdir=~a/lib~@
+ includedir=~a/include~@
+ ~@
+ Name: liblmdb~@
+ Version: ~a~@
+ Description: Lightning Memory-Mapped Database library~@
+ Libs: -L${libdir} -llmdb~@
+ Cflags: -I${includedir}~%"
+ out out out out ,version)))
+ #t))))))
(home-page "https://symas.com/lmdb/")
(synopsis "Lightning Memory-Mapped Database library")
(description
(define-public apache-arrow
(package
(name "apache-arrow")
- (version "0.17.1")
+ (version "3.0.0")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "02r6yx3yhywzikd3b0vfkjgddhfiriyx2vpm3jf5880wq59x798a"))))
+ "03ngddh3r1g6f9aja2jlfksgvgyzmxmfy4bxvzjrcv5fvl5x8ii0"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f
;;"-DBENCHMARK_ENABLE_TESTING=OFF"
"-DARROW_BUILD_STATIC=OFF")))
(inputs
- `(("boost" ,boost)
+ `(("apache-thrift" ,apache-thrift "lib")
+ ("boost" ,boost)
("brotli" ,google-brotli)
+ ("bzip2" ,bzip2)
("double-conversion" ,double-conversion)
- ("snappy" ,snappy)
("gflags" ,gflags)
("glog" ,glog)
- ("apache-thrift" ,apache-thrift "lib")
+ ("grpc" ,grpc)
+ ("lz4" ,lz4)
("protobuf" ,protobuf)
+ ("python-3" ,python)
+ ("python-numpy" ,python-numpy)
("rapidjson" ,rapidjson)
- ("zlib" ,zlib)
- ("bzip2" ,bzip2)
- ("lz4" ,lz4)
- ("zstd" ,zstd "lib")
("re2" ,re2)
- ("grpc" ,grpc)
- ("python-3" ,python)
- ("python-numpy" ,python-numpy)))
+ ("snappy" ,snappy)
+ ("utf8proc" ,utf8proc)
+ ("zlib" ,zlib)
+ ("zstd" ,zstd "lib")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(outputs '("out" "lib" "include"))
other traditional Python scientific computing packages.")
(license license:asl2.0)))
-(define-public python2-pyarrow
- (package-with-python2 python-pyarrow))
-
(define-public python-crate
(package
(name "python-crate")
"--with-sqlite3"
(string-append "--with-sqlite-incdir=" sqlite "/include")
(string-append "--with-sqlite-libdir=" sqlite "/lib")))
+ #:tests? #f ; FIXME: Find why the tests get stuck forever.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
PostreSQL, SQLite, ODBC and MySQL.")
(home-page "http://soci.sourceforge.net/")
(license license:boost1.0)))
+
+(define-public freetds
+ (package
+ (name "freetds")
+ (version "1.2.18")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.freetds.org/files/stable/"
+ "freetds-" version ".tar.gz"))
+ (sha256
+ (base32 "1hspvwxwdd1apadsy2b40dpjik8kfwcvdamvhpg3lnm15n02fb50"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; NOTE: (Sharlatan-20210110213908+0000) some tests require DB connection,
+ ;; disabled for now.
+ `(#:tests? #f))
+ (home-page "https://www.freetds.org/")
+ (synopsis "Client libraries for MS SQL and Sybase servers")
+ (description
+ "FreeTDS is an implementation of the Tabular DataStream protocol, used for
+connecting to MS SQL and Sybase servers over TCP/IP.")
+ (license license:lgpl2.0+)))