2004-12-12 12:43:36 +08:00
|
|
|
# ReactOS WINE porting guide for 0.3
|
2004-01-14 10:08:32 +08:00
|
|
|
# Update this file when you port a dll/program from WINE.
|
|
|
|
|
2004-01-01 23:29:51 +08:00
|
|
|
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
|
2004-02-26 09:42:21 +08:00
|
|
|
two projects. If you find something is missing from this documentation
|
|
|
|
please add it.
|
2004-01-01 23:29:51 +08:00
|
|
|
|
|
|
|
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
|
2006-07-30 21:39:42 +08:00
|
|
|
it has been fixed there. If so, please submit a patch to
|
|
|
|
ros-dev@reactos.com. Otherwise please send a patch to both
|
2005-02-20 19:33:58 +08:00
|
|
|
wine-patches@winehq.com and ros-dev@reactos.com
|
2004-01-01 23:29:51 +08:00
|
|
|
|
2004-01-14 10:08:32 +08:00
|
|
|
When porting a dll from WINE to ReactOS please take a look at how
|
|
|
|
comctl32 has been imported. We start by creating a makefile that has
|
|
|
|
a target defined like so:
|
|
|
|
|
|
|
|
TARGET_TYPE = winedll
|
|
|
|
|
|
|
|
This will cause the reactos build system to look for a file called
|
|
|
|
makefile.ros-template. This file contains all of the information needed
|
2006-07-30 21:39:42 +08:00
|
|
|
for the ReactOS build system to make use of the WINE Makefile.in.
|
2004-01-14 10:08:32 +08:00
|
|
|
This will allow you to use the WINE tools and librarys with very little
|
|
|
|
work to import a new dll.
|
|
|
|
|
2005-05-07 03:42:39 +08:00
|
|
|
The following build tools are shared with Wine.
|
2006-04-11 19:14:06 +08:00
|
|
|
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/tools/unicode # Synced to Wine-0_9_5
|
|
|
|
reactos/tools/wpp # Synced to Wine-0_9_5
|
2006-07-30 21:39:42 +08:00
|
|
|
reactos/tools/bin2res # Resource to binary converter
|
|
|
|
reactos/tools/winebuild # Synced to Wine-0_9_5
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/tools/wmc # Synced to Wine-0_9_5
|
|
|
|
reactos/tools/wrc # Synced to Wine-0_9_5
|
2006-07-30 21:39:42 +08:00
|
|
|
reactos/tools/widl # Synced to Wine-20060729
|
2004-01-14 10:08:32 +08:00
|
|
|
|
2005-05-07 03:42:39 +08:00
|
|
|
The following libraries are shared with Wine.
|
2004-01-14 10:08:32 +08:00
|
|
|
|
2006-09-02 14:24:20 +08:00
|
|
|
reactos/dll/win32/advpack # Autosync
|
2006-08-31 04:16:11 +08:00
|
|
|
reactos/dll/win32/avifil32 # Autosync
|
2006-07-06 19:23:09 +08:00
|
|
|
reactos/dll/win32/cabinet # Autosync
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/comctl32 # Autosync
|
2006-07-06 06:52:42 +08:00
|
|
|
reactos/dll/win32/comdlg32 # Synced to Wine-0_9_16
|
2006-07-06 19:23:09 +08:00
|
|
|
reactos/dll/win32/crypt32 # Autosync
|
|
|
|
reactos/dll/win32/cryptdll # Autosync
|
2006-07-30 21:39:42 +08:00
|
|
|
reactos/dll/win32/dbghelp #
|
|
|
|
reactos/dll/win32/icmp # Synced to Wine-0_9_10
|
2006-07-06 19:23:09 +08:00
|
|
|
reactos/dll/win32/imm32 # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/iphlpapi # Out of sync
|
|
|
|
reactos/dll/win32/imagehlp # Patches for BindImage need review and submission to winehq.
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/lz32 # Autosync
|
|
|
|
reactos/dll/win32/mapi32 # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/msvcrt20 # Out of sync
|
2006-08-31 04:37:56 +08:00
|
|
|
reactos/dll/win32/mpr # Autosync
|
2006-07-30 21:39:42 +08:00
|
|
|
reactos/dll/win32/msacm # Out of sync
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/msimg32 # Autosync
|
2006-08-31 04:01:42 +08:00
|
|
|
reactos/dll/win32/msi # Autosync
|
2007-04-25 16:18:48 +08:00
|
|
|
reactos/dll/win32/msvfw32 # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/netapi32 # Synced to Wine-0_9_5
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/objsel # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/odbc32 # Out of sync. Depends on port of Linux ODBC.
|
2007-03-14 20:44:54 +08:00
|
|
|
reactos/dll/win32/odbccp32 # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/ole32 # Synced to Wine-0_9_5
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/oleacc # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/oleaut32 # Synced to Wine-0_9_10
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/oledlg # Autosync
|
|
|
|
reactos/dll/win32/olepro32 # Autosync
|
2006-06-07 07:14:09 +08:00
|
|
|
reactos/dll/win32/powrprof # Synced to Wine-0_9_14
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/riched20 # Synced to Wine-0_9_5
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/riched32 # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/rpcrt4 # Synced to Wine-0_9_10
|
2006-09-02 06:47:57 +08:00
|
|
|
reactos/dll/win32/sensapi # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/setupapi # Forked at Wine-20050524
|
|
|
|
reactos/dll/win32/shell32 # Synced to Wine-0_9_5
|
|
|
|
reactos/dll/win32/shdocvw # Synced to Wine-0_9_5
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/shfolder # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/shlwapi # Synced to Wine-0_9_5
|
2006-07-30 21:39:42 +08:00
|
|
|
reactos/dll/win32/twain # Out of sync
|
2006-04-17 01:34:25 +08:00
|
|
|
reactos/dll/win32/urlmon # Synced to Wine-0_9_10
|
2006-07-21 20:49:46 +08:00
|
|
|
reactos/dll/win32/uxtheme # Autosync
|
2006-05-10 16:19:03 +08:00
|
|
|
reactos/dll/win32/version # Synced at 20060509
|
2006-04-17 04:07:09 +08:00
|
|
|
reactos/dll/win32/wininet # Synced to Wine-0_9_10
|
2006-09-02 14:27:09 +08:00
|
|
|
reactos/dll/win32/wintrust # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
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
|
2007-04-19 15:09:34 +08:00
|
|
|
reactos/dll/win32/wldap32 # Autosync
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/directx/dinput # Synced to Wine-0_9_5
|
|
|
|
reactos/dll/directx/dinput8 # Synced to Wine-0_9_5
|
|
|
|
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
|
2004-01-14 10:08:32 +08:00
|
|
|
|
|
|
|
ReactOS shares the following programs with Winehq.
|
2006-04-11 19:14:06 +08:00
|
|
|
|
|
|
|
reactos/base/applications/games/winemine # Out of sync
|
|
|
|
reactos/base/applications/regedit # Out of sync
|
|
|
|
reactos/base/system/expand # Out of sync
|
|
|
|
reactos/base/system/msiexec # Synced to Wine-0_9_3
|
2004-01-14 10:08:32 +08:00
|
|
|
|
2004-08-15 00:00:23 +08:00
|
|
|
In addition the following libs, dlls and source files are mostly based on code ported
|
2004-01-14 10:08:32 +08:00
|
|
|
from Winehq CVS. If you are looking to update something in these files
|
|
|
|
check Wine current souces first as it may already be fixed.
|
2004-01-01 23:29:51 +08:00
|
|
|
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/lib/uuid #
|
2004-08-15 00:00:23 +08:00
|
|
|
|
2004-12-12 12:43:36 +08:00
|
|
|
advapi32 -
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/advapi32/crypt/*.c # ekohl says we're not sharing this
|
2004-12-12 12:43:36 +08:00
|
|
|
|
|
|
|
gdi32 -
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/gdi32/objects/linedda.c # Out of sync
|
2004-12-12 12:43:36 +08:00
|
|
|
|
|
|
|
kernel32 -
|
2006-04-04 00:50:42 +08:00
|
|
|
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
|
2004-12-12 12:43:36 +08:00
|
|
|
|
|
|
|
msvcrt -
|
2006-04-04 00:50:42 +08:00
|
|
|
reactos/dll/win32/msvcrt/wine/*.c # Out of sync
|
2004-12-12 12:43:36 +08:00
|
|
|
|
|
|
|
User32 -
|
2006-06-21 22:16:50 +08:00
|
|
|
reactos/dll/win32/user32/controls/button.c # Synced at 20060621
|
2006-09-04 11:03:14 +08:00
|
|
|
reactos/dll/win32/user32/controls/combo.c # Synced at 20060904
|
2006-07-10 16:56:02 +08:00
|
|
|
reactos/dll/win32/user32/controls/edit.c # Synced at 20060710
|
2006-06-22 03:43:02 +08:00
|
|
|
reactos/dll/win32/user32/controls/icontitle.c # Synced at 20060617
|
|
|
|
reactos/dll/win32/user32/controls/listbox.c # Synced at 20060616
|
2006-06-23 06:12:19 +08:00
|
|
|
reactos/dll/win32/user32/controls/scrollbar.c # Forked
|
2006-09-09 06:30:46 +08:00
|
|
|
reactos/dll/win32/user32/controls/static.c # Synced at 20060908
|
2006-06-22 01:03:20 +08:00
|
|
|
|
2006-06-25 18:39:21 +08:00
|
|
|
reactos/dll/win32/user32/misc/dde.c # Synced at 20060623 (dde_misc.c)
|
|
|
|
reactos/dll/win32/user32/misc/ddeclient.c # Synced at 20060623
|
|
|
|
reactos/dll/win32/user32/misc/ddeserver.c # Synced at 20060623
|
2006-06-22 01:03:20 +08:00
|
|
|
reactos/dll/win32/user32/misc/exticon.c # Last sync date unknown
|
|
|
|
reactos/dll/win32/user32/misc/resources.c # Forked?
|
|
|
|
reactos/dll/win32/user32/misc/winhelp.c # Last sync date unknown
|
2006-06-25 18:54:32 +08:00
|
|
|
reactos/dll/win32/user32/misc/wsprintf.c # Synced at 20060623
|
2006-06-22 01:03:20 +08:00
|
|
|
|
2006-06-23 06:12:19 +08:00
|
|
|
reactos/dll/win32/user32/windows/defwnd.c # Forked
|
2006-06-22 01:03:20 +08:00
|
|
|
reactos/dll/win32/user32/windows/draw.c # Forked at Wine-20020904 (uitools.c)
|
2006-07-03 12:33:29 +08:00
|
|
|
reactos/dll/win32/user32/windows/mdi.c # Synced at 20060703
|
2006-06-22 03:43:02 +08:00
|
|
|
reactos/dll/win32/user32/windows/menu.c # Forked
|
2006-06-22 01:03:20 +08:00
|
|
|
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 shared DLLs
|
2004-12-12 12:43:36 +08:00
|
|
|
|
2005-02-20 19:33:58 +08:00
|
|
|
- Cd to the parent directory of your top-level "reactos" directory
|
|
|
|
- Check out the Wine release: "cvs -d :pserver:cvs@cvs.winehq.com:2401/home/wine co wine -r Wine-20050211"
|
|
|
|
- Create "vendor" directory (as a sibling of your top-level "reactos" directory)
|
|
|
|
- Cd to the vendor dir and check out the current vendor drop:
|
2006-03-20 17:36:03 +08:00
|
|
|
"svn co svn://svn.reactos.org/reactos/vendor/wine".
|
2005-02-20 19:33:58 +08:00
|
|
|
- For each component shared with Wine (e.g. cabinet):
|
|
|
|
"del vendor\wine\dlls\cabinet\current\*"
|
|
|
|
"copy wine\dlls\cabinet vendor\wine\dlls\cabinet\current"
|
|
|
|
"del vendor\wine\dlls\cabinet\current\.cvsignore"
|
|
|
|
Check svn status, svn add/delete files as needed
|
|
|
|
Tag new Wine release "svn copy vendor\wine\dlls\cabinet\current vendor\wine\dlls\cabinet\Wine-20050211"
|
|
|
|
- Commit the vendor drop: svn commit vendor\wine -m "Wine-20050211 vendor drop"
|
2006-03-20 17:36:03 +08:00
|
|
|
- Determine the revision number of the last Wine tag by looking at http://svn.reactos.ru/svn/reactos/tags/
|
2005-02-20 19:33:58 +08:00
|
|
|
and finding the last Wine-yyyymmdd-sync tag, e.g. Wine-20050111-sync had rev 13007
|
|
|
|
- For each component shared with Wine (e.g. cabinet):
|
|
|
|
- "cd reactos\lib\cabinet"
|
|
|
|
- Check for changes in the ReactOS tree: "svn diff -r 13007" (13007 is the revno of the previous sync).
|
|
|
|
If any changes are found, see if they're present in the Wine code. If not, submit to WineHQ
|
|
|
|
if apropriate.
|
|
|
|
- Merge in Wine changes:
|
2006-03-30 17:37:33 +08:00
|
|
|
"svn merge svn://svn.reactos.org/vendor/wine/dlls/cabinet/Wine-20050111
|
|
|
|
svn://svn.reactos.org/vendor/wine/dlls/cabinet/current"
|
2005-02-20 19:33:58 +08:00
|
|
|
- Fix any merge conflicts
|
|
|
|
- Build and test (building will sometimes require adjusting header files)
|
|
|
|
- Check which files were changed: "svn status"
|
|
|
|
- For each of the changed files, get the WineHQ CVS log. Copy author and CVS commit message into a
|
|
|
|
commit log
|
|
|
|
- Commit changed files "svn commit" using generated commit log as commit message
|