adt-installer: ensure directory exists before copying/removing
If the installation is done in a directory which already contains a valid installation, opkg will not install anything and the moving the contents of /install/dir/opt/poky/1.2 (for example) to /install/dir will throw some errors. However, the install directory will not be affected. This patch will ensure that the /install/dir/opt/poky/1.2 exists. (From OE-Core rev: 1cd01533cbec0e9ed61bbd33ecdf5dc306a32eec) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
bd73a4b615
commit
bf94f4d6f9
|
@ -158,31 +158,33 @@ fi
|
|||
# the entire directory structure. We could patch opkg to do that but it's far
|
||||
# simpler to do that here and achieve the same result.
|
||||
# This is done in two steps:
|
||||
# Step 1: copy ./opt/${DISTRO}/${SDK_VERSION} contents to $NATIVE_INSTALL_DIR.
|
||||
# We cannot use move if $NATIVE_INSTALL_DIR is not empty (for example: contains
|
||||
# another SDK)
|
||||
$SUDO cp -r $NATIVE_INSTALL_DIR/$DEFAULT_INSTALL_FOLDER/* $NATIVE_INSTALL_DIR
|
||||
if [ -d $NATIVE_INSTALL_DIR/$DEFAULT_INSTALL_FOLDER ]; then
|
||||
# Step 1: copy ./opt/${DISTRO}/${SDK_VERSION} contents to $NATIVE_INSTALL_DIR.
|
||||
# We cannot use move if $NATIVE_INSTALL_DIR is not empty (for example: contains
|
||||
# another SDK)
|
||||
$SUDO cp -r $NATIVE_INSTALL_DIR/$DEFAULT_INSTALL_FOLDER/* $NATIVE_INSTALL_DIR
|
||||
|
||||
# delete the source directory now
|
||||
$SUDO rm -rf $NATIVE_INSTALL_DIR/$DEFAULT_INSTALL_FOLDER/*
|
||||
# delete the source directory now
|
||||
$SUDO rm -rf $NATIVE_INSTALL_DIR/$DEFAULT_INSTALL_FOLDER/*
|
||||
|
||||
# Step 2: Delete the ./opt/${DISTRO}/${SDK_VERSION} directories too, they should be empty
|
||||
dir=$NATIVE_INSTALL_DIR/$DEFAULT_INSTALL_FOLDER
|
||||
while [ "$dir" != "$NATIVE_INSTALL_DIR" ]; do
|
||||
# if the user chose / as the install folder, then we should leave /opt in place
|
||||
if [ "$dir" = "/opt" ]; then
|
||||
break
|
||||
fi
|
||||
# Step 2: Delete the ./opt/${DISTRO}/${SDK_VERSION} directories too, they should be empty
|
||||
dir=$NATIVE_INSTALL_DIR/$DEFAULT_INSTALL_FOLDER
|
||||
while [ "$dir" != "$NATIVE_INSTALL_DIR" ]; do
|
||||
# if the user chose / as the install folder, then we should leave /opt in place
|
||||
if [ "$dir" = "/opt" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
# try to delete the directory, only if it's empty
|
||||
$SUDO rmdir $dir
|
||||
if [ $? -ne 0 ]; then
|
||||
break
|
||||
fi
|
||||
# try to delete the directory, only if it's empty
|
||||
$SUDO rmdir $dir
|
||||
if [ $? -ne 0 ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
# go to the next directory
|
||||
dir=$(dirname $dir)
|
||||
done
|
||||
# go to the next directory
|
||||
dir=$(dirname $dir)
|
||||
done
|
||||
fi
|
||||
|
||||
# Link the ld.so.cache file into the hosts filesystem
|
||||
if [ ! -f "$OECORE_NATIVE_SYSROOT/etc/ld.so.cache" ]; then
|
||||
|
|
Loading…
Reference in New Issue