WineHQ

World Wine News

All the news that fits, we print.

12/30/2007
by Zachary Goldberg
Issue: 337

XML source
More Issues...

This is the 337 issue of the Wine Weekly News publication. Its main goal is to explain some updates from this weeks 0.9.52 release. 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, 100 posts consumed 131 K. There were 41 different contributors. 21 (51%) posted more than once. 22 (53%) posted last week too.

The top 5 posters of the week were:

  1. 10 posts in 12K by julliard at winehq.org (Alexandre Julliard)
  2. 9 posts in 10K by dank at kegel.com (Dan Kegel)
  3. 8 posts in 11K by rmh at aybabtu.com (Robert Millan)
  4. 6 posts in 9K by winehacker at gmail.com (Steven Edwards)
  5. 4 posts in 4K by alexd4 at inbox.lv (Alexander Dorofeyev)

News: Wine 0.9.52 Released Archive
Wine Release

Wine 0.9.52 release with some noteworthy fixes (more on these further in this WWN). But first, the Julliard short log:

This is release 0.9.52 of Wine, a free implementation of Windows on Unix.

What's new in this release:
  - Improved graphics tablet support.
  - Support for RPC context handles.
  - Fixes for some longstanding screen depth issues.
  - Implementation of "My Network Places" shell folder.
  - Lots of bug fixes.

Tablet support and the screen depth issues will be covered in more detail in this issue of the WWN.

Given that its holiday season activity has slowed a tad (for both the devs and the editor) and hence this wwn may be a bit shorter than normal.


Bug #2680 (24/32 bit depth reporting) Fixed Archive
Bit Depth

"Wine Bug #2680: Wine should report 32bit color depth instead of 24bit"

Colors are stored by the computers with different formats and different numbers of bits (1s and 0s) per color and per pixel (bpp). There also exists the concept of "bit depth" which is the total number of bits actually used for the RGB colors. The problem is that often times a bit depth of 24 bits (8 bits per color) will often be reported as 32 BPP because its actually stored as 32 bits. The extra 8 bits are sometimes used for alpha data. X naturally reports 16/24 bit depth, even though sometimes it uses 32 bits. 24 bits is the actual amount of data stored and is what X reports. Windows apps however, often expect a bpp of 32 to be reported.

This would seem like a simple fix, just report 32 whenever we have 24 set. However throughout the GDI code there was an assumption that bpp == depth. This has only recently been fixed by Stefan Dösinger allowing the reporting change to go through; fixing the bug. Huzzah!

I sent a patch that should fix those issues, and it was committed today. Can you try it with current git? I do NOT mean 0.9.51, this is one commit wave older, but the current git code from today.


This should fix all apps that expect 32 from GetDeviceCaps(BITSPIXEL). I don't know if there are any other causes of 32 bit confusion, but if there aren't any, then yes, it should fix all those bugs.

It will not fix 15/16 bpp confusion, but it should be easier to fix now.

I am waiting for the first regression reports to come in...

Thus far I havn't seen any (regressions) however this fix was just published with Wine 0.9.52. So we'll keep an eye out!


Tablet Pen/Eraser/Pressure support Archive
wintab.dll

Jeremy White has done a lot of work recently to restore support for tablet input within wine. His biggest test bed was in Photoshop, and getting all the different kinds of input working correctly in there. After what must have been at least 30 patches he writes in with the following summary of progress of wintab.dll.

Hi Folks,

Okay, I've now spent some time putting some love into wintab.dll, and I've now gotten to the point where Photoshop 7 works properly, no matter what order your X devices are in.



I've also improved behavior of a number of other test programs I worked with as I struggled with Photoshop.

But now I'm done, because Photoshop tilt + pressure work again. (Yay!)

I thought I'd reprise my current understanding for future posterity.

First, there are 2 immediate changes that are clearly appropriate to make:

  1.  We should strip out devices like mice and such.

      Otherwise, anyone with more than 1 mouse is going to appear to
      have a tablet with 1 cursor.  A simple exclusion of devices without
      'Wacom' or stylus/cursor/eraser in either their name or type should suffice.

  ..
  Finally, from a 'big picture' perspective, wintab.dll could really use some
  serious love.  Further, it's a fairly straight forward process.  This would
  make a really good beginner project.  You just need a tablet, mostly.

  I think the appropriate next step is for someone to write a comprehensive
  tablet test utility, to run both on Windows and to compare under Wine.

  That's the next step imho.

Jeremy was also gracious enough to go through the previous wintab.dll todo list and check off the fixed issues

> *No eraser. Haven't yet cracked what enables the eraser.

  Should be fixed.
...
> ***In Photoshop 6.
> *Can only get tablet data in desktop mode: This is because the tablet
> context is attached to the desktop. Which generates/receives no wine
> events outside desktop mode.
> * Eraser and pen pressure working. *But* to get them working, you must
> have 3 XInput devices listed in your XF86Config file, They need to be
> the last entries in the "ServerLayout" section and the following order ...

  This should be fixed.

> 1. Improve configuration of wintab.
> ...
> 4. Unicodify

  Done, I think.

> 2. How Painter detects the eraser.
> Have 3 possibilities
>     i. Windows can detect an eraser, and sends specific messages.
>         (I'm sure I've seen this, but can't work out where!)
>     ii. Only works if tablet and cursors are named correctly.
>         (Probably linked to wacom tablets only).
>     iii. I've missed something

   It's all the cursor number; 0 is 'puck', 1 is 'stylus', and 2 is 'eraser'.


Cheers,

Jeremy White


Wine as root and SOCK_RAW Archive
ICMP

ICMP , Internet Control Message Protocol, is built into the Linux Kernel and is used in part by WINE. For most things there is no trouble using ICMP as a normal user (hence things like ping can mostly be run by everybody). However, you'll notice certain internet actions (such as ping -f, flood) require super-user privileges as they could be used for malicious purposes. Inevitably some windows applications will require a normal usage of ICMP and hence will not need access to the parts of ICMP that require superuser (in particular, SOCK_RAW ) and some will need these privileges. This results in some unfortunate users being yelled at to run WINE as root:

I tried to update the Ocean application as outlined in bug 8332 and got a message from the console stating I needed to be running as root for ICMP to work.

I should re-iterate before I continue, it is NOT recommended to ever run WINE as root. The policy of only giving privileges as necessary is important.

Anyway, back to the good stuff: some users will get this warning for such applications. They are left with only two options (as well outlined by Juan Lang)

So to be clear: we strongly recommend against running Wine as root. But you sometimes need to run Wine as root in order to do certain things on Linux, e.g. open raw sockets. The solution: don't run applications that want to do those things, or take it up with the Linux kernel developers.

Now if that were the end of the story, this wouldn't be a very helpful WWN article now would it? Saulius Krasuckas has written in with some solutions (mostly involving patching the kernel) to this problem that don't require you to run wine as root.

Well, there are already patches which modifies it in one way or another. I refer to "man 7 capabilities" or web resources [1]-[3]. Some of approaches may be abandoned already, but I see recent discussion [4] on this and by [5] I judge SELinux already can handle this task.

Plus, I have found some recently updated tool called "Filesystem capabilities for linux" which also is not POSIX compatible (and so were old capabilities implementation for linux kernel):

| With this patch, you will be able to grant selective privileges to
| executables on a needed basis. This means for some executables, there is
| no need anymore to run as root or as a suid root binary.
|
| For example, you may drop the SUID bit from ping and grant the
| CAP_NET_RAW capability:
|
| # chmod u-s /bin/ping
| # chcap cap_net_raw=ep /bin/ping

If this is acceptable solution, then it probably would be nice for Wine to have separate binary for every needed capability. CAP_NET_RAW (for ICMP), CAP_SYS_RAWIO (for IO ports) and CAP_SYS_NICE (for threads priority) comes to mind.

This plan is to don't force users to give the bunch of capabilities to the main Wine binary (or even several of them) at once (so the security risk should be increased in a minimal way). But well, that could be a minor nuance for such users.

[1] http://www.securityfocus.com/infocus/1400
[2] http://lwn.net/Articles/79185/
[3] http://lwn.net/Articles/199004/
[4] http://lkml.org/lkml/2006/9/18/100
[5] http://lwn.net/Articles/79208/
[6] http://www.olafdietsche.de/linux/capability/


Game slowdowns? GLSL and ARB Shaders Archive
Speeding up older games

On some games you may have noticed some slowdowns since wine 0.9.49. If you recall, as highlighted by WWN 333, it was in this release that wine now uses GLSL shaders by default (the regkey UseGLSL = enabled by default). GLSL shaders allow for the use of modern shading techniques which is needed for many more modern games. However, GLSL shaders have some added complexity in compiling/linking and can be slower than ARB. WINE devs will continue to mature and speed up the GLSL code, however for games which have experienced slowdowns with GLSL enabled that don't need modern shading effects it may be wise to set UseGLSL = disabled for improved performance.


AppDB Application Status Changes Archive
AppDB

*Disclaimer: This list of changes is 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

Application Old Status/Version New Status/Version Change
Hearts of Iron II Doomsday Silver (0.9.40) Garbage (0.9.50)
-2
Capitalism Plus 1.0 Gold (0.9.17) Silver (0.9.51)
-1
Virtua Tennis PC 3 Bronze (0.9.41) Gold (0.9.51)
+2
Jedi Knight - Mysteries of the Sith 1.0 Bronze (0.9.29) Garbage (0.9.51)
-1
NHL 2004 1.0 Silver (0.9.10) Garbage (0.9.51)
-2
Heroes of Might and Magic III G4U (Czech) Silver (0.9.36) Garbage (0.9.51)
-2
Scorcher Demo Garbage (0.9.38) Platinum (0.9.51)
+4
Family Tree Maker 2006 Bronze (0.9.50) Garbage (0.9.51)
-1
Bloodshed Dev-C++ 5 Beta (4.9.9.2) Gold (0.9.49) Platinum (0.9.51)
+1
Dreamweaver MX 2004 Platinum (0.9.50) Garbage (0.9.51)
-4
EVE Online 4.10.x Premium Garbage (0.9.50) Gold (0.9.51)
+3
Photoshop CS2 Platinum (0.9.50) Silver (0.9.51)
-2
Maya PLE 8.5 Garbage (0.9.49) Gold (0.9.51)
+3
Rally Championship 2000 PATCH 6 Bronze (0.9.35) Platinum (0.9.50)
+3
Total Change
+1

Updates by the Public

Application Old Status/Version New Status/Version Change
Enter the Matrix 1.52 Garbage (0.9.37) Platinum (0.9.51)
+4
Rollercoaster Tycoon 3 1.00 Platinum (0.9.50) Garbage (0.9.51)
-4
The Elder Scrolls IV: Oblivion 1.2 (Shivering Isles) Garbage (0.9.49) Silver (0.9.51)
+2
S.T.A.L.K.E.R. : Shadow of Chernobyl 1.x Garbage (0.9.47) Silver (0.9.51)
+2
Soldat 1.4.x Silver (0.9.50) Bronze (0.9.51)
-1
Max Payne 2: The Fall of Max Payne 1.x Platinum (0.9.50) Gold (0.9.51)
-1
The Settlers II: 10th Anniversary 1.11757 GER Silver (0.9.39) Gold (0.9.51)
+1
Flash MX 2004 Garbage (0.9.47) Platinum (0.9.51)
+4
DVD Profiler 3.0.x Garbage (0.9.43) Gold (0.9.50)
+3
Total Annihilation Total Annihilation + Core Contigency + Battle ... Platinum (0.9.32) Garbage (0.9.49)
-4
Call of Cthulhu: Dark Corners of the Earth 1.0 Silver (0.9.42) Bronze (0.9.49)
-1
Guild Wars All Versions Gold (0.9.51) Bronze (0.9.52)
-2
Wakeboarding Unleashed featuring Shaun Murray Demo Garbage (0.9.25) Gold (0.9.50)
+3
FlatOut 2 Demo Silver (0.9.44) Gold (0.9.49)
+1
EverQuest 2 Silver (0.9.51) Garbage (0.9.52)
-2
Vangers: One for the Road zMod 1.X eng/rus Silver (0.9.36) Garbage (0.9.52)
-2
Photoshop CS (8.0) Gold (0.9.41) Platinum (0.9.51)
+1
Silkroad Online 1.x Gold (0.9.49) Platinum (0.9.51)
+1
World in Conflict 1.0 Bronze (0.9.45) Gold (0.9.46)
+2
Live For Speed S2 Gold (0.9.36) Platinum (0.9.52)
+1
Amazing Aventures The Lost Tomb 1.0.0.4 Garbage (0.9.46) Bronze (0.9.51)
+1
Total Change
+9

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.