From: Richard Purdie Date: Wed, 7 Sep 2011 17:34:47 +0000 (+0100) Subject: sstate: Avoid contention between sstate packages X-Git-Tag: 2011-1~141 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=c08d7093bf654ffedb155c5627972e9ecfeb0b60;p=openembedded-core.git 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 --- 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): 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])