Sync winebuild (keeping ReactOS-specific changes).
[reactos.git] / reactos / media / doc / README.WINE
1 # ReactOS WINE porting guide for 0.3
2 # Update this file when you port a dll/program from WINE.
3
4 The ReactOS Project shares quite a bit of code with the WINE project.
5 This document should provide a compleate reference for all of the
6 locations in the ReactOS source tree where code is shared between the
7 two projects. If you find something is missing from this documentation
8 please add it.
9
10 If you find that a function in ReactOS that is not implemented properly
11 and is based on WINE sources, check the latest Winehq CVS and see if
12 it has been fixed there. If so, please submit a patch to
13 ros-dev@reactos.org. Otherwise please send a patch to both
14 wine-patches@winehq.com and ros-dev@reactos.org
15
16 When porting a new DLL from Wine to ReactOS, please do the following steps
17 - Create a new directory in dll/win32/ of the same name as the new Wine DLL
18 - Add a new entry in dll/win32/win32.rbuild
19 - Follow the guide "Update process for autosync DLLs" at the bottom of this file
20
21
22 The following build tools are shared with Wine.
23
24 reactos/tools/unicode # Synced to Wine-0_9_5
25 reactos/tools/wpp # Synced to Wine-0_9_5
26 reactos/tools/bin2res # Resource to binary converter
27 reactos/tools/winebuild # Synced to Wine-20071217
28 reactos/tools/wmc # Synced to Wine-20071201
29 reactos/tools/wrc # Synced to Wine-0_9_5
30 reactos/tools/widl # Synced to Wine-20060729
31
32 The following libraries are shared with Wine.
33
34 reactos/dll/win32/advpack # Autosync
35 reactos/dll/win32/avifil32 # Autosync
36 reactos/dll/win32/browseui # Autosync
37 reactos/dll/win32/cabinet # Autosync
38 reactos/dll/win32/clusapi # Autosync
39 reactos/dll/win32/comcat # Autosync
40 reactos/dll/win32/comctl32 # Autosync
41 reactos/dll/win32/comdlg32 # Autosync
42 reactos/dll/win32/crypt32 # Out of sync
43 reactos/dll/win32/cryptdll # Autosync
44 reactos/dll/win32/cryptnet # Autosync
45 reactos/dll/win32/dbghelp #
46 reactos/dll/win32/hhctrl.ocx # Autosync
47 reactos/dll/win32/icmp # Synced to Wine-0_9_10
48 reactos/dll/win32/imm32 # Autosync
49 reactos/dll/win32/iphlpapi # Out of sync
50 reactos/dll/win32/imagehlp # Patches for BindImage need review and submission to winehq.
51 reactos/dll/win32/lz32 # Autosync
52 reactos/dll/win32/mapi32 # Autosync
53 reactos/dll/win32/mlang # Autosync
54 reactos/dll/win32/mpr # Autosync
55 reactos/dll/win32/msacm32 # Out of sync
56 reactos/dll/win32/msimg32 # Autosync
57 reactos/dll/win32/msi # Needs a widl update
58 reactos/dll/win32/msvcrt20 # Out of sync
59 reactos/dll/win32/msvfw32 # Autosync
60 reactos/dll/win32/netapi32 # Autosync
61 reactos/dll/win32/objsel # Autosync
62 reactos/dll/win32/odbc32 # Out of sync. Depends on port of Linux ODBC.
63 reactos/dll/win32/odbccp32 # Autosync
64 reactos/dll/win32/ole32 # Needs a widl update
65 reactos/dll/win32/oleacc # Autosync
66 reactos/dll/win32/oleaut32 # Needs a widl update
67 reactos/dll/win32/oledlg # Autosync
68 reactos/dll/win32/olepro32 # Autosync
69 reactos/dll/win32/powrprof # Autosync
70 reactos/dll/win32/riched20 # Autosync
71 reactos/dll/win32/riched32 # Autosync
72 reactos/dll/win32/rpcrt4 # Synced to Wine-0_9_10
73 reactos/dll/win32/rsabase # Autosync
74 reactos/dll/win32/rsaenh # Autosync
75 reactos/dll/win32/sensapi # Autosync
76 reactos/dll/win32/setupapi # Forked at Wine-20050524
77 reactos/dll/win32/shell32 # Forked at Wine-20071011
78 reactos/dll/win32/shdocvw # Synced to Wine-0_9_5
79 reactos/dll/win32/shfolder # Autosync
80 reactos/dll/win32/shlwapi # Autosync
81 reactos/dll/win32/twain_32 # Out of sync
82 reactos/dll/win32/urlmon # Autosync
83 reactos/dll/win32/uxtheme # Autosync
84 reactos/dll/win32/version # Autosync
85 reactos/dll/win32/wininet # Autosync
86 reactos/dll/win32/wintrust # Out of sync
87 reactos/dll/win32/winmm # Forked at Wine-20050628
88 reactos/dll/win32/winmm/midimap # Forked at Wine-20050628
89 reactos/dll/win32/winmm/wavemap # Forked at Wine-20050628
90 reactos/dll/win32/wldap32 # Autosync
91 reactos/dll/win32/wtsapi32 # Autosync
92 reactos/dll/directx/dinput # Synced to Wine-0_9_5
93 reactos/dll/directx/dinput8 # Synced to Wine-0_9_5
94 reactos/dll/directx/dplay # Synced to Wine-0_9_5
95 reactos/dll/directx/dplayx # Synced to Wine-0_9_5
96 reactos/dll/directx/dxdiagn # Synced to Wine-0_9_5
97
98 ReactOS shares the following programs with Winehq.
99
100 reactos/base/applications/games/winemine # Out of sync
101 reactos/base/applications/regedit # Out of sync
102 reactos/base/system/expand # Out of sync
103 reactos/base/system/msiexec # Synced to Wine-0_9_3
104
105 In addition the following libs, dlls and source files are mostly based on code ported
106 from Winehq CVS. If you are looking to update something in these files
107 check Wine current souces first as it may already be fixed.
108
109 reactos/lib/uuid #
110
111 advapi32 -
112 reactos/dll/win32/advapi32/crypt/*.c # ekohl says we're not sharing this
113
114 gdi32 -
115 reactos/dll/win32/gdi32/objects/linedda.c # Out of sync
116
117 kernel32 -
118 reactos/dll/win32/kernel32/misc/errormsg.c # Out of sync
119 reactos/dll/win32/kernel32/misc/profile.c # Out of sync
120 reactos/dll/win32/kernel32/misc/lcformat.c # Out of sync
121
122 msvcrt -
123 reactos/dll/win32/msvcrt/wine/*.c # Out of sync
124 reactos/lib/sdk/crt/cpp.c # Synced at 20071111
125 reactos/lib/sdk/crt/cppexcept.c # Synced at 20071111
126 reactos/lib/sdk/crt/wine # Synced at XXXXXXXX
127
128 User32 -
129 reactos/dll/win32/user32/controls/button.c # Synced at 20071022
130 reactos/dll/win32/user32/controls/combo.c # Synced at 20071022
131 reactos/dll/win32/user32/controls/edit.c # Synced at 20071022
132 reactos/dll/win32/user32/controls/icontitle.c # Synced at 20060617
133 reactos/dll/win32/user32/controls/listbox.c # Synced at 20071023
134 reactos/dll/win32/user32/controls/scrollbar.c # Forked
135 reactos/dll/win32/user32/controls/static.c # Synced at 20071024
136
137 reactos/dll/win32/user32/misc/dde.c # Synced at 20060623 (dde_misc.c)
138 reactos/dll/win32/user32/misc/ddeclient.c # Synced at 20060623
139 reactos/dll/win32/user32/misc/ddeserver.c # Synced at 20060623
140 reactos/dll/win32/user32/misc/exticon.c # Last sync date unknown
141 reactos/dll/win32/user32/misc/resources.c # Forked?
142 reactos/dll/win32/user32/misc/winhelp.c # Last sync date unknown
143 reactos/dll/win32/user32/misc/wsprintf.c # Synced at 20060623
144
145 reactos/dll/win32/user32/windows/defwnd.c # Forked
146 reactos/dll/win32/user32/windows/draw.c # Forked at Wine-20020904 (uitools.c)
147 reactos/dll/win32/user32/windows/mdi.c # Synced at 20060703
148 reactos/dll/win32/user32/windows/menu.c # Forked
149 reactos/dll/win32/user32/windows/messagebox.c # Forked
150 reactos/dll/win32/user32/windows/rect.c # Forked (uitools.c)
151 reactos/dll/win32/user32/windows/text.c # Forked (lstr.c)
152 reactos/dll/win32/user32/windows/winpos.c # Forked
153
154 Update process for autosync DLLs
155
156 *** This process can only be done on Microsoft Windows ***
157 - Download wineimport.cmd at svn://svn.reactos.org/reactos/trunk/tools/
158 - Download cvs command line program and be sure to put it in your path
159 (available at http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/ )
160 - Download svn command line program and be sure to put it in your path
161 (available at http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 )
162 - Download patch command line program and be sure to put it in your path
163 (available at http://gnuwin32.sourceforge.net/packages/patch.htm )
164 - Optionally, download junction.exe and put it in your path
165 (available at http://www.sysinternals.com/Utilities/Junction.html )
166 - Cd to the directory containing wineimport.cmd
167 - Run
168 "wineimport.cmd fullprocessing {path_to_your_reactos_directory} {name_of_the_wine_dll}"
169 - In case of error, you can
170 1) add missing definitions to ReactOS headers
171 2) fix {name_of_the_wine_dll}_ros.diff patch file, by removing outdated changes
172 3) or modify Wine code, by adding a {name_of_the_wine_dll}_ros.diff patch,
173 which will be applied after Wine source checkout
174 DO NOT DIRECTLY MODIFY WINE SOURCE CODE
175 - Once Wine DLL compiles, install and run ReactOS and search for regressions
176 - In case of regression, you can
177 1) Fix ReactOS code (not in the shared DLL)
178 2) or update the {name_of_the_wine_dll}_ros.diff patch file
179 - Commit your changes with the "Autosyncing with Wine HEAD" commit message