;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
+;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.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 time)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages language)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages man)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages parallel)
#:use-module (gnu packages pcre)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-before 'configure 'generate-configure
+ (add-after 'unpack 'generate-configure
(lambda _
- (zero? (system* "./autogen.sh")))))))
+ (zero? (system* "sh" "autogen.sh")))))))
;; http://www.4store.org has been down for a while now.
(home-page "https://github.com/garlik/4store")
(synopsis "Clustered RDF storage and query engine")
(define-public gdbm
(package
(name "gdbm")
- (version "1.12")
+ (version "1.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdbm/gdbm-"
version ".tar.gz"))
(sha256
(base32
- "1smwz4x5qa4js0zf1w3asq6z7mh20zlgwbh2bk5dczw6xrk22yyr"))))
+ "0lx201q20dvc70f8a3c9s7s18z15inlxvbffph97ngvrgnyjq9cx"))))
(arguments `(#:configure-flags '("--enable-libgdbm-compat")))
(build-system gnu-build-system)
(home-page "http://www.gnu.org.ua/software/gdbm")
version ".tar.gz"))
(sha256
(base32
- "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0"))))))
+ "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0"))))
+ (arguments
+ `(#:tests? #f ; no check target available
+ #:disallowed-references ("doc")
+ #:phases
+ (alist-replace
+ 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ ;; '--docdir' is not honored, so we need to patch.
+ (substitute* "dist/Makefile.in"
+ (("docdir[[:blank:]]*=.*")
+ (string-append "docdir = " doc "/share/doc/bdb")))
+
+ (zero?
+ (system* "./dist/configure"
+ (string-append "--prefix=" out)
+ (string-append "CONFIG_SHELL=" (which "bash"))
+ (string-append "SHELL=" (which "bash"))
+
+ ;; Bdb doesn't recognize aarch64 as an architecture.
+ ,@(if (string=? "aarch64-linux" (%current-system))
+ '("--build=aarch64-unknown-linux-gnu")
+ '())
+
+ ;; Remove 7 MiB of .a files.
+ "--disable-static"
+
+ ;; The compatibility mode is needed by some packages,
+ ;; notably iproute2.
+ "--enable-compat185"
+
+ ;; The following flag is needed so that the inclusion
+ ;; of db_cxx.h into C++ files works; it leads to
+ ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
+ "--enable-cxx"))))
+ %standard-phases)))))
(define-public leveldb
(package
mapping from string keys to string values.")
(license license:bsd-3)))
+(define-public memcached
+ (package
+ (name "memcached")
+ (version "1.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://memcached.org/files/memcached-" version ".tar.gz"))
+ (sha256
+ (base32 "0chwc0g7wfvcad36z8pf2jbgygdnm9nm1l6pwjsn3d2b089gh0f0"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libevent" ,libevent)
+ ("cyrus-sasl" ,cyrus-sasl)))
+ (home-page "https://memcached.org/")
+ (synopsis "In memory caching service")
+ (description "Memcached is a in memory key value store. It has a small
+and generic API, and was originally intended for use with dynamic web
+applications.")
+ (license license:bsd-3)))
+
(define-public mysql
(package
(name "mysql")
- (version "5.7.17")
+ (version "5.7.19")
(source (origin
(method url-fetch)
(uri (list (string-append
name "-" version ".tar.gz")))
(sha256
(base32
- "0lcn9cm36n14g22bcppq5vf4nxbrl3khvlsp9hsixqdfb3l27gyf"))))
+ "1c8y54yk756179nx4dgg79dijmjdq5n8l057cnqsg70pjdpyfl9y"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(define-public mariadb
(package
(name "mariadb")
- (version "10.1.22")
+ (version "10.1.26")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.mariadb.org/f/"
name "-" version ".tar.gz"))
(sha256
(base32
- "1kk674mx2bf22yivvzv1al5gdg9kyxar47m282bylb6kg8p5gc5w"))))
+ "0ggpdcal0if9y6h9hp1yv2q65cbkjfl4p8rqk68a5pk7k75v325s"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
'("-DBUILD_CONFIG=mysql_release"
+ ;; Linking with libarchive fails, like this:
+
+ ;; ld: /gnu/store/...-libarchive-3.2.2/lib/libarchive.a(archive_entry.o):
+ ;; relocation R_X86_64_32 against `.bss' can not be used when
+ ;; making a shared object; recompile with -fPIC
+
+ ;; For now, disable the features that that use libarchive (xtrabackup).
+ "-DWITH_LIBARCHIVE=OFF"
+
"-DDEFAULT_CHARSET=utf8"
"-DDEFAULT_COLLATION=utf8_general_ci"
"-DMYSQL_DATADIR=/var/lib/mysql"
(define-public postgresql
(package
(name "postgresql")
- (version "9.5.6")
+ (version "9.6.5")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "0bz1b9r249ffjfvldaiah2g78ccwq30ddh8hdvlq61z26inmz7mv"))))
+ "0k3ls2x182jz6djjiqj9kycddabdl2gk1y1ajq1vipnxwfki5nh6"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
+ `(#:configure-flags '("--with-uuid=e2fs")
+ #:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-/bin/sh
(lambda _
(substitute* '("src/bin/pg_ctl/pg_ctl.c"
"src/bin/psql/command.c")
(("/bin/sh") (which "sh")))
- #t)))))
+ #t))
+ (add-after 'build 'build-contrib
+ (lambda _
+ (zero? (system* "make" "-C" "contrib"))))
+ (add-after 'install 'install-contrib
+ (lambda _
+ (zero? (system* "make" "-C" "contrib" "install")))))))
(inputs
`(("readline" ,readline)
+ ("libuuid" ,util-linux)
("zlib" ,zlib)))
(home-page "https://www.postgresql.org/")
(synopsis "Powerful object-relational database system")
#t))))
(build-system gnu-build-system)
(arguments
- '(#:make-flags (list "CC=gcc"
- ;; Make the resulting library position-independent so the
- ;; static version can be included in shared objects.
- "EXTRA_CXXFLAGS=-fPIC"
+ `(#:make-flags (list "CC=gcc"
(string-append "INSTALL_PATH="
(assoc-ref %outputs "out")))
+ ;; Many tests fail on 32-bit platforms. There are multiple reports about
+ ;; this upstream, but it's not going to be supported any time soon.
+ #:tests? (let ((system ,(or (%current-target-system)
+ (%current-system))))
+ (or (string-prefix? "x86_64-linux" system)
+ (string-prefix? "aarch64-linux" system)))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-Makefile
(lambda _
(substitute* "Makefile"
(("build_tools/gnu_parallel") "parallel")
+ ;; Don't depend on the static library when installing.
+ (("install: install-static")
+ "install: install-shared")
(("#!/bin/sh") (string-append "#!" (which "sh"))))
#t))
(delete 'configure)
+ ;; The default target is only needed for tests and built on demand.
+ (delete 'build)
+ (add-before 'check 'disable-optimizations
+ (lambda _
+ ;; Prevent the build from passing '-march=native' to the compiler.
+ (setenv "PORTABLE" "1")
+ #t))
(add-before 'check 'disable-failing-tests
(lambda _
(substitute* "Makefile"
+ ;; This test fails with GCC-5 and is unmaintained.
+ ;; https://github.com/facebook/rocksdb/issues/2148
+ (("^[[:blank:]]+spatial_db_test[[:blank:]]+\\\\") "\\")
;; These tests reliably fail due to "Too many open files".
(("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\")
(("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\"))
#t))
- (add-after
- 'check 'build-release-libraries
- ;; The 'check' target depends on the default target which is compiled
- ;; with debug symbols. The 'install' target depends on shared and
- ;; static release targets so we build them here for clarity.
- ;; TODO: Add debug output.
- (lambda* (#:key (make-flags '()) #:allow-other-keys)
- ;; Prevent the build from adding machine-specific optimizations.
- ;; This does not work if passed as a make flag...
- (setenv "PORTABLE" "1")
- (and (zero? (apply system* "make" "static_lib" make-flags))
- (zero? (apply system* "make" "shared_lib" make-flags)))))
- (add-after 'install 'delete-static-library
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib")))
- (for-each (lambda (file)
- (delete-file file))
- (find-files lib "\\.l?a$"))
- #t))))))
+ (add-after 'check 'build-release-libraries
+ ;; The default build target is a debug build for tests. The
+ ;; install target depends on "shared_lib" and "static_lib"
+ ;; targets for release builds so we build them here for clarity.
+ ;; TODO: Add debug output.
+ (lambda* (#:key (make-flags '()) #:allow-other-keys)
+ (zero? (apply system* "make" "shared_lib" make-flags)))))))
(native-inputs
`(("parallel" ,parallel)
("perl" ,perl)
(define-public sqlite
(package
(name "sqlite")
- (version "3.14.1")
+ (version "3.19.3")
(source (origin
(method url-fetch)
- ;; TODO: Download from sqlite.org once this bug :
- ;; http://lists.gnu.org/archive/html/bug-guile/2013-01/msg00027.html
- ;; has been fixed.
(uri (let ((numeric-version
(match (string-split version #\.)
((first-digit other-digits ...)
(map (cut string-pad <> 2 #\0)
other-digits))
6 #\0))))))
- (list
- (string-append
- "https://fossies.org/linux/misc/sqlite-autoconf-"
- numeric-version ".tar.gz")
- (string-append
- "http://distfiles.gentoo.org/distfiles/"
- "/sqlite-autoconf-" numeric-version ".tar.gz"))
-
- ;; XXX: As of 2015-09-08, SourceForge is squatting the URL
- ;; below, returning 200 and showing an advertising page.
- ;; (string-append
- ;; "mirror://sourceforge/sqlite.mirror/SQLite%20" version
- ;; "/sqlite-autoconf-" numeric-version ".tar.gz")
- ))
+ (string-append "https://sqlite.org/2017/sqlite-autoconf-"
+ numeric-version ".tar.gz")))
(sha256
(base32
- "19j73j44akqgc6m82wm98yvnmm3mfzmfqr8mp3n7n080d53q4wdw"))))
+ "00b3l2qglpl1inx21fckiwxnfq5xf6441flc79rqg7zdvh1rq4h6"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)))
(arguments
(list (string-append "CFLAGS=-O2 -DSQLITE_SECURE_DELETE "
"-DSQLITE_ENABLE_UNLOCK_NOTIFY "
"-DSQLITE_ENABLE_DBSTAT_VTAB"))))
- (home-page "http://www.sqlite.org/")
+ (home-page "https://www.sqlite.org/")
(synopsis "The SQLite database management system")
(description
"SQLite is a software library that implements a self-contained, serverless,
is in the public domain.")
(license license:public-domain)))
-(define-public sqlite-3.15.1
- (package (inherit sqlite)
- (version "3.15.1")
- (source (origin
- (method url-fetch)
- (uri (let ((numeric-version
- (match (string-split version #\.)
- ((first-digit other-digits ...)
- (string-append first-digit
- (string-pad-right
- (string-concatenate
- (map (cut string-pad <> 2 #\0)
- other-digits))
- 6 #\0))))))
- (string-append "https://sqlite.org/2016/sqlite-autoconf-"
- numeric-version ".tar.gz")))
- (sha256
- (base32
- "1ig2d9jzzixiifmgqsl6kjcvy17jwxby3s24gfnc5qvyd6vqkyjx"))))))
-
(define-public tdb
(package
(name "tdb")
- (version "1.3.11")
+ (version "1.3.15")
(source (origin
(method url-fetch)
(uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
version ".tar.gz"))
(sha256
(base32
- "0i1l38h0vyck6zkcj4fn2l03spadlmyr1qa1xpdp9dy2ccbm3s1r"))))
+ "0a37jhpij8wr4f4pjqdlwnffy2l6a2vkqdpz1bqxj6v06cwbz8dl"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(synopsis "Database independent interface for Perl")
(description "This package provides an database interface for Perl.")
(home-page "http://search.cpan.org/dist/DBI")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-dbix-class
(package
(native-inputs
`(("perl-dbd-sqlite" ,perl-dbd-sqlite)
("perl-file-temp" ,perl-file-temp)
+ ("perl-module-install" ,perl-module-install)
("perl-package-stash" ,perl-package-stash)
("perl-test-deep" ,perl-test-deep)
("perl-test-exception" ,perl-test-exception)
possible, including retrieving related records from multiple tables in a
single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",
\"ORDER BY\" and \"HAVING\" support.")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-dbix-class-cursor-cached
(package
(build-system perl-build-system)
(native-inputs
`(("perl-cache-cache" ,perl-cache-cache)
- ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
+ ("perl-dbd-sqlite" ,perl-dbd-sqlite)
+ ("perl-module-install" ,perl-module-install)))
(propagated-inputs
`(("perl-carp-clan" ,perl-carp-clan)
("perl-dbix-class" ,perl-dbix-class)))
(synopsis "Cursor with built-in caching support")
(description "DBIx::Class::Cursor::Cached provides a cursor class with
built-in caching support.")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-dbix-class-introspectablem2m
(package
(base32
"1w47rh2241iy5x3a9bqsyd5kdp9sk43dksr99frzv4qn4jsazfn6"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-install" ,perl-module-install)))
(propagated-inputs
`(("perl-dbix-class" ,perl-dbix-class)))
(home-page "http://search.cpan.org/dist/DBIx-Class-IntrospectableM2M")
to bridge two relationships. This DBIx::Class component can be used to store
all relevant information about these non-relationships so they can later be
introspected and examined.")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-dbix-class-schema-loader
(package
("perl-config-general" ,perl-config-general)
("perl-dbd-sqlite" ,perl-dbd-sqlite)
("perl-dbix-class-introspectablem2m" ,perl-dbix-class-introspectablem2m)
+ ("perl-module-install" ,perl-module-install)
("perl-moose" ,perl-moose)
("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
(description "DBIx::Class::Schema::Loader automates the definition of a
DBIx::Class::Schema by scanning database table definitions and setting up the
columns, primary keys, unique constraints and relationships.")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-dbd-pg
(package
(name "perl-dbd-pg")
- (version "3.5.1")
+ (version "3.5.3")
(source
(origin
(method url-fetch)
"DBD-Pg-" version ".tar.gz"))
(sha256
(base32
- "0z0kf1kjgbi5f6nr63i2fnrx7629d9lvxg1q8sficwb3zdf1ggzx"))))
+ "03m9w1cd0yyrbqwkwcl92j1cpmasmm69f3hwvcrlfsi5fnwsk63y"))))
(build-system perl-build-system)
(native-inputs
`(("perl-dbi" ,perl-dbi)))
(synopsis "DBI PostgreSQL interface")
(description "This package provides a PostgreSQL driver for the Perl5
@dfn{Database Interface} (DBI).")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-dbd-mysql
(package
(name "perl-dbd-mysql")
- (version "4.041")
+ (version "4.043")
(source
(origin
(method url-fetch)
"DBD-mysql-" version ".tar.gz"))
(sha256
(base32
- "0h4h6zwzj8fwh9ljb8svnsa0a3ch4p10hp59kpdibdb4qh8xwxs7"))))
+ "16bg7l28n65ngi1abjxvwk906a80i2vd5vzjn812dx8phdg8d7v2"))
+ (patches (search-patches "perl-dbd-mysql-CVE-2017-10788.patch"))))
(build-system perl-build-system)
;; Tests require running MySQL server
(arguments `(#:tests? #f))
(synopsis "DBI MySQL interface")
(description "This package provides a MySQL driver for the Perl5
@dfn{Database Interface} (DBI).")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-dbd-sqlite
(package
(name "perl-dbd-sqlite")
- (version "1.52")
+ (version "1.54")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "0kimb2qr1rh07yylbbfybwcizpmy61ck667amypn4clmkfg0knm6"))))
+ "0sbj9lx9syzpknvjv8cz9jndg32qz775vy2prgq305npv3dsca9r"))))
(build-system perl-build-system)
(inputs `(("sqlite" ,sqlite)))
(propagated-inputs `(("perl-dbi" ,perl-dbi)))
the entire thing in the distribution. So in order to get a fast transaction
capable RDBMS working for your Perl project you simply have to install this
module, and nothing else.")
- (license (package-license perl))
+ (license license:perl-license)
(home-page "http://search.cpan.org/~ishigaki/DBD-SQLite/lib/DBD/SQLite.pm")))
(define-public perl-sql-abstract
"17sgwq3mvqjhv3b77cnvrq60xgp8harjhlnvpwmxc914rqc5ckaz"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-deep" ,perl-test-deep)
+ `(("perl-module-install" ,perl-module-install)
+ ("perl-test-deep" ,perl-test-deep)
("perl-test-exception" ,perl-test-exception)
("perl-test-warn" ,perl-test-warn)))
(propagated-inputs
The underlying idea is for this module to do what you mean, based on the data
structures you provide it, so that you don't have to modify your code every
time your data changes.")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-sql-splitstatement
(package
(synopsis "Split SQL code into atomic statements")
(description "This module tries to split any SQL code, even including
non-standard extensions, into the atomic statements it is composed of.")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public perl-sql-tokenizer
(package
(description "SQL::Tokenizer is a tokenizer for SQL queries. It does not
claim to be a parser or query verifier. It just creates sane tokens from a
valid SQL query.")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public unixodbc
(package
(define-public redis
(package
(name "redis")
- (version "3.2.4")
+ (version "4.0.1")
(source (origin
(method url-fetch)
(uri (string-append "http://download.redis.io/releases/redis-"
version".tar.gz"))
(sha256
(base32
- "1wb9jd692a0y52bkkxr6815kk4g039mirjdrvqx24265lv2l5l1a"))))
+ "14bm8lkhylc93r4dgl7kkzzpw2xq7gr6w6h80n3jazqnx5mcsj90"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; tests related to master/slave and replication fail
(arguments
`(#:configure-flags
(list
+ "--disable-opt" ;"-march=native". XXX this also turns off -O0.
(string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib"))))
(inputs `(("zlib" ,zlib)))
trees (LSM), for sustained throughput under random insert workloads.")
(license license:gpl3) ; or GPL-2
;; configure.ac: WiredTiger requires a 64-bit build.
- (supported-systems '("x86_64-linux" "mips64el-linux"))))
+ (supported-systems '("x86_64-linux" "mips64el-linux" "aarch64-linux"))))
(define-public perl-db-file
(package
(name "perl-db-file")
- (version "1.838")
+ (version "1.840")
(source
(origin
(method url-fetch)
".tar.gz"))
(sha256
(base32
- "0yp5d5zr8dk9g6xdh7ygi5bq63q7nxvhd58dk2i3ki4nb7yv2yh9"))))
+ "1i5jz85z4hpx15lw6ix27pyvrf0ziyh4z33lii4d3wnhz83lg1mp"))))
(build-system perl-build-system)
(inputs `(("bdb" ,bdb)))
(native-inputs `(("perl-test-pod" ,perl-test-pod)))
"Perl5 access to Berkeley DB version 1.x")
(description
"The DB::File module provides Perl bindings to the Berkeley DB version 1.x.")
- (license (package-license perl))))
+ (license license:perl-license)))
(define-public lmdb
(package
(name "lmdb")
- (version "0.9.18")
+ (version "0.9.21")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/LMDB/lmdb/archive/"
"LMDB_" version ".tar.gz"))
(sha256
(base32
- "12crvzxky8in99ibh22k4ppmkgqs28yy3v7yy944za7fsrqv8dfx"))))
+ "0ndmj07hkm2ic60z1f4rdscxs7pq45hk9fibjyv5nhfclhsvd1qi"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
(("/usr/local") (assoc-ref outputs "out")))
#t)))))
(home-page "https://symas.com/products/lightning-memory-mapped-database")
- (synopsis "Lightning memory-mapped database library")
- (description "Lightning memory-mapped database library.")
+ (synopsis "Lightning Memory-Mapped Database library")
+ (description
+ "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance
+transactional database. Unlike more complex relational databases, LMDB handles
+only key-value pairs (stored as arbitrary byte arrays) and relies on the
+underlying operating system for caching and locking, keeping the code small and
+simple.
+The use of ‘zero-copy’ memory-mapped files combines the persistence of classic
+disk-based databases with high read performance that scales linearly over
+multiple cores. The size of each database is limited only by the size of the
+virtual address space — not physical RAM.")
(license license:openldap2.8)))
(define-public libpqxx
`(("python" ,python-2)))
(inputs `(("postgresql" ,postgresql)))
(arguments
- `(#:tests? #f)) ; # FAIL: 1
+ `(#:tests? #f ; # FAIL: 1
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-sed-command
+ (lambda _
+ ;; Newer sed versions error out if double brackets are not used.
+ (substitute* "configure"
+ (("\\[:space:\\]") "[[:space:]]"))
+ #t)))))
(synopsis "C++ connector for PostgreSQL")
(description
"Libpqxx is a C++ library to enable user programs to communicate with the
(define-public python2-pyodbc-c
(package-with-python2 python-pyodbc-c))
+
+(define-public mdbtools
+ (package
+ (name "mdbtools")
+ (version "0.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/brianb/mdbtools/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "05hbmxcq173kzb899gdi3bz2qcc1vi3n1qbbkwpsvrq7ggf11wyw"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("glib" ,glib)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("txt2man" ,txt2man)
+ ("which" ,which)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'autoreconf
+ (lambda _
+ (zero? (system* "autoreconf" "-vfi")))))))
+ (home-page "http://mdbtools.sourceforge.net/")
+ (synopsis "Read Microsoft Access databases")
+ (description "MDB Tools is a set of tools and applications to read the
+proprietary MDB file format used in Microsoft's Access database package. This
+includes programs to export schema and data from Microsoft's Access database
+file format to other databases such as MySQL, Oracle, Sybase, PostgreSQL,
+etc., and an SQL engine for performing simple SQL queries.")
+ (license (list license:lgpl2.0
+ license:gpl2+))))
+
+(define-public python-lmdb
+ (package
+ (name "python-lmdb")
+ (version "0.92")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "lmdb" version))
+ (sha256
+ (base32
+ "01nw6r08jkipx6v92kw49z34wmwikrpvc5j9xawdiyg1n2526wrx"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete bundled lmdb source files.
+ '(for-each delete-file (list "lib/lmdb.h"
+ "lib/mdb.c"
+ "lib/midl.c"
+ "lib/midl.h")))))
+ (build-system python-build-system)
+ (inputs
+ `(("lmdb" ,lmdb)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'use-system-lmdb
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((lmdb (assoc-ref inputs "lmdb")))
+ (setenv "LMDB_FORCE_SYSTEM" "set")
+ (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include"))
+ (setenv "LMDB_LIBDIR" (string-append lmdb "/lib"))
+ #t))))
+ ;; Tests fail with: ‘lmdb.tool: Please specify environment (--env)’.
+ #:tests? #f))
+ (home-page "https://github.com/dw/py-lmdb")
+ (synopsis "Python binding for the ‘Lightning’ database (LMDB)")
+ (description
+ "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning
+Memory-Mapped Database} (LMDB), a high-performance key-value store.")
+ (license
+ (list license:openldap2.8
+ ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3,
+ ;; but not actually needed on platforms currently supported by Guix.
+ license:bsd-3))))
+
+(define-public python2-lmdb
+ (package-with-python2 python-lmdb))
+
+(define-public python-orator
+ (package
+ (name "python-orator")
+ (version "0.9.7")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "orator" version))
+ (sha256
+ (base32
+ "14r58z64fdp76ixnvmi4lni762b405ynmsx6chr1qihs3yl9zn6c"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-dependencies
+ ;; Tests are not actually run since they are not included with the
+ ;; distributed package, but dependencies are checked.
+ (lambda _
+ (substitute* "setup.py"
+ ((",<.*'") "'")
+ (("flexmock==0.9.7") "flexmock")
+ ;; The pytest-mock package is out of date, so we remove minimum
+ ;; version requirement.
+ (("pytest-mock.*'") "pytest-mock'"))
+ #t)))))
+ (native-inputs
+ `(("python-pytest-mock" ,python-pytest-mock)
+ ("python-pytest" ,python-pytest-3.0)
+ ("python-flexmock" ,python-flexmock)))
+ (propagated-inputs
+ `(("python-backpack" ,python-backpack)
+ ("python-blinker" ,python-blinker)
+ ("python-cleo" ,python-cleo)
+ ("python-faker" ,python-faker)
+ ("python-inflection" ,python-inflection)
+ ("python-lazy-object-proxy" ,python-lazy-object-proxy)
+ ("python-pendulum" ,python-pendulum)
+ ("python-pyaml" ,python-pyaml)
+ ("python-pygments" ,python-pygments)
+ ("python-simplejson" ,python-simplejson)
+ ("python-six" ,python-six)
+ ("python-wrapt" ,python-wrapt)))
+ (home-page "https://orator-orm.com/")
+ (synopsis "ActiveRecord ORM for Python")
+ (description
+ "Orator provides a simple ActiveRecord-like Object Relational Mapping
+implementation for Python.")
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-orator))))))
+
+(define-public python2-orator
+ (package-with-python2 (strip-python2-variant python-orator)))