games/KoboDeluxe: New maintainer, various fixes.

Signed-off-by: B. Watson <urchlay@slackware.uk>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
B. Watson 2023-08-04 18:22:25 -04:00 committed by Willy Sudiarto Raharjo
parent 74044db7b9
commit e85714a423
No known key found for this signature in database
GPG key ID: 3F617144D7238786
10 changed files with 260 additions and 50 deletions

View file

@ -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", "./");
}

View file

@ -2,27 +2,29 @@
# Slackware build script for Kobo Deluxe
# Written by Rubén Llorente <porting@use.startmail.com>
# Written by Rubén Llorente <email removed>
# Updated and maintained by B. Watson <urchlay@slackware.uk>
# 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.
# 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 {} +
# 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
# 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
# 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

View file

@ -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;

View file

@ -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"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -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".

View file

@ -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

View file

@ -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:

View file

@ -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.

View file

@ -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: