games/frotz: Updated for version 2.53.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
8b91b2222b
commit
5f1d15abea
|
@ -4,10 +4,17 @@ Frotz is an interpreter for Infocom games and other Z-machine games. It
|
|||
complies with standard 1.0 of Graham Nelson's specification. Games can
|
||||
be found at: http://www.ifarchive.org/
|
||||
|
||||
Optional dependencies:
|
||||
3 executables are always built:
|
||||
|
||||
libmodplug - If this is installed, the curses build (frotz) will
|
||||
support sound.
|
||||
* frotz - uses curses, no images, needs libmodplug for sound.
|
||||
* sfrotz - SDL2 UI, supports images and sound, works great in X11,
|
||||
probably also Wayland (not tested by SlackBuild author).
|
||||
* dfrotz - dumb terminal frotz, doesn't support images nor sound.
|
||||
|
||||
SDL2_mixer - If this is installed, the SDL build of frotz (sfrotz) will
|
||||
be included in the package. sfrotz always supports sound.
|
||||
Optionally, you can set XFROTZ=yes to build:
|
||||
|
||||
* xfrotz - native X11 UI, supports images, no sound. Most users won't
|
||||
want this; sfrotz is a better choice on modern X11.
|
||||
|
||||
Optional dependency: libmodplug. If this is installed, the curses
|
||||
build (frotz) will support sound.
|
||||
|
|
|
@ -11,3 +11,9 @@ if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
|
|||
/usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -e usr/share/fonts/misc/Zork_r400-10.pcf ]; then
|
||||
if [ -x /usr/bin/mkfontdir ]; then
|
||||
/usr/bin/mkfontdir usr/share/fonts/misc >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -9,6 +9,12 @@
|
|||
# Original had no license. This modified version is released under the
|
||||
# WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
|
||||
|
||||
# 20211007 bkw:
|
||||
# - updated for v2.53.
|
||||
# - add optional xfrotz.
|
||||
# - expand README.
|
||||
# - make slack-desc reflect build options (libmodplug and xfrotz).
|
||||
|
||||
# 20210215 bkw: fix building without libmodplug. BUILD=2.
|
||||
|
||||
# 20201212 bkw: too many changes, can't build older versions.
|
||||
|
@ -28,8 +34,8 @@
|
|||
cd $(dirname $0) ; CWD=$(pwd)
|
||||
|
||||
PRGNAM=frotz
|
||||
VERSION=${VERSION:-2.52}
|
||||
BUILD=${BUILD:-2}
|
||||
VERSION=${VERSION:-2.53}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
PKGTYPE=${PKGTYPE:-tgz}
|
||||
|
||||
|
@ -41,9 +47,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
|
||||
|
@ -87,23 +90,6 @@ sed -i -e 's,invocatio$,&n.,' \
|
|||
# Document location of config file:
|
||||
sed -i 's,frotz\.conf,/etc/&,' doc/$PRGNAM.6
|
||||
|
||||
# sfrotz aborts with a "malloc(): memory corruption" error when given
|
||||
# a long pathname on the command line. Example:
|
||||
|
||||
# $ sfrotz "/export/home/urchlay/interactive_fiction/infocom_collection/The Hitchhikers Guide To The Galaxy (1985)/The Hitchhiker's Guide To The Galaxy R31-871119.z5"
|
||||
|
||||
# With a somewhat shorter pathname, the program might not abort, but
|
||||
# it will end up with gibberish at the end of f_setup.script_name,
|
||||
# which would prevent it from auto-loading scripts (if present).
|
||||
|
||||
# I don't fully understand why, but the new_basename() and
|
||||
# new_dirname() fuctions in sf_util.c are the culprits. They look OK
|
||||
# to me, but getting rid of the calls to free() causes the aborts to
|
||||
# go away. Since each function gets called only once (at startup),
|
||||
# this doesn't constitute a memory leak worth worrying about.
|
||||
|
||||
patch -p1 < $CWD/sfrotz.memcorrupt.diff
|
||||
|
||||
run_make() {
|
||||
make \
|
||||
PREFIX=/usr \
|
||||
|
@ -111,13 +97,19 @@ run_make() {
|
|||
MANDIR=/usr/man \
|
||||
MAN_PREFIX=/usr \
|
||||
BINDIR=/usr/games \
|
||||
MKFONTDIR=/bin/true \
|
||||
X11_FONTDIR=$PKG/usr/share/fonts/misc \
|
||||
DESTDIR=$PKG \
|
||||
$1
|
||||
}
|
||||
|
||||
# No autodetection for libmodplug or SDL2_mixer, help it out.
|
||||
maintarg="nosound"
|
||||
pkg-config --exists libmodplug && maintarg="$PRGNAM"
|
||||
maintarg="nosound"; MP=no
|
||||
if pkg-config --exists libmodplug; then
|
||||
maintarg="$PRGNAM"
|
||||
MP=yes
|
||||
fi
|
||||
# on post-14.2 -current and 15.0, sdl2 is part of a full install:
|
||||
pkg-config --exists sdl2 SDL2_mixer && extra="clean sdl install_sdl"
|
||||
|
||||
sed -i "s,-O3.*,$SLKCFLAGS," Makefile
|
||||
|
@ -125,6 +117,17 @@ for target in $maintarg install clean dumb install_dumb $extra; do
|
|||
run_make $target
|
||||
done
|
||||
|
||||
# I have no idea why anyone would want this, but in case they do:
|
||||
XF=no
|
||||
if [ "${XFROTZ:-no}" = "yes" ]; then
|
||||
XF=yes
|
||||
run_make clean
|
||||
run_make x11
|
||||
run_make install_x11
|
||||
mv $PKG/usr/bin/xfrotz $PKG/usr/games
|
||||
rmdir $PKG/usr/bin
|
||||
fi
|
||||
|
||||
strip $PKG/usr/games/*
|
||||
gzip -9 $PKG/usr/man/man?/*.*
|
||||
|
||||
|
@ -133,7 +136,14 @@ gzip -9 $PKG/usr/man/man?/*.*
|
|||
mkdir -p $PKG/usr/share/applications \
|
||||
$PKG/usr/share/pixmaps \
|
||||
$PKG/usr/share/icons/hicolor/32x32/apps
|
||||
install -m0644 -oroot -groot $CWD/*.desktop $PKG/usr/share/applications
|
||||
|
||||
for i in $PKG/usr/games/*; do
|
||||
bin="$( basename $i )"
|
||||
if [ -e $CWD/$bin.desktop ]; then
|
||||
install -m0644 -oroot -groot $CWD/$bin.desktop $PKG/usr/share/applications
|
||||
fi
|
||||
done
|
||||
|
||||
cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
|
||||
ln -s ../../../../pixmaps/$PRGNAM.png \
|
||||
$PKG/usr/share/icons/hicolor/32x32/apps/$PRGNAM.png
|
||||
|
@ -155,7 +165,9 @@ cp -a AUTHORS CO* ChangeLog DUMB HOW_TO_PLAY README* TODO *.lsm \
|
|||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
sed -e "s,@MP@,$MP," \
|
||||
-e "s,@XF@,$XF," \
|
||||
$CWD/slack-desc > $PKG/install/slack-desc
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
PRGNAM="frotz"
|
||||
VERSION="2.52"
|
||||
VERSION="2.53"
|
||||
HOMEPAGE="https://davidgriffith.gitlab.io/frotz/"
|
||||
DOWNLOAD="https://gitlab.com/DavidGriffith/frotz/-/archive/2.52/frotz-2.52.tar.bz2"
|
||||
MD5SUM="99aeba254257d0ceb2b6bf51650b9d2a"
|
||||
DOWNLOAD="https://gitlab.com/DavidGriffith/frotz/-/archive/2.53/frotz-2.53.tar.bz2"
|
||||
MD5SUM="02c61ce6de7cd8635f99cb1bc17971e8"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES=""
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
diff -Naur -x '.*.swp' frotz-2.52/src/sdl/sf_util.c frotz-2.52.patched/src/sdl/sf_util.c
|
||||
--- frotz-2.52/src/sdl/sf_util.c 2020-05-10 19:51:48.000000000 -0400
|
||||
+++ frotz-2.52.patched/src/sdl/sf_util.c 2020-12-16 18:33:26.144268039 -0500
|
||||
@@ -380,7 +380,6 @@
|
||||
static char *new_dirname(const char *path)
|
||||
{
|
||||
char *p = strdup(path), *p2 = strdup(dirname(p));
|
||||
- free(p);
|
||||
return p2;
|
||||
}
|
||||
|
||||
@@ -392,7 +391,6 @@
|
||||
static char *new_basename(const char *path)
|
||||
{
|
||||
char *p = strdup(path), *p2 = strdup(basename(p));
|
||||
- free(p);
|
||||
return p2;
|
||||
}
|
||||
|
|
@ -12,8 +12,8 @@ frotz: Frotz is an interpreter for Infocom games and other Z-machine games.
|
|||
frotz: It complies with standard 1.0 of Graham Nelson's specification.
|
||||
frotz: Games can be found at: http://www.ifarchive.org/
|
||||
frotz:
|
||||
frotz:
|
||||
frotz:
|
||||
frotz:
|
||||
frotz: Build options:
|
||||
frotz: * curses frotz sound support: @MP@
|
||||
frotz: * xfrotz: @XF@
|
||||
frotz:
|
||||
frotz:
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
[Desktop Entry]
|
||||
Name=XFrotz
|
||||
GenericName=Z-Code Interpreter
|
||||
Comment=X11 Player for Interactive Fiction Games
|
||||
Exec=xfrotz %f
|
||||
Icon=frotz
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Game;AdventureGame;
|
||||
MimeType=application/x-zmachine;
|
||||
NoDisplay=true
|
||||
Actions=Play;
|
||||
|
||||
[Desktop Action Play]
|
||||
Name=Play
|
||||
Exec=xfrotz %f
|
Loading…
Reference in New Issue