diff options
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/sstate.bbclass | 7 |
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 | ||
63 | def sstate_state_fromvars(d, task = None): | 64 | def 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 | ||