summary refs log tree commit diff
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2022-09-28 21:49:20 +0100
committerLudovic Courtès <ludo@gnu.org>2022-10-10 11:16:08 +0200
commit5f856c595479c30d9ccdb0063c9124248fdcf5c2 (patch)
tree926bec14947f302f45101b49c186d04ed4cbfb0b
parentbe3bfce295e065c10ea43154d5c69546c2c24f97 (diff)
downloadguix-5f856c595479c30d9ccdb0063c9124248fdcf5c2.tar.gz
gnu: Add pacemaker.
* gnu/pacemaker/high-availability.scm (pacemaker): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/high-availability.scm54
1 files changed, 54 insertions, 0 deletions
diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm
index d7620a9beb..108ea553ef 100644
--- a/gnu/packages/high-availability.scm
+++ b/gnu/packages/high-availability.scm
@@ -186,3 +186,57 @@ lost.
 
 @end itemize")
     (license (list license:bsd-0 license:gpl3+))))
+
+(define-public pacemaker
+  (package
+    (name "pacemaker")
+    (version "2.1.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ClusterLabs/pacemaker")
+                    (commit (string-append "Pacemaker-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "04gfd7i3w0zbzv7vi7728lgbyjq7cbqpr7jsp501piwg3z5j4mvb"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:configure-flags #~(list "--with-corosync" "--disable-static"
+                                     (string-append "--with-initdir="
+                                                    #$output "/etc/init.d")
+                                     (string-append "--with-ocfdir="
+                                                    #$output "/lib"))))
+    (native-inputs (list autoconf
+                         automake
+                         cmocka
+                         gettext-minimal
+                         libtool
+                         pkg-config
+                         rsync
+                         util-linux
+                         valgrind))
+    (inputs (list dbus
+                  corosync
+                  glib
+                  gnutls
+                  libqb
+                  libxml2
+                  libxslt
+                  python
+                  `(,util-linux "lib")))
+    (home-page "https://www.clusterlabs.org/pacemaker/")
+    (synopsis "Scalable High-Availability cluster resource manager")
+    (description
+     "Pacemaker is a high-availability cluster resource manager.
+
+It achieves maximum availability for your cluster services (a.k.a. resources) by
+detecting and recovering from node- and resource-level failures by making use of
+the messaging and membership capabilities provided by Corosync.
+
+It can do this for clusters of practically any size and comes with a powerful
+dependency model that allows the administrator to accurately express the
+relationships (both ordering and location) between the cluster resources.
+
+Virtually anything that can be scripted can be managed as part of a Pacemaker cluster.")
+    (license (list license:cc-by4.0 license:gpl2+ license:lgpl2.1+))))