--- /dev/null
+###############################################################################
+# IPFire.org - An Open Source Firewall Solution #
+# Copyright (C) - IPFire Development Team <info@ipfire.org> #
+###############################################################################
+
+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
--- /dev/null
+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;
+ }
+
--- /dev/null
+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 ";
--- /dev/null
+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