[oe] Question about RDEPENDS and RRECOMMENDS

Carlos Rafael Giani dv at pseudoterminal.org
Mon Feb 16 12:53:13 UTC 2015


On 02/16/2015 01:42 PM, 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?
>

Yes, exactly. The current QA warning greatly limits the usefulness of 
RDEPENDS, in my opinion.  If I explicitely add a package name B to 
RDEPENDS in recipe A, and I add A to the IMAGE_INSTALL list, then I am 
stating that B must also be built and installed on the image, but it 
does *not* have to be built before A. Yet, the warnings makes it look as 
if B has to be built before A. This is confusing.

It makes a lot of sense to warn if for example a build script 
autodetects and links against a certain library which is not mentioned 
in the DEPENDS variable. But this is a different use case than the one 
mentioned above, and somehow it seems that both were lumped together.



More information about the Openembedded-devel mailing list