+# NOTE: if /dev/shm is mounted, it cannot be mounted with noexec
+#
# Conditional build:
-# --with static - links statically
-
-%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)
-%define _kernel24 %(echo %{_kernel_ver} | grep -q '2\.[012]\.' ; echo $?)
-%if %{_kernel24}
-%define _moddir /lib/modules/%{_kernel_ver}/misc
-%else
-%define _moddir /lib/modules/%{_kernel_ver}/net
-%endif
+%bcond_with static # link statically
+%bcond_with AC
+%bcond_without htmldocs # do not build documentation in HTML
+%bcond_without x # X support
+%bcond_with samba # samba 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
-Release: 3
-License: distributable
+Version: 1.4.0
+Release: 1%{?with_samba:.smb}
+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
-Patch2: %{name}-0.98.1-justroot.patch
-Patch3: %{name}-0.98.1-security.patch
-Patch4: %{name}-make-new.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
+Patch5: http://pascalek.pers.pl/files/projects/Samba4DosEmu/%{name}-1.4.0-samba-beta2.patch.gz
+Patch6: http://pascalek.pers.pl/files/projects/Samba4DosEmu/s4d-beta2-fix1.patch
+Patch7: %{name}-lpt4.patch
+Patch8: %{name}-Xquit.patch
URL: http://www.dosemu.org/
-BuildRequires: XFree86-devel
+BuildRequires: SDL-devel
+BuildRequires: alsa-lib-devel >= 0.9
+BuildRequires: autoconf >= 2.59-9
BuildRequires: bin86
BuildRequires: bison
+BuildRequires: docbook-dtd30-sgml
+BuildRequires: docbook-style-dsssl
BuildRequires: flex
+%{?with_static:BuildRequires: glibc-static}
+BuildRequires: gpm-devel
+%{?with_samba:BuildRequires: libcli_smb-devel}
+BuildRequires: libsndfile-devel
+BuildRequires: lynx
+%{?with_htmldocs:BuildRequires: openjade}
+%{?with_htmldocs:BuildRequires: perl-base}
+%{?with_htmldocs:BuildRequires: sgml-tools}
BuildRequires: slang-devel
+%{?with_static:BuildRequires: slang-static}
BuildRequires: unzip
-%{?_with_static:BuildRequires: glibc-static}
-%{?_with_static:BuildRequires: XFree86-static}
-%{?_with_static:BuildRequires: slang-static}
+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
-Exclusivearch: %{ix86}
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Conflicts: dosemu-freedos-minimal < 2.0.33
Conflicts: kernel < 2.0.28
Conflicts: mtools < 3.6
+ExclusiveArch: %{ix86} %{x8664}
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _xbindir /usr/X11R6/bin
%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ü
-Group: Applications/Emulators
-Group(de): Applikationen/Emulators
-Group(pl): Aplikacje/Emulatory
-Requires: %{name} = %{version}
-
-%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 -n xdosemu -l de
-Dies ist eine Version des DOS-Emulators für X-Windows-Sitzungen. Er
-unterstützt VGA-Grafiken und Maus.
-
-%description -n xdosemu -l fr
-Version de l'émulateur DOS conçue pour tourner dans une session X.
-Offre une gestion des graphismes VGA et de la souris.
-
-%description -n xdosemu -l pl
-Xdosemu jest wersj± emulatora dosemu dzia³aj±c± w X Window System.
-Xdosemu ma wsparcie dla grafiki VGA i obs³ugi myszki.
-
-%description -n xdosemu -l tr
-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 -n kernel-net-dosnet
-Summary: kernel module dosnet.o
-Summary(pl): Modu³ dosnet.o do kernela
-Release: %{release}@%{_kernel_ver_str}
+%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}
-Obsoletes: dosnet
-Prereq: /sbin/depmod
-
-%description -n kernel-net-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 -n kernel-net-dosnet -l pl
-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.
+Requires: %{name} = %{version}-%{release}
+
+%description utils
+Utilities for dosemu: dexeconfig, hdinfo, mkhdimage, mkfatimage16.
+
+%description utils -l pl.UTF-8
+Programy pomocnicze dla dosemu: dexeconfig, hdinfo, mkhdimage,
+mkfatimage16.
+
+%package SDL
+Summary: SDL plugin for dosemu
+Summary(pl.UTF-8): Wtyczka SDL dla dosemu
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description SDL
+SDL plugin for dosemu.
+
+%description SDL -l pl.UTF-8
+Wtyczka SDL dla dosemu.
+
+%package X
+Summary: X plugin for dosemu
+Summary(pl.UTF-8): Wtyczka X dla dosemu
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description X
+X plugin for 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
%patch2 -p1
%patch3 -p1
%patch4 -p1
-
-rm -rf freedos
-mkdir freedos
-unzip -q -L -o %{SOURCE3} -d freedos
+%{?with_samba:%patch5 -p1}
+%{?with_samba:%patch6 -p1}
+%patch7 -p1
+%patch8 -p1
%build
-cp -f base-configure.in configure.in
-autoconf
-OPTFLAGS="%{rpmcflags} %{!?debug:-fomit-frame-pointer}"; export OPTFLAGS
+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
-%configure \
-%{?_with_static:--enable-linkstatic} \
+%configure2_13 \
+ %{?with_static:--enable-linkstatic} \
--enable-new-intcode \
--enable-aspi \
- --without-x
-echo | %{__make}
-mv -f bin/dosemu.bin bin/dos-nox
+ %{!?with_x:--without-x}
-# X version
-%configure \
-%{?_with_static:--enable-linkstatic} \
- --enable-new-intcode \
- --enable-aspi
-echo | %{__make}
-mv -f bin/dosemu.bin bin/dos-x
-mv -f bin/dos-nox bin/dosemu.bin
+%{__make} \
+ WAIT=no
-%{__make} -C src/dosext/net/v-net
+%{__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 man/dosemu.bin.1 man/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
+
+%if %{with htmldocs}
+# documentation
+%{__make} -C src/doc/DANG html
+%{__make} -C src/doc/HOWTO html
+%{__make} -C src/doc/README html
+
+find src/doc -name "*.html" -exec cp -f '{}' doc/ ';'
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_xbindir},%{_sysconfdir},%{_pixmapsdir}} \
- $RPM_BUILD_ROOT{%{_mandir}/man1,%{_mandir}/pl/man1} \
- $RPM_BUILD_ROOT%{_dosemudir}/bootdir/{dosemu,freedos/doc/fdkernel}
-
-install bin/dosemu.bin $RPM_BUILD_ROOT%{_bindir}/dos
-install bin/dos-x $RPM_BUILD_ROOT%{_xbindir}/xdos
-install bin/dosdebug $RPM_BUILD_ROOT%{_bindir}/dosdebug
-install src/tools/periph/{dexeconfig,hdinfo,mkhdimage,mkfatimage16} $RPM_BUILD_ROOT%{_bindir}
+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%{_prefix}/X11R6/share/pixmaps
-install etc/dosemu.users.secure $RPM_BUILD_ROOT%{_sysconfdir}/dosemu.users
+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 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 %{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 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
-
-install -d $RPM_BUILD_ROOT%{_moddir}
-install src/dosext/net/v-net/dosnet.o $RPM_BUILD_ROOT%{_moddir}
-
-# 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
+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}
rm -f doc/{configuration,dosemu.lsm}
-gzip -9nf QuickStart COPYING ChangeLog* doc/*
-
%clean
rm -rf $RPM_BUILD_ROOT
-%post -n kernel-net-dosnet
-depmod -a
-
-%postun -n kernel-net-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}/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}/dosemu
%attr(755,root,root) %{_bindir}/dosexec
-%attr(755,root,root) %{_bindir}/dexeconfig
-%attr(755,root,root) %{_bindir}/hdinfo
-%attr(755,root,root) %{_bindir}/mkhdimage
-%attr(755,root,root) %{_bindir}/mkfatimage16
+%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/[dm]*
+%{_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 -n xdosemu
+%files utils
%defattr(644,root,root,755)
-%attr(755,root,root) %{_xbindir}/xdos
-%{_mandir}/man1/xdos.1*
-%lang(pl) %{_mandir}/pl/man1/xdos.1*
+%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 kernel-net-dosnet
+%files SDL
%defattr(644,root,root,755)
-%{_moddir}/dosnet.o
+%attr(755,root,root) %{_libdir}/dosemu/libplugin_sdl.so
+
+%if %{with x}
+%files X
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/dosemu/libplugin_X.so
+%endif