2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 14:35:26 +00:00

Deduplicate text between Building BIND 9 / Supported Platforms in the ARM

Supported Platforms section is now really only about platforms and not
libraries. Libraries were moved to the Building BIND section.

We now have section for required libraries, and second with optional
features.  Wordy explanations were taken verbatim from the original
README.md.
This commit is contained in:
Petr Špaček
2022-01-19 16:37:04 +01:00
committed by Michał Kępień
parent 933ed9d537
commit 2c81fa9013
2 changed files with 35 additions and 64 deletions

View File

@@ -12,21 +12,6 @@
Building BIND 9
---------------
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, 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/Oracle Linux, Fedora, Debian, Ubuntu, SLES,
openSUSE, Slackware, Alpine, FreeBSD, NetBSD, OpenBSD, macOS, Solaris,
OpenIndiana, OmniOS CE, HP-UX, and OpenWRT.
To build on a Unix or Linux system, use:
::
@@ -70,37 +55,42 @@ https://developer.apple.com/download/more/ or, if you have Xcode already
installed, you can run ``xcode-select --install``. (Note that an Apple
ID may be required to access the download page.)
Dependencies
~~~~~~~~~~~~
.. _build_dependencies:
Required libraries
~~~~~~~~~~~~~~~~~~
To build BIND you need to have the following packages installed:
::
- ``libuv`` for asynchronous I/O operations and event loops
- ``libssl`` and ``libcrypto`` from OpenSSL for cryptography
- ``pkg-config / pkgconfig / pkgconf`` for build system support
libuv
pkg-config / pkgconfig / pkgconf
BIND 9.19 requires a fairly recent version of ``libuv`` (at least 1.x).
For some older systems, you will have to install an updated ``libuv``
package from sources such as EPEL, PPA, or other native sources for updated
packages. The other option is to build and install ``libuv`` from source.
OpenSSL 1.0.2e or newer is required.
If the OpenSSL library is installed in a nonstandard location,
specify the prefix using ``--with-openssl=<PREFIX>`` on the
configure command line. To use a PKCS#11 hardware service module for
cryptographic operations, it will be necessary to compile and use
engine_pkcs11 from the OpenSC project.
To build BIND from the git repository, you need the following tools
installed:
::
- ``autoconf`` (includes autoreconf)
- ``automake``
- ``libtool``
autoconf (includes autoreconf)
automake
libtool
Compile-time options
~~~~~~~~~~~~~~~~~~~~
Optional features
~~~~~~~~~~~~~~~~~
To see a full list of configuration options, run ``configure --help``.
For the server to support DNSSEC, you need to build it with crypto
support. To use OpenSSL, you must have OpenSSL 1.0.2e or newer
installed. If the OpenSSL library is installed in a nonstandard
location, specify the prefix using ``--with-openssl=<PREFIX>`` on the
configure command line. To use a PKCS#11 hardware service module for
cryptographic operations, it will be necessary to compile and use
engine_pkcs11 from the OpenSC project.
To improve performance, ``libjemalloc`` library is strongly recommended.
To support DNS over HTTPS, the server must be linked with
``libnghttp2``.
@@ -133,6 +123,13 @@ https://github.com/farsightsec/fstrm and ``libprotobuf-c``
https://developers.google.com/protocol-buffers, and BIND must be
configured with ``--enable-dnstap``.
To support internationalized domain names in ``dig``, you must have installed
``libidn2``. If the library is installed in a nonstandard location, specify
the prefix using ``--with-libidn2=/prefix`` or adjust ``PKG_CONFIG_PATH``.
For line editing in ``nsupdate`` and ``nslookup``, you must have installed
``readline`` library.
Certain compiled-in constants and default settings can be decreased to
values better suited to small machines, e.g. OpenWRT boxes, by
specifying ``--with-tuning=small`` on the ``configure`` command line.

View File

@@ -11,7 +11,7 @@
.. _supported_os:
Supported platforms
Supported Platforms
-------------------
Current support status of various platforms and BIND 9 versions can be
@@ -21,16 +21,8 @@ https://kb.isc.org/docs/supported-platforms
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, and POSIX-compliant threads,
plus the following mandatory libraries:
- ``libuv`` for asynchronous I/O operations and event loops
- ``libssl`` and ``libcrypto`` from OpenSSL for cryptography
Use of the following libraries is optional:
- ``libjemalloc`` for improved memory allocation performance
- ``libnghttp2`` for DNS-over-HTTPS (DoH) support
sockets with RFC-compliant IPv6 support, POSIX-compliant threads, and
the :ref:`required libraries <build_dependencies>`.
The following C11 features are used in BIND 9:
@@ -43,24 +35,6 @@ The following C11 features are used in BIND 9:
The C11 variants are preferred.
BIND 9.19 requires a fairly recent version of ``libuv`` (at least 1.x).
For some of the older systems listed below, you will have to install an
updated ``libuv`` package from sources such as EPEL, PPA, or other
native sources for updated packages. The other option is to build and
install ``libuv`` from source.
Certain optional BIND features have additional library dependencies.
These include:
- ``libfstrm`` and ``libprotobuf-c`` for DNSTAP
- ``libidn2`` for display of internationalized domain names in ``dig``
- ``libjson-c`` for JSON statistics
- ``libmaxminddb`` for geolocation
- ``libnghttp2`` for DNS over HTTPS
- ``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 offer support on a “best effort” basis for some.
@@ -121,7 +95,7 @@ supported platforms.
- Debian Jessie
- FreeBSD 10.x, 11.x
Unsupported platforms
Unsupported Platforms
---------------------
These are platforms on which BIND 9.19 is known *not* to build or run: