* Re: [meta-virtualization] [PATCH] linux: add bbappend for generic cases
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
1 sibling, 1 reply; 5+ messages in thread
From: Richard Purdie @ 2020-02-25 13:37 UTC (permalink / raw)
To: Bruce Ashfield, Lee Chee Yang; +Cc: meta-virtualization
On Tue, 2020-02-25 at 08:33 -0500, 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
There are a few options. You could for example probably do something
like:
include ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-yocto-${LINUX_VERSION}_virtualization.inc', '', d)}
(note include instead of require)
Cheers,
Richard
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [meta-virtualization] [PATCH] linux: add bbappend for generic cases
2020-02-25 13:33 ` [meta-virtualization] " Bruce Ashfield
2020-02-25 13:37 ` Richard Purdie
@ 2020-02-26 14:30 ` Bruce Ashfield
1 sibling, 0 replies; 5+ messages in thread
From: Bruce Ashfield @ 2020-02-26 14:30 UTC (permalink / raw)
To: Lee Chee Yang, Richard Purdie; +Cc: meta-virtualization
[-- 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
^ permalink raw reply related [flat|nested] 5+ messages in thread