This commit converts the license handling to adhere to the REUSE specification. It specifically: 1. Adds used licnses to LICENSES/ directory 2. Add "isc" template for adding the copyright boilerplate 3. Changes all source files to include copyright and SPDX license header, this includes all the C sources, documentation, zone files, configuration files. There are notes in the doc/dev/copyrights file on how to add correct headers to the new files. 4. Handle the rest that can't be modified via .reuse/dep5 file. The binary (or otherwise unmodifiable) files could have license places next to them in <foo>.license file, but this would lead to cluttered repository and most of the files handled in the .reuse/dep5 file are system test files.
4.1 KiB
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 loopslibssl
andlibcrypto
from OpenSSL for cryptography
Use of the following libraries is optional:
libjemalloc
for improved memory allocation performancelibnghttp2
for DNS-over-HTTPS (DoH) support
The following C11 features are used in BIND 9:
-
Atomic operations support, either in the form of C11 atomics or
__atomic
builtin operations. -
Thread Local Storage support, either in the form of C11
_Thread_local
/thread_local
, or the__thread
GCC extension.
The C11 variants are preferred.
BIND 9.17 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
andlibprotobuf-c
for DNSTAPlibidn2
for display of internationalized domain names indig
libjson-c
for JSON statisticslibmaxminddb
for geolocationlibnghttp2
for DNS over HTTPSlibxml2
for XML statisticslibz
for compression of the HTTP statistics channelreadline
for line editing innsupdate
andnslookup
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.
Regularly tested platforms
As of Dec 2021, BIND 9.17 is fully supported and regularly tested on the following systems:
- Debian 9, 10, 11
- Ubuntu LTS 18.04, 20.04
- Fedora 35
- Red Hat Enterprise Linux / CentOS / Oracle Linux 7, 8
- FreeBSD 12.3, 13.0
- OpenBSD 7.0
- Alpine Linux 3.15
The amd64, i386, armhf and arm64 CPU architectures are all fully supported.
Best effort
The following are platforms on which BIND is known to build and run. ISC makes every effort to fix bugs on these platforms, but may be unable to do so quickly due to lack of hardware, less familiarity on the part of engineering staff, and other constraints. None of these are tested regularly by ISC.
- macOS 10.12+
- Solaris 11
- NetBSD
- Other Linux distributions still supported by their vendors, such as:
- Ubuntu 20.10+
- Gentoo
- Arch Linux
- OpenWRT/LEDE 17.01+
- Other CPU architectures (mips, mipsel, sparc, ...)
Community maintained
These systems may not all have the required dependencies for building BIND easily available, although it will be possible in many cases to compile those directly from source. The community and interested parties may wish to help with maintenance, and we welcome patch contributions, although we cannot guarantee that we will accept them. All contributions will be assessed against the risk of adverse effect on officially supported platforms.
- Platforms past or close to their respective EOL dates, such as:
- Ubuntu 14.04, 16.04 (Ubuntu ESM releases are not supported)
- CentOS 6
- Debian Jessie
- FreeBSD 10.x, 11.x
Unsupported platforms
These are platforms on which BIND 9.17 is known not to build or run:
- Platforms without at least OpenSSL 1.0.2
- Windows
- Solaris 10 and older
- Platforms that don't support IPv6 Advanced Socket API (RFC 3542)
- Platforms that don't support atomic operations (via compiler or library)
- Linux without NPTL (Native POSIX Thread Library)
- Platforms on which
libuv
cannot be compiled