* [PATCH v2] command.py: multiconfig support for findBestProvider
@ 2017-04-08 17:33 Juro Bystricky
2017-04-10 6:01 ` Patrick Ohly
0 siblings, 1 reply; 3+ messages in thread
From: Juro Bystricky @ 2017-04-08 17:33 UTC (permalink / raw)
To: bitbake-devel
In a multiconfig environment, a tinfoil call such as
tinfoil.parse_recipe("multiconfig:arduino-101-sss:gcc")
can fail with an error such as:
File "/data/master/poky/bitbake/lib/bb/tinfoil.py", line 373, in get_recipe_file
raise bb.providers.NoProvider('Unable to find any recipe file matching "%s"' % pn)
bb.providers.NoProvider: Unable to find any recipe file matching "multiconfig:arduino-101-sss:gcc"
The culprit is findBestProvider, which does not handle multiconfig.
This patch fixes the error and in the case mentioned above the tinfoil call returns:
"multiconfig:arduino-101-sss:/data/master/poky/meta/recipes-devtools/gcc/gcc_6.3.bb"
[YOCTO#11210]
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
---
bitbake/lib/bb/command.py | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py
index 78a86ac..340842b 100644
--- a/bitbake/lib/bb/command.py
+++ b/bitbake/lib/bb/command.py
@@ -141,6 +141,13 @@ class Command:
self.currentAsyncCommand = None
self.cooker.finishcommand()
+def split_mc_pn(pn):
+ if pn.startswith("multiconfig:"):
+ mc = pn.split(":")[1]
+ pn = ":".join(pn.split(":")[2:])
+ return (mc, pn)
+ return ('', pn)
+
class CommandsSync:
"""
A class of synchronous commands
@@ -425,8 +432,8 @@ class CommandsSync:
findProviders.readonly = True
def findBestProvider(self, command, params):
- pn = params[0]
- return command.cooker.findBestProvider(pn)
+ (mc, pn) = split_mc_pn(params[0])
+ return command.cooker.findBestProvider(pn, mc)
findBestProvider.readonly = True
def allProviders(self, command, params):
--
2.7.4
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v2] command.py: multiconfig support for findBestProvider
2017-04-08 17:33 [PATCH v2] command.py: multiconfig support for findBestProvider Juro Bystricky
@ 2017-04-10 6:01 ` Patrick Ohly
2017-04-10 15:41 ` Bystricky, Juro
0 siblings, 1 reply; 3+ messages in thread
From: Patrick Ohly @ 2017-04-10 6:01 UTC (permalink / raw)
To: Juro Bystricky; +Cc: bitbake-devel
On Sat, 2017-04-08 at 10:33 -0700, Juro Bystricky wrote:
> In a multiconfig environment, a tinfoil call such as
>
> tinfoil.parse_recipe("multiconfig:arduino-101-sss:gcc")
>
> can fail with an error such as:
>
> File "/data/master/poky/bitbake/lib/bb/tinfoil.py", line 373, in get_recipe_file
> raise bb.providers.NoProvider('Unable to find any recipe file matching "%s"' % pn)
> bb.providers.NoProvider: Unable to find any recipe file matching "multiconfig:arduino-101-sss:gcc"
>
> The culprit is findBestProvider, which does not handle multiconfig.
> This patch fixes the error and in the case mentioned above the tinfoil call returns:
>
> "multiconfig:arduino-101-sss:/data/master/poky/meta/recipes-devtools/gcc/gcc_6.3.bb"
>
> [YOCTO#11210]
>
> Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
> ---
> bitbake/lib/bb/command.py | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py
> index 78a86ac..340842b 100644
> --- a/bitbake/lib/bb/command.py
> +++ b/bitbake/lib/bb/command.py
> @@ -141,6 +141,13 @@ class Command:
> self.currentAsyncCommand = None
> self.cooker.finishcommand()
>
> +def split_mc_pn(pn):
> + if pn.startswith("multiconfig:"):
> + mc = pn.split(":")[1]
> + pn = ":".join(pn.split(":")[2:])
I find this more readable:
if pn.startswith("multiconfig:"):
_, mc, pn = pn.split(":", 2)
Not sure whether it is worth a v3, though.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH v2] command.py: multiconfig support for findBestProvider
2017-04-10 6:01 ` Patrick Ohly
@ 2017-04-10 15:41 ` Bystricky, Juro
0 siblings, 0 replies; 3+ messages in thread
From: Bystricky, Juro @ 2017-04-10 15:41 UTC (permalink / raw)
To: Ohly, Patrick; +Cc: bitbake-devel@lists.openembedded.org
I concur, it is more readable and I think it merits v3.
V3 coming momentarily.
Juro
________________________________________
From: Patrick Ohly [patrick.ohly@intel.com]
Sent: Sunday, April 09, 2017 11:01 PM
To: Bystricky, Juro
Cc: bitbake-devel@lists.openembedded.org; richard.purdie@linuxfoundation.org
Subject: Re: [PATCH v2] command.py: multiconfig support for findBestProvider
> +def split_mc_pn(pn):
> + if pn.startswith("multiconfig:"):
> + mc = pn.split(":")[1]
> + pn = ":".join(pn.split(":")[2:])
I find this more readable:
if pn.startswith("multiconfig:"):
_, mc, pn = pn.split(":", 2)
Not sure whether it is worth a v3, though.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-04-10 15:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-08 17:33 [PATCH v2] command.py: multiconfig support for findBestProvider Juro Bystricky
2017-04-10 6:01 ` Patrick Ohly
2017-04-10 15:41 ` Bystricky, Juro
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.