summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Looijmans <mike.looijmans@topic.nl>2015-09-15 11:50:39 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-22 18:05:53 +0100
commitfce257892488b9ef537526ccf412e9deda37c439 (patch)
tree4cd59e5e1a00630b71f7c47d827d209cb9b833ae
parentf5752cefe6ee374bffadcecb2ec50bfd38376b7d (diff)
downloadopenembedded-core-fce257892488b9ef537526ccf412e9deda37c439.tar.gz
openembedded-core-fce257892488b9ef537526ccf412e9deda37c439.tar.bz2
openembedded-core-fce257892488b9ef537526ccf412e9deda37c439.zip
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. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/classes/image_types.bbclass22
1 files 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
- fi
- if [ -e ${IMAGE_NAME}${vname}.rootfs.ubi ]; then
- ln -sf ${IMAGE_NAME}${vname}.rootfs.ubi \
- ${IMAGE_LINK_NAME}${vname}.ubi
+ # 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
- cd -
}
IMAGE_CMD_multiubi () {