aboutsummaryrefslogtreecommitdiff
path: root/games/KoboDeluxe
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2023-08-04 18:22:25 -0400
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2023-08-12 08:29:51 +0700
commite85714a423d80ebeef4bcce3700c5482f16a6ede (patch)
tree8536c8f3eb6d99a9f1495a96f31e8af8452e937d /games/KoboDeluxe
parent74044db7b90566735f916356f198a27e1700fc76 (diff)
games/KoboDeluxe: New maintainer, various fixes.
Signed-off-by: B. Watson <urchlay@slackware.uk> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'games/KoboDeluxe')
-rw-r--r--games/KoboDeluxe/02_paths.patch40
-rw-r--r--games/KoboDeluxe/KoboDeluxe.SlackBuild89
-rw-r--r--games/KoboDeluxe/KoboDeluxe.desktop15
-rw-r--r--games/KoboDeluxe/KoboDeluxe.info4
-rw-r--r--games/KoboDeluxe/KoboDeluxe.pngbin5240 -> 0 bytes
-rw-r--r--games/KoboDeluxe/README7
-rw-r--r--games/KoboDeluxe/doinst.sh8
-rw-r--r--games/KoboDeluxe/ignore-appinputfocus.patch17
-rw-r--r--games/KoboDeluxe/manpagefix.diff120
-rw-r--r--games/KoboDeluxe/slack-desc14
10 files changed, 262 insertions, 52 deletions
diff --git a/games/KoboDeluxe/02_paths.patch b/games/KoboDeluxe/02_paths.patch
new file mode 100644
index 000000000000..b54ab52ded8d
--- /dev/null
+++ b/games/KoboDeluxe/02_paths.patch
@@ -0,0 +1,40 @@
+# Disable reading of configs, graphics, and data from the current directory.
+# So it's safe to run kobodeluxe from anywhere w/o worry about an attacker
+# feeding it bad data.
+--- kobodeluxe-0.5.1.orig/kobo.cpp
++++ kobodeluxe-0.5.1/kobo.cpp
+@@ -141,21 +141,21 @@
+ * Graphics data
+ */
+ /* Current dir; from within the build tree */
+- fmap->addpath("GFX", "./data/gfx");
++ //fmap->addpath("GFX", "./data/gfx");
+ /* Real data dir */
+ fmap->addpath("GFX", "DATA>>gfx");
+ /* Current dir */
+- fmap->addpath("GFX", "./gfx");
++ //fmap->addpath("GFX", "./gfx");
+
+ /*
+ * Sound data
+ */
+ /* Current dir; from within the build tree */
+- fmap->addpath("SFX", "./data/sfx");
++ //fmap->addpath("SFX", "./data/sfx");
+ /* Real data dir */
+ fmap->addpath("SFX", "DATA>>sfx");
+ /* Current dir */
+- fmap->addpath("SFX", "./sfx");
++ //fmap->addpath("SFX", "./sfx");
+
+ /*
+ * Score files (user and global)
+@@ -173,7 +173,7 @@
+ /* System local */
+ fmap->addpath("CONFIG", SYSCONF_DIR);
+ /* In current dir (last resort) */
+- fmap->addpath("CONFIG", "./");
++ //fmap->addpath("CONFIG", "./");
+ }
+
+
diff --git a/games/KoboDeluxe/KoboDeluxe.SlackBuild b/games/KoboDeluxe/KoboDeluxe.SlackBuild
index 8e63396d6071..0e0dfc54259a 100644
--- a/games/KoboDeluxe/KoboDeluxe.SlackBuild
+++ b/games/KoboDeluxe/KoboDeluxe.SlackBuild
@@ -2,27 +2,29 @@
# Slackware build script for Kobo Deluxe
-# Written by Rubén Llorente <porting@use.startmail.com>
-
-# This script is of public domain. It can be distributed, modified and used as desired.
-
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
+# Written by Rubén Llorente <email removed>
+# Updated and maintained by B. Watson <urchlay@slackware.uk>
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# 20230804 bkw, BUILD=2:
+# - take over maintenance.
+# - relicense as WTFPL.
+# - install binary stripped.
+# - add patch from Debian to allow the game to be unpaused. apparently
+# this has been broken at least since Slackware 15.0 released,
+# maybe even before that.
+# - include upstream's icons in the package (and remove ours).
+# - update .desktop file.
+# - mention Bosconian in the README, since this game is basically a
+# remake of it with a few enhancements.
+# - fix typos and grammar in man page, and extend the CONTROLS section.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=KoboDeluxe
VERSION=${VERSION:-0.5.1}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -34,9 +36,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -66,20 +65,29 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT $PKG/install
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvjf $CWD/$PRGNAM-$VERSION.tar.bz2
-cp -t $TMP $CWD/kobodeluxe-0.5.1-glibc2.10.patch $CWD/kobodeluxe-gcc-4.3.patch
+tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
+tar xvf icons.tar.gz
chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +
+
+# These patches are incuded to fix compilation bugs.
+# I want to thank the Arch community for making them availible.
+patch -p0 < $CWD/kobodeluxe-0.5.1-glibc2.10.patch
+patch -p0 < $CWD/kobodeluxe-gcc-4.3.patch
+
+# 20230804 bkw: patch from Debian. Without this, the game starts
+# up in Paused mode, and cannot be unpaused.
+patch -p1 < $CWD/ignore-appinputfocus.patch
+
+# 20230804 bkw: another Debian patch, prevents the game from looking
+# in the current directory for data.
+patch -p1 < $CWD/02_paths.patch
-# This patches are incuded to fix compilation bugs.
-# I want to thank the Arch comunity for making them availible.
-patch -p0 <$TMP/kobodeluxe-0.5.1-glibc2.10.patch
-patch -p0 <$TMP/kobodeluxe-gcc-4.3.patch
+# 20230804 bkw: fix typos/grammar and document the pause and screenshot
+# keystrokes.
+patch -p1 < $CWD/manpagefix.diff
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -95,18 +103,25 @@ CXXFLAGS="$SLKCFLAGS" \
--build=$ARCH-slackware-linux
make
-make install DESTDIR=$PKG
+make install-strip DESTDIR=$PKG
+gzip -9 $PKG/usr/man/man*/*
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+# 20230804 bkw: upstream included prescaled icons in icons.tar.gz.
+for i in icons/KDE/icons/*; do
+ size="$( basename $i )"
+ dir=$PKG/usr/share/icons/hicolor/$size/apps
+ mkdir -p $dir
+ cp -a $i/kobodl.png $dir
+done
mkdir -p $PKG/usr/share/{applications,pixmaps}
-cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
+ln -s ../icons/hicolor/48x48/apps/kobodl.png $PKG/usr/share/pixmaps
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a COPYING README* ChangeLog TODO $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC
+cp -a COPYING README* ChangeLog TODO $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
diff --git a/games/KoboDeluxe/KoboDeluxe.desktop b/games/KoboDeluxe/KoboDeluxe.desktop
index 89e3254379f9..07a99e8435e9 100644
--- a/games/KoboDeluxe/KoboDeluxe.desktop
+++ b/games/KoboDeluxe/KoboDeluxe.desktop
@@ -1,7 +1,14 @@
[Desktop Entry]
-Name=Kobo Deluxe
-GenericName=Kobo Deluxe, a retro arcade-style game
-Exec=kobodl
-Icon=KoboDeluxe
Type=Application
+Name=Kobo Deluxe
+Name[nl]=Kobo Deluxe
+Comment=Destroy enemy bases in space
+Comment[nl]=Schiet vijandelijke bases in de ruimte kapot
+Comment[fr]=Détruire des bases ennemies dans l'espace
+GenericName=Arcade Game
+GenericName[nl]=Arcadespel
+GenericName[fr]=Jeu d'Arcade
+Exec=/usr/games/kobodl
+Icon=kobodl
+Terminal=false
Categories=Game;ArcadeGame;
diff --git a/games/KoboDeluxe/KoboDeluxe.info b/games/KoboDeluxe/KoboDeluxe.info
index d91d1f1063ae..10bf6d73f646 100644
--- a/games/KoboDeluxe/KoboDeluxe.info
+++ b/games/KoboDeluxe/KoboDeluxe.info
@@ -6,5 +6,5 @@ MD5SUM="cb5dcdaf07ccad18a921058138dedc4a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
-MAINTAINER="Rubén Llorente"
-EMAIL="porting@use.startmail.com"
+MAINTAINER="B. Watson"
+EMAIL="urchlay@slackware.uk"
diff --git a/games/KoboDeluxe/KoboDeluxe.png b/games/KoboDeluxe/KoboDeluxe.png
deleted file mode 100644
index 617d0216e201..000000000000
--- a/games/KoboDeluxe/KoboDeluxe.png
+++ /dev/null
Binary files differ
diff --git a/games/KoboDeluxe/README b/games/KoboDeluxe/README
index 1572e09af668..b168dc7a61dc 100644
--- a/games/KoboDeluxe/README
+++ b/games/KoboDeluxe/README
@@ -1,6 +1,11 @@
+KoboDeluxe (2d space shooting game)
+
Kobo is a game based on Xkobo. It is a 2D scrolling shooting game
where you must destroy every enemy starbase you find in each stage,
while avoiding being taken down by their defenses, the enemy ships,
the asteroids...
-Tons of good old arcade endless action.
+Gameplay is very similar to the classic arcade game Bosconian, from
+1981.
+
+The executable and man page are called "kobodl".
diff --git a/games/KoboDeluxe/doinst.sh b/games/KoboDeluxe/doinst.sh
index ef0cf43a90f3..65c7e2eeb9aa 100644
--- a/games/KoboDeluxe/doinst.sh
+++ b/games/KoboDeluxe/doinst.sh
@@ -1,3 +1,9 @@
if [ -x /usr/bin/update-desktop-database ]; then
- /usr/bin/update-desktop-database usr/share/applications &> /dev/null
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
+ fi
fi
diff --git a/games/KoboDeluxe/ignore-appinputfocus.patch b/games/KoboDeluxe/ignore-appinputfocus.patch
new file mode 100644
index 000000000000..90a6a403c8c3
--- /dev/null
+++ b/games/KoboDeluxe/ignore-appinputfocus.patch
@@ -0,0 +1,17 @@
+Description: ignore SDL_ACTIVEEVENT with SDL_APPINPUTFOCUS flag
+ These events seem to come all the time, causing a pause which can't be
+ unpaused
+Bug-Debian: https://bugs.debian.org/909244
+Author: Reiner Herrmann <reiner@reiner-h.de>
+
+--- a/kobo.cpp
++++ b/kobo.cpp
+@@ -1691,7 +1691,7 @@ void kobo_gfxengine_t::frame()
+ break;
+ case SDL_ACTIVEEVENT:
+ // Any type of focus loss should activate pause mode!
+- if(!ev.active.gain)
++ if(!ev.active.gain && ev.active.state != SDL_APPINPUTFOCUS)
+ km.pause_game();
+ break;
+ case SDL_QUIT:
diff --git a/games/KoboDeluxe/manpagefix.diff b/games/KoboDeluxe/manpagefix.diff
new file mode 100644
index 000000000000..2d9e9deab045
--- /dev/null
+++ b/games/KoboDeluxe/manpagefix.diff
@@ -0,0 +1,120 @@
+diff -Naur KoboDeluxe-0.5.1/kobodl.6 KoboDeluxe-0.5.1.patched/kobodl.6
+--- KoboDeluxe-0.5.1/kobodl.6 2007-12-26 15:15:10.000000000 -0500
++++ KoboDeluxe-0.5.1.patched/kobodl.6 2023-08-04 18:04:07.069016990 -0400
+@@ -1,14 +1,14 @@
+-.TH KOBODL 6 "26 December 2007"
++.TH KOBODL 6 "4 August 2023" 0.5.1 SlackBuilds.org
+ .SH NAME
+-kobodl - Kobo Deluxe, an enhanced version of the scrolling game XKobo
++kobodl \- Kobo Deluxe, an enhanced version of the scrolling game XKobo
+ .SH SYNOPSIS
+ .B kobodl
+ [
+ .I options
+ ]
+ .SH DESCRIPTION
+-Kobo Deluxe is a 3'rd person scrolling 2D shooter with a simple and responsive
+-control system - which you'll need to tackle the tons of enemy ships that shoot
++Kobo Deluxe is a 3rd person scrolling 2D shooter with a simple and responsive
++control system \- which you'll need to tackle the tons of enemy ships that shoot
+ at you, chase you, circle around you shooting, or even launch other ships at
+ you, while you're trying to destroy the labyrinth shaped bases. There are 50
+ action packed levels with smoothly increasing difficulty, and different
+@@ -31,10 +31,15 @@
+ .SH CONTROLS
+ The ship can be controlled with the keyboard, or optionally a mouse or
+ joystick. With the keyboard, the arrow keys move the ship (two keys for
+-diagonals), and the shift and ctrl keys shoots. The numeric key pad can also be
++diagonals), and the Shift or Ctrl key shoots. The numeric key pad can also be
+ used; the usual 2/4/6/8 (arrows), and also 1/3/7/9 for single key diagonals.
+-Escape enters the meny system, from where it is possible to change settings,
++Escape enters the menu system, from where it is possible to change settings,
+ start a new game or exit the game.
++.P
++During gameplay, you can press P or the Pause key to pause/unpause the game.
++PrintScreen or SysRq saves a screenshot of the game to a file in the current
++directory named \fBscreenXX.bmp\fR, where the \fBXX\fR is a number from 00
++to 99.
+ .SH OPTIONS
+ Note that all relevant options can be also configured in the config file,
+ which can be edited directly, or using the options menus in the game.
+@@ -70,7 +75,7 @@
+ Always Fire. Default: Off.
+ .TP
+ .B \-[no]mousecapture
+-In-game Mouse Capture. Default: On.
++In\-game Mouse Capture. Default: On.
+ .TP
+ .B \-scrollradar
+ Radar Scroll Mode. Default: 2.
+@@ -130,7 +135,7 @@
+ Sound Effects Volume. Default: 100.
+ .TP
+ .B \-music_vol
+-In-Game Music Volume. Default: 30.
++In\-Game Music Volume. Default: 30.
+ .TP
+ .B \-reverb
+ Reverb Level. Default: 100.
+@@ -176,7 +181,7 @@
+ Enable Vertical Sync. Default: On.
+ .TP
+ .B \-videopages
+-Number of Video Pages. Default: -1.
++Number of Video Pages. Default: \-1.
+ .TP
+ .B \-scalemode
+ Scaling Filter Mode. Default: 1.
+@@ -200,13 +205,13 @@
+ Contrast. Default: 100.
+ .TP
+ .B \-files
+-Specify the root path of the game. Default: ""
++Specify the root path of the game. Default: "/usr/share/kobo-deluxe"
+ .TP
+ .B \-gfx
+-Specify the path to the game's graphics data. Default: ""
++Specify the path to the game's graphics data. Default: "/usr/share/kobo-deluxe/gfx"
+ .TP
+ .B \-sfx
+-Specify the path to the game's sound data. Default: ""
++Specify the path to the game's sound data. Default: "/usr/share/kobo-deluxe/sfx"
+ .TP
+ .B \-scores
+ Specify the path to the game's score files. Default: ""
+@@ -285,11 +290,15 @@
+ (Not saved!) Print options for 'man'. Default: Off.
+ .SH FILES
+ .TP
++.B /var/games/kobo-deluxe/scores/
++High score files are stored here. These are binary files,
++not human\-readable; use the \fB\-hiscores\fR option to view them.
++.TP
+ .B ~/.kobodlrc
+-The per-user configuration file for Kobo Deluxe.
++The per\-user configuration file for Kobo Deluxe.
+ .SH AUTHORS
+ Originally written by
+-Akira Higuchi (a-higuti@math.hokudai.ac.jp), XKobo was turned into Kobo
++Akira Higuchi (a\-higuti@math.hokudai.ac.jp), XKobo was turned into Kobo
+ Deluxe by David Olofson <david@olofson.net>
+ .SH THANKS
+ Thanks, in no particular order, to...
+@@ -364,7 +373,7 @@
+ .P
+ Copyright (C) 1997 Masanao Izumo
+ .P
+-Copyright (C) 1999-2001 Simon Peter
++Copyright (C) 1999\-2001 Simon Peter
+ .P
+ Copyright (C) 2002 Florian Schulze
+ .P
+@@ -372,7 +381,7 @@
+ .P
+ Copyright (C) 2005 Erik Auerswald
+ .P
+-Copyright (c) 1999-2007 David Olofson
++Copyright (c) 1999\-2007 David Olofson
+ .P
+ \fBKobo Deluxe\fP is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License.
diff --git a/games/KoboDeluxe/slack-desc b/games/KoboDeluxe/slack-desc
index 2bd324112d1a..a69f49e67686 100644
--- a/games/KoboDeluxe/slack-desc
+++ b/games/KoboDeluxe/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-KoboDeluxe: KoboDeluxe (Simple space shooting game)
+KoboDeluxe: KoboDeluxe (2d space shooting game)
KoboDeluxe:
-KoboDeluxe: Kobo is a game based in Xkobo. It is a 2D scrolling shooting
-KoboDeluxe: game where you must destroy every enemy starbase you find in
-KoboDeluxe: each stage, while avoiding being taken down by their defenses,
-KoboDeluxe: the enemy ships, the asteroids...
-KoboDeluxe:
-KoboDeluxe: Tons of good old arcade endless action.
+KoboDeluxe: Kobo is a game based on Xkobo. It is a 2D scrolling shooting game
+KoboDeluxe: where you must destroy every enemy starbase you find in each stage,
+KoboDeluxe: while avoiding being taken down by their defenses, the enemy ships,
+KoboDeluxe: the asteroids...
KoboDeluxe:
+KoboDeluxe: Gameplay is very similar to the classic arcade game Bosconian, from
+KoboDeluxe: 1981.
KoboDeluxe:
KoboDeluxe: