diff --git a/documentation/Makefile.in b/documentation/Makefile.in index 0ddfe71b851..ef34de67fec 100644 --- a/documentation/Makefile.in +++ b/documentation/Makefile.in @@ -12,9 +12,11 @@ EXTRASUBDIRS = samples status WINE_USER_SRCS = \ bugs.sgml \ + compiling.sgml \ configuring.sgml \ fonts.sgml \ getting.sgml \ + glossary.sgml \ installing.sgml \ introduction.sgml \ printing.sgml \ @@ -24,9 +26,9 @@ WINE_USER_SRCS = \ WINE_DEVEL_SRCS = \ architecture.sgml \ build.sgml \ - compiling.sgml \ consoles.sgml \ cvs-regression.sgml \ + cvs.sgml \ debugger.sgml \ debugging.sgml \ dlls.sgml \ diff --git a/documentation/architecture.sgml b/documentation/architecture.sgml index a45b481ea39..a4cb11c5008 100644 --- a/documentation/architecture.sgml +++ b/documentation/architecture.sgml @@ -948,7 +948,7 @@ child1->popup->child2->child3->wnd1->child4->wnd2->desktop. (See also ./DEVELOPER-HINTS or the dlls/ subdirectory to see which DLLs - are currently being rewritten for wine) + are currently being rewritten for Wine) @@ -959,7 +959,7 @@ AVIFILE.DLL: 32-bit application programming interfaces for the Audio Video Interleave (AVI) Windows-specific Microsoft audio-video standard COMMCTRL.DLL: 16-bit common controls -COMCTL32.DLL: 32-bit common controls +COMCTL32.DLL: 32-bit common controls COMDLG32.DLL: 32-bit common dialogs COMMDLG.DLL: 16-bit common dialogs COMPOBJ.DLL: OLE 16- and 32-bit compatibility libraries @@ -980,8 +980,8 @@ IMM32.DLL: 32-bit IMM API IMGUTIL.DLL: KERNEL32.DLL 32-bit kernel DLL KEYBOARD.DLL: Keyboard drivers -LZ32.DLL: 32-bit Lempel-Ziv or LZ file compression - used by the installshields (???). +LZ32.DLL: 32-bit Lempel-Ziv or LZ file compression + used by the installshield installers (???). LZEXPAND.DLL: LZ file expansion; needed for Windows Setup MMSYSTEM.DLL: Core of the Windows multimedia system MOUSE.DLL: Mouse drivers diff --git a/documentation/bugs.sgml b/documentation/bugs.sgml index 5b5d50c6b34..cb0ad43082b 100644 --- a/documentation/bugs.sgml +++ b/documentation/bugs.sgml @@ -2,7 +2,7 @@ Troubleshooting / Reporting bugs - What to do if some program still doesn't work ? + What to do if some program still doesn't work? There are times when you've been trying everything, you even killed a cat @@ -17,21 +17,9 @@ Run "winecheck" to check your configuration - Run a Perl script called winecheck, to be - found in Wine's tools/ directory. - - The latest version can always be found at - http://home.arcor.de/andi.mohr/download/winecheck. - - Make sure to run chmod +x winecheck first before - trying to execute it... - (or alternatively run it via perl ./winecheck) - - The winecheck output will be a percentage score indicating Wine - configuration correctness. - Note that winecheck is only alpha, so it's not very complete or - 100% accurate. + Run a Perl script called winecheck. + For details, please refer to the Configuration section. @@ -39,7 +27,7 @@ Use different windows version settings - In several cases using different windows version settings can help. + In several cases using different windows version settings can help. @@ -62,7 +50,7 @@ Run with --debugmsg +loaddll to figure out which DLLs are being used, and whether they're being loaded as native or - builtin. + built-in. Then make sure you have proper native DLL files in your configured C:\windows\system directory and fiddle with DLL load order settings at command line or in config file. @@ -224,7 +212,7 @@ The name of the Operating system you're using, what distribution (if - any), and what version. (i.e., Linux RedHat 7.2) + any), and what version. (i.e., Linux Red Hat 7.2) diff --git a/documentation/build.sgml b/documentation/build.sgml index 4ec08a43f4b..c380bed9170 100644 --- a/documentation/build.sgml +++ b/documentation/build.sgml @@ -1,6 +1,6 @@ The Wine Build System - How the Wine build system works, and how to tweak it... + FIXME: How the Wine build system works, and how to tweak it... +Introduction To DLL Sections + + There are a few things you will need to know before + configuring the DLL sections in your wine configuration + file. + + + Windows DLL Pairs + + Most windows DLL's have a win16 (Windows 3.x) and win32 + (Windows 9x/NT) form. The combination of the win16 and + win32 DLL versions are called the "DLL pair". This is a + list of the most common pairs: + - - The [DllDefaults] section - - - DefaultLoadOrder - - This specifies in what order Wine should search for - available DLL types, if the DLL in question was not - found in the [DllOverrides] section. - - - - + + + + + Win16 + Win32 + + Native + + + Is it possible to use native DLL with wine? + (See next section) + + + + + + + + KERNEL + KERNEL32 + No! + + + USER + USER32 + No! + + + SHELL + SHELL32 + Yes + + + GDI + GDI32 + No! + + + COMMDLG + COMDLG32 + Yes + + + VER + VERSION + Yes + + + + + - - The [DllPairs] section - - At one time, there was a section called [DllPairs] in the - default configuration file, but this has been obsoleted - because the pairing information has now been embedded into - Wine itself. (The purpose of this section was merely to be - able to issue warnings if the user attempted to pair - codependent 16-bit/32-bit DLLs of different types.) If you - still have this in your ~/.wine/config or - wine.conf, you may safely delete it. - - + + Different Forms Of DLL's + + There are a few different forms of DLL's wine can load: + + + native + + The DLL's that are included with windows. Many + windows DLL's can be loaded in their native + form. Many times these native versions work + better than their non-Microsoft equivalent -- + other times they don't. + + + + builtin + + The most common form of DLL loading. This is + what you will use if the DLL is too system-specific + or error-prone in native form (KERNEL for example), + you don't have the native DLL, or you just want to be + Microsoft-free. + + + + so + + Native ELF libraries. Has been deprecated, ignored. + + + + elfdll + + ELF encapsulated windows DLL's. + No longer used, ignored. + + + + + + - - The [DllOverrides] section - - This section specifies how you want specific DLLs to be - handled, in particular whether you want to use "native" DLLs - or not, if you have some from a real Windows configuration. - Because builtins do not mix seamlessly with native DLLs yet, - certain DLL dependencies may be problematic, but workarounds - exist in Wine for many popular DLL configurations. Also see - WWN's [16]Status Page to figure out how well your favorite - DLL is implemented in Wine. - - - It is of course also possible to override these settings by - explictly using Wine's --dll - command-line option (see the man page for details). Some - hints for choosing your optimal configuration (listed by - 16/32-bit DLL pair): - - - - krnl386, kernel32 - - Native versions of these will never work, so don't try. Leave - at builtin. - - - - gdi, gdi32 - - Graphics Device Interface. No effort has been made at trying to - run native GDI. Leave at builtin. - - - - user, user32 - - Window management and standard controls. It was - possible to use Win95's native - versions at some point (if all other DLLs that depend - on it, such as comctl32 and comdlg32, were also run - native). However, this is no longer - possible after the Address Space Separation, so leave - at builtin. - - - - ntdll - - NT kernel API. Although badly documented, the - native version of this will never - work. Leave at builtin. - - - - w32skrnl - - Win32s (for Win3.x). The native - version will probably never work. Leave at - builtin. - - - - wow32 - - Win16 support library for NT. The - native version will probably never - work. Leave at builtin. - - - - system - - Win16 kernel stuff. Will never work - native. Leave at - builtin. - - - - display - - Display driver. Definitely leave at builtin. - - - - toolhelp - - Tool helper routines. This is rarely a source of problems. - Leave at builtin. - - - - ver, version - - Versioning. Seldom useful to mess with. - - - - advapi32 - - Registry and security features. Trying the - native version of this may or may - not work. - - - - commdlg, comdlg32 - - Common Dialogs, such as color picker, font dialog, - print dialog, open/save dialog, etc. It is safe to try - native. - - - - commctrl, comctl32 - - Common Controls. This is toolbars, status bars, list controls, - the works. It is safe to try native. - - - - shell, shell32 - - Shell interface (desktop, filesystem, etc). Being one of the - most undocumented pieces of Windows, you may have luck with the - native version, should you need it. - - - - winsock, wsock32 - - Windows Sockets. The native version - will not work under Wine, so leave at - builtin. - - - - icmp - - ICMP routines for wsock32. As with wsock32, leave at - builtin. - - - - mpr - - The native version may not work due - to thunking issues. Leave at - builtin. - - - - lzexpand, lz32 - - Lempel-Ziv decompression. Wine's - builtin version ought to work fine. - - - - winaspi, wnaspi32 - - Advanced SCSI Peripheral Interface. The - native version will probably never - work. Leave at builtin. - - - - crtdll - - C Runtime library. The native - version will easily work better than Wine's on this - one. - - - - winspool.drv - - Printer spooler. You are not likely to have more luck - with the native version. - - - - ddraw - - DirectDraw/Direct3D. Since Wine does not implement the - DirectX HAL, the native version - will not work at this time. - - - - dinput - - DirectInput. Running this native - may or may not work. - - - - dsound - - DirectSound. It may be possible to run this - native, but don't count on it. - - - - dplay/dplayx - - DirectPlay. The native version - ought to work best on this, if at all. - - - - mmsystem, winmm - - Multimedia system. The native - version is not likely to work. Leave at - builtin. - - - - msacm, msacm32 - - Audio Compression Manager. The - builtin version works best, if you - set msacm.drv to the same. - - - - msvideo, msvfw32 - - Video for Windows. It is safe (and recommended) to try - native. - - - - mcicda.drv - - CD Audio MCI driver. - - - - mciseq.drv - - MIDI Sequencer MCI driver (.MID - playback). - - - - mciwave.drv - - Wave audio MCI driver (.WAV playback). - - - - mciavi.drv - - AVI MCI driver (.AVI video - playback). Best to use native. - - - - mcianim.drv - - Animation MCI driver. - - - - msacm.drv - - Audio Compression Manager. Set to same as msacm32. - - - - midimap.drv - - MIDI Mapper. - - - - wprocs - - This is a pseudo-DLL used by Wine for thunking - purposes. A native version of this - doesn't exist. - - - - - - - Missing DLLs + +DLL Overrides - - Written by &name-andreas-mohr; &email-andreas-mohr; - + + Written by &name-ove-kaaven; &email-ove-kaaven; + + + (Extracted from wine/documentation/dll-overrides) + - - In case Wine complains about a missing DLL, you should check whether - this file is a publicly available DLL or a custom DLL belonging - to your program (by searching for its name on the internet). - If you managed to get hold of the DLL, then you should make sure - that Wine is able to find and load it. - DLLs usually get loaded according to the mechanism of the - SearchPath() function. - This function searches directories in the following order: + + The wine configuration file directives [DllDefaults] + and [DllOverrides] are the subject of some confusion. The + overall purpose of most of these directives are clear enough, + though - given a choice, should Wine use its own built-in + DLLs, or should it use .DLL files found + in an existing Windows installation? This document explains + how this feature works. + - - - - The directory the program was started from. - - - - - The current directory. - - - - - The Windows system directory. - - - - - The Windows directory. - - - - - The PATH variable directories. - - - + + DLL types + + + native + + A "native" DLL is a .DLL file + written for the real Microsoft Windows. + + + + builtin + + A "built-in" DLL is a Wine DLL. These can either be a + part of libwine.so, or more + recently, in a special .so file + that Wine is able to load on demand. + + + + - In short: either put the required DLL into your application - directory (might be ugly), or usually put it into the Windows system - directory. Just find out its directory by having a look at the Wine - config File variable "System" (which indicates the location of the - Windows system directory) and the associated drive entry. - Note that you probably shouldn't use NT-based native DLLs, - since Wine's NT API support is somewhat weaker than its Win9x - API support (thus leading to even worse compatibility with NT DLLs - than with a no-windows setup !), so better use Win9x native DLLs - instead or no native DLLs at all. - - - - Fetching native DLLs from a Windows CD + + The [DllDefaults] section + + + DefaultLoadOrder + + This specifies in what order Wine should search for + available DLL types, if the DLL in question was not + found in the [DllOverrides] section. + + + + - - Written by &name-andreas-mohr; &email-andreas-mohr; - + + The [DllPairs] section + + At one time, there was a section called [DllPairs] in the + default configuration file, but this has been obsoleted + because the pairing information has now been embedded into + Wine itself. (The purpose of this section was merely to be + able to issue warnings if the user attempted to pair + codependent 16-bit/32-bit DLLs of different types.) If you + still have this in your ~/.wine/config or + wine.conf, you may safely delete it. + + - - The Linux cabextract utility can be used to - extract native Windows .dll files from .cab files that are to be - found on many Windows installation CDs. - - - + + The [DllOverrides] section + + This section specifies how you want specific DLLs to be + handled, in particular whether you want to use "native" DLLs + or not, if you have some from a real Windows configuration. + Because built-ins do not mix seamlessly with native DLLs yet, + certain DLL dependencies may be problematic, but workarounds + exist in Wine for many popular DLL configurations. Also see + WWN's [16]Status Page to figure out how well your favorite + DLL is implemented in Wine. + + + It is of course also possible to override these settings by + explictly using Wine's --dll + command-line option (see the man page for details). Some + hints for choosing your optimal configuration (listed by + 16/32-bit DLL pair): + + + + krnl386, kernel32 + + Native versions of these will never work, so don't try. Leave + at builtin. + + + + gdi, gdi32 + + Graphics Device Interface. No effort has been made at trying to + run native GDI. Leave at builtin. + + + + user, user32 + + Window management and standard controls. It was + possible to use Win95's native + versions at some point (if all other DLLs that depend + on it, such as comctl32 and comdlg32, were also run + native). However, this is no longer + possible after the Address Space Separation, so leave + at builtin. + + + + ntdll + + NT kernel API. Although badly documented, the + native version of this will never + work. Leave at builtin. + + + + w32skrnl + + Win32s (for Win3.x). The native + version will probably never work. Leave at + builtin. + + + + wow32 + + Win16 support library for NT. The + native version will probably never + work. Leave at builtin. + + + + system + + Win16 kernel stuff. Will never work + native. Leave at + builtin. + + + + display + + Display driver. Definitely leave at builtin. + + + + toolhelp + + Tool helper routines. This is rarely a source of problems. + Leave at builtin. + + + + ver, version + + Versioning. Seldom useful to mess with. + + + + advapi32 + + Registry and security features. Trying the + native version of this may or may + not work. + + + + commdlg, comdlg32 + + Common Dialogs, such as color picker, font dialog, + print dialog, open/save dialog, etc. It is safe to try + native. + + + + commctrl, comctl32 + + Common Controls. This is toolbars, status bars, list controls, + the works. It is safe to try native. + + + + shell, shell32 + + Shell interface (desktop, filesystem, etc). Being one of the + most undocumented pieces of Windows, you may have luck with the + native version, should you need it. + + + + winsock, wsock32 + + Windows Sockets. The native version + will not work under Wine, so leave at + builtin. + + + + icmp + + ICMP routines for wsock32. As with wsock32, leave at + builtin. + + + + mpr + + The native version may not work due + to thunking issues. Leave at + builtin. + + + + lzexpand, lz32 + + Lempel-Ziv decompression. Wine's + builtin version ought to work fine. + + + + winaspi, wnaspi32 + + Advanced SCSI Peripheral Interface. The + native version will probably never + work. Leave at builtin. + + + + crtdll + + C Runtime library. The native + version will easily work better than Wine's on this + one. + + + + winspool.drv + + Printer spooler. You are not likely to have more luck + with the native version. + + + + ddraw + + DirectDraw/Direct3D. Since Wine does not implement the + DirectX HAL, the native version + will not work at this time. + + + + dinput + + DirectInput. Running this native + may or may not work. + + + + dsound + + DirectSound. It may be possible to run this + native, but don't count on it. + + + + dplay/dplayx + + DirectPlay. The native version + ought to work best on this, if at all. + + + + mmsystem, winmm + + Multimedia system. The native + version is not likely to work. Leave at + builtin. + + + + msacm, msacm32 + + Audio Compression Manager. The + builtin version works best, if you + set msacm.drv to the same. + + + + msvideo, msvfw32 + + Video for Windows. It is safe (and recommended) to try + native. + + + + mcicda.drv + + CD Audio MCI driver. + + + + mciseq.drv + + MIDI Sequencer MCI driver (.MID + playback). + + + + mciwave.drv + + Wave audio MCI driver (.WAV playback). + + + + mciavi.drv + + AVI MCI driver (.AVI video + playback). Best to use native. + + + + mcianim.drv + + Animation MCI driver. + + + + msacm.drv + + Audio Compression Manager. Set to same as msacm32. + + + + midimap.drv + + MIDI Mapper. + + + + wprocs + + This is a pseudo-DLL used by Wine for thunking + purposes. A native version of this + doesn't exist. + + + + + - &fonts; - &printing; + +System DLLs + + The Wine team has determined that it is necessary to create + fake DLL files to trick many programs that check for + file existence to determine whether a particular feature + (such as Winsock and its TCP/IP networking) is available. If + this is a problem for you, you can create empty files in the + configured c:\windows\system directory + to make the program think it's there, and Wine's built-in DLL + will be loaded when the program actually asks for it. + (Unfortunately, tools/wineinstall does + not create such empty files itself.) + + + Applications sometimes also try to inspect the version + resources from the physical files (for example, to determine + the DirectX version). Empty files will not do in this case, + it is rather necessary to install files with complete + version resources. This problem is currently being worked + on. In the meantime, you may still need to grab some real + DLL files to fool these apps with. + + + And there are of course DLLs that wine does not currently + implement very well (or at all). If you do not have a real + Windows you can steal necessary DLLs from, you can always + get some from one of the Windows DLL archive sites + that can be found via internet search engine. + Please make sure to obey any licenses on the DLLs you fetch... + (some are redistributable, some aren't). + + - - Win95/98 Look + +Missing DLLs + + + Written by &name-andreas-mohr; &email-andreas-mohr; + + + + In case Wine complains about a missing DLL, you should check whether + this file is a publicly available DLL or a custom DLL belonging + to your program (by searching for its name on the internet). + If you managed to get hold of the DLL, then you should make sure + that Wine is able to find and load it. + DLLs usually get loaded according to the mechanism of the + SearchPath() function. + This function searches directories in the following order: + + + - Written by &name-david-cuthbert; &email-david-cuthbert; + The directory the program was started from. + + - (Extracted from wine/documentation/win95look) + The current directory. + + - Win95/Win98 interface code is being introduced. + The Windows system directory. + + - Instead of compiling Wine for Win3.1 vs. Win95 using - #define switches, the code now looks in a - special [Tweak.Layout] section of - ~/.wine/config for a - "WineLook" = "Win95" or - "WineLook" = "Win98" entry. + The Windows directory. + + - A few new sections and a number of entries have been added to - the ~/.wine/config file -- these are for - debugging the Win95 tweaks only and may be removed in a future - release! These entries/sections are: + The PATH variable directories. - + + + + In short: either put the required DLL into your program + directory (might be ugly), or usually put it into the Windows system + directory. Just find out its directory by having a look at the Wine + configuration file variable "System" (which indicates the location of the + Windows system directory) and the associated drive entry. + Note that you probably shouldn't use NT-based native DLLs, + since Wine's NT API support is somewhat weaker than its Win9x + API support (thus leading to even worse compatibility with NT DLLs + than with a no-windows setup!), so better use Win9x native DLLs + instead or no native DLLs at all. + + + + +Fetching native DLLs from a Windows CD + + + Written by &name-andreas-mohr; &email-andreas-mohr; + + + +The Linux cabextract utility can be used to +extract native Windows .dll files from .cab files that are to be +found on many Windows installation CDs. + + + + + +Configuring the graphics driver (x11drv, ttydrv etc.) + + +Wine currently supports several different display subsystems +(graphics / text) that are available on various operating +systems today. +For each of these, Wine implements its own interfacing driver. +This section explains how to select one of these drivers +and how to further configure the respective driver. +Once you're finished with that, you can consider your Wine installation +to be finished. + + + +The display drivers currently implemented in Wine are: +x11drv, which is used for interfacing to X11 graphics +(the one you'll most likely want to use) and ttydrv +(used for text mode console apps mainly that don't really need +any graphics output). +Once you have decided which display driver to use, it is chosen +with the GraphicsDriver option in the +[wine] section of ~/.wine/config. + + + +Configuring the x11drv graphics driver + + + Written by &name-ove-kaaven; &email-ove-kaaven; + + + (Extracted from wine/documentation/x11drv) + + + + x11drv modes of operation + + + The x11drv driver consists of two conceptually distinct + pieces, the graphics driver (GDI part), and the windowing + driver (USER part). Both of these are linked into the + libx11drv.so module, though (which you + load with the GraphicsDriver option). In + Wine, running on X11, the graphics driver must draw on + drawables (window interiors) provided by the windowing + driver. This differs a bit from the Windows model, where the + windowing system creates and configures device contexts + controlled by the graphics driver, and programs are + allowed to hook into this relationship anywhere they like. + Thus, to provide any reasonable tradeoff between + compatibility and usability, the x11drv has three different + modes of operation. + + + + + Managed + + + The default. Specified by using the Managed + wine configuration file option (see below). + Ordinary top-level frame windows with thick borders, + title bars, and system menus will be managed by your + window manager. This lets these programs integrate + better with the rest of your desktop, but may not + always work perfectly (a rewrite of this mode of + operation, to make it more robust and less patchy, is + currently being done, though, and it's planned to be + finished before the Wine 1.0 release). + + + + + Unmanaged / Normal + + + Window manager independent (any running + window manager is ignored completely). Window + decorations (title bars, borders, etc) are drawn by + Wine to look and feel like the real Windows. This is + compatible with programs that depend on being able + to compute the exact sizes of any such decorations, or + that want to draw their own. + Unmanaged mode is only used if both Managed and Desktop + are set to disabled. + + + + + Desktop-in-a-Box + + + Specified by using the Desktop + wine configuration file option (see below). + (adding a geometry, e.g. 800x600 + for a such-sized desktop, or + even 800x600+0+0 to + automatically position the desktop at the upper-left + corner of the display). This is the mode most + compatible with the Windows model. All program + windows will just be Wine-drawn windows inside the + Wine-provided desktop window (which will itself be + managed by your window manager), and Windows + programs can roam freely within this virtual + workspace and think they own it all, without + disturbing your other X apps. + Note: currently there's one desktop window for every + program; this will be fixed at some time. + + + + + + + + The [x11drv] section + + + + Managed + + + Wine can let frame windows be managed by your window + manager. This option specifies whether you want that + by default. + + + + + Desktop + + + Creates a main desktop window of a specified size + to display all Windows programs in. + The size argument could e.g. be "800x600". + + + + + DXGrab + + + If you don't use DGA, you may want an alternative + means to convince the mouse cursor to stay within the + game window. This option does that. Of course, as with + DGA, if Wine crashes, you're in trouble (although not + as badly as in the DGA case, since you can still use + the keyboard to get out of X). + + + + + UseDGA + + + This specifies whether you want DirectDraw to use + XFree86's Direct Graphics + Architecture (DGA), which is able to + take over the entire display and run the game + full-screen at maximum speed. (With DGA1 (XFree86 + 3.x), you still have to configure the X server to the + game's requested bpp first, but with DGA2 (XFree86 + 4.x), runtime depth-switching may be possible, + depending on your driver's capabilities.) But be aware + that if Wine crashes while in DGA mode, it may not be + possible to regain control over your computer without + rebooting. DGA normally requires either root + privileges or read/write access to + /dev/mem. + + + + + UseXShm + + + If you don't want DirectX to use DGA, you can at least + use X Shared Memory extensions (XShm). It is much + slower than DGA, since the app doesn't have direct + access to the physical frame buffer, but using shared + memory to draw the frame is at least faster than + sending the data through the standard X11 socket, even + though Wine's XShm support is still known to crash + sometimes. + + + + + DesktopDoubleBuffered + + + Applies only if you use the + --desktop command-line option + to run in a desktop window. Specifies whether to + create the desktop window with a double-buffered + visual, something most OpenGL games need to run + correctly. + + + + + AllocSystemColors + + + Applies only if you have a palette-based display, i.e. + if your X server is set to a depth of 8bpp, and if you + haven't requested a private color map. It specifies + the maximum number of shared colormap cells (palette + entries) Wine should occupy. The higher this value, + the less colors will be available to other + programs. + + + + + PrivateColorMap + + + Applies only if you have a palette-based display, i.e. + if your X server is set to a depth of 8bpp. It + specifies that you don't want to use the shared color + map, but a private color map, where all 256 colors are + available. The disadvantage is that Wine's private + color map is only seen while the mouse pointer is + inside a Wine window, so psychedelic flashing and + funky colors will become routine if you use the mouse + a lot. + + + + + Synchronous + + + To be used for debugging X11 operations. + If Wine crashes with an X11 error, then you should enable + Synchronous mode to disable X11 request caching in order + to make sure that the X11 error happens directly after + the corresponding X11 call in the log file appears. + Will slow down X11 output! + + + + + ScreenDepth + + + Applies only to multi-depth displays. It specifies + which of the available depths Wine should use (and + tell Windows apps about). + + + + + Display + + + This specifies which X11 display to use, and if + specified, will override the + DISPLAY environment variable. + + + + + PerfectGraphics + + + This option only determines whether fast X11 routines + or exact Wine routines will be used for certain ROP + codes in blit operations. Most users won't notice any + difference. + + + + + TextCP + + + Codepage to be used for rendering the text in X11 + output. Some sample values would be 437 (USA, Canada), + 850 (Europe), 852 (Central/Eastern Europe), 855 + (Cyrillic). For additional suitable values, see e.g. the Linux + kernel's codepage configuration page. + + + + + + + + +Configuring the ttydrv graphics driver + + Currently, the ttydrv doesn't have any special configuration + options to set in the configuration file. + + + + + + + +Setting the Windows and DOS version value + + +Written by &name-andreas-mohr; &email-andreas-mohr; +Oct 18 2002 + + + +The windows and DOS version value a program gets e.g. by calling the +Windows function GetVersion() plays a very important role: +If your Wine installation for whatever reason fails to provide +to your program the correct version value that it expects, +then the program might assume some very bad things and fail (in +the worst case even silently!). + +Fortunately Wine contains some more or less intelligent Windows +version guessing algorithm that will try to guess the Windows +version a program might expect and pass that one on to the +program. + +Thus you should not lightly configure a version value, as this will be a "forced" value and thus turn out to be rather harmful to proper operation. In other words: only explicitly set a Windows version value in case Wine's own version detection was unable to provide the correct Windows version and the program fails. + + + +How to configure the Windows and DOS version value Wine +should return + + +The version values can be configured in the wine configuration file in +the [Version] section. + + + + + "Windows" = "<version string>" + + + default: none; chosen by semi-intelligent detection + mechanism based on DLL environment. + Used to specify which Windows version to return to + programs (forced value, overrides standard detection + mechanism!). Valid settings are e.g. "win31", "win95", + "win98", "win2k", "winxp". + Also valid as an + AppDefaults + setting (recommended/preferred use). + + + + + "DOS"="<version string>" + + + Used to specify the DOS version that should be returned + to programs. Only takes effect in case Wine acts as + "win31" Windows version! Common DOS version settings + include 6.22, 6.20, 6.00, 5.00, 4.00, 3.30, 3.10. + Also valid as an + AppDefaults + setting (recommended/preferred use). + + + + + + + +&fonts; +&printing; + + +Win95/98 Look And Feel + +Written by &name-david-cuthbert; &email-david-cuthbert; + + +(Extracted from wine/documentation/win95look) + + +Win95/Win98 interface code is being introduced. + + +Instead of compiling Wine for Win3.1 vs. Win95 using +#define switches, the code now looks in a +special [Tweak.Layout] section of +~/.wine/config for a +"WineLook" = "Win95" or +"WineLook" = "Win98" entry. + + +A few new sections and a number of entries have been added to +the ~/.wine/config file -- these are for +debugging the Win95 tweaks only and may be removed in a future +release! These entries/sections are: + + [Tweak.Fonts] "System.Height" = "<point size>" # Sets the height of the system typeface "System.Bold" = "[true|false]" # Whether the system font should be boldfaced @@ -2050,84 +2981,84 @@ OPTIONAL: [Tweak.Layout] "WineLook" = "[Win31|Win95|Win98]" # Changes Wine's look and feel - - + + - - Keyboard + +Keyboard - - Written by &name-ove-kaaven; &email-ove-kaaven; - - - (Extracted from wine/documentation/keyboard) - + +Written by &name-ove-kaaven; &email-ove-kaaven; + + +(Extracted from wine/documentation/keyboard) + - - Wine now needs to know about your keyboard layout. This - requirement comes from a need from many apps to have the - correct scancodes available, since they read these directly, - instead of just taking the characters returned by the X - server. This means that Wine now needs to have a mapping from - X keys to the scancodes these applications expect. - - - On startup, Wine will try to recognize the active X layout by - seeing if it matches any of the defined tables. If it does, - everything is alright. If not, you need to define it. - - - To do this, open the file - dlls/x11drv/keyboard.c and take a look - at the existing tables. Make a backup copy of it, especially - if you don't use CVS. - - - What you really would need to do, is find out which scancode - each key needs to generate. Find it in the - main_key_scan table, which looks like - this: - - + +Wine now needs to know about your keyboard layout. This +requirement comes from a need from many apps to have the +correct scancodes available, since they read these directly, +instead of just taking the characters returned by the X +server. This means that Wine now needs to have a mapping from +X keys to the scancodes these programs expect. + + +On startup, Wine will try to recognize the active X layout by +seeing if it matches any of the defined tables. If it does, +everything is alright. If not, you need to define it. + + +To do this, open the file +dlls/x11drv/keyboard.c and take a look +at the existing tables. Make a backup copy of it, especially +if you don't use CVS. + + +What you really would need to do, is find out which scancode +each key needs to generate. Find it in the +main_key_scan table, which looks like +this: + + static const int main_key_scan[MAIN_LEN] = { /* this is my (102-key) keyboard layout, sorry if it doesn't quite match yours */ - 0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B, - 0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x2B, - 0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35, - 0x56 /* the 102nd key (actually to the right of l-shift) */ +0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B, +0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x2B, +0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35, +0x56 /* the 102nd key (actually to the right of l-shift) */ }; - - - Next, assign each scancode the characters imprinted on the - keycaps. This was done (sort of) for the US 101-key keyboard, - which you can find near the top in - keyboard.c. It also shows that if there - is no 102nd key, you can skip that. - - - However, for most international 102-key keyboards, we have - done it easy for you. The scancode layout for these already - pretty much matches the physical layout in the - main_key_scan, so all you need to do is - to go through all the keys that generate characters on your - main keyboard (except spacebar), and stuff those into an - appropriate table. The only exception is that the 102nd key, - which is usually to the left of the first key of the last line - (usually Z), must be placed on a separate - line after the last line. - - - For example, my Norwegian keyboard looks like this - - + + +Next, assign each scancode the characters imprinted on the +keycaps. This was done (sort of) for the US 101-key keyboard, +which you can find near the top in +keyboard.c. It also shows that if there +is no 102nd key, you can skip that. + + +However, for most international 102-key keyboards, we have +done it easy for you. The scancode layout for these already +pretty much matches the physical layout in the +main_key_scan, so all you need to do is +to go through all the keys that generate characters on your +main keyboard (except spacebar), and stuff those into an +appropriate table. The only exception is that the 102nd key, +which is usually to the left of the first key of the last line +(usually Z), must be placed on a separate +line after the last line. + + +For example, my Norwegian keyboard looks like this + + § ! " # € % & / ( ) = ? ` Back- | 1 2@ 3£ 4$ 5 6 7{ 8[ 9] 0} + \Ž space Tab Q W E R T Y U I O P Å ^ - š~ - Enter + š~ + Enter Caps A S D F G H J K L Ø Æ * Lock ' @@ -2135,51 +3066,51 @@ Sh- > Z X C V B N M ; : _ Shift ift < , . - Ctrl Alt Spacebar AltGr Ctrl - - - Note the 102nd key, which is the <> key, to - the left of Z. The character to the right of - the main character is the character generated by - AltGr. - - - This keyboard is defined as follows: - - + + +Note the 102nd key, which is the <> key, to +the left of Z. The character to the right of +the main character is the character generated by +AltGr. + + +This keyboard is defined as follows: + + static const char main_key_NO[MAIN_LEN][4] = { - "|§","1!","2\"@","3#£","4€$","5%","6&","7/{","8([","9)]","0=}","+?","\\Ž", - "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","åÅ","š^~", - "aA","sS","dD","fF","gG","hH","jJ","kK","lL","øØ","æÆ","'*", - "zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_", - "<>" +"|§","1!","2\"@","3#£","4€$","5%","6&","7/{","8([","9)]","0=}","+?","\\Ž", +"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","åÅ","š^~", +"aA","sS","dD","fF","gG","hH","jJ","kK","lL","øØ","æÆ","'*", +"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_", +"<>" }; - - - Except that " and \ needs to be quoted with a backslash, and - that the 102nd key is on a separate line, it's pretty - straightforward. - - - After you have written such a table, you need to add it to the - main_key_tab[] layout index table. This - will look like this: - - + + +Except that " and \ needs to be quoted with a backslash, and +that the 102nd key is on a separate line, it's pretty +straightforward. + + +After you have written such a table, you need to add it to the +main_key_tab[] layout index table. This +will look like this: + + static struct { - WORD lang, ansi_codepage, oem_codepage; - const char (*key)[MAIN_LEN][4]; +WORD lang, ansi_codepage, oem_codepage; +const char (*key)[MAIN_LEN][4]; } main_key_tab[]={ ... ... - {MAKELANGID(LANG_NORWEGIAN,SUBLANG_DEFAULT), 1252, 865, &main_key_NO}, +{MAKELANGID(LANG_NORWEGIAN,SUBLANG_DEFAULT), 1252, 865, &main_key_NO}, ... - - - After you have added your table, recompile Wine and test that - it works. If it fails to detect your table, try running - - + + +After you have added your table, recompile Wine and test that +it works. If it fails to detect your table, try running + + wine --debugmsg +key,+keyboard >& key.log @@ -2223,8 +3154,8 @@ diff -u the_backup_file_you_made dlls/x11drv/keyboard.c > layout.diff If you did it right, it will be included in the next Wine - release, and all the troublesome applications (especially - remote-control applications) and games that use scancodes will + release, and all the troublesome programs (especially + remote-control programs) and games that use scancodes will be happily using your keyboard layout, and you won't get those annoying fixme messages either. @@ -2233,19 +3164,213 @@ diff -u the_backup_file_you_made dlls/x11drv/keyboard.c > layout.diff - + + SCSI Support + + Written by &name-bruce-milner; &email-bruce-milner;; + Additions by &name-andreas-mohr; &email-andreas-mohr; + + + (Extracted from wine/documentation/aspi) + + + + This file describes setting up the Windows ASPI interface. + + + + Warning/Warning/Warning!!!!!! + This may trash your system if used incorrectly. It may + even trash your system when used correctly! + + + + + + Now that I have said that. ASPI is a direct link to SCSI devices from + windows programs. ASPI just forwards the SCSI commands that programs send + to it to the SCSI bus. + + + If you use the wrong SCSI device in your setup file, you can send + completely bogus commands to the wrong device - An example would be + formatting your hard drives (assuming the device gave you permission - + if you're running as root, all bets are off). + + + So please make sure that all SCSI devices not needed by the program + have their permissions set as restricted as possible! + + + + Cookbook for setting up scanner: (At least how mine is to work) + (well, for other devices such as CD burners, MO drives, ..., too) + + + + Windows requirements + + + + The scanner software needs to use the "Adaptec" + compatible drivers (ASPI). At least with Mustek, they + allow you the choice of using the built-in card or the + "Adaptec (AHA)" compatible drivers. This will not work + any other way. Software that accesses the scanner via a + DOS ASPI driver (e.g. ASPI2DOS) is supported, too. [AM] + + + + + You probably need a real windows install of the software + to set the LUN's/SCSI id's up correctly. I'm not exactly + sure. + + + + + + + Linux requirements + + + + Your SCSI card must be supported under Linux. This will + not work with an unknown SCSI card. Even for cheap'n + crappy "scanner only" controllers some special Linux + drivers exist on the net. + If you intend to use your IDE device, you need to use the + ide-scsi emulation. + Read + + http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html + for ide-scsi setup instructions. + + + + + Compile generic SCSI drivers into your kernel. + + + + + This seems to be not required any more for newer (2.2.x) kernels: + Linux by default uses smaller SCSI buffers than Windows. + There is a kernel build define SG_BIG_BUFF (in + sg.h) that is by default set too + low. The SANE project recommends + 130560 and this seems to work just + fine. This does require a kernel rebuild. + + + + + Make the devices for the scanner (generic SCSI devices) + - look at the SCSI programming HOWTO at + + http://www.linuxdoc.org/HOWTO/SCSI-Programming-HOWTO.html + for device numbering. + + + + + I would recommend making the scanner device writable by + a group. I made a group called + scanner and added myself to it. + Running as root increases your risk of sending bad SCSI + commands to the wrong device. With a regular user, you + are better protected. + + + + + For Win32 software (WNASPI32), Wine has auto-detection in place. + For Win16 software (WINASPI), you need to add a SCSI device entry + for your particular scanner to ~/.wine/config. The format is + [scsi cCtTdD] where + "C" = "controller", + "T" = "target", D=LUN + + + For example, I set mine up as controller 0, + Target 6, LUN 0. + +[scsi c0t6d0] +"Device" = "/dev/sgi" + + Yours will vary with your particular SCSI setup. + + + + + + + General Information + + The mustek scanner I have was shipped with a package + "ipplus". This program uses the TWAIN driver specification + to access scanners. + + + (TWAIN MANAGER) + + + +ipplus.exe <-> (TWAIN INTERFACE) <-> (TWAIN DATA SOURCE.ASPI) -> WINASPI + + + + + + NOTES/BUGS + + The biggest drwback is that it only works under Linux at the moment. + + + The ASPI code has only been tested with: + + + + + a Mustek 800SP with a Buslogic controller under Linux [BM] + + + + + a Siemens Nixdorf 9036 with Adaptec AVA-1505 under Linux + accessed via DOSASPI. Note that I had color problems, + though (barely readable result) [AM] + + + + + a Fujitsu M2513A MO drive (640MB) using generic SCSI + drivers. Formatting and ejecting worked perfectly. + Thanks to Uwe Bonnes for access to the hardware! [AM] + + + + + I make no warranty to the ASPI code. It makes my scanner + work. Your devices may explode. I have no way of determining + this. I take zero responsibility! + + + + + Using ODBC This section describes how ODBC works within Wine and how to configure it to do what you want (if it can do what you want). - The ODBC system within wine, as with the printing system, is designed - to hook across to the Unix system at a high level. Rather than + The ODBC system within Wine, as with the printing system, is designed + to hook across to the Unix system at a high level. Rather than ensuring that all the windows code works under wine it uses a suitable - Unix ODBC provider, such as UnixODBC. Thus if you configure Wine to - use the builtin odbc32.dll that wine dll will interface to your - Unix ODBC package and let that do the work, whereas if you configure + Unix ODBC provider, such as UnixODBC. Thus if you configure Wine to + use the built-in odbc32.dll, that Wine DLL will interface to your + Unix ODBC package and let that do the work, whereas if you configure Wine to use the native odbc32.dll it will try to use the native ODBC32 drivers etc. @@ -2253,52 +3378,52 @@ diff -u the_backup_file_you_made dlls/x11drv/keyboard.c > layout.diff Using a Unix ODBC system with Wine The first step in using a Unix ODBC system with Wine is, of course, - to get the Unix ODBC system working itself. This may involve - downloading code or rpms etc. There are several Unix ODBC systems + to get the Unix ODBC system working itself. This may involve + downloading code or RPMs etc. There are several Unix ODBC systems available; the one the author is used to is unixODBC (with the - IBM DB2 driver). Typically such systems will include a tool, such - as isql, which will allow you to access the data from the command + IBM DB2 driver). Typically such systems will include a tool, such + as isql, which will allow you to access the data from the command line so that you can check that the system is working. - The next step is to hook the Unix ODBC library to the wine builtin - odbc32 dll. The builtin odbc32 (currently) looks to the - environmental variable LIB_ODBC_DRIVER_MANAGER - for the name of the odbc library. For example in the author's + The next step is to hook the Unix ODBC library to the wine built-in + odbc32 DLL. The built-in odbc32 (currently) looks to the + environment variable LIB_ODBC_DRIVER_MANAGER + for the name of the ODBC library. For example in the author's .bashrc file is the line: export LIB_ODBC_DRIVER_MANAGER=/usr/lib/libodbc.so.1.0.0 - If that environmental variable is not set then it looks for a + If that environment variable is not set then it looks for a library called libodbc.so and so you can add a symbolic link to equate that to your own library. For example as root you could run the commands: - -ln -s libodbc.so.1.0.0 /usr/lib/libodbc.so -/sbin/ldconfig - + +# ln -s libodbc.so.1.0.0 /usr/lib/libodbc.so +# /sbin/ldconfig + The last step in configuring this is to ensure that Wine is set up - to run the builtin version of odbc32.dll, by modifying the DLL - configuration. This builtin dll merely acts as a stub between the + to run the built-in version of odbc32.dll, by modifying the DLL + configuration. This built-in DLL merely acts as a stub between the calling code and the Unix ODBC library. If you have any problems then you can use the debugmsg channel odbc32 to trace what is happening. One word of warning. Some - programs actually cheat a little and bypass the odbc library. For + programs actually cheat a little and bypass the ODBC library. For example the Crystal Reports engine goes to the registry to check on - the DSN. The fix for this is documented at unixODBC's site where + the DSN. The fix for this is documented at unixODBC's site where there is a section on using unixODBC with Wine. Using Windows ODBC drivers - Does anyone actually have any experience of this and anything to + Does anyone actually have any experience of this and anything to add? diff --git a/documentation/cvs-regression.sgml b/documentation/cvs-regression.sgml index 7cf64fe425f..e5cd68bf9d6 100644 --- a/documentation/cvs-regression.sgml +++ b/documentation/cvs-regression.sgml @@ -58,7 +58,7 @@ cvs -d $CVSROOT checkout wine Note also that it is possible to do all this with a direct CVS connection, of course. The full CVS file method is less - painful for the winehq CVS server and probably a bit faster + painful for the Winehq CVS server and probably a bit faster if you don't have a very good net connection. diff --git a/documentation/cvs.sgml b/documentation/cvs.sgml new file mode 100644 index 00000000000..50fac40bc14 --- /dev/null +++ b/documentation/cvs.sgml @@ -0,0 +1,331 @@ + + Using CVS + + + + What is CVS? + + + CVS (Concurrent + Versions System) is the leading source code control system in + the freeware community. It manages source code of projects, + keeps a history of changes to the source files and improves + conflict management when two or more developers work on the same + code part. Another major benefit of CVS is that it's very easy + to update a project to the latest version. CVS features + flexible branching, intelligent merging, high quality documentation + and client/server access with a wide choice of clients. + + + + Current Wine sources are available via anonymous client/server + CVS. You will need CVS 1.9 or above. If you are coming from + behind a firewall, you will either need a hole in the firewall + for the CVS port (2401) or use SOCKS. + + + + + CVS installation check + + First you need to make sure that you have cvs + installed. + To check whether this is the case, please run: + + + $ cvs + + + If this was successful, then you should have gotten a nice CVS + "Usage" help output. Otherwise (e.g. an error "cvs: command not + found") you still need to install a CVS package for your + particular operating system, similar to the instructions given + in the Wine User Guide chapters for getting and installing a + Wine package on various systems. + + + + + Configuring Wine-specific CVS settings + + + First, you should do a + + + $ touch ~/.cvspass + + + to create or update the file .cvspass in + your home directory, since CVS needs this file (for password + and login management) and will complain loudly if it doesn't exist. + + + + Second, we need to create the file + .cvsrc in your home directory + containing the CVS configuration settings needed for a valid + Wine CVS setup (use CVS compression, properly update file and + directory information, ...). + The content of this file should look like the following: + +cvs -z 3 +update -PAd +diff -u +checkout -P + + Create the file with an editor of your choice, either by running + + $ <editor> ~/.cvsrc + + , where <editor> is the editor you want to use (e.g. + joe, ae, + vi), + or by creating the file .cvsrc in your + home directory with your favourite graphical editor like nedit, kedit, + gedit or others. + + + -z sets the compression level (Levels higher + than 3 will probably not result in faster downloading unless you + have a fast machine and a slow network connection). + -Pd will delete empty directories and create + newly added ones. -A will reset any previous + tag in order to get the latest version in the tree. + -u will create the easiest to read + patches. Please do not submit patches with diff -w. + + + + + + Downloading the Wine CVS tree + + + Once CVS is installed and the Wine specific CVS + configuration is done, you can now do a login on our CVS + server and checkout (download) the Wine source code. + First, let's do the server login: + + + $ cvs -d :pserver:cvs@cvs.winehq.com:/home/wine login + + + If cvs successfully connects to the CVS server, + then you will get a "CVS password:" prompt. + Simply enter "cvs" as the password (the password is + case sensitive: no capital letters!). + If you want to use one of the mirror servers for Wine CVS + download, please refer to the section Wine CVS mirror servers. + + + + After login, we are able to download the Wine source code tree. + Please make sure that you are in the directory that you want + to have the Wine source code in (the Wine source code will + use the subdirectory wine/ in this + directory, since the subdirectory is named after the CVS module + that we want to check out). We assume that your current directory + might be your user's home directory. + To download the Wine tree into the subdirectory wine/, run: + + + $ cvs -d :pserver:cvs@cvs.winehq.com:/home/wine checkout wine + + + Downloading the CVS tree might take a while (some minutes + to few hours), depending on your connection speed. + Once the download is finished, you should keep a note of + which directory the newly downloaded + wine/ directory is in, by running + pwd (Print Working Directory): + + + $ pwd + + + Later, you will be able to change to this directory by + running: + + + $ cd <some_dir> + + + , where <some_dir> is the directory that + pwd gave you. + By running + + + $ cd wine + + + , you can now change to the directory of the Wine CVS tree + you just downloaded. + + + + + Wine CVS mirror servers + + + Wine's CVS tree is mirrored at several places arround the world + to make sure that the source is easily accessible. Note that not + all servers have all repositories available, but all have at + least the Wine source. + + + CVS access is granted through CVS' "pserver" + authentication. You should set + your CVSROOT environment variable to point to one of + the servers using this format: + + +CVSROOT=:pserver:<Username>@<CVS Server>:<Server root> + + + Alternatively, you can use the -d parameter of + cvs instead. + Substitude the applicable fields from the table below. + + + Just do a traceroute and a ping on all servers below to find out + which are + closest to you. + + + Wine CVS servers + + + + CVS Server + Username + Password + + + + + cvs.winehq.com; Minnesota, USA (CodeWeavers) + cvs + cvs + + + +
+
+
+ + + Other modules available via CVS from WineHQ + + + The WineHQ CVS server makes a couple of other things available as well. + To get these, log in anonymously as above and do: + + + $ cvs co <modulename> + + + where <modulename> is one of: + + + + + Winehq_com -- source for the WineHQ web site + + + + + c2man -- automatic documentation system, specially modified for Wine + + + + + + + Converting a Wine FTP download to a CVS tree + + + Getting the entire Wine source tree via + CVS is pretty slow, especially compared to getting Wine from an + FTP mirror near you. It's possible to convert a Wine tarball to a CVS + sandbox, just like you would get by checking out the entire source + via CVS. Here's how to do it: + + + + + Get the latest Wine snapshot: Wine-YYMMDD.tar.gz + + + + + Get wine-cvsdirs-YYMMDD.tar.gz from ftp://ftp.winehq.com/pub/wine + + + Use an FTP client rather than a web browser, and be sure to turn off passive mode, otherwise the fetch will hang. + + + e.g.: + + +ftp ftp.winehq.com +cd pub/wine +passive off +ls + + + + + Untar them on top of each other: + + +tar xzf Wine-YYYYMMDD.tar.gz +mv wine-YYYYMMDD wine +tar xzf wine-cvsdirs-YYYYMMDD.tar.gz + + + + + Update from main tree: login as above, then do + + +cd wine +cvs update -PAd + + + + + You will now be completely up to date. + + + + + WineHQ cvsweb access + + +Direct access to the complete CVS tree is also possible, using Bill Fenner's +cvsweb package: + + + + cvs.winehq.com/cvsweb, on the primary CVS repository + + + + + + +
+ + diff --git a/documentation/debugger.sgml b/documentation/debugger.sgml index 3568faecea6..b60d54e1a5e 100644 --- a/documentation/debugger.sgml +++ b/documentation/debugger.sgml @@ -900,7 +900,8 @@ wine -debug myprog.exe These are the "normal" Win16 addresses, called SEGPTR. They have a segment:offset notation, e.g. 0x01d7:0x0012. - The segment part usually is a "selector", which *always* + The segment part usually is a "selector", which + always has the lowest 3 bits set. Some sample selectors are 0x1f7, 0x16f, 0x8f. If these bits are set except for the lowest bit, as e.g. with 0x1f6,xi then it might be a @@ -1587,7 +1588,7 @@ monitor mem displays memory mapping of debugged process Even if latest gdb implements the notion of threads, it won't work with Wine because the thread abstraction used for implementing Windows' thread - is not 100% mapped onto the linux posix threads + is not 100% mapped onto the Linux POSIX threads implementation. It means that you'll have to spawn a different gdb session for each Windows' thread you wish to debug. diff --git a/documentation/dlls.sgml b/documentation/dlls.sgml index a1a763368d9..0764ec20926 100644 --- a/documentation/dlls.sgml +++ b/documentation/dlls.sgml @@ -1,6 +1,6 @@ Wine Builtin DLLs Overview - A more detailed look at Wine's builtin DLLs... + A more detailed look at Wine's built-in DLLs... Common Controls @@ -22,7 +22,7 @@ 1. Introduction - The information provided herein is based on the dll version + The information provided herein is based on the DLL version 4.72 which is included in MS Internet Explorer 4.01. @@ -681,7 +681,7 @@ Development in progress. Basic functionality is - almost done. (dll version 4.0) + almost done. (DLL version 4.0) diff --git a/documentation/documentation.sgml b/documentation/documentation.sgml index d81ae9b43b4..ad7c782b890 100644 --- a/documentation/documentation.sgml +++ b/documentation/documentation.sgml @@ -622,10 +622,10 @@ BOOL WINAPI PathRelativePathToA( Writing Documentation with DocBook - DocBook is a flavor of SGML + DocBook is a flavour of SGML (Standard Generalized Markup Language), a syntax for marking up the contents - of documents. HTML is another very common flavor of SGML; + of documents. HTML is another very common flavour of SGML; DocBook markup looks very similar to HTML markup, although the names of the markup tags differ. @@ -636,16 +636,16 @@ BOOL WINAPI PathRelativePathToA( The simple answer to that is that SGML allows you to create multiple formats of a given document from a single - source. Currently it is used to create html, pdf and PS (PostScript) - versions of the Wine books. + source. Currently it is used to create HTML, PDF and PS + (PostScript) versions of the Wine books.
What do I need? - You need the sgml tools. There are various places where you - can get them. The most generic way of geting them is from their + You need the SGML tools. There are various places where you + can get them. The most generic way of getting them is from their source as discussed below. @@ -653,7 +653,7 @@ BOOL WINAPI PathRelativePathToA( Quick instructions - These are the basic steps to create the Wine books from the sgml source. + These are the basic steps to create the Wine books from the SGML source. @@ -693,7 +693,7 @@ BOOL WINAPI PathRelativePathToA( - + Getting SGML for various distributions @@ -706,11 +706,11 @@ BOOL WINAPI PathRelativePathToA( - SGML on Redhat + SGML on Red Hat - The following packages seems to be sufficient for RedHat 7.1. You + The following packages seem to be sufficient for Red Hat 7.1. You will want to be careful about the order in which you install the - rpms. + RPMs. sgml-common-*.rpm openjade-*.rpm @@ -728,12 +728,23 @@ BOOL WINAPI PathRelativePathToA( SGML on Debian - - Fix me - List package names and install locations... + This is not a definitive listing yet, but it seems + you might need the following packages: + + docbook + docbook-dsssl + docbook-utils + docbook-xml + docbook-xsl + sgml-base + sgml-data + tetex-base + tetex-bin + jade + jadetex + - @@ -856,7 +867,7 @@ BOOL WINAPI PathRelativePathToA( The final term you'll need to know when writing simple DocBook documents is the DTD (Document Type Declaration). The - DTD defines the flavor of SGML a given document is written + DTD defines the flavour of SGML a given document is written in. It lists all the legal tag names, like book, para, and so on, and declares @@ -1700,7 +1711,7 @@ BOOL WINAPI PathRelativePathToA( Basic Infrastructure - How the build/make system works (makefiles, db2html, + FIXME: How the build/make system works (makefiles, db2html, db2html-winehq, jade, stylesheets). @@ -1708,7 +1719,7 @@ BOOL WINAPI PathRelativePathToA( Tweaking the DSSSL stylesheets - Things you can tweak, and how to do it (examples from + FIXME: Things you can tweak, and how to do it (examples from default.dsl and winehq.dsl). @@ -1716,7 +1727,7 @@ BOOL WINAPI PathRelativePathToA( Generating docs for Wine web sites - Explain make_winehq, rsync, etc. + FIXME: Explain make_winehq, rsync, etc. diff --git a/documentation/faq.sgml b/documentation/faq.sgml index 2fb69749de4..4c1079715bd 100644 --- a/documentation/faq.sgml +++ b/documentation/faq.sgml @@ -1124,7 +1124,7 @@ wine Make sure you have all the VB runtime libraries installed. You may - need to use the native dll vbrun60.dll + need to use the native DLL vbrun60.dll diff --git a/documentation/fonts.sgml b/documentation/fonts.sgml index 17cab9de592..9d4bb3e5d18 100644 --- a/documentation/fonts.sgml +++ b/documentation/fonts.sgml @@ -1,7 +1,7 @@ - + Dealing with Fonts - + Fonts @@ -64,7 +64,7 @@ of the new fonts. You may also or instead have to restart the font server (using e.g. /etc/init.d/xfs restart - under RedHat 7.1) + under Red Hat 7.1) diff --git a/documentation/getting.sgml b/documentation/getting.sgml index bb4097b8c12..45c68d5548a 100644 --- a/documentation/getting.sgml +++ b/documentation/getting.sgml @@ -1,156 +1,700 @@ Getting Wine + + If you decided that you can use and want to use Wine (e.g. after + having read the introductory + chapter), then as a first step you need to find a good + compatible Wine version that you like and that works on your + system, and after you found one, the next step is to transfer its + files to your system somehow. + This chapter is here to tell you what you need to take care of + in order to successfully accomplish these two steps. + - - The Many Forms of Wine + + How to download Wine? - The standard Wine distribution includes quite a few different - executables, libraries, and configuration files. All of these - must be set up properly for Wine to work well. This chapter - will guide you through the necessary steps to get Wine - installed on your system. - - - If you are running a distribution of Linux that uses packages - to keep track of installed software, you should be in luck: A - prepackaged version of Wine should already exist for your system. - The following sections will tell you how to find the latest - Wine packages and get them installed. You should be careful, - though, about mixing packages between different distributions, - and even from different versions of the same distribution. - Often a package will only work on the distribution it's - compiled for. We'll cover - Debian, - Red Hat, and - other distributions. - - - If you're not lucky enough to have a package available for - your operating system, or if you'd prefer a newer version of - Wine than already exists as a package, you will have to - download the Wine source code and compile it yourself on your - own machine. Don't worry, it's not too hard to do this, - especially with the many helpful tools that come with Wine. - You don't need any programming experience to compile and - install Wine, although it might be nice to have some minor - UNIX administrative skills. Working from the source is - covered in the Wine Developer's Guide. + There are three different methods of how the files + belonging to Wine may be brought (downloaded) to your system: + + + Getting a single Wine package file + (specifically adapted to your particular system), which + contains various binary files of Wine + + + Getting a single compressed archive file (usually .tar.gz), which contains + all source code files of a standard Wine + release version + + + Downloading from a CVS server, + which contains the very latest development source code files + of Wine + + + + + Which Wine form should I pick? + + + Now that we told you about the different Wine distribution + methods available, let's discuss the advantages and + disadvantages of the various methods. + + + + Wine distribution methods + + Wine package file + + + + Intended user level: Beginner to Advanced + + + + Using Wine package files is easy for three + reasons: + They install everything else that's needed for their + operation, they usually preconfigure a lot, and you + don't need to worry about compiling anything or so. + However, the Wine Team doesn't have "official" packages. + All Wine packages are being offered by external groups, + with often slightly inaccurate or quite inaccurate Wine + environment setup. + Also, a package you downloaded might turn out to be + partially incompatible with your particular system + configuration. + Thus it might actually be better + to compile Wine from source and completely install it + on your own, by following the instructions in this + Guide. + + + + + Wine source code via archive file + + + + + Intended user level: Advanced to Expert + + + + A Wine source code archive file can be used + if you want to compile your own standard Wine release. + By using differential patch files to newer Wine versions, + you can easily upgrade your outdated Wine directory. + However, as you need to manually download patch files + and you're only able to download the most current + standard Wine release, this is not necessarily the + best method to use. + The only advantage a Wine source archive has is that it + is a standard Wine release with less development + "quirks" than current CVS code. Except for that, CVS + source code is much preferred and almost as easy. + + + + + Wine source code via CVS checkout + + + Intended user level: Advanced to Expert/Developer + + + + The Wine CVS checkout offers the best way to take + part in bleeding edge Wine capabilities and + development, since you'll be able to download every + single CVS commit even beyond the + last official Wine release. + As upgrading a Wine CVS checkout tree to the latest + version is very easy, this is a recommended method + of installing Wine. + Plus, by carefully following the instructions in this + Guide, you'll be able to gain the very best Wine + environment compatibility (instead of falling victim + to package maintainers who fail to follow some + instructions in the Wine Packagers Guide). + + + + + + + To summarize, the "best" way to install Wine is to download + Wine source code via CVS to get the newest code (which might + be unstable!). Then you could easily compile and install the + Wine files manually. The final configuration part (writing the + configuration file and setting up the drive environment) could then + be handled by WineSetupTk. All in all the best way to go, + except for the about 500MB of disk space that you'll need. + + + + With source code archive files, you have the advantage that you're + running standard release versions, plus you can update to + newer versions via patch files that we release. + You won't have the newest code and the flexibility offered by CVS, + though. + + + + About binary package files: not sure. There's about a zillion + reasons to not like them as much as you'd think: they may be + outdated, they may not include "everything", they are + not optimized for your particular + environment (as opposed to a source compile, which would guess + and set everything based on your system), they frequently fail + to provide a completely configured Wine environment. + On the plus side: they're pretty easy to install and they + don't take as much space as a full-blown source code compile. + But that's about it when it comes to their advantages. + So I'd say they are OK if you want to have a + quick way to have a test run of Wine, but + for prolonged Wine use, configuring the environment on your + own is probably better. + Eventually this will change (we'll probably do some packaging + efforts on our own at some time), but at the current explosive + rate of Wine development, staying as close as possible to the + actual Wine development that's going on is the way to go. + + + + If you are running a distribution of Linux or some other + system that uses packages to keep track of installed software, + you should be in luck: A prepackaged version of Wine + should already exist for your system. + The following sections will tell you how to find the latest + Wine packages and get them installed. You should be careful, + though, about mixing system packages between different distributions, + and even from different versions of the same distribution. + Often a package will only work on the distribution which it + has been compiled for. We'll cover + Debian Linux, + Red Hat Linux, + FreeBSD, and + other distributions. + + + If you're not lucky enough to have a package available for + your operating system, or if you'd prefer a newer version of + Wine than already exists as a package, you will need to + download the Wine source code and compile it yourself on your + own machine. Don't worry, it's not too hard to do this, + especially with the many helpful tools that come with Wine. + You don't need any programming experience to compile and + install Wine, although it might be nice to have some minor + UNIX administrative skills. Working from the source is + covered in the Wine Developer's Guide. + The main problem with externally maintained package files is + that they lack a standard configuration method, and in fact + they often fail to configure Wine's Windows environment + properly (which is outlined in the Wine Packagers Guide). + + + - - Getting Wine for a Debian System + + Getting a Wine package + + Debian Linux - - In most cases on a Debian system, you can install Wine with a - single command, as root: - - -# apt-get install wine - - - apt-get will connect to a Debian archive - across the Internet (thus, you must be online), then download - the Wine package and install it on your system. End of story. - + + In most cases on a Debian system (or any other distribution that + uses packages that use the file name ending .deb, for that + matter), you can download and install Wine with a + single command, as root: + + + # apt-get install wine + + + apt-get will connect to a Debian archive + across the Internet (thus, you must be online), then download + the Wine package and install it on your system. End of story. + You might first need to properly update your package setup, + though, by using an editor as + root to add an entry to + /etc/apt/sources.list to point to an active + package server and then running apt-get + update. + + + Once you're done with that step, you may skip the Wine + installation chapter, since apt-get has not only downloaded, + but also installed the Wine files already. + Thus you can now go directly to the Configuration section. + - - Of course, Debian's pre-packaged version of Wine may not be the - most recent release. If you are running the stable version of - Debian, you may be able to get a slightly newer version of Wine - by grabbing the package from the unstable distribution, although - this may be a little risky, depending on how far the unstable - distribution has diverged from the stable one. You can find a - list of Wine binary packages for the various Debian releases - using the package search engine at - www.debian.org. - + + However, if you don't want to or cannot use the automatic + download method for .deb packages that + apt-get provides, then please read on. + + + Of course, Debian's pre-packaged version of Wine may not be + the most recent release. If you are running the stable + version of Debian, you may be able to get a slightly newer + version of Wine by grabbing the package from the so-called + "unstable" Debian distribution, although this may be a little + risky, depending on how far the unstable distribution has + diverged from the stable one. You can find a list of Wine + binary packages for the various Debian releases using the + package search engine at www.debian.org. + - - To install a package that's not part of your distribution, you - must use dpkg instead of - apt-get. Since dpkg - doesn't download the file for you, you must do it yourself. - Follow the link on the package search engine to the desired - package, then click on the Go To Download - Page button and follow the instructions. Save the - file to your hard drive, then run dpkg on it. - For example, if you saved the file to your home directory, you - might perform the following actions to install it: - + + If you downloaded a separate .deb package file (e.g. a newer + Wine release as stated above) that's not part of your + distribution and thus cannot be installed via + apt-get, you must use dpkg instead. + For instructions on how to do this, please proceed to the + Installation section. + + + + + Red Hat Linux + + + Red Hat users can use + rpmfind.net to track down available Wine RPM binaries. + This + page contains a list of all rpmfind packages that start with + the letter "W", including a few Wine packages. + + + + + FreeBSD + + + In order to use Wine you need to build and install a new kernel + with options USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG. + + + + If you want to install Wine using the FreeBSD port system, run + in a terminal: + + + $ su - + # cd /usr/port/emulators/ + # make + # make install + # make clean + + + This process will get wine source from the Internet, + then download the Wine package and install it on your system. + + + + If you want to install Wine from the FreeBSD CD-ROM, run in a + terminal: + $ su - -Password: -# cd /home/user -# dpkg -i wine_0.0.20021031-1.deb +# mount /cdrom +# cd /cdrom/packages/All +# pkg_add wine_.X.X.X.tgz - - You may also want to install the - wine-doc package, and if you are - using Wine from the 2.3 distribution (Woody), the - wine-utils package as well. - - + + + + These FreeBSD install instructions completely install the + Wine files on your system; you may then proceed to the Configuration section. + + - - Getting Wine for a Red Hat System + + Other systems - - Red Hat/RPM users can use - rpmfind.net to track down available Wine RPM binaries. - This - page contains a list of all rpmfind packages that start with - the letter "W", including a few Wine packages. - + + The first place you should look if your system isn't + specifically mentioned above is the WineHQ Download + Page. This page lists many assorted archives of + binary (precompiled) Wine files. + - - Of course now that you have the RPM package, you may be wondering - "What in the world do I do with this thing?". - + + You could also try to use + + Google to track down miscellaneous distribution packages. + - - The easiest way to install an RPM is to make sure that you have not - previously installed wine (perhaps, when you installed linux) - and then switch to the directory you downloaded the rpm file to. - Once there, type this one command as root: - - -# rpm -ivh wine-20020605-2.i386.rpm - - - You may also want to install the - wine-devel package. - - - - - Getting Wine for Other Distributions - - - The first place you should look if your system isn't Debian or - Red Hat is the WineHQ Download - Page. This page lists many assorted archives of - binary (precompiled) Wine files. - - - - - Lycos FTPSearch is another useful resource for - tracking down miscellaneous distribution packages. - - - - NOTE: If you are running a Mandrake system, please see the page - on how to get wine for a - Redhat system, - as Mandrake is based on Redhat. - + + + If you are running a Mandrake system, please see the page + on how to get Wine for a + Red Hat system, + as Mandrake is based on Red Hat. + + + + + Getting Wine source code + + + If you are going to compile Wine (instead of installing binary + Wine files), either to use the most recent code possible or to + improve it, then the first thing to do is to obtain a copy of + the source code. We'll cover how to retrieve and compile the + official source releases from the FTP archives, and also how + to get the cutting edge up-to-the-minute fresh Wine source code + from CVS (Concurrent Versions + System). + + + + Once you have downloaded Wine source code according to the + instructions below, there are two ways to proceed: If you want + to manually install and configure Wine, then go to the Compiling section. If instead you + want automatic installation, then go straight to the Configuration section to make + use of wineinstall to automatically install + and configure Wine. + + + + You may also need to know how to apply a source code patch to + your version of Wine. Perhaps you've uncovered + a bug in Wine, reported it to the + Wine Bugzilla + or the + Wine mailing list, + and received a patch from a developer to hopefully fix the + bug. We will show you how to + safely apply the + patch and revert it if it doesn't work. + + + + Getting Wine Source Code from an FTP Archive + + + The safest way to grab the source is from one of the official + FTP archives. An up to date listing is in the ANNOUNCE + file in the Wine distribution (which you would have if you + already downloaded it). Here is a list + of FTP servers carrying Wine: + + + + + + ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/development/ + + + + + + + ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/ + + + + + + + ftp://ftp.fu-berlin.de/unix/linux/mirrors/sunsite.unc.edu/ALPHA/wine/development/ + + + + + + + ftp://orcus.progsoc.uts.edu.au/pub/Wine/development/ + + + + + + The official releases are tagged by date with the format + "Wine-YYYYMMDD.tar.gz". Your best bet is to grab + the latest one. + + + I'd recommend placing the Wine archive file that you chose + into the directory where you intend to extract Wine. In this + case, let's just assume that it is your home directory. + + + Once you have downloaded a Wine archive file, we need to + extract the archive file. This is not very hard to do. First + switch to the directory containing the file you just + downloaded. Then extract the source in a + terminal with (e.g.): + +$ tar xvzf wine-20030115.tar.gz + + + + Just in case you happen to get a Wine archive that uses + .tar.bz2 extension instead of + .tar.gz: + Simply use tar xvjf in that case instead. + + + Since you now have a fully working Wine source tree by + having followed the steps above, you're now well-prepared to + go to the Wine installation and configuration steps that follow. + + + + + Getting Wine Source Code from CVS + + + + This part is intended to be quick and easy, showing the bare minimum + of what is needed to download Wine source code via CVS. + If you're interested in a very verbose explanation of CVS or + advanced CVS topics (configuration settings, CVS mirror servers, + other CVS modules on WineHQ, CVSWeb, ...), then please read + the full CVS chapter in the Wine Developer's Guide. + + + + CVS installation check + + First you need to make sure that you have cvs + installed. + To check whether this is the case, please run in a + terminal: + + + $ cvs + + + If this was successful, then you should have gotten a nice CVS + "Usage" help output. Otherwise (e.g. an error "cvs: command + not found") you still need to install a CVS package for your + particular operating system, similar to the instructions given + in the chapters for getting and installing a Wine package on + various systems. + + + + + Configuring Wine-specific CVS settings + + + First, you should do a + + + $ touch ~/.cvspass + + + to create or update the file .cvspass in + your home directory, since CVS needs this file (for password + and login management) and will complain loudly if it doesn't exist. + + + + Second, we need to create the file + .cvsrc in your home directory + containing the CVS configuration settings needed for a valid + Wine CVS setup (use CVS compression, properly update file and + directory information, ...). + The content of this file should look like the following: + +cvs -z 3 +update -PAd +diff -u +checkout -P + + Create the file with an editor + of your choice, either by running + + $ <editor> ~/.cvsrc + + , where <editor> is the editor you want to use (e.g. + joe, ae, + vi), + or by creating the file .cvsrc in your + home directory with your favourite graphical editor like nedit, kedit, + gedit or others. + + + + + Downloading the Wine CVS tree + + + Once CVS is installed and the Wine specific CVS + configuration is done, you can now do a login on our CVS + server and checkout (download) the Wine source code. + First, let's do the server login: + + + $ cvs -d :pserver:cvs@cvs.winehq.com:/home/wine login + + + If cvs successfully connects to the CVS server, + then you will get a "CVS password:" prompt. + Simply enter "cvs" as the password (the password is + case sensitive: no capital letters!). + + + + After login, we are able to download the Wine source code tree. + Please make sure that you are in the directory that you want + to have the Wine source code in (the Wine source code will + use the subdirectory wine/ in this + directory, since the subdirectory is named after the CVS module + that we want to check out). We assume that your current directory + might be your user's home directory. + To download the Wine tree into the subdirectory wine/, run: + + + $ cvs -d :pserver:cvs@cvs.winehq.com:/home/wine checkout wine + + + Downloading the CVS tree might take a while (some minutes + to few hours), depending on your connection speed. + Once the download is finished, you should keep a note of + which directory the newly downloaded + wine/ directory is in, by running + pwd (Print Working Directory): + + + $ pwd + + + Later, you will be able to change to this directory by + running: + + + $ cd <some_dir> + + + , where <some_dir> is the directory that + pwd gave you. + By running + + + $ cd wine + + + , you can now change to the directory of the Wine CVS tree + you just downloaded. Since you now have a fully working Wine + source tree by having followed the steps above, you're now + well-prepared to go to the Wine installation and configuration + steps that follow. + + + + + + Updating the Wine CVS tree + + + After a while, you might want to update your Wine CVS tree to + the current version. + Before updating the Wine tree, it might also be a good idea + to run make uninstall as root in order to + uninstall the installation of the previous Wine version. + + + To proceed with updating Wine, simply cd + to the Wine CVS tree directory, then run: + + + $ make distclean + $ cvs -d :pserver:cvs@cvs.winehq.com:/home/wine update + + + The make distclean part is optional, but + it's a good idea to remove old build and compile configuration + files before updating to a newer Wine version. Once the CVS + update is finished, you can proceed with installing Wine again + as usual. + + + + + Updating Wine with a Patch + + If you got Wine source code (e.g. via a tar archive file), you + have the option of applying patches to the source tree to + update to a newer Wine release or to fix bugs and add + experimental features. Perhaps you've found a bug, reported + it to the Wine + mailing list, and received a patch file to fix the bug. + You can apply the patch with the patch command, + which takes a streamed patch from stdin: + +$ cd wine +$ patch -p0 <../patch_to_apply.diff + + + + To remove the patch, use the -R option: + +$ patch -p0 -R <../patch_to_apply.diff + + + + If you want to do a test run to see if the patch will apply + successfully (e.g., if the patch was created from an older or + newer version of the tree), you can use the + --dry-run parameter to run the patch + without writing to any files: + +$ patch -p0 --dry-run <../patch_to_apply.d +iff + + + + patch is pretty smart about extracting + patches from the middle of a file, so if you save an email with + an inlined patch to a file on your hard drive, you can invoke + patch on it without stripping out the email headers and other + text. patch ignores everything that doesn't + look like a patch. + + + The -p0 option to patch + tells it to keep the full file name from the patch file. For example, + if the file name in the patch file was + wine/programs/clock/main.c. + Setting the -p0 option would apply the patch + to the file of the same name i.e. + wine/programs/clock/main.c . + Setting the -p1 option would strip off the + first part of the file name and apply + the patch to programs/clock/main.c. + The -p1 option would be useful if you named your + top level wine directory differently than the person who sent + you the patch. For the -p1 option + patch should be run from the top level wine + directory. + + + + + + + + Binary + + + A file which is in machine executable, compiled form: hex data (as opposed to a source code file). + + + + + CVS + + + Concurrent Versions System, a software package to manage software development done by several people. See the CVS chapter in the Wine Developers Guide for detailed usage information. + + + + Distribution + + + A distribution is usually the way in which some "vendor" ships operating system CDs (usually mentioned in the context of Linux). + A Linux environment can be shipped in lots of different configurations: e.g. distributions could be built to be suitable for games, scientific + applications, server operation, desktop systems, etc. + + + + + DLL + + + A DLL (Dynamic Link Library) is a file that can be loaded and executed by programs dynamically. Basically it's an external code repository for programs. + Since usually several different programs reuse the same DLL instead of having that code in their own file, this dramatically reduces required storage space. + A synonym for a DLL would be library. + + + + + Editor + + + An editor is usually a program to create or modify text files. + There are various graphical and text mode editors available on + Linux. + + + Examples of graphical editors are: nedit, gedit, kedit, xemacs, + gxedit. + + + Examples of text mode editors are: joe, ae, emacs, vim, vi. + In a terminal, simply run them via: + + + $ editorname + filename + + + + + Environment variable + + + Environment variables are text definitions used in a Shell to store important system settings. + In a bash shell (the most commonly used one in Linux), + you can view all environment variables by executing: + + + set + + + If you want to change an environment variable, you could run: + + + export MYVARIABLE=mycontent + + + For deleting an environment variable, use: + + + unset MYVARIABLE + + + + + Package + + + A package is a compressed file in a + distribution specific format. It contains the + files for a particular program you want to install. Packages are + usually installed via the dpkg or + rpm package managers. + + + + + root + + + root is the account name of the system administrator. + In order to run programs as root, simply open a + Terminal window, then run: + + + $ su - + + + This will prompt you for the password of the root user of your system, + and after that you will be able to system administration tasks + that require special root privileges. The root account is indicated by the + + + # + + + prompt, whereas '$' indicates a normal user account. + + + + + Shell + + + A shell is a tool to enable users to interact with the + system. Usually shells are text based and command line oriented. + Examples of popular shells include bash, + tcsh and ksh. Wine assumes + that for Wine installation tasks, you use bash, + since this is the most popular shell on Linux. + Shells are usually run in a Terminal window. + + + + + + Source code + + + Source code is the code that a program consists of before the program + is being compiled, i.e. it's the original building instructions of a + program that tell a compiler what the program should look like once + it's been compiled to a Binary. + + + + + Terminal + + + A terminal window is usually a graphical window that one uses to + execute a Shell. If Wine asks you to open a + terminal, then you usually need to click on an icon on your desktop + that shows a big black window (or, in other cases, an icon displaying a + maritime shell). + Wine assumes you're using the bash shell in a + terminal window, so if your terminal happens to use a different + shell program, simply type: + + + bash + + + in the terminal window. + + + + diff --git a/documentation/implementation.sgml b/documentation/implementation.sgml index b1f2c4feb53..86a216c2db8 100644 --- a/documentation/implementation.sgml +++ b/documentation/implementation.sgml @@ -23,7 +23,7 @@ This is the way to do some initializing when a process or - thread is attached to the dll. The function name is taken + thread is attached to the DLL. The function name is taken from a *.spec file line: diff --git a/documentation/installation-und-konfiguration.german b/documentation/installation-und-konfiguration.german index 6bd7666107f..143aac45f37 100644 --- a/documentation/installation-und-konfiguration.german +++ b/documentation/installation-und-konfiguration.german @@ -1613,21 +1613,20 @@ die folgenden Programme und Dateien installiert sein: Damit auch von 32bit Programmen aus gedruckt werden kann, ist es notwendig, einige Einträge in der Registratur vorzunehmen. Diese - Einträge sind in der Datei psdrv.reg im Unterverzeichnis - documentation des WINE-Quellcodeverzeichnisses vorhanden und lassen - sich mit dem Programm regapi, welches sich im Unterverzeichnis - programs/regapi des Quellcodeverzeichnisses befindet, - importieren. Falls noch nicht geschehen, ist regapi dazu zunächst zu - übersetzen. Zu diesem Zweck ist in das Verzeichnis programs/regapi + Einträge sind in der Datei winedefault.reg im Wine-Hauptverzeichnis + vorhanden und lassen sich mit dem Programm regedit, welches sich im + Unterverzeichnis programs/regedit des Quellcodeverzeichnisses befindet, + importieren. Falls noch nicht geschehen, ist regedit dazu zunächst zu + übersetzen. Zu diesem Zweck ist in das Verzeichnis programs/regedit zu wechseln und dort der Befehl make einzugeben (dies setzt voraus, dass WINE bereits erfolgreich übersetzt wurde). Danach können die erforderlichen Schlüssel durch die Eingabe des folgenden Befehls importiert werden: - ./regapi setValue < ../../documentation/psdrv.reg + ./regedit ../../winedefault.reg Achtung: - Bei dem Programm regapi handelt es sich um ein sogenanntes + Bei dem Programm regedit handelt es sich um ein sogenanntes WineLib-Programm. Solche Programme benutzen WINE, um Windows-spezifische Funktionen verwenden zu können. Damit sie ausgeführt werden können, muss bereits eine funktionsfähige diff --git a/documentation/installing.sgml b/documentation/installing.sgml index 1936f67f564..6e42acc3c3e 100644 --- a/documentation/installing.sgml +++ b/documentation/installing.sgml @@ -1,756 +1,153 @@ - Installing/compiling Wine - How to install Wine... + Installing or uninstalling Wine - - WWN #52 Feature: Replacing Windows + + A standard Wine distribution form (which you probably downloaded + according to chapter Getting Wine) + includes quite a few different programs, libraries + and configuration files. All of these + must be set up properly for Wine to work well. In order to + achieve this, this chapter will guide you through the necessary steps + to get the Wine files + installed on your system. It will not + deal with how to get Wine's Windows environment + configured; that's what the next chapter + will talk about. + + + + When installing Wine, you should make sure that it doesn't happen + to overwrite a previous Wine installation (as this would cause + an overwhelming amount of annoying and fatal conflicts); + uninstalling any previous Wine version (as explained in this chapter) + to avoid this problem is recommended. + + + + Installing or uninstalling Wine packages - Written by &name-ove-kaaven; &email-ove-kaaven; - + Now that you have downloaded the Debian or RPM or whatever Wine + package file, probably via the instructions given in the + previous chapter, you may be wondering "What in the world do I + do with this thing?". + This section will hopefully be able to put an end to your + bewildered questioning, by giving detailed install instructions + for all sorts of well-known package types. - Installation Overview + Debian Linux + + + In case you haven't downloaded and automatically installed the + Wine package file via apt-get as described + in the Getting Wine + section, you now need to use dpkg to + install it. Switch to the directory you downloaded the Debian + .deb package file to. Once there, type these commands, + adapting the package file name as required: + + +$ su - +Password: +# cd /home/user +# dpkg -i wine_0.0.20030115-1.deb + + + (Type the root password at the "Password:" prompt) + - A Windows installation consists of many different parts. + You may also want to install the + wine-doc package, and if you are + using Wine from the 2.3 distribution (Woody), the + wine-utils package as well. - - - - Registry. Many keys are supposed to exist and contain - meaningful data, even in a newly-installed Windows. - - - - - Directory structure. Applications expect to find and/or - install things in specific predetermined locations. Most - of these directories are expected to exist. But unlike - Unix directory structures, most of these locations are - not hardcoded, and can be queried via the Windows API - and the registry. This places additional requirements on - a Wine installation. - - - - - System DLLs. In Windows, these usually reside in the - system (or - system32) directories. Some Windows - applications check for their existence in these - directories before attempting to load them. While Wine - is able to load its own internal DLLs - (.so files) when the application - asks for a DLL, Wine does not simulate the existence of - nonexisting files. - - - - + + Uninstalling an installed Wine Debian package can be done by + running: + + +# dpkg -l|grep wine + - While the users are of course free to set up everything - themselves, the Wine team will make the automated Wine source - installation script, tools/wineinstall, - do everything we find necessary to do; running the - conventional configure && make depend && make && make - install cycle is thus not recommended, unless - you know what you're doing. At the moment, - tools/wineinstall is able to create a - configuration file, install the registry, and create the - directory structure itself. + The second column of the output (if any) of this command will + indicate the installed packages dealing with "wine". + The corresponding packages can be uninstalled by running: + + +# dpkg -r <package_name> + + + where <package_name> is the name of the Wine-related package + which you want to uninstall. - - The Registry - - The default registry is in the file - winedefault.reg. It contains directory - paths, class IDs, and more; it must be installed before most - INSTALL.EXE or - SETUP.EXE applications will work. The - registry is covered in more detail here. - - - - - Directory Structure - - Here's the fundamental layout that Windows applications and - installers expect. Without it, they seldom operate - correctly. - - - -C:\ Root directory of primary disk drive - Windows\ Windows directory, containing .INI files, - accessories, etc. - System\ Win3.x/95/98/ME directory for common DLLs - WinNT/2000 directory for common 16-bit DLLs - System32\ WinNT/2000 directory for common 32-bit DLLs - Start Menu\ Program launcher directory structure - Programs\ Program launcher links (.LNK files) to applications - Program Files\ Application binaries (.EXE and .DLL files) - + Red Hat (RPM) Linux - Wine emulates drives by placing their virtual drive roots to - user-configurable points in the Unix filesystem, so it's - your choice where C:'s root should - be (tools/wineinstall will even ask - you). If you choose, say, /var/wine, as - the root of your virtual drive C, - then you'd put this in your ~/.wine/config: + Switch to the directory you downloaded the RPM package file to. + Once there, type this one command as root, adapting the + package file name as required: - - -[Drive C] -"Path" = "/var/wine" -"Type" = "hd" -"Label" = "MS-DOS" -"Filesystem" = "win95" - - + +# rpm -ivh wine-20020605-2.i386.rpm + - With this configuration, what windows apps think of as - "c:\windows\system" would map to - /var/wine/windows/system in the UNIX - filesystem. Note that you need to specify - "Filesystem" = "win95", NOT - "Filesystem" = "unix", to make Wine simulate a - Windows-compatible (case-insensitive) filesystem, otherwise - most apps won't work. + You may also want to install the + wine-devel package. - - - - System DLLs + + Uninstalling an installed Wine RPM package can be done by + running: + + +# rpm -qa|grep -i wine + - The Wine team has determined that it is necessary to create - fake DLL files to trick many applications that check for - file existence to determine whether a particular feature - (such as Winsock and its TCP/IP networking) is available. If - this is a problem for you, you can create empty files in the - configured c:\windows\system directory - to make the application think it's there, and Wine's built-in DLL - will be loaded when the application actually asks for it. - (Unfortunately, tools/wineinstall does - not create such empty files itself.) - + This command will indicate the installed packages dealing with "wine". + The corresponding packages can be uninstalled by running: + + +# rpm -e <package_name> + - Applications sometimes also try to inspect the version - resources from the physical files (for example, to determine - the DirectX version). Empty files will not do in this case, - it is rather necessary to install files with complete - version resources. This problem is currently being worked - on. In the meantime, you may still need to grab some real - DLL files to fool these apps with. - - - And there are of course DLLs that wine does not currently - implement very well (or at all). If you do not have a real - Windows you can steal necessary DLLs from, you can always - get some from one of the Windows DLL archive sites - that can be found via internet search engine. - Please make sure to obey any licenses on the DLLs you fetch... - (some are redistributable, some aren't). + where <package_name> is the name of the Wine-related package + which you want to uninstall.
- - Installing Wine Without Windows + + Installing or uninstalling a Wine source code tree + - Written by &name-james-juran; &email-james-juran; + If you are in the directory of the Wine version that you just + compiled (e.g. by having run make depend && make), then you may now install this Wine version by running as root: + +# make install + - (Extracted from wine/documentation/no-windows) + This will copy the Wine binary files to their final destination + in your system. You can then proceed to the Configuration chapter to + configure the Wine environment. - A major goal of Wine is to allow users to run Windows programs - without having to install Windows on their machine. Wine - implements the functionality of the main DLLs usually - provided with Windows. Therefore, once Wine is finished, you - will not need to have Windows installed to use Wine. + If instead you want to uninstall the currently installed Wine + source code version, then change to the main directory of this + version and run as root: - - Wine has already made enough progress that it may be possible - to run your target applications without Windows installed. If - you want to try it, follow these steps: - - - - - - Point [Drive C] in - ~/.wine/config to the directory where you want - C: to be. Refer to the wine.conf man page - for more information. - The directory to be used for emulating a C: drive will be - the base directory for some Windows specific directories - created below. - Remember to use - "Filesystem" = "win95"! - - - - - Within the directory to be used for C:, create empty - windows, - windows/system, - windows/Start Menu, and - windows/Start Menu/Programs - directories. Do not point Wine to a - Windows directory full of old - installations and a messy registry. (Wine creates a - special registry in your home - directory, in $HOME/.wine/*.reg. - Perhaps you have to remove these files). - In one line: - mkdir -p windows windows/system windows/Start\ Menu windows/Start\ Menu/Programs - - - - - Use tools/wineinstall to compile Wine - and install the default registry. Or if you prefer to do - it yourself, compile programs/regedit, - and run: - - - programs/regedit/regedit < winedefault.reg - - - - - Run and/or install your applications. - - - - - - Because Wine is not yet complete, some programs will work - better with native Windows DLLs than with Wine's - replacements. Wine has been designed to make this possible. - Here are some tips by Juergen Schmied (and others) on how to - proceed. This assumes that your - C:\windows directory in the configuration - file does not point to a native Windows installation but is in - a separate Unix file system. (For instance, C:\windows is - really subdirectory windows located in - /home/ego/wine/drives/c). - - - - - - Run the application with --debugmsg - +loaddll to find out which files are - needed. Copy the required DLLs one by one to the - C:\windows\system directory. Do not - copy KERNEL/KERNEL32, GDI/GDI32, USER/USER32 or NTDLL. These - implement the core functionality of the Windows API, and - the Wine internal versions must be used. - - - - - Edit the [DllOverrides] section of - ~/.wine/config to specify - native before builtin for - the Windows DLLs you want to use. For more information - about this, see the Wine manpage. - - - - - Note that some network DLLs are not needed even though - Wine is looking for them. The Windows - MPR.DLL currently does not work; you - must use the internal implementation. - - - - - Copy SHELL/SHELL32 and COMDLG/COMDLG32 COMMCTRL/COMCTL32 - only as pairs to your Wine directory (these DLLs are - clean to use). Make sure you have these - specified in the [DllPairs] section of - ~/.wine/config. - - - - - Be consistent: Use only DLLs from the same Windows version - together. - - - - - Put regedit.exe in the - C:\windows directory. - (Office 95 imports a - *.reg file when it runs with an empty - registry, don't know about - Office 97). - - - - - Also add winhelp.exe and - winhlp32.exe if you want to be able - to browse through your programs' help function. - - - + +# make uninstall + - - - Installing Wine Using An Existing Windows Partition As Base - - Some people intend to use the data of an existing Windows partition - with Wine in order to gain some better compatibility or to run already - installed programs in a setup as original as possible. - Note that many Windows programs assume that they have full write - access to all windows directories. - - This means that you either have to configure the Windows - partition mount point for write permission by your Wine user - (see Dealing with FAT/VFAT partitions - on how to do that), or you'll have to copy over (some parts of) the Windows - partition content to a directory of a Unix partition and make - sure this directory structure is writable by your user. - We HIGHLY DISCOURAGE people from directly using a Windows partition with - write access as a base for Wine !! (some programs, notably - Explorer, corrupt large parts of the Windows partition in case - of an incorrect setup; you've been warned). - Not to mention that NTFS write support in Linux is still very - experimental and DANGEROUS (in case you're using an NT-based - Windows version using the NTFS file system). - Thus we advise you to go the Unix directory way. - - - - - Dealing With FAT/VFAT Partitions - - Written by &name-steven-elliott; &email-steven-elliott; - - - (Extracted from wine/documentation/linux-fat-permissions) - - - This document describes how FAT and - VFAT file system permissions work in Linux - with a focus on configuring them for Wine. - - - - Introduction - - Linux is able to access DOS and Windows file systems using - either the FAT (older 8.3 DOS filesystems) or VFAT (newer - Windows 95 or later long filename filesystems) modules. - Mounted FAT or VFAT filesystems provide the primary means - for which existing applications and their data are accessed - through Wine for dual boot (Linux + Windows) systems. - - - Wine maps mounted FAT filesystems, such as - /c, to driver letters, such as - c:, as indicated by the - ~/.wine/config file. The following excerpt - from a ~/.wine/config file does this: - - -[Drive C] -"Path" = "/c" -"Type" = "hd" - - - Although VFAT filesystems are preferable to FAT filesystems - for their long filename support the term FAT - will be used throughout the remainder of this document to - refer to FAT filesystems and their derivatives. Also, - /c will be used as the FAT mount point in - examples throughout this document. - - - Most modern Linux distributions either detect or allow - existing FAT file systems to be configured so that they can be - mounted, in a location such as /c, - either persistently (on bootup) or on an as needed basis. In - either case, by default, the permissions will probably be - configured so that they look like: - - -~>cd /c -/c>ls -l --rwxr-xr-x 1 root root 91 Oct 10 17:58 autoexec.bat --rwxr-xr-x 1 root root 245 Oct 10 17:58 config.sys -drwxr-xr-x 41 root root 16384 Dec 30 1998 windows - - - where all the files are owned by "root", are in the "root" - group and are only writable by "root" - (755 permissions). This is restrictive in - that it requires that Wine be run as root in order for - applications to be able to write to any part of the - filesystem. - - - There are three major approaches to overcoming the restrictive - permissions mentioned in the previous paragraph: - - - - - Run Wine as root - - - - - Mount the FAT filesystem with less restrictive - permissions - - - - - Shadow the FAT filesystem by completely or partially - copying it - - - - - Each approach will be discussed in the following sections. - - - - - Running Wine as root - - Running Wine as root is the easiest and most thorough way of giving - applications that Wine runs unrestricted access to FAT files systems. - Running wine as root also allows applications to do things unrelated - to FAT filesystems, such as listening to ports that are less than - 1024. Running Wine as root is dangerous since there is no limit to - what the application can do to the system. - - - - - Mounting FAT filesystems - - The FAT filesystem can be mounted with permissions less restrictive - than the default. This can be done by either changing the user that - mounts the FAT filesystem or by explicitly changing the permissions - that the FAT filesystem is mounted with. The permissions are - inherited from the process that mounts the FAT filesystem. Since the - process that mounts the FAT filesystem is usually a startup script - running as root the FAT filesystem inherits root's permissions. This - results in the files on the FAT filesystem having permissions similar - to files created by root. For example: - - -~>whoami -root -~>touch root_file -~>ls -l root_file --rw-r--r-- 1 root root 0 Dec 10 00:20 root_file - - - which matches the owner, group and permissions of files seen - on the FAT filesystem except for the missing 'x's. The - permissions on the FAT filesystem can be changed by changing - root's umask (unset permissions bits). For example: - - -~>umount /c -~>umask -022 -~>umask 073 -~>mount /c -~>cd /c -/c>ls -l --rwx---r-- 1 root root 91 Oct 10 17:58 autoexec.bat --rwx---r-- 1 root root 245 Oct 10 17:58 config.sys -drwx---r-- 41 root root 16384 Dec 30 1998 windows - - - Mounting the FAT filesystem with a umask of - 000 gives all users complete control over - it. Explicitly specifying the permissions of the FAT - filesystem when it is mounted provides additional control. - There are three mount options that are relevant to FAT - permissions: uid, gid - and umask. They can each be specified - when the filesystem is manually mounted. For example: - - -~>umount /c -~>mount -o uid=500 -o gid=500 -o umask=002 /c -~>cd /c -/c>ls -l --rwxrwxr-x 1 sle sle 91 Oct 10 17:58 autoexec.bat --rwxrwxr-x 1 sle sle 245 Oct 10 17:58 config.sys -drwxrwxr-x 41 sle sle 16384 Dec 30 1998 windows - - - which gives "sle" complete control over - /c. The options listed above can be - made permanent by adding them to the - /etc/fstab file: - - -~>grep /c /etc/fstab -/dev/hda1 /c vfat uid=500,gid=500,umask=002,exec,dev,suid,rw 1 1 - - - Note that the umask of 002 is common in - the user private group file permission scheme. On FAT file - systems this umask assures that all files are fully - accessible by all users in the specified group - (gid). - - - - - Shadowing FAT filesystems - - Shadowing provides a finer granularity of control. Parts of - the original FAT filesystem can be copied so that the - application can safely work with those copied parts while - the application continues to directly read the remaining - parts. This is done with symbolic links. For example, - consider a system where an application named - AnApp must be able to read and - write to the c:\windows and - c:\AnApp directories as well as have - read access to the entire FAT filesystem. On this system - the FAT filesystem has default permissions which should not - be changed for security reasons or can not be changed due to - lack of root access. On this system a shadow directory - might be set up in the following manner: - - -~>cd / -/>mkdir c_shadow -/>cd c_shadow -/c_shadow>ln -s /c_/* . -/c_shadow>rm windows AnApp -/c_shadow>cp -R /c_/{windows,AnApp} . -/c_shadow>chmod -R 777 windows AnApp -/c_shadow>perl -p -i -e 's|/c$|/c_shadow|g' /usr/local/etc/wine.conf - - - The above gives everyone complete read and write access to - the windows and - AnApp directories while only root has - write access to all other directories. - - - - - - SCSI Support - - Written by &name-bruce-milner; &email-bruce-milner;; - Additions by &name-andreas-mohr; &email-andreas-mohr; - - - (Extracted from wine/documentation/aspi) - - - - This file describes setting up the Windows ASPI interface. - - - - Warning/Warning/Warning!!!!!! - This may trash your system if used incorrectly. It may - even trash your system when used correctly! - - - - - - Now that I have said that. ASPI is a direct link to SCSI devices from - windows programs. ASPI just forwards the SCSI commands that programs send - to it to the SCSI bus. - - - If you use the wrong SCSI device in your setup file, you can send - completely bogus commands to the wrong device - An example would be - formatting your hard drives (assuming the device gave you permission - - if you're running as root, all bets are off). - - - So please make sure that all SCSI devices not needed by the program - have their permissions set as restricted as possible ! - - - - Cookbook for setting up scanner: (At least how mine is to work) - (well, for other devices such as CD burners, MO drives, ..., too) - - - - Windows requirements - - - - The scanner software needs to use the "Adaptec" - compatible drivers (ASPI). At least with Mustek, they - allow you the choice of using the builtin card or the - "Adaptec (AHA)" compatible drivers. This will not work - any other way. Software that accesses the scanner via a - DOS ASPI driver (e.g. ASPI2DOS) is supported, too. [AM] - - - - - You probably need a real windows install of the software - to set the LUN's/SCSI id's up correctly. I'm not exactly - sure. - - - - - - - Linux requirements - - - - Your SCSI card must be supported under Linux. This will - not work with an unknown SCSI card. Even for cheap'n - crappy "scanner only" controllers some special Linux - drivers exist on the net. - If you intend to use your IDE device, you need to use the - ide-scsi emulation. - Read - - http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html - for ide-scsi setup instructions. - - - - - Compile generic SCSI drivers into your kernel. - - - - - This seems to be not required any more for newer (2.2.x) kernels: - Linux by default uses smaller SCSI buffers than Windows. - There is a kernel build define SG_BIG_BUFF (in - sg.h) that is by default set too - low. The SANE project recommends - 130560 and this seems to work just - fine. This does require a kernel rebuild. - - - - - Make the devices for the scanner (generic SCSI devices) - - look at the SCSI programming HOWTO at - - http://www.linuxdoc.org/HOWTO/SCSI-Programming-HOWTO.html - for device numbering. - - - - - I would recommend making the scanner device writable by - a group. I made a group called - scanner and added myself to it. - Running as root increases your risk of sending bad SCSI - commands to the wrong device. With a regular user, you - are better protected. - - - - - For Win32 software (WNASPI32), Wine has auto-detection in place. - For Win16 software (WINASPI), you need to add a SCSI device entry - for your particular scanner to ~/.wine/config. The format is - [scsi cCtTdD] where - "C" = "controller", - "T" = "target", D=LUN - - - For example, I set mine up as controller 0, - Target 6, LUN 0. - -[scsi c0t6d0] -"Device" = "/dev/sgi" - - Yours will vary with your particular SCSI setup. - - - - - - - General Information - - The mustek scanner I have was shipped with a package - "ipplus". This program uses the TWAIN driver specification - to access scanners. - - - (TWAIN MANAGER) - - - -ipplus.exe <-> (TWAIN INTERFACE) <-> (TWAIN DATA SOURCE.ASPI) -> WINASPI - - - - - - NOTES/BUGS - - The biggest is that it only works under Linux at the moment. - - - The ASPI code has only been tested with: - - - - - a Mustek 800SP with a Buslogic controller under Linux [BM] - - - - - a Siemens Nixdorf 9036 with Adaptec AVA-1505 under Linux - accessed via DOSASPI. Note that I had color problems, - though (barely readable result) [AM] - - - - - a Fujitsu M2513A MO drive (640MB) using generic SCSI - drivers. Formatting and ejecting worked perfectly. - Thanks to Uwe Bonnes for access to the hardware ! [AM] - - - - - I make no warranty to the ASPI code. It makes my scanner - work. Your devices may explode. I have no way of determining - this. I take zero responsibility! - - - - - + - Wine is a UNIX implementation of the win32 libraries, + Wine is a UNIX implementation of the win32 Windows libraries, written from scratch by hundreds of volunteer developers and - released under an open source license. Anyone can download + released under an Open Source license (think of it as a + Windows compatibility layer for Linux and other similar + operating systems). Anyone can download and read through the source code, and fix bugs that arise. The Wine community is full of richly talented programmers who have spent thousands of hours of personal time on improving Wine so that it works well with the win32 - Applications Programming Interface + Application Programming Interface (API), and keeps pace with new developments from Microsoft. - Wine can run applications in two discrete ways: as - pre-compiled Windows binaries, or as natively compiled + Wine can run Windows applications in two discrete ways: as + pre-compiled Windows binaries (your average off-the-shelf + program package e.g. available on CD), or as natively compiled X11 (X-Window - System) applications. The former method uses - emulation to connect a Windows application to the Wine - libraries. You can run your Windows application directly - with the emulator, by installing through Wine or by simply - copying the Windows executables onto your Linux system. - - - The other way to run Windows applications with Wine requires - that you have the source code for the application. Instead - of compiling it with native Windows compilers, you can - compile it with a native Linux compiler -- - gcc for example -- and link in the Wine - Libraries as you would with any other native UNIX - application. These natively linked applications are - referred to as Winelib applications. - - - The Wine Users Guide will focus on running precompiled - Windows applications using the Wine emulator. - The Winelib Users Guide will cover Winelib - applications. + System) applications (via the part of Wine that's called + Winelib). If you're interested in compiling your Windows program + source code, then please refer to the Winelib User's Guide + instead, which explains this particular topic. + The Wine Users Guide however will focus on running standard + Windows applications using Wine. - - Burning questions and comments - - If during reading this document there is something you - can't figure out, or think could be explained better, or - that should have been included, please immediately mail to - either the &name-web-admin; &email-web-admin; or - the &name-wine-devel; &email-wine-devel;, or - post a bug report to - Wine's Bugzilla to - let us know how this document can be improved. Remember, Open - Source is "free as in free speech, not as in free beer": it can - only work in the case of very active involvement of its users ! - - - - - - - - Wine Requirements and Features - - - - Written by &name-andreas-mohr; &email-andreas-mohr; - Modified by &name-dustin-navea; - - - - - System requirements - - In order to run Wine, you need the following: - - - - - - A computer ;-) - Wine: only PCs >= i386 are supported at the moment. - Winelib: selected other platforms are supported, but can be tricky. - - - - - A UNIX-like operating system such as Linux, *BSD, - Solaris x86, ReactOS, Cygwin - - - - - >= 32MB of RAM. Everything below is pretty much - unusable. >= 96 MB is needed for "good" execution. - - - - - An X11 window system (XFree86 etc.). Wine is prepared - for other graphics display drivers, but writing - support is not too easy. The text console display - driver (ttydrv) is nearly usable. - - - - - Wine capabilities - Now that you hopefully managed to fulfill the requirements - mentioned above, we tell you what Wine is able to do/support: + Now that we're done with the boring introductory babble, + let us tell you what Wine is able to do/support: - Support for executing DOS, Win 3.x and Win9x/NT/Win2000/XP - programs (most of Win32's controls are supported) + Support for running Win32 (Win 95/98, NT/2000/XP), Win16 (Win 3.1) and DOS programs - Optional use of external vendor DLLs (e.g. original + Optional use of external vendor + DLLs (e.g. original Windows DLLs) @@ -227,8 +240,7 @@ - 32 bit graphical coordinates for CAD applications, - pretty advanced DirectX support for games + Pretty advanced DirectX support for games @@ -238,7 +250,8 @@ - Printing through internal PostScript driver + Printing: PostScript interface driver (psdrv) to + standard Unix PostScript print services @@ -271,6 +284,231 @@ + + + + + Other, often "Enhanced" Wine offerings + + + There are a number of offerings that are derived from the standard Wine + codebase in some way or another. + + + Some of these are commercial products from companies that actively contribute to Wine. + + + These products often try to stand out or distinguish themselves + from Wine, e.g. by offering greater compatibility or much easier + and flexible configuration than your average standard Wine + release. As such it is often a good idea to shell out some bucks + for the commercial versions, especially since these companies + contribute a lot of code to Wine, and plus, I'm sure they'll be happy about your support... + + Various Wine offerings + + + + Product + Description + Distribution form + + + + + + ReWind + + + ReWind is a Wine version derived from the old BSD + licensed Wine tree (it's the "completely free" BSD license fork of the currently LGPL'ed Wine). + Due to its BSD license it can't incorporate some Wine + patches that get licensed under the more restrictive + (or: protective) LGPL license by their authors. + + + Free, Open Source: BSD license + + + + + CodeWeavers CrossOver Office + + + CrossOver Office allows you to install your favorite + Windows productivity applications in Linux, without + needing a Microsoft Operating System license. CrossOver + includes an easy to use, single click interface, which + makes installing a Windows application simple and fast. + + + Commercial + + + + + CodeWeavers CrossOver Office Server Edition + + + CrossOver Office Server Edition allows you to run your + favorite Windows productivity applications in a + distributed thin-client environment under Linux, without + needing Microsoft Operating System licenses for each + client machine. CrossOver OfficeServer Edition allows you + to satisfy the needs of literally hundreds of concurrent + users, all from a single server. + + + Commercial + + + + + CodeWeavers + CrossOver Plugin + + + CrossOver Plugin lets you use many Windows plugins + directly from your Linux browser. In particular CrossOver + fully supports QuickTime, ShockWave Director, + Windows Media Player 6.4, Word Viewer, Excel Viewer, + PowerPoint Viewer, and more... + + + Commercial; Demo version available + + + + + CodeWeavers + Wine preview + + + The Wine preview is a usually slightly older Wine release + that's been tested as extra stable. + It includes the graphical installer winesetuptk, + allowing for easy configuration. + + + Free, Open Source: LGPL license + + + + + TransGaming Technologies WineX + + + 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. + + + Commercial; free CVS + download of reduced version (no copy protection + support etc.) + + + + +
+
+ + + Basic Wine Requirements + + + + Written by &name-andreas-mohr; &email-andreas-mohr; + Modified by &name-dustin-navea; &email-dustin-navea; + + + + + This section only mentions the most basic system requirements of + Wine, in order to ease your Wine "purchasing decision" ;-) + For an up-to-date much more detailed list of requirements for + compiling and/or installing Wine, + please read the REQUIREMENTS section of the README file, + which is also available in the main directory of a Wine source code tree. + + + In case of a binary Wine package, these Wine requirements will + probably be fulfilled automatically by the package installation + process; if you want to have a look at the detailed requirements + nevertheless (which definitely can't hurt!), then I'd like to + mention that the README file can also frequently be found in the + documentation files directory of a Wine package. + + + + System requirements + + In order to run Wine, you generally need the following: + + + + + + A computer ;-) + Wine: only PCs >= i386 are supported at the moment. + Winelib: selected other platforms are supported, but can be tricky. + + + + + A UNIX-like operating system such as Linux, *BSD, + Solaris x86, ReactOS, Cygwin + + + + + >= 32MB of RAM. Everything below is pretty much + unusable. >= 96 MB is needed for "good" execution. + + + + + An X11 window system (XFree86 etc.). Wine is prepared + for other graphics display drivers, but writing + support is not too easy. The text console display + driver (ttydrv) is nearly usable, so you don't + necessarily have to install X11 if you don't need it for + the programs you intend to run (in other words: mainly + for text mode programs). + + + + + + Spooling @@ -101,7 +103,7 @@ printer=on - + The Wine PostScript Driver @@ -182,31 +184,31 @@ printer=on You also need to add certain entries to the registry. - The easiest way to do this is to customise the contents of - documentation/psdrv.reg (see below) and use the - Winelib program programs/regapi/regapi. For + The easiest way to do this is to customise the PostScript + driver contents of winedefault.reg (see below) and use the + Winelib program programs/regedit/regedit. For example, if you have installed the Wine source tree in /usr/src/wine, you could use the following series of commands: - cp /usr/src/wine/documentation/psdrv.reg ~ + cp /usr/src/wine/winedefault.reg ~ - vi ~/psdrv.reg + vi ~/winedefault.reg - Edit the copy of psdrv.reg to suit your - requirements. At a minimum, you must specify a PPD file for - each printer. + Edit the copy of winedefault.reg to suit your + PostScript printing requirements. + At a minimum, you must specify a PPD file for each printer. - regapi setValue < ~/psdrv.reg + regedit ~/winedefault.reg @@ -217,7 +219,7 @@ printer=on You won't need Adobe Font Metric (AFM) files for the (type 1 PostScript) fonts that you wish to use any more. - Wine now has this information builtin. + Wine now has this information built-in. You'll need a PPD file for your printer. This describes @@ -239,7 +241,7 @@ printer=on Note that you need not set printer=on in the [wine] section of the wine config file, this enables printing via external printer drivers and does not - affect the builtin PostScript driver. + affect the built-in PostScript driver. If you're lucky you should now be able to produce PS files diff --git a/documentation/registry.sgml b/documentation/registry.sgml index fb16b425e93..ec9e5171069 100644 --- a/documentation/registry.sgml +++ b/documentation/registry.sgml @@ -1,12 +1,9 @@ The Registry - - written by Ove Kåven - - - (Extracted from wine/documentation/registry) - + + Originally written by Ove Kåven + After Win3.x, the registry became a fundamental part of Windows. @@ -18,6 +15,72 @@ to support it somehow. + + The default registry + + + A Windows registry contains many keys by default, and some of + them are necessary for even installers to operate correctly. + The keys that the Wine developers have found necessary to + install applications are distributed in a file called + winedefault.reg. It is automatically + installed for you if you use the + tools/wineinstall script in the Wine source, + but if you want to install it manually, you can do so by using the + regedit tool to be found in the + programs/regedit/ + directory in Wine source. + winedefault.reg should even be applied if + you plan to use a native Windows registry, since Wine needs some + specific registry settings in its registry (for special + workarounds for certain programs etc.). + In the main Wine source code directory in a terminal, run: + + +$ cd programs/regedit +$ ./regedit ../../winedefault.reg + + + + + Using a Windows registry + + + If you point Wine at an existing Windows installation (by + setting the appropriate directories in + ~/.wine/config, then Wine is able to load + registry data from it. However, Wine will not save anything to + the real Windows registry, but rather to its own registry + files (see below). Of course, if a particular registry value + exists in both the Windows registry and in the Wine registry, + then Wine will use the latter. In the Wine config file, there + are a number of configuration settings in the [registry] section + (see below) specific to the handling of Windows registry content by Wine. + + + Occasionally, Wine may have trouble loading the Windows + registry. Usually, this is because the registry is + inconsistent or damaged in some way. If that becomes a + problem, you may want to download the + regclean.exe from the MS website and use + it to clean up the registry. Alternatively, you can always use + regedit.exe to export the registry data + you want into a text file, and then import it in Wine. + + + + + The Registry + + The initial default registry content to be used by the Wine + registry files is in the file + winedefault.reg. It contains directory + paths, class IDs, and more; it must be installed before most + INSTALL.EXE or + SETUP.EXE applications will work. + + + Registry structure @@ -75,31 +138,6 @@ - - Using a Windows registry - - - If you point Wine at an existing MS Windows installation (by - setting the appropriate directories in - ~/.wine/config, then Wine is able to load - registry data from it. However, Wine will not save anything to - the real Windows registry, but rather to its own registry - files (see below). Of course, if a particular registry value - exists in both the Windows registry and in the Wine registry, - then Wine will use the latter. - - - Occasionally, Wine may have trouble loading the Windows - registry. Usually, this is because the registry is - inconsistent or damaged in some way. If that becomes a - problem, you may want to download the - regclean.exe from the MS website and use - it to clean up the registry. Alternatively, you can always use - regedit.exe to export the registry data - you want into a text file, and then import it in Wine. - - - Wine registry data files @@ -153,7 +191,7 @@ them, otherwise your changes will be discarded). - FIXME: global config currently not implemented. + FIXME: global configuration currently not implemented. In addition to these files, Wine can also optionally load from global registry files residing in the same directory as the @@ -228,31 +266,12 @@ ln -sf /usr/local/etc/wine.userreg wine.userreg - - The default registry - - - A Windows registry contains many keys by default, and some of - them are necessary for even installers to operate correctly. - The keys that the Wine developers have found necessary to - install applications are distributed in a file called - winedefault.reg. It is automatically - installed for you if you use the - tools/wineinstall script in the Wine source, - but if you want to install it manually, you can do so by using the - regedit tool to be found in the - programs/regedit/ - directory in Wine source. - - - The [registry] section - With the above information fresh in mind, let's look at the - wine.conf / ~/.wine/config - options for handling the registry. + Now let's look at the Wine + configuration file options for handling the registry. diff --git a/documentation/running.sgml b/documentation/running.sgml index 83c267def33..a91da258227 100644 --- a/documentation/running.sgml +++ b/documentation/running.sgml @@ -6,24 +6,36 @@ Extended by &name-mike-hearn; &email-mike-hearn;, &name-eric-pouech; &email-eric-pouech; + Modified by &name-andreas-mohr; &email-andreas-mohr; + + + + This chapter will describe all aspects of running Wine, like e.g. + basic Wine invocation, command line parameters of various Wine + support programs etc. Basic usage: applications and control panel applets - Assuming you are using a fake windows installation, you install - applications into Wine in the same way you would in Windows: - by running the installer. You can just accept the defaults - for where to install, most installers will default to "C:\Program Files", - which is fine. If the application installer requests it, you may find that - Wine creates icons on your desktop and in your app menu. If that happens, you - can start the app by clicking on them. + Assuming you are using a fake Windows installation, you install + applications into Wine in the same way you would in Windows: by + running the installer. You can just accept the defaults for + where to install, most installers will default to "C:\Program + Files", which is fine. If the application installer requests it, + you may find that Wine creates icons on your desktop and in your + app menu. If that happens, you can start the app by clicking on + them. - The standard way to uninstall things is for the application to provide an - uninstaller, usually registered with the "Add/Remove Programs" control panel - applet. To access the Wine equivalent, run the "uninstaller" program: + The standard way to uninstall things is for the application to + provide an uninstaller, usually registered with the "Add/Remove + Programs" control panel applet. + To access the Wine equivalent, run the uninstaller + program (it is located in the + programs/uninstaller/ directory in a Wine + source directory) in a terminal: @@ -31,8 +43,10 @@ - Some programs install associated control panel applets, examples of this would be - Internet Explorer and QuickTime. You can access the Wine control panel by running: + Some programs install associated control panel applets, examples + of this would be Internet Explorer and QuickTime. You can access + the Wine control panel by running in a + terminal: @@ -40,12 +54,14 @@ - which will open a window with the installed control panel applets in it, as in Windows. + which will open a window with the installed control panel + applets in it, as in Windows. - If the application doesn't install menu or desktop items, you'll need to run the app - from the command line. Remembering where you installed to, something like: + If the application doesn't install menu or desktop items, you'll + need to run the app from the command line. Remembering where you + installed to, something like: @@ -53,9 +69,11 @@ - will probably do the trick. The path isn't case sensitive, but remember to include the double quotes. - Some programs don't always use obvious naming for their directories and EXE files, so you might have - to look inside the program files directory to see what it put where + will probably do the trick. The path isn't case sensitive, but + remember to include the double quotes. Some programs don't + always use obvious naming for their directories and EXE files, + so you might have to look inside the program files directory to + see what it put where @@ -65,7 +83,7 @@ Wine is a very complicated piece of software with many ways to adjust how it runs. With very few exceptions, you can activate the same set of features through the configuration file as you can + linkend="config-file">configuration file as you can with command-line parameters. In this chapter, we'll briefly discuss these parameters, and match them up with their corresponding configuration variables. @@ -132,8 +150,23 @@ Options:
+ + Explorer-like graphical Wine environments + + + If you don't feel like manually invoking Wine for every program + you want to run and instead want to have an integrated graphical + interface to run your Windows programs in, then installing e.g. + Calmira, a + Win95-Explorer-like shell replacement, would probably be a great + idea. Calmira might still have a few problems running on Wine, + though. Other usable Explorer replacements should be listed here + in the future. + + + - Command-Line Options + Wine Command Line Options --debugmsg [channels] @@ -208,9 +241,9 @@ Options: $ wine --debugmsg +all,-relay program_name - Here is a master list of all the debug channels and classes - in Wine. More channels will be added to (or subtracted - from) later versions. + Here is a list of the debug channels and classes in Wine. + More channels will be added to (or subtracted from) later + versions. Debug Channels @@ -305,7 +338,7 @@ winspoolwnetx11 $ wine --dll setupx=n foo.exe - See the DLL chapter for more details. + See the DLL chapter for more details. @@ -324,6 +357,66 @@ winspoolwnetx11 + + wineserver Command Line Options + + + wineserver usually gets started automatically by Wine whenever + the first wine process gets started. + However, wineserver has some useful command line options that + you can add if you start it up manually, e.g. via a user login + script or so. + + + + -d<n> + + Sets the debug level for debug output in the terminal that + wineserver got started in at level <n>. + In other words: everything greater than 0 will enable + wineserver specific debugging output (not to confuse with Wine's wineserver logging channel, --debugmsg +server, though!). + + + + + -h + + Display wineserver command line options help message. + + + + + -k[n] + + Kill the current wineserver, optionally with signal n. + + + + + -p[n] + + This parameter makes wineserver persistent, optionally for n + seconds. It will prevent wineserver from shutting down immediately. + + + Usually, wineserver quits almost immediately after the last + wine process using this wineserver terminated. + However, since wineserver loads a lot of things on startup + (such as the whole Windows registry data), its startup might + be so slow that it's very useful to keep it from exiting after + the end of all Wine sessions, by making it persistent. + + + + + -w + + This parameter makes a newly started wineserver wait until the + currently active wineserver instance terminates. + + + + Setting Windows/DOS environment variables diff --git a/documentation/wine-devel.sgml b/documentation/wine-devel.sgml index c921ee3662b..c7bedb73b08 100644 --- a/documentation/wine-devel.sgml +++ b/documentation/wine-devel.sgml @@ -4,26 +4,28 @@ %authors; - - + - + - + - - - - - - - - + + + + + + + + + + + @@ -37,11 +39,10 @@ Developing Wine - &compiling; &debugger; &documentation; - &testing; &patches; + &testing; &i18n; &tools; @@ -50,15 +51,20 @@ Wine Architecture &architecture; + &dlls; &debugging; &ole; - &opengl; &build; - &dlls; + &opengl; &multimedia; + Using CVS + &cvs; + + + Advanced Topics &implementation; &porting; diff --git a/documentation/wine-doc.sgml b/documentation/wine-doc.sgml index 944b1328f3c..5e710ac04d4 100644 --- a/documentation/wine-doc.sgml +++ b/documentation/wine-doc.sgml @@ -7,6 +7,7 @@ + @@ -14,26 +15,27 @@ + - - - - - - - - - - - - - + + + + + - + + + + + + + + + @@ -43,7 +45,7 @@ - + @@ -74,11 +76,12 @@ &introduction; &getting; - + &compiling; &installing; &configuring; &running; &bugs; + &glossary; @@ -89,7 +92,6 @@ Developing Wine - &compiling; &debugger; &documentation; &testing; @@ -101,15 +103,20 @@ Wine Architecture &architecture; + &dlls; &debugging; &ole; - &opengl; &build; - &dlls; + &opengl; &multimedia; - + + Using CVS + &cvs; + + + Advanced Topics &implementation; &porting; diff --git a/documentation/wine-user.sgml b/documentation/wine-user.sgml index d1c765d5ead..f111bdfc9f1 100644 --- a/documentation/wine-user.sgml +++ b/documentation/wine-user.sgml @@ -6,6 +6,7 @@ + @@ -13,6 +14,7 @@ + ]> @@ -22,10 +24,11 @@ &introduction; &getting; - + &compiling; &installing; &configuring; &running; &bugs; + &glossary; diff --git a/documentation/winelib-bindlls.sgml b/documentation/winelib-bindlls.sgml index 6b162c5d76c..200076f95ac 100644 --- a/documentation/winelib-bindlls.sgml +++ b/documentation/winelib-bindlls.sgml @@ -1,5 +1,5 @@ - Using Linux libraries as dlls + Using Linux libraries as DLLs Introduction @@ -34,9 +34,9 @@ You need to write a spec file that will describe the library's interface in the same format as a Dll (primarily what functions it exports). Also you will want to write a small wrapper around the - library. You combine these to form a Wine builtin Dll that links to the - Linux library. Then you modify the Dll Overrides in the wine config - file to ensure that this new builtin dll is called rather than any + library. You combine these to form a Wine built-in Dll that links to the + Linux library. Then you modify the DllOverrides in the wine config + file to ensure that this new built-in DLL is called rather than any windows version. @@ -76,11 +76,11 @@ signed short MyLinuxFunc (unsigned short a, void *b, void *c, Writing the spec file Start by writing the spec file. This file will describe the interface - as if it were a dll. See elsewhere for the details of the format of + as if it were a DLL. See elsewhere for the details of the format of a spec file (e.g. man winebuild). - In the simple example we want a Wine builtin Dll that corresponds to + In the simple example we want a Wine built-in Dll that corresponds to the MyWin Dll. The spec file is MyWin.dll.spec and looks something like this (depending on changes to the way that the specfile is formatted since this was written). @@ -90,7 +90,7 @@ signed short MyLinuxFunc (unsigned short a, void *b, void *c, # # some sort of copyright # -# Wine spec file for the MyWin.dll builtin library (a minimal wrapper around the +# Wine spec file for the MyWin.dll built-in library (a minimal wrapper around the # linux library libMyLinux) # # For further details of wine spec files see the Winelib documentation at @@ -200,7 +200,7 @@ signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c, Building - So how do we actually build the Wine builtin Dll? The easiest way is + So how do we actually build the Wine built-in Dll? The easiest way is to get Winemaker to do the hard work for us. For the simple example we have two source files (the wrapper and the spec file). We also have the 3rd party header and library files of course. @@ -258,18 +258,18 @@ signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c, Put the proxy shared object (MyWin.dll.so) in the same place as the - rest of the builtin dlls. (If you used winemaker to set up your build + rest of the built-in DLLs. (If you used winemaker to set up your build environment then running "make install" as root should do that for you) Alternatively ensure that WINEDLLPATH includes the directory containing the proxy shared object. - If you have both a Windows dll and a Linux Dll/proxy pair then you will + If you have both a Windows DLL and a Linux DLL/proxy pair then you will have to ensure that the correct one gets called. The easiest way is probably simply to rename the windows version so that it doesn't get detected. Alternatively you could specify in the DllOverrides section (or the AppDefaults\\myprog.exe\\DllOverrides section) of the config - file (in your .wine directory) that the builtin version be used. Note + file (in your .wine directory) that the built-in version be used. Note that if the Windows version Dll is present and is in the same directory as the executable (as opposed to being in the Windows directory) then you will currently need to specify the whole path to @@ -293,7 +293,7 @@ signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c, Suppose you want to convert incoming DOS format filenames to their Unix equivalent. Of course there is no suitable function in the true Microsoft Windows API, but wine provides a function for just this - task and exports it from its copy of the kernel32 dll. The function + task and exports it from its copy of the kernel32 DLL. The function is wine_get_unix_file_name (defined in winbase.h). Use the -ikernel32 option to winemaker to link to it. diff --git a/documentation/winelib-porting.sgml b/documentation/winelib-porting.sgml index 28a0ab494b2..e85f455632a 100644 --- a/documentation/winelib-porting.sgml +++ b/documentation/winelib-porting.sgml @@ -366,7 +366,7 @@ printf("Processor architecture=%d\n",si ANONS .wProcessorArchitecture); don't use it, guide on how to replace it with normal C++ code (yes, how???): - extracting a .h and .lib from a COM dll + extracting a .h and .lib from a COM DLL Can '-fno-rtti' be of some use or even required? diff --git a/documentation/winelib-toolkit.sgml b/documentation/winelib-toolkit.sgml index 3634dcc16ab..94b7592f6e6 100644 --- a/documentation/winelib-toolkit.sgml +++ b/documentation/winelib-toolkit.sgml @@ -59,18 +59,18 @@ files. Let's start with the targets. - First are executables and dlls. Each time it finds one of these in + First are executables and DLLs. Each time it finds one of these in a directory, winemaker puts it in the list of things to build and will later generate a Makefile.in file in this directory. Note that Winemaker also knows about the commonly used Release and Debug directories, so it will attribute the executables and libraries found in these to their parent directory. When it finds an - executable or a dll winemaker is happy because these give it more + executable or a DLL winemaker is happy because these give it more information than the other cases described below. - If it does not find any executable or dll winemaker will look for + If it does not find any executable or DLL winemaker will look for files with a .mak extension. If they are not disguised Visual C++ projects (and currently even if they are), winemaker will assume that a target by that name should be built @@ -156,7 +156,7 @@ configure.in, Make.rules.in). From the above description you can guess at the items that winemaker may get wrong in - this phase: macro definitions, include path, dll path, dlls to + this phase: macro definitions, include path, DLL path, DLLs to import, library path, libraries to link with. You can deal with these issues by using winemaker's The DLLS field is where you would enumerate the list of - dlls that executable imports. It should contain the full dll name + DLLs that executable imports. It should contain the full DLL name including the '.dll' extension, but not the '-l' option. @@ -601,7 +601,7 @@ hello.spec.c: hello.res @ - FIXME: You must now export functions from dlls. + FIXME: You must now export functions from DLLs. This entry is not shown above because it is not always @@ -672,7 +672,7 @@ init FUNCTION This field is optional and specific to Win32 modules. It - specifies a function which will be called when the dll is loaded + specifies a function which will be called when the DLL is loaded or the executable started.