
dobysirius wrote:I think it's a great idea. Countless times there's some extremely common problem and it's all over the forums and the topic in IRC but people still ask and ask (just to name a few: pam-login/shadow, kde-env/kdebase).
reillyeon wrote:I can't agree more. While it should probably be turned off by default I just wish that when something failed to build I could check somewhere to see if it had happened to someone else. An automated reporting system would definitely help that.
I think it would be useful if the system could at least try to find a fix for the user. Searching the forum is great, but wouldn't you rather emerge spit out a message saying "91.7% of people building package foo/bar with the CFLAG `-funroll-all-loops' had this problem." or "82.5% of people building package foo/bar who had package baz/quux installed had this problem."? (Of course, if the package maintainer has a more useful hint about how to fix the build, they could put that in instead.)thpani wrote:2. I think the traditional way of asking in Gentoo's forum/irc/..., and after that if it really turns out to be a bug - posting it in bugzilla is much easier. There are lots of duplicates in bugzilla *now*, which have to be sorted out by gentoo staff, and I guess nobody would have enough time to look at all those error reports. Someone would have to look at any them because
Apparently that is being worked on. marienz told me that this going to be fixed eventually.dobysirius wrote:One thing that I find strange even now, though it is not entirely related, is things that depend on certain USE flags of other things. The package fails to build. It tells you what to do, but what if you're not there?
dobysirius wrote:Back to the topic, it would be a great idea. It could provide the emerge --info and maybe some other things. Of course, it HAS to be optional, and configurable (should it fix automatically, should it ask, should it not?). It wouldn't be too useful if it's off by default, but it has to be. Maybe if it's off and there's an error, Portage could mention about how to enable this to fix your problem.
Yeah... I've been wondering whether automatic fixing is such a great idea. Perhaps it should just print a message about a known fix if one exists.reillyeon wrote:I'm not so sure about adding automatic fix scripts. If there's a problem with an ebuild it should just be fixed and the system should suggest that you sync. If it's something like "Recompile this package to fix a missing header." then that can be a message to the user. Distributing more code just means more code to maintain.
dobysirius wrote:It has its problems, of course. How do you know what caused the problem? Some errors can arise from multiple causes. The server has to send back commands to check for other possibilities. And it still won't be perfect. As a general idea, though, it's great IMO.
The idea would be that the server aggregates the error reports and highlights similarities in the reports it receives, so it is apparent to whoever's reviewing the reports that a certain package fails when another package is/isn't installed, or a certain CFLAG is present. To parse error messages, it would have a set of regexps for picking out errors in the output from gcc, configure, etc..., and it will aggregate reports with the same (or perhaps similar) message(s).thpani wrote:3. I don't understand or can think of a way to match a newly submitted report to an existing one to find the solution. The only one I can think of is someone going through every report and matching it to solution number xxx. Therefor the described traditional approach is more targeted.
Yes, I know. It will aggregate it, so it won't keep a copy of everything, but simply the percentage of systems with a certain flag set. Optionally it could keep compressed copies of the full error reports for a short time (i.e. a week or a month). But longer than that and they're less useful, as things may have been fixed.thpani wrote:1. Whatever you collect, it will result in an immensly huge amount of data
I respectfully disagree. ;-) While the auto-fixing might not be feasible, I think aggregating error reports and helping developers identify their causes would be useful.thpani wrote:So, you could understand my answer not as 'won't be useful', but as 'won't be possible'.
Developers would have an option to filter their error reports by things like that. For example, it would have an option to hide reports from stable packages where the user has unmasked unstable versions of the deps, or things like that. But in your case there is a bug in the ebuild. Portage should be upgrading cairo to the newer version. Each package should build successfully by itself, since gtk+ should pull in the new cairo and pycairo should pull in the old. But whichever one you didn't build last won't work.Naib wrote:I vote NO
simply because it will fill the auto-buzilla with pointless entries swamping the legit (sounds good in theory)
take my example from today: Updating world so I get GNOME-2.16 and gtk+ keeps failing time after time after time
turns out cairo keeps getting downgraded by pycairo not being ~ARCH and cairo being ~ARCH
round and around until I decide to do a -t output and see it was pycairo causing the probs
Aggregating error reports and helping developers identify their causes certainly *IS* useful, but as I said it won't be possible.ThinkingInBinary wrote:I respectfully disagree.thpani wrote:So, you could understand my answer not as 'won't be useful', but as 'won't be possible'.While the auto-fixing might not be feasible, I think aggregating error reports and helping developers identify their causes would be useful.
Bad idea. The fluid nature of Gentoo means that configuration steps are constantly changing. Take a look at baselayout -- a fix in one version to solve a problem likely won't be possible in the next version, since variables and/or the "way to do it" has changed. There's no way to realistically keep ahead of configuration changes, so any sort of automatically-discovered fix is impossible.automatically discover a solution
First, as to your specific example... it will separate error reports by version.nightmorph wrote:Bad idea. The fluid nature of Gentoo means that configuration steps are constantly changing. Take a look at baselayout -- a fix in one version to solve a problem likely won't be possible in the next version, since variables and/or the "way to do it" has changed. There's no way to realistically keep ahead of configuration changes, so any sort of automatically-discovered fix is impossible.automatically discover a solution
Of course it won't be mandatory, and most likely it will be manually activated when the user wants.Also, too much information to collect. Very much an invasion of privacy.
Um, I think you misunderstand what I'm doing. This only catches build errors. When it's enabled, it transparently captures the output of each emerge, and if the emerge ends with a build error, it collects information (the emerge output, config.log, make.conf, etc...) and submits it to a server. The server will optionally reply with some sort of message, perhaps a note from the maintainer of the package about how to fix the error, if they've figured it out yet.Plus, it's not practical to have all these excess processes spawned if, say, you're running a server or some sort of headless machine. It's liable to be a security risk and/or just plain inconvenient.
I could do it. Everyone seems to think it's this insanely complex datamining system. It doesn't solve errors. It just presents information about them to devs, and allows the devs to enter a fix to be shown to users. The idea is that, instead of having to fix a bug on bugzilla, answer a few messages on the mailing list, answer some threads on the forum, and explain the fix to many people on IRC, the dev will simply enter a message into the system, and when someone else encounters the error, it shows them the message.Also, who's going to build and maintain this datamining (as thpani put it) application?
Devs of each package, or perhaps someone can post solutions found using bugzilla, the forums, or IRC.Who's going to act as the support behind each problem?
The idea of this is that it saves the devs and the users the trouble of using the forums for sharing solutions to build problems. Instead of searching through pages of threads about a package to see if anyone had the exact same error (since, let's face it, search doesn't always work that well), a user will just let this program check the site. If there's a solution, they see it. And if there isn't, the dev will be able to count the number of users having the problem, see their system configuration, look at the logfiles, and more, without having to track down each user and nag them.It's generally common knowledge that the devs are stretched pretty far. The Gentoo community, especially these forums, are usually the first place users come when looking for solutions. The users have to support each other, after all. You'd need a non-community, paid support organization to effectively manage a huge troubleshooting backend like the one you're asking for.
Well, I don't understand the concept of developer asking users something or suggesting ideas to help ....whom? Users? don't know.Headrush wrote: Not trying to offend anyone, but seems lately a lot of threads by end users suggesting ways of helping the developers, but not the other way around which is probably better. Developers suggesting things they would like to help them. (if any needed)
A hidden message in these posts?
It's simple. There is an assumption by end users that the developers are unaware of problems and that we need to tell them so they can fix it.djay wrote:And,Well, I don't understand the concept of developer asking users something or suggesting ideas to help ....whom? Users? don't know.Headrush wrote: Not trying to offend anyone, but seems lately a lot of threads by end users suggesting ways of helping the developers, but not the other way around which is probably better. Developers suggesting things they would like to help them. (if any needed)
A hidden message in these posts?
I'm sure more than you think is implemented. Debugging is time consuming and developer resources are limited. If you look back at older Gentoo you will see changes and improvements have been substantial. I think as Linux as a whole matures more, developers will be able to concentrate more on the small remaining issues. (Look at changes lately, gcc, xorg, KDE, hal, dbus, etc)djay wrote:I do know though, that if out of 100 users' requests/suggestions 1 were implemented (its 1 freaking percent), we would be probably in better shape than we are now.
No its not. The assumption is correct. Of course there are problems that developers do not know about. That's the nature of things, otherwise, if developers new all the problems in the the world, we wouldn't have any bugs, wouldn't we?Headrush wrote:It's simple. There is an assumption by end users that the developers are unaware of problems and that we need to tell them so they can fix it. Ask any developer if this is the real problem.
Well, isn't this what Bug reporting guidelines are there for? And this would not be enough, don't worry, developers will ask for more info they need to solve specific problem . Its not really feasible to give you generic list of what would developer need to solve your problem. Each problem may require its own info.Headrush wrote: The point is we should be asking developers what they would like from us that would help them best. My guess is it isn't this kind of setup.
That is your best case? And if this is all it can do, whats the point? not useful enough.Headrush wrote: I like the idea, but I think it is more work than you think to implement and ultimately all you would get from this system is a " these packages seem to be broken for X number of people, so you should look here."
You are right, I don't really understand your point.Headrush wrote:djay, I think you are missing the points I am trying to make.
Your looking at it from a specific bug fixing approach and I'm looking at it from a developer view.
bugzilla is not what I mean by giving the developers what they want. developers don't need more bug reports, they need more useful debugging info like people running debug versions of software that produce useful information. (debugging symbols, etc. )
Just stating CFLAGS, software installed, etc, can be helpful, but isn't that efficient for diagnosing many problems.
(Not saying some problems can't be solved with this)
** I'm not saying this idea can't work for some issues **
Bottom line, I've been on these forums long enough to not trust the info from noobies machines. Its nothing personal but I know due to the complexity and differences with Gentoo and the mistakes they can make nothing is constant and should not be assumed so.
I am saying that automated system information, (emerge --info), can not be trusted either.djay wrote:But you talking about the fact, that hand-made info by users about their problem is not trustworthy? And that this process should be automated to eliminate possible errors?
Headrush wrote:I am saying that automated system information, (emerge --info), can not be trusted either.djay wrote:But you talking about the fact, that hand-made info by users about their problem is not trustworthy? And that this process should be automated to eliminate possible errors?
(People say they haven't done something, but they have. eg messed with other CFLAGS, gcc flags, etc)
There is no guarantee that those setting were even used for compiling any installed packages and I don't see any way of finding this information. Because Gentoo is a system a large percentage of people tinker with, your findings can be skewered.
There is just too many variable type things with Gentoo to make this effective.
