mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 22:50:43 +00:00
239 lines
9.2 KiB
Plaintext
239 lines
9.2 KiB
Plaintext
1. INTRODUCTION
|
|
|
|
Wine is a program which allows running Microsoft Windows programs
|
|
(including DOS, Windows 3.x and Win32 executables) on Unix. It
|
|
consists of a program loader which loads and executes a Microsoft
|
|
Windows binary, and a library (called Winelib) that implements Windows
|
|
API calls using their Unix or X11 equivalents. The library may also
|
|
be used for porting Win32 code into native Unix executables.
|
|
|
|
Wine is free software, released under the GNU LGPL; see the file
|
|
LICENSE for the details.
|
|
|
|
2. QUICK START
|
|
|
|
Whenever you compile from source, it is recommended to use the Wine
|
|
Installer to build and install Wine. From the top-level directory
|
|
of the Wine source (which contains this file), run:
|
|
|
|
./tools/wineinstall
|
|
|
|
Run programs as "wine [options] program". For more information and
|
|
problem resolution, read the rest of this file, the Wine man page,
|
|
the files in the documentation directory of the Wine source
|
|
(see "DOCUMENTATION"), and especially the wealth of information
|
|
found at http://www.winehq.com.
|
|
|
|
3. REQUIREMENTS
|
|
|
|
To compile and run Wine, you must have one of the following:
|
|
|
|
Linux version 2.0.36 or above
|
|
FreeBSD 4.x or FreeBSD 5-CURRENT
|
|
Solaris x86 2.5 or later
|
|
NetBSD-current
|
|
|
|
Linux info:
|
|
Although Linux version 2.0.x will mostly work, certain features
|
|
(specifically LDT sharing) required for properly supporting Win32
|
|
threads were not implemented until kernel version 2.2. If you get
|
|
consistent thread-related crashes, you may want to upgrade to at least 2.2.
|
|
Also, some bugs were fixed and additional features were added
|
|
late in the Linux 2.0.x series, so if you have a very old Linux kernel,
|
|
you may want to upgrade to at least the latest 2.0.x release.
|
|
|
|
FreeBSD info:
|
|
Make sure you have the USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG
|
|
options turned on in your kernel. More information is in the ports
|
|
tree: ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/emulators/wine/
|
|
|
|
Solaris info:
|
|
You will most likely need to build Wine with the GNU toolchain
|
|
(gcc, gas, etc.). Warning : installing gas does *not* ensure that it
|
|
will be used by gcc. Recompiling gcc after installing gas or
|
|
symlinking cc, as and ld to the gnu tools is said to be necessary.
|
|
|
|
NetBSD info:
|
|
Make sure you have the USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG options
|
|
turned on in your kernel.
|
|
|
|
File systems info:
|
|
Wine should run on most file systems. However, Wine will fail to start
|
|
if umsdos is used for the /tmp directory. A few compatibility problems have
|
|
also been reported using files accessed through Samba. Also, as NTFS
|
|
can only be used safely with readonly access for now, we recommend against
|
|
using NTFS, as Windows programs need write access almost everywhere.
|
|
In case of NTFS files, copy over to a writable location.
|
|
|
|
Wine requires kernel-level threads to run. Currently, only Linux
|
|
version 2.0 or later, FreeBSD 4.x or later, Solaris x86 version 2.5
|
|
or later, and NetBSD-current are supported.
|
|
Other operating systems which support kernel threads may be supported
|
|
in the future.
|
|
|
|
You need to have the X11 development include files installed
|
|
(called xlib6g-dev in Debian and XFree86-devel in RedHat).
|
|
To use Wine's support for multi-threaded applications, your X libraries
|
|
must be reentrant, which is probably the default by now.
|
|
If you have libc6 (glibc2), or you compiled the X libraries yourself,
|
|
they were probably compiled with the reentrant option enabled.
|
|
|
|
On x86 Systems gcc >= 2.7.2 is required.
|
|
Versions earlier than 2.7.2.3 may have problems when certain files
|
|
are compiled with optimization, often due to problems with header file
|
|
management. pgcc currently doesn't work with Wine. The cause of this problem
|
|
is unknown.
|
|
|
|
Of course you also need "make" (most likely GNU make).
|
|
|
|
You also need flex version 2.5 or later and yacc.
|
|
Bison will work as a replacement for yacc. If you are
|
|
using RedHat or Debian, install the flex and bison packages.
|
|
|
|
For the automatic processing of the test suite scripts, you also need
|
|
libperl development header support (libperl-dev package on Debian).
|
|
|
|
For requirements in case you intend to build the documentation yourself,
|
|
see "DOCUMENTATION" section.
|
|
|
|
4. COMPILATION
|
|
|
|
In case you chose to not use wineinstall, run the following commands
|
|
to build Wine:
|
|
|
|
./configure
|
|
make depend
|
|
make
|
|
|
|
This will build the program "wine" and numerous support libraries/binaries.
|
|
The program "wine" will load and run Windows executables.
|
|
The library "libwine" ("Winelib") can be used to compile and link
|
|
Windows source code under Unix.
|
|
|
|
To see compile configuration options, do ./configure --help.
|
|
|
|
To upgrade to a new release by using a patch file, first cd to the
|
|
top-level directory of the release (the one containing this README
|
|
file). Then do a "make clean", and patch the release with:
|
|
|
|
gunzip -c patch-file | patch -p1
|
|
|
|
where "patch-file" is the name of the patch file (something like
|
|
Wine-yymmdd.diff.gz). You can then re-run "./configure", and then
|
|
run "make depend && make".
|
|
|
|
5. SETUP
|
|
|
|
Once Wine has been built correctly, you can do "make install"; this
|
|
will install the wine executable, the Wine man page, and a few other
|
|
needed files.
|
|
|
|
Don't forget to uninstall any conflicting previous Wine installation
|
|
first. Try either "dpkg -r wine" or "rpm -e wine" or "make uninstall"
|
|
before installing.
|
|
|
|
If you want to read the documentation supplied with the Wine source,
|
|
see the "DOCUMENTATION" section.
|
|
|
|
Wine requires a configuration file named named "config" in your
|
|
~/.wine directory. The format of this file is explained in the config file
|
|
man page (documentation/wine.conf.man).
|
|
The file documentation/samples/config contains an example configuration file
|
|
which has to be adapted and copied to the location mentioned above.
|
|
|
|
Don't forget to add vital registry entries by applying winedefault.reg
|
|
with programs/regedit/. See documentation/ directory for details.
|
|
|
|
See http://www.winehq.com/support/ for further configuration hints.
|
|
|
|
In case of library loading errors
|
|
(e.g. "Error while loading shared libraries: libntdll.so"), make sure
|
|
to add the library path to /etc/ld.so.conf and run ldconfig as root.
|
|
|
|
In order to verify the correctness of the environment you need for
|
|
Wine to run successfully, you may run "./tools/winecheck | less".
|
|
You'll get a percentage score indicating "Wine configuration correctness".
|
|
As this program is alpha, it doesn't run a truly thorough test yet, though,
|
|
so it should be taken as a first verification step only.
|
|
|
|
See wine.conf man page on how to switch to text mode only support if desired.
|
|
|
|
6. RUNNING PROGRAMS
|
|
|
|
When invoking Wine, you may specify the entire path to the executable,
|
|
or a filename only.
|
|
|
|
For example: to run Solitaire:
|
|
|
|
wine sol (using the searchpath to locate the file)
|
|
wine sol.exe
|
|
|
|
wine c:\\windows\\sol.exe (using a DOS filename)
|
|
|
|
wine /usr/windows/sol.exe (using a Unix filename)
|
|
|
|
Note: the path of the file will also be added to the path when
|
|
a full name is supplied on the commandline.
|
|
|
|
Wine is not yet complete, so several programs may crash. Provided you set up
|
|
winedbg correctly according to documentation/debugger.sgml, you will be dropped
|
|
into a debugger so that you can investigate and fix the problem.
|
|
For more information on how to do this, please read the file
|
|
documentation/debugging.sgml.
|
|
|
|
You should backup all your important files that you give Wine access
|
|
to, or use a special Wine copy of them, as there have been some cases
|
|
of users reporting file corruption. Do NOT run Explorer, for instance,
|
|
if you don't have a proper backup, as it renames/cripples several
|
|
directories sometimes. Not even other MS apps such as e.g. Messenger are safe,
|
|
as they launch Explorer somehow. This particular corruption (!$!$!$!$.pfr)
|
|
can at least partially be fixed by using
|
|
http://home.nexgo.de/andi.mohr/download/decorrupt_explorer
|
|
|
|
7. DOCUMENTATION
|
|
|
|
Some documentation (various Wine Guides etc.) can be found in the
|
|
documentation/ directory (apart from also being available on WineHQ).
|
|
|
|
If you want to process the SGML files in there, then you can run "make doc"
|
|
in the documentation/ directory.
|
|
Doing so requires the sgml tools package (for db2html, db2ps, db2pdf) named:
|
|
Debian: docbook-utils
|
|
Mandrake: sgml-tools-A.B.C-DDmdk
|
|
SuSE: docbktls-A.BB.C-DD
|
|
|
|
8. GETTING MORE INFORMATION
|
|
|
|
WWW: A great deal of information about Wine is available from WineHQ at
|
|
http://www.winehq.com/ : various Wine Guides, application database,
|
|
bug tracking. This is probably the best starting point.
|
|
|
|
FAQ: The Wine FAQ is located at http://www.winehq.com/FAQ
|
|
|
|
Usenet: You can discuss Wine-related issues and get help
|
|
on comp.emulators.ms-windows.wine.
|
|
|
|
Bugs: Report bugs to Wine Bugzilla at http://bugs.winehq.com/.
|
|
Please search the bugzilla database to check whether your
|
|
problem is already found before posting a bug report. You can
|
|
also post bug reports to comp.emulators.ms-windows.wine.
|
|
Please read the file documentation/bugs.sgml to see what
|
|
information is required.
|
|
|
|
IRC: Online help is available at channel #WineHQ on irc.freenode.net.
|
|
|
|
CVS: The current Wine development tree is available through CVS.
|
|
Go to http://www.winehq.com/development/ for more information.
|
|
|
|
Mailing lists:
|
|
There are several mailing lists for Wine developers; see
|
|
http://www.winehq.com/development/#ml for more information.
|
|
|
|
If you add something, or fix a bug, please send a patch (in 'diff -u'
|
|
format) to wine-patches@winehq.com list for inclusion in the next
|
|
release.
|
|
|
|
--
|
|
Alexandre Julliard
|
|
julliard@winehq.com
|