* [RFC] policy about nonworking recipes @ 2009-05-21 20:20 Rolf Leggewie 2009-05-21 20:41 ` Koen Kooi 0 siblings, 1 reply; 13+ messages in thread From: Rolf Leggewie @ 2009-05-21 20:20 UTC (permalink / raw) To: openembedded-devel Hi, we have recipes/nonworking/ to collect known-to-be-broken recipes. With the explosion of MACHINE, DISTRO and other settings, most all recipes are prone to fail in some circumstances. Occasionally, this has led to packages being moved to nonworking that were only broken for some occasions and possibly essential for others. Problems reported in the bug tracker had not always gotten on the radar of the person needing the recipe. The result is frustration left and right. We already have COMPATIBLE_MACHINE and COMPATIBLE_HOST, but they're not commonly used. As a matter of policy, I think we should agree on setting COMPATIBLE_MACHINE to an empty string for packages that fail in do_configure or do_compile and which otherwise would have been a candidate for recipes/nonworking. The recipe will then not be considered by the parser. The person who wants the recipe finds it right where he would expect it and can add a regexp for the MACHINE he knows this recipes is working for. Furthermore, "git log" can't track moving operations very well and this proposal avoids renaming files. I think that, eventually, "bitbake world" should be working again and usable as a test case. I suggest to use COMPATIBLE_MACHINE because I assume that to be the more common issue. Best regards Rolf ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 20:20 [RFC] policy about nonworking recipes Rolf Leggewie @ 2009-05-21 20:41 ` Koen Kooi 2009-05-21 21:05 ` Philip Balister ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Koen Kooi @ 2009-05-21 20:41 UTC (permalink / raw) To: openembedded-devel On 21-05-09 22:20, Rolf Leggewie wrote: > I think that, eventually, "bitbake world" should be working again and > usable as a test case. A laudable goal... > I suggest to use COMPATIBLE_MACHINE because I > assume that to be the more common issue. NAK, we have a perfectly good EXCLUDE_FROM_WORLD = "1" for that, which is already used in lots (well, 23) recipes and classes. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 20:41 ` Koen Kooi @ 2009-05-21 21:05 ` Philip Balister 2009-05-21 21:12 ` Christopher Larson 2009-05-21 21:36 ` Rolf Leggewie 2009-05-21 21:12 ` Rolf Leggewie 2009-05-21 21:16 ` Rolf Leggewie 2 siblings, 2 replies; 13+ messages in thread From: Philip Balister @ 2009-05-21 21:05 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 707 bytes --] Koen Kooi wrote: > On 21-05-09 22:20, Rolf Leggewie wrote: > >> I think that, eventually, "bitbake world" should be working again and >> usable as a test case. > > A laudable goal... > >> I suggest to use COMPATIBLE_MACHINE because I >> assume that to be the more common issue. > > NAK, we have a perfectly good EXCLUDE_FROM_WORLD = "1" for that, which > is already used in lots (well, 23) recipes and classes. Good point, after thinking about the COMPATIBLE_MACHINE idea, I was thinking it would also need to be paired with COMPATIBLE_DISTRO also. Using the existing EXCLUDE_WORLD would be simpler solution in my mind. I'm still interested in what other people think. Philip [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/x-pkcs7-signature, Size: 3303 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 21:05 ` Philip Balister @ 2009-05-21 21:12 ` Christopher Larson 2009-05-21 21:36 ` Rolf Leggewie 1 sibling, 0 replies; 13+ messages in thread From: Christopher Larson @ 2009-05-21 21:12 UTC (permalink / raw) To: openembedded-devel Philip Balister wrote: > Koen Kooi wrote: >> On 21-05-09 22:20, Rolf Leggewie wrote: >> >>> I think that, eventually, "bitbake world" should be working again and >>> usable as a test case. >> >> A laudable goal... >> >>> I suggest to use COMPATIBLE_MACHINE because I >>> assume that to be the more common issue. >> >> NAK, we have a perfectly good EXCLUDE_FROM_WORLD = "1" for that, >> which is already used in lots (well, 23) recipes and classes. > > Good point, after thinking about the COMPATIBLE_MACHINE idea, I was > thinking it would also need to be paired with COMPATIBLE_DISTRO also. > Using the existing EXCLUDE_WORLD would be simpler solution in my mind. > > I'm still interested in what other people think. Sounds like EXCLUDE_FROM_WORLD + DEFAULT_PREFERENCE would be all that's necessary to get nonworking-style functionality without moving the recipes, indeed. At least this way we ensure the recipes stay *parsable*, which is more than we can say for the current bits :) -Chris ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 21:05 ` Philip Balister 2009-05-21 21:12 ` Christopher Larson @ 2009-05-21 21:36 ` Rolf Leggewie 1 sibling, 0 replies; 13+ messages in thread From: Rolf Leggewie @ 2009-05-21 21:36 UTC (permalink / raw) To: openembedded-devel Philip Balister wrote: > thinking it would also need to be paired with COMPATIBLE_DISTRO also. COMPATIBLE_DISTRO does not exist as far as I know. So if needed it would have to be added. I tried to work with what's there. Not sure if COMPATIBLE_DISTRO should be added and be OE's responsibility. If there frequently is a situation where something builds in one distro and not the other then I guess it would be better to dig deeper into the choices those distros made which lead to that outcome and act on that. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 20:41 ` Koen Kooi 2009-05-21 21:05 ` Philip Balister @ 2009-05-21 21:12 ` Rolf Leggewie 2009-05-21 21:46 ` Koen Kooi 2009-05-21 21:16 ` Rolf Leggewie 2 siblings, 1 reply; 13+ messages in thread From: Rolf Leggewie @ 2009-05-21 21:12 UTC (permalink / raw) To: openembedded-devel Hi, Koen Kooi wrote: > On 21-05-09 22:20, Rolf Leggewie wrote: > >> I think that, eventually, "bitbake world" should be working again and >> usable as a test case. > > A laudable goal... But not the only one. And essentially not even the main motivation behind this. For lack of a better description I'd say it's "OE should just work" instead of "OE has a gazillion recipes to build a fantastillion packages"*. * "but most of them won't build for you and you only find out after compiling for 48 hours, sorry" >> I suggest to use COMPATIBLE_MACHINE because I >> assume that to be the more common issue. > > NAK, we have a perfectly good EXCLUDE_FROM_WORLD = "1" for that, which > is already used in lots (well, 23) recipes and classes. Any bb in the repo should be buildable or clearly say where it is not and exclude itself from any build where it isn't suitable. EXCLUDE_FROM_WORLD does not do that, so it's not a solution. DEFAULT_PREFERENCE -1 would be feasible but that just says "doesn't work" whereas COMPATIBLE_MACHINE is more than likely to be a step in the right direction (again, assuming most situations where things don't work here but work for somebody else will be machine-dependent). The semantics of COMPATIBLE_MACHINE being "no compatible machines known to the last committer". If it turns out to be a host-dependent issue, instead, then the next commit should replace the COMPATIBLE_MACHINE line with one listing only the COMPATIBLE_HOSTs. I'm all ears for differing suggestions, but EXCLUDE_FROM_WORLD isn't really a solution. Regards Rolf ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 21:12 ` Rolf Leggewie @ 2009-05-21 21:46 ` Koen Kooi 2009-05-21 21:53 ` Philip Balister 2009-05-21 22:59 ` Rolf Leggewie 0 siblings, 2 replies; 13+ messages in thread From: Koen Kooi @ 2009-05-21 21:46 UTC (permalink / raw) To: openembedded-devel On 21-05-09 23:12, Rolf Leggewie wrote: > The semantics of COMPATIBLE_MACHINE being "no compatible machines known to > the last committer". COMPATIBLE_MACHINE has a well defined meaning, which doesn't lend it for this kind of pendantry. COMPATIBLE_MACHINE is meant to prevent people building a recipe whose packages have no chance of *running* on a different machine (kernels being the most obvious examples, hardware daemons less so). It has no place in tagging build time brokenness. > If it turns out to be a host-dependent issue, > instead, then the next commit should replace the COMPATIBLE_MACHINE line > with one listing only the COMPATIBLE_HOSTs. So let's say you want to build pulseaudio, which requires a recent autoconf. And your distro locks that down to an ancient version. You get a weird error message that doesn't indicate the problem (most likely a broken makefile). So you try all machines present in OE and none works and then add COMPATIBLE_MACHINE = "", a while after that someone builds it for another distro, that does have the correct autoconf version (unbeknowst to the user) and replaces it with COMPATIBLE_HOST (which is really COMPATIBLE_ARCH, so not for 'host' issues, but target issues). Anyone looking at the history of the recipe will draw the wrong conclusions, since you decided to make it a COMPATIBLE_MACHINE thing, instead of using EXCLUDE_FROM_WORLD (which has a meaning to bitbake/OE) or BROKEN = 1 (which has no meaning to bitbake/OE, only to OE devs). But more importantly, a lot of people (and companies) are using OE in ways we don't know about, so deleting things, or preventing them being parsed is stabbing them in the eye. If the recipes offend you, you can bbmask them out in local.conf or in your distro.conf, but stop making life harder for the rest of us, the time needed to undelete or un-COMPATIBLE_MACHINE recipes isn't free. Time spent hearing people bitch about deleted recipes isn't free either. OE isn't wikipedia were deleting a cool way to boost your streetcred. And I think that ultimately it's a distro choice which targets should be buildable, if a distro says that 'world' isn't supported, so be it. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 21:46 ` Koen Kooi @ 2009-05-21 21:53 ` Philip Balister 2009-05-21 22:59 ` Rolf Leggewie 1 sibling, 0 replies; 13+ messages in thread From: Philip Balister @ 2009-05-21 21:53 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 2837 bytes --] Koen Kooi wrote: > On 21-05-09 23:12, Rolf Leggewie wrote: >> The semantics of COMPATIBLE_MACHINE being "no compatible machines > known to >> the last committer". > > COMPATIBLE_MACHINE has a well defined meaning, which doesn't lend it for > this kind of pendantry. COMPATIBLE_MACHINE is meant to prevent people > building a recipe whose packages have no chance of *running* on a > different machine (kernels being the most obvious examples, hardware > daemons less so). It has no place in tagging build time brokenness. Heh, I was just writing this same thought. I do think your approach will confuse the meaning of COMPATIBLE_MACHINE. I was on the urge of trying to say the same thing (and failing) when Koen's email came through. Koen also raises some good points in the rest of his email. Philip > >> If it turns out to be a host-dependent issue, >> instead, then the next commit should replace the COMPATIBLE_MACHINE line >> with one listing only the COMPATIBLE_HOSTs. > > So let's say you want to build pulseaudio, which requires a recent > autoconf. And your distro locks that down to an ancient version. You get > a weird error message that doesn't indicate the problem (most likely a > broken makefile). So you try all machines present in OE and none works > and then add COMPATIBLE_MACHINE = "", a while after that someone builds > it for another distro, that does have the correct autoconf version > (unbeknowst to the user) and replaces it with COMPATIBLE_HOST (which is > really COMPATIBLE_ARCH, so not for 'host' issues, but target issues). > Anyone looking at the history of the recipe will draw the wrong > conclusions, since you decided to make it a COMPATIBLE_MACHINE thing, > instead of using EXCLUDE_FROM_WORLD (which has a meaning to bitbake/OE) > or BROKEN = 1 (which has no meaning to bitbake/OE, only to OE devs). > > But more importantly, a lot of people (and companies) are using OE in > ways we don't know about, so deleting things, or preventing them being > parsed is stabbing them in the eye. > > If the recipes offend you, you can bbmask them out in local.conf or in > your distro.conf, but stop making life harder for the rest of us, the > time needed to undelete or un-COMPATIBLE_MACHINE recipes isn't free. > Time spent hearing people bitch about deleted recipes isn't free either. > OE isn't wikipedia were deleting a cool way to boost your streetcred. > > And I think that ultimately it's a distro choice which targets should be > buildable, if a distro says that 'world' isn't supported, so be it. > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel > [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/x-pkcs7-signature, Size: 3303 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 21:46 ` Koen Kooi 2009-05-21 21:53 ` Philip Balister @ 2009-05-21 22:59 ` Rolf Leggewie 2009-05-21 23:29 ` Philip Balister ` (2 more replies) 1 sibling, 3 replies; 13+ messages in thread From: Rolf Leggewie @ 2009-05-21 22:59 UTC (permalink / raw) To: openembedded-devel Koen, we're still discussing to find a good solution. No need to get all worked up yet and calling other people pendantic[sic]. Is it really too much to ask that the data in OE should generally be such that "bitbake $target" at least builds? If the distribution's settings are responsible for a build failing then it's the distribution's responsibility to fix this. The pulseaudio and autoconf example you gave is essentially bug 3722 but can otherwise be handled. BTW, the workflow you then described is not what I'm suggesting. My intention is not to abuse COMPATIBLE_MACHINE if that is not the right place. I can only go by the well-defined meaning in the documentation which at least does not mention build-time vs. run-time. conf/documentation.conf:COMPATIBLE_MACHINE[doc] = "A regular expression which matches the MACHINES support by the package/file. Failure to match will cause the file to be skipped by the parser." IMHO setting it to an empty string to indicate that no compatible machines are (currently!) known does not conflict with that. It would get people talking to fix the problem if there was still interest, "git log" would stay meaningful, the recipe remains in the place where people would be looking for it, etc.pp. Lots of good reasons, I think, even if in the end it turned out that s/autoconf/autoconf >= X.Y/ is what was really necessary. To make it clear, my suggestion is not that every dev should immediately set this when something does not compile. First of all, the "core stuff needs review"-rule still applies, so we're mostly talking normal packages here. Furthermore, this is a suggestion for stuff that would otherwise be a candidate for recipes/nonworking, IOW things that are known broken and nobody steps up to fix them. Again, I'm all ears for better suggestions on how to document in OE build-time dependencies and failures so that ideally "bitbake $target" will always work or say "no suitable provider found". What I've heard so far is not a solution. Regards Rolf ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 22:59 ` Rolf Leggewie @ 2009-05-21 23:29 ` Philip Balister 2009-05-21 23:46 ` Rolf Leggewie 2009-05-22 7:57 ` Yuri Bushmelev 2 siblings, 0 replies; 13+ messages in thread From: Philip Balister @ 2009-05-21 23:29 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 1294 bytes --] Rolf Leggewie wrote: > Koen, > > we're still discussing to find a good solution. No need to get all > worked up yet and calling other people pendantic[sic]. Is it really too > much to ask that the data in OE should generally be such that "bitbake > $target" at least builds? Rolf, Rather than focus your efforts to improve OE by clearly defining what builds and what does not, how about trying to identify a problem felt by a large number of developers? For me (and I hope others), the number one problem is keeping a set of "useful" images building on Angstrom (you could expand this to include other distros). In my mind, having console-image, and some images that support UI's (for machine used with screens etc) would be really helpful. Beyond this, actually making sure the images work on the target hardware would be awesome. It seems like identifying a set of common machines, distros, and hw and making sure we can consistently provide working images would increase the developer base of OE. In turn, this would lead to more people able to improve the complete set of meta-data. We really need to recruit more developers, and the way to do that (I believe) is have more simple stuff just work and work well. Good night all, Philip [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/x-pkcs7-signature, Size: 3303 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 22:59 ` Rolf Leggewie 2009-05-21 23:29 ` Philip Balister @ 2009-05-21 23:46 ` Rolf Leggewie 2009-05-22 7:57 ` Yuri Bushmelev 2 siblings, 0 replies; 13+ messages in thread From: Rolf Leggewie @ 2009-05-21 23:46 UTC (permalink / raw) To: openembedded-devel Rolf Leggewie wrote: > s/autoconf/autoconf >= X.Y/ My attempt at indicating that the solution might be to indicate in the bb file that autoconf version X.Y or higher is necessary to build the package (symbolizing a replace operation on the DEPENDS line of the bb) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 22:59 ` Rolf Leggewie 2009-05-21 23:29 ` Philip Balister 2009-05-21 23:46 ` Rolf Leggewie @ 2009-05-22 7:57 ` Yuri Bushmelev 2 siblings, 0 replies; 13+ messages in thread From: Yuri Bushmelev @ 2009-05-22 7:57 UTC (permalink / raw) To: openembedded-devel Hello! > we're still discussing to find a good solution. No need to get all > worked up yet and calling other people pendantic[sic]. Is it really too > much to ask that the data in OE should generally be such that "bitbake > $target" at least builds? > > If the distribution's settings are responsible for a build failing then > it's the distribution's responsibility to fix this. The pulseaudio and > autoconf example you gave is essentially bug 3722 but can otherwise be > handled. BTW, the workflow you then described is not what I'm > suggesting. > > My intention is not to abuse COMPATIBLE_MACHINE if that is not the right > place. I can only go by the well-defined meaning in the documentation > which at least does not mention build-time vs. run-time. > conf/documentation.conf:COMPATIBLE_MACHINE[doc] = "A regular expression > which matches the MACHINES support by the package/file. Failure to match > will cause the file to be skipped by the parser." IMHO setting it to an > empty string to indicate that no compatible machines are (currently!) > known does not conflict with that. Another portion of FreeBSD ports examples :) I hope it can be useful. ATM FreeBSD ports have such knobs in similar area: # FORBIDDEN - Package build should not be attempted because of # security vulnerabilities. # IGNORE - Package build should be skipped entirely (e.g. # because of serious unfixable problems in the build, # because it cannot be manually fetched, etc). Error # logs will not appear on pointyhat, so this should be # used sparingly. # BROKEN - Port is believed to be broken. Package builds will # still be attempted on the pointyhat package cluster to # test this assumption. # DEPRECATED - Port is deprecated to install. Advisory only. # EXPIRATION_DATE # - If DEPRECATED is set, determines a date when # the port is planed to remove. The date format is # ISO 8601 (YYYY-MM-DD). # Set these if your port only makes sense to certain architectures. # They are lists containing names for them (e.g., "alpha i386"). # (Defaults: not set.) # # ONLY_FOR_ARCHS # - Only build ports if ${ARCH} matches one of these. # NOT_FOR_ARCHS - Only build ports if ${ARCH} doesn't match one of these. # ONLY_FOR_ARCHS_REASON # ONLY_FOR_ARCHS_REASON_${ARCH} # - Reason why it's only for ${ONLY_FOR_ARCHS}s # NOT_FOR_ARCHS_REASON # NOT_FOR_ARCHS_REASON_${ARCH} # - Reason why it's not for ${NOT_FOR_ARCHS}s Typical examples from real life: IGNORE= needs at least FreeBSD 5.3-RELEASE BROKEN= Does not compile with GCC 4.2 DEPRECATED= author has abandoned this program ONLY_FOR_ARCHS= i386 ONLY_FOR_ARCHS_REASON= Rebuild of i386 package provided by Nominum. -- Yuri Bushmelev ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC] policy about nonworking recipes 2009-05-21 20:41 ` Koen Kooi 2009-05-21 21:05 ` Philip Balister 2009-05-21 21:12 ` Rolf Leggewie @ 2009-05-21 21:16 ` Rolf Leggewie 2 siblings, 0 replies; 13+ messages in thread From: Rolf Leggewie @ 2009-05-21 21:16 UTC (permalink / raw) To: openembedded-devel Rolf Leggewie wrote: > DEFAULT_PREFERENCE -1 would be feasible Actually, I guess that would only achieve the desired result when there are other versions of the package, so it really is not an option at all. ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2009-05-22 8:05 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-05-21 20:20 [RFC] policy about nonworking recipes Rolf Leggewie 2009-05-21 20:41 ` Koen Kooi 2009-05-21 21:05 ` Philip Balister 2009-05-21 21:12 ` Christopher Larson 2009-05-21 21:36 ` Rolf Leggewie 2009-05-21 21:12 ` Rolf Leggewie 2009-05-21 21:46 ` Koen Kooi 2009-05-21 21:53 ` Philip Balister 2009-05-21 22:59 ` Rolf Leggewie 2009-05-21 23:29 ` Philip Balister 2009-05-21 23:46 ` Rolf Leggewie 2009-05-22 7:57 ` Yuri Bushmelev 2009-05-21 21:16 ` Rolf Leggewie
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.