all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
To: Guix-devel <guix-devel@gnu.org>
Subject: [PATCH] gnu: bind-utils: Build and install “nsupdate”.
Date: Wed, 13 Jan 2016 16:11:15 +0100	[thread overview]
Message-ID: <idjd1t5frak.fsf@bimsb-sys02.mdc-berlin.net> (raw)

[-- Attachment #1: Type: text/plain, Size: 542 bytes --]

Hi Guix,

this patch is not as bad as it looks, even though most of the lines are
changed.  I noticed that “nsupdate” is not build as part of bind-utils
and replaced the manual and repetitive “build” and “install” phases with
something that can be controlled with the let-bound values “bins” and
“libs” holding the names of executables and libraries, respectively.

What do you think?

(“nsupdate” is checked for by the build system of some SELinux
libraries, which are needed for SSSD.)

~~ Ricardo



[-- Attachment #2: 0001-gnu-bind-utils-Build-and-install-nsupdate.patch --]
[-- Type: text/x-patch, Size: 5492 bytes --]

From ba328617777728c3534be6796b6b32a9a90954b6 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Date: Wed, 13 Jan 2016 16:06:36 +0100
Subject: [PATCH] gnu: bind-utils: Build and install "nsupdate".

* gnu/packages/dns.scm (bind-utils)[arguments]: Generalize "build" and
  "install" phases.
---
 gnu/packages/dns.scm | 105 ++++++++++++++++++++++++++++-----------------------
 1 file changed, 58 insertions(+), 47 deletions(-)

diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 8357dad..0a42722 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,51 +62,61 @@ and BOOTP/TFTP for network booting of diskless machines.")
     (license (list license:gpl2 license:gpl3))))
 
 (define-public bind-utils
-  (package
-    (name "bind-utils")
-    (version "9.10.3-P2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://ftp.isc.org/isc/bind9/" version
-                                  "/bind-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1kbfzml37sx4r2xi4gq48ji8w5kckd1f6gdn6pk6njqdmh8ijv2a"))))
-    (build-system gnu-build-system)
-    (inputs
-     ;; it would be nice to add GeoIP and gssapi once there is package
-     `(("libcap" ,libcap)
-       ("libxml2" ,libxml2)
-       ("mysql" ,mysql)
-       ("openssl" ,openssl)
-       ("perl" ,perl)
-       ("p11-kit" ,p11-kit)))
-    (arguments
-     `(#:tests? #f ; no test phase implemented
-       #:configure-flags
-       (list (string-append "--with-openssl="
-                            (assoc-ref %build-inputs "openssl"))
-             (string-append "--with-dlz-mysql="
-                            (assoc-ref %build-inputs "mysql"))
-             (string-append "--with-pkcs11="
-                            (assoc-ref %build-inputs "p11-kit")))
-       #:phases
-       (alist-replace
-        'build
-        (lambda _
-          (and (zero? (system* "make" "-C" "lib/dns"))
-               (zero? (system* "make" "-C" "lib/isc"))
-               (zero? (system* "make" "-C" "lib/bind9"))
-               (zero? (system* "make" "-C" "lib/isccfg"))
-               (zero? (system* "make" "-C" "lib/lwres"))
-               (zero? (system* "make" "-C" "bin/dig"))))
-        (alist-replace
-         'install
-         (lambda _ (zero? (system* "make" "-C" "bin/dig" "install")))
-         %standard-phases))))
-    (home-page "https://www.isc.org/downloads/bind/")
-    (synopsis "Tools for querying nameservers")
-    (description
-     "These tools, included with ISC BIND, are useful for analysis of DNS
+  (let ((libs '("dns" "isc" "bind9" "isccfg" "lwres"))
+        (bins '("dig" "nsupdate")))
+    (package
+      (name "bind-utils")
+      (version "9.10.3-P2")
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "http://ftp.isc.org/isc/bind9/" version
+                                    "/bind-" version ".tar.gz"))
+                (sha256
+                 (base32
+                  "1kbfzml37sx4r2xi4gq48ji8w5kckd1f6gdn6pk6njqdmh8ijv2a"))))
+      (build-system gnu-build-system)
+      (inputs
+       ;; it would be nice to add GeoIP and gssapi once there is package
+       `(("libcap" ,libcap)
+         ("libxml2" ,libxml2)
+         ("mysql" ,mysql)
+         ("openssl" ,openssl)
+         ("perl" ,perl)
+         ("p11-kit" ,p11-kit)))
+      (arguments
+       `(#:tests? #f ; no test phase implemented
+         #:configure-flags
+         (list (string-append "--with-openssl="
+                              (assoc-ref %build-inputs "openssl"))
+               (string-append "--with-dlz-mysql="
+                              (assoc-ref %build-inputs "mysql"))
+               (string-append "--with-pkcs11="
+                              (assoc-ref %build-inputs "p11-kit")))
+         #:modules ((srfi srfi-1)
+                    (srfi srfi-26)
+                    ,@%gnu-build-system-modules)
+         #:phases
+         (modify-phases %standard-phases
+           (replace 'build
+             (lambda _
+               (fold (lambda (dir pass)
+                       (and pass (zero? (system* "make" "-C" dir))))
+                     #t
+                     (append
+                      (map (cut string-append "lib/" <>)
+                           (list ,@libs))
+                      (map (cut string-append "bin/" <>)
+                           (list ,@bins))))))
+           (replace 'install
+             (lambda _
+               (fold (lambda (dir pass)
+                       (and pass (zero? (system* "make" "-C" dir "install"))))
+                     #t
+                     (map (cut string-append "bin/" <>)
+                          (list ,@bins))))))))
+      (home-page "https://www.isc.org/downloads/bind/")
+      (synopsis "Tools for querying nameservers")
+      (description
+       "These tools, included with ISC BIND, are useful for analysis of DNS
 issues or verification of configuration.")
-    (license (list license:isc))))
+      (license (list license:isc)))))
-- 
2.1.0


             reply	other threads:[~2016-01-13 15:11 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-13 15:11 Ricardo Wurmus [this message]
2016-01-14  0:46 ` [PATCH] gnu: bind-utils: Build and install “nsupdate” Mathieu Lirzin
2016-01-14  8:59   ` Alex Kost
2016-01-14 11:53     ` Ricardo Wurmus
2016-01-14 23:46       ` Mathieu Lirzin
2016-01-21 10:52         ` Ricardo Wurmus
2016-01-21 13:14           ` Mathieu Lirzin
2016-01-21 14:58             ` Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=idjd1t5frak.fsf@bimsb-sys02.mdc-berlin.net \
    --to=ricardo.wurmus@mdc-berlin.de \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.