Skip to content
Snippets Groups Projects
Commit 56e6cd0e authored by Andreas Mohr's avatar Andreas Mohr Committed by Alexandre Julliard
Browse files

- new, much more detailed and easier "step-by-step" layout

- better intro
- add Glossary (glossary.sgml)
- much better Getting Wine chapter
- much better Wine configuration chapter
- better Wine drive layer configuration section
- explain wineserver cmdline options
- rearranged tons of things into a less messy state
- tons of janitorial fixes
parent 06a8c120
No related branches found
No related tags found
No related merge requests found
Showing
with 4400 additions and 2911 deletions
......@@ -12,9 +12,11 @@ EXTRASUBDIRS = samples status
WINE_USER_SRCS = \
bugs.sgml \
compiling.sgml \
configuring.sgml \
fonts.sgml \
getting.sgml \
glossary.sgml \
installing.sgml \
introduction.sgml \
printing.sgml \
......@@ -24,9 +26,9 @@ WINE_USER_SRCS = \
WINE_DEVEL_SRCS = \
architecture.sgml \
build.sgml \
compiling.sgml \
consoles.sgml \
cvs-regression.sgml \
cvs.sgml \
debugger.sgml \
debugging.sgml \
dlls.sgml \
......
......@@ -948,7 +948,7 @@ child1->popup->child2->child3->wnd1->child4->wnd2->desktop.
<para>
(See also <filename>./DEVELOPER-HINTS</filename> or the
<filename>dlls/</filename> subdirectory to see which DLLs
are currently being rewritten for wine)
are currently being rewritten for Wine)
</para>
<!-- FIXME: Should convert this table into a VariableList element -->
......@@ -959,7 +959,7 @@ AVIFILE.DLL: 32-bit application programming interfaces for the
Audio Video Interleave (AVI) Windows-specific
Microsoft audio-video standard
COMMCTRL.DLL: 16-bit common controls
COMCTL32.DLL: 32-bit common controls
COMCTL32.DLL: 32-bit common controls
COMDLG32.DLL: 32-bit common dialogs
COMMDLG.DLL: 16-bit common dialogs
COMPOBJ.DLL: OLE 16- and 32-bit compatibility libraries
......@@ -980,8 +980,8 @@ IMM32.DLL: 32-bit IMM API
IMGUTIL.DLL:
KERNEL32.DLL 32-bit kernel DLL
KEYBOARD.DLL: Keyboard drivers
LZ32.DLL: 32-bit Lempel-Ziv or LZ file compression
used by the installshields (???).
LZ32.DLL: 32-bit Lempel-Ziv or LZ file compression
used by the installshield installers (???).
LZEXPAND.DLL: LZ file expansion; needed for Windows Setup
MMSYSTEM.DLL: Core of the Windows multimedia system
MOUSE.DLL: Mouse drivers
......
......@@ -2,7 +2,7 @@
<title>Troubleshooting / Reporting bugs</title>
<sect1 id="troubleshooting">
<title>What to do if some program still doesn't work ?</title>
<title>What to do if some program still doesn't work?</title>
<para>
There are times when you've been trying everything, you even killed a cat
......@@ -17,21 +17,9 @@
<title>Run "winecheck" to check your configuration</title>
<para>
Run a Perl script called <command>winecheck</command>, to be
found in Wine's tools/ directory.
The latest version can always be found at
<ulink
url="http://home.arcor.de/andi.mohr/download/winecheck">http://home.arcor.de/andi.mohr/download/winecheck</ulink>.
Make sure to run <command>chmod +x winecheck</command> first before
trying to execute it...
(or alternatively run it via <command>perl ./winecheck</command>)
The winecheck output will be a percentage score indicating Wine
configuration correctness.
Note that winecheck is only alpha, so it's not very complete or
100% accurate.
Run a Perl script called <command>winecheck</command>.
For details, please refer to the <link
linkend="config-verify">Configuration section</link>.
</para>
</sect2>
......@@ -39,7 +27,7 @@
<title>Use different windows version settings</title>
<para>
In several cases using <link linkend="windows-versions">different windows version settings</link> can help.
In several cases using <link linkend="config-windows-versions">different windows version settings</link> can help.
</para>
</sect2>
......@@ -62,7 +50,7 @@
<para>
Run with --debugmsg +loaddll to figure out which DLLs are
being used, and whether they're being loaded as native or
builtin.
built-in.
Then make sure you have proper native DLL files in your
configured C:\windows\system directory and fiddle with DLL
load order settings at command line or in config file.
......@@ -224,7 +212,7 @@
<listitem>
<para>
The name of the Operating system you're using, what distribution (if
any), and what version. (i.e., Linux RedHat 7.2)
any), and what version. (i.e., Linux Red Hat 7.2)
</para>
</listitem>
<listitem>
......
<chapter id="build">
<title>The Wine Build System</title>
<para>How the Wine build system works, and how to tweak it...</para>
<para>FIXME: How the Wine build system works, and how to tweak it...</para>
</chapter>
<!-- Keep this comment at the end of the file
......
<chapter id="compiling">
<title>Getting and Compiling the Wine Source</title>
<para>How to obtain and compile Wine, and problems that may arise...</para>
<title>Compiling the Wine Source</title>
<sect1 id="getting-source">
<title>Getting Wine Source</title>
<para>
If you are going to compile Wine, either to use the most recent
code possible or to improve it, then the first thing to do is to
obtain a copy of the source code. We'll cover how to retrieve and
compile the official source releases from the <link
linkend="getting-source-ftp">FTP archives</link>, and also how
to get the cutting edge up-to-the-minute fresh Wine source
code from <link linkend="getting-source-cvs">CVS (Concurrent
Versions System)</link>. Both processes of source code
installation are similar, and once you master one, you should
have no trouble dealing with the other one.
</para>
<para>
You may also need to know how to apply a source code patch to
your version of Wine. Perhaps you've uncovered
a bug in Wine, reported it to the <ulink
url="mailto:wine-devel@winehq.com">Wine mailing list</ulink>,
and received a patch from a developer to hopefully fix the
bug. We will show you how to
<link linkend="getting-upgrading">safely apply the
patch</link> and revert it if it doesn't work.
</para>
<para>How to compile wine, and problems that may arise...</para>
<sect2 id="getting-source-ftp">
<title>Getting Wine Source Code from the FTP Archive</title>
<para>
The safest way to grab the source is from one of the official
FTP archives. An up to date listing is in the <ulink
url="http://www.winehq.com/source/ANNOUNCE">ANNOUNCE</ulink>
file in the Wine distribution (which you would have if you
already downloaded it). Here is a list
of FTP servers carrying Wine:
</para>
<itemizedlist>
<listitem>
<para>
<ulink url="ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/development/">
ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/development/
</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/">
ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/
</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="ftp://ftp.fu-berlin.de/unix/linux/mirrors/sunsite.unc.edu/ALPHA/wine/development/">
ftp://ftp.fu-berlin.de/unix/linux/mirrors/sunsite.unc.edu/ALPHA/wine/development/
</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="ftp://orcus.progsoc.uts.edu.au/pub/Wine/development/">
ftp://orcus.progsoc.uts.edu.au/pub/Wine/development/
</ulink>
</para>
</listitem>
</itemizedlist>
<para>
The official releases are tagged by date with the format
"Wine-<replaceable>YYYYMMDD</>.tar.gz". Your best bet is to grab
the latest one.
</para>
<para>
Once you have downloaded this, you must first compile Wine, and then
install it. This is not very hard to do. First switch to the
directory containing the file you just downloaded. Then extract the
source with (e.g.):
<screen>
<prompt>$ </><userinput>tar xzvf wine-<replaceable>20021031</>.tar.gz</>
</screen>
</para>
<para>
Then, switch to the directory that was created and compile it by typing (e.g.):
<screen>
<prompt>$ </><userinput>./tools/wineinstall</>
</screen>
</para>
<para>
NOTE: You must make sure that you are not the superuser (root) when doing this,
and that you have write permission to the directory that was created by the tar
command as well as all of its subdirectories and files.
</para>
</sect2>
<sect2 id="getting-source-cvs">
<title>Getting Wine Source Code from CVS</title>
<para>
The official web page for Wine CVS is
<ulink url="http://www.winehq.com/development/">
http://www.winehq.com/development/</>.
</para>
<para>
First, you need to get a copy of the latest Wine sources
using CVS. You can tell it where to find the source tree by
setting the <envar>CVSROOT</envar> environment variable. You
also have to log in anonymously to the Wine CVS server. In
<command>bash</>, it might look something like this:
<screen>
<prompt>$ </><userinput>export CVSROOT=:pserver:cvs@cvs.winehq.com:/home/wine</>
<prompt>$ </><userinput>cvs login</>
Password:
<prompt>$ </><userinput>cvs checkout wine</>
</screen>
</para>
<para>
That'll pull down the entire Wine source tree from
winehq.com and place it in the current directory (actually
in the 'wine' subdirectory). CVS has a million command line
parameters, so there are many ways to pull down files, from
anywhere in the revision history. Later, you can grab just
the updates:
<screen>
<prompt>$ </><userinput>cvs update -PAd</>
</screen>
</para>
<para>
<command>cvs update</> works from inside the source tree.
You don't need the <envar>CVSROOT</> environment variable
to run it either. You just have to be inside the source tree.
The <parameter>-P</>, <parameter>-A</> and <parameter>-d</>
options make sure your local Wine tree directory structure stays
in sync with the remote repository.
</para>
<para>
After you've made changes, you can create a patch with
<command>cvs diff -u</>, which sends output to stdout
(the <parameter>-u</> controls the format of the
patch). So, to create a <filename>my_patch.diff</>
file, you would do this:
<screen>
<prompt>$ </><userinput>cvs diff -u &gt;<replaceable>my_patch.diff</></>
</screen>
</para>
<para>
You can call <command>cvs diff</command> from anywhere in the
tree (just like <command>cvs update</command>), and it will
diff recursively from that point. You can also specify
single files or subdirectories:
<screen>
<prompt>$ </><userinput>cvs diff -u dlls/winaspi &gt;<replaceable>my_aspi_patch.diff</></>
</screen>
</para>
<para>
Experiment around a little. It's fairly intuitive.
</para>
</sect2>
<sect2 id="getting-upgrading">
<title>Upgrading Wine with a Patch</title>
<para>
If you have the Wine source code, as opposed to a binary
distribution, you have the option of applying patches to the
source tree to fix bugs and add experimental features.
Perhaps you've found a bug, reported it to the <ulink
url="mailto:wine-devel@winehq.com">Wine mailing list</>,
and received a patch file to fix the bug. You can apply the
patch with the <command>patch</> command, which takes a
streamed patch from <filename>stdin</>:
<screen>
<prompt>$ </><userinput>cd wine</>
<prompt>$ </><userinput>patch -p0 &lt;<replaceable>../patch_to_apply.diff</></>
</screen>
</para>
<para>
To remove the patch, use the <parameter>-R</> option:
<screen>
<prompt>$ </><userinput>patch -p0 -R &lt;<replaceable>../patch_to_apply.diff</></>
</screen>
</para>
<para>
If you want to do a test run to see if the patch will apply
successfully (e.g., if the patch was created from an older or
newer version of the tree), you can use the
<parameter>--dry-run</> parameter to run the patch
without writing to any files:
<screen>
<prompt>$ </><userinput>patch -p0 --dry-run &lt;<replaceable>../patch_to_apply.diff</></>
</screen>
</para>
<para>
<command>patch</> is pretty smart about extracting
patches from the middle of a file, so if you save an email with
an inlined patch to a file on your hard drive, you can invoke
patch on it without stripping out the email headers and other
text. <command>patch</> ignores everything that doesn't
look like a patch.
</para>
<para>
The <parameter>-p0</> option to <command>patch</>
tells it to keep the full file name from the patch file. For example,
if the file name in the patch file was
<filename>wine/programs/clock/main.c</>.
Setting the <parameter>-p0</> option would apply the patch
to the file of the same name i.e.
<filename>wine/programs/clock/main.c </>.
Setting the <parameter>-p1</> option would strip off the
first part of the file name and apply
the patch to <filename>programs/clock/main.c </>.
The <parameter>-p1</> option would be useful if you named
your top level Wine directory differently than the person who sent
you the patch. For the <parameter>-p1</> option
<command>patch</> should be run from the top level Wine directory.
</para>
</sect2>
</sect1>
<para>
In case you downloaded Wine source code files, this chapter will
tell you how to compile it into binary files before installing them.
Otherwise, please proceed directly to the <link
linkend="installing">Installation chapter</link> to install the
binary Wine files.
</para>
<sect1 id="compiling-wine">
<title>Compiling Wine</title>
<sect2>
<title>Tools required</title>
<title>Requirements</title>
<para>
<itemizedlist>
<listitem>
<para>
gcc >= 2.7.x required (Wine uses the stdcall attribute).
Versions earlier than 2.7.2.3 barf on shellord.c
-- compile without optimizing for that file.
In addition EGCS 1.1.x and GCC 2.95.x are reported
to work fine.
</para>
</listitem>
<listitem>
<para>
flex >= 2.5.1 (required for the debugger and wrc,
and lex won't do)
</para>
</listitem>
<listitem>
<para>
bison (also required for debugger. Don't know whether BSD yacc
would work.)
</para>
</listitem>
<listitem>
<para>
X11 libs and include files
</para>
</listitem>
<listitem>
<para>
texinfo >= 3.11 (optional, to compile the documentation.)
</para>
</listitem>
<listitem>
<para>
autoconf (if you want to remake configure, which is
not normally required)
</para>
</listitem>
<listitem>
<para>
XF86DGA extension (optional, detected by configure,
needed for DirectX support)
</para>
</listitem>
<listitem>
<para>
Open Sound System (optional, detected by configure,
for sound support)
</para>
</listitem>
</itemizedlist>
</para>
<para>
The Red Hat RPMs are gcc-<replaceable>XXX</>,
flex-<replaceable>XXX</>, and XFree86-devel-<replaceable>XXX</>,
where XXX is the version number.
For an up-to-date list of software requirements for compiling
Wine and instructions how to actually do it, please see the <ulink
url="http://www.winehq.org/source/README">README</ulink> file,
which is also available in the main directory of a Wine source
code tree.
</para>
</sect2>
<sect2>
<title>Space required</title>
<para>
You also need about 230 MB of available disk space for compilation.
You also need about 400 MB of available disk space for compilation.
The compiled libwine.so binary takes around 5 MB of disk space,
which can be reduced to about 1 MB by stripping ('strip wine').
Stripping is not recommended, however, as you can't submit
......@@ -298,86 +40,11 @@ Password:
<title>Common problems</title>
<para>
If you get a repeatable sig11 compiling shellord.c, thunk.c
or other files, try compiling just that file without optimization.
Then you should be able to finish the build.
or other files, try compiling just that file without optimization
(removing the -Ox option from the GCC command in the
corresponding Makefile).
</para>
</sect2>
<sect2>
<title>OS specific issues</title>
<para>
<itemizedlist>
<listitem>
<para>
FreeBSD -- In order to run Wine, the FreeBSD kernel
needs to be compiled with
<informaltable frame="all">
<tgroup cols="2">
<tbody>
<row>
<entry>options</entry>
<entry>USER_LDT</entry>
</row>
<row>
<entry>options</entry>
<entry>SYSVSHM</entry>
</row>
<row>
<entry>options</entry>
<entry>SYSVSEM</entry>
</row>
<row>
<entry>options</entry>
<entry>SYSVMSG</entry>
</row>
</tbody>
</tgroup>
</informaltable>
If you need help, read the chapter "<ulink url="http://www.freebsd.org/handbook/kernelconfig-building.html">Building and Installing a Custom Kernel</ulink>" in the "<ulink url="http://www.freebsd.org/handbook/">FreeBSD handbook</ulink>. You'll need to be running FreeBSD 3.x or later.
</para>
</listitem>
<listitem>
<para>
SCO Unixware, Openserver -- UW port is supported by SCO.
</para>
</listitem>
<listitem>
<para>
Solaris x86 2.x -- Needs the GNU toolchain (gcc, gas, flex as above, yacc may work) to compile, seems functional (980215).
</para>
</listitem>
<listitem>
<para>
DGUX, HP, Irix, or other Unixes; non-x86 Linux.
No ports have been seriously attempted.
For non-x86 Unixes, only a Winelib port is relevant.
Alignment may be a problem.
</para>
</listitem>
<listitem>
<para>
OS/2 -- not a complete port. See <ulink
url="http://odin.netlabs.org/">Odin</>. Note that this
project uses some Wine code but is not based on Wine.
</para>
</listitem>
<listitem>
<para>
BeOS -- not a complete port. See <ulink
url="http://bewine.beunited.org/">BeWine</>.
</para>
</listitem>
<listitem>
<para>
Macintosh/Rhapsody -- no ports have been attempted.
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
</sect1>
</chapter>
......
This diff is collapsed.
......@@ -58,7 +58,7 @@ cvs -d $CVSROOT checkout wine
<para>
Note also that it is possible to do all this with a direct
CVS connection, of course. The full CVS file method is less
painful for the winehq CVS server and probably a bit faster
painful for the Winehq CVS server and probably a bit faster
if you don't have a very good net connection.
</para>
<note>
......
<chapter id="cvs">
<title>Using CVS</title>
<!-- this part is sort of duplicated in the Wine User Guide's
getting.sgml file (as a short intro to CVS). Please don't forget
to update both!
-->
<sect1>
<title>What is CVS?</title>
<para>
<ulink url="http://www.cvshome.org/">CVS</ulink> (Concurrent
Versions System) is the leading source code control system in
the freeware community. It manages source code of projects,
keeps a history of changes to the source files and improves
conflict management when two or more developers work on the same
code part. Another major benefit of CVS is that it's very easy
to update a project to the latest version. CVS features
flexible branching, intelligent merging, high quality <ulink
url="http://www.loria.fr/~molli/cvs/doc/cvs_toc.html">documentation</ulink>
and client/server access with a wide choice of <ulink
url="http://www.loria.fr/cgi-bin/molli/wilma.cgi/rel">clients</ulink>.
</para>
<para>
Current Wine sources are available via anonymous client/server
CVS. You will need CVS 1.9 or above. If you are coming from
behind a firewall, you will either need a hole in the firewall
for the CVS port (2401) or use <ulink
url="http://www.cyclic.com/cvs/d ev-net.html">SOCKS</ulink>.
</para>
</sect1>
<sect1>
<title>CVS installation check</title>
<para>
First you need to make sure that you have <command>cvs</command>
installed.
To check whether this is the case, please run:
</para>
<screen>
<prompt>$ </><userinput>cvs</>
</screen>
<para>
If this was successful, then you should have gotten a nice CVS
"Usage" help output. Otherwise (e.g. an error "cvs: command not
found") you still need to install a CVS package for your
particular operating system, similar to the instructions given
in the Wine User Guide chapters for getting and installing a
Wine package on various systems.
</para>
</sect1>
<sect1>
<title>Configuring Wine-specific CVS settings</title>
<para>
First, you should do a
</para>
<screen>
<prompt>$ </><userinput>touch ~/.cvspass</>
</screen>
<para>
to create or update the file <filename>.cvspass</filename> in
your home directory, since CVS needs this file (for password
and login management) and will complain loudly if it doesn't exist.
</para>
<para>
Second, we need to create the file
<filename>.cvsrc</filename> in your home directory
containing the CVS configuration settings needed for a valid
Wine CVS setup (use CVS compression, properly update file and
directory information, ...).
The content of this file should look like the following:
<programlisting>
cvs -z 3
update -PAd
diff -u
checkout -P
</programlisting>
Create the file with an editor of your choice, either by running
<screen>
<prompt>$ </><userinput>&lt;editor&gt; ~/.cvsrc</>
</screen>
, where &lt;editor&gt; is the editor you want to use (e.g.
<command>joe</command>, <command>ae</command>,
<command>vi</command>),
or by creating the file <filename>.cvsrc</filename> in your
home directory with your favourite graphical editor like nedit, kedit,
gedit or others.
</para>
<para>
<command>-z</command> sets the compression level (Levels higher
than 3 will probably not result in faster downloading unless you
have a fast machine and a slow network connection).
<command>-Pd</command> will delete empty directories and create
newly added ones. <command>-A</command> will reset any previous
tag in order to get the latest version in the tree.
<command>-u</command> will create the easiest to read
patches. Please do not submit patches with <command>diff -w</command>.
</para>
</sect1>
<sect1>
<title>Downloading the Wine CVS tree</title>
<para>
Once CVS is installed and the Wine specific CVS
configuration is done, you can now do a login on our CVS
server and checkout (download) the Wine source code.
First, let's do the server login:
</para>
<screen>
<prompt>$ </><userinput>cvs -d :pserver:cvs@cvs.winehq.com:/home/wine login</>
</screen>
<para>
If <command>cvs</command> successfully connects to the CVS server,
then you will get a "CVS password:" prompt.
Simply enter "cvs" as the password (the password is
<emphasis>case sensitive</emphasis>: no capital letters!).
If you want to use one of the mirror servers for Wine CVS
download, please refer to the section <link
linkend="cvs-mirrors">Wine CVS mirror servers</link>.
</para>
<para>
After login, we are able to download the Wine source code tree.
Please make sure that you are in the directory that you want
to have the Wine source code in (the Wine source code will
use the subdirectory <filename>wine/</filename> in this
directory, since the subdirectory is named after the CVS module
that we want to check out). We assume that your current directory
might be your user's home directory.
To download the Wine tree into the subdirectory <filename>wine/</filename>, run:
</para>
<screen>
<prompt>$ </><userinput>cvs -d :pserver:cvs@cvs.winehq.com:/home/wine checkout wine</>
</screen>
<para>
Downloading the CVS tree might take a while (some minutes
to few hours), depending on your connection speed.
Once the download is finished, you should keep a note of
which directory the newly downloaded
<filename>wine/</filename> directory is in, by running
<command>pwd</command> (Print Working Directory):
</para>
<screen>
<prompt>$ </><userinput>pwd</>
</screen>
<para>
Later, you will be able to change to this directory by
running:
</para>
<screen>
<prompt>$ </><userinput>cd <replaceable>&lt;some_dir&gt;</></>
</screen>
<para>
, where &lt;some_dir&gt; is the directory that
<command>pwd</command> gave you.
By running
</para>
<screen>
<prompt>$ </><userinput>cd wine</>
</screen>
<para>
, you can now change to the directory of the Wine CVS tree
you just downloaded.
</para>
</sect1>
<sect1 id="cvs-mirrors">
<title>Wine CVS mirror servers</title>
<para>
Wine's CVS tree is mirrored at several places arround the world
to make sure that the source is easily accessible. Note that not
all servers have all repositories available, but all have at
least the Wine source.
</para>
<para>
CVS access is granted through CVS' "pserver"
authentication. You should set
your <command>CVSROOT</command> environment variable to point to one of
the servers using this format:
</para>
<screen>
CVSROOT=:pserver:&lt;Username&gt;@&lt;CVS Server&gt;:&lt;Server root&gt;
</screen>
<para>
Alternatively, you can use the -d parameter of
<command>cvs</command> instead.
Substitude the applicable fields from the table below.
</para>
<para>
Just do a traceroute and a ping on all servers below to find out
which are
closest to you.
</para>
<para>
<table><title>Wine CVS servers</title>
<tgroup cols=3 align="center">
<thead>
<row>
<entry>CVS Server</entry>
<entry>Username</entry>
<entry>Password</entry>
</row>
</thead>
<tbody>
<row>
<entry>cvs.winehq.com; Minnesota, USA (CodeWeavers)</entry>
<entry>cvs</entry>
<entry>cvs</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect1>
<sect1>
<title>Other modules available via CVS from WineHQ</title>
<para>
The WineHQ CVS server makes a couple of other things available as well.
To get these, log in anonymously as above and do:
</para>
<screen>
<prompt>$ </><userinput>cvs co <replaceable>&lt;modulename&gt;</></>
</screen>
<para>
where &lt;modulename&gt; is one of:
</para>
<itemizedlist>
<listitem>
<para>
<emphasis>Winehq_com</emphasis> -- source for the WineHQ web site
</para>
</listitem>
<listitem>
<para>
<emphasis>c2man</emphasis> -- automatic documentation system, specially modified for Wine
</para>
</listitem>
</itemizedlist>
</sect1>
<sect1>
<title>Converting a Wine FTP download to a CVS tree</title>
<para>
Getting the entire Wine source tree via
CVS is pretty slow, especially compared to getting Wine from an
FTP mirror near you. It's possible to convert a Wine tarball to a CVS
sandbox, just like you would get by checking out the entire source
via CVS. Here's how to do it:
</para>
<itemizedlist>
<listitem>
<para>
Get the latest Wine snapshot: Wine-<replaceable>YYMMDD</replaceable>.tar.gz
</para>
</listitem>
<listitem>
<para>
Get wine-cvsdirs-<replaceable>YYMMDD</replaceable>.tar.gz from <ulink url="ftp://ftp.winehq.com/pub/wine/">ftp://ftp.winehq.com/pub/wine</ulink>
</para>
<para>
Use an FTP client rather than a web browser, and be sure to turn off passive mode, otherwise the fetch will hang.
</para>
<para>
e.g.:
</para>
<screen>
ftp ftp.winehq.com
cd pub/wine
passive off
ls
</screen>
</listitem>
<listitem>
<para>
Untar them on top of each other:
</para>
<screen>
tar xzf Wine-<replaceable>YYYYMMDD</replaceable>.tar.gz
mv wine-<replaceable>YYYYMMDD</replaceable> wine
tar xzf wine-cvsdirs-<replaceable>YYYYMMDD</replaceable>.tar.gz
</screen>
</listitem>
<listitem>
<para>
Update from main tree: login as above, then do
</para>
<screen>
cd wine
cvs update -PAd
</screen>
</listitem>
</itemizedlist>
<para>
You will now be completely up to date.
</para>
</sect1>
<sect1>
<title>WineHQ cvsweb access</title>
<para>
Direct access to the complete CVS tree is also possible, using Bill Fenner's
<ulink url="http://www.freebsd.org/~fenner/cvsweb/">cvsweb</ulink> package:
<itemizedlist>
<listitem>
<para>
<ulink url="http://cvs.winehq.com/cvsweb">cvs.winehq.com/cvsweb</ulink>, on the primary CVS repository
</para>
</listitem>
</itemizedlist>
</para>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-doc.sgml" "set" "book" "part" "chapter" "")
End:
-->
......@@ -900,7 +900,8 @@ wine -debug myprog.exe
<para>
These are the "normal" Win16 addresses, called SEGPTR.
They have a segment:offset notation, e.g. 0x01d7:0x0012.
The segment part usually is a "selector", which *always*
The segment part usually is a "selector", which
<emphasis>always</emphasis>
has the lowest 3 bits set. Some sample selectors are
0x1f7, 0x16f, 0x8f. If these bits are set except for
the lowest bit, as e.g. with 0x1f6,xi then it might be a
......@@ -1587,7 +1588,7 @@ monitor mem displays memory mapping of debugged process
Even if latest <command>gdb</command> implements the
notion of threads, it won't work with Wine because the
thread abstraction used for implementing Windows' thread
is not 100% mapped onto the linux posix threads
is not 100% mapped onto the Linux POSIX threads
implementation. It means that you'll have to spawn a
different <command>gdb</command> session for each Windows'
thread you wish to debug.
......
<chapter id="dlls">
<title>Wine Builtin DLLs Overview</title>
<para>A more detailed look at Wine's builtin DLLs...</para>
<para>A more detailed look at Wine's built-in DLLs...</para>
<sect1 id="common-controls">
<title>Common Controls</title>
......@@ -22,7 +22,7 @@
<title>1. Introduction</title>
<para>
The information provided herein is based on the dll version
The information provided herein is based on the DLL version
4.72 which is included in MS Internet Explorer 4.01.
</para>
<para>
......@@ -681,7 +681,7 @@
<listitem>
<para>
Development in progress. Basic functionality is
almost done. (dll version 4.0)
almost done. (DLL version 4.0)
</para>
</listitem>
</varlistentry>
......
......@@ -622,10 +622,10 @@ BOOL WINAPI PathRelativePathToA(
<title>Writing Documentation with DocBook</title>
<para>
DocBook is a flavor of <acronym>SGML</acronym>
DocBook is a flavour of <acronym>SGML</acronym>
(<firstterm>Standard Generalized Markup
Language</firstterm>), a syntax for marking up the contents
of documents. HTML is another very common flavor of SGML;
of documents. HTML is another very common flavour of SGML;
DocBook markup looks very similar to HTML markup, although
the names of the markup tags differ.
</para>
......@@ -636,16 +636,16 @@ BOOL WINAPI PathRelativePathToA(
<para>
The simple answer to that is that SGML allows you
to create multiple formats of a given document from a single
source. Currently it is used to create html, pdf and PS (PostScript)
versions of the Wine books.
source. Currently it is used to create HTML, PDF and PS
(PostScript) versions of the Wine books.
</para>
</note>
<note>
<title>What do I need?</title>
<para>
You need the sgml tools. There are various places where you
can get them. The most generic way of geting them is from their
You need the SGML tools. There are various places where you
can get them. The most generic way of getting them is from their
source as discussed below.
</para>
</note>
......@@ -653,7 +653,7 @@ BOOL WINAPI PathRelativePathToA(
<note>
<title>Quick instructions</title>
<para>
These are the basic steps to create the Wine books from the sgml source.
These are the basic steps to create the Wine books from the SGML source.
</para>
</note>
......@@ -693,7 +693,7 @@ BOOL WINAPI PathRelativePathToA(
</orderedlist>
</sect3>
</sect3>
<sect3>
<title>Getting SGML for various distributions</title>
......@@ -706,11 +706,11 @@ BOOL WINAPI PathRelativePathToA(
</para>
<sect4>
<title>SGML on Redhat</title>
<title>SGML on Red Hat</title>
<para>
The following packages seems to be sufficient for RedHat 7.1. You
The following packages seem to be sufficient for Red Hat 7.1. You
will want to be careful about the order in which you install the
rpms.
RPMs.
<itemizedlist>
<listitem><para>sgml-common-*.rpm</para></listitem>
<listitem><para>openjade-*.rpm</para></listitem>
......@@ -728,12 +728,23 @@ BOOL WINAPI PathRelativePathToA(
<sect4>
<title>SGML on Debian</title>
<note>
<title>Fix me</title>
<para>
List package names and install locations...
This is not a definitive listing yet, but it seems
you might need the following packages:
<itemizedlist>
<listitem><para>docbook</para></listitem>
<listitem><para>docbook-dsssl</para></listitem>
<listitem><para>docbook-utils</para></listitem>
<listitem><para>docbook-xml</para></listitem>
<listitem><para>docbook-xsl</para></listitem>
<listitem><para>sgml-base</para></listitem>
<listitem><para>sgml-data</para></listitem>
<listitem><para>tetex-base</para></listitem>
<listitem><para>tetex-bin</para></listitem>
<listitem><para>jade</para></listitem>
<listitem><para>jadetex</para></listitem>
</itemizedlist>
</para>
</note>
</sect4>
<sect4>
......@@ -856,7 +867,7 @@ BOOL WINAPI PathRelativePathToA(
The final term you'll need to know when writing simple
DocBook documents is the <acronym>DTD</acronym>
(<firstterm>Document Type Declaration</firstterm>). The
DTD defines the flavor of SGML a given document is written
DTD defines the flavour of SGML a given document is written
in. It lists all the legal tag names, like <sgmltag
class="starttag">book</sgmltag>, <sgmltag
class="starttag">para</sgmltag>, and so on, and declares
......@@ -1700,7 +1711,7 @@ BOOL WINAPI PathRelativePathToA(
<sect3 id="docbook-infrastructure">
<title>Basic Infrastructure</title>
<para>
How the build/make system works (makefiles, db2html,
FIXME: How the build/make system works (makefiles, db2html,
db2html-winehq, jade, stylesheets).
</para>
</sect3>
......@@ -1708,7 +1719,7 @@ BOOL WINAPI PathRelativePathToA(
<sect3 id="docbook-tweaking">
<title>Tweaking the DSSSL stylesheets</title>
<para>
Things you can tweak, and how to do it (examples from
FIXME: Things you can tweak, and how to do it (examples from
default.dsl and winehq.dsl).
</para>
</sect3>
......@@ -1716,7 +1727,7 @@ BOOL WINAPI PathRelativePathToA(
<sect3 id="docbook-generating">
<title>Generating docs for Wine web sites</title>
<para>
Explain make_winehq, rsync, etc.
FIXME: Explain make_winehq, rsync, etc.
</para>
</sect3>
</sect2>
......
......@@ -1124,7 +1124,7 @@ wine
<answer>
<para>
Make sure you have all the VB runtime libraries installed. You may
need to use the native dll vbrun60.dll
need to use the native DLL vbrun60.dll
</para>
</answer>
</qandaentry>
......
<sect1 id="fonts">
<sect1 id="config-fonts-main">
<title>Dealing with Fonts</title>
<sect2 id="windows-fonts">
<sect2 id="config-windows-fonts">
<title>Fonts</title>
<para>
......@@ -64,7 +64,7 @@
of the new fonts. You may also or instead have to restart
the font server (using e.g.
<command>/etc/init.d/xfs restart</command>
under RedHat 7.1)
under Red Hat 7.1)
</para>
</listitem>
<listitem>
......
This diff is collapsed.
<glossary>
<title>Glossary</title>
<!--
EXAMPLE:
<glossdiv>
<title>test</title>
<glossentry sortas="rme">
<glossterm id="bad_mistake">Very Stupid Mistake</glossterm>
<glosssee>things_to_avoid</glosssee>
<acronym>VSM</acronym>
<abbrev>Doh!</abbrev>
<glossseealso otherterm="accident">
<glossdef>
<para>Something you should try to avoid at all costs.</para>
</glossdef>
</glossentry>
</glossdiv>
-->
<glossdiv>
<title></title>
<glossentry>
<glossterm>Binary</glossterm>
<glossdef>
<para>
A file which is in machine executable, compiled form: hex data (as opposed to a source code file).
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>CVS</glossterm>
<glossdef>
<para>
Concurrent Versions System, a software package to manage software development done by several people. See the CVS chapter in the Wine Developers Guide for detailed usage information.
</glossdef>
</glossentry>
<glossentry>
<glossterm>Distribution</glossterm>
<glossdef>
<para>
A distribution is usually the way in which some "vendor" ships operating system CDs (usually mentioned in the context of Linux).
A Linux environment can be shipped in lots of different configurations: e.g. distributions could be built to be suitable for games, scientific
applications, server operation, desktop systems, etc.
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>DLL</glossterm>
<glossdef>
<para>
A DLL (Dynamic Link Library) is a file that can be loaded and executed by programs dynamically. Basically it's an external code repository for programs.
Since usually several different programs reuse the same DLL instead of having that code in their own file, this dramatically reduces required storage space.
A synonym for a DLL would be library.
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Editor</glossterm>
<glossdef>
<para>
An editor is usually a program to create or modify text files.
There are various graphical and text mode editors available on
Linux.
</para>
<para>
Examples of graphical editors are: nedit, gedit, kedit, xemacs,
gxedit.
</para>
<para>
Examples of text mode editors are: joe, ae, emacs, vim, vi.
In a <glossterm>terminal</glossterm>, simply run them via:
</para>
<screen>
<prompt>$ </><userinput><replaceable>editorname</replaceable>
<replaceable>filename</replaceable></>
</screen>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Environment variable</glossterm>
<glossdef>
<para>
Environment variables are text definitions used in a <glossterm>Shell</glossterm> to store important system settings.
In a <command>bash</command> shell (the most commonly used one in Linux),
you can view all environment variables by executing:
</para>
<screen>
<userinput>set</userinput>
</screen>
<para>
If you want to change an environment variable, you could run:
</para>
<screen>
<userinput>export <replaceable>MYVARIABLE</>=<replaceable>mycontent</></userinput>
</screen>
<para>
For deleting an environment variable, use:
</para>
<screen>
<userinput>unset <replaceable>MYVARIABLE</></userinput>
</screen>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Package</glossterm>
<glossdef>
<para>
A package is a compressed file in a
<glossterm>distribution</glossterm> specific format. It contains the
files for a particular program you want to install. Packages are
usually installed via the <command>dpkg</command> or
<command>rpm</command> package managers.
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>root</glossterm>
<glossdef>
<para>
root is the account name of the system administrator.
In order to run programs as root, simply open a
<glossterm>Terminal</glossterm> window, then run:
</para>
<screen>
<prompt>$ </><userinput>su -</>
</screen>
<para>
This will prompt you for the password of the root user of your system,
and after that you will be able to system administration tasks
that require special root privileges. The root account is indicated by the
</para>
<screen>
<prompt># </>
</screen>
<para>
prompt, whereas '$' indicates a normal user account.
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Shell</glossterm>
<glossdef>
<para>
A shell is a tool to enable users to interact with the
system. Usually shells are text based and command line oriented.
Examples of popular shells include <command>bash</command>,
<command>tcsh</command> and <command>ksh</command>. Wine assumes
that for Wine installation tasks, you use <command>bash</command>,
since this is the most popular shell on Linux.
Shells are usually run in a <glossterm>Terminal</glossterm> window.
</para>
<!-- <glossseealso otherterm="Terminal"> -->
</glossdef>
</glossentry>
<glossentry>
<glossterm>Source code</glossterm>
<glossdef>
<para>
Source code is the code that a program consists of before the program
is being compiled, i.e. it's the original building instructions of a
program that tell a compiler what the program should look like once
it's been compiled to a <glossterm>Binary</glossterm>.
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Terminal</glossterm>
<glossdef>
<para>
A terminal window is usually a graphical window that one uses to
execute a <command>Shell</command>. If Wine asks you to open a
terminal, then you usually need to click on an icon on your desktop
that shows a big black window (or, in other cases, an icon displaying a
maritime shell).
Wine assumes you're using the <command>bash</command> shell in a
terminal window, so if your terminal happens to use a different
shell program, simply type:
</para>
<screen>
<userinput>bash</>
</screen>
<para>
in the terminal window.
</para>
</glossdef>
</glossentry>
</glossary>
......@@ -23,7 +23,7 @@
<para>
This is the way to do some initializing when a process or
thread is attached to the dll. The function name is taken
thread is attached to the DLL. The function name is taken
from a <filename>*.spec</filename> file line:
</para>
<programlisting>
......
......@@ -1613,21 +1613,20 @@ die folgenden Programme und Dateien installiert sein:
Damit auch von 32bit Programmen aus gedruckt werden kann, ist es
notwendig, einige Einträge in der Registratur vorzunehmen. Diese
Einträge sind in der Datei psdrv.reg im Unterverzeichnis
documentation des WINE-Quellcodeverzeichnisses vorhanden und lassen
sich mit dem Programm regapi, welches sich im Unterverzeichnis
programs/regapi des Quellcodeverzeichnisses befindet,
importieren. Falls noch nicht geschehen, ist regapi dazu zunächst zu
übersetzen. Zu diesem Zweck ist in das Verzeichnis programs/regapi
Einträge sind in der Datei winedefault.reg im Wine-Hauptverzeichnis
vorhanden und lassen sich mit dem Programm regedit, welches sich im
Unterverzeichnis programs/regedit des Quellcodeverzeichnisses befindet,
importieren. Falls noch nicht geschehen, ist regedit dazu zunächst zu
übersetzen. Zu diesem Zweck ist in das Verzeichnis programs/regedit
zu wechseln und dort der Befehl make einzugeben (dies setzt
voraus, dass WINE bereits erfolgreich übersetzt wurde). Danach
können die erforderlichen Schlüssel durch die Eingabe des folgenden
Befehls importiert werden:
./regapi setValue < ../../documentation/psdrv.reg
./regedit ../../winedefault.reg
Achtung:
Bei dem Programm regapi handelt es sich um ein sogenanntes
Bei dem Programm regedit handelt es sich um ein sogenanntes
WineLib-Programm. Solche Programme benutzen WINE, um
Windows-spezifische Funktionen verwenden zu können. Damit sie
ausgeführt werden können, muss bereits eine funktionsfähige
......
This diff is collapsed.
This diff is collapsed.
......@@ -801,7 +801,7 @@
<para>
MCI drivers are seen as regular Wine modules, and can be loaded (with
a correct load order between built-in, native, elfdll, so), as any
a correct load order between builtin, native, so), as any
other DLL. Please note, that MCI drivers module names must bear the
.drv extension to be correctly understood.
</para>
......@@ -911,7 +911,7 @@
<title>MMIO</title>
<para>
The API consists of the mmio* functions found in mdlls/winmm/mmio.c.
The API consists of the mmio* functions found in dlls/winmm/mmio.c.
Seems to work ok in most of the cases. There's some linear/segmented
issues with 16 bit code. There are also some bugs when writting MMIO
files.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment