<?xml version="1.0" ?>
<kc>


<title>Wine Traffic</title>

<author contact="mailto:vinn@theshell.com">Brian Vincent</author>

<issue num="134" date="05 Sep 2002 23:00:00 -0800" />

<intro>
<p>
This is the 134th release of the Wine's kernel cousin publication. It's main
goal is to distribute widely what's going on around Wine (the Un*x windows
emulator). </p>
</intro>



<stats posts="116" size="494" contrib="47" multiples="23" lastweek="24">

<person posts="9" size="26" who="Shachar Shemesh &lt;wine-devel@sun.consumer.org.il&gt;" />
<person posts="9" size="20" who="Eric Pouech &lt;eric.pouech@wanadoo.fr&gt;" />
<person posts="7" size="17" who="Sylvain Petreolle &lt;spetreolle@yahoo.fr&gt;" />
<person posts="7" size="16" who="Francois Gouget &lt;fgouget@free.fr&gt;" />
<person posts="7" size="16" who="Alexandre Julliard &lt;julliard@winehq.com&gt;" />
<person posts="5" size="23" who="Paul Millar &lt;paulm@astro.gla.ac.uk&gt;" />
<person posts="5" size="21" who="Fabian Cenedese &lt;Cenedese@indel.ch&gt;" />
<person posts="5" size="20" who="Tom Wickline &lt;twickline2@triad.rr.com&gt;" />
<person posts="5" size="12" who="Andreas Mohr &lt;andi@rhlx01.fht-esslingen.de&gt;" />
<person posts="3" size="12" who="Steven Edwards &lt;steven_ed4153@yahoo.com&gt;" />
<person posts="3" size="9" who="Martin Wilck &lt;Martin.Wilck@Fujitsu-Siemens.com&gt;" />
<person posts="3" size="9" who="Gavriel State &lt;gav@transgaming.com&gt;" />
<person posts="3" size="7" who="Jeff Smith &lt;whydoubt@hotmail.com&gt;" />
<person posts="3" size="7" who="Lionel Ulmer &lt;lionel.ulmer@free.fr&gt;" />
<person posts="2" size="7" who="Huw D M Davies &lt;h.davies1@physics.ox.ac.uk&gt;" />
<person posts="2" size="6" who="Dimitrie O. Paun &lt;dimi@bigfoot.com&gt;" />
<person posts="2" size="6" who="Bill Medland &lt;billmedland@look.ca&gt;" />
<person posts="2" size="5" who="TJ &lt;oo6@btinternet.com&gt;" />
<person posts="2" size="5" who="admiral coeyman &lt;admiral@corner.net&gt;" />
<person posts="3" size="7" who="Marcus Meissner &lt;meissner@suse.de&gt;" />
<person posts="2" size="5" who="Igor Izyumin &lt;igor@mlug.missouri.edu&gt;" />
<person posts="2" size="4" who="Dimitrie O. Paun &lt;dpaun@rogers.com&gt;" />
<person posts="2" size="4" who="Jas Sandys-Lumsdaine &lt;jas.sl@tiscali.co.uk&gt;" />
<person posts="1" size="153" who="Per Nystrom &lt;centaur@netmagic.net&gt;" />
<person posts="1" size="9" who="Thomas Wickline &lt;twickline2@triad.rr.com&gt;" />
<person posts="1" size="7" who="Rick Romero &lt;rick@valeoinc.com&gt;" />
<person posts="1" size="4" who="Marco Pietrobono &lt;pietrobo@pietrobo.com&gt;" />
<person posts="1" size="3" who="Vincent Beron &lt;vberon@mecano.gme.usherb.ca&gt;" />
<person posts="1" size="3" who="Ilja Kamps &lt;ikarus@ikarus.ath.cx&gt;" />
<person posts="1" size="2" who="Joerg Mayer &lt;jmayer@loplof.de&gt;" />
<person posts="1" size="2" who="Jean-Claude Batista &lt;jcb@macadamian.com&gt;" />
<person posts="1" size="2" who="David Fraser &lt;davidf@sjsoft.com&gt;" />
<person posts="1" size="2" who="Uwe Bonnes &lt;bon@elektron.ikp.physik.tu-darmstadt.de&gt;" />
<person posts="1" size="2" who="Ove Kaaven &lt;ovehk@ping.uio.no&gt;" />
<person posts="1" size="2" who="Sebastian 'yath' Schmidt &lt;yathen@web.de&gt;" />
<person posts="1" size="2" who="Anand Kumria &lt;wildfire@progsoc.uts.edu.au&gt;" />
<person posts="1" size="2" who="Tony Lambregts &lt;tony_lambregts@telusplanet.net&gt;" />
<person posts="1" size="2" who="m.kostrzewa@pentacomp.com.pl" />
<person posts="1" size="2" who="Dmitry Timoshkov &lt;dmitry@baikal.ru&gt;" />
<person posts="1" size="2" who="Franky Van Liedekerke &lt;liedekef@pandora.be&gt;" />
<person posts="1" size="2" who="Juergen Schmied &lt;juergen.schmied@debitel.net&gt;" />
<person posts="1" size="2" who="Rizsanyi Zsolt &lt;rizsanyi@myrealbox.com&gt;" />
<person posts="1" size="2" who="Ender &lt;winedev@admdev.com&gt;" />
<person posts="1" size="1" who="Hidenori Takeshima &lt;hidenori_dsxwsasd@yahoo.com&gt;" />
<person posts="1" size="1" who="Andriy Palamarchuk &lt;apa3a@yahoo.com&gt;" />

</stats>


<section
  title="News: Wine-20020904, WineX 2.1 and CrossOver Office Reviews"
  subject="News"
  archive="http://www.linuxorbit.com/modules.php?op=modload&amp;name=Reviews&amp;file=index&amp;req=showcontent&amp;id=15"
  posts="2"
  startdate="30 Aug 2002 23:00:00 -0800"
  enddate="05 Sep 2002 23:00:00 -0800"
>
<topic>News</topic>
<mention></mention>
<mention>Zack Brown</mention>
<mention>News</mention>

<p>
This month's CVS drop occured on September 4th.  Alexandre noted the
following in the announcement:</p>
<quote who="Alexandre Julliard"><p>
WHAT'S NEW with Wine-20020904: (see
<a href="http://cvs.winehq.com/cvsweb/wine/ChangeLog?rev=1.62&amp;content-type=text/x-cvsweb-markup">ChangeLog</a> 
for details)
<ul><li> Much improved PowerPC support.</li>
	<li> More correct locale definitions.</li>
	<li> Progress on the conversion of handle types to pointers.</li>
	<li> Many Visio and Quicken fixes merged from Crossover.</li>
	<li> Lots of bug fixes.</li></ul>
</p></quote>

<p>
<a href="http://www.linuxorbit.com/modules.php?op=modload&amp;name=Reviews&amp;file=index&amp;req=showcontent&amp;id=15">A review</a> 
of WineX 2.1 appeared over on Linux Orbit:</p>

<quote who="Linux Orbit"><p>
 WineX 2.1 is a fairly mature product that gives many Windows games 
 the ability to run on the Linux desktop. Although many programmers 
 see WineX and other translation layers for Windows programs as bad 
 opposed to complete Linux native translations, the end users really 
 won't care that much. If you have a Windows game that you'd like to 
 try with WineX, do a little homework first, and give WineX a try. 
</p></quote>

<p>A bunch of screenshots were included.  Some of them include:
 <ul>
	<li><a href="http://www.linuxorbit.com/graphics/reviews/winex/figurei.jpg">Diablo 2</a></li>
	<li><a href="http://www.linuxorbit.com/graphics/reviews/winex/figurej.jpg">Starcraft</a></li>
	<li><a href="http://www.linuxorbit.com/graphics/reviews/winex/figurek.jpg">Black and White</a></li>
	<li><a href="http://www.linuxorbit.com/graphics/reviews/winex/figurel.jpg">Fallout 2</a></li>
 </ul></p>

<p>And LinuxPlanet <a href="http://www.linuxplanet.com/linuxplanet/reviews/4405/1/">
reviewed</a> CodeWeaver's CrossOver Office.  The interviewer was especially
interested in Quicken's performance.</p>

<p>Also, I'd like to take a second to plug Zack Brown's
<a href="http://kt.zork.net/lists.html">mailing lists</a>
for the Kernel Traffic/Cousins project.  It's a great way
to find out when an issue comes out.  Plus, with the
new XML parsers Zack came up with you can get emailed a very 
nicely formatted version of this page.  It prints nicely
should you wish to stock your bathroom with some reading 
material.</p>

</section>





<section
  title="Quartz DLL (con't)"
  subject="Quartz DLL"
  archive="http://www.winehq.com/hypermail/wine-devel/2002/08/0428.html"
  posts="10"
  startdate="29 Aug 2002 23:00:00 -0800"
  enddate="02 Sep 2002 23:00:00 -0800"
>
<topic>Multimedia</topic>
<mention></mention>
<mention>Transgaming</mention>
<mention>Ove K&#229;ven</mention>
<mention>TransGaming</mention>

<p>The Quartz multimedia DLL has been covered in past
issues 
<kcref startdate="08 Aug 2002 23:00:00 -0800" subject="new quartz dll ??" />
<kcref startdate="01 May 2002 23:00:00 -0800" subject="Re: wine/ ./winedefault.reg dlls/Makefile.in dlls/ ..." />
.  Most recently I mentioned that TransGaming had a version in their
WineX 2.1 tree.  Unbeknownst to me, that DLL appears to be the original
work of Hidenori Takeshima.  Back in May, Hidenori had asked for all of
his code to be removed from the various Wine projects due to 
liability concerns - both ReWind and the LGPL'ed Wine complied.  
Yet, the code remains out there for anyone who
wants to search for it.  Tom Wickline asked what was preventing 
WineX code (LGPL licensed) from being put in the main Wine tree.
Lionel Ulmer answered:</p>

<quote who="Lionel Ulmer"><p>
 Well, as most of the code is LGPLed in there, it could be integrated easily
 in WineHQ (after clean-up and reimplentation of the APFL parts if any).
</p><p>
 Of course, that is, if people want to use some code that the original author
 explicitely asked us to remove from Wine.
</p></quote>

<p>Gavriel State explained:</p>
<quote who="Gavriel State"><p>
The WineX head branch hasn't quite had all the license and quartz updating
as yet, but you can find the detailed list in the WineX LICENSE file for
the winex-2-0-branch CVS branch:<br />
  <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/winex/wine/LICENSE?rev=1.3.2.2">
  http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/winex/wine/LICENSE?rev=1.3.2.2</a>
</p><p>
I tried contacting Hidenori for several weeks before we included the quartz
code in WineX 2.1, but without success.   His email address no longer seems
valid, and mail to the postmaster at his domain has gone unanswered.  Google
searches also turn up very little.
</p></quote>
<p>Alexandre has no plans on adding any of Hidenori's code back into
 Wine,<quote who="Alexandre Julliard">

 But of course if we didn't want to respect Hidenori's wishes then we
 wouldn't have the problem at all because the code would still be
 there. The fact is that Hidenori doesn't want his code distributed,
 and that's why I have removed it; so I'm not going to add it again
 just because it went through WineX first. We can certainly include the
 LGPL parts that have been written by Transgaming (if any, I haven't
 checked what they did), but not the ones written by Hidenori.

</quote></p>

<p>Hidenori appears to still be following the wine-devel list 
because he replied shortly after the first post:</p>
<quote who="Hidenori Takeshima"><p>
I'm original developer of quartz.
I don't want my quartz code to be restored.
</p><p> 
 There seems to be many patented algorythms.
 Many codecs like MPEG-1/2/4 are patented.
 The ffmpeg library seems to use
 many patented codes.
 And the legal state of quartz interfaces is 
 unclear for me.
 I can't accept any liability.
</p><p>
 Please add all codes in CVS explicitly:
 The code has been removed since the
 original author requests 'please
 remove my quartz codes' explicitly.
 The original author don't accept any liability.
</p></quote>
<p>Gav responded with a request for Hidenori to contact
him about it.  Ove K&#229;ven spoke up for ReWind:</p>
<quote who="Ove Kaaven"><p>
ReWind is X11, not LGPL (it's Wine that's LGPL). Anyway, no, because
Hidenori wanted his code to be removed from ReWind, and it was. The reason
it's still used in WineX is because Hidenori cited legal issues when
asking for their removal, and TransGaming is prepared to deal with the
risk of any such legal and licensing issues, which I think the
noncommercial projects such as Wine and ReWind do not want to risk. But if
Wine wanted to (like if Hidenori said it's ok after all), there would be
no problem, there's no AFPL code in quartz, just a few necessary features
and many bugfixes to Hidenori's LGPL code (he never agreed to license his
patches to ReWind, so it's considered LGPL).

</p></quote>

</section>






<section
  title="Native vs. Builtin DLL's"
  subject="Press: Running Windows Games with WineX 2.1"
  archive="http://www.winehq.com/hypermail/wine-devel/2002/08/0430.html"
  posts="5"
  startdate="29 Aug 2002 23:00:00 -0800"
>
<topic>Documentation</topic>
<mention></mention>

<p>
Jas Sandys-Lumsdaine wanted to know exactly how much better or
worse it was to use native Windows DLL's instead of the corresponding
built-in ones.  Francous Gouget quickly explained,

<quote who="Francois Gouget">
 This very much depends on the application. Some application will work
 better with the native (Windows) libraries, and some others with the
 builtin (Wine) libraries. There is no general rule and I think it's even
 impossible to say with certainty that more applications run with the
 native libraries (e.g. from a Windows partition) than with the builtin
 ones.</quote>
</p>
<p>Jas still didn't understand why native DLL's wouldn't always
work:</p>
<quote who="Jas Sandys-Lumsdaine"><p>
Assuming native Windows dlls etc are correct (by definition of what Wine's
APIs are trying to copy), doesn't this imply the Wine framework (excl. built
in dlls) still has issues.
</p><p>
Otherwise, what else could be going wrong when an app fails to run?
</p></quote>
<p>Francois explained in more detail:</p>
<quote who="Francois Gouget"><p>
Windows libraries (e.g. comctl32, shlwapi, etc) use other libraries
(e.g. user32, ole32, etc). So if you use the Windows shlwapi library you
may end up making calls to the ole32 or user32 library which are not yet
completely implemented, especially if it is an undocumented API.
<p></p>
Obviously Wine libraries tend not to call undocumented and/or
unimplemented APIs in other libraries, thus sometimes resulting in
better behavior.
<p></p>
You will say "why not use only Windows libraries then?" Simply because
for some libraries it is not possible. user32.dll is one such library,
ntdll.dll, kernel32.dll, socket libraries, sound libraries and DirectX
libraries are some others.
</p></quote>




</section>







<section
  title="Windows Printer Drivers"
  subject="Opinions about univesal printer driver"
  archive="http://www.winehq.com/hypermail/wine-devel/2002/09/0014.html"
  posts="3"
  startdate="31 Aug 2002 23:00:00 -0800"
  enddate="01 Sep 2002 23:00:00 -0800"
>
<mention></mention>

<p>Michal Kostrzewa thought of an idea using Wine to support Windows
printer drivers:</p>
<quote who="Michal Kostrzewa"><p>
I'm trying to imagine a method for using windows printer drivers under 
linux. As far as I know, from gdi's point of view it works like:
LoadLibrary(driver) (drv appears to be a dll),
some of 24 DDI functions which every printer driver should contain, 
Initialization = Enable, Control, next goes drawing functions like Output, 
Pixel. It doesn't have to access paralell ports - it can write to file (when 
printing under Windows you have this little checkbox, and gdi initializes 
driver telling this filename I think). Content of this file can be directly 
sent to port in Linux's way. I know that's not that simple, but I'm very 
interested in your opinions: what do you think about it having experience in 
dlling under linux :-) ? I know that wine doesn't run drivers, but it can 
run win dlls. Is it possible at all? Or this is just a 
linux-supports-every-printer dream? Perhaps someone tried this already? 
</p></quote>
<p>Ilja Kamps pointed out that Wine used to support them, but it's
has been broken for over a year.  Huw Davies pointed toward some 
code, <quote who="Huw Davies">
 There's some support for 16 bit printer drivers (note the drivers for
 win9x are 16 bit).  The code is in dlls/gdi/win16drv/ but as you say
 this may well be broken at the moment.</quote></p>
<p>If you go back to December of 2000 you'll find a discussion between
Andi Mohr and Alexandre
<kcref startdate="12 Dec 2000 00:00:00 -0800" subject="win16lock/GDI lockup" />
about breaking the 16-bit drivers.</p>

</section>







<section 
	title="Character Sets" 
	subject="ANSI_CHARSET" 
	archive="http://www.winehq.com/hypermail/wine-devel/2002/09/0032.html" 
	posts="7" 
	startdate="01 Sep 2002 23:00:00 -0800" 
	enddate="02 Sep 2002 23:00:00 -0800"
>

<mention></mention>
<mention>Marcus Meissner</mention>

<p>The <code>LOGFONT</code> structure defines the attributes of a font in Windows.
Part of this definition includes things like width and height.  It also defines
which character set it maps to.  Jeff Smith had a question about the character
set definitions:</p>


<quote who="Jeff Smith"><p>

<code>ANSI_CHARSET</code> and <code>SYMBOL_CHARSET</code> need to be defined 
(in <code>include/wingdi.h</code>), 
but I have some doubts about the details.
</p><p>
<code>SYMBOL_CHARSET</code> should be defined as <code>(BYTE)2</code>, I believe.
</p><p>
If the current value of <code>DEFAULT_CHARSET</code> as <code>(BYTE)1</code> is correct, then I 
suspect <code>ANSI_CHARSET</code> should be <code>(BYTE)0</code>.  I question the current value of
<code>DEFAULT_CHARSET</code>, and suspect it should be the reverse (<code>DEFAULT:0 ANSI:1</code>).
DEFAULT defines tend to be 0 except for a few special cases (and this one
does not fit as one of in my book).
</p><p>
I'm sure someone out there is more familiar with this than I am, and I would
appreciate their feedback.
</p><p>
Notes:<br />
  There is a function in shell32.dll as distributed in Win95-OSR-2.1, that 
uses    the <code>LOGFONT</code> structure.  In this function, the structure is used for 
three fonts: "Times New Roman", "Arial", and "Wingdings".  The lfCharSet member 
for each case is 0, 0, and 2, respectively.
</p></quote>

<p>Francois Gouget looked it up and found:</p>
<quote who="Francois Gouget"><p>
Don't know much about this but the Microsoft headers say that:
<ul>
 <li> ANSI_CHARSET    is 0 </li>
 <li> DEFAULT_CHARSET is 1 </li>
 <li> SYMBOL_CHARSET  is 2 </li>
</ul>
</p></quote>

<p>Marcus Meissner pointed out they were already defined in the file Jeff
mentioned.  He wondered why Jeff didn't have them.  Francois replied,
<quote who="Francois Gouget">
 They are in mine, but Jeff seems to think they are wrong. All I'm saying
 is that since they match the Microsoft values they are by definition
 correct.
</quote></p>
<p>Shachar Shemesh pointed out,
<quote who="Shachar Shemesh">
 I think "correct" is too strong a word here. I would go for "conforming".</quote></p>

<p>Andreas Mohr agreed,<quote who="Andreas Mohr">
 Well said !
 Given Microsoft's biblical documentation "correctness",
 I can't help but wonder whether we should reject this value order completely
 and use our own instead ;-))</quote></p>

</section>





<section 
	title="Splitting Up Unit Tests" 
	subject="[PATCH] winsock-test.diff" 
	archive="http://www.winehq.com/hypermail/wine-patches/2002/09/0015.html" 
	posts="3" 
	startdate="03 Sep 2002 23:00:00 -0800" 	
	enddate="04 Sep 2002 23:00:00 -0800"
>
<topic>Testing</topic>

<mention></mention>

<p>Martin Wilck posted a patch for some Winsock
tests after figuring out last week why they wouldn't
run 
<kcref subject="DOSFS_FindUnixName and unix filesystem (was: Re: (HELP) ...)" 
startdate="27 Aug 2002 23:00:00 -0800" />.  In the
changelog he noted,
<quote who="Martin Wilck">
 This patch is large, but it actually adds no code.
 The winsock unit tests is just split up over several files,
 most of which (except simple_test.c, event_test.c) act only
 as include files.
</quote></p>

<p>Alexandre didn't think it should be split up like that
and explained, <quote who="Alexandre Julliard">
That's not really the usual scheme. It may look that way because we
have few tests at the moment, but we can't put each test in a separate
file, or we will end up with thousands of them. The right approach is
to follow more or less the layout of the source files, that is if two
APIs are implemented in the same source file they should be tested in
the same test file; so I think the current winsock tests are OK as
they are. And in any case #including .c files is strongly discouraged.
</quote></p>


</section>








<section 
	title="Mono / Winforms + Winelib" 
	subject="Mono / winforms + Winelib"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/09/0023.html" 
	posts="1" 
	startdate="01 Sep 2002 23:00:00 -0800"
>
<topic>Integration</topic>
<topic>Winelib</topic>
<mention></mention>
<mention>ReactOS</mention>

<p>Steven Edwards forwarded an email about getting the system.windows.forms
(SWF) classes from Mono running with Winelib:</p>
<quote who="Steven Edwards"><p>
 I have started some discussion with the Mono developers on how to better share our work and they
 have sent these directions for anyone that is interested in testing Mono with Winelib. There is
 also a Mono build for Win32 if you want to test it under Wine/ReactOS. I will try and find some
 free time in the next few weeks to see if I can help with documenting problems or areas our
 projects can work together better.
</p></quote>

<p>Instructions for testing it were attached:</p>
<quote who="Steven Edwards"><p>

 Great to hear there are more people to assist with the work! There is
 plenty to go around.
</p><p>
 My main priority has been getting WineLib to work from a Mono
 application. In the C# code I have been working mainly with the
 Application, Form, Control, and NativeWindow classes. I have been trying
 to get the Form class to work since it is the base for everything in
 Windows Forms.
</p><p>
 In case you do not already know (it was surprise for me!) a WineLib
 application is a Windows application that is compiled under Unix/Linux
 as a shared library. This is then started as any other Windows
 application under Wine using the wine command. You cannot simply link in
 libwine (gcc myapp.c -lwine).
</p><p>
 To get started I suggest installing Wine and Mono first if they are not
 already installed. I am using the Wine snapshot from 08/04/2002
 (Wine-20020804.tar.gz) built from source and installed under /usr/local.
 Also be sure to build/use a version of Mono with garbage collection
 disabled as there is a problem using WineLib with garbage collection
 enabled (check the mono-list archives for this discussion). Then try
 building the project under System.Windows.Forms/WINELib. 
</p><p>
 In the makefile you may have set these to the appropriate files and/or
 paths on your PC: 
<ul>
	X11R6_INCLUDE=/usr/X11R6/include<br />
	WINE_INCLUDE=/usr/local/include/wine<br />
	WINE_LIB=/usr/local/lib/wine<br />
	GLIB20_INCLUDE=/usr/include/glib-2.0<br />
	GLIB20_LIB_INCLUDE=/usr/lib/glib-2.0/include<br />
	LIBMONO=/usr/local/lib/libmono.a
</ul>
</p><p>
If you type make from the mcs/class/System.Windows.Forms/WINELib
directory it will (hopefully) build: 
<ul><li>
<code>System.Windows.Forms.dll</code> - 
The current (if largely incomplete) Windows Forms package. 
</li><li>
<code>FormTest.exe, NativeWindowTest.exe, Test.exe</code> - 
Test applications which link to and tests the System.Windows.Forms.dll 
</li><li>
<code>monostub.exe.so</code> - 
The WineLib application that starts the Mono/WineLib application. This
small WineLib application embeds the Mono JIT engine allowing any Mono
application running in it access to WineLib/Win32 function calls. 

</li></ul></p><p>Before starting any of the applications set the LD_LIBRARY_PATH to the
current directory so DllImport can find the monostub.exe.so library:
<ul><code>
	export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.</code></ul>
</p><p>
To start any of the applications you type (from the WINELib directory): 
<ul><code>
	wine monostub.exe.so mono-winelibapp.exe</code></ul>
</p><p>
Let me know if you encounter any problems. Sometimes the code I have in
CVS has problems with the very latest branch in CVS. As Mono gets better
the compiler has picked up my errors better.
</p><p>
Hopefully this is enough to get started. Let me know if you encounter
any problems or have any questions. After your environment is ready we
can decide how to break down some of the work. Is there anything you are
interested in working on?
</p></quote>

</section>


</kc>

