John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1 | <!-- Wine Packaging guidelines. This is a rough outline only, |
| 2 | and much of this was up for open debate on wine-devel. --> |
| 3 | |
| 4 | <chapter id="pkg-preface"> <title>Preface</title> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 5 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 6 | <sect1 id="pkg-authors"> <title>Authors</title> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 7 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 8 | <para> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 9 | Written by &name-marcus-meissner; <email>&email-marcus-meissner;</email> |
| 10 | Updated by &name-jeremy-white; <email>&email-jeremy-white;</email> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 11 | </para> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 12 | </sect1> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 13 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 14 | <sect1 id="pkg-date"> <title>Document Revision Date</title> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 15 | |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 16 | |
| 17 | <para> |
| 18 | The information contained in this document is extremely |
| 19 | time sensitive. <emphasis>It is vital that a packager |
| 20 | stay current with changes in Wine. </> |
| 21 | </para> |
| 22 | <para> |
| 23 | This document was last revised on November 2, 2000.</para> |
| 24 | |
| 25 | </sect1> |
| 26 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 27 | <sect1 id="pkg-terms"> <title>Terms used in this document</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 28 | |
| 29 | <para>There are several terms and paths used in this |
| 30 | document as place holders for configurable values. |
| 31 | Those terms are described here. |
| 32 | </para> |
| 33 | |
| 34 | <orderedlist> |
| 35 | <listitem id=WINECONFDIR><para id=wineconfdir.id><EnVar>WINECONFDIR</EnVar></para> |
| 36 | <para> |
| 37 | <envar>WINECONFDIR</envar> is the users Wine configuration directory. |
| 38 | This is almost always ~/.wine, but can be overridden |
| 39 | by the user by setting the <EnVar>WINECONFDIR</EnVar> environment |
| 40 | variable. |
| 41 | </para> |
| 42 | </listitem> |
| 43 | |
| 44 | <listitem id=PREFIX><para id=prefix.id><EnVar>PREFIX</EnVar></para> |
| 45 | <para> |
| 46 | <envar>PREFIX</envar> is the prefix used when selecting |
| 47 | an installation target. The current default is /usr. |
| 48 | This results in binary installation into /usr/bin, |
| 49 | library installation into /usr/wine/lib, and so forth. |
| 50 | This value can be overridden by the packager. |
| 51 | In fact, <ulink url="http://www.pathname.com/fhs/">FHS 2.1</ulink> |
| 52 | specifications suggest that a better |
| 53 | prefix is /opt/wine. Ideally, a packager would also |
| 54 | allow the installer to override this value. |
| 55 | </para> |
| 56 | </listitem> |
| 57 | |
| 58 | <listitem id=ETCDIR><para id=etcdir.id><EnVar>ETCDIR</EnVar></para> |
| 59 | <para> |
| 60 | <envar>ETCDIR</envar> is the prefix that Wine uses |
| 61 | to find the global configuration directory. |
| 62 | This can be changed by the configure option sysconfdir. |
| 63 | The current default is /etc. |
| 64 | </para> |
| 65 | </listitem> |
| 66 | |
| 67 | <listitem id=WINDOWSDIR><para id=windowsdir.id><EnVar>WINDOWSDIR</EnVar></para> |
| 68 | <para> |
| 69 | <envar>WINDOWSDIR</envar> is an important concept |
| 70 | to Wine. This directory specifies what directory |
| 71 | corresponds to the root Windows directory |
| 72 | (e.g. C:\WINDOWS). |
| 73 | </para> |
| 74 | <para> |
| 75 | This directory is specified by the user, in |
| 76 | the users <link linkend=winerc>configuration file</link>. |
| 77 | </para> |
| 78 | <para> |
| 79 | Generally speaking, this directory is either set |
| 80 | to point at an empty directory, or it is set |
| 81 | to point at a Windows partition that has been |
| 82 | mounted through the vfat driver. |
| 83 | </para> |
| 84 | <para> |
| 85 | <emphasis>It is extremely important that the packager |
| 86 | understand the importance of <envar>WINDOWSDIR</envar> |
| 87 | and convey this information and choice to the end |
| 88 | user</emphasis>. |
| 89 | </para> |
| 90 | </listitem> |
| 91 | |
| 92 | </orderedlist> |
| 93 | |
| 94 | |
| 95 | </sect1> |
| 96 | |
| 97 | </chapter> |
| 98 | |
| 99 | |
| 100 | |
| 101 | <chapter id="pkg-introduction"> <title>Introduction</title> |
| 102 | |
| 103 | <para> |
| 104 | This document attempts to establish guidelines |
| 105 | for people making binary packages of Wine. |
| 106 | </para> |
| 107 | |
| 108 | <para> |
| 109 | It expresses the basic principles that the |
| 110 | Wine developers have agreed should be |
| 111 | used when building Wine. |
| 112 | It also attempts to highlight the areas |
| 113 | where there are different approaches |
| 114 | to packaging Wine, so that the packager |
| 115 | can understand the different alternatives |
| 116 | that have been considered and their rationales. |
| 117 | </para> |
| 118 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 119 | <sect1 id="pkg-goals"> <title>Goals</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 120 | <para> |
| 121 | An installation from a Wine pacakage should: |
| 122 | </para> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 123 | <itemizedlist> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 124 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 125 | <listitem> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 126 | <para> |
| 127 | Install quickly and simply. |
| 128 | </para> |
| 129 | <para> |
| 130 | The initial installation should require no user |
| 131 | input. An rpm -i wine.rpm or apt get wine |
| 132 | should suffice for initial installation. |
| 133 | </para> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 134 | </listitem> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 135 | |
| 136 | <listitem> |
| 137 | <para> |
| 138 | Work quickly and simply |
| 139 | </para> |
| 140 | <para> |
| 141 | The user should be able to launch Solitaire |
| 142 | within minutes of downloading the Wine package. |
| 143 | </para> |
| 144 | </listitem> |
| 145 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 146 | <listitem> |
| 147 | <para> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 148 | Comply with Filesystem Hierarchy Standard |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 149 | </para> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 150 | <para> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 151 | A Wine installation should, as much as possible, comply |
| 152 | with the |
| 153 | <ulink url="http://www.pathname.com/fhs/">FHS standard</ulink>. |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 154 | </para> |
| 155 | </listitem> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 156 | |
| 157 | <listitem> |
| 158 | <para> |
| 159 | Preserve flexibility |
| 160 | </para> |
| 161 | <para> |
| 162 | None of the flexibility built into Wine should |
| 163 | be hidden from the end user. |
| 164 | </para> |
| 165 | </listitem> |
| 166 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 167 | <listitem> |
| 168 | <para> |
| 169 | Come as preconfigured as possible, so the user does |
| 170 | not need to change any configuration files. |
| 171 | </para> |
| 172 | </listitem> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 173 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 174 | <listitem> |
| 175 | <para>Use only as much diskspace as needed per user.</para> |
| 176 | </listitem> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 177 | |
| 178 | <listitem> |
| 179 | <para> |
| 180 | Reduce support requirements. |
| 181 | </para> |
| 182 | <para> |
| 183 | A packaged version of Wine should be sufficiently easy |
| 184 | to use and have quick and easy access to FAQs and |
| 185 | documentation such that requests to the |
| 186 | newsgroup and development group go down. |
| 187 | Further, it should be easy for users to capture |
| 188 | good bug reports. |
| 189 | </para> |
| 190 | </listitem> |
| 191 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 192 | </itemizedlist> |
| 193 | |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 194 | |
| 195 | </sect1> |
| 196 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 197 | <sect1 id="pkg-requirements"> <title>Requirements</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 198 | <para> |
| 199 | Successfully installing Wine requires: |
| 200 | </para> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 201 | |
| 202 | <itemizedlist> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 203 | <listitem> |
| 204 | <para>Much thought and work from the packager (1x)</para> |
| 205 | </listitem> |
| 206 | <listitem> |
| 207 | <para> |
| 208 | A configuration file |
| 209 | </para> |
| 210 | <para> |
| 211 | Wine will not run with out a configuration file. Further, |
| 212 | no default is currently provided by Wine. Some packagers may attempt |
| 213 | to provide (or dynamically generate) a default configuration |
| 214 | file. Some packagers may wish to |
| 215 | rely on winecfg to generate the configuration file. |
| 216 | </para> |
| 217 | </listitem> |
| 218 | |
| 219 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 220 | <listitem> |
| 221 | <para> |
| 222 | A writeable <filename>C:\</filename> directory |
| 223 | structure on a per user basis. Applications do dump |
| 224 | <filename>.ini</filename> files into |
| 225 | <filename>c:\windows</filename>, installers dump |
| 226 | <filename>.exe</filename>, <filename>.dll</filename> |
| 227 | and more into <filename>c:\windows\</filename> and |
| 228 | subdirectories or into <filename>C:\Program |
| 229 | Files\</filename>. |
| 230 | </para> |
| 231 | </listitem> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 232 | |
| 233 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 234 | <listitem> |
| 235 | <para> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 236 | An initial set of registry entries. |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 237 | </para> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 238 | <para> |
| 239 | The current Wine standard is to use the regapi tool |
| 240 | against the 'winedefault.reg' file to generate |
| 241 | a default registry. |
| 242 | </para> |
| 243 | <para> |
| 244 | There are several other choices that could be made; |
| 245 | registries can be imported from a Windows partition. |
| 246 | At this time, Wine does not completely support |
| 247 | a complex multi user installation, ala Windows NT, |
| 248 | but it could fairly readily. |
| 249 | </para> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 250 | </listitem> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 251 | |
| 252 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 253 | <listitem> |
| 254 | <para> |
| 255 | Some special <filename>.dll</filename> and |
| 256 | <filename>.exe</filename> files in the |
| 257 | <filename>windows\system</filename> directory, since |
| 258 | applications directly check for their presence. |
| 259 | </para> |
| 260 | </listitem> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 261 | </itemizedlist> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 262 | |
| 263 | </sect1> |
| 264 | |
| 265 | |
| 266 | </chapter> |
| 267 | |
| 268 | |
| 269 | |
| 270 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 271 | <chapter id="pkg-components"><title>Wine Components</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 272 | |
| 273 | <para> |
| 274 | This section lists all files that pertain to Wine. |
| 275 | </para> |
| 276 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 277 | <sect1 id="pkg-static"><title>Wine Static and Shareable Files</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 278 | |
| 279 | <para> |
| 280 | At the time of this writing, the following components |
| 281 | are installed through a standard 'make install' |
| 282 | of Wine. |
| 283 | |
| 284 | <caution> |
| 285 | <para> |
| 286 | It is vital that a packager check for |
| 287 | changes in Wine. This list will likely be out |
| 288 | of date by the time this document is committed to CVS. |
| 289 | </para> |
| 290 | </caution> |
| 291 | |
| 292 | </para> |
| 293 | |
| 294 | <orderedlist> |
| 295 | |
| 296 | <listitem id=binfiles> |
| 297 | <variablelist><title>Executable Files</title> |
| 298 | |
| 299 | <varlistentry><term><filename>wine</filename></term> |
| 300 | <listitem> |
| 301 | <para> |
| 302 | The main Wine executable. This program will load |
| 303 | a Windows binary and run it, relying upon |
| 304 | the Wine shared object libraries. |
| 305 | </para> |
| 306 | </listitem> |
| 307 | </varlistentry> |
| 308 | |
| 309 | <varlistentry><term><filename>wineserver</filename></term> |
| 310 | <listitem> |
| 311 | <para> |
| 312 | The Wine server is critical to Wine; it is the |
| 313 | process that coordinates all shared Windows |
| 314 | resources. |
| 315 | </para> |
| 316 | </listitem> |
| 317 | </varlistentry> |
| 318 | |
| 319 | <varlistentry><term><filename>wineclipsrv</filename></term> |
| 320 | <listitem> |
| 321 | <para> |
| 322 | The Wine Clipboard Server is a standalone XLib |
| 323 | application whose purpose is to manage the X selection |
| 324 | when Wine exits. |
| 325 | </para> |
| 326 | </listitem> |
| 327 | </varlistentry> |
| 328 | |
| 329 | <varlistentry><term><filename>winedbg</filename></term> |
| 330 | <listitem> |
| 331 | <para> |
| 332 | Winedbg is the Wine built in debugger. |
| 333 | </para> |
| 334 | </listitem> |
| 335 | </varlistentry> |
| 336 | |
| 337 | <varlistentry><term><filename>winecfg</filename></term> |
| 338 | <listitem> |
| 339 | <para> |
| 340 | This is a Tcl/Tk based front end that provides |
| 341 | a user friendly tool to edit and configure |
| 342 | the <link linkend=WINECONFDIR endterm=wineconfdir.id></link>/config file. |
| 343 | </para> |
| 344 | </listitem> |
| 345 | </varlistentry> |
| 346 | |
| 347 | <varlistentry><term><filename>wineshelllink</filename></term> |
| 348 | <listitem> |
| 349 | <para> |
| 350 | This shell script can be called by Wine in order |
| 351 | to propogate Desktop icon and menu creation |
| 352 | requests out to a GNOME or KDE (or other |
| 353 | Window Managers). |
| 354 | </para> |
| 355 | </listitem> |
| 356 | </varlistentry> |
| 357 | |
| 358 | <varlistentry><term><filename>winebuild</filename></term> |
| 359 | <listitem> |
| 360 | <para> |
| 361 | Winebuild is a tool used for Winelib applications |
| 362 | (and by Wine itself) to allow a developer to |
| 363 | compile a .spec file into a .spec.c file. |
| 364 | </para> |
| 365 | </listitem> |
| 366 | </varlistentry> |
| 367 | <varlistentry><term><filename>wmc</filename></term> |
| 368 | <listitem> |
| 369 | <para> |
| 370 | The wmc tools is the Wine Message Compiler. It |
| 371 | allows Windows message files to be compiled |
| 372 | into a format usable by Wine. |
| 373 | </para> |
| 374 | </listitem> |
| 375 | </varlistentry> |
| 376 | <varlistentry><term><filename>wrc</filename></term> |
| 377 | <listitem> |
| 378 | <para> |
| 379 | The wrc tool is the Wine Resource Compiler. |
| 380 | It allows Winelib programmers (and Wine itself) |
| 381 | to compile Windows style resource files |
| 382 | into a form usable by Wine. |
| 383 | </para> |
| 384 | </listitem> |
| 385 | </varlistentry> |
| 386 | <varlistentry><term><filename>fnt2bdf</filename></term> |
| 387 | <listitem> |
| 388 | <para> |
| 389 | The fnt2bdf utility extracts fonts from .fnt or |
| 390 | .dll files and stores then in .dbf format files. |
| 391 | </para> |
| 392 | </listitem> |
| 393 | </varlistentry> |
| 394 | <varlistentry><term><filename>dosmod</filename></term> |
| 395 | <listitem> |
| 396 | <para> |
| 397 | DOS Virtual Machine. |
| 398 | </para> |
| 399 | </listitem> |
| 400 | </varlistentry> |
| 401 | |
| 402 | </variablelist> |
| 403 | </listitem> |
| 404 | |
| 405 | <listitem id=libfiles> |
| 406 | <para> Shared Object Library Files </para> |
| 407 | |
| 408 | <simplelist columns=5> |
| 409 | |
| 410 | <member>libwine.so.1.0</> |
| 411 | <member>libddraw.so.1.0</> |
| 412 | <member>libopengl32.so.1.0</> |
| 413 | <member>libx11drv.so.1.0</> |
| 414 | <member>libadvapi32.so.1.0</> |
| 415 | <member>libavifil32.so.1.0</> |
| 416 | <member>libcomctl32.so.1.0</> |
| 417 | <member>libcomdlg32.so.1.0</> |
| 418 | <member>libcrtdll.so.1.0</> |
| 419 | <member>libdciman32.so.1.0</> |
| 420 | <member>libdinput.so.1.0</> |
| 421 | <member>libdplay.so.1.0</> |
| 422 | <member>libdplayx.so.1.0</> |
| 423 | <member>libdsound.so.1.0</> |
| 424 | <member>libgdi32.so.1.0</> |
| 425 | <member>libicmp.so.1.0</> |
| 426 | <member>libimagehlp.so.1.0</> |
| 427 | <member>libimm32.so.1.0</> |
| 428 | <member>libkernel32.so.1.0</> |
| 429 | <member>liblz32.so.1.0</> |
| 430 | <member>libmpr.so.1.0</> |
| 431 | <member>libmsacm32.so.1.0</> |
| 432 | <member>libmsnet32.so.1.0</> |
| 433 | <member>libmsvfw32.so.1.0</> |
| 434 | <member>libodbc32.so.1.0</> |
| 435 | <member>libole32.so.1.0</> |
| 436 | <member>liboleaut32.so.1.0</> |
| 437 | <member>libolecli32.so.1.0</> |
| 438 | <member>liboledlg.so.1.0</> |
| 439 | <member>libolepro32.so.1.0</> |
| 440 | <member>libolesvr32.so.1.0</> |
| 441 | <member>libpsapi.so.1.0</> |
| 442 | <member>librasapi32.so.1.0</> |
| 443 | <member>libriched32.so.1.0</> |
| 444 | <member>librpcrt4.so.1.0</> |
| 445 | <member>libserialui.so.1.0</> |
| 446 | <member>libsetupapi.so.1.0</> |
| 447 | <member>libshell32.so.1.0</> |
| 448 | <member>libshfolder.so.1.0</> |
| 449 | <member>libshlwapi.so.1.0</> |
| 450 | <member>libtapi32.so.1.0</> |
| 451 | <member>libttydrv.so.1.0</> |
| 452 | <member>liburlmon.so.1.0</> |
| 453 | <member>libuser32.so.1.0</> |
| 454 | <member>libversion.so.1.0</> |
| 455 | <member>libw32skrnl.so.1.0</> |
| 456 | <member>libwnaspi32.so.1.0</> |
| 457 | <member>libwineps.so.1.0</> |
| 458 | <member>libwininet.so.1.0</> |
| 459 | <member>libjoystick.drv.so.1.0</> |
| 460 | <member>libwinmm.so.1.0</> |
| 461 | <member>libmcianim.drv.so.1.0</> |
| 462 | <member>libmciavi.drv.so.1.0</> |
| 463 | <member>libmcicda.drv.so.1.0</> |
| 464 | <member>libmciseq.drv.so.1.0</> |
| 465 | <member>libmciwave.drv.so.1.0</> |
| 466 | <member>libmidimap.drv.so.1.0</> |
| 467 | <member>libmsacm.drv.so.1.0</> |
| 468 | <member>libwineoss.drv.so.1.0</> |
| 469 | <member>libws2_32.so.1.0</> |
| 470 | <member>libwinspool.drv.so.1.0</> |
| 471 | <member>libwow32.so.1.0</> |
| 472 | <member>libwsock32.so.1.0</> |
| 473 | <member>libwine_unicode.so.1.0</> |
| 474 | </simplelist> |
| 475 | |
| 476 | </listitem> |
| 477 | |
| 478 | |
| 479 | <listitem id=manfiles> |
| 480 | <para> Man Pages</para> |
| 481 | <simplelist columns=1> |
| 482 | <member>wine.man</> |
| 483 | <member>wine.conf.man</> |
| 484 | <member>wmc.man</> |
| 485 | <member>wrc.man</> |
| 486 | </simplelist> |
| 487 | |
| 488 | </listitem> |
| 489 | |
| 490 | |
| 491 | <listitem id=includefiles> |
| 492 | <para> Include Files</para> |
| 493 | <simplelist columns=5> |
| 494 | |
| 495 | <member>basetsd.h</> |
| 496 | <member>cderr.h</> |
| 497 | <member>cguid.h</> |
| 498 | <member>commctrl.h</> |
| 499 | <member>commdlg.h</> |
| 500 | <member>compobj.h</> |
| 501 | <member>d3d.h</> |
| 502 | <member>d3dcaps.h</> |
| 503 | <member>d3dtypes.h</> |
| 504 | <member>d3dvec.inl</> |
| 505 | <member>dde.h</> |
| 506 | <member>ddeml.h</> |
| 507 | <member>ddraw.h</> |
| 508 | <member>digitalv.h</> |
| 509 | <member>dinput.h</> |
| 510 | <member>dispdib.h</> |
| 511 | <member>dlgs.h</> |
| 512 | <member>docobj.h</> |
| 513 | <member>dplay.h</> |
| 514 | <member>dplobby.h</> |
| 515 | <member>dsound.h</> |
| 516 | <member>guiddef.h</> |
| 517 | <member>imagehlp.h</> |
| 518 | <member>imm.h</> |
| 519 | <member>initguid.h</> |
| 520 | <member>instance.h</> |
| 521 | <member>lmcons.h</> |
| 522 | <member>lzexpand.h</> |
| 523 | <member>mapidefs.h</> |
| 524 | <member>mcx.h</> |
| 525 | <member>mmreg.h</> |
| 526 | <member>mmsystem.h</> |
| 527 | <member>msacm.h</> |
| 528 | <member>ntsecapi.h</> |
| 529 | <member>oaidl.h</> |
| 530 | <member>objbase.h</> |
| 531 | <member>objidl.h</> |
| 532 | <member>ocidl.h</> |
| 533 | <member>ole2.h</> |
| 534 | <member>ole2ver.h</> |
| 535 | <member>oleauto.h</> |
| 536 | <member>olectl.h</> |
| 537 | <member>oledlg.h</> |
| 538 | <member>oleidl.h</> |
| 539 | <member>poppack.h</> |
| 540 | <member>prsht.h</> |
| 541 | <member>psapi.h</> |
| 542 | <member>pshpack1.h</> |
| 543 | <member>pshpack2.h</> |
| 544 | <member>pshpack4.h</> |
| 545 | <member>pshpack8.h</> |
| 546 | <member>ras.h</> |
| 547 | <member>regstr.h</> |
| 548 | <member>richedit.h</> |
| 549 | <member>rpc.h</> |
| 550 | <member>servprov.h</> |
| 551 | <member>shellapi.h</> |
| 552 | <member>shlguid.h</> |
| 553 | <member>shlobj.h</> |
| 554 | <member>shlwapi.h</> |
| 555 | <member>sql.h</> |
| 556 | <member>sqlext.h</> |
| 557 | <member>sqltypes.h</> |
| 558 | <member>storage.h</> |
| 559 | <member>tapi.h</> |
| 560 | <member>tlhelp32.h</> |
| 561 | <member>unknwn.h</> |
| 562 | <member>urlmon.h</> |
| 563 | <member>ver.h</> |
| 564 | <member>vfw.h</> |
| 565 | <member>winbase.h</> |
| 566 | <member>wincon.h</> |
| 567 | <member>wincrypt.h</> |
| 568 | <member>windef.h</> |
| 569 | <member>windows.h</> |
| 570 | <member>windowsx.h</> |
| 571 | <member>wine/exception.h</> |
| 572 | <member>wine/icmpapi.h</> |
| 573 | <member>wine/ipexport.h</> |
| 574 | <member>wine/obj_base.h</> |
| 575 | <member>wine/obj_cache.h</> |
| 576 | <member>wine/obj_channel.h</> |
| 577 | <member>wine/obj_clientserver.h</> |
| 578 | <member>wine/obj_commdlgbrowser.h</> |
| 579 | <member>wine/obj_connection.h</> |
| 580 | <member>wine/obj_contextmenu.h</> |
| 581 | <member>wine/obj_control.h</> |
| 582 | <member>wine/obj_dataobject.h</> |
| 583 | <member>wine/obj_dockingwindowframe.h</> |
| 584 | <member>wine/obj_dragdrop.h</> |
| 585 | <member>wine/obj_enumidlist.h</> |
| 586 | <member>wine/obj_errorinfo.h</> |
| 587 | <member>wine/obj_extracticon.h</> |
| 588 | <member>wine/obj_inplace.h</> |
| 589 | <member>wine/obj_marshal.h</> |
| 590 | <member>wine/obj_misc.h</> |
| 591 | <member>wine/obj_moniker.h</> |
| 592 | <member>wine/obj_oleaut.h</> |
| 593 | <member>wine/obj_olefont.h</> |
| 594 | <member>wine/obj_oleobj.h</> |
| 595 | <member>wine/obj_oleundo.h</> |
| 596 | <member>wine/obj_oleview.h</> |
| 597 | <member>wine/obj_picture.h</> |
| 598 | <member>wine/obj_property.h</> |
| 599 | <member>wine/obj_propertystorage.h</> |
| 600 | <member>wine/obj_queryassociations.h</> |
| 601 | <member>wine/obj_shellbrowser.h</> |
| 602 | <member>wine/obj_shellextinit.h</> |
| 603 | <member>wine/obj_shellfolder.h</> |
| 604 | <member>wine/obj_shelllink.h</> |
| 605 | <member>wine/obj_shellview.h</> |
| 606 | <member>wine/obj_storage.h</> |
| 607 | <member>wine/unicode.h</> |
| 608 | <member>winerror.h</> |
| 609 | <member>wingdi.h</> |
| 610 | <member>wininet.h</> |
| 611 | <member>winioctl.h</> |
| 612 | <member>winnetwk.h</> |
| 613 | <member>winnls.h</> |
| 614 | <member>winnt.h</> |
| 615 | <member>winreg.h</> |
| 616 | <member>winresrc.h</> |
| 617 | <member>winsock.h</> |
| 618 | <member>winsock2.h</> |
| 619 | <member>winspool.h</> |
| 620 | <member>winsvc.h</> |
| 621 | <member>winuser.h</> |
| 622 | <member>winver.h</> |
| 623 | <member>wnaspi32.h</> |
| 624 | <member>wownt32.h</> |
| 625 | <member>wtypes.h</> |
| 626 | <member>zmouse.h</> |
| 627 | </simplelist> |
| 628 | |
| 629 | </listitem> |
| 630 | |
| 631 | <listitem id=docfiles> |
| 632 | <para> |
| 633 | Documentation files. |
| 634 | </para> |
| 635 | <para> |
| 636 | At the time of this writing, I do not have a |
| 637 | definitive list of documentation files to |
| 638 | be installed. However, they do include |
| 639 | the HTML files generated from the SGML in the Wine CVS tree. |
| 640 | </para> |
| 641 | </listitem> |
| 642 | |
| 643 | |
| 644 | </orderedlist> |
| 645 | |
| 646 | </sect1> |
| 647 | |
| 648 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 649 | <sect1 id="pkg-nonstatic"><title>Dynamic Wine Files</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 650 | |
| 651 | <para> |
| 652 | Wine also generates and depends on a number of dynamic |
| 653 | files, including user configuration files and registry files. |
| 654 | </para> |
| 655 | |
| 656 | <para> |
| 657 | At the time of this writing, there was not a clear |
| 658 | consensus of where these files should be located, and how |
| 659 | they should be handled. This section attempts |
| 660 | to explain the alternatives clearly. |
| 661 | </para> |
| 662 | |
| 663 | <orderedlist> |
| 664 | |
| 665 | <listitem> |
| 666 | <variablelist><title>Configuration File</title> |
| 667 | <varlistentry id=winerc><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/config</filename></term> |
| 668 | <listitem> |
| 669 | <para> |
| 670 | This file is the user local Wine configuration file. |
| 671 | At the time of this writing, if this file exists, |
| 672 | then no other configuration file is loaded. |
| 673 | </para> |
| 674 | </listitem> |
| 675 | </varlistentry> |
| 676 | |
| 677 | <varlistentry><term> |
| 678 | <filename><link linkend=ETCDIR endterm=etcdir.id></link>/wine.conf</filename></term> |
| 679 | <listitem> |
| 680 | <para> |
| 681 | This is the global Wine configuration file. It |
| 682 | is only used if the user running Wine has |
| 683 | no local configuration file. |
| 684 | </para> |
| 685 | <para> |
| 686 | Some packagers feel that this file should not |
| 687 | be supplied, and that only a wine.conf.default |
| 688 | should be given here. |
| 689 | </para> |
| 690 | <para> |
| 691 | Other packagers feel that this file should |
| 692 | be the predominant file used, and that |
| 693 | users should only shift to a local configuration |
| 694 | file if they need to. An argument has been |
| 695 | made that the local configuration file |
| 696 | should inherit the global configuration file. |
| 697 | At this time, Wine does not do this; |
| 698 | please refer to the WineHQ discussion |
| 699 | archives for the debate concerning this. |
| 700 | </para> |
| 701 | <para> |
| 702 | This debate is addressed more completely |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 703 | below, in <link linkend=pkg-strategy endterm=strategy.id></link>. |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 704 | </para> |
| 705 | </listitem> |
| 706 | </varlistentry> |
| 707 | </variablelist> |
| 708 | |
| 709 | </listitem> |
| 710 | |
| 711 | <listitem> |
| 712 | |
| 713 | <para>Registry Files</para> |
| 714 | |
| 715 | <para> |
| 716 | In order to replicate the Windows registry system, |
| 717 | Wine stores registry entries in a series of files. |
| 718 | |
| 719 | For an excellent overview of this issue, read |
| 720 | this |
| 721 | <ulink url="http://www.winehq.com/News/2000-25.html#FTR"> |
| 722 | Wine Weekly News feature.</ulink> |
| 723 | |
| 724 | </para> |
| 725 | |
| 726 | <para> |
| 727 | The bottom line is that, at Wine server startup, |
| 728 | Wine loads all registry entries into memory |
| 729 | to create an in memory image of the registry. |
| 730 | The order of files which Wine uses to load |
| 731 | registry entries is extremely important, |
| 732 | as it affects what registry entries are |
| 733 | actually present. The order is roughly that |
| 734 | .dat files from a Windows partion are loaded, |
| 735 | then global registry settings from <link linkend=ETCDIR endterm=etcdir.id></link>, |
| 736 | and then finally local registry settings are |
| 737 | loaded from <link linkend=WINECONFDIR endterm=wineconfdir.id></link> |
| 738 | . As each set are loaded, |
| 739 | they can override the prior entries. Thus, |
| 740 | the local registry files take precedence. |
| 741 | </para> |
| 742 | |
| 743 | <para> |
| 744 | Then, at exit (or at periodic intervals), |
| 745 | Wine will write either all registry entries |
| 746 | (or, with the default setting) changed |
| 747 | registry entries to files in the |
| 748 | <link linkend=WINECONFDIR endterm=wineconfdir.id></link>. |
| 749 | </para> |
| 750 | |
| 751 | <variablelist> |
| 752 | <varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/system.reg</filename></term> |
| 753 | <listitem> |
| 754 | <para> |
| 755 | This file contains the users local copy of |
| 756 | the HKEY_LOCAL_MACHINE registry hive. In general |
| 757 | use, it will contain only changes made to the |
| 758 | default registry values. |
| 759 | </para> |
| 760 | </listitem> |
| 761 | </varlistentry> |
| 762 | |
| 763 | <varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/user.reg</filename></term> |
| 764 | <listitem> |
| 765 | <para> |
| 766 | This file contains the users local copy of |
| 767 | the HKEY_CURRENT_USER registry hive. In |
| 768 | general use, it will contain only changes made to the |
| 769 | default registry values. |
| 770 | </para> |
| 771 | </listitem> |
| 772 | </varlistentry> |
| 773 | |
| 774 | <varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/userdef.reg</filename></term> |
| 775 | <listitem> |
| 776 | <para> |
| 777 | This file contains the users local copy of |
| 778 | the HKEY_USERS\.Default registry hive. In |
| 779 | general use, it will contain only changes made to the |
| 780 | default registry values. |
| 781 | </para> |
| 782 | </listitem> |
| 783 | </varlistentry> |
| 784 | |
| 785 | <varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/wine.userreg</filename></term> |
| 786 | <listitem> |
| 787 | <para> |
| 788 | This file is being deprecated. It is only read |
| 789 | if there is no user.reg or wine.userreg, and |
| 790 | it supplied the contents of HKEY_USERS. |
| 791 | </para> |
| 792 | </listitem> |
| 793 | </varlistentry> |
| 794 | |
| 795 | <varlistentry><term><filename><link linkend=ETCDIR endterm=etcdir.id></link>/wine.systemreg</filename></term> |
| 796 | <listitem> |
| 797 | <para> |
| 798 | This file contains the global values for |
| 799 | HKEY_LOCAL_MACHINE. The values in this file |
| 800 | can be overriden by the users local settings. |
| 801 | </para> |
| 802 | <note> |
| 803 | <para> |
| 804 | The location of this directory is hard coded within |
| 805 | wine, generally to /etc. This will hopefully be |
| 806 | fixed at some point in the future. |
| 807 | </para> |
| 808 | </note> |
| 809 | </listitem> |
| 810 | </varlistentry> |
| 811 | |
| 812 | |
| 813 | <varlistentry><term><filename><link linkend=ETCDIR endterm=etcdir.id></link>/wine.userreg</filename></term> |
| 814 | <listitem> |
| 815 | <para> |
| 816 | This file contains the global values for |
| 817 | HKEY_USERS. The values in this file |
| 818 | can be overriden by the users local settings. |
| 819 | This file is likely to be deprecated in |
| 820 | favor of a global wine.userdef.reg that will |
| 821 | only contain HKEY_USERS/.Default. |
| 822 | </para> |
| 823 | </listitem> |
| 824 | </varlistentry> |
| 825 | |
| 826 | </variablelist> |
| 827 | |
| 828 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 829 | </listitem> |
| 830 | |
| 831 | <listitem> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 832 | <variablelist><title>Other files in <link linkend=WINECONFDIR endterm=wineconfdir.id></link></title> |
| 833 | <varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/wineserver-[username]</filename></term> |
| 834 | <listitem> |
| 835 | <para> |
| 836 | This directory contains files used by Wine and the Wineserver |
| 837 | to communicate. A packager may want to have a facility |
| 838 | for the user to erase files in this directory, |
| 839 | as a crash in the wineserver resulting in a bogus lock |
| 840 | file can render wine unusable. |
| 841 | </para> |
| 842 | </listitem> |
| 843 | </varlistentry> |
| 844 | |
| 845 | <varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/cachedmetrics.[display]</filename></term> |
| 846 | <listitem> |
| 847 | <para> |
| 848 | This file contains font metrics for the given X display. |
| 849 | Generally, this cache is generated once at Wine start time. |
| 850 | </para> |
| 851 | </listitem> |
| 852 | </varlistentry> |
| 853 | |
| 854 | </variablelist> |
| 855 | </listitem> |
| 856 | |
| 857 | |
| 858 | </orderedlist> |
| 859 | |
| 860 | |
| 861 | </sect1> |
| 862 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 863 | <sect1 id="pkg-winpartition"><title>Important Files from a Windows Partition</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 864 | <para> |
| 865 | Wine has the ability to use files from an installation of the |
| 866 | actual Microsoft Windows operating system. Generally these |
| 867 | files are loaded on a VFAT partition that is mounted |
| 868 | under Linux. |
| 869 | </para> |
| 870 | <para> |
| 871 | This is probably the most important configuration detail. |
| 872 | The use of Windows registry and DLL files dramatically |
| 873 | alters the behaviour of Wine. If nothing else, |
| 874 | pacakager have to make this distinction clear |
| 875 | to the end user, so that they can intelligently |
| 876 | choose their configuration. |
| 877 | </para> |
| 878 | |
| 879 | |
| 880 | <orderedlist> |
| 881 | |
| 882 | <listitem> |
| 883 | <variablelist><title>Registry Files</title> |
| 884 | <varlistentry><term><filename>[WINDOWSDIR]/system32/system.dat</filename></term> |
| 885 | <listitem> |
| 886 | <para> |
| 887 | </para> |
| 888 | </listitem> |
| 889 | </varlistentry> |
| 890 | |
| 891 | <varlistentry><term><filename>[WINDOWSDIR]/system32/user.dat</filename></term> |
| 892 | <listitem> |
| 893 | <para> |
| 894 | </para> |
| 895 | </listitem> |
| 896 | </varlistentry> |
| 897 | |
| 898 | <varlistentry><term><filename>[WINDOWSDIR]/win.ini</filename></term> |
| 899 | <listitem> |
| 900 | <para> |
| 901 | </para> |
| 902 | </listitem> |
| 903 | </varlistentry> |
| 904 | |
| 905 | </variablelist> |
| 906 | |
| 907 | </listitem> |
| 908 | |
| 909 | <listitem> |
| 910 | <para> |
| 911 | Windows Dynamic Link Libraries ([WINDOWSDIR]/system32/*.dll) |
| 912 | </para> |
| 913 | <para> |
| 914 | Wine has the ability to use the actuall Windows DLL files |
| 915 | when running an application. An end user can configure |
| 916 | Wine so that Wine uses some or all of these DLL files |
| 917 | when running a given application. |
| 918 | </para> |
| 919 | </listitem> |
| 920 | |
| 921 | </orderedlist> |
| 922 | |
| 923 | </sect1> |
| 924 | |
| 925 | </chapter> |
| 926 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 927 | <chapter id="pkg-strategy"><title id=strategy.id>Packaging Strategies</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 928 | |
| 929 | <para> |
| 930 | There has recently been a lot of discussion on the Wine |
| 931 | development mailing list about the best way to |
| 932 | build Wine packages. |
| 933 | </para> |
| 934 | <para> |
| 935 | There was a lot of discussion, and several diverging |
| 936 | points of view. This section of the document |
| 937 | attempts to present the areas of common agreement, |
| 938 | and also to present the different approaches |
| 939 | advocated on the mailing list. |
| 940 | </para> |
| 941 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 942 | <sect1 id="pkg-whatfiles"><title>Distribution of Wine into packages</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 943 | <para> |
| 944 | The most basic question to ask is given the Wine CVS tree, |
| 945 | what physical files are you, the packager, going to produce? |
| 946 | Are you going to produce only a wine.rpm (as Marcus has done), |
| 947 | or are you going to produce 5 debian files |
| 948 | (libwine-dev, libwine, wine-doc, wine-utils, and wine) as |
| 949 | Ove has done? |
| 950 | </para> |
| 951 | <para> |
| 952 | At this point, there is no consensus |
| 953 | amongst the wine-devel community on this subject. |
| 954 | </para> |
| 955 | </sect1> |
| 956 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 957 | <sect1 id="pkg-wherefiles"><title>Where to install files</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 958 | <para> |
| 959 | This question is not really contested. It will vary |
| 960 | by distribution, and is really up to the packager. |
| 961 | As a guideline, the current 'make install' process |
| 962 | seems to behave such that |
| 963 | if we pick a single <link linkend=PREFIX endterm=prefix.id></link>, |
| 964 | then : |
| 965 | </para> |
| 966 | <orderedlist> |
| 967 | |
| 968 | <listitem> |
| 969 | <para> |
| 970 | all <link linkend=binfiles>binary files</link> go into |
| 971 | <link linkend=PREFIX endterm=prefix.id></link>/bin, |
| 972 | </para> |
| 973 | </listitem> |
| 974 | |
| 975 | <listitem> |
| 976 | <para> |
| 977 | all <link linkend=libfiles>library files</link> go into |
| 978 | <link linkend=PREFIX endterm=prefix.id></link>/lib, |
| 979 | </para> |
| 980 | </listitem> |
| 981 | |
| 982 | <listitem> |
| 983 | <para> |
| 984 | all <link linkend=includefiles>include files</link> go into |
| 985 | <link linkend=PREFIX endterm=prefix.id></link>/include, |
| 986 | </para> |
| 987 | </listitem> |
| 988 | |
| 989 | <listitem> |
| 990 | <para> |
| 991 | all <link linkend=docfiles>documentation files</link> go into |
| 992 | <link linkend=PREFIX endterm=prefix.id></link>/doc/wine, |
| 993 | </para> |
| 994 | </listitem> |
| 995 | |
| 996 | <listitem> |
| 997 | <para> |
| 998 | and <link linkend=manfiles>man pages</link> go into |
| 999 | <link linkend=PREFIX endterm=prefix.id></link>/man, |
| 1000 | </para> |
| 1001 | </listitem> |
| 1002 | |
| 1003 | </orderedlist> |
| 1004 | |
| 1005 | <para> |
| 1006 | Refer to the specific information on the Debian package |
| 1007 | and the OpenLinux package for specific details on how |
| 1008 | those packages are built. |
| 1009 | </para> |
| 1010 | |
| 1011 | <sect2 id=opt><title>The question of /opt/wine</title> |
| 1012 | <para> |
| 1013 | The FHS 2.1 specification suggests that Wine as a package |
| 1014 | should be installed to /opt/wine. None of the |
| 1015 | existing packages follow this guideline (today; |
| 1016 | check again tomorrow). |
| 1017 | </para> |
| 1018 | </sect2> |
| 1019 | |
| 1020 | </sect1> |
| 1021 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 1022 | <sect1 id="pkg-whattomake"><title>What files to create</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1023 | <para> |
| 1024 | After installing the static and shareable files, the next |
| 1025 | question the packager needs to ask is how much dynamic |
| 1026 | configuration will be done, and what configuration |
| 1027 | files should be created. |
| 1028 | </para> |
| 1029 | <para> |
| 1030 | There are several approaches to this: |
| 1031 | <orderedlist> |
| 1032 | <listitem> |
| 1033 | <para> |
| 1034 | Rely completely on user file space - install nothing |
| 1035 | </para> |
| 1036 | <para> |
| 1037 | This approach relies upon the new winecfg utility and |
| 1038 | the new ability of Wine to launch winecfg if no configuration file is found. |
| 1039 | The basic concept is that no global configuration files |
| 1040 | are created at install time. |
| 1041 | Instead, Wine configuration files are created on the |
| 1042 | fly by the winecfg program when Wine is invoked. |
| 1043 | Further, winecfg creates default Windows directories |
| 1044 | and paths that are stored completely in |
| 1045 | the users <link linkend=WINECONFDIR endterm=wineconfdir.id></link>. |
| 1046 | </para> |
| 1047 | <para> |
| 1048 | This approach has the benefit of simplicity in that all |
| 1049 | Wine files are either stored under /opt/wine or under |
| 1050 | ~/.wine. Further, there is only ever one Wine |
| 1051 | configuration file. |
| 1052 | </para> |
| 1053 | <para> |
| 1054 | This approach, however, adds another level of complexity. |
| 1055 | It does not allow Wine to run Solitaire 'out of the box'; |
| 1056 | the user must run the configuration program first. Further, |
| 1057 | winecfg requires Tcl/Tk, a requirement not beloved by some. |
| 1058 | Additionally, this approach closes the door on multi |
| 1059 | user configurations and presumes a single user approach. |
| 1060 | </para> |
| 1061 | </listitem> |
| 1062 | |
| 1063 | |
| 1064 | <listitem> |
| 1065 | <para> |
| 1066 | Build a reasonable set of defaults for the global wine.conf, |
| 1067 | facilitate creation of a user's local Wine configuration. |
| 1068 | </para> |
| 1069 | <para> |
| 1070 | This approach, best shown by Marcus, causes the |
| 1071 | installation process to auto scan the system, |
| 1072 | and generate a global wine.conf file with best |
| 1073 | guess defaults. The OpenLinux packages follow |
| 1074 | this behaviour. |
| 1075 | </para> |
| 1076 | <para> |
| 1077 | The keys to this approach are always putting |
| 1078 | an existing Windows partition into the |
| 1079 | path, and being able to run Solitaire |
| 1080 | right out of the box. |
| 1081 | Another good thing that Marcus does is he |
| 1082 | detects a first time installation and |
| 1083 | does some clever things to improve the |
| 1084 | user's Wine experience. |
| 1085 | </para> |
| 1086 | <para> |
| 1087 | A flaw with this approach, however, is it doesn't |
| 1088 | give the user an obvious way to choose not to |
| 1089 | use a Windows partition. |
| 1090 | </para> |
| 1091 | </listitem> |
| 1092 | |
| 1093 | <listitem> |
| 1094 | <para> |
| 1095 | Build a reasonable set of defaults for the global wine.conf, |
| 1096 | and ask the user if possible |
| 1097 | </para> |
| 1098 | <para> |
| 1099 | This approach, demonstrated by Ove, causes the |
| 1100 | installation process to auto scan the system, |
| 1101 | and generate a global wine.conf file with best |
| 1102 | guess defaults. Because Ove built a Debian |
| 1103 | package, he was able to further query debconf and |
| 1104 | get permission to ask the user some questions, |
| 1105 | allowing the user to decide whether or not to |
| 1106 | use a Windows partition. |
| 1107 | </para> |
| 1108 | </listitem> |
| 1109 | |
| 1110 | |
| 1111 | </orderedlist> |
| 1112 | </para> |
| 1113 | |
| 1114 | </sect1> |
| 1115 | |
| 1116 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 1117 | <sect1 id="pkg-wineconf"><title>What to put into the wine config file</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1118 | <para> |
| 1119 | The next hard question is what the Wine config should look like. |
| 1120 | The current best practices seems to involve using drives from M to Z. |
| 1121 | </para> |
| 1122 | <caution><para>This isn't done yet! Fix it, Jer!</para></caution> |
| 1123 | </sect1> |
| 1124 | |
| 1125 | |
| 1126 | </chapter> |
| 1127 | |
| 1128 | |
| 1129 | |
| 1130 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 1131 | <chapter id="pkg-implementation"> <title>Implementation</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1132 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 1133 | <sect1 id="pkg-openlinux"><title>OpenLinux Sample</title> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1134 | |
| 1135 | <orderedlist inheritnum="inherit"> |
| 1136 | <listitem> |
| 1137 | <para>Building the package</para> |
| 1138 | <para> |
| 1139 | WINE is configured the usual way (depending on your |
| 1140 | build environment). The "prefix" is chosen using your |
| 1141 | application placement policy |
| 1142 | (<filename>/usr/</filename>, |
| 1143 | <filename>/usr/X11R6/</filename>, |
| 1144 | <filename>/opt/wine/</filename> or similar). The |
| 1145 | configuration files (<filename>wine.conf</filename>, |
| 1146 | <filename>wine.userreg</filename>, |
| 1147 | <filename>wine.systemreg</filename>) are targeted for |
| 1148 | <filename>/etc/wine/</filename> (rationale: FHS 2.0, |
| 1149 | multiple readonly configuration files of a package). |
| 1150 | </para> |
| 1151 | <para> |
| 1152 | Example (split this into <literal>%build</literal> and |
| 1153 | <literal>%install</literal> section for |
| 1154 | <command>rpm</command>): |
| 1155 | </para> |
| 1156 | <screen> |
| 1157 | CFLAGS=$RPM_OPT_FLAGS \ |
| 1158 | ./configure --prefix=/usr/X11R6 --sysconfdir=/etc/wine/ --enable-dll |
| 1159 | make |
| 1160 | BR=$RPM_BUILD_ROOT |
| 1161 | make install prefix=$BR/usr/X11R6/ sysconfdir=$BR/etc/wine/ |
| 1162 | install -d $BR/etc/wine/ |
| 1163 | install -m 644 wine.ini $BR/etc/wine/wine.conf |
| 1164 | |
| 1165 | # Put all our dlls in a seperate directory. (this works only if |
| 1166 | # you have a buildroot) |
| 1167 | install -d $BR/usr/X11R6/lib/wine |
| 1168 | mv $BR/usr/X11R6/lib/lib* $BR/usr/X11R6/lib/wine/ |
| 1169 | |
| 1170 | # the clipboard server is started on demand. |
| 1171 | install -m 755 windows/x11drv/wineclipsrv $BR/usr/X11R6/bin/ |
| 1172 | |
| 1173 | # The WINE server is needed. |
| 1174 | install -m 755 server/wineserver $BR/usr/X11R6/bin/ |
| 1175 | </screen> |
| 1176 | <para> |
| 1177 | Here we unfortunately do need to create |
| 1178 | <filename>wineuser.reg</filename> and |
| 1179 | <filename>winesystem.reg</filename> from the WINE |
| 1180 | distributed <filename>winedefault.reg</filename>. This |
| 1181 | can be done using <command>./regapi</command> once for |
| 1182 | one example user and then reusing his |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1183 | <filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/user.reg</filename> and |
| 1184 | <filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/system.reg</filename> files. |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1185 | <note> |
| 1186 | <title>FIXME</title> |
| 1187 | <para>this needs to be done better</para> |
| 1188 | </note> |
| 1189 | </para> |
| 1190 | <screen> |
| 1191 | install -m 644 wine.sytemreg $BR/etc/wine/ |
| 1192 | install -m 644 wine.userreg $BR/etc/wine/ |
| 1193 | </screen> |
| 1194 | <para> |
| 1195 | There are now a lot of libraries generated by the |
| 1196 | build process, so a seperate library directory should |
| 1197 | be used. |
| 1198 | </para> |
| 1199 | <screen> |
| 1200 | install -d 755 $BR/usr/X11R6/lib/ |
| 1201 | mv $BR/ |
| 1202 | </screen> |
| 1203 | <para> |
| 1204 | You will need to package the files: |
| 1205 | </para> |
| 1206 | <screen> |
| 1207 | $prefix/bin/wine, $prefix/bin/dosmod, $prefix/lib/wine/* |
| 1208 | $prefix/man/man1/wine.1, $prefix/include/wine/*, |
| 1209 | $prefix/bin/wineserver, $prefix/bin/wineclipsrv |
| 1210 | |
| 1211 | %config /etc/wine/* |
| 1212 | %doc ... choose from the toplevel directory and documentation/ |
| 1213 | </screen> |
| 1214 | <para> |
| 1215 | The post-install script: |
| 1216 | </para> |
| 1217 | <screen> |
| 1218 | if ! grep -q /usr/X11R6/lib/wine /etc/ld.so.conf; then |
| 1219 | echo "/usr/X11R6/lib/wine" >> /etc/ld.so.conf |
| 1220 | fi |
| 1221 | /sbin/ldconfig |
| 1222 | </screen> |
| 1223 | <para> |
| 1224 | The post-uninstall script: |
| 1225 | </para> |
| 1226 | <screen> |
| 1227 | if [ "$1" = 0 ]; then |
| 1228 | perl -ni -e 'print unless m:/usr/X11R6/lib/wine:;' /etc/ld.so.conf |
| 1229 | fi |
| 1230 | /sbin/ldconfig |
| 1231 | </screen> |
| 1232 | </listitem> |
| 1233 | <listitem> |
| 1234 | <para>Creating a good default configuration file</para> |
| 1235 | <para> |
| 1236 | For the rationales of needing as less input from the |
| 1237 | user as possible arises the need for a very good |
| 1238 | configuration file. The one supplied with WINE is |
| 1239 | currently lacking. We need: |
| 1240 | </para> |
| 1241 | <itemizedlist> |
| 1242 | <listitem> |
| 1243 | <para> |
| 1244 | [Drive X]: |
| 1245 | </para> |
| 1246 | <itemizedlist> |
| 1247 | <listitem> |
| 1248 | <para> |
| 1249 | A for the floppy. Specify your distributions |
| 1250 | default floppy mountpoint here. |
| 1251 | </para> |
| 1252 | <programlisting> |
| 1253 | Path=/auto/floppy |
| 1254 | </programlisting> |
| 1255 | </listitem> |
| 1256 | <listitem> |
| 1257 | <para> |
| 1258 | C for the <filename>C:\</filename> directory. |
| 1259 | Here we use the users homedirectory, for most |
| 1260 | applications do see <filename>C:\</filename> |
| 1261 | as root-writeable directory of every windows |
| 1262 | installation and this basically is it in the |
| 1263 | UNIX-user context. |
| 1264 | </para> |
| 1265 | <programlisting> |
| 1266 | Path=${HOME} |
| 1267 | </programlisting> |
| 1268 | </listitem> |
| 1269 | <listitem> |
| 1270 | <para> |
| 1271 | R for the CD-Rom drive. Specify your |
| 1272 | distributions default CD-ROM drives mountpoint |
| 1273 | here. |
| 1274 | </para> |
| 1275 | <programlisting> |
| 1276 | Path=/auto/cdrom |
| 1277 | </programlisting> |
| 1278 | </listitem> |
| 1279 | <listitem> |
| 1280 | <para> |
| 1281 | T for temporary storage. We do use |
| 1282 | <filename>/tmp/</filename> (rationale: between |
| 1283 | process temporary data belongs to |
| 1284 | <filename>/tmp/</filename>, FHS 2.0) |
| 1285 | </para> |
| 1286 | </listitem> |
| 1287 | <listitem> |
| 1288 | <para> |
| 1289 | W for the original Windows installation. This |
| 1290 | drive points to the |
| 1291 | <filename>windows\</filename> subdirectory of |
| 1292 | the original windows installation. This avoids |
| 1293 | problems with renamed |
| 1294 | <filename>windows</filename> directories (as |
| 1295 | for instance <filename>lose95</filename>, |
| 1296 | <filename>win</filename> or |
| 1297 | <filename>sys\win95</filename>). During |
| 1298 | compile/package/install we leave this to be |
| 1299 | <filename>/</filename>, it has to be |
| 1300 | configured after the package install. |
| 1301 | </para> |
| 1302 | </listitem> |
| 1303 | <listitem> |
| 1304 | <para> |
| 1305 | Z for the UNIX Root directory. This avoids any |
| 1306 | problems with "could not find drive for |
| 1307 | current directory" users occasionaly complain |
| 1308 | about in the newsgroup and the ircchannel. It |
| 1309 | also makes the whole directory structure |
| 1310 | browseable. The type of Z should be network, |
| 1311 | so applications expect it to be readonly. |
| 1312 | </para> |
| 1313 | <programlisting> |
| 1314 | Path=/ |
| 1315 | </programlisting> |
| 1316 | </listitem> |
| 1317 | </itemizedlist> |
| 1318 | </listitem> |
| 1319 | <listitem> |
| 1320 | <para> |
| 1321 | [wine]: |
| 1322 | </para> |
| 1323 | <screen> |
| 1324 | Windows=c:\windows\ (the windows/ subdirectory in the users |
| 1325 | homedirectory) |
| 1326 | System=c:\windows\system\ (the windows/system subdirectory in the users |
| 1327 | homedirectory) |
| 1328 | Path=c:\windows;c:\windows\system;c:\windows\system32;w:\;w:\system;w:\system32; |
| 1329 | ; Using this trick we have in fact two windows installations in one, we |
| 1330 | ; get the stuff from the readonly installation and can write to our own. |
| 1331 | Temp=t:\ (the TEMP directory) |
| 1332 | </screen> |
| 1333 | </listitem> |
| 1334 | <listitem> |
| 1335 | <para>[Tweak.Layout]</para> |
| 1336 | <screen> |
| 1337 | WineLook=win95 (just the coolest look ;) |
| 1338 | </screen> |
| 1339 | </listitem> |
| 1340 | <listitem> |
| 1341 | <para> |
| 1342 | Possibly modify the [spooler], [serialports] and |
| 1343 | [parallelports] sections. |
| 1344 | </para> |
| 1345 | <note> |
| 1346 | <title>FIXME</title> |
| 1347 | <para>possibly more, including printer stuff.</para> |
| 1348 | </note> |
| 1349 | </listitem> |
| 1350 | </itemizedlist> |
| 1351 | |
| 1352 | <para>Add this prepared configuration file to the package.</para> |
| 1353 | </listitem> |
| 1354 | <listitem> |
| 1355 | <para>Installing WINE for the system administrator</para> |
| 1356 | <para> |
| 1357 | Install the package using the usual packager |
| 1358 | <command>rpm -i wine.rpm</command>. You may edit |
| 1359 | <filename>/etc/wine/wine.conf</filename>, [Drive W], |
| 1360 | to point to a possible windows installation right |
| 1361 | after the install. That's it. |
| 1362 | </para> |
| 1363 | <para> |
| 1364 | Note that on Linux you should somehow try to add the |
| 1365 | <option>unhide</option> mount option (see <command>man |
| 1366 | mount</command>) to the CD-ROM entry in |
| 1367 | <filename>/etc/fstab</filename> during package |
| 1368 | install, as several stupid Windows programs mark some |
| 1369 | setup (!) files as hidden (ISO9660) on CD-ROMs, which |
| 1370 | will greatly confuse users as they won't find their |
| 1371 | setup files on the CD-ROMs as they were used on |
| 1372 | Windows systems when <option>unhide</option> is not |
| 1373 | set ;-\ And of course the setup program will complain |
| 1374 | that <filename>setup.ins</filename> or some other mess |
| 1375 | is missing... If you choose to do so, then please make |
| 1376 | this change verbose to the admin. |
| 1377 | </para> |
| 1378 | </listitem> |
| 1379 | <listitem> |
| 1380 | <para>Installing WINE for the user</para> |
| 1381 | <para> |
| 1382 | The user will need to run a setup script before the |
| 1383 | first invocation of WINE. This script should: |
| 1384 | </para> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1385 | |
| 1386 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1387 | <itemizedlist> |
| 1388 | <listitem> |
| 1389 | <para> |
| 1390 | Copy <filename>/etc/wine/wine.conf</filename> for |
| 1391 | user modification. |
| 1392 | </para> |
| 1393 | </listitem> |
| 1394 | <listitem> |
| 1395 | <para> |
| 1396 | Allow specification of the original windows |
| 1397 | installation to use (which modifies the copied |
| 1398 | <filename>wine.conf</filename> file). |
| 1399 | </para> |
| 1400 | </listitem> |
| 1401 | <listitem> |
| 1402 | <para> |
| 1403 | Create the windows directory structure |
| 1404 | (<filename>c:\windows</filename>, |
| 1405 | <filename>c:\windows\system</filename>, |
| 1406 | <filename>c:\windows\Start Menu\Programs</filename>, |
| 1407 | <filename>c:\Program Files</filename>, |
| 1408 | <filename>c:\Desktop</filename>, etc.) |
| 1409 | </para> |
| 1410 | </listitem> |
| 1411 | <listitem> |
| 1412 | <para> |
| 1413 | Symlink all <filename>.dll</filename> and |
| 1414 | <filename>.exe</filename> files from the original |
| 1415 | windows installation to the |
| 1416 | <filename>windows</filename> directory. Why? Some |
| 1417 | programs reference "%windowsdir%/file.dll" or |
| 1418 | "%systemdir%/file.dll" directly and fail if they |
| 1419 | are not present. |
| 1420 | </para> |
| 1421 | <para> |
| 1422 | This will give a huge number of symlinks, yes. |
| 1423 | However, if an installer later overwrites on of |
| 1424 | those files, it will overwrite the symlink (so |
| 1425 | that the file now lies in the |
| 1426 | <filename>windows/</filename> subdirectory). |
| 1427 | </para> |
| 1428 | <note> |
| 1429 | <title>FIXME</title> |
| 1430 | <para>Not sure this is needed for all files.</para> |
| 1431 | </note> |
| 1432 | </listitem> |
| 1433 | <listitem> |
| 1434 | <para> |
| 1435 | On later invocation the script might want to |
| 1436 | compare regular files in the users windows |
| 1437 | directories and in the global windows directories |
| 1438 | and replace same files by symlinks (to avoid |
| 1439 | diskspace problems). |
| 1440 | </para> |
| 1441 | </listitem> |
| 1442 | </itemizedlist> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1443 | |
| 1444 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1445 | </listitem> |
| 1446 | </orderedlist> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1447 | |
| 1448 | |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1449 | <sect2 id=sample><title>Sample <filename>wine.ini</filename> for OpenLinux 2.x:</title> |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1450 | |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1451 | <programlisting> |
| 1452 | |
| 1453 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1454 | ;; |
| 1455 | ;; MS-DOS drives configuration |
| 1456 | ;; |
| 1457 | ;; Each section has the following format: |
| 1458 | ;; [Drive X] |
| 1459 | ;; Path=xxx (Unix path for drive root) |
| 1460 | ;; Type=xxx (supported types are 'floppy', 'hd', 'cdrom' and 'network') |
| 1461 | ;; Label=xxx (drive label, at most 11 characters) |
| 1462 | ;; Serial=xxx (serial number, 8 characters hexadecimal number) |
| 1463 | ;; Filesystem=xxx (supported types are 'msdos'/'dos'/'fat', 'win95'/'vfat', 'unix') |
| 1464 | ;; This is the FS Wine is supposed to emulate on a certain |
| 1465 | ;; directory structure. |
| 1466 | ;; Recommended: |
| 1467 | ;; - "win95" for ext2fs, VFAT and FAT32 |
| 1468 | ;; - "msdos" for FAT16 (ugly, upgrading to VFAT driver strongly recommended) |
| 1469 | ;; DON'T use "unix" unless you intend to port programs using Winelib ! |
| 1470 | ;; Device=/dev/xx (only if you want to allow raw device access) |
| 1471 | ;; |
| 1472 | |
| 1473 | ; |
| 1474 | ; |
| 1475 | ; Floppy 'A' and 'B' |
| 1476 | ; |
| 1477 | ; OpenLinux uses an automounter under /auto/, so we use that too. |
| 1478 | ; |
| 1479 | [Drive A] |
| 1480 | Path=/auto/floppy/ |
| 1481 | Type=floppy |
| 1482 | Label=Floppy |
| 1483 | Serial=87654321 |
| 1484 | Device=/dev/fd0 |
| 1485 | Filesystem=win95 |
| 1486 | |
| 1487 | ; |
| 1488 | ; Comment in ONLY if you have a second floppy or the automounter hangs |
| 1489 | ; for 5 minutes. |
| 1490 | ; |
| 1491 | ;[Drive B] |
| 1492 | ;Path=/auto/floppy2/ |
| 1493 | ;Type=floppy |
| 1494 | ;Label=Floppy |
| 1495 | ;Serial=87654321 |
| 1496 | ;Device=/dev/fd1 |
| 1497 | ;Filesystem=win95 |
| 1498 | |
| 1499 | |
| 1500 | ; |
| 1501 | ; Drive 'C' links to the users homedirectory. |
| 1502 | ; |
| 1503 | ; This must point to a writeable directory structure (not your readonly |
| 1504 | ; mounted DOS partitions!) since programs want to dump stuff into |
| 1505 | ; "Program Files/" "Programme/", "windows/", "windows/system/" etc. |
| 1506 | ; |
| 1507 | ; The basic structure is set up using the config script. |
| 1508 | ; |
| 1509 | [Drive C] |
| 1510 | Path=${HOME} |
| 1511 | Type=hd |
| 1512 | Label=MS-DOS |
| 1513 | Filesystem=win95 |
| 1514 | |
| 1515 | ; |
| 1516 | ; /tmp/ directory |
| 1517 | ; |
| 1518 | ; The temp drive (and directory) points to /tmp/. Windows programs fill it |
| 1519 | ; with junk, so it is approbiate. |
| 1520 | ; |
| 1521 | [Drive T] |
| 1522 | Path=/tmp |
| 1523 | Type=hd |
| 1524 | Label=Tmp Drive |
| 1525 | Filesystem=win95 |
| 1526 | |
| 1527 | ; |
| 1528 | ; 'U'ser homedirectory |
| 1529 | ; |
| 1530 | ; Just in case you want C:\ elsewhere. |
| 1531 | ; |
| 1532 | [Drive U] |
| 1533 | Path=${HOME} |
| 1534 | Type=hd |
| 1535 | Label=Home |
| 1536 | Filesystem=win95 |
| 1537 | |
| 1538 | ; |
| 1539 | ; CD-'R'OM drive (automounted) |
| 1540 | ; |
| 1541 | ; The default cdrom drive. |
| 1542 | ; |
| 1543 | ; If an application (or game) wants a specific CD-ROM you might have to |
| 1544 | ; temporary change the Label to the one of the CD itself. |
| 1545 | ; |
| 1546 | ; How to read them is described in /usr/doc/wine-cvs-xxxxx/cdrom-labels. |
| 1547 | ; |
| 1548 | [Drive R] |
| 1549 | Path=/auto/cdrom |
| 1550 | Type=cdrom |
| 1551 | Label=CD-Rom |
| 1552 | Filesystem=win95 |
| 1553 | |
| 1554 | ; |
| 1555 | ; The drive where the old windows installation resides (it points to the |
| 1556 | ; windows/ subdirectory). |
| 1557 | ; |
| 1558 | ; The Path is modified by the winesetup script. |
| 1559 | ; |
| 1560 | [Drive W] |
| 1561 | Path=/ |
| 1562 | Type=network |
| 1563 | Label=Windows |
| 1564 | Filesystem=win95 |
| 1565 | ; |
| 1566 | ; The UNIX Root directory, so all other programs and directories are reachable. |
| 1567 | ; |
| 1568 | ; type network is used to tell programs to not write here. |
| 1569 | ; |
| 1570 | [Drive Z] |
| 1571 | Path=/ |
| 1572 | Type=network |
| 1573 | Label=ROOT |
| 1574 | Filesystem=win95 |
| 1575 | |
| 1576 | ; |
| 1577 | ; Standard Windows path entries. WINE will not work if they are incorrect. |
| 1578 | ; |
| 1579 | [wine] |
| 1580 | ; |
| 1581 | ; The windows/ directory. It must be writeable, for programs write into it. |
| 1582 | ; |
| 1583 | Windows=c:\windows |
| 1584 | ; |
| 1585 | ; The windows/system/ directory. It must be writeable, for especially setup |
| 1586 | ; programs install dlls in there. |
| 1587 | ; |
| 1588 | System=c:\windows\system |
| 1589 | ; |
| 1590 | ; The temp directory. Should be cleaned regulary, since install programs leave |
| 1591 | ; junk without end in there. |
| 1592 | ; |
| 1593 | Temp=t:\ |
| 1594 | ; |
| 1595 | ; The dll search path. It should contain at least: |
| 1596 | ; - the windows and the windows/system directory of the user. |
| 1597 | ; - the global windows and windows/system directory (from a possible readonly |
| 1598 | ; windows installation either on msdos filesystems or somewhere in the UNIX |
| 1599 | ; directory tree) |
| 1600 | ; - any other windows style directories you want to add. |
| 1601 | ; |
| 1602 | Path=c:\windows;c:\windows\system;c:\windows\system32;t:\;w:\;w:\system;w:\system32 |
| 1603 | ; |
| 1604 | ; Outdated and no longer used. (but needs to be present). |
| 1605 | ; |
| 1606 | SymbolTableFile=./wine.sym |
| 1607 | |
| 1608 | # <wineconf> |
| 1609 | |
| 1610 | ; |
| 1611 | ; Dll loadorder defaults. No need to modify. |
| 1612 | ; |
| 1613 | [DllDefaults] |
| 1614 | EXTRA_LD_LIBRARY_PATH=${HOME}/wine/cvs/lib |
| 1615 | DefaultLoadOrder = native, elfdll, so, builtin |
| 1616 | |
| 1617 | ; |
| 1618 | ; What 32/16 dlls belong to each other (context wise). No need to modify. |
| 1619 | ; |
| 1620 | [DllPairs] |
| 1621 | kernel = kernel32 |
| 1622 | gdi = gdi32 |
| 1623 | user = user32 |
| 1624 | commdlg = comdlg32 |
| 1625 | commctrl= comctl32 |
| 1626 | ver = version |
| 1627 | shell = shell32 |
| 1628 | lzexpand= lz32 |
| 1629 | mmsystem= winmm |
| 1630 | msvideo = msvfw32 |
| 1631 | winsock = wsock32 |
| 1632 | |
| 1633 | ; |
| 1634 | ; What type of dll to use in their respective loadorder. |
| 1635 | ; |
| 1636 | [DllOverrides] |
| 1637 | kernel32, gdi32, user32 = builtin |
| 1638 | kernel, gdi, user = builtin |
| 1639 | toolhelp = builtin |
| 1640 | comdlg32, commdlg = elfdll, builtin, native |
| 1641 | version, ver = elfdll, builtin, native |
| 1642 | shell32, shell = builtin, native |
| 1643 | lz32, lzexpand = builtin, native |
| 1644 | commctrl, comctl32 = builtin, native |
| 1645 | wsock32, winsock = builtin |
| 1646 | advapi32, crtdll, ntdll = builtin, native |
| 1647 | mpr, winspool = builtin, native |
| 1648 | ddraw, dinput, dsound = builtin, native |
| 1649 | winmm, mmsystem = builtin |
| 1650 | msvideo, msvfw32 = builtin, native |
| 1651 | mcicda.drv, mciseq.drv = builtin, native |
| 1652 | mciwave.drv = builtin, native |
| 1653 | mciavi.drv, mcianim.drv = native, builtin |
| 1654 | w32skrnl = builtin |
| 1655 | wnaspi32, wow32 = builtin |
| 1656 | system, display, wprocs = builtin |
| 1657 | wineps = builtin |
| 1658 | |
| 1659 | ; |
| 1660 | ; Options section. Does not need to be edited. |
| 1661 | ; |
| 1662 | [options] |
| 1663 | ; allocate how much system colors on startup. No need to modify. |
| 1664 | AllocSystemColors=100 |
| 1665 | |
| 1666 | ;; |
| 1667 | ; Font specification. You usually do not need to edit this section. |
| 1668 | ; |
| 1669 | ; Read documentation/fonts before adding aliases |
| 1670 | ; |
| 1671 | [fonts] |
| 1672 | ; The resolution defines what fonts to use (usually either 75 or 100 dpi fonts, |
| 1673 | ; or nearest match). |
| 1674 | Resolution = 96 |
| 1675 | ; Default font |
| 1676 | Default = -adobe-times- |
| 1677 | |
| 1678 | ; |
| 1679 | ; serial ports used by "COM1" "COM2" "COM3" "COM4". Useful for applications |
| 1680 | ; that try to access serial ports. |
| 1681 | ; |
| 1682 | [serialports] |
| 1683 | Com1=/dev/ttyS0 |
| 1684 | Com2=/dev/ttyS1 |
| 1685 | Com3=/dev/modem,38400 |
| 1686 | Com4=/dev/modem |
| 1687 | |
| 1688 | ; |
| 1689 | ; parallel port(s) used by "LPT1" etc. Useful for applications that try to |
| 1690 | ; access these ports. |
| 1691 | ; |
| 1692 | [parallelports] |
| 1693 | Lpt1=/dev/lp0 |
| 1694 | |
| 1695 | ; |
| 1696 | ; What spooling program to use on printing. |
| 1697 | ; Use "|program" or "filename", where the output will be dumped into. |
| 1698 | ; |
| 1699 | [spooler] |
| 1700 | LPT1:=|lpr |
| 1701 | LPT2:=|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q - |
| 1702 | LPT3:=/dev/lp3 |
| 1703 | |
| 1704 | ; |
| 1705 | ; Allow port access to WINE started by the root user. Useful for some |
| 1706 | ; supported devices, but it can make the system unstable. |
| 1707 | ; Read /usr/doc/wine-cvs-xxxxx/ioport-trace-hints. |
| 1708 | ; |
| 1709 | [ports] |
| 1710 | ;read=0x779,0x379,0x280-0x2a0 |
| 1711 | ;write=0x779,0x379,0x280-0x2a0 |
| 1712 | |
| 1713 | ; debugging, not need to be modified. |
| 1714 | [spy] |
| 1715 | Exclude=WM_SIZE;WM_TIMER; |
| 1716 | |
| 1717 | ; |
| 1718 | ; What names for the registry datafiles, no need to modify. |
| 1719 | ; |
| 1720 | [Registry] |
| 1721 | ; Paths must be given in /dir/dir/file.reg format. |
| 1722 | ; Wine will not understand dos file names here... |
| 1723 | ;UserFileName=xxx ; alternate registry file name (user.reg) |
| 1724 | ;LocalMachineFileName=xxx ; (system.reg) |
| 1725 | |
| 1726 | ; |
| 1727 | ; Layout/Look modifications. Here you can switch with a single line between |
| 1728 | ; windows 3.1 and windows 95 style. |
| 1729 | ; This does not change WINE behaviour or reported versions, just the look! |
| 1730 | ; |
| 1731 | [Tweak.Layout] |
| 1732 | ;; WineLook=xxx (supported styles are 'Win31'(default), 'Win95', 'Win98') |
| 1733 | WineLook=Win95 |
| 1734 | |
| 1735 | ; |
| 1736 | ; What programs to start on WINE startup. (you should probably leave it empty) |
| 1737 | ; |
| 1738 | [programs] |
| 1739 | Default= |
| 1740 | Startup= |
| 1741 | |
| 1742 | ; defunct section. |
| 1743 | [Console] |
| 1744 | ;XtermProg=nxterm |
| 1745 | ;InitialRows=25 |
| 1746 | ;InitialColumns=80 |
| 1747 | ;TerminalType=nxterm |
| 1748 | |
| 1749 | # </wineconf> |
| 1750 | </programlisting> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1751 | |
| 1752 | </sect2> |
| 1753 | </sect1> |
| 1754 | |
| 1755 | </chapter> |
| 1756 | |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 1757 | <chapter id="pkg-todo"><Title>Work to be done</title> |
John R. Sheets | d9e064f | 2000-12-13 21:52:37 +0000 | [diff] [blame] | 1758 | |
| 1759 | <para> |
| 1760 | In preparing this document, it became clear that there were |
| 1761 | still a range of action items to be done in Wine |
| 1762 | that would improve this packaging process. |
| 1763 | For lack of a better place, I record them here. |
| 1764 | <emphasis>This list is almost certain to be obsolete; |
| 1765 | check bugzilla for a better list.</emphasis> |
| 1766 | </para> |
| 1767 | |
| 1768 | <orderedlist> |
| 1769 | <listitem> |
| 1770 | <para> |
| 1771 | Remove duplication of code between winecfg and |
| 1772 | wineconf/wineinstall. |
| 1773 | </para> |
| 1774 | <para> |
| 1775 | Currently, winecfg duplicates all of the code contained |
| 1776 | in wineconf. |
| 1777 | </para> |
| 1778 | <para> |
| 1779 | Instead, wineconf should be improved to generate |
| 1780 | the new style config file, and then winecfg should |
| 1781 | rely on wineconf to generate the default |
| 1782 | configuration file. |
| 1783 | </para> |
| 1784 | <para> |
| 1785 | Similarly, there is functionality such as creating |
| 1786 | the default registry files that is now done by |
| 1787 | both winecfg and wineinstall. |
| 1788 | </para> |
| 1789 | <para> |
| 1790 | At this time, it seems like the right thing to do |
| 1791 | is to break up or parameterize wineinstall, so that |
| 1792 | it can be used for single function actions, |
| 1793 | and then have winecfg call those functions. |
| 1794 | </para> |
| 1795 | </listitem> |
| 1796 | |
| 1797 | <listitem> |
| 1798 | <para> |
| 1799 | Enhance winecfg to support W: drive generation. |
| 1800 | </para> |
| 1801 | <para> |
| 1802 | The best practices convention now seems to be |
| 1803 | to generate a set of drives from M: through W:. |
| 1804 | At this point, winecfg does not generate |
| 1805 | a default wine config file that follows |
| 1806 | these conventions. It should. |
| 1807 | </para> |
| 1808 | </listitem> |
| 1809 | |
| 1810 | <listitem> |
| 1811 | <para> |
| 1812 | Enhance Wine to allow more dynamic switching |
| 1813 | between the use of a real Windows partition |
| 1814 | and an empty one. |
| 1815 | </para> |
| 1816 | </listitem> |
| 1817 | |
| 1818 | <listitem> |
| 1819 | <para> |
| 1820 | Write a winelauncher utility application. |
| 1821 | </para> |
| 1822 | <para> |
| 1823 | Currently, Wine really requires a user to launch it |
| 1824 | from a command line, so that the user can look for |
| 1825 | error messages and warnings. However, eventually, we will |
| 1826 | want users to be able to launch Wine from a more |
| 1827 | friendly GUI launcher. The launcher should have the |
| 1828 | ability to allow the end user to turn on debugging |
| 1829 | messages and capture those traces for bug reporting |
| 1830 | purposes. Also, if we make it possible to |
| 1831 | switch between use of a Windows partition or not |
| 1832 | automatically, that option should be controlled here. |
| 1833 | </para> |
| 1834 | </listitem> |
| 1835 | |
| 1836 | <listitem> |
| 1837 | <para> |
| 1838 | Get Marcus's winesetup facilities into CVS |
| 1839 | </para> |
| 1840 | <para> |
| 1841 | Along the lines of the changes to winecfg, |
| 1842 | and the consolidation of wineconf and wineinstall, |
| 1843 | we should extract the good stuff from Marcus's |
| 1844 | winesetup script, and get it into CVS. |
| 1845 | Again, perhaps we should have a set of scripts |
| 1846 | that perform discrete functions, or maybe |
| 1847 | one script with parameters. |
| 1848 | </para> |
| 1849 | </listitem> |
| 1850 | |
| 1851 | <listitem> |
| 1852 | <para> |
| 1853 | Finish this document |
| 1854 | </para> |
| 1855 | <para> |
| 1856 | This document is pretty rough itself. Many hard |
| 1857 | things aren't addressed, and lots of stuff was missed. |
| 1858 | </para> |
| 1859 | </listitem> |
| 1860 | </orderedlist> |
| 1861 | </chapter> |
| 1862 | |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1863 | |
| 1864 | <!-- Keep this comment at the end of the file |
| 1865 | Local variables: |
| 1866 | mode: sgml |
John R. Sheets | 883bdc0 | 2001-01-19 20:50:50 +0000 | [diff] [blame] | 1867 | sgml-parent-document:("wine-doc.sgml" "book" "part" "chapter" "") |
John R. Sheets | 1e8e5ba | 2000-08-08 01:24:00 +0000 | [diff] [blame] | 1868 | End: |
| 1869 | --> |