
Linux Distributors, listen to this !
====================================

This Information is not intended for 'Joe User' but for Linux distributors.

As of DOSEMU-1.0.2 there will be no further efforts by the DOSEMU-team to
support a systemwide suid-root DOSEMU installation, hence "/var/lib/dosemu"
and "/etc/dosemu*" are no longer created, though a compiled DOSEMU will still
honor them, when the s-bit is set.
Running DOSEMU suid-root is (and ever was) not recommended on net-connected
machines, hence, who really wants to do it should fiddle with the problems
himself.

DOSEMU now will _always_ install directly into the users $HOME, every
user will have its own copy/instance 'somewhere' (default is $HOME/dosemu).
There are no good reasons to share hdimages, boot directories and other
DOSish resources, because you need write access to them anyway.

As 'installing' the DOSEMU distributed binary release reduces to just
untarring two tarballs to some place the user likes, there is no need
for RPM'ing such simple thing and therefore the DOSEMU team will not
support or supply .spec files any more.

However, there is a new kind of systemwide install, which will keep the
DOSEMU binaries, the docs and the templates to generate the user's private
DOSEMU instance on demand. Whenever a the script [x]dosemu (of such a
systemwide install) is called by a user who has no private instance yet,
the script does the install before it launches DOS. 

This systemwide installation can be created as follows:

  - in addition to the DOSEMU source distribution you first have
    to download atleast the file dosemu-freedos-bin.tgz from dosemu.org
    (this contains a bootable collection of suitable FreeDos binaries).

  - compile the DOSEMU source such as

    $ cd /where/you/unpacked/the/dosemu/source/dosemu-<version>
    $ make
    $ make dosbin

  - now build a full tree of the systemwide install to an auxiliary 'root'
    directory (in this case /tmp/root). You need not to be root for this,
    but then you may need to 'chown' afterwards.

    $ su -
    # cd /where/you/unpacked/the/dosemu/source/dosemu-<version>
    # ./install_systemwide -fd dosemu-freedos-bin.tgz -r /tmp/root
    
After this you'll have under /tmp/root

     usr/bin/*
     opt/dosemu/*

which you can pack into a RPM or what ever package format you like.
If you don't like the default pathes /usr/bin and /opt/dosemu, you can
change them with options -b and -i to ./install_systemwide such as

   # ./install_systemwide ... -b /usr/local/bin -i /usr/share/dosemu

You also can install directly to the final destination of the system
by omitting the '-i /tmp/root' option, you even may omit the -fd option
in which case the dosemu-freedos tarball is expected to exist already at its
final location. The later makes sense, if you just want to update an
existing systemwide install after you changed and recompiled the DOSEMU
source. Because the user's private instances will have symlinks to the
commonly used binaries, this change will have immediate effect for all users.

Some final note: It is recommended to link static. Keep in mind, that DOSEMU
runs _much_ better when linked statically, this (among other) has to do
with the more compact address space spanned by statically linked binaries
(more TLB hits, less reloads) and the enormous number of kernel-/user-
space transitions DOSEMU needs to do. Hence, even if statical binaries
under glibc >= 2.2 are no longer strictly portable between systems,
you'll get a far better performing DOSEMU. You may argue performance
not to be important, maybe, but DOSEMU's dynamic behave can change
dramatically when missing to 'hit the slot', resulting in malfunction
of the DOS application, which expects to 'own' the whole machine'.
There is, however, some problem with static linkage under glibc together
with gethostname() as called by XOpenDisplay() on remote X. This problem
(silent crash) can be solved by always haveing nscd running on the remote
system.
 

			--Hans <lermen@fgan.de>, 2001/05/30
