From 6a763401862d9ee96749ad18378b6344778c2c66 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rg=20Sommer?= Date: Sun, 9 Jun 2024 16:59:07 +0200 Subject: [PATCH] classes/kernel: No symlink in postinst without KERNEL_IMAGETYPE_SYMLINK MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The commit “Use a copy of image for kernel*.rpm if fs doesn't support symlinks” [1] added postinst and postrm scripts to the kernel package which create a symlink after package installation. This should not happen if `KERNEL_IMAGETYPE_SYMLINK` is not `1`. Background: The u-boot implementation of jffs2 does not support symlinks. Using a hardlink or removing `${KERNEL_VERSION}` from the file name fails, because the current postinst script replaces the file with the symlink. [1] 8b6b95106a5d4f1f6d34209ec5c475c900270ecd Cc: Bruce Ashfield Cc: Richard Purdie Cc: Yanfei Xu Signed-off-by: Jörg Sommer Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- meta/classes-recipe/kernel.bbclass | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass index d6eedf942cc..89badd90f18 100644 --- a/meta/classes-recipe/kernel.bbclass +++ b/meta/classes-recipe/kernel.bbclass @@ -115,7 +115,9 @@ python __anonymous () { d.setVar('PKG:%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower)) d.setVar('ALLOW_EMPTY:%s-image-%s' % (kname, typelower), '1') - d.prependVar('pkg_postinst:%s-image-%s' % (kname,typelower), """set +e + + if d.getVar('KERNEL_IMAGETYPE_SYMLINK') == '1': + d.prependVar('pkg_postinst:%s-image-%s' % (kname,typelower), """set +e if [ -n "$D" ]; then ln -sf %s-${KERNEL_VERSION} $D/${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1 else @@ -127,7 +129,7 @@ else fi set -e """ % (type, type, type, type, type, type, type)) - d.setVar('pkg_postrm:%s-image-%s' % (kname,typelower), """set +e + d.setVar('pkg_postrm:%s-image-%s' % (kname,typelower), """set +e if [ -f "${KERNEL_IMAGEDEST}/%s" -o -L "${KERNEL_IMAGEDEST}/%s" ]; then rm -f ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1 fi -- 2.47.3