From: Michael Tremer Date: Sun, 18 Oct 2015 21:49:20 +0000 (+0100) Subject: ldns: New package X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d5ef2ba9efbe7d046409d612d5ed191b0646d77c;p=ipfire-3.x.git ldns: New package This is a low-level DNS(SEC) library that is used by many other packages to resolve and validate DNS records. Signed-off-by: Michael Tremer --- diff --git a/ldns/ldns.nm b/ldns/ldns.nm new file mode 100644 index 000000000..d79d48c08 --- /dev/null +++ b/ldns/ldns.nm @@ -0,0 +1,80 @@ +############################################################################### +# IPFire.org - An Open Source Firewall Solution # +# Copyright (C) - IPFire Development Team # +############################################################################### + +name = ldns +version = 1.6.17 +release = 1 + +groups = Networking/DNS +url = http://www.nlnetlabs.nl/projects/ldns/ +license = BSD +summary = Low-level DNS(SEC) library with API + +description + The flex program generates scanners. Scanners are programs which can + recognize lexical patterns in text. Flex takes pairs of regular + expressions and C code as input and generates a C source file as + output. The output file is compiled and linked with a library to + produce an executable. The executable searches through its input for + occurrences of the regular expressions. When a match is found, it + executes the corresponding C code. Flex was designed to work with + both Yacc and Bison, and is used by many programs as part of their + build process. +end + +source_dl = http://www.nlnetlabs.nl/downloads/%{name}/ + +build + requires + ca-certificates + doxygen + gcc-c++ + libpcap-devel + openssl-devel + end + + prepare_cmds + sed -i "s/@includedir@/@includedir@\/ldns/" \ + packaging/libldns.pc.in + end + + configure_options += \ + --enable-gost \ + --enable-ecdsa \ + --with-ca-file=/etc/pki/tls/certs/ca-bundle.trust.crt \ + --with-ca-path=/etc/pki/tls/certs/ \ + --with-trust-anchor=%{sharedstatedir}/unbound/root.key \ + --enable-rrtype-cds \ + --enable-rrtype-uri + + build_cmds + pushd drill + ./configure %{configure_options} + make %{PARALLELISMFLAGS} + popd + end + + install_cmds + install -D -m644 packaging/libldns.pc \ + %{BUILDROOT}%{libdir}/pkgconfig/ldns.pc + + make -C drill DESTDIR=%{BUILDROOT} install + end +end + +packages + package %{name} + + package %{name}-devel + template DEVEL + + files += %{bindir}/ldns-config + files += %{mandir}/man1/ldns-config.1* + end + + package %{name}-debuginfo + template DEBUGINFO + end +end diff --git a/ldns/patches/ldns-1.6.16-dsa-key-failures.patch b/ldns/patches/ldns-1.6.16-dsa-key-failures.patch new file mode 100644 index 000000000..93e8a73c8 --- /dev/null +++ b/ldns/patches/ldns-1.6.16-dsa-key-failures.patch @@ -0,0 +1,28 @@ +diff -up ldns-1.6.17/keys.c.dsa ldns-1.6.17/keys.c +--- ldns-1.6.17/keys.c.dsa 2014-01-10 22:04:41.000000000 +0100 ++++ ldns-1.6.17/keys.c 2014-03-18 17:54:34.751742493 +0100 +@@ -1324,7 +1324,6 @@ ldns_key_dsa2bin(unsigned char *data, DS + /* See RFC2536 */ + *size = (uint16_t)BN_num_bytes(k->p); + T = (*size - 64) / 8; +- memcpy(data, &T, 1); + + if (T > 8) { + #ifdef STDERR_MSGS +@@ -1335,12 +1334,13 @@ ldns_key_dsa2bin(unsigned char *data, DS + } + + /* size = 64 + (T * 8); */ ++ memset(data, 0, 21 + *size * 3); + data[0] = (unsigned char)T; + BN_bn2bin(k->q, data + 1 ); /* 20 octects */ + BN_bn2bin(k->p, data + 21 ); /* offset octects */ +- BN_bn2bin(k->g, data + 21 + *size); /* offset octets */ +- BN_bn2bin(k->pub_key, data + 21 + *size + *size); /* offset octets */ +- *size = 21 + (*size * 3); ++ BN_bn2bin(k->g, data + 21 + *size * 2 - BN_num_bytes(k->g)); ++ BN_bn2bin(k->pub_key,data + 21 + *size * 3 - BN_num_bytes(k->pub_key)); ++ *size = 21 + *size * 3; + return true; + } + diff --git a/ldns/patches/ldns-1.6.17-doxyparse-perl-5-22-fix.patch b/ldns/patches/ldns-1.6.17-doxyparse-perl-5-22-fix.patch new file mode 100644 index 000000000..2140ff5c0 --- /dev/null +++ b/ldns/patches/ldns-1.6.17-doxyparse-perl-5-22-fix.patch @@ -0,0 +1,13 @@ +diff --git a/doc/doxyparse.pl b/doc/doxyparse.pl +index 96a1732..745d564 100755 +--- a/doc/doxyparse.pl ++++ b/doc/doxyparse.pl +@@ -273,7 +273,7 @@ foreach (keys %manpages) { + + print MAN $MAN_MIDDLE; + +- if (defined(@$also)) { ++ if (@$also) { + print MAN "\n.SH SEE ALSO\n\\fI"; + print MAN join "\\fR, \\fI", @$also; + print MAN "\\fR.\nAnd "; diff --git a/ldns/patches/ldns-1.6.17-multilib.patch b/ldns/patches/ldns-1.6.17-multilib.patch new file mode 100644 index 000000000..5c7440a32 --- /dev/null +++ b/ldns/patches/ldns-1.6.17-multilib.patch @@ -0,0 +1,75 @@ +diff -Naur ldns-1.6.17-orig/configure ldns-1.6.17/configure +--- ldns-1.6.17-orig/configure 2014-01-10 16:04:50.000000000 -0500 ++++ ldns-1.6.17/configure 2014-01-10 20:22:39.138190093 -0500 +@@ -662,6 +662,7 @@ + PYTHON_LDFLAGS + PYTHON_CPPFLAGS + PYTHON ++PYTHON_LIB + PYTHON_VERSION + UNINSTALL_CONFIG_MANPAGE + UNINSTALL_CONFIG +@@ -13599,6 +13600,7 @@ + # use the official shared library + ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"` + PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library" ++ PYTHON_LIB="$ac_python_library" + else + # old way: use libpython from python_configdir + ac_python_libdir=`$PYTHON -c \ +@@ -13606,6 +13608,7 @@ + import os; \ + print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"` + PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version" ++ PYTHON_LIB="python$ac_python_version" + fi + + if test -z "PYTHON_LDFLAGS"; then +diff -Naur ldns-1.6.17-orig/packaging/ldns-config.in ldns-1.6.17/packaging/ldns-config.in +--- ldns-1.6.17-orig/packaging/ldns-config.in 2014-01-10 16:04:41.000000000 -0500 ++++ ldns-1.6.17/packaging/ldns-config.in 2014-01-10 20:33:13.033665804 -0500 +@@ -3,13 +3,25 @@ + prefix="@prefix@" + exec_prefix="@exec_prefix@" + VERSION="@PACKAGE_VERSION@" +-CFLAGS="@CFLAGS@" +-CPPFLAGS="@CPPFLAGS@ @LIBSSL_CPPFLAGS@ @PYTHON_CPPFLAGS@" +-LDFLAGS="@LDFLAGS@ @LIBSSL_LDFLAGS@ @PYTHON_LDFLAGS@" + LIBS="@LIBS@ @LIBSSL_LIBS@" +-LIBDIR="@libdir@" + INCLUDEDIR="@includedir@" + LIBVERSION="@LIBLDNS_CURRENT@.@LIBLDNS_REVISION@.@LIBLDNS_AGE@" ++ARCH="`uname -m`" ++ ++case $ARCH in ++ x86_64 | amd64 | sparc64 | s390x | ppc64) ++ ++ LIBDIR="/usr/lib64" ++ LIBDIR_SEC="/usr/lib" ++ ;; ++ * ) ++ LIBDIR="/usr/lib" ++ LIBDIR_SEC="/usr/lib64" ++ ;; ++esac ++ ++LDFLAGS="@LDFLAGS@ @LIBSSL_LDFLAGS@ -L$LIBDIR -l@PYTHON_LIB@" ++LDFLAGS_SEC="@LDFLAGS@ @LIBSSL_LDFLAGS@ -L$LIBDIR_SEC -l@PYTHON_LIB@" + + for arg in $@ + do +@@ -21,9 +33,13 @@ + then + echo "${LDFLAGS} -L${LIBDIR} ${LIBS} -lldns" + fi ++ if [ $arg = "--libs_sec" ] ++ then ++ echo "${LDFLAGS_SEC} -L${LIBDIR_SEC} ${LIBS} -lldns" ++ fi + if [ $arg = "-h" ] || [ $arg = "--help" ] + then +- echo "Usage: $0 [--cflags] [--libs] [--version]" ++ echo "Usage: $0 [--cflags] [--libs] [--libs_sec] [--version]" + fi + if [ $arg = "--version" ] + then