Chapter 14. ReactOS WINE Developer Guide

Abstract

ReactOS WINE Fork Overview, providing information on building the pure Win32 dlls, tools and programs from the Wine and ReWind projects.

The ReactOS Project will try to do quarterly imports of the Winehq or ReWind trees right after each ReactOS release. This document only relates to the ReactOS build system. If you are seeking information on building Wine for Mingw in a standalone configuration, please go to WineHQ and read the Mingw WINE porters guide.

Report any bugs in this document to the ReactOS WINE Maintainer

TABLE OF CONTENTS

  • Requirements
  • ReactOS Wine Build Directions
  • Advanced ReactOS WINE Developer Directions
  • TODO LIST

Requirements

  • Current copy Of the ReactOS kernel source tree.
  • MSYS UNIX enviroment for Mingw (Only if building from Winehq/ReWind trees)
  • Standard ReactOS build system (Current Mingw/Win32api)
  • Knowledge of the Winehq standards and Mingw support.

ReactOS Wine Build Directions

1. Download the most current ReactOS source's as normal.

2. Download the ReactOS WINE fork via cvs using "co wine" to the SAME parent directory where you store your ReactOS source tree. If you store your ReactOS tree in C:\src\ReactOS then your WINE checkout would be in C:\src\WINE.

3. set the enviromental variable ROS_BUILD_WINE=1

4. Rebuild ReactOS sources as normal.

Instead of ending in the normal location, the build will continue in to the WINE tree and build the target applications, tools and dlls.

Advanced ReactOS WINE Developer Directions

WARNING: Building the WINE from any other source other then the ReactOS cvs tree is not supported by the ReactOS project.

If you need to import the WINE sources in to the ReactOS build system or want to build ReactOS with a newer copy of the WINE sources follow these directions:

  • Follow the Directions at www.winehq.com for configuring WINE under Mingw.(Does not Exist Yet)
  • Run importwineros.sh on the most current wine sources(Does not Exist Yet)
  • set the enviromental variable ROS_BUILD_WINE=1
  • Rebuild ReactOS sources as normal

When adding, removing or changing exported functions in a WINE dll please be sure you have updated the wine dllname.spec file. This file contains the import/export information for win32 shared libraries on UNIX platforms and is used by to auto-generate the dllname.def export file for Windows platforms. If you are adding functionality to WINE, such as implementing a function in a WINE dll that is currently stubbed, follow the patch guidelines at Winehq

Any ReactOS changes in the REACTOS fork must be clearly commented and should not be used unless there is no other way to work around the problem.

Example:

#ifdef __REACTOS__

ReactOS code

#endif

Send ReactOS WINE patches to ReactOS Wine Patches

Send WINE only patches to WINE-Patches

DO NOT MAIL REACTOS PATCHES TO WINEHQ. All to the WINE project must be licensed either LGPL or X11.

TODO LIST

ReactOS fork

  • Write importwineros.sh script to convert wine Makefiles to ReactOS makefile's when doing a import.
  • Improve this HOWTO

Winehq/ReWind Source tree

  • Improve NTDLL functionality with WINESERVER
  • Correct DLLs that work around missing NTDLL functions