* [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible
@ 2022-11-12 16:31 Christoph Lauer
2022-11-13 13:43 ` [OE-core] " Peter Kjellerstedt
0 siblings, 1 reply; 4+ messages in thread
From: Christoph Lauer @ 2022-11-12 16:31 UTC (permalink / raw)
To: openembedded-core; +Cc: Christoph Lauer
From: Christoph Lauer <christoph.lauer@xtronic.de>
This gives BSP creators the flexibility to change features with weak defaults
Signed-off-by: Christoph Lauer <christoph.lauer@xtronic.de>
---
meta-poky/conf/distro/poky.conf | 2 +-
meta/conf/bitbake.conf | 28 +++++++++----------
.../distro/include/default-distrovars.inc | 6 ++--
meta/conf/machine/include/qemu.inc | 2 +-
meta/conf/machine/include/riscv/qemuriscv.inc | 2 +-
5 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/meta-poky/conf/distro/poky.conf b/meta-poky/conf/distro/poky.conf
index 3e90766349..3a453ef9ed 100644
--- a/meta-poky/conf/distro/poky.conf
+++ b/meta-poky/conf/distro/poky.conf
@@ -18,7 +18,7 @@ POKY_DEFAULT_DISTRO_FEATURES = "largefile opengl ptest multiarch wayland vulkan"
POKY_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot"
POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet"
-DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
+DISTRO_FEATURES ??= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
PREFERRED_VERSION_linux-yocto ?= "5.19%"
PREFERRED_VERSION_linux-yocto-rt ?= "5.19%"
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index dea573986d..b2540bb3f5 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -885,31 +885,31 @@ OES_BITBAKE_CONF = "1"
# Machine properties and packagegroup-base stuff
##################################################################
-MACHINE_FEATURES ?= ""
-DISTRO_FEATURES ?= ""
+MACHINE_FEATURES ??= ""
+DISTRO_FEATURES ??= ""
-DISTRO_EXTRA_RDEPENDS ?= ""
-DISTRO_EXTRA_RRECOMMENDS ?= ""
-MACHINE_EXTRA_RDEPENDS ?= ""
-MACHINE_EXTRA_RRECOMMENDS ?= ""
-MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
+DISTRO_EXTRA_RDEPENDS ??= ""
+DISTRO_EXTRA_RRECOMMENDS ??= ""
+MACHINE_EXTRA_RDEPENDS ??= ""
+MACHINE_EXTRA_RRECOMMENDS ??= ""
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS ??= ""
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ??= ""
EXTRA_IMAGE_FEATURES ??= ""
IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
# Native distro features (will always be used for -native, even if they
# are not enabled for target)
-DISTRO_FEATURES_NATIVE ?= "x11 ipv6 xattr"
-DISTRO_FEATURES_NATIVESDK ?= "x11"
+DISTRO_FEATURES_NATIVE ??= "x11 ipv6 xattr"
+DISTRO_FEATURES_NATIVESDK ??= "x11"
# Normally target distro features will not be applied to native builds:
# Native distro features on this list will use the target feature value
-DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl wayland"
-DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl wayland"
+DISTRO_FEATURES_FILTER_NATIVE ??= "api-documentation debuginfod opengl wayland"
+DISTRO_FEATURES_FILTER_NATIVESDK ??= "api-documentation debuginfod opengl wayland"
-DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
-MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
+DISTRO_FEATURES_BACKFILL ??= "pulseaudio sysvinit gobject-introspection-data ldconfig"
+MACHINE_FEATURES_BACKFILL ??= "rtc qemu-usermode"
COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}"
COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES"
diff --git a/meta/conf/distro/include/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc
index abf48f79f0..3b3d439ad3 100644
--- a/meta/conf/distro/include/default-distrovars.inc
+++ b/meta/conf/distro/include/default-distrovars.inc
@@ -19,9 +19,9 @@ DISTRO_FEATURES_DEFAULT:remove:arc = "seccomp"
# seccomp is not yet ported to microblaze
DISTRO_FEATURES_DEFAULT:remove:microblaze = "seccomp"
-DISTRO_FEATURES_DEFAULT ?= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
-DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
-IMAGE_FEATURES ?= ""
+DISTRO_FEATURES_DEFAULT ??= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
+DISTRO_FEATURES ??= "${DISTRO_FEATURES_DEFAULT}"
+IMAGE_FEATURES ??= ""
COMMERCIAL_AUDIO_PLUGINS ?= ""
# COMMERCIAL_AUDIO_PLUGINS ?= "gst-plugins-ugly-mad gst-plugins-ugly-mpegaudioparse"
diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc
index d9bed7708d..04ffe55309 100644
--- a/meta/conf/machine/include/qemu.inc
+++ b/meta/conf/machine/include/qemu.inc
@@ -10,7 +10,7 @@ XSERVER ?= "xserver-xorg \
xf86-video-fbdev \
"
-MACHINE_FEATURES = "alsa bluetooth usbgadget screen vfat"
+MACHINE_FEATURES ??= "alsa bluetooth usbgadget screen vfat"
MACHINEOVERRIDES =. "qemuall:"
diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
index 0b399ac1f9..f5f9f89a9f 100644
--- a/meta/conf/machine/include/riscv/qemuriscv.inc
+++ b/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -3,7 +3,7 @@ PREFERRED_PROVIDER_virtual/bootloader ??= "u-boot"
require conf/machine/include/qemu.inc
require conf/machine/include/riscv/tune-riscv.inc
-MACHINE_FEATURES = "screen keyboard ext2 ext3 serial"
+MACHINE_FEATURES ?= "screen keyboard ext2 ext3 serial"
KERNEL_IMAGETYPE = "Image"
KERNEL_IMAGETYPES += "uImage"
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [OE-core] [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible
2022-11-12 16:31 [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible Christoph Lauer
@ 2022-11-13 13:43 ` Peter Kjellerstedt
2022-11-13 17:48 ` Alexander Kanavin
0 siblings, 1 reply; 4+ messages in thread
From: Peter Kjellerstedt @ 2022-11-13 13:43 UTC (permalink / raw)
To: Christoph Lauer, openembedded-core@lists.openembedded.org; +Cc: Christoph Lauer
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Christoph Lauer
> Sent: den 12 november 2022 17:31
> To: openembedded-core@lists.openembedded.org
> Cc: Christoph Lauer <christoph.lauer@xtronic.de>
> Subject: [OE-core] [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible
>
> From: Christoph Lauer <christoph.lauer@xtronic.de>
>
> This gives BSP creators the flexibility to change features with weak defaults
>
> Signed-off-by: Christoph Lauer <christoph.lauer@xtronic.de>
> ---
> meta-poky/conf/distro/poky.conf | 2 +-
> meta/conf/bitbake.conf | 28 +++++++++----------
> .../distro/include/default-distrovars.inc | 6 ++--
> meta/conf/machine/include/qemu.inc | 2 +-
> meta/conf/machine/include/riscv/qemuriscv.inc | 2 +-
> 5 files changed, 20 insertions(+), 20 deletions(-)
>
> diff --git a/meta-poky/conf/distro/poky.conf b/meta-poky/conf/distro/poky.conf
> index 3e90766349..3a453ef9ed 100644
> --- a/meta-poky/conf/distro/poky.conf
> +++ b/meta-poky/conf/distro/poky.conf
> @@ -18,7 +18,7 @@ POKY_DEFAULT_DISTRO_FEATURES = "largefile opengl ptest multiarch wayland vulkan"
> POKY_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot"
> POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet"
>
> -DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
> +DISTRO_FEATURES ??= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
>
> PREFERRED_VERSION_linux-yocto ?= "5.19%"
> PREFERRED_VERSION_linux-yocto-rt ?= "5.19%"
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index dea573986d..b2540bb3f5 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -885,31 +885,31 @@ OES_BITBAKE_CONF = "1"
> # Machine properties and packagegroup-base stuff
> ##################################################################
>
> -MACHINE_FEATURES ?= ""
> -DISTRO_FEATURES ?= ""
> +MACHINE_FEATURES ??= ""
> +DISTRO_FEATURES ??= ""
>
> -DISTRO_EXTRA_RDEPENDS ?= ""
> -DISTRO_EXTRA_RRECOMMENDS ?= ""
> -MACHINE_EXTRA_RDEPENDS ?= ""
> -MACHINE_EXTRA_RRECOMMENDS ?= ""
> -MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
> -MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
> +DISTRO_EXTRA_RDEPENDS ??= ""
> +DISTRO_EXTRA_RRECOMMENDS ??= ""
> +MACHINE_EXTRA_RDEPENDS ??= ""
> +MACHINE_EXTRA_RRECOMMENDS ??= ""
> +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ??= ""
> +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ??= ""
>
> EXTRA_IMAGE_FEATURES ??= ""
> IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
>
> # Native distro features (will always be used for -native, even if they
> # are not enabled for target)
> -DISTRO_FEATURES_NATIVE ?= "x11 ipv6 xattr"
> -DISTRO_FEATURES_NATIVESDK ?= "x11"
> +DISTRO_FEATURES_NATIVE ??= "x11 ipv6 xattr"
> +DISTRO_FEATURES_NATIVESDK ??= "x11"
>
> # Normally target distro features will not be applied to native builds:
> # Native distro features on this list will use the target feature value
> -DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl wayland"
> -DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl wayland"
> +DISTRO_FEATURES_FILTER_NATIVE ??= "api-documentation debuginfod opengl wayland"
> +DISTRO_FEATURES_FILTER_NATIVESDK ??= "api-documentation debuginfod opengl wayland"
>
> -DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
> -MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
> +DISTRO_FEATURES_BACKFILL ??= "pulseaudio sysvinit gobject-introspection-data ldconfig"
> +MACHINE_FEATURES_BACKFILL ??= "rtc qemu-usermode"
>
> COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}"
> COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES"
> diff --git a/meta/conf/distro/include/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc
> index abf48f79f0..3b3d439ad3 100644
> --- a/meta/conf/distro/include/default-distrovars.inc
> +++ b/meta/conf/distro/include/default-distrovars.inc
> @@ -19,9 +19,9 @@ DISTRO_FEATURES_DEFAULT:remove:arc = "seccomp"
> # seccomp is not yet ported to microblaze
> DISTRO_FEATURES_DEFAULT:remove:microblaze = "seccomp"
>
> -DISTRO_FEATURES_DEFAULT ?= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
> -DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
> -IMAGE_FEATURES ?= ""
> +DISTRO_FEATURES_DEFAULT ??= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
> +DISTRO_FEATURES ??= "${DISTRO_FEATURES_DEFAULT}"
> +IMAGE_FEATURES ??= ""
>
> COMMERCIAL_AUDIO_PLUGINS ?= ""
> # COMMERCIAL_AUDIO_PLUGINS ?= "gst-plugins-ugly-mad gst-plugins-ugly-mpegaudioparse"
> diff --git a/meta/conf/machine/include/qemu.inc
> b/meta/conf/machine/include/qemu.inc
> index d9bed7708d..04ffe55309 100644
> --- a/meta/conf/machine/include/qemu.inc
> +++ b/meta/conf/machine/include/qemu.inc
> @@ -10,7 +10,7 @@ XSERVER ?= "xserver-xorg \
> xf86-video-fbdev \
> "
>
> -MACHINE_FEATURES = "alsa bluetooth usbgadget screen vfat"
> +MACHINE_FEATURES ??= "alsa bluetooth usbgadget screen vfat"
>
> MACHINEOVERRIDES =. "qemuall:"
>
> diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
> index 0b399ac1f9..f5f9f89a9f 100644
> --- a/meta/conf/machine/include/riscv/qemuriscv.inc
> +++ b/meta/conf/machine/include/riscv/qemuriscv.inc
> @@ -3,7 +3,7 @@ PREFERRED_PROVIDER_virtual/bootloader ??= "u-boot"
> require conf/machine/include/qemu.inc
> require conf/machine/include/riscv/tune-riscv.inc
>
> -MACHINE_FEATURES = "screen keyboard ext2 ext3 serial"
> +MACHINE_FEATURES ?= "screen keyboard ext2 ext3 serial"
>
> KERNEL_IMAGETYPE = "Image"
> KERNEL_IMAGETYPES += "uImage"
> --
> 2.17.1
This is a breaking change, which can have a lot of not easily detected
consequences, and I would advise against it. Changing ??= to ?= means
that you can no longer do, e.g., DISTRO_FEATURES += " foo" in your
configuration. For comparison, if you add the following to a recipe or
your local.conf:
FOOBAR1 ??= "foo"
FOOBAR1 += "bar"
FOOBAR2 ?= "foo"
FOOBAR2 += "bar"
the result will be:
FOOBAR1=" bar"
FOOBAR2="foo bar"
If your patch is applied to Poky, this is the resulting change in the
configuration:
--- a.txt 2022-11-13 14:34:17.882922391 +0100
+++ b.txt 2022-11-13 14:34:37.902531305 +0100
@@ -7,6 +7,6 @@
DISTRO_FEATURES_NATIVE="x11 ipv6 xattr"
DISTRO_FEATURES_NATIVESDK="x11"
IMAGE_FEATURES=" debug-tweaks ptest-pkgs debug-tweaks tools-debug"
-MACHINE_FEATURES="alsa bluetooth usbgadget screen vfat x86 pci rtc qemu-usermode"
+MACHINE_FEATURES=" x86 pci rtc qemu-usermode"
MACHINE_FEATURES_BACKFILL="rtc qemu-usermode"
MACHINE_FEATURES_BACKFILL_CONSIDERED=" "
As can be seen, your change has modified the default configuration for
qemux86-64 and you did not notice, even though you were aware that you
were changing the variables. Imagine what it would do to others...
//Peter
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [OE-core] [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible
2022-11-13 13:43 ` [OE-core] " Peter Kjellerstedt
@ 2022-11-13 17:48 ` Alexander Kanavin
2022-11-14 17:11 ` Christoph Lauer
0 siblings, 1 reply; 4+ messages in thread
From: Alexander Kanavin @ 2022-11-13 17:48 UTC (permalink / raw)
To: Christoph Lauer
Cc: openembedded-core@lists.openembedded.org, Christoph Lauer,
Peter Kjellerstedt
It helps if you explain what use case this enables that cannot be
currently fulfilled. (not a generic 'change features with weak
defaults' but specific examples of adding and removing and setting
features).
Alex
On Sun, 13 Nov 2022 at 14:43, Peter Kjellerstedt
<peter.kjellerstedt@axis.com> wrote:
>
> > -----Original Message-----
> > From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Christoph Lauer
> > Sent: den 12 november 2022 17:31
> > To: openembedded-core@lists.openembedded.org
> > Cc: Christoph Lauer <christoph.lauer@xtronic.de>
> > Subject: [OE-core] [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible
> >
> > From: Christoph Lauer <christoph.lauer@xtronic.de>
> >
> > This gives BSP creators the flexibility to change features with weak defaults
> >
> > Signed-off-by: Christoph Lauer <christoph.lauer@xtronic.de>
> > ---
> > meta-poky/conf/distro/poky.conf | 2 +-
> > meta/conf/bitbake.conf | 28 +++++++++----------
> > .../distro/include/default-distrovars.inc | 6 ++--
> > meta/conf/machine/include/qemu.inc | 2 +-
> > meta/conf/machine/include/riscv/qemuriscv.inc | 2 +-
> > 5 files changed, 20 insertions(+), 20 deletions(-)
> >
> > diff --git a/meta-poky/conf/distro/poky.conf b/meta-poky/conf/distro/poky.conf
> > index 3e90766349..3a453ef9ed 100644
> > --- a/meta-poky/conf/distro/poky.conf
> > +++ b/meta-poky/conf/distro/poky.conf
> > @@ -18,7 +18,7 @@ POKY_DEFAULT_DISTRO_FEATURES = "largefile opengl ptest multiarch wayland vulkan"
> > POKY_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot"
> > POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet"
> >
> > -DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
> > +DISTRO_FEATURES ??= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
> >
> > PREFERRED_VERSION_linux-yocto ?= "5.19%"
> > PREFERRED_VERSION_linux-yocto-rt ?= "5.19%"
> > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> > index dea573986d..b2540bb3f5 100644
> > --- a/meta/conf/bitbake.conf
> > +++ b/meta/conf/bitbake.conf
> > @@ -885,31 +885,31 @@ OES_BITBAKE_CONF = "1"
> > # Machine properties and packagegroup-base stuff
> > ##################################################################
> >
> > -MACHINE_FEATURES ?= ""
> > -DISTRO_FEATURES ?= ""
> > +MACHINE_FEATURES ??= ""
> > +DISTRO_FEATURES ??= ""
> >
> > -DISTRO_EXTRA_RDEPENDS ?= ""
> > -DISTRO_EXTRA_RRECOMMENDS ?= ""
> > -MACHINE_EXTRA_RDEPENDS ?= ""
> > -MACHINE_EXTRA_RRECOMMENDS ?= ""
> > -MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
> > -MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
> > +DISTRO_EXTRA_RDEPENDS ??= ""
> > +DISTRO_EXTRA_RRECOMMENDS ??= ""
> > +MACHINE_EXTRA_RDEPENDS ??= ""
> > +MACHINE_EXTRA_RRECOMMENDS ??= ""
> > +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ??= ""
> > +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ??= ""
> >
> > EXTRA_IMAGE_FEATURES ??= ""
> > IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
> >
> > # Native distro features (will always be used for -native, even if they
> > # are not enabled for target)
> > -DISTRO_FEATURES_NATIVE ?= "x11 ipv6 xattr"
> > -DISTRO_FEATURES_NATIVESDK ?= "x11"
> > +DISTRO_FEATURES_NATIVE ??= "x11 ipv6 xattr"
> > +DISTRO_FEATURES_NATIVESDK ??= "x11"
> >
> > # Normally target distro features will not be applied to native builds:
> > # Native distro features on this list will use the target feature value
> > -DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl wayland"
> > -DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl wayland"
> > +DISTRO_FEATURES_FILTER_NATIVE ??= "api-documentation debuginfod opengl wayland"
> > +DISTRO_FEATURES_FILTER_NATIVESDK ??= "api-documentation debuginfod opengl wayland"
> >
> > -DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
> > -MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
> > +DISTRO_FEATURES_BACKFILL ??= "pulseaudio sysvinit gobject-introspection-data ldconfig"
> > +MACHINE_FEATURES_BACKFILL ??= "rtc qemu-usermode"
> >
> > COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}"
> > COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES"
> > diff --git a/meta/conf/distro/include/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc
> > index abf48f79f0..3b3d439ad3 100644
> > --- a/meta/conf/distro/include/default-distrovars.inc
> > +++ b/meta/conf/distro/include/default-distrovars.inc
> > @@ -19,9 +19,9 @@ DISTRO_FEATURES_DEFAULT:remove:arc = "seccomp"
> > # seccomp is not yet ported to microblaze
> > DISTRO_FEATURES_DEFAULT:remove:microblaze = "seccomp"
> >
> > -DISTRO_FEATURES_DEFAULT ?= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
> > -DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
> > -IMAGE_FEATURES ?= ""
> > +DISTRO_FEATURES_DEFAULT ??= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
> > +DISTRO_FEATURES ??= "${DISTRO_FEATURES_DEFAULT}"
> > +IMAGE_FEATURES ??= ""
> >
> > COMMERCIAL_AUDIO_PLUGINS ?= ""
> > # COMMERCIAL_AUDIO_PLUGINS ?= "gst-plugins-ugly-mad gst-plugins-ugly-mpegaudioparse"
> > diff --git a/meta/conf/machine/include/qemu.inc
> > b/meta/conf/machine/include/qemu.inc
> > index d9bed7708d..04ffe55309 100644
> > --- a/meta/conf/machine/include/qemu.inc
> > +++ b/meta/conf/machine/include/qemu.inc
> > @@ -10,7 +10,7 @@ XSERVER ?= "xserver-xorg \
> > xf86-video-fbdev \
> > "
> >
> > -MACHINE_FEATURES = "alsa bluetooth usbgadget screen vfat"
> > +MACHINE_FEATURES ??= "alsa bluetooth usbgadget screen vfat"
> >
> > MACHINEOVERRIDES =. "qemuall:"
> >
> > diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
> > index 0b399ac1f9..f5f9f89a9f 100644
> > --- a/meta/conf/machine/include/riscv/qemuriscv.inc
> > +++ b/meta/conf/machine/include/riscv/qemuriscv.inc
> > @@ -3,7 +3,7 @@ PREFERRED_PROVIDER_virtual/bootloader ??= "u-boot"
> > require conf/machine/include/qemu.inc
> > require conf/machine/include/riscv/tune-riscv.inc
> >
> > -MACHINE_FEATURES = "screen keyboard ext2 ext3 serial"
> > +MACHINE_FEATURES ?= "screen keyboard ext2 ext3 serial"
> >
> > KERNEL_IMAGETYPE = "Image"
> > KERNEL_IMAGETYPES += "uImage"
> > --
> > 2.17.1
>
> This is a breaking change, which can have a lot of not easily detected
> consequences, and I would advise against it. Changing ??= to ?= means
> that you can no longer do, e.g., DISTRO_FEATURES += " foo" in your
> configuration. For comparison, if you add the following to a recipe or
> your local.conf:
>
> FOOBAR1 ??= "foo"
> FOOBAR1 += "bar"
> FOOBAR2 ?= "foo"
> FOOBAR2 += "bar"
>
> the result will be:
>
> FOOBAR1=" bar"
> FOOBAR2="foo bar"
>
> If your patch is applied to Poky, this is the resulting change in the
> configuration:
>
> --- a.txt 2022-11-13 14:34:17.882922391 +0100
> +++ b.txt 2022-11-13 14:34:37.902531305 +0100
> @@ -7,6 +7,6 @@
> DISTRO_FEATURES_NATIVE="x11 ipv6 xattr"
> DISTRO_FEATURES_NATIVESDK="x11"
> IMAGE_FEATURES=" debug-tweaks ptest-pkgs debug-tweaks tools-debug"
> -MACHINE_FEATURES="alsa bluetooth usbgadget screen vfat x86 pci rtc qemu-usermode"
> +MACHINE_FEATURES=" x86 pci rtc qemu-usermode"
> MACHINE_FEATURES_BACKFILL="rtc qemu-usermode"
> MACHINE_FEATURES_BACKFILL_CONSIDERED=" "
>
> As can be seen, your change has modified the default configuration for
> qemux86-64 and you did not notice, even though you were aware that you
> were changing the variables. Imagine what it would do to others...
>
> //Peter
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#173193): https://lists.openembedded.org/g/openembedded-core/message/173193
> Mute This Topic: https://lists.openembedded.org/mt/94982790/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [OE-core] [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible
2022-11-13 17:48 ` Alexander Kanavin
@ 2022-11-14 17:11 ` Christoph Lauer
0 siblings, 0 replies; 4+ messages in thread
From: Christoph Lauer @ 2022-11-14 17:11 UTC (permalink / raw)
To: Alexander Kanavin
Cc: openembedded-core@lists.openembedded.org, Peter Kjellerstedt
Thank you for looking at the patch. I realized there is no real use case
that would require this. The idea was to initialize new values with the
weakest setting, but I may have underestimated the problems that come
with it.
This patch can be discarded.
Christoph
Am 13.11.22 um 18:48 schrieb Alexander Kanavin:
> It helps if you explain what use case this enables that cannot be
> currently fulfilled. (not a generic 'change features with weak
> defaults' but specific examples of adding and removing and setting
> features).
>
> Alex
>
> On Sun, 13 Nov 2022 at 14:43, Peter Kjellerstedt
> <peter.kjellerstedt@axis.com> wrote:
>>
>>> -----Original Message-----
>>> From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Christoph Lauer
>>> Sent: den 12 november 2022 17:31
>>> To: openembedded-core@lists.openembedded.org
>>> Cc: Christoph Lauer <christoph.lauer@xtronic.de>
>>> Subject: [OE-core] [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible
>>>
>>> From: Christoph Lauer <christoph.lauer@xtronic.de>
>>>
>>> This gives BSP creators the flexibility to change features with weak defaults
>>>
>>> Signed-off-by: Christoph Lauer <christoph.lauer@xtronic.de>
>>> ---
>>> meta-poky/conf/distro/poky.conf | 2 +-
>>> meta/conf/bitbake.conf | 28 +++++++++----------
>>> .../distro/include/default-distrovars.inc | 6 ++--
>>> meta/conf/machine/include/qemu.inc | 2 +-
>>> meta/conf/machine/include/riscv/qemuriscv.inc | 2 +-
>>> 5 files changed, 20 insertions(+), 20 deletions(-)
>>>
>>> diff --git a/meta-poky/conf/distro/poky.conf b/meta-poky/conf/distro/poky.conf
>>> index 3e90766349..3a453ef9ed 100644
>>> --- a/meta-poky/conf/distro/poky.conf
>>> +++ b/meta-poky/conf/distro/poky.conf
>>> @@ -18,7 +18,7 @@ POKY_DEFAULT_DISTRO_FEATURES = "largefile opengl ptest multiarch wayland vulkan"
>>> POKY_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot"
>>> POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet"
>>>
>>> -DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
>>> +DISTRO_FEATURES ??= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
>>>
>>> PREFERRED_VERSION_linux-yocto ?= "5.19%"
>>> PREFERRED_VERSION_linux-yocto-rt ?= "5.19%"
>>> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
>>> index dea573986d..b2540bb3f5 100644
>>> --- a/meta/conf/bitbake.conf
>>> +++ b/meta/conf/bitbake.conf
>>> @@ -885,31 +885,31 @@ OES_BITBAKE_CONF = "1"
>>> # Machine properties and packagegroup-base stuff
>>> ##################################################################
>>>
>>> -MACHINE_FEATURES ?= ""
>>> -DISTRO_FEATURES ?= ""
>>> +MACHINE_FEATURES ??= ""
>>> +DISTRO_FEATURES ??= ""
>>>
>>> -DISTRO_EXTRA_RDEPENDS ?= ""
>>> -DISTRO_EXTRA_RRECOMMENDS ?= ""
>>> -MACHINE_EXTRA_RDEPENDS ?= ""
>>> -MACHINE_EXTRA_RRECOMMENDS ?= ""
>>> -MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
>>> -MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
>>> +DISTRO_EXTRA_RDEPENDS ??= ""
>>> +DISTRO_EXTRA_RRECOMMENDS ??= ""
>>> +MACHINE_EXTRA_RDEPENDS ??= ""
>>> +MACHINE_EXTRA_RRECOMMENDS ??= ""
>>> +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ??= ""
>>> +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ??= ""
>>>
>>> EXTRA_IMAGE_FEATURES ??= ""
>>> IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
>>>
>>> # Native distro features (will always be used for -native, even if they
>>> # are not enabled for target)
>>> -DISTRO_FEATURES_NATIVE ?= "x11 ipv6 xattr"
>>> -DISTRO_FEATURES_NATIVESDK ?= "x11"
>>> +DISTRO_FEATURES_NATIVE ??= "x11 ipv6 xattr"
>>> +DISTRO_FEATURES_NATIVESDK ??= "x11"
>>>
>>> # Normally target distro features will not be applied to native builds:
>>> # Native distro features on this list will use the target feature value
>>> -DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl wayland"
>>> -DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl wayland"
>>> +DISTRO_FEATURES_FILTER_NATIVE ??= "api-documentation debuginfod opengl wayland"
>>> +DISTRO_FEATURES_FILTER_NATIVESDK ??= "api-documentation debuginfod opengl wayland"
>>>
>>> -DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
>>> -MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
>>> +DISTRO_FEATURES_BACKFILL ??= "pulseaudio sysvinit gobject-introspection-data ldconfig"
>>> +MACHINE_FEATURES_BACKFILL ??= "rtc qemu-usermode"
>>>
>>> COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}"
>>> COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES"
>>> diff --git a/meta/conf/distro/include/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc
>>> index abf48f79f0..3b3d439ad3 100644
>>> --- a/meta/conf/distro/include/default-distrovars.inc
>>> +++ b/meta/conf/distro/include/default-distrovars.inc
>>> @@ -19,9 +19,9 @@ DISTRO_FEATURES_DEFAULT:remove:arc = "seccomp"
>>> # seccomp is not yet ported to microblaze
>>> DISTRO_FEATURES_DEFAULT:remove:microblaze = "seccomp"
>>>
>>> -DISTRO_FEATURES_DEFAULT ?= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
>>> -DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
>>> -IMAGE_FEATURES ?= ""
>>> +DISTRO_FEATURES_DEFAULT ??= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
>>> +DISTRO_FEATURES ??= "${DISTRO_FEATURES_DEFAULT}"
>>> +IMAGE_FEATURES ??= ""
>>>
>>> COMMERCIAL_AUDIO_PLUGINS ?= ""
>>> # COMMERCIAL_AUDIO_PLUGINS ?= "gst-plugins-ugly-mad gst-plugins-ugly-mpegaudioparse"
>>> diff --git a/meta/conf/machine/include/qemu.inc
>>> b/meta/conf/machine/include/qemu.inc
>>> index d9bed7708d..04ffe55309 100644
>>> --- a/meta/conf/machine/include/qemu.inc
>>> +++ b/meta/conf/machine/include/qemu.inc
>>> @@ -10,7 +10,7 @@ XSERVER ?= "xserver-xorg \
>>> xf86-video-fbdev \
>>> "
>>>
>>> -MACHINE_FEATURES = "alsa bluetooth usbgadget screen vfat"
>>> +MACHINE_FEATURES ??= "alsa bluetooth usbgadget screen vfat"
>>>
>>> MACHINEOVERRIDES =. "qemuall:"
>>>
>>> diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
>>> index 0b399ac1f9..f5f9f89a9f 100644
>>> --- a/meta/conf/machine/include/riscv/qemuriscv.inc
>>> +++ b/meta/conf/machine/include/riscv/qemuriscv.inc
>>> @@ -3,7 +3,7 @@ PREFERRED_PROVIDER_virtual/bootloader ??= "u-boot"
>>> require conf/machine/include/qemu.inc
>>> require conf/machine/include/riscv/tune-riscv.inc
>>>
>>> -MACHINE_FEATURES = "screen keyboard ext2 ext3 serial"
>>> +MACHINE_FEATURES ?= "screen keyboard ext2 ext3 serial"
>>>
>>> KERNEL_IMAGETYPE = "Image"
>>> KERNEL_IMAGETYPES += "uImage"
>>> --
>>> 2.17.1
>>
>> This is a breaking change, which can have a lot of not easily detected
>> consequences, and I would advise against it. Changing ??= to ?= means
>> that you can no longer do, e.g., DISTRO_FEATURES += " foo" in your
>> configuration. For comparison, if you add the following to a recipe or
>> your local.conf:
>>
>> FOOBAR1 ??= "foo"
>> FOOBAR1 += "bar"
>> FOOBAR2 ?= "foo"
>> FOOBAR2 += "bar"
>>
>> the result will be:
>>
>> FOOBAR1=" bar"
>> FOOBAR2="foo bar"
>>
>> If your patch is applied to Poky, this is the resulting change in the
>> configuration:
>>
>> --- a.txt 2022-11-13 14:34:17.882922391 +0100
>> +++ b.txt 2022-11-13 14:34:37.902531305 +0100
>> @@ -7,6 +7,6 @@
>> DISTRO_FEATURES_NATIVE="x11 ipv6 xattr"
>> DISTRO_FEATURES_NATIVESDK="x11"
>> IMAGE_FEATURES=" debug-tweaks ptest-pkgs debug-tweaks tools-debug"
>> -MACHINE_FEATURES="alsa bluetooth usbgadget screen vfat x86 pci rtc qemu-usermode"
>> +MACHINE_FEATURES=" x86 pci rtc qemu-usermode"
>> MACHINE_FEATURES_BACKFILL="rtc qemu-usermode"
>> MACHINE_FEATURES_BACKFILL_CONSIDERED=" "
>>
>> As can be seen, your change has modified the default configuration for
>> qemux86-64 and you did not notice, even though you were aware that you
>> were changing the variables. Imagine what it would do to others...
>>
>> //Peter
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#173193): https://lists.openembedded.org/g/openembedded-core/message/173193
>> Mute This Topic: https://lists.openembedded.org/mt/94982790/1686489
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-11-14 17:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-12 16:31 [PATCH] initial configs: set initial {DISTRO|MACHINE|IMAGE}FEATUREs as weak as possible Christoph Lauer
2022-11-13 13:43 ` [OE-core] " Peter Kjellerstedt
2022-11-13 17:48 ` Alexander Kanavin
2022-11-14 17:11 ` Christoph Lauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox