]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
meson: Optionally enable OpenSSL engines for DNSdist
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 21 Mar 2025 13:56:49 +0000 (14:56 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 25 Mar 2025 09:08:19 +0000 (10:08 +0100)
meson.build
meson/libssl-engines/meson.build [new file with mode: 0644]
meson/libssl/meson.build
pdns/dnsdistdist/meson.build
pdns/dnsdistdist/meson/libssl-engines/meson.build [new file with mode: 0644]
pdns/dnsdistdist/meson_options.txt
pdns/recursordist/meson.build

index 5011d8704849034cdf20a558ff28df922423bf95..bb7e8ead37fc5a9270a0dcbef9dc9ca6b9240933 100644 (file)
@@ -44,6 +44,7 @@ subdir('meson' / 'mmap')                    # Check for mmap
 subdir('meson' / 'libsodium')               # Libsodium-based signers
 subdir('meson' / 'libcrypto')               # OpenSSL-based signers
 subdir('meson' / 'libssl')                  # OpenSSL libssl
+subdir('meson' / 'libssl-engines')          # OpenSSL libssl engines
 subdir('meson' / 'gnutls')                  # GnuTLS
 subdir('meson' / 'dot')                     # DNS over TLS
 subdir('meson' / 'ipcipher')                # IPCipher
diff --git a/meson/libssl-engines/meson.build b/meson/libssl-engines/meson.build
new file mode 100644 (file)
index 0000000..401078d
--- /dev/null
@@ -0,0 +1,5 @@
+conf.set(
+  'OPENSSL_NO_ENGINE',
+  true,
+  description: 'Disable engine support in libssl.cc',
+)
index 06b63159993a1d57ff14f6ff30747f16411d00eb..725d955d2b671d69b78967fe9bf8416bd1bf68d7 100644 (file)
@@ -31,11 +31,6 @@ if dep_libssl.found()
     has,
     description: 'Have OpenSSL libssl SSL_CTX_set_min_proto_version',
   )
-  conf.set(
-    'OPENSSL_NO_ENGINE',
-    true,
-    description: 'Disable engine support for auth in libssl.cc',
-  )
 endif
 
 conf.set('HAVE_LIBSSL', dep_libssl.found(), description: 'OpenSSL libssl')
index 1db616bcd66eb8124f2c1d256c65b50baf7b5cc1..070aff8f0033c6b6864f8317b086b87c55647229 100644 (file)
@@ -53,6 +53,7 @@ subdir('meson' / 'libedit')                 # Libedit
 subdir('meson' / 'libsodium')               # Libsodium
 subdir('meson' / 'libcrypto')               # OpenSSL libcrypto
 subdir('meson' / 'libssl')                  # OpenSSL libssl
+subdir('meson' / 'libssl-engines')          # OpenSSL libssl engines
 subdir('meson' / 'libssl-providers')        # OpenSSL libssl providers
 subdir('meson' / 'libsnmp')                 # SNMP
 subdir('meson' / 'clock-gettime')           # Clock_gettime
diff --git a/pdns/dnsdistdist/meson/libssl-engines/meson.build b/pdns/dnsdistdist/meson/libssl-engines/meson.build
new file mode 100644 (file)
index 0000000..346aaeb
--- /dev/null
@@ -0,0 +1,13 @@
+opt_libssl_engines = get_option('tls-libssl-engines')
+
+if opt_libssl_engines
+  opt_libssl = get_option('tls-libssl')
+  if not opt_libssl.allowed()
+    error('OpenSSL TLS engines requested but libssl is not enabled')
+  endif
+
+  summary('OpenSSL libssl engines', true, bool_yn: true, section: 'Crypto')
+else
+  conf.set('OPENSSL_NO_ENGINE', true, description: 'OpenSSL libssl engines')
+  summary('OpenSSL libssl engines', false, bool_yn: true, section: 'Crypto')
+endif
index f5b35835a3aca55e38add86c5380719318c5ff36..d277eabe5eeb450c7b18174bc486ddd8dac063c2 100644 (file)
@@ -12,6 +12,7 @@ option('hardening-experimental-scp', type: 'feature', value: 'disabled', descrip
 option('hardening-fortify-source', type: 'combo', choices: ['auto', 'disabled', '1', '2', '3'], value: '2', description: 'Source fortification level')
 option('ipcipher', type: 'feature', value: 'auto', description: 'IPCipher')
 option('tls-libssl', type: 'feature', value: 'auto', description: 'OpenSSL-based TLS')
+option('tls-libssl-engines', type: 'boolean', value: false, description: 'OpenSSL-based TLS with TLS engines')
 option('tls-libssl-providers', type: 'boolean', value: false, description: 'OpenSSL-based TLS with TLS providers')
 option('dns-over-tls', type: 'feature', value: 'auto', description: 'DNS over TLS (requires GnuTLS or OpenSSL)')
 option('dns-over-https', type: 'feature', value: 'auto', description: 'DNS over HTTP/2 (requires GnuTLS or OpenSSL)')
index 8902622c3788b97f4fbfc0fbbf9dbcece61f0b34..40da702aa80eb14d1d00c3b53eeedef488edd528 100644 (file)
@@ -56,6 +56,7 @@ subdir('meson' / 'mmap')                    # Check for mmap
 subdir('meson' / 'libsodium')               # Libsodium-based signers
 subdir('meson' / 'libcrypto')               # OpenSSL-based signers
 subdir('meson' / 'libssl')                  # OpenSSL libssl
+subdir('meson' / 'libssl-engines')          # OpenSSL libssl engines
 subdir('meson' / 'libsnmp')                 # SNMP
 subdir('meson' / 'dot')                     # DNS over TLS
 subdir('meson' / 'clock-gettime')           # Clock_gettime