gnu: rocksdb: Update to 5.10.4.

* gnu/packages/databases.scm (rocksdb): Update to 5.10.4.
[source]: Substitute the unbundled copy of GNU Parallel.
[arguments]: Add "V=1" "USE_RTTI=1" and
"ROCKSDBTESTS_END=db_tailing_iter_test" to #:make-flags.  Set #:test-target to
"check_some".  Respect parallel jobs in 'build-release-libraries' phase and
rename to 'build'.
[license]: Update for changes in 5.5.4.
This commit is contained in:
Marius Bakke 2018-02-21 03:06:39 +01:00
parent 81ed306dee
commit 7fa9cca84a
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
1 changed files with 27 additions and 17 deletions

View File

@ -17,7 +17,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
@ -841,7 +841,7 @@ types are supported, as is encryption.")
(define-public rocksdb (define-public rocksdb
(package (package
(name "rocksdb") (name "rocksdb")
(version "5.2.1") (version "5.10.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/facebook/rocksdb" (uri (string-append "https://github.com/facebook/rocksdb"
@ -849,18 +849,28 @@ types are supported, as is encryption.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1v2q05bl56sfp51m09z7g6489hkfq4vf6b4qgfg3d96ylgmay9yb")) "0hp7jxr99vyc57n708hiqk4lks9a9zmjgfjc21mx6v1rmabj2944"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
;; TODO: unbundle gtest. ;; TODO: unbundle gtest.
(delete-file "build_tools/gnu_parallel") (delete-file "build_tools/gnu_parallel")
(substitute* "Makefile"
(("build_tools/gnu_parallel") "parallel"))
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list "CC=gcc" `(#:make-flags (list "CC=gcc" "V=1"
;; Ceph requires that RTTI is enabled.
"USE_RTTI=1"
(string-append "INSTALL_PATH=" (string-append "INSTALL_PATH="
(assoc-ref %outputs "out"))) (assoc-ref %outputs "out"))
;; Running the full test suite takes hours and require
;; a lot of disk space. Instead we only run a subset
;; (see .travis.yml and Makefile).
"ROCKSDBTESTS_END=db_tailing_iter_test")
#:test-target "check_some"
;; Many tests fail on 32-bit platforms. There are multiple reports about ;; 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. ;; this upstream, but it's not going to be supported any time soon.
#:tests? (let ((system ,(or (%current-target-system) #:tests? (let ((system ,(or (%current-target-system)
@ -872,7 +882,6 @@ types are supported, as is encryption.")
(add-after 'unpack 'patch-Makefile (add-after 'unpack 'patch-Makefile
(lambda _ (lambda _
(substitute* "Makefile" (substitute* "Makefile"
(("build_tools/gnu_parallel") "parallel")
;; Don't depend on the static library when installing. ;; Don't depend on the static library when installing.
(("install: install-static") (("install: install-static")
"install: install-shared") "install: install-shared")
@ -889,20 +898,20 @@ types are supported, as is encryption.")
(add-before 'check 'disable-failing-tests (add-before 'check 'disable-failing-tests
(lambda _ (lambda _
(substitute* "Makefile" (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". ;; These tests reliably fail due to "Too many open files".
(("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\") (("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\")
(("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\")) (("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\"))
#t)) #t))
(add-after 'check 'build-release-libraries (add-after 'check 'build
;; The default build target is a debug build for tests. The ;; The default build target is a debug build for tests. The
;; install target depends on "shared_lib" and "static_lib" ;; install target depends on the "shared_lib" release target
;; targets for release builds so we build them here for clarity. ;; so we build it here for clarity.
;; TODO: Add debug output. (lambda* (#:key (make-flags '()) parallel-build? #:allow-other-keys)
(lambda* (#:key (make-flags '()) #:allow-other-keys) (apply invoke "make" "shared_lib"
(zero? (apply system* "make" "shared_lib" make-flags))))))) `(,@(if parallel-build?
`("-j" ,(number->string (parallel-job-count)))
'())
,@make-flags)))))))
(native-inputs (native-inputs
`(("parallel" ,parallel) `(("parallel" ,parallel)
("perl" ,perl) ("perl" ,perl)
@ -926,8 +935,9 @@ between @dfn{Write-Amplification-Factor} (WAF), @dfn{Read-Amplification-Factor}
(RAF) and @dfn{Space-Amplification-Factor} (SAF). It has multi-threaded (RAF) and @dfn{Space-Amplification-Factor} (SAF). It has multi-threaded
compactions, making it specially suitable for storing multiple terabytes of compactions, making it specially suitable for storing multiple terabytes of
data in a single database. RocksDB is partially based on @code{LevelDB}.") data in a single database. RocksDB is partially based on @code{LevelDB}.")
;; RocksDB is BSD-3 and the JNI adapter is Apache 2.0. ;; RocksDB is dual licensed under GPL2 and ASL 2.0. Some header
(license (list license:bsd-3 license:asl2.0)))) ;; files carry the 3-clause BSD license.
(license (list license:gpl2 license:asl2.0 license:bsd-3))))
(define-public sparql-query (define-public sparql-query
(package (package