File dosemu.spec of Package dosemu

# spec file for package dosemu
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via

Name:           dosemu
BuildRequires:  SDL-devel bin86 bison flex freetype2 libsndfile-devel slang-devel xorg-x11 xorg-x11-devel

%if 0%{?suse_version}>1130
BuildRequires:  gpm-devel
BuildRequires:  gpm

ExclusiveArch:  %ix86 x86_64
License:        GPL-2.0+
Group:          System/Emulators/PC
Release:        70
Summary:        The DOS Emulator
Source:         %name-%version.tgz
Source1:        dosemu-freedos-bin.tgz
Patch2:         dosemu-1.4.0-destbufferoverflow.patch
Patch4:         force-vm86-emu.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

This package allows MS-DOS programs to be run in Linux. A virtual
machine (the DOS box) provides the necessary BIOS functions and
emulates most of the chip devices (for example: timer, interrupt, and
keyboard controller).

Documentation can be found in /usr/share/doc/packages/dosemu, the man
page, and in the sources.

Starting with version 1.0.2, DOSEMU configuration files are no longer
in /etc but in the user's HOME directory in ~/dosemu. DOSEMU no longer
has the SUID bit set, so if you need access to hardware that requires
root privileges, you must run DOSEMU as root.

If you rely on the old configuration scheme, you can get it back by
using dosemu.bin instead of dosemu (dos and xdos have been renamed to
dosemu and xdosemu).

The parameter $_hogthreshold in ~/dosemu/conf/dosemu.conf defines how
often an idling DOSEMU should return the CPU to Linux and its default
value (1) means "all power to Linux." The higher this value is, the
more CPU power is dedicated to DOSEMU. The value (0) disables this
feature completely, hence: "all power to DOSEMU." If that is not fast
enough, you (running as UID root) can get maximum performance with

nice -19 dos -D-a 2>/dev/null

Do not be surprised if other Linux processes then run very sluggishly.

On sensitive systems, you should never offer an suid-root DOSEMU as
world readable. Even if the '$_secure' option in dosemu.conf is set, it
is still possible that some DPMI clients (most likely Dos4gw based
ones) may succeed in accessing the whole user space (including DOSEMU
code) and thus gain root access. A comfortable solution is to have two
copies of the DOSEMU binary, a non-suid-root one for world access and a
suid-root one (protected by file permissions) only available to trusted

%setup -q -n %name-
%patch4 -p1

%configure --sysconfdir=%{_sysconfdir}/%{name} --with-docdir=%{_docdir}/dosemu \
make %{?_smp_mflags}

make DESTDIR=%{buildroot} install
%_fixowner %{buildroot}
%_fixgroup %{buildroot}
%_fixperms %{buildroot}
%find_lang %{name} --all-name --with-man

%files -f %{name}.lang
%lang(ru) %dir %{_mandir}/ru
%doc %{_docdir}/dosemu
%dir %{_sysconfdir}/dosemu
%dir %{_sysconfdir}/dosemu/drives
%config(noreplace) %{_sysconfdir}/dosemu/dosemu.conf
%config(noreplace) %{_sysconfdir}/dosemu/dosemu.users
%config(noreplace) %{_sysconfdir}/dosemu/global.conf
%config(noreplace) %{_sysconfdir}/dosemu/drives/c
%config(noreplace) %{_sysconfdir}/dosemu/drives/d