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>
This commit is contained in:
Paul Eggleton
2017-09-29 15:26:22 +13:00
committed by Richard Purdie
parent 7bab0de6cb
commit 1d31cee42d
2 changed files with 26 additions and 13 deletions

View File

@@ -113,6 +113,7 @@ def read_workspace():
externalsrc_re = re.compile(r'^EXTERNALSRC(_pn-([^ =]+))? *= *"([^"]*)"$')
for fn in glob.glob(os.path.join(config.workspace_path, 'appends', '*.bbappend')):
with open(fn, 'r') as f:
pnvalues = {}
for line in f:
res = externalsrc_re.match(line.rstrip())
if res:
@@ -125,10 +126,16 @@ def read_workspace():
bbfile))
if recipefile:
recipefile = recipefile[0]
workspace[pn] = {'srctree': res.group(3),
'bbappend': fn,
'recipefile': recipefile}
logger.debug('Found recipe %s' % workspace[pn])
pnvalues['srctree'] = res.group(3)
pnvalues['bbappend'] = fn
pnvalues['recipefile'] = recipefile
elif line.startswith('# srctreebase: '):
pnvalues['srctreebase'] = line.split(':', 1)[1].strip()
if pnvalues:
if not pnvalues.get('srctreebase', None):
pnvalues['srctreebase'] = pnvalues['srctree']
logger.debug('Found recipe %s' % pnvalues)
workspace[pn] = pnvalues
def create_workspace(args, config, basepath, workspace):
if args.layerpath: