summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYanfei Xu <yanfei.xu@windriver.com>2020-07-03 21:55:15 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-07-05 15:04:40 +0100
commit8b6b95106a5d4f1f6d34209ec5c475c900270ecd (patch)
tree78b7806c88ded7c5a4fc6134dede36a8eacf4a93
parentcd96439c580a64a218f219e7aeeb67e0bbd68d5b (diff)
downloadpoky-8b6b95106a5d4f1f6d34209ec5c475c900270ecd.tar.gz
classes/kernel: Use a copy of image for kernel*.rpm if fs doesn't support symlinks
Some filesystems don't support symlink, then you will get failure when you install or update the kernel rpm package. Now we use a copy of image for these filesystems instead of symlink. Suggested-by: Bruce Ashfield <bruce.ashfield@gmail.com> Suggested-by: Richard Purdie <richard.purdie@linuxfoundation.org> (From OE-Core rev: bb946b8cdbd01408bfa0ba8e53f9e09931dfb29d) Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/kernel.bbclass22
1 files changed, 19 insertions, 3 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index c9044befbe..c834aad033 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -95,6 +95,25 @@ python __anonymous () {
95 d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, typelower)) 95 d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, typelower))
96 d.setVar('PKG_%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower)) 96 d.setVar('PKG_%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower))
97 d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1') 97 d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1')
98 d.setVar('pkg_postinst_%s-image-%s' % (kname,typelower), """set +e
99if [ -n "$D" ]; then
100 ln -sf %s-${KERNEL_VERSION} $D/${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1
101else
102 ln -sf %s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1
103 if [ $? -ne 0 ]; then
104 echo "Filesystem on ${KERNEL_IMAGEDEST}/ doesn't support symlinks, falling back to copied image (%s)."
105 install -m 0644 ${KERNEL_IMAGEDEST}/%s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s
106 fi
107fi
108set -e
109""" % (type, type, type, type, type, type, type))
110 d.setVar('pkg_postrm_%s-image-%s' % (kname,typelower), """set +e
111if [ -f "${KERNEL_IMAGEDEST}/%s" -o -L "${KERNEL_IMAGEDEST}/%s" ]; then
112 rm -f ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1
113fi
114set -e
115""" % (type, type, type))
116
98 117
99 image = d.getVar('INITRAMFS_IMAGE') 118 image = d.getVar('INITRAMFS_IMAGE')
100 # If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set to 0, 119 # If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set to 0,
@@ -386,9 +405,6 @@ kernel_do_install() {
386 install -d ${D}/boot 405 install -d ${D}/boot
387 for imageType in ${KERNEL_IMAGETYPES} ; do 406 for imageType in ${KERNEL_IMAGETYPES} ; do
388 install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} ${D}/${KERNEL_IMAGEDEST}/${imageType}-${KERNEL_VERSION} 407 install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} ${D}/${KERNEL_IMAGEDEST}/${imageType}-${KERNEL_VERSION}
389 if [ "${KERNEL_PACKAGE_NAME}" = "kernel" ]; then
390 ln -sf ${imageType}-${KERNEL_VERSION} ${D}/${KERNEL_IMAGEDEST}/${imageType}
391 fi
392 done 408 done
393 install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION} 409 install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION}
394 install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION} 410 install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION}