Wine-HOWTO - User Documentation
Jutta Wrage
Copyright © 1998, 1999, 2000, 2001, 2002, 2003 by Jutta Wrage
Copyright (c) 1998 - 2003 Jutta Wrage. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
This document is distributed in the hope that it will be useful, but without any warranty.
All trademarks are owned by their respective owners.
Table of Contents
1. Preface
2. What is Wine?
3. Sources for Information
4. Where to Get Wine or Wine Packages
5. Installing Wine
What do You Need to Run Wine?
Preparing Installation and Installing from Source
Installing from Packages
Installing on Debian Linux
Installing on Slackware
Configuring Your System
Wine With Windows Partition
Wine Without a Windows Partition
User Configuration
Test the Installation
Running Your First Application
How to Install and Convert Fonts
Language settings
6. Wine Winsock
7. Using a Serial Port with Wine
Serial Port Access
Modem Access
8. Multimedia With Wine
Sound With Wine
Other Multimedia Applications With Wine
9. Printing With Wine
Printing Basics for Wine
Essential Files and Documentation
Configuring Wine for Printing
Short Steps to get a Printer connected and tested with Linux
Wine Printing Configuration
Fonts for Printing with Wine
Common Problems
Sources and Additional Information
10. Running Applications
Application Needs Data Files or Configuration File to Run
Other Command Line Parameters
Dll Loading Strategy
The Wine Clipboard Server
VxD Support Within Wine
Which Applications do Actually run with Wine?
11. Save Running Wine Installations
12. Security Issues
13. Troubleshooting
Disk Space
Getting Older Versions of Wine
Running Wine
Installing Applications
Unpacking ZIP-Files
Installing Self-extracting Files
Installing Applications from Cdrom
Running Applications
Other Problems - FAQ
Application Needs Share
Not Enough Memory to Run Application
Warning About Invalid Entrypoint
Common Error Messages
Problems While Compiling Wine
Problems with True Type Fonts and Fontserver
- Newest Version of This Document
- Special Thanks
- GNU Free Documentation License
0. PREAMBLE
- APPLICABILITY AND DEFINITIONS
- VERBATIM COPYING
- COPYING IN QUANTITY
- MODIFICATIONS
- COMBINING DOCUMENTS
- COLLECTIONS OF DOCUMENTS
- AGGREGATION WITH INDEPENDENT WORKS
- TRANSLATION
- TERMINATION
- FUTURE REVISIONS OF THIS LICENSE How to use this License for your documents
List of Examples
5-1. Sections in Wine Configuration File with Windows Partition
5-2. Common Sections in Wine configuration File
5-3. Drive Substitution in Configuration file
5-4. Dll-Sections in Wine Configuration File
5-5. convert.fontobdf.pl
5-6. convert.bdftopcf.pl
5-7. convert.ttf.pl
8-1. Multimedia Section in System.ini
8-2. MCI Driver entry in wine.conf
9-1. Printing to File
9-2. Printing using System Printer
9-3. Printing to different Printers
9-4. Different Setting for Same Printer
9-5. PSDRV Entry in Wine Configuration
9-6. AFM Files Entry in Wine Configuration File
9-7. Printer Entry in Win.ini
9-8. Registry Entry for Wine Postscript Driver
9-9. Enable native Printer in Wine Configuration File
9-10. Native Printer in Win.ini for HP 2100
10-1. Clipboard Entry in Wine Configuration File
10-2. Clipboard Entry in Wine Configuration File
11-1. Shellscript to save Wine Installation>
12-1. Fstab Entry for Dos Drive
Chapter 1. Preface
Wine-HOWTO is searching a new maintainer or Author.
This HOWTO is being written by more than one person. If you want to help, you may subscribe to the Wine-HOWTO mailing list. To subscribe, please sent an email to <wine-howto-request@muenster.westfalen.de>with "subscribe" without quotation marks in the subject. You may also subscribe using the web interface to the Wine-HOWTO mailing list.
Remark: Wine is still in heavy development. If you are an unexperienced user try to use only versions which are nearly stable. Please look at Chapter 3.
VERY IMPORTANT NOTES FOR NEW VERSIONS OF WINE
In recent cvs versions there have been several changes, some of which are not coverd by this HOWTO. Please read the sections about installation and configuration to avoid crashes! Additionally, please have a look for changes in the newsgroup, the mailing lists, the Wine hompepage and the web page with current Wine changes at the home of this HOWTO.
What is new in this release?
0.973
Links impoved
0.97
Converted from debiandoc to docbook
0.96
URLs improved
0.96
New mailing list address
0.95
Installing Wine correction touch statement
Chapter 2. What is Wine?
Wine (Wine Is Not an Emulator) allows MS-Windows applications to run under X Window System in any Linux or Unix system on an x86 computer. Wine provides the API´s needed to run Windows 3.x or Windows 95 applications.
Wine also provides a library of API´s that may be used to compile MS-Windows source, resulting in an executable that will run natively on Unix running X Window System.
The Wine Project itself is an Open Source project. Wine Development began in 1993. Developers are spread over the whole world.
Chapter 3. Sources for Information
The home of Wine is located at WineHQ. In addition you should read the newsgroup comp.emulators.ms-windows.wine to get information about the state of Wine. Please note that this newsgroup is largely for Wine developers who are already stressed to capacity writing Wine. So before posting to comp.emulators.ms-windows.wine, please ensure you have:
- Read this HOWTO thoroughly and performed the included tutorials
- Read the documentation available on WineHQ
- Read the FAQ at WineHQ
- Performed a thorough search on Google groups for previous postings in your area
- Checked out that you are running a recent version of Wine. The pace of Wine development is such that version more than one month old are considered obsolete.
Following the above steps should answer any basic questions regarding configuration and the basics of running Wine. If you have a problem with a specific program not working with Wine, please see the section "How to post a useful bug-report" for instructions on how to help the Wine team fix your problem. But as the newsgroup is really crowded, please read for a few days before asking your questions.
Chapter 4. Where to Get Wine or Wine Packages
There are different ways to install Wine on your system. You may get the sources from the WineHQ server and compile it yourself or you may get a precompiled package for your Linux or Unix distribution. If you want to compile Wine yourself, please follow the instructions included in the source and the additional information given in this HOWTO.
Less experienced users may prefer to install Wine as a precompiled binary file. Packages are easier to install and the packages are ready to fit your system. A list of download sites for packages is available at WineHQ Download Page, but you may also find Wine at your distribution site. If you download any packages, be sure that you get all you need. Sometimes Wine is split into several packages, and you may find that Wine needs additional packages to run or to compile.
Chapter 5. Installing Wine
It is a really good idea to do a backup before you install new software on your computer, especially if the software to be installed software is alpha (like Wine) or beta.
Note: There is a section the Section called Wine Without a Windows Partition. If you have no Windows partition, you should read it first and return here later.
What do You Need to Run Wine?
Wine is designed to run on any x86 Computer. A minimum of 32 MB real memory is recommended (64MB really would be better) and a minimum of 64 MB swap space. This can be reduced, if more than 64 MB real memory is available. How much disk space is needed depends on your choice of installation. Wine itself as an unstripped version needs 70 MB disk space. If you have to download packages you need additional disk space so you will need a minimum of 140 MB free space on hard disk. To compile Wine, the minimum you will need is 250 MB.
You need an installed Linux, FreeBSD or Solaris on your system with X Window System. You do not need any Windows on your system to run Windows applications. But perhaps all the needed Windows functions are not included in Wine yet. It is highly recommended to have libc6 installed on your system. But Wine runs with the runtime modules, too, if compiled with libc6. As an alternative you may get precompiled packages for libc5 or compile Wine against libc5 yourself.
The first time I installed Wine, it was from precompiled packages for Debian Linux. In addition to the three packages (wine, libwine and wine-doc), I had to install a new libc6 and some other files.
Here is a list of packages you need. If you install Wine as binaries, you do not need the development packages (-dev) and the compiler.
- Linux Kernel and Kernel Headers at a minimum of 2.0.38 or FreeBSD-current or FreeBSD 3.0 or later Solaris x86 2.5 or later
- gcc version 2.7.2.3 or egcc (egcs), binutils, flex version 2.5 or later and yacc
- xlib, xlib6g, xlib6g-dev 3.3.2.3
- xpm4.7, xpm4g, xpm4g-dev 3.4j
- glibc: libc6, libc6-dev 2.0.7u 1.9.9g
- ncurses3.4 and ncurses3.4-dev 1.9.9g
- XFree86 version 3.3.2.3, eg svga-server
- mesag3, mesag3-dev
Sometimes you have to take packages from unstable or frozen versions of your distribution. If you are a system administrator, please be aware that this may cause security problems!
Mesag3 is only needed if you want to compile with direct 3d support or if you got a binary compiled with it. For compilation errors refer to the troubleshooting section Chapter 13.
Preparing Installation and Installing from Source
Get the development packages you need and install them properly. Get the source package and install it into a directory of your choice. This directory may be a directory in your home directory as root access is not necessary for compiling the program. If you want to get any CVS version of the Wine source tree, install CVS and follow the instructions on http://www.winehq.org. After installing the source tree, you may make some changes to the configure script and in the root of the tree do:
$ ./configure
$ make depend
$ make
If there are errors, ensure that you got all the packages you need, and ensure that the changes you made to the configure script work. For some errors you have to delete config.cache (or just do a make distclean) in the directory with the Wine source tree and try again with the steps above. If there were no errors in each step and you want to install Wine system wide, change to root or use "sudo" or "su -c" to install Wine:
$ sudo make install
or
$ su -c make install
Now Wine should be installed on your system. Before trying to run it, complete the configuration as described below.
Installing from Packages
If you want to run installed applications from another partition, mount your DOS or Windows partition before installing the packages. Some packages include configuration scripts and they do not work if there is no access to your Windows drive. Please have a look at Chapter 12 before mounting your DOS or Windows drive!)
I do not know much about distributions other than Debian, so my examples in this section are specific to Debian. For other systems I provide some some hints to solve special problems. In general there should be no problem to install packages on a libc6 based system such as Debian or the new Red Hat. Especially on Debian, libc5- and libc6-based software should compile and run.
Installing on Debian Linux
Packages from Distribution CD
You may get the packages from your distribution CD. To install call dselect and check the packages "libwine", "wine" and "wine-doc". Look at the dependencies, check additional packages if needed. Then install and configure the packages. If you take the packages from the stable distribution, it is highly recommended to use "apt-get install". Apt-get looks for dependencies and fetches and installs all needed packages.
Newer Available Packages from Unstable Distribution
If you want to install packages more recent than those distributed, fetch them as described above, then put them all in one directory. Before you install them, be very sure that you have downloaded the correct versions of all packages you need! If you install binaries from unstable Linux distribution into a stable distribution you do so at your own risk.
To install the packages, you must be root or take sudo. I assume that you use sudo or su -c; if you use su -c, you have to put the command into quotation marks like this:
$ sudo dpkg --install [package file name]
or
$ su -c "dpkg --install [package file name]"
and for each package
$ sudo dpkg --configure --pending
or
$ su -c "dpkg --configure --pending"
Later you may correct your config using "sudo wineconfig" or just edit it. The important config file "wine.conf" on Debian is in "/etc". If you use another distribution or have Wine installed locally you may find is in "/usr/local/ etc".
Installing on Slackware
Slackware up to version 3.5 is a libc5 based system. So you are very limited in alternatives for installing Wine.
Installing Packages for libc5
You may install packages precompiled for libc5. As the packaging system for Slackware is very limited you have to download binary packages that are not distribution-specific (Usually .tar.gz or .tar.bz2) and install them on your system. Be aware that it really is recommended to update your system to libc6.
Installing Packages for libc6
If you want to use packages precompiled for libc6, you have to install the libc6-runtime packages first. On Slackware 3.5 you will find them on your distribution disk in the contrib directory.
If you do not get it work, please ask in the Slackware related newsgroups for help on getting libc6 based binaries running; or try to compile Wine yourself.
Configuring Your System
Please read the chapter Chapter 12 before deciding where to mount Windows partitions and install applications!
If you used packages like described for Debian to install Wine your system is already configured. But before running your first application you should read this chapter to ensure that the installation and configuration have worked the way you wanted.
The configuration files for Wine are wine.conf (normally located in"/etc" if you installed packages, or in "/usr/local/etc" if you compiled your own), and ~ /.winerc (in the home directory of the user). Wine utilizes the ~/.winerc file if it finds it, else the wine.conf file. In newest versions of Wine up from Wine 20001202 Wine has a new config file for the user ~/.wine/wine.conf. Wine creates it automatically from ~/.winerc and utilizes this configuration file instead of the old one on next startup. The format changed but is not covered in the HOWTO yet.
If you compiled Wine yourself, you will find a wine.ini in the root of your Wine source tree. Make a copy of it to /usr/local/etc, rename this copy to wine.conf and edit it to fit your system.
WARNING: You have to update your wine.conf or ~/.winerc, if you are using Wine compiled since 990417!
Wine With Windows Partition
Assuming you have a Windows partition, make sure that it is mounted readable and writable by the user trying to run Windows applications. Have a look at / etc/wine.conf (or /usr/local/etc). You also may have a user specified .winerc in your home directory.
The configuration file in this section is commented. This may change in a later version of the HOWTO. For now you will have to read the comments carefully to get all information you need to configure Wine well.
In our example we use four windows drives:
Drive Mapping
Drive A
Floppy drive - mountpoint /mnt/fd0
Drive C
Drive containing Windows - here mounted at /dos. If the drive ist mounted elsewhere the mapping must point to that mount point; e.g. to /mnt/c if your drive containing Windows is mounted at /mnt/c in /etc/fstab.
Drive D
CDrom drive - mounted at /cdrom
Drive E
Temp drive - temp directory /tmp in Linux/Unix
Drive F
This drive ist mapped to the user's home directory in Linux/Unix.
Here the User may store his personal files and directories to access within Wine and Linux/Unix. If you change the mapping to a subdirectory of the users home directory only files and directories within this subdirectory can be accessed by Wine applications.
You will have to change in your configuration file all those mappings which do not fit your system. If you want additional drives you have to use this syntax: Name the section [Drive x] where x ist the Drive name within your Wine applications. Put in the "Path=" line to tell Wine which Linux or Unix directory should be mapped to this drive. Tell Wine the Type for Wine applications (hd for hard disks, floppy for floppy drives and cdrom for cdrom drives), filesystem type and Label (name for the drive) to use.
When you have edited your configuration file it should look like this:
Example 5-1. Sections in Wine Configuration File with Windows Partition
[Drive A]
; your floppy drive
Path=/mnt/fd0
Type=floppy
Label=Floppy
Serial=87654321
Device=/dev/fd0
; Don´t give raw device access to any drive if
; you do not really need it. Giving device raw
; device access with the "Device"-entry means
; that a user can format a drive with
; any windows tool.
[Drive C]
; your Windows/Dos partition
; please adjust to the path where it is mounted!
Path=/dos
Type=hd
Label=MS-DOS
Filesystem=msdos
; if vfat partition: Filesystem=win95
; NO device-Entry here!
[Drive D]
; your cd-rom drive
; please adjust to the path where it is mounted!
Path=/cdrom
Type=cdrom
Label=CD-Rom
Filesystem=win95
; if you want to write CDs, you need
; raw device access here
[Drive E]
; normally this should not be changed
; you need write access here, as it will
; be assigned as temp dir
Path=/tmp
Type=hd
Label=Tmp Drive
Filesystem=win95
; WARNING: do not add a device entry!!!!
[Drive F]
Path=${HOME}
Type=network
Label=Home
Filesystem=win95
; Maybe, you store applications here
; you may add another drive, if you want to install
; applications on your Linux partition
; Filesystem should be "msdos" or "win95"
; if you install or run Windows 95 programs
; win95 is recommended
; WARNING: do not add a device entry!!!!
[wine]
Windows=c:\windows
System=c:\windows\system
Temp=e:\
Path=c:\windows;c:\windows\system;e:\;f:\
GraphicsDriver=x11drv
; GraphicsDriver is new and not for old
; versions of Wine. See section x11drv for it
;printer=on or printer=off
; If you use a windows printer driver this
; should be set to on
;SymbolTableFile=/usr/local/lib/wine.sym
; SymbolTableFile wir normalerweise nicht benötigt
;Profile=c:\windows\Profiles\Administrator
; only for use with Windows NT
; If you have a windows95-System, it would be better,
; to take a clean directory as windows dir, seems there are
; some problems with the windows registry
; please note: Give all paths in dos/windows notation!
; do not change to or add something like
; "/home/windows"
; Wine would not accept that!!!
; locate your "wine.sym" file to ensure the path to
; it (this is to be given in Unix-notation) is
; correct
; wine.sym normally is located in /usr/local/lib or /usr/lib
; The next three sections are only for version of Wine
; after 990323. You do not need to add them if you
; are using an older version!
; Wine has reasonable defaults built in,
; so you are not forced to add them
; for newer versions either.
[DllDefaults]
EXTRA_LD_LIBRARY_PATH=${HOME}/wine/cvs/lib
; This is only needed if you have additional compiled
; dlls; if not, the leave it as is.
DefaultLoadOrder = native, elfdll, so, builtin
; Not used in older Wine versions!
; The default load order for dlls used by Wine, you may
; overwrite it by command line options. Please see "man wine"
; for options
[DllPairs]
; Not used in older Wine versions!
krnl386 = kernel32
gdi = gdi32
user = user32
commdlg = comdlg32
commctrl= comctl32
ver = version
shell = shell32
lzexpand= lz32
mmsystem= winmm
msvideo = msvfw32
winsock = wsock32
; The dll pairs are needed together with the load order.
; these dlls always have to be loaded together as builtin,
; native or whatever
; You may not load one dll of a pair as builtin and the other
; native.
[DllOverrides]
; Not used in older Wine versions!
kernel32, gdi32, user32 = builtin
krnl386, gdi, user = builtin toolhelp = builtin comdlg32, commdlg = elfdll, builtin, native version, ver = elfdll, builtin, native shell32, shell = builtin, native lz32, lzexpand = builtin, native commctrl, comctl32 = builtin, native wsock32, winsock = builtin advapi32, crtdll, ntdll = builtin, native mpr, winspool = builtin, native ddraw, dinput, dsound = builtin, native winmm, mmsystem = builtin msvideo, msvfw32 = builtin, native w32skrnl = builtin wnaspi32, wow32 = builtin system, display, wprocs = builtin wineps = builtin
; this is the default load order for the dlls
; you may make changes here, but NEVER change the
; first two lines!!!
; WARNING: The big ones, krnl386, kernel32, gdi, gdi32,
; user and user32 cannot be native, but MUST be of
; type "builtin"
[x11drv]
; Number of colors to allocate from the system palette
AllocSystemColors = 100
; Use a private color map
PrivateColorMap = N
; Favor correctness over speed in some graphics operations
PerfectGraphics = N
; Color depth to use on multi-depth screens
;;ScreenDepth = 16
; Name of X11 display to use
;;Display = :0.0
; Allow the window manager to manage created windows
Managed = N
; Use XFree86 DGA extension if present
UseDGA = Y
; Use XShm extension if present
UseXShm = Y
; Enable DirectX mouse grab
DXGrab = N
; Create the desktop window with a double-buffered visual
; (useful to play OpenGL games)
DesktopDoubleBuffered = N
; Code page used for captions in managed mode
; 0 means default ANSI code page (CP_ACP == 0)
TextCP=0
; Use this if you have more than one port for video on your setup
; (Wine uses for now the first 'input image' it founds).
;; XVideoPort = 43
And now other sections for all versions
Example 5-2. Common Sections in Wine configuration File
;[options]
;AllocSystemColors=100
; This section is obsolete for new Wine versions
[fonts]
; Read documentation/fonts before adding aliases
Resolution = 96
; Maybe, it is useful to play a little with this value
Default = -adobe-times-
[serialports]
Com1=/dev/ttyS0
Com2=/dev/ttyS1
Com3=/dev/modem,38400
Com4=/dev/modem
; on older systems you may have cuax
; instead of ttySx (where x is the number)
[parallelports]
Lpt1=/dev/lp0
[spooler]
LPT1:=|lpr
LPT2:=|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q -
LPT3:=/dev/lp3
[ports]
;read=0x779,0x379,0x280-0x2a0
;write=0x779,0x379,0x280-0x2a0
[spy]
Exclude=WM_SIZE
;WM_TIMER
;
[registry]
; Paths must be given in /dir/dir/file.reg format.
; Wine will not understand dos file names here...
; alternate registry file name: HKCU
; obsolete for new Wine versions
;AltCurrentUserFile=
; alternate registry file name: HKU
; obsolete for new Wine versions
;AltUserFile=
; alternate registry file name: HKLM
; obsolete for new Wine versions
;AltLocalMachineFile=
; These are all booleans.
; Y/y/T/t/1 are true, N/n/F/f/0 are false.
; Defaults are read all, write to Home and Alt
; Note: it is pointless to specify alt files
; and neither load nor writeto them.
; Global registries (stored in /etc)
LoadGlobalRegistryFiles=Y
; Home registries (stored in ~user/.wine/)
LoadHomeRegistryFiles=Y
; Load above registries.
LoadAltRegistryFiles=Y
; TRY to write all changes to home registries
WritetoHomeRegistryFiles=Y
; TRY to write all changes to alt registries
WritetoAltRegistryFiles=Y
; Use new file format
UseNewFormat=N
; Registry periodic save timeout in seconds
; PeriodicSave=600
;
; Do you want origial Windows registry files
; to be loaded? Say yes or no to each file
; Windows registries in windows path
LoadWin311RegistryFiles=Y
LoadWin95RegistryFiles=Y
LoadWinNTRegistryFiles=N
; user the private registry is taken from
; (profiles/<username>/ntuser.dat)
; NTUser=username
[Tweak.Layout]
; WineLook=xxx (supported styles are 'Win31'(default),
; 'Win95', 'Win98')
WineLook=Win31
[programs]
Default=
Startup=
Copy the file, for example, to wine.conf.old, before you modify anything. Alternatively you can run wineconfig, but you will have to configure it by hand to match your system.
VERY IMPORTANT NOTES FOR NEW VERSIONS OF WINE: The wine.conf has changed often in the last two years. You always should compare your configuration files with the example configuration file after an update. A simple diff to the default configuration file distributed with Wine would be useful. It is mandatory to update all your local configuration files, if you update to a newer version of Wine. You must manually add three sections to your configuration file from the wine.ini example configuration if you have an existing old configuration files. The sections in question are:
See the man-page and wine.ini for updated information.
Wine Without a Windows Partition
If you do not have a Windows drive, you should make some changes to the configuration file or create one, if there was no configuration file created during installation process. The wineconfig I used does not create a config if it does not find a Windows dir.
If you have no windows directory, you should create one. According to the file
system standard this may be either in your home directory ("~/win") if you are
the only user to start Windows applications, or system wide "/usr/local/lib/
win". To create it do e.g.,
$ sudo mkdir -p /usr/local/lib/win/windows
or
$ su -c "mkdir -p /usr/local/lib/win/windows"
Then do not forget to:
$ cd /usr/local/lib/win/windows
In addition you have to create some Windows system directories:
$ sudo mkdir system
or
$ su -c "mkdir system"
Make sure that the directory is accessible for the users who need Wine. Sometimes it is a good idea to set the sticky bit to the directory /usr/local/ lib/win/ before creating the subdirectories to set all directories to the correct mask, when creating them. The applications now can be installed to any dir in /usr/local/lib/win. You should touch some files, too, as some applications need to see them in the windows directory:
$ sudo touch win.ini
$ cd system
$ sudo touch shell.dll shell32.dll winsock.dll wsock32.dll
If you want to have a personal Wine installation, create the directories ~/win, ~/win/windows and ~/win/windows/system, as described above. In the "wine.conf" and ".winerc" above, you have to change the Wine section and create a new drive section for Windows. If you do not want to use any application already installed on drive C, you may substitute the drive letter "H" as shown in our next example by "C". In section "wine" you will have to substitite "h" by "c", too. We have chosen "H" for the windows drive as some windows applications write absolute path statements to their ini files including the drive letter. If you take H for your Wine windows drive you may use C for a drive with windows applications.
Example 5-3. Drive Substitution in Configuration file
[Drive H]
Path=/usr/local/lib/win
Type=network
Label=Windows
Filesystem=win95
[wine]
Windows=h:\windows
System=h:\windows\system
Temp=e:\
Path=h:\windows;h:\windows\system;h:\wine;e:\;f:\
SymbolTableFile=./wine.sym
;[Drive C]
Path=/dosc
; Give the mountpoint of your drive with
; your real windows installation
Type=hd
; real partition
Label=MS-DOS
; drive name
Filesystem=msdos
; Give file system als described above
; "msdos" for dos formattes drives (FAT16)
; "win95" for ext2fs, VFAT and FAT32
;
As a Unix file system is case sensitive, do not use "unix" as a file system setting in the config file!
In the dll-sections mentioned above, you may need to make some changes. Loading native dlls of the windows operating system makes no sense, if you do not have them.
As the changes are really new, I do not have much experience with the dll-sections. But the defaults as above do not work. My dll-sections look like this:
Example 5-4. Dll-Sections in Wine Configuration File
[DllDefaults]
EXTRA_LD_LIBRARY_PATH=${HOME}/wine/cvs/lib
; This is only needed, if you have additional compiled
; dlls, if not, then leave it as is
DefaultLoadOrder = builtin, native
; no elfdlls available yet not "so"-dlls
[DllPairs]
; load these as pairs always
krnl386 = kernel32
gdi = gdi32
user = user32
commdlg = comdlg32
commctrl= comctl32
ver = version
shell = shell32
lzexpand= lz32
mmsystem= winmm
msvideo = msvfw32
winsock = wsock32
[DllOverrides]
kernel32, gdi32, user32 = builtin
krnl386, gdi, user = builtin toolhelp = builtin comdlg32, commdlg = builtin version, ver = builtin shell32, shell = builtin lz32, lzexpand = builtin commctrl, comctl32 = builtin wsock32, winsock = builtin advapi32, crtdll, ntdll = builtin mpr, winspool = builtin ddraw, dinput, dsound = builtin winmm, mmsystem = builtin msvideo, msvfw32 = builtin w32skrnl = builtin wnaspi32, wow32 = builtin system, display, wprocs = builtin wineps = builtin ; Here I added two dlls, installed by an app mfc42 = native msvcrt = native
For additional information see the file "config" in the Wine documentation directory and the man page.
User Configuration
If users prefer, they may create a file .winerc in their home directory. It looks the same as the wine.conf in "etc".
The first time Wine is run, it will create a ".wine" directory within the user's home directory. Some programs will write their .ini files there.
Test the Installation
The first test should be to run Wine on its own and ask it for its version. Open an xterm and type
$ wine -version
Wine release 20001026
This should give the version of Wine you installed. If you installed from source tree, it is the latest release e.g. "Wine release 20001026".
If you do not get the version like
$wine -version
bash: wine: command not found
your Wine is not properly installed. Try again to use the command as root. If
it works now, you have no permission to execute Wine or Wine is not in your
path. Ensure that Wine is in your path and ensure that you can run it if called
with path e.g.:
$ /usr/local/bin/wine -version
If you even cannot start Wine now, please refer to the section "Troubleshooting".
Do not start Wine on its own to run applications! You will have to give command line parameters to Wine, and every application to run has to be given to Wine at the command line. For additional command line parameters refer to "man wine".
Running Your First Application
We suggest a simple application for the first one to run. Sol.exe is the Windows solitaire game and works well in nearly all Wine versions. Arachnid.exe is a free solitaire game and works with all Wine versions, too.
To run your first application, first check whether you can find the application
to run. Example:
$ ls /dos/windows/sol.exe
If it is found you may start it with Wine in two ways: called with path or from the directory it resides in without path. If an application needs files in the directory it resides, you have to change to that directory first.
Here are some examples:
Assuming you have Windows 3.1 (or 16 Bit applications):
$ wine -winver win31 -desktop 640x480 /dos/windows/sol.exe
or
$ cd /dos/windows
$ wine -winver win31 -desktop 640x480 sol.exe
or
$ cd /dos/windows
$ wine -winver win31 sol
Wine will assume, that sol is the same as sol.exe.
If you do not have a Windows drive, you may fetch Arachnid.zip from Homepage The Witch or Mirror of the same site. To install it, create a directory eg
$ sudo mkdir /usr/local/lib/win/arachnid
or
$ mkdir ~/win/arachnid
Unpack the zip file into it and change to that directory before starting "arachnid".
$ cd ~/win/arachnid
$ wine -winver win31 -managed arachnid.exe
Arachnid will run without "-managed" or "-desktop", but the first time you run an application, it would be better to take either of these commands line parameters as you may see what is going on in your xterm if the application crashes.
If that does not work, check that you did not fall into the trap of case sensitivity of Linux, and have a look on the file permissions, accessing the files and the directory. I tested Arachnid with many versions of Wine and it works!
Now that you have, hopefully, successfully tested and run a simple application, you will want to use Wine for something useful. You may already have some Windows software that you want to run. To find out which applications are reported to run with Wine, have a look to the short list further down and check out the Application Database at http://www.winehq.org to find out what applications are working great/failing horribly.
More about starting applications in Chapter 10.
How to Install and Convert Fonts
If you start applications without changing anything in the default configuration, you may find that the fonts are a little crazy. Some are too large, some are too small and so on. You may play a little with the font translations in the wine.conf.
In the Wine distribution there are included two font related files: "fonts" and "ttfserver". You will find them in the source tree under "documentation" or, if you installed precompiled binaries, wherever your packaging system stores documentation (for Debian in /usr/share/doc/wine).
If you have Windows, you may want to make your Windows fonts available under Wine without installing a font server.
I wrote two little scripts (using perl), to translate the fonts as described in the fonts file, included in the Wine distribution. They may help you. WARNING: Do not distribute any copyrighted fonts afterwards to other people. You may get problems with copyright violation.
To use the scripts, save them under their names given in the comment line, execute them first with all the files to convert as command line parameter and have a look at the output. If the output suits your wishes, you may pipe the command into the shell to execute the statements.
The first one is to convert the fon-files from Windows to bdf-files:
Example 5-5. convert.fontobdf.pl
#!/usr/bin/perl -w
use strict;
# wandeln.fontobdf.pl
# converts *.fon-files from Windows to *.bdf-files.
# You need to convert these files to *.pcf-files afterwards
# needs fnt2bdf and perl
foreach my $i (@ARGV) {
if ($i =~ /(.*).fon$/) {
my $fon = $i;
my $bdf = "$1";
print "fnt2bdf -c $1 $fon\n"
}
}
#
The second one is to convert *.bdf-files to *.pcf-files.
Example 5-6. convert.bdftopcf.pl
#!/usr/bin/perl -w
use strict;
# wandeln.bdftopcf.pl
# converts *.bdf-files to *.pcf which may be installed
# in fontdir
# after installation call mkfontdir and add directory
# to fontdirs of xserver
# Needs bdftopcf and perl
foreach my $i (@ARGV) {
if ($i =~ /(.*).bdf$/) {
my $bdf = $i;
my $pcf = "$1.pcf";
print "bdftopcf -o $pcf $bdf\n"
}
}
#
The next script converts true type fonts directly to pcf-files.
Example 5-7. convert.ttf.pl
#!/usr/bin/perl -w
use strict;
# wandeln.ttf.pl
# converts True Type Fonts from Windows or other sources to
# bdf-files and pfc-files
# needs ttf2dbf, bdftopcf and perl
foreach my $i (@ARGV) {
if ($i =~ /(.*?)(|b|bi|bd|i)\.ttf$/) {
my $base = "$1$2";
my $face = $2;
my $ttf = $i;
for my $p (8..16) {
my $bdf = "$base$p.bdf";
my $pcf = "$base$p.pcf";
print "ttf2bdf -v -r 82 -p $p -o $bdf $ttf\n";
print "bdftopcf -o $pcf $bdf\n";
}
}
}
print "mkfontdir\n";
#
You have to restart your Xserver to see if the fonts are available now.
If you want to use True Type fonts directly, you have to install a font server like xfs and a True Type font server like xfstt. Bear Giles wrote a mini-HOWTO about installing both on Debian systems. As the HOWTO covers all you need to get the font server working, you may refer to it. It is available at TrueType Fonts in Debian mini-HOWTO.
Language settings
.
Chapter 6. Wine Winsock
This chapter will cover using winsock applications with Wine. It introduces to configuring and using tcp/ip with Wine and Linux.
Wine provides winsock version 1.1 for any application using it. Winsock 2.0 still is not yet fully implemented, so applications using winsock 2.0 may not run with Wine.
Wine winsock uses the networking facilities of your system. If you want to connect to the Internet or to another server in your LAN with a Wine application, you have to get the connection working with Linux first. How to do that is described in the Net-HOWTOs, Serial-HOWTO and PPP-HOWTO. Wine will use that configuration to provide winsock services to your application. You do not need to configure dialing to the Internet with Wine like you do using Windows (e.g., dialing with trumpet winsock or Network configuration in Windows 9.x).
To connect to local servers like a local news server or mail service, no dial up connection is used. Wine winsock provides local TCP/IP connection automatically, as TCP/IP is provided by the Linux kernel.
Assuming connection is set up with Linux and the Wine-user is able to use that connection, he or she only has to set up the Wine application to use with that connection. Examples are Agent as mail and newsreader, Pegasus mail, Opera as webbrowser.
To set up your application, please refer to its documentation.
Chapter 7. Using a Serial Port with Wine
This chapter will cover using serial ports with applications and get modem access. For setting up Winsock TCP/IP connections, please refer to the chapter Chapter 6.
Serial Port Access
To access a serial port with Wine applications, the serial port must be set up
in win.ini and Wine configuration file properly as described above in Chapter 5
. In addition, you need access to the serial port. Normally the serial ports
belong to the group "dialout".
ls -al /dev/ttyS*
crw-rw---- 1 root dialout 4, 64 Feb 13 14:32 /dev/ttyS0 crw-rw---- 1 root dialout 4, 65 Aug 1 1997 /dev/ttyS1 crw-rw---- 1 root dialout 4, 66 Aug 1 1997 /dev/ttyS2 crw-rw---- 1 root dialout 4, 67 Aug 1 1997 /dev/ttyS3
If you want a user to be able to connect the port directly, you should add him or her to the group dialout. Some people make /dev/ttyS0 (or any other port worldwide read and writable. But that's not a good idea.
To add a user to the group dialout, you could do that using gpasswd. You will
have to be root to do so. Syntax: gpasswd -a user group.
$ sudo gpasswd -a luser dialout
Password:
Adding user luser to group dialout
Now the user luser may access the serial ports.
Modem Access
Most modems can be accessed using Wine, but there still is no (full) support for winmodems as they seem to be incompatible to most common modem's installations.
If you want to use COM1 with a modem connected to /dev/ttyS0, COM1 has to be set up to provide this. You also have to set up the serial port for use by the user as described above. It is a good idea to test the modem access using minicom before configuring and testing a Wine application.
Programs such as win3.1's "terminal.exe" offer a simple way to set up and test your modem under Wine.
If windows finds your modem on Com2 and your Linux port is ttyS1 then, to set
up the modem in wine.conf change to:
Com2=/dev/ttyS1, 38400
then execute the program with
$ wine -desktop 1080x900 terminal
You may get a windows error message which says that the Com port you are trying to use was "unavailable or in use by another program." This can be fixed by changing the permissions on /dev/ttyS1 but best practice is to add the user to the group to which the port belongs.
With terminal running clicking on "Settings|Phone number" brings up a child window with a place to enter the phone number. Enter the number, close, then "Phone|Dial" and the program will dial the number you entered. If all goes well, your modem is now working under Wine. Terminal will now display an edit window showing the progress of your connection and you can login to the remote site.
Chapter 8. Multimedia With Wine
This chapter will cover configuring an using sound and multimedia with Wine.
Sound With Wine
To get sound to work with Wine, sound must first be set up correctly in the kernel. Sound should be extensively testet with Linux before trying to get sound from Wine. Applications to test Sound with Linux are Xwave and others. Testing sound with Linux only with a CD-player like Workman maybe not enough to ensure sound is working properly. To set up sound with Linux, please refer to the Sound-HOWTO and Sound-Playing-HOWTO.
If Sound is working perfectly with Linux you should be able to use sound with Wine without any further setup.
Other Multimedia Applications With Wine
The status of multimedia development for the Wine project is covered in the file "documentation/status/multimedia" in the Wine source tree. Multimedia support still is not completed.
A multimedia section in system.ini could look like this:
Example 8-1. Multimedia Section in System.ini
[mci]
cdaudio=mcicda.drv
sequencer=mciseq.drv
waveaudio=mciwave.drv
avivideo=mciavi.drv
videodisc=mcipionr.drv
vcr=mcivisca.drv
MPEGVideo=mciqtz.drv
To override the settings in system.ini the list of loadable (recognized) MCI drivers can be altered in the [option] section of wine.conf, like:
Example 8-2. MCI Driver entry in wine.conf
[option]
mci=CDAUDIO:SEQUENCER:WAVEAUDIO:AVIVIDEO:MPEGVIDEO
Chapter 9. Printing With Wine
This chapter will give you an introduction to printing under Wine. As printing still is not completed this chapter is experimental, too. If you have some experience with printing under Wine, we would like your contribution for the text.
Printing Basics for Wine
There are two ways to print with Wine: Using the internal Postscript driver from Wine or a native printer driver for your printer. As Wine is still in development and no final release is available, there may be still problems with printing (e.g., crashes). But with some applications you may print with acceptable results.
Before printing with Wine you should have your printer working with Linux (or BSD or whatever you use). More about printing with Linux in the Printing-HOWTO and the Printing-Usage-HOWTO. Native GDI (Windows) printers do not work with Wine if they cannot emulate another printer like Epson FX or something else. Linux supported printers are listed in the Hardware-HOWTO.
Essential Files and Documentation
On Wine usage and command line parameters refer to the Wine manual page. In the Wine source tree you will find two files related to the term of printing: graphics/psdrv/README and documentation/printing.
Files containing setup information related to printing: The Wine configuration files wine.conf or ~/.winerc; win.ini in ~/.wine and the registry for win95/ win98.
Configuring Wine for Printing
The normal way to access the printer with Wine will be using the printer setup of your Linux (BSD/Unix). For the impatient who we will give a short step-by-step introduction. But you should read the HOWTOs mentioned above, if you do not get it working! Those who already have a working printer setup should try step 6 and go straight to the next subsection, if step 6 works.
Short Steps to get a Printer connected and tested with Linux
Step 1:
connect the printer to any parallel port.
Step 2:
test, whether the devices /dev/lpx can be found
Step 3a:
if not: refer to printing-HOWTO and documentation delivered with your Linux distribution first. Then go back to 2.
Step 3b:
if yes, test if the printer will work with $ echo "test" > /dev/lp0
if your printer is connected to lp0 or $ echo "test" > /dev/lp1
if the printer is connected to lp1.
Step 4a:
If the printer does not print anything, look whether it is switched on, connected to the computer and the printer is plugged into the wall outlet. If that all is okay and the printer prints nonsense refer to the printer documentation whether it is a windows only printer. You may look up Hardware-HOWTO and Printing HOWTO, too for supported printers.
Step 4b:
If you see the text "test" on the paper, you won. The printer should work with Linux.
Step 5:
Get your printer set up to work with Linux: Install
+ lpr or LPRng (the printing program),
+ magicfilter (Filter for printing output), and
+ gs or gs-aladdin (Ghostscript for translating/creating Postscript
files).
If you do not understand the configuration of the packages above refer to the Printing-HOWTO and the documentation and man pages. Simple examples to help you understanding are given in this HOWTO you are reading.
Step 6:
If you are ready with step five, test the printer with a simple text file. (if you do not find one, edit one with e.g. vi). $ lpr testfile.txt
This should work either as user or as root. If printing this file works
find any Postscript file on your computer to test the filter. Postscript
files have the extension "ps".
$ lpr tiger.ps
(Tiger.ps is delivered with Ghostscript.) If this works fine, too, you are able to print even with Wine.
To configure Wine follow the configuration description further down in this HOWTO.
Wine Printing Configuration
CONFIGURATION: Common tasks for both Wine native Postscript driver and for Windows drivers in the wine.conf (~./winerc) file. Several examples are shown below. You will also have to add entries to your win.ini and to the registry. This section only covers the Wine configuration files.
The printers connected to your system should be added to your wine.conf (~ /.winerc) in the [spooler] section. If you do not want to use more than one printer and not more than one printer driver, you do not need more than one entry in the [spooler]section of the wine.conf (~./winerc).
- Example
Example 9-1. Printing to File
[spooler]
LPT1:=|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q -
This example says your system is set up to print to printer LPT1 by sending the file /tmp/fred created by ghostscript (gs) and using bj200 as the printer driver (-sDEVICE). (-q) tells ghostscript to suppress the normal startup messages and (-) tells ghostscript to expect its input from a file and to process the commandline after the end of file marker is found and exit when done.
You may use more than one printer port (LPT) to reflect different printer drivers with Wine.
- Examples
Example 9-2. Printing using System Printer
[spooler]
LPT1:=|lpr
LPT2:=|lpr
This example says your system is set up to connect the same printer used with linux for LPT1 and LPT2. The command used is lpr (off line print). Which command is used for printing depends on your distribution especially your operating system (with Solaris the printing command may be lp instead of lpr). If no printer is given via command line parameter (see "man lpr" or "man lp" for command line options). The default printer information used by lpr is found in /etc/printcap.
Example 9-3. Printing to different Printers
[spooler]
LPT1:=|lpr
LPT2:=|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q -
LPT3:=/dev/lp3
This example says Wine uses the default print command as pipe for the data on LPT1. LPT2 is set up to print to a file using ghostscript, LPT3 is set up to use a printer connected to lp3 directly (useful, if using a native printer driver with Wine, but still not working?).
Example 9-4. Different Setting for Same Printer
[spooler]
LPT1:=|lp
LPT2:=|lp -d duplex_1
In this example LPT1 and LPT2 are setup to use different printers with Solaris. The first one is the default printer, the second one another printer named duplex_1.
Printing with the Internal Postscript Driver of Wine
CONFIGURATION: Additional entries needed for the builtin Wine PostScript Driver.
Wine has an internal Postscript driver. The name of the Printer is "Wine PostScript Driver", short "WINEPS".
Getting files and set up the configuration
To get the internal Postscript driver working you will have to fetch some additional files and make some changes to your wine.conf (or ~/winerc).
The files needed are some Adobe Font Metric (AFM) files for the fonts you wish to use and a PPD file for your printer.
The PPD file normally is found on the setup CD or the setup disk of your printer. For a HP Laserjet 2100 it is found in the Windows NT directory of the Setup cd. If you own an older printer, you may find a PPD file at Adobe Printer driver Web Page or Adobe FTP PPD-Directory
The Adobe Font Metric files are found at Adobe Font Metric FTP-Directory. We assume you fetched the afm-file from the subdirectory "base35".
As the Postscript driver at present (990911) does not support downloading additional fonts, you will have to fetch only the font metric files for the fonts already present on your printer. Wine still supports only Postscript level one. So be sure to get the correct font metric files.
The PPD file (printername.ppd) can be put to your windows directory (eg /home/ wine/windows). To make Wine see it you have to create a [psdrv] section into your wine.conf (~/.winerc) and add the following entry:
Example 9-5. PSDRV Entry in Wine Configuration
[psdrv]
ppdfile=/home/wine/windows/printername.ppd
Edit the path and the filename above to fit your system! If you do not have this entry in your configuration, the Postscript driver will search for a file named default.ppd in the directory from which Wine is started. But it seems impractical to have this file in each directory you start Wine from. So you really should make the changes to your configuration file.
The AFM files may be copied to another subdirectory, eg /home/wine/afm/ filename.afm
This should be added to the wine.conf (~/winerc):
Example 9-6. AFM Files Entry in Wine Configuration File
[afmfiles]
file1=/home/wine/afm/filename.afm
file2=/home/wine/afm/filename2.afm
file3=/home/wine/afm/filename3.afm
; ...
Edit the path and the filename above to fit your system and add a line for each
font.
As the font names reflected by the file names are not very readable, you may find it useful to create a subdirectory for each font built from the font names.
You do not need to add "printer=on" to the [wine] section of your ~/.winerc to print with the internal driver.
Changes to win.ini
First you have to add the default printer to the [windows] section and the [devices] section of the win.ini (in ~/.wine or found in your c:\windows directory):
Example 9-7. Printer Entry in Win.ini
[windows]
device=Wine PostScript Driver,WINEPS,LPT1:
[devices]
Wine PostScript Driver=WINEPS,LPT1:
In addition you have to add the printer to the registry used by Wine. To add an entry, you will have to use regapi which is hopefully already present on your system. If you compiled Wine from source, you will have to compile it. To do this change to programs/regapi/regapi in the Wine source tree and type make.
In the source tree documentation/psdrv.reg you will find an example reg-file for the driver. Edit it to suit your requirements (especially the printer port) and call ./regapi setValue <../../documentation/psdrv.reg. The registry entry needed for the Wine Postscript driver looks like this:
Example 9-8. Registry Entry for Wine Postscript Driver
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers\WinePostScript Driver]
"Attributes"="dword:00000000"
"Default Devmode"=
"Name"="Wine PostScript Driver"
"Port"="LPT1:"
"Print Processor"="WinPrint"
"Printer Driver"="PS Driver"
"Priority"="dword:00000000"
"Start Time"="dword:00000000"
"Status"="dword:00000000"
"Until Time"="dword:00000000"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Environments\Windows4.0\Drivers\PS Driver]
"Configuration File"="WINEPS.DRV"
"Data File"=""
"Driver"="WINEPS.DRV"
"Version"="dword:0a000000"
"Datatype"=""
"Dependent Files"=""
"Help Files"=""
"Monitor"=""
Note: The printer port (here: LPT1) has to be reflected in your wine.conf (~ /.winerc)! If you made these changes, you should be able to print with the Wine Postscript Printer.
Printing Using Ghostscript in Wine
[still no more info available]
Printing Using a Windows Driver
Printing with a native printer driver
This section is as experimental and buggy as printing with native printer drivers from an application running with Wine. To get my HP Laserjet printing with the PLC Diver, I just copied the files from my Windows Installation to my Wine installation. The win.ini is edited by hand and not during setup of the printer.
The first thing to enable a native printer driver is to make a change to the wine.conf (~/.winerc):
Example 9-9. Enable native Printer in Wine Configuration File
[wine]
printer=on
Having done this, you should be able to run the setup program from your installation disk or CD. If you want to install additional True Type Fonts you should refer to the fonts section of the HOWTO to make them accessible using Wine after installation.
After installation you should find some new entries in your ~/.wine/win.ini.
The examples given here are from my own win.ini. You may find some different changes in your win.ini.
Example 9-10. Native Printer in Win.ini for HP 2100
[windows]
device=HP LaserJet 2100 Series PCL 6,hpbxlb,LPT2:
[devices]
Wine PostScript Driver=WINEPS,LPT1:
HP LaserJet 2100 Series PCL 6=hpbxlb,LPT2:
[FontSubstitutes]
Helv=MS Sans Serif
Tms Rmn=MS Serif
Times=Times New Roman
Helvetica=Arial
Albertus (W1)=Albertus Medium
Albertus Xb (W1)=Albertus Extra Bold
Antique Olv (W1)=Antique Olive
CG Times (W1)=CG Times
Courier (W1)=Courier New
Coronet (W1)=Coronet
Letter Gothic (W1)=Letter Gothic
Univers (W1)=Univers
Univers Cd (W1)=Univers Condensed
Albertus (WN)=Albertus Medium
Albertus Xb (WN)=Albertus Extra Bold
Antique Olv (WN)=Antique Olive
CG Times (WN)=CG Times
Courier (WN)=Courier New
Coronet (WN)=Coronet
Letter Gothic (WN)=Letter Gothic
Univers (WN)=Univers
[TrueType]
TTEnable=0
TTOnly=0
[HPLJ2100]
Language=German
Uninstall=H:\WINDOWS\hplj21un.txt
[HP LaserJet 2100 Series PCL 6,LPT2]
paper=9
prtcaps=-14065
prtcaps2=-26125
prtcaps3=0
qset=(Unbenannt)
pqsetting=754
access=512
[HPBXLB,LPT2]
FontSummary=H:\WINDOWS\FSBBLPT2.PXL
[PostScript,LPT2]
ATM=placeholder
[HP LaserJet 2100 Series PCL 6,]
paper=9
prtcaps=-14065
prtcaps2=-26125
prtcaps3=0
[HPBXLB,]
FontSummary=H:\WINDOWS\FSBBNONE.PXL
[PrinterPorts]
HP LaserJet 2100 Series PCL 6=hpbxlb,LPT2:,15,45
Note: This example is not made from normal setup. I just copied the entries from my Windows directory of my Windows for Workgroups installation.
Fonts for Printing with Wine
Will hopefully be completed soon
Common Problems
Printing was tested with built-in commdlg and external commdlg with Agent, Write and T-Tarif of German Telekom. Printing with the built-in commdlg did not work with Agent and Write. This may change in the future.
Sources and Additional Information
The Linux HOWTOs can be obtained from the Linux Documentation project:
- Web: Linux HOWTO Web Page
- Ftp: Linux HOWTO FTP Directory
Magicfilter is distributed with Red Hat (rpm) as well as with Debian (deb). And it can also be obtained tared and zipped via FTP: Magicfilter
Ghostscript and Ghostview should be available on your Linux distribution CD. You also may download the GNU versions with FTP: GNU FTP Server
Files related to the Postscript format can be optained from Adobe:
- Adobe Webserver.
- Adobe FTP Server
Chapter 10. Running Applications
Some applications just can be run from anywhere by giving them as command line parameter to Wine. But on the other hand you often have to cd to the working directory. It always is a good idea not to run any application directly from a menu of your X-Windows as you will not see the output. The following hints assume you opened a xterm to test how to start the application.
You may test first the following steps:
- try to run the application from anywhere e.g.
$ wine /dos/windows/sol.exe
If that works you may define an alias for the commands in your shell, eg bash. if not
2. change to the directory where the application resides; e.g.
$ cd /dos/wingam/arachnid
start the application from there; e.g.
$ wine -winver win31 arachnid
If that works put the two command lines into a shell script to start the application. If not
3. Try to find out, whether the application needs to be run from within its working directory. Change the directory, e.g.
$ cd /dos/agent/data
Start the application including the relative or complete path eg $ wine --winver win31 ../agent.exe
If that works, put the two commands into a shell script.
If it still does not work, there may be a real problem running the application. Before reporting a bug try to analyse the problem. Try to run another application that is known to run without problems with Wine. If that one does not work, too, go to Chapter 13. If that works fine, try some other applications and ensure that you typed all your commands mentioned above correctly. If you did and the other applications work fine, report all the commands you used and the output to the Wine newsgroup. Maybe, you'll get some hints there.
Application Needs Data Files or Configuration File to Run
If the application, its data file and the initialisation file (*.ini) are not in the same directory you call the application from, you may use command line parameters or change to the directory with these files before running the application. To give a command line parameter to Wine, you have to include the application and it´s parameters with quotation marks.
- Examples
$ wine "/dos/agent/agent.exe c:\agent\data\agent.ini"
or
$ wine "setup.exe /sms"
If you find that your application is fully functional, consider yourself very fortunate. Most Win3.1 applications will run with some tweaking, but some others may never run under Wine. Win95 programs, including games programs, are now reporting successful running under Wine, and will improve during 1999. NT programs are a little bit more tricky.
Other Command Line Parameters
In addition to the information given here, please read the Wine manual page ("man wine") about command line parameters!
The most important command line parameters are "-managed" "-desktop" and "winver". If you want your Window manager to control the application window, you may use "-managed":
$ wine -managed ../agent.exe
To run an application in its own dektop, the parameter "-desktop desktop-size" is used where desktop size is the size of the desktop in pixels, eg 640x400. $ wine -desktop 800x600 ../agent.exe
As detection of the Windows version, applications are programmed for still is not fully implemented, sometimes it is useful to tell Wine the version to use with "-winver":
$ wine -winver win95 application.exe
This is needed especially if the application complains about not running with Win32S. Valid versions are: win31, win95, nt351, and nt40.
Dll Loading Strategy
The dll loading strategy changed up from Wine cvs version 990423. There is newer information about it in the Wine manual ("man wine") and in the "config"-file in the documentation directory. As the command line interface changed too, you may try the new command line options for dll loading.
According to the dll-pairs an the dlls that must be load as builtin version, you should beware of dll type mismatches.
There are four types of dlls:
- builtin (compiled into Wine)
- elf-dll (compiled as elf library)
- so (dlls compiled as so library)
- native (dlls delivered with Windows or applications)
Some win16/win32 dlls depend on each other. These are the so named dll-pairs as mentioned in the "[DllPairs]" section in the new configuration file. You cannot use different dll types for dlls from an dll-pair!
In addition some dlls may only be used in their builtin version:
- krnl386, kernel32
- gdi, gdi32
- user, user32
Do not load these dlls from any other source!
Be cautious in your use of native dlls, particularly if you have a native windows installation. To correct problems which appear when running an app, you have to make sure that you have set up correctly the defaults and overrides in the wine.conf and the command line.
Start with a relatively simple application like Notepad, Wordpad or Mspaint:
$ wine c:/path/to/wordpad.exe
If you have problems try something like this (in one command line):
$ wine c:/path/to/notepad.exe \
-dll comdlg32,commdlg,shell32,shell,commctrl,comctl32=b
This tells Wine explicitly to take the built-in dlls.
Or if you have these native dlls installed:
$ wine c:/path/to/notepad.exe \
-dll comdlg32,commdlg,shell32,shell,commctrl,comctl32=n
This tells Wine to use the native dlls.
To track the loading of dlls you can give "-debugmsg +module" as a command line option to Wine. It also identifies which type of dll (library) Wine is trying to load.
The Wine Clipboard Server
The handling of the clipboard has changed during development. The default Wine clipboard behaviour now is not to delete the clipboard entry inside Wine if you want to copy or paste from an xterm. You may copy and paste from one Wine application to another or into any X application, but not from X to Wine.
The only way to change this behaviour is to change the settings in the Wine configuration file wine.conf or ~/.winrc.
- Default
Example 10-1. Clipboard Entry in Wine Configuration File
[Clipboard]
ClearAllSelections=0
PersistentSelection=1
If you want to get any marked text from an xterm to an app running with Wine, even if you have already copied something from an application to the clipboard, you may change this to:
Example 10-2. Clipboard Entry in Wine Configuration File
[Clipboard]
ClearAllSelections=1
PersistentSelection=0
VxD Support Within Wine
VxDs are a type of virtual driver that only exist in Windows 3.x and 9x.
VxDs live in a shared part memory that is shared will all processes. VxDs must be run with supervisory privileges as they do things like directly interact with hardware. In Intel terminology VxDs must be run in ring level 0 instead of the usual ring level 3.
VxDs are not supported by Wine because Linux, as well as most operating systems other than Windows 3.x and 9x, does not allow applications to run in supervisory mode. Also, the complex API set provided by Windows for VxDs makes VxD support difficult to implement.
One possible work around is to see if there is a Windows NT version of the application you would like to run since Windows NT does not support VxDs. If the executable you are running dynamically detects which version of Windows it is running in you can cause it to think it is running in Windows NT with:
$wine -winver nt40 yourapp
Apps that rely on VxDs to access hardware under 9x might possibly need NT device drivers under NT (direct hardware access by the application does not work under NT as well, of course); NT device drivers do not work under Wine either, for the same reasons as for VxDs.
Another possibility: if the interface between the VxD and the application is known, it would be possible to implement this interface from within Wine. In this case, the application would think it talks with the VxD, while it in fact talks with the implementation within Wine. Some interfaces provided by standard system VxDs are already implemented this way, and it's easy to add additional ones (always provided that the interface is known, of course).
Which Applications do Actually run with Wine?
We cannot list all application here. But as some people have rather old Wine installations we list some application here which ran already with very old Wine versions. If you run Wine the first time you should get one of these running.
Windows 3.1 (16 bit applications)
- Arachnid - Solitaire card game (free)
- Sol - Solitaire card game (?)
- Mirc - Irc client (Shareware)
- Agent1.5/16 - Mail and news reader (commercial)
- Free Agent - News reader (free)
Windows 95 (32 bit applications)
- Agent1.5/33 - Mail and news reader (commercial)
- ...
For information about more applications check out the Application Database at WineHQ
Chapter 11. Save Running Wine Installations
This chapter is only useful while Wine is alpha or beta. So if you read this when Wine is released, you should get a newer version of this HOWTO, as this copy really will be out of date.
If you find a version of Wine runs some of your most-used applications, it is really good to have a copy of the source or the Wine installation before updating the source tree or installing a new Wine package.
People installing Wine from packages should keep a copy of the installed packages until they really know that they want to stay at a newer version of Wine.
For the others who installed from source it is a good idea to make a backup of the source tree or the Wine installation in /usr/local before updating the source and installing the new binaries.
Here is a little example script for making backups with tar:
Example 11-1. Shellscript to save Wine Installation>
#! /bin/bash
# savewine
savefile=$HOME/wine/savewine/wine$(date +"%m%d").tgz
tar cvfz $savefile /usr/local/* /home/jw/.wine/ /home/wine/windows/
# Please edit the command line to fit your directories!
# unpacking with "tar xvfpz" as root from "/"
Be aware that you can save the whole /usr/local only if you do not install other programs there! When unpacking an old tar you may accidentally overwrite newer files. How to avoid that? Refer to "man tar".
Chapter 12. Security Issues
As Linux is a multi user system, you may get some trouble if you decide to install Wine and applications for system wide use.
Example: You gave a friend an account on your Linux system. Now you install Wine and mount your Windows partition to use some applications on it. As you have a Windows game, your friend wants to play too, you mount the partition globally readable, to give him access to that game, too. But did you want your friend and everyone else with access to your linux machine to start your banking software?
I will not tell you anything here about firewalling and other stuff. Please read the HOWTOs about that if your system has access to any other computer or to the Internet. And there are some very good books about security issues on Linux and Unix systems. But I want to give you some hints about things you should be aware of.
If you are the only human user on your system, you may mount your Windows partition accessible only for you. If you do not have your own group, you may create it (Debian Linux has a default to create a unique group for each user). If you have such a group on your own, you may mount dos partition with this entry in your fstab:
Example 12-1. Fstab Entry for Dos Drive
/dev/hda2 /dos msdos defaults,user,noexec,gid=1001,uid=1001,umask=027 0 2
Please change gid (group id) and uid (user id) according too your system!!!
If you want to add other users to your group, and you do not want them to have access to that drive, change the umask to "077".
For additional information read "man fstab" and "man mount".
If you do not have a drive with Windows applications and you want to install some on your Linux system, you may install your personal applications in your home directory as described above and make the directory available only for you (see "man chmod"). It may be a good idea to make the win directory rwx owner and no one else and set the sticky bit on it ("chmod +s ~/win").
In spite of all that, be aware that everyone with root access is able to read, delete, execute and change any file in your home directory!
I should say something about the "device" entries in the configuration files. Adding any "device"-entry means to give raw device access to the drive or directory. It may be useful for formatting floppy disks with dos format or a cd writer, but if you give raw device access to ext2fs formatted drives, they may get damaged.
Chapter 13. Troubleshooting
Disk Space
If you run out of disk space or you do not have enough memory to run Wine, you may solve the problem in running a stripped version of Wine. WARNING: As Wine is still alpha, you may have problems in running some software products. If you run a stripped version of Wine, you do not get useful debug output.
Getting Older Versions of Wine
If you want to try older versions of Wine or you lost your working installation, you may try to install a version form the "Daily Builds" Site. You find it at WINE Daily Builds for Linux (And FreeBSD!). For those who keep a copy from the cvs tree the switch "-D date" seems to be very useful.
Running Wine
If you cannot execute Wine, either as user or as root, you have to check if there is a Wine executable. To do that you can use "find" or locate. If the command "locate wine" shows nothing, and your locate database is up-to-date, there is no Wine executable on your system. Your installation process failed, and you have to try again. If Wine is found, do "ls -al directory-to-Wine/ wine". The permissions should be "-rwxr-xr-x". If they are not, you should correct this with chmod. Now you may call Wine directly including the path. If this works, the directory Wine resides in, is not in your path and you should add it. If all these hints do not help, you should refer to your operating system manual, to learn about finding and accessing files and permissions.
Sometimes there are other error messages that tell you something was missed while compiling or installing Wine packages:
"wine: error in loading shared libraries /usr/lib/libwine.so: undefined symbol:"
That error comes from having libraries and binaries compiled with different versions of gcc. Normally you have to upgrade your glibc.
"... please install Xpm and recompile..."
If you compiled Wine without having xpm installed before, you get the error message. Install all the packages needed to compile Wine, delete config.cache in the root of the source tree and do all the steps described above again.
Installing Applications
Unpacking ZIP-Files
If you get an application as ZIP-File, you have to unpack it in an installation directory first. Using "unzip" you sometimes get an error message like "File crunched - skipping". To get the files in the package you have to use Winzip or the Zip program for dos.
Installing Self-extracting Files
If you get a self-extracting file to install there may be two problems:
- The files are unpacked into the temp directory and are not found afterwards. You get an error message from the installer.
- The files are not found because of case sensitivity if already unpacked.
The first problem can be solved by copying the files from the temp directory to an installation directory and before checking the error message. The second problem may be solved by renaming the file that cannot be accessed. But be careful here! You should have ensured that the directory really is accessible and the permissions are correctly set.
Installing Applications from Cdrom
Sometimes you may find that you cannot install an application from cdrom. Some of the files on the cdrom are not found. That problem may be caused by hidden files. Using the unhide option when mounting the cdrom should solve that problem. Please refer to "man mount" on mount options.
Running Applications
Sometimes Wine cannot execute the application that you wanted to run. This may be caused due several reasons:
- The drive with the executable is not mounted,
- you have no permission to read the file,
- you misspelled the command
- the executable cannot be found in the path.
Ensure that you called the application correctly and change to the directory, where the executable is stored.
Other Problems - FAQ
Application Needs Share
If you get a message "you have to load share.exe before starting Windows" or something like that, you have to check two things. Is there a share.exe in your path? - If not put it into the path or if you do not have any Windows, do "sudo touch /usr/local/lib/win/windows/share.exe" (or wherever your windows directory is). In addition make sure, that your temp dir is correctly assigned in wine.conf and is accessible.
Not Enough Memory to Run Application
It is reported for Winword 6.0 that this often is caused by a temp dir that is not writable.
Warning About Invalid Entrypoint
If you try to run applications infected by a virus, sometimes you get a fixme-message ending up with "(possible Virus Infection or broken binary)!". Up to now this always is a sign for a real virus infection. Newer virus checkers will normally find the virus. If your virus checker does not report an infection, it is out of date, not very good or you got a really new virus not known by the virus checker.
Common Error Messages
After Wine cvs/version 99042x: If you get the error "Unable to find 'xxx_ThunkData[16|32]'", this indicates that there is a version/loadtype mismatch between the win16 and win32 dll-pair. You should have a look into your wine.conf or ~/.winerc!
Problems While Compiling Wine
Compilation ends up with
"make[1]: *** [3dcommon.o] Error1 [...]"
You forgot to install a new Mesa. Update to Mesag3 and try again. You will find Mesa on your Linux distribution disk or at Mesa Homepage
Maybe, you get another error
C compiler cannot create excutables
This is not a Wine problem. One of the packages that has to be installed to compile executables on the system (normally binutils)is missing. If it is already installed, deleting the config.cache should help.
Problems with True Type Fonts and Fontserver
If you have installed a font server to use true type fonts from your Windows installation, you may have problems while loading them. Have a look at error messages from the font server to find irregular fonts or start Wine with "-debugmsg +font" to find out which font causes the problem and uninstall it.
Appendix A. Newest Version of This Document
The newest version of this document is available at
Wine-HOWTO Online
A text version can be optained via http at
Wine-HOWTO.txt
A printable version is available at
Wine-HOWTO.ps
Appendix B. Special Thanks
Thanks to all those people helping me to write the HOWTO.
Special thanks to Arnan Mitchel who supported me to get started, Richard A. Lough who is a great help with the printing chapter, Adam Sacarny, who made a lot of suggestions, Ulrich Weigand and Marcus Meissner, who were a great help to understand some Wine internals, Andreas Mohr, who reviewed the first version and many others.
Appendix C. GNU Free Documentation License
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
- APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
- Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
- List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).
- State on the Title page the name of the publisher of the Modified Version, as the publisher.
- Preserve all the copyright notices of the Document.
- Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
- Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
- Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
- Include an unaltered copy of this License.
- Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
- Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
- In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
- Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
- Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.
- Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and /or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".
If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
