[OE-core] best practises: how to properly "steal" recipes from a newer layer?

Adrian Bunk bunk at stusta.de
Sun Mar 1 21:58:51 UTC 2020


On Sun, Mar 01, 2020 at 03:29:35PM -0500, Robert P. J. Day wrote:
>...
>   1) writing the recipe from scratch, compatible with morty, or
>   2) flat-out stealing that recipe from a *newer* layer, as long as
>      it was compatible (this was done frequently)
>...
>   if i just blindly copy the recipe file forward, i'm going to have to
> go through this all again at the next migration. is there a reasonable
> way to add recipes to my (thud-based) layer that clearly shows those
> recipes are being scarfed from a newer layer? and i don't mean
> mentioning that in the commit msg as that will still require perusing
> all those commit messages.
> 
>   is there a clean way to do this? it may sound trivial, but in this
> case, i'm looking at a couple hundred recipes that eventually show up
> in newer layers that i could steal, and i really want to hang onto
> that information for the next migration.
> 
>   thoughts?

My usual approach for 2) is to have a recipes-backport/ in the layer 
that contains all recipes taken from more recent layers - completely
new recipes, new versions of recipes, and sometimes just one specific
change backported into a .bbappend.

Example in a layer for warrior (dropping an unwanted patch):
$ cat recipes-backport/e2fsprogs/e2fsprogs_1.44.5.bbappend 
SRC_URI_remove = "file://Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch"
$

If you have many backported changes and migrations are often not to the
latest Yocto release, you could further split this into 
recipes-backport-from-warrior/ etc.

With an "upstream first" policy all upstreamable cases of 1) become
cases of 2). For the example above see [1].

> rday

cu
Adrian

[1] https://github.com/openembedded/openembedded-core/commit/f5edce401cfb31ebd0200adaba9a201caf7ea705


More information about the Openembedded-core mailing list