-Debpf=enabled \
-Dyaml=enabled \
-Dtls-gnutls=enabled \
- -Dsnmp=true \
+ -Dsnmp=enabled \
-Dlibcap=enabled \
-Dlibsodium=enabled \
-Dquiche=enabled \
-Debpf=enabled \
-Dyaml=enabled \
-Dtls-gnutls=enabled \
- -Dsnmp=true \
+ -Dsnmp=enabled \
-Dlibcap=enabled \
-Dlibsodium=enabled \
-Dquiche=enabled \
-Debpf=enabled \
-Dyaml=enabled \
-Dtls-gnutls=enabled \
- -Dsnmp=true \
+ -Dsnmp=enabled \
-Dlibcap=enabled \
-Dlibsodium=enabled \
-Dquiche=enabled \
-Ddns-over-tls=true \
%if 0%{?suse_version}
-Ddnscrypt=disabled \
- -Dsnmp=false \
+ -Dsnmp=disabled \
%else
-Ddnscrypt=enabled \
- -Dsnmp=true \
+ -Dsnmp=enabled \
%endif
-Ddnstap=enabled \
-Ddns-over-https=true \
opt_libsnmp = get_option('snmp')
-
dep_libsnmp = dependency('', required: false)
-if opt_libsnmp
- snmp_config = find_program('net-snmp-config', required: true)
- snmp_ldflags_res = run_command(snmp_config, '--netsnmp-agent-libs', check: true)
- snmp_ldflags = snmp_ldflags_res.stdout().strip().split()
+if opt_libsnmp.allowed()
+ snmp_config = find_program('net-snmp-config', required: opt_libsnmp)
+ if snmp_config.found()
+ snmp_ldflags_res = run_command(snmp_config, '--netsnmp-agent-libs', check: false)
+ if snmp_ldflags_res.returncode() == 0
+ snmp_ldflags = snmp_ldflags_res.stdout().strip().split()
- dep_libsnmp = declare_dependency(
- link_args: snmp_ldflags,
- )
+ dep_libsnmp = declare_dependency(
+ link_args: snmp_ldflags,
+ )
- if dep_libsnmp.found()
- funcs = [
- 'snmp_select_info2',
- ]
+ if dep_libsnmp.found()
+ funcs = [
+ 'snmp_select_info2',
+ ]
- foreach func: funcs
+ foreach func: funcs
define = 'HAVE_' + func.to_upper()
have_func = cxx.has_function(func, dependencies: dep_libsnmp, prefix: '''#include <net-snmp/net-snmp-config.h>
#include <net-snmp/definitions.h>
#include <net-snmp/config_api.h>
#include <net-snmp/session_api.h>''')
conf.set(define, have_func, description: 'Have libsnmp ' + func)
- endforeach
+ endforeach
+ endif
+ endif
endif
endif
+if opt_libsnmp.enabled() and not dep_libsnmp.found()
+ error('SNMP support enabled but not available')
+endif
+
conf.set('HAVE_NET_SNMP', dep_libsnmp.found(), description: 'libsnmp')
summary('SNMP', dep_libsnmp.found(), bool_yn: true, section: 'Configuration')
option('systemd-service-user', type: 'string', value: 'dnsdist', description: 'Systemd service user (setuid and unit file; user is not created)')
option('systemd-service-group', type: 'string', value: 'dnsdist', description: 'Systemd service group (setgid and unit file; group is not created)')
option('auto-var-init', type: 'combo', value: 'disabled', choices: ['zero', 'pattern', 'disabled'], description: 'Enable initialization of automatic variables')
-option('snmp', type: 'boolean', value: false, description: 'Enable SNMP')
+option('snmp', type: 'feature', value: 'disabled', description: 'Enable SNMP')
option('dnstap', type: 'feature', value: 'auto', description: 'Enable DNSTAP support through libfstrm')
option('h2o', type: 'feature', value: 'disabled', description: 'Enable H2O library with event loop support for DNS over HTTP/2')
option('nghttp2', type: 'feature', value: 'auto', description: 'Enable nghttp2 library support for DNS over HTTP/2')
option('auto-var-init', type: 'combo', value: 'disabled', choices: ['zero', 'pattern', 'disabled'], description: 'Enable initialization of automatic variables')
option('malloc-trace', type: 'boolean', value: false, description: 'Enable malloc-trace')
option('socket-dir', type: 'string', value: '/var/run', description: 'Where the control socket lives')
-option('snmp', type: 'boolean', value: false, description: 'Enable SNMP')
+option('snmp', type: 'feature', value: 'disabled', description: 'Enable SNMP')
option('dnstap', type: 'feature', value: 'auto', description: 'Enable DNSTAP support through libfstrm')
option('libcurl', type: 'feature', value: 'auto', description: 'Enable Curl support')
option('nod', type: 'boolean', value: true, description: 'Enable Newly Observed Domains')
"-D nod=true",
"-D libcap=enabled",
"-D lua=luajit",
- "-D snmp=true",
+ "-D snmp=enabled",
unittests,
])
else:
"-D libcap=disabled",
"-D libcurl=disabled",
"-D signers-libsodium=disabled",
- "-D snmp=false",
+ "-D snmp=disabled",
unittests,
])
res = c.run(configure_cmd, warn=True)
-D dns-over-quic=true \
-D dns-over-tls=true \
-D reproducible=true \
- -D snmp=true'
+ -D snmp=enabled'
else:
features_set = '-D cdb=disabled \
-D dnscrypt=disabled \
-D dns-over-quic=false \
-D dns-over-tls=false \
-D reproducible=false \
- -D snmp=false'
+ -D snmp=disabled'
unittests = get_unit_tests(meson=True)
fuzztargets = get_fuzzing_targets(meson=True)
tools = f'''AR=llvm-ar-{clang_version} RANLIB=llvm-ranlib-{clang_version}''' if is_compiler_clang() else ''