Hello, Here are the templatates I have stated on for the website regarding porting WINE to other CPUs and Compilers. Please send any flames about spelling/grammer to \Device\NUL as I this is a work in progress. If you have worked on any of the following ports please send me the correct information and summery. I plan on trying to be done with the porting.template by Monday and would like to get the status_porting.template done by the following Monday.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
<!--TITLE:[Proting WINE]-->
<style type="text/css"> <!-- .todo { background-color: red; } .todo a { color: black; } .inprogress { background-color: yellow; } .inprogress a { color: black; } .works { background-color: lightblue; } .works a { color: black; } .done { background-color: limegreen; } .done a { color: black; } .abandoned { background-color: gray; } .abandoned a { color: black; } .modified { font-weight: bold; } .submitted { font-style: italic; } .committed { font-style: italic; color: gray; } --> </style>
<h1>Porting WINE</h1>
<table align=right hspace=20 class=black> <tr class=black><td> <p><b class=inverse>Color Key</b></p> </td></tr> <tr class=white><td> <p class=todo>To Do</p> <p class=inprogress>In Progress</p> <p class=works>Works</p> <p class=done>Done</p> <p class=abandoned>Abandoned</p> </td></tr> </table>
This page is a collection of Wine porting projects. Porting WINE to another platform or compiler is important as it improves the qualtity of the code and allows developers to make applications avalible on platforms they otherwise would not be able to. I will be tracking their status on this page. If you feel like working on any of these, please let us know by emailing the workers listed for the project. The status of the ports fall in to two catagorys <strong>Compiler Ports</strong> and <strong>Archteture Ports</strong>.
<h3>Compiler Ports</h3> Porting WINE to other compilers is a great way to not only improve the quality of our code but help other projects as well. Some good emaples of this are by porting parts of WINE to Windows using Visual Studio and Mingw this helps improve our test suite and also makes it easy for projects like ReactOS to use our code.
<h3 class=inprogress>Microsoft's Visual C</h3> The most popular compiler in the Windows Universe. Unfortunately, there is no free version available, but apparently you can buy one for around $100US. <ul> <li>worker: <a href="mailto:ps@leissner.se">Patrik Stridvall</a> <li>worker: <a href="mailto:Steven_Ed4153@yahoo.com">Steven Edwards</a> <li>status: Most tests and Tools compile but the DLLs still need work. <li>updated: Nov 29, 2002 </ul>
<h3 class=inprogress>Mingw (GCC for Win32) and ReactOS</h3> Mingw is a port of the GNU toolchain to the Microsoft Windows Platform. The project was first a fork of cygwin that linked to MS C runtime rather than the cygwin runtime but has now evolved in to a compleate stand alone development enviroment. The goal of Mingw is to provide a development enviroment as much like Visual Studio as possible using the GNU toolchain. <ul> <li>worker: <a href="mailto:Steven_Ed4153@yahoo.com">Steven Edwards</a> <li>status: most tests, DLLs, tools are pretty bad though <li>updated: Nov 29, 2002 <li>homepage: <a href="http://www.mingw.org/">Mingw Homepage</a> </ul> <strong>Directions:</strong> Configure WINE like so: <br><br> ./configure --disable-win16 CFLAGS=-D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501 -DWINVER=0x0501 <br><br> You will need to make sure you have the latest Mingw and MSYS with the most current binutils, gcc, g++ and w32api headers. Its a good idea just to get the w32api headers from CVS.
<h3 class=todo>Borland's bcc</h3> Borland has released it's C++ Compiler 5.5 as freeware. The compiler is the core of C++Builder, and is capable of creating fully functional C++ applications from the command line. <ul> <li>worker: wanted <li>status: todo <li>updated: May 26, 2003 <li>homepage: <a href="http://www.borland.com/bcppbuilder/freecompiler/">www.borland.com/bcppbuilder/freecompiler</a> </ul>
<h3 class=todo>Watcom's cc</h3> Sybase acquired the compiler from Watcom, and released it as Open Source software. Currently it is being ported to FreeBSD and Linux, and a Windows version is readily available. <ul> <li>worker: wanted <li>status: todo <li>updated: Jan 6, 2003 <li>homepage: <a href="http://www.openwatcom.org">www.openwatcom.org</a> </ul>
<h3 class=abandoned>Sun's cc</h3> <ul> <li>worker: <a href="mailto:ps@leissner.se">Patrik Stridvall</a> <li>status: <i>older version that didn't support stdcall. I abandoned that project years ago...</i> <li>updated: Dec 1, 2002 </ul>
<h3>Archteture Ports</h3> Porting WINE to other hardware platforms will help developers to develop applications for other platforms while improving the quality of our code.
<h4 class=inprogress>Cygwin</h4> This platform really falls under ether catagory of Platform or compiler port. This will provide a good test case for Cygwin, but will help Wine's portability. Moreover, the ability to run Wine code under Windows without a reboot, can help with testing sometimes. This task is tracked as <a href="http://bugs.winehq.com/show_bug.cgi?id=273">Bug #273</a> <ul> <li>workers: <a href="mailto:davidf@sjsoft.com">David Fraser</a> <li>workers: <a href="mailto:Steven_Ed4153@yahoo.com">Steven Edwards</a> <li>status: almost compiles <li>updated: Nov 18, 2002 </ul>
<h4 class=done>FreeBSD</h4> The FreeBSD port is under active development and maintance while NetBSD and OpenBSD tend to lag behind in bug fixes and patches. Check your ports tree for the latest stable WINE for your platform. <ul> <li>workers: <a href="mailto:gerald@pfeifer.com">Gerald Pfeifer</a> <li>status: Done </ul>
<h4 class=done>MacOS/X</h4> <ul> <li>workers: <a href="mailto:stegefin@free.fr">Pierre d'Herbemont</a> <li>status: Done </ul>
<h4 class=done>Linux for PowerPC</h4> <ul> <li>workers: <a href="mailto:spetreolle@yahoo.fr">Sylvain Petreolle</a> </ul>
<h4 class=inprogress>Linux for AlphaAXP</h4> <ul> <li>workers: <a href="mailto:Steven_Ed4153@yahoo.com">Steven Edwards</a> <li>updated: Dec 4, 2002 </ul>
<h4 class=todo>Linux for MIPS</h4> <ul> <li>workers: None </ul>
<h4 class=inprogress>Linux for Sparc</h4> <ul> <li>status: unknown </ul>
<h4 class=inprogress>Solaris for Sparc</h4> <ul> <li>status: inprogress </ul>
<h4 class=done>Solaris for x86</h4> <ul> <li>status: Done </ul>
<h3 class=abandoned>OS/2 Warp</h3> WINE used to run on OS/2 although this port has been inactive for many years. The ODIN project was another attempt to support Win32 applications on OS/2. They took alot of code from WINE and have recently started submitting back to the main tree. <ul> <li>worker: <a href="mailto:sandervl@xs4all.nl">Sander van Leeuwen</a> <li>homepage: <a href="http://odin.netlabs.org">http://odin.netlabs.org</a> </ul>
<h3 class=abandoned>BeOS</h3> The BeOS port of WINE was never compleated. There were many design problems in BeOS that made porting difficult. (Lack of send/recv msg and memory address conflicts with win32 applications) With the closing of Be Incorporated it seems that this port will never be finnished. <ul> <li>worker: <a href="mailto:ps@leissner.se">Patrik Stridvall</a> <li>homepage: <a href="http://bewine.loungenet.org">http://bewine.loungenet.org</a> </ul>
<p> </p>
<!--TITLE:[Wine Status Porting]-->
<h1>Wine Status - Porting</h1> This page contains status information for ports that are in-progress. Ports that are not started or incompleate are not list on this status page. Please return to the main porting page if you are interested in information about platforms not list here.
<style> <!-- .hdr { background-color: #000000; color: #ffffff; } .pct0 { background-color: #ff5050; } .pct5 { background-color: #ff5d4f; } .pct10 { background-color: #ff694e; } .pct15 { background-color: #ff764d; } .pct20 { background-color: #ff824b; } .pct25 { background-color: #ff8f4a; } .pct30 { background-color: #ff9b49; } .pct35 { background-color: #ffa848; } .pct40 { background-color: #ffb447; } .pct45 { background-color: #ffc146; } .pct50 { background-color: #ffcd45; } .pct55 { background-color: #ffda43; } .pct60 { background-color: #ffe642; } .pct65 { background-color: #fff341; } .pct70 { background-color: #ffff40; } .pct75 { background-color: #dcff48; } .pct80 { background-color: #c8ff50; } .pct85 { background-color: #b4ff58; } .pct90 { background-color: #a0ff60; } .pct95 { background-color: #8cff60; } .pct100 { background-color: #60ff60; } .nonexistent { background-color: #ff5050; } .poor { background-color: #ff8f4a; } .outdated { background-color: #ffcd45; } .outdadeq { background-color: #ffff40; } .adequate { background-color: #dcff48; } .adeqgood { background-color: #c0ff54; } .good { background-color: #60ff60; } --> </style>
<p> </p>
<div align=center> <table width="95%" border="0" cellspacing="0" cellpadding="1" bgcolor="#6d6d6d"> <tr> <td> <table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#ffffff"> <tr class="hdr"> <th>Aspect or Component</th> <th>Visual Studio</th> <th>Mingw</th> <th>Cygwin</th> <th>Linux Alpha</th> <th>Linux Sparc</th> <th>Solaris Sparc</th> <th>Solaris x86</th> </tr> <tr class="hdr"> <td colspan="8"><strong>Libraries</strong></td> </tr> <tr> <td>advapi32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>avicap32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>avifil32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>cabinet</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>comcat</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>comctl32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>commdlg</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>crtdll</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>crypt32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>ctl3d</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>d3d8</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>d3d9</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>d3dim</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>d3dx8</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dciman32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>ddraw</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>devenum</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dinput</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dinput8</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmband</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmcompos</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmime</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmloader</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmscript</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmstyle</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmsynth</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmusic</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dmusic32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dplay</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dplayx</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dpnhpast</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>dsound</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>gdi</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>glu32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>icmp</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>imagehlp</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>imm32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>iphlpapi</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>kernel</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>lzexpand</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>mapi32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>mpr</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msacm</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msdmo</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>mshtml</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msi</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msimg32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msisys</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msnet32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msvcrt</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msvcrt20</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msvcrtd</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>msvideo</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>mswsock</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>netapi32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>ntdll</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>odbc32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>ole32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>oleacc</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>oleaut32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>olecli</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>oledlg</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>olepro32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>opengl32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>psapi</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>qcap</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>quartz</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>rasapi32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>richedit</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>rpcrt4</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>serialui</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>setupapi</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>shdocvw</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>shell32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>shfolder</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>shlwapi</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>snmpapi</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>sti</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>tapi32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>ttydrv</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>twain</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>url</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>urlmon</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>user</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>uxtheme</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>version</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>win32s</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winaspi</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winedos</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wineps</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wininet</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winmm</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winnls</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winsock</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winspool</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wintrust</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wintab32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wow32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wsock32</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>x11drv</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <tr class="hdr"> <td colspan="8"><strong>Internal Libraries</strong></td> </tr> <td>libwine_port - Porting Library</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>libwine_unicode - Unicode Library</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>libwine_uuid -</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>libwine - Internal function library</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>libwpp - Wine Preprocessor</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <tr class="hdr"> <td colspan="8"><strong>Development Tools</strong></td> </tr> <tr> <td>WIDL - Wine IDL Compiler</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <tr> <td>Winebuild - PE Building Utiltiy</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <tr> <td>Winedump - PE Library Dumper</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <tr> <td>Winegcc - Compiler Frontend</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <tr> <td>WMC - Wine Message Compiler</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <tr> <td>WRC - Wine Resource Compiler</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <tr class="hdr"> <td colspan="8"><strong>User Programs</strong></td> </tr> <td>avitools</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>clock</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>cmdlgtst</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>control</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>expand</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>notepad</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>osversioncheck</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>progman</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>regapi</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>regedit</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>regsvr32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>regtest</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>rpcss</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>rundll32</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>start</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>uninstaller</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>view</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wcmd</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wineboot</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winecfg</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>wineconsole</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winedbg</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winefile</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winemenubuilder</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winemine</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winepath</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winevdm</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winhelp</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> <td>winver</td> <td class="pct0">0% complete</td> <td class="pct95">95% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> <td class="pct0">0% complete</td> </tr> </table> </td> </tr> </table> </div>
<p> </p>
On October 10, 2003 08:17 pm, Steven Edwards wrote:
Here are the templatates I have stated on for the website regarding porting WINE to other CPUs and Compilers. Please send any flames about spelling/grammer to \Device\NUL as I this is a work in progress. If you have worked on any of the following ports please send me the correct information and summery. I plan on trying to be done with the porting.template by Monday and would like to get the status_porting.template done by the following Monday.
Nice. Some suggestions:
-- take out the "completed" bit, it's too verbose. -- I'd add also the different headers to the table -- would be nice to organize the table like so: ...+---------------------------------------------------------------------------------+ ...| Compilers | Headers | OS | Architecture | ...| MSVC | MinGW | SunCC | MSVC | MinGW | NetBSD | FreeBSD | Solaris| Sparc | Alpha |
What's up with the 95%, why not 100%? :)
Also, I think we should merge the two pages together, it makes more sense. The information from porting.template should be tabulated, and stuck in the status_porting.template, at the begining. This way, you can have a clear and concise view of all that's going on, rather than having two disparate pages.
On October 11, 2003 02:50 am, Dimitrie O. Paun wrote:
...+---------------------------------------------------------------------------------+ ...| Compilers | Headers | OS | Architecture | ...| MSVC | MinGW | SunCC | MSVC | MinGW | NetBSD | FreeBSD | Solaris| Sparc | Alpha |
Actually, we should also have a ReactOS column under the OSes...
--- "Dimitrie O. Paun" dpaun@rogers.com wrote:
Actually, we should also have a ReactOS column under the OSes...
I really dont want to have a ReactOS column in the list as the ReactOS project is planning on properly branching winehq cvs when WINE reaches reaches 0.9/1.0. I dont want people who have problems with the ReactOS-WINE dlls to flood you guys with bug reports and such. I will of course start making bleeding edge builds of Winehq CVS for Mingw and these dlls and programs will be able to run on ReactOS but I dont expect the WINE project to try and support the ReactOS fork and that will end up happening.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On October 11, 2003 06:40 pm, Steven Edwards wrote:
I really dont want to have a ReactOS column in the list as the ReactOS project is planning on properly branching winehq cvs when WINE reaches reaches 0.9/1.0.
Why would you want to branch, I would have thought that you want to keep a common codebase. There is no reason most of Wine's DLL not to work out of the box for the ReactOS project. I wouldn't worry about the political aspect for now, I still think it would be a good idea to know how many DLLs you guys are using. In fact, nobody will blame us as you say, we will mark you (or the ReactOS team) as being responsible for the port, so you will have to field support/requrest questions.
--- "Dimitrie O. Paun" dpaun@rogers.com wrote:
On October 11, 2003 06:40 pm, Steven Edwards wrote:
I really dont want to have a ReactOS column in the list as the
ReactOS
project is planning on properly branching winehq cvs when WINE
reaches
reaches 0.9/1.0.
Why would you want to branch, I would have thought that you want to keep a common codebase. There is no reason most of Wine's DLL not to work out of the box for the ReactOS project. I wouldn't worry about the political aspect for now, I still think it would be a good idea to know how many DLLs you guys are using. In fact, nobody will blame us as you say, we will mark you (or the ReactOS team) as being responsible for the port, so you will have to field support/requrest questions.
Well yes in the "should" work out of the box under ReactOS but most dont work perfectly atm due to bugs in our Win32k/GDI/User32 implementaion. I agree it would be nice to keep better track of this on the WINE porting page and I do want to have a common codebase with as little or no forking if possible but like I said I dont want to flood Winehq with ReactOS bugs reports when its not the fault of one of the WINE dlls.
Currently ReactOS is on its 1.x branch and we still have problems using the WINE dlls as shown below: http://www.winehq.com/hypermail/wine-devel/2003/10/att-0145/02-taskmgr.png http://www.reactos.com/content/view/full/305/
I dont make policy in ReactOS as to layout of CVS and code sharing so this has to be discusses with our kernel maintainer. I would suggest that for the time being the ReactOS should fork the dlls/programs we need using CVS branching untill all of our rendering problems are fixed. During this time I can make weekly snapshots of Winehq mingw builds avaliable for people that really want them. After ReactOS 2.0 Maybe we can drop our own forking of this code and work right out of Winehq.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On October 12, 2003 03:03 pm, Steven Edwards wrote:
Well yes in the "should" work out of the box under ReactOS but most dont work perfectly atm due to bugs in our Win32k/GDI/User32 implementaion. I agree it would be nice to keep better track of this on the WINE porting page and I do want to have a common codebase with as little or no forking if possible but like I said I dont want to flood Winehq with ReactOS bugs reports when its not the fault of one of the WINE dlls.
I think forking them does no one no favours, either Wine for ReactOS. If our code is OK, tweaking it to work around bugs in ReactOS is a very, very bad idea: -- you end up with a system capable of running just some tweaked apps -- it diminishes incentive to fix the real problem -- we end up with a forked codebase Similarly, if we have problems in our codebase, we'd appreciate fixes, or at least to know about it. This is the entire reason to want our stuff to be portable -- to have other people test the code and report (or even fix) problems. If you fork the code, you also cut the stream of patches flowing into Wine.
In the end we both lose. Even if you don't care about Wine, I can't see how forking anything is a good idea for ReactOS.
--- "Dimitrie O. Paun" dpaun@rogers.com wrote:
I think forking them does no one no favours, either Wine for ReactOS. If our code is OK, tweaking it to work around bugs in ReactOS is a very, very bad idea: -- you end up with a system capable of running just some tweaked apps -- it diminishes incentive to fix the real problem -- we end up with a forked codebase Similarly, if we have problems in our codebase, we'd appreciate fixes, or at least to know about it. This is the entire reason to want our stuff to be portable -- to have other people test the code and report (or even fix) problems. If you fork the code, you also cut the stream of patches flowing into Wine.
In the end we both lose. Even if you don't care about Wine, I can't see how forking anything is a good idea for ReactOS.
Dont get me wrong I dont think it is either. I just dont make the policy as to how we are going to handle this in ReactOS. I am all for us working together as much as possible with little or no forking but its going to take some work to setup a system that will work for both partys.
I will start by setting up a box that does weekly builds for Mingw/ReactOS.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
Hi all
I agree that forking should be avoided at all costs. Of course it will be unavoidable for lower level DLLs such as user32. I'm getting the tail end of this discussion so someone please fill me in if I'm missing some big issues. The big deal with be source control differences between the two projects - we'll probably have to come up with a document on this to clarify things.
Regards Jason
--- Steven Edwards steven_ed4153@yahoo.com wrote:
--- "Dimitrie O. Paun" dpaun@rogers.com wrote:
I think forking them does no one no favours, either Wine for
ReactOS.
If our code is OK, tweaking it to work around bugs in ReactOS is
a
very, very bad idea: -- you end up with a system capable of running just some
tweaked
apps -- it diminishes incentive to fix the real problem -- we end up with a forked codebase Similarly, if we have problems in our codebase, we'd appreciate fixes, or at least to know about it. This is the entire reason to want
our
stuff to be portable -- to have other people test the code and
report
(or even fix) problems. If you fork the code, you also cut the
stream
of patches flowing into Wine.
In the end we both lose. Even if you don't care about Wine, I
can't
see how forking anything is a good idea for ReactOS.
Dont get me wrong I dont think it is either. I just dont make the policy as to how we are going to handle this in ReactOS. I am all for us working together as much as possible with little or no forking but its going to take some work to setup a system that will work for both partys.
I will start by setting up a box that does weekly builds for Mingw/ReactOS.
Thanks Steven
Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com _______________________________________________ Ros-kernel mailing list Ros-kernel@reactos.com http://reactos.geldorp.nl:8080/mailman/listinfo/ros-kernel
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On October 14, 2003 03:11 pm, Jason Filby wrote:
I agree that forking should be avoided at all costs. Of course it will be unavoidable for lower level DLLs such as user32.
You are right, ReactOS will probably need it's own ntdll, and maybe kernel. But for user32 and gdi32, I am hoping you can use Wine's versions, and just implement a ReactOS driver for them...
Hi Dimitrie
User32 and gdi32 are likely to be a problem as the bulk of our implementation is in kernel mode win32k.sys.
Regards Jason
--- "Dimitrie O. Paun" dpaun@rogers.com wrote:
On October 14, 2003 03:11 pm, Jason Filby wrote:
I agree that forking should be avoided at all costs. Of course it will be unavoidable for lower level DLLs such as user32.
You are right, ReactOS will probably need it's own ntdll, and maybe kernel. But for user32 and gdi32, I am hoping you can use Wine's versions, and just implement a ReactOS driver for them...
-- Dimi.
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
"Jason Filby" jasonfilby@yahoo.com wrote:
User32 and gdi32 are likely to be a problem as the bulk of our implementation is in kernel mode win32k.sys.
More problems will be caused by advapi32 and rpcrt4 because ReactOS will use LPC instead of Unix-Sockets for local IPC.
Regards Eric
On Wed, 2003-10-15 at 10:57, Eric Kohl wrote:
"Jason Filby" jasonfilby@yahoo.com wrote:
User32 and gdi32 are likely to be a problem as the bulk of our implementation is in kernel mode win32k.sys.
More problems will be caused by advapi32 and rpcrt4 because ReactOS will use LPC instead of Unix-Sockets for local IPC.
I'd like to see a definitive list of wine DLLs and how they can be used by ReactOS:
- those that we can use directly from WINE with minimal or no modifications - comctl32 - shell32 - shlwapi - ole* - others?
- those that require significant architectural modifications and/or those that we can only import specific sections of code
- advapi32 - kernel32 - user32 - gdi32 - ntdll
These are incomplete; please add to them. For those on list 2, what do you think the best strategy really is in porting some of the usable code? We can, again, keep a locally-modified vesrion in CVS, if there are major chunks of those libraries that can be used directly.
Also, how would wine feel about adding ReactOS-specific code with some conditional compilation or something?
I do hate to fork code...
-Vizzini
Hello All, Jason is right I think. I spoke with Alexandre the other night about implementing a Win32k.sys driver for WINE so we could use GDI32/User32 and it might be do-able it wont be somthing that is possible for at least another year at the rate we are sharing code.
Wines user32 depends on a few direct Wineserver calls and has quite a bit of old design issues from the Win16 days that will need to be fixed first. Not to mention Unixisms in a few places and of course ReactOS Win32k-User32 commuincation system uses our own system calls so that would need to be implemented in another way. I think the method we have currently for advapi32,kernel32,gdi32,ntdll and user32 are the best at the moment. We try to rip the source file as a whole such as the controls and string functions in user32 so we can easyly diff back to Winehq. For the other pure Win32 such as comctl32, shell32, ole*32, shlwapi and friends this is not a issues as we can just recompile without forking but for the lower level dlls we are going to need to keep forking. =(
Thanks Steven
--- Jason Filby jasonfilby@yahoo.com wrote:
Hi Dimitrie
User32 and gdi32 are likely to be a problem as the bulk of our implementation is in kernel mode win32k.sys.
Regards Jason
--- "Dimitrie O. Paun" dpaun@rogers.com wrote:
On October 14, 2003 03:11 pm, Jason Filby wrote:
I agree that forking should be avoided at all costs. Of course it will be unavoidable for lower level DLLs such as user32.
You are right, ReactOS will probably need it's own ntdll, and maybe kernel. But for user32 and gdi32, I am hoping you can use Wine's versions, and just implement a ReactOS driver for them...
-- Dimi.
Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com _______________________________________________ Ros-kernel mailing list Ros-kernel@reactos.com http://reactos.geldorp.nl:8080/mailman/listinfo/ros-kernel
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On Wed, 2003-10-15 at 13:45, Steven Edwards wrote:
Hello All, Jason is right I think. I spoke with Alexandre the other night about implementing a Win32k.sys driver for WINE so we could use GDI32/User32 and it might be do-able it wont be somthing that is possible for at least another year at the rate we are sharing code.
I know very little about Wine's architecture, so forgive my ignorance. What sort of efficiency overhead is there in doing the "wine driver" approach? How about compatibility issues, e.g. with off-the-shelf windows apps? This seems like a pretty big departure from the Windows architecture that we are trying to clone, but if it enables a high degree of code re-use, it may be worth it.
-Vizzini
"Steven Edwards" steven_ed4153@yahoo.com wrote:
Wines user32 depends on a few direct Wineserver calls and has quite a bit of old design issues from the Win16 days that will need to be fixed first. Not to mention Unixisms in a few places and of course ReactOS Win32k-User32 commuincation system uses our own system calls so that would need to be implemented in another way.
But for simple things which use pure Win32 APIs like USER controls, message boxes you have to be able to share code with Wine without any significant effort.
By "porting" that code to reactos you gain nothing except bugs. Have a look at reactos/lib/user32/windows/messagebox.c "ported" from wine/windows/msgbox.c: code in reactos now has lots of unicode/ansi related bugs not existed in Wine. Why did you guys want to do that?!
--- Dmitry Timoshkov dmitry@baikal.ru wrote:
But for simple things which use pure Win32 APIs like USER controls, message boxes you have to be able to share code with Wine without any significant effort.
By "porting" that code to reactos you gain nothing except bugs. Have a look at reactos/lib/user32/windows/messagebox.c "ported" from wine/windows/msgbox.c: code in reactos now has lots of unicode/ansi related bugs not existed in Wine. Why did you guys want to do that?!
The controls are almost a 100% port with the debugging information changed and the Tweak_WINELOOK crap ripped out. A few things such as MessagesBox, Dialog Boxes and Scrollbars have been done a little differntly because we have had alot of people with thier hands in the cookie jar and because some things are implemented differntly in Windows than in WINE. I dont know much about our user32 implementation but I do know we have had to implement scrollbars in a differnt manner because of the way Windows NT and Wine differ in the implementation.
I do agree that we should try and share more code though. When Ge and I have been porting code from WINE we have tried to keep it as unchanged as possible.
Here are some examples - sprintf functions http://mok.lvcm.com/cgi-bin/reactos/ros-cvs/reactos/lib/user32/misc/sprintf.... http://cvs.winehq.com/cvsweb/wine/dlls/user/wsprintf.c
ReactOS WINE controls http://mok.lvcm.com/cgi-bin/reactos/ros-cvs/reactos/lib/user32/controls/ http://cvs.winehq.com/cvsweb/wine/controls/
One thing that might help us on the ReactOS side with the code sharing is if Alexandre goes ahead with the WINE CVS tree cleanup. Most new people jumping in to ReactOS take a look at the WINE source tree and dont that wine/controls wine/dlls/user and wine/windows are all part of the same user32.dll. I know this is supposed to be put off until post 0.9 as it causes problems when doing CVS merges with codeweavers but it will help our never developers that come in and want to know what is where in the Winehq sources.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On Mon, 2003-10-13 at 10:03, Dimitrie O. Paun wrote:
On October 12, 2003 03:03 pm, Steven Edwards wrote:
Well yes in the "should" work out of the box under ReactOS but most dont work perfectly atm due to bugs in our Win32k/GDI/User32 implementaion. I agree it would be nice to keep better track of this on the WINE porting page and I do want to have a common codebase with as little or no forking if possible but like I said I dont want to flood Winehq with ReactOS bugs reports when its not the fault of one of the WINE dlls.
I think forking them does no one no favours, either Wine for ReactOS.
Sorry for jumping in so late.
Steven and I spoke about this the other day, and I am in agreement with you, Dimitrie. I don't want to fork. We can use CVS to manage the wine source, and hopefully we can submit patches if we manage to uncover any bugs. Regardless, we need to stay current with Wine development, and a fork + manual merges is just impossible.
We still have to figure out our header file situation, and Steven and I continue to discuss alternatives. Once we gain some clarity on that situation, we'll probalby just do a cvs vendor import of wine and refresh it regularly.
Does this sound workable to everyone?
-Vizzini
Hi Vizzini
This sounds good to me. As you said, it seems like headers are the big blocker here.
Regards Jason
--- Vizzini vizzini@plasmic.com wrote:
Steven and I spoke about this the other day, and I am in agreement with you, Dimitrie. I don't want to fork. We can use CVS to manage the wine source, and hopefully we can submit patches if we manage to uncover any bugs. Regardless, we need to stay current with Wine development, and a fork + manual merges is just impossible.
We still have to figure out our header file situation, and Steven and I continue to discuss alternatives. Once we gain some clarity on that situation, we'll probalby just do a cvs vendor import of wine and refresh it regularly.
Does this sound workable to everyone?
-Vizzini
Ros-kernel mailing list Ros-kernel@reactos.com http://reactos.geldorp.nl:8080/mailman/listinfo/ros-kernel
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On October 15, 2003 11:21 am, Jason Filby wrote:
This sounds good to me. As you said, it seems like headers are the big blocker here.
For my info, what's the problem with the headers? What headers are you using? If not Wine's, why not? It seems we have better headers than then w32api guys...
--- "Dimitrie O. Paun" dpaun@rogers.com wrote:
For my info, what's the problem with the headers? What headers are you using? If not Wine's, why not? It seems we have better headers than then w32api guys...
I dont know if better is the right word. WINE has more compleate headers but they are not the most correct. The w32api people are very anal (No Offence Danny) about getting changes in to the package. I have almost never found where something is wrong in w32api. More often than not things are just missing. The issue we have is that currently there are 3 or 4 standard sets of headers to deal with. ReactOS internal headers, WINE headers, w32api headers and the Microsoft headers.
We need a standard SDK/DDK that our projects can share.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On Thu, 16 Oct 2003, Steven Edwards wrote:
I dont know if better is the right word. WINE has more compleate headers but they are not the most correct. The w32api people are very anal (No Offence Danny) about getting changes in to the package. I have almost never found where something is wrong in w32api. More often than not things are just missing. The issue we have is that currently there are 3 or 4 standard sets of headers to deal with. ReactOS internal headers, WINE headers, w32api headers and the Microsoft headers.
Well, I don't know why the w32api guys create their own headers instead of using ours, that is their business. However, I don't understand why the ReactOS folks have yet another set! Why not work with the Wine headers? If there are problems, we are more than willing to fix them, I don't think they are so far away from the truth, are they?
Also, I still don't understand what the problems are. It can't be that there are many versions, that's irrelevant. It's like saying your car has a problem because there are other cars :)
--- "Dimitrie O. Paun" dimi@intelliware.ca wrote:
Well, I don't know why the w32api guys create their own headers instead of using ours, that is their business. However, I don't understand why the ReactOS folks have yet another set! Why not work with the Wine headers? If there are problems, we are more than willing to fix them, I don't think they are so far away from the truth, are they?
Well first off WINE doesnt support drivers so we have to have a DDK from somewhere that does give us support for developing WDM kernel mode drivers.
Also, I still don't understand what the problems are. It can't be that there are many versions, that's irrelevant. It's like saying your car has a problem because there are other cars :)
I have rebuilt a few engines in my day and this has been like trying to take parts from a BMW and use them on a Honda. It just doesnt work most of the time. Dont get me wrong.... it should "just work". All of the interfaces should be the same but currently they are not and should be fixed.
IMHO WINE should keep moving to supporting the PSDK as it is now. Once all of WINE can be built with the MS-PSDK then we can work on getting the rest of w32api in shape and dump the WINE headers except for the internal ones. Ditto for the ReactOS project. Our target should be to compile everything with the XP DDK and PSDK. As we work on both of these goals patches can be submitted to w32api so that at one day far in the future we can all dump our own systems and only use the Mingw w32api DDK/SDK. This all of course depends on if the Mingw people will accept the needed DirectX and Cabinet headers and if WINE will move to a Windows2K/XP model for DirectX support.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On Thu, 16 Oct 2003, Steven Edwards wrote:
I have rebuilt a few engines in my day and this has been like trying to take parts from a BMW and use them on a Honda. It just doesnt work most of the time. Dont get me wrong.... it should "just work". All of the interfaces should be the same but currently they are not and should be fixed.
Well, this is nice generic metaphore, but it says nothing about _what_ is wrong with Wine's headers :) I mean, how else can we fix the problems, if we don't know what's broken?
--- "Dimitrie O. Paun" dimi@intelliware.ca wrote:
Well, this is nice generic metaphore, but it says nothing about _what_ is wrong with Wine's headers :) I mean, how else can we fix the problems, if we don't know what's broken?
I agree 100%. Pick a DLL and try to compile it with MS_VC and the PSDK and you will find out. =P
The last time I checked there were major problems with shell32,ole32, shlwapi and friends in regards to the macros and structures used. I have not really had time to check everything and with my cable at home on my MS_VC box being out it has made fixing these problems even harder.
I will try to get you a compleate log of all of the problems we have sometime soon.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
--- "Dimitrie O. Paun" dpaun@rogers.com wrote:
Nice. Some suggestions:
-- take out the "completed" bit, it's too verbose. -- I'd add also the different headers to the table -- would be nice to organize the table like so:
...+---------------------------------------------------------------------------------+
...| Compilers | Headers | OS | Architecture | ...| MSVC | MinGW | SunCC | MSVC | MinGW | NetBSD | FreeBSD | Solaris| Sparc | Alpha |
Can you send me a example in HTML of how you want to layout Headers/OS/Compilers? I am having trouble getting it from looking at the plain text.
What's up with the 95%, why not 100%? :)
95% is with Wine Headers. I was trying to get a list of everything that currently builds with the latest Mingw+MSYS and Wine headers. Once I am done with that I was going to go back and try them with w32api headers and then bump the number up to 100%. Same thing with MS_VC and the PSDK. 95% if we can build the dll/program with WINE headers and 100% if we can build it with both headers. I was planing on adding a key describing this but I forgot. If you can send me that HTML file with the table layout as you want it I will bump those numbers up to 100%.
Also, I think we should merge the two pages together, it makes more sense. The information from porting.template should be tabulated, and stuck in the status_porting.template, at the begining. This way, you can have a clear and concise view of all that's going on, rather than having two disparate pages.
OK I will merge them. I just figured the status part with the tables was a little big and it would be cleaner to split it up.
Thanks Steven
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
On October 11, 2003 06:44 pm, Steven Edwards wrote:
Can you send me a example in HTML of how you want to layout Headers/OS/Compilers? I am having trouble getting it from looking at the plain text.
OK, attached.
What's up with the 95%, why not 100%? :)
95% is with Wine Headers. I was trying to get a list of everything that currently builds with the latest Mingw+MSYS and Wine headers. Once I am done with that I was going to go back and try them with w32api headers and then bump the number up to 100%. Same thing with MS_VC and the PSDK. 95% if we can build the dll/program with WINE headers and 100% if we can build it with both headers. I was planing on adding a key describing this but I forgot. If you can send me that HTML file with the table layout as you want it I will bump those numbers up to 100%.
Now, if we separate compiler from header, as I suggested above, we can now mark the compiler as 100% if it builds that DLL with *some* headers. Similarly for headers, we can mark them 100% when we build with those headers using *some* compiler. In other words, when looking at compilers/headers just pick the most convenient headers/compiler respectively...
OK I will merge them. I just figured the status part with the tables was a little big and it would be cleaner to split it up.
Yes, the status as it is now is big, but we can tabulated it. The tables should have the following columns:
Port Compiles Links Runs Workers Notes
Now, with this setup, all the information on that page fits nicely in a manageable table.