[OE-core] [PATCHv2] initscripts: remove warnings on read-only-rootfs (again)

Jacob Kroon jacob.kroon at gmail.com
Thu Aug 22 16:10:18 UTC 2019


On 8/21/19 12:25 PM, Jacob Kroon wrote:
> From: Martin Hundebøll <martin at geanix.com>
> 
> 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 at geanix.com>
> Signed-off-by: Jacob Kroon <jacob.kroon at gmail.com>
> ---
> 
> v2:
>   * Added my own signed-off-by tag
>   * Added reference to YOCTO #10814
>   * Original patch: https://patchwork.openembedded.org/patch/152602/
> 
>   .../initscripts/initscripts-1.0/populate-volatile.sh            | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
> index 6f965a6870..1c525b71bd 100755
> --- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
> +++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
> @@ -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;
> 

Hi Chen,

Can I ask you to review the patch above ?
Having spent some time staring at the change and reading up on intended 
behaviour, I think the patch is correct.

Thanks,
Jacob


More information about the Openembedded-core mailing list