devtool: fix source extraction to work with recipe specific sysroots
When extracting source for a recipe within devtool (for extract, modify or upgrade) We need to redirect WORKDIR, STAMPS_DIR etc. under a temporary directory so that: (a) we pick up all files that get unpacked to the WORKDIR, and (b) we don't disturb the existing build However, with recipe-specific sysroots the sysroots for the recipe will be prepared under WORKDIR, and if we used the system temporary directory i.e. usually /tmp) as used by mkdtemp by default, then our attempts to hardlink files into the recipe-specific sysroots will fail on systems where /tmp is a different filesystem, and we'd have to fall back to copying the files which is a waste of time. Put the temp directory under the WORKDIR to prevent that from being a problem. (From OE-Core rev: e10a973cd9390eacb13bdb99693a0622bd3695f5) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> [RP: Add needed mkdirhier call] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
38bcf14abc
commit
9b3e808624
|
@ -465,7 +465,21 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d, tinfoil):
|
||||||
os.rmdir(srctree)
|
os.rmdir(srctree)
|
||||||
|
|
||||||
initial_rev = None
|
initial_rev = None
|
||||||
tempdir = tempfile.mkdtemp(prefix='devtool')
|
# We need to redirect WORKDIR, STAMPS_DIR etc. under a temporary
|
||||||
|
# directory so that:
|
||||||
|
# (a) we pick up all files that get unpacked to the WORKDIR, and
|
||||||
|
# (b) we don't disturb the existing build
|
||||||
|
# However, with recipe-specific sysroots the sysroots for the recipe
|
||||||
|
# will be prepared under WORKDIR, and if we used the system temporary
|
||||||
|
# directory (i.e. usually /tmp) as used by mkdtemp by default, then
|
||||||
|
# our attempts to hardlink files into the recipe-specific sysroots
|
||||||
|
# will fail on systems where /tmp is a different filesystem, and it
|
||||||
|
# would have to fall back to copying the files which is a waste of
|
||||||
|
# time. Put the temp directory under the WORKDIR to prevent that from
|
||||||
|
# being a problem.
|
||||||
|
tempbasedir = d.getVar('WORKDIR')
|
||||||
|
bb.utils.mkdirhier(tempbasedir)
|
||||||
|
tempdir = tempfile.mkdtemp(prefix='devtooltmp-', dir=tempbasedir)
|
||||||
try:
|
try:
|
||||||
tinfoil.logger.setLevel(logging.WARNING)
|
tinfoil.logger.setLevel(logging.WARNING)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue