]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
meson: Rewrite polkit check
authorAndrea Bolognani <abologna@redhat.com>
Tue, 25 May 2021 16:14:09 +0000 (18:14 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Tue, 1 Jun 2021 12:30:39 +0000 (14:30 +0200)
The new version will report an error if the user asks for
polkit support to be enabled on Windows instead of silently
ignoring such requests.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
meson.build

index 737b684ade9d724267bb1bc02298e8daa368c71b..50df9a2e729a8645adf36e3f077c86fdcc13a0d6 100644 (file)
@@ -1085,12 +1085,6 @@ parallels_sdk_dep = dependency('parallels-sdk', version: '>=' + parallels_sdk_ve
 pciaccess_version = '0.10.0'
 pciaccess_dep = dependency('pciaccess', version: '>=' + pciaccess_version, required: get_option('pciaccess'))
 
-if not get_option('polkit').disabled() and host_machine.system() != 'windows'
-  pkcheck_prog = find_program('pkcheck', required: false, dirs: libvirt_sbin_path)
-else
-  pkcheck_prog = dependency('', required: false)
-endif
-
 rbd_dep = cc.find_library('rbd', required: false)
 rados_dep = cc.find_library('rados', required: false)
 if rbd_dep.found() and not cc.has_function('rbd_get_features', dependencies: rbd_dep)
@@ -1353,8 +1347,24 @@ elif get_option('firewalld_zone').enabled()
   error('You must have firewalld support enabled to enable firewalld_zone')
 endif
 
-if (pkcheck_prog.found() or get_option('polkit').enabled())
-  conf.set('WITH_POLKIT', 1)
+if not get_option('polkit').disabled()
+  polkit_enable = true
+
+  if get_option('polkit').auto()
+    pkcheck_prog = find_program('pkcheck', required: false, dirs: libvirt_sbin_path)
+    polkit_enable = pkcheck_prog.found()
+  endif
+
+  if host_machine.system() == 'windows'
+    polkit_enable = false
+    if get_option('polkit').enabled()
+      error('polkit support cannot be enabled on Windows')
+    endif
+  endif
+
+  if polkit_enable
+    conf.set('WITH_POLKIT', 1)
+  endif
 endif
 
 if udev_dep.found() and not pciaccess_dep.found()