-%define _kernel_ver %(grep UTS_RELEASE %{_kernelsrcdir}/include/linux/version.h 2>/dev/null| cut -d'"' -f2)
-#%define _kernel_ver_str %(echo %{_kernel_ver} | sed s/-/_/g)
+# NOTE: if /dev/shm is mounted, it cannot be mounted with noexec
+#
+# Conditional build:
+%bcond_with static # link statically
+%bcond_with AC
+%bcond_without x # X support
+#
+%define smarthogver 0.1.0
+
Summary: A DOS emulator
-Summary(de): DOS-Emulator
-Summary(fr): Emulateur DOS
-Summary(pl): Emulator DOSa
-Summary(tr): DOS öykünümcüsü
+Summary(de.UTF-8): DOS-Emulator
+Summary(es.UTF-8): Emulador DOS
+Summary(fr.UTF-8): Emulateur DOS
+Summary(pl.UTF-8): Emulator DOS-a
+Summary(pt_BR.UTF-8): Emulador DOS
+Summary(tr.UTF-8): DOS öykünümcüsü
Name: dosemu
-Version: 1.0.2
+Version: 1.4.0
Release: 1
-License: distributable
+License: GPL v2
Group: Applications/Emulators
-Group(de): Applikationen/Emulators
-Group(pl): Aplikacje/Emulatory
-Source0: ftp://ftp.dosemu.org/dosemu/%{name}-%{version}.tgz
-Source1: %{name}-pl-man-pages.tar.bz2
-Source2: dosemu-sys.tar.gz
-Source3: http://prdownloads.sourceforge.net/freedos/ke2025c16.zip
-Source4: autoexec2.bat
-Source5: config2.sys
-Source6: keybpl.exe
-Source7: egapl.exe
-Source8: shsucdx.exe
-Patch0: %{name}-dosemu_conf.patch
-Patch1: %{name}-1.0.2-man-pages.patch
+Source0: http://dl.sourceforge.net/dosemu/%{name}-%{version}.tgz
+# Source0-md5: 0bba530637266f99d404ba15e3f118d4
+#Source2: %{name}-sys.tar.gz
+Source3: %{name}-PRZECZYTAJ_TO
+Source4: %{name}-README.PLD
+Source5: %{name}.desktop
+Source6: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-pl-man-pages.tar.bz2
+# Source6-md5: 7a8abf5c656e6b99bdd03a4783751895
+Source7: smarthog-%{smarthogver}.tgz
+Patch0: %{name}-man-pages.patch
+Patch1: %{name}-make-new.patch
+Patch2: %{name}-%{name}_conf.patch
+Patch3: %{name}-doSgmlTools.patch
+Patch4: %{name}-makehtml.patch
URL: http://www.dosemu.org/
+BuildRequires: SDL-devel
+BuildRequires: alsa-lib-devel >= 0.9
+BuildRequires: autoconf >= 2.59-9
BuildRequires: bin86
-BuildRequires: unzip
BuildRequires: bison
+BuildRequires: docbook-dtd30-sgml
+BuildRequires: docbook-style-dsssl
BuildRequires: flex
-BuildRequires: glibc-static
-BuildRequires: XFree86-static
-BuildRequires: slang-static
+%{?with_static:BuildRequires: glibc-static}
+BuildRequires: gpm-devel
+BuildRequires: libsndfile-devel
+BuildRequires: lynx
+BuildRequires: openjade
+BuildRequires: perl-base
+BuildRequires: sgml-tools
+BuildRequires: slang-devel
+%{?with_static:BuildRequires: slang-static}
+BuildRequires: unzip
+BuildRequires: util-linux
+%if %{with x}
+%if !%{with AC}
+BuildRequires: xorg-app-bdftopcf
+BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xorg-lib-libXext-devel
+BuildRequires: xorg-lib-libXxf86vm-devel
+%if %{with static}
+BuildRequires: xorg-lib-libX11-static
+BuildRequires: xorg-lib-libXext-static
+BuildRequires: xorg-lib-libXxf86vm-static
+%endif
+%endif
+%if %{with AC}
+BuildRequires: X11-devel
+%{?with_static:BuildRequires: X11-static}
+%endif
+%endif
+Obsoletes: xdosemu
+Conflicts: dosemu-freedos-minimal < 2.0.33
+Conflicts: kernel < 2.0.28
Conflicts: mtools < 3.6
-Exclusivearch: %{ix86}
+ExclusiveArch: %{ix86} %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-Conflicts: kernel < 2.0.28
+
+%define _dosemudir /var/lib/dosemu
+%define specflags -fomit-frame-pointer
%description
Dosemu is a DOS emulator. Once you've installed dosemu, start the DOS
You need to install dosemu if you use DOS programs and you want to be
able to run them on your GNU/Linux system. You may also need to
-install the dosemu-freedos-* package.
-
-%description -l es
-Esta es una versión del emulador DOS que fue proyectada para
-ejecutarse en secciones X Window. Ofrece soporte a gráficos VGA como
-también soporte a ratón.
+install the dosemu-freedos-* packages.
-%description -l pl
-Dosemu to Emulator systemu DOS. Po zainstalowaniu mo¿esz go uruchomiæ
-komend± "dos".
+%description -l pl.UTF-8
+Dosemu to Emulator systemu DOS. Po zainstalowaniu możesz go uruchomić
+komendą "dos".
-Je¶li korzystasz z dosowych programów i chcia³by¶ je uruchamiaæ
-na twoim Linuksowym systemie zainstaluj dosemu. Mo¿esz te¿
-potrzebowaæ pakietów dosemu-freedos-*.
+Jeśli korzystasz z dosowych programów i chciałbyś je uruchamiać na
+twoim linuksowym systemie zainstaluj dosemu. Możesz też potrzebować
+pakietów dosemu-freedos-*.
-%description -l pt_BR
-Essa é uma versão do emulador DOS que foi projetada para rodar em
-sessões X Window. Oferece suporte para gráficos VGA bem como suporte
+%description -l pt_BR.UTF-8
+Essa é uma versão do emulador DOS que foi projetada para rodar em
+sessões X Window. Oferece suporte para gráficos VGA bem como suporte
para mouse.
-%package -n xdosemu
-Summary: A DOS emulator for the X Window System
-Summary(de): DOS-Emulator für X
-Summary(fr): Émulateur DOS conçu pou être lancé sous X
-Summary(tr): X altýnda çalýþan DOS öykünümcüsü
+%package utils
+Summary: Utilities for dosemu
+Summary(pl.UTF-8): Programy pomocnicze do dosemu
Group: Applications/Emulators
-Group(de): Applikationen/Emulators
-Group(pl): Aplikacje/Emulatory
-Requires: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
-%description -n xdosemu
-Xdosemu is a version of the dosemu DOS emulator that runs with the X
-Window System. Xdosemu provides VGA graphics and mouse support.
+%description utils
+Utilities for dosemu: dexeconfig, hdinfo, mkhdimage, mkfatimage16.
-Install xdosemu if you need to run DOS programs on your system, and
-you'd like to do so with the convenience of graphics support and mouse
-capabilities.
+%description utils -l pl.UTF-8
+Programy pomocnicze dla dosemu: dexeconfig, hdinfo, mkhdimage,
+mkfatimage16.
-%description -l de -n xdosemu
-Dies ist eine Version des DOS-Emulators für X-Windows-Sitzungen. Er
-unterstützt VGA-Grafiken und Maus.
+%package SDL
+Summary: SDL plugin for dosemu
+Summary(pl.UTF-8): Wtyczka SDL dla dosemu
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
-%description -l es -n xdosemu
-Esta es la versión del emulador DOS dibujada para ejecutarse en una
-ventana del X Window. Posee soporte para gráficos VGA y ratón.
+%description SDL
+SDL plugin for dosemu.
-%description -l fr -n xdosemu
-Version de l'émulateur DOS conçue pour tourner dans une session X.
-Offre une gestion des graphismes VGA et de la souris.
+%description SDL -l pl.UTF-8
+Wtyczka SDL dla dosemu.
-%description -l pl -n xdosemu
-Xdosemu jest wersj± emulatora dosemu dzia³aj±c± w X Window System.
-Xdosemu ma wsparcie dla grafiki VGA i obs³ugi myszki.
+%package X
+Summary: X plugin for dosemu
+Summary(pl.UTF-8): Wtyczka X dla dosemu
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
-%description -l pt_BR -n xdosemu
-Esta é a versão do emulador DOS desenhada para rodar em uma janela do
-X Window. Possui suporte a gráficos VGA e mouse.
+%description X
+X plugin for dosemu.
-%description -l tr -n xdosemu
-Bu yazýlým, DOS öykünümcüsünün X altýnda çalýþan bir sürümüdür. VGA
-grafikleri ve fare desteði vardýr.
-
-%package dosnet
-Summary: kernel module dosnet.o
-Summary(pl): Modu³ dosnet.o do kernela
-Group: Applications/Emulators
-Group(de): Applikationen/Emulators
-Group(pl): Aplikacje/Emulatory
-Requires: %{name} = %{version}
-Prereq: /sbin/depmod
-
-%description dosnet
-Kernel module for dosnet (vnet). Dosnet lets you establish TCP/IP
-connection beetween dosemu session and Linux kernel. Read README
-for dosemu for more information.
-
-%description -l pl dosnet
-Modu³ dosnet.o dla kernela. Modu³ ten pozwala ³±czyæ siê programom
-DOSowym wykorzystuj±cym TCP/IP z Linuksem. Przydatny miêdzy innymi
-przy pisaniu programów sieciowych dla DOSa. Rzeteln± informacjê na
-temat dosnet mo¿esz znale¼æ w README do dosemu.
+%description X -l pl.UTF-8
+Wtyczka X dla dosemu.
%prep
-%setup -q -a1 -a2
-%patch0 -p0
+%setup -q -a6 -a7
+%patch0 -p1
%patch1 -p1
-
-rm -rf freedos
-mkdir freedos
-unzip -L -o %{SOURCE3} -d freedos
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
%build
-cp base-configure.in configure.in
-autoconf
-%configure \
- --without-x \
- --enable-linkstatic \
- --enable-new-intcode \
- --enable-aspi
-echo | %{__make}
-mv -f bin/dosemu.bin bin/dos-nox
-%configure \
- --enable-linkstatic \
+OPTFLAGS="%{rpmcflags}"; export OPTFLAGS
+
+./mkpluginhooks enable plugin_keyboard off plugin_kbd_unicode on \
+plugin_extra_charset on plugin_term on plugin_translate on plugin_demo off
+
+%{__autoconf}
+# configure2_13 must be used though because of ./default-configure
+
+# non-X version
+%configure2_13 \
+ %{?with_static:--enable-linkstatic} \
--enable-new-intcode \
- --enable-aspi
-echo | %{__make}
-make -C src/dosext/net/v-net
-mv -f bin/dos-nox bin/dos
+ --enable-aspi \
+ %{!?with_x:--without-x}
+
+%{__make} \
+ WAIT=no
+
+%{__make} -C man
+mv -f man/dosemu.bin.1 man/dosemu.1
+echo '.so dosemu.1' > man/dos.1
+mv -f man/ru/dosemu.bin.1 man/ru/dosemu.1
+echo '.so dosemu.1' > man/ru/dos.1
+
+mv -f pl/man1/dos.1 pl/man1/dosemu.1
+echo '.so dosemu.1' > pl/man1/dos.1
+echo '.so dosemu.1' > pl/man1/xdosemu.1
+echo '.so dosemu.1' > pl/man1/dosdebug.1
-mv -f man/dosemu.bin.1 man/dos.1
+# documentation
+%{__make} -C src/doc/DANG html
+%{__make} -C src/doc/HOWTO html
+%{__make} -C src/doc/README html
-%define _dosemudir /var/lib/dosemu
+find src/doc -name "*.html" -exec cp -f '{}' doc/ ';'
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_sysconfdir},%{_mandir}/man1,%{_mandir}/pl/man1,%{_pixmapsdir}}
-install -d $RPM_BUILD_ROOT%{_dosemudir}/bootdir/{dosemu,freedos/doc/fdkernel}
-install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/net
-
-install bin/dosemu.bin $RPM_BUILD_ROOT%{_bindir}/xdos
-install bin/dos $RPM_BUILD_ROOT%{_bindir}/dos
-install bin/dosdebug $RPM_BUILD_ROOT%{_bindir}/dosdebug
-install src/tools/periph/{dexeconfig,hdinfo,mkhdimage,mkfatimage16} $RPM_BUILD_ROOT%{_bindir}
-install etc/dosemu.xpm $RPM_BUILD_ROOT%{_prefix}/X11R6/share/pixmaps
-install etc/dosemu.users.secure $RPM_BUILD_ROOT%{_sysconfdir}/dosemu.users
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_sysconfdir},%{_pixmapsdir},%{_desktopdir}} \
+ $RPM_BUILD_ROOT{%{_mandir}/man1,%{_mandir}/{pl,ru}/man1} \
+ $RPM_BUILD_ROOT%{_dosemudir}/bootdir/{dosemu,freedos/doc/fdkernel} \
+ $RPM_BUILD_ROOT%{_libdir}/dosemu
+
+#%%{__make} install \
+# DESTDIR=$RPM_BUILD_ROOT
+
+install bin/midid $RPM_BUILD_ROOT%{_bindir}/midid
+install bin/dosemu.bin $RPM_BUILD_ROOT%{_bindir}/dosemu
+ln -sf dosemu $RPM_BUILD_ROOT%{_bindir}/dos
+%if %{with x}
+ln -sf dosemu $RPM_BUILD_ROOT%{_bindir}/xdos
+ln -sf dosemu $RPM_BUILD_ROOT%{_bindir}/xdosemu
+ln -sf dosemu $RPM_BUILD_ROOT%{_bindir}/xdosexec
+%endif
+
+install bin/libplugin*.so $RPM_BUILD_ROOT%{_libdir}/dosemu
+
+install bin/{dosdebug,mkfatimage16} $RPM_BUILD_ROOT%{_bindir}
+install src/tools/periph/{dexeconfig,hdinfo,mkhdimage} $RPM_BUILD_ROOT%{_bindir}
+ln -sf dos $RPM_BUILD_ROOT%{_bindir}/dosexec
+
+install etc/dosemu.xpm $RPM_BUILD_ROOT%{_pixmapsdir}
+install etc/dosemu.users.example $RPM_BUILD_ROOT%{_sysconfdir}/dosemu.users
install etc/global.conf $RPM_BUILD_ROOT%{_dosemudir}/global.conf
install etc/dosemu.conf $RPM_BUILD_ROOT%{_sysconfdir}/dosemu.conf
-install man/{dos.1,dosdebug.1,xdos.1,mkfatimage16.1} $RPM_BUILD_ROOT%{_mandir}/man1
-install pl/man1/{dos.1,dosdebug.1,xdos.1} $RPM_BUILD_ROOT%{_mandir}/pl/man1
-install %{SOURCE4} $RPM_BUILD_ROOT%{_dosemudir}/bootdir/autoexec.bat
-install %{SOURCE5} $RPM_BUILD_ROOT%{_dosemudir}/bootdir/config.sys
-install %{SOURCE6} $RPM_BUILD_ROOT%{_dosemudir}/bootdir/keybpl.exe
-install %{SOURCE7} $RPM_BUILD_ROOT%{_dosemudir}/bootdir/egapl.exe
-install %{SOURCE8} $RPM_BUILD_ROOT%{_dosemudir}/bootdir/shsucdx.exe
-install src/plugin/commands/*.com $RPM_BUILD_ROOT%{_dosemudir}/bootdir/dosemu
-install dosemu/*.sys $RPM_BUILD_ROOT%{_dosemudir}/bootdir/dosemu
-install src/dosext/net/v-net/dosnet.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/net
-install freedos/bin/kernel.sys $RPM_BUILD_ROOT%{_dosemudir}/bootdir
-install freedos/doc/fdkernel/* $RPM_BUILD_ROOT%{_dosemudir}/bootdir/freedos/doc/fdkernel
-ln -sf dosemu/comcom.com $RPM_BUILD_ROOT%{_dosemudir}/bootdir/command.com
-
-# Take out irritating ^H's from the documentation
-for i in `ls --color=no doc/` ; do cat doc/$i > $i ; cat $i | perl -p -e 's/.\b//g' > doc/$i ; done
-rm -f doc/{configuration,dosemu.lsm}
-
-#mv -f $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fonts/misc \
-# $RPM_BUILD_ROOT%{_fontsdir}
+install man/{dosemu.1,dosdebug.1,xdosemu.1,dos.1,mkfatimage16.1} $RPM_BUILD_ROOT%{_mandir}/man1
+install pl/man1/{dosemu.1,dosdebug.1,xdosemu.1,dos.1} $RPM_BUILD_ROOT%{_mandir}/pl/man1
+install man/ru/{dosemu.1,dosdebug.1,xdosemu.1,dos.1,mkfatimage16.1} $RPM_BUILD_ROOT%{_mandir}/ru/man1
+install commands/*.com $RPM_BUILD_ROOT%{_dosemudir}/bootdir/dosemu
+install commands/*.sys $RPM_BUILD_ROOT%{_dosemudir}/bootdir/dosemu
+install smarthog-%{smarthogver}/*.exe $RPM_BUILD_ROOT%{_dosemudir}/bootdir/dosemu
+cp %{SOURCE3} PRZECZYTAJ_TO
+cp %{SOURCE4} README.PLD
+install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
-gzip -9nf QuickStart COPYING ChangeLog* doc/*
+rm -f doc/{configuration,dosemu.lsm}
%clean
rm -rf $RPM_BUILD_ROOT
-
-%post dosnet
-depmod -a
-
-%postun dosnet
-depmod -a
-
-
%files
%defattr(644,root,root,755)
-%doc *.gz doc/*
+%doc QuickStart COPYING ChangeLog* doc/* README.PLD
+%lang(pl) %doc PRZECZYTAJ_TO
%dir %{_dosemudir}
-%config(noreplace) %{_sysconfdir}/dosemu.conf
-%config(noreplace) %{_sysconfdir}/dosemu.users
-#%config(noreplace) %{_dosemudir}/hdimage
-%config(noreplace) %{_dosemudir}/global.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dosemu.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dosemu.users
+%config(noreplace) %verify(not md5 mtime size) %{_dosemudir}/global.conf
%attr(755,root,root) %{_bindir}/dos
%attr(755,root,root) %{_bindir}/dosdebug
-#%attr(755,root,root) %{_bindir}/dosexec
-#%attr(755,root,root) %{_bindir}/dexeconfig
-%attr(755,root,root) %{_bindir}/hdinfo
-#%attr(755,root,root) %{_bindir}/do_mtools
-#%attr(755,root,root) %{_bindir}/extract-dos
-#%attr(755,root,root) %{_bindir}/mkdexe
-#%attr(755,root,root) %{_bindir}/myxcopy
-%attr(755,root,root) %{_bindir}/mkhdimage
-%attr(755,root,root) %{_bindir}/mkfatimage16
-#%attr(755,root,root) %{_bindir}/rundos
+%attr(755,root,root) %{_bindir}/dosemu
+%attr(755,root,root) %{_bindir}/dosexec
+%attr(755,root,root) %{_bindir}/midid
+%dir %{_libdir}/dosemu
+%{_libdir}/dosemu/libplugin_alsa.so
+%{_libdir}/dosemu/libplugin_gpm.so
+%{_libdir}/dosemu/libplugin_sndfile.so
+%{_libdir}/dosemu/libplugin_term.so
%dir %{_dosemudir}/bootdir
%dir %{_dosemudir}/bootdir/dosemu
-%dir %{_dosemudir}/bootdir/freedos
%{_dosemudir}/bootdir/dosemu/*
-%{_dosemudir}/bootdir/kernel.sys
-%config(noreplace) %{_dosemudir}/bootdir/autoexec.bat
-%config(noreplace) %{_dosemudir}/bootdir/config.sys
-%{_dosemudir}/bootdir/command.com
-%{_dosemudir}/bootdir/*.exe
-%{_dosemudir}/bootdir/freedos/*
-%{_mandir}/man1/dos*
-%{_mandir}/man1/mkfatimage16.1*
-%lang(pl) %{_mandir}/pl/man1/dos*
+%{_mandir}/man1/d*
+%lang(pl) %{_mandir}/pl/man1/d*
+%lang(ru) %{_mandir}/ru/man1/d*
%{_pixmapsdir}/dosemu.xpm
+%if %{with x}
+%attr(755,root,root) %{_bindir}/xdos*
+%{_mandir}/man1/xdosemu.1*
+%lang(pl) %{_mandir}/pl/man1/xdosemu.1*
+%lang(ru) %{_mandir}/ru/man1/xdosemu.1*
+%{_desktopdir}/dosemu.desktop
+%endif
+
+%files utils
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/dexeconfig
+%attr(755,root,root) %{_bindir}/hdinfo
+%attr(755,root,root) %{_bindir}/mkhdimage
+%attr(755,root,root) %{_bindir}/mkfatimage16
+%{_mandir}/man1/mkfatimage16.1*
+%lang(ru) %{_mandir}/ru/man1/mkfatimage16.1*
-%files -n xdosemu
+%files SDL
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/xdos
-# %attr(755,root,root) %{_bindir}/xtermdos
-%{_mandir}/man1/xdos.1*
-%lang(pl) %{_mandir}/pl/man1/xdos.1*
-# %{_mandir}/man1/xtermdos.1*
-# %{_datadir}/fonts/misc/*
-
-%files dosnet
+%attr(755,root,root) %{_libdir}/dosemu/libplugin_sdl.so
+
+%if %{with x}
+%files X
%defattr(644,root,root,755)
-/lib/modules/%{_kernel_ver}/net/dosnet.o
+%attr(755,root,root) %{_libdir}/dosemu/libplugin_X.so
+%endif