summaryrefslogtreecommitdiff
path: root/community/dosemu
diff options
context:
space:
mode:
Diffstat (limited to 'community/dosemu')
-rw-r--r--community/dosemu/PKGBUILD54
-rw-r--r--community/dosemu/cpu-support.patch12
-rw-r--r--community/dosemu/dosemu.install7
-rw-r--r--community/dosemu/fix-infinite-loop.patch13
-rw-r--r--community/dosemu/kernel_version.patch12
5 files changed, 98 insertions, 0 deletions
diff --git a/community/dosemu/PKGBUILD b/community/dosemu/PKGBUILD
new file mode 100644
index 000000000..4c9fb31f6
--- /dev/null
+++ b/community/dosemu/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 81027 2012-12-10 10:25:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: Bob Finch <w9ya@arrl.net>
+
+pkgname=dosemu
+pkgver=1.4.0
+pkgrel=9
+pkgdesc="DOS emulator"
+arch=('i686' 'x86_64')
+url="http://www.dosemu.org/"
+license=('GPL' 'custom')
+depends=('gpm' 'slang' 'sdl' 'libxxf86vm' 'libsndfile' 'sh' 'xorg-mkfontdir' 'xorg-bdftopcf' 'xorg-xlsfonts')
+backup=('etc/dosemu/dosemu.conf'
+ 'etc/dosemu/dosemu.users'
+ 'etc/dosemu/global.conf')
+install=dosemu.install
+source=(http://downloads.sourceforge.net/sourceforge/dosemu/$pkgname-$pkgver.tgz
+ http://downloads.sourceforge.net/sourceforge/dosemu/dosemu-freedos-1.0-bin.tgz
+ kernel_version.patch
+ fix-infinite-loop.patch
+ cpu-support.patch)
+md5sums=('0bba530637266f99d404ba15e3f118d4'
+ '2e09774fe91cff4372cb4a393eb467f5'
+ '15af2ca86b2e7d8835f0f837ea663c3d'
+ 'e8ea87d46c613130b26724facb5aa297'
+ 'ebb17406a7d302f6c4ad2b67304f31b6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 -i ${srcdir}/kernel_version.patch
+ patch -Np1 -i ${srcdir}/fix-infinite-loop.patch
+ patch -Np1 -i ${srcdir}/cpu-support.patch
+ sed -i 's|extern int yyget_leng|extern size_t yyget_leng|' src/base/init/lexer.h
+
+ unset CFLAGS
+ ./configure --prefix=/usr --with-fdtarball=$srcdir/dosemu-freedos-1.0-bin.tgz --mandir=/usr/share/man
+ make
+}
+
+package(){
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ ln -s /usr/share/dosemu/drive_z $pkgdir/etc/dosemu/drives/z
+ install -dm0755 $pkgdir/etc/sysctl.d
+ echo "vm.mmap_min_addr = 0" >$pkgdir/etc/sysctl.d/dosemu.conf
+
+ install -D -m 644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+ install -D -m 644 COPYING.DOSEMU $pkgdir/usr/share/licenses/$pkgname/COPYING.DOSEMU
+}
diff --git a/community/dosemu/cpu-support.patch b/community/dosemu/cpu-support.patch
new file mode 100644
index 000000000..6a8d84148
--- /dev/null
+++ b/community/dosemu/cpu-support.patch
@@ -0,0 +1,12 @@
+diff -Naur orig/dosemu-1.4.0/src/base/init/config.c modified/dosemu-1.4.0/src/base/init/config.c
+--- orig/src/base/init/config.c 2007-05-04 22:19:41.000000000 +0800
++++ modified/src/base/init/config.c 2012-12-06 10:05:31.780346032 +0800
+@@ -480,6 +480,8 @@
+ case 5: case 586:
+ case 6: case 686:
+ case 15:
++ case 16:
++ case 17:
+ config.realcpu = CPU_586;
+ cpuflags = get_proc_string_by_key("features");
+ if (!cpuflags) {
diff --git a/community/dosemu/dosemu.install b/community/dosemu/dosemu.install
new file mode 100644
index 000000000..b5ed385d1
--- /dev/null
+++ b/community/dosemu/dosemu.install
@@ -0,0 +1,7 @@
+post_install() {
+ sysctl -p etc/sysctl.d/dosemu.conf
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/community/dosemu/fix-infinite-loop.patch b/community/dosemu/fix-infinite-loop.patch
new file mode 100644
index 000000000..7f12d9985
--- /dev/null
+++ b/community/dosemu/fix-infinite-loop.patch
@@ -0,0 +1,13 @@
+--- trunk/src/plugin/translate/translate.c 2011/05/24 02:28:24 2032
++++ trunk/src/plugin/translate/translate.c 2011/10/03 23:37:46 2058
+@@ -466,7 +466,9 @@
+ while (list->next) {
+ list = list->next;
+ }
+- list->next = set;
++ if (list != set) {
++ list->next = set;
++ }
+ }
+ initialize_charset(set);
+ }
diff --git a/community/dosemu/kernel_version.patch b/community/dosemu/kernel_version.patch
new file mode 100644
index 000000000..0351922d4
--- /dev/null
+++ b/community/dosemu/kernel_version.patch
@@ -0,0 +1,12 @@
+diff -wbBur dosemu-1.4.0/src/base/init/init.c dosemu-1.4.0.my/src/base/init/init.c
+--- dosemu-1.4.0/src/base/init/init.c 2007-05-04 09:59:48.000000000 +0400
++++ dosemu-1.4.0.my/src/base/init/init.c 2011-08-15 12:39:42.000000000 +0400
+@@ -280,7 +280,7 @@
+ char version[80];
+
+ uname((struct utsname *)&unames);
+-#ifdef __linux__
++#if 0
+ strcpy(version,unames.release);
+ running_kversion = atoi(strtok(version,".")) *1000000;
+ running_kversion += atoi(strtok(NULL,".")) *1000;