* [Buildroot] [PATCH v4 1/2] package/busybox: handle LIBFOO_BUSYBOX_CONFIG_FIXUPS
2025-01-06 18:20 [Buildroot] [PATCH v4 0/2] lynis Francois Perrad
@ 2025-01-06 18:20 ` Francois Perrad
2025-01-06 18:20 ` [Buildroot] [PATCH v4 2/2] package/lynis: new package Francois Perrad
2025-02-04 16:36 ` [Buildroot] [PATCH v4 0/2] lynis Thomas Petazzoni via buildroot
2 siblings, 0 replies; 4+ messages in thread
From: Francois Perrad @ 2025-01-06 18:20 UTC (permalink / raw)
To: buildroot
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
docs/manual/adding-packages-generic.adoc | 6 ++++++
package/busybox/busybox.mk | 1 +
package/pkg-generic.mk | 3 +++
3 files changed, 10 insertions(+)
diff --git a/docs/manual/adding-packages-generic.adoc b/docs/manual/adding-packages-generic.adoc
index 89fc70045..f0b0508f5 100644
--- a/docs/manual/adding-packages-generic.adoc
+++ b/docs/manual/adding-packages-generic.adoc
@@ -631,6 +631,12 @@ different steps of the build process.
This is seldom used, as package usually have no strict requirements on
the kernel options.
+* +LIBFOO_BUSYBOX_CONFIG_FIXUPS+ lists the Busybox configuration
+ options that are needed to use this package especially in some scripts,
+ or at contrario the useless options. This shall be a set of
+ calls to one of the kconfig tweaking option: `KCONFIG_ENABLE_OPT`,
+ `KCONFIG_DISABLE_OPT`, or `KCONFIG_SET_OPT`.
+
The preferred way to define these variables is:
----
diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index 942875ee0..4baa42320 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -412,6 +412,7 @@ define BUSYBOX_KCONFIG_FIXUP_CMDS
$(BUSYBOX_SET_SELINUX)
$(BUSYBOX_SET_LESS_FLAGS)
$(BUSYBOX_SET_INDIVIDUAL_BINARIES)
+ $(PACKAGES_BUSYBOX_CONFIG_FIXUPS)
endef
define BUSYBOX_BUILD_CMDS
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 9ec84d0f4..dc500f6d3 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -1242,6 +1242,9 @@ endif
ifneq ($$($(2)_USERS),)
PACKAGES_USERS += $$($(2)_USERS)$$(sep)
endif
+ifneq ($$($(2)_BUSYBOX_CONFIG_FIXUPS),)
+PACKAGES_BUSYBOX_CONFIG_FIXUPS += $$($(2)_BUSYBOX_CONFIG_FIXUPS)$$(sep)
+endif
ifneq ($$($(2)_LINUX_CONFIG_FIXUPS),)
PACKAGES_LINUX_CONFIG_FIXUPS += $$($(2)_LINUX_CONFIG_FIXUPS)$$(sep)
endif
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v4 2/2] package/lynis: new package
2025-01-06 18:20 [Buildroot] [PATCH v4 0/2] lynis Francois Perrad
2025-01-06 18:20 ` [Buildroot] [PATCH v4 1/2] package/busybox: handle LIBFOO_BUSYBOX_CONFIG_FIXUPS Francois Perrad
@ 2025-01-06 18:20 ` Francois Perrad
2025-02-04 16:36 ` [Buildroot] [PATCH v4 0/2] lynis Thomas Petazzoni via buildroot
2 siblings, 0 replies; 4+ messages in thread
From: Francois Perrad @ 2025-01-06 18:20 UTC (permalink / raw)
To: buildroot
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/lynis/Config.in | 10 +++++
package/lynis/lynis.hash | 3 ++
package/lynis/lynis.mk | 48 +++++++++++++++++++++
support/testing/tests/package/test_lynis.py | 26 +++++++++++
6 files changed, 89 insertions(+)
create mode 100644 package/lynis/Config.in
create mode 100644 package/lynis/lynis.hash
create mode 100644 package/lynis/lynis.mk
create mode 100644 support/testing/tests/package/test_lynis.py
diff --git a/DEVELOPERS b/DEVELOPERS
index aedd73677..70b1fb9dd 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1162,6 +1162,7 @@ F: package/lpty/
F: package/lrandom/
F: package/lsqlite3/
F: package/lua*
+F: package/lynis/
F: package/lzlib/
F: package/moarvm/
F: package/mstpd/
diff --git a/package/Config.in b/package/Config.in
index 1eb5e1e02..b16a32709 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2732,6 +2732,7 @@ menu "Security"
source "package/apparmor/Config.in"
source "package/checkpolicy/Config.in"
source "package/ima-evm-utils/Config.in"
+ source "package/lynis/Config.in"
source "package/optee-client/Config.in"
source "package/optee-examples/Config.in"
source "package/optee-test/Config.in"
diff --git a/package/lynis/Config.in b/package/lynis/Config.in
new file mode 100644
index 000000000..2757e86a2
--- /dev/null
+++ b/package/lynis/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_LYNIS
+ bool "lynis"
+ select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+ select BR2_PACKAGE_GZIP # runtime (zgrep /proc/config.gz)
+ help
+ Lynis is an auditing tool which tests and gathers (security)
+ information from Unix based systems.
+ Written in shell and running on system itself.
+
+ https://cisofy.com/lynis/
diff --git a/package/lynis/lynis.hash b/package/lynis/lynis.hash
new file mode 100644
index 000000000..1027fb21a
--- /dev/null
+++ b/package/lynis/lynis.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 9932147acafb1c5e13289a8bd46e8d330d4a97473da30ec04650ad019e497cd0 lynis-3.1.3.tar.gz
+sha256 57151f0fa287550534af08facb1c6693ca803ffa65b512da38b55c3130810bcf LICENSE
diff --git a/package/lynis/lynis.mk b/package/lynis/lynis.mk
new file mode 100644
index 000000000..13a883bd5
--- /dev/null
+++ b/package/lynis/lynis.mk
@@ -0,0 +1,48 @@
+################################################################################
+#
+# lynis
+#
+################################################################################
+
+LYNIS_VERSION = 3.1.3
+LYNIS_SITE = $(call github,CISOfy,lynis,$(LYNIS_VERSION))
+LYNIS_LICENSE = GPL-3.0
+LYNIS_LICENSE_FILES = LICENSE
+
+define LYNIS_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 0755 $(@D)/lynis \
+ $(TARGET_DIR)/usr/sbin/lynis
+ $(INSTALL) -D -m 0644 $(@D)/default.prf \
+ $(TARGET_DIR)/etc/lynis/default.prf
+ $(INSTALL) -D -m 0644 $(@D)/developer.prf \
+ $(TARGET_DIR)/etc/lynis/developer.prf
+ $(INSTALL) -D -m 0644 $(@D)/plugins/* \
+ -t $(TARGET_DIR)/etc/lynis/plugins
+ $(INSTALL) -D -m 0644 $(@D)/include/* \
+ -t $(TARGET_DIR)/usr/share/lynis/include
+ $(INSTALL) -D -m 0644 $(@D)/db/*.db \
+ -t $(TARGET_DIR)/usr/share/lynis/db
+ $(INSTALL) -D -m 0644 $(@D)/db/languages/en \
+ $(TARGET_DIR)/usr/share/lynis/db/languages/en
+endef
+
+ifneq ($(BR2_PACKAGE_GAWK),y)
+define LYNIS_AWK_BUSYBOX_CONFIG_FIXUPS
+ $(call KCONFIG_ENABLE_OPT,CONFIG_AWK)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_AWK_LIBM)
+endef
+endif
+
+ifneq ($(BR2_PACKAGE_COREUTILS),y)
+define LYNIS_STAT_BUSYBOX_CONFIG_FIXUPS
+ $(call KCONFIG_ENABLE_OPT,CONFIG_STAT)
+endef
+endif
+
+define LYNIS_BUSYBOX_CONFIG_FIXUPS
+ $(call KCONFIG_ENABLE_OPT,CONFIG_PGREP)
+ $(LYNIS_AWK_BUSYBOX_CONFIG_FIXUPS)
+ $(LYNIS_STAT_BUSYBOX_CONFIG_FIXUPS)
+endef
+
+$(eval $(generic-package))
diff --git a/support/testing/tests/package/test_lynis.py b/support/testing/tests/package/test_lynis.py
new file mode 100644
index 000000000..bed4023e6
--- /dev/null
+++ b/support/testing/tests/package/test_lynis.py
@@ -0,0 +1,26 @@
+import os
+
+import infra.basetest
+
+
+class TestLynis(infra.basetest.BRTest):
+ config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
+ """
+ BR2_TARGET_ROOTFS_CPIO=y
+ # BR2_TARGET_ROOTFS_TAR is not set
+ BR2_PACKAGE_LYNIS=y
+ """
+
+ def login(self):
+ cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio")
+ self.emulator.boot(arch="armv5",
+ kernel="builtin",
+ options=["-initrd", cpio_file])
+ self.emulator.login()
+
+ def test_run(self):
+ self.login()
+ self.assertRunOk("which awk")
+ self.assertRunOk("which stat")
+ self.assertRunOk("which zgrep")
+ self.assertRunOk("lynis show version", timeout=90)
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 4+ messages in thread