aboutsummaryrefslogtreecommitdiff
path: root/games/koules
diff options
context:
space:
mode:
Diffstat (limited to 'games/koules')
-rw-r--r--games/koules/README21
-rw-r--r--games/koules/doinst.sh3
-rw-r--r--games/koules/koules.SlackBuild122
-rw-r--r--games/koules/koules.desktop8
-rw-r--r--games/koules/koules.info8
-rw-r--r--games/koules/koules.kde13
-rw-r--r--games/koules/patches/compile_fix.diff16
-rw-r--r--games/koules/patches/document_E_option.diff24
-rw-r--r--games/koules/patches/no_inline_asm.diff48
-rw-r--r--games/koules/patches/slackware.diff40
-rw-r--r--games/koules/patches/tcl_launcher_paths.diff16
-rw-r--r--games/koules/slack-desc19
12 files changed, 338 insertions, 0 deletions
diff --git a/games/koules/README b/games/koules/README
new file mode 100644
index 0000000000000..e0486775e0022
--- /dev/null
+++ b/games/koules/README
@@ -0,0 +1,21 @@
+Koules is a fast action arcade-style game for UNIX and OS/2. This version
+supports X window system, SVGAlib for Linux and OS/2. It works in fine
+(up to 900x620) resolution with cool 256 color graphics, multiplayer mode
+up to 5 players, full sound and, of course, network support. Koules is
+an original idea. First version of Koules was developed from scratch
+by Jan Hubicka in July 1995.
+
+Yes, koules used to packaged on disk y1 of Slackware 3.3. It needed
+quite a bit of patching to work well on a modern system...
+
+If you're building this for use on a slow system, try setting MITSHM=yes
+in the environment; it may speed things up (or not).
+
+If you have Tcl/Tk installed, and you're running KDE, you'll get a nice
+GUI launcher dialog when you run Koules from the K menu. If you're not
+running KDE, try running "koules-launcher".
+
+Note: When playing as player #2 in multiplayer, the default keys are WASD,
+not the arrows (this is confusing). Players 3 and above don't seem to
+have default key maps, so be sure to configure the keys before starting
+the game (or set the control type to mouse or joystick instead).
diff --git a/games/koules/doinst.sh b/games/koules/doinst.sh
new file mode 100644
index 0000000000000..3857649f506a8
--- /dev/null
+++ b/games/koules/doinst.sh
@@ -0,0 +1,3 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications &> /dev/null
+fi
diff --git a/games/koules/koules.SlackBuild b/games/koules/koules.SlackBuild
new file mode 100644
index 0000000000000..248b31549c69f
--- /dev/null
+++ b/games/koules/koules.SlackBuild
@@ -0,0 +1,122 @@
+#!/bin/sh
+
+# Slackware build script for koules
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# This game used to be distributed on disk Y1 of Slackware 3.3.
+# This script doesn't share any code with whatever build script
+# existed back then (partly because I couldn't find a copy)
+
+PRGNAM=koules
+VERSION=${VERSION:-1.4}
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+# Use MIT shared memory?
+
+# On some systems, MITSHM speeds things up. On others, it slows them
+# down or (on 64-bit systems) causes the game to crash on startup.
+# If you set MITSHM=yes and have problems, try running koules with
+# the -M flag. If the problems go away, rebuild with MITSHM=no to avoid
+# having to give the -M flag all the time...
+# I'm defaulting this to no, because modern systems should be fast enough
+# to play this simple game without it.
+
+MITSHM=${MITSHM:-no}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM$VERSION
+tar xvf $CWD/$PRGNAM$VERSION-src.tar.gz
+cd $PRGNAM$VERSION
+chown -R root:root .
+chmod -R a-s,u+w,go+r-w .
+
+# sound server in /usr/libexec, game data in /usr/share/koules
+# also, enable sound and joystick support.
+patch -p1 < $CWD/patches/slackware.diff
+
+# Grrr. Need this to compile with MITSHM disabled.
+patch -p1 < $CWD/patches/compile_fix.diff
+
+# Modern gcc seems to hate the inline assembly. Anyway I bet gcc's code
+# with -O2 is the same or faster...
+patch -p1 < $CWD/patches/no_inline_asm.diff
+
+# The author forgot to mention the -E option in the help and man page
+patch -p1 < $CWD/patches/document_E_option.diff
+
+# Some people might like the launcher...
+patch -p1 < $CWD/patches/tcl_launcher_paths.diff
+
+# I hate Imake even worse than autoconf...
+if [ "$MITSHM" = "no" ]; then
+ sed -i -e '/#define MITSHM/d' Iconfig
+fi
+
+xmkmf -a
+
+# Did I mention I hate Imake?
+find . -name Makefile | \
+ xargs sed -i -e "s/-O2.*/$SLKCFLAGS/"
+touch xkoules.man
+
+make
+
+# Don't trust 'make install', it doesn't fully support DESTDIR, and
+# installs things with weird permissions. Again, Imake sucks.
+# Also, we want to call the binary and manpage "koules", not "xkoules",
+# so there'd be some manual stuff going on anyway.
+
+mkdir -p $PKG/usr/games
+strip x$PRGNAM
+install -m0755 x$PRGNAM -o root -g root $PKG/usr/games/$PRGNAM
+install -m0755 $PRGNAM.tcl -o root -g root $PKG/usr/games/$PRGNAM-launcher
+
+mkdir -p $PKG/usr/libexec
+strip $PRGNAM.sndsrv.linux
+install -m0755 $PRGNAM.sndsrv.linux -o root -g root $PKG/usr/libexec/
+install -m0755 $CWD/koules.kde -o root -g root $PKG/usr/libexec/
+
+mkdir -p $PKG/usr/share/$PRGNAM
+cp sounds/*.raw $PKG/usr/share/$PRGNAM
+
+mkdir -p $PKG/usr/man/man6
+gzip -9c x$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp README TODO ANNOUNCE BUGS COPYING Card Koules.FAQ \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.SBo
+
+mkdir -p $PKG/usr/share/pixmaps
+cp Koules.xpm $PKG/usr/share/pixmaps/$PRGNAM.xpm
+
+mkdir -p $PKG/usr/share/applications
+cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
diff --git a/games/koules/koules.desktop b/games/koules/koules.desktop
new file mode 100644
index 0000000000000..e110b38dda273
--- /dev/null
+++ b/games/koules/koules.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Koules
+Exec=/usr/libexec/koules.kde
+Type=Application
+Icon=koules
+GenericName=Koules
+Categories=Game;Arcade;
diff --git a/games/koules/koules.info b/games/koules/koules.info
new file mode 100644
index 0000000000000..6d8259a14985d
--- /dev/null
+++ b/games/koules/koules.info
@@ -0,0 +1,8 @@
+PRGNAM="koules"
+VERSION="1.4"
+HOMEPAGE="http://www.ucw.cz/~hubicka/koules/English/koules.html"
+DOWNLOAD="http://www.ucw.cz/~hubicka/koules/packages/koules1.4-src.tar.gz"
+MD5SUM="0a5ac9e57c8b72e9fc200bc98273235c"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
+APPROVED="dsomero"
diff --git a/games/koules/koules.kde b/games/koules/koules.kde
new file mode 100644
index 0000000000000..755ddb851542d
--- /dev/null
+++ b/games/koules/koules.kde
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# koules.kde
+# Wrapper script to launch koules from a KDE shortcut
+# Author: B. Watson (yalhcru@gmail.com)
+
+# If the GUI launcher can't run (probably because Tcl/Tk isn't
+# installed), just start the game with default options.
+
+# Wrap with artsdsp, since koules only knows how to use OSS /dev/dsp
+# style audio (if it used ALSA, dmix would take care of us).
+
+artsdsp -n Koules koules-launcher || artsdsp -n Koules koules
diff --git a/games/koules/patches/compile_fix.diff b/games/koules/patches/compile_fix.diff
new file mode 100644
index 0000000000000..1b04d634b71fd
--- /dev/null
+++ b/games/koules/patches/compile_fix.diff
@@ -0,0 +1,16 @@
+diff -Naur koules1.4/xlib/init.c koules1.4.patched/xlib/init.c
+--- koules1.4/xlib/init.c 1998-03-05 12:03:01.000000000 -0500
++++ koules1.4.patched/xlib/init.c 2009-04-15 06:12:07.000000000 -0400
+@@ -88,11 +88,11 @@
+ return (pixmap);
+ }
+
++static int bpp;
+ #ifdef MITSHM
+ extern int XShmQueryExtension (Display * dpy);
+ static int haderror;
+ static int (*origerrorhandler) (Display *, XErrorEvent *);
+-static int bpp;
+
+
+ static int
diff --git a/games/koules/patches/document_E_option.diff b/games/koules/patches/document_E_option.diff
new file mode 100644
index 0000000000000..15d008f9953eb
--- /dev/null
+++ b/games/koules/patches/document_E_option.diff
@@ -0,0 +1,24 @@
+diff -Naur koules1.4/xkoules.6 koules1.4.patched/xkoules.6
+--- koules1.4/xkoules.6 1998-03-04 13:59:19.000000000 -0500
++++ koules1.4.patched/xkoules.6 2009-04-15 06:30:32.000000000 -0400
+@@ -69,6 +69,9 @@
+ for large display(640x480)
+ default size
+ .TP
++.B \-E
++for extra large display(900x600)
++.TP
+ .B \-m
+ for monochrome displays
+ .TP
+diff -Naur koules1.4/xlib/init.c koules1.4.patched/xlib/init.c
+--- koules1.4/xlib/init.c 1998-03-05 12:03:01.000000000 -0500
++++ koules1.4.patched/xlib/init.c 2009-04-15 06:29:13.000000000 -0400
+@@ -775,6 +775,7 @@
+ " -m for monochrome displays\n"
+ " -s for small display(320x250)\n"
+ " -l for large display(640x480)\n"
++ " -E for extra large display(900x600)\n"
+ " -p use private colormap\n"
+ " -y Synchronize with X(for debugging)\n"
+ " -f nofade(for debugging)\n"
diff --git a/games/koules/patches/no_inline_asm.diff b/games/koules/patches/no_inline_asm.diff
new file mode 100644
index 0000000000000..95c02bcf7805e
--- /dev/null
+++ b/games/koules/patches/no_inline_asm.diff
@@ -0,0 +1,48 @@
+diff -Naur koules1.4/xlib/shmbitmap.c koules1.4.patched/xlib/shmbitmap.c
+--- koules1.4/xlib/shmbitmap.c 1998-03-04 13:59:19.000000000 -0500
++++ koules1.4.patched/xlib/shmbitmap.c 2009-04-15 06:44:35.000000000 -0400
+@@ -237,7 +237,7 @@
+ #define __clipy1 0
+ #undef __clipy2
+ #define __clipy2 (MAPHEIGHT+19)
+-#ifdef __i386__
++#if 0
+ static INLINE int
+ muldiv64 (int CONST m1, int CONST m2, int CONST d)
+ {
+@@ -333,7 +333,7 @@
+ }
+ if (r1 & 1)
+ { /* left */
+-#ifdef __i386__
++#if 0
+ y1 += muldiv64 (__clipx1 - x1, y2 - y1, x2 - x1);
+ #else
+ y1 += (long) (__clipx1 - x1) * (long) (y2 - y1) / (long) (x2 - x1);
+@@ -342,7 +342,7 @@
+ }
+ else if (r1 & 2)
+ { /* right */
+-#ifdef __i386__
++#if 0
+ y1 += muldiv64 (__clipx2 - x1, y2 - y1, x2 - x1);
+ #else
+ y1 += (long) (__clipx2 - x1) * (long) (y2 - y1) / (long) (x2 - x1);
+@@ -351,7 +351,7 @@
+ }
+ else if (r1 & 4)
+ { /* top */
+-#ifdef __i386__
++#if 0
+ x1 += muldiv64 (__clipy1 - y1, x2 - x1, y2 - y1);
+ #else
+ x1 += (long) (__clipy1 - y1) * (long) (x2 - x1) / (long) (y2 - y1);
+@@ -360,7 +360,7 @@
+ }
+ else if (r1 & 8)
+ { /* bottom */
+-#ifdef __i386__
++#if 0
+ x1 += muldiv64 (__clipy2 - y1, x2 - x1, y2 - y1);
+ #else
+ x1 += (long) (__clipy2 - y1) * (long) (x2 - x1) / (long) (y2 - y1);
diff --git a/games/koules/patches/slackware.diff b/games/koules/patches/slackware.diff
new file mode 100644
index 0000000000000..ea597d220cf07
--- /dev/null
+++ b/games/koules/patches/slackware.diff
@@ -0,0 +1,40 @@
+diff -Naur koules1.4/Iconfig koules1.4.patched/Iconfig
+--- koules1.4/Iconfig 1998-03-04 15:29:05.000000000 -0500
++++ koules1.4.patched/Iconfig 2009-04-15 05:54:44.000000000 -0400
+@@ -29,13 +29,14 @@
+ /* linux joystick support
+ Now compiles w/o joystick toolkit. For using joystick support is
+ joystick toolikit required...of course */
+-/*#define JOYSTICK*/
++#define JOYSTICK
+ /*for fast 386 based assembler routines
+ recomended for linux*/
+ /*#define I386ASSEMBLY*/
++#define LinuxArchitecture
+ /* directories*/
+ KOULESDIR =/usr/bin/X11
+-SOUNDDIR =/usr/local/lib/koules
++SOUNDDIR =/usr/share/koules
+ MANDIR =/usr/local/man/man6
+
+ /*You need some extra libraryes for BSD sockets compatibility?*/
+@@ -51,7 +52,6 @@
+ SUBDIRS = xlib
+
+ #if defined(LinuxArchitecture)
+- SYSDEFS = -Wall -fomit-frame-pointer -O6 -ffast-math
+ #if !defined(NAS_SOUND)&&!defined(RSOUND)
+ #define SOUND
+ SOUNDSERVER = koules.sndsrv.linux
+diff -Naur koules1.4/Imakefile koules1.4.patched/Imakefile
+--- koules1.4/Imakefile 1998-03-04 13:59:19.000000000 -0500
++++ koules1.4.patched/Imakefile 2009-04-15 05:35:39.000000000 -0400
+@@ -56,7 +56,7 @@
+
+ DEFINES = -DONLYANSI -DSOUND $(JOYSTICK1) $(NET) $(MITSHM1) $(HAVEUSLEEP1) $(SYSDEFS) $(JOYSTICK) -Ixlib\
+ $(NAMEDEF) $(ASMDEF)\
+- -DSOUNDSERVER=\"$(SOUNDDIR)/$(SOUNDSERVER)\" \
++ -DSOUNDSERVER=\"/usr/libexec/$(SOUNDSERVER)\" \
+ -DSOUNDDIR=\"$(SOUNDDIR)\" \
+ -DSOUNDDEV=\"$(SOUNDDEV)\"
+ #endif
diff --git a/games/koules/patches/tcl_launcher_paths.diff b/games/koules/patches/tcl_launcher_paths.diff
new file mode 100644
index 0000000000000..f743b0afddd64
--- /dev/null
+++ b/games/koules/patches/tcl_launcher_paths.diff
@@ -0,0 +1,16 @@
+diff -Naur koules1.4/koules.tcl koules1.4.patched/koules.tcl
+--- koules1.4/koules.tcl 1998-03-04 13:59:19.000000000 -0500
++++ koules1.4.patched/koules.tcl 2009-04-15 08:00:38.000000000 -0400
+@@ -3,9 +3,9 @@
+ # This is simple user (anti)friendly dialog for starting koules
+ # Only reason why I did it is that I wanted to try tcl/tk
+ #files - configure here if paths are differ
+-set xkoules "/usr/bin/X11/xkoules"
+-set koulessvga "/usr/local/bin/koules.svga"
+-set koulessound "/usr/local/lib/koules/creator1.raw"
++set xkoules "/usr/games/koules"
++set koulessvga "@@@NOSUCHFILE@@@"
++set koulessound "/usr/share/koules/creator1.raw"
+ set config "~/.xkoules.opt"
+ set revision 1.1
+ # Set default
diff --git a/games/koules/slack-desc b/games/koules/slack-desc
new file mode 100644
index 0000000000000..d994c2f6b4bfd
--- /dev/null
+++ b/games/koules/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+koules: koules (fast action arcade-style game)
+koules:
+koules: Koules is a fast action arcade-style game for UNIX and OS/2. This
+koules: version supports X window system, SVGAlib for Linux and OS/2. It
+koules: works in fine (up to 900x620) resolution with cool 256 color graphics,
+koules: multiplayer mode up to 5 players, full sound and, of course, network
+koules: support. Koules is an original idea. First version of Koules was
+koules: developed from scratch by Jan Hubicka in July 1995.
+koules:
+koules:
+koules: