Bug for beginners

Andrew Eikum andrew at brightnightgames.com
Thu Aug 20 22:58:36 CDT 2009

Alexandros Dermenakis wrote:
> Hi all,
> I studied the wine developer's guide and went a bit through the code. I would 
> like a suggestion, a bug to start understanding better the structure of wine 
> and familiarize myself with it in order to be able to contribute more in the 
> future.
> thank you
Hi Alexandros,

When I began working on Wine, I found that the easiest way for me was to 
implement parts of Wine that have no implementation yet.  Implementing 
new functions means you don't have to worry about breaking old tests or 
re-arranging and understanding someone else's code.  It also gives you 
the opportunity to write new tests from the ground up, so you get used 
to exactly what the unit tests are for and how they work.

Look around in Wine for functions that are labeled with FIXMEs 
indicating that they are stubs, or look in the .spec files for functions 
declared as stubs.  Find a function that has an easy to understand 
purpose: a very clear input and output.  Then, write unit tests in that 
DLL's test suite that prove all of the important features of that 
function.  Run your tests on an actual Windows OS (look into 
"crosstests") and verify that they are correct.  Finally, implement that 
function in Wine to make it also pass your tests.

If you want a suggestion for where to look for small stubs, take a look 
at gdi32 and gdiplus.  I know they still have some smallish, 
unimplemented or half-implemented functions.  If graphics don't interest 
you, there are plenty of stubs elsewhere.

Once you've got the hang of how the unit tests work (I mean it, the test 
cases are the most important part of getting patches into Wine), try 
looking into bugs on WineHQ until you find one you think you might be 
able to handle.  Then gear up for the most fun you'll ever have reading 
pages and pages debug logs :)

No matter where you begin your work, remember that Wine is a difficult 
project to work on.  Because even very subtle changes can cause 
breakages in seemingly unrelated parts of Wine, the standard for patches 
is very high.  You will need to prove that your patch is correct using 
the test suites.  No provable tests means it's not getting in.

Good luck and thanks for your interest,

More information about the wine-devel mailing list