Stefan Dösinger wrote an extensive summary of the talks at WineConf this month. He also recorded some Videos and did all the postprocessing to make them enjoyable online. We thankfully include it in this WWN:
On November 12th and 13th the Wine developers and a few users met in St. Paul, Minnesota for the annual project meeting WineConf. The conference featured technical presentations and discussions about changes to the way Wine’s development processes work. This renewed installment of World Wine News gives a short summary of the discussions and agreed decisions.
Alexandre Julliard: Keynote
You can see the keynote here!
Following the tradition, WineConf was kicked off by Alexandre Julliard, the maintainer and Benevolent Dictator for Life of Wine. After giving a slightly different keynote last year, he went back to his old keynote template full of statistics and commit graphs. It was delightful to see that the number of commits increased again last year, after being in decline for a while, even though it is still far away from where it used to be around 2010. The new patch sign off system is working well, and the experiences with the staging branch have been positive. Discussing the impact of these changes in detail was moved to separate sessions and is described in this summary in separate sections. The Wine developers decided to switch to time-based releases last year, so a code freeze will come soon, and Wine 2.0 will be released most likely in December or January. The expected main areas of development after 2.0 will be Aric’s HID support, the ongoing DirectX 11 work. Alexandre was hoping to merge the Android code CodeWeavers was working on before 2.0, but decided to postpone it because integrating the Java parts into the build system proved to be difficult.
Aric Stewart: HID Support
Aric Stewart presented his work on supporting the Windows human interface device layer in Wine. This is a low level interface that allows applications to talk to devices like joysticks, keyboards, gamepads, etc. Few applications use it to use joysticks, instead they use higher level libraries like DirectInput or XInput, which then talk to this lower level layer. Wine currently supports DirectInput, so joysticks and gamepads work in many games. Unfortunately XInput is missing. Aric’s plan is to provide the low level hid.dll and (re-)implement dinput and xinput on top of it. This puts all operating system abstraction code (Linux, OSX, Android specific joystick handling) into hid.dll and allows applications that talk directly to hid.dll to work. Those applications are rare, but they exist.
You can see Aric’s full presentation here!
Aric also sent a mail explaining the current status to wine-devel:
This means that applications that use hid.dll or direct device access to HID devices will start seeing and being able to interact with devices. This is very exciting but is just the very first step. Of course any application trying to do HID directly would be a wonderful test case, I am sure there are many many things that will need to be refined and added before a real application starts being happy….
Looking forward, the hope is that then we will be able to build RawInput support on top of HID, and also dinput and xinput support as well. As a fun challenge I have been working to get native dinput from DirectX 9 to work on Wine on top of HID and it is moving forward much better than I expect, with a lot of hacks at present. (native Dinput sees the gamepads and even start trying to read them, but current is not getting reports properly)
You can see the update here!
Jeremy White gave an update on CodeWeavers and its involvement in Wine: CodeWeavers had some ups and downs. They spent a lot of time last year on Android and had some business opportunity in China that didn’t work out. Google announced that Chromebooks would run Android apps, which is a very welcome development because they use a mouse and keyboard and mostly have Intel CPUs, which makes them a much better target for Windows applications than phones and tablets. Sadly the consumer sales are declining. The porting business is strong and increasing, which excitingly was the original business model behind CodeWeavers’ Wine engagement. Exciting opportunities in the pipeline that Jeremy White cannot talk about in detail yet. The company turned 20 this year, so next year it gets to drink 🙂 . [Under the rather strict US liquor laws.]
Consumer sales are about 10% Linux and 90% Mac, but there are some larger corporate customers that pay for Linux. Business interest in Linux is slightly increasing as companies migrate away from Windows XP or want to run Windows applications on embedded systems. CrossOver Android is in the Play Store as a technology preview. It is available for signed up beta testers only, and only works on tablets with an Intel CPU because Qemu is too slow to run applications in a useful manner on ARM-based tablets. Various companies have impressive ARM emulation demos, but they don’t hold up to closer scrutiny. Sadly Intel recently announced that they are dropping out of the mobile business. The bright side for CrossOver Android are Chromebooks, as mentioned above. Jeremy White says CodeWeavers should probably do a better job announcing its contributions to Wine, and crediting customers for key contributions. On the other hand, CodeWeavers overshadows Wine’s development already and Jeremy would love to have more non-CW contributions to Wine and a more widespread community. Due to having financial resources and being able to pay developers CodeWeavers can do the really tricky and annoying work, for example getting the copy protection and activation of Microsoft Office 2013 to work.
Rosanne Dimesio gave an update of problems Wine users are facing and their most requested features. The most common request is support for the newest game. [Which, sorry, is a moving target and really hard to do]. A common issue is the lack of packages for stable branch in some distributions. Users are happy with the support of Microsoft Office 2007 and 2010. Few users want newer versions so far, because people who invest money into MS Office usually stay with this version – which is why we still have users running Office 97. This is likely to change when Microsoft breaks file format backwards compatibity.
Support for USB devices (especially HID) is a recurring source of pain. Aric’s work will hopefully help here.
Spammers are a constant problem on the forum and wiki. The wiki has been locked down and users have to request edit permissions before being able to edit. The captchas on the forum help against bots, but there are human spammers that can get past them.
Rosanne could really use help from other people with answering questions on the forum. There are some people who help (Thanks!), but more would be very welcome. We should probably do a better job explaining how non-coders can help out.
We want more users attending WineConf to get their perspective. For next year we will try to announce this in a better way. WineConf is open to everyone, users are very welcome! We would also like the input of people who develop software around Wine like PlayOnlinux. Travel sponsorship is available too, contact us if you would like to come and money is an issue for you.
If you want to represent Wine at an event or Linux user group near you please get in contact with us. Travel sponsorship is available for this too 🙂
Sign-Off change review
There was quick consensus that the Sign-Off system is a major improvement. It allows people to send patches originally written by other people and maintain authorship information. Sebastian Lackner has brought in many patches from wine-staging, and Andrew Eikum has fixed and submittet Maarten Lankhorst’s pulseaudio driver.
Erich Hoover gave an update on the state of the staging branch. Unfortunately Sebastian and Michael, the main maintainers of this branch, couldn’t come due to their time constraints.
Sebastian is doing most of the work and is turning into their Alexandre. He has been working very hard on getting things reviewed properly on wine-devel and make patches go into Wine directly. The number of commits that go into staging is declining, which is a win because it reduces the maintenance burden.
Existing patchsets in staging slowly make it into Wine. Two big sets that did not, so far, are the multi-threaded command stream and the Vulcan wrapper.
The overall consensus is that the staging branch is helping Wine. It is a place that collects unfinished patches. Those patches often point out ways to fix bugs (Jeremy called them breadcrumbs), and we really want to have this information, even if their author does not want to see them to conclusion. The staging maintainers try to provide incentives for people to finish the patches rather than just dropping them off.
Staging also provides a place to test in-development work and catch bugs early.
Stefan: Quit CodeWeavers about a year ago and moved to a different job, but is still hanging around Wine. Fixed a bunch of tests over the past year, and fixed two bugs that fell in line with the tests. Benchmarks not running because computers are sitting in a corner because doesn‘t have enough space in the shared house in Staines.
Józef is working on DirectX 11: A lot of work got upstreamed in the past months, but there are still many missing features. Compute shaders are missing, as are many view types. It also needs Matteo’s GL core context work on many drivers, which depends on the blitter rework Stefan was working on before he left. However, some games start showing signs of life. During the conference Andrew Wesie sent a set of patches to make Blizzard’s Overwatch run. In a way it also depends on the command stream, which would be very helpful to have tfor deferred contexts. [Editor’s note: Józef’s statement was deciphered from a really quiet recording with lots of background noise. It may be inaccurate in some parts.]
Henri is working on upstreaming the multithreaded command stream (Currently it’s in staging, but not the master branch). He wasn’t at WineConf, so we couldn’t really come to a conclusion when that work will be finished. It depends on Henri’s other tasks, CodeWeavers keeps dropping work at him that needs to be finished yesterday. Henri has made progress in the past months, merging the patches that unify 2D, Cube and Volume textures into one texture resource, but merging textures and buffers into one common resource is missing, and the blitter support in the current command stream code is a mess. The ETA depends on where Henri wants to go exactly.
In 2012 and 2013 we experimented with joining FOSDEM to attract people who are not long-standing Wine developers to join the talks. This was successful in many ways, but we felt that it made discussing internal matters like the patch acceptance process more difficult. For this reason we went back to a “classic” WineConf in 2015 and 2016 and were again stuck with the feeling that it’s just the same people attending every year.
To address this we will try to more actively invite people from outside wine-devel. As mentioned in the User Support part of this summary, we would enjoy having more users of Wine around, and people who are building front-ends around Wine.
The next WineConf will in all likelyhood be in Poland, hosted by Jacek and Piotr Caban, and it will be somewhen in Fall 2017. If you are interested, come! We will announce more details once we have a specific date and exact location and hopefully won’t forget to announce it beyond wine-devel 🙂
The newest CodeWeavers coupon promo code is ( CXNOW ) save 30% off CrossOver Mac or Linux today!