]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
image, kernel: allow to disable creating the hardlinks by setting *LINK_NAME variable...
authorMartin Jansa <Martin.Jansa@gmail.com>
Thu, 11 May 2023 07:35:34 +0000 (09:35 +0200)
committerMartin Jansa <martin.jansa@gmail.com>
Wed, 31 Jan 2024 10:07:05 +0000 (11:07 +0100)
* they can be disabled individually by setting *_LINK_NAME
  to empty or disable them all by setting IMAGE_VERSION_SUFFIX
  to empty (making them equal to *_NAME variables)

There are couple *_LINK_NAME variables:

IMAGE_LINK_NAME = ""
KERNEL_IMAGE_LINK_NAME = ""
KERNEL_DTB_LINK_NAME = ""
KERNEL_FIT_LINK_NAME = ""
MODULE_TARBALL_LINK_NAME = ""
INITRAMFS_LINK_NAME = ""

or

IMAGE_MACHINE_SUFFIX = ""
IMAGE_NAME_SUFFIX = ""
IMAGE_VERSION_SUFFIX = ""

to have really the minimal filenames:

$ ls tmp/deploy/images/qemux86-64/
bzImage                  core-image-minimal.manifest       core-image-minimal.tar.bz2
bzImage-qemux86-64.bin   core-image-minimal.qemuboot.conf  core-image-minimal.testdata.json
core-image-minimal.ext4  core-image-minimal.spdx.tar.zst   modules-qemux86-64.tgz

and to remove MACHINE name from kernel artifacts as well
(if you prefer the MACHINE name in directory only), you can set:
KERNEL_ARTIFACT_NAME = ""

[YOCTO #12937]

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
meta/classes-recipe/image.bbclass
meta/classes-recipe/kernel-devicetree.bbclass
meta/classes-recipe/kernel-fitimage.bbclass
meta/classes-recipe/kernel.bbclass

index d863dc9652faeadf464496cb119cc5ddcbf2d195..45fad253ce1da168416325305d1626863580b571 100644 (file)
@@ -596,7 +596,8 @@ python create_symlinks() {
     taskname = d.getVar("BB_CURRENTTASK")
     subimages = (d.getVarFlag("do_" + taskname, 'subimages', False) or "").split()
 
-    if not link_name:
+    if not link_name or link_name == img_name:
+        bb.note("Not creating versioned hardlinks, because IMAGE_LINK_NAME is empty or identical to IMAGE_NAME")
         return
     for type in subimages:
         dst = os.path.join(deploy_dir, link_name + "." + type)
index cbfaa5c183bb27359a6a4ad8f08b477f2e698852..1fde90f0231b8a11860db7cd6aa996150102eeb3 100644 (file)
@@ -127,22 +127,24 @@ kernel_do_deploy:append() {
        done
 }
 kernel_do_deploy_links:append() {
-       for dtbf in ${KERNEL_DEVICETREE}; do
-               dtb=`normalize_dtb "$dtbf"`
-               dtb_ext=${dtb##*.}
-               dtb_base_name=`basename $dtb .$dtb_ext`
-               if [ -n "${KERNEL_DTB_LINK_NAME}" ] ; then
+       if [ -z "${KERNEL_DTB_LINK_NAME}" -o "${KERNEL_DTB_LINK_NAME}" = "${KERNEL_DTB_NAME}" ] ; then
+               bbnote "Not creating versioned hardlinks, because KERNEL_DTB_LINK_NAME is empty or identical to KERNEL_DTB_NAME"
+       else
+               for dtbf in ${KERNEL_DEVICETREE}; do
+                       dtb=`normalize_dtb "$dtbf"`
+                       dtb_ext=${dtb##*.}
+                       dtb_base_name=`basename $dtb .$dtb_ext`
                        ln -vf $deployDir/$dtb_base_name.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
-               fi
-               for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
-                       if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ] && [ -n "${KERNEL_DTB_LINK_NAME}" ]; then
-                               ln -vf $deployDir/$type-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT} \
-                                       $deployDir/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
-                               if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
-                                       ln -vf $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT} \
-                                               $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+                       for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
+                               if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ] ; then
+                                       ln -vf $deployDir/$type-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT} \
+                                               $deployDir/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+                                       if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
+                                               ln -vf $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT} \
+                                                       $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+                                       fi
                                fi
-                       fi
+                       done
                done
-       done
+       fi
 }
index 0ad200d9db00e35b58ae73649791148bfb636032..50d89a4383cbde9bdf92d4dd9575f50eb424416f 100644 (file)
@@ -860,22 +860,17 @@ kernel_do_deploy:append() {
 }
 kernel_do_deploy_links:append() {
        if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
-               if [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ]; then
-                       if [ -n "${KERNEL_FIT_LINK_NAME}" ] ; then
+               if [ -z "${KERNEL_FIT_LINK_NAME}" -o "${KERNEL_FIT_LINK_NAME}" = "${KERNEL_FIT_NAME}" ] ; then
+                       bbnote "Not creating versioned hardlinks, because KERNEL_FIT_LINK_NAME is empty or identical to KERNEL_FIT_NAME"
+               else
+                       if [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ]; then
                                ln -vf $deployDir/fitImage-its-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${KERNEL_FIT_LINK_NAME}"
-                       fi
-                       if [ -n "${KERNEL_FIT_LINK_NAME}" ] ; then
                                ln -vf $deployDir/fitImage-linux.bin-${KERNEL_FIT_NAME}${KERNEL_FIT_BIN_EXT} "$deployDir/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}"
                        fi
-               fi
 
-               if [ -n "${INITRAMFS_IMAGE}" ]; then
-                       if [ -n "${KERNEL_FIT_LINK_NAME}" ] ; then
+                       if [ -n "${INITRAMFS_IMAGE}" ]; then
                                ln -vf $deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
-                       fi
-
-                       if [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ]; then
-                               if [ -n "${KERNEL_FIT_LINK_NAME}" ] ; then
+                               if [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ]; then
                                        ln -vf $deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}${KERNEL_FIT_BIN_EXT} "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
                                fi
                        fi
index 2b74028dd8d6125de3fd058f3b7f2afcd5251661..5bca8873789ca65ecf312a88002f7055aa32ce4e 100644 (file)
@@ -855,21 +855,33 @@ kernel_do_deploy_links() {
                mkdir "$deployDir"
        fi
 
-       for imageType in ${KERNEL_IMAGETYPES} ; do
-               ln -vf $deployDir/$imageType-${KERNEL_IMAGE_NAME}.bin $deployDir/$imageType-${KERNEL_IMAGE_LINK_NAME}${KERNEL_IMAGE_BIN_EXT}
-       done
+       if [ -z "${KERNEL_IMAGE_LINK_NAME}" -o "${KERNEL_IMAGE_LINK_NAME}" = "${KERNEL_IMAGE_NAME}" ] ; then
+               bbnote "Not creating versioned hardlinks for kernel images, because KERNEL_IMAGE_LINK_NAME is empty or identical to KERNEL_IMAGE_NAME"
+       else
+               for imageType in ${KERNEL_IMAGETYPES} ; do
+                       ln -vf $deployDir/$imageType-${KERNEL_IMAGE_NAME}.bin $deployDir/$imageType-${KERNEL_IMAGE_LINK_NAME}${KERNEL_IMAGE_BIN_EXT}
+               done
+       fi
 
-       if [ ${MODULE_TARBALL_DEPLOY} = "1" -a -f $deployDir/modules-${MODULE_TARBALL_NAME}.tgz ] ; then
-               ln -vf $deployDir/modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
+       if [ -z "${MODULE_TARBALL_LINK_NAME}" -o "${MODULE_TARBALL_LINK_NAME}" = "${MODULE_TARBALL_NAME}" ] ; then
+               bbnote "Not creating versioned hardlinks for module tarball, because MODULE_TARBALL_LINK_NAME is empty or identical to MODULE_TARBALL_NAME"
+       else
+               if [ ${MODULE_TARBALL_DEPLOY} = "1" -a -f $deployDir/modules-${MODULE_TARBALL_NAME}.tgz ] ; then
+                       ln -vf $deployDir/modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
+               fi
        fi
 
-       if [ ! -z "${INITRAMFS_IMAGE}" -a "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then
-               for imageType in ${KERNEL_IMAGETYPES} ; do
-                       if [ "$imageType" = "fitImage" ] ; then
-                               continue
-                       fi
-                       ln -vf $deployDir/$imageType-${INITRAMFS_NAME}.bin $deployDir/$imageType-${INITRAMFS_LINK_NAME}${KERNEL_IMAGE_BIN_EXT}
-               done
+       if [ -z "${INITRAMFS_LINK_NAME}" -o "${INITRAMFS_LINK_NAME}" = "${INITRAMFS_NAME}" ] ; then
+               bbnote "Not creating versioned hardlinks for initramfs image, because INITRAMFS_LINK_NAME is empty"
+       else
+               if [ ! -z "${INITRAMFS_IMAGE}" -a "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then
+                       for imageType in ${KERNEL_IMAGETYPES} ; do
+                               if [ "$imageType" = "fitImage" ] ; then
+                                       continue
+                               fi
+                               ln -vf $deployDir/$imageType-${INITRAMFS_NAME}.bin $deployDir/$imageType-${INITRAMFS_LINK_NAME}${KERNEL_IMAGE_BIN_EXT}
+                       done
+               fi
        fi
 }
 do_deploy_links[prefuncs] += "read_subpackage_metadata"