* [PATCH 0/2] DISTRO_FEATURES compatibility fixes
@ 2013-01-24 17:52 Ross Burton
2013-01-24 17:52 ` [PATCH 1/2] bitbake.conf: unbreak all builds with custom DISTRO_FEATURES Ross Burton
2013-01-24 17:52 ` [PATCH 2/2] base: make feature backfilling happen earlier Ross Burton
0 siblings, 2 replies; 15+ messages in thread
From: Ross Burton @ 2013-01-24 17:52 UTC (permalink / raw)
To: openembedded-core
Hi,
This series contains two fixes:
- make the init manager backfilled into distro features (thanks, Marcin)
- backfill features earlier in the parse so conditional inherits work with backfilled features (patch as described by Richard over IM)
Between then this makes sysvinit images work again where distributions have set
DISTRO_FEATURES, instead of appending on oe-core's base.
Ross
The following changes since commit 8d6e55bf2192524bda84138b5356a2791adbbe61:
prserv: add LOCALCOUNT to AUTOINCs migration feature (2013-01-22 16:01:32 +0000)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib ross/backfill
for you to fetch changes up to 6d174abd95de70a59f54ca28c965ca72933a3ce7:
base: make feature backfilling happen earlier (2013-01-24 17:45:38 +0000)
----------------------------------------------------------------
Marcin Juszkiewicz (1):
bitbake.conf: unbreak all builds with custom DISTRO_FEATURES
Richard Purdie (1):
base: make feature backfilling happen earlier
meta/classes/base.bbclass | 2 ++
meta/conf/bitbake.conf | 5 +----
2 files changed, 3 insertions(+), 4 deletions(-)
Marcin Juszkiewicz (1):
bitbake.conf: unbreak all builds with custom DISTRO_FEATURES
Richard Purdie (1):
base: make feature backfilling happen earlier
meta/classes/base.bbclass | 2 ++
meta/conf/bitbake.conf | 5 +----
2 files changed, 3 insertions(+), 4 deletions(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 15+ messages in thread* [PATCH 1/2] bitbake.conf: unbreak all builds with custom DISTRO_FEATURES 2013-01-24 17:52 [PATCH 0/2] DISTRO_FEATURES compatibility fixes Ross Burton @ 2013-01-24 17:52 ` Ross Burton 2013-01-24 17:52 ` [PATCH 2/2] base: make feature backfilling happen earlier Ross Burton 1 sibling, 0 replies; 15+ messages in thread From: Ross Burton @ 2013-01-24 17:52 UTC (permalink / raw) To: openembedded-core From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> Commit 9e7c64ca9afbf27edd0d35a1830ce55ee6d778ab broke all builds where custom DISTRO_FEATURES were used. Resulting images ended in non-bootable state due to lack of initscripts (unless someone had sysvinit or systemd in D_E already). https://bugs.launchpad.net/linaro-oe/+bug/1102910 https://bugs.launchpad.net/linaro-oe/+bug/1099405/comments/12 Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> Signed-off-by: Ross Burton <ross.burton@intel.com> --- meta/conf/bitbake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 2dc50ca..607fb70 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -738,7 +738,7 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" -DISTRO_FEATURES_BACKFILL = "pulseaudio" +DISTRO_FEATURES_BACKFILL = "pulseaudio ${DISTRO_FEATURES_INITMAN}" DISTRO_FEATURES_append = "${@oe.utils.features_backfill("DISTRO_FEATURES",d)}" MACHINE_FEATURES_BACKFILL = "rtc" -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-24 17:52 [PATCH 0/2] DISTRO_FEATURES compatibility fixes Ross Burton 2013-01-24 17:52 ` [PATCH 1/2] bitbake.conf: unbreak all builds with custom DISTRO_FEATURES Ross Burton @ 2013-01-24 17:52 ` Ross Burton 2013-01-25 18:06 ` Enrico Scholz 1 sibling, 1 reply; 15+ messages in thread From: Ross Burton @ 2013-01-24 17:52 UTC (permalink / raw) To: openembedded-core From: Richard Purdie <richard.purdie@linuxfoundation.org> Backfilling DISTRO_FEATURES and MACHINE_FEATURES with _append statements happens too late to use those variables with conditional inherits, like this: inherit ${@base_contains('DISTRO_FEATURES','sysvinit','update-rc.d_real','',d)} Instead, do the backfilling at ConfigParse time so that it happens earlier in the parse, which results in that inherit behaving as expected when sysvinit was backfilled. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> --- meta/classes/base.bbclass | 2 ++ meta/conf/bitbake.conf | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index b427a5e..dafded3 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -314,6 +314,8 @@ python base_eventhandler() { generate_git_config(e) pkgarch_mapping(e.data) preferred_ml_updates(e.data) + e.data.appendVar('DISTRO_FEATURES', oe.utils.features_backfill("DISTRO_FEATURES", e.data)) + e.data.appendVar('MACHINE_FEATURES', oe.utils.features_backfill("MACHINE_FEATURES", e.data)) if isinstance(e, bb.event.BuildStarted): statuslines = [] diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 607fb70..13a3ff9 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -739,10 +739,7 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" DISTRO_FEATURES_BACKFILL = "pulseaudio ${DISTRO_FEATURES_INITMAN}" -DISTRO_FEATURES_append = "${@oe.utils.features_backfill("DISTRO_FEATURES",d)}" - MACHINE_FEATURES_BACKFILL = "rtc" -MACHINE_FEATURES_append = "${@oe.utils.features_backfill("MACHINE_FEATURES",d)}" COMBINED_FEATURES = "\ ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "alsa", d)} \ -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-24 17:52 ` [PATCH 2/2] base: make feature backfilling happen earlier Ross Burton @ 2013-01-25 18:06 ` Enrico Scholz 2013-01-28 12:54 ` Richard Purdie 0 siblings, 1 reply; 15+ messages in thread From: Enrico Scholz @ 2013-01-25 18:06 UTC (permalink / raw) To: openembedded-core; +Cc: Ross Burton Ross Burton <ross.burton-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> writes: > Backfilling DISTRO_FEATURES and MACHINE_FEATURES with _append statements > happens too late to use those variables with conditional inherits, like > this: This causes regressions for setups where DISTRO_FEATURES_BACKFILL uses the override mechanism. E.g. I have | DISTRO_FEATURES_BACKFILL_mydist = "ld-is-gold ${${PROJECT_FEATURES}" | DISTRO_FEATURES_INITMAN_mydist = "systemd" Before this commit, DISTRO_FEATURES contained 'ld-is-gold' and the project features. Now, project features + ld-is-gold vanished and pulseaudio is in again. Enrico ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-25 18:06 ` Enrico Scholz @ 2013-01-28 12:54 ` Richard Purdie 2013-01-28 13:55 ` Enrico Scholz 0 siblings, 1 reply; 15+ messages in thread From: Richard Purdie @ 2013-01-28 12:54 UTC (permalink / raw) To: Enrico Scholz; +Cc: Ross Burton, openembedded-core On Fri, 2013-01-25 at 19:06 +0100, Enrico Scholz wrote: > Ross Burton <ross.burton-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> > writes: > > > Backfilling DISTRO_FEATURES and MACHINE_FEATURES with _append statements > > happens too late to use those variables with conditional inherits, like > > this: > > This causes regressions for setups where DISTRO_FEATURES_BACKFILL uses > the override mechanism. E.g. I have > > | DISTRO_FEATURES_BACKFILL_mydist = "ld-is-gold ${${PROJECT_FEATURES}" > | DISTRO_FEATURES_INITMAN_mydist = "systemd" > > Before this commit, DISTRO_FEATURES contained 'ld-is-gold' and the > project features. Now, project features + ld-is-gold vanished and > pulseaudio is in again. I don't think its possible to make everything work :( The question is therefore how do we want to proceed? I'll take further proposed patches but I don't know what the best thing to do here is... Cheers, Richard ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 12:54 ` Richard Purdie @ 2013-01-28 13:55 ` Enrico Scholz 2013-01-28 14:19 ` Paul Eggleton 0 siblings, 1 reply; 15+ messages in thread From: Enrico Scholz @ 2013-01-28 13:55 UTC (permalink / raw) To: Richard Purdie; +Cc: Ross Burton, openembedded-core Richard Purdie <richard.purdie@linuxfoundation.org> writes: >> > Backfilling DISTRO_FEATURES and MACHINE_FEATURES with _append statements >> > happens too late to use those variables with conditional inherits, like >> > this: >> >> This causes regressions for setups where DISTRO_FEATURES_BACKFILL uses >> the override mechanism. E.g. I have >> >> | DISTRO_FEATURES_BACKFILL_mydist = "ld-is-gold ${${PROJECT_FEATURES}" >> | DISTRO_FEATURES_INITMAN_mydist = "systemd" >> >> Before this commit, DISTRO_FEATURES contained 'ld-is-gold' and the >> project features. Now, project features + ld-is-gold vanished and >> pulseaudio is in again. > > I don't think its possible to make everything work :( > > The question is therefore how do we want to proceed? I'll take further > proposed patches but I don't know what the best thing to do here is... I made my setup (--> overriding DISTRO_FEATURES_BACKFILL by distro configuration) working again by assigning it weakly in bitbake.conf: -DISTRO_FEATURES_BACKFILL = "pulseaudio ${DISTRO_FEATURES_INITMAN}" +DISTRO_FEATURES_BACKFILL ?= "pulseaudio ${DISTRO_FEATURES_INITMAN}" ditto for MACHINE_FEATURES_BACKFILL. Enrico ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 13:55 ` Enrico Scholz @ 2013-01-28 14:19 ` Paul Eggleton 2013-01-28 14:52 ` Enrico Scholz 0 siblings, 1 reply; 15+ messages in thread From: Paul Eggleton @ 2013-01-28 14:19 UTC (permalink / raw) To: Enrico Scholz; +Cc: openembedded-core On Monday 28 January 2013 14:55:05 Enrico Scholz wrote: > Richard Purdie <richard.purdie@linuxfoundation.org> writes: > >> > Backfilling DISTRO_FEATURES and MACHINE_FEATURES with _append > >> > statements > >> > happens too late to use those variables with conditional inherits, like > >> > >> > this: > >> This causes regressions for setups where DISTRO_FEATURES_BACKFILL uses > >> the override mechanism. E.g. I have > >> > >> | DISTRO_FEATURES_BACKFILL_mydist = "ld-is-gold ${${PROJECT_FEATURES}" > >> | DISTRO_FEATURES_INITMAN_mydist = "systemd" > >> > >> Before this commit, DISTRO_FEATURES contained 'ld-is-gold' and the > >> project features. Now, project features + ld-is-gold vanished and > >> pulseaudio is in again. > > > > I don't think its possible to make everything work :( > > > > The question is therefore how do we want to proceed? I'll take further > > proposed patches but I don't know what the best thing to do here is... > > I made my setup (--> overriding DISTRO_FEATURES_BACKFILL by distro > configuration) working again by assigning it weakly in bitbake.conf: > > -DISTRO_FEATURES_BACKFILL = "pulseaudio ${DISTRO_FEATURES_INITMAN}" > +DISTRO_FEATURES_BACKFILL ?= "pulseaudio ${DISTRO_FEATURES_INITMAN}" > > ditto for MACHINE_FEATURES_BACKFILL. Why are you assigning *_FEATURES_BACKFILL at all? Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 14:19 ` Paul Eggleton @ 2013-01-28 14:52 ` Enrico Scholz 2013-01-28 15:00 ` Phil Blundell 0 siblings, 1 reply; 15+ messages in thread From: Enrico Scholz @ 2013-01-28 14:52 UTC (permalink / raw) To: Paul Eggleton; +Cc: openembedded-core Paul Eggleton <paul.eggleton@linux.intel.com> writes: > Why are you assigning *_FEATURES_BACKFILL at all? There are some implicit relations between features (e.g. when selecting 'usbhost' I *usually* want 'vfat' or 'ext2' support too). So I have DISTRO_FEATURES_BACKFILL = "\ largefile nfsroot modules ld-is-gold ${PROJECT_FEATURES} \ ${DISTRO_FEATURES_INITMAN} \ ${@base_contains('PROJECT_FEATURES', 'alsa', 'sound', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'directfb', 'screen', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'fb', 'screen', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'mmc', 'ext2 vfat', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'touchscreen', 'screen', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'ubifs', 'mtd', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'jffs2', 'mtd', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'usbclient', 'usb usbgadget', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'usbgadget', 'usb usbclient', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'usbhost', 'ext2 vfat', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'usbhost', 'usb', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'x11', 'screen', '', d)} \ " DISTRO_FEATURES_BACKFILL_CONSIDERED = "${NO_PROJECT_FEATURES}" in my distro configuration (I knew; some are machine but no distro features but this does not matter for me) and want to allow projects to add new features and to remove default ones. The default 'pulseaudio' in DISTRO_FEATURES_BACKFILL does not sound sane to me either... Enrico -- SIGMA Chemnitz GmbH Registergericht: Amtsgericht Chemnitz HRB 1750 Am Erlenwald 13 Geschaeftsfuehrer: Grit Freitag, Frank Pyritz 09128 Chemnitz ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 14:52 ` Enrico Scholz @ 2013-01-28 15:00 ` Phil Blundell 2013-01-28 15:44 ` Enrico Scholz 0 siblings, 1 reply; 15+ messages in thread From: Phil Blundell @ 2013-01-28 15:00 UTC (permalink / raw) To: Enrico Scholz; +Cc: Paul Eggleton, openembedded-core On Mon, 2013-01-28 at 15:52 +0100, Enrico Scholz wrote: > There are some implicit relations between features (e.g. when selecting > 'usbhost' I *usually* want 'vfat' or 'ext2' support too). So I have > > DISTRO_FEATURES_BACKFILL = "\ > largefile nfsroot modules ld-is-gold ${PROJECT_FEATURES} \ > ${DISTRO_FEATURES_INITMAN} \ > ${@base_contains('PROJECT_FEATURES', 'alsa', 'sound', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'directfb', 'screen', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'fb', 'screen', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'mmc', 'ext2 vfat', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'touchscreen', 'screen', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'ubifs', 'mtd', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'jffs2', 'mtd', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'usbclient', 'usb usbgadget', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'usbgadget', 'usb usbclient', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'usbhost', 'ext2 vfat', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'usbhost', 'usb', '', d)} \ > ${@base_contains('PROJECT_FEATURES', 'x11', 'screen', '', d)} \ > " > > DISTRO_FEATURES_BACKFILL_CONSIDERED = "${NO_PROJECT_FEATURES}" > > in my distro configuration (I knew; some are machine but no distro > features but this does not matter for me) and want to allow projects to > add new features and to remove default ones. This does seem rather like an abuse of DISTRO_FEATURES_BACKFILL. Can you explain why you are doing it this way rather than just setting DISTRO_FEATURES directly to what you wanted? p. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 15:00 ` Phil Blundell @ 2013-01-28 15:44 ` Enrico Scholz 2013-01-28 15:58 ` Paul Eggleton 2013-01-28 16:15 ` Phil Blundell 0 siblings, 2 replies; 15+ messages in thread From: Enrico Scholz @ 2013-01-28 15:44 UTC (permalink / raw) To: Phil Blundell; +Cc: Paul Eggleton, openembedded-core Phil Blundell <pb@pbcl.net> writes: > This does seem rather like an abuse of DISTRO_FEATURES_BACKFILL. Can > you explain why you are doing it this way rather than just setting > DISTRO_FEATURES directly to what you wanted? I need a way to: 1. set some defaults on distribution base and avoid nasty details like mandatory ${DISTRO_FEATURES_LIBC} flags in the project configuration 2. allow to override these defaults on a per-project base 3. add features support by recipes/classes of my distribution afaik, DISTRO_FEATURES_BACKFILL + _CONSIDERED exist to allow the first two point without an '-=' operator which lacks in bitbake. Of course, I could reinvent the wheel and write my own _CONSIDERED mechanism. But until now (resp. without the '=' => '?=' change), it worked fine with DISTRO_FEATURES_BACKFILL. Enrico ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 15:44 ` Enrico Scholz @ 2013-01-28 15:58 ` Paul Eggleton 2013-01-28 16:23 ` Enrico Scholz 2013-01-28 16:15 ` Phil Blundell 1 sibling, 1 reply; 15+ messages in thread From: Paul Eggleton @ 2013-01-28 15:58 UTC (permalink / raw) To: Enrico Scholz; +Cc: openembedded-core On Monday 28 January 2013 16:44:15 Enrico Scholz wrote: > Phil Blundell <pb@pbcl.net> writes: > > This does seem rather like an abuse of DISTRO_FEATURES_BACKFILL. Can > > you explain why you are doing it this way rather than just setting > > DISTRO_FEATURES directly to what you wanted? > > I need a way to: > > 1. set some defaults on distribution base and avoid nasty details like > mandatory ${DISTRO_FEATURES_LIBC} flags in the project configuration > > 2. allow to override these defaults on a per-project base > > 3. add features support by recipes/classes of my distribution > > afaik, DISTRO_FEATURES_BACKFILL + _CONSIDERED exist to allow the first > two point without an '-=' operator which lacks in bitbake. No they don't. They exist to allow adding new features that should be enabled for all existing distro configs without each of those having to be changed, and provide a means for distros to opt out of that enabling if they wish. > Of course, I could reinvent the wheel and write my own _CONSIDERED > mechanism. But until now (resp. without the '=' => '?=' change), it > worked fine with DISTRO_FEATURES_BACKFILL. We don't support using the backfill mechanism in this manner; so if it breaks you get to keep both pieces. It's still not clear to me why you could not just set DISTRO_FEATURES directly. If you have values you're likely to want to remove, you can put them in separate variables that you can clear out later. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 15:58 ` Paul Eggleton @ 2013-01-28 16:23 ` Enrico Scholz 2013-01-28 16:34 ` Paul Eggleton 0 siblings, 1 reply; 15+ messages in thread From: Enrico Scholz @ 2013-01-28 16:23 UTC (permalink / raw) To: Paul Eggleton; +Cc: openembedded-core Paul Eggleton <paul.eggleton@linux.intel.com> writes: >> 1. set some defaults on distribution base ... >> 2. allow to override these defaults on a per-project base >> ... >> afaik, DISTRO_FEATURES_BACKFILL + _CONSIDERED exist to allow the first >> two point without an '-=' operator which lacks in bitbake. > > No they don't. They exist to allow adding new features that should be enabled > for all existing distro configs without each of those having to be changed, and > provide a means for distros to opt out of that enabling if they wish. How is this different from my requirements? Ok; atm, DISTRO_FEATURES_BACKFILL is pretty useless because it contains only 'pulseaudio' which is probably unwanted on >90% of all embedded devices and it is impossible to extend DISTRO_FEATURES_BACKFILL. But this variable exists to allow removal of features which are enabled by default. >> Of course, I could reinvent the wheel and write my own _CONSIDERED >> mechanism. But until now (resp. without the '=' => '?=' change), it >> worked fine with DISTRO_FEATURES_BACKFILL. > ... > It's still not clear to me why you could not just set DISTRO_FEATURES > directly. If you have values you're likely to want to remove, you can > put them in separate variables that you can clear out later. It is very difficultly to do within distro.conf. E.g. having | DISTRO_FEATURES = "${@subtract_set('DISTRO_FEATURES', 'UNWANTED_FEATURES')}' will probably result into some error regarding recursive expansion. Using ':=' will not work here because required operations are not available yet. At the end it will reinvent the DISTRO_FEATURES_BACKFILL_CONSIDERED wheel by moving it into my-distro.bbclass. Enrico ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 16:23 ` Enrico Scholz @ 2013-01-28 16:34 ` Paul Eggleton 2013-01-29 11:07 ` Enrico Scholz 0 siblings, 1 reply; 15+ messages in thread From: Paul Eggleton @ 2013-01-28 16:34 UTC (permalink / raw) To: Enrico Scholz; +Cc: openembedded-core On Monday 28 January 2013 17:23:40 Enrico Scholz wrote: > Paul Eggleton <paul.eggleton@linux.intel.com> writes: > >> 1. set some defaults on distribution base ... > >> 2. allow to override these defaults on a per-project base > >> ... > >> afaik, DISTRO_FEATURES_BACKFILL + _CONSIDERED exist to allow the first > >> two point without an '-=' operator which lacks in bitbake. > > > > No they don't. They exist to allow adding new features that should be > > enabled for all existing distro configs without each of those having to > > be changed, and provide a means for distros to opt out of that enabling > > if they wish. > How is this different from my requirements? Ok; atm, > DISTRO_FEATURES_BACKFILL is pretty useless because it contains only > 'pulseaudio' which is probably unwanted on >90% of all embedded devices pulseaudio was enabled already in the recipes that care about it; that was the point of adding it in the first place so it could be turned off. > and it is impossible to extend DISTRO_FEATURES_BACKFILL. It's not intended to be extended; it's for use in OE-Core alone. > > It's still not clear to me why you could not just set DISTRO_FEATURES > > directly. If you have values you're likely to want to remove, you can > > put them in separate variables that you can clear out later. > > It is very difficultly to do within distro.conf. E.g. having > > | DISTRO_FEATURES = "${@subtract_set('DISTRO_FEATURES', > | 'UNWANTED_FEATURES')}' > will probably result into some error regarding recursive expansion. What I meant was something like: DISTRO_FEATURES = "${DISTRO_FEATURES_BASIC} ${DISTRO_FEATURES_A} ${DISTRO_FEATURES_B}" And then in your specific configs: DISTRO_FEATURES_A = "" Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 16:34 ` Paul Eggleton @ 2013-01-29 11:07 ` Enrico Scholz 0 siblings, 0 replies; 15+ messages in thread From: Enrico Scholz @ 2013-01-29 11:07 UTC (permalink / raw) To: Paul Eggleton; +Cc: openembedded-core Paul Eggleton <paul.eggleton@linux.intel.com> writes: >> >> 1. set some defaults on distribution base ... >> >> 2. allow to override these defaults on a per-project base fwiw, I am using now _EXT_PROJECT_FEATURES = "\ largefile nfsroot modules ld-is-gold ${PROJECT_FEATURES} \ ${DISTRO_FEATURES_INITMAN} ${DISTRO_FEATURES_LIBC} \ ${@base_contains('PROJECT_FEATURES', 'alsa', 'sound', '', d)} \ ${@base_contains('PROJECT_FEATURES', 'directfb', 'screen', '', d)} \ ... DISTRO_FEATURES = "${@' '.join(sorted(list( \ set(d.getVar('_EXT_PROJECT_FEATURES', True).split()) - \ set(d.getVar('NO_PROJECT_FEATURES', True).split()))))}" DISTRO_FEATURES_BACKFILL_CONSIDERED = "${DISTRO_FEATURES_BACKFILL}" Enrico ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] base: make feature backfilling happen earlier 2013-01-28 15:44 ` Enrico Scholz 2013-01-28 15:58 ` Paul Eggleton @ 2013-01-28 16:15 ` Phil Blundell 1 sibling, 0 replies; 15+ messages in thread From: Phil Blundell @ 2013-01-28 16:15 UTC (permalink / raw) To: Enrico Scholz; +Cc: Paul Eggleton, openembedded-core On Mon, 2013-01-28 at 16:44 +0100, Enrico Scholz wrote: > afaik, DISTRO_FEATURES_BACKFILL + _CONSIDERED exist to allow the first > two point without an '-=' operator which lacks in bitbake. That wasn't really the intention. The original purpose of DISTRO_FEATURES_BACKFILL was to allow behaviour that currently defaults to "on" to be brought under the control of a DISTRO_FEATURE without breaking existing distros that were relying on it. The idea was that DISTROs would set DISTRO_FEATURES_BACKFILL_CONSIDERED to list the features that they are aware of but don't want (and would never alter the value of DISTRO_FEATURES_BACKFILL). Any feature that ends up in the latter but not in the former is considered to post-date the DISTRO and is, consequently, spliced into DISTRO_FEATURES by the backwards-compatibility code. Admittedly I'm not sure that this was ever documented anywhere other than the mailing list archives so I guess it's understandable that you (and quite likely others) are going a bit off-piste with it. But the primary use-case is what I described above, and this is the one that needs to take precedence if there is a conflict between differing requirements. Incidentally, regarding your other comment about pulseaudio not belonging in DISTRO_FEATURES_BACKFILL, it transpires that pulseaudio was in fact the very feature that spurred the creation of this mechanism and hence the first to be backfilled. See: http://thread.gmane.org/gmane.comp.handhelds.openembedded.core/10941/focus=13033 and the following thread. p. ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2013-01-29 11:23 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-01-24 17:52 [PATCH 0/2] DISTRO_FEATURES compatibility fixes Ross Burton 2013-01-24 17:52 ` [PATCH 1/2] bitbake.conf: unbreak all builds with custom DISTRO_FEATURES Ross Burton 2013-01-24 17:52 ` [PATCH 2/2] base: make feature backfilling happen earlier Ross Burton 2013-01-25 18:06 ` Enrico Scholz 2013-01-28 12:54 ` Richard Purdie 2013-01-28 13:55 ` Enrico Scholz 2013-01-28 14:19 ` Paul Eggleton 2013-01-28 14:52 ` Enrico Scholz 2013-01-28 15:00 ` Phil Blundell 2013-01-28 15:44 ` Enrico Scholz 2013-01-28 15:58 ` Paul Eggleton 2013-01-28 16:23 ` Enrico Scholz 2013-01-28 16:34 ` Paul Eggleton 2013-01-29 11:07 ` Enrico Scholz 2013-01-28 16:15 ` Phil Blundell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox