From 5b18749fc520bd4eb30c17b043402dd5c256061a Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Wed, 28 Sep 2022 21:43:31 +0100 Subject: [PATCH 4/5] gnu: Add corosync * gnu/packages/high-availability.scm (corosync): New variable. --- gnu/packages/high-availability.scm | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm index 48c371a6db..488ac5a3b0 100644 --- a/gnu/packages/high-availability.scm +++ b/gnu/packages/high-availability.scm @@ -138,3 +138,51 @@ (define-public kronosnet recovery, FIPS compliant encryption (nss and/or openssl), automatic PMTUd and in general better performances compared to the old network protocol.") (license (list license:gpl2+ license:lgpl2.1+)))) + +(define-public corosync + (package + (name "corosync") + (version "3.1.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/corosync/corosync") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03g3qnm5acmk7jry6kspvkssbiv8k39749bic2f0cj3ckkwy2li4")))) + (build-system gnu-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-before 'bootstrap 'fix-version-gen + (lambda _ + (call-with-output-file ".tarball-version" + (lambda (port) + (display #$version port)))))))) + (native-inputs (list autoconf automake libtool pkg-config)) + (inputs (list kronosnet libqb)) + (home-page "https://corosync.github.io/corosync/") + (synopsis + "Group communication system for implementing High Availability in applications") + (description + "The Corosync Cluster Engine is a Group Communication System with additional +features for implementing high availability within applications. The project +provides four C Application Programming Interface features: + +@itemize + +@item A closed process group communication model with extended virtual synchrony +guarantees for creating replicated state machines. + +@item A simple availability manager that restarts the application process when +it has failed. + +@item A configuration and statistics in-memory database that provide the ability +to set, retrieve, and receive change notifications of information. + +@item A quorum system that notifies applications when quorum is achieved or +lost. + +@end itemize") + (license (list license:bsd-0 license:gpl3)))) -- 2.37.3