]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
meson: add build options to disable libcapng
authorTomas Krizek <tomas.krizek@nic.cz>
Fri, 19 Jun 2020 10:33:40 +0000 (12:33 +0200)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Fri, 3 Jul 2020 14:50:55 +0000 (16:50 +0200)
meson.build
meson_options.txt

index a778bc7c99413efd7e89e76f4e670499427d9932..0d0e33bd8e06512c51d5517cbc82e8f66d2842aa 100644 (file)
@@ -86,12 +86,16 @@ group = get_option('group')
 
 ## Optional dependencies
 message('--- optional dependencies ---')
-capng = dependency('libcap-ng', required: false)
 openssl = dependency('openssl', required: false)
 
 have_asprintf = meson.get_compiler('c').has_function('asprintf',
   prefix: '#define _GNU_SOURCE\n#include <stdio.h>')
 
+### capng
+# use empty name to disable the dependency, but still compile the dependent kresd
+capng_name = get_option('capng') == 'disabled' ? '' : 'libcap-ng'
+capng = dependency(capng_name, required: get_option('capng') == 'enabled')
+
 ### sendmmsg
 has_sendmmsg = meson.get_compiler('c').has_function('sendmmsg',
   prefix: '#define _GNU_SOURCE\n#include <sys/socket.h>')
@@ -280,6 +284,7 @@ s_build_extra_tests = build_extra_tests ? 'enabled' : 'disabled'
 s_install_kresd_conf = install_kresd_conf ? 'enabled' : 'disabled'
 s_sendmmsg = sendmmsg ? 'enabled': 'disabled'
 s_openssl = openssl.found() ? 'present': 'missing'
+s_capng = capng.found() ? 'enabled': 'disabled'
 message('''
 
 ======================= SUMMARY =======================
@@ -315,6 +320,7 @@ message('''
     install_kresd_conf: @0@'''.format(s_install_kresd_conf) + '''
     sendmmsg:           @0@'''.format(s_sendmmsg) + '''
     openssl debug:      @0@'''.format(s_openssl) + '''
+    capng:              @0@'''.format(s_capng) + '''
 
 =======================================================
 
index 4c2a8a6d3350274503ecfbc5f4e26342ba93ec13..f7ca06aabdca3fda2aff1ed43a52859137b3c96f 100644 (file)
@@ -89,6 +89,18 @@ option(
   description: 'use sendmmsg syscall towards clients',
 )
 
+option(
+  'capng',
+  type: 'combo',
+  choices: [
+    'auto',
+    'enabled',
+    'disabled',
+  ],
+  value: 'auto',
+  description: 'use libcapng to drop capabilities for non-root users',
+)
+
 ## Systemd
 option(
   'systemd_files',