From 4342c286c35315a3110289fd91dcd7d3ee1386b2 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 30 Mar 2000 20:25:42 +0000 Subject: [PATCH] Updated documentation/distributors in regards to shared libraries and some more windows specific dirs. --- documentation/distributors | 53 ++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/documentation/distributors b/documentation/distributors index 35dccbbbfb8..2dd9ccb37ff 100644 --- a/documentation/distributors +++ b/documentation/distributors @@ -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). The "prefix" is chosen using your application placement policy (/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). Example (split this into %build and %install section for rpm): CFLAGS=$RPM_OPT_FLAGS \ ./configure --prefix=/usr/X11R6 --sysconfdir=/etc/wine/ --enable-dll make - make install prefix=$BUILDROOT/usr/X11R6/ - install -d /etc/wine/ - install -m 644 wine.ini /etc/wine/wine.conf + BR=$RPM_BUILD_ROOT + 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 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 from the WINE distributed winedefault.reg. This can be done using ./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] - install -m 644 winesytem.reg /etc/wine/ - install -m 644 wineuser.reg /etc/wine/ + install -m 644 wine.sytemreg $BR/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: - $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/bin/wineserver, $prefix/bin/wineclipsrv %config /etc/wine/* %doc ... choose from the toplevel directory and documentation/ -Do not forget ldconfig for the postinstall, the postuninstall and 'rm -libwine.so' for the postuninstall. +The Post install script: + 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 @@ -124,12 +153,14 @@ WINE. This script should: - Allow specification of the original windows installation to use (which modifies the copied wine.conf file). - 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:) + - Symlink all .dll and .exe files from the original windows installation to the windows directory. Why? Some program reference "%windowsdir%/file.dll" 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 later overwrites on of those files, it will overwrite the symlink (so that the file now lies in the windows/ subdirectory). @@ -148,7 +179,7 @@ This procedure requires: once. => It scales well and suffices most of the rationales. - Marcus Meissner + Marcus Meissner ---------------------------------------------------------------- Sample wine.ini for OpenLinux 2.x: