aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2022-09-28 21:37:07 +0100
committerLudovic Courtès <ludo@gnu.org>2022-10-10 11:16:08 +0200
commitb72e6036ddc6bf73f915f8898b49c067de833735 (patch)
treef8221f1eede08ca7ede8c0df9724e939cf733f44
parent1589a825daf7d994a7236fdffdc5a2f98fe8cc38 (diff)
downloadguix-b72e6036ddc6bf73f915f8898b49c067de833735.tar.gz
guix-b72e6036ddc6bf73f915f8898b49c067de833735.zip
gnu: Add kronosnet.
* gnu/packages/high-availability.scm (kronosnet): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/high-availability.scm60
1 files changed, 60 insertions, 0 deletions
diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm
index 46247c4e13..5f62bb1748 100644
--- a/gnu/packages/high-availability.scm
+++ b/gnu/packages/high-availability.scm
@@ -77,3 +77,63 @@ not intended to be an all-encompassing library, but instead provide focused
APIs that are highly tuned for maximum performance for client-server
applications.")
(license license:lgpl2.1)))
+
+(define-public kronosnet
+ (package
+ (name "kronosnet")
+ (version "1.24")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kronosnet/kronosnet")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1b8rz7f2h3scrq0xcqz58ckzsvv08g31j5jgy2v4i6w87r9c75lw"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; XXX: Multiple tests failed. Tests
+ ;; require very complex environment and for some of them root privileges to
+ ;; set network configuration. It has it's own CI based on Jenkis
+ ;; https://ci.kronosnet.org/.
+ (list #:tests? #f
+ #:configure-flags #~'("--disable-static")
+ #: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
+ doxygen
+ libtool
+ net-tools
+ pkg-config))
+ (inputs (list lksctp-tools
+ libnl
+ libqb
+ libxml2
+ lz4
+ lzo
+ nss
+ nspr
+ openssl
+ xz
+ zlib
+ `(,zstd "lib")))
+ (home-page "https://kronosnet.org/")
+ (synopsis "Network abstraction layer designed for High Availability")
+ (description
+ "Kronosnet, often referred to as @code{knet}, is a network
+ abstraction layer designed for High Availability use cases, where redundancy,
+ security, fault tolerance and fast fail-over are the core requirements of
+ your application.
+
+ Kronosnet is the new underlying network protocol for Linux HA components
+ (Corosync), that features ability to use multiple links between nodes,
+ active/active and active/passive link failover policies, automatic link
+ 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+))))