bind9/meson.options
Ondřej Surý 7f8b972a3d
Remove NZF support, make LMDB required for new zone storage
Drop the NZF (New Zone File) fallback for persisting runtime zone
configurations, making LMDB (NZD) the only storage backend. This
removes all #ifdef HAVE_LMDB conditionals, the meson 'lmdb' option,
and the NZF-related functions. LMDB is now a mandatory build
dependency.

The named-nzd2nzf tool is now always built.
2026-03-18 11:02:33 +01:00

198 lines
4 KiB
Text

# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
# Features
option(
'doc',
type: 'feature',
value: 'auto',
description: 'Enable sphinx-based documentation generation',
)
option(
'dnstap',
type: 'feature',
value: 'auto',
description: 'Enable dnstap packet logging, requires fstrm and protobuf-c',
)
option(
'doh',
type: 'feature',
value: 'auto',
description: 'Enable DNS over HTTPS, requires libnghttp2',
)
option(
'fips',
type: 'feature',
value: 'disabled',
description: 'Enable FIPS mode toggle',
)
option(
'geoip',
type: 'feature',
value: 'auto',
description: 'Enable GeoIP support, requires libmaxminddb',
)
option(
'gssapi',
type: 'feature',
value: 'auto',
description: 'Enable GSSAPI support, requires krb5 and gssapi',
)
option(
'idn',
type: 'feature',
value: 'auto',
description: 'Enable IDN support, requires libidn2',
)
option(
'line',
type: 'feature',
value: 'auto',
description: 'Enable line editing in nsupdate and nslookup, requires libedit',
)
option(
'stats-json',
type: 'feature',
value: 'auto',
description: 'Enable JSON statistics, requires json-c',
)
option(
'stats-xml',
type: 'feature',
value: 'auto',
description: 'Enable XML statistics, requires libxml2',
)
option(
'zlib',
type: 'feature',
value: 'auto',
description: 'Enable HTTP zlib compression, requires zlib',
)
# Internals
option(
'cachedb',
type: 'combo',
choices: ['qpcache'],
description: 'Default cache database type',
)
option(
'zonedb',
type: 'combo',
choices: ['qpzone'],
description: 'Default zone database type',
)
option(
'locktype',
type: 'combo',
choices: ['adaptive', 'system'],
description: 'Mutex lock type',
)
option(
'jemalloc',
type: 'feature',
value: 'auto',
description: 'Use jemalloc for allocation',
)
option(
'rcu-flavor',
type: 'combo',
choices: ['membarrier', 'bp', 'mb', 'qsbr'],
description: 'Userspace RCU Flavor (non-membarrier RCU is only allowed in development builds)',
)
option(
'tracing',
type: 'feature',
value: 'auto',
description: 'Enable User Statically Defined Tracing support, requires dtrace or systemtap',
)
# Behavior
option(
'auto-validation',
type: 'feature',
value: 'enabled',
description: 'Turn on DNSSEC validation by default, using the IANA root key',
)
# Development
option(
'developer',
type: 'feature',
value: 'disabled',
description: 'Enable development mode',
)
option(
'cmocka',
type: 'feature',
value: 'auto',
description: 'Enable cmocka based tests',
)
option(
'fuzzing',
type: 'feature',
value: 'auto',
description: 'Build fuzzing binaries',
)
option(
'fuzzing-backend',
type: 'combo',
choices: ['none', 'afl', 'libfuzzer', 'oss-fuzz'],
value: 'none',
description: 'Fuzzing backend (backend none with -Dfuzzing=enabled only compiles the binary)',
)
option(
'oss-fuzz-args',
type: 'string',
description: 'Fuzzing linking arguments for OSS-Fuzz',
)
option(
'trace-logging',
type: 'array',
value: [],
choices: ['query', 'single'],
description: 'Enable very verbose (single-)query trace logging',
)
option(
'leak-detection',
type: 'feature',
value: 'disabled',
description: 'enable the memory leak detection in external libraries (libxml2, libuv, OpenSSL)',
)
option(
'named-lto',
type: 'combo',
choices: ['disabled', 'auto', 'thin', 'full'],
value: 'auto',
description: 'Enable Link Time Optimization for named.',
)