devtool: fix poor handling of upgraded BBCLASSEXTENDed recipes

Fix two aspects of handling BBCLASSEXTENDed targets (e.g.
openssl-native) that have been run through "devtool upgrade":

* Fix recipe name not showing up in "devtool status"
* Fix "devtool reset" not deleting empty directories under the recipe
  directory within the workspace, which may lead to problems if you
  subsequently run "devtool upgrade" on the same target again

(From OE-Core rev: 56e04260d64de9c5b83893d97cf41b7ea9a45878)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2018-02-26 14:49:55 +13:00 committed by Richard Purdie
parent 9b49883f2f
commit 2f40a87424
2 changed files with 8 additions and 3 deletions

View File

@ -117,12 +117,13 @@ def read_workspace():
for line in f:
res = externalsrc_re.match(line.rstrip())
if res:
pn = res.group(2) or os.path.splitext(os.path.basename(fn))[0].split('_')[0]
recipepn = os.path.splitext(os.path.basename(fn))[0].split('_')[0]
pn = res.group(2) or recipepn
# Find the recipe file within the workspace, if any
bbfile = os.path.basename(fn).replace('.bbappend', '.bb').replace('%', '*')
recipefile = glob.glob(os.path.join(config.workspace_path,
'recipes',
pn,
recipepn,
bbfile))
if recipefile:
recipefile = recipefile[0]

View File

@ -1744,6 +1744,7 @@ def status(args, config, basepath, workspace):
def _reset(recipes, no_clean, config, basepath, workspace):
"""Reset one or more recipes"""
import oe.path
def clean_preferred_provider(pn, layerconf_path):
"""Remove PREFERRED_PROVIDER from layer.conf'"""
@ -1802,7 +1803,10 @@ def _reset(recipes, no_clean, config, basepath, workspace):
preservedir(os.path.join(root, dn))
os.rmdir(origdir)
preservedir(os.path.join(config.workspace_path, 'recipes', pn))
recipefile = workspace[pn]['recipefile']
if recipefile and oe.path.is_path_parent(config.workspace_path, recipefile):
# This should always be true if recipefile is set, but just in case
preservedir(os.path.dirname(recipefile))
# We don't automatically create this dir next to appends, but the user can
preservedir(os.path.join(config.workspace_path, 'appends', pn))