* [RFC] ANGSTROM_MODE -> SYSTYPE
@ 2007-12-15 2:39 Paul Sokolovsky
2007-12-15 3:17 ` Khem Raj
` (3 more replies)
0 siblings, 4 replies; 15+ messages in thread
From: Paul Sokolovsky @ 2007-12-15 2:39 UTC (permalink / raw)
To: Openembedded-devel
Hello Openembedded-devel,
ANGSTROM_MODE config variable has proven to be very useful and
successful feature during the Angstrom evolution. IMHO, it is worth
generalization of its meaning and naming to become a generic
additional OE distro configuration parameter. So, I'd like to propose
it to be renamed to SYSTYPE, with the description "Select particular
system variant of a distribution which supports such feature, e.g.,
underlying libc type."
Obviously, it wouldn't be limited to libc type, but intended to be a
generic sub-parameter of a distro, it could be debug/release type,
size type (minimal/standard/extended), whatever. The usage idea is to
have standard name for such generic parameter, plus semantically it
should be expected that a distro allows to build different SYSTYPE's
side-by-side in the same build dir (like Angstrom does for libc
variants).
--
Best regards,
Paul mailto:pmiscml@gmail.com
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-15 2:39 [RFC] ANGSTROM_MODE -> SYSTYPE Paul Sokolovsky @ 2007-12-15 3:17 ` Khem Raj 2007-12-15 10:49 ` Koen Kooi ` (2 subsequent siblings) 3 siblings, 0 replies; 15+ messages in thread From: Khem Raj @ 2007-12-15 3:17 UTC (permalink / raw) To: openembedded-devel I agree we should make it global. On Dec 14, 2007 6:39 PM, Paul Sokolovsky <pmiscml@gmail.com> wrote: > Hello Openembedded-devel, > > ANGSTROM_MODE config variable has proven to be very useful and > successful feature during the Angstrom evolution. IMHO, it is worth > generalization of its meaning and naming to become a generic > additional OE distro configuration parameter. So, I'd like to propose > it to be renamed to SYSTYPE, with the description "Select particular > system variant of a distribution which supports such feature, e.g., > underlying libc type." > > Obviously, it wouldn't be limited to libc type, but intended to be a > generic sub-parameter of a distro, it could be debug/release type, > size type (minimal/standard/extended), whatever. The usage idea is to > have standard name for such generic parameter, plus semantically it > should be expected that a distro allows to build different SYSTYPE's > side-by-side in the same build dir (like Angstrom does for libc > variants). > > > -- > Best regards, > Paul mailto:pmiscml@gmail.com > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-15 2:39 [RFC] ANGSTROM_MODE -> SYSTYPE Paul Sokolovsky 2007-12-15 3:17 ` Khem Raj @ 2007-12-15 10:49 ` Koen Kooi 2007-12-15 15:05 ` Paul Sokolovsky 2007-12-15 13:26 ` Leon Woestenberg 2007-12-16 20:48 ` Marcin Juszkiewicz 3 siblings, 1 reply; 15+ messages in thread From: Koen Kooi @ 2007-12-15 10:49 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Paul Sokolovsky schreef: > Hello Openembedded-devel, > > ANGSTROM_MODE config variable has proven to be very useful and > successful feature during the Angstrom evolution. IMHO, it is worth > generalization of its meaning and naming to become a generic > additional OE distro configuration parameter. > So, I'd like to propose > it to be renamed to SYSTYPE, with the description "Select particular > system variant of a distribution which supports such feature, e.g., > underlying libc type." How will a user know if that flag is supported for the distro he/she wants to use? should we enhance insane.bbclass to crosscheck TARGET_OS with SYSTYPE_FOO for the uclibc vs glibc case? And if so, how would it check between glibc and eglibc? Having an *easier* OE-blessed way for switching C library would be nice, but let's make sure people don't shoot themselves in the foot by setting SYSTYPE_FOO with a distro that has no knowledge of it. regards, Koen > Obviously, it wouldn't be limited to libc type, but intended to be a > generic sub-parameter of a distro, it could be debug/release type, > size type (minimal/standard/extended), whatever. The usage idea is to > have standard name for such generic parameter, plus semantically it > should be expected that a distro allows to build different SYSTYPE's > side-by-side in the same build dir (like Angstrom does for libc > variants). > > - -- koen@dominion.kabel.utwente.nl will go go away in december 2007, please use k.kooi@student.utwente.nl instead. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFHY7EoMkyGM64RGpERAh1uAJ9/QUGnhZ+4/zKUeOZSgIgMNyuwUACfYb3a gy3s4p4svQ8M8rbFxThH+9I= =3c7/ -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-15 10:49 ` Koen Kooi @ 2007-12-15 15:05 ` Paul Sokolovsky 0 siblings, 0 replies; 15+ messages in thread From: Paul Sokolovsky @ 2007-12-15 15:05 UTC (permalink / raw) To: openembedded-devel Hello Koen, Saturday, December 15, 2007, 12:49:12 PM, you wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > Paul Sokolovsky schreef: >> Hello Openembedded-devel, >> >> ANGSTROM_MODE config variable has proven to be very useful and >> successful feature during the Angstrom evolution. IMHO, it is worth >> generalization of its meaning and naming to become a generic >> additional OE distro configuration parameter. >> So, I'd like to propose >> it to be renamed to SYSTYPE, with the description "Select particular >> system variant of a distribution which supports such feature, e.g., >> underlying libc type." > How will a user know if that flag is supported for the distro he/she > wants to use? How user knows which distros are available in the first place? She goes and looks up them in configs or reads documentation. How user knows which SYSTYPEs are supported, if any, for some distro? She does the same regarding configs/docs reading. > should we enhance insane.bbclass to crosscheck TARGET_OS with > SYSTYPE_FOO for the uclibc vs glibc case? And if so, how would it check > between glibc and eglibc? User "input" validation is always a nice thing, but adds a bunch of code, and OE lacks it many places anyway ;-). Well, we could solve it in this case like this for example: Make supporting distro set SYSTYPES_AVAILABLE, and make insane.bbclass (or maybe even sanity.bbclass) to check that SYSTYPE value appears there. > Having an *easier* OE-blessed way for switching C library would be nice, > but let's make sure people don't shoot themselves in the foot by setting > SYSTYPE_FOO with a distro that has no knowledge of it. Switching C library in merely a particular use case of ability to adjust an important distro parameter without formally creating another distro [config or build area]. So useful for Angstrom, it is useless for some deeply-embedded distro which is developed and QA solely against uclibc. Such a distro can use SYSTYPE for some other important parameter they want to tweak. More on this in another mail. > regards, > Koen >> Obviously, it wouldn't be limited to libc type, but intended to be a >> generic sub-parameter of a distro, it could be debug/release type, >> size type (minimal/standard/extended), whatever. The usage idea is to >> have standard name for such generic parameter, plus semantically it >> should be expected that a distro allows to build different SYSTYPE's >> side-by-side in the same build dir (like Angstrom does for libc >> variants). >> >> -- Best regards, Paul mailto:pmiscml@gmail.com ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-15 2:39 [RFC] ANGSTROM_MODE -> SYSTYPE Paul Sokolovsky 2007-12-15 3:17 ` Khem Raj 2007-12-15 10:49 ` Koen Kooi @ 2007-12-15 13:26 ` Leon Woestenberg 2007-12-15 15:35 ` Paul Sokolovsky 2007-12-16 20:48 ` Marcin Juszkiewicz 3 siblings, 1 reply; 15+ messages in thread From: Leon Woestenberg @ 2007-12-15 13:26 UTC (permalink / raw) To: openembedded-devel Hello all, On Dec 15, 2007 3:39 AM, Paul Sokolovsky <pmiscml@gmail.com> wrote: > ANGSTROM_MODE config variable has proven to be very useful and > successful feature during the Angstrom evolution. IMHO, it is worth > generalization of its meaning and naming to become a generic > additional OE distro configuration parameter. So, I'd like to propose > it to be renamed to SYSTYPE, with the description "Select particular > system variant of a distribution which supports such feature, e.g., > underlying libc type." > NAK on the name and the combination with other settings: > Obviously, it wouldn't be limited to libc type, but intended to be a > generic sub-parameter of a distro, it could be debug/release type, > size type (minimal/standard/extended), whatever. The usage idea is to > C library selection is mostly orthogonal from the debug/profile/test/release/whatever type. Also, C library selection is mostly orthogonal from the size type (in fact, that's a target, not a property of it). > have standard name for such generic parameter, plus semantically it > should be expected that a distro allows to build different SYSTYPE's > side-by-side in the same build dir (like Angstrom does for libc > variants). > *If* you want to go for this, I would propose DISTRO_LIBC instead and NOT mix this with any other settings, which are orthogonal and mostly unrelated. (I.e. the fact that I want to profile my image, is independent on whether I built with eglibc or glibc). Also, I agree with Koen that we then end up in the situation where people may assume this flag is always respected, while it's dependent on the distro. -1 for the proposal +0 for the making DISTRO_LIBC a global C library selector. Regards, -- Leon ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-15 13:26 ` Leon Woestenberg @ 2007-12-15 15:35 ` Paul Sokolovsky 2007-12-16 4:51 ` Rod Whitby 2007-12-20 18:38 ` Leon Woestenberg 0 siblings, 2 replies; 15+ messages in thread From: Paul Sokolovsky @ 2007-12-15 15:35 UTC (permalink / raw) To: Leon Woestenberg; +Cc: openembedded-devel Hello Leon, Saturday, December 15, 2007, 3:26:40 PM, you wrote: > Hello all, > On Dec 15, 2007 3:39 AM, Paul Sokolovsky <pmiscml@gmail.com> wrote: >> ANGSTROM_MODE config variable has proven to be very useful and >> successful feature during the Angstrom evolution. IMHO, it is worth >> generalization of its meaning and naming to become a generic >> additional OE distro configuration parameter. So, I'd like to propose >> it to be renamed to SYSTYPE, with the description "Select particular >> system variant of a distribution which supports such feature, e.g., >> underlying libc type." >> > NAK on the name and the combination with other settings: >> Obviously, it wouldn't be limited to libc type, but intended to be a >> generic sub-parameter of a distro, it could be debug/release type, >> size type (minimal/standard/extended), whatever. The usage idea is to >> > C library selection is mostly orthogonal from the > debug/profile/test/release/whatever type. > Also, C library selection is mostly orthogonal from the size type (in > fact, that's a target, not > a property of it). Well, SYSTYPE has another aim and idea in its introduction. I hinted about that in original mail, now let me make it explicit: the proposal is about introduction of the standard OE variable name for distro parameter tweaking. Its meaning however completely depends on the distro. Some distro needs switch libc's. Some needs to switch WMs. Others need to switch many other things, possibly, in combinations. Very good. OE recommends a standard general syntax for that - a SYSTYPE. Exact format of what goes into SYSTYPE and its semantics is up to distro (and users will know about all that by reading distro's docs). (Now that we talk about validation, it puts additional syntactic constraints on SYSTYPE value, that's why I'm personally not keen to start with [rigid] validation from the beginning). >> have standard name for such generic parameter, plus semantically it >> should be expected that a distro allows to build different SYSTYPE's >> side-by-side in the same build dir (like Angstrom does for libc >> variants). >> > *If* you want to go for this, I would propose DISTRO_LIBC instead and > NOT mix this with any other settings, which are orthogonal and mostly > unrelated. > (I.e. the fact that I want to profile my image, is independent on > whether I built with eglibc or glibc). > Also, I agree with Koen that we then end up in the situation where > people may assume this flag is always respected, while it's dependent > on the distro. > -1 for the proposal Please rethink. > +0 for the making DISTRO_LIBC a global C library selector. Gotcha! That's exactly what I'm trying to avoid - proliferation of adhoc distro config parameters! We have ANGSTROM_MODE now, supposedly FooNas will want to call it FOONAS_LIBC, with lots others alike. Then lots of others will introduce lots of others config parameter, making OE maintainers and users screem. No, let's think it out now, acting on numerous complaints that OE is too complex to setup (which includes configuration) by mere humans. How it was before, there're two parameters had to be set to build a proper package/image: DISTRO and MACHINE. As we all hopefully agree that tweaking high-level distro settings without formally introducing a new distro is a nice thing, let's add one another parameter to this, and let users and developers know that it is the recommended way to do it. So, a user could build a package/image using: DISTRO=<distro> SYSTYPE=<systype> MACHINE=<machine> bitbake <package> In ideal world (and we'll get there, I trust), this will be possible after OE checkout, without adding any weird configs with weird settings users can't get. Then, we'll even address rights of environment-use-challenged users, by adding corresponding options to bitbake itself: bitbake --distro=foo --systype=bar --machine=baz package And nothing really precludes SYSTYPE to be not just "libc", but "libc,release", or "libc,release,wm=xfce", or "libc,release,wm=xfce,weird_user_config=some_file.conf". > Regards, -- Best regards, Paul mailto:pmiscml@gmail.com ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-15 15:35 ` Paul Sokolovsky @ 2007-12-16 4:51 ` Rod Whitby 2007-12-16 9:36 ` Paul Sokolovsky 2007-12-20 18:38 ` Leon Woestenberg 1 sibling, 1 reply; 15+ messages in thread From: Rod Whitby @ 2007-12-16 4:51 UTC (permalink / raw) To: openembedded-devel Paul Sokolovsky wrote: > Well, SYSTYPE has another aim and idea in its introduction. I hinted > about that in original mail, now let me make it explicit: the proposal > is about introduction of the standard OE variable name for distro > parameter tweaking. Its meaning however completely depends on the > distro. Some distro needs switch libc's. Some needs to switch WMs. > Others need to switch many other things, possibly, in combinations. > Very good. OE recommends a standard general syntax for that - a > SYSTYPE. Exact format of what goes into SYSTYPE and its semantics is > up to distro (and users will know about all that by reading distro's > docs). (Now that we talk about validation, it puts additional > syntactic constraints on SYSTYPE value, that's why I'm personally not > keen to start with [rigid] validation from the beginning). How is this different to the USE flags proposals that have come and gone in the past? -- Rod ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-16 4:51 ` Rod Whitby @ 2007-12-16 9:36 ` Paul Sokolovsky 0 siblings, 0 replies; 15+ messages in thread From: Paul Sokolovsky @ 2007-12-16 9:36 UTC (permalink / raw) To: Rod Whitby; +Cc: openembedded-devel Hello Rod, Sunday, December 16, 2007, 6:51:51 AM, you wrote: > Paul Sokolovsky wrote: >> Well, SYSTYPE has another aim and idea in its introduction. I hinted >> about that in original mail, now let me make it explicit: the proposal >> is about introduction of the standard OE variable name for distro >> parameter tweaking. Its meaning however completely depends on the >> distro. Some distro needs switch libc's. Some needs to switch WMs. >> Others need to switch many other things, possibly, in combinations. >> Very good. OE recommends a standard general syntax for that - a >> SYSTYPE. Exact format of what goes into SYSTYPE and its semantics is >> up to distro (and users will know about all that by reading distro's >> docs). (Now that we talk about validation, it puts additional >> syntactic constraints on SYSTYPE value, that's why I'm personally not >> keen to start with [rigid] validation from the beginning). > How is this different to the USE flags proposals that have come and gone > in the past? At least in naming. Because whenever word "USE" appears in discussion, someone comes to explain hardnesses of QAing a system, packages of which are being built using different compile-time settings. At the same time, OE already uses generalized USE conception a lot: DISTRO_FEATURES, MACHINE_FEATURES - are all those generalized USE flags, just working not on the package configuration level (like some other systems allow, and we don't want), but on distro configuration level. But DISTRO_FEATURES & MACHINE_FEATURES are "blackbox" parameters, intended for developers. You can't drop "wifi" from Angstrom's DISTRO_FEATURES and still call/think that it is Angstrom. On the other hand, SYSTYPE is intended as a whitebox parameter, together with the other 2 - DISTRO & MACHINE providing the well-known and complete set of knobs allowing *user* to build a legitimate distro image adjusted to user's need, and within the bounds allowed by a distro. > -- Rod -- Best regards, Paul mailto:pmiscml@gmail.com ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-15 15:35 ` Paul Sokolovsky 2007-12-16 4:51 ` Rod Whitby @ 2007-12-20 18:38 ` Leon Woestenberg 2007-12-20 20:10 ` Paul Sokolovsky 1 sibling, 1 reply; 15+ messages in thread From: Leon Woestenberg @ 2007-12-20 18:38 UTC (permalink / raw) To: Paul Sokolovsky; +Cc: openembedded-devel Hello Paul, > ...the proposal > is about introduction of the standard OE variable name for distro > parameter tweaking. Its meaning however completely depends on the > distro. > Do you see the contradiction? A *standard* OE variable name that *completely depends* on the distro. Please, no. > Some distro needs switch libc's. Some needs to switch WMs. > Others need to switch many other things, possibly, in combinations. > Very good. OE recommends a standard general syntax for that - a > SYSTYPE. Exact format of what goes into SYSTYPE and its semantics is > up to distro (and users will know about all that by reading distro's > docs). (Now that we talk about validation, it puts additional > syntactic constraints on SYSTYPE value, that's why I'm personally not > keen to start with [rigid] validation from the beginning). > MACHINE and DISTRO are extremely well understood: they select one option out of a list, and the name implies what you select. Extremely user friendly. SYSTYPE does not fulfill these two properties in your proposal. > > +0 for the making DISTRO_LIBC a global C library selector. > > Gotcha! That's exactly what I'm trying to avoid - proliferation of > adhoc distro config parameters! We have ANGSTROM_MODE now, supposedly > FooNas will want to call it FOONAS_LIBC, with lots others alike. Then > No, "DISTRO_LIBC". Literally. Like Marcin set out more explicitly than I did. > bitbake --distro=foo --systype=bar --machine=baz package > Argh. No! > And nothing really precludes SYSTYPE to be not just "libc", but > "libc,release", or "libc,release,wm=xfce", or > "libc,release,wm=xfce,weird_user_config=some_file.conf". > Sorry, you didn't convince me, at all. I strongly agree with Richard to either not do this (therefore my -2), or either to define a sane namespace that some distro's might support, agreeing with Marcin. Regards, -- Leon ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-20 18:38 ` Leon Woestenberg @ 2007-12-20 20:10 ` Paul Sokolovsky 2007-12-21 21:42 ` Leon Woestenberg 0 siblings, 1 reply; 15+ messages in thread From: Paul Sokolovsky @ 2007-12-20 20:10 UTC (permalink / raw) To: Leon Woestenberg; +Cc: openembedded-devel Hello Leon, Thursday, December 20, 2007, 8:38:12 PM, you wrote: > Hello Paul, >> ...the proposal >> is about introduction of the standard OE variable name for distro >> parameter tweaking. Its meaning however completely depends on the >> distro. >> > Do you see the contradiction? A *standard* OE variable name that > *completely depends* on the > distro. Please, no. Well, it seems you mix up *levels*. The variable with standard *name*, whose *value* gets interpreted by a distro, what's a problem here? You know, it's like PATH unix envvar - it is standard, but different systems and different users put different stuff there. >> Some distro needs switch libc's. Some needs to switch WMs. >> Others need to switch many other things, possibly, in combinations. >> Very good. OE recommends a standard general syntax for that - a >> SYSTYPE. Exact format of what goes into SYSTYPE and its semantics is >> up to distro (and users will know about all that by reading distro's >> docs). (Now that we talk about validation, it puts additional >> syntactic constraints on SYSTYPE value, that's why I'm personally not >> keen to start with [rigid] validation from the beginning). >> > MACHINE and DISTRO are extremely well understood: they select one > option out of a list, and the name implies what you select. > Extremely user friendly. > SYSTYPE does not fulfill these two properties in your proposal. ??? How it is not? Do you have a proposal for better name? >> > +0 for the making DISTRO_LIBC a global C library selector. >> >> Gotcha! That's exactly what I'm trying to avoid - proliferation of >> adhoc distro config parameters! We have ANGSTROM_MODE now, supposedly >> FooNas will want to call it FOONAS_LIBC, with lots others alike. Then >> > No, "DISTRO_LIBC". Literally. Like Marcin set out more explicitly than I did. >> bitbake --distro=foo --systype=bar --machine=baz package >> > Argh. No! Indeed? Maybe you even have arguments? ;-) Or rather, maybe you have the whole paradigm how make OE more friendly for newcomers/casual users? Please share, that's what I'm trying to solve here. >> And nothing really precludes SYSTYPE to be not just "libc", but >> "libc,release", or "libc,release,wm=xfce", or >> "libc,release,wm=xfce,weird_user_config=some_file.conf". >> > Sorry, you didn't convince me, at all. > I strongly agree with Richard to either not do this (therefore my -2), > or either to define a sane namespace that some distro's might support, > agreeing with Marcin. We somehow interpret differently what Richard wrote. Per my understanding, his concern was that it won't be clear if given feature will be supported by some distro, or no. SYSTYPE offers validation to solve this issue. > Regards, -- Best regards, Paul mailto:pmiscml@gmail.com ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-20 20:10 ` Paul Sokolovsky @ 2007-12-21 21:42 ` Leon Woestenberg 0 siblings, 0 replies; 15+ messages in thread From: Leon Woestenberg @ 2007-12-21 21:42 UTC (permalink / raw) To: Paul Sokolovsky; +Cc: openembedded-devel Hello Paul, On Dec 20, 2007 9:10 PM, Paul Sokolovsky <pmiscml@gmail.com> wrote: > Thursday, December 20, 2007, 8:38:12 PM, you wrote: > >> ...the proposal > >> is about introduction of the standard OE variable name for distro > >> parameter tweaking. Its meaning however completely depends on the > >> distro. > >> > > Do you see the contradiction? A *standard* OE variable name that > > *completely depends* on the > > distro. Please, no. > > Well, it seems you mix up *levels*. The variable with standard > *name*, whose *value* gets interpreted by a distro, what's a problem > here? You know, it's like PATH unix envvar - it is standard, > but different systems and different users put different stuff there. > Yes, it is standard, well understood and behaves as follows: 1) the variables have proper names, such as LD_LIBRARY_PATH. 2) the variables except 1 value, or in rare circumstances multiple values of 1 type (such as PATH). The name alone "SYSTYPE" raises more question than answers. The type of the system. Right. DISTRO_LIBC > >> Some distro needs switch libc's. Some needs to switch WMs. DISTRO_LIBC=eglibc to instruct the distribution to build (against) eglibc. DISTRO_WM=twm > >> Others need to switch many other things, possibly, in combinations. > >> Very good. OE recommends a standard general syntax for that - a > >> SYSTYPE. Exact format of what goes into SYSTYPE and its semantics is > >> up to distro (and users will know about all that by reading distro's > >> docs). (Now that we talk about validation, it puts additional > >> syntactic constraints on SYSTYPE value, that's why I'm personally not > >> keen to start with [rigid] validation from the beginning). > >> Too confusing. > > MACHINE and DISTRO are extremely well understood: they select one > > option out of a list, and the name implies what you select. > > > Extremely user friendly. > > > SYSTYPE does not fulfill these two properties in your proposal. > > ??? How it is not? Do you have a proposal for better name? > See all the reasoning above. > >> > +0 for the making DISTRO_LIBC a global C library selector. > >> > >> Gotcha! That's exactly what I'm trying to avoid - proliferation of > >> adhoc distro config parameters! We have ANGSTROM_MODE now, supposedly > >> FooNas will want to call it FOONAS_LIBC, with lots others alike. Then > >> > > No, "DISTRO_LIBC". Literally. Like Marcin set out more explicitly than I did. > >> bitbake --distro=foo --systype=bar --machine=baz package > >> > > Argh. No! > > Indeed? Maybe you even have arguments? ;-) Or rather, maybe you have > First you write "Exact format of what goes into SYSTYPE and its semantics is up to distro" and then you affect bitbake (which is a tool) with the distro-specifics as *options*?? > users? Please share, that's what I'm trying to solve here. > > >> And nothing really precludes SYSTYPE to be not just "libc", but > >> "libc,release", or "libc,release,wm=xfce", or > >> "libc,release,wm=xfce,weird_user_config=some_file.conf". > >> > > Sorry, you didn't convince me, at all. > > > I strongly agree with Richard to either not do this (therefore my -2), > > or either to define a sane namespace that some distro's might support, > > agreeing with Marcin. > > We somehow interpret differently what Richard wrote. Per my > understanding, his concern was that it won't be clear if given feature > will be supported by some distro, or no. SYSTYPE offers validation to > solve this issue. > The concern is that users are not able to track which distro does, and which distro does not support SYSTYPE, let alone the distro-specifics. I think I fully understood your proposal (and your care for user friendlier OE), but my first concerns fully remain. SYSTYPE is not a good way forward. Regards, -- Leon ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-15 2:39 [RFC] ANGSTROM_MODE -> SYSTYPE Paul Sokolovsky ` (2 preceding siblings ...) 2007-12-15 13:26 ` Leon Woestenberg @ 2007-12-16 20:48 ` Marcin Juszkiewicz 2007-12-16 22:31 ` Paul Sokolovsky 3 siblings, 1 reply; 15+ messages in thread From: Marcin Juszkiewicz @ 2007-12-16 20:48 UTC (permalink / raw) To: openembedded-devel Dnia sobota, 15 grudnia 2007, Paul Sokolovsky napisał: > ANGSTROM_MODE config variable has proven to be very useful and > successful feature during the Angstrom evolution. IMHO, it is worth > generalization of its meaning and naming to become a generic > additional OE distro configuration parameter. So, I'd like to propose > it to be renamed to SYSTYPE, with the description "Select particular > system variant of a distribution which supports such feature, e.g., > underlying libc type." Basically I like idea of unifing this. In Poky we have POKYLIBC for it. But it should be in DISTRO_ namespace as this makes distro change. > Obviously, it wouldn't be limited to libc type, but intended to be a > generic sub-parameter of a distro, DISTRO_LIBC > it could be debug/release type, DISTRO_TYPE > size type (minimal/standard/extended), This is handled by distro overrides when it comes to configurations (busybox, uclibc, kernel configs) and images content. > whatever. DISTRO_* can be added at any time as long as they have sense. > The usage idea is to have standard name for such generic parameter, plus > semantically it should be expected that a distro allows to build > different SYSTYPE's side-by-side in the same build dir (like Angstrom > does for libc variants). > And nothing really precludes SYSTYPE to be not just "libc", but > "libc,release", or "libc,release,wm=xfce", or > "libc,release,wm=xfce,weird_user_config=some_file.conf". This is *SICK* as this really should be set in local.conf. Imagine how to handle something like this: DISTRO=umbaumba-18.7 MACHINE=spitz SYSTYPE="uclibc uclibc_config=tweaks/uclibc.config release,wm=openbox openbox_config=tweaks/openbox.onfig kernel=tweaks/linux-rp-umbaumba kernel_config=tweaks/kernel/spitz.defconfig" bitbake umbaumba-default-image All what this command do is possible with auto/local.conf files. +1 from me for DISTRO_LIBC and good thought other DISTRO_ vars -2 for me for SYSTYPE variable -oo for SYSTYPE usage like command above -- JID: hrw-jabber.org OpenEmbedded developer/consultant We are the Knights who say: MOVE.L USP,A1 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-16 20:48 ` Marcin Juszkiewicz @ 2007-12-16 22:31 ` Paul Sokolovsky 2007-12-16 22:58 ` Richard Purdie 0 siblings, 1 reply; 15+ messages in thread From: Paul Sokolovsky @ 2007-12-16 22:31 UTC (permalink / raw) To: Marcin Juszkiewicz; +Cc: openembedded-devel Hello Marcin, Sunday, December 16, 2007, 10:48:13 PM, you wrote: > Dnia sobota, 15 grudnia 2007, Paul Sokolovsky napisał: >> ANGSTROM_MODE config variable has proven to be very useful and >> successful feature during the Angstrom evolution. IMHO, it is worth >> generalization of its meaning and naming to become a generic >> additional OE distro configuration parameter. So, I'd like to propose >> it to be renamed to SYSTYPE, with the description "Select particular >> system variant of a distribution which supports such feature, e.g., >> underlying libc type." > Basically I like idea of unifing this. In Poky we have POKYLIBC for it. > But it should be in DISTRO_ namespace as this makes distro change. >> Obviously, it wouldn't be limited to libc type, but intended to be a >> generic sub-parameter of a distro, > DISTRO_LIBC >> it could be debug/release type, > DISTRO_TYPE >> size type (minimal/standard/extended), > This is handled by distro overrides when it comes to configurations > (busybox, uclibc, kernel configs) and images content. >> whatever. > DISTRO_* can be added at any time as long as they have sense. >> The usage idea is to have standard name for such generic parameter, plus >> semantically it should be expected that a distro allows to build >> different SYSTYPE's side-by-side in the same build dir (like Angstrom >> does for libc variants). >> And nothing really precludes SYSTYPE to be not just "libc", but >> "libc,release", or "libc,release,wm=xfce", or >> "libc,release,wm=xfce,weird_user_config=some_file.conf". > This is *SICK* as this really should be set in local.conf. Imagine how to > handle something like this: That was just a display that such syntax (i.e. single var) doesn't have any restrictions. The actual syntax of the value is fully offloaded to a specific distro. And I don't expect any distro in OE mainline having something more than scalar value soon. > DISTRO=umbaumba-18.7 MACHINE=spitz SYSTYPE="uclibc > uclibc_config=tweaks/uclibc.config release,wm=openbox > openbox_config=tweaks/openbox.onfig kernel=tweaks/linux-rp-umbaumba > kernel_config=tweaks/kernel/spitz.defconfig" bitbake > umbaumba-default-image > All what this command do is possible with auto/local.conf files. So, let it me recount it again: the talk is not just about renaming ANGSTROM_MODE to something, but about defining a user-level, whitebox parameters to configure OE build. We had a long and hot discussion recently about making OE more friendly for novices and casual developers. I was opponent of any patch/wrap measures, but something should be done to make OE more easily configurable nonetheless. The approach I argue here is: let's define finite, small, easily graspable set of parameters and then work towards making OE work out of the box requiring a user to set just those parameters, and preferrably set in easy and obvious way. Editing auto/local.conf and bunch of DISTRO_* parameters do not qualify for this purpose, those are developers' stuff, requiring reading lots of docs and good understanding of OE. Summing up, arguments for the original proposal: 1. One variable vs many: psychologically, it's much easier to remember one setting than many. Knowledge that *all* additional configuration is passed via one variable gives additional psychological boost that you have powerful and flexible tool in your hand, and know that tool \ well enough to use it. (I mean only *whitebox* distro parameters here, never a talk about replacing dozens of OE variables with the one; developers will keep fiddling with all of them). Next, as I pointed, once we settle on the set of the OE whitebox variables (and I really hope it will be this three-some of DISTRO, <var_in_question>, MACHINE), it would be natural to allow to specify them on bitbake command line. This would require finite and small set of them. 2. SYSTYPE vs LONG_BUT_FULLY_CORRECT_VARIABLE_NAME: I love namespaces and stuff myself, but again, with such paradigm, there would be 2 top-level namespaces: whitebox vars and blackbox vars. Whitebox vars face large community of users, so there names should be short and catchy, and not necessarily fit with blackbox var names. As an example, distro code might parse SYSTYPE="release,glibc" and set DISTRO_LIBC="glibc", DISTRO_TYPE="release" based on that, for peruse by other parts of OE blackbox. So, renaming ANGSTROM_MODE to DISTRO_LIBC is obviously move in the right direction, but let's consider if we're ready to move on wider front at the same time. I personally already have in my tree changes which allow to just check out OE and bitbake, have bitbake on the path, create a build dir in well-known location, and then type DISTRO=angsrom SYSTYPE=uclibc MACHINE=h4000 bitbake initramfs-bootmenu-image or DISTRO=angsrom MACHINE=hx4700 bitbake x11-image or DISTRO=generic-uclibc-opt MACHINE=wdmybook bitbake nano or DISTRO=openwrt-sdk MACHINE=brcm24 bitbake nano And voila. No config file copying and editing. No obscure environment variable setting. No wrapper scripts. No Makefiles. It just works. > +1 from me for DISTRO_LIBC and good thought other DISTRO_ vars > -2 for me for SYSTYPE variable > -oo for SYSTYPE usage like command above -- Best regards, Paul mailto:pmiscml@gmail.com ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-16 22:31 ` Paul Sokolovsky @ 2007-12-16 22:58 ` Richard Purdie 2007-12-17 2:57 ` Paul Sokolovsky 0 siblings, 1 reply; 15+ messages in thread From: Richard Purdie @ 2007-12-16 22:58 UTC (permalink / raw) To: openembedded-devel On Mon, 2007-12-17 at 00:31 +0200, Paul Sokolovsky wrote: > So, renaming ANGSTROM_MODE to DISTRO_LIBC is obviously move in the > right direction, but let's consider if we're ready to move on wider front > at the same time. I personally already have in my tree changes which > allow to just check out OE and bitbake, have bitbake on the path, > create a build dir in well-known location, and then type > > DISTRO=angsrom SYSTYPE=uclibc MACHINE=h4000 bitbake initramfs-bootmenu-image > > or > > DISTRO=angsrom MACHINE=hx4700 bitbake x11-image > > or > > DISTRO=generic-uclibc-opt MACHINE=wdmybook bitbake nano > > or > > DISTRO=openwrt-sdk MACHINE=brcm24 bitbake nano > > > And voila. No config file copying and editing. No > obscure environment variable setting. No wrapper scripts. No > Makefiles. It just works. I'm not convinced about this :(. Why? The appearance of a standard DISTRO_LIBC variable implies that "glibc" and "uclibc" options are always going to work. What if the distro doesn't support one of them? Is a bug report about some parameter passed to this variable not working for a given distro valid? The point is that all this configuration is distro specific. It should be up to the distro to decide what kind of users it wishes to cater for and how to enable those users to use OE. If Angstrom wants single variable configuration (or triplet variable configuration with MACHINE, DISTRO, DISTRO_MODE/whatever) then thats fine. Rolling that out onto every other distro breaks the distro abstraction though. If you want to add some common code which handles such a variable variable that is also fine. I just worry about making it a generic and mandatory variable, I think it should remain distro specific (and hence up to the maintainers of a given distro). Cheers, Richard ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFC] ANGSTROM_MODE -> SYSTYPE 2007-12-16 22:58 ` Richard Purdie @ 2007-12-17 2:57 ` Paul Sokolovsky 0 siblings, 0 replies; 15+ messages in thread From: Paul Sokolovsky @ 2007-12-17 2:57 UTC (permalink / raw) To: Richard Purdie; +Cc: openembedded-devel Hello Richard, Monday, December 17, 2007, 12:58:31 AM, you wrote: > On Mon, 2007-12-17 at 00:31 +0200, Paul Sokolovsky wrote: >> So, renaming ANGSTROM_MODE to DISTRO_LIBC is obviously move in the >> right direction, but let's consider if we're ready to move on wider front >> at the same time. I personally already have in my tree changes which >> allow to just check out OE and bitbake, have bitbake on the path, >> create a build dir in well-known location, and then type >> >> DISTRO=angsrom SYSTYPE=uclibc MACHINE=h4000 bitbake initramfs-bootmenu-image >> >> or >> >> DISTRO=angsrom MACHINE=hx4700 bitbake x11-image >> >> or >> >> DISTRO=generic-uclibc-opt MACHINE=wdmybook bitbake nano >> >> or >> >> DISTRO=openwrt-sdk MACHINE=brcm24 bitbake nano >> >> >> And voila. No config file copying and editing. No >> obscure environment variable setting. No wrapper scripts. No >> Makefiles. It just works. > I'm not convinced about this :(. Why? > The appearance of a standard DISTRO_LIBC variable implies that "glibc" > and "uclibc" options are always going to work. Exactly. That's another reason not to create DISTRO_LIBC, or at least, not to treat it as something more than internal setting. > What if the distro > doesn't support one of them? Is a bug report about some parameter passed > to this variable not working for a given distro valid? This - validation of SYSTYPE setting - was already discussed actually. To remind, quick and easy way to do it is to make distros which support SYSTYPE to set SYSTYPES_SUPPORTED to, say, "glibc eglibc uclibc". If SYSTYPES_SUPPORTED is not set, while SYSTYPE, sanity.bbclass will barf out. Otherwise, it will check that ${SYSTYPE} appears in ${SYSTYPES_SUPPORTED} and barf out otherwise. The drawback is that it puts artificial constraints on ${SYSTYPE} syntax. More general way would be to have SYSTYPE_SUPPORTED. If unset, non-empty SYSTYPE causes sanity error. Otherwise, validation of its value is left to the distro config/class files. > The point is that all this configuration is distro specific. It should > be up to the distro to decide what kind of users it wishes to cater for > and how to enable those users to use OE. Yes, but as recent discussion showed, users doubt that, and think that *OE* (not just a distro) should be more friendly to them. It would be unwise to ignore that - there were many voices with different usecases. To address this, OE should provide best practices on user-facing configuration methods (in particular). > If Angstrom wants single variable configuration (or triplet variable > configuration with MACHINE, DISTRO, DISTRO_MODE/whatever) then thats > fine. Rolling that out onto every other distro breaks the distro > abstraction though. It won't be "roll out onto". It will be a best practice worked out over long time by a big distro. We just need to polish it up to be a real best practice, not just something which could be done. > If you want to add some common code which handles such a variable > variable that is also fine. I just worry about making it a generic and > mandatory variable, I think it should remain distro specific (and hence > up to the maintainers of a given distro). Let's put it that way: if a distro has some high-level, user-adjustable setting(s) to tweak, they are advised to allow to do this via SYSTYPE. They are free not to use it, or to use any other configuration method of course. But if we agree on such a recommendation for SYSTYPE, and distros actually will use it, that will make users' life easier, for example, we will be able to write 2-paragraph Quick Start instructions which will actually describe 90% of what someone, who is not a distro engineer, may need to know about OE to get his initial tasks done. > Cheers, > Richard [] -- Best regards, Paul mailto:pmiscml@gmail.com ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2007-12-21 21:47 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-12-15 2:39 [RFC] ANGSTROM_MODE -> SYSTYPE Paul Sokolovsky 2007-12-15 3:17 ` Khem Raj 2007-12-15 10:49 ` Koen Kooi 2007-12-15 15:05 ` Paul Sokolovsky 2007-12-15 13:26 ` Leon Woestenberg 2007-12-15 15:35 ` Paul Sokolovsky 2007-12-16 4:51 ` Rod Whitby 2007-12-16 9:36 ` Paul Sokolovsky 2007-12-20 18:38 ` Leon Woestenberg 2007-12-20 20:10 ` Paul Sokolovsky 2007-12-21 21:42 ` Leon Woestenberg 2007-12-16 20:48 ` Marcin Juszkiewicz 2007-12-16 22:31 ` Paul Sokolovsky 2007-12-16 22:58 ` Richard Purdie 2007-12-17 2:57 ` Paul Sokolovsky
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.