sstate.bbclass: fix parallel building issue
authorRoy.Li <rongqing.li@windriver.com>
Tue, 13 Aug 2013 08:20:18 +0000 (16:20 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 14 Sep 2013 07:20:59 +0000 (08:20 +0100)
sstate_package creates hardlink from sysroot to SSTATE_BUILDDIR, then
sstate_create_package will store SSTATE_BUILDDIR into a archive file by
tar, but once other packages install the same file into sysroot, the
creating the archive file will fail with below error:

    DEBUG: Executing shell function sstate_create_package
    tar: x86_64-linux/usr/share/aclocal/xorg-macros.m4: file changed as we read it

This kind of error is harmless, use --ignore-failed-read to ignore it.
The error in tar occurs when the timestamp of the file changes and this
can happen when the number of symlinks change. The file will be included
in the archive.

[YOCTO #5122]

(From OE-Core rev: 4b3e353a532c7b68b0bb86df4a2fcc44f8bb3ef2)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/sstate.bbclass

index b088e58..37ade3f 100644 (file)
@@ -566,7 +566,7 @@ sstate_create_package () {
        TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
        # Need to handle empty directories
        if [ "$(ls -A)" ]; then
-               tar -czf $TFILE *
+               tar --ignore-failed-read -czf $TFILE *
        else
                tar -cz --file=$TFILE --files-from=/dev/null
        fi