Protect BeginPaint and EndPaint from lps being NULL.
[wine] / documentation / introduction.sgml
1   <chapter id="introduction">
2     <title>Introduction</title>
3
4     <sect1>
5       <title>Overview / About</title>
6       
7       <sect2>
8       <title>Purpose of this document and intended audience</title>
9       <para>
10         This document, called the Wine User Guide, is supposed to
11         be both an easy installation guide and an extensive reference guide.
12         Thus while it completely explains how to install and configure Wine,
13         it also tries to document all configuration features and support areas
14         of the Wine environment as a whole.
15       </para>
16       <para>
17         It tries to target both the new Wine user (aka "bloody newbie"),
18         by offering a step by step approach, and the experienced Wine
19         user or expert, by offering the reference material mentioned
20         above.
21       </para>
22       <para>
23         The whole document has been extensively rewritten (in other
24         words: the document then deserved to be called a document :-) by
25         &name-andreas-mohr; <email>&email-andreas-mohr;</email> in
26         March 2003.
27       </para>
28       </sect2>
29
30       <sect2>
31         <title>Burning questions and comments</title>
32         <para>
33           If during reading this document there is something you
34           can't figure out, or think could be explained better, or
35           that should have been included, please immediately mail to
36           either the &name-web-admin; <email>&email-web-admin;</email> or
37           the &name-wine-devel; <email>&email-wine-devel;</email>, or
38           post a bug report to
39           <ulink url="http://bugs.winehq.com/">Wine's Bugzilla</ulink> to
40           let us know how this document can be improved.  Remember, Open
41           Source is "free as in free speech, not as in free beer": it can
42           only work in the case of very active involvement of its users!
43         </para>
44         <para>
45           <emphasis>
46           Note that I can't say that I'm too impressed with the amount
47           of feedback about this Guide that we have received so far
48           since I added this paragraph many months ago...
49           </emphasis>
50         </para>
51       </sect2>
52
53       <sect2>
54         <title>Content overview / Steps to take</title>
55         <para>
56           This section will try to give you a complete overview of
57           how to go all the way to a fully working Wine installation
58           by following this Guide.
59           We <emphasis>strongly recommend</emphasis> following every
60           single relevant step of this Guide, since you might miss important
61           information otherwise.
62         </para>
63         <para>
64           First, we start by explaining what Wine is and mentioning
65           everything else that's useful to know about it (that's
66           covered in this very chapter that you're reading a part of right now).
67         </para>
68         <para>
69           In order to be able to use Wine, you need to obtain a copy of
70           its files first. That's the purpose of the next chapter, <link
71           linkend="getting-wine">Getting Wine</link>: it tries to show
72           you how Wine can be installed on your particular system
73           (i.e. which installation methods are available in your case),
74           and then it explains the various methods: either getting Wine
75           via a binary package file suited for your particular system,
76           or getting it via a Wine <glossterm>source code</glossterm>
77           archive file, or getting the most current Wine development
78           source code via <glossterm>CVS</glossterm>.
79         </para>
80         <para>
81           Once you got your copy of Wine, you might need to follow the
82           next chapter <link linkend="compiling">Compiling</link> if you
83           got Wine source code.
84           Otherwise, the next chapter <link
85           linkend="installing">Installing Wine</link> will explain the
86           methods to use to install the Wine files to some location
87           on your system (alternatively the chapter <link
88           linkend="compiling">Compiling</link> will explain first how to
89           compile Wine if you choose to use Wine source code).
90         </para>
91         <para>
92           Once Wine is installed on your system, the next chapter <link
93           linkend="config-wine-main">Configuring Wine</link> will
94           focus on the available configuration methods for Wine: there are
95           either graphical (e.g. WineSetupTk) or text mode (wineinstall)
96           configuration helper applications available that will
97           fully configure the Wine environment for you.
98           And For those people who dislike a fully automated
99           installation (maybe because they really want to know what they're
100           doing), we'll describe how to manually set up a complete Wine
101           environment configuration.
102         </para>
103         <para>
104           Once the configuration of the Wine environment is done, the
105           next chapter <link linkend="running">Running Wine</link>
106           will show you how to run Wine and how to satisfy
107           the requirements of certain Windows programs.
108         </para>
109         <para>
110           In case you run into trouble, the chapter <link
111           linkend="bugs">Troubleshooting / Reporting bugs</link>
112           will list and explain some common troubleshooting and debugging
113           methods.
114         </para>
115       </sect2>
116
117     </sect1>
118
119     <sect1 id="what-is-wine">
120       <title>What is Wine?</title>
121
122       <para>
123         <literallayout>
124           Written by &name-john-sheets; <email>&email-john-sheets;</email>
125           Modified by &name-dustin-navea; <email>&email-dustin-navea;</email>
126         </literallayout>
127       </para>
128
129       <sect2>
130         <title>Windows and Linux</title>
131         <!-- general description of wine, what does it do? -->
132         <para>
133           Many people have faced the frustration of owning software that
134           won't run on their computer.  With the recent popularity of
135           <ulink url="http://www.tldp.org/FAQ/Linux-FAQ/index.html">
136           Linux</ulink>, this is happening more and more often because
137           of differing operating systems.  Your Windows software won't
138           run on Linux, and your Linux software won't run in Windows.
139         </para>
140         <para>
141           A common solution to this problem is to install both operating
142           systems on the same computer, as a <quote>dual boot</quote>
143           system.  If you want to write a document in MS Word, you can
144           boot up in Windows; if you want to run GnuCash, the GNOME
145           financial application, you can shut down your Windows session
146           and reboot into Linux.  The problem with this is that you
147           can't do both at the same time.  Each time you switch back and
148           forth between MS Word and GnuCash, you have to reboot again.
149           This can get tiresome quickly.
150         </para>
151         <para>
152           Life would be so much easier if you could run all your
153           applications on the same system, regardless of whether they
154           are written for Windows or for Linux.  On Windows, this isn't
155           really possible, yet.
156           <footnote>
157             <para>
158               Technically, if you have two networked computers, one
159               running Windows and the other running Linux, and if you
160               have some sort of X server software running on the Windows
161               system, you can export Linux applications onto the Windows
162               system. A free X server is available at
163               <ulink url="http://xfree86.cygwin.com/">http://xfree86.cygwin.com/</ulink>.
164               However, this doesn't solve the problem if you only own
165               one computer system.
166             </para>
167           </footnote>
168           However, Wine makes it possible to run native Windows
169           applications alongside native Linux applications on any Unix-like
170           system.  You can share desktop space between MS Word and GnuCash,
171           overlapping their windows, iconizing them, and even running them
172           from the same launcher.
173         </para>
174       </sect2>
175
176       <sect2>
177         <title>What is Wine, and how can it help me?</title>
178         <!-- emulator vs. Winelib -->
179         <para>
180           Wine is a UNIX implementation of the win32 Windows libraries,
181           written from scratch by hundreds of volunteer developers and
182           released under an Open Source license (think of it as a
183           Windows compatibility layer for Linux and other similar
184           operating systems).  Anyone can download
185           and read through the source code, and fix bugs that arise.
186           The Wine community is full of richly talented programmers
187           who have spent thousands of hours of personal time on
188           improving Wine so that it works well with the win32
189           <glossterm>Application Programming Interface</glossterm>
190           (API), and keeps pace with new developments from Microsoft.
191         </para>
192         <para>
193           Wine can run Windows applications in two discrete ways: as
194           pre-compiled Windows binaries (your average off-the-shelf
195           program package e.g. available on CD), or as natively compiled
196           <ulink url="http://www.xfree86.org/#whatis">X11 (X-Window
197           System)</ulink> applications (via the part of Wine that's called
198           Winelib). If you're interested in compiling your Windows program
199           source code, then please refer to the Winelib User's Guide
200           instead, which explains this particular topic.
201           The Wine Users Guide however will focus on running standard
202           Windows applications using Wine.
203         </para>
204
205         <!-- the development model -->
206         <para>
207         </para>
208       </sect2>
209
210       <sect2 id="wine-capabilities">
211         <title>Wine capabilities</title>
212
213         <para>
214           Now that we're done with the boring introductory babble,
215           let us tell you what Wine is able to do/support:
216         </para>
217         <para>
218           <itemizedlist>
219             <listitem>
220               <para>
221                 Support for running Win32 (Win 95/98, NT/2000/XP), Win16 (Win 3.1) and DOS programs
222               </para>
223             </listitem>
224             <listitem>
225               <para>
226                 Optional use of external vendor
227                 <glossterm>DLLs</glossterm> (e.g. original
228                 Windows DLLs)
229               </para>
230             </listitem>
231             <listitem>
232               <para>
233                 X11-based graphics display (remote display to any X
234                 terminal possible), text mode console
235               </para>
236             </listitem>
237             <listitem>
238               <para>
239                 Desktop-in-a-box or mixable windows
240               </para>
241             </listitem>
242             <listitem>
243               <para>
244                 Pretty advanced DirectX support for games
245               </para>
246             </listitem>
247             <listitem>
248               <para>
249                 Good support for sound, alternative input devices
250               </para>
251             </listitem>
252             <listitem>
253               <para>
254                 Printing: PostScript interface driver (psdrv) to
255                 standard Unix PostScript print services
256               </para>
257             </listitem>
258             <listitem>
259               <para>
260                 Modems, serial devices are supported
261               </para>
262             </listitem>
263             <listitem>
264               <para>
265                 Winsock TCP/IP networking
266               </para>
267             </listitem>
268             <listitem>
269               <para>
270                 ASPI interface (SCSI) support for scanners, CD writers,
271                 ...
272               </para>
273             </listitem>
274             <listitem>
275               <para>
276                 Unicode support, relatively advanced language support
277               </para>
278             </listitem>
279             <listitem>
280               <para>
281                 Wine debugger and configurable trace logging messages
282               </para>
283             </listitem>
284           </itemizedlist>
285         </para>
286       </sect2>
287     </sect1>
288
289 <!-- *** Not really useful as is, but may be able to recycle this elsewhere...
290     <sect1 id="getting-started">
291       <title>Getting started</title>
292
293       <para>
294         Written by &name-john-sheets; <email>&email-john-sheets;</email>
295       </para>
296
297       <para>
298         Wine can be pretty intimidating at first.  The Wine
299         distribution consists of over two thousand files and half a
300         million lines of source code
301         <footnote>
302           <para>Crudely calculated from running <command>find . | wc
303               -l</command> and <command>cat `find . -name "*.c"` | wc
304               -l</command>, respectively, from a fresh CVS checkout.</para>
305         </footnote>,
306         and is probably one of the steepest learning curves in the
307         open source world.  This chapter will give you a crash course
308         in the important topics you need to know to get started with
309         running Wine applications.
310       </para>
311     </sect1>
312 -->
313
314     <sect1>
315       <title>Other, often "Enhanced" Wine offerings</title>
316
317       <para>
318         There are a number of offerings that are derived from the standard Wine
319         codebase in some way or another.
320       </para>
321       <para>
322         Some of these are commercial products from companies that actively contribute to Wine.
323       </para>
324       <para>
325         These products often try to stand out or distinguish themselves
326         from Wine, e.g. by offering greater compatibility or much easier
327         and flexible configuration than your average standard Wine
328         release. As such it is often a good idea to shell out some bucks
329         for the commercial versions, especially since these companies
330         contribute a lot of code to Wine, and plus, I'm sure they'll be happy about your support...
331       </para>
332       <table><title>Various Wine offerings</title>
333         <tgroup cols=3 align="left">
334           <thead>
335             <row>
336               <entry>Product</entry>
337               <entry>Description</entry>
338               <entry>Distribution form</entry>
339             </row>
340           </thead>
341           <tbody>
342             <row>
343               <entry>
344                 <ulink
345                 url="http://sourceforge.net/projects/rewind">ReWind</ulink>
346               </entry>
347               <entry>
348                 ReWind is a Wine version derived from the old BSD
349                 licensed Wine tree (it's the "completely free" BSD license fork of the currently LGPL'ed Wine).
350                 Due to its BSD license it can't incorporate some Wine
351                 patches that get licensed under the more restrictive
352                 (or: protective) LGPL license by their authors.
353               </entry>
354               <entry>
355                 Free, Open Source: BSD license
356               </entry>
357             </row>
358             <row>
359               <entry>
360                 <ulink
361                 url="http://www.codeweavers.com/products/office">CodeWeavers CrossOver Office</ulink>
362               </entry>
363               <entry>
364                 CrossOver Office allows you to install your favorite
365                 Windows productivity applications in Linux, without
366                 needing a Microsoft Operating System license. CrossOver
367                 includes an easy to use, single click interface, which
368                 makes installing a Windows application simple and fast.
369               </entry>
370               <entry>
371                 Commercial
372               </entry>
373             </row>
374             <row>
375               <entry>
376                 <ulink
377                 url="http://www.codeweavers.com/products/cxofficeserver">CodeWeavers CrossOver Office Server Edition</ulink>
378               </entry>
379               <entry>
380                 CrossOver Office Server Edition allows you to run your
381                 favorite Windows productivity applications in a
382                 distributed thin-client environment under Linux, without
383                 needing Microsoft Operating System licenses for each
384                 client machine. CrossOver OfficeServer Edition allows you
385                 to satisfy the needs of literally hundreds of concurrent
386                 users, all from a single server.
387               </entry>
388               <entry>
389                 Commercial
390               </entry>
391             </row>
392             <row>
393               <entry>
394                 <ulink
395                 url="http://www.codeweavers.com/products/crossover">CodeWeavers
396                 CrossOver Plugin</ulink>
397               </entry>
398               <entry>
399                 CrossOver Plugin lets you use many Windows plugins
400                 directly from your Linux browser. In particular CrossOver
401                 fully supports QuickTime, ShockWave Director,
402                 Windows Media Player 6.4, Word Viewer, Excel Viewer,
403                 PowerPoint Viewer, and more...
404               </entry>
405               <entry>
406                 Commercial; Demo version available
407               </entry>
408             </row>
409             <row>
410               <entry>
411                 <ulink
412                 url="http://www.codeweavers.com/technology/wine/">CodeWeavers
413                 Wine preview</ulink>
414               </entry>
415               <entry>
416                 The Wine preview is a usually slightly older Wine release
417                 that's been tested as extra stable.
418                 It includes the graphical installer winesetuptk,
419                 allowing for easy configuration.
420               </entry>
421               <entry>
422                 Free, Open Source: LGPL license
423               </entry>
424             </row>
425             <row>
426               <entry>
427                 <ulink url="http://www.transgaming.com">TransGaming Technologies WineX</ulink>
428               </entry>
429               <entry>
430                 WineX is a Wine version derived from the old BSD licensed Wine tree, with currently better support for Direct3D and DirectX software than standard Wine, and with added copy protection support for multiple types of copy protection e.g. used in games.
431               </entry>
432               <entry>
433                 Commercial; <ulink
434                 url="http://sourceforge.net/projects/winex">free CVS
435                 download</ulink> of reduced version (no copy protection
436                 support etc.)
437               </entry>
438             </row>
439           </tbody>
440         </tgroup>
441       </table>
442     </sect1>
443     
444     <sect1 id="wine-stats">
445       <title>Basic Wine Requirements</title>
446
447       <para>
448         <literallayout>
449           Written by &name-andreas-mohr; <email>&email-andreas-mohr;</email>
450           Modified by &name-dustin-navea; <email>&email-dustin-navea;</email>
451         </literallayout>
452       </para>
453
454       <para>
455         This section only mentions the most basic system requirements of
456         Wine, in order to ease your Wine "purchasing decision" ;-)
457         For an up-to-date much more detailed list of requirements for
458         compiling and/or installing Wine,
459         please read the REQUIREMENTS section of the <ulink
460         url="http://www.winehq.org/source/README">README</ulink> file,
461         which is also available in the main directory of a Wine source code tree.
462       </para>
463       <para>
464         In case of a binary Wine package, these Wine requirements will
465         probably be fulfilled automatically by the package installation
466         process; if you want to have a look at the detailed requirements
467         nevertheless (which definitely can't hurt!), then I'd like to
468         mention that the README file can also frequently be found in the
469         documentation files directory of a Wine package.
470       </para>
471
472       <sect2 id="system-requirements">
473         <title>System requirements</title>
474         <para>
475           In order to run Wine, you generally need the following:
476         </para>
477         <para>
478           <itemizedlist>
479             <listitem>
480               <para>
481                 <literallayout>A computer ;-)</literallayout>
482                 <literallayout>  Wine: only PCs >= i386 are supported at the moment.</literallayout>
483                 <literallayout>  Winelib: selected other platforms are supported, but can be tricky.</literallayout>
484               </para>
485             </listitem>
486             <listitem>
487               <para>
488                 A UNIX-like operating system such as Linux, *BSD,
489                 Solaris x86, ReactOS, Cygwin
490               </para>
491             </listitem>
492             <listitem>
493               <para>
494                 >= 32MB of RAM.  Everything below is pretty much
495                 unusable.  >= 96 MB is needed for "good" execution.
496               </para>
497             </listitem>
498             <listitem>
499               <para>
500                 An X11 window system (XFree86 etc.).  Wine is prepared
501                 for other graphics display drivers, but writing
502                 support is not too easy.  The text console display
503                 driver (ttydrv) is nearly usable, so you don't
504                 necessarily have to install X11 if you don't need it for
505                 the programs you intend to run (in other words: mainly
506                 for text mode programs).
507               </para>
508             </listitem>
509           </itemizedlist>
510         </para>
511       </sect2>
512     </sect1>
513   </chapter>
514
515 <!-- Keep this comment at the end of the file
516 Local variables:
517 mode: sgml
518 sgml-parent-document:("wine-user.sgml" "set" "book" "chapter" "")
519 End:
520 -->