In general, this version of BIND will build and run on any POSIX-compliant
system with a C11-compliant C compiler, BSD-style sockets with RFC-compliant
-IPv6 support, POSIX-compliant threads, the `libuv` asynchronous I/O library,
-the OpenSSL cryptography library, and the `nghttp2` HTTP/2 library.
+IPv6 support, and POSIX-compliant threads, plus the following mandatory
+libraries:
+
+- `libuv` for asynchronous I/O operations and event loops
+- `libssl` and `libcrpyto` from OpenSSL for cryptography
+- `libjemalloc` for memory allocation
+- `libnghttp2` for HTTP/2
The following C11 features are used in BIND 9:
updated packages. The other option is to build and install `libuv` from
source.
-Certain optional BIND features have additional library dependencies:
+Certain optional BIND features have additional library dependencies.
+These include:
* `libfstrm` and `libprotobuf-c` for DNSTAP
-* `libidn2` for internationalized domain name conversion.
+* `libidn2` for display of internationalized domain names in `dig`
+* `libjson-c` for JSON statistics
* `libmaxminddb` for geolocation
* `libnghttp2` for DNS over HTTPS
-* `libxml2` and `libjson-c` for statistics channel
+* `libxml2` for XML statistics
+* `libz` for compression of the HTTP statistics channel
+* `readline` for line editing in `nsupdate` and `nslookup`
ISC regularly tests BIND on many operating systems and architectures, but
lacks the resources to test all of them. Consequently, ISC is only able to
At a minimum, BIND requires a Unix or Linux system with an ANSI C compiler,
basic POSIX support, and a 64-bit integer type. BIND also requires the
-`libuv` asynchronous I/O library, the `nghttp2` HTTP/2 library, and a
-cryptography provider library such as OpenSSL or a hardware service
-module supporting PKCS#11. On Linux, BIND requires the `libcap` library
-to set process privileges, though this requirement can be overridden by
-disabling capability support at compile time. See [Compile-time
-options](#opts) below for details on other libraries that may be
-required to support optional features.
+`libuv` asynchronous I/O library, the `nghttp2` HTTP/2 library, the
+`jemalloc` memory allocation library, and the OpenSSL cryptography
+library. On Linux, BIND requires the `libcap` library to set process
+privileges, though this requirement can be overridden by disabling
+capability support at compile time. See [Compile-time options](#opts)
+below for details on other libraries that may be required to support
+optional features.
Successful builds have been observed on many versions of Linux and
Unix, including RHEL/CentOS, Fedora, Debian, Ubuntu, SLES, openSUSE,