diff options
author | Mike Looijmans <mike.looijmans@topic.nl> | 2015-09-15 11:50:39 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-09-22 18:05:53 +0100 |
commit | fce257892488b9ef537526ccf412e9deda37c439 (patch) | |
tree | 4cd59e5e1a00630b71f7c47d827d209cb9b833ae | |
parent | f5752cefe6ee374bffadcecb2ec50bfd38376b7d (diff) | |
download | openembedded-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.bbclass | 22 |
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 () { |