git: 8c3eaf244a41 - main - pkgbase: Install all BSM includes with INCS
Bjoern A. Zeeb
bz at FreeBSD.org
Sun Mar 21 01:39:33 UTC 2021
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=8c3eaf244a417a4ee105834410a52144206102e5
>
> commit 8c3eaf244a417a4ee105834410a52144206102e5
> Author: Emmanuel Vadot <manu at FreeBSD.org>
> AuthorDate: 2021-03-16 06:12:46 +0000
> Commit: Emmanuel Vadot <manu at 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
..
> @@ -175,6 +193,11 @@ INCSGROUPS= INCS \
> VERIEXEC \
> WG
>
> +.if ${MK_AUDIT} != "no"
> +INCSGROUPS+= BSM
> +INCSGROUPS+= SECAUDIT
> +.endif
> +
> .if ${MK_IPFILTER} != "no"
> INCSGROUPS+= IPFILTER
> .endif
This breaks builds for WITHOUT_AUDIT= 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’t 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’d have a missing type. And for ucred with the places actually
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
More information about the dev-commits-src-all
mailing list