meson: add SELinux build dependency

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-07-29 14:21:29 +02:00
parent ae4b542d86
commit 93b54d7068
4 changed files with 17 additions and 50 deletions

View File

@ -109,7 +109,6 @@ fi
LIBVIRT_ARG_NSS
LIBVIRT_ARG_PM_UTILS
LIBVIRT_ARG_SELINUX
LIBVIRT_ARG_UDEV
LIBVIRT_ARG_VIRTUALPORT
LIBVIRT_ARG_WIRESHARK
@ -118,7 +117,6 @@ LIBVIRT_ARG_YAJL
LIBVIRT_CHECK_NWFILTER
LIBVIRT_CHECK_PM_UTILS
LIBVIRT_CHECK_PTHREAD
LIBVIRT_CHECK_SELINUX
LIBVIRT_CHECK_UDEV
LIBVIRT_CHECK_VIRTUALPORT
LIBVIRT_CHECK_WIRESHARK
@ -404,7 +402,6 @@ LIBVIRT_RESULT_LIBXL
LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_PM_UTILS
LIBVIRT_RESULT_RBD
LIBVIRT_RESULT_SELINUX
LIBVIRT_RESULT_UDEV
LIBVIRT_RESULT_VIRTUALPORT
LIBVIRT_RESULT_XDR

View File

@ -1,47 +0,0 @@
dnl The libselinux.so library
dnl
dnl Copyright (C) 2012-2014, 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_SELINUX],[
LIBVIRT_ARG_WITH_FEATURE([SELINUX], [SELinux], [check])
LIBVIRT_ARG_WITH([SELINUX_MOUNT], [set SELinux mount point], [check])
])
AC_DEFUN([LIBVIRT_CHECK_SELINUX],[
LIBVIRT_CHECK_LIB([SELINUX], [selinux],
[fgetfilecon_raw], [selinux/selinux.h])
if test "$with_selinux" = "yes"; then
AC_MSG_CHECKING([SELinux mount point])
if test "$with_selinux_mount" = "check" || test -z "$with_selinux_mount"; then
if test -d /sys/fs/selinux ; then
SELINUX_MOUNT=/sys/fs/selinux
else
SELINUX_MOUNT=/selinux
fi
else
SELINUX_MOUNT=$with_selinux_mount
fi
AC_MSG_RESULT([$SELINUX_MOUNT])
AC_DEFINE_UNQUOTED([SELINUX_MOUNT], ["$SELINUX_MOUNT"], [SELinux mount point])
fi
])
AC_DEFUN([LIBVIRT_RESULT_SELINUX],[
LIBVIRT_RESULT_LIB([SELINUX])
])

View File

@ -1350,6 +1350,20 @@ else
sasl_dep = dependency('', required: false)
endif
selinux_dep = cc.find_library('selinux', required: get_option('selinux'))
if selinux_dep.found()
selinux_mount = get_option('selinux_mount')
if selinux_mount == ''
if run_command('test', '-d', '/sys/fs/selinux').returncode() == 0
selinux_mount = '/sys/fs/selinux'
else
selinux_mount = '/selinux'
endif
endif
conf.set_quoted('SELINUX_MOUNT', selinux_mount)
conf.set('WITH_SELINUX', 1)
endif
# generic build dependencies checks
@ -1454,6 +1468,7 @@ libs_summary = {
'readline': readline_dep.found(),
'sanlock': conf.has('WITH_SANLOCK'),
'sasl': sasl_dep.found(),
'selinux': selinux_dep.found(),
}
summary(libs_summary, section: 'Libraries', bool_yn: true)

View File

@ -38,6 +38,8 @@ option('polkit', type: 'feature', value: 'auto', description: 'use PolicyKit for
option('readline', type: 'feature', value: 'auto', description: 'readline support')
option('sanlock', type: 'feature', value: 'auto', description: 'sanlock support')
option('sasl', type: 'feature', value: 'auto', description: 'sasl supprt')
option('selinux', type: 'feature', value: 'auto', description: 'selinux support')
option('selinux_mount', type: 'string', value: '', description: 'set SELinux mount point')
# build driver options