Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Johnny Cai
wine
Commits
370ac5fe
Commit
370ac5fe
authored
22 years ago
by
Bill Medland
Committed by
Alexandre Julliard
22 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Move CVS docu from User Guide to Devel Guide.
parent
a62fc661
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
documentation/compiling.sgml
+218
-2
218 additions, 2 deletions
documentation/compiling.sgml
documentation/getting.sgml
+6
-220
6 additions, 220 deletions
documentation/getting.sgml
with
224 additions
and
222 deletions
documentation/compiling.sgml
+
218
−
2
View file @
370ac5fe
<chapter id="compiling">
<title>Compiling Wine</title>
<para>How to compile wine, and problems that may arise...</para>
<title>Getting and Compiling the Wine Source</title>
<para>How to obtain and compile wine, and problems that may arise...</para>
<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 the patch doesn't work.
</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 -PAd update</>
</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 an <filename>my_patch.diff</>
file, you would do this:
<screen>
<prompt>$ </><userinput>cvs diff -u ><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
always grab recursively from that point. You can also specify
single files or subdirectories:
<screen>
<prompt>$ </><userinput>cvs diff -u dlls/winaspi ><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 <<replaceable>../patch_to_apply.diff</></>
</screen>
</para>
<para>
To remove the patch, use the <parameter>-R</> option:
<screen>
<prompt>$ </><userinput>patch -p0 -R <<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 <<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 instead to <filename>programs/clock/main.c </>.
The <parameter>-p1</> option would be useful if you named
your top level wine directory differently to 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>
<sect1 id="compiling-wine">
<title>Compiling Wine</title>
...
...
This diff is collapsed.
Click to expand it.
documentation/getting.sgml
+
6
−
220
View file @
370ac5fe
...
...
@@ -12,9 +12,9 @@
</para>
<para>
If you are running a distribution of Linux that uses packages
to keep track of installed software, you
may
be in luck: A
prepackaged version of Wine
may
already exist for your system.
The f
irst three
sections will tell you how to find the latest
to keep track of installed software, you
should
be in luck: A
prepackaged version of Wine
should
already exist for your system.
The f
ollowing
sections will tell you how to find the latest
Wine packages and get them installed. You should be careful,
though, about mixing packages between different distributions,
and even from different versions of the same distribution.
...
...
@@ -27,30 +27,14 @@
<para>
If you're not lucky enough to have a package available for
your operating system, or if you'd prefer a newer version of
Wine than already exists as a package, you
may
have to
Wine than already exists as a package, you
will
have to
download the Wine source code and compile it yourself on your
own machine. Don't worry, it's not too hard to do this,
especially with the many helpful tools that come with Wine.
You don't need any programming experience to compile and
install Wine, although it might be nice to have some minor
UNIX administrative skills. 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>
Finally, you may someday 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. The last section in this chapter will show you how to
<link linkend="getting-upgrading">safely apply the
patch</link> and revert it if the patch doesn't work.
UNIX administrative skills. Working from the source is
covered in the Wine Developer's Guide.
</para>
</sect1>
...
...
@@ -167,204 +151,6 @@ Password:
</sect1>
<sect1 id="getting-source-ftp">
<title>Getting Wine Source Code from the FTP Archive</title>
<para>
If the version of Wine you want does not exist in package form,
you can download the source code yourself and compile it on your
machine. Although this might seem a little intimidating at
first if you've never done it, you'll find that it'll often go
quite smoothly, especially on the newer Linux distributions.
</para>
<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>
</sect1>
<sect1 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 -PAd update</>
</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 an <filename>my_patch.diff</>
file, you would do this:
<screen>
<prompt>$ </><userinput>cvs diff -u ><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
always grab recursively from that point. You can also specify
single files or subdirectories:
<screen>
<prompt>$ </><userinput>cvs diff -u dlls/winaspi ><replaceable>my_aspi_patch.diff</></>
</screen>
</para>
<para>
Experiment around a little. It's fairly intuitive.
</para>
</sect1>
<sect1 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 <<replaceable>../patch_to_apply.diff</></>
</screen>
</para>
<para>
To remove the patch, use the <parameter>-R</> option:
<screen>
<prompt>$ </><userinput>patch -p0 -R <<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 <<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 instead to <filename>programs/clock/main.c </>.
The <parameter>-p1</> option would be useful if you named
your top level wine directory differently to the person who sent you
the patch. For the <parameter>-p1</> option
<command>patch</> should be run from the top level wine directory.
</para>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment