selinux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH testsuite] tests/Makefile: check if BPF library is installed
@ 2019-09-20 11:50 Ondrej Mosnacek
  2019-09-20 13:02 ` Stephen Smalley
  0 siblings, 1 reply; 3+ messages in thread
From: Ondrej Mosnacek @ 2019-09-20 11:50 UTC (permalink / raw)
  To: selinux

Check for the existence of the <bpf/bpf.h> header before enabling BPF
testing. Otherwise building the tests fails in an environment where
the kernel and policy support BPF, but the library is not installed.

Fixes: 8f0f980a4ad5 ("selinux-testsuite: Add BPF tests")
Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
---
 tests/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/Makefile b/tests/Makefile
index e5bdfff..e8cf008 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -43,10 +43,12 @@ endif
 
 ifeq ($(shell grep -q bpf $(POLDEV)/include/support/all_perms.spt && echo true),true)
 ifneq ($(shell ./kvercmp $$(uname -r) 4.15),-1)
+ifneq (,$(wildcard $(INCLUDEDIR)/bpf/bpf.h))
 SUBDIRS += bpf
 export CFLAGS += -DHAVE_BPF
 endif
 endif
+endif
 
 ifeq ($(shell grep "^SELINUX_INFINIBAND_ENDPORT_TEST=" infiniband_endport/ibendport_test.conf | cut -d'=' -f 2),1)
 SUBDIRS += infiniband_endport
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH testsuite] tests/Makefile: check if BPF library is installed
  2019-09-20 11:50 [PATCH testsuite] tests/Makefile: check if BPF library is installed Ondrej Mosnacek
@ 2019-09-20 13:02 ` Stephen Smalley
  2019-09-20 19:29   ` Ondrej Mosnacek
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Smalley @ 2019-09-20 13:02 UTC (permalink / raw)
  To: Ondrej Mosnacek, selinux, Richard Haines

On 9/20/19 7:50 AM, Ondrej Mosnacek wrote:
> Check for the existence of the <bpf/bpf.h> header before enabling BPF
> testing. Otherwise building the tests fails in an environment where
> the kernel and policy support BPF, but the library is not installed.
> 
> Fixes: 8f0f980a4ad5 ("selinux-testsuite: Add BPF tests")
> Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
> ---
>   tests/Makefile | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/tests/Makefile b/tests/Makefile
> index e5bdfff..e8cf008 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -43,10 +43,12 @@ endif
>   
>   ifeq ($(shell grep -q bpf $(POLDEV)/include/support/all_perms.spt && echo true),true)
>   ifneq ($(shell ./kvercmp $$(uname -r) 4.15),-1)
> +ifneq (,$(wildcard $(INCLUDEDIR)/bpf/bpf.h))
>   SUBDIRS += bpf
>   export CFLAGS += -DHAVE_BPF
>   endif
>   endif
> +endif

I think Richard had something like this originally and I told him to 
take it out.  The rationale was that he added libbpf-devel as a required 
dependency to the README and we don't want to silently skip tests 
because someone forgot to install some package; I'd rather it fail at 
build time.

>   
>   ifeq ($(shell grep "^SELINUX_INFINIBAND_ENDPORT_TEST=" infiniband_endport/ibendport_test.conf | cut -d'=' -f 2),1)
>   SUBDIRS += infiniband_endport
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH testsuite] tests/Makefile: check if BPF library is installed
  2019-09-20 13:02 ` Stephen Smalley
@ 2019-09-20 19:29   ` Ondrej Mosnacek
  0 siblings, 0 replies; 3+ messages in thread
From: Ondrej Mosnacek @ 2019-09-20 19:29 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: SElinux list, Richard Haines

On Fri, Sep 20, 2019 at 3:02 PM Stephen Smalley <sds@tycho.nsa.gov> wrote:
> On 9/20/19 7:50 AM, Ondrej Mosnacek wrote:
> > Check for the existence of the <bpf/bpf.h> header before enabling BPF
> > testing. Otherwise building the tests fails in an environment where
> > the kernel and policy support BPF, but the library is not installed.
> >
> > Fixes: 8f0f980a4ad5 ("selinux-testsuite: Add BPF tests")
> > Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
> > ---
> >   tests/Makefile | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/tests/Makefile b/tests/Makefile
> > index e5bdfff..e8cf008 100644
> > --- a/tests/Makefile
> > +++ b/tests/Makefile
> > @@ -43,10 +43,12 @@ endif
> >
> >   ifeq ($(shell grep -q bpf $(POLDEV)/include/support/all_perms.spt && echo true),true)
> >   ifneq ($(shell ./kvercmp $$(uname -r) 4.15),-1)
> > +ifneq (,$(wildcard $(INCLUDEDIR)/bpf/bpf.h))
> >   SUBDIRS += bpf
> >   export CFLAGS += -DHAVE_BPF
> >   endif
> >   endif
> > +endif
>
> I think Richard had something like this originally and I told him to
> take it out.  The rationale was that he added libbpf-devel as a required
> dependency to the README and we don't want to silently skip tests
> because someone forgot to install some package; I'd rather it fail at
> build time.

OK, that makes sense. My motivation was the situation on RHEL-8, where
the kernel and policy matches the existing checks, but there is no
libbpf-devel available (not even in our internal repos or EPEL), but
there really doesn't seem to be any better way to handle that other
than excluding based on distro name/version. For now I'll just
conditionally exclude the test in our wrapper script. (There is a lot
of conditional tweaks already, I might try to upstream them one day so
that they are not split awkwardly between upstream and downstream...)

>
> >
> >   ifeq ($(shell grep "^SELINUX_INFINIBAND_ENDPORT_TEST=" infiniband_endport/ibendport_test.conf | cut -d'=' -f 2),1)
> >   SUBDIRS += infiniband_endport
> >
>

--
Ondrej Mosnacek <omosnace at redhat dot com>
Software Engineer, Security Technologies
Red Hat, Inc.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-09-20 19:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-20 11:50 [PATCH testsuite] tests/Makefile: check if BPF library is installed Ondrej Mosnacek
2019-09-20 13:02 ` Stephen Smalley
2019-09-20 19:29   ` Ondrej Mosnacek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).