Updated PACKAGING howto.
This commit is contained in:
parent
a96a700cf2
commit
7292117fe8
|
@ -50,7 +50,7 @@ There are two types of dependencies: hard and soft dependencies.
|
||||||
A hard dependency must be available at runtime for Wine to function,
|
A hard dependency must be available at runtime for Wine to function,
|
||||||
if compiled into the code. Soft dependencies on the other hand
|
if compiled into the code. Soft dependencies on the other hand
|
||||||
will degrade gracefully at runtime if unavailable on the runtime system.
|
will degrade gracefully at runtime if unavailable on the runtime system.
|
||||||
Ideally, we should eliminate all hard dependencies in favour of
|
Ideally, we should eliminate all hard dependencies in favor of
|
||||||
soft dependencies.
|
soft dependencies.
|
||||||
|
|
||||||
To enable a soft dependency, it must be available at compile time.
|
To enable a soft dependency, it must be available at compile time.
|
||||||
|
@ -68,6 +68,10 @@ they should appear as "Suggests" or "Recommends", as the case may be.
|
||||||
better support of fonts than using the X11 fonts engine. It is
|
better support of fonts than using the X11 fonts engine. It is
|
||||||
only needed for the X11 back end engine. Used from GDI.
|
only needed for the X11 back end engine. Used from GDI.
|
||||||
|
|
||||||
|
* fontconfig
|
||||||
|
Used to find TrueType fonts for rendering with freetype. Used by
|
||||||
|
GDI.
|
||||||
|
|
||||||
* Alsa: http://sourceforge.net/projects/alsa (Linux only)
|
* Alsa: http://sourceforge.net/projects/alsa (Linux only)
|
||||||
This library gives sound support to the Windows environment.
|
This library gives sound support to the Windows environment.
|
||||||
|
|
||||||
|
@ -75,7 +79,8 @@ they should appear as "Suggests" or "Recommends", as the case may be.
|
||||||
Similar to Alsa, it allow Wine to use the JACK audio server.
|
Similar to Alsa, it allow Wine to use the JACK audio server.
|
||||||
|
|
||||||
* CUPS: http://www.cups.org
|
* CUPS: http://www.cups.org
|
||||||
This library allows Windows to see CUPS defined printers.
|
This library allows Windows to see CUPS defined printers. Used
|
||||||
|
by WINEPS and WINSPOOL.
|
||||||
|
|
||||||
* OpenGL
|
* OpenGL
|
||||||
This is used for both OpenGL and Direct3D (and some other
|
This is used for both OpenGL and Direct3D (and some other
|
||||||
|
@ -91,6 +96,30 @@ they should appear as "Suggests" or "Recommends", as the case may be.
|
||||||
This library is used to implement MSCMS (Color Management System)
|
This library is used to implement MSCMS (Color Management System)
|
||||||
which is needed by an increasing number of graphics applications.
|
which is needed by an increasing number of graphics applications.
|
||||||
|
|
||||||
|
* libjpeg
|
||||||
|
This library is used to load JPEG files within OLE automation.
|
||||||
|
|
||||||
|
* libungif or gif_lib
|
||||||
|
One of these two libraries is used to load GIF files within OLE
|
||||||
|
automation.
|
||||||
|
|
||||||
|
* ICU
|
||||||
|
Used for bidirectional character output. Linked statically, used
|
||||||
|
by GDI.
|
||||||
|
|
||||||
|
* sane
|
||||||
|
Used for basic scanner support in our TWAIN32 library.
|
||||||
|
|
||||||
|
* openssl
|
||||||
|
Used for some cryptographic support in ADVAPI32.
|
||||||
|
|
||||||
|
* Xrandr, Xrender, Xi, Xext
|
||||||
|
X11 extension libraries used by the x11drv.
|
||||||
|
Xrandr - resolution switching
|
||||||
|
Xrender - client side font rendering
|
||||||
|
Xi - X Input handling (for asian input methods mostly)
|
||||||
|
Xext - X extensions
|
||||||
|
|
||||||
GOALS
|
GOALS
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
|
@ -101,8 +130,8 @@ An installation from a Wine package should:
|
||||||
should suffice for initial installation.
|
should suffice for initial installation.
|
||||||
|
|
||||||
* Work quickly and simply:
|
* Work quickly and simply:
|
||||||
The user should be able to launch Solitaire
|
The user should be able to launch Solitaire within seconds
|
||||||
within minutes of downloading the Wine package.
|
of downloading the Wine package.
|
||||||
|
|
||||||
* Comply with File system Hierarchy Standard
|
* Comply with File system Hierarchy Standard
|
||||||
A Wine installation should, as much as possible, comply
|
A Wine installation should, as much as possible, comply
|
||||||
|
@ -129,32 +158,27 @@ REQUIREMENTS
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
Successfully installing Wine requires:
|
Successfully installing Wine requires:
|
||||||
* Much thought and work from the packager (1x)
|
|
||||||
|
|
||||||
* A configuration file
|
* Install the RPM.
|
||||||
Wine will not run without a configuration file. Wine provides a
|
|
||||||
a sample config file and it can be found in documentation/samples.
|
* No longer: A configuration file
|
||||||
|
|
||||||
|
Wine will run without a configuration file at this time. Wine
|
||||||
|
provides a sample config file and it can be found in
|
||||||
|
documentation/samples.
|
||||||
|
|
||||||
Some packagers may attempt to provide (or dynamically generate) a
|
Some packagers may attempt to provide (or dynamically generate) a
|
||||||
default configuration file. Some packagers may wish to rely on
|
default configuration file. Some packagers may copy this on
|
||||||
winesetup to generate the configuration file.
|
startup, but it is no longer necessary.
|
||||||
|
|
||||||
* A writeable C drive
|
* No longer: Preparing a fake windows setup.
|
||||||
A writeable C:\ directory structure on a per-user basis.
|
|
||||||
Applications do dump .ini file into C:\WINDOWS, installer
|
|
||||||
dump .exe/.dll/etc. files into C:\WINDOWS or C:\Program Files.
|
|
||||||
|
|
||||||
* An initial set of registry entries.
|
If WINEPREFIX is not present, wine will generate a setup
|
||||||
For custom changes to the default registry, tools/wine.inf
|
by itself by calling wineprefixcreate.
|
||||||
can be modified as needed. The current preferred method of
|
|
||||||
configuring/installing Wine is to run /tools/wineinstall.
|
|
||||||
There are several other choices that could be made; registries
|
|
||||||
can be imported from a Windows partition. At this time, Wine
|
|
||||||
does not completely support a complex multi-user installation
|
|
||||||
ala Windows NT, but it could fairly readily.
|
|
||||||
|
|
||||||
* Special files
|
This will load all default registry entries, and register dlls
|
||||||
Some special .dll and .exe files in the C:\WINDOWS\SYSTEM
|
where necessary. A special "wine.inf" file is provided with
|
||||||
directory, since applications directly check for their presence.
|
the WINE sources and installed to /usr/share/wine/.
|
||||||
|
|
||||||
WINE COMPONENTS
|
WINE COMPONENTS
|
||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
|
@ -218,7 +242,8 @@ WINE COMPONENTS
|
||||||
it the root of the Wine _build_ tree, after you have run ./configure.
|
it the root of the Wine _build_ tree, after you have run ./configure.
|
||||||
|
|
||||||
* Include Files
|
* Include Files
|
||||||
An up to date list of includes can be found in the include/Makefile.in file.
|
An up to date list of includes can be found in the include/Makefile.in
|
||||||
|
file.
|
||||||
|
|
||||||
* Documentation files
|
* Documentation files
|
||||||
After building the documentation with:
|
After building the documentation with:
|
||||||
|
@ -239,22 +264,10 @@ WINE COMPONENTS
|
||||||
At the time of this writing, if this file exists,
|
At the time of this writing, if this file exists,
|
||||||
then no other configuration file is loaded.
|
then no other configuration file is loaded.
|
||||||
|
|
||||||
- ETCDIR/wine.conf
|
- PREFIX/share/wine.inf
|
||||||
This is the global Wine configuration file. It is only used
|
|
||||||
if the user running Wine has no local configuration file.
|
This is the global Wine setup information file
|
||||||
Global wine configuration is currently not possible;
|
in the format of a MS Installer .INF file.
|
||||||
this might get reenabled at some time.
|
|
||||||
Some packagers feel that this file should not be supplied,
|
|
||||||
and that only a wine.conf.default should be given here.
|
|
||||||
Other packagers feel that this file should be the predominant
|
|
||||||
file used, and that users should only shift to a local
|
|
||||||
configuration file if they need to. An argument has been
|
|
||||||
made that the local configuration file should inherit the
|
|
||||||
global configuration file. At this time, Wine does not do this;
|
|
||||||
please refer to the WineHQ discussion archives for the debate
|
|
||||||
concerning this.
|
|
||||||
This debate is addressed more completely below, in the
|
|
||||||
'Packaging Strategy' section.
|
|
||||||
|
|
||||||
* Registry Files
|
* Registry Files
|
||||||
In order to replicate the Windows registry system,
|
In order to replicate the Windows registry system,
|
||||||
|
@ -271,8 +284,7 @@ WINE COMPONENTS
|
||||||
registry entries is extremely important,
|
registry entries is extremely important,
|
||||||
as it affects what registry entries are
|
as it affects what registry entries are
|
||||||
actually present. The order is roughly that
|
actually present. The order is roughly that
|
||||||
.dat files from a Windows partion are loaded,
|
.dat files from a Windows partition are loaded,
|
||||||
then global registry settings from ETCDIR,
|
|
||||||
and then finally local registry settings are
|
and then finally local registry settings are
|
||||||
loaded from WINEPREFIX. As each set are loaded,
|
loaded from WINEPREFIX. As each set are loaded,
|
||||||
they can override the prior entries. Thus,
|
they can override the prior entries. Thus,
|
||||||
|
@ -324,7 +336,7 @@ WINE COMPONENTS
|
||||||
|
|
||||||
This is probably the most important configuration detail.
|
This is probably the most important configuration detail.
|
||||||
The use of Windows registry and DLL files dramatically alters the
|
The use of Windows registry and DLL files dramatically alters the
|
||||||
behaviour of Wine. If nothing else, pacakager have to make this
|
behavior of Wine. If nothing else, packager have to make this
|
||||||
distinction clear to the end user, so that they can intelligently
|
distinction clear to the end user, so that they can intelligently
|
||||||
choose their configuration.
|
choose their configuration.
|
||||||
|
|
||||||
|
@ -341,8 +353,8 @@ WINE COMPONENTS
|
||||||
PACKAGING STRATEGIES
|
PACKAGING STRATEGIES
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
There has recently been a lot of discussion on the Wine
|
There has recently been a lot of discussion on the Wine development
|
||||||
development mailing list about the best way to build Wine packages.
|
mailing list about the best way to build Wine packages.
|
||||||
|
|
||||||
There was a lot of discussion, and several diverging points of view.
|
There was a lot of discussion, and several diverging points of view.
|
||||||
This section of the document attempts to present the areas of common
|
This section of the document attempts to present the areas of common
|
||||||
|
@ -352,12 +364,16 @@ the mailing list.
|
||||||
* Distribution of Wine into packages
|
* Distribution of Wine into packages
|
||||||
The most basic question to ask is given the Wine CVS tree,
|
The most basic question to ask is given the Wine CVS tree,
|
||||||
what physical files are you, the packager, going to produce?
|
what physical files are you, the packager, going to produce?
|
||||||
Are you going to produce only a wine.rpm (as Marcus has done),
|
Are you going to produce only a wine.rpm, or are you going to
|
||||||
or are you going to produce 6 Debian files (libwine, libwine-dev,
|
produce 6 Debian files (libwine, libwine-dev, wine, wine-doc,
|
||||||
wine, wine-doc, wine-utils and winesetuptk) as Ove has done?
|
wine-utils and winesetuptk) as Ove has done?
|
||||||
At this point, common practice is to adopt to the conventions
|
At this point, common practice is to adopt to the conventions
|
||||||
of the targeted distribution.
|
of the targeted distribution.
|
||||||
|
|
||||||
|
Also, experience shows that you should not create a huge set
|
||||||
|
of packages, since later upgrades and obsoleting will be
|
||||||
|
painful.
|
||||||
|
|
||||||
* Where to install files
|
* Where to install files
|
||||||
This question is not really contested. It will vary
|
This question is not really contested. It will vary
|
||||||
by distribution, and is really up to the packager.
|
by distribution, and is really up to the packager.
|
||||||
|
@ -379,62 +395,32 @@ the mailing list.
|
||||||
should be installed to /opt/wine. None of the existing packages
|
should be installed to /opt/wine. None of the existing packages
|
||||||
follow this guideline (today; check again tomorrow).
|
follow this guideline (today; check again tomorrow).
|
||||||
|
|
||||||
|
(Since most are upgrades of the distro packages, this is still
|
||||||
|
on the safe side I think - Marcus Meissner)
|
||||||
|
|
||||||
* What files to create
|
* What files to create
|
||||||
After installing the static and shareable files, the next
|
After installing the static and shareable files, the next
|
||||||
question the packager needs to ask is how much dynamic
|
question the packager needs to ask is how much dynamic
|
||||||
configuration will be done, and what configuration
|
configuration will be done, and what configuration
|
||||||
files should be created.
|
files should be created.
|
||||||
There are several approaches to this:
|
|
||||||
- Rely completely on user file space - install nothing
|
|
||||||
This approach relies upon the new winesetup utility
|
|
||||||
and the new ability of Wine to launch winesetup if no
|
|
||||||
configuration file is found. The basic concept is
|
|
||||||
that no global configuration files are created at
|
|
||||||
install time. Instead, Wine configuration files are
|
|
||||||
created on the fly by the winesetup program when Wine
|
|
||||||
is invoked. Further, winesetup creates default
|
|
||||||
Windows directories and paths that are stored
|
|
||||||
completely in the user's WINEPREFIX. This approach
|
|
||||||
has the benefit of simplicity in that all Wine files
|
|
||||||
are either stored under /opt/wine or under ~/.wine.
|
|
||||||
Further, there is only ever one Wine configuration
|
|
||||||
file. This approach, however, adds another level of
|
|
||||||
complexity. It does not allow Wine to run Solitaire
|
|
||||||
'out of the box'; the user must run the configuration
|
|
||||||
program first. Further, winesetup requires Tcl/Tk, a
|
|
||||||
requirement not beloved by some. Additionally, this
|
|
||||||
approach closes the door on multi user configurations
|
|
||||||
and presumes a single user approach.
|
|
||||||
|
|
||||||
- Build a reasonable set of defaults for the global wine.conf,
|
The best current approach to this is:
|
||||||
facilitate creation of a user's local Wine configuration.
|
- Leave it alone and make a "wineprefixcreate" call available
|
||||||
This approach, best shown by Marcus, causes the
|
to the user via a menu item or similar.
|
||||||
installation process to auto scan the system,
|
|
||||||
and generate a global wine.conf file with best
|
|
||||||
guess defaults. The OpenLinux packages follow
|
|
||||||
this behaviour.
|
|
||||||
The keys to this approach are always putting
|
|
||||||
an existing Windows partition into the
|
|
||||||
path, and being able to run Solitaire
|
|
||||||
right out of the box.
|
|
||||||
Another good thing that Marcus does is he
|
|
||||||
detects a first time installation and
|
|
||||||
does some clever things to improve the
|
|
||||||
user's Wine experience.
|
|
||||||
A flaw with this approach, however, is it doesn't
|
|
||||||
give the user an obvious way to choose not to
|
|
||||||
use a Windows partition.
|
|
||||||
|
|
||||||
- Build a reasonable set of defaults for the global wine.conf,
|
- Setup a fake windows setup automatically.
|
||||||
and ask the user if possible
|
|
||||||
This approach, demonstrated by Ove, causes the
|
This is done by simply calling wineprefixcreate,
|
||||||
installation process to auto scan the system,
|
which will setup a fake windows root for the user.
|
||||||
and generate a global wine.conf file with best
|
|
||||||
guess defaults. Because Ove built a Debian
|
If no arguments are passed, defaults will be
|
||||||
package, he was able to further query debconf and
|
assumed for WINEPREFIX (~/.wine) and similar
|
||||||
get permission to ask the user some questions,
|
variables.
|
||||||
allowing the user to decide whether or not to
|
|
||||||
use a Windows partition.
|
After this, WINE is immediately usable by the
|
||||||
|
end user.
|
||||||
|
|
||||||
|
- Others might be possible.
|
||||||
|
|
||||||
IMPLEMENTATION
|
IMPLEMENTATION
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
@ -453,103 +439,46 @@ The PREFIX is chosen using your application placement policy
|
||||||
Example (split this into %build and %install section for rpm:
|
Example (split this into %build and %install section for rpm:
|
||||||
|
|
||||||
|
|
||||||
CFLAGS=$RPM_OPT_FLAGS ./configure --prefix=/usr/X11R6 --sysconfdir=/etc/wine/ --enable-dll
|
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr/X11R6 --sysconfdir=/etc/wine/ --enable-dll
|
||||||
make
|
make
|
||||||
BR=$RPM_BUILD_ROOT
|
BR=$RPM_BUILD_ROOT
|
||||||
make install prefix=$BR/usr/X11R6/ sysconfdir=$BR/etc/wine/
|
make install prefix=$BR/usr/X11R6/ sysconfdir=$BR/etc/wine/
|
||||||
install -d $BR/etc/wine/
|
|
||||||
install -m 644 wine.ini $BR/etc/wine/wine.conf
|
|
||||||
|
|
||||||
# Put all our DLLs in a separate directory. (this works only if you have a buildroot)
|
|
||||||
install -d $BR/usr/X11R6/lib/wine
|
|
||||||
mv $BR/usr/X11R6/lib/lib* $BR/usr/X11R6/lib/wine/
|
|
||||||
|
|
||||||
# The Wine server is needed.
|
|
||||||
install -m 755 server/wineserver $BR/usr/X11R6/bin/
|
|
||||||
|
|
||||||
|
|
||||||
There are now a lot of libraries generated by the build process, so a
|
|
||||||
separate library directory should be used.
|
|
||||||
|
|
||||||
install -d 755 $BR/usr/X11R6/lib/
|
|
||||||
mv $BR/
|
|
||||||
|
|
||||||
You will need to package the files:
|
You will need to package the files:
|
||||||
|
|
||||||
$prefix/bin/wine, $prefix/lib/wine/*
|
$prefix/bin/wine*
|
||||||
$prefix/man/man1/wine.1, $prefix/include/wine/*,
|
$prefix/lib/libwine*
|
||||||
$prefix/bin/wineserver
|
$prefix/lib/wine/*,
|
||||||
|
$prefix/share/wine/wine.inf
|
||||||
|
|
||||||
|
$prefix/man/man1/wine.1
|
||||||
|
$prefix/include/wine/*
|
||||||
|
$prefix/bin/notepad
|
||||||
|
$prefix/bin/progman
|
||||||
|
$prefix/bin/regedit
|
||||||
|
$prefix/bin/rundll32
|
||||||
|
$prefix/bin/regsvr32
|
||||||
|
$prefix/bin/wcmd
|
||||||
|
$prefix/bin/widl
|
||||||
|
$prefix/bin/winhelp
|
||||||
|
|
||||||
%config /etc/wine/*
|
%config /etc/wine/*
|
||||||
%doc ... choose from the top level directory and documentation/
|
%doc ... choose from the top level directory and documentation/
|
||||||
|
|
||||||
The post-install script:
|
|
||||||
|
|
||||||
if ! grep /usr/X11R6/lib/wine /etc/ld.so.conf >/dev/null; then
|
|
||||||
echo "/usr/X11R6/lib/wine" >> /etc/ld.so.conf
|
|
||||||
fi
|
|
||||||
/sbin/ldconfig
|
|
||||||
|
|
||||||
The post-uninstall script:
|
|
||||||
|
|
||||||
if [ "$1" = 0 ]; then
|
|
||||||
perl -ni -e 'print unless m:/usr/X11R6/lib/wine:;' /etc/ld.so.conf
|
|
||||||
fi
|
|
||||||
/sbin/ldconfig
|
|
||||||
|
|
||||||
2. Creating a good default configuration file.
|
2. Creating a good default configuration file.
|
||||||
|
|
||||||
For the rationales of needing as less input from the user as possible arises
|
This is no longer necessary, most of this work is now done
|
||||||
the need for a very good configuration file. The one supplied with Wine is
|
by wineprefixcreate itself
|
||||||
currently lacking. We need:
|
|
||||||
|
|
||||||
* [Drive X]:
|
|
||||||
- A for the floppy. Specify your distribution's default floppy mountpoint.
|
|
||||||
Path=/auto/floppy
|
|
||||||
- C for the C:\ directory. Here we use the user's home directory, for most
|
|
||||||
applications do see C:\ as root-writeable directory of every windows
|
|
||||||
installation and this basically is it in the UNIX-user context.
|
|
||||||
Don't forget to identify environment variables as DOS ones (ie, surrounded by '%').
|
|
||||||
Path=%HOME%
|
|
||||||
- R for the CD-Rom drive. Specify your distribution's default CD-ROM mountpoint.
|
|
||||||
Path=/auto/cdrom
|
|
||||||
- T for temporary storage. We do use /tmp/ (rationale: between process
|
|
||||||
temporary data belongs to /tmp/ , FHS 2.0)
|
|
||||||
Path=/tmp/
|
|
||||||
- W for the original Windows installation. This drive points to the
|
|
||||||
WINDOWSDIR subdirectory of the original windows installation.
|
|
||||||
This avoids problems with renamed WINDOWSDIR directories (as for
|
|
||||||
instance lose95, win or sys\win95). During compile/package/install
|
|
||||||
we leave this to be / , it has to be configured after the package install.
|
|
||||||
- Z for the UNIX Root directory. This avoids any roblems with
|
|
||||||
"could not find drive for current directory" users occasionally complain
|
|
||||||
about in the newsgroup and the irc channel. It also makes the whole
|
|
||||||
directory structure browseable. The type of Z should be network,
|
|
||||||
so applications expect it to be readonly.
|
|
||||||
Path=/
|
|
||||||
|
|
||||||
* [wine]:
|
|
||||||
Windows=c:\windows\ (the windows/ subdirectory in the user's
|
|
||||||
home directory)
|
|
||||||
System=c:\windows\system\ (the windows/system subdirectory in the user's
|
|
||||||
home directory)
|
|
||||||
Path=c:\windows;c:\windows\system;c:\windows\system32;w:\;w:\system;w:\system32;
|
|
||||||
; Using this trick we have in fact two windows installations in one, we
|
|
||||||
; get the stuff from the readonly installation and can write to our own.
|
|
||||||
Temp=t:\ (the TEMP directory)
|
|
||||||
|
|
||||||
* Possibly modify the [spooler], [serialports] and [parallelports] sections.
|
|
||||||
FIXME: possibly more, including printer stuff.
|
|
||||||
|
|
||||||
Add this prepared configuration file to the package.
|
|
||||||
|
|
||||||
3. Installing Wine for the system administrator
|
3. Installing Wine for the system administrator
|
||||||
|
|
||||||
Install the package using the usual packager 'rpm -i wine.rpm'.
|
Install the package using the usual packager 'rpm -i wine.rpm'.
|
||||||
You may edit /etc/wine/wine.conf , [Drive W], to point to a
|
|
||||||
possible Windows installation right after the install. That's it.
|
|
||||||
|
|
||||||
Note that on Linux you should somehow try to add the unhide mount optioni
|
Adapting the $prefix/share/wine/wine.inf file used by wineprefixcreate is not
|
||||||
|
necessary.
|
||||||
|
|
||||||
|
Note that on Linux you should somehow try to add the unhide mount option
|
||||||
(see 'man mount') to the CD-ROM entry in /etc/fstab during package install,
|
(see 'man mount') to the CD-ROM entry in /etc/fstab during package install,
|
||||||
as several stupid Windows programs mark some setup (!) files as hidden
|
as several stupid Windows programs mark some setup (!) files as hidden
|
||||||
(ISO9660) on CD-ROMs, which will greatly confuse users as they won't find
|
(ISO9660) on CD-ROMs, which will greatly confuse users as they won't find
|
||||||
|
@ -564,23 +493,13 @@ Joliet, files not found).
|
||||||
|
|
||||||
4. Installing Wine for the user
|
4. Installing Wine for the user
|
||||||
|
|
||||||
The user will need to run a setup script before the first invocation of Wine.
|
The user will need to run a wineprefixcreate before the first invocation
|
||||||
This script should:
|
of Wine.
|
||||||
* Copy /etc/wine/wine.conf for user modification.
|
|
||||||
* Allow specification of the original windows installation to use
|
A packager might provide a wrapper for wine to do that automatically,
|
||||||
(which modifies the copied wine.conf file).
|
like if the WINEPREFIX directory (~/.wine) is not present.
|
||||||
* Create the windows directory structure (c:\windows, c:\windows\system,
|
|
||||||
c:\windows\Start Menu\Programs, c:\Program Files, c:\Desktop, etc.)
|
Thats it.
|
||||||
* Symlink all .dll and .exe files from the original windows installation
|
|
||||||
to the windows directory. Why? Some programs reference
|
|
||||||
"%windowsdir%/file.dll" or "%systemdir%/file.dll" directly and fail
|
|
||||||
if they are not present. This will give a huge number of symlinks, yes.
|
|
||||||
However, if an installer later overwrites one of those files, it will
|
|
||||||
overwrite the symlink (so that the file now lies in the windows/
|
|
||||||
subdirectory). FIXME: Not sure this is needed for all files.
|
|
||||||
* On later invocation the script might want to compare regular files in
|
|
||||||
the user's windows directories and in the global windows directories
|
|
||||||
and replace same files by symlinks (to avoid diskspace problems).
|
|
||||||
|
|
||||||
AUTHORS
|
AUTHORS
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
@ -590,3 +509,4 @@ Updated in 2000 by Jeremy White <jwhite@codeweavers.com>
|
||||||
Updated in 2002 by Andreas Mohr <andi@rhlx01.fht-esslingen.de>
|
Updated in 2002 by Andreas Mohr <andi@rhlx01.fht-esslingen.de>
|
||||||
Updated in 2003 by Tom Wickline <twickline2@triad.rr.com>
|
Updated in 2003 by Tom Wickline <twickline2@triad.rr.com>
|
||||||
Updated in 2003 by Dimitrie O. Paun <dpaun@rogers.com>
|
Updated in 2003 by Dimitrie O. Paun <dpaun@rogers.com>
|
||||||
|
Updated in 2004 by Marcus Meissner <marcus@jet.franken.de>
|
||||||
|
|
Loading…
Reference in New Issue