]> code.ossystems Code Review - openembedded-core.git/commitdiff
initscripts: remove warnings on read-only-rootfs (again)
authorMartin Hundebøll <martin@geanix.com>
Wed, 21 Aug 2019 10:25:53 +0000 (12:25 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 27 Aug 2019 12:42:49 +0000 (13:42 +0100)
When the populate-volatile.sh initscript tests if a configured symlink
is already in place, it uses readlink with the '-f' (follow) option:

> [ "$(readlink -f $source)" = "$dest" ]

If the test fails, it proceeds to delete the exisiting folder/file, and
create the configured symlink.

However, the '-f' option to readlink makes it follow symlinks pointing
at symlinks. If the $dest argument is a symlink, the above test fails,
and warnings are printed due to changing a read-only rootfs.

This is the case for /tmp, and /etc/resolv.conf:
> /tmp -> /var/tmp -> /var/volatile/tmp
> /etc/resolv.conf -> /var/run/resolv.conf -> /run/resolv.conf

Fix the warnings by removing the '-f' option, so that the test matches
the configuration.

[ YOCTO #10814 ]

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh

index 6f965a6870635c27bdb1e48a742ca8b1e9808bce..1c525b71bd629cf9d65e137e28c5a78c354b2f1d 100755 (executable)
@@ -80,7 +80,7 @@ mk_dir() {
 link_file() {
        EXEC="
        if [ -L \"$2\" ]; then
-               [ \"\$(readlink -f \"$2\")\" != \"$1\" ] && { rm -f \"$2\"; ln -sf \"$1\" \"$2\"; };
+               [ \"\$(readlink \"$2\")\" != \"$1\" ] && { rm -f \"$2\"; ln -sf \"$1\" \"$2\"; };
        elif [ -d \"$2\" ]; then
                if awk '\$2 == \"$2\" {exit 1}' /proc/mounts; then
                        cp -a $2/* $1 2>/dev/null;