Hi all,
I was thinking earlier it would be quite nice if when I double clicked a Windows app in GNOME it would display a nice dialog saying something like "This Windows application may not run correctly as it is currently rated Silver. Please report any bugs to the Wine project. Continue | Cancel". Obviously this kind of functionality is not a job for Wine, but for the distro. Still, it got me thinking how this kind of functionality might be achieved.
My idea is that the appdb should allow for people to associate a list of checksums with an application version. For example, WoW might have the checksum for the setup program and the game's executable, associated with the appdb entry. The other extension to the appdb would be to allow a way to programmatically retrieve information on an application's rating etc. by going to a certain address (e.g. http://appdb.winehq.org/getAppInfoFromChecksum.php?checksum=ac2b3f5928cba...) which would return the info in XML or some other format.
So what do you guys think? Perhaps some of this functionality exists and I don't know about it :)
Luke.
2009/2/11 Luke Benstead kazade@gmail.com:
Hi all,
I was thinking earlier it would be quite nice if when I double clicked a Windows app in GNOME it would display a nice dialog saying something like "This Windows application may not run correctly as it is currently rated Silver. Please report any bugs to the Wine project. Continue | Cancel". Obviously this kind of functionality is not a job for Wine, but for the distro. Still, it got me thinking how this kind of functionality might be achieved.
There's been quite a bit of discussion along these lines recently. Unfortunately, AppDB simply isn't reliable enough for this type of dependence. With any luck, that will change when the recently discussed redesign of test data submissions is set up, but it'd still take a long time for sensible data to become reasonably usable.
My idea is that the appdb should allow for people to associate a list of checksums with an application version. For example, WoW might have the checksum for the setup program and the game's executable, associated with the appdb entry. The other extension to the appdb would be to allow a way to programmatically retrieve information on an application's rating etc. by going to a certain address (e.g. http://appdb.winehq.org/getAppInfoFromChecksum.php?checksum=ac2b3f5928cba...) which would return the info in XML or some other format.
You've clearly put quite some thought into this, which is highly commendable. However, I would personally be against such a move, as it would put a lot of extra load on AppDB (in terms of network bandwidth). I'm also not too keen about something that retrieves data from the net every time you run an app. It's too easy for people to mistake it for spyware.
Another problem with a system like this is that ratings change depending not only on application version (which you've addressed) but also on Wine version. Platinum apps could become Garbage for one version (and yes, it has happened). Since AppDB test results tend to be few and far between on version numbers, it's not really useful for an automated "how well will this work?" system. It would have to calculate some sort of "best fit" (which will certainly be completely wrong on occasion), or just ignore the missing data.
And finally, just like with the other suggestions for using the AppDB data elsewhere, this system does not take patches into account. Some apps require patches that completely break others (the Worms Armageddon ddraw hack and CoD hack come to mind here). Unfortunately, there's no sensible way to account for patched Wine in this sort of automated system.
It is not a bad idea to give the user some sort of feedback on how well they should expect their app to run, but unfortunately it's virtually impossible to account for every possibility (patches and broken wineprefixes being the biggest problems).
2009/2/11 Ben Klein shacklein@gmail.com:
2009/2/11 Luke Benstead kazade@gmail.com:
Hi all,
I was thinking earlier it would be quite nice if when I double clicked a Windows app in GNOME it would display a nice dialog saying something like "This Windows application may not run correctly as it is currently rated Silver. Please report any bugs to the Wine project. Continue | Cancel". Obviously this kind of functionality is not a job for Wine, but for the distro. Still, it got me thinking how this kind of functionality might be achieved.
There's been quite a bit of discussion along these lines recently. Unfortunately, AppDB simply isn't reliable enough for this type of dependence. With any luck, that will change when the recently discussed redesign of test data submissions is set up, but it'd still take a long time for sensible data to become reasonably usable.
My idea is that the appdb should allow for people to associate a list of checksums with an application version. For example, WoW might have the checksum for the setup program and the game's executable, associated with the appdb entry. The other extension to the appdb would be to allow a way to programmatically retrieve information on an application's rating etc. by going to a certain address (e.g. http://appdb.winehq.org/getAppInfoFromChecksum.php?checksum=ac2b3f5928cba...) which would return the info in XML or some other format.
You've clearly put quite some thought into this, which is highly commendable. However, I would personally be against such a move, as it would put a lot of extra load on AppDB (in terms of network bandwidth). I'm also not too keen about something that retrieves data from the net every time you run an app. It's too easy for people to mistake it for spyware.
Hmm.. I see your point. However would it really use that much bandwidth? I mean, any sane implementation of the functionality I described would only display the dialog the first time that application was used. Retrieving a tiny xml file is surely less bandwidth than browsing the appdb for the application (granted it will happen more often than people browsing the site but I still don't think it's masses of bandwidth). I can also see what you mean about spyware, but other apps retrieve stuff from the web if there is a connection (CDDB, and album covers are two examples).
Another problem with a system like this is that ratings change depending not only on application version (which you've addressed) but also on Wine version. Platinum apps could become Garbage for one version (and yes, it has happened). Since AppDB test results tend to be few and far between on version numbers, it's not really useful for an automated "how well will this work?" system. It would have to calculate some sort of "best fit" (which will certainly be completely wrong on occasion), or just ignore the missing data.
And finally, just like with the other suggestions for using the AppDB data elsewhere, this system does not take patches into account. Some apps require patches that completely break others (the Worms Armageddon ddraw hack and CoD hack come to mind here). Unfortunately, there's no sensible way to account for patched Wine in this sort of automated system.
It is not a bad idea to give the user some sort of feedback on how well they should expect their app to run, but unfortunately it's virtually impossible to account for every possibility (patches and broken wineprefixes being the biggest problems).
You're right, it's a shame the data can't be more frequent and reliable, I just thought it would be nice to be able to probe the appdb for this information easily. :)
Luke.
2009/2/11 Luke Benstead kazade@gmail.com:
2009/2/11 Ben Klein shacklein@gmail.com:
2009/2/11 Luke Benstead kazade@gmail.com:
My idea is that the appdb should allow for people to associate a list of checksums with an application version. For example, WoW might have the checksum for the setup program and the game's executable, associated with the appdb entry. The other extension to the appdb would be to allow a way to programmatically retrieve information on an application's rating etc. by going to a certain address (e.g. http://appdb.winehq.org/getAppInfoFromChecksum.php?checksum=ac2b3f5928cba...) which would return the info in XML or some other format.
You've clearly put quite some thought into this, which is highly commendable. However, I would personally be against such a move, as it would put a lot of extra load on AppDB (in terms of network bandwidth). I'm also not too keen about something that retrieves data from the net every time you run an app. It's too easy for people to mistake it for spyware.
Hmm.. I see your point. However would it really use that much bandwidth? I mean, any sane implementation of the functionality I described would only display the dialog the first time that application was used. Retrieving a tiny xml file is surely less bandwidth than browsing the appdb for the application (granted it will happen more often than people browsing the site but I still don't think it's masses of bandwidth). I can also see what you mean about spyware, but other apps retrieve stuff from the web if there is a connection (CDDB, and album covers are two examples).
A request to AppDB would be at least once per user, application version and Wine version combination. Given the number of people using Wine, this would almost certainly be a massive load increase on AppDB, it would repeat roughly every 2 weeks (when new releases come out), and possibly even bring AppDB down as a worst-case scenario.
On Wed, Feb 11, 2009 at 2:24 PM, Luke Benstead kazade@gmail.com wrote:
I can also see what you mean about spyware, but other apps retrieve stuff from the web if there is a connection (CDDB, and album covers are two examples).
Wine transmitting every application I run to someone else would be rather worrying...
It should rather be opt-in. Such as "Wine has detected that it is the first time you run this application, do you want to check AppDb for more information (Yes/No/Ask again/Never ask for any application)" It must be easy to disable globally as well... It might have some other uses as well such as "A newer version of the application works better", etc.
I might be handy to allow automatic submission of test data to AppDb (which IMHO might be more useful than just retrieving...), which should automatically include the Wine executables' checksums + version, distro info (if accessible from lsb-release, parts of the uname output & kernel checksum, which might be used to detect the distro), kernel version, cpu architecture, X server name and version, graphics driver name and version, DLL overrides, etc. This might help modified wine versions and the level of tweaks to be detected by AppDb automatically. (There should be a very specific opt-in process for this data's submission though, such as letting the user manually upload a file with this data and fully disclosing the file's contents) This kind of data can be handy for bug reports as well.
Gert
2009/2/12 Gert van den Berg wine-devel@mohag.net:
On Wed, Feb 11, 2009 at 2:24 PM, Luke Benstead kazade@gmail.com wrote:
I can also see what you mean about spyware, but other apps retrieve stuff from the web if there is a connection (CDDB, and album covers are two examples).
Wine transmitting every application I run to someone else would be rather worrying...
It should rather be opt-in. Such as "Wine has detected that it is the first time you run this application, do you want to check AppDb for more information (Yes/No/Ask again/Never ask for any application)"
This would get insanely annoying if you wanted ONE app to grab data from AppDB but not every other one.
It must be easy to disable globally as well... It might have some other uses as well such as "A newer version of the application works better", etc.
Reliability of AppDB data is the issue here.
I might be handy to allow automatic submission of test data to AppDb (which IMHO might be more useful than just retrieving...)
Automagically ask the user how well their app runs? No thanks.
, which should automatically include the Wine executables' checksums + version, distro info (if accessible from lsb-release, parts of the uname output & kernel checksum
Kernel checksum? No thanks. Especially as a lot of people compile the kernel themselves (Gentoo being the prime example).
, which might be used to detect the distro), kernel version, cpu architecture, X server name and version, graphics driver name and version, DLL overrides, etc.
That's a lot of info you're collecting. Even with an opt-in service, it could be easily mistaken for spyware. Tread carefully.
This might help modified wine versions and the level of tweaks to be detected by AppDb automatically.
Um, no. The big problem is patches, not just DLL overrides.
(There should be a very specific opt-in process for this data's submission though, such as letting the user manually upload a file with this data and fully disclosing the file's contents)
OK, so instead of an automagic system that collects all the data, a manual system that collects false data? Doesn't sound any better than AppDB as is.
This kind of data can be handy for bug reports as well.
This kind of data is typically retrieved on-demand in bug reports. The WORKSFORME bug status is evidence of this.
2009/2/12 Tim Schwartz tim@sanityinternet.com:
What about packaging the latest appdb information with each release?
Because it's BIG. It would also be at least one release behind in test data, making it completely useless.
2009/2/12 alex@centroidcafe.com:
Automatic submission of test data could be a very handy tool. Scenario: User A tries to run an application, it crashes due to bugs in Wine. User A elects to submit data. Sometime in the future, User B tries to run the same application under a similar configuration. It crashes also, but User B being a sly user figures out what DLL overrides, patches, etc. allow this app to progress past the original crash point. Wine detects this and collects the information. Now when User C tries to run this app, Wine displays a message like: "This application has been known to fail under the current configuration. However, workarounds have been discovered that may yield greater success. <link to AppDB>"
Microsoft, KDE and a few other systems have this type of automatic crash reporting. It doesn't work. You are suggesting a new system here, which is storing automated crash report data in a database which will be looked up every time an app runs. This would be a massive load on the server, even just on requests for applications that don't have entries.
Would you seriously want to maintain a database of every Windows application in existence? Seriously? Because that's effectively what you're suggesting. It's not even just Windows apps either, but DOS apps too. Wine will attempt to load DOS apps, and almost always crash. An automated crash report system wouldn't know the difference between a genuine win32/win64 app and a DOS app without a lot of extra work.
I don't have to respond to Austin's comments. It's all been said before. Simple answer is: would not work.
On Wed, Feb 11, 2009 at 7:31 PM, Ben Klein shacklein@gmail.com wrote:
2009/2/12 Gert van den Berg wine-devel@mohag.net:
It should rather be opt-in. Such as "Wine has detected that it is the first time you run this application, do you want to check AppDb for more information (Yes/No/Ask again/Never ask for any application)"
This would get insanely annoying if you wanted ONE app to grab data from AppDB but not every other one.
Why? Say "Yes" to that one app, then "Never ask for any application" for the next app. Seems like Gert's suggestion perfectly handles your use case.
2009/2/12 Sparr sparr0@gmail.com:
On Wed, Feb 11, 2009 at 7:31 PM, Ben Klein shacklein@gmail.com wrote:
2009/2/12 Gert van den Berg wine-devel@mohag.net:
It should rather be opt-in. Such as "Wine has detected that it is the first time you run this application, do you want to check AppDb for more information (Yes/No/Ask again/Never ask for any application)"
This would get insanely annoying if you wanted ONE app to grab data from AppDB but not every other one.
Why? Say "Yes" to that one app, then "Never ask for any application" for the next app. Seems like Gert's suggestion perfectly handles your use case.
What happens when the Wine version or application version changes? Suddenly it's no longer doing what you'd want.
Regardless, it's not worth discussing further, because it has too many drawbacks. As Austin says, too much work required for too little benefit.