> -----Original Message-----
> From: Martin Jansa <martin.ja...@gmail.com>
> Sent: den 18 oktober 2018 00:14
> To: Peter Kjellerstedt <peter.kjellerst...@axis.com>
> Cc: y...@blade-group.com; openembedded-devel <openembedded-
> de...@lists.openembedded.org>
> Subject: Re: [oe] [PATCH v3] packagegroup-tools-bluetooth: work as
> advertized on distro without bluez* support
> 
> On Wed, Oct 17, 2018 at 10:03:53PM +0000, Peter Kjellerstedt wrote:
> > > -----Original Message-----
> > > From: openembedded-devel-boun...@lists.openembedded.org
> <openembedded-
> > > devel-boun...@lists.openembedded.org> On Behalf Of Martin Jansa
> > > Sent: den 17 oktober 2018 23:34
> > > To: Peter Kjellerstedt <peter.kjellerst...@axis.com>
> > > Cc: y...@blade-group.com; openembedded-devel <openembedded-
> > > de...@lists.openembedded.org>
> > > Subject: Re: [oe] [PATCH v3] packagegroup-tools-bluetooth: work as
> > > advertized on distro without bluez* support
> > >
> > > I wouldn't say that supporting bluez6 as BLUEZ value before
> > > RDEPENDS_bluez6 is defined here is really better.
> >
> > Well, my point was that rewriting it according to my suggestion
> > makes it agnostic to whatever value the ${BLUEZ} variable has.
> 
> And my point is that it doesn't make it better, because it will do
> something useful only with RDEPENDS_bluez4 or RDEPENDS_bluez5, adding
> dependency on undefined ${RDEPENDS_whatever} doesn't really help, does
> it?

Well, it actually does. Because if someone was to actually add 
support for bluez6 (or whatever) they would now get a build 
error because RDEPENDS_bluez6 is not defined instead of silently 
missing the dependencies that they need to add.

However, my suggested code does not work due to bitbake messing 
up the parsing of the line, resulting in an error similar to this 
if ${BLUEZ} is not defined:

ERROR: Nothing RPROVIDES 'else' (but testrecipe.bb RDEPENDS on or otherwise 
requires it)

It suggests that somewhere there is some code doing something like
d.getVar('RDEPENDS_%s' % pn, False).split() (that exact code does 
not exist though, I've checked). So to get it to work in practice 
one would have to do:

FOOBAR = "${@'${RDEPENDS_${BLUEZ}}' if d.getVar('BLUEZ') else ''}"
RDEPENDS_${PN} = "${FOOBAR}"

If ${RDEPENDS_${BLUEZ}} is defined, then it yields the expected 
dependencies, and if ${BLUEZ} is defined but ${RDEPENDS_${BLUEZ}} 
is not, then it yields an error similar to:

ERROR: Nothing RPROVIDES '${@'${RDEPENDS_whatever}'' (but testrecipe.bb 
RDEPENDS on or otherwise requires it)

> > > Whole bluez4 support here is a bit useless considering that all
> bluez4
> > > related recipes were removed more than a year ago with:
> > >
> > > commit 007498ac72e26e9f7064de74f7fe96e91ae6c969
> > > Author: Martin Jansa <martin.ja...@gmail.com>
> > > Date:   Mon Jul 24 19:25:35 2017 +0200
> > >
> > >     bluez4: remove bluez4-only recipes
> > >
> > >
> > > On Wed, Oct 17, 2018 at 11:20 PM Peter Kjellerstedt <
> > > peter.kjellerst...@axis.com> wrote:
> > >
> > > > > -----Original Message-----
> > > > > From: openembedded-devel-boun...@lists.openembedded.org <
> > > > openembedded-devel-boun...@lists.openembedded.org> On Behalf Of
> > > > yann.dir...@blade-group.com
> > > > > Sent: den 17 oktober 2018 22:57
> > > > > To: openembedded-devel@lists.openembedded.org
> > > > > Cc: Yann Dirson <y...@blade-group.com>
> > > > > Subject: [oe] [PATCH v3] packagegroup-tools-bluetooth: work as
> > > > advertized on distro without bluez* support
> > > > >
> > > > > From: Yann Dirson <y...@blade-group.com>
> > > > >
> > > > > Otherwise the build fails with:
> > > > >
> > > > >   NOTE: Runtime target '${RDEPENDS_}' is unbuildable,
> removing...
> > > > >   Missing or unbuildable dependency chain was: ['${RDEPENDS_}']
> > > > >
> > > > > This restores some truth in the "Otherwise install nothing"
> comment
> > > in
> > > > > the recipe.
> > > > >
> > > > > Signed-off-by: Yann Dirson <y...@blade-group.com>
> > > > > ---
> > > > >  .../packagegroups/packagegroup-tools-bluetooth.bb            |
> 5
> > > ++++-
> > > > >  1 file changed, 4 insertions(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/meta-oe/recipes-connectivity/packagegroups/
> > > > packagegroup-tools-bluetooth.bb
> > > > b/meta-oe/recipes-connectivity/packagegroups/
> > > > packagegroup-tools-bluetooth.bb
> > > > > index 0ede5e57b..207c7c1ae 100644
> > > > > --- a/meta-oe/recipes-connectivity/packagegroups/
> > > > packagegroup-tools-bluetooth.bb
> > > > > +++ b/meta-oe/recipes-connectivity/packagegroups/
> > > > packagegroup-tools-bluetooth.bb
> > > > > @@ -34,4 +34,7 @@ RDEPENDS_bluez5 = " \
> > > > >
> > > > >  # Install bluez4 tools or bluez5 tools depending on what is
> > > specified
> > > > in the distro.
> > > > >  # Otherwise install nothing.
> > > > > -RDEPENDS_${PN} = "${RDEPENDS_${BLUEZ}}"
> > > > > +RDEPENDS_${PN} = " \
> > > > > +    ${@'${RDEPENDS_bluez5}' if d.getVar('BLUEZ', True) ==
> 'bluez5'
> > > else
> > > > ''} \
> > > > > +    ${@'${RDEPENDS_bluez4}' if d.getVar('BLUEZ', True) ==
> 'bluez4'
> > > else
> > > > ''} \
> > > > > +"
> > > >
> > > > You can simplify this (and support any value of ${BLUEZ} just in
> > > > case someone decides to add bluez6):
> > > >
> > > > RDEPENDS_${PN} = "${@'${RDEPENDS_${BLUEZ}}' if d.getVar('BLUEZ')
> else ''}"
> > > >
> > > > Also, the second argument to d.getVar() has defaulted to True for
> > > > a long time, so no point in specifying it.
> > > >
> > > > > --
> > > > > 2.19.1
> > > >
> > > > //Peter
> >
> > //Peter
> >
> 
> --
> Martin 'JaMa' Jansa     jabber: martin.ja...@gmail.com

//Peter

-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to