In case usrmerge DISTRO_FEATURE is enabled, the recipe installs its binaries into /sbin folder, which however supposed to be a symlink to /usr/sbin folder, thus ultimately failing the installation.
To avoid this problem, backport a patch from master branch that allows specifying the installation location. This is a partial backport of 682657248c654c54ac87edc9bf0a95fb59ff0b1e Signed-off-by: Gyorgy Sarvari <[email protected]> --- .../gradm/0001-make-Define-SBINDIR-flag.patch | 69 +++++++++++++++++++ .../gradm/gradm_3.1-201903191516.bb | 2 + 2 files changed, 71 insertions(+) create mode 100644 meta-oe/recipes-support/gradm/gradm/0001-make-Define-SBINDIR-flag.patch diff --git a/meta-oe/recipes-support/gradm/gradm/0001-make-Define-SBINDIR-flag.patch b/meta-oe/recipes-support/gradm/gradm/0001-make-Define-SBINDIR-flag.patch new file mode 100644 index 0000000000..1c0f3bfbae --- /dev/null +++ b/meta-oe/recipes-support/gradm/gradm/0001-make-Define-SBINDIR-flag.patch @@ -0,0 +1,69 @@ +From 12bc62ac26df012fc143913b6e046a3cf5127db2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Sat, 23 Apr 2022 09:20:49 -0700 +Subject: [PATCH] make: Define SBINDIR flag + +Provides a facility to control install locations of /sbin elements from +environment + +Upstream-Status: Pending +Signed-off-by: Khem Raj <[email protected]> +--- + Makefile | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/Makefile b/Makefile +index deed94c..9190fe9 100644 +--- a/Makefile ++++ b/Makefile +@@ -25,6 +25,7 @@ MKNOD=/bin/mknod + CC=/usr/bin/gcc + FIND=/usr/bin/find + LIBS := $(shell if [ "`uname -m`" != "sparc64" -a "`uname -m`" != "x86_64" ]; then echo "-lfl" ; else echo "" ; fi) ++SBINDIR=/sbin + OPT_FLAGS := -O2 + # for older versions of grsecurity, comment the above line and uncomment the below: + #OPT_FLAGS := $(shell if [ "`uname -m`" != "sparc64" ] && [ "`uname -m`" != "x86_64" ]; then echo "-O2" ; else echo "-O2 -m64" ; fi) +@@ -136,15 +137,15 @@ lex.learn_pass1.o: lex.learn_pass1.c learn_pass1.tab.h + lex.learn_pass2.o: lex.learn_pass2.c learn_pass2.tab.h + + install: $(GRADM_BIN) gradm.8 policy grlearn +- @mkdir -p $(DESTDIR)/sbin ++ @mkdir -p $(DESTDIR)$(SBINDIR) + @echo "Installing gradm..." +- @$(INSTALL) -m 0755 $(GRADM_BIN) $(DESTDIR)/sbin ++ @$(INSTALL) -m 0755 $(GRADM_BIN) $(DESTDIR)$(SBINDIR) + @if [ -f $(GRADM_PAM) ] ; then \ + echo "Installing gradm_pam..." ; \ +- $(INSTALL) -m 4755 $(GRADM_PAM) $(DESTDIR)/sbin ; \ ++ $(INSTALL) -m 4755 $(GRADM_PAM) $(DESTDIR)$(SBINDIR) ; \ + fi + @echo "Installing grlearn..." +- @$(INSTALL) -m 0700 grlearn $(DESTDIR)/sbin ++ @$(INSTALL) -m 0700 grlearn $(DESTDIR)$(SBINDIR) + @mkdir -p -m 700 $(DESTDIR)$(GRSEC_DIR) + @if [ ! -f $(DESTDIR)$(GRSEC_DIR)/policy ] ; then \ + if [ -f $(DESTDIR)$(GRSEC_DIR)/acl ] ; then \ +@@ -170,15 +171,15 @@ install: $(GRADM_BIN) gradm.8 policy grlearn + echo "KERNEL==\"grsec\", MODE=\"0622\"" >> $(DESTDIR)/etc/udev/rules.d/80-grsec.rules ; \ + echo "LABEL=\"permissions_end\"" >> $(DESTDIR)/etc/udev/rules.d/80-grsec.rules ; \ + fi +- @if [ -f $(DESTDIR)/sbin/udevadm ] ; then \ +- $(DESTDIR)/sbin/udevadm trigger --action=change ; \ ++ @if [ -f $(DESTDIR)$(SBINDIR)/udevadm ] ; then \ ++ $(DESTDIR)$(SBINDIR)/udevadm trigger --action=change ; \ + fi + @echo "Installing gradm manpage..." + @mkdir -p $(DESTDIR)$(MANDIR)/man8 + @$(INSTALL) -m 0644 gradm.8 $(DESTDIR)$(MANDIR)/man8/$(GRADM_BIN).8 +- @if [ -x /sbin/$(GRADM_BIN) ] ; then \ ++ @if [ -x $(SBINDIR)/$(GRADM_BIN) ] ; then \ + if [ -z $(DESTDIR) ] && [ ! -f $(GRSEC_DIR)/pw ] ; then \ +- /sbin/$(GRADM_BIN) -P ; \ ++ $(SBINDIR)/$(GRADM_BIN) -P ; \ + fi \ + fi + @true +-- +2.36.0 + diff --git a/meta-oe/recipes-support/gradm/gradm_3.1-201903191516.bb b/meta-oe/recipes-support/gradm/gradm_3.1-201903191516.bb index 0513f0dca0..796659e8b0 100644 --- a/meta-oe/recipes-support/gradm/gradm_3.1-201903191516.bb +++ b/meta-oe/recipes-support/gradm/gradm_3.1-201903191516.bb @@ -14,6 +14,7 @@ DEPENDS = "flex-native bison-native ${@bb.utils.contains('DISTRO_FEATURES', 'pam SRC_URI = "http://grsecurity.net/stable/${BP}.tar.gz \ file://0001-Makefile-remove-strip.patch \ file://0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch \ + file://0001-make-Define-SBINDIR-flag.patch \ " SRC_URI[md5sum] = "5099c715433981d5a3eed8ded7c5bbc0" SRC_URI[sha256sum] = "d3a0b6383ff97a2054941d71133c737efae66afdd8eef59346c031ae15c75ff3" @@ -35,6 +36,7 @@ do_compile() { do_install() { oe_runmake 'CC=${CC}' \ 'DESTDIR=${D}' \ + 'SBINDIR=${base_sbindir}' \ 'LIBS=' \ 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#122262): https://lists.openembedded.org/g/openembedded-devel/message/122262 Mute This Topic: https://lists.openembedded.org/mt/116575213/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
