]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
ldns: New package
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 18 Oct 2015 21:49:20 +0000 (22:49 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 18 Oct 2015 21:52:14 +0000 (22:52 +0100)
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 <michael.tremer@ipfire.org>
ldns/ldns.nm [new file with mode: 0644]
ldns/patches/ldns-1.6.16-dsa-key-failures.patch [new file with mode: 0644]
ldns/patches/ldns-1.6.17-doxyparse-perl-5-22-fix.patch [new file with mode: 0644]
ldns/patches/ldns-1.6.17-multilib.patch [new file with mode: 0644]

diff --git a/ldns/ldns.nm b/ldns/ldns.nm
new file mode 100644 (file)
index 0000000..d79d48c
--- /dev/null
@@ -0,0 +1,80 @@
+###############################################################################
+# 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
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 (file)
index 0000000..93e8a73
--- /dev/null
@@ -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 (file)
index 0000000..2140ff5
--- /dev/null
@@ -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 (file)
index 0000000..5c7440a
--- /dev/null
@@ -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