]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commit
devtool: implement conditional patch handling
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Tue, 31 Oct 2017 03:48:05 +0000 (16:48 +1300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 11 Nov 2017 12:14:27 +0000 (12:14 +0000)
commit125e0b72b7b419368761ffbbf38987f91af4523b
tree82028e3ca3c653e516429731bbe9b90184f33a06
parent9a80078e4b8e01d9bb49288f214f40e8497aa3ac
devtool: implement conditional patch handling

If you have a recipe that uses overrides to conditionally extend
SRC_URI to add additional patches, then you will often need to update
those patches if you're making other changes to the source tree (for
example if you're upgrading the underlying source). Make this possible
with devtool by creating devtool-override-* branches for each override
that conditionally appends/prepends SRC_URI, and have devtool
update-recipe / finish check each branch out in turn and update the
corresponding patches.

A current example of a recipe that does this is the quota recipe - it
applies an additional patch if musl is the selected C library (i.e.
libc-musl is in OVERRIDES).

Note that use of this functionality does require some care - in
particular, updates to patches that appear on the main branch (named
"devtool" by default) should be made there and not only on one of the
specific devtool-override-* branches that are created for each override.
The recommended procedure is to make the changes you want to make to the
main branch first, then check out and rebase each devtool-override-*
branch, testing each one by activating the corresponding configuration,
and then finally run devtool finish.

Fixes [YOCTO #11516].

(From OE-Core rev: aa87603d1ffd695027847f4df75c0406cf4e14d8)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/devtool-source.bbclass
scripts/lib/devtool/standard.py
scripts/lib/devtool/upgrade.py