From: "Bruce Ashfield" <bruce.ashfield@gmail.com>
To: Lee Chee Yang <chee.yang.lee@intel.com>,
Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: meta-virtualization@lists.yoctoproject.org
Subject: Re: [meta-virtualization] [PATCH] linux: add bbappend for generic cases
Date: Wed, 26 Feb 2020 09:30:57 -0500 [thread overview]
Message-ID: <20200226143053.GA25436@gmail.com> (raw)
In-Reply-To: <CADkTA4M6PKA4wJ5vrOYis+q7Tvw+xAbQG7TMyim-Xz_+PZywfg@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2458 bytes --]
In message: Re: [meta-virtualization] [PATCH] linux: add bbappend for generic cases
on 25/02/2020 Bruce Ashfield wrote:
> On Tue, Feb 25, 2020 at 1:47 AM Lee Chee Yang <chee.yang.lee@intel.com> wrote:
> >
> > From: Chee Yang Lee <chee.yang.lee@intel.com>
> >
> > add generic .bbappend for linux kernel recipe to allow
> > all linux kernel recipe with name "linux-%" to enjoy the
> > kernel config from virtualization layer.
>
> The generic bbappend makes sense, but having them completely
> unversioned is an issue. Having them completely generic gives us no
> way to adjust the names as they change over time (and they do) and can
> give the false impression that they've been tested or are valid for
> any version.
>
> Last I checked, the % wildcard means "until the end", so we can't do
> linux-%_<version>.bbappend
>
> I've always had the LINUX_VERSION variable in linux-yocto for cases
> like this, so I'm wondering if not only can we check the distro
> feature, but can we also check the version before doing the kernel
> feature addition ?
>
> I've cc'd Richard, in case he sees this and can offer a suggestion.
>
> I'll think on this more, since I'd rather collapse all the
> linux-yocto* bbappends, into a single bbappend that works like this,
> so not only can it be used by other kernels, I can actually test it :D
I've come up with the following patch. It works for linux-yocto*, and
is setup to work for any fragment enabled kernel.
I'm sure someone will point out a parse ordering, or some other
corner case, but this is the direction I'd like to go with this.
Cheers,
Bruce
>
> Bruce
>
>
> >
> > [YOCTO #13727]
> >
> > Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
> > ---
> > recipes-kernel/linux/linux-%.bbappend | 1 +
> > 1 file changed, 1 insertion(+)
> > create mode 100644 recipes-kernel/linux/linux-%.bbappend
> >
> > diff --git a/recipes-kernel/linux/linux-%.bbappend b/recipes-kernel/linux/linux-%.bbappend
> > new file mode 100644
> > index 0000000..20eeba9
> > --- /dev/null
> > +++ b/recipes-kernel/linux/linux-%.bbappend
> > @@ -0,0 +1 @@
> > +require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-yocto_virtualization.inc', '', d)}
> > --
> > 2.7.4
> >
> >
>
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II
[-- Attachment #2: 0001-kernel-allow-fragment-re-use-from-any-aware-kernel.patch --]
[-- Type: text/x-diff, Size: 4323 bytes --]
From f2f36a8061c600b35b5f0ce1599d59f1d144a3aa Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Wed, 26 Feb 2020 08:53:04 -0500
Subject: [PATCH] kernel: allow fragment re-use from any aware kernel
The kernel fragments contained in this layer could not easily
be consumed by any fragment aware kernel not called "linux-yocto".
To make them easier to include, we make the bbappend more generic,
to match any linux*.bb recipe (note: this means it will match
things like linux-atm.bb as well).
To avoid adding the fragments to recipes that can't use them,
or to a version that hasn't been valided, we use the LINUX_VERSION
variable to pull out the major/minor kernel release and then
include a specific version of the .inc file.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
recipes-kernel/linux/linux-%.bbappend | 10 ++++++++++
recipes-kernel/linux/linux-yocto-rt_%.bbappend | 1 -
recipes-kernel/linux/linux-yocto_5.2.bbappend | 1 -
.../linux/linux-yocto_5.2_virtualization.inc | 4 ++++
recipes-kernel/linux/linux-yocto_5.4.bbappend | 1 -
.../linux/linux-yocto_5.4_virtualization.inc | 4 ++++
6 files changed, 18 insertions(+), 3 deletions(-)
create mode 100644 recipes-kernel/linux/linux-%.bbappend
delete mode 100644 recipes-kernel/linux/linux-yocto-rt_%.bbappend
delete mode 100644 recipes-kernel/linux/linux-yocto_5.2.bbappend
create mode 100644 recipes-kernel/linux/linux-yocto_5.2_virtualization.inc
delete mode 100644 recipes-kernel/linux/linux-yocto_5.4.bbappend
create mode 100644 recipes-kernel/linux/linux-yocto_5.4_virtualization.inc
diff --git a/recipes-kernel/linux/linux-%.bbappend b/recipes-kernel/linux/linux-%.bbappend
new file mode 100644
index 0000000..2a2335b
--- /dev/null
+++ b/recipes-kernel/linux/linux-%.bbappend
@@ -0,0 +1,10 @@
+# any kernel recipe with fragment support, that sets LINUX_VERSION to one of the tested
+# values, will get the appropriate fragments included in their SRC_URI
+
+LINUX_MAJOR = "${@(d.getVar('LINUX_VERSION') or "x.y").split('.')[0]}"
+LINUX_MINOR = "${@(d.getVar('LINUX_VERSION') or "x.y").split('.')[1]}"
+
+include ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-yocto_${LINUX_MAJOR}.${LINUX_MINOR}_virtualization.inc', '', d)}
+
+
+
diff --git a/recipes-kernel/linux/linux-yocto-rt_%.bbappend b/recipes-kernel/linux/linux-yocto-rt_%.bbappend
deleted file mode 100644
index 20eeba9..0000000
--- a/recipes-kernel/linux/linux-yocto-rt_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-yocto_virtualization.inc', '', d)}
diff --git a/recipes-kernel/linux/linux-yocto_5.2.bbappend b/recipes-kernel/linux/linux-yocto_5.2.bbappend
deleted file mode 100644
index 617cacc..0000000
--- a/recipes-kernel/linux/linux-yocto_5.2.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', '${BPN}_virtualization.inc', '', d)}
diff --git a/recipes-kernel/linux/linux-yocto_5.2_virtualization.inc b/recipes-kernel/linux/linux-yocto_5.2_virtualization.inc
new file mode 100644
index 0000000..5931148
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_5.2_virtualization.inc
@@ -0,0 +1,4 @@
+# include the baseline meta virtualization configuration options
+# after this include, we can do version specific things
+
+include linux-yocto_virtualization.inc
diff --git a/recipes-kernel/linux/linux-yocto_5.4.bbappend b/recipes-kernel/linux/linux-yocto_5.4.bbappend
deleted file mode 100644
index 617cacc..0000000
--- a/recipes-kernel/linux/linux-yocto_5.4.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', '${BPN}_virtualization.inc', '', d)}
diff --git a/recipes-kernel/linux/linux-yocto_5.4_virtualization.inc b/recipes-kernel/linux/linux-yocto_5.4_virtualization.inc
new file mode 100644
index 0000000..5931148
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_5.4_virtualization.inc
@@ -0,0 +1,4 @@
+# include the baseline meta virtualization configuration options
+# after this include, we can do version specific things
+
+include linux-yocto_virtualization.inc
--
2.19.1
prev parent reply other threads:[~2020-02-26 14:31 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-25 6:47 [PATCH] linux: add bbappend for generic cases Lee Chee Yang
2020-02-25 13:33 ` [meta-virtualization] " Bruce Ashfield
2020-02-25 13:37 ` Richard Purdie
2020-02-25 13:41 ` Bruce Ashfield
2020-02-26 14:30 ` Bruce Ashfield [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200226143053.GA25436@gmail.com \
--to=bruce.ashfield@gmail.com \
--cc=chee.yang.lee@intel.com \
--cc=meta-virtualization@lists.yoctoproject.org \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.