From 9241ec579309e9d27e9391815a167911d20b38c1 Mon Sep 17 00:00:00 2001 From: Mike Looijmans Date: Tue, 15 Sep 2015 11:50:39 +0200 Subject: [PATCH] image_types.bbclass: Don't try to create ubi symlink twice Fixes b6e64de541b37 "Restore compatibility with previous UBI filesystems" The multivolume UBI code creates symlinks for each volume. If the volume name is empty, it will create a symlink that the rootfs code will attempt to create again later, resulting in a crash like this (unless IMAGE_LINK_NAME is blank): ERROR: Error executing a python function in .../recipes-core/images/my-image.bb: File: '.../oe-core/meta/lib/oe/image.py', lineno: 203, function: _create_symlinks *** 0203: os.symlink(src, dst) Exception: OSError: [Errno 17] File exists To prevent this from happening, only create symlinks to volumes that have a name, and let the rootfs script create the default symlink later. (From OE-Core rev: fce257892488b9ef537526ccf412e9deda37c439) Signed-off-by: Mike Looijmans Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/image_types.bbclass | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass index 306403e310..afa2e8eb8f 100644 --- a/meta/classes/image_types.bbclass +++ b/meta/classes/image_types.bbclass @@ -139,17 +139,19 @@ multiubi_mkfs() { # Cleanup cfg file mv ubinize${vname}.cfg ${DEPLOY_DIR_IMAGE}/ - # Create own symlink - cd ${DEPLOY_DIR_IMAGE} - if [ -e ${IMAGE_NAME}${vname}.rootfs.ubifs ]; then - ln -sf ${IMAGE_NAME}${vname}.rootfs.ubifs \ - ${IMAGE_LINK_NAME}${vname}.ubifs + # Create own symlinks for 'named' volumes + if [ -n "$vname" ]; then + cd ${DEPLOY_DIR_IMAGE} + if [ -e ${IMAGE_NAME}${vname}.rootfs.ubifs ]; then + ln -sf ${IMAGE_NAME}${vname}.rootfs.ubifs \ + ${IMAGE_LINK_NAME}${vname}.ubifs + fi + if [ -e ${IMAGE_NAME}${vname}.rootfs.ubi ]; then + ln -sf ${IMAGE_NAME}${vname}.rootfs.ubi \ + ${IMAGE_LINK_NAME}${vname}.ubi + fi + cd - fi - if [ -e ${IMAGE_NAME}${vname}.rootfs.ubi ]; then - ln -sf ${IMAGE_NAME}${vname}.rootfs.ubi \ - ${IMAGE_LINK_NAME}${vname}.ubi - fi - cd - } IMAGE_CMD_multiubi () {