On 08/13/2013 01:20 AM, rongqing...@windriver.com wrote:
From: "Roy.Li" <rongqing...@windriver.com>

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.

I am not sure it's so harmless, what if the file is corrupted, then we have a bad sstate tarball. You have identified the part of the root cause being the hardlink, but what if the file actually does change (which would be a different bug potentially), then your packaging a differet set of macros (in this case) with the sysroot.


Sau!

Signed-off-by: Roy.Li <rongqing...@windriver.com>
---
  meta/classes/sstate.bbclass |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index c1ca54b..3e2fedd 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -565,7 +565,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

_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to