All the news that fits, we print.
This is the 351 issue of the World Wine News publication. Its main goal is to update the community on the status of the patchwatcher and other major august developments. If this issue also helps to spread peace in the world the editor will be very content. It also serves to inform you of what's going on around Wine. Wine is an open source implementation of the Windows API on top of X and Unix. Think of it as a Windows compatibility layer. Wine does not require Microsoft Windows, as it is a completely alternative implementation consisting of 100% Microsoft-free code, but it can optionally use native system DLLs if they are available. You can find more info at www.winehq.org
This week, 509 posts consumed 764 K. There were 113 different contributors. 63 (55%) posted more than once. 28 (24%) posted last week too. The top 5 posters of the week were:
|
News: Wine 1.1.3, gOS bundling 1.0, Wine Popularity | Archive | |
---|---|---|
Wine
Alexandre Julliard was out on vacation for a week or so in early August and so we missed a revision bump week. Wine 1.1.3 was released on August 22nd, with a hefty few weeks worth of changes. The following list only does it the tiniest bit of justice:
* Beginnings of ddraw overlay support. * Many more crypt32 functions. * Improved support for tables in Richedit. * Support for NETWM window maximization. * Many installer fixes. * Tweaks for better PulseAudio support. * Various bug fixes. In other news, gOS , the 'good' OS, has announced their most recent beta which includes Wine 1.0 built in. We mentioned building up to 1.0 that we suspected that more and more packagers would incorporate Wine into their products and it seems to be coming to pass. Dan Kegel sent in a link to a Linux Journal survey of what Linux users use to run their windows applications. As of this publication it looks like Wine is in the lead with approximately 40% of the vote, followed by VirtualBox, 'none' and VMWare each with 15-20%. Scott Ritchie wrote in to ask about Steam usage statistics. Steam, valve's gaming hub offers users an opt in survey about their system. In the past we were able to poll this data to determine an approximate number of steam users who are using Wine. This time Alfred Reynolds responded with information about the survey: We recently switched our survey system from a monolithic bi-yearly survey to a monthly rolling survey with a subset of the userbase each month, so we can get a continuous view of changes in hardware amongst our users. We have 2 months of good data to date, Wine usage has increased from 0.33 to 0.36% over that month, but given the small number of Wine responses any increase would be in the margins of error. So Wine usage looks steady since last year amongst the Steam usebase as a whole. As always the Steam Survey is an opt-in system so usual reporting biases could apply. |
The PatchWatcher | Archive | |
---|---|---|
PatchWatcher
In early August Dan Kegel proposed that he begin work on a 'Patch Watcher'. A daemon which would monitor the wine-patches mailing list, test each submitted patch for problems and report its status. Well a few weeks have passed and we have seen a lot of progress. Lets start the story at the beggining, Dan's original post: After some discussion with Jeremy and Alexandre about how nice it would be to have some automated way to check patches before Alexandre commits them, I decided to have a go at creating one. What I have so far is a script that watches wine-patches and applies each patch to current git, then builds, and sends email with a subject line saying whether it worked, and a body containing a short "I'm a build robot" note, the patch, and the build log. You can see the code at http://code.google.com/p/winezeug/source/browse/#svn/trunk/patchwatcher Its main failing is that it doesn't understand patch series yet, but I should be able to get that going by rewriting get-next-patch.pl to take a bit more context into account. Right now it only emails the results to me, but it's probably nearly good enough to show results to other people.
Question: where should the results go?
I could put them up on a web site
and/or email them to the patch's author
and/or email them to a dedicated mailing list (e.g.
[email protected]?)
and/or email them to wine-devel. The immediately following discussion was a lot of praise for the idea, and a consensus that emailing the patch author and posting results to a website were the two appropriate actions the patchwatcher should take. Additionally there were some pretty serious security concerns from Ambroz Bizjak: Just where are you going to run that? To me, a script that builds just every patch is a serious security flaw; I suppose it wouldn't be very hard for someone to send a naughty patch that would take control of your machine. Something like editing a Makefile. I suggest you make it build patches in a chroot as a regular user, and copy over the chroot from a template every time a new patch is being built. Dan agreed about the security issues, but mentioned that it might be difficult to do. Ambroz offered his assistance as he's familiar with OS architecture. A few days later Ambroz delivered a version 1 patch for patchwatcher to use a chroot: I've written some code for the chroot, though it has proven to be harder than I taught it would, especially because of all the development tools and libraries that need to be copied into the chroot. Right now it will only work on Gentoo, other distributions will require some fine-tuning of paths, especially the toolchain. Dan, if you tell me which distro you use, I'll try to get it working there as well. To use it, you first need a second user in the system (not the one you're using!) that has read-access to files you create with default permissions (but no write access). Specify that user in the file "config" and run "patchwatcher.sh initialize_chroot". If everything goes well you will be able to get a shell inside the chroot with "patchwatcher.sh chroot-shell" or "patchwatcher.sh chroot-shell-owner" after running some commands displayed as root. After having a working chroot, use the initialize_tree command to setup the wine source (it's inside the chroot), and the "run" option to start continuous building. Aside from security concerns there were also concerns about performance, and if it would be possible to simply keep up with the mailing list. In the end it was decided that we would wait and see if it's a problem, if so maybe consider using Dan Kegel's parallel test suite patches. About a week after Dan's original thread he began another one, this time with information about the patchwatcher's online results. For the moment, the results only go to a web page, http://kegel.com/wine/patchwatcher/results/ Most of the results there right now are just test messages so you can see how it will look when real patches with various problems are received. The scripts are a bit ugly, so expect problems to linger for the next week or so while I work out the kinks. Much praise followed, along with a tiny bit of bikeshed painting about the colors on the site. There also seems to be desire for a way to signal to patchwatcher to ignore the patch. Finally there remained two issues with the patchwatcher. Patch series and character set corruptions (from mail clients, from the patchwatcher itself). As of 8/22, exactly 20 days from the introduction of patch watcher Dan proclaims the patchwatcher to be mostly satisfactory: I think I fixed the charset munging, so patches of non-english stretches of code should work now. That was the last big source of false failure reports, so I'm going to enable email notification to people whose patches fail. I'll probably clear the results page tonight to get rid of all the bogus failure notices caused by the charset conversion bug. You can view the patchwatcher's results online here: http://kegel.com/wine/patchwatcher/results/. |
DiB Engine Status | Archive | |
---|---|---|
DiB Engine
Huw davis kicks off a discussion about the current state of implementing a DiB engine. See WWN archives for more history about the DiB engine and why its so important. Hi folks, Here's an update on the DIB engine that I've been working on for the last few months. This work has been made possible by the generosity of Google - so thanks go to them and of course to Dan. You can find the code at http://repo.or.cz/w/wine/dibeng-hd.git
What's supported
What needs to be done Note that at the moment it's essentially useless because of the lack of blitting, so unless you fancy hacking on that yourself then you probably don't want to bother fetching the tree. I'm going to stop working on this for a while (lots of fun Outlook 2007 bugs for me to look at!), but will endeavour to keep the tree up to date with respect to WineHQ. If someone *does* want to hack on this then feel free to send me patches!
Thanks, Serge writes in:
Hello, Huw!
Thanks, Serge. Jesse Allen Mainly because I don't have time, I only have access to that git, and I have another job :) I did a bit of work on it last december that I didn't release. It's still on my hard drive. Huw's DIB tree is similar in concept to what I did. He was my mentor if you remember. But it doesn't mean what I was doing was usable. I trust Huw can manage building the basis of a DIB engine alot better than me. But I will likely download his tree and play around with it before school starts again. Francois Gouget An important thing to note about this work is that its architecture should be acceptable to Alexandre. So it can go into WineHQ, the only blocker being that it's not quite complete enough yet. So that leads to the most important question: what's needed to allow it to go into WineHQ? Blitting I guess. Everything else in the list below? Can we avoid having to implement everything before we can commit it? Jesse Allen Could we forward unimplemented stuff back to x11drv now? That's one thing I never really did so my code seemed like it broke alot of stuff because of how much was missing. Huw Davies Great! Please send me patches and I'll apply them. I'll probably merge with WineHQ on every WineHQ release. I'm not planning on doing any work on it for a while, but will probably return to it at some point in the future. |
Kernel bug inhibiting force feedback | Archive | |
---|---|---|
Kernel
Vitaliy Margolen encountered an interesting kernel bug in working on some force-feedback issues: While debugging some force-feedback issues ran into an interesting problem. The size of one struct from include/linux differs between 32-bit and 64-bit. That wouldn't be a major problem except that size is the part of the ioctl() request. Which results in EINVAL. In more details:
The simple test program:
The question is what do we do about it? I'm sure there are might be more
cases like that.
A couple devs. wrote in with the notion that it's likely a Kernel bug, Dmitry Timoshkov writes in definitively: 64-bit kernel should take care of translating the parameters between native 64-bit and emulated 32-bit modes. If that's not the case that's a kernel bug, and should be reported appropriately. |
Wine Development Guide | Archive | |
---|---|---|
Development Process
Dan Kegel pointed out an interesting guide over in Linux land about development and community which he felt might be a good role model to have for Wine. This guide seems rather well written: http://ldn.linuxfoundation.org/how-participate-linux-community Wine could probably use something similar. Discussion following seemed to be positive on the idea of creating such a guide. Even based on some confusion in this discussion itself it seems to indicate just how useful such a guide would be. However, at the end of the discussion nobody had volunteered to put one together. If anybody familiar with the Wine development community is interested in working on a guide for new developers please email [email protected]! |
Spore and Wine | Archive | |
---|---|---|
Spore
So single applications don't usually get much WWN coverage but Spore has been so outstandingly high profile in the gaming world that this may be interesting to many a reader. The AppDB entry for Spore indicates that gamers have had some success with the game. A very interesting bug was filed with some details on some fixes that are in progress. A patch was submitted to wine-patches but rejected by Stefan Dösinger due to a lack of conformance tests. The discussion is slightly technical but not so much that its unreadable. I think its at just the right level to be interesting reading. Andrew Fenn: By looking at both Rico's patch (http://bugs.winehq.org/attachment.cgi?id=15501) and this patch here by [email protected] (http://bugs.winehq.org/attachment.cgi?id=15361) I made a new patch which is kind of a combination of the two. The patch gets rid of the UI bug (http://bugs.winehq.org/show_bug.cgi?id=13988), the part descriptions not showing bug (http://bugs.winehq.org/show_bug.cgi?id=14818) and the problem with the creature being hidden behind the grass. The problem with there being black squares on the creature when in windowed mode still exists (http://bugs.winehq.org/show_bug.cgi?id=14921). I have run the program over 20 times and it runs every time correctly even if I change all the settings in ConfigManager.txt to "$High".
Regards, Stefan Dösinger These changes may be correct, but they need a test. Take a look at dlls/d3d9/tests/device.c to see how the other tests look. I guess the changes are likely to be correct, but they have to be tested A couple comments about coding style later and Andrew writes in with an interesting question I'm alittle confused, are you suggesting that if SetScissorRect receives a null value that if should default to the window size? or do you mean that perhaps GetScissorRect should call SetScissorRect and return a correct value instead of null? If I understand you correctly it sounds like another problem and I think that checking should still be done on SetScissorRect as currently there is no checking being done where as the documentation states that D3DERR_INVALIDCALL is returned if SetScissorRect gets an invalid or null rectangle. I'm currently rewriting the tests and patch so I'll let you know when I am done. PS: I just looked at wine's implementation of GetScissorRect and it looks wrong as well. It should be returning D3DERR_INVALIDCALL if there is no value and perhaps maybe if scissor test hasn't been enabled. Rico Schüller responds No. {0,0,0,0} is a valid scissorrect. You could set it and get it. It is valid. Wines default scissorect is wrong, it has to be the size of the first swapchains backbuffer. I have a patch for this one. I'll send it later today. |
Summer of code wrap up | Archive | |
---|---|---|
Summer of Code
Maarten Lankhorst writes in with a reminder to submit evaluations for GSoC students:
Hi all,
I would like to request from the mentors to fill in the final evaluation form and from the students to give a final write up: What went well? Did you meet the goals you set? Did you have fun? Is there anything we can do to make wines summer of code better and do you feel like you've become part of the wine community? I also believe that students will have to fill in a final evaluation form as well, so get writing. ;-)
Cheers, Gal Topper: Hi everyone, I'm glad to say that my project to implement PrintDlgEx* went very well, as I've implemented almost everything by the deadline, and have test cases for every meaningful non-interactive scenario, AFAICT. The only feature that I have not had time to implement and test is the lpCallback member (see here: http://msdn.microsoft.com/en-us/library/ms646844(VS.85).aspx ), which is tricky due to the COM involved, and to the fact that there is nothing to test against. The only application that I know of that uses it is Windows Address Book, which does not work in Wine. The up side of this situation is of course that no application is affected by the stubbing of this feature, at least for now. The list of applications that benefit from this new implementation includes mostly Microsoft software, such as IE6 (and probably IE7, for anyone who can get it running in Wine), Paint, and (Microsoft's) Notepad. Bibleworks has also been reported to require this function. Plans for now and beyond: Get all this SoC code committed into trunk, then stick around for whatever maintenance that may be needed, and hopefully find another piece of the codebase that I would like to work on. Overall, this summer of code has been a great learning opportunity for me and a great a experience.
Thank you!
Owen Rudge Hi all, I'd say my project has gone quite well. I've completed the main objectives of my project, including fixing the shell namespace implementation of Control Panel, improving the built-in control panel, and working on some new control panels to improve Wine's configuration options (Add/Remove Programs, plus a new Desktop control panel that I'm just tidying up ready to submit this week). While I will have university-related things to carry on with in September, I'm not intending to disappear completely - I'm hoping to split off and tidy up the multimedia settings in winecfg to its own control panel, too, and then tidy up winecfg a bit, making it more logical by restricting it to panels that are specific to Wine itself. So hopefully you'll still see me around a bit. :-) Overall, I rather enjoyed Summer of Code, and learnt a lot about how to go about getting things done in an open source environment. Thanks to all, particularly my mentor Juan, for help and support along the way! Cheers, Piotr Caban I think that my Summer of Code worked well. My task was to implement SAX reader and fix other bugs from bugzilla. SAX reader is currently complet enough for apps that I've tested. I've fixed many bugs from bugzilla. My main problem was that I couldn't reproduce many bugs. Also there are many bugs that wait for retesting or are not actual. Regards, Piotr Caban Adam Petaccia I greatly enjoyed summer of code, and I would like to think that I emerged a much better programmer than when I started, and yes, it was a lot of fun. A lot of bugs I saw for Gdiplus were installer bugs, so hopefully many more applications are installable under Wine -- but when people discover that there may be even more bugs opened :-) While it can be annoying to have a patchset rejected five times, it's satisfying to fix myself it rather than see "based on a patch from..."; also I love the quality standards and peer-review that Wine has, as that made the code a lot easier to work with, because just about everything was in good shape when I got it, and I hope that the next person who looks at Gdiplus will think so too. I will try to stay a part of the Wine community, but now that Summer of Code is done I have a lot fewer itches to scratch (Quicktime is my new target, but I have no idea how long that will take with school). All in all, its been a blast. I would like to thank my mentor, Lei for helping me when I was completely stuck, Alexandre for dealing with me over IRC when I ask "why?", and everyone else who's posted comments saying "You can't do it like that". Ismael Barros My project didn't go bad, but I was only able to complete around 40% of what I expected to do in the begining, it turned out to be bigger than I thought. I'll try to finish it, but I probably won't be able to start working on it again until mid-september (exams, other projects abbandoned due to GSoC, etc), and then my progress will be much slower. I really enjoyed this SoC, I was able to update my skills and learn to work in a big project. Thanks to kblin and to all the people who reviewed my code and bothered to suggest improvements :) Cheers Dylan Smith I am happy that I got the complete main task that I wanted to get done, which was adding support for tables in richedit controls. There are some finer details that I would still like to finish, such as the selection behaviour within tables. I also need to fix a regression that has come to my attention, and review any of my patches that weren't accepted yet. All of this will be easier to do once I get back to my development computer, since I am still away from my home in Ottawa. I was also able to spend time on plenty of other richedit control issues that weren't related to implementing tables. I found this helped me to get to know the richedit code quite well, as well as the code for wordpad which I often used for ad hoc testing. I did end up spending more time on this than expected, so I decided not to attempt working on windowless richedit controls during the GSoC coding period, however I only mentioned that I would work on windowless richedit controls if sufficient time were available. I have also managed to learn a lot during this project, which was the first open source project that I had contributed to. I have also learned a lot more about development in a unix environment since windows was my main operating system until 9 months ago when forced myself to use linux primarily and confine windows to a VM. I am also glad that I have the opportunity to continue working on Wine, since it is open source. Hopefully I will find enough free time during my Masters to continue contributing to Wine. |
Google's Lively | Archive | |
---|---|---|
Lively
Dan Kegel sent in a modified patch stemming from a bug report for Google's Lively. Nothing about his post is particularly exciting however the bug report itself provides for a pretty insightful read for anybody interested in how the process of making an application work in Wine goes. |
Unreliable Conformance Tests | Archive | |
---|---|---|
Test Suite
As part of the patchwatcher rush certain tests which inconsistently fail began to cause issues. Dan Kegel: So, one of the things one learns when writing a patch robot is that flaky tests are very annoying. Each time it gets a new git tree, the robot does five baseline "make -k test" runs, remembers the tests that fail, and doesn't penalize patches for failing any of those tests. See http://code.google.com/p/winezeug/source/browse/trunk/patchwatcher/patchwatcher.sh#92 Annoyingly, that's not enough. Some tests stubbornly refuse to fail during the baseline test runs. So I added a second, manual blacklist for those tests; see http://code.google.com/p/winezeug/source/browse/trunk/patchwatcher/patchwatcher.sh#63 The list is currently user32:msg.c user32:input.c d3d9:visual.c ddraw:visual.c urlmon:protocol.c kernel32:thread.c and will continue growing as I keep plugging away at getting the patch robot happy. Henri Verbeet and Stefan Dösinger both agreed that some of the d3d test failures are likely due to driver bugs, and that the patchwatcher might have better luck using mesa drivers. The other tests though havn't gotten much attention and are still on the blacklist! |
Weekly AppDB/BugZilla Status Changes | Archive | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AppDB / BugZilla
*Disclaimer: These lists of changes are automatically generated by information entered into the AppDB. These results are subject to the opinions of the users submitting application reviews. The Wine community does not guarantee that even though an application may be upgraded to 'Gold' or 'Platinum' in this list, that you will have the same experience and would provide a similar rating.
Updates by App Maintainers
Updates by the Public
|
All Kernel Cousin issues and summaries are copyright their original authors, and distributed
under the terms of the
GNU General Public License,
version 2.0.