wine/documentation/wine.man

579 lines
18 KiB
Groff

.\" -*- nroff -*-
.TH WINE 1 "April 26, 1999" "Version 990328" "Windows On Unix"
.SH NAME
wine \- run Windows programs on Unix
.SH SYNOPSIS
.BI "wine " "[wine_options] " "program1 " "[program2 ... ]"
.PP
For instructions on passing arguments to Windows programs, please see the
.B
PROGRAM/ARGUMENTS
section of the man page.
.SH DESCRIPTION
.B wine
.I program
loads and runs the given program, where the program is a DOS, Windows 3.x,
or Win32 executable.
.PP
.B wine
currently runs a growing list of applications written for both Win3.1 and
Win95. Older, simpler applications work better than newer, more complex
ones. A large percentage of the API has been implemented, although there
are still several major pieces of work left to do.
.SH REQUIREMENTS
.B wine
requires kernel-level threads to run. Currently, only Linux version 2.0
or later, FreeBSD-current or FreeBSD 3.0 or later, and Solaris x86
version 2.5 or later are supported. Other operating systems which support
kernel threads may be supported in the future.
.PP
Although Linux version 2.0 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 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.
.PP
If you have FreeBSD, make sure you have the USER_LDT,
SYSVSHM, SYSVSEM, and SYSVMSG options turned on in your kernel. If you
are building Wine on Solaris, you will most likely need to build Wine
with the GNU toolchain (gcc, gas, etc.)
.PP
.B X
must be installed. To use Wine's support for multithreaded applications,
your X libraries must be reentrant. If you have libc6 (glibc2), or you
compiled the X libraries yourself, they were probably compiled with the
reentrant option enabled.
.PP
.B libXpm
must be installed. If you're using Red Hat, make sure the following
packages are installed: XFree86-devel, xpm, and xpm-devel. If you're
using Debian, the packages you need are xpm4g and xpm4g-dev. If you
have some other distribution, please send a list of packages required
to the address listed in the
.B
BUGS
section to get it included in this man page.
.PP
.B gcc
2.7.2 or later is required to build
.B wine.
Versions earlier than 2.7.2.3 may have problems when certain files are
compiled with optimization.
.B
pgcc
currently doesn't work with wine. The cause of this problem is unknown.
.PP
.B flex
version 2.5 or later and
.B yacc
are required. Bison can be used in replace of yacc. If you have Redhat,
make sure the bison and flex packages are installed.
.SH INSTALLATION
To install
.B Wine,
run "./configure" in the top-level directory of the source, which will
detect your specific setup and create the Makefiles. You can run
"./configure --help" to see the available configuration options. Then do
"make depend; make" to build the
.B wine
executable, and then "make install" to install it. By default,
.B wine
is installed in the /usr/local/ heirarchy; you can specify a different path with
the --prefix option when running
.B configure.
.PP
For more information, see the
.I README
file contained in the source distribution.
.SH OPTIONS
.TP
.I -backingstore
Turn on backing store
.TP
.I -config filename
Use the named configuration file rather than the default
(/usr/local/etc/wine.conf or ~/.winerc).
.TP
.I -debug
Enter the debugger before starting application
.TP
.I -debugmsg [xxx]#name[,[xxx1]#name1][,<+|->relay=yyy1[:yyy2]]
Turn debugging messages on or off.
.RS +7
.PP
xxx is optional and can be one of the following:
.I err,
.I warn,
.I fixme,
or
.I trace.
If xxx is not specified, all debugging messages for the specified
channel are turned on. Each channel will print messages about a particular
component of Wine. # is required and can be either + or -. Note that
there is not a space after the comma between names. yyy are either the
name of a whole DLL or a single API entry by Name you either
want to include or exclude from the relay listing. These names must be in
the case as names used in the relaylisting. You can do the same for snoop.
.PP
For instance:
.PP
.I -debugmsg warn+dll,+heap
will turn on DLL warning messages and all heap messages.
.br
.I -debugmsg fixme-all,warn+cursor,+relay
will turn off all FIXME messages, turn on cursor warning messages, and turn
on all relay messages (API calls).
.br
.I -debugmsg -relay=LeaveCriticalSection:EnterCriticalSection
will turn on all relay messages except for LeaveCriticalSection and
EnterCriticalSection.
.br
.I -debugmsg +relay=ADVAPI32
will only turn on relay messages into the ADVAPI32 code.
.PP
The full list of names is: all, accel, advapi, animate, aspi, atom,
bitblt, bitmap, caret, cd, cdaudio, class, clipboard, clipping, combo,
comboex, comm, commctrl, commdlg, console, crtdll, cursor, datetime, dc,
dde, ddeml, ddraw, debug, dialog, dinput, dll, dosfs, dosmem, dplay, driver,
dsound, edit, event, exec, file, fixup, font, gdi, global, graphics, header,
heap, hook, hotkey, icon, imagehlp, imagelist, imm, int, int10, int16, int17,
int19, int21, int31, io, ipaddress, key, keyboard, ldt, listbox, listview,
local, mci, mcianim, mciwave, mdi, menu, message, metafile, midi, mmaux, mmio,
mmsys, mmtime, module, monthcal, mpr, msacm, msg, nativefont, nonclient, ntdll,
ole, pager, palette, pidl, print, process, profile, progress, prop, psapi,
psdrv, rebar, reg, region, relay, resource, s, scroll, security, segment,
selector, sem, sendmsg, server, shell, shm, snoop, sound, static, statusbar,
stress, string, syscolor, system, tab, task, text, thread, thunk, timer,
toolbar, toolhelp, tooltips, trackbar, treeview, tweak, uitools, updown, ver,
virtual, vxd, win, win16drv, win32, wing, winsock, wnet, x11, x11drv.
.PP
For more information on debugging messages, see the file
.I documentation/debug-msgs
in the source distribution.
.RE
.TP
.I -depth n
Change the depth to use for multiple-depth screens
.TP
.I -desktop geom
Use a desktop window of the given geometry
.TP
.I -display name
Use the specified display
.TP
.I -dll name[,name[,...]]={native|elfdll|so|builtin}[,{n|e|s|b}[,...]][:...]
Selects the override type and load order of dll used in the loading process
for any dll. The default is set in wine.conf or ~/.winerc. There are
currently four types of libraries that can be loaded into a process' address
space: Native windows dlls (
.I native
), ELF encapsulated windows dlls (
.I elfdll
), native ELF libraries (
.I so
)and wine internal dlls (
.I builtin
). The type may be abbreviated with the first letter of the type (
.I n, e, s, b
). Each sequence of orders must be seperated by commas.
.br
Each dll may have its own specific load order. The load order determines
which verion of the dll is attempted to be loaded into the address space. If
the first fails, then the next is tried and so on. Different load orders can
be specified by seperating the entries with a colon. Multiple libraries
with the same load order can be separated with commas.
.br
Examples:
.br
.I -dll comdlg32,commdlg=n,b
.br
Try to load comdlg32 and commdlg as native windows dll first and try
the builtin version if the native load fails.
.br
.I -dll comdlg32,commdlg=e,n:shell,shell32=b:comctl32,commctrl=n
.br
Try to load comdlg32 and commdlg as elfdll first and try the native version
if the elfdll load fails; load shell32/shell always as builtin and
comctl32/commctrl always as native.
.br
Note: It is wise to keep dll pairs (comdlg32/commdlg, shell/shell32, etc.)
having exactly the same load order. This will prevent mismatches at runtime.
See also configuration file format below.
.TP
.I -failreadonly
Read only files may not be opened in write mode (the default is to
allow opening read-only files for writing, because most Windows
programs always request read-write access, even on CD-ROM drives...).
.TP
.I -fixedmap
Use a "standard" color map.
.TP
.I -iconic
Start as an icon
.TP
.I -language xx
Set the language to
.I xx
(one of Ca, Cs, Da, De, En, Eo, Es, Fi, Fr, Hu, It, Ko, No, Pl, Pt, Ru, Sv, Wa)
.TP
.I -managed
Create each top-level window as a properly managed X window
.TP
.I -mode modename
Determines the mode in which
.B wine
is started. Possible mode names are
.I standard
and
.I enhanced.
Enhanced mode is the default (when no -mode option is specified).
.TP
.I -name name
Set the application name
.TP
.I -privatemap
Use a private color map
.TP
.I -synchronous
Turn on synchronous display mode
.TP
.I -winver version
Specify which Windows version WINE should imitate.
Possible arguments are: win31, win95, nt351, and nt40.
.PD 1
.SH PROGRAM/ARGUMENTS
The program name may be specified in DOS format (
.I
C:\\WINDOWS\\SOL.EXE)
or in Unix format (
.I /msdos/windows/sol.exe
). The program being executed may be passed arguments by adding them on
to the end of the command line invoking
.B wine
(such as: wine "notepad C:\\TEMP\\README.TXT"). Note that
the program name and its arguments
.I must
be passed as a single parameter, which is usually accomplished by placing
them together in quotation marks. Multiple applications may be started
by placing all of them on the command line (such as: wine notepad clock).
.SH CONFIGURATION FILE
.B wine
expects a configuration file (
.I /usr/local/etc/wine.conf
), which should
conform to the following rules (the format is just like a Windows .ini
file). The actual file name may be specified during the execution of
the
.B configure
script with the --sysconfdir option. Alternatively, you may have a
.I .winerc
file of this format in your home directory or have the environment variable
.B WINE_INI
pointing to a configuration file, or use the -config option on the command
line.
.SH ENVIRONMENT VARIABLES
.B wine
makes the environment variables of the shell from which
.B wine
is started accesible to the windows/dos processes started. So use the
appropriate syntax for your shell to enter environment variables you need.
.SH CONFIGURATION FILE FORMAT
All entries are grouped in sections; a section begins with the line
.br
.I [section name]
.br
and continues until the next section starts. Individual entries
consist of lines of the form
.br
.I entry=value
.br
The value can be any text string, optionally included in single or
double quotes; it can also contain references to environment variables
surrounded by
.I ${}.
Supported section names and entries are listed below.
.PP
.B [Drive X]
.br
This section is used to specify the root directory and type of each
.B DOS
drive, since most Windows applications require a DOS/MS-Windows based
disk drive & directory scheme. There is one such section for every
drive you want to configure.
.PP
.I format: Path = <rootdirectory>
.br
default: none
.br
If you mounted your dos partition as
.I /dos
and installed Microsoft Windows in
C:\\WINDOWS then you should specify
.I Path=/dos
in the
.I [Drive C]
section.
.PP
.I format: Type = <type>
.br
default: hd
.br
Used to specify the drive type; supported types are floppy, hd, cdrom
and network.
.PP
.I format: Label = <label>
.br
default: 'Drive X'
.br
Used to specify the drive label; limited to 11 characters.
.PP
.I format: Serial = <serial>
.br
default: 12345678
.br
Used to specify the drive serial number, as an 8-character hexadecimal
number.
.PP
.I format: Filesystem = <fstype>
.br
default: win95
.br
Used to specify the type of the file system Wine should emulate on a given
directory structure/underlying file system.
.br
Supported types are msdos (or fat), win95 (or vfat), unix.
.br
Recommended:
.br
win95 for ext2fs, VFAT and FAT32
.br
msdos for FAT16 (ugly)
.br
You definitely don't want to use "unix" unless you intend to port programs using Winelib.
.br
Always try to avoid using FAT16. Use VFAT/FAT32 OS file system driver instead !
.PP
.B [wine]
.br
.I format: windows = <directory>
.br
default: C:\\WINDOWS
.br
Used to specify a different Windows directory
.PP
.I format: system = <directory>
.br
default: C:\\WINDOWS\\SYSTEM
.br
Used to specify a different system directory
.PP
.I format: temp = <directory>
.br
default: C:\\TEMP
.br
Used to specify a directory where Windows applications can store
temporary files.
.PP
.I format: path = <directories separated by semi-colons>
.br
default: C:\\WINDOWS;C:\\WINDOWS\\SYSTEM
.br
Used to specify the path which will be used to find executables and .DLL's.
.PP
.I format: symboltablefile = <filename>
.br
default: wine.sym
.br
Used to specify the path and file name of the symbol table used by the built-in
debugger.
.PP
.B [DllDefaults]
.br
.I format: EXTRA_LD_LIBRARY_PATH=/usr/local/lib/wine[:/more/path/to/search[:...]]
.br
The path will be appended to any existing LD_LIBRARY_PATH from the
environment for the search of elfdlls and .so libraries.
.PP
.I format: DefaultLoadOrder=native,elfdll,so,builtin
.br
A comma seperated list of module-types to try to load in that specific
order. The DefaultLoadOrder key is used as a fallback when a module is
not specified explicitely. If the DefaultLoadOrder key is not found,
then the order "native,elfdll,so,builtin" is used.
.br
Case is not (yet) important and only the first letter of each type is enough
to identify the type n[ative], e[lfdll], s[o], b[uiltin]. Also whitespace is
ignored. Keep everything in lower case to be sure that your entries keep the
same meaning. See also commandline option
.I -dll
for details about the alowable types.
.PP
.B [DllOverrides]
.br
There are no explicit keys defined other than module/library names. A comma
separated list of modules is followed by an assignment of the load-order
for these specific modules. See above for possible types. You should not
specify an extension.
.br
Examples:
.br
.I kernel32, gdi32, user32 = builtin
.br
.I kernel, gdi, user = builtin
.br
.I comdlg32 = elfdll, native, builtin
.br
.I commdlg = native, builtin
.br
.I version, ver = elfdll, native, builtin
.br
Changing the load order of kernel/kernel32, gdi/gdi32 and user/user32 to
anything other than builtin will cause wine to fail because wine cannot
use native versions for these libraries (user[32] and gdi[32] might work
native someday, but kernel[32] will never work native). These libraries are
also the last to be converted to elfdlls and will live as builtins for quite
some time to come.
.br
Always make sure that you have some kind of strategy in mind when you start
fiddling with the current defaults and needless to say that you must know
what you are doing.
.PP
.B [DllPairs]
.br
This is a simple pairing in the form 'name1 = name2'. It is supposed to
identify the dlls that cannot live without eachother unless they are
loaded in the same format. Examples are common dialogs and controls,
shell, kernel, gdi, user, etc...
.br
The code will issue a warning if the loadorder of these pairs are different
and might cause hard-to-find bugs due to incompatible pairs loaded at
run-time. Note that this pairing gives
.B no
guarantee that the pairs
actually get loaded as the same type, nor that the correct versions are
loaded (might be implemented later). It merely notes obvious trouble.
.br
Examples:
.br
.I kernel = kernel32
.br
.I commdlg = comdlg32
.br
The implementation will probably change in a later stage to force pairs to
be loaded correctly, but there are also drawbacks with such an approach.
.PP
.B [serialports]
.br
.I format: com[12345678] = <devicename>
.br
default: none
.br
Used to specify the devices which are used as com1 - com8.
.PP
.B [parallelports]
.br
.I format: lpt[12345678] = <devicename>
.br
default: none
.br
Used to specify the devices which are used as lpt1 - lpt8.
.PP
.B [spy]
.br
.I format: file = <filename or CON when logging to stdout>
.br
default: none
.br
Used to specify the file which will be used as
.B logfile.
.PP
.I format: exclude = <message names separated by semicolons>
.br
default: none
.br
Used to specify which messages will be excluded from the logfile.
.PP
.I format: include = <message names separated by semicolons>
.br
default: none
.br Used to specify which messages will be included in the logfile.
.PP
.B [Tweak.Layout]
.br
.I format: WineLook=<Win31|Win95|Win98>
.br
default: Win31
.br
Use Win95-like window displays or Win3.1-like window displays.
.SH SAMPLE CONFIGURATION FILE
A sample configuration file is distributed as
.B wine.ini
in the top-level directory of the source distribution.
.SH AUTHORS
.B Wine
is available thanks to the work of many developers. For a listing
of the authors, please see the file
.B AUTHORS
in the top-level directory of the source distribution.
.SH BUGS
.PP
A status report on many appplications is available from
.I http://www.winehq.com/Apps.
Please add entries to this list for applications you currently run.
.PP
Bug reports and successes may be posted to
.I comp.emulators.ms-windows.wine.
If you want to post a bug report, please read the file
.I documentation/bugreports
in the Wine source to see what information is necessary.
.PP
For problems and suggestions with this manpage, please send a note to
James Juran <jrj120@psu.edu>.
.SH AVAILABILITY
The most recent public version of
.B wine
can be obtained via FTP from metalab.unc.edu or tsx-11.mit.edu in the
/pub/linux/ALPHA/Wine/development directory. The releases are in the
format 'Wine-yymmdd.tar.gz', or 'Wine-yymmdd.diff.gz' for the diff's
from the previous release.
.PP
The latest snapshot of the code may be obtained via CVS. For information
on how to do this, please see
.I
http://www.winehq.com/dev.html
.PP
WineHQ, the
.B wine
development headquarters, is at
.I http://www.winehq.com/.
This website contains a great deal of information about
.B wine
as well as a collection of unofficial patches against the current release.
.PP
The
.B wine
newsgroup is
.I comp.emulators.ms-windows.wine.
All discussions about the project take place in this forum.
.SH FILES
.PD 0
.TP
.I /usr/local/bin/wine
The Wine program loader.
.TP
.I /usr/local/bin/dosmod
The DOS program loader.
.TP
.I /usr/local/etc/wine.conf
Global configuration file for wine.
.TP
.I ~/.winerc
User-specific configuration file
.TP
.I /usr/local/lib/wine.sym
Global symbol table (used in debugger)
.SH "SEE ALSO"
.BR clone (2)