Subject: [PATCH] gnu: Add ipvsadm.
From: "B. Wilson" <[email-masked]>
To: [email-masked]
Cc: "B. Wilson" <[email-masked]>
Date: Thu, 14 Sep 2023 14:55:13 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/linux.scm (ipvsadm): New variable.
---
 gnu/packages/linux.scm | 46 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 91109c41d9..aa4bca1050 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -10414,3 +10414,49 @@ (define-public csmith
     (description "The primary purpose of Csmith is to find compiler bugs with
 random programs using differential testing.")
     (license license:bsd-4)))
+
+(define-public ipvsadm
+  (package
+    (name "ipvsadm")
+    (version "1.31")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://kernel.org/pub/linux/utils/kernel"
+                            "/ipvsadm/ipvsadm-" version ".tar.xz"))
+        (sha256
+          (base32 "1nyzpv1hx75k9lh0vfxfhc0p2fpqaqb38xpvs8sn88m1nljmw2hs"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("linux-libre-headers" ,linux-libre-headers)
+                     ("pkg-config" ,pkg-config)))
+    (inputs `(("libnl" ,libnl)
+              ("popt" ,popt)))
+    (arguments
+      `(#:tests? #f
+        #:make-flags
+        (list (string-join
+                (list "CFLAGS="
+                      (string-append "-I" (assoc-ref %build-inputs "libnl")
+                                      "/include/libnl3")
+                      (string-append "-L" (assoc-ref %build-inputs "libnl")
+                                     "/lib")
+                "-fPIC")
+                " ")
+              (string-append "CC=" ,(cc-for-target))
+              (string-append "SBIN=" (assoc-ref %outputs "out") "/sbin")
+              (string-append "INIT=" (assoc-ref %outputs "out") "/etc/init.d")
+              (string-append "MANDIR=" (assoc-ref %outputs "out") "/share/man"))
+        #:phases
+        (modify-phases %standard-phases
+          (delete 'configure)
+          (add-before 'build 'build-libs
+            (lambda* (#:key inputs make-flags #:allow-other-keys)
+              ;; XXX: libnl-* pkg-config checks are failing for some reason
+              (invoke "sed" "-i" "68,74d" "Makefile")
+              (apply invoke "make" "libs" make-flags))))))
+    (home-page "http://www.linuxvirtualserver.org/software/ipvs.html")
+    (synopsis "IP Virtual Server administration utility")
+    (description "@code{ipvsadm(8)} is used to set up, maintain or inspect the
+virtual server table in the Linux kernel.  The Linux Virtual Server can be used
+to build scalable network services based on a cluster of two or more nodes.")
+    (license license:gpl2+)))
-- 
2.41.0