summaryrefslogtreecommitdiffstats
path: root/scripts/devtool
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-09-29 15:26:22 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-11-11 12:14:27 +0000
commit1d31cee42d7fdd0f7881a44447492efc2db3c95a (patch)
tree3c7b8415aa1b343f69a3abee3320704e9143ca22 /scripts/devtool
parent7bab0de6cb9c973a96b9bd8ab55b8f50a1087f34 (diff)
downloadpoky-1d31cee42d7fdd0f7881a44447492efc2db3c95a.tar.gz
devtool: fix handling of oe-local-files when source is in a subdirectory
If S points to a subdirectory of the source rather than the "base" of the source tree then we weren't handling the oe-local-files directory properly - it got extracted to the base of the tree but devtool update-recipe and devtool finish assumed it would be under S which would be the subdirectory, thus it would be missing and devtool would assume the files had been deleted and remove them from the recipe. Record the base of the source tree in the bbappend and read it into the in-memory workspace so we can use that to find out where oe-local-files should be found. (From OE-Core rev: 30d2ea67b2c4727e23d06a35745b1afa64b130cc) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/devtool')
-rwxr-xr-xscripts/devtool15
1 files changed, 11 insertions, 4 deletions
diff --git a/scripts/devtool b/scripts/devtool
index 5292f187e5..87bb5c8323 100755
--- a/scripts/devtool
+++ b/scripts/devtool
@@ -113,6 +113,7 @@ def read_workspace():
113 externalsrc_re = re.compile(r'^EXTERNALSRC(_pn-([^ =]+))? *= *"([^"]*)"$') 113 externalsrc_re = re.compile(r'^EXTERNALSRC(_pn-([^ =]+))? *= *"([^"]*)"$')
114 for fn in glob.glob(os.path.join(config.workspace_path, 'appends', '*.bbappend')): 114 for fn in glob.glob(os.path.join(config.workspace_path, 'appends', '*.bbappend')):
115 with open(fn, 'r') as f: 115 with open(fn, 'r') as f:
116 pnvalues = {}
116 for line in f: 117 for line in f:
117 res = externalsrc_re.match(line.rstrip()) 118 res = externalsrc_re.match(line.rstrip())
118 if res: 119 if res:
@@ -125,10 +126,16 @@ def read_workspace():
125 bbfile)) 126 bbfile))
126 if recipefile: 127 if recipefile:
127 recipefile = recipefile[0] 128 recipefile = recipefile[0]
128 workspace[pn] = {'srctree': res.group(3), 129 pnvalues['srctree'] = res.group(3)
129 'bbappend': fn, 130 pnvalues['bbappend'] = fn
130 'recipefile': recipefile} 131 pnvalues['recipefile'] = recipefile
131 logger.debug('Found recipe %s' % workspace[pn]) 132 elif line.startswith('# srctreebase: '):
133 pnvalues['srctreebase'] = line.split(':', 1)[1].strip()
134 if pnvalues:
135 if not pnvalues.get('srctreebase', None):
136 pnvalues['srctreebase'] = pnvalues['srctree']
137 logger.debug('Found recipe %s' % pnvalues)
138 workspace[pn] = pnvalues
132 139
133def create_workspace(args, config, basepath, workspace): 140def create_workspace(args, config, basepath, workspace):
134 if args.layerpath: 141 if args.layerpath: