summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2018-02-26 14:49:55 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-03-01 22:13:56 +0000
commit2f40a874248facead72b06d4ffb8c1d4da2dbcd5 (patch)
tree07e201bc7ad2f5defc0d9dbada6accf62fd6b26e /scripts
parent9b49883f2f6325ea8b68cf676f5e2339fa9117e1 (diff)
downloadpoky-2f40a874248facead72b06d4ffb8c1d4da2dbcd5.tar.gz
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>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/devtool5
-rw-r--r--scripts/lib/devtool/standard.py6
2 files changed, 8 insertions, 3 deletions
diff --git a/scripts/devtool b/scripts/devtool
index a651d8f213..b4bfbb8329 100755
--- a/scripts/devtool
+++ b/scripts/devtool
@@ -117,12 +117,13 @@ def read_workspace():
117 for line in f: 117 for line in f:
118 res = externalsrc_re.match(line.rstrip()) 118 res = externalsrc_re.match(line.rstrip())
119 if res: 119 if res:
120 pn = res.group(2) or os.path.splitext(os.path.basename(fn))[0].split('_')[0] 120 recipepn = os.path.splitext(os.path.basename(fn))[0].split('_')[0]
121 pn = res.group(2) or recipepn
121 # Find the recipe file within the workspace, if any 122 # Find the recipe file within the workspace, if any
122 bbfile = os.path.basename(fn).replace('.bbappend', '.bb').replace('%', '*') 123 bbfile = os.path.basename(fn).replace('.bbappend', '.bb').replace('%', '*')
123 recipefile = glob.glob(os.path.join(config.workspace_path, 124 recipefile = glob.glob(os.path.join(config.workspace_path,
124 'recipes', 125 'recipes',
125 pn, 126 recipepn,
126 bbfile)) 127 bbfile))
127 if recipefile: 128 if recipefile:
128 recipefile = recipefile[0] 129 recipefile = recipefile[0]
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 26187a0c41..f29d8cbb68 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -1744,6 +1744,7 @@ def status(args, config, basepath, workspace):
1744 1744
1745def _reset(recipes, no_clean, config, basepath, workspace): 1745def _reset(recipes, no_clean, config, basepath, workspace):
1746 """Reset one or more recipes""" 1746 """Reset one or more recipes"""
1747 import oe.path
1747 1748
1748 def clean_preferred_provider(pn, layerconf_path): 1749 def clean_preferred_provider(pn, layerconf_path):
1749 """Remove PREFERRED_PROVIDER from layer.conf'""" 1750 """Remove PREFERRED_PROVIDER from layer.conf'"""
@@ -1802,7 +1803,10 @@ def _reset(recipes, no_clean, config, basepath, workspace):
1802 preservedir(os.path.join(root, dn)) 1803 preservedir(os.path.join(root, dn))
1803 os.rmdir(origdir) 1804 os.rmdir(origdir)
1804 1805
1805 preservedir(os.path.join(config.workspace_path, 'recipes', pn)) 1806 recipefile = workspace[pn]['recipefile']
1807 if recipefile and oe.path.is_path_parent(config.workspace_path, recipefile):
1808 # This should always be true if recipefile is set, but just in case
1809 preservedir(os.path.dirname(recipefile))
1806 # We don't automatically create this dir next to appends, but the user can 1810 # We don't automatically create this dir next to appends, but the user can
1807 preservedir(os.path.join(config.workspace_path, 'appends', pn)) 1811 preservedir(os.path.join(config.workspace_path, 'appends', pn))
1808 1812