From d3202ad0d219e029f9429c5a12ec33fe573aab21 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 29 Jul 2020 12:50:18 -0400 Subject: [PATCH 57/75] gnu: Add ldns. * gnu/packages/dns.scm (ldns): New variable. * gnu/packages/patches/ldns-drill-examples.patch: New file. * gnu/local.mk (ldns-drill-examples.patch): New reference. --- gnu/local.mk | 1 + gnu/packages/dns.scm | 87 +++++++++++++++++++ .../patches/ldns-drill-examples.patch | 85 ++++++++++++++++++ 3 files changed, 173 insertions(+) create mode 100644 gnu/packages/patches/ldns-drill-examples.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6fe674ffec..90b00eb4de 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1163,6 +1163,7 @@ dist_patch_DATA = \ %D%/packages/patches/lcms-CVE-2018-16435.patch \ %D%/packages/patches/ldc-bootstrap-disable-tests.patch \ %D%/packages/patches/ldc-disable-phobos-tests.patch \ + %D%/packages/patches/ldns-drill-examples.patch \ %D%/packages/patches/leela-zero-gtest.patch \ %D%/packages/patches/less-hurd-path-max.patch \ %D%/packages/patches/lib2geom-enable-assertions.patch \ diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 98dd425562..5ea3273fed 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -38,6 +38,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages certs) #:use-module (gnu packages check) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) @@ -62,6 +63,7 @@ #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages shells) #:use-module (gnu packages sphinx) #:use-module (gnu packages swig) #:use-module (gnu packages tls) @@ -77,6 +79,91 @@ #:use-module (guix build-system meson) #:use-module (guix build-system trivial)) +(define-public ldns + (package + (name "ldns") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.nlnetlabs.nl/downloads/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0ac242n7996fswq1a3nlh1bbbhrsdwsq4mx7xq8ffq6aplb4rj4a")) + (patches + (search-patches + ;; To create make-flag vairables, + ;; for splitting installation of drill and examples. + "ldns-drill-examples.patch")))) + (build-system gnu-build-system) + (outputs '("out" "drill" "examples" "pyldns")) + (arguments + `( ;; Tests require Tpkg. + ;; https://tpkg.github.io/ + #:tests? #f + #:configure-flags + (list + "--disable-static" + "--enable-gost-anyway" + "--enable-rrtype-ninfo" + "--enable-rrtype-rkey" + "--enable-rrtype-ta" + "--enable-rrtype-avc" + "--enable-rrtype-doa" + "--enable-rrtype-amtrelay" + "--with-drill" + "--with-examples" + "--with-pyldns" + ;; Perl module DNS::LDNS not available. + ;; https://github.com/erikoest/DNS-LDNS.git + ;; "--with-p5-dns-ldns" + (string-append "--with-ssl=" + (assoc-ref %build-inputs "openssl")) + (string-append "--with-ca-path=" + (assoc-ref %build-inputs "nss-certs") + "/etc/ssl/certs")) + #:make-flags + (list + (string-append "drillbindir=" + (assoc-ref %outputs "drill") + "/bin") + (string-append "drillmandir=" + (assoc-ref %outputs "drill") + "/share/man") + (string-append "examplesbindir=" + (assoc-ref %outputs "examples") + "/bin") + (string-append "examplesmandir=" + (assoc-ref %outputs "examples") + "/share/man") + (string-append "python_site=" + (assoc-ref %outputs "pyldns") + "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages")))) + (native-inputs + `(("doxygen" ,doxygen) + ("ksh" ,oksh) + ("perl" ,perl) + ("perl-devel-checklib" ,perl-devel-checklib) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("swig" ,swig))) + (inputs + `(("libpcap" ,libpcap) + ("nss-certs" ,nss-certs) + ("openssl" ,openssl))) + (synopsis "DNS library that facilitates DNS tool programming") + (description "LDNS aims to simplify DNS programming, it supports recent +RFCs like the DNSSEC documents, and allows developers to easily create +software conforming to current RFCs, and experimental software for current +Internet Drafts. A secondary benefit of using ldns is speed; ldns is written in +C it should be a lot faster than Perl.") + (home-page "https://nlnetlabs.nl/projects/ldns/about/") + (license license:bsd-3))) + (define-public dnsmasq (package (name "dnsmasq") diff --git a/gnu/packages/patches/ldns-drill-examples.patch b/gnu/packages/patches/ldns-drill-examples.patch new file mode 100644 index 0000000000..f85e14cebe --- /dev/null +++ b/gnu/packages/patches/ldns-drill-examples.patch @@ -0,0 +1,85 @@ +From 68916cd7ffb49ece9126d13ef984595595a156c4 Mon Sep 17 00:00:00 2001 +From: Raghav Gururajan +Date: Wed, 29 Jul 2020 12:32:48 -0400 +Subject: [PATCH] [PATCH]: Split installation of drill and examples. + +--- + Makefile.in | 38 +++++++++++++++++++++----------------- + 1 file changed, 21 insertions(+), 17 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 442067de..9d2d5f4d 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -14,6 +14,10 @@ libdir = @libdir@ + includedir = @includedir@ + sysconfdir = @sysconfdir@ + doxygen = @doxygen@ ++drillbindir = @drillbindir@ ++drillmandir = @drillmandir@ ++examplesbindir = @examplesbindir@ ++examplesmandir = @examplesmandir@ + pywrapdir = $(srcdir)/contrib/python + pyldnsxwrapdir = $(srcdir)/contrib/ldnsx + p5_dns_ldns_dir = $(srcdir)/contrib/DNS-LDNS +@@ -154,16 +158,16 @@ drill/drill.1: $(srcdir)/drill/drill.1.in + $(edit) $(srcdir)/drill/drill.1.in > drill/drill.1 + + install-drill: drill/drill drill/drill.1 +- $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) +- $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) +- $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 +- $(LIBTOOL) --mode=install cp drill/drill $(DESTDIR)$(bindir) +- $(INSTALL) -m 644 drill/drill.1 $(DESTDIR)$(mandir)/man1/drill.1 ++ $(INSTALL) -m 755 -d $(drillbindir) ++ $(INSTALL) -m 755 -d $(drillmandir) ++ $(INSTALL) -m 755 -d $(drillmandir)/man1 ++ $(LIBTOOL) --mode=install cp drill/drill $(drillbindir) ++ $(INSTALL) -m 644 drill/drill.1 $(drillmandir)/man1/drill.1 + + uninstall-drill: +- rm -f $(DESTDIR)$(bindir)/drill $(DESTDIR)$(mandir)/man1/drill.1 +- test ! -d $(DESTDIR)$(mandir) || rmdir -p $(DESTDIR)$(mandir)/man1 || :; +- test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ; ++ rm -f $(drillbindir)/drill $(drillmandir)/man1/drill.1 ++ test ! -d $(drillmandir) || rmdir -p $(drillmandir)/man1 || :; ++ test ! -d $(drillbindir) || rmdir -p $(drillbindir) || : ; + + clean-drill: + $(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1 +@@ -202,23 +206,23 @@ examples/ldns-verify-zone.1: $(srcdir)/examples/ldns-verify-zone.1.in + $(edit) $(srcdir)/examples/ldns-verify-zone.1.in > examples/ldns-verify-zone.1 + + install-examples: $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1 +- $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) +- $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) +- $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 ++ $(INSTALL) -m 755 -d $(examplesbindir) ++ $(INSTALL) -m 755 -d $(examplesmandir) ++ $(INSTALL) -m 755 -d $(examplesmandir)/man1 + for p in $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) ; do \ +- $(LIBTOOL) --mode=install cp $$p $(DESTDIR)$(bindir) ; \ ++ $(LIBTOOL) --mode=install cp $$p $(examplesbindir) ; \ + if test -f $$p.1 ; \ +- then $(INSTALL) -m 644 $$p.1 $(DESTDIR)$(mandir)/man1 ; \ +- else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(DESTDIR)$(mandir)/man1 ; \ ++ then $(INSTALL) -m 644 $$p.1 $(examplesmandir)/man1 ; \ ++ else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(examplesmandir)/man1 ; \ + fi ; \ + done + + uninstall-examples: + for p in $(EX_PROGS_BASENM) ; do \ +- rm -f $(DESTDIR)$(bindir)/$$p $(DESTDIR)$(mandir)/man1/$$p.1 ;\ ++ rm -f $(examplesbindir)/$$p $(examplesmandir)/man1/$$p.1 ;\ + done +- test ! -d $(DESTDIR)$(mandir) || rmdir -p $(DESTDIR)$(mandir)/man1 || :; +- test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ; ++ test ! -d $(examplesmandir) || rmdir -p $(examplesmandir)/man1 || :; ++ test ! -d $(examplesbindir) || rmdir -p $(examplesbindir) || : ; + + clean-examples: + $(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) +-- +2.27.0 + -- 2.27.0