summaryrefslogtreecommitdiffstats
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:59 +0100
commit129c98c182231409647b362321efcaba91bdc9da (patch)
tree23d094750b2683fc3449dd70c1268fcd449e6d1e
parent62892b2f685f12b78a83ee90b847f875c2388b1d (diff)
downloadpoky-129c98c182231409647b362321efcaba91bdc9da.tar.gz
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. (From OE-Core rev: c08d7093bf654ffedb155c5627972e9ecfeb0b60) 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 d7631cac5c..91f209a9cf 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -183,6 +183,9 @@ def sstate_installpkg(ss, d):
183 os.system("sed -i -e s:FIXMESTAGINGDIRTARGET:%s:g %s" % (staging_target, sstateinst + file)) 183 os.system("sed -i -e s:FIXMESTAGINGDIRTARGET:%s:g %s" % (staging_target, sstateinst + file))
184 os.system("sed -i -e s:FIXMESTAGINGDIRHOST:%s:g %s" % (staging_host, sstateinst + file)) 184 os.system("sed -i -e s:FIXMESTAGINGDIRHOST:%s:g %s" % (staging_host, sstateinst + file))
185 os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, sstateinst + file)) 185 os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, sstateinst + file))
186 # Need to remove this or we'd copy it into the target directory and may
187 # conflict with another writer
188 os.remove(fixmefn)
186 189
187 for state in ss['dirs']: 190 for state in ss['dirs']:
188 prepdir(state[1]) 191 prepdir(state[1])