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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="312" date="28 Apr 2006 00:00:00 -0800" />
<intro> <p>This is the 312th issue of the Wine Weekly News publication.
Its main goal is to attend weddings. It also serves to 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 it 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.org">www.winehq.org</a></p> </intro>
<stats posts="614" size="1184" contrib="134" multiples="88" lastweek="51">

<person posts="32" size="32" who="julliard at winehq.org (Alexandre Julliard)" />
<person posts="27" size="69" who="speeddymon at gmail.com (Tom Spear (Dustin Booker, Dustin Navea))" />
<person posts="24" size="37" who="mike at plan99.net (Mike Hearn)" />
<person posts="22" size="87" who="segin2005 at gmail.com (Segin)" />
<person posts="22" size="33" who="the3dfxdude at gmail.com (Jesse Allen)" />
<person posts="20" size="38" who="molle.bestefich at gmail.com (Molle Bestefich)" />
<person posts="17" size="17" who="dimi at lattica.com (Dimi Paun)" />
<person posts="15" size="22" who="blin at gmx.net (Kai Blin)" />
<person posts="15" size="14" who="dank at kegel.com (Dan Kegel)" />
<person posts="17" size="55" who="marcus at jet.franken.de (Marcus Meissner)" />
<person posts="14" size="19" who="mike at codeweavers.com (Mike McCormack)" />
<person posts="13" size="11" who="truiken at gmail.com (James Hawkins)" />
<person posts="12" size="21" who="eric.pouech at wanadoo.fr (Eric Pouech)" />
<person posts="11" size="9" who="hverbeet at gmail.com (H. Verbeet)" />
<person posts="10" size="48" who="tom at dbservice.com (Tomas Carnecky)" />
<person posts="10" size="18" who="willie at zeitgeistmedia.net (Willie Sippel)" />
<person posts="10" size="16" who="dmitry at codeweavers.com (Dmitry Timoshkov)" />
<person posts="9" size="13" who="dclark at akamail.com (Duane Clark)" />
<person posts="9" size="8" who="wine.dev at web.de (Detlef Riekenberg)" />
<person posts="9" size="7" who="alex at thehandofagony.com (=?UTF-8?B?IkFsZXhhbmRlciBOLiBTw7hybmVzIg==?=)" />
<person posts="8" size="27" who="stefandoesinger at gmx.at (Stefan D&#246;singer)" />
<person posts="8" size="11" who="butsergej at yandex.ru (Sergei Butakov)" />
<person posts="8" size="8" who="phil at newstar.rinet.ru (Phil Krylov)" />
<person posts="7" size="19" who="karl at qdh.org.uk (Karl Lattimer)" />
<person posts="7" size="11" who="h.davies1 at physics.ox.ac.uk (Huw D M Davies)" />
<person posts="6" size="12" who="s0348365 at sms.ed.ac.uk (Alistair John Strachan)" />
<person posts="6" size="9" who="rob at codeweavers.com (Robert Shearman)" />
<person posts="6" size="6" who="wine-devel at kievinfo.com (Vitaliy Margolen)" />
<person posts="6" size="5" who="winehacker at gmail.com (Steven Edwards)" />
<person posts="5" size="20" who="brian.vincent at gmail.com (Brian Vincent)" />
<person posts="5" size="16" who="fenix at club-internet.fr (Raphael)" />
<person posts="5" size="13" who="stefan at codeweavers.com (Stefan D&#246;singer)" />
<person posts="5" size="12" who="signman359 at gmail.com (Rich Gilson)" />
<person posts="5" size="9" who="philcostin at hotmail.com (Phil Costin)" />
<person posts="5" size="9" who="kuba at mareimbrium.org (Kuba Ober)" />
<person posts="5" size="9" who="n0dalus+wine at gmail.com (n0dalus)" />
<person posts="5" size="7" who="mstefani at redhat.com (Michael Stefaniuc)" />
<person posts="5" size="6" who="ivg2 at cornell.edu (Ivan Gyurdiev)" />
<person posts="5" size="6" who="h.davies1 at physics.ox.ac.uk (Huw Davies)" />
<person posts="5" size="5" who="lionel.ulmer at free.fr (Lionel Ulmer)" />
<person posts="5" size="4" who="billmedland at mercuryspeed.com (Bill Medland)" />
<person posts="4" size="19" who="futhark77 at gmail.com (Philippe A.)" />
<person posts="4" size="16" who="WOLFProductions at gmx.de (KGJ)" />
<person posts="4" size="15" who="speeddymon at gmail.com (Tom Spear)" />
<person posts="4" size="11" who="infyquest at gmail.com (Vijay Kiran Kamuju)" />
<person posts="4" size="7" who="andi at rhlx01.fht-esslingen.de (Andreas Mohr)" />
<person posts="4" size="7" who="ns03ja at brocku.ca (Neil Skrypuch)" />
<person posts="4" size="6" who="jorishuizer at planet.nl (Joris Huizer)" />
<person posts="4" size="5" who="jnewman at codeweavers.com (Jeremy Newman)" />
<person posts="4" size="4" who="bobl at optushome.com.au (Robert Lunnon)" />
<person posts="4" size="4" who="most at museresearch.com (Michael Ost)" />
<person posts="4" size="2" who="juan_lang at yahoo.com (Juan Lang)" />
<person posts="3" size="34" who="james.trotter at gmail.com (James Trotter)" />
<person posts="3" size="18" who="saulius2 at ar.fi.lt (Saulius Krasuckas)" />
<person posts="3" size="9" who="k04jg02 at kzoo.edu (Joseph Garvin)" />
<person posts="3" size="7" who="deedee at writestop.com (deedee)" />
<person posts="3" size="4" who="jwhite at codeweavers.com (Jeremy White)" />
<person posts="3" size="4" who="subsolar at subsolar.com (Paul)" />
<person posts="3" size="3" who="gerald at pfeifer.com (Gerald Pfeifer)" />
<person posts="3" size="3" who="efrias at syncad.com (Eric Frias)" />
<person posts="3" size="3" who="bon at elektron.ikp.physik.tu-darmstadt.de (Uwe Bonnes)" />
<person posts="3" size="3" who="tony.lambregts at gmail.com (Tony Lambregts)" />
<person posts="3" size="3" who="fgouget at free.fr (Francois Gouget)" />
<person posts="3" size="3" who="vapier at gentoo.org (Mike Frysinger)" />
<person posts="3" size="2" who="Paul.Vriens at xs4all.nl (Paul Vriens)" />
<person posts="3" size="2" who="hans at it.vu.nl (Hans Leidekker)" />
<person posts="2" size="13" who="paul at astro.gla.ac.uk (Paul Millar)" />
<person posts="2" size="7" who="darkhedos at gmail.com (Hedos)" />
<person posts="2" size="6" who="frapietra at alice.it (Francesco Pietra)" />
<person posts="2" size="4" who="scott at open-vote.org (Scott Ritchie)" />
<person posts="2" size="3" who="turnerb7 at msu.edu (Brandon Turner)" />
<person posts="2" size="3" who="rmiller at auctionpay.com (Ryan Miller)" />
<person posts="2" size="3" who="jacek at codeweavers.com (Jacek Caban)" />
<person posts="2" size="3" who="djshaw at classicfm.net (David Shaw)" />
<person posts="2" size="3" who="gladiac.lists at gmail.com (Christian Lachner)" />
<person posts="2" size="2" who="timschmidt at gmail.com (Tim Schmidt)" />
<person posts="2" size="2" who="Adam at luchjenbroers.com (Adam Luchjenbroers)" />
<person posts="2" size="2" who="sagar.mittal at gmail.com (Sagar Mittal)" />
<person posts="2" size="2" who="Cenedese at indel.ch (Fabian Cenedese)" />
<person posts="2" size="2" who="lav at etersoft.ru (Vitaly Lipatov)" />
<person posts="2" size="2" who="jwhite at winehq.org (Jeremy White)" />
<person posts="2" size="2" who="xerox_xerox2000 at yahoo.co.uk (Louis Lenders)" />
<person posts="2" size="2" who="jeffl at yless4u.com.au (Jeff Latimer)" />
<person posts="2" size="1" who="mjung at iss.tu-darmstadt.de (Michael Jung)" />
<person posts="2" size="1" who="jave27 at gmail.com (Jason Green)" />
<person posts="2" size="1" who="alexsornes at yahoo.no (=?UTF-8?B?IkFsZXhhbmRlciBOLiBTw7hybmVzIg==?=)" />
<person posts="2" size="1" who="alexsornes at yahoo.no (=?iso-8859-1?q?Alexander=20N.=20S=F8rnes?=)" />
<person posts="1" size="6" who="wijn at wanadoo.nl (Rein Klazes)" />
<person posts="1" size="5" who="lachienne at wanadoo.fr (Elie Morisse)" />
<person posts="1" size="4" who="astrand at cendio.se (=?iso-8859-1?Q?Peter_=C5strand?=)" />
<person posts="1" size="4" who="wine-devel at shemesh.biz (Shachar Shemesh)" />
<person posts="1" size="3" who="spamkeizer at gmail.com (liefie diefie)" />
<person posts="1" size="3" who="cdonline at tesco.net (Colin Wright)" />
<person posts="1" size="3" who="lats at yless4u.com.au (Jeff L)" />
<person posts="1" size="2" who="lkcl at lkcl.net (Luke Kenneth Casson Leighton)" />
<person posts="1" size="2" who="hat at tesarici.cz (Petr Tesarik)" />
<person posts="1" size="2" who="a.shabanov at geovid.com (Alexander)" />
<person posts="1" size="2" who="wine at electrozaur.com (Boaz Harrosh)" />
<person posts="1" size="2" who="qingdao33122 at yahoo.com (qingdoa daoo)" />
<person posts="1" size="2" who="mattfinn at gmail.com (Matt Finnicum)" />
<person posts="1" size="2" who="cdwine at tesco.net (Colin Wright)" />
<person posts="1" size="2" who="eric.pouech at gmail.com (Eric Pouech)" />
<person posts="1" size="1" who="sterling.christensen at gmail.com (Sterling Christensen)" />
<person posts="1" size="1" who="christian.gmeiner at students.fh-vorarlberg.ac.at (Christian Gmeiner)" />
<person posts="1" size="1" who="makomk at lycos.co.uk (Aidan Thornton)" />
<person posts="1" size="1" who="rbenis at airyz.com (Robertino Benis)" />
<person posts="1" size="1" who="felixmoeller at gmx.de (=?UTF-8?B?RmVsaXggTcO2bGxlcg==?=)" />
<person posts="1" size="1" who="dee.ayy at gmail.com (Dee Ayy)" />
<person posts="1" size="1" who="jonathan at ernstfamily.ch (Jonathan Ernst)" />
<person posts="1" size="1" who="agarobr.listas at gmail.com (Augusto Arcoverde da Rocha)" />
<person posts="1" size="1" who="wowbagger at sktc.net (David D. Hagood)" />
<person posts="1" size="1" who="pancha at mail.nnov.ru (Andrey Turkin)" />
<person posts="1" size="1" who="wine at eternaldusk.com (Evil Jay)" />
<person posts="1" size="1" who="karl at nncc.info (Karl Lattimer)" />
<person posts="1" size="1" who="fbsd at opal.com (J.R. Oldroyd)" />
<person posts="1" size="1" who="shunt010 at hotmail.com (Samuel Hunt)" />
<person posts="1" size="1" who="tkho at ucla.edu (Thomas Kho)" />
<person posts="1" size="1" who="billy.ng at navy.mil (Ng, Billy H CIV NAVSEA)" />
<person posts="1" size="0" who="thunderbird2k at gmx.net (Roderick Colenbrander)" />
<person posts="1" size="0" who="angela at jobsearchnetwork.ca (Angela Burrell)" />
<person posts="1" size="0" who="alexander at thehandofagony.com (=?UTF-8?B?QWxleGFuZGVyIE5pY29sYXlzZW4gU8O4cm5lcw==?=)" />
<person posts="1" size="0" who="jakob at vmlinux.org (Jakob Eriksson)" />
<person posts="1" size="0" who="philip.neves at gmail.com (Philip V. Neves)" />
<person posts="1" size="0" who="mhayward at coverity.com (Matthew Hayward)" />
<person posts="1" size="0" who="wine at troy.rollo.name (Troy Rollo)" />
<person posts="1" size="0" who="n1iic at arrl.net (n1iic Jason Greene)" />
<person posts="1" size="0" who="gslink at one.net (gslink)" />
<person posts="1" size="0" who="mikolaj at zalewski.pl (=?ISO-8859-2?Q?Miko=B3aj_Zalewski?=)" />
<person posts="1" size="0" who="kevin at plop.org (Kevin Koltzau)" />
<person posts="1" size="0" who="mr_vikasgoswami at yahoo.co.in (vikas goswami)" />
<person posts="1" size="0" who="aspirin at ntlworld.com (Adam D. Moss)" />
<person posts="1" size="0" who="ivanleo at gmail.com (Ivan Leo Puoti)" />

</stats>
<section
        title="News: Ulrich Czekalla, CrossOver Review"
        subject="News"
        archive="http://business.newsforge.com/business/06/04/27/155209.shtml?tid=18&amp;tid=2"
        posts="3"
        startdate="11 Apr 2006 00:00:00 -0800"
	enddate="28 Apr 2006 00:00:00 -0800"
>
<topic>News</topic>

<mention>CodeWeavers</mention>
<mention>LinuxWorld</mention>
<mention>Newsforge</mention>
<mention>Microsoft</mention>
<mention>News</mention>
<mention>Versora</mention>

<p>Wine's Ulrich Czekalla presented at the Toronto LinuxWorld Conference &amp;
Expo this week.  Newsforge was on hand to cover the event and they have
a <a href="http://business.newsforge.com/business/06/04/27/155209.shtml?tid=18&amp;tid=2">detailed report</a> 
of it.  Ulrich outlined the current state of Wine and where development
is headed:</p>
<quote who="Ulrich Czekalla"><p>
Where is Wine going? There are some messy areas, says Czekalla. One of these 
is its Component Object Model (COM) implementation. After years of work, it is 
still not done and is at least six months away from being able to talk to a 
Microsoft Exchange server.
</p><p>
Right now about 70% of programs can install with Wine's implementation of the 
Microsoft Installer (msi.dll) library. In another year, Czekalla expects that 
number to be about 90%, though he pointed out that while most programs that 
install will work after being installed, there is no guarantee. One problem 
Wine has had is with the device-independent bitmap (DIB) engine. At the moment 
it supports only 24-bit color depth graphics, but many Windows programs still 
use only 16 bits. He described this as a problem with X.
</p><p>
Because Wine is a userspace program, and cannot see hardware, things such as 
USB devices (like a USB key) cannot be directly seen by programs running under 
Wine. An effect of this, he says, is that programs requiring Digital Rights 
Management (DRM) will not work under Wine and won't unless and until Linux 
gets native DRM support. Companies that use DRM, he said, are not willing to 
help. He gave the latest version of Photoshop as one example of a program that 
has implemented DRM and will not work in Wine.
</p></quote>

<p>There was some interesting virus news last week of a new variant that
could infect both Linux and Windows.  Newsforge did 
<a href="http://os.newsforge.com/os/06/04/17/1752213.shtml?tid=2&amp;tid=78">some
testing</a> of it and used Wine in the process. It's not the first time viral
code has been run with Wine, though usually results are mixed.  One thing
that always causes problems is Wine only runs with the permissions granted
at the user level.  So a normal user can't trash system files owned by root.
Microsoft seems to like such holes more than Linus.</p> 

<p>CMPnet.asia 
<a href="http://www.cmpnetasia.com/oct3_nw_viewart.cfm?Artid=28644&amp;Catid=8&amp;subcat=79&amp;section=Review">reviewed</a>
 CrossOver Office 5.0 as well as Progression Desktop
1.2.3.  You might remember that CodeWeavers partnered with Versora a few
months ago to support bundling their products together.</p>

<p>Finally, this issue of WWN is horribly late and smaller than it should be.
My employer was crazy enough to give me a month off work, so I'm roadtripping
across the country.  There were a lot of topics on wine-devel over the past
few weeks worth covering, I just didn't get to them all here.  </p>

<p>Grab a cup of coffee, start reading, and enjoy your Friday.</p>

</section>
<section
        title="WineConf 2006"
        subject="Announcing Wineconf 2006, urgent need for head count"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/047170.html"
        posts="1"
        startdate="27 Apr 2006 00:00:00 -0800"
>
<topic>WineConf 2006</topic>

<mention>Rob Shearman</mention>

<p>WineConf 2006 is on!  This year we're going to England!  Jeremy White
announced the location and dates this week:</p>
<quote who="Jeremy White"><p>

I am pleased to announce that Rob Shearman has arranged
for us to have Wineconf in his home town, Reading, in the UK.
It will be held at the University of Reading:
 <ul><a href="http://www.fmd.rdg.ac.uk/res/CommercialAccommodation.asp">
 http://www.fmd.rdg.ac.uk/res/CommercialAccommodation.asp</a></ul>
</p><p>
It will be on the weekend of September 16 and 17.
</p><p>
We have a wrinkle we need your help on.  That is, as
we make our deposit (which we need to do quickly),
we have to tell them how many rooms we want to reserve.
</p><p>
The have a good deal on rooms (40 pounds/night, which
is quite good, afaict).
</p><p>
The trick is that we have to pay for all the rooms
we reserve ahead of time; we can't ask for 50 rooms
and then only use 43.  We have to pay for all 50.
</p><p>
We may be able to ask for 50 rooms, and then get another
3 or 4, although that's not guaranteed.
</p><p>
So, *if you want a room at Wineconf*, please fill in this form ASAP:
 <ul><a href="http://www.winehq.org/site/wineconf/survey06">
 http://www.winehq.org/site/wineconf/survey06</a></ul></p><p>

If you're not sure you'll make it, but think you might,
we have a choice for that too &lt;grin&gt;.
</p><p>
Act now or you'll be sleeping in Swindon...
</p></quote>

<p>WineConf is primarily a developer conference.  Even if you're 
just wondering how to get started, feel free to attend.  If you've 
worked on Wine a while and want to meet everyone involved with
the project, it's a great event to come to.  </p>

</section>
<section
        title="SambaXP &amp; Wine"
        subject="SambaXP update"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/047137.html"
        posts="4"
        startdate="25 Apr 2005 00:00:00 -0800"
>
<topic>Security</topic>

<mention>Andrew Bartlett</mention>
<mention>Google</mention>

<p>Kai Blin, who hacked on Wine last year during Google's Summer of Code
program, wrote in to inform everyone of happenings at the SambaXP conference.
You might recall that last year we had WineConf a few days before that
event and met some of the Samba guys.  Kai wrote about some issues
directly related to Wine:</p>
<quote who="Kai Blin"><p>

As SerNet and the Samba team has invited me to SambaXP, I thought I'd
give a short update on what happened here so far that is interesting for
Wine.
</p><p>
The talks today were only mildly interesting from the Wine point of
view, but that chatting with the Samba folks in the breaks was really
productive.
</p><p>
I've talked to Steve French about exposing named pipes as file
descriptors or fifos and he thinks that should be doable. I have to
admit I'm not totally sure what those beasts are needed for, but Juan
asked me to bug Steve about. I guess his talk about using CIFS on linux
will be interesting, too.
</p><p>
On the SSPI/GENSEC side, I've talked to Andrew Bartlett and Jelmer
Vernooij about isolating GENSEC from the Samba code a bit more so it's
useable without pulling in too much of the other Samba code (which is
also GPL and not useable). They don't seem too happy about releasing
GENSEC under the LGPL either, but seem to prefer that to other, less
elegant solutions like a wrapper library or a stdio interface.
</p><p>
On the bright side, I managed to get Wine code to compile with GENSEC
using some quick hacks. That brings me a bit closer to a proof of
concept implementation the Samba people want to see.
</p><p>
The schedule for tomorrow will see more technical talks, and I'll
continue to hack on wine-gensec a bit, and of course I'll try to give
another report from the conference.
</p></quote>

<p>A few days later he wrote in with more info:</p>
<quote who="Kai Blin"><p>

Now that SambaXP is officialy over, the samba team a couple of other
people have retreated to a smaller room to discuss other things.
</p><p>
Steve French had a talk about using CIFS on linux as a replacement to
NFS which seems to be pretty cool. A couple of other talks were given,
too, but if you're really interested, have a look at 
<a href="http://www.sambaxp.org/index.php?id=25">the schedule</a>.
</p><p>
What was more interesting was that after the talks there was a panel
discussion where the samba team expressed interest in continuing
cooperation with Wine as discussed on last year's wineconf.
</p><p>
Steve asked how exactly we wanted the named pipes exposed and if we
could write up some testcases for that stuff. I think if anybody is
interested in working on that is to email Steve directly.
</p><p>
I got some more work on GENSEC done, but in order to really link this
together, some more work is needed. I still have things blowing up on me
when trying to use it for client-side sspi.
</p></quote>

<p>Rob Shearman then ran down a list of items he'd like to see:</p>
<quote who="Rob Shearman"><p>

There are 3 things that Samba could do to help Wine:
<ol>
<li> Expose SMB operations in a library, including named pipe operations.
The library functions exposed would ideally be similar to the Win32
functions, i.e. ConnectNamedPipe, CreateFile, ReadFile, WriteFile,
CloseHandle, etc.</li>
<li> Expose an API that would allow Wine (and other applications) to
register an endpoint in the Samba endpoint mapper. This API would be
along the lines of samba_epm_registerep(UUID *object_uuid, char
*protocol, char *endpoint), and a corresponding unregister function.</li>
<li> Create a server that would contain interfaces necessary for DCOM
(specified in the draft RFC), plus some other interfaces, like the
running object table and ways of registering objects to allow them to be
activated. Ideally, these would be compatible with Windows to allow
ole32 from NT to be used, but that would require reverse engineering
some of the interfaces.</li>
</ol>
</p></quote>

<p>Kai wrote back and said the primary obstacle might end up being
licensing and that it would be preferable to find a way to interact
without linking to it.</p>
</section>
<section
        title="Summer of Code Kickoff"
        subject="Summer of Code 2006 is on!"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/046662.html"
        posts="1"
        startdate="14 Apr 2006 00:00:00 -0800"
>
<topic>Summer of Code 2006</topic>

<mention>Google</mention>

<p>Let's just call the rest of this issue of WWN the kickoff to Google's 2006
Summer of Code.  For those of you who didn't catch the news, Google is
once again sponsoring students to work on open source projects this
summer.  Wine will once again be one of the participating projects and
various Wine developers will serve as mentors for participants.  Last year
Google funded 400 students and they mentioned this year they'd like to fund
even more.  Each student will get $4500 paid in three installments; the
final portion paid when the project is completed.  Applications are due
by May 8th, so it's about time to start putting it together.  Oh wait..
I remember college.. never mind, you don't need to worry about it until
May 7th.  </p>

<p>Dan Kegel announced the kickoff of SoC 2006 and described a different
strategy for attracting participants:</p>
<quote who="Dan Kegel"><p>
I've updated 
<a href="http://wiki.winehq.org/SummerOfCode">
http://wiki.winehq.org/SummerOfCode</a>,
but it's a bit short on project ideas.
Somewhat on purpose -- last year, people just copied
and pasted our detailed project ideas.  This year, lets
give fewer details and more ideas... if somebody's
really interested, they'll ask for details on wine-devel,
and that process will generate fewer boilerplate applications.
</p><p>
There are two weeks before students can
submit Summer of Code proposals.
How can we use that time to maximize the
number of successful projects this year?
The students who already have their own good ideas
(whoever they are) will probably succeed;
we probably need to provide a set of prefab projects
of sorts to give guidance to students who are new
to Wine and haven't any idea what to work on.
</p><p>
Ideally, each such prefab project would have an active developer
(or a close approximation) as project leader and mentor.
Are any developers willing and able to come up with
a project idea and help mentor/supervise a student
to work on it?
</p></quote>

<p>As project ideas rolled in, it was difficult to tell if the idea was
going to be submitted by the sender of the email or if it was an idea for
someone else to work on.</p>

<p>Below you'll find some of the ideas that were presented.  The next issue
of WWN will contain more, but I'd highly recommend
<a href="http://www.winehq.com/pipermail/wine-devel/2006-April/thread.html">reading 
wine-devel</a> to see all the project ideas mentioned.</p>

</section>
<section
        title="SoC: DIB Engine"
        subject="SOC: Integrate DIB Engine"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/046781.html"
        posts="6"
        startdate="18 Apr 2006 00:00:00 -0800"
>
<topic>Summer of Code 2006</topic>
<topic>Graphics</topic>

<p>The DIB engine... if you've been a reader of WWN for a while or perused
our web pages about various projects that need to be tackled you might
have seen references to the mythical DIB engine.  It's probably one of the
single biggest tasks remaining in Wine and pretty high on a lot of peoples'
wish lists.  In short, it'd be a 2D rasterizing engine built into Wine
that would remove the need for the X server to perform the tasks.  It
has the potential to drastically speed up 2D rendering and make applications
like Photoshop perform much better.  Some people have assumed a DIB 
engine would also make games perform better, but these days most graphics
are done with 3D and work on other areas of Wine will improve that performance.
</p>
<p>For background on this topic, check out WWN
<a href="http://www.winehq.com/?issue=131#DIB%20Engine%20Update">#119</a>
<a href="http://www.winehq.com/?issue=138#DIB%20Engine%20(cont'd)">#138</a> and
<a href="http://www.winehq.com/?issue=159#X11Drv%20/%20NTDll%20Separation">#159</a>.  </p>

<p>So Jesse Allen asked about the DIB engine,
<quote who="Jesse Allen">
One thing I'd like to try to work on is the DIB engine. Do we need
someone to work on it still? This one is also interesting to me
because we have some documentation already and that I have worked with
bitmaps before too. I'd also like to find out how this stuff might
integrate with the current changes going into ddraw.
</quote></p>

<p>Troy Rollo replied first:</p>
<quote who="Troy Rollo"><p>

Yes. See <i>
<a href="http://wiki.winehq.org/DIBEngine">http://wiki.winehq.org/DIBEngine</a>
</i> for more information on this.
</p><p>
This is probably feasible as a SOC project *if* you are familiar with all of 
the integer-only algorithms for drawing graphics primitives or have a good 
text book handy that has all the algorithms in it.</p></quote>

<p>Mike McCormack added some words of caution:</p>
<quote who="Mike McCormack"><p>
Alexandre has very specific ideas about how he wants a DIB Engine done.
</p><p>
Integrating a DIB engine into your own tree may not be too difficult. 
The hard part is integrating it into the Wine tree in small pieces 
without breaking everything else and keeping Alexandre happy as you go.</p>
</quote>

<p>Which led Michael Stefaniuc to remark,
<quote who="Michael Stefaniuc">
Good! We already have the mentor for this task then ;)</quote></p>



</section>
<section
        title="SoC: Early Usage of DLLs"
        subject="SOC Idea: Easy usage of native DLLs in Linux programs"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/046779.html"
        posts="5"
        startdate="18 Apr 2006 00:00:00 -0800"
>
<topic>Summer of Code 2006</topic>
<topic>Integration</topic>

<p>Mike Hearn's idea might solve a lot of problems other projects
have with Wine.  We've got some great code but make it pretty difficult
to interact with:</p>
<quote who="Mike Hearn"><p>
Various projects have re-implemented the code necessary to host Win32 DLLs
in-process, for instance Xine, MPlayer and GStreamer all have (different)
forked, badly hacked copies of the Wine codebase inside themselves to load
and use codec DLLs. The GIMP now has the ability to use Photoshop plugins
using Wine. And so on.
</p><p>
It'd be nice if there was a simple API programs could use to do this, for
instance, wine_dlopen("whatever.dll"), wine_adopt_thread() and so on to
make re-use of Win32 components and COM objects easy.
</p><p>
This has been discussed before and Alexandre wasn't sure it was worth it
as it'd be a significant extension to the (stable??) Wine APIs, so IMHO
this one shouldn't be judged on whether it gets checked in or not but
rather whether it works and how easy it is to use.
</p><p>
Thoughts? I know roughly what needs to be done so I could mentor this one,
but students be warned - it requires _excellent_ understanding of
operating system design and things like threading. There's a reason such a
thing doesn't already exist, and it's because it's hard. On the flip side
it's not a massive amount of code IMHO so the work would mostly involve
learning, debugging, etc rather than simply being a hard typing slog.
</p><p>
Also, a student has all summer and the nice thing is, it's mostly
generic computing knowledge that'd be useful for future work (whereas
learning a specific api in depth probably isn't ...).
</p><p>
Such a thing has many uses:
<ul>
<li> Hosting ActiveX controls inside a native Firefox</li>

<li> Allowing more apps to use plugins from popular Windows apps. GIMP is 
  a bit weird in that its plugin system is out of process and has a simple
  wire protocol .... a hangover from the days before ELF (!!), but most
  programs aren't like that. EG imagine being able to use WinAmp
  visualizion plugins in your music player of choice.</li>

<li> Maybe getting the xine/mplayer/gst mess sorted out a bit (on the other
  hand they need to run only a small, relatively unchanging amount of code
  so it may not be worth it)</li>

<li> Allowing piece-by-piece porting of a modular Windows app without Winelib
  (which is annoying as you have to switch toolchains all at once,
  you may not even have the sources to some DLLs etc ...)</li>

<li> Actually there is a huge component marketplace in Windows which is
  especially rich in the boring sort of business components (grid
  views etc) that open source hackers tend to ignore ... this could
  allow developers to embed some of the very sophisticated Win32 
  business objects into native Linux apps, so reducing development
  costs (of course the result would not be free software, but for
  in house custom apps that's not really a concern anyway)</li>
</ul></p><p>
I'm sure you can think of some more. Discuss! :)
</p></quote>

<p>This stuff probably falls in the realm of <i>hard</i>, but it could
be extremely useful.</p>

</section>
<section
        title="SoC: SafeDisc"
        subject="SOC Proposal - SafeDisc Support"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/047018.html"
        posts="1"
        startdate="23 Apr 2006 00:00:00 -0800"
>
<topic>Summer of Code 2006</topic>

<p>Vijay Kiran Kamuju proposed a SafeDisc project:</p>
<quote who="Vijay Kiran Kamuju"><p>

I would like to propose the SafeDisc Project for wine.
</p><p>
Main Objective:  Support for SafeDisc (basically ver 1 Support) Part 1
(Getting the basic IRP support)
</p><p>Secondary Objective: Have wine specific ntoskrnl.exe that handles this
</p><p>Requirements: Needs to have in depth knowledge of Win32 Internals as well as
wine server internals.
</p><p>Difficulty: Moderate to High
</p><p>Mentors: Vitaly Margolen(vitamin) and Alexander Julliard
</p><p>Details:
To implement the SafeDisc Support.
The progress and details can be found here
<ul><a href="http://wiki.winehq.org/VitaliyMargolen">
http://wiki.winehq.org/VitaliyMargolen</a></ul>
This basically needs the IRP framework for to be implemented for wine (the
difficult part).
</p></quote>



</section>
<section
        title="SoC: Java Runtime Environment"
        subject="SoC idea: get Sun's JRE working well"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/046972.html"
        posts="3"
        startdate="22 Apr 2006 00:00:00 -0800"
>
<topic>Summer of Code 2006</topic>

<mention>CodeWeavers</mention>

<p>Dan also tossed out the idea of getting a Windows Java JRE working with 
Wine:</p>
<quote who="Dan Kegel"><p>
A lot of applications rely on Sun's JRE, some even use it in their installers!
<ul>
(cf. <a href="http://bugs.winehq.org/show_bug.cgi?id=5040">
http://bugs.winehq.org/show_bug.cgi?id=5040</a>
 )</ul></p><p>
Getting Sun's JRE working properly on Wine would be a great project.</p></quote>

<p>There's been interest in this in the past and some of the CodeWeavers
folks have done some work on it.  I'm not sure of the exact issues, but
I suspect things might be close to working.</p>




</section>
<section
        title="SoC: finish wcmd"
        subject="SoC idea: finish wcmd"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/046903.html"
        posts="6"
        startdate="21 Apr 2006 00:00:00 -0800"
>

<topic>Summer of Code 2006</topic>
<topic>Utilities</topic>
<mention>Steven Edwards</mention>
<mention>ReactOS</mention>

<p>Dan posted another SoC idea: flesh out Wine's cmd.exe replacement, wcmd:</p>
<quote who="Dan Kegel"><p>
wcmd isn't thought of as sexy, but it's important;
for instance, some installers use it under the hood.</p><p>
Things like
<ul><code>
  if "%1" == "%2"</code></ul></p><p>
and the <tt>/wait</tt> commandline flag are not yet implemented.
It wouldn't be all that hard to get wcmd far enough along
to make those installers happy; I think it'd make a good SoC project.
</p></quote>

<p>Brandon Turner from the ReactOS team volunteered to be a mentor and noted, 
<quote who="Brandon Turner"> one of my shorter term goals is to try and sync 
wcmd</quote>.  The ROS implementation is much more complete than Wine's,
however it has a legacy that might not make the code portable.  Steven
Edwards said it was part of the FreeDOS project which is licensed under
the GPL (as opposed to Wine's LGPL.)  Brandon mentioned that he actually
intends to forward port Wine's wcmd to ROS and replace the FreeDOS code, but 
he hadn't looked into the specifics of it yet.</p>

</section>
<section
        title="SoC: Better Valgrind Support"
        subject="[SOC] proposal -&gt; valgrind"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-April/046842.html"
        posts="2"
        startdate="19 Apr 2006 00:00:00 -0800"
>
<topic>Summer of Code 2006</topic>
<topic>Debugging</topic>

<p>Eric Pouech suggested this topic:</p>
<quote who="Eric Pouech"><p>
Another potential proposal for SOC would be upgrading valgrind to work 
with Wine.
</p><p>
I've tweaked it a bit (some patches still floating around), but:
<ul>
<li> that's not complete (some items still don't work)</li>
<li> what's also completly missing is the support of native modules 
(especially when generating backtraces)</li>
<li> 16bit support (but we can safely leave it out for now)</li>
<li> and testing (and fixing) most of the implementations we have</li>
</ul></p><p>
I've updated the Wiki page accordingly.
</p></quote>

<p>Rob Shearman expanded on the idea:</p>
<quote who="Rob Shearman"><p>


It would be really good for valgrind know about our heap implementation 
so that it could report memory leaks. A solution I've done in the past 
is to change all of the references to HeapAlloc/HeapReAlloc/HeapFree to 
malloc/realloc/free so that it can report leaks, but that isn't very 
convenient.
</p><p>
I think that is something that could benefit Wine a lot and wouldn't 
require very much Wine knowledge at all (although, it could require some 
knowledge about valgrind).
</p></quote>


</section>


<section 
	title="Font and Edit Control Issue"
	subject="Wine fonts too big for their input fields."
	archive="http://www.winehq.com/pipermail/wine-devel/2006-April/046538.html"
	posts="16"
>
<topic>Fonts</topic>
<p>The devil is in the details.  </p>
<p>There's a lot of things Wine does that you probably don't realize how
difficult it is to get right.  A lot of our dialogs and controls have 
stabilized over the past few years, and although bugs remain, many of them 
work well.  This week Tony Lambregts brought some attention to some bugs
in Bugzilla that are subtle:</p>
<quote who="Tony Lambregts"><p>
We now have at least three bugs[1] where the program will not accept the
all the characters that are required if we do not use native fonts. The
latest bug report was reported just today and the reporter resolved the
bug as FIXED when he used Native fonts.
</p><p>
So I have a couple of questions.
</p><p>
Should we consider using native fonts a "FIX" or is it just a
workaround? Or in other words can we fix our built in fonts to fix this.
</p><p>
Should These bugs marked a duplicates?

[1]
<ul>
<li><a href="http://bugs.winehq.org/show_bug.cgi?id=2389">
http://bugs.winehq.org/show_bug.cgi?id=2389</a></li>
<li><a href="http://bugs.winehq.org/show_bug.cgi?id=4162">
http://bugs.winehq.org/show_bug.cgi?id=4162</a></li>
<li><a href="http://bugs.winehq.org/show_bug.cgi?id=5052">
http://bugs.winehq.org/show_bug.cgi?id=5052</a></li>
</ul></p></quote>

<p>Duane Clark recognized the problem:</p>
<quote who="Duane Clark"><p>

I also have an installer (for Xilinx) that exhibits this problem. I
created a small application that creates a single line edit control
(which is what the Xilinx installer uses). I notice that on Win2k the
EM_GETMARGINS message returns zero for left and right messages, but on
Wine it returns 2 for both margins.
</p><p>
 From a trace, the margins are getting set to 2 in EDIT_WM_SetFont(),
with the call:
<ul><code>
       EDIT_EM_SetMargins(es, EC_LEFTMARGIN | EC_RIGHTMARGIN,
                          EC_USEFONTINFO, EC_USEFONTINFO, FALSE);
</code></ul></p><p>
Commenting out that single line makes the Xilinx installer work fine.
Not that it is the correct fix ;)</p></quote>

<p>Huw Davies thought it might simply be a wrong font substitution in
Duane's case but did say there are some difficult issues involved:</p>
<quote who="Huw Davies"><p>
I had some fun with this a month or two ago.  See the
test_margins_font_change test and calc_min_margin_size in the actual
code.  The deal seems to be that for 'small' edit controls
EC_USEFONTINFO results in no margin.  'Small' is currently defined to
be smaller than the extents of the (four character) string "'**'",
that's close but not quite how Windows does it.
</p><p>
Another interesting thing is that when it does set margins they are
often not symmetric left/right (although you tend to have to use
larger font sizes to see this) - it's presumably using some pair of
font metrics to set these and despite spending quite a while hunting I
drew a blank.
</p><p>
Now your problem could simply be that you don't have the font that the
app wants to use in this edit control.  It'll create the edit control
with a size that would work with that font under Windows (and probably
also under Wine), however if you don't have that font and Wine picks
one which ends up being slightly larger then you've got a problem.
It's difficult to know how to fix this.  The other possibility is that
you have the correct font but the '**' algorithm is slightly wrong (it
is) and that you're right on the edge of it kicking in.
</p></quote>

<p>There were a lot of back and forth emails.  Duane made some screenshots
illustrating the issue.  The
<a href="http://www.winehq.org/pipermail/wine-devel/attachments/20060412/0a711ecc/eights.png">first</a>
clearly shows 8's being rendered incorrectly while the
<a href="http://www.winehq.org/pipermail/wine-devel/attachments/20060412/0a711ecc/nines.png">second</a>
shows 9's correct.  A reference on MSDN seemed to at least touch on the
issue, but it was confusingly vague on the topic.
</p>

<p>Duane then did some more testing and seemed to find a trend, but
it still wasn't conclusive as to what was happening.</p>

</section></kc>
