[libvirt] [PATCH] polkit: reintroduce check for pkcheck

Ján Tomko jtomko at redhat.com
Fri Mar 23 18:20:41 UTC 2018


Commit 2499d1a0 was too eager and possibly enabled polkit
on all platforms with D-Bus, regardless of whether they use polkit.

Reintroduce the usage of pkcheck as a witness for --with-polkit=check,
but do not require it for --with-polkit=yes.

Signed-off-by: Ján Tomko <jtomko at redhat.com>
Reported-by: Jiří Denemark <jdenemar at redhat.com>
---
 m4/virt-polkit.m4 | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/m4/virt-polkit.m4 b/m4/virt-polkit.m4
index fd729dc98..16889e163 100644
--- a/m4/virt-polkit.m4
+++ b/m4/virt-polkit.m4
@@ -25,8 +25,17 @@ AC_DEFUN([LIBVIRT_ARG_POLKIT], [
 AC_DEFUN([LIBVIRT_CHECK_POLKIT], [
   AC_REQUIRE([LIBVIRT_CHECK_DBUS])
 
+  if test "x$with_polkit" = "xcheck"; then
+    dnl For --with-polkit=check, also require the pkcheck binary, even
+    dnl though we talk to polkit directly over D-Bus.
+    AC_PATH_PROG([PKCHECK_PATH], [pkcheck], [], [$LIBVIRT_SBIN_PATH])
+    if test "x$PKCHECK_PATH" = "x" ; then
+        with_polkit="no"
+    fi
+  fi
+
   if test "x$with_polkit" = "xyes" || test "x$with_polkit" = "xcheck"; then
-    dnl All we need to talk to polkit is D-Bus.
+    dnl For --with-polkit=yes, all we need is D-Bus.
     if test "x$with_dbus" = "xyes" ; then
       AC_DEFINE_UNQUOTED([WITH_POLKIT], 1,
           [use PolicyKit for UNIX socket access checks])
-- 
2.16.1




More information about the libvir-list mailing list