Updated documentation/distributors in regards to shared libraries and
some more windows specific dirs.
This commit is contained in:
parent
9aaf13e7e3
commit
4342c286c3
|
@ -37,34 +37,63 @@ h. Some special .dll and .exe files in the windows\system directory, since
|
||||||
WINE is configured the usual way (depending on your buildenvironment).
|
WINE is configured the usual way (depending on your buildenvironment).
|
||||||
The "prefix" is chosen using your application placement policy
|
The "prefix" is chosen using your application placement policy
|
||||||
(/usr/,/usr/X11R6/, /opt/wine/ or similar). The configuration files
|
(/usr/,/usr/X11R6/, /opt/wine/ or similar). The configuration files
|
||||||
(wine.conf, wineuser.reg, winesystem.reg) are targeted for /etc/wine/
|
(wine.conf, wine.userreg, wine.systemreg) are targeted for /etc/wine/
|
||||||
(rationale: FHS 2.0, multiple readonly configuration files of a package).
|
(rationale: FHS 2.0, multiple readonly configuration files of a package).
|
||||||
|
|
||||||
Example (split this into %build and %install section for rpm):
|
Example (split this into %build and %install section for rpm):
|
||||||
CFLAGS=$RPM_OPT_FLAGS \
|
CFLAGS=$RPM_OPT_FLAGS \
|
||||||
./configure --prefix=/usr/X11R6 --sysconfdir=/etc/wine/ --enable-dll
|
./configure --prefix=/usr/X11R6 --sysconfdir=/etc/wine/ --enable-dll
|
||||||
make
|
make
|
||||||
make install prefix=$BUILDROOT/usr/X11R6/
|
BR=$RPM_BUILD_ROOT
|
||||||
install -d /etc/wine/
|
make install prefix=$BR/usr/X11R6/ sysconfdir=$BR/etc/wine/
|
||||||
install -m 644 wine.ini /etc/wine/wine.conf
|
install -d $BR/etc/wine/
|
||||||
|
install -m 644 wine.ini $BR/etc/wine/wine.conf
|
||||||
|
|
||||||
|
# Put all our dlls in a seperate 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 clipboard server is started on demand.
|
||||||
|
install -m 755 windows/x11drv/wineclipsrv $BR/usr/X11R6/bin/
|
||||||
|
|
||||||
|
# The WINE server is needed.
|
||||||
|
install -m 755 server/wineserver $BR/usr/X11R6/bin/
|
||||||
|
|
||||||
Here we unfortunately do need to create wineuser.reg and winesystem.reg
|
Here we unfortunately do need to create wineuser.reg and winesystem.reg
|
||||||
from the WINE distributed winedefault.reg. This can be done using
|
from the WINE distributed winedefault.reg. This can be done using
|
||||||
./regapi once for one example user and the reusing his .wine/user.reg
|
./regapi once for one example user and the reusing his .wine/user.reg
|
||||||
and .wine/system.reg files. [FIXME: this needs to be done better]
|
and .wine/system.reg files. [FIXME: this needs to be done better]
|
||||||
|
|
||||||
install -m 644 winesytem.reg /etc/wine/
|
install -m 644 wine.sytemreg $BR/etc/wine/
|
||||||
install -m 644 wineuser.reg /etc/wine/
|
install -m 644 wine.userreg $BR/etc/wine/
|
||||||
|
|
||||||
|
There are now a lot of libraries generated by the build process, so a
|
||||||
|
seperate 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/bin/dosmod, $prefix/lib/libwine.so.1.0,
|
$prefix/bin/wine, $prefix/bin/dosmod, $prefix/lib/wine/*
|
||||||
$prefix/man/man1/wine.1, $prefix/include/wine/*,
|
$prefix/man/man1/wine.1, $prefix/include/wine/*,
|
||||||
|
$prefix/bin/wineserver, $prefix/bin/wineclipsrv
|
||||||
|
|
||||||
%config /etc/wine/*
|
%config /etc/wine/*
|
||||||
%doc ... choose from the toplevel directory and documentation/
|
%doc ... choose from the toplevel directory and documentation/
|
||||||
|
|
||||||
Do not forget ldconfig for the postinstall, the postuninstall and 'rm
|
The Post install script:
|
||||||
libwine.so' for the postuninstall.
|
if ! grep -q /usr/X11R6/lib/wine /etc/ld.so.conf; 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.2 Creating a good default configuration file
|
2.2 Creating a good default configuration file
|
||||||
|
|
||||||
|
@ -124,12 +153,14 @@ WINE. This script should:
|
||||||
- Allow specification of the original windows installation to use (which
|
- Allow specification of the original windows installation to use (which
|
||||||
modifies the copied wine.conf file).
|
modifies the copied wine.conf file).
|
||||||
- Create the windows directory structure (c:\windows,c:\windows\system,
|
- Create the windows directory structure (c:\windows,c:\windows\system,
|
||||||
c:\Program Files,c:\Desktop,etc...)
|
c:\windows\Start Menu\Programs,c:\Program Files,c:\Desktop,...)
|
||||||
|
|
||||||
(FIXME: Not sure this is needed for all files:)
|
(FIXME: Not sure this is needed for all files:)
|
||||||
|
|
||||||
- Symlink all .dll and .exe files from the original windows installation to
|
- Symlink all .dll and .exe files from the original windows installation to
|
||||||
the windows directory. Why? Some program reference "%windowsdir%/file.dll"
|
the windows directory. Why? Some program reference "%windowsdir%/file.dll"
|
||||||
or "%systemdir%/file.dll" directly and fail if there are not present.
|
or "%systemdir%/file.dll" directly and fail if there are not present.
|
||||||
|
|
||||||
This will give a huge number of symlinks, yes. However, if an installer
|
This will give a huge number of symlinks, yes. However, if an installer
|
||||||
later overwrites on of those files, it will overwrite the symlink (so
|
later overwrites on of those files, it will overwrite the symlink (so
|
||||||
that the file now lies in the windows/ subdirectory).
|
that the file now lies in the windows/ subdirectory).
|
||||||
|
@ -148,7 +179,7 @@ This procedure requires:
|
||||||
once.
|
once.
|
||||||
=> It scales well and suffices most of the rationales.
|
=> It scales well and suffices most of the rationales.
|
||||||
|
|
||||||
Marcus Meissner <marcus@jet.franken.de>
|
Marcus Meissner <Marcus.Meissner@caldera.de>
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
Sample wine.ini for OpenLinux 2.x:
|
Sample wine.ini for OpenLinux 2.x:
|
||||||
|
|
Loading…
Reference in New Issue