[bug#37307] gnu: Add libraft
diff mbox series

Message ID 20190905093044.28901-1-andrew@interpretmath.pw
State New
Headers show
  • [bug#37307] gnu: Add libraft
Related show

Commit Message

Andrew Miloradovsky Sept. 5, 2019, 9:30 a.m. UTC
* gnu/packages/cluster.scm (libraft): New variable.
 gnu/packages/cluster.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)


Ludovic Courtès Sept. 8, 2019, 12:20 p.m. UTC | #1
Hi Andrew,

Andrew Miloradovsky <andrew@interpretmath.pw> skribis:

> * gnu/packages/cluster.scm (libraft): New variable.

I added a copyright line for you and committed.

In a followup commit, I changed the source to use ‘git-fetch’, as
reported by the ‘guix lint’ warning about “autogenerated source

Thank you,

diff mbox series

diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm
index 3608d67bed..43fd472dc3 100644
--- a/gnu/packages/cluster.scm
+++ b/gnu/packages/cluster.scm
@@ -22,6 +22,8 @@ 
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages sphinx)
@@ -79,3 +81,34 @@  Server (@dfn{IPVS}) kernel module.  High availability is achieved by the Virtual
 Redundancy Routing Protocol (@dfn{VRRP}).  Each Keepalived framework can be used
 independently or together to provide resilient infrastructures.")
     (license license:gpl2+)))
+(define-public libraft
+  (package
+    (name "libraft")
+    (version "0.9.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/canonical/raft/archive/v"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0zd8nnmsszvsrwvybcg783y705z4xik9pi0mb6gb6ii58qq2b3hz"))))
+    (arguments '(#:configure-flags '("--disable-uv")))
+    ;; The uv plugin tests fail, if libuv (or the example) is enabled,
+    ;; because setting up the environment requires too much privileges.
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (build-system gnu-build-system)
+    (home-page "https://github.com/canonical/raft")
+    (synopsis "C implementation of the Raft consensus protocol")
+    (description "The library has modular design: its core part implements only
+the core Raft algorithm logic, in a fully platform independent way.  On top of
+that, a pluggable interface defines the I/O implementation for networking
+(send/receive RPC messages) and disk persistence (store log entries and
+    (license license:asl2.0)))