<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>3498</bug_id>
          
          <creation_ts>2012-11-27 15:41:05 +0000</creation_ts>
          <short_desc>RDEPENDS of packages created by PACKAGES_DYNAMIC not built before image rootfs</short_desc>
          <delta_ts>2026-05-21 15:31:40 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>BitBake</product>
          <component>bitbake</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard>  </status_whiteboard>
          <keywords></keywords>
          <priority>Low</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>Future</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Jansa">Martin.Jansa</reporter>
          <assigned_to name="Richard Purdie">richard.purdie</assigned_to>
          <cc>net147</cc>
    
    <cc>poky.bs.watcher</cc>
    
    <cc>poky.watcher</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>ross.burton</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Don&apos;t know</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>27741</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2012-11-27 15:41:05 +0000</bug_when>
    <thetext>pulseaudio has
RDEPENDS_pulseaudio-module-console-kit =+ &quot;consolekit&quot;

and pulseaudio-module-console-kit is dynamic package
PACKAGES_DYNAMIC += &quot;^pulseaudio-lib.* ^pulseaudio-module.* ^libpulse-lib.* ^libpulse-module.* &quot;

If you have image where consolekit is pulled to image only by
pulseaudio-module-console-kit (e.g. through pulseaudio-server).
Then consolekit is not built before image do_rootfs is executed and do_rootfs fails.

Easy way to reproduce this is to build e.g. core-image-minimal with
pulseaudio-module-console-kit or pulseaudio-server added to IMAGE_INSTALL.
Will fail with:
  * satisfy_dependencies_for: Cannot satisfy the following dependencies for pulseaudio-server:
  *    consolekit *
  * opkg_install_cmd: Cannot install package pulseaudio-server.


Not sure what&apos;s proper fix, bitbake probably just checks that right provider for
pulseaudio-module-console-kit is pulseaudio because of PACKAGES_DYNAMIC, but does not check
RDEPENDS_pulseaudio-module-console-kit after that.

We can add consolekit to build time deps like it was before, but that&apos;s just
work around and not correct fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27761</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2012-11-28 07:46:26 +0000</bug_when>
    <thetext>(In reply to comment #0)
&gt; pulseaudio has
&gt; RDEPENDS_pulseaudio-module-console-kit =+ &quot;consolekit&quot;
&gt; 
&gt; and pulseaudio-module-console-kit is dynamic package
&gt; PACKAGES_DYNAMIC += &quot;^pulseaudio-lib.* ^pulseaudio-module.* ^libpulse-lib.*
&gt; ^libpulse-module.* &quot;
&gt; 
&gt; If you have image where consolekit is pulled to image only by
&gt; pulseaudio-module-console-kit (e.g. through pulseaudio-server).
&gt; Then consolekit is not built before image do_rootfs is executed and
&gt; do_rootfs fails.
&gt; 
&gt; Easy way to reproduce this is to build e.g. core-image-minimal with
&gt; pulseaudio-module-console-kit or pulseaudio-server added to IMAGE_INSTALL.
&gt; Will fail with:
&gt;   * satisfy_dependencies_for: Cannot satisfy the following dependencies for
&gt; pulseaudio-server:
&gt;   *    consolekit *
&gt;   * opkg_install_cmd: Cannot install package pulseaudio-server.
&gt; 
&gt; 
&gt; Not sure what&apos;s proper fix, bitbake probably just checks that right provider
&gt; for
&gt; pulseaudio-module-console-kit is pulseaudio because of PACKAGES_DYNAMIC, but
&gt; does not check
&gt; RDEPENDS_pulseaudio-module-console-kit after that.
&gt; 
&gt; We can add consolekit to build time deps like it was before, but that&apos;s just
&gt; work around and not correct fix.

Updating with RP&apos;s reply on email
http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032223.html

Bitbake sees &quot;pulseaudio-module-console-kit&quot; and is has to ask &quot;Which                                                                                         
recipe provides this&quot;. To answer that question, it looks first at                                                                                             
PACKAGES and then at PACKAGES_DYNAMIC. In this case it will find a match                                                                                      
for PACKAGES_DYNAMIC but bitbake considers this a fuzzy match.                                                                                                
                                                                                                                                                              
We only match dynamic packages right at the end of processing and they                                                                                        
are &quot;fuzzy&quot;. Basically, they are just a sanity check in bitbake to                                                                                            
ensure there is some chance of the thing getting built.                                                                                                       
                                                                                                                                                              
I can see in this case that a dependency exists that BitBake could use                                                                                        
to enhance its knowledge, the trouble is that is would have to first                      
decide which provider is providing PACKAGES_DYNAMIC, and then search                        
that package for extra RDEPENDS. In this case its &quot;easier&quot; since its all                    
the same package but with our generic providers mechanism, this could                    
just as easily be split between two recipes which makes the problem at                    
lot more complex and the code has to be written for the general case.                    

I suspect we&apos;ll just have to add this. I agree it would be possible to                    
try and figure out this corner case but whether its worth the complexity                    
and extra parse time I&apos;m not sure. The risk of adding further bugs                    
trying to add this functionality would worry me, as would the extra                    
complexity and the time taken to do it...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105536</commentid>
    <comment_count>2</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2026-05-21 15:31:40 +0000</bug_when>
    <thetext>Fixing this is hard and could come at a high performance overhead (e.g. iterating the datastore to look at RDEPENDS:*). When originally written that was huge overhead by iterating the whole datastore. With the override syntax changes, it may be possible just to iterate the overrides of  variable.

I&apos;m also wondering if we could detect this situation having happened during the package generation and warn the user, that may be something that would now trigger with the existing code changes?

So still an issue but we may stand a better chance of dealing with it now...</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>