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 <mike.looijmans@topic.nl>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mike Looijmans 2015-09-15 11:50:39 +02:00 committed by Richard Purdie
parent 266e417bb8
commit 9241ec5793
1 changed files with 12 additions and 10 deletions

View File

@ -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 () {