Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Mar 2021 01:39:24 +0000
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        "Emmanuel Vadot" <manu@FreeBSD.org>, "Dr Robert N. M. Watson" <rwatson@FreeBSD.org>
Cc:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   Re: git: 8c3eaf244a41 - main - pkgbase: Install all BSM includes with INCS
Message-ID:  <690AB8BF-69F3-465A-BB2F-F72145935195@FreeBSD.org>
In-Reply-To: <202103160613.12G6DJlN061954@gitrepo.freebsd.org>
References:  <202103160613.12G6DJlN061954@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 16 Mar 2021, at 6:13, Emmanuel Vadot wrote:

Hi manu,
Cc: rwatson


> The branch main has been updated by manu:
>
> URL: =

> https://cgit.FreeBSD.org/src/commit/?id=3D8c3eaf244a417a4ee105834410a52=
144206102e5
>
> commit 8c3eaf244a417a4ee105834410a52144206102e5
> Author:     Emmanuel Vadot <manu@FreeBSD.org>
> AuthorDate: 2021-03-16 06:12:46 +0000
> Commit:     Emmanuel Vadot <manu@FreeBSD.org>
> CommitDate: 2021-03-16 06:12:46 +0000
>
>     pkgbase: Install all BSM includes with INCS
>
>     Now they are correctly taggued and put them into the libbsm =

> package
>
>     Reviewed by:    bapt
>     Differential Revision:  https://reviews.freebsd.org/D29165
>     MFC after:      2 weeks
> ---
>  include/Makefile | 27 +++++++++++++++++++++++++--
>  1 file changed, 25 insertions(+), 2 deletions(-)
>
> diff --git a/include/Makefile b/include/Makefile
> index 8ddfd7015918..cf760359d2f5 100644
> --- a/include/Makefile
> +++ b/include/Makefile
=2E.
> @@ -175,6 +193,11 @@ INCSGROUPS=3D	INCS \
>  		VERIEXEC \
>  		WG
>
> +.if ${MK_AUDIT} !=3D "no"
> +INCSGROUPS+=3D	BSM
> +INCSGROUPS+=3D	SECAUDIT
> +.endif
> +
>  .if ${MK_IPFILTER} !=3D "no"
>  INCSGROUPS+=3D	IPFILTER
>  .endif

This breaks builds for WITHOUT_AUDIT=3D I believe.  Files in libc =

(gen/fstab.c) include sys/mount.h which includes sys/ucred.h which =

unconditionally includes bsm/audit.h (and has been for a decade or more, =

and so does sys/sysent.h) which now is not found anymore if audit is =

turned off.

I believe sys/ucred.h can be fixed:

iff --git a/sys/sys/ucred.h b/sys/sys/ucred.h
index 6a9becb54c7..b23374f48c9 100644
--- a/sys/sys/ucred.h
+++ b/sys/sys/ucred.h
@@ -38,8 +38,8 @@
  #if defined(_KERNEL) || defined(_WANT_UCRED)
  #include <sys/_lock.h>
  #include <sys/_mutex.h>
-#endif
  #include <bsm/audit.h>
+#endif

  struct loginclass;

Sadly this won=E2=80=99t fix lib/libkvm/kvm_proc.c and =

lib/libprocstat/libprocstat.c which define _WANT_UCRED and at least =

kvm_proc.c and probably kdump and rpcgen consumers rely on sysent and =

whatever else I missed with a quick look again which are not as easily =

fixed.

How do we check in kernel header files for user space build options to =

be set correctly?  That would actually not fix the problem for sysent.h =

as we=E2=80=99d have a missing type.  And for ucred with the places actua=
lly =

asking for it as well.  Given we cannot change the size of these structs =

I believe we have to unconditionally install at least audit.h (for now)?


/bz





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?690AB8BF-69F3-465A-BB2F-F72145935195>