summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2019-03-06 11:37:09 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-03-06 16:44:37 +0000
commit04bfce60c8c8e4d0ba17460e89d7a6d3d071c147 (patch)
tree6da04c112844a1a0fdcd881aa28bde11bbd7c1bd /meta
parent39685e2daf720b408861cd82e1c47bf88c0523af (diff)
downloadpoky-04bfce60c8c8e4d0ba17460e89d7a6d3d071c147.tar.gz
kernel-yocto: allow kernel-meta repositories to be patched
For testing purposes, it is often easier to patch a fragment in a kernel-meta repository versus needing to make a copy or modify the source repository. We can allow this sort of patching when a patchdir of kernel-meta is passed (to indicate the nested kernel-meta repository). Also note that we must patch the meta data before they are processed/gathered, since migrated copies to the kernel source directory will be used later. (From OE-Core rev: 324f9c8181150c23e3ce1ace4c45794cc8894167) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/kernel-yocto.bbclass29
1 files changed, 25 insertions, 4 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 2f556ca03b..bd7a957583 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
5 5
6# returns local (absolute) path names for all valid patches in the 6# returns local (absolute) path names for all valid patches in the
7# src_uri 7# src_uri
8def find_patches(d): 8def find_patches(d,subdir):
9 patches = src_patches(d) 9 patches = src_patches(d)
10 patch_list=[] 10 patch_list=[]
11 for p in patches: 11 for p in patches:
12 _, _, local, _, _, _ = bb.fetch.decodeurl(p) 12 _, _, local, _, _, parm = bb.fetch.decodeurl(p)
13 patch_list.append(local) 13 # if patchdir has been passed, we won't be able to apply it so skip
14 # the patch for now, and special processing happens later
15 patchdir = ''
16 if "patchdir" in parm:
17 patchdir = parm["patchdir"]
18 if patchdir:
19 if subdir == patchdir:
20 patch_list.append(local)
21 else:
22 patch_list.append(local)
14 23
15 return patch_list 24 return patch_list
16 25
@@ -119,8 +128,20 @@ do_kernel_metadata() {
119 fi 128 fi
120 fi 129 fi
121 130
131 # was anyone trying to patch the kernel meta data ?, we need to do
132 # this here, since the scc commands migrate the .cfg fragments to the
133 # kernel source tree, where they'll be used later.
134 check_git_config
135 patches="${@" ".join(find_patches(d,'kernel-meta'))}"
136 for p in $patches; do
137 (
138 cd ${WORKDIR}/kernel-meta
139 git am -s $p
140 )
141 done
142
122 sccs_from_src_uri="${@" ".join(find_sccs(d))}" 143 sccs_from_src_uri="${@" ".join(find_sccs(d))}"
123 patches="${@" ".join(find_patches(d))}" 144 patches="${@" ".join(find_patches(d,''))}"
124 feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" 145 feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
125 146
126 # a quick check to make sure we don't have duplicate defconfigs 147 # a quick check to make sure we don't have duplicate defconfigs