Remove redundant sections from the guide:

tools: is now included in the new bin2res
  build: moved to PACKAGING
  cvs: is available in many other places.
This commit is contained in:
Dimitrie O. Paun 2003-09-22 21:30:45 +00:00 committed by Alexandre Julliard
parent d210bc8949
commit 0698b918a4
5 changed files with 1 additions and 636 deletions

View File

@ -24,10 +24,8 @@ WINE_USER_SRCS = \
WINE_DEVEL_SRCS = \
architecture.sgml \
build.sgml \
consoles.sgml \
cvs-regression.sgml \
cvs.sgml \
debugger.sgml \
debugging.sgml \
documentation.sgml \
@ -38,8 +36,7 @@ WINE_DEVEL_SRCS = \
opengl.sgml \
patches.sgml \
porting.sgml \
testing.sgml \
tools.sgml
testing.sgml
WINELIB_USER_SRCS = \
winelib-bindlls.sgml \

View File

@ -1,192 +0,0 @@
<chapter id="build">
<title>Building Wine</title>
<sect1 id="build-intro">
<title>Introduction</title>
<para>
Written by &name-shachar-shemesh; <email>&email-shachar-shemesh;</email>
(Last updated: 5/27/2003)
</para>
<para>
(Extracted from <filename>wine/documentation/building</filename>)
</para>
<para>
This section explains how to build Wine locally. If you are a packager, please also refer to
<filename>wine/documentation/PACKAGING</filename> for package specific considerations.
</para>
</sect1>
<sect1 id="soft-vs-hard-dep">
<title>Before you compile - Soft vs. Hard dependencies</title>
<para>
Wine is a compatibility layer. It is not an attempt to create a new OS. As such, it tries to
rely on existing functionality wherever possible. This means that some aspects of Wine require
libraries to be available during compilation and runtime, or certain functionality will not
be available.
</para>
<para>
There are two types of dependencies. These are the <quote>soft dependency</quote> and the
<quote>hard dependency</quote>.
</para>
<variablelist>
<varlistentry>
<term>Hard Dependency</term>
<listitem>
<para>
This is a dependency of Wine that, if compiled into the code, must be available at runtime
or Wine will not function. Due to it's restrictive manner, developers go to a great length
to make sure there are as few of those as possible.
</para>
<note>
<title>Fixme</title>
<para>
How many of those are there?
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>Soft Dependency</term>
<listitem>
<para>
These are libraries that, if present during both compilation and runtime, will add to Wine's
capabilities. Unlike the hard dependencies above, compiling Wine with these libraries will
allow Wine to work even on runtime environments where some or all of the soft dependencies
are not available.
</para>
<note>
<title>Packager's note</title>
<para>
Please do your best to make sure that as many soft dependencies are available during
compilation. Failing to have a soft dependency available means that users cannot benefit
from a Wine capability.
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
<sect2>
<title>Soft dependencies list</title>
<para>
Here is a list of the libraries Wine needs, and their dependency is soft. We suggest packagers
install each and every last of those before building the package. These libraries are not
dependencies in the RPM sense. In DEB packages, they should appear as "Suggests" or "Recommends",
as the case may be.
</para>
<variablelist>
<varlistentry>
<term><ulink url="http://www.freetype.org/">FreeType</ulink></term>
<listitem>
<para>
This library is used for direct rendering of fonts. It provides better support of fonts than
using the X11 fonts engine. It is only needed for the X11 back end engine. Used from GDI.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="http://sourceforge.net/projects/alsa">Alsa</ulink> - Linux only</term>
<listitem>
<para>
This library gives sound support to the Windows environment.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="http://jackit.sourceforge.net/">libjack</ulink></term>
<listitem>
<para>
Something to do with the MultiMedia system. Recording sound?
</para>
<note><title>Fixme</title>
<para>I don't truely know what this lib is.</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="http://www.cups.org/">CUPS</ulink> - Common Unix Printing System</term>
<listitem>
<para>
This library allows Windows to see CUPS defined printers, and to print to them.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>OpenGL</term>
<listitem>
<para>
This is used for both OpenGL and Direct3D (and some other DirectX functions as well) support
in Wine. There are many many libraries for providing this functionality. It is enough for one
of them to be available when compiling Wine. Wine can work with any other library during
runtime.
</para>
<para>
If no library is available, packagers are encouraged to compile Wine with
<ulink url="http://www.mesa3d.org/">Mesa3D</ulink>, which requires no hardware support to
install.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
<sect1 id="get-source">
<title>Getting the sources</title>
<sect2>
<title>HTTP Download</title>
<para>
The latest released sources
<ulink url="http://www.winehq.org/?page=download_source">http://www.winehq.org/?page=download_source</ulink>.
Installation instructions are also available at the same place.
</para>
</sect2>
<sect2>
<title>Getting sources from CVS</title>
<para>
In order to get the sources from CVS, you first need to log into the CVS server. Issue the
following command:
</para>
<screen>
<prompt>~/sources$ </prompt><command>cvs -d :pserver:cvs@cvs.winehq.org:/home/wine login</command>
Logging in to :pserver:cvs@cvs.winehq.org:2401/home/wine
CVS password:</screen>
<para>
Use "<command>cvs</command>" as password. Next, you need to pull the sources from CVS. Use the
following command:
</para>
<screen>
<prompt>~/sources$ </prompt><command>cvs -z 0 -d :pserver:cvs@cvs.winehq.org:/home/wine co wine</command>
cvs checkout: Updating wine
U wine/.cvsignore
U wine/ANNOUNCE
U wine/AUTHORS
U wine/BUGS
U wine/COPYING.LIB</screen>
<para>
The list will go on. When the operation finishes, a new directory called "wine" will be created,
and in it all the sources will reside.
</para>
<note>
<title>Warning</title>
<para>
In the above example, compression was disabled. Versions of CVS up to, and including, 1.11.1
hang if compression is enabled. If you have version 1.11.5 or higher, you can enable compression
by feeding other values to the <command>-z</command> argument.
</para>
</note>
<para>
For more details, consult the HOWTO at <ulink url="http://www.winehq.org/?page=cvs">http://www.winehq.org/?page=cvs</ulink>
</para>
</sect2>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-devel.sgml" "set" "book" "part" "chapter" "")
End:
-->

View File

@ -1,331 +0,0 @@
<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 id="cvs-whatis">
<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.cvshome.org/cyclic/cyclic-pages/unoff-socks.txt">SOCKS</ulink>.
</para>
</sect1>
<sect1 id="cvs-installation-check">
<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 id="cvs-configuring">
<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 favorite 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 id="cvs-downloading-wine">
<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 around 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.
Substitute 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 id="cvs-other-modules">
<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 id="cvs-converting">
<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 id="cvs-cvsweb">
<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-devel.sgml" "set" "book" "part" "chapter" "")
End:
-->

View File

@ -1,94 +0,0 @@
<chapter id="tools">
<title>Tools</title>
<sect1 id="bin2res">
<title>bin2res</title>
<para>
Written by &name-juergen-schmied; <email>&email-juergen-schmied;</email> (11/99)
</para>
<para>
(Extracted from <filename>wine/documentation/resources</filename>)
</para>
<para>
This document describes tools for handling resources within wine
</para>
<sect2>
<title>bin2res</title>
<para>
This tool allows the editing of embedded binary resources
within <filename>*.rc</filename> files. These resources are
stored as hex dump so they can be stored within the cvs
tree. This makes the editing of the embedded bitmaps and
icons harder.
</para>
</sect2>
<sect2>
<title>Create binary files from an <filename>.rc</filename> file</title>
<para>
The resources in the <filename>.rc</filename> file have to
be marked by a header:
</para>
<programlisting>
/* BINRES idb_std_small.bmp */
IDB_STD_SMALL BITMAP LOADONCALL DISCARDABLE
{
'42 4D 20 07 00 00 00 00 00 00 76 00 00 00 28 00'
</programlisting>
<para>
<constant>BINRES</constant> is the keyword followed by a
filename. <command>bin2res -d bin rsrc.rc</command>
generates binary files from all marked resources. If the
binary file is newer it gets not overwritten. To force
overwriting use the <parameter>-f</parameter> switch.
</para>
</sect2>
<sect2>
<title>Create a <filename>.rc</filename> file from binaries</title>
<para>
Put a header followed by empty brackets in the
<filename>.rc</filename> file.
</para>
<programlisting>
/* BINRES idb_std_small.bmp */
{}
</programlisting>
<para>
Then run <command>bin2res rsrc.rc</command>. It will merge
the resources into the <filename>.rc</filename> file if the
binary resources are newer than the.rc file. To force the
resources into the <filename>.rc</filename> file use the
<parameter>-f</parameter> switch. If there is already a
resource with the same filename in the
<filename>.rc</filename> file it gets overwritten.
</para>
</sect2>
<sect2>
<title>output of <command>bin2res</command></title>
<programlisting>
bash-2.03# ../../tools/bin2res -d bin shres.rc
[000.ico:c][003.ico:c][008.ico:s][015.ico:s][034.ico:s]
</programlisting>
<para>
<literal>s</literal> means skipped, <literal>c</literal>
means changed.
</para>
</sect2>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-devel.sgml" "set" "book" "part" "chapter" "")
End:
-->

View File

@ -1,16 +1,10 @@
<!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
<!-- *** Include list of authors *** -->
<!entity % authors SYSTEM "authors.ent">
%authors;
<!entity build SYSTEM "build.sgml">
<!entity debugger SYSTEM "debugger.sgml">
<!entity documentation SYSTEM "documentation.sgml">
<!entity patches SYSTEM "patches.sgml">
<!entity testing SYSTEM "testing.sgml">
<!entity i18n SYSTEM "i18n.sgml">
<!entity tools SYSTEM "tools.sgml">
<!entity architecture SYSTEM "architecture.sgml">
<!entity debugging SYSTEM "debugging.sgml">
@ -18,8 +12,6 @@
<!entity opengl SYSTEM "opengl.sgml">
<!entity multimedia SYSTEM "multimedia.sgml">
<!entity cvs SYSTEM "cvs.sgml">
<!entity implementation SYSTEM "implementation.sgml">
<!entity porting SYSTEM "porting.sgml">
<!entity consoles SYSTEM "consoles.sgml">
@ -112,13 +104,11 @@
<part id="part-one">
<title>Developing Wine</title>
&build;
&debugger;
&documentation;
&patches;
&testing;
&i18n;
&tools;
</part>
<part id="part-two">
@ -132,11 +122,6 @@
</part>
<part id="part-three">
<title>Using CVS</title>
&cvs;
</part>
<part id="part-four">
<title>Advanced Topics</title>
&implementation;
&porting;