summary refs log tree commit diff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2023-07-09 02:00:04 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2023-07-09 02:00:10 +0200
commit1c347cd56a8feb260e40ab187d7de37076010b50 (patch)
tree4e559fac913db334be7580f6b2a8fcde43145e64
parent60bb22a9da9aa41d219efc2973266e3f149578b7 (diff)
downloadguix-1c347cd56a8feb260e40ab187d7de37076010b50.tar.gz
gnu: knot: Use G-expressions.
* gnu/packages/dns.scm (knot)[arguments]:
Rewrite as G-expressions.
-rw-r--r--gnu/packages/dns.scm144
1 files changed, 71 insertions, 73 deletions
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 86f2b4338e..5dda69d4ab 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -866,79 +866,77 @@ Extensions} (DNSSEC).")
     (build-system gnu-build-system)
     (outputs (list "out" "doc" "lib" "tools"))
     (arguments
-     `(#:configure-flags
-       (list (string-append "--docdir=" (assoc-ref %outputs "doc")
-                            "/share/" ,name "-" ,version)
-             (string-append "--infodir=" (assoc-ref %outputs "doc")
-                            "/share/info")
-             (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
-             "--sysconfdir=/etc"
-             "--localstatedir=/var"
-             "--disable-static"         ; static libraries are built by default
-             "--enable-dnstap"          ; let tools read/write capture files
-             "--enable-fastparser"      ; disabled by default when .git/ exists
-             "--enable-xdp=yes"
-             "--with-module-dnstap=yes") ; detailed query capturing & logging
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'link-missing-libbpf-dependency
-           ;; Linking against -lbpf later would fail to find -lz: libbpf.pc has
-           ;; zlib in its Requires.private (not Requires) field.  Add it here.
-           (lambda _
-             (substitute* "configure.ac"
-               (("enable_xdp=yes" match)
-                (string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))))
-         (add-before 'bootstrap 'update-parser
-           (lambda _
-             (with-directory-excursion "src"
-               (invoke "sh" "../scripts/update-parser.sh"))))
-         (add-before 'configure 'disable-directory-pre-creation
-           (lambda _
-             ;; Don't install empty directories like ‘/etc’ outside the store.
-             ;; This is needed even when using ‘make config_dir=... install’.
-             (substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))))
-         (add-after 'build 'build-info
-           (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
-             (apply invoke "make" "info"
-                    `(,@(if parallel-build?
-                            `("-j" ,(number->string (parallel-job-count)))
-                            '())
-                      ,@make-flags))))
-         (replace 'install
-           (lambda* (#:key make-flags outputs parallel-build? #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (string-append out "/share/doc/" ,name "-" ,version))
-                    (etc (string-append doc "/examples/etc")))
-               (apply invoke "make" "install"
-                      (string-append "config_dir=" etc)
-                      `(,@(if parallel-build?
-                              `("-j" ,(number->string (parallel-job-count)))
-                              '())
-                        ,@make-flags)))))
-         (add-after 'install 'install-info
-           (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
-             (apply invoke "make" "install-info"
-                    `(,@(if parallel-build?
-                            `("-j" ,(number->string (parallel-job-count)))
-                            '())
-                      ,@make-flags))))
-         (add-after 'install 'break-circular-:lib->:out-reference
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((lib (assoc-ref outputs "lib")))
-               (for-each (lambda (file)
-                           (substitute* file
-                             (("(prefix=).*" _ assign)
-                              (string-append assign lib "\n"))))
-                         (find-files lib "\\.pc$")))))
-         (add-after 'install 'split-:tools
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out   (assoc-ref outputs "out"))
-                    (tools (assoc-ref outputs "tools")))
-               (mkdir-p (string-append tools "/share/man"))
-               (rename-file (string-append out   "/bin")
-                            (string-append tools "/bin"))
-               (rename-file (string-append out   "/share/man/man1")
-                            (string-append tools "/share/man/man1"))))))))
+     (list
+      #:configure-flags
+      #~(list (string-append "--docdir=" #$output:doc
+                             "/share/" #$name "-" #$version)
+              (string-append "--infodir=" #$output:doc "/share/info")
+              (string-append "--libdir=" #$output:lib "/lib")
+              "--sysconfdir=/etc"
+              "--localstatedir=/var"
+              "--disable-static"       ; static libraries are built by default
+              "--enable-dnstap"        ; let tools read/write capture files
+              "--enable-fastparser"    ; disabled by default when .git/ exists
+              "--enable-xdp=yes"
+              "--with-module-dnstap=yes") ; detailed query capturing & logging
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'link-missing-libbpf-dependency
+            ;; Linking against -lbpf later would fail to find -lz: libbpf.pc has
+            ;; zlib in its Requires.private (not Requires) field.  Add it here.
+            (lambda _
+              (substitute* "configure.ac"
+                (("enable_xdp=yes" match)
+                 (string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))))
+          (add-before 'bootstrap 'update-parser
+            (lambda _
+              (with-directory-excursion "src"
+                (invoke "sh" "../scripts/update-parser.sh"))))
+          (add-before 'configure 'disable-directory-pre-creation
+            (lambda _
+              ;; Don't install empty directories like ‘/etc’ outside the store.
+              ;; This is needed even when using ‘make config_dir=... install’.
+              (substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))))
+          (add-after 'build 'build-info
+            (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+              (apply invoke "make" "info"
+                     `(,@(if parallel-build?
+                             `("-j" ,(number->string (parallel-job-count)))
+                             '())
+                       ,@make-flags))))
+          (replace 'install
+            (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+              (let* ((doc (string-append #$output "/share/doc/"
+                                         #$name "-" #$version))
+                     (etc (string-append doc "/examples/etc")))
+                (apply invoke "make" "install"
+                       (string-append "config_dir=" etc)
+                       `(,@(if parallel-build?
+                               `("-j" ,(number->string (parallel-job-count)))
+                               '())
+                         ,@make-flags)))))
+          (add-after 'install 'install-info
+            (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+              (apply invoke "make" "install-info"
+                     `(,@(if parallel-build?
+                             `("-j" ,(number->string (parallel-job-count)))
+                             '())
+                       ,@make-flags))))
+          (add-after 'install 'break-circular-:lib->:out-reference
+            (lambda _
+              (for-each (lambda (file)
+                          (substitute* file
+                            (("(prefix=).*" _ assign)
+                             (string-append assign #$output:lib "\n"))))
+                        (find-files #$output:lib "\\.pc$"))))
+          (add-after 'install 'split:tools
+            (lambda _
+              (define (move source target file)
+                (mkdir-p (dirname (string-append target "/" file)))
+                (rename-file (string-append source "/" file)
+                             (string-append target "/" file)))
+              (move #$output #$output:tools "bin")
+              (move #$output #$output:tools "share/man/man1"))))))
     (native-inputs
      (list autoconf
            automake