From: Jörg Sommer Date: Sun, 9 Jun 2024 14:59:07 +0000 (+0200) Subject: classes/kernel: No symlink in postinst without KERNEL_IMAGETYPE_SYMLINK X-Git-Tag: uninative-4.6~254 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a763401862d9ee96749ad18378b6344778c2c66;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git classes/kernel: No symlink in postinst without KERNEL_IMAGETYPE_SYMLINK 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 --- 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