mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 17:19:20 +00:00
populate-volatile.sh: improve the handling of link config items
Previously, if there's a link config item in the config file like l root root 1777 /tmp /var/tmp and /tmp has existed, the symlink will not be created correctly. Another example is the /run directory. If /run directory has been created by some recipe or script before populate-volatile.sh runs, the symlink of /run to /var/run will not be created correctly. This patch ensures that the system creates symlinks exactly as the config file tells it. [YOCTO #3404] [YOCTO #3406] (From OE-Core rev: a54287d8e3d75a727c8ed5654a822bda256b0849) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -68,20 +68,27 @@ mk_dir() {
|
||||
}
|
||||
|
||||
link_file() {
|
||||
EXEC="test -e \"$2\" -o -L $2 || ln -s \"$1\" \"$2\" >/dev/tty0 2>&1"
|
||||
EXEC="
|
||||
if [ -L \"$2\" ]; then
|
||||
[ \"\$(readlink -f \"$2\")\" != \"\$(readlink -f \"$1\")\" ] && { rm -f \"$2\"; ln -sf \"$1\" \"$2\"; };
|
||||
elif [ -d \"$2\" ]; then
|
||||
for f in $2/* $2/.[^.]*; do [ -e \$f ] && cp -rf \$f $1; done;
|
||||
rm -rf \"$2\";
|
||||
ln -sf \"$1\" \"$2\";
|
||||
else
|
||||
ln -sf \"$1\" \"$2\";
|
||||
fi
|
||||
"
|
||||
|
||||
test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache.build
|
||||
[ -e "$2" ] && {
|
||||
echo "Cannot create link over existing -${TNAME}-." >&2
|
||||
} || {
|
||||
if [ "$ROOT_DIR" = "/" ]; then
|
||||
eval $EXEC &
|
||||
else
|
||||
# For the same reason with create_file(), failures should
|
||||
# not be logged.
|
||||
eval $EXEC > /dev/null 2>&1 &
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$ROOT_DIR" = "/" ]; then
|
||||
eval $EXEC &
|
||||
else
|
||||
# For the same reason with create_file(), failures should
|
||||
# not be logged.
|
||||
eval $EXEC > /dev/null 2>&1 &
|
||||
fi
|
||||
}
|
||||
|
||||
check_requirements() {
|
||||
@@ -148,10 +155,8 @@ apply_cfgfile() {
|
||||
|
||||
[ "${TTYPE}" = "l" ] && {
|
||||
TSOURCE="$TLTARGET"
|
||||
[ -L "${TNAME}" ] || {
|
||||
[ "${VERBOSE}" != "no" ] && echo "Creating link -${TNAME}- pointing to -${TSOURCE}-."
|
||||
link_file "${TSOURCE}" "${TNAME}" &
|
||||
}
|
||||
[ "${VERBOSE}" != "no" ] && echo "Creating link -${TNAME}- pointing to -${TSOURCE}-."
|
||||
link_file "${TSOURCE}" "${TNAME}" &
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user