From d9e4033f1fb9c9944c3c1e97aa1e19396b2cb1e3 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 28 Sep 2022 21:20:05 +0100
Subject: [PATCH 1/5] gnu: Move libqb to high-availability

* gnu/packages/hardware.scm (libqb): Move to high-availability.scm.
* gnu/packages/high-availability.scm: New file.
* gnu/local.mk: Add high-availability.scm to GNU_SYSTEM_MODULES list.
---
 gnu/local.mk                       |  1 +
 gnu/packages/hardware.scm          | 27 ----------
 gnu/packages/high-availability.scm | 80 ++++++++++++++++++++++++++++++
 3 files changed, 81 insertions(+), 27 deletions(-)
 create mode 100644 gnu/packages/high-availability.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 0134fb53d8..373b6bc398 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -309,6 +309,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/haxe.scm				\
   %D%/packages/heads.scm			\
   %D%/packages/hexedit.scm			\
+  %D%/packages/high-availability.scm			\
   %D%/packages/hugs.scm				\
   %D%/packages/hunspell.scm				\
   %D%/packages/hurd.scm				\
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index d47be7a55d..41c38746c5 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -1117,33 +1117,6 @@ (define-public rkdeveloptool
 as the Pinebook Pro.")
       (license license:gpl2+))))
 
-(define-public libqb
-  (package
-    (name "libqb")
-    ;; NOTE: We are using a Release Candidate version (for 2.0) here because
-    ;; of the linker issues with the previous release.
-    (version "1.9.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/ClusterLabs/libqb/releases/download/v"
-                    version "/libqb-" version ".tar.xz"))
-              (sha256
-               (base32
-                "008vvw504kh40br5v2xkqavnp9vpmjvf768faqzv1d00fd53ingn"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list pkg-config libxml2))
-    (home-page "https://clusterlabs.github.io/libqb/")
-    (synopsis "Library providing high performance logging, tracing, ipc, and poll")
-    (description "Libqb is a library with the primary purpose of providing
-high-performance, reusable features for client-server architecture, such as
-logging, tracing, inter-process communication (IPC), and polling.  Libqb is
-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 usbguard
   (package
     (name "usbguard")
diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm
new file mode 100644
index 0000000000..1a8c348020
--- /dev/null
+++ b/gnu/packages/high-availability.scm
@@ -0,0 +1,80 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This module provides package definitions related for High Availability (HA)
+;; software, which come as foundation to create clusterization and load
+;; balancing of services.
+
+;;; Code:
+
+(define-module (gnu packages high-availability)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages hardware)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages nss)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages rsync)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages valgrind)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix gexp)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses)
+                #:prefix license:))
+
+(define-public libqb
+  (package
+    (name "libqb")
+    ;; NOTE: We are using a Release Candidate version (for 2.0) here because
+    ;; of the linker issues with the previous release.
+    (version "1.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/ClusterLabs/libqb/releases/download/v"
+                    version "/libqb-" version ".tar.xz"))
+              (sha256
+               (base32
+                "008vvw504kh40br5v2xkqavnp9vpmjvf768faqzv1d00fd53ingn"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list pkg-config libxml2))
+    (home-page "https://clusterlabs.github.io/libqb/")
+    (synopsis "Library providing high performance logging, tracing, ipc, and poll")
+    (description "Libqb is a library with the primary purpose of providing
+high-performance, reusable features for client-server architecture, such as
+logging, tracing, inter-process communication (IPC), and polling.  Libqb is
+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)))
-- 
2.37.3

