* [PATCH 0/1] devtool: warn user about multiple layer having the same base name @ 2019-06-27 3:14 Chen Qi 2019-06-27 3:14 ` [PATCH 1/1] " Chen Qi 0 siblings, 1 reply; 4+ messages in thread From: Chen Qi @ 2019-06-27 3:14 UTC (permalink / raw) To: openembedded-core *** BLURB HERE *** The following changes since commit 67266331b0f557c01cde1cc1b1a1de7197443a6c: local.conf.sample.extended: remove redundant RUNTIMETARGET assignment (2019-06-24 17:34:25 +0100) are available in the git repository at: git://git.pokylinux.org/poky-contrib ChenQi/devtool-finish http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/devtool-finish Chen Qi (1): devtool: warn user about multiple layer having the same base name scripts/lib/devtool/standard.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/1] devtool: warn user about multiple layer having the same base name 2019-06-27 3:14 [PATCH 0/1] devtool: warn user about multiple layer having the same base name Chen Qi @ 2019-06-27 3:14 ` Chen Qi 2019-06-27 23:25 ` Paul Eggleton 0 siblings, 1 reply; 4+ messages in thread From: Chen Qi @ 2019-06-27 3:14 UTC (permalink / raw) To: openembedded-core Currently `devtool finish RECIPE meta' will silently succeed even if there are multiple layers having the same base name of 'meta'. e.g. meta layer from oe-core and meta layer from meta-secure-core. We should at least give user a warning in such case. With the patch, we will get warning like below. WARNING: Multiple layers have the same base name 'meta', use the first one '<PROJ_DIR>/oe-core/meta'. WARNING: Consider using path instead of base name to specify layer: <PROJ_DIR>/oe-core/meta <PROJ_DIR>/meta-secure-core/meta Signed-off-by: Chen Qi <Qi.Chen@windriver.com> --- scripts/lib/devtool/standard.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index aca74b1..47ed531 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -1866,13 +1866,27 @@ def reset(args, config, basepath, workspace): def _get_layer(layername, d): """Determine the base layer path for the specified layer name/path""" layerdirs = d.getVar('BBLAYERS').split() - layers = {os.path.basename(p): p for p in layerdirs} + layers = {} # {basename: layer_paths} + for p in layerdirs: + bn = os.path.basename(p) + if bn not in layers: + layers[bn] = [p] + else: + layers[bn].append(p) # Provide some shortcuts if layername.lower() in ['oe-core', 'openembedded-core']: - layerdir = layers.get('meta', None) + layername = 'meta' + layer_paths = layers.get(layername, None) + if not layer_paths: + return os.path.abspath(layername) + elif len(layer_paths) == 1: + return os.path.abspath(layer_paths[0]) else: - layerdir = layers.get(layername, None) - return os.path.abspath(layerdir or layername) + # multiple layers having the same base name + logger.warning("Multiple layers have the same base name '%s', use the first one '%s'." % (layername, layer_paths[0])) + logger.warning("Consider using path instead of base name to specify layer:\n\t\t%s" % '\n\t\t'.join(layer_paths)) + return os.path.abspath(layer_paths[0]) + def finish(args, config, basepath, workspace): """Entry point for the devtool 'finish' subcommand""" -- 1.9.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/1] devtool: warn user about multiple layer having the same base name 2019-06-27 3:14 ` [PATCH 1/1] " Chen Qi @ 2019-06-27 23:25 ` Paul Eggleton 2019-06-28 1:20 ` ChenQi 0 siblings, 1 reply; 4+ messages in thread From: Paul Eggleton @ 2019-06-27 23:25 UTC (permalink / raw) To: Chen Qi; +Cc: openembedded-core On Thursday, 27 June 2019 3:14:55 PM NZST Chen Qi wrote: > Currently `devtool finish RECIPE meta' will silently succeed even > if there are multiple layers having the same base name of 'meta'. > e.g. meta layer from oe-core and meta layer from meta-secure-core. Good catch! > We should at least give user a warning in such case. With the patch, > we will get warning like below. > > WARNING: Multiple layers have the same base name 'meta', use the first one '<PROJ_DIR>/oe-core/meta'. > WARNING: Consider using path instead of base name to specify layer: > <PROJ_DIR>/oe-core/meta > <PROJ_DIR>/meta-secure-core/meta > "use the first one" -> "using the first one" However I'm wondering if this is the right behaviour. What if the user realises they actually wanted the second one? Given it's a warning the finish operation would have proceeded and the user will have to clean things up manually. Rather than a warning, should we in fact be erroring out and requiring the user to be more specific in this case? Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/1] devtool: warn user about multiple layer having the same base name 2019-06-27 23:25 ` Paul Eggleton @ 2019-06-28 1:20 ` ChenQi 0 siblings, 0 replies; 4+ messages in thread From: ChenQi @ 2019-06-28 1:20 UTC (permalink / raw) To: Paul Eggleton; +Cc: openembedded-core On 06/28/2019 07:25 AM, Paul Eggleton wrote: > On Thursday, 27 June 2019 3:14:55 PM NZST Chen Qi wrote: >> Currently `devtool finish RECIPE meta' will silently succeed even >> if there are multiple layers having the same base name of 'meta'. >> e.g. meta layer from oe-core and meta layer from meta-secure-core. > Good catch! > >> We should at least give user a warning in such case. With the patch, >> we will get warning like below. >> >> WARNING: Multiple layers have the same base name 'meta', use the first one '<PROJ_DIR>/oe-core/meta'. >> WARNING: Consider using path instead of base name to specify layer: >> <PROJ_DIR>/oe-core/meta >> <PROJ_DIR>/meta-secure-core/meta >> > "use the first one" -> "using the first one" > > However I'm wondering if this is the right behaviour. What if the user realises they actually wanted the second one? Given it's a warning the finish operation would have proceeded and the user will have to clean things up manually. Rather than a warning, should we in fact be erroring out and requiring the user to be more specific in this case? > > Cheers, > Paul > More reasonable. I'll send out V2. Best Regards, Chen Qi ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-06-28 1:08 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-06-27 3:14 [PATCH 0/1] devtool: warn user about multiple layer having the same base name Chen Qi 2019-06-27 3:14 ` [PATCH 1/1] " Chen Qi 2019-06-27 23:25 ` Paul Eggleton 2019-06-28 1:20 ` ChenQi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox