Patchwork sstate: Use -m option to tar when unpacking sstate

login
register
mail settings
Submitter Richard Purdie
Date Oct. 11, 2012, 12:20 p.m.
Message ID <1349958020.14368.12.camel@ted>
Download mbox | patch
Permalink /patch/38087/
State Accepted
Commit 2d89cff42af2bb0049224bfaaebaa2b21966169f
Headers show

Comments

Richard Purdie - Oct. 11, 2012, 12:20 p.m.
We've noticed failures on the project autobuilders where a shared sstate
directory is used across multiple builders and the clocks become skewed.

Most of the time this causes harmless building but if this happens where
an environment is changed (make install vs make in qt4-x11-free for example),
the build can fail.

This avoids modification times in the future and should make builds safer
in shared environments sstate was designed for.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
Enrico Scholz - Oct. 11, 2012, 1:32 p.m.
Richard Purdie
<richard.purdie-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
writes:

> We've noticed failures on the project autobuilders where a shared
> sstate directory is used across multiple builders and the clocks
> become skewed.

I think, 'ntp' is a better way to solve this...


> This avoids modification times in the future and should make builds
> safer in shared environments sstate was designed for.

But this will remove information about the age of (packaged) files,
won't it?  E.g. previously, I was able to see on the target machine,
when a file was modified. It is not a critical feature but often very
useful.

Now, the date on image will be either the former date or the date when
the staged tarball will be extracted (--> e.g. after 'bitbake -c clean').
Sounds confusing.


> -	tar -xvzf ${SSTATE_PKG}
> +	tar -xmvzf ${SSTATE_PKG}



Enrico

Patch

diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 3fcaa65..b60c766 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -544,7 +544,7 @@  sstate_create_package () {
 sstate_unpack_package () {
 	mkdir -p ${SSTATE_INSTDIR}
 	cd ${SSTATE_INSTDIR}
-	tar -xvzf ${SSTATE_PKG}
+	tar -xmvzf ${SSTATE_PKG}
 }
 
 # Need to inject information about classes not in the global configuration scope