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 <michael.tremer@ipfire.org>
This commit is contained in:
Michael Tremer 2015-10-18 22:49:20 +01:00
parent 23621ada01
commit d5ef2ba9ef
4 changed files with 196 additions and 0 deletions

80
ldns/ldns.nm Normal file
View File

@ -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

View File

@ -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;
}

View File

@ -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 ";

View File

@ -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