From 441e9a219377d93dd47488b7994b749a69a89382 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Wed, 28 Sep 2022 21:37:07 +0100 Subject: [PATCH 3/5] gnu: Add kronosnet * gnu/packages/high-availability.scm (kronosnet): New variable. --- gnu/packages/high-availability.scm | 61 ++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm index 46247c4e13..48c371a6db 100644 --- a/gnu/packages/high-availability.scm +++ b/gnu/packages/high-availability.scm @@ -77,3 +77,64 @@ (define-public libqb 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 + #: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 + ;; libgcc_s.so.1 must be installed for pthread_cancel to work + `(,gcc "lib"))) + (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+)))) -- 2.37.3