<?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>3554</bug_id>
          
          <creation_ts>2012-12-10 14:12:20 +0000</creation_ts>
          <short_desc>&quot;all&quot; tasks don&apos;t affect all packages?</short_desc>
          <delta_ts>2013-01-21 13:54:06 +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>1.3</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>NOTABUG</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>1.4</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jerrod Peach">peachj</reporter>
          <assigned_to name="Richard Purdie">richard.purdie</assigned_to>
          <cc>poky.bs.watcher</cc>
    
    <cc>poky.watcher</cc>
    
    <cc>sgw</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>---</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>28118</commentid>
    <comment_count>0</comment_count>
    <who name="Jerrod Peach">peachj</who>
    <bug_when>2012-12-10 14:12:20 +0000</bug_when>
    <thetext>I noticed the changes to recrdeptask from Yocto 1.2 to Yocto 1.3.  I saw a number of &quot;all&quot; tasks in the classes change like this:

-do_checkuriall[recrdeptask] = &quot;do_checkuri&quot;
+do_checkuriall[recrdeptask] = &quot;do_checkuriall do_checkuri&quot;

I have my own task that needs to work on all packages, and I assumed making the same change to my task would cause this to occur.  (Prior to this, I had noticed the task seemed to only be running on about 12 packages, where it used to run on about 60.)  So, I made the change, and indeed started running on more packages.  It only ran on about 45 packages though, which I found curious.  So, I dug a little deeper and had bitbake spit out pn-buildlist for me (with the -g option).  That list showed around 75 packages.  That meant I was still not running on a pretty large number of packages.  Then I ran checkurilall.  I noticed it, too, was running on the same list of packages as my task, i.e. NOT all of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28155</commentid>
    <comment_count>1</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2012-12-11 17:20:56 +0000</bug_when>
    <thetext>Its important to consider what &quot;recrdeptask&quot; means and there has been a bit of conflict over what exactly this means in bitbake.

Taking:

do_checkuriall[recrdeptask] = &quot;do_checkuri&quot;

bitbake will look through the DEPENDS+RDEPENDS of the task and for each one, see if there is a do_checkuri task for the depedency. If it sees one, it will add a dependency on it.

do_checkuriall[recrdeptask] = &quot;do_checkuriall do_checkuri&quot;

will do the same thing but also look for and add dependencies on other do_checkuriall tasks. These in turn will have dependencies on their DEPENDS+RDEPENDS so the list is larger.

This behaviour was chosen as the user can clearly select between the two different bahviours easily.

Does this 100% match the previous behaviour bitbake sometimes had? No. The difference is &quot;task dependencies&quot; or &apos;tdepends&apos;. Imagine do_something is a task after do_checkuri which has do_something[depends] = &quot;somerecipe:do_xxx&quot;.

Note that neither do_checkuri or do_checkuriall depend on this task, nor should they, it happens afterwards. Its these tasks which account for the difference you&apos;re seeing.

The hard part comes if somerecipe has a do_checkuri task, should that be included in the dependecies? Right now, the answer is no, it isn&apos;t included and you can argue this both ways.

The trouble is sometimes you want this behaviour and sometimes you definetely don&apos;t want it. It can trigger much more to get built than you would sometimes desire. Its also a pain to implement since you have to inject dependencies that are somewhere &quot;up&quot; the stack.

Ultimately the solution is probably to add a new dependency type to bitbake and use this to signify when we really want *any* given task regardles of where the tdepends come in. Even then we need to carefully define the corner cases.

So the current behaviour is likely intentional. It may not be the desired behaviour in every case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28196</commentid>
    <comment_count>2</comment_count>
    <who name="Jerrod Peach">peachj</who>
    <bug_when>2012-12-12 16:59:56 +0000</bug_when>
    <thetext>RP,

It took me a while to understand your comment, but I think I get it now.  I agree with your assessment, and noticed after more careful analysis that none of the &quot;all&quot; tasks I care about seem to be going AWOL on packages that I care about.  If you don&apos;t have any new features you want to add based on this, I guess this can be closed because everything is functioning as designed?

Kind regards,

Jerrod</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28979</commentid>
    <comment_count>3</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2013-01-21 13:54:06 +0000</bug_when>
    <thetext>I&apos;m going to close this out as the system is working as designed. If anyone has a real world use case where there are problems, we can discuss this further.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>