tree c837ef8f0c642968b7b99c6113e7b8f90de68e24
parent 5698cfb9430e38a7961291392db1e3195b5a05a6
author Andrew Jeffery <andrew@aj.id.au> 1522908075 +0930
committer Brad Bishop <bradleyb@fuzziesquirrel.com> 1523544218 +0000

u-boot: Ensure we rebuild on change of VERSION_ID

Systems utilising the obmc-ubi-fs DISTRO_FEATURE may fail to boot a
freshly built image under some circumstances. Typically the error will
be a mismatch in the u-boot environment between the value set in
`kernelname` and the on-flash volume name for the kernel. They differ in
the "Image ID" portion.

The image ID is derived from the VERSION_ID field of `/etc/os-release`,
and is currently added to the u-boot environment by sed-patching both a
patch file adding the necessary information to the appropriate u-boot
header, and the u-boot header itself.

Why the current approach is wrong requires a bit of background on
bitbake:

1. bitbake tasks must be idempotent
2. Building on 1, bitbake caches build state using stamp files
3. bitbake tasks will not be re-run if a stamp exists and the task
   input state matches
4. bitbake requires actions execute in the appropriate build phase

To the issues:

A. The sed-patching was performed by hooking the do_configure() task.
   This is wrong: There's a do_patch() phase whose purpose is to handle
   modifying the source tree, and will handle cache invalidation
   appropriately. The patch modifies the recipe to append the
   sed-patching to the do_patch() phase when the obmc-ubi-fs
   DISTRO_FEATURE is enabled.

B. Sed-patching a patch is unnecessary. We can just sed the target file.
   By appending to the do_patch() phase we know the patches listed in
   SRC_URI have be applied, so drop any mangling of the patch. Note that
   as the existing approach hooked do_configure(), the source (including
   the patch) will not be redeployed, therefore the patch may remain in
   its mangled state.

C. The search regex of the sed line only accounted for the case where
   the source was freshly unpacked and patched, and `kernelname` was
   assigned `kernel-0`. This will not be the case under a rebuild of a
   new commit to the OpenBMC repository that doesn't touch u-boot, as
   the source will not be redeployed due to the caching behaviour.

D: We need an explicit dependency for the do_patch() phase on
   os-release:do_populate_sysroot to ensure that if os-release changes
   that we redo the patch phase to pick up the new image ID in the
   u-boot environment.

The change addresses all of the issues outlined above.

Change-Id: I01c95693053cb58aa0c0a90da04a03bca8eeec9e
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
