mirror of
https://github.com/reactos/reactos.git
synced 2024-11-04 13:52:30 +00:00
9ea495ba33
svn path=/branches/header-work/; revision=45691
285 lines
14 KiB
Text
285 lines
14 KiB
Text
# ReactOS WINE porting guide for 0.3
|
|
# Update this file when you port a dll/program from WINE.
|
|
|
|
The ReactOS Project shares quite a bit of code with the WINE project.
|
|
This document should provide a compleate reference for all of the
|
|
locations in the ReactOS source tree where code is shared between the
|
|
two projects. If you find something is missing from this documentation
|
|
please add it.
|
|
|
|
If you find that a function in ReactOS that is not implemented properly
|
|
and is based on WINE sources, check the latest Winehq CVS and see if
|
|
it has been fixed there. If so, please submit a patch to
|
|
ros-dev@reactos.org. Otherwise please send a patch to both
|
|
wine-patches@winehq.com and ros-dev@reactos.org
|
|
|
|
When porting a new DLL from Wine to ReactOS, please do the following steps
|
|
- Create a new directory in dll/win32/ of the same name as the new Wine DLL
|
|
- Add a new entry in dll/win32/win32.rbuild
|
|
- Follow the guide "Update process for autosync DLLs" at the bottom of this file
|
|
|
|
|
|
The following build tools are shared with Wine.
|
|
|
|
reactos/tools/unicode # Synced to Wine-20081105 (~Wine-1.1.7)
|
|
reactos/tools/widl # Synced to Wine-1_1_32
|
|
reactos/tools/winebuild # Synced to Wine-1_1_13
|
|
reactos/tools/wmc # Synced to Wine-20081105 (~Wine-1.1.7)
|
|
reactos/tools/wpp # Synced to Wine-20081105 (~Wine-1.1.7)
|
|
reactos/tools/wrc # Synced to Wine-1_1_28
|
|
|
|
The following libraries are shared with Wine.
|
|
|
|
reactos/dll/directx/amstream # Autosync
|
|
reactos/dll/directx/dinput # Synced to Wine-20090208
|
|
reactos/dll/directx/dinput8 # Synced to Wine-20090208
|
|
reactos/dll/directx/dmusic # Synced to Wine-1_1_23
|
|
reactos/dll/directx/dplay # Synced to Wine-0_9_5
|
|
reactos/dll/directx/dplayx # Synced to Wine-0_9_5
|
|
reactos/dll/directx/dxdiagn # Synced to Wine-0_9_5
|
|
reactos/dll/directx/msdmo # Autosync
|
|
reactos/dll/directx/qedit # Autosync
|
|
reactos/dll/directx/quartz # Autosync
|
|
reactos/dll/win32/advpack # Autosync
|
|
reactos/dll/win32/atl # Autosync
|
|
reactos/dll/win32/avifil32 # Autosync
|
|
reactos/dll/win32/bcrypt # Autosync
|
|
reactos/dll/win32/browseui # Out of sync
|
|
reactos/dll/win32/cabinet # Autosync
|
|
reactos/dll/win32/clusapi # Autosync
|
|
reactos/dll/win32/comcat # Autosync
|
|
reactos/dll/win32/comctl32 # Autosync
|
|
reactos/dll/win32/comdlg32 # Autosync
|
|
reactos/dll/win32/compstui # Autosync
|
|
reactos/dll/win32/credui # Autosync
|
|
reactos/dll/win32/crypt32 # Synced to Wine-1_1_21
|
|
reactos/dll/win32/cryptdlg # Autosync
|
|
reactos/dll/win32/cryptdll # Autosync
|
|
reactos/dll/win32/cryptnet # Autosync
|
|
reactos/dll/win32/cryptui # Autosync
|
|
reactos/dll/win32/dbghelp # Synced to Wine-20080802
|
|
reactos/dll/win32/dciman32 # Synced to Wine-1_0-rc2
|
|
reactos/dll/win32/gdiplus # Autosync
|
|
reactos/dll/win32/hhctrl.ocx # Autosync
|
|
reactos/dll/win32/hlink # Autosync
|
|
reactos/dll/win32/hnetcfg # Autosync
|
|
reactos/dll/win32/httpapi # Autosync
|
|
reactos/dll/win32/iccvid # Autosync
|
|
reactos/dll/win32/icmp # Synced to Wine-0_9_10
|
|
reactos/dll/win32/imaadp32.acm # Autosync
|
|
reactos/dll/win32/imm32 # Autosync
|
|
reactos/dll/win32/imagehlp # Patches for BindImage need review and submission to winehq.
|
|
reactos/dll/win32/inetcomm # Autosync
|
|
reactos/dll/win32/inetmib1 # Autosync
|
|
reactos/dll/win32/initpki # Autosync
|
|
reactos/dll/win32/inseng # Autosync
|
|
reactos/dll/win32/iphlpapi # Out of sync
|
|
reactos/dll/win32/itircl # Autosync
|
|
reactos/dll/win32/itss # Autosync
|
|
reactos/dll/win32/jscript # Autosync
|
|
reactos/dll/win32/localspl # Autosync
|
|
reactos/dll/win32/localui # Autosync
|
|
reactos/dll/win32/lz32 # Autosync
|
|
reactos/dll/win32/mapi32 # Autosync
|
|
reactos/dll/win32/mciavi32 # Autosync
|
|
reactos/dll/win32/mcicda # Autosync
|
|
reactos/dll/win32/mciqtz32 # Autosync
|
|
reactos/dll/win32/mciseq # Autosync
|
|
reactos/dll/win32/mciwave # Autosync
|
|
reactos/dll/win32/mlang # Autosync
|
|
reactos/dll/win32/mpr # Autosync
|
|
reactos/dll/win32/msacm32 # Out of sync
|
|
reactos/dll/win32/msadp32.acm # Autosync
|
|
reactos/dll/win32/mscat32 # Autosync
|
|
reactos/dll/win32/mscms # Autosync
|
|
reactos/dll/win32/mscoree # Autosync
|
|
reactos/dll/win32/msctf # Autosync
|
|
reactos/dll/win32/msftedit # Autosync
|
|
reactos/dll/win32/msg711.acm # Autosync
|
|
reactos/dll/win32/msgsm32.acm # Autosync
|
|
reactos/dll/win32/mshtml # Autosync
|
|
reactos/dll/win32/msimg32 # Autosync
|
|
reactos/dll/win32/msi # Autosync
|
|
reactos/dll/win32/msimtf # Autosync
|
|
reactos/dll/win32/msisip # Autosync
|
|
reactos/dll/win32/msisys.ocx # Autosync
|
|
reactos/dll/win32/msnet32 # Autosync
|
|
reactos/dll/win32/msrle32 # Autosync
|
|
reactos/dll/win32/mssign32 # Autosync
|
|
reactos/dll/win32/mssip32 # Autosync
|
|
reactos/dll/win32/mstask # Autosync
|
|
reactos/dll/win32/msvcrt20 # Autosync
|
|
reactos/dll/win32/msvfw32 # Autosync
|
|
reactos/dll/win32/msvidc32 # Autosync
|
|
reactos/dll/win32/msxml3 # Synced to Wine-1_1_20
|
|
reactos/dll/win32/nddeapi # Autosync
|
|
reactos/dll/win32/netapi32 # Autosync
|
|
reactos/dll/win32/ntdsapi # Autosync
|
|
reactos/dll/win32/ntprint # Autosync
|
|
reactos/dll/win32/objsel # Autosync
|
|
reactos/dll/win32/odbc32 # Out of sync. Depends on port of Linux ODBC.
|
|
reactos/dll/win32/odbccp32 # Autosync
|
|
reactos/dll/win32/ole32 # Autosync
|
|
reactos/dll/win32/oleacc # Autosync
|
|
reactos/dll/win32/oleaut32 # Autosync
|
|
reactos/dll/win32/olecli32 # Autosync
|
|
reactos/dll/win32/oledlg # Autosync
|
|
reactos/dll/win32/olepro32 # Autosync
|
|
reactos/dll/win32/olesvr32 # Autosync
|
|
reactos/dll/win32/olethk32 # Autosync
|
|
reactos/dll/win32/pdh # Autosync
|
|
reactos/dll/win32/pidgen # Autosync
|
|
reactos/dll/win32/powrprof # Forked at Wine-1.0rc5
|
|
reactos/dll/win32/printui # Autosync
|
|
reactos/dll/win32/pstorec # Autosync
|
|
reactos/dll/win32/query # Autosync
|
|
reactos/dll/win32/rasapi32 # Autosync
|
|
reactos/dll/win32/resutils # Autosync
|
|
reactos/dll/win32/riched20 # Autosync
|
|
reactos/dll/win32/riched32 # Autosync
|
|
reactos/dll/win32/rpcrt4 # Synced to Wine-0_9_55
|
|
reactos/dll/win32/rsabase # Autosync
|
|
reactos/dll/win32/rsaenh # Autosync
|
|
reactos/dll/win32/sccbase # Autosync
|
|
reactos/dll/win32/schannel # Autosync
|
|
reactos/dll/win32/sensapi # Autosync
|
|
reactos/dll/win32/setupapi # Forked at Wine-20050524
|
|
reactos/dll/win32/shell32 # Forked at Wine-20071011
|
|
reactos/dll/win32/shdocvw # Synced to Wine-1_1_20
|
|
reactos/dll/win32/shfolder # Autosync
|
|
reactos/dll/win32/shlwapi # Autosync
|
|
reactos/dll/win32/slbcsp # Autosync
|
|
reactos/dll/win32/softpub # Autosync
|
|
reactos/dll/win32/spoolss # Autosync
|
|
reactos/dll/win32/stdole2.tlb # Autosync
|
|
reactos/dll/win32/sti # Autosync
|
|
reactos/dll/win32/sxs # Autosync
|
|
reactos/dll/win32/tapi32 # Autosync
|
|
reactos/dll/win32/traffic # Autosync
|
|
reactos/dll/win32/twain_32 # Out of sync
|
|
reactos/dll/win32/updspapi # Autosync
|
|
reactos/dll/win32/url # Autosync
|
|
reactos/dll/win32/urlmon # Autosync
|
|
reactos/dll/win32/usp10 # Autosync
|
|
reactos/dll/win32/uxtheme # Autosync
|
|
reactos/dll/win32/version # Autosync
|
|
reactos/dll/win32/windowscodecs # Autosync
|
|
reactos/dll/win32/winemp3.acm # Autosync
|
|
reactos/dll/win32/wininet # Autosync
|
|
reactos/dll/win32/winhttp # Autosync
|
|
reactos/dll/win32/winmm # Forked at Wine-20050628
|
|
reactos/dll/win32/winmm/midimap # Forked at Wine-20050628
|
|
reactos/dll/win32/winmm/wavemap # Forked at Wine-20050628
|
|
reactos/dll/win32/wintab32 # Autosync
|
|
reactos/dll/win32/wintrust # Out of sync
|
|
reactos/dll/win32/wldap32 # Autosync
|
|
reactos/dll/win32/wmi # Autosync
|
|
reactos/dll/win32/wtsapi32 # Forked
|
|
reactos/dll/win32/wuapi # Autosync
|
|
reactos/dll/win32/xinput1_1 # Autosync
|
|
reactos/dll/win32/xinput1_2 # Autosync
|
|
reactos/dll/win32/xinput1_3 # Autosync
|
|
reactos/dll/win32/xinput9_1_0 # Autosync
|
|
reactos/dll/win32/xmllite # Autosync
|
|
|
|
ReactOS shares the following programs with Winehq.
|
|
|
|
reactos/base/applications/cmdutils/xcopy # Autosync
|
|
reactos/base/applications/games/winemine # Out of sync
|
|
reactos/base/applications/iexplore # Autosync
|
|
reactos/base/applications/notepad # Forked at Wine-20041201
|
|
reactos/base/applications/reg # Synced to Wine-1_1_31
|
|
reactos/base/applications/regedit # Out of sync
|
|
reactos/base/applications/winhlp32 # Autosync
|
|
reactos/base/applications/wordpad # Autosync
|
|
reactos/base/services/rpcss # Synced to Wine-20081105
|
|
reactos/base/system/expand # Synced to Wine-1_1_37
|
|
reactos/base/system/msiexec # Synced to Wine-1_1_23
|
|
reactos/modules/rosapps/winfile # Autosync
|
|
|
|
In addition the following libs, dlls and source files are mostly based on code ported
|
|
from Winehq CVS. If you are looking to update something in these files
|
|
check Wine current souces first as it may already be fixed.
|
|
|
|
reactos/lib/uuid # Synced to Wine-20080114
|
|
|
|
advapi32 -
|
|
reactos/dll/win32/advapi32/crypt/*.c # ekohl says we're not sharing this
|
|
reactos/dll/win32/advapi32/sec/cred.c # Out of Sync
|
|
reactos/dll/win32/advapi32/sec/sid.c # Out of Sync
|
|
|
|
gdi32 -
|
|
reactos/dll/win32/gdi32/objects/linedda.c # Synced at 20090410
|
|
|
|
kernel32 -
|
|
reactos/dll/win32/kernel32/misc/errormsg.c # Out of sync
|
|
reactos/dll/win32/kernel32/misc/profile.c # Out of sync
|
|
reactos/dll/win32/kernel32/misc/lcformat.c # Out of sync
|
|
reactos/dll/win32/kernel32/misc/lzexpand.c # Synced to Wine-1_1_23
|
|
|
|
msvcrt -
|
|
reactos/lib/sdk/crt/except/cpp.c # Synced at 20080528
|
|
reactos/lib/sdk/crt/except/cppexcept.c # Synced at 20071111
|
|
reactos/lib/sdk/crt/string/scanf.c/h # Synced to Wine-1_1_27
|
|
reactos/lib/sdk/crt/strings/wcs.c # Synced at 20080611
|
|
reactos/lib/sdk/crt/wine/heap.c # Synced at 20080529
|
|
reactos/lib/sdk/crt/wine/undname.c # Synced at 20081130
|
|
reactos/lib/sdk/crt/thread/thread.c # Synced at 20080604
|
|
|
|
snmpapi -
|
|
reactos/dll/win32/snmpapi/main.c # Synced at 20090222
|
|
|
|
User32 -
|
|
reactos/dll/win32/user32/controls/button.c # Synced to Wine-1_1_22
|
|
reactos/dll/win32/user32/controls/combo.c # Synced to Wine-1_1_22
|
|
reactos/dll/win32/user32/controls/edit.c # Synced to Wine-1_1_29
|
|
reactos/dll/win32/user32/controls/icontitle.c # Synced to Wine-1_1_13
|
|
reactos/dll/win32/user32/controls/listbox.c # Synced to Wine-1_1_22
|
|
reactos/dll/win32/user32/controls/scrollbar.c # Forked
|
|
reactos/dll/win32/user32/controls/static.c # Synced to Wine-1_1_22
|
|
|
|
reactos/dll/win32/user32/include/dde_private.h # Synced to wine 1.1.24
|
|
|
|
reactos/dll/win32/user32/misc/dde.c # Synced to wine 1.1.24 (dde_misc.c)
|
|
reactos/dll/win32/user32/misc/ddeclient.c # Synced to Wine-1_1_23
|
|
reactos/dll/win32/user32/misc/ddeserver.c # Synced to Wine-1_1_23
|
|
reactos/dll/win32/user32/misc/exticon.c # Synced to Wine-1_1_22
|
|
reactos/dll/win32/user32/misc/resources.c # Forked?
|
|
reactos/dll/win32/user32/misc/winhelp.c # Last sync date unknown
|
|
reactos/dll/win32/user32/misc/wsprintf.c # Synced to Wine-1_1_23
|
|
|
|
reactos/dll/win32/user32/windows/defwnd.c # Forked
|
|
reactos/dll/win32/user32/windows/draw.c # Forked at Wine-20020904 (uitools.c)
|
|
reactos/dll/win32/user32/windows/mdi.c # Synced at 20060703
|
|
reactos/dll/win32/user32/windows/menu.c # Forked
|
|
reactos/dll/win32/user32/windows/messagebox.c # Forked
|
|
reactos/dll/win32/user32/windows/rect.c # Forked (uitools.c)
|
|
reactos/dll/win32/user32/windows/text.c # Forked (lstr.c)
|
|
reactos/dll/win32/user32/windows/winpos.c # Forked
|
|
|
|
Update process for autosync DLLs
|
|
|
|
*** This process can only be done on Microsoft Windows ***
|
|
- Download wineimport.cmd at svn://svn.reactos.org/reactos/trunk/tools/
|
|
- Download cvs command line program and be sure to put it in your path
|
|
(available at http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/ )
|
|
- Download svn command line program and be sure to put it in your path
|
|
(available at http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 )
|
|
- Download patch command line program and be sure to put it in your path
|
|
(available at http://gnuwin32.sourceforge.net/packages/patch.htm )
|
|
- Optionally, download junction.exe and put it in your path
|
|
(available at http://www.sysinternals.com/Utilities/Junction.html )
|
|
- Cd to the directory containing wineimport.cmd
|
|
- Run
|
|
"wineimport.cmd fullprocessing {path_to_your_reactos_directory} {name_of_the_wine_dll}"
|
|
- In case of error, you can
|
|
1) add missing definitions to ReactOS headers
|
|
2) fix {name_of_the_wine_dll}_ros.diff patch file, by removing outdated changes
|
|
3) or modify Wine code, by adding a {name_of_the_wine_dll}_ros.diff patch,
|
|
which will be applied after Wine source checkout
|
|
DO NOT DIRECTLY MODIFY WINE SOURCE CODE
|
|
- Once Wine DLL compiles, install and run ReactOS and search for regressions
|
|
- In case of regression, you can
|
|
1) Fix ReactOS code (not in the shared DLL)
|
|
2) or update the {name_of_the_wine_dll}_ros.diff patch file
|
|
- Commit your changes with the "Autosyncing with Wine HEAD" commit message
|