summaryrefslogtreecommitdiffstats
path: root/meta/classes/sstate.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-03-29 11:57:37 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-03-29 14:01:51 +0100
commit2f0c06a4526fd117f35b216edbed5b89fc87d1ab (patch)
treeb7f4a050f98f7b76847ac2051b433f3cadbe06e6 /meta/classes/sstate.bbclass
parente7f52f8f4c3ca7fad49206ca35c759a70bc7ca13 (diff)
downloadpoky-2f0c06a4526fd117f35b216edbed5b89fc87d1ab.tar.gz
sstate: Add support for taking shared lockfiles
(From OE-Core rev: c411a10e06f479ff364c07766f7c77907b7b4a16) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/sstate.bbclass')
-rw-r--r--meta/classes/sstate.bbclass7
1 files changed, 7 insertions, 0 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 00a709ba44..cc0b8665f6 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -58,6 +58,7 @@ def sstate_init(name, task, d):
58 ss['dirs'] = [] 58 ss['dirs'] = []
59 ss['plaindirs'] = [] 59 ss['plaindirs'] = []
60 ss['lockfiles'] = [] 60 ss['lockfiles'] = []
61 ss['lockfiles-shared'] = []
61 return ss 62 return ss
62 63
63def sstate_state_fromvars(d, task = None): 64def sstate_state_fromvars(d, task = None):
@@ -72,6 +73,7 @@ def sstate_state_fromvars(d, task = None):
72 outputs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-outputdirs', d) or "", d)).split() 73 outputs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-outputdirs', d) or "", d)).split()
73 plaindirs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-plaindirs', d) or "", d)).split() 74 plaindirs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-plaindirs', d) or "", d)).split()
74 lockfiles = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-lockfile', d) or "", d)).split() 75 lockfiles = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-lockfile', d) or "", d)).split()
76 lockfilesshared = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-lockfile-shared', d) or "", d)).split()
75 interceptfuncs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-interceptfuncs', d) or "", d)).split() 77 interceptfuncs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-interceptfuncs', d) or "", d)).split()
76 if not name or len(inputs) != len(outputs): 78 if not name or len(inputs) != len(outputs):
77 bb.fatal("sstate variables not setup correctly?!") 79 bb.fatal("sstate variables not setup correctly?!")
@@ -80,6 +82,7 @@ def sstate_state_fromvars(d, task = None):
80 for i in range(len(inputs)): 82 for i in range(len(inputs)):
81 sstate_add(ss, inputs[i], outputs[i], d) 83 sstate_add(ss, inputs[i], outputs[i], d)
82 ss['lockfiles'] = lockfiles 84 ss['lockfiles'] = lockfiles
85 ss['lockfiles-shared'] = lockfilesshared
83 ss['plaindirs'] = plaindirs 86 ss['plaindirs'] = plaindirs
84 ss['interceptfuncs'] = interceptfuncs 87 ss['interceptfuncs'] = interceptfuncs
85 return ss 88 return ss
@@ -101,6 +104,8 @@ def sstate_install(ss, d):
101 bb.fatal("Package already staged (%s)?!" % manifest) 104 bb.fatal("Package already staged (%s)?!" % manifest)
102 105
103 locks = [] 106 locks = []
107 for lock in ss['lockfiles-shared']:
108 locks.append(bb.utils.lockfile(lock, True))
104 for lock in ss['lockfiles']: 109 for lock in ss['lockfiles']:
105 locks.append(bb.utils.lockfile(lock)) 110 locks.append(bb.utils.lockfile(lock))
106 111
@@ -231,6 +236,8 @@ def sstate_clean(ss, d):
231 236
232 if os.path.exists(manifest): 237 if os.path.exists(manifest):
233 locks = [] 238 locks = []
239 for lock in ss['lockfiles-shared']:
240 locks.append(bb.utils.lockfile(lock, True))
234 for lock in ss['lockfiles']: 241 for lock in ss['lockfiles']:
235 locks.append(bb.utils.lockfile(lock)) 242 locks.append(bb.utils.lockfile(lock))
236 243