kernel-yocto: improve metadata patching

The ability to patch the kernel-yocto metadata was added to support
debug and easier test cycles on kernel-cache provided fragments. As
such, it was very simple and has limited functionality.

That being said, it is an available feature and can be improved to
handle patches that fail to apply.

The main kernel patching is already handled by the kern-tools, so
we extend the patching of the meta-data to same tools and inherit
more functinality from the scripts.

[YOCTO #15266]

(From OE-Core rev: e867addd6c2f508f7a95e72222e750d37f3d19d8)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Bruce Ashfield
2023-11-08 09:16:26 -05:00
committed by Richard Purdie
parent 798d954e8d
commit d6b37f2230

View File

@@ -176,12 +176,32 @@ do_kernel_metadata() {
# kernel source tree, where they'll be used later.
check_git_config
patches="${@" ".join(find_patches(d,'kernel-meta'))}"
for p in $patches; do
if [ -n "$patches" ]; then
(
cd ${WORKDIR}/kernel-meta
git am -s $p
)
done
cd ${WORKDIR}/kernel-meta
# take the SRC_URI patches, and create a series file
# this is required to support some better processing
# of issues with the patches
rm -f series
for p in $patches; do
cp $p .
echo "$(basename $p)" >> series
done
# process the series with kgit-s2q, which is what is
# handling the rest of the kernel. This allows us
# more flexibility for handling failures or advanced
# mergeing functinoality
message=$(kgit-s2q --gen -v --patches ${WORKDIR}/kernel-meta 2>&1)
if [ $? -ne 0 ]; then
# setup to try the patch again
kgit-s2q --prev
bberror "Problem applying patches to: ${WORKDIR}/kernel-meta"
bbfatal_log "\n($message)"
fi
)
fi
fi
sccs_from_src_uri="${@" ".join(find_sccs(d))}"