[oe] Question about RDEPENDS and RRECOMMENDS

Paul Eggleton paul.eggleton at linux.intel.com
Mon Feb 16 14:49:52 UTC 2015


On Monday 16 February 2015 10:42:56 Otavio Salvador wrote:
> On Mon, Feb 16, 2015 at 9:12 AM, Paul Eggleton
> 
> <paul.eggleton at linux.intel.com> wrote:
> > On Sunday 15 February 2015 19:34:28 Otavio Salvador wrote:
> >> On Sat, Feb 14, 2015 at 6:42 AM, Carlos Rafael Giani
> >> <dv at pseudoterminal.org> wrote:
> >> ...
> >> 
> >> > So, it would make sense to establish some sort of dependency. But how
> >> > 
> >> > exactly? I thought of something like this:
> >> >   RDEPENDS_gstreamer1.0-plugins-imx-imxaudio =
> >> > 
> >> > "gstreamer1.0-plugins-good-audioparsers"
> >> > 
> >> >   RDEPENDS_gstreamer1.0-plugins-imx-imxvpu =
> >> > 
> >> > "gstreamer1.0-plugins-bad-videoparsersbad"
> >> > 
> >> > but then I also need to add gstreamer1.0-plugins-good and
> >> > gstreamer1.0-plugins-bad to the DEPENDS list, otherwise I get a warning
> >> > 
> >> > like:
> >> >   QA Issue: gstreamer1.0-plugins-imx-imxaudio rdepends on
> >> > 
> >> > gstreamer1.0-plugins-good-audioparsers, but it isn't a build
> >> > dependency?
> >> > [build-deps]
> >> > 
> >> > But if I add these recipes to the DEPENDS variable, then the RDEPENDS
> >> > spec
> >> > is pointless, isn't it?
> >>
> >>...
> >>
> >> Just for completeness, the QA issue about missing build-dependency is
> >> something we should pay attention to but it may be a false positive as
> >> in your cause you don't depends on them for building, just runtime. So
> >> you can whitelist the warning to avoid the noise but adding the
> >> depends would be wrong.
> > 
> > The QA warning message could perhaps be worded more accurately - what it
> > means is there in an implicit runtime dependency and there is no RDEPENDS
> > (not DEPENDS) explicitly telling the system to ensure that that
> > dependency is satisfied. Whitelisting is never the proper way to fix this
> > warning - either add an explicit RDEPENDS, or use configuration to ensure
> > that the implicit dependency isn't needed.
> 
> From my understand, which Carlos can confirm, what he did was adding
> the package on the rdepends. Once this was done the QA warnings shows
> up which is wrong.
> 
> This can be seen at 'sed' recipe:
> 
> ---
> SUMMARY = "Stream EDitor (text filtering utility)"
> ...
> RDEPENDS_${PN}-ptest += "make locale-base-ru-ru ${PN}"
> ---
> 
> In my system, with ptest enabled, I see:
> 
> WARNING: QA Issue: sed-ptest rdepends on locale-base-ru-ru, but it
> isn't a build dependency? [build-deps]
> 
> and this is clearly a false positive as this uses this locale at
> runtime for a test. Not necessarily it needs to have a DEPENDS on it
> which would imply it would need to be available in sysroot before sed
> configure could start.
> 
> What I think is missing is that the 'build-deps' check would need to
> whitelist the dependencies which come from a /explict/ package added
> in a RDEPENDS. What do you think?

If you look at the code in insane.bbclass, what it actually does is compare 
the task dependencies to what is in RDEPENDS; in theory what is not reflected 
in the task dependencies should only be those dependencies that were added 
dynamically at packaging time. You would have to investigate why an explicit 
RDEPENDS on locale-base-ru-ru doesn't get translated to a task dependency (or 
more likely, why this code thinks that it isn't). That is where any fix for 
this issue needs to be done.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the Openembedded-devel mailing list