diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-09-29 15:26:22 +1300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-11 12:14:27 +0000 |
commit | 1d31cee42d7fdd0f7881a44447492efc2db3c95a (patch) | |
tree | 3c7b8415aa1b343f69a3abee3320704e9143ca22 /scripts/devtool | |
parent | 7bab0de6cb9c973a96b9bd8ab55b8f50a1087f34 (diff) | |
download | poky-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-x | scripts/devtool | 15 |
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 | ||
133 | def create_workspace(args, config, basepath, workspace): | 140 | def create_workspace(args, config, basepath, workspace): |
134 | if args.layerpath: | 141 | if args.layerpath: |