aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi28
-rw-r--r--gnu/packages/databases.scm298
-rw-r--r--gnu/services/databases.scm88
-rw-r--r--gnu/tests/databases.scm83
4 files changed, 0 insertions, 497 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index e6ef7dbe03..410670e639 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -19810,34 +19810,6 @@ Additional command line options to pass to @code{memcached}.
@end table
@end deftp
-@subsubheading MongoDB
-
-@defvr {Scheme Variable} mongodb-service-type
-This is the service type for @uref{https://www.mongodb.com/, MongoDB}.
-The value for the service type is a @code{mongodb-configuration} object.
-@end defvr
-
-@lisp
-(service mongodb-service-type)
-@end lisp
-
-@deftp {Data Type} mongodb-configuration
-Data type representing the configuration of mongodb.
-
-@table @asis
-@item @code{mongodb} (default: @code{mongodb})
-The MongoDB package to use.
-
-@item @code{config-file} (default: @code{%default-mongodb-configuration-file})
-The configuration file for MongoDB.
-
-@item @code{data-directory} (default: @code{"/var/lib/mongodb"})
-This value is used to create the directory, so that it exists and is
-owned by the mongodb user. It should match the data-directory which
-MongoDB is configured to use through the configuration file.
-@end table
-@end deftp
-
@subsubheading Redis
@defvr {Scheme Variable} redis-service-type
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 8705cd2be4..5249aa0d10 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -193,52 +193,6 @@
either single machines or networked clusters.")
(license license:gpl3+)))
-(define-public go-gopkg.in-mgo.v2
- (package
- (name "go-gopkg.in-mgo.v2")
- (version "2016.08.01")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/go-mgo/mgo")
- (commit (string-append "r" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0rwbi1z63w43b0z9srm8m7iz1fdwx7bq7n2mz862d6liiaqa59jd"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "gopkg.in/mgo.v2"
- ;; TODO: The tests fail as MongoDB fails to start
- ;; Error parsing command line: unrecognised option '--chunkSize'
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'reset-gzip-timestamps)
- (add-before 'check 'start-mongodb
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (with-directory-excursion "src/gopkg.in/mgo.v2"
- (invoke "make" "startdb")))
- #t))
- (add-after 'check 'stop'mongodb
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (with-directory-excursion "src/gopkg.in/mgo.v2"
- (invoke "make" "stopdb")))
- #t)))))
- (native-inputs
- `(("go-gopkg.in-check.v1" ,go-gopkg.in-check.v1)
- ("mongodb" ,mongodb)
- ("daemontools" ,daemontools)))
- (synopsis "@code{mgo} offers a rich MongoDB driver for Go.")
- (description
- "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.
-It implements a rich selection of features under a simple API following
-standard Go idioms.")
- (home-page "https://labix.org/mgo")
- (license license:bsd-2)))
-
(define-public ephemeralpg
(package
(name "ephemeralpg")
@@ -661,143 +615,6 @@ replacement for the code@{python-memcached} library.")
(define-public python2-pylibmc
(package-with-python2 python-pylibmc))
-;; There is a point at which mongodb switched to the Server Side Public
-;; License (SSPL), which is not a FOSS license. As such, be careful
-;; when updating this package.
-(define-public mongodb
- (package
- (name "mongodb")
- (version "3.4.24")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/mongodb/mongo/archive/r"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0y1669sqj8wyf0y0njhxs4qhn1qzjhrs2h2qllya5samxrlrjhkg"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (for-each (lambda (dir)
- (delete-file-recursively
- (string-append "src/third_party/" dir)))
- '("pcre-8.42" "scons-2.5.0" "snappy-1.1.3"
- "valgrind-3.11.0" "wiredtiger"
- "yaml-cpp-0.6.2" "zlib-1.2.11"))
- #t))))
- (build-system scons-build-system)
- (inputs
- `(("openssl" ,openssl-1.0)
- ("pcre" ,pcre)
- ,@(match (%current-system)
- ((or "x86_64-linux" "aarch64-linux" "mips64el-linux")
- `(("wiredtiger" ,wiredtiger)))
- (_ `()))
- ("yaml-cpp" ,yaml-cpp)
- ("zlib" ,zlib)
- ("snappy" ,snappy)))
- (native-inputs
- `(("valgrind" ,valgrind)
- ("perl" ,perl)
- ("python" ,python-2)
- ("python2-pymongo" ,python2-pymongo)
- ("python2-pyyaml" ,python2-pyyaml)
- ("tzdata" ,tzdata-for-tests)))
- (arguments
- `(#:scons ,scons-python2
- #:phases
- (let ((common-options
- `(;; "--use-system-tcmalloc" TODO: Missing gperftools
- "--use-system-pcre"
- ;; wiredtiger is 64-bit only
- ,,(if (any (cute string-prefix? <> (or (%current-target-system)
- (%current-system)))
- '("i686-linux" "armhf-linux"))
- ``"--wiredtiger=off"
- ``"--use-system-wiredtiger")
- ;; TODO
- ;; build/opt/mongo/db/fts/unicode/string.o failed: Error 1
- ;; --use-system-boost
- "--use-system-snappy"
- "--use-system-zlib"
- "--use-system-valgrind"
- ;; "--use-system-stemmer" TODO: Missing relevant package
- "--use-system-yaml"
- "--disable-warnings-as-errors"
- ,(format #f "--jobs=~a" (parallel-job-count))
- "--ssl")))
- (modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda _
- ;; Remove use of GNU extensions in parse_number_test.cpp, to
- ;; allow compiling with GCC 7 or later
- ;; https://jira.mongodb.org/browse/SERVER-28063
- (substitute* "src/mongo/base/parse_number_test.cpp"
- (("0xabcab\\.defdefP-10")
- "687.16784283419838"))
- #t))
- (add-after 'unpack 'scons-propagate-environment
- (lambda _
- ;; Modify the SConstruct file to arrange for
- ;; environment variables to be propagated.
- (substitute* "SConstruct"
- (("^env = Environment\\(")
- "env = Environment(ENV=os.environ, "))
- #t))
- (add-after 'unpack 'create-version-file
- (lambda _
- (call-with-output-file "version.json"
- (lambda (port)
- (display ,(simple-format #f "{
- \"version\": \"~A\"
-}" version) port)))
- #t))
- (replace 'build
- (lambda _
- (apply invoke `("scons"
- ,@common-options
- "mongod" "mongo" "mongos"))))
- (replace 'check
- (lambda* (#:key tests? inputs #:allow-other-keys)
- (setenv "TZDIR"
- (string-append (assoc-ref inputs "tzdata")
- "/share/zoneinfo"))
- (when tests?
- ;; Note that with the tests, especially the unittests, the
- ;; build can take up to ~45GB of space, as many tests are
- ;; individual executable files, with some being hundreds of
- ;; megabytes in size.
- (apply invoke `("scons" ,@common-options "dbtest" "unittests"))
- (substitute* "build/unittests.txt"
- ;; TODO: Don't run the async_stream_test, as it hangs
- (("^build\\/opt\\/mongo\\/executor\\/async\\_stream\\_test\n$")
- "")
- ;; TODO: This test fails
- ;; Expected 0UL != disks.size() (0 != 0) @src/mongo/util/procparser_test.cpp:476
- (("^build\\/opt\\/mongo\\/util\\/procparser\\_test\n$")
- ""))
- (invoke "python" "buildscripts/resmoke.py"
- "--suites=dbtest,unittests"
- (format #f "--jobs=~a" (parallel-job-count))))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "mongod" bin)
- (install-file "mongos" bin)
- (install-file "mongo" bin))
- #t))))))
- (home-page "https://www.mongodb.org/")
- (synopsis "High performance and high availability document database")
- (description
- "Mongo is a high-performance, high availability, schema-free
-document-oriented database. A key goal of MongoDB is to bridge the gap
-between key/value stores (which are fast and highly scalable) and traditional
-RDBMS systems (which are deep in functionality).")
- (license (list license:agpl3
- ;; Some parts are licensed under the Apache License
- license:asl2.0))))
-
(define-public mycli
(package
(name "mycli")
@@ -3686,121 +3503,6 @@ transforms idiomatic python function calls to well-formed SQL queries.")
the SQL language using a syntax that reflects the resulting query.")
(license license:asl2.0)))
-(define-public mongo-tools
- (package
- (name "mongo-tools")
- (version "3.4.0")
- (source
- (origin (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mongodb/mongo-tools")
- (commit (string-append "r" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1bcsz5cvj39a7nsxsfqmz9igrw33j6yli9kffigqyscs52amw7x1"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/mongodb/mongo-tools"
- #:modules ((srfi srfi-1)
- (guix build go-build-system)
- (guix build utils))
- #:install-source? #f
- #:phases
- (let ((all-tools
- '("bsondump" "mongodump" "mongoexport" "mongofiles"
- "mongoimport" "mongooplog" "mongorestore"
- "mongostat" "mongotop")))
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-bundled-source-code
- (lambda _
- (delete-file-recursively
- "src/github.com/mongodb/mongo-tools/vendor")
- #t))
- (add-after 'delete-bundled-source-code 'patch-source
- (lambda _
- ;; Remove a redundant argument that causes compilation to fail.
- (substitute*
- "src/github.com/mongodb/mongo-tools/mongorestore/filepath.go"
- (("skipping restore of system.profile collection\", db)")
- "skipping restore of system.profile collection\")"))
- #t))
- (replace 'build
- (lambda _
- (for-each (lambda (tool)
- (let ((command
- `("go" "build"
- ;; This is where the tests expect to find the
- ;; executables
- "-o" ,(string-append
- "src/github.com/mongodb/mongo-tools/bin/"
- tool)
- "-v"
- "-tags=\"ssl sasl\""
- "-ldflags"
- "-extldflags=-Wl,-z,now,-z,relro"
- ,(string-append
- "src/github.com/mongodb/mongo-tools/"
- tool "/main/" tool ".go"))))
- (simple-format #t "build: running ~A\n"
- (string-join command))
- (apply invoke command)))
- all-tools)
- #t))
- (replace 'check
- (lambda _
- (with-directory-excursion "src"
- (for-each (lambda (tool)
- (invoke
- "go" "test" "-v"
- (string-append "github.com/mongodb/mongo-tools/"
- tool)))
- all-tools))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (for-each (lambda (tool)
- (install-file
- (string-append "src/github.com/mongodb/mongo-tools/bin/"
- tool)
- (string-append (assoc-ref outputs "out")
- "/bin")))
- all-tools)
- #t))))))
- (native-inputs
- `(("go-github.com-howeyc-gopass" ,go-github.com-howeyc-gopass)
- ("go-github.com-jessevdk-go-flags" ,go-github.com-jessevdk-go-flags)
- ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
- ("go-gopkg.in-mgo.v2" ,go-gopkg.in-mgo.v2)
- ("go-gopkg.in-tomb.v2" ,go-gopkg.in-tomb.v2)
- ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
- ("go-github.com-smartystreets-goconvey" ,go-github.com-smartystreets-goconvey)))
- (home-page "https://github.com/mongodb/mongo-tools")
- (synopsis "Various tools for interacting with MongoDB and BSON")
- (description
- "This package includes a collection of tools related to MongoDB.
-@table @code
-@item bsondump
-Display BSON files in a human-readable format
-@item mongoimport
-Convert data from JSON, TSV or CSV and insert them into a collection
-@item mongoexport
-Write an existing collection to CSV or JSON format
-@item mongodump/mongorestore
-Dump MongoDB backups to disk in the BSON format
-@item mongorestore
-Read MongoDB backups in the BSON format, and restore them to a live database
-@item mongostat
-Monitor live MongoDB servers, replica sets, or sharded clusters
-@item mongofiles
-Read, write, delete, or update files in GridFS
-@item mongooplog
-Replay oplog entries between MongoDB servers
-@item mongotop
-Monitor read/write activity on a mongo server
-@end table")
- (license license:asl2.0)))
-
;; There are many wrappers for this in other languages. When touching, please
;; be sure to ensure all dependencies continue to build.
(define-public apache-arrow
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index 979f3dd6c8..a841e7a50e 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -79,13 +79,6 @@
memcached-configuration-udp-port
memcached-configuration-additional-options
- mongodb-configuration
- mongodb-configuration?
- mongodb-configuration-mongodb
- mongodb-configuration-config-file
- mongodb-configuration-data-directory
- mongodb-service-type
-
mysql-service
mysql-service-type
mysql-configuration
@@ -523,87 +516,6 @@ created after the PostgreSQL database is started.")))
;;;
-;;; MongoDB
-;;;
-
-(define %default-mongodb-configuration-file
- (plain-file
- "mongodb.yaml"
- "# GNU Guix: MongoDB default configuration file
-processManagement:
- pidFilePath: /var/run/mongodb/pid
-storage:
- dbPath: /var/lib/mongodb
-"))
-
-
-(define-record-type* <mongodb-configuration>
- mongodb-configuration make-mongodb-configuration
- mongodb-configuration?
- (mongodb mongodb-configuration-mongodb
- (default mongodb))
- (config-file mongodb-configuration-config-file
- (default %default-mongodb-configuration-file))
- (data-directory mongodb-configuration-data-directory
- (default "/var/lib/mongodb")))
-
-(define %mongodb-accounts
- (list (user-group (name "mongodb") (system? #t))
- (user-account
- (name "mongodb")
- (group "mongodb")
- (system? #t)
- (comment "Mongodb server user")
- (home-directory "/var/lib/mongodb")
- (shell (file-append shadow "/sbin/nologin")))))
-
-(define mongodb-activation
- (match-lambda
- (($ <mongodb-configuration> mongodb config-file data-directory)
- #~(begin
- (use-modules (guix build utils))
- (let ((user (getpwnam "mongodb")))
- (for-each
- (lambda (directory)
- (mkdir-p directory)
- (chown directory
- (passwd:uid user) (passwd:gid user)))
- '("/var/run/mongodb" #$data-directory)))))))
-
-(define mongodb-shepherd-service
- (match-lambda
- (($ <mongodb-configuration> mongodb config-file data-directory)
- (shepherd-service
- (provision '(mongodb))
- (documentation "Run the Mongodb daemon.")
- (requirement '(user-processes loopback))
- (start #~(make-forkexec-constructor
- `(,(string-append #$mongodb "/bin/mongod")
- "--config"
- ,#$config-file)
- #:user "mongodb"
- #:group "mongodb"
- #:pid-file "/var/run/mongodb/pid"
- #:log-file "/var/log/mongodb.log"))
- (stop #~(make-kill-destructor))))))
-
-(define mongodb-service-type
- (service-type
- (name 'mongodb)
- (description "Run the MongoDB document database server.")
- (extensions
- (list (service-extension shepherd-root-service-type
- (compose list
- mongodb-shepherd-service))
- (service-extension activation-service-type
- mongodb-activation)
- (service-extension account-service-type
- (const %mongodb-accounts))))
- (default-value
- (mongodb-configuration))))
-
-
-;;;
;;; MySQL.
;;;
diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm
index e831d69f5a..4bfe4ee282 100644
--- a/gnu/tests/databases.scm
+++ b/gnu/tests/databases.scm
@@ -30,7 +30,6 @@
#:use-module (guix gexp)
#:use-module (guix store)
#:export (%test-memcached
- %test-mongodb
%test-postgresql
%test-mysql))
@@ -127,88 +126,6 @@
(description "Connect to a running MEMCACHED server.")
(value (run-memcached-test))))
-(define %mongodb-os
- (operating-system
- (inherit
- (simple-operating-system
- (service dhcp-client-service-type)
- (service mongodb-service-type)))
- (packages (cons* mongodb
- %base-packages))))
-
-(define* (run-mongodb-test #:optional (port 27017))
- "Run tests in %MONGODB-OS, forwarding PORT."
- (define os
- (marionette-operating-system
- %mongodb-os
- #:imported-modules '((gnu services herd)
- (guix combinators))))
-
- (define vm
- (virtual-machine
- (operating-system os)
- (memory-size 1024)
- (disk-image-size (* 1024 (expt 2 20)))
- (port-forwardings `((27017 . ,port)))))
-
- (define test
- (with-imported-modules '((gnu build marionette))
- #~(begin
- (use-modules (srfi srfi-11) (srfi srfi-64)
- (gnu build marionette)
- (ice-9 popen)
- (ice-9 rdelim))
-
- (define marionette
- (make-marionette (list #$vm)))
-
- (mkdir #$output)
- (chdir #$output)
-
- (test-begin "mongodb")
-
- (test-assert "service running"
- (marionette-eval
- '(begin
- (use-modules (gnu services herd))
- (match (start-service 'mongodb)
- (#f #f)
- (('service response-parts ...)
- (match (assq-ref response-parts 'running)
- ((pid) (number? pid))))))
- marionette))
-
- (test-eq "test insert"
- 0
- (system* (string-append #$mongodb "/bin/mongo")
- "test"
- "--eval"
- "db.testCollection.insert({data: 'test-data'})"))
-
- (test-equal "test find"
- "test-data"
- (let* ((port (open-pipe*
- OPEN_READ
- (string-append #$mongodb "/bin/mongo")
- "test"
- "--quiet"
- "--eval"
- "db.testCollection.findOne().data"))
- (output (read-line port))
- (status (close-pipe port)))
- output))
-
- (test-end)
- (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
-
- (gexp->derivation "mongodb-test" test))
-
-(define %test-mongodb
- (system-test
- (name "mongodb")
- (description "Connect to a running MONGODB server.")
- (value (run-mongodb-test))))
-
;;;
;;; The PostgreSQL service.