aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-10-15 02:36:02 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2020-10-16 02:03:23 +0200
commit8154df5307bc3d27326e4a94c5b505a18c2723eb (patch)
treeb55e1e8d6a66aa148f8858679e32c5ce5b699abc /gnu
parent4caa84e29927d0ae225860ef0027359f2aa8d56a (diff)
downloadguix-8154df5307bc3d27326e4a94c5b505a18c2723eb.tar.gz
guix-8154df5307bc3d27326e4a94c5b505a18c2723eb.zip
gnu: knot: Build separate outputs.
* gnu/packages/dns.scm (knot)[outputs]: New field adding :doc, :lib, and :tools outputs. [arguments]: Add #:configure-flags to install into :doc and :lib. Add a new ‘split-:tools’ phase to install into :tools. Add a new ‘break-circular-:lib->:out-reference’ phase to do just that.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/dns.scm31
1 files changed, 28 insertions, 3 deletions
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 1775660162..c5a6c98cb9 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -827,9 +827,15 @@ Extensions} (DNSSEC).")
(delete-file-recursively "src/contrib/libbpf")
#t))))
(build-system gnu-build-system)
+ (outputs (list "out" "doc" "lib" "tools"))
(arguments
`(#:configure-flags
- (list "--sysconfdir=/etc"
+ (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"
"--enable-dnstap" ; let tools read/write capture files
"--enable-fastparser" ; disabled by default when .git/ exists
@@ -844,7 +850,7 @@ Extensions} (DNSSEC).")
(substitute* "configure.ac"
(("enable_xdp=yes" match)
(string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))
- #t))
+ #true))
(add-before 'bootstrap 'update-parser
(lambda _
(with-directory-excursion "src"
@@ -868,7 +874,26 @@ Extensions} (DNSSEC).")
"install"))))
(add-after 'install 'install-info
(lambda _
- (invoke "make" "install-info"))))))
+ (invoke "make" "install-info")))
+ (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$"))
+ #true)))
+ (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"))
+ #true))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)