8

I'm using OpenEmbedded-Core and have created a custom layer with priority 6. Months of development have gone by, and now I want to increase my layer's priority to 8 because an append file from another layer with priority 7 is interfering with an append file I'm adding in my layer.

My question is, how can I generate a list of recipes and .bbappend files used in an image?

I want to generate the list both before and after I make the priority change so that I can compare them (with a difftool hopefully) to see if any unexpected side-effects occurred, like an important append file from the other layer getting ignored potentially.

I'm using the angstrom-v2014.12-yocto1.7 branch of the Angstrom distribution.

[EDIT]

I'm now primarily just interested in determining how to list which .bbappend files are actually used by my image at this point.

A list of packages can be viewed using "bitbake -g your-image-name" as suggested by @pnxs, or from the .manifest file (which is what I like to use) which in my case is located under deploy/glibc/images/imagename/. I originally asked how a list of "recipe files" could be generated, but I think a list of packages is sufficient.

Regarding the .bbappends though, I had a case where my own .bbappend was ignored due to layer priorities. I made a change to my layer priorities and now want to see if that caused any .bbappend files anywhere else in my image to get ignored. As I understand it, using "bitbake-layers show-appends" as suggested lists all .bbappends present rather than just those which are actually used in the creation of an image, so this doesn't do what I'm looking for.

user5071535
  • 1,312
  • 8
  • 25
  • 42
  • 1
    I have the same problem. Would be nice to know wich recipes are actually used within a specific image and where they come from (INSTALL_APPEND in which file?) – Anonymous Apr 04 '17 at 09:50

4 Answers4

4

Try the following:

Show all recipes

bitbake-layers show-recipes

Show .bb file of a recipe

RECIPE_NAME="linux-yocto"
bitbake -e  $RECIPE_NAME | grep ^FILE=
Iceberg
  • 2,744
  • 19
  • 19
3

Try using "bitbake-layers show-appends" to see what bbappends are used. But that will only work on a per-recipe basis. But that might give you the information you need to understand the priorities.

balister
  • 341
  • 2
  • 4
  • Helpful, but as I understand it, this shows all available bbappends, not just the ones that are actually used in my image, right? I've also looked at my image's manifest file, which tells me the exact version of every package used, but unfortunately doesn't let me know which bbappends were applied to each package. – user5071535 Oct 12 '15 at 18:06
3

You can do a "bitbake -g your-image-name" which creates some dot-files in the current directory.

The file "pn-depends.dot" contains a list of package-names (pn) and the dependencies between them.

When you take the first part of the file where all packages are listed, you see for example:

"busybox" [label="busybox :1.23.1-r0.2\n/home/user/yocto/sources/poky/meta/recipes-core/busybox/busybox_1.23.1.bb"] "base-files" [label="base-files :3.0.14-r89\n/home/user/yocto/sources/poky/meta/recipes-core/base-files/base-files_3.0.14.bb"]

So you got a list of all packages used by your image and the corresponding recipe-file.

To see which of the recpies are extended by bbappend you have to get the list of bbappends with "bitbake-layers show-appends" and look up the appends of every recipe. You can write a little python-program that can do that for you.

pnxs
  • 31
  • 2
  • The .dot files are a helpful suggestion, but I still need to be able to resolve which .bbappend files are used vs. not used in my image somehow. See my recent edit. – user5071535 Nov 03 '15 at 17:56
1

Try the below command

bitbake -g image-name && cat pn-depends.dot | grep -v -e '-native' | grep -v digraph | grep -v -e '-image' | awk '{print $1}' | sort | uniq
parera riddle
  • 148
  • 4
  • 10