[poky] How can a package I didn't ask for get included in my image?

Paul Eggleton paul.eggleton at linux.intel.com
Tue Mar 6 11:26:56 PST 2012


On Tuesday 06 March 2012 10:39:10 Gary Thomas wrote:
> On 2012-03-06 10:05, Gary Thomas wrote:
> > I'm trying to figure out why a particular package is ending up
> > in my final image. If I build something like this:
> > % bitbake my-image
> > If I then look, I find packages that were installed that I'm
> > never mentioning:
> > % grep firmware tmp/work/my-board/my-image/temp/log.do_rootfs
> > Installing linux-firmware-wl12xx
> > (0.0+git1+09c949f6d3196a7199eb2c7015bfa5d34ed723b5-r0) to root... so I
> > tried to figure out how this is getting in
> > % bitbake my-image -g
> > % grep firmware *.dot
> > ... comes up empty
> > 
> > To be fair, I had originally built this image with this in <my-board>.conf
> > MACHINE_EXTRA_RRECOMMENDS = " kernel-modules linux-firmware-wl12xx "
> > but that has since been removed. Somehow, it's ghost lingers on...
> > 
> > How can this be?
> > How can I get rid of it, short of a complete rebuild?
> > 
> > Thanks for any insight into this mystery.
> 
> Found it myself - the variable MACHINE_EXTRA_RRECOMMENDS was referenced
> by my core task, something like this:
>    RRECOMMENDS_task-my-distro-boot = "\
>      ${MACHINE_EXTRA_RRECOMMENDS} \
>    "
> I hadn't rebuilt that task, so the reference remained.  I'm still not
> sure why it didn't end up in the .dot graphs though.

The dot graphs produced by bitbake -g will include what's projected by the 
recipes, not already built packages; thus why after your change it no longer 
appeared in the graphs. The answer is not to effectively make changes to the 
tasks without bumping the task recipe's PR (or alternatively enable 
BasicHash).

FYI you can enable buildhistory (without enabling BUILDHISTORY_COMMIT if you 
don't need that) and this will produce some dependency graphs directly from 
the packages used to construct the rootfs. These graphs are more focused and 
thus can be a bit more useful when you're trying to figure out how a package 
got into your image; however producing them is part of do_rootfs so you have 
to go through the entire process of building the image in order to get them.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the poky mailing list