+# 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
+%define _moddirsmp /lib/modules/%{_kernel_ver}smp/misc
+%else
+%define _moddir /lib/modules/%{_kernel_ver}/net
+%define _moddirsmp /lib/modules/%{_kernel_ver}smp/net
+%endif
+
Summary: A DOS emulator
Summary(de): DOS-Emulator
Summary(fr): Emulateur DOS
+Summary(pl): Emulator DOSa
Summary(tr): DOS öykünümcüsü
Name: dosemu
-Version: 1.0.1
-Release: 1
-Copyright: distributable
+Version: 1.0.2
+Release: 3
+License: distributable
Group: Applications/Emulators
Group(de): Applikationen/Emulators
Group(pl): Aplikacje/Emulatory
Source0: ftp://ftp.dosemu.org/dosemu/%{name}-%{version}.tgz
-Source1: http://www.freedos.org/files/distributions/base1.zip
-Source2: http://www.freedos.org/files/distributions/util1.zip
-Source3: http://www.freedos.org/files/distributions/edit1.zip
-Source4: ftp://ftp.gcfl.net/freedos/kernel/ker2019x.zip
-Source5: ftp://ftp.home.vim.org/pub/vim/pc/vim56d16.zip
-Source6: ftp://ftp.home.vim.org/pub/vim/pc/vim56rt.zip
-Source7: autoexec.bat
-Source8: config.sys
-Patch0: %{name}-0.66.7-config.patch
-Patch1: %{name}-0.66.7-glibc.patch
-Patch2: %{name}-0.66.7-pushal.patch
+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: ftp://ftp.dosemu.org/dosemu/patch-1.0.2.1.gz
+Patch1: %{name}-1.0.2-man-pages.patch
+Patch2: %{name}-0.98.1-justroot.patch
Patch3: %{name}-0.98.1-security.patch
-Patch4: %{name}-0.98.1-justroot.patch
-Patch5: %{name}-make-new.patch
-Patch6: %{name}m-1.0.0-glibc22.patch
-Patch7: %{name}-1.0.1-broken.patch
+Patch4: %{name}-make-new.patch
+Patch5: %{name}-Polish_keyboard.patch
+Patch6: %{name}-dosemu_conf.patch
+
+URL: http://www.dosemu.org/
+BuildRequires: XFree86-devel
BuildRequires: bin86
-BuildRequires: mtools
+BuildRequires: bison
+BuildRequires: flex
+BuildRequires: perl
+BuildRequires: slang-devel
BuildRequires: unzip
-Conflicts: kernel < 2.0.28
-Requires: mtools >= 3.6
-Url: http://www.dosemu.org
+%{?_with_static:BuildRequires: glibc-static}
+%{?_with_static:BuildRequires: XFree86-static}
+%{?_with_static:BuildRequires: slang-static}
+Obsoletes: xdosemu
Exclusivearch: %{ix86}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Conflicts: kernel < 2.0.28
+Conflicts: mtools < 3.6
+
+%define _xbindir /usr/X11R6/bin
+%define _dosemudir /var/lib/dosemu
%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.
+install the dosemu-freedos-* packages.
+
+%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.
+
+%description -l pl
+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-*.
+
+%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
+para mouse.
%package -n xdosemu
Summary: A DOS emulator for the X Window System
Xdosemu is a version of the dosemu DOS emulator that runs with the X
Window System. Xdosemu provides VGA graphics and mouse support.
-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 -l de -n xdosemu
+%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 -l fr -n xdosemu
+%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 -l tr -n xdosemu
+%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 freedos
+%package -n kernel-net-dosnet
+Summary: kernel module dosnet.o
+Summary(pl): Modu³ dosnet.o do kernela
+Release: %{release}@%{_kernel_ver_str}
+Group: Applications/Emulators
+Group(de): Applikationen/Emulators
+Group(pl): Aplikacje/Emulatory
Requires: %{name} = %{version}
-Summary: A FreeDOS hdimage for dosemu, a DOS emulator, to use.
+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.
+
+%package -n kernel-smp-net-dosnet
+Summary: kernel module dosnet.o
+Summary(pl): Modu³ dosnet.o do kernela
+Release: %{release}@%{_kernel_ver_str}
Group: Applications/Emulators
Group(de): Applikationen/Emulators
Group(pl): Aplikacje/Emulatory
+Requires: %{name} = %{version}
+Obsoletes: dosnet
+Prereq: /sbin/depmod
-%description freedos
-Generally, the dosemu DOS emulator requires either that your system
-have some version of DOS available or that your system's partitions
-were formatted and installed with DOS. If your system does not meet
-either of the previous requirements, you can instead use the dosemu-
-freedos package, which contains an hdimage file which will be
-installed in the /var/lib/dosemu directory. The hdimage file is
-already bootable with FreeDOS.
-
-You will need to edit your /etc/dosemu.conf file to add the image to
-the list of disk 'drives' used by dosemu.
+%description -n kernel-smp-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.
-Install dosemu-freedos if you are installing the dosemu package and
-you don't have a version of DOS available on your system, and your
-system's partitions were not formatted and installed with DOS.
+%description -n kernel-smp-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.
%prep
-%setup -q
+%setup -q -a1 -a2
%patch0 -p1
+%patch1 -p1
#%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1
-%patch7 -p1
+%patch6 -p0
rm -rf freedos
mkdir freedos
-mkdir freedos/kernel
-mkdir freedos/tmp
-mkdir freedos/vim
-
-unzip -o -L -d freedos/kernel/ -j %{SOURCE4}
-cp -f contrib/dosC/dist/* freedos/kernel
-for i in %{SOURCE1} %{SOURCE3} %{SOURCE2} ; do
- unzip -o -L -d freedos/tmp $i
-done
-for i in freedos/tmp/*.zip ; do
- unzip -o -L -o -d freedos $i
-done
-unzip -L -o -d freedos %{SOURCE6}
-unzip -L -o -d freedos/vim-5.6 %{SOURCE5}
+unzip -q -L -o %{SOURCE3} -d freedos
%build
-./default-configure --without-x
-echo | make
-mv -f bin/dos bin/dos-nox
-./default-configure
-echo | make
-mv -f bin/dos bin/dos-x
-mv -f bin/dos-nox bin/dos
+cp -f base-configure.in configure.in
+autoconf
+OPTFLAGS="%{rpmcflags} %{!?debug:-fomit-frame-pointer}"; export OPTFLAGS
+
+%{__cc} $OPTFLAGS -I%{_includedir} -D__KERNEL__ -D__KERNEL_SMP=1 \
+ -Wall -Wstrict-prototypes \
+ -fno-strength-reduce -I%{_kernelsrcdir}/include -Isrc/include \
+ -DMODULE \
+ -c -o src/dosext/net/v-net/dosnet.o src/dosext/net/v-net/dosnet.c
+mkdir src/dosext/net/v-net/smp
+mv -f src/dosext/net/v-net/dosnet.o src/dosext/net/v-net/smp/
+
+%{__cc} $OPTFLAGS -I%{_includedir} -D__KERNEL__ \
+ -Wall -Wstrict-prototypes \
+ -fno-strength-reduce -I%{_kernelsrcdir}/include -Isrc/include \
+ -DMODULE \
+ -c -o src/dosext/net/v-net/dosnet.o src/dosext/net/v-net/dosnet.c
+
+# non-X version
+%configure \
+%{?_with_static:--enable-linkstatic} \
+ --enable-new-intcode \
+ --enable-aspi \
+ --without-x
+echo | %{__make}
+mv -f bin/dosemu.bin bin/dos-nox
+
+# 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
+
+
+mv -f man/dosemu.bin.1 man/dos.1
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_mandir}/man1,%{_pixmapsdir},/var/lib/dosemu,%{_datadir}/fonts}
-
-%{__make} install INSTROOT=$RPM_BUILD_ROOT
-
-rm -f $RPM_BUILD_ROOT%{_bindir}/xdos
+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/dos-x $RPM_BUILD_ROOT%{_bindir}/xdos
-install setup-hdimage $RPM_BUILD_ROOT%{_bindir}
+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}
+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
- src/tools/periph/mkfatimage16 -p -k 16192 -l FreeDos \
- -b freedos/kernel/boot.bin \
- -f $RPM_BUILD_ROOT/var/lib/dosemu/hdimage.freedos \
- freedos/kernel/*
-FREEDOS=`/bin/mktemp /tmp/freedos.XXXXXX`
-echo "drive n: file=\"$RPM_BUILD_ROOT/var/lib/dosemu/hdimage.freedos\" offset=8832" > $FREEDOS
-MTOOLSRC=$FREEDOS
-export MTOOLSRC
-mcopy -o/ freedos/vim-5.6 freedos/bin freedos/doc freedos/help freedos/emacs n:
-mmd n:/DOSEMU
-mcopy -/ commands/* n:/DOSEMU
-mcopy -o %{SOURCE7} %{SOURCE8} commands/exitemu* n:/
-mdir -w n:
-rm -f $FREEDOS
-unset MTOOLSRC
-
-install etc/hdimage.dist $RPM_BUILD_ROOT/var/lib/dosemu/hdimage
-# install dexe utils
-install dexe/{do_mtools,extract-dos,mkdexe,myxcopy} $RPM_BUILD_ROOT%{_bindir}
-
-cat <<EOF >$RPM_BUILD_ROOT%{_bindir}/rundos
-#!/bin/sh
-BINDIR=/bin
-export BINDIR
-# ignore errors if user does not have module installed
-%attr(755,root,root) %{_bindir}/dos
-EOF
+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 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},%{_moddirsmp}}
+install src/dosext/net/v-net/dosnet.o $RPM_BUILD_ROOT%{_moddir}
+install src/dosext/net/v-net/smp/dosnet.o $RPM_BUILD_ROOT%{_moddirsmp}
# 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 $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fonts/misc \
- $RPM_BUILD_ROOT%{_datadir}/fonts
-
-gzip -9nf QuickStart COPYING ChangeLog* doc/* \
- $RPM_BUILD_ROOT%{_datadir}/fonts/misc/*
+gzip -9nf QuickStart COPYING ChangeLog* doc/*
%clean
rm -rf $RPM_BUILD_ROOT
-%post -n xdosemu
-if [ -x /usr/X11R6/bin/mkfontdir ]; then
- (cd /usr/share/fonts/misc; /usr/X11R6/bin/mkfontdir)
-fi
-killall -USR1 xfs > /dev/null 2>&1 ||:
-
-%postun -n xdosemu
-if [ -x /usr/X11R6/bin/mkfontdir ]; then
- (cd /usr/share/fonts/misc; /usr/X11R6/bin/mkfontdir)
-fi
-killall -USR1 xfs > /dev/null 2>&1 ||:
-
-%post freedos
-[ -e /var/lib/dosemu/hdimage.first ] || \
- ln -s hdimage.freedos /var/lib/dosemu/hdimage.first
-
-%postun freedos
-if [ "$1" =" 0" ]; then
- if [ -e /var/lib/dosemu/hdimage.first ]; then
- rm -f /var/lib/dosemu/hdimage.first
- fi
-fi
-
+%post -n kernel-net-dosnet
+/sbin/depmod -a
+
+%postun -n kernel-net-dosnet
+/sbin/depmod -a
+
+%post -n kernel-smp-net-dosnet
+/sbin/depmod -a
+
+%postun -n kernel-smp-net-dosnet
+/sbin/depmod -a
+
%files
%defattr(644,root,root,755)
%doc *.gz doc/*
-%dir /var/lib/dosemu
-%config %{_sysconfdir}/dosemu.conf
-%config %{_sysconfdir}/dosemu.users
-%config /var/lib/dosemu/hdimage
-%config /var/lib/dosemu/global.conf
-%attr(4755,root,root) %{_bindir}/dos
+%dir %{_dosemudir}
+%config(noreplace) %{_sysconfdir}/dosemu.conf
+%config(noreplace) %{_sysconfdir}/dosemu.users
+%config(noreplace) %{_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}/setup-hdimage
-%{_mandir}/man1/dos.1*
-%{_mandir}/man1/dosdebug.1*
-%{_mandir}/man1/mkfatimage16.1*
+%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]*
+%lang(pl) %{_mandir}/pl/man1/d*
%{_pixmapsdir}/dosemu.xpm
%files -n xdosemu
%defattr(644,root,root,755)
-%attr(4755,root,root) %{_bindir}/xdos
-# %attr(755,root,root) %{_bindir}/xtermdos
+%attr(755,root,root) %{_xbindir}/xdos
%{_mandir}/man1/xdos.1*
-# %{_mandir}/man1/xtermdos.1*
-%{_datadir}/fonts/misc/*
+%lang(pl) %{_mandir}/pl/man1/xdos.1*
+
+%files -n kernel-net-dosnet
+%defattr(644,root,root,755)
+%{_moddir}/dosnet.o
-%files freedos
+%files -n kernel-smp-net-dosnet
%defattr(644,root,root,755)
-%config /var/lib/dosemu/hdimage.freedos
+%{_moddirsmp}/dosnet.o