summaryrefslogtreecommitdiffstats
path: root/scripts/lib/devtool/__init__.py
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2015-09-23 11:05:23 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-24 17:54:24 +0100
commit85d8b4a92fc7873a458a92a7d409bf73ff25c23b (patch)
tree3838e0d702ccde9b384ffca862723d14d679ea55 /scripts/lib/devtool/__init__.py
parent6363a95550c1b78f8d9788de8b1d2cea7b06837a (diff)
downloadpoky-85d8b4a92fc7873a458a92a7d409bf73ff25c23b.tar.gz
devtool: second fix for running from a different directory
Do not change change current working directory permanently, but, only for the duration of tinfoil initialization instead. The previous fix caused very unintuitive behavior where using relative paths were solved with respect to the builddir instead of the current working directory. E.g. calling "devtool extract zlib ./zlib" would always create create srctree in ${TOPDIR}/zlib, independent of the users cwd. (From OE-Core rev: 4c7f159b0e17a0475a4a4e9dc4dd012e3d2e6a1f) (From OE-Core rev: 05060699e63cd25d089e83e9aa56c11d5baa8fd8) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/devtool/__init__.py')
-rw-r--r--scripts/lib/devtool/__init__.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py
index f815ef27fa..7b1ab1110d 100644
--- a/scripts/lib/devtool/__init__.py
+++ b/scripts/lib/devtool/__init__.py
@@ -96,9 +96,12 @@ def exec_fakeroot(d, cmd, **kwargs):
96 newenv[splitval[0]] = splitval[1] 96 newenv[splitval[0]] = splitval[1]
97 return subprocess.call("%s %s" % (fakerootcmd, cmd), env=newenv, **kwargs) 97 return subprocess.call("%s %s" % (fakerootcmd, cmd), env=newenv, **kwargs)
98 98
99def setup_tinfoil(config_only=False): 99def setup_tinfoil(config_only=False, basepath=None):
100 """Initialize tinfoil api from bitbake""" 100 """Initialize tinfoil api from bitbake"""
101 import scriptpath 101 import scriptpath
102 orig_cwd = os.path.abspath(os.curdir)
103 if basepath:
104 os.chdir(basepath)
102 bitbakepath = scriptpath.add_bitbake_lib_path() 105 bitbakepath = scriptpath.add_bitbake_lib_path()
103 if not bitbakepath: 106 if not bitbakepath:
104 logger.error("Unable to find bitbake by searching parent directory of this script or PATH") 107 logger.error("Unable to find bitbake by searching parent directory of this script or PATH")
@@ -108,6 +111,7 @@ def setup_tinfoil(config_only=False):
108 tinfoil = bb.tinfoil.Tinfoil() 111 tinfoil = bb.tinfoil.Tinfoil()
109 tinfoil.prepare(config_only) 112 tinfoil.prepare(config_only)
110 tinfoil.logger.setLevel(logger.getEffectiveLevel()) 113 tinfoil.logger.setLevel(logger.getEffectiveLevel())
114 os.chdir(orig_cwd)
111 return tinfoil 115 return tinfoil
112 116
113def get_recipe_file(cooker, pn): 117def get_recipe_file(cooker, pn):