summaryrefslogtreecommitdiff
path: root/px/packages/databases.scm
diff options
context:
space:
mode:
Diffstat (limited to 'px/packages/databases.scm')
-rw-r--r--px/packages/databases.scm160
1 files changed, 160 insertions, 0 deletions
diff --git a/px/packages/databases.scm b/px/packages/databases.scm
new file mode 100644
index 0000000..5cc7d23
--- /dev/null
+++ b/px/packages/databases.scm
@@ -0,0 +1,160 @@
+;;; Databases Packages Module for PantherX
+;;; Authors: Hamzeh Nasajpour (h.nasajpour@pantherx.org)
+;;; Reza Alizadeh Majd (r.majd@pantherx.org)
+;;;
+
+(define-module (px packages databases)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages commencement)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages golang)
+ #:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages serialization)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages terminals)
+ #:use-module (gnu packages valgrind)
+ #:use-module (gnu packages tls)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
+ #:use-module (guix build-system python)
+ #:use-module (guix build-system scons)
+ #:use-module (guix utils)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (nonguix build-system binary)
+ #:use-module (px packages common)
+ #:use-module (px packages python-xyz)
+ #:use-module (px packages tls)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 match))
+
+(define-public mongodb
+ (package
+ (name "mongodb")
+ (version "5.0.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://fastdl.mongodb.org/linux/" name
+ "-linux-x86_64-debian10-" version ".tgz"))
+ (sha256 (base32 "0ycav2jckl5v8mjaiddzll2i25z4lp8fpsg9ymcxpzyj3kxxip6q"))))
+ (build-system binary-build-system)
+ (arguments
+ `(#:patchelf-plan
+ `(("bin/mongo" ("curl" "gcc" "gcc-toolchain" "openssl" "xz"))
+ ("bin/mongod" ("curl" "gcc" "gcc-toolchain" "openssl" "xz"))
+ ("bin/mongos" ("curl" "gcc" "gcc-toolchain" "openssl" "xz")))))
+ (inputs
+ (list
+ curl
+ (list gcc "lib")
+ gcc-toolchain
+ openssl
+ xz))
+ (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 license:expat)))
+
+
+(define-public sqlitecpp
+ (package
+ (name "sqlitecpp")
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/SRombauts/SQLiteCpp/archive/" version ".tar.gz"))
+ (sha256
+ (base32
+ "14yn8bdnmh5bv2k85acm0yqjzgr90dmqxgvs5bw60x64h1b7vikh"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f))
+ (native-inputs `(
+ ("pkg-config" ,pkg-config)
+ ("sqlite", sqlite)))
+ (home-page "https://github.com/SRombauts/SQLiteCpp")
+ (synopsis "SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.")
+ (description "SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.")
+ (license license:expat)))
+
+
+(define-public px-database-utility
+ (package
+ (name "px-database-utility")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz"))
+ (sha256 (base32 "0qqgr8nvgxf3dp1wcaciiv4n4xr5akf3f7k2aiiihfa89h2v7kq1"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f))
+ (inputs
+ `(("python-psycopg2" ,python-psycopg2)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://www.pantherx.org/")
+ (synopsis "PantherX Database Utility")
+ (description "Easily dump (backup), restore and list PostgreSQL databases.")
+ (license license:expat)))
+
+
+(define-public wiredtiger-2.9.2
+ (package
+ (name "wiredtiger")
+ (version "2.9.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://source.wiredtiger.com/releases/wiredtiger-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1n8qlhk9fcnan6w38i0lqdwm02bxm91nlzq1976qqmmv989nmmi2"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("--enable-lz4" "--with-builtins=snappy,zlib" "--enable-verbose")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'disable-test/fops
+ (lambda _
+ ;; XXX: timed out after 3600 seconds of silence
+ (substitute* "Makefile"
+ (("test/fops") ""))
+ #t)))))
+ (inputs
+ `(("lz4" ,lz4)
+ ("zlib" ,zlib)
+ ("snappy" ,snappy)))
+ (home-page "http://source.wiredtiger.com/")
+ (synopsis "NoSQL data engine")
+ (description
+ "WiredTiger is an extensible platform for data management. It supports
+row-oriented storage (where all columns of a row are stored together),
+column-oriented storage (where columns are stored in groups, allowing for
+more efficient access and storage of column subsets) and log-structured merge
+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" "aarch64-linux"))))