Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> [strip library after adding it to openwrt repository] Signed-off-by: W. Michael Petullo <mike@flyn.org>lilik-openwrt-22.03
@ -0,0 +1,144 @@ | |||||
# | |||||
# This is free software, licensed under the GNU General Public License v2. | |||||
# See /LICENSE for more information. | |||||
# | |||||
include $(TOPDIR)/rules.mk | |||||
PKG_NAME:=audit | |||||
PKG_VERSION:=2.8.5 | |||||
PKG_RELEASE:=1 | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | |||||
PKG_SOURCE_URL:=http://people.redhat.com/sgrubb/audit | |||||
PKG_HASH:=0e5d4103646e00f8d1981e1cd2faea7a2ae28e854c31a803e907a383c5e2ecb7 | |||||
PKG_MAINTAINER:=Thomas Petazzoni <thomas.petazzoni@bootlin.com> | |||||
PKG_LICENSE:=GPL-2.0-or-later | |||||
PKG_LICENSE_FILES:=COPYING | |||||
PKG_CPE_ID:=cpe:/a:linux_audit_project:linux_audit | |||||
PKG_FIXUP:=autoreconf | |||||
PKG_USE_MIPS16:=0 | |||||
include $(INCLUDE_DIR)/package.mk | |||||
include $(INCLUDE_DIR)/host-build.mk | |||||
define Package/audit/Default | |||||
TITLE:=Audit Daemon | |||||
URL:=http://people.redhat.com/sgrubb/audit/ | |||||
endef | |||||
define Package/audit/Default/description | |||||
The audit package contains the user space utilities for | |||||
storing and searching the audit records generated by | |||||
the audit subsystem in the Linux 2.6 kernel | |||||
endef | |||||
define Package/libauparse | |||||
$(call Package/audit/Default) | |||||
SECTION:=libs | |||||
CATEGORY:=Libraries | |||||
TITLE+= (parsing shared library) | |||||
DEPENDS:= +libaudit | |||||
endef | |||||
define Package/libauparse/description | |||||
$(call Package/audit/Default/description) | |||||
This package contains the audit parsing shared library. | |||||
endef | |||||
define Package/audit-utils | |||||
$(call Package/audit/Default) | |||||
SECTION:=utils | |||||
CATEGORY:=Utilities | |||||
TITLE+= (utilities) | |||||
DEPENDS:= +libaudit +libauparse | |||||
endef | |||||
define Package/audit-utils/description | |||||
$(call Package/audit/Default/description) | |||||
This package contains the audit utilities. | |||||
endef | |||||
define Package/audit | |||||
$(call Package/audit/Default) | |||||
SECTION:=utils | |||||
CATEGORY:=Utilities | |||||
TITLE+= (daemon) | |||||
DEPENDS:= +libaudit +libauparse +audit-utils | |||||
endef | |||||
define Package/audit/description | |||||
$(call Package/audit/Default/description) | |||||
This package contains the audit daemon. | |||||
endef | |||||
CONFIGURE_VARS += \ | |||||
LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \ | |||||
CPPFLAGS_FOR_BUILD="$(HOST_CPPFLAGS)" \ | |||||
CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ | |||||
CC_FOR_BUILD="$(HOSTCC)" | |||||
CONFIGURE_ARGS += \ | |||||
--without-libcap-ng \ | |||||
--disable-systemd \ | |||||
--without-python \ | |||||
--without-python3 \ | |||||
--disable-zos-remote | |||||
ifeq ($(ARCH),aarch64) | |||||
CONFIGURE_ARGS += --with-aarch64 | |||||
else ifeq ($(ARCH),arm) | |||||
CONFIGURE_ARGS += --with-arm | |||||
endif | |||||
# We can't use the default, as the default passes $(MAKE_ARGS), which | |||||
# overrides CC, CFLAGS, etc. and defeats the *_FOR_BUILD definitions | |||||
# passed in CONFIGURE_VARS | |||||
define Build/Compile | |||||
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) | |||||
endef | |||||
define Build/Install | |||||
$(call Build/Install/Default,install) | |||||
$(SED) 's%^dispatcher *=.*%dispatcher = /usr/sbin/audispd%' $(PKG_INSTALL_DIR)/etc/audit/auditd.conf | |||||
endef | |||||
define Build/InstallDev | |||||
$(INSTALL_DIR) $(1)/usr/include | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/ | |||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig | |||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/ | |||||
$(INSTALL_DIR) $(1)/usr/lib | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/ | |||||
endef | |||||
define Package/libauparse/install | |||||
$(INSTALL_DIR) $(1)/usr/lib | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libauparse.so.* $(1)/usr/lib/ | |||||
endef | |||||
define Package/audit-utils/install | |||||
$(INSTALL_DIR) $(1)/usr/bin | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/ | |||||
$(INSTALL_DIR) $(1)/usr/sbin | |||||
$(CP) \ | |||||
$(PKG_INSTALL_DIR)/usr/sbin/{augenrules,audispd,audisp-remote,auditctl,autrace,aureport,ausearch} \ | |||||
$(1)/usr/sbin/ | |||||
endef | |||||
define Package/audit/install | |||||
$(INSTALL_DIR) $(1)/etc/audit | |||||
$(CP) $(PKG_INSTALL_DIR)/etc/audit/* $(1)/etc/audit/ | |||||
$(INSTALL_DIR) $(1)/etc/init.d | |||||
$(INSTALL_BIN) ./files/audit.init $(1)/etc/init.d/audit | |||||
$(INSTALL_DIR) $(1)/usr/sbin | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/auditd $(1)/usr/sbin/ | |||||
endef | |||||
$(eval $(call HostBuild)) | |||||
$(eval $(call BuildPackage,libauparse)) | |||||
$(eval $(call BuildPackage,audit-utils)) | |||||
$(eval $(call BuildPackage,audit)) |
@ -0,0 +1,16 @@ | |||||
#!/bin/sh /etc/rc.common | |||||
# Copyright (c) 2014 OpenWrt.org | |||||
START=11 | |||||
USE_PROCD=1 | |||||
PROG=/usr/sbin/auditd | |||||
start_service() { | |||||
mkdir -p /var/log/audit | |||||
procd_open_instance | |||||
procd_set_param command "$PROG" -n | |||||
procd_set_param respawn | |||||
procd_close_instance | |||||
test -f /etc/audit/rules.d/audit.rules && /usr/sbin/auditctl -R /etc/audit/rules.d/audit.rules | |||||
} |
@ -0,0 +1,133 @@ | |||||
From c39a071e7c021f6ff3554aca2758e97b47a9777c Mon Sep 17 00:00:00 2001 | |||||
From: Steve Grubb <sgrubb@redhat.com> | |||||
Date: Tue, 26 Feb 2019 18:33:33 -0500 | |||||
Subject: [PATCH] Add substitue functions for strndupa & rawmemchr | |||||
(cherry picked from commit d579a08bb1cde71f939c13ac6b2261052ae9f77e) | |||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> | |||||
--- | |||||
auparse/auparse.c | 12 +++++++++++- | |||||
auparse/interpret.c | 9 ++++++++- | |||||
configure.ac | 14 +++++++++++++- | |||||
src/ausearch-lol.c | 12 +++++++++++- | |||||
4 files changed, 43 insertions(+), 4 deletions(-) | |||||
diff --git a/auparse/auparse.c b/auparse/auparse.c | |||||
index 650db02..2e1c737 100644 | |||||
--- a/auparse/auparse.c | |||||
+++ b/auparse/auparse.c | |||||
@@ -1,5 +1,5 @@ | |||||
/* auparse.c -- | |||||
- * Copyright 2006-08,2012-17 Red Hat Inc., Durham, North Carolina. | |||||
+ * Copyright 2006-08,2012-19 Red Hat Inc., Durham, North Carolina. | |||||
* All Rights Reserved. | |||||
* | |||||
* This library is free software; you can redistribute it and/or | |||||
@@ -1118,6 +1118,16 @@ static int str2event(char *s, au_event_t *e) | |||||
return 0; | |||||
} | |||||
+#ifndef HAVE_STRNDUPA | |||||
+static inline char *strndupa(const char *old, size_t n) | |||||
+{ | |||||
+ size_t len = strnlen(old, n); | |||||
+ char *tmp = alloca(len + 1); | |||||
+ tmp[len] = 0; | |||||
+ return memcpy(tmp, old, len); | |||||
+} | |||||
+#endif | |||||
+ | |||||
/* Returns 0 on success and 1 on error */ | |||||
static int extract_timestamp(const char *b, au_event_t *e) | |||||
{ | |||||
diff --git a/auparse/interpret.c b/auparse/interpret.c | |||||
index 51c4a5e..67b7b77 100644 | |||||
--- a/auparse/interpret.c | |||||
+++ b/auparse/interpret.c | |||||
@@ -853,6 +853,13 @@ err_out: | |||||
return print_escaped(id->val); | |||||
} | |||||
+// rawmemchr is faster. Let's use it if we have it. | |||||
+#ifdef HAVE_RAWMEMCHR | |||||
+#define STRCHR rawmemchr | |||||
+#else | |||||
+#define STRCHR strchr | |||||
+#endif | |||||
+ | |||||
static const char *print_proctitle(const char *val) | |||||
{ | |||||
char *out = (char *)print_escaped(val); | |||||
@@ -863,7 +870,7 @@ static const char *print_proctitle(const char *val) | |||||
// Proctitle has arguments separated by NUL bytes | |||||
// We need to write over the NUL bytes with a space | |||||
// so that we can see the arguments | |||||
- while ((ptr = rawmemchr(ptr, '\0'))) { | |||||
+ while ((ptr = STRCHR(ptr, '\0'))) { | |||||
if (ptr >= end) | |||||
break; | |||||
*ptr = ' '; | |||||
diff --git a/configure.ac b/configure.ac | |||||
index 6e345f1..6f3007e 100644 | |||||
--- a/configure.ac | |||||
+++ b/configure.ac | |||||
@@ -1,7 +1,7 @@ | |||||
dnl | |||||
define([AC_INIT_NOTICE], | |||||
[### Generated automatically using autoconf version] AC_ACVERSION [ | |||||
-### Copyright 2005-18 Steve Grubb <sgrubb@redhat.com> | |||||
+### Copyright 2005-19 Steve Grubb <sgrubb@redhat.com> | |||||
### | |||||
### Permission is hereby granted, free of charge, to any person obtaining a | |||||
### copy of this software and associated documentation files (the "Software"), | |||||
@@ -72,6 +72,18 @@ dnl; posix_fallocate is used in audisp-remote | |||||
AC_CHECK_FUNCS([posix_fallocate]) | |||||
dnl; signalfd is needed for libev | |||||
AC_CHECK_FUNC([signalfd], [], [ AC_MSG_ERROR([The signalfd system call is necessary for auditd]) ]) | |||||
+dnl; check if rawmemchr is available | |||||
+AC_CHECK_FUNCS([rawmemchr]) | |||||
+dnl; check if strndupa is available | |||||
+AC_LINK_IFELSE( | |||||
+ [AC_LANG_SOURCE( | |||||
+ [[ | |||||
+ #define _GNU_SOURCE | |||||
+ #include <string.h> | |||||
+ int main() { (void) strndupa("test", 10); return 0; }]])], | |||||
+ [AC_DEFINE(HAVE_STRNDUPA, 1, [Let us know if we have it or not])], | |||||
+ [] | |||||
+) | |||||
ALLWARNS="" | |||||
ALLDEBUG="-g" | |||||
diff --git a/src/ausearch-lol.c b/src/ausearch-lol.c | |||||
index 5d17a72..758c33e 100644 | |||||
--- a/src/ausearch-lol.c | |||||
+++ b/src/ausearch-lol.c | |||||
@@ -1,6 +1,6 @@ | |||||
/* | |||||
* ausearch-lol.c - linked list of linked lists library | |||||
-* Copyright (c) 2008,2010,2014,2016 Red Hat Inc., Durham, North Carolina. | |||||
+* Copyright (c) 2008,2010,2014,2016,2019 Red Hat Inc., Durham, North Carolina. | |||||
* All Rights Reserved. | |||||
* | |||||
* This software may be freely redistributed and/or modified under the | |||||
@@ -152,6 +152,16 @@ static int compare_event_time(event *e1, event *e2) | |||||
return 0; | |||||
} | |||||
+#ifndef HAVE_STRNDUPA | |||||
+static inline char *strndupa(const char *old, size_t n) | |||||
+{ | |||||
+ size_t len = strnlen(old, n); | |||||
+ char *tmp = alloca(len + 1); | |||||
+ tmp[len] = 0; | |||||
+ return memcpy(tmp, old, len); | |||||
+} | |||||
+#endif | |||||
+ | |||||
/* | |||||
* This function will look at the line and pick out pieces of it. | |||||
*/ | |||||
-- | |||||
2.21.0 | |||||
@ -0,0 +1,26 @@ | |||||
From 017e6c6ab95df55f34e339d2139def83e5dada1f Mon Sep 17 00:00:00 2001 | |||||
From: Steve Grubb <sgrubb@redhat.com> | |||||
Date: Fri, 10 Jan 2020 21:13:50 -0500 | |||||
Subject: [PATCH 01/30] Header definitions need to be external when building | |||||
with -fno-common (which is default in GCC 10) - Tony Jones | |||||
--- | |||||
src/ausearch-common.h | 2 +- | |||||
1 file changed, 1 insertion(+), 1 deletion(-) | |||||
diff --git a/src/ausearch-common.h b/src/ausearch-common.h | |||||
index 6669203..3040547 100644 | |||||
--- a/src/ausearch-common.h | |||||
+++ b/src/ausearch-common.h | |||||
@@ -50,7 +50,7 @@ extern pid_t event_pid; | |||||
extern int event_exact_match; | |||||
extern uid_t event_uid, event_euid, event_loginuid; | |||||
extern const char *event_tuid, *event_teuid, *event_tauid; | |||||
-slist *event_node_list; | |||||
+extern slist *event_node_list; | |||||
extern const char *event_comm; | |||||
extern const char *event_filename; | |||||
extern const char *event_hostname; | |||||
-- | |||||
2.26.2 | |||||