<kc version="0.1.0">

<title>Wine Traffic</title>

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

<issue num="142" date="01 Nov 2002 00:00:00 -0800" />

<intro>

<p>This is the 142nd 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="461" size="1447" contrib="91" multiples="53" lastweek="40">

<person posts="65" size="169" who="Dimitrie O. Paun" />
<person posts="34" size="127" who="Greg Turner" />
<person posts="32" size="75" who="Alexandre Julliard" />
<person posts="22" size="67" who="Andreas Mohr" />
<person posts="17" size="54" who="Francois Gouget" />
<person posts="16" size="42" who="Eric Pouech" />
<person posts="13" size="48" who="Shachar Shemesh" />
<person posts="12" size="34" who="Uwe Bonnes" />
<person posts="11" size="64" who="Michael Stefaniuc" />
<person posts="11" size="28" who="Patrik Stridvall" />
<person posts="10" size="52" who="Ove Kaaven" />
<person posts="10" size="37" who="Peter Andersson" />
<person posts="10" size="29" who="Jaco Greeff" />
<person posts="10" size="22" who="Lionel Ulmer" />
<person posts="9" size="43" who="Martin Wilck" />
<person posts="9" size="24" who="Jaco Greeff" />
<person posts="8" size="29" who="Matthew Bloch" />
<person posts="8" size="20" who="Gyorgy Jeney" />
<person posts="8" size="18" who="David Laight" />
<person posts="7" size="14" who="Dustin Navea" />
<person posts="6" size="17" who="Kye Lewis" />
<person posts="6" size="15" who="Dmitry Timoshkov" />
<person posts="6" size="14" who="Rein Klazes" />
<person posts="6" size="13" who="David D. Hagood" />
<person posts="5" size="13" who="Ender" />
<person posts="4" size="11" who="Joerg Mayer" />
<person posts="4" size="10" who="Johan Gill" />
<person posts="6" size="18" who="Vincent Beron" />
<person posts="3" size="13" who="Paul Millar" />
<person posts="3" size="12" who="(chrismorgan)" />
<person posts="3" size="11" who="Tony Lambregts" />
<person posts="3" size="11" who="Rick Romero" />
<person posts="3" size="10" who="P. Christeas" />
<person posts="3" size="8" who="Alberto Massari" />
<person posts="3" size="8" who="Juergen Schmied" />
<person posts="3" size="7" who="Jeff Smith" />
<person posts="3" size="7" who="(steve.lustbader)" />
<person posts="3" size="7" who="Carlos Lozano" />
<person posts="3" size="7" who="Steve Langasek" />
<person posts="2" size="34" who="Peter Ekberg" />
<person posts="2" size="15" who="Malte Starostik" />
<person posts="2" size="14" who="Geoff Thorpe" />
<person posts="2" size="9" who="Raul Dias" />
<person posts="2" size="6" who="Rizsanyi Zsolt" />
<person posts="2" size="5" who="John K. Hohm" />
<person posts="2" size="5" who="Jeremy White" />
<person posts="2" size="5" who="Kye Lewis" />
<person posts="2" size="5" who="Marcus Meissner" />
<person posts="2" size="5" who="Duane Clark" />
<person posts="2" size="4" who="Dirk" />
<person posts="2" size="4" who="Sylvain Petreolle" />
<person posts="2" size="4" who="Steven Edwards" />
<person posts="1" size="8" who="David Fraser" />
<person posts="1" size="5" who="Christoph Frick" />
<person posts="1" size="4" who="Zsolt Rizsanyi" />
<person posts="1" size="4" who="Stefan Leichter" />
<person posts="1" size="3" who="Paul Rupe" />
<person posts="1" size="3" who="Bobby Bingham" />
<person posts="1" size="3" who="Thomas Wickline" />
<person posts="1" size="2" who="Jeremy Newman" />
<person posts="1" size="2" who="Marcus Meissner" />
<person posts="1" size="2" who="Michael Wetherell" />
<person posts="1" size="2" who="Francois Gouget" />
<person posts="1" size="2" who="Z_God" />
<person posts="1" size="2" who="Fabian Cenedese" />
<person posts="1" size="2" who="dan carter" />
<person posts="1" size="2" who="Jeremy Newman" />
<person posts="1" size="2" who="Juraj Hercek" />
<person posts="1" size="2" who="Medland, Bill" />
<person posts="1" size="2" who="Chris Thielen" />
<person posts="1" size="2" who="Brad Campbell" />
<person posts="1" size="2" who="Matthew Davison" />
<person posts="1" size="2" who="Mike McCormack" />
<person posts="1" size="2" who="Johan Dahlin" />
<person posts="1" size="2" who="Ian Pilcher" />
<person posts="1" size="2" who="(post)" />
<person posts="1" size="2" who="Christensen Tom" />
<person posts="1" size="2" who="(kyethespy)" />
<person posts="1" size="2" who="Rolf Kalbermatter" />
<person posts="1" size="2" who="David Christensen" />
<person posts="1" size="2" who="Domsodi Gergely" />
<person posts="1" size="2" who="Andriy Palamarchuk" />
<person posts="1" size="2" who="Mike Hearn" />
<person posts="1" size="2" who="Dan de Haan" />
<person posts="1" size="1" who="Doug Brown" />
<person posts="1" size="1" who="doome" />
<person posts="1" size="1" who="yumj" />

</stats>




<section 
	title="News: SuSE &amp; CrossOver Office; Xandros LUG Discount" 
	subject="News"
	archive="http://www.suse.com/us/company/press/press_releases/archive02/office_desktop.html" 
	posts="1" 
	startdate="26 Oct 2002 00:00:00 -0800"
	enddate="01 Nov 2002 00:00:00 -0800"
>
<topic>News</topic>
<mention></mention>
<mention>Xandros</mention>
<mention>News</mention>

<p>
SuSE is releasing a product called 
<a href="http://www.suse.com/us/company/press/press_releases/archive02/office_desktop.html">"SuSE 
Linux Office Desktop"</a> sometime
early next year.  They've released this product before (or at least 
something very similar) but this time they've added CrossOver Office
1.2.</p>

<p>Xandros announced special pricing for LUG members worldwide.  If
you're a member of a Linux User Group ask your officers about it and
what the discount code is.  Also in Xandros news, ExtremeTech did 
<a href="http://www.extremetech.com/article2/0,3973,648362,00.asp">a
review</a>. 
<a href="http://www.extremetech.com/image_popup/0,3969,s=1027&amp;iid=17223,00.asp">
obScreenShot</a>.</p>


<p>
Also, check out the <a href="http://www.winehq.com/about/index.php?contrib">Contribute</a>
page on WineHQ to find things that need to be worked on - Andi Mohr updated some of the 
jobs on there this week.  And a lot of them don't even involve coding.  </p>
</section>





<section 
	title="A Big To-Do List" 
	subject="Versions &amp; mass-appeal"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0959.html" 
	posts="120" 
	startdate="30 Oct 2002 00:00:00 -0800"
	enddate="01 Nov 2002 00:00:00 -0800"
>
<topic>Project Management</topic>
<mention>Alexandre Julliard</mention>
<mention></mention>
<mention>Jeremy White</mention>
<mention>Jeremy Newman</mention>

<p>The talk on the wine-devel mailing list this week has been less about the
technical details of Wine and more oriented towards project management.  It
seemed pretty much everyone was in agreement that everything surrounding Wine
needed to be revamped, updated, or completely redone.  Discussion centered 
around <a href="http://www.winehq.com/">WineHQ</a>, release management, documentation,
and configuring Wine.  Basically anything that's considered a barrier to 
people using Wine was discussed.  I'm not going to go into the details of
some of the discussion, though some of the topics are discussed below.  I
urge you to check out the <a href="http://www.winehq.com/hypermail/wine-devel/">archives</a>
for more details.  Also, insofar as public forums go, mailing lists tend
to only generate discussion when people disagree.  Most of the disagreement
in the discussion has been over relatively minor points.  Does that
mean most of the developers seem to agree?
</p>

<p>I'm going to do a poor job summarizing this topic
in general.  And most certainly I'll do a disservice
to anyone who contributed to this discussion.  First, 
let me just run down a quick summary of the threads 
that generated this discussion:
<ul><li><a href="http://www.winehq.com/hypermail/wine-devel/2002/10/0959.html">
	Versions &amp; mass-appeal</a>: Dimi Paun started 
	discussion centered around attracting attention to
	Wine and formulating a release plan starting with a version .8
	and leading to 1.0,
	<quote who="Dimitrie Paun">
	people need
	major events to reevaluate their opinions. Being major, they
	are by definition few, and so we don't have too many chances.
	For Wine, these events are the upcoming x.y releases.</quote></li>

    <li><a href="http://www.winehq.com/hypermail/wine-devel/2002/10/1045.html">So 
	lets say we do it</a>: Dimi collected a lot of the thoughts
	in the previous thread and began discussion about some of the
	shortcomings of Wine.  Among them he included website navigation,
	lack of documentation, and overall difficulty running applications.</li>

    <li><a href="http://www.winehq.com/hypermail/wine-devel/2002/10/1132.html">
	Wine 0.8 TODO v0.1</a>: Once again, Dimi summarized the threads
	and formed it into a To-Do list.  Yes, to-do lists have been
	discussed before, but have almost always centered around the 
	software architecture.  But Dimi's list hardly included anything
	about the architecture and concentrated more on user oriented things
	such as configuration, documentation, distribution maintainers, etc.</li>
</ul></p>

<p>Again, lots of discussion ensued.  At press time, Dimi had once
again revised his list and narrowed it down.   Also, Alexandre
had suggested most of the items fell into the .9 release plan 
hence the initial comment:</p>
<quote who="Dimitrie Paun"><p>
This will probably get renamed to Wine 0.9 TODO,
after Alexandre's clarification, but I haven't
changed the name just yet, to avoid confusion.</p>
<p>
Once again, what I mean by 0.8:
<ul>
 <li> Users can start using Wine: works well for a fair number of apps, 
        no MS DLLs required (from real Windows)</li>
 <li> User facing stuff (website, docs, etc.) are in
        a decent state, to avoid scaring them away</li></ul>
</p><p>
What is NOT in 0.8:
<ul>
  <li> stable server protocol: no binary compatibility</li>
  <li> DLL separation: ditto</li>
</ul>
</p><p>
That being said, this is my initial list. Comments,
flames, suggestions, are appreciated.
</p><p>
<ul>
<li> WineHQ work (Beta at: <a href="http://lostwages.winehq.org">http://lostwages.winehq.org</a>)
 <ol>
  <li> Website redesign
     <ul><li>
 	Jeremy Newman</li></ul></li>
  <li> Reorganize the navigational menu
     <ul><li>
	There is a proposal being discussed on the list</li></ul></li>
  <li> Create some really sexy screenshots
     <ul><li>
	one app per screenshot, avoid cluttered desktop</li>
	<li>minimize size, if possible by using 
	   'Positioned Color Dithering'</li></ul></li>
  <li> Rework the FAQ interface 
     <ul><li>
     (static HTML, a la 
	<a href="http://www.dvddemystified.com/dvdfaq.html">http://www.dvddemystified.com/dvdfaq.html</a>,
      all on one page, with a clickable question list at the top)
	Agreed on the list. Should be written in SGML, so
	we can output all sorts of formats. Which means we
	need layouts, etc. Any takers?</li></ul></li>
  <li> Enlist some 'official' distribution maintainers
     (at the minimum RedHat, Suse, Mandrake, Debian)</li>
  <li> Create nice page with apps that run virtually flawless
     They should not require MS dlls, tricks, etc. to run
     Small explanation, screeshot, optional link to download
     page, such as Tucows.
	Carlos is running with it.</li>
 </ol>
</li>
<li> Documentation work<br />
  Andy, take it away! :)
  <ol><li> We need to figure first _what_ is out of date.</li></ol>
</li>
<li> Wine configuration
 <ol>
  <li> Merge configuration into the registry</li>
  <li> Write control panel applets for editing it</li>
  <li> Have decent defaults so we can start control panel 
     without prior configuration</li>
  <li> Have wizard like app to autoconfigure wine
	WineSetupTk proposed by Jeremy White</li>
  <li> Make Wine's DLLs register themselves to avoid
     manual merging of the winedefault.reg</li>
  <li> Write .inf script to setup a new Wine installation</li>
  <li> Have a wineboot script for RunOnce stuff</li>
 </ol>
</li>
<li> Stabilize utilities
 <ol>
  <li>Get rid of the init directive from .spec files
	Alexandre Julliard volunteered</li>
  <li> Make sure the .spec file format is fairly stable
	Any other things that may need changing here?</li>
  <li> Ensure the various utilities' options are stable
	Anything here?</li>
 </ol>
</li>
<li> Important fixes
 <ol>
  <li> Window management rewrite, so we can install apps in managed mode.</li>
 </ol>
</li></ul>
</p></quote>

</section>









<section 
	title="Releasing WineSetupTk" 
	subject="WineSetupTk"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/11/0055.html" 
	posts="2" 
	startdate="01 Nov 2002 00:00:00 -0800"
>
<topic>Codeweavers</topic>
<mention>CodeWeavers</mention>
<mention></mention>
<mention>Codeweavers</mention>

<p>Jeremy White put forth the following proposition
concerning WineSetupTk (CodeWeavers' graphical
configuration tool):</p>
<quote who="Jeremy White"><p>
 In responding to Dimi's call for better binary packaging,
 and the whole issue of getting a base line config ready,
 it felt clear to me that WineSetupTk is a tool that
 is underutilized.
</p><p>
 I have been trying to persuade Alexandre to include
 WineSetupTk in the main Wine distribution for some
 time now, and have always failed.  (Alexandre
 is rightly concerned about increasing the dependencies
 in Wine).
</p><p>
 However, it struck me that we ought to be able to do
 a better job of making it available to binary packagers
 so that it could be included in more packages.  We could
 also make it easier for people to get both Wine and
 WineSetupTk from source.
</p><p>
 To that end, I have the following proposal, and I wanted to
 see what folks here thought.
</p><p>
 We would create a parallel CVS tree to Wine; say the
 winesetuptk tree.  We'd put that code out under
 a dual license (GPL/but we still own rights).
 I'd probably welcome multiple maintainers.
</p><p>
 The only thorny issue is that we share code between
 WineSetupTk and some of our proprietary pieces.  We
 could shift our main WineSetupTk development to this
 tree, and share the common bits, including our developments
 as we make them.  However, in exchange, we would 
 need anyone making changes to WineSetupTk to grant
 us a license to use their changes in our proprietary 
 stuff.  (And, of course, if we ever abuse this, someone
 can take the GPL tree and go host it somewhere else).
</p></quote>

<p>As of press time there hasn't been much response,
however I suspect most people think this would be a great
tool to have available.</p> 

</section>






<section 
	title="FAQ Maintainer Needed" 
	subject="Wine FAQ - call for a volunteer"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/11/0026.html" 
	posts="13" 
	startdate="01 Nov 2002 00:00:00 -0800"
>
<topic>Documentation</topic>
<mention></mention>
<mention>Jeremy Newman</mention>

<p>Wine documentation.. never mind, I won't even open
that can of worms.  Suffice to say, lots of it needs
some care and attention.  Jeremy White put out a call
for someone to maintain 
<a href="http://www.winehq.org/FAQ">
Wine's FAQ</a>:</p>
<quote who="Jeremy White"><p>
Andi and I have talked about the FAQ a lot on
and off through the years, going back to when
he was in St. Paul and first set up the
FAQ-o-matic.
</p><p>
When I go visit a project the very first
thing I look at (before screenshots,
about, or *anything* else) is the FAQ.
</p><p>
Therefore, I think it's extremely important to
have a good FAQ.
</p><p>
Now, Andi has poured a lot of work and energy
into the FAQ over the years.  But, here's
the truth - it's not really a job he wants.
(He and I discussed it privately).
There are a lot of other things he'd rather do.
</p><p>
So, I'm hoping that we could get a volunteer
to step forward and take over responsibility
for the FAQ from Andi.  I'm particularly hoping
that one of the new crop of wine-devel participants
would be inspired to volunteer.
</p><p>
My vision for the FAQ is a hand edited main
FAQ with the current FAQ-o-matic being
pushed to a secondary role.
</p></quote>

<p>Dimi Paun threw out the first idea,
<quote who="Dimitrie Paun">
 Please get rid of the FAQ-O-matic. The interface
 is atrocious. A hand written one would do just
 fine, is not like we add 100 questions per day!
 (And if we do, something's wrong, who's gonna read them?)
</quote> The FAQ-O-Matic he refers to is the
link above.  The interface is hard to use for
just basic information.  Andi Mohr pointed out
that it also houses a troubleshooting guide, and
for that it seems suited.  Others argued that even
for a troubleshooting guide the interface is so bad
it detracts from the content. </p>

<p>In the end, everyone agreed a static page
needed to be created for the FAQ that was easy to navigate.
Jeremy Newman suggested any work on the FAQ 
be done with SGML in order to make converting 
it to other formats easy.  Anyone want to volunteer?
It's as easy as 
<a href="mailto:wine-devel@winehq.com?subject=Re: Wine FAQ - call for a volunteer">responding</a>
to Jeremy's <a href="http://www.winehq.com/hypermail/wine-devel/2002/11/0026.html">
original post</a>.</p>

</section>






<section 
	title="Conversion to -DSTRICT" 
	subject="Status Report: -DSTRICT"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0755.html" 
	posts="1" 
	startdate="25 Oct 2002 00:00:00 -0800"
>
<topic>Status Updates</topic>
<mention></mention>

<p>The conversion to using -DSTRICT covered a few weeks ago is progressing well.  Michael
Stefaniuc wrote in with a status update:</p>
<quote who="Michael Stefaniuc"><p>
status reports seems to be pretty popular this day so here is mine
regarding compiling wine with -DSTRICT. Below is the amount of warnings
we get when removing -DWINE_NO_STRICT:</p><p>
<center><table border="0">
<tr><th>dll     </th><th>	real</th><th>	total</th></tr>
<tr><td>commdlg	</td><td>	 21</td><td>	 63</td></tr>
<tr><td>gdi     </td><td>	128</td><td>	273</td></tr>
<tr><td>ntdll	</td><td>	148</td><td>	178</td></tr>
<tr><td>ole32	</td><td>	 16</td><td>	 38</td></tr>
<tr><td>shell32</td><td>	120</td><td>	155</td></tr>
<tr><td>user	</td><td>	450</td><td>	839</td></tr>
<tr><td>winmm/wavemap</td><td>	  7</td><td>	 40</td></tr>
<tr><td>winmm	</td><td>	104</td><td>	145</td></tr>
<tr><td>winsock	</td><td> 	14</td><td>	 42</td></tr>
<tr><td>x11drv  </td><td>	60</td><td>	 79</td></tr>
<tr><td>total	</td><td>       1068</td><td>    1852</td></tr>
</table></center></p><p>
"real" is the number of warning for which real work is need to be done,
the rest up to "total" are warnings of the type "int format, HANDLE arg".
And to fix this beasts just grab
<a href="http://people.redhat.com/mstefani/wine/fixpointerarg.pl">
http://people.redhat.com/mstefani/wine/fixpointerarg.pl</a>
and do:<ul><code>
cd wine/dlls/$dll_in_work<br />
make clean<br />
make 2>&amp;1 | fixpointerarg.pl<br /></code></ul>
and you should be done.</p>
<p>
P.S.: a request from Eric: please let him finish the 32bit - 16bit
separation of winmm. After that is yours.
</p></quote>


</section>











<section 
	title="Wine/Windows Security Concerns" 
	subject="Wine securityflaw."
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0798.html" 
	posts="35" 
	startdate="26 Oct 2002 00:00:00 -0800"
	enddate="01 Nov 2002 00:00:00 -0800"
>
<topic>Integration</topic>
<mention></mention>
<mention>David Hagood</mention>

<p>Peter Andersson started a thread out innocently enough
by asking about implementing more security in Wine:</p>
<quote who="Peter Andersson"><p>
I believe most wine users trust wine not to touch anything outside of 
its configured drive space. Malicious Linux/Unix syscalls could be embedded
in windows apps and if executed  do a great deal of damage. After all checking
your app is run whithin Wine is not that hard (reading registry settings for
instance). Lets call such an malicious app a wine-virus from  now on. 
At present a wine-virus would even be allowed to fork itself, leaving the wine
environment and continue to run even after you shutdown the wineserver,  and
in some cases even after the user logs out. The virus would now have full 
access to the system whithin the users permission, doing much greater
damage than you expected. 
</p><p>
The question is...Would you expect that damage from running a windows app
in wine, when you know it could be safely run in Windows?
In just a few embedded bytes in the code it could remove your home directory 
in a single syscall. Would you expect that? - I wouldnt.
</p><p>
Cant we atleast try implement some protection in wine against these attacks,
before something really nasty happens. I do think company policy decissions
againt using wine, will do just as much damage to the wine movement as too
the free software movement at large. 
</p></quote>
<p>A lot of random ideas were thrown about, and almost everyone was
averse to the idea of changing Wine.  A lot of people felt the
best thing to do was use existing tools to provide a safer environment.
Vincent Beron suggested, 
<quote who="Vincent Beron">
 Use the LSM patches for Linux if you want to monitor certain system calls.
 Use Wine in UML, chroot, or as a separate user (*not* as SUID) if you 
 want to protect your current $HOME.</quote></p>
<p>Greg Turner expounded on that idea:</p>
<quote who="Greg Turner"><p>
I concur with Vincent, here.  As wine exists here and now, we are
basically implementing the level of "security" provided by Windows 9x.
That is, wine "emulates" an OS with no security measures at the filesystem
level, no security policy regarding what API's can be called (except as
provided by the CPU itself), and so on.
</p><p>
Luckily, the native operating systems that host wine tend to be rich with
security features, and those can be used to sandbox wine until some more
sophisticated application-level security measures exist.
</p><p>
We've recently talked about some ways to move forward towards implementing
the NT-style security model in wine.  When those plans move forward, one of the
issues to consider is the tendency of windows to propogate virii, and the 
possible need to selectively prohibit wine from accessing resources that
the user invoking wine might have full control of.
</p><p>
Unless wine is going to be a true emulator (instead of an engine for executing
windows apps natively under the security context of the invoking user), we 
simply cannot solve this "problem," by definition.
</p><p>
The closest thing to a solution involves a massive reconceptualization
of how wine works (for example, the invoking user runs userwine, which
uses some kind of IPC to talk to sandbox-wine, which does all the actual
executing of windows code or, alternatively, wine works like a just-in-time
compiler, verifying code is safe before it's loaded into memory (terrible idea 
IMHO)).  Since "emulating" the NT security model for wine is a similarly major 
undertaking, and provides most of the same benefits as Peter would have, I
think this is how we should solve this "problem".
</p><p>
Food for thought: by Peter's definition, neither Windows, nor most Unix operating
systems, provide an acceptable level of security.  Wine is no better, but also no
worse, than any other powerful application, such as GNU make, bash, or the
Konqueror file browser, from a security perspective.  All of these can be used to
destroy your $HOME directory and any other file you can delete.
</p><p>
I think the problem is one of wine being closely associated with Windows,
and windows having a reputation of being insecure; in other words, it's a problem
of perception, not of technical merit.  Nothing wrong with that -- problems of perception
can kill a project -- but bear in mind that, if wine, even as it exists today, is run in a
carefully administered manner on a good secure OS, it ought to be safer than native
Windows to run, if you accept the assumption that UNIX-like OS's are more secure than
Windows ones.  If you really don't trust windows, you could argue that running under
wine in a sandbox is the /only/ safe way to run windows programs outside of an
emulator.
</p><p>
Just my opinion, probably worth about what you paid for it, but there you go.
</p></quote>
<p>Alexandre's opinion was, 
<quote who="Alexandre Julliard">
If you run untrusted code under your account it can do
anything that you are allowed to. This is exactly equivalent to
running an untrusted Linux app. From a security standpoint there is
absolutely no difference between a Windows binary running under Wine
and a Linux binary running natively.

You can use the DOS drive configuration to limit the potential
problems a bug in a Windows app can cause; but it is impossible to
protect against malicious code except by not running it. Wine is not,
and cannot be, a sandbox for running untrusted code.</quote></p>
<p>Creating a sandbox by using other programs was discussed.  
Francois Gouget thought jail might be a possibility:</p>
<quote who="Francois Gouget"><p>
Why don't you study how chroot or jail could be used in combination with
Wine to build a sandbox? As far as I know no-one has tried that and it
is possible that some changes in Wine could make things simpler to set
up. Of course, we won't know until someone actually tries this.
</p><p>
Also, I'm told that jail (available on FreeBSD) is much better than
chroot. chroot only restricts access to files while I believe jail can
also restrict access to other running processes and other system
resources.  Unfortunately I don't think a jail-like functionality is
implemented on Linux. If you were to implement this I'm sure countless
people would be grateful.
</p><p>
<a href="http://docs.freebsd.org/44doc/papers/jail/jail.html">
http://docs.freebsd.org/44doc/papers/jail/jail.html</a>
</p><p>
Finally you could wrap it up by writing scripts that would make it easy
to run Wine in a sandbox, and restore the sandbox to a clean state after
a program has been run.
</p></quote>
<p>David Hagood thought checking the execute bit of a file before
running it might provide a little better security, especially
for things like the Klez virus running via KMail.  But Eric 
Pouech pointed out a problem,
<quote who="Eric Pouech">
that could bring some issues while trying to run a native executable
from a mounted FAT driver (without the proper umask option for mount)
(this could be circumvented by a drive configuration option in wine, but
that would be a bit tricky to set for the average user)</quote>
Andi Mohr mentioned that it would break installers too.</p>
<p>Other discussion involved making it much harder to
run Wine as root, intercepting Wine server calls, and other
architecture changes.  </p>
</section>



<section 
	title="Detecting Wine vs. Windows" 
	subject="How can an app detect it's running under WINE?"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/0704.html" 
	posts="" 
	startdate="25 Oct 2002 00:00:00 -0800"
>
<topic>Winelib</topic>
<mention></mention>
<mention>Uwe Bonnes</mention>
<mention>Patrik Stridvall</mention>

<p>Alberto Massari wanted to know how to go about detecting a Wine environment:</p>
<quote who="Alberto Massari"><p>
I am working on making our software (Stylus Studio, 
<a href="http://www.stylusstudio.com">http://www.stylusstudio.com</a>) 
run under WINE, if this is feasible. To 
achieve this, I have already implemented a bunch of APIs (the application 
is built against the UNICODE version of the Win32 APIs) and fixed some bugs 
I hit (I already mailed the first patch to wine-patches@winehq.com).
</p><p>
However, I would feel better if I could detect I am running under WINE and 
gracefully disable some functionalities that are not yet fully supported; 
is there any way to achieve this? Is there a WIN32 API (like, say, 
GetVersionEx) that can return a string like "Windows 2000 (WINE)" or is 
WINE trying to be as stealth as possible?
</p></quote>

<p>Pretty much everyone was in agreement that specifically detecting
Wine was not the solution.  Instead, the missing functionality should
just be added.  However, as Uwe Bonnes pointed out, it's possible to
look for Wine registry entries.  Patrik Stridvall mentioned doing so
wasn't necessarily guaranteed since those entries may not be there
due to future changes.  Paul Rupe's suggestion was a little more
graceful:</p>
<quote who="Paul Rupe"><p>
My suggestion is whenever possible check for features, not version strings.  
Just call the API and if it fails, then gracefully disable whatever 
functionality.  When some future version of Wine supports that API, it will 
just start working without any further effort on your part.  An added 
benefit is that whichever Wine developer is implementing that feature will 
have your app to test with.  Also have some sympathy for the poor Wine 
developer tearing his hair out trying to figure out why your app behaves 
differently in Wine vs. Windows no matter how perfect his shiny new 
DX12/DCOM/HAL/TANSTAAFL implementation is. :)</p></quote>

</section>






<section 
	title="IDL Generated obj_* Headers" 
	subject="IDL/header issues"
	archive="http://www.winehq.com/hypermail/wine-devel/2002/10/1160.html" 
	posts="8" 
	startdate="31 Oct 2002 00:00:00 -0800"
	enddate="01 Nov 2002 00:00:00 -0800"
>
<topic>Patches</topic>
<mention></mention>
<mention>Ove K&#229;ven</mention>
<mention>Greg Turner</mention>

<p>Ove K&#229;ven asked:</p>
<quote who="Ove Kaaven"><p>
Now WIDL is good enough to generate a drop-in replacement for Wine's
wtypes.h (attached) from a suitably crafted Wine-compatible wtypes.idl
(also attached). I've included all the definitions that were already in
Wine's wtypes.h (but I was too lazy to do everything that's in Microsoft's
wtypes.idl yet).
</p><p>
What do you think, is this good enough to go into Wine? Are there some
desirable changes to widl or wtypes.idl? And should IDL files go into the
main include dir along with the other Win32 headers?
</p><p>
IDL-generated files would also eventually obsolete all the current
wine/obj_*.h files, but those obj_* files seem to be somewhat more
logically structured than MS's own IDL files, should we craft Wine's IDL
files accordingly, and maybe have some top-level .idl files in include/
and some sub-.idl files under include/wine/, like it's done now in e.g.
objidl.h?
</p></quote>

<p>Concerning the structure of the files, Alexandre replied,
<quote who="Alexandre Julliard">
 No, I think we should follow the Microsoft way. Sure it's a mess, but
 so is the rest of the API anyway... And every time we tried to do
 things better than Microsoft we ended up having to revert it.</quote></p>

<p>The work seems to stand a decent chance of making it into Wine.
Greg Turner volunteered to merge the work from the ReWind tree Ove
is working out of into the Alexandre's LGPL'ed one.</p>  

</section>
</kc>


