On Mon, 30 Oct 2000, Martin Pilka wrote:
> it seems like discussion about packaging reached the end, but the
> whitepaper mentioned by ove is nowhere (or is good hidden at least).
The Debian package I'm preparing should be able to speak for itself,
too... maybe I can write a description on what I end up with. Well, my
postinstall and other packaging stuff is basically complete now, although
I haven't uploaded my new version to winehq yet, so maybe I can do it
now...
* The postinstall configures Wine by asking through debconf.
Of course, advantage of debconf is that it's up to the user whether to do
installs interactively or not - the user just configures debconf with what
priority of questions he/she wants to see, or whether to ask anything
interactively at all (debconf can be set to non-interactive if the user is
administering large server deployments and/or apt-upgrades from cron or
something... in that case, critical configuration warnings will
automatically be mailed to the admin instead).
If the user has configured debconf for noninteractive mode, wine will
default to Autodetect (don't overwrite existing conf, if there isn't an
existing conf, check for real windows, if none, install no-windows).
Unfortunately, I guess rpms don't have such a system, so the decision of
whether to make the package configure things interactively or not will be
up to you non-debian people. Debian empowers users with choice...
> * do not support multiuser configuration YET
We can support it. I've chosen a reasonable path - use tools/wineinstall,
which has some basic multiuser support already. If we want to support
multiuser better, we'd just improve wineinstall a bit... the multiuser
aspect is thus up to the official Wine development effort, not up to the
packagers.
Of course, the generated configuration file is global.
Well, here's the current package structure in Debian:
Package: wine
Depends: libwine
Contains:
usr/bin: wine, wineserver, wineclipsrv, dosmod, regapi
usr/sbin: wineconf (renamed to wineconfmaker),
wineinstall (renamed to wineconfig)
usr/share/doc/wine: wine.conf, winedefault,reg, system.ini,
and of course some readmes and stuff
usr/share/man: man pages for wine and wine.conf
Postinstall:
Queries debconf, asks user "Autodetect", "No-Windows",
"Existing-Windows", "Skip configuration". Runs wineinstall, which queries
debconf for any other questions as necessary, and reads wine.conf and
winedefault.reg from /usr/share/doc.
Package: libwine
Contains:
usr/lib, /usr/lib/wine
Package: libwine-dev
Depends: libwine
Contains:
usr/include/wine
Package: wine-utils
Contains:
usr/bin: winedbg, winebuild, wmc, wrc, fnt2bdf
usr/share/man: man pages for wmc and wrc
Package: wine-doc
Contains:
usr/share/doc/wine-doc: SGML and HTML documentation, and the other
small files (status/, psdrv.reg, and such)
Build:
./configure --with-x --enable-opengl --prefix=/usr --sysconfdir=/etc
--libdir=\$${prefix}/lib/wine --mandir=\$${prefix}/share/man
--infodir=\$${prefix}/share/info
make depend
make
# should fix the LDFLAGS issue in wine's makefiles?
make -C programs/regapi LDFLAGS=-Wl,-rpath,/usr/lib/wine
make -C documentation wine-doc/index.html
Install:
make install prefix=`pwd`/debian/tmp/usr libdir=`pwd`/debian/tmp/usr/lib/wine
mv debian/tmp/usr/lib/wine/libwine.so* debian/tmp/usr/lib
mv debian/tmp/usr/lib/wine/libwine_unicode* debian/tmp/usr/lib
make -C documentation install prefix=`pwd`/debian/tmp/usr # manpages
make -C programs/regapi install prefix=`pwd`/debian/tmp/usr
Distribute files from debian/tmp into appropriate packages...
and add to wine-doc:
documentation/*.sgml -> /usr/share/doc/wine-doc/sgml
documentation/wine-doc -> /usr/share/doc/wine-doc/html
documentation/(miscstuff) -> /usr/share/doc/wine-doc
add to wine:
documentation/samples -> /usr/share/doc/wine
winedefault.reg -> /usr/share/doc/wine
tools/(wineconf, wineinstall) -> /usr/sbin
I thought about also creating a winecfg package... but it seems that
you've written it with Tcl (yuck) and a few strange tools. Although "itcl"
exists in Debian, neither "img", "mktclapp", or "exepak" seem to, and I
don't know where their source distribution (.tar.gz) is... (not that I'd
really enjoy becoming a package maintainer for Tcl stuff anyway)