djbdns: fix root server list at build time

as suggested by @peterhoeg in
1b7e5eaa79 (commitcomment-24560631)

fixes #30379
This commit is contained in:
Matt McHenry 2017-10-12 22:33:17 -04:00 committed by Joerg Thalheim
parent 6ec6af4625
commit bbec429f7a
2 changed files with 10 additions and 5 deletions

View File

@ -18,10 +18,13 @@ let
'') ips}
'') cfg.domainServers)}
# djbdns contains an outdated list of root servers;
# if one was not provided in config, provide a current list
if [ ! -e servers/@ ]; then
awk '/^.?.ROOT-SERVERS.NET/ { print $4 }' ${pkgs.dns-root-data}/root.hints > $out/servers/@
# if a list of root servers was not provided in config, copy it
# over. (this is also done by dnscache-conf, but we 'rm -rf
# /var/lib/dnscache/root' below & replace it wholesale with this,
# so we have to ensure servers/@ exists ourselves.)
if [ ! -e $out/servers/@ ]; then
# symlink does not work here, due chroot
cp ${pkgs.djbdns}/etc/dnsroots.global $out/servers/@;
fi
'';

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, glibc } :
{ stdenv, fetchurl, glibc, dns-root-data } :
let
version = "1.05";
@ -23,6 +23,8 @@ stdenv.mkDerivation {
postPatch = ''
echo gcc -O2 -include ${glibc.dev}/include/errno.h > conf-cc
echo $out > conf-home
# djbdns ships with an outdated list of root servers
awk '/^.?.ROOT-SERVERS.NET/ { print $4 }' ${dns-root-data}/root.hints > dnsroots.global
sed -i "s|/etc/dnsroots.global|$out/etc/dnsroots.global|" dnscache-conf.c
'';