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


<title>Wine Traffic</title>

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

<issue num="127" date="19 Jun 2002 23:00:00 -0800" />

<intro>
<p>
This is the 127th 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="231" size="914" contrib="53" multiples="30" lastweek="28">

<person posts="39" size="168" who="Deven T. Corzine &lt;deven@ties.org&gt;" />
<person posts="16" size="70" who="Roger Fujii &lt;rmf@lookhere.com&gt;" />
<person posts="16" size="42" who="Matt Seitz &lt;mseitz@yahoo.com&gt;" />
<person posts="14" size="55" who="Sean C. Farley &lt;scf@farley.org&gt;" />
<person posts="13" size="38" who="Roland &lt;roland@netquant.com.br&gt;" />
<person posts="12" size="44" who="Tony Lambregts &lt;tony_lambregts@telusplanet.net&gt;" />
<person posts="11" size="49" who="Francois Gouget &lt;fgouget@free.fr&gt;" />
<person posts="10" size="58" who="Greg Alexander &lt;yakovlev@mac.com&gt;" />
<person posts="8" size="17" who="Steven Edwards &lt;steven_ed4153@yahoo.com&gt;" />
<person posts="7" size="14" who="Andriy Palamarchuk &lt;apa3a@yahoo.com&gt;" />
<person posts="5" size="61" who="Ian Pilcher &lt;pilchman@attbi.com&gt;" />
<person posts="5" size="18" who="Behdad Esfahbod &lt;behdad@bamdad.org&gt;" />
<person posts="5" size="18" who="Martin Wilck &lt;Martin.Wilck@Fujitsu-Siemens.com&gt;" />
<person posts="5" size="16" who="Vincent Beron &lt;vberon@mecano.gme.usherb.ca&gt;" />
<person posts="4" size="17" who="Patrik Stridvall &lt;ps@leissner.se&gt;" />
<person posts="7" size="20" who="Shachar Shemesh &lt;wine-devel@sun.consumer.org.il&gt;" />
<person posts="4" size="7" who="Sylvain Petreolle &lt;spetreolle@yahoo.fr&gt;" />
<person posts="3" size="7" who="Alexandre Julliard &lt;julliard@winehq.com&gt;" />
<person posts="3" size="7" who="Lionel Ulmer &lt;lionel.ulmer@free.fr&gt;" />
<person posts="3" size="6" who="Anthony Taylor &lt;tony@paperdove.org&gt;" />
<person posts="2" size="7" who="David.Goodenough@DGA.co.uk" />
<person posts="2" size="7" who="Uwe Bonnes &lt;bon@elektron.ikp.physik.tu-darmstadt.de&gt;" />
<person posts="2" size="7" who="Duane Clark &lt;dclark@akamail.com&gt;" />
<person posts="2" size="5" who="Michael Wetherell &lt;mike.wetherell@ntlworld.com&gt;" />
<person posts="2" size="5" who="Pavel Roskin &lt;proski@gnu.org&gt;" />
<person posts="2" size="5" who="Ian D. Stewart &lt;idstewart@compuvative.com&gt;" />
<person posts="2" size="4" who="Andreas Mohr &lt;andi@rhlx01.fht-esslingen.de&gt;" />
<person posts="3" size="5" who="Juergen Schmied &lt;juergen.schmied@debitel.net&gt;" />
<person posts="2" size="3" who="Brett Glass &lt;brett@lariat.org&gt;" />
<person posts="1" size="57" who="Mike McCormack &lt;mikem@codeweavers.com&gt;" />
<person posts="1" size="9" who="Marco Pietrobono &lt;pietrobo@pietrobo.com&gt;" />
<person posts="1" size="5" who="Won Kyu Park &lt;wkpark@chem.skku.ac.kr&gt;" />
<person posts="1" size="3" who="Matts &lt;kivik@firstlinux.net&gt;" />
<person posts="1" size="3" who="Shane Shields &lt;locutusenterprises@softhome.net&gt;" />
<person posts="1" size="3" who="Rob Browning &lt;rlb@defaultvalue.org&gt;" />
<person posts="1" size="3" who="Dmitry Timoshkov &lt;dmitry@baikal.ru&gt;" />
<person posts="1" size="3" who="Carl Sopchak &lt;carl.sopchak@cegis123.com&gt;" />
<person posts="1" size="2" who="us@the-edmeades.demon.co.uk" />
<person posts="1" size="2" who="Huw D M Davies &lt;h.davies1@physics.ox.ac.uk&gt;" />
<person posts="1" size="2" who="Paul Millar &lt;paulm@astro.gla.ac.uk&gt;" />
<person posts="1" size="2" who="Chris Morgan &lt;cmorgan@alum.wpi.edu&gt;" />
<person posts="1" size="2" who="Hetz Ben Hamo &lt;hetz@kde.org&gt;" />
<person posts="1" size="2" who="Dustin Navea &lt;speeddymon@yahoo.com&gt;" />
<person posts="1" size="2" who="Luigi Capriotti &lt;l.capriotti@libero.it&gt;" />
<person posts="2" size="5" who="Eric Pouech &lt;eric.pouech@wanadoo.fr&gt;" />
<person posts="1" size="2" who="dschwarz@bellatlantic.net" />
<person posts="1" size="2" who="Medland, Bill &lt;Bill.Medland@accpac.com&gt;" />
<person posts="1" size="1" who="Ann and Jason Edmeades &lt;us@the-edmeades.demon.co.uk&gt;" />
<person posts="1" size="1" who="Earnie Boyd &lt;earnie_boyd@yahoo.com&gt;" />

</stats>

<section
  title="News: wIndependence Day, Lindows at Wal-Mart, Kohan from TransGaming"
  subject="News"
  archive="http://www.desktoplinux.com/news/NS3432021257.html"
  posts="3"
  startdate="13 Jun 2002 23:00:00 -0800"
  enddate="19 Jun 2002 23:00:00 -0800"
>
<topic>News</topic>
<mention>CodeWeavers</mention>
<mention></mention>
<mention>News</mention>
<mention>Michael Robertson</mention>
<mention>NewsForge</mention>
<mention>Jeremy White</mention>
<mention>Xandros</mention>
<mention>DesktopLinux</mention>

<p>DesktopLinux.com has
<a href="http://www.desktoplinux.com/news/NS3432021257.html">proclaimed</a>
July 4th <i>wIndependence Day</i>:
<quote who="DesktopLinux.com">
 wIndependence Day celebrates the burgeoning use of Linux on business,
 government, educational institution, and personal end-user computer desktops
 as an alternative to dependence on Microsoft's Windows operating system and
 associated products. </quote>  Quotes are included from Michael Robertson
of Lindows.com and Jeremy White of CodeWeavers.  Essays are being solicited
with winners receiving at shot at some great prizes.</p>

<p>Speaking of contests, TransGaming has extended both the
 <a href="http://www.transgaming.com/news.php?newsid=32">Win a Gaming PC</a>
and the <a href="http://www.transgaming.com/news.php?newsid=30">
Name the Logo</a> contest.  The first one requires you to
<a href="http://www.transgaming.com/create_accnt.php?referer=vinn">refer people</a>
to TransGaming for membership, the
second is a contest open to all TransGaming members.  Anyway,
that's not the interesting news.</p>

<p>Seen on the sidebar of the TransGaming website was a reference
to <quote who="TransGaming">COMING SOON: Three KOHAN titles available
at TransGaming</quote>.   Kohan is an immensely popular game that
falls into the real time strategy genre. </p>

<p>The biggest news of all comes out of Wal-Mart.  You can
<a href="http://www.walmart.com/catalog/product_listing.gsp?cat=96356&amp;dept=3944&amp;path=0%3A3944%3A3951%3A41937%3A86796%3A96356&amp;bti=0&amp;sb=61">
now purchase</a>
a Microtel PC pre-loaded with Lindows SPX online.  NewsForge pointed out
the <a href="http://newsforge.com/newsforge/02/06/18/1344258.shtml?tid=23">
wording on the website</a> has changed since the initial press release.</p>

<p>After reading that press release I was a little disappointed.  Michael
Robertson had promised to release source code when a product came out.
Well, I didn't want to come out and ignorantly accuse them of not complying
with their own release terms so I did a little digging.  Unfortunately
I can't find the original interview I got this from, but Mr. Robertson
gave a pointer to the LindowsOS <a href="http://net2.com/lindows/source/">source code</a>.
I spent some time digging through it and found quite a few references to
Xandros - specifically for what appears to be print filters, umsdos, and
autofs code.  Internally it seems this code is referred to as version 0.91 which
may correlate to their 2nd preview release.
One file makes <a href="http://net2.com/lindows/source/AboutTheseSourceFiles.txt">
a reference</a> to Wine:</p>
<quote who="Lindows.com"><p>
 3. Specifically, there are no WINE source code mods here, because ALL of our WINE changes
 (even those changes we made when WINE was X11) have been submitted for inclusion to the
 main LGPL wine tree.  Pretty much all of our changes were accepted and are currently in
 wine.  Lindows.com currently does all their development on the LGPL wine tree, submitting
 all our changes back.</p></quote>

<p>I wonder if anyone told Bruce Perens?</p>

</section>






<section
	title="Documentation Links"
	subject="Documentation"
	archive="http://www.winehq.com/support/"
	posts="1"

>
<topic>Documentation</topic>
<mention></mention>
<mention>codeweavers</mention>

<p>The next thread touched on documentation a bit, so
I figured I'd repost some links to the various Wine
guides.  These docs are more linear than the standard
<a href="http://wine.codeweavers.com/fom-meta/cache/1.html">Wine FAQ</a>.
At various times the Wine documentation ranges from
excellent to non-existent.  And sometimes the
documentation is out of date and just not correct.  In
case you're getting started with
Wine and haven't seen the various guides you may find these
useful.  Even better, if
you think you can contribute feel free to fill-in the
noticably missing pieces:
<ul>	<li><a href="http://www.winehq.com/Docs/wine-user/">
	Wine User's Guide</a></li>
	<li><a href="http://www.winehq.com/Docs/wine-devel/">
	Wine Developer's Guide</a></li>
	<li><a href="http://www.winehq.com/Docs/winelib-user/">
	Winelib User Guide</a></li>
	<li><a href="http://www.winehq.com/Docs/wine-pkg/">
	Wine Packagers Guide</a></li>
</ul></p>
</section>



<section
	title="Creating Stubs"
	subject="How to make a stub dll ?"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/06/0301.html"
	posts="12"
	startdate="17 Jun 2002 23:00:00 -0800"
	enddate="19 Feb 2002 23:00:00 -0800"
>
<topic>Creating Stubs</topic>

<mention></mention>

<p>Sylvain Petreolle asked, <quote who="Sylvain Petreolle">
 I want to run a program that needs d3d8.dll.
 Using winedump I see there are only 5 functions
 exported. So what would the way to do a stub dll ?
</quote></p>

<p>A stub is just an unimplemented Windows function.  In Wine
the function will get called but typically won't do anything other
than print a debugging message.  Once in a while the function
required isn't actually doing anything important, so a stub may be enough
to make a program run.  In many cases though, at least partial
functionality is needed.  A stub DLL refers to an entire DLL
of unimplemented functions.  In this case Sylvain is looking
for DirectX 8.0.  Lionel Ulmer commented,
<quote who="Lionel Ulmer">
 Yes, but if the program really needs D3D8, just stubbing these function will
 not help you much... The problem is that D3D (and the whole DirectX) is
 implemented using COM : there is only a bunch of functions exported from the
 DLL but that hides a LOT of code as function pointers in the COM object.

 So it's definitely NOT trivial to stub (except if you plan to return 'not
 supported' :-) ).</quote></p>

<p>Ian Stewart gave a pointer for documentation,
<quote who="Ian Stewart">
 I did some initial work implementing a stup ctl3d.dll (which I intend
 to get back to, honest!).  I found the 'IMPLEMENTING A NEW DLL' section
 of
 <a href="http://cvs.winehq.com/cvsweb/wine/DEVELOPERS-HINTS?rev=1.12&amp;content-type=text/x-cvsweb-markup">
 DEVELEPORS-HINTS</a> to be a good starting point.  According to
 Alexandre, this file is grossly outdated and 'real' documentation will
 be written eventually.  Until then, I reckon DEVELOPERS-HINTS is better
 than a poke in the eye...</quote></p>

<p>Lionel replied with a more detailed explanation:</p>
<quote who="Lionel Ulmer"><p>

Well, just look at, for example, 'dinput8'. That's the easiest DLL I know
and should be pretty equivalent to 'd3d8'.
</p><p>
Basically, you need to
<ol>
  <li> create the d3d8 directory</li>

  <li> create a spec file with what winedump tells you</li>
  <li> create a d3d8_main.c (or whatever) file with the stubs in it</li>
  <li> create a Makefile.in file<br />

  (from 2) to 4) is just basic copy / paste / replace from what is in dinput8
  using the information provided by MSDN / winedump).</li>

  <li> run make_dlls in the dlls directory</li>
  <li> add a 'dlls/d3d8/Makefile' line in configure.ac and regenerate configure</li>
</ol></p><p>
And that should be all :-)</p></quote>

<p>Sylvain reported some success,
<quote who="Sylvain Petreolle">
 Thank you Lionel and others,
 I now have a box saying that Direct3D 8.0 isn't
 detected instead of a crash and my stub function
 reports it correctly on the d3d debug channel.
</quote></p>





</section>









<section
  title="MS Write Support"
  subject="notepad vs write"
  archive="http://www.winehq.com/hypermail/wine-devel/2002/06/0283.html"
  posts="3"
  startdate="15 Jun 2002 23:00:00 -0800"
>
<topic>Fixes</topic>
<mention></mention>

<p>
Jason Edmeades came across a problem,
<quote who="Jason Edmeades">
 A program I am debugging has a 'View Readme' button which when clicked
 attempts to load the readme into write. Just a suggestion, but perhaps when
 we install the default applications we could have a symbolic link or dummy
 application which launches the wine version of notepad instead?
</quote></p>
<p>Francois Gouget said it wasn't that simple,
<quote who="Francois Gouget">
 The problem is that write will handle RTF and Word documents correctly,
 while notepad is just a text editor and will only display garbage...
 (yes, wordpad will probably have problems with complex word documents,
 but it should work with simple ones)
</quote> Dmitry Timoshkov gave a little more detail and a possible
solution:</p>
<quote who="Dmitry Timoshkov"><p>
I believe that Write is able to handle only old Word 5.x/6.x format files
(and of course RTFs). RTFs should not produce too much trouble (just feed
them to a richedit control). Regarding Word 5.x format here is a snipped
from my very old DOS code which handled those files (*.doc,*.wri) well
(it completely ignores formatting though):

<ul><i>[ <a href="http://www.winehq.com/hypermail/wine-devel/2002/06/0287.html">
  link </a> ]</i></ul></p>
<p>
I.e. there is a 128 bytes header with signature and text length in it.
</p><p>
I think that our notepad could be easy enhanced to deal with that format.
Write could be just a symlink to notepad.
</p></quote>
</section>












<section
	title="Adding FriBiDi Support"
	subject="Dynamically linking with a Unix library - or not"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/06/0304.html"
	posts="11"
	startdate="17 Jun 2002 23:00:00 -0800"
	enddate="18 Jun 2002 23:00:00 -0800"
>
<topic>Internationalization</topic>
<mention></mention>

<p>Shachar Shemesh was wondering how to go about adding the
FriBiDi library to Wine in order to support bi-directional
text:</p>
<quote who="Shachar Shemesh"><p>
 I'm seeing two possible solutions to this
 problem:
<ul>
  <li> If Fribidi was present during compile, check for its existance during
 run time. If not present, don't enable the run time option. or </li>
  <li> Copy (port?) Fribidi into the WINE code. It's LGPL, so the license
 does allow that.</li>
</ul></p></quote>

<p>Francois Gouget put forth some ideas:</p>
<quote who="Francois Gouget"><p>
 A way to deal with [<i>it</i> ] is to do like for FreeType, i.e. load the library
 dynamically at runtime, and disable support for it if that fails.
</p><p>
 But I have another question which you have probably already envisioned
 (might even have already discussed on the list though I can't remember
 right now): FriBiDi being a Unix Unicode library, I assume it uses
 4-byte Unicode characters? Won't it be a problem since Wine uses 2-byte
 Unicode characters?
</p><p>
 That may be another argument for integrating FriBiDi with Wine</p>
</quote>

<p>Behdad Esfahbod jumped in to mention that FriBiDi supports two or
four byte characters depending on how it's compiled.  A simple check
in configure can determine which is the case.  Behdad also thought
maybe a customized version of FriBiDi residing in Wine code might be
needed.</p>

<p>Alexandre thought adding it to Wine was probably a good idea,
<quote who="Alexandre Julliard">
 We need 16-bit Unicode chars anyway so
 you probably can't use the standard Fribidi. And this way we can share
 the Unicode tables with the rest of our code instead of duplicating a
 whole lot of it. All you really need from Fribidi is the algorithms,
 and these are not going to change often anyway so copying them into
 Wine shouldn't be too bad.</quote></p>

</section>







<section
	title="Multiple Wine Configurations"
	subject="Notes R4 redraw problem"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/06/0328.html"
	posts="10"
	startdate="18 Jun 2002 23:00:00 -0800"
	enddate="19 Jun 2002 23:00:00 -0800"
>
<topic>Documentation</topic>
<mention></mention>
<mention>Ian Pilcher</mention>

<p>Ian Pilcher was having a redrawing problem with the Lotus Notes
client (version 4.6.7).  In the course of discussion Ian
mentioned that it had worked about a year ago but a patch had
caused a problem at some point.  Tony Lambregts mentioned,
<quote who="Tony Lambregts">
 I estimate that it should take no more then 12 itinerations to
 find the day of patch that broke it </quote>  Ian wanted to
avoid installing Wine multiple times because of the hassle of
tweaking the installations.  Several people jumped in to mention
that it's really not that hard to do.  Vincent Beron had the
first suggestion:</p>
<quote who="Vincent Beron"><p>
Wouldn't it be possible to just install it in a scratch directory in the
home dir or in /tmp? That's what I do now for test builds, and it works
pretty well. I just use a wrapper script (yes, another) to wine, which
sets up the environment variables needed for it to work (PATH,
LD_LIBRARY_PATH, etc.).
</p><p>
In fact, I
<a href="http://www.winehq.com/hypermail/wine-devel/2002/06/att-0342/01-wine-wrap-vb.sh__charset_ISO-8859-15">
attach it</a> here if you'd need it (or if somebody else needs
it). Of course, you also need to tell <code>./configure
--prefix=/where/you/want/it</code>, then it's a normal make depend, make, make
install.
</p><p>
The first time, you'll also need to modify your wine.conf and install
the basic registry. And when you're finished with it, rm -rf (or F8 in
mc).
</p></quote>

<p>Francois suggested something similar:</p>
<quote who="Francois Gouget"><p>
You don't even need to install it at all. I have never installed Wine on
my system.
</p><p>
What I do is something along the lines of:
<ul><code>

  export WINE_ROOT=/home/fgouget/wine/wine<br />
  export LD_LIBRARY_PATH="$WINE_ROOT:$LD_LIBRARY_PATH"<br />
  export PATH="$WINE_ROOT:$WINE_ROOT/server:$WINE_ROOT/tools:$PATH"<br />
  export WINEDLLPATH="$WINE_ROOT/dlls"
</code></ul>
</p><p>
Actually I have a script that does the above and which I use to pick one
Wine tree or another (". wenv wine" or ". wenv wine2", etc.).
</p><p>
I also have a ~/.wine directory with a fake_windows configuration that I
reuse from one time to the next. I also have it tarred so I can in
essence "rm -rf ~/.wine &amp;&amp; tar xvfz dotwine.tar.gz".
</p></quote>

<p>Vincent asked about some of the variables in the script to which
Francois replied:</p>
<quote who="Francois Gouget"><p>
<code>WINE_ROOT</code> is just an environment variable I use so that I don't have to
type the full path to the Wine sources over and over. It's even more
useful in my wenv script.
</p><p>
<code>WINEDLLPATH</code> tells Wine where to find the builtin Wine dlls. Here
/home/fgouget/wine/dlls
</p><p>
<code>WINE_PREFIX</code> tells Wine where to find its configuration file. By default
this is $HOME/.wine
</p></quote>


</section>


</kc>

