As on macOS Sierra and Xcode 9.0 the SDK libxml2
depends on a High Sierra (i.e. the next version)
system library I tried to configure bind9 without
libxml2, exactly:
./configure --without-gssapi --with-openssl=/usr/local/opt/openssl --enable-full-report --enable-developer --without-libxml2 --disable-atomic
with for the (full) report:
===============================================================================
Configuration summary:
-------------------------------------------------------------------------------
Optional features enabled:
Multiprocessing support (--enable-threads)
Mutex lock type: adaptive
Algorithm: aes
IPv6 support (--enable-ipv6)
OpenSSL cryptography/DNSSEC (--with-openssl)
Crypto provider entropy source (--enable-crypto-rand)
Python tools (--with-python)
JSON statistics (--with-libjson)
HTTP zlib compression (--with-zlib)
LMDB database to store configuration for 'addzone' zones (--with-lmdb)
GOST algorithm support (encoding: raw) (--with-gost)
ECDSA algorithm support (--with-ecdsa)
Allow 'fixed' rrset-order (--enable-fixed-rrset)
AAAA filtering (--enable-filter-aaaa)
Print backtrace on crash (--enable-backtrace)
Use symbol table for backtrace, all binaries (--enable-symtable=all)
Very verbose query trace logging (--enable-querytrace)
Automated Testing Framework (--with-atf)
Cryptographic library for DNSSEC: openssl
Dynamically loadable zone (DLZ) drivers:
Filesystem (--with-dlz-filesystem)
Features disabled or unavailable on this platform:
Large-system tuning (--with-tuning)
Allow 'dnstap' packet logging (--enable-dnstap)
GeoIP access control (--with-geoip)
GSS-API (--with-gssapi)
DNS Response Policy Service interface (--enable-dnsrps)
PKCS#11/Cryptoki support (--with-pkcs11)
Native PKCS#11/Cryptoki support (--enable-native-pkcs11)
EDDSA algorithm support (--with-eddsa)
Use libseccomp system call filtering (--enable-seccomp)
Use GNU libtool (--with-libtool)
XML statistics (--with-libxml2)
===============================================================================
now a make test fails on statschannel:
S:statschannel:Wed Sep 27 17:42:49 CEST 2017
T:statschannel:1:A
A:System test statschannel
I:XML was not configured; skipping
I:fetching traffic size data (1)
I:... using json
I:fetching traffic size data after small UDP query (2)
I:... using json
I:fetching traffic size data after large UDP query (4)
I:... using json
I:fetching traffic size data after small TCP query (5)
I:... using json
I:fetching traffic size data after large TCP query (6)
I:... using json
I:checking consistency between named.stats and xml/json (7)
I:checking malloced memory statistics xml/json (8)
I:checking consistency between regular and compressed output (9)
I: failed
I:checking if compressed output is really compressed (10)
I:exit status: 1
R:FAIL
E:statschannel:Wed Sep 27 17:42:54 CEST 2017
IMHO in:
ret=0
echo "I:checking consistency between regular and compressed output ($n)"
if [ "$HAVEXMLSTATS" ];
then
URL=http://10.53.0.2:8853/xml/v3/server
else
URL=http://10.53.0.2:8853/json/v1/server
fi
$CURL -D regular.headers $URL 2>/dev/null | \
sed -e "s#.*##g" > regular.out
$CURL -D compressed.headers --compressed $URL 2>/dev/null | \
sed -e "s#.*##g" > compressed.out
diff regular.out compressed.out >/dev/null || ret=1
if [ $ret != 0 ]; then echo "I: failed"; fi
status=`expr $status + $ret`
n=`expr $n + 1`
the sed works only for XML, not JSON.