summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2025-07-10 16:05:02 +0100
committerSharlatan Hellseher <sharlatanus@gmail.com>2025-07-22 20:13:09 +0100
commit5569ca7b149a689572941c87c45fe553e8c9225c (patch)
tree6a4b7bee8ae62790af13ade47c44d5fab0cf62f9
parent2ff8d854aee92d67a815dabde84c5b1028c2e075 (diff)
gnu: Add cowsql.
* gnu/packages/high-availability.scm (cowsql): New variable. Change-Id: I8c90e2feb908f918eb17f1ee1cae8dbc25079b06
-rw-r--r--gnu/packages/high-availability.scm48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm
index 7c21bcf8ca..a70a990cb0 100644
--- a/gnu/packages/high-availability.scm
+++ b/gnu/packages/high-availability.scm
@@ -61,6 +61,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages rsync)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
@@ -76,6 +77,53 @@
#:use-module ((guix licenses)
#:prefix license:))
+(define-public cowsql
+ ;; Use the latest commit which includs
+ ;; <https://github.com/cowsql/cowsql/pull/37>, revert back to vertion tags
+ ;; when released.
+ (let ((commit "cb624d3263ca22b42ecfa8a1dd8a0c8d990db7b6")
+ (revision "0"))
+ (package
+ (name "cowsql")
+ (version (git-version "1.15.8" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cowsql/cowsql")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0b4ymmsp9y9zzwanp739bc6p5qzl1h6ny2g50blhda99xcnlaf77"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'bootstrap
+ (lambda _
+ (invoke "autoreconf" "-vfi"))))))
+ (native-inputs
+ (list autoconf
+ automake
+ libtool
+ pkg-config))
+ (inputs
+ (list cowsql-raft
+ libuv
+ sqlite))
+ (home-page "https://github.com/cowsql/cowsql")
+ (synopsis "Embeddable, replicated and fault tolerant SQL engine")
+ (description
+ "cowsql (/ˈkaʊ,siːkwəl/ listen) is a C library that implements an
+embeddable and replicated SQL database engine with high availability and
+automatic failover.
+
+cowsql extends SQLite with a network protocol that can connect together
+various instances of your application and have them act as a highly-available
+cluster, with no dependency on external databases.")
+ (license license:gpl3+))))
+
(define-public cowsql-raft
(package
(name "cowsql-raft")