summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-03-29 11:57:37 +0100
committerSaul Wold <sgw@linux.intel.com>2011-05-06 17:44:21 -0700
commit0e55651fd0f12c98c5a4b894dde9162c8abcdca7 (patch)
tree5da3f8b1b1a6b69cce784deaead964cb623f39a0 /meta
parent8c888bf67a5c86e1f7f587389ced4075aaad0eb1 (diff)
downloadpoky-0e55651fd0f12c98c5a4b894dde9162c8abcdca7.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')
-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 1dfb43bdff..be650c4af4 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -60,6 +60,7 @@ def sstate_init(name, task, d):
60 ss['dirs'] = [] 60 ss['dirs'] = []
61 ss['plaindirs'] = [] 61 ss['plaindirs'] = []
62 ss['lockfiles'] = [] 62 ss['lockfiles'] = []
63 ss['lockfiles-shared'] = []
63 return ss 64 return ss
64 65
65def sstate_state_fromvars(d, task = None): 66def sstate_state_fromvars(d, task = None):
@@ -74,6 +75,7 @@ def sstate_state_fromvars(d, task = None):
74 outputs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-outputdirs', d) or "", d)).split() 75 outputs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-outputdirs', d) or "", d)).split()
75 plaindirs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-plaindirs', d) or "", d)).split() 76 plaindirs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-plaindirs', d) or "", d)).split()
76 lockfiles = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-lockfile', d) or "", d)).split() 77 lockfiles = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-lockfile', d) or "", d)).split()
78 lockfilesshared = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-lockfile-shared', d) or "", d)).split()
77 interceptfuncs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-interceptfuncs', d) or "", d)).split() 79 interceptfuncs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-interceptfuncs', d) or "", d)).split()
78 if not name or len(inputs) != len(outputs): 80 if not name or len(inputs) != len(outputs):
79 bb.fatal("sstate variables not setup correctly?!") 81 bb.fatal("sstate variables not setup correctly?!")
@@ -82,6 +84,7 @@ def sstate_state_fromvars(d, task = None):
82 for i in range(len(inputs)): 84 for i in range(len(inputs)):
83 sstate_add(ss, inputs[i], outputs[i], d) 85 sstate_add(ss, inputs[i], outputs[i], d)
84 ss['lockfiles'] = lockfiles 86 ss['lockfiles'] = lockfiles
87 ss['lockfiles-shared'] = lockfilesshared
85 ss['plaindirs'] = plaindirs 88 ss['plaindirs'] = plaindirs
86 ss['interceptfuncs'] = interceptfuncs 89 ss['interceptfuncs'] = interceptfuncs
87 return ss 90 return ss
@@ -103,6 +106,8 @@ def sstate_install(ss, d):
103 bb.fatal("Package already staged (%s)?!" % manifest) 106 bb.fatal("Package already staged (%s)?!" % manifest)
104 107
105 locks = [] 108 locks = []
109 for lock in ss['lockfiles-shared']:
110 locks.append(bb.utils.lockfile(lock, True))
106 for lock in ss['lockfiles']: 111 for lock in ss['lockfiles']:
107 locks.append(bb.utils.lockfile(lock)) 112 locks.append(bb.utils.lockfile(lock))
108 113
@@ -233,6 +238,8 @@ def sstate_clean(ss, d):
233 238
234 if os.path.exists(manifest): 239 if os.path.exists(manifest):
235 locks = [] 240 locks = []
241 for lock in ss['lockfiles-shared']:
242 locks.append(bb.utils.lockfile(lock, True))
236 for lock in ss['lockfiles']: 243 for lock in ss['lockfiles']:
237 locks.append(bb.utils.lockfile(lock)) 244 locks.append(bb.utils.lockfile(lock))
238 245