summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-01-17 12:14:36 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-20 11:53:49 +0000
commit9b3e808624292ae9243ceca2c349f642c3c97ea7 (patch)
tree428ac4d632f488e764a438e0c34ab8bd623947a9 /scripts
parent38bcf14abce773142a5a402c2f4e5116fc885431 (diff)
downloadpoky-9b3e808624292ae9243ceca2c349f642c3c97ea7.tar.gz
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>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/devtool/standard.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 8944b0a34b..30b247fa74 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -465,7 +465,21 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d, tinfoil):
465 os.rmdir(srctree) 465 os.rmdir(srctree)
466 466
467 initial_rev = None 467 initial_rev = None
468 tempdir = tempfile.mkdtemp(prefix='devtool') 468 # We need to redirect WORKDIR, STAMPS_DIR etc. under a temporary
469 # directory so that:
470 # (a) we pick up all files that get unpacked to the WORKDIR, and
471 # (b) we don't disturb the existing build
472 # However, with recipe-specific sysroots the sysroots for the recipe
473 # will be prepared under WORKDIR, and if we used the system temporary
474 # directory (i.e. usually /tmp) as used by mkdtemp by default, then
475 # our attempts to hardlink files into the recipe-specific sysroots
476 # will fail on systems where /tmp is a different filesystem, and it
477 # would have to fall back to copying the files which is a waste of
478 # time. Put the temp directory under the WORKDIR to prevent that from
479 # being a problem.
480 tempbasedir = d.getVar('WORKDIR')
481 bb.utils.mkdirhier(tempbasedir)
482 tempdir = tempfile.mkdtemp(prefix='devtooltmp-', dir=tempbasedir)
469 try: 483 try:
470 tinfoil.logger.setLevel(logging.WARNING) 484 tinfoil.logger.setLevel(logging.WARNING)
471 485