me
/
guix
Archived
1
0
Fork 0

gnu: Add knot-resolver.

* gnu/packages/dns.scm (knot-resolver): New package.
master
宋文武 2019-11-08 20:02:16 +08:00
parent 68f0de01fc
commit a35e16c00d
No known key found for this signature in database
GPG Key ID: D415BF253B515976
1 changed files with 72 additions and 0 deletions

View File

@ -34,7 +34,9 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages datastructures)
@ -46,6 +48,7 @@
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages networking)
@ -54,6 +57,7 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages swig)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
@ -65,6 +69,7 @@
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system trivial))
(define-public dnsmasq
@ -662,6 +667,73 @@ synthesis, and on-the-fly re-configuration.")
license:public-domain ; src/contrib/fnv and possibly murmurhash3
license:gpl3+)))) ; everything else
(define-public knot-resolver
(package
(name "knot-resolver")
(version "4.2.2")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-resolver/"
"knot-resolver-" version ".tar.xz"))
(sha256
(base32
"0n0llpclhparq9wbcrymxkl5d03c4y4p3shcbdxfv6j22vzqvdh3"))))
(build-system meson-build-system)
(arguments
'(#:configure-flags
'("-Dmanaged_ta=disabled" ; We'll manage the DNS root data ourself.
"-Ddoc=enabled")
#:phases
(modify-phases %standard-phases
(add-after 'build 'build-doc
(lambda _
(invoke "ninja" "doc")))
(add-after 'install 'wrap-binary
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lua-* (map cdr (filter
(lambda (input)
(string-prefix? "lua-" (car input)))
inputs)))
(lua-path (lambda (p)
(string-append p "/share/lua/5.1/?.lua")))
(lua-cpath (lambda (p)
(string-append p "/lib/lua/5.1/?.so"))))
(wrap-program (string-append out "/sbin/kresd")
`("LUA_PATH" ";" prefix ,(map lua-path lua-*))
`("LUA_CPATH" ";" prefix ,(map lua-cpath lua-*)))
#t))))))
(native-inputs
`(("cmocka" ,cmocka) ; for unit tests
("doxygen" ,doxygen)
("protobuf-c" ,protobuf-c)
("pkg-config" ,pkg-config)
("python-breathe" ,python-breathe)
("python-sphinx" ,python-sphinx)
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
("knot" ,knot)
("libuv" ,libuv)
("lmdb" ,lmdb)
("luajit" ,luajit)
;; TODO: Add optional lua modules: basexx, cqueues and psl.
("lua-bitop" ,lua5.1-bitop)
("lua-filesystem" ,lua5.1-filesystem)
("lua-sec" ,lua5.1-sec)
("lua-socket" ,lua5.1-socket)))
(home-page "https://www.knot-resolver.cz/")
(synopsis "Caching validating DNS resolver")
(description
"Knot Resolver is a caching full resolver implementation written in C and
LuaJIT, both a resolver library and a daemon.")
(license (list license:gpl3+
;; Some 'contrib' files are under MIT, CC0 and LGPL2.
license:expat
license:cc0
license:lgpl2.0))))
(define-public ddclient
(package
(name "ddclient")