meson: add polkit build option

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
This commit is contained in:
Pavel Hrdina 2020-04-29 11:32:41 +02:00
parent 3c0cfd6578
commit 67103acfc7
4 changed files with 14 additions and 65 deletions

View File

@ -110,7 +110,6 @@ fi
LIBVIRT_ARG_NSS
LIBVIRT_ARG_PM_UTILS
LIBVIRT_ARG_POLKIT
LIBVIRT_ARG_SANLOCK
LIBVIRT_ARG_SASL
LIBVIRT_ARG_SELINUX
@ -121,7 +120,6 @@ LIBVIRT_ARG_YAJL
LIBVIRT_CHECK_NWFILTER
LIBVIRT_CHECK_PM_UTILS
LIBVIRT_CHECK_POLKIT
LIBVIRT_CHECK_PTHREAD
LIBVIRT_CHECK_SANLOCK
LIBVIRT_CHECK_SASL
@ -410,7 +408,6 @@ AC_MSG_NOTICE([])
LIBVIRT_RESULT_LIBXL
LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_PM_UTILS
LIBVIRT_RESULT_POLKIT
LIBVIRT_RESULT_RBD
LIBVIRT_RESULT_SANLOCK
LIBVIRT_RESULT_SASL

View File

@ -1,62 +0,0 @@
dnl The polkit library
dnl
dnl Copyright (C) 2016 Red Hat, Inc.
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Lesser General Public License for more details.
dnl
dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
dnl
AC_DEFUN([LIBVIRT_ARG_POLKIT], [
LIBVIRT_ARG_WITH([POLKIT], [use PolicyKit for UNIX socket access checks],
[check])
])
AC_DEFUN([LIBVIRT_CHECK_POLKIT], [
AC_REQUIRE([LIBVIRT_CHECK_DBUS])
if test "x$with_win" = "xyes"; then
with_polkit=no
fi
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 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])
with_polkit="yes"
else
if test "x$with_polkit" = "xcheck" ; then
with_polkit=no
else
AC_MSG_ERROR(
[You must install dbus to compile libvirt with polkit-1])
fi
fi
fi
AM_CONDITIONAL([WITH_POLKIT], [test "x$with_polkit" = "xyes"])
])
AC_DEFUN([LIBVIRT_RESULT_POLKIT], [
LIBVIRT_RESULT([polkit], [$with_polkit])
])

View File

@ -1244,6 +1244,12 @@ 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
# readline 7.0 is the first version which includes pkg-config support
readline_version = '7.0'
readline_dep = dependency('readline', version: '>=' + readline_version, required: false)
@ -1351,6 +1357,12 @@ if conf.has('WITH_MACVTAP') and not conf.has('HAVE_LIBNL')
error('libnl3-devel is required for macvtap support')
endif
if (pkcheck_prog.found() or get_option('polkit').enabled()) and dbus_dep.found()
conf.set('WITH_POLKIT', 1)
elif get_option('polkit').enabled()
error('You must install dbus to compile libvirt with polkit-1')
endif
# define top include directory
@ -1400,6 +1412,7 @@ libs_summary = {
'numaclt': numactl_dep.found(),
'openwsman': openwsman_dep.found(),
'pciaccess': pciaccess_dep.found(),
'polkit': conf.has('WITH_POLKIT'),
'readline': readline_dep.found(),
}
summary(libs_summary, section: 'Libraries', bool_yn: true)

View File

@ -34,6 +34,7 @@ option('nls', type: 'feature', value: 'auto', description: 'nls support')
option('numactl', type: 'feature', value: 'auto', description: 'numactl support')
option('openwsman', type: 'feature', value: 'auto', description: 'openwsman support')
option('pciaccess', type: 'feature', value: 'auto', description: 'pciaccess support')
option('polkit', type: 'feature', value: 'auto', description: 'use PolicyKit for UNIX socket access checks')
option('readline', type: 'feature', value: 'auto', description: 'readline support')