fix: populate ldns submodule and add autotools to LDNS build stage

- Re-cloned zonemaster-ldns with --recurse-submodules so the bundled
  ldns C library source (including Changelog and configure.ac) is present
- Added autoconf, automake, libtool to Dockerfile.backend ldns-build stage
  so libtoolize + autoreconf can generate ldns/configure during make

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-21 08:33:38 +02:00
parent 8d4eaa1489
commit eaaa8f6a11
541 changed files with 138189 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
export PATH=$PATH:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin:.
# first arg is the build dir
TPKG_BUILD=$1
HERE=`pwd`
export LD_LIBRARY_PATH=$TPKG_BUILD/.libs:$HERE
# .so.2 should be backwards compatible with .so.1 for unbound
ln -s $TPKG_BUILD/.libs/libldns.so.2 libldns.so.1
if [ -z "$UNBOUND_BUILD" -o ! -d "$UNBOUND_BUILD" ]
then
while true
do
UNBOUND_BUILD=`ls -1d $HOME/src/unbound-[0-9]*.[0-9]*.[0-9]* \
| tail -1`
test -d "$UNBOUND_BUILD" && break
UNBOUND_BUILD=`ls -1d $HOME/src/unbound-[0-9]*.[0-9]*.[0-9]* \
| tail -1`
test -d "$UNBOUND_BUILD" && break
echo "ERROR: Did not find already compiled unbound"
exit 1
done
fi
if [ -z "$TPKG" -o ! -x "$TPKG" ]
then
if which tpkg > /dev/null ; then TPKG=`which tpkg`
elif [ -x $HOME/bin/tpkg ] ; then TPKG=$HOME/bin/tpkg
elif [ -x $HOME/local/bin/tpkg ]; then TPKG=$HOME/local/bin/tpkg
elif [ -x /home/tpkg/bin/tpkg ] ; then TPKG=/home/tpkg/bin/tpkg
else
echo "ERROR: Did not find tpkg program"
exit 1
fi
fi
LDNS_VERSION=`/bin/sh $TPKG_BUILD/packaging/ldns-config --version`
if test ! -d testdata
then
(cd $UNBOUND_BUILD ; tar cf - `find . -type f ! -path "*/.svn" ! -path "*/.svn/*"`) | tar xf -
ln -s libunbound.so.4 .libs/libunbound.so || true
fi
get_lo0_ip4() {
if test -x /sbin/ifconfig
then
LO0_IP4=`/sbin/ifconfig lo0 | grep '[^0-9]127\.' | sed -e 's/^[^1]*\(127\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[^0-9]*.*$/\1/g'`
if ( echo $LO0_IP4 | grep '^127\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' > /dev/null )
then
return
fi
fi
LO0_IP4=127.0.0.1
}
get_lo0_ip4
export LO0_IP4
if test "x$LO0_IP4" = "x127.0.0.1"
then
ALT_LOOPBACK=false
else
ALT_LOOPBACK=true
fi
HERE=`pwd`
if $HERE/unbound -h | grep -q " ldns $LDNS_VERSION,"
then
for t in `(cd $HERE/testdata; ls -1 *.tpkg|grep -v '^0[016]')`
do
if ! $ALT_LOOPBACK
then
$TPKG -b $HERE/testdata -a $HERE exe $t
continue
fi
# We have alternative 127.0.0.1 number
if ( echo $t | grep '6\.tpkg$' ) # skip IPv6 tests
then
continue
elif test "$t" = "edns_cache.tpkg" # This one is IPv6 too!
then
continue
fi
cp -p "testdata/$t" "testdata/$t.bak"
"$TPKG" -b "$HERE/testdata" e "$t"
find "$HERE/testdata/${t%.tpkg}.dir" -type f \
-exec grep -q '127\.0\.0\.1' {} \; -print | {
while read f
do
sed "s/127\.0\.0\.1/${LO0_IP4}/g" "$f" > "$f._"
mv "$f._" "$f"
done
}
find "$HERE/testdata/${t%.tpkg}.dir" -type d \
-name "127.0.0.1" -print | {
while read d
do
mv -v "$d" "${d%127.0.0.1}${LO0_IP4}"
done
}
"$TPKG" -b "$HERE/testdata" c "$t"
rm -fr "testdata/${t%.tpkg}.dir"
"$TPKG" -b "$HERE/testdata" -a "$HERE" exe "$t"
mv "testdata/$t.bak" "testdata/$t"
done
if ( cd testdata; $TPKG -q -n `ls result.*|wc -l` report >/dev/null )
then
echo "All unbound tests successfully with ldns $LDNS_VERSION"
exit 0
else
echo "ERROR: Some unbound tests failed with ldns $LDNS_VERSION"
$TPKG -b $HERE/testdata -a $HERE r
fi
else
echo "ERROR: Unbound did not dynamically load our ldns $LDNS_VERSION"
fi
exit 1