From 93b54d7068836fecb44011301957f3bfe96ca8a8 Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Wed, 29 Jul 2020 14:21:29 +0200 Subject: [PATCH] meson: add SELinux build dependency Signed-off-by: Pavel Hrdina Reviewed-by: Peter Krempa Reviewed-by: Neal Gompa --- configure.ac | 3 --- m4/virt-selinux.m4 | 47 ---------------------------------------------- meson.build | 15 +++++++++++++++ meson_options.txt | 2 ++ 4 files changed, 17 insertions(+), 50 deletions(-) delete mode 100644 m4/virt-selinux.m4 diff --git a/configure.ac b/configure.ac index 359a1a8db9..14a54578d7 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/m4/virt-selinux.m4 b/m4/virt-selinux.m4 deleted file mode 100644 index fb541e207e..0000000000 --- a/m4/virt-selinux.m4 +++ /dev/null @@ -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 . -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]) -]) diff --git a/meson.build b/meson.build index fd1ccc9625..836977426d 100644 --- a/meson.build +++ b/meson.build @@ -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) diff --git a/meson_options.txt b/meson_options.txt index 6dfbfac6b7..5427e5cc15 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -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