summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-09-07 18:34:47 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-09-07 23:39:50 +0100
commitc08d7093bf654ffedb155c5627972e9ecfeb0b60 (patch)
treef4e8f197914737725f705c476c2cc5bae26f6ffb
parent0c12210f63f9705af98bcf5de8ccd715026bace3 (diff)
downloadopenembedded-core-c08d7093bf654ffedb155c5627972e9ecfeb0b60.tar.gz
openembedded-core-c08d7093bf654ffedb155c5627972e9ecfeb0b60.tar.bz2
openembedded-core-c08d7093bf654ffedb155c5627972e9ecfeb0b60.tar.xz
openembedded-core-c08d7093bf654ffedb155c5627972e9ecfeb0b60.zip
sstate: Avoid contention between sstate packages
If several sstate packages are decompressing at the same time, they can conflict over the "fixmepath". If two packages try to write to this at the same time it results in an error. To avoid this we remove the file once we've finished processing it. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/sstate.bbclass3
1 files changed, 3 insertions, 0 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index d7631cac5..91f209a9c 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -183,6 +183,9 @@ def sstate_installpkg(ss, d):
os.system("sed -i -e s:FIXMESTAGINGDIRTARGET:%s:g %s" % (staging_target, sstateinst + file))
os.system("sed -i -e s:FIXMESTAGINGDIRHOST:%s:g %s" % (staging_host, sstateinst + file))
os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, sstateinst + file))
+ # Need to remove this or we'd copy it into the target directory and may
+ # conflict with another writer
+ os.remove(fixmefn)
for state in ss['dirs']:
prepdir(state[1])