diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-03-21 10:44:43 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-03-21 15:33:07 +0000 |
commit | 01218e29f963120c77885964702198d9bce77e11 (patch) | |
tree | 426b841c1df9ee4d755e87fbd183504129ff1bc3 /meta/classes/sstate.bbclass | |
parent | 42c445bc04afe19413b2d89719400ef1f1bbf9c9 (diff) | |
download | poky-01218e29f963120c77885964702198d9bce77e11.tar.gz |
bitbake.conf/sstate.bbclass: Change PATH when installing sstate files to avoid issues
This resolves issues related to pigz-native when installing from sstate that people
have been seeing. It also gives us a way to solve issues like the gzip-native race
during sstate package creation covered in Yocto #1774.
(From OE-Core rev: 518dffe20178f5969dddccb17d6ab347afb72beb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/sstate.bbclass')
-rw-r--r-- | meta/classes/sstate.bbclass | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 0d16d118d9..15706541ae 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass | |||
@@ -153,6 +153,12 @@ def sstate_installpkg(ss, d): | |||
153 | bb.mkdirhier(dir) | 153 | bb.mkdirhier(dir) |
154 | oe.path.remove(dir) | 154 | oe.path.remove(dir) |
155 | 155 | ||
156 | # We're adding binaries into the sysroots, we don't want to execute them | ||
157 | # whilst they're half installed or being installed so we need to | ||
158 | # remove the sysroots from PATH | ||
159 | savedpath = d.getVar("PATH") | ||
160 | d.setVar("PATH", "${ORIGPATH}") | ||
161 | |||
156 | sstateinst = d.expand("${WORKDIR}/sstate-install-%s/" % ss['name']) | 162 | sstateinst = d.expand("${WORKDIR}/sstate-install-%s/" % ss['name']) |
157 | sstatepkg = d.getVar('SSTATE_PKG', True) + '_' + ss['name'] + ".tgz" | 163 | sstatepkg = d.getVar('SSTATE_PKG', True) + '_' + ss['name'] + ".tgz" |
158 | 164 | ||
@@ -190,6 +196,8 @@ def sstate_installpkg(ss, d): | |||
190 | # conflict with another writer | 196 | # conflict with another writer |
191 | os.remove(fixmefn) | 197 | os.remove(fixmefn) |
192 | 198 | ||
199 | d.setVar("PATH", savedpath) | ||
200 | |||
193 | for state in ss['dirs']: | 201 | for state in ss['dirs']: |
194 | prepdir(state[1]) | 202 | prepdir(state[1]) |
195 | os.rename(sstateinst + state[0], state[1]) | 203 | os.rename(sstateinst + state[0], state[1]) |