--
---------------
Eric Pouech (
http://perso.wanadoo.fr/eric.pouech/)
"The future will be better tomorrow", Vice President Dan Quayle
Wine Weekly News
All the News that Fits, we print.
Events, progress, and happenings in the Wine community for February
12, 2001 .
_________________________________________________________________
_________________________________________________________________
Keeping track of Wine
_________________________________________________________________
After two weeks away from Wine, Alexandre returned to a truckload of
patches...
* John R. Sheets (CodeWeavers) documented the SGML documentation.
* Andreas Mohr (CodeWeavers) adapted wineconf for the new config
file format.
* Ove Kåven (TransGaming) fixed some DIB section and DGA2 bugs, and
started adding a DirectDraw HAL to the x11drv.
* Marcus Meissner made the PostScript driver able to automatically
find .afm files provided by software like GhostScript and others,
so the user doesn't have to configure .afm file locations
manually.
* James Abbatiello (CodeWeavers) implemented QueryPerformanceCounter
using the Pentium's RDTSC instruction.
*
* Other Workers/Bugfixers: Marcus Meissner (printing, ddraw, misc),
Guy Albertelli (common controls), Lionel Ulmer (ddraw), Jon
Griffiths (locale hashes, shlwapi), Rein Klazes (Malayan locale),
Patrik Stridvall (winapi_check), Duane Clark (print dialog), Peter
Ganten (afm fixes), Lawson Whitney
+ CodeWeavers: Andreas Mohr (various), Huw D M Davies (print
dialog, enh.metafiles), James Abbatiello (shell, common
controls, file mappings), Dmitry Timoshkov (enh.metafiles,
MDI, Unicode), François Gouget (winemaker, Winelib, common
controls), Susan Farley (pager control, window handling),
Chris Morgan (listview/shellview control), Josh DuBois
(portability), Aric Stewart (clipboard), Eric Kohl
+ Macadamian: James Hatheway (multimedia)
_________________________________________________________________
Discussions on wine-devel
_________________________________________________________________
This week, 87 posts consumed 335 K. There were 36 different
contributors, 17 (47%) posted more than once, and 15 (41%) posted
last week too.
The top posters of the week were:
* 6 posts in 26 K by "Patrik Stridvall"
[email protected]
* 6 posts in 22 K by Francois Gouget
[email protected]
* 6 posts in 19 K by gerard patel
[email protected]
* 6 posts in 19 K by Andreas Mohr
[email protected]
* 6 posts in 14 K by Eric Pouech
[email protected]
* 5 posts in 16 K by David Elliott
[email protected]
* 4 posts in 14 K by Alan Chandler
[email protected]
* 4 posts in 13 K by Thomas Flynn
[email protected]
* 4 posts in 12 K by Jon Griffiths
[email protected]
* 4 posts in 12 K by James Sutherland
[email protected]
* 4 posts in 12 K by "Ove Kaaven"
[email protected]
* 3 posts in 7 K by Ulrich Weigand
[email protected]
* 2 posts in 8 K by Huw D M Davies
[email protected]
* 2 posts in 5 K by Uwe Bonnes
[email protected]
* 2 posts in 5 K by "David D. Hagood"
[email protected]
* 2 posts in 28 K by Ian Pilcher
[email protected]
* 2 posts in 11 K by Marcus Meissner
[email protected]
Wine and reverse engineering Announce
Paul Merrell posted an article from PlanetIT about some recent
decisions made in the USA regarding the legal aspects of reverse
engineering ([1]
http://www.planetit.com/techcenters/docs/security/news/PIT20010123S000
1/1?spsubcat=bugs_flaws).
Paul even quoted some part of the article " Hypothetically, similar
efforts taken by others to reverse-engineer Microsoft Windows could be
deemed justifiable if the aim of those efforts were to make other
companies' programs, designed for Windows, run on an operating system
other than Windows. This assumes that the 9th Circuit ruling holds
up.""
In non legal terms, this would mean that Wine developers could
reverse-engineer Windows without fearing some troubles from Microsoft
layers horde.
Robert Cunningham shed some more lights on this matter:
Unfortunately, this decision applies directly only to those bringing
such cases within the California 9th Circuit Court. While other
courts may "take note" of this decision, it has not yet risen to
the level of a "precedent".
Unless, of course, the case gets appealed all the way to the
Supreme Court, they decide to hear it, and they then decide to
affirm the decision. Then (and only then) would the decision
become the law of the land. Until that time, it will likely first
have to be pursued on a case-by-case basis in all other Circuit
Courts. Which means we can expect all similar cases to avoid the
9th Circuit like the plague so long as they have other venues to
run to.
As Paul mentioned in the quote he selected, the key item involves
moving an application to a different platform. Application
"portability" may legally no longer require "porting"! It may
instead allow for "OS Compatibility Layers" to be written instead.
This may also drive a needed wedge into the notion of migrating
applications into the OS, a strategy MS has evolved into a fine
art.
This affects far more than Wine: One project that comes to mind is
MAME (games). There are many more seemingly similar projects that
are NOT affected, such as MOL(Mac-on-Linux), Win4Lin, Plex86,
VmWare and probably several others that actually run the target
OS, not emulate (clone) it.
An extreme interpretation of this decision could be as follows: If
I need a reason to legally clone a new feature in some
market-leading desktop OS, all I need to do is find an app (any
app) that uses that feature, then declare my intent to make that
app run under some other (any other) OS. It does not matter if the
feature being emulated is "documented" or not. Taken further, it
may even be possible to dispose of the specific API used to
implement the feature, and use a different one instead.
Eventually (assuming this decision survives), the courts will see
that ALL such forms of reverse engineering should be legal WITHOUT
the necessity of an app to port.
However, this notion still needs to be more fully explored via
additional cases before its full scope can be determined.
Presently, the scope appears to be very restricted: The article
points out that the DeCSS decision would probably not be affected
in any way. In the current environment, this is probably true. But
what if you can convince the courts to view DVD "content" as a
"program"! While this may seem obviously true to technical folks,
especially those who create multimedia apps and content for a
living, it may take many visits to court to properly communicate
this understanding to the legal system.
Anyway, since most of the available content security systems ARE
software, and MS has already migrated theirs into the latest
versions of Windows, this entire issue already has the potential
to snowball completely out of the control of OS and content
companies, and possibly even Congress itself.
With the major media companies trying to tie software protection
and content protection together under copyright law (via laws such
as DMCA and UCITA), this may be just the wedge needed to pry them
back apart.
This could help Wine in the long term on some legal aspects when
needed. However, as Robert pointed out, this is just a first step, and
many more still have to be made.
PS printer driver and fonts Evolution
After Huw Davies submitted a patch were he hardcoded some font
mappings (from Windows' Courier New to Courier) in the Wine postscript
driver, Ian Pilcher started asking a few questions:
Hmm. I haven't been able to get Courier to scale properly. (It prints
way too large from Lotus Notes.) I was actually thinking of doing
exactly the reverse.
What do you think of the idea of user-configurable mappings, a la
the X font aliases?
Huw agreed that having this kind of substitution list would be a nice
thing. Regarding the scaling issue, Huw continued: " Note if you're
using ghostscript to process the output then the fonts will look about
15% larger, that's because GS's fonts are rather bigger than Adobe's
and you're probably using Adobe's AFMs. Other than that then I'm
seeing Wine's Courier to be about another 15% larger than the output
from Windows."
Gav State added:"Just FYI, the corelwine tree has support for psdrv
font mapping that you might be able to use.
In general, it would be nice to move the psdrv font work that was done
in the corelwine tree into main CVS. While the x11drv/psdrv
cross-dependency issue will have to be fixed, I suspect that it
shouldn't be that hard to convert the FontTastic API calls into
appropriate FreeType calls - there are only 11 places where a
FontTastic API is called, and about 15 more where font properties
specific to the FontTastic font server are accessed - most of which
are just for added accuracy in the calculation of internal and
external leading.
The printing code that's in that tree is really quite good - when we
were testing it, we were often able to hold the Wine generated output
and the Win32 generated output up to the light and see no significant
differences between them. Only after several pages of output would the
cumulative error in character widths build up to the point where
WordPerfect would break a line at a different word.
"
Note: FontTastic is a TrueType server that Corel did embed in its
Linux distribution and allowed the Wine port of the Corel tools to get
information about TT fonts - which still needs to be done in Wine (see
[2]Xfree 4.02 and Winefor more info).
Ian and Huw then discussed the details of the implementation. Ian was
a bit confused with all the possible fonts (and type of fonts like
TrueType, X11 Type1...) and searched a way to help the configuration.
Huw answered "I anticipate that most people will just be happy using
TT/Type1/.fon fonts all served by FreeType and will not bother using
XLFD fonts at all. This makes font configuration quite easy, we just
tell the FreeType font driver which font files we want it to serve and
that's it. The psdrv may still want to substitute builtin type1 fonts,
but that seems to me to be psdrv's role and thus its configuration is
unique to that; this becomes more obvious when you think that the user
may install 2 instances of psdrv that print to different printers
which may have different fontsets installed, therefore font
substitution would be on a printer by printer basis. "
Part of the modifications discussed here have been added to the CVS
tree.
Messages and pointers Issue
Marcus Meissner ran into an interesting issue:
I have an application that handles several text edit controls.
At one point it flips from the first to the second (after you have
entered the fourth character).
This is done by a function, which does (simplified) this:
{
DWORD startsel,endsel;
PostMessageA(hwnd1,EM_GETSEL,&startsel,&endsel);
SetFocus(hwnd2);
PostMessageA(hwnd2,EM_SETSEL,0,0);
/* ... */
CallWindowProcA(hwnd,....);
return;
}
According to the +relay,+edit trace the EM_GETSEL is executed way
_AFTER_ the return from the function, so, since it uses
stackvalues, it then smashes the stack somewhere else.
Ove Kaaven proposed a possible explanation: I
remember Ulrich have been talking about [3]message parameters
conversion ; there's the possibility that Windows recognizes that
it's a message known to contain pointers, and so just drops the
message, so that EM_GETSEL is simply never dispatched?
Ulrich Weigand gave some further explanations:
Yes. EM_GETSEL is classified as 'pointer message', and the 32-bit
PostMessage in Win9x simply drops it. (The 16-bit PostMessage
doesn't appear to care, but if a 16-bit message with pointers is
about to be received by a 32-bit app, the Get/PeekMessage call
drops the message...)
You get DebugOutput messages like "PostMessage: ignoring posted
message with pointer"
or
"GetMessage: ignoring retrieved message with pointer"
when this happens.
Later on, Marcus implemented the dropping of messages with pointers.
Importing Wine to North America Report
Well, WWN normally doesn't cover the OffTopic mails. But we'll do an
exception this week. Wine-devel was posted with the following message:
"I found your benchmark... it wasn't exactly what I was looking for,
but do you maybe have an idea on how I can find information about the
demand for wine in Canada, or North America on the internet? I'm
writing my thesis on importing german wine to Canada and need to go
over the demand part too of course. "
This of course produces lots of sarcasm from the developers. Andreas
Mohr started with: "I just had to approve this one. It's just way too
funny :-) "Wine benchmark"... ROTFD (ROTF drunkenly)"
Eric Pouech (from France) kept going on with the sarcasms "hmmm I
ROTFL:ed mainly because of "German Wine"... isn't that on oxymoron ?."
This, of course, fired some discussion about Germany being able to
produce some rather good Wine, and beer too...
Anyway, all the Wine team wishes the best of luck to this fellow with
his thesis...
Startup directory and resulting behavior Issue
Alan Chandler popped up some nasty behavior:
I am trying to debug a game called Grand Prix Legends, running on Wine
with the TransGaming patch. If just spent all day getting nowhere
in winedbg because I couldn't get hold of what the game was doing.
If I cd to the directory in which the game is installed (ie
~/win/sierra/gpl) and then run
wine gpl.exe
The program starts and fills the whole of my screen with a single
black window. It sits there until I move the mouse, at which time
it exits.
I have just discovered that if I cd to the root of my c: drive (ie
~/win) and then run
wine c:\sierra\gpl\gpl.exe
The program starts and I get a 640x480 window with the correct
startup screen (I have "Desktop" = "640x480" in my config file).
It is not managed (even though I have "Managed" = "Y" in my config
file). However the program appears to partially work - in that
* The program responds to the mouse when I click on the correct
parts of the screen,
* It runs a race with computer AI cars when I tell it too.
Gav State was puzzled but somehow confirmed the issue:
I can't think of why this is happening, but I can confirm that we've
seen this with a few other programs, including 3DMark2000. I don't
believe that it's an issue particular to the TG patch, but I don't
know of any examples of this happening with, say, a pure OpenGL
game that doesn't require the TG patch.
The discussion then evolved in some more detailed explanation on
graphics integration in Wine. But the problem describe here shall have
to be looked at.
Credits: [4]Doug Ridgway, [5]Eric Pouech, and [6]Ove Kåven.
_________________________________________________________________
References
1.
http://www.planetit.com/techcenters/docs/security/news/PIT20010123S0001/1?sp...
2.
http://www.winehq.com/News/2000-52.html#2
3.
http://www.winehq.com/News/1999-48.html#2
4. mailto:
[email protected]
5. mailto:
[email protected]
6. mailto:
[email protected]