wn20030725_180.xml Happy (belated) Birthday, Zack. -brian
<?xml version="1.0" ?> <kc> <title>Wine Traffic</title> <author contact="http://www.theshell.com/~vinn">Brian Vincent</author> <issue num="180" date="07/25/2003" /> <intro> <p>This is the 180th release of the weekly Wine Weekly News publication. Its main goal is to circumvent the proofreading process so that small grammatical errors will keep the reader attentive. It also serves 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 Wine 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 <a href="http://www.winehq.com">www.winehq.com</a></p> </intro> <stats posts="240" size="771" contrib="52" multiples="34" lastweek="37"> <person posts="32" size="90" who="Mike Hearn" /> <person posts="30" size="72" who="Alexandre Julliard" /> <person posts="18" size="42" who="Dimitrie O. Paun" /> <person posts="17" size="39" who="Jonathan Wilson" /> <person posts="13" size="55" who="Steven Edwards" /> <person posts="12" size="40" who="Dmitry Timoshkov" /> <person posts="7" size="35" who="dd jj" /> <person posts="7" size="23" who="Vincent Béron" /> <person posts="7" size="23" who="Ove Kaaven" /> <person posts="7" size="18" who="Todd Vierling" /> <person posts="6" size="19" who="Jon Bright" /> <person posts="5" size="18" who="Gregory M. Turner" /> <person posts="5" size="16" who="Shachar Shemesh" /> <person posts="5" size="14" who="Robert Shearman" /> <person posts="4" size="19" who="Francois Gouget" /> <person posts="4" size="11" who="Troy Rollo" /> <person posts="4" size="9" who="Dustin Navea" /> <person posts="3" size="10" who="Brian Vincent" /> <person posts="3" size="9" who="Pierre d'Herbemont" /> <person posts="3" size="7" who="Dan Kegel" /> <person posts="3" size="7" who="Kelly Leahy" /> <person posts="3" size="7" who="Marcus Meissner" /> <person posts="3" size="7" who="Tom" /> <person posts="3" size="5" who="E Lea" /> <person posts="2" size="51" who="Mike McCormack" /> <person posts="2" size="29" who="Michael Günnewig" /> <person posts="2" size="6" who="Alex Pasadyn" /> <person posts="2" size="6" who="ahmed hafez" /> <person posts="2" size="6" who="Uwe Bonnes" /> <person posts="2" size="5" who="Jeff Smith" /> <person posts="2" size="4" who="Eric Pouech" /> <person posts="2" size="4" who="Saulius Krasuckas" /> <person posts="2" size="4" who="BiGgUn" /> <person posts="1" size="3" who="Stefan Leichter" /> <person posts="1" size="3" who="Lionel Ulmer" /> <person posts="1" size="3" who="Vitaliy Margolen" /> <person posts="1" size="3" who="Michael Stefaniuc" /> <person posts="1" size="3" who="Joel Carr" /> <person posts="1" size="3" who="OverrideX" /> <person posts="1" size="2" who="Bill Medland" /> <person posts="1" size="2" who="Sylvain Petreolle" /> <person posts="1" size="2" who="Stefan Jones" /> <person posts="1" size="2" who="Dan Timis" /> <person posts="1" size="2" who="Boaz Harrosh" /> <person posts="1" size="2" who="Rein Klazes" /> <person posts="1" size="2" who="Christoph Frick" /> <person posts="1" size="1" who="Jon Griffiths" /> <person posts="1" size="1" who="Jakob Eriksson" /> <person posts="1" size="1" who="Omer Sahin \(Link Bilgisayar\)" /> <person posts="1" size="1" who="Johan Gill" /> </stats> <section title="News: Interview with Jon Griffiths, TransGaming Beta Program" subject="News" archive="http://www.winehq.com/?interview=10" posts="4" startdate="07/19/2003" enddate="07/25/2003" > <topic>News</topic> <p> <a href="http://www.winehq.com/?interview=10">Jon Griffiths</a> took a moment to answer some questions. That was our 10th interview with Wine developers. Previous ones can be found in the <a href="http://www.winehq.com/?news=archive">news archive</a>. </p> <p>TransGaming announced <a href="http://www.transgaming.com/showthread.php?news=76">June's voting results</a>:</p> <quote who="Transgaming"><p> Here are June's top-ranked technology poll items: <ul> <li>DirectX 8 Support: Direct3D </li> <li>Improve overall sound support </li> <li>Improve 3D performance </li> <li>Windows Installer Support </li> <li>Support Older Games </li> <li>Optimize WineX's memory utilization </li></ul></p><p> And some of the top-ranked and top-voted games included: <ul> <li>Battlefield 1942 </li> <li>Grand Theft Auto: Vice City </li> <li>Elder Scrolls III: Morrowind </li> <li>Command and Conquer: Generals </li> <li>DeusEx </li> <li>Enter the Matrix </li></ul></p></quote> <p>Also announced was a <a href="http://www.transgaming.com/showthread.php?news=77">new beta testing</a> program:</p> <quote who="Transgaming"><p> Because many of you have requested it, TransGaming is launching a beta testing program this fall for its WineX and Point2Play technologies. This offer is available to TransGamers only. TransGaming's beta testers will be able to look under the hood at the newest features before anyone else; experience the thrill of the chase discovering and reporting bugs; and help develop what could have far-reaching benefits for TransGaming's other users. </p></quote> <p>Andi Mohr got mentioned on Slashdot for the work he's doing on <a href="http://acx100.sourceforge.net/">TI ACX100 wireless</a> drivers for Linux. Andi's name was linked to his <a href="http://www.winehq.com/?interview=6">WineHQ interview</a>. That interview was from a few months ago and at the time the driver was barely working. From the sounds of it there's been a lot of progress. Maybe he'll wrap that project up and get back to Wine ;) </p> <p>There was a brief mention of Wine over at Independent.co.uk. Charles Arthur wrote an article about trying out Linux. Several people responded to his evaluation with tips for improving his experience. Among them, several people <a href="http://news.independent.co.uk/digital/features/story.jsp?story=424830"> suggested</a> using Wine to interoperate with Windows apps. </p> <p>I'd also like to point out that I didn't cover some threads about OLE / COM this week. Mike Hearn seems to be taking a crash course in OLE and there was a fair amount of traffic exchanged between the COM gurus. I didn't understand a lot of it so I just ignored the threads. If you enjoy that sort of masochistic stuff you'll find it all in the <a href="http://www.winehq.com/hypermail/wine-devel/">wine-devel archives</a>.</p> </section><section title="Project List" subject="which of these should I work on?" archive="http://www.winehq.com/hypermail/wine-devel/2003/07/0505.html" posts="5" startdate="07//2003" enddate="07//2003" > <topic>Project Management</topic> <p>It's been a while since we've posted a list of projects you could get involved with. For the most part that's due to the new <a href="http://www.winehq.com/?page=janitorial">janitorial</a> and <a href="http://www.winehq.com/?page=fun_projects">fun projects</a> pages on WineHQ. This week Jonathon Wilson wanted to start working on something and he posted his list asking for feedback:</p> <quote who="Jonathon Wilson"><p> After looking at all the things windows provides, I have identified the folowing possible programs that I could write for the wine project. Some of them are usefull for WINE itself and some of them might be usefull for (for example) ReactOS </p><p> Things: <ol> <li>improve comdlg32.dll, implement stuff added in WINVER>=0x500 like PrintDlgEx and generally make comdlg32.dll behave more like the windows counterpart (implement a few other things as well, like some of the currently stubbed out items).</li> <li>work on wine notepad. Wont do this until the changes refered to before are merged.</li> <li>write a clone of fontview.exe (windows font sample viewer). This is probobly not usefull for WINE but might be usefull for ReactOS, plus it would be a good excercise in windows GDI programming.</li> <li>write clones of guidgen.exe and/or uuidgen.exe, 2 different windows SDK tools for generating GUIDs/UUIDs. (if we are providing an IDL compiler and other such OLE-esque things, having a GUID/UUID generator is probobly a good thing to have, mainly it is just a stub around a call to CoCreateGUID</li> <li>write a clone of rebase.exe, a win32 PE image rebasing tool. Probobly not usefull to WINE but might be helpfull for ReactOS development, dont know.</li> <li>writing a clone of the cards.dll used by the windows card games. Only problem here is that I would need to find a sutably licenced set of card images since I dont have the skills to draw them myself :)</li> <li>writing a clone of the card games (solitare,freecell etc) included with windows to use said cards.dll (hey, we have WineMine...)</li> <li>writing a character map applet (basically a clone of charmap.exe). Dont know if WINE needs this but ReactOS probobly does (how else are you going to insert all those fancy foreign language characters and dingbats? :)</li> <li>writing a calculaor app (i.e. a calc.exe clone), again dont know if WINE needs one but ReactOS might...</li> <li>writing a clone of the Win32 volume control applet. Dont think WINE needs this (since the linux sound API has one already) but ReactOS might...</li> </ol></p><p> Which of these should I work on? Which of these are usefull to Wine/ReactOS? Are any of these considered "a big beast" (as richedit was refered to by Dimitrie O. Paun?) </p></quote> <p>A few people wrote in to discourage working on anything that already exists in the open source community. Jonathon went ahead and started work on #4 and created a program that generated GUID's (see the thread below for details.) From there, Jonathon announced that he would begin work on a cards.dll. I volunteered to do some of the artwork. </p> </section><section title="A GUID Generator" subject="new utillity for wine, genguid" archive="http://www.winehq.com/hypermail/wine-devel/2003/07/0260.html" posts="4" startdate="07/22/2003" > <topic>Utilities</topic> <p>Jonathon Wilson wrote a utility to generate <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcemain4/html/cmconGUIDsUUIDs.asp">GUID</a>'s - globally unique identifiers. Microsoft actually ships a utility like this.</p> <quote who="Jonathon Wilson"><p> Basically, its a console app that will generate GUIDs using CoCreateGUID. All output is to STDOUT. Will return 1 if there is an error, 0 if there is success. </p><p> Ouput is in one of 5 formats: <ol> <li>IMPLEMENT_OLECREATE macro definition</li> <li>DEFINE_GUID macro definition</li> <li>static const GUID definition</li> <li>registry format {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}</li> <li>uuidgen.exe output format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</li> </ol></p><p> The makefile and stuff were just copied from /programs/expand. </p></quote> <p>Alexandre looked it over and decided not to add it to Wine, <quote who="Alexandre Julliard"> It looks good, but I'm not convinced we really need that in Wine, there are Unix tools that can generate UUIDs. </quote></p> <p>However, Jonathon's effort wasn't wasted. Steven Edwards replied, <quote who="Steven Edwards"> I will go ahead and merge this in to the ReactOS rosapps tree. </quote></p> </section> <section title="Bitmaps in Resource Files" subject="what is the 'correct' way to put a bitmap into a resource file?" archive="http://www.winehq.com/hypermail/wine-devel/2003/07/0584.html" posts="4" startdate="07/23/2003" > <topic>Graphics</topic> <topic>Winelib</topic> <p>Jonathon Wilson asked a question that would be unfamiliar to most Unix developers, <quote who="Jonathon Wilson"> I see that all the wine dlls put the bitmaps in the resource file directly... Whats the best way to do it for a 32 bit wine dll (in this case cards.dll) amd where can I find a program to do it for me?</quote></p> <p>Dimi Paun replied with an example:</p> <quote who="Dimitrie Paun"><p> Try the tools/bin2res program. It's use is a bit unintuitive, but essentially you need to add some markers (in comments) in the .rc file. </p><p> Look for an example in: <ul><a href="http://cvs.winehq.com/cvsweb/wine/programs/winecfg/winecfg.rc?rev=1.3&content-type=text/x-cvsweb-markup"> ./programs/winecfg/winecfg.rc</a></ul> </p><p> search for BINRES.</p></quote> <p>Mike Hearn followed up with, <quote who="Mike Hearn"> Out of interest, how do you go about writing GUIs using that stuff? I'm thinking of winecfg here, I can't see any gui definitions in the code, they seem to be loaded from dialog templates. Are there any free editors available?</quote></p> <p>Dimi replied, <quote who="Dimitrie Paun"> I don't know about free editors, but most people use the ones that come with MSVC, or Borland, etc. I use vim :)</quote></p> </section><section title="Visual Sourcesafe Success" subject="Visual Sourcesafe works much better than last year..." archive="http://www.winehq.com/hypermail/wine-devel/2003/07/0568.html" posts="5" startdate="07/22/2003" > <topic></topic> <p>Dan Kegel reported success with Microsoft's <a href="http://msdn.microsoft.com/ssafe/">Visual Sourcesafe</a>:</p> <quote who="Dan Kegel"><p> Last time I tried running Microsoft Visual Sourcesafe's gui tools under Wine (six months or a year ago), it had Z-ordering and/or visibility problems, and was only partially usable. Now those problems are all gone, and ssexp.exe is from what I can tell quite functional (if bloody slow over smbfs). It still doesn't update the journal with your changes, so the ss admin will think you're sneaking in changes by magic, but progress is progress. Kudos! </p></quote> </section><section title="Configuring Native OLE DLL's" subject="Re: [resend] Ensure ole32.dll gets correct version number" archive="http://www.winehq.com/hypermail/wine-devel/2003/07/0523.html" posts="5" startdate="07/21/2003" enddate="07/23/2003" > <topic>RPC / COM / OLE</topic> <p>Mike Hearn posted a patch that included some version definitions for ole32.dll. Alexandre commented on it, <quote who="Alexandre Julliard"> Version 2.0 is awfully old for ole32.dll. Why do you need that? </quote></p> <p>Mike explained:</p> <quote who="Mike Hearn"><p> The primary motivation for this bugfix was to enable the DCOM98 installer to work again correctly. It requires at least < 4.something, otherwise it refuses to install. As our OLE framework isn't yet up to scratch for some tasks, being able to install it is important (hopefully once I finish digesting Oves work maybe it will be less important). </p><p> I suppose we could make it every so slightly below the version DCOM98 requires, but there are only so many versions, and if an app checks for the version shipped in the DCOM updates, it'd still be too low. </p><p> The real fix is just to get the DCOM infrastructure to the point where nobody needs to install Microsofts version anymore, but it's going to be a couple of months before I have this patch in a form suitable for submission I suspect (unless Ove decides to beat me to it). </p></quote> <p>Alexandre didn't think it was the proper solution for that and suggested, <quote who="Alexandre Julliard"> You may be able to install it by playing with the load order (i.e. set ole32 to native only). Having a bogus version in the builtin is going to force everybody to install the native, which is not what we want. </quote></p> <p>Mike tried that and discovered it worked:</p> <quote who="Mike Hearn"><p> grrrr, yes you are quite right, setting ole32=n does force it to install. I wish I'd thought of that :/ </p><p> So, I attached a patch to add this case to the sample configuration, as it seems non-obvious (and quite a lot of end user queries are related to this). </p></quote> <p>The relevant parts of <a href="http://www.winehq.com/hypermail/wine-devel/2003/07/att-0579/01-sampleconfig.patch__charset_UTF-8">Mike's patch</a> were:</p> <quote who="Mike Hearn"><p><code> +; force it to install even though wine has a newer version<br /> +[AppDefaults\\dcom98.exe\\DllOverrides]<br /> +"ole32" = "native"<br /> +<br /> +[AppDefaults\\dcom95.exe\\DllOverrides]<br /> +"ole32" = "native"<br /> +</code></p></quote> </section><section title="Terminal Emulation and stdout" subject="can't redirect stdout?!" archive="http://www.winehq.com/hypermail/wine-devel/2003/07/0569.html" posts="3" startdate="07/22/2003" enddate="07/23/2003" > <topic>Fixes</topic> <p>If you haven't run into a problem with terminal emulation you haven't used Unix or Linux enough. Thankfully, there's now a surplus of real terminals and smashing them with a baseball bat does wonders to relieve frustration. Dan Kegel wrote to wine-devel:</p> <quote who="Dan Kegel"><p> OK, so with the normal X11 driver, you can no longer redirect stdout from commandline apps under Wine; the output just vanishes if you try to send it to a file. </p><p> That's rather unacceptable dain bramage, if you ask me. </p></quote> <p>Bill Medland poked around and reported some test results, <quote who="Bill Medland"> Even with the ttydrv stdout disappears and cannot be redirected. Except it depends upon the terminal!!! Under a real terminal (whatever you want to call it; what I get when I press Ctrl+Alt+F1 and log in) it is OK. I have just discovered that under a true xterm it is OK. However it disappears under whatever virtual terminal KDE gives you. </quote></p> I sure miss the days of being a sys admin and mucking around with termcap entries. Just kidding. I don't. </section><section title="Wine on Alpha Linux" subject="Warning on Alpha Linux" archive="http://www.winehq.com/hypermail/wine-devel/2003/07/0444.html" posts="12" startdate="07/19/2003" enddate="07/20/2003" > <topic>Ports</topic> <p>Steven Edwards started playing with Wine on an Alpha and began running into obstacles. First he reported:</p> <quote who="Steven Edwards"><p> On just about every file that is built we are getting this warrning. This is the most minor problem we have with the alpha build but I couldnt figure it out. <ul><code> ../../include/wine/debug.h: In function `wine_dbgstr_guid':<br /> ../../include/wine/debug.h:152: warning: cast from pointer to integer of different size<br /> ../../include/wine/debug.h:152: warning: cast from pointer to integer of different size </code></ul></p><p> This system is a Alpha AXP 21164. </p></quote> <p>Vincent Beron diagnosed it:</p> <quote who="Vincent Beron"><p> That's an easy one. On an Alpha, sizeof(int) != sizeof(foo *). </p><p> gcc is kind enough to warn you about this potentially nasty situation, although in these particular cases I don't see how putting the pointer in something larger will create a problem. </p><p> Still, fixing the warning would be a good idea as there's probably a whole lot of lines passing by at compilation. </p></quote> <p>Todd Vierling clarified that by pointing out, <quote who="Todd Vierling"><tt> sizeof(int) == 4; sizeof(void *) == 8.</tt></quote></p> <p>He also suggested casting to intptr_t or, if not available, defining intptr_t it as an unsigned long. Dmitry Timoshkov pointed out another way to make casts, <quote who="Dmitry Timoshkov"> In Wine we have to use UINT_PTR, ULONG_PTR, DWORD_PTR for casting pointer to an integer type. These macros have correct behaviour on Win32 and Win64. </quote> He added, <quote who="Dmitry Timoshkov"> In that case Wine needs to be compiled with _WIN64 macro defined. In that case WPARAM and LPARAM will have correct size as well. But be warned that compiling for Win64 is a completely unexplored terrain. </quote></p> <p>Steven wrote back with more details on the system, <quote who="Steven Edwards"> Its gcc on RH 7.1 for Alpha. On a Dec PWS 500 workstation. I dont know anything about Alpha asm so I cannot implement the interlocked* functions or the import and spec support in winebuild so I have just stubbed it for now. The other issues I am having is with compiling resources. WRC doesnot work proplerly on Alpha and I dont know why.</quote></p> <p>And in another email added, <quote who="Steven Edwards"> I have this Alpha that HP loaned us for ReactOS but I have never been able to build a current gcc/binutils that build for a alpha-pe target. I figure while I still have it then I will work on getting WINE working. Anyone know AXP assembly interested in helping with the port? I will put it on the net with SSH if anyone wants to play with it. </quote></p> <p>As a side note, I used to own 21164 and it was rockin' system. Unfortunately it seems Alpha based systems are slowly meeting their demise. </p> </section></kc>