[PATCH xserver] meson: Add an option to build XSELINUX.

Peter Hutterer peter.hutterer at who-t.net
Fri Aug 10 04:21:30 UTC 2018


On Thu, Aug 09, 2018 at 08:05:05PM -0700, Eric Anholt wrote:
> Peter Hutterer <peter.hutterer at who-t.net> writes:
> 
> > On Thu, Aug 09, 2018 at 01:02:41PM -0700, Eric Anholt wrote:
> >> Dependencies are ported from the automake build.
> >> 
> >> v2: Make it a tristate defaulting to 'auto'.  Use pkg-config for libaudit.
> >> 
> >> Signed-off-by: Eric Anholt <eric at anholt.net>
> >> ---
> >>  meson.build       | 20 +++++++++++++++++---
> >>  meson_options.txt |  2 ++
> >>  2 files changed, 19 insertions(+), 3 deletions(-)
> >> 
> >> diff --git a/meson.build b/meson.build
> >> index e7ce68a502c3..53cdbe2beb3d 100644
> >> --- a/meson.build
> >> +++ b/meson.build
> >> @@ -442,9 +442,6 @@ elif get_option('mitshm') == 'true'
> >>      build_mitshm = true
> >>  endif
> >>  
> >> -# XXX: Allow configuration of these.
> >> -build_xselinux = false
> >> -
> >>  m_dep = cc.find_library('m', required : false)
> >>  dl_dep = cc.find_library('dl', required : false)
> >>  
> >> @@ -506,6 +503,23 @@ inc = include_directories(
> >>      'xfixes',
> >>  )
> >>  
> >> +build_xselinux = false
> >> +if get_option('xselinux') != 'false'
> >> +    dep_selinux = dependency('libselinux', version: '>= 2.0.86',
> >> +			     required: get_option('xselinux') == 'true')
> >> +    dep_audit = dependency('audit', required: get_option('xselinux') == 'true')
> >> +    if get_option('xselinux') == 'true'
> >> +        build_xselinux = true
> >> +    else
> >
> > you don't need the if here, if option(xselinux) is true, both deps will
> > are required and cannot be anything but found() == true.
> >
> > but either way, Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
> 
> I'm trying to make sure that build_xselinux is never set if the tristate
> is set to false, but that we auto-select if we're in auto mode.

sure, but this (hand-written) diff should give you the same result:

+build_xselinux = false
+if get_option('xselinux') != 'false'
+    dep_selinux = dependency('libselinux', version: '>= 2.0.86',
+			     required: get_option('xselinux') == 'true')
+    dep_audit = dependency('audit', required: get_option('xselinux') == 'true')
+    build_xselinux = dep_selinux.found() and dep_audit.found()
+
+    if build_xselinux
+        common_dep += dep_selinux
+        common_dep += dep_audit
+    endif
+endif

if xselinux is false, you never enter this anyway
if xselinux is true, you either have both libs or fail earlier, so found() and
        found() is always true
if xselinux is auto, found() and found() decides whether to build it

arguably the second "if build_xselinux" isn't required either because
dep_selinux/dep_audit are valid dependency objects even if not found. but I
guess we don't want to add one if the other one doesn't exist.

Cheers,
   Peter


More information about the xorg-devel mailing list