diff options
Diffstat (limited to 'community/dosemu')
-rw-r--r-- | community/dosemu/PKGBUILD | 54 | ||||
-rw-r--r-- | community/dosemu/cpu-support.patch | 12 | ||||
-rw-r--r-- | community/dosemu/dosemu.install | 7 | ||||
-rw-r--r-- | community/dosemu/fix-infinite-loop.patch | 13 | ||||
-rw-r--r-- | community/dosemu/kernel_version.patch | 12 |
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; |