Re: [OE-core] [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched

2019-03-10 Thread Bruce Ashfield
On Mon, Mar 11, 2019 at 12:01 AM Bruce Ashfield
 wrote:
>
> On Sun, Mar 10, 2019 at 11:14 PM Bruce Ashfield
>  wrote:
> >
> > On Sun, Mar 10, 2019 at 10:35 PM Bruce Ashfield
> >  wrote:
> > >
> > > On Sat, Mar 9, 2019 at 5:10 PM Paul Barker  wrote:
> > > >
> > > > On 06/03/2019 16:37, bruce.ashfi...@gmail.com wrote:
> > > > > From: Bruce Ashfield 
> > > > >
> > > > > 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.
> > > > >
> > > > > Signed-off-by: Bruce Ashfield 
> > > > > ---
> > > > >   meta/classes/kernel-yocto.bbclass | 29 +
> > > > >   1 file changed, 25 insertions(+), 4 deletions(-)
> > > > >
> > > > > diff --git a/meta/classes/kernel-yocto.bbclass 
> > > > > b/meta/classes/kernel-yocto.bbclass
> > > > > index 496c8a7f68..d2b194dd55 100644
> > > > > --- a/meta/classes/kernel-yocto.bbclass
> > > > > +++ b/meta/classes/kernel-yocto.bbclass
> > > > > @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> > > > >
> > > > >   # returns local (absolute) path names for all valid patches in the
> > > > >   # src_uri
> > > > > -def find_patches(d):
> > > > > +def find_patches(d,subdir):
> > > > >   patches = src_patches(d)
> > > > >   patch_list=[]
> > > > >   for p in patches:
> > > > > -_, _, local, _, _, _ = bb.fetch.decodeurl(p)
> > > > > -patch_list.append(local)
> > > > > +_, _, local, _, _, parm = bb.fetch.decodeurl(p)
> > > > > +# if patchdir has been passed, we won't be able to apply it 
> > > > > so skip
> > > > > +# the patch for now, and special processing happens later
> > > > > +patchdir = ''
> > > > > +if "patchdir" in parm:
> > > > > +patchdir = parm["patchdir"]
> > > > > +if patchdir:
> > > >
> > > > Did you mean 'if subdir:' here?
> > >
> > > Nope. I did mean if patchdir: here, that doesn't mean it is working 
> > > perfectly,
> > > but I did definitely mean patchdir.
> > >
> > > >
> > > > I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the
> > > > linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first
> > > > attempt is in do_kernel_metadata and this succeeds, the second is in
> > > > do_patch and this fails as the patch has already been applied.
> > >
> > > Hmm. The only thing that should be patchable in the meta data
> > > gathering is the meta data. Not the kernel source tree. It is just
> > > there as a rough debug / devel trigger. kernel-meta is a separate
> > > repo, so patches are only applied there.
> > >
> > > Something that triggers in do_patch can't be patching that same
> > > repo, since the kernel tree is separate ..
> > >
> > > Is the raspberrypi recipe using the upstream kernel-cache repo
> > > or is it doing something else ?
> > >
> > > Is it also using patches with patchdir specified in the src_uri ?
> > > If it isn't, I can't see how any of this is triggering.
> > >
> > > I'm out of the office this week, but this is something I can sort
> > > out .. can you send me the exact set of layers (and any
> > > local.conf I'd need) to trigger this ? I'll have some time tomorrow
> > > night to poke at it a bit.
> >
> > I just did a build with meta-raspberrypi and did recreate the issue,
> > I'll have a look at see what I can do. I'll need to test some other
> > use cases against any changes I make, so it'll be a bit touchy :P
>
> On a closer look, yes, it is safer to just have the test on subdir versus
> some other compound conditions that I was using.
>
> That being said, even with that fixed, I'm not able to complete the
> patch process for the linux-raspberrypi kernel, I'm seeing and error
> in do_patch itself, and it doesn't look related to the change in
> question.
>
> Are you seeing something similar ?

Never mind. I was carrying a local patch that was causing an issue
.. this is why you shouldn't try and work quickly while in a non-optimimal
environment.

I have the kernel patching here. For now, I'll send patch that follows your
original suggestion and I'll revisit the other workflows later.

Bruce

>
> Bruce
>
> >
> > Bruce
> >
> > >
> > > Bruce
> > >
> > > >
> > > > In this case, patchdir = '' as there is no patchdir set for this in the
> > > > recipe. The patch is still picked up when find_patches() is called with
> > > > subdir='kernel-meta' since the test here is false and the comparison
> > > > below is not performed.
> > > >
> > > > > +if subdir == patchdir:
> > > > > +patch_list.append(local)
> > > > > +else:
> > > > > 

Re: [OE-core] [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched

2019-03-10 Thread Bruce Ashfield
On Sun, Mar 10, 2019 at 11:14 PM Bruce Ashfield
 wrote:
>
> On Sun, Mar 10, 2019 at 10:35 PM Bruce Ashfield
>  wrote:
> >
> > On Sat, Mar 9, 2019 at 5:10 PM Paul Barker  wrote:
> > >
> > > On 06/03/2019 16:37, bruce.ashfi...@gmail.com wrote:
> > > > From: Bruce Ashfield 
> > > >
> > > > 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.
> > > >
> > > > Signed-off-by: Bruce Ashfield 
> > > > ---
> > > >   meta/classes/kernel-yocto.bbclass | 29 +
> > > >   1 file changed, 25 insertions(+), 4 deletions(-)
> > > >
> > > > diff --git a/meta/classes/kernel-yocto.bbclass 
> > > > b/meta/classes/kernel-yocto.bbclass
> > > > index 496c8a7f68..d2b194dd55 100644
> > > > --- a/meta/classes/kernel-yocto.bbclass
> > > > +++ b/meta/classes/kernel-yocto.bbclass
> > > > @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> > > >
> > > >   # returns local (absolute) path names for all valid patches in the
> > > >   # src_uri
> > > > -def find_patches(d):
> > > > +def find_patches(d,subdir):
> > > >   patches = src_patches(d)
> > > >   patch_list=[]
> > > >   for p in patches:
> > > > -_, _, local, _, _, _ = bb.fetch.decodeurl(p)
> > > > -patch_list.append(local)
> > > > +_, _, local, _, _, parm = bb.fetch.decodeurl(p)
> > > > +# if patchdir has been passed, we won't be able to apply it so 
> > > > skip
> > > > +# the patch for now, and special processing happens later
> > > > +patchdir = ''
> > > > +if "patchdir" in parm:
> > > > +patchdir = parm["patchdir"]
> > > > +if patchdir:
> > >
> > > Did you mean 'if subdir:' here?
> >
> > Nope. I did mean if patchdir: here, that doesn't mean it is working 
> > perfectly,
> > but I did definitely mean patchdir.
> >
> > >
> > > I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the
> > > linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first
> > > attempt is in do_kernel_metadata and this succeeds, the second is in
> > > do_patch and this fails as the patch has already been applied.
> >
> > Hmm. The only thing that should be patchable in the meta data
> > gathering is the meta data. Not the kernel source tree. It is just
> > there as a rough debug / devel trigger. kernel-meta is a separate
> > repo, so patches are only applied there.
> >
> > Something that triggers in do_patch can't be patching that same
> > repo, since the kernel tree is separate ..
> >
> > Is the raspberrypi recipe using the upstream kernel-cache repo
> > or is it doing something else ?
> >
> > Is it also using patches with patchdir specified in the src_uri ?
> > If it isn't, I can't see how any of this is triggering.
> >
> > I'm out of the office this week, but this is something I can sort
> > out .. can you send me the exact set of layers (and any
> > local.conf I'd need) to trigger this ? I'll have some time tomorrow
> > night to poke at it a bit.
>
> I just did a build with meta-raspberrypi and did recreate the issue,
> I'll have a look at see what I can do. I'll need to test some other
> use cases against any changes I make, so it'll be a bit touchy :P

On a closer look, yes, it is safer to just have the test on subdir versus
some other compound conditions that I was using.

That being said, even with that fixed, I'm not able to complete the
patch process for the linux-raspberrypi kernel, I'm seeing and error
in do_patch itself, and it doesn't look related to the change in
question.

Are you seeing something similar ?

Bruce

>
> Bruce
>
> >
> > Bruce
> >
> > >
> > > In this case, patchdir = '' as there is no patchdir set for this in the
> > > recipe. The patch is still picked up when find_patches() is called with
> > > subdir='kernel-meta' since the test here is false and the comparison
> > > below is not performed.
> > >
> > > > +if subdir == patchdir:
> > > > +patch_list.append(local)
> > > > +else:
> > > > +patch_list.append(local)
> > > >
> > > >   return patch_list
> > > >
> > > > @@ -119,8 +128,20 @@ do_kernel_metadata() {
> > > >   fi
> > > >   fi
> > > >
> > > > + # was anyone trying to patch the kernel meta data ?, we need to do
> > > > + # this here, since the scc commands migrate the .cfg fragments to 
> > > > the
> > > > + # kernel source tree, where they'll be used later.
> > > > + check_git_config
> > > > + patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> > > > + for p in $patches; do
> > > > + (
> > > 

Re: [OE-core] [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched

2019-03-10 Thread Bruce Ashfield
On Sun, Mar 10, 2019 at 10:35 PM Bruce Ashfield
 wrote:
>
> On Sat, Mar 9, 2019 at 5:10 PM Paul Barker  wrote:
> >
> > On 06/03/2019 16:37, bruce.ashfi...@gmail.com wrote:
> > > From: Bruce Ashfield 
> > >
> > > 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.
> > >
> > > Signed-off-by: Bruce Ashfield 
> > > ---
> > >   meta/classes/kernel-yocto.bbclass | 29 +
> > >   1 file changed, 25 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/meta/classes/kernel-yocto.bbclass 
> > > b/meta/classes/kernel-yocto.bbclass
> > > index 496c8a7f68..d2b194dd55 100644
> > > --- a/meta/classes/kernel-yocto.bbclass
> > > +++ b/meta/classes/kernel-yocto.bbclass
> > > @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> > >
> > >   # returns local (absolute) path names for all valid patches in the
> > >   # src_uri
> > > -def find_patches(d):
> > > +def find_patches(d,subdir):
> > >   patches = src_patches(d)
> > >   patch_list=[]
> > >   for p in patches:
> > > -_, _, local, _, _, _ = bb.fetch.decodeurl(p)
> > > -patch_list.append(local)
> > > +_, _, local, _, _, parm = bb.fetch.decodeurl(p)
> > > +# if patchdir has been passed, we won't be able to apply it so 
> > > skip
> > > +# the patch for now, and special processing happens later
> > > +patchdir = ''
> > > +if "patchdir" in parm:
> > > +patchdir = parm["patchdir"]
> > > +if patchdir:
> >
> > Did you mean 'if subdir:' here?
>
> Nope. I did mean if patchdir: here, that doesn't mean it is working perfectly,
> but I did definitely mean patchdir.
>
> >
> > I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the
> > linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first
> > attempt is in do_kernel_metadata and this succeeds, the second is in
> > do_patch and this fails as the patch has already been applied.
>
> Hmm. The only thing that should be patchable in the meta data
> gathering is the meta data. Not the kernel source tree. It is just
> there as a rough debug / devel trigger. kernel-meta is a separate
> repo, so patches are only applied there.
>
> Something that triggers in do_patch can't be patching that same
> repo, since the kernel tree is separate ..
>
> Is the raspberrypi recipe using the upstream kernel-cache repo
> or is it doing something else ?
>
> Is it also using patches with patchdir specified in the src_uri ?
> If it isn't, I can't see how any of this is triggering.
>
> I'm out of the office this week, but this is something I can sort
> out .. can you send me the exact set of layers (and any
> local.conf I'd need) to trigger this ? I'll have some time tomorrow
> night to poke at it a bit.

I just did a build with meta-raspberrypi and did recreate the issue,
I'll have a look at see what I can do. I'll need to test some other
use cases against any changes I make, so it'll be a bit touchy :P

Bruce

>
> Bruce
>
> >
> > In this case, patchdir = '' as there is no patchdir set for this in the
> > recipe. The patch is still picked up when find_patches() is called with
> > subdir='kernel-meta' since the test here is false and the comparison
> > below is not performed.
> >
> > > +if subdir == patchdir:
> > > +patch_list.append(local)
> > > +else:
> > > +patch_list.append(local)
> > >
> > >   return patch_list
> > >
> > > @@ -119,8 +128,20 @@ do_kernel_metadata() {
> > >   fi
> > >   fi
> > >
> > > + # was anyone trying to patch the kernel meta data ?, we need to do
> > > + # this here, since the scc commands migrate the .cfg fragments to 
> > > the
> > > + # kernel source tree, where they'll be used later.
> > > + check_git_config
> > > + patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> > > + for p in $patches; do
> > > + (
> > > + cd ${WORKDIR}/kernel-meta
> > > + git am -s $p
> > > + )
> > > + done
> > > +
> > >   sccs_from_src_uri="${@" ".join(find_sccs(d))}"
> > > - patches="${@" ".join(find_patches(d))}"
> > > + patches="${@" ".join(find_patches(d,''))}"
> > >   feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
> > >
> > >   # a quick check to make sure we don't have duplicate defconfigs
> > >
> >
> > --
> > Paul Barker
> > Beta Five Ltd
>
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II



-- 
- Thou shalt not follow the 

Re: [OE-core] [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched

2019-03-10 Thread Bruce Ashfield
On Sat, Mar 9, 2019 at 5:10 PM Paul Barker  wrote:
>
> On 06/03/2019 16:37, bruce.ashfi...@gmail.com wrote:
> > From: Bruce Ashfield 
> >
> > 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.
> >
> > Signed-off-by: Bruce Ashfield 
> > ---
> >   meta/classes/kernel-yocto.bbclass | 29 +
> >   1 file changed, 25 insertions(+), 4 deletions(-)
> >
> > diff --git a/meta/classes/kernel-yocto.bbclass 
> > b/meta/classes/kernel-yocto.bbclass
> > index 496c8a7f68..d2b194dd55 100644
> > --- a/meta/classes/kernel-yocto.bbclass
> > +++ b/meta/classes/kernel-yocto.bbclass
> > @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> >
> >   # returns local (absolute) path names for all valid patches in the
> >   # src_uri
> > -def find_patches(d):
> > +def find_patches(d,subdir):
> >   patches = src_patches(d)
> >   patch_list=[]
> >   for p in patches:
> > -_, _, local, _, _, _ = bb.fetch.decodeurl(p)
> > -patch_list.append(local)
> > +_, _, local, _, _, parm = bb.fetch.decodeurl(p)
> > +# if patchdir has been passed, we won't be able to apply it so skip
> > +# the patch for now, and special processing happens later
> > +patchdir = ''
> > +if "patchdir" in parm:
> > +patchdir = parm["patchdir"]
> > +if patchdir:
>
> Did you mean 'if subdir:' here?

Nope. I did mean if patchdir: here, that doesn't mean it is working perfectly,
but I did definitely mean patchdir.

>
> I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the
> linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first
> attempt is in do_kernel_metadata and this succeeds, the second is in
> do_patch and this fails as the patch has already been applied.

Hmm. The only thing that should be patchable in the meta data
gathering is the meta data. Not the kernel source tree. It is just
there as a rough debug / devel trigger. kernel-meta is a separate
repo, so patches are only applied there.

Something that triggers in do_patch can't be patching that same
repo, since the kernel tree is separate ..

Is the raspberrypi recipe using the upstream kernel-cache repo
or is it doing something else ?

Is it also using patches with patchdir specified in the src_uri ?
If it isn't, I can't see how any of this is triggering.

I'm out of the office this week, but this is something I can sort
out .. can you send me the exact set of layers (and any
local.conf I'd need) to trigger this ? I'll have some time tomorrow
night to poke at it a bit.

Bruce

>
> In this case, patchdir = '' as there is no patchdir set for this in the
> recipe. The patch is still picked up when find_patches() is called with
> subdir='kernel-meta' since the test here is false and the comparison
> below is not performed.
>
> > +if subdir == patchdir:
> > +patch_list.append(local)
> > +else:
> > +patch_list.append(local)
> >
> >   return patch_list
> >
> > @@ -119,8 +128,20 @@ do_kernel_metadata() {
> >   fi
> >   fi
> >
> > + # was anyone trying to patch the kernel meta data ?, we need to do
> > + # this here, since the scc commands migrate the .cfg fragments to the
> > + # kernel source tree, where they'll be used later.
> > + check_git_config
> > + patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> > + for p in $patches; do
> > + (
> > + cd ${WORKDIR}/kernel-meta
> > + git am -s $p
> > + )
> > + done
> > +
> >   sccs_from_src_uri="${@" ".join(find_sccs(d))}"
> > - patches="${@" ".join(find_patches(d))}"
> > + patches="${@" ".join(find_patches(d,''))}"
> >   feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
> >
> >   # a quick check to make sure we don't have duplicate defconfigs
> >
>
> --
> Paul Barker
> Beta Five Ltd



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched

2019-03-09 Thread Paul Barker

On 06/03/2019 16:37, bruce.ashfi...@gmail.com wrote:

From: Bruce Ashfield 

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.

Signed-off-by: Bruce Ashfield 
---
  meta/classes/kernel-yocto.bbclass | 29 +
  1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/meta/classes/kernel-yocto.bbclass 
b/meta/classes/kernel-yocto.bbclass
index 496c8a7f68..d2b194dd55 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
  
  # returns local (absolute) path names for all valid patches in the

  # src_uri
-def find_patches(d):
+def find_patches(d,subdir):
  patches = src_patches(d)
  patch_list=[]
  for p in patches:
-_, _, local, _, _, _ = bb.fetch.decodeurl(p)
-patch_list.append(local)
+_, _, local, _, _, parm = bb.fetch.decodeurl(p)
+# if patchdir has been passed, we won't be able to apply it so skip
+# the patch for now, and special processing happens later
+patchdir = ''
+if "patchdir" in parm:
+patchdir = parm["patchdir"]
+if patchdir:


Did you mean 'if subdir:' here?

I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the 
linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first 
attempt is in do_kernel_metadata and this succeeds, the second is in 
do_patch and this fails as the patch has already been applied.


In this case, patchdir = '' as there is no patchdir set for this in the 
recipe. The patch is still picked up when find_patches() is called with 
subdir='kernel-meta' since the test here is false and the comparison 
below is not performed.



+if subdir == patchdir:
+patch_list.append(local)
+else:
+patch_list.append(local)
  
  return patch_list
  
@@ -119,8 +128,20 @@ do_kernel_metadata() {

fi
fi
  
+	# was anyone trying to patch the kernel meta data ?, we need to do

+   # this here, since the scc commands migrate the .cfg fragments to the
+   # kernel source tree, where they'll be used later.
+   check_git_config
+   patches="${@" ".join(find_patches(d,'kernel-meta'))}"
+   for p in $patches; do
+   (
+   cd ${WORKDIR}/kernel-meta
+   git am -s $p
+   )
+   done
+
sccs_from_src_uri="${@" ".join(find_sccs(d))}"
-   patches="${@" ".join(find_patches(d))}"
+   patches="${@" ".join(find_patches(d,''))}"
feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
  
  	# a quick check to make sure we don't have duplicate defconfigs




--
Paul Barker
Beta Five Ltd
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched

2019-03-06 Thread bruce . ashfield
From: Bruce Ashfield 

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.

Signed-off-by: Bruce Ashfield 
---
 meta/classes/kernel-yocto.bbclass | 29 +
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/meta/classes/kernel-yocto.bbclass 
b/meta/classes/kernel-yocto.bbclass
index 496c8a7f68..d2b194dd55 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
 
 # returns local (absolute) path names for all valid patches in the
 # src_uri
-def find_patches(d):
+def find_patches(d,subdir):
 patches = src_patches(d)
 patch_list=[]
 for p in patches:
-_, _, local, _, _, _ = bb.fetch.decodeurl(p)
-patch_list.append(local)
+_, _, local, _, _, parm = bb.fetch.decodeurl(p)
+# if patchdir has been passed, we won't be able to apply it so skip
+# the patch for now, and special processing happens later
+patchdir = ''
+if "patchdir" in parm:
+patchdir = parm["patchdir"]
+if patchdir:
+if subdir == patchdir:
+patch_list.append(local)
+else:
+patch_list.append(local)
 
 return patch_list
 
@@ -119,8 +128,20 @@ do_kernel_metadata() {
fi
fi
 
+   # was anyone trying to patch the kernel meta data ?, we need to do
+   # this here, since the scc commands migrate the .cfg fragments to the
+   # kernel source tree, where they'll be used later.
+   check_git_config
+   patches="${@" ".join(find_patches(d,'kernel-meta'))}"
+   for p in $patches; do
+   (
+   cd ${WORKDIR}/kernel-meta
+   git am -s $p
+   )
+   done
+
sccs_from_src_uri="${@" ".join(find_sccs(d))}"
-   patches="${@" ".join(find_patches(d))}"
+   patches="${@" ".join(find_patches(d,''))}"
feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
 
# a quick check to make sure we don't have duplicate defconfigs
-- 
2.19.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core