aboutsummaryrefslogtreecommitdiff
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
guix-1c347cd56a8feb260e40ab187d7de37076010b50.zip
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