diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm index 3608d67bed..3a81194cc5 100644 --- a/gnu/packages/cluster.scm +++ b/gnu/packages/cluster.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Sou Bunnbu ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2019 Andrew Miloradovsky ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,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 +82,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 +snapshots).") + (license license:asl2.0)))