Subject: Re: [bug#65936] [PATCH] gnu: Add ipvsadm.
From: Ludovic Courtès <[email-masked]>
To: "B. Wilson" <[email-masked]>
Cc: [email-masked]
Date: Wed, 18 Oct 2023 23:00:53 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

"B. Wilson" <[email-masked]> skribis:

> * gnu/packages/linux.scm (ipvsadm): New variable.

I ran ‘guix style -S inputs’ and ‘guix style -S arguments’, and then I
had to edit it quite a bit (see below).  Committed.

Ludo’.

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 08cc3823ed..457e41f303 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -10514,42 +10514,36 @@ (define-public ipvsadm
     (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"))))
+     (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)))
+    (native-inputs (list linux-libre-headers pkg-config which))
+    (inputs (list libnl 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))))))
+     (list #:tests? #f
+           #:parallel-build? #f               ;build fails randomly with '-j'
+           #:make-flags
+           #~(list (string-join
+                    (list "CFLAGS="
+                          (string-append "-I"
+                                         #$(this-package-input "libnl")
+                                         "/include/libnl3")
+                          (string-append "-L" #$(this-package-input "libnl")
+                                         "/lib")
+                          "-fPIC")
+                    " ")
+                   (string-append "CC=" #$(cc-for-target))
+                   (string-append "SBIN=" #$output "/sbin")
+                   (string-append "INIT=" #$output "/etc/init.d")
+                   (string-append "MANDIR=" #$output "/share/man"))
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure))))
     (home-page "http://www.linuxvirtualserver.org/software/ipvs.html")
-    (synopsis "IP Virtual Server administration utility")
+    (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.")