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(a)redhat.com>
Reported-by: Jiří Denemark <jdenemar(a)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