From a19c2e14dd3a331707f8bdba8660c9334d80e123 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Mon, 11 Oct 2021 16:45:33 -0400 Subject: games/zork: Updated for version 20211011. Signed-off-by: Willy Sudiarto Raharjo --- games/zork/README | 11 +++-- games/zork/desktop/zork1.desktop | 2 +- games/zork/desktop/zork2.desktop | 2 +- games/zork/desktop/zork3.desktop | 2 +- games/zork/desktop/ztuu.desktop | 2 +- games/zork/icons/32.png | Bin 0 -> 2776 bytes games/zork/icons/48.png | Bin 0 -> 5547 bytes games/zork/icons/64.png | Bin 0 -> 1028 bytes games/zork/mkicons.sh | 26 ++++++++++ games/zork/zork.SlackBuild | 65 +++++++++++++++--------- games/zork/zork.info | 2 +- games/zork/zork.png | Bin 423 -> 0 bytes games/zork/zork.sh | 40 --------------- games/zork/zorkwrapper.sh | 40 +++++++++++++++ games/zork/zorkwrapper.sh.6 | 103 +++++++++++++++++++++++++++++++++++++++ games/zork/zorkwrapper.sh.rst | 84 +++++++++++++++++++++++++++++++ 16 files changed, 305 insertions(+), 74 deletions(-) create mode 100644 games/zork/icons/32.png create mode 100644 games/zork/icons/48.png create mode 100644 games/zork/icons/64.png create mode 100644 games/zork/mkicons.sh delete mode 100644 games/zork/zork.png delete mode 100644 games/zork/zork.sh create mode 100644 games/zork/zorkwrapper.sh create mode 100644 games/zork/zorkwrapper.sh.6 create mode 100644 games/zork/zorkwrapper.sh.rst (limited to 'games/zork') diff --git a/games/zork/README b/games/zork/README index fae4e15202..2294af2b01 100644 --- a/games/zork/README +++ b/games/zork/README @@ -8,13 +8,14 @@ Undiscovered Underground (aka "ztuu"). They are owned by Activision, which released them as free downloads some time ago. The first 3 Zork games were originally developed by Infocom. -To actually play the games, you'll need a z-code interpreter. Currently -available are frotz and fizmo (text) and zoom (X11). See +To actually play the games, you'll need a z-code interpreter. +Currently available are frotz and fizmo (text) and zoom (X11). See README.interpreters for details. This build includes a shell script wrapper so you can run the games from the XFCE or KDE desktop menu, or by typing the game name (zork1, zork2, zork3, ztuu) from the shell, provided you have at least one interpreter installed. -This package includes the InvisiClues from the original games (as plain -text, so beware of spoilers). There are also walkthroughs and downloadable -PDF manuals for the first three games here: http://www.ironrealms.com/zork +This package includes the InvisiClues from the original games (as +plain text, so beware of spoilers). There are also walkthroughs +and downloadable PDF manuals for the first three games here: +http://www.ironrealms.com/zork diff --git a/games/zork/desktop/zork1.desktop b/games/zork/desktop/zork1.desktop index c20e8e4c19..ce9230ba1a 100644 --- a/games/zork/desktop/zork1.desktop +++ b/games/zork/desktop/zork1.desktop @@ -4,7 +4,7 @@ Name=Zork I GenericName=Interactive Fiction Game Comment=Zork: The Great Underground Empire Icon=zork -Exec=zork1 +Exec=/usr/games/zork1 Terminal=true Type=Application Categories=Game;AdventureGame; diff --git a/games/zork/desktop/zork2.desktop b/games/zork/desktop/zork2.desktop index 6b2100c38e..baa25b0ec3 100644 --- a/games/zork/desktop/zork2.desktop +++ b/games/zork/desktop/zork2.desktop @@ -4,7 +4,7 @@ Name=Zork II GenericName=Interactive Fiction Game Comment=Zork: The Wizard of Frobozz Icon=zork -Exec=zork2 +Exec=/usr/games/zork2 Terminal=true Type=Application Categories=Game;AdventureGame; diff --git a/games/zork/desktop/zork3.desktop b/games/zork/desktop/zork3.desktop index 8024742bb6..dd8fc76ea4 100644 --- a/games/zork/desktop/zork3.desktop +++ b/games/zork/desktop/zork3.desktop @@ -4,7 +4,7 @@ Name=Zork III GenericName=Interactive Fiction Game Comment=Zork: The Dungeon Master Icon=zork -Exec=zork3 +Exec=/usr/games/zork3 Terminal=true Type=Application Categories=Game;AdventureGame; diff --git a/games/zork/desktop/ztuu.desktop b/games/zork/desktop/ztuu.desktop index 280f54c1c2..d479fb38cd 100644 --- a/games/zork/desktop/ztuu.desktop +++ b/games/zork/desktop/ztuu.desktop @@ -4,7 +4,7 @@ Name=Zork TUU GenericName=Interactive Fiction Game Comment=Zork: The Undiscovered Underground Icon=zork -Exec=ztuu +Exec=/usr/games/ztuu Terminal=true Type=Application Categories=Game;AdventureGame; diff --git a/games/zork/icons/32.png b/games/zork/icons/32.png new file mode 100644 index 0000000000..86c51f5f18 Binary files /dev/null and b/games/zork/icons/32.png differ diff --git a/games/zork/icons/48.png b/games/zork/icons/48.png new file mode 100644 index 0000000000..ab5bee074a Binary files /dev/null and b/games/zork/icons/48.png differ diff --git a/games/zork/icons/64.png b/games/zork/icons/64.png new file mode 100644 index 0000000000..beb5a44b87 Binary files /dev/null and b/games/zork/icons/64.png differ diff --git a/games/zork/mkicons.sh b/games/zork/mkicons.sh new file mode 100644 index 0000000000..905e1ab77f --- /dev/null +++ b/games/zork/mkicons.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# 20211011 bkw: create zork icon, part of zork.SlackBuild. + +set -e + +CWD=$( pwd ) +mkdir -p $CWD/icons +DIR=$( mktemp -d ) +cd $DIR + +wget http://www.ifarchive.org/if-archive/infocom/icons/ZorkLetters.zip +unzip ZorkLetters.zip 'ZORK?.ICO' + +convert +append ZORKZ.ICO ZORKO.ICO zo.png +convert +append ZORKR.ICO ZORKK.ICO rk.png +convert -append zo.png rk.png $CWD/icons/64.png + +convert -resize 48x48 $CWD/icons/64.png $CWD/icons/48.png +convert -resize 32x32 $CWD/icons/64.png $CWD/icons/32.png + +rm *.ICO *.png *.zip +cd $CWD +rmdir $DIR + +exit 0 diff --git a/games/zork/zork.SlackBuild b/games/zork/zork.SlackBuild index 39b1cd3c47..9a9458000a 100644 --- a/games/zork/zork.SlackBuild +++ b/games/zork/zork.SlackBuild @@ -10,21 +10,24 @@ # files of course have their own version information, but at this late date # they aren't going to ever change. +# 20211011 bkw: +# - move executables to /usr/games. +# - new-style icons. +# - man page. +# - reflow readme-*.txt (with fmt -s). + # 20140219 bkw: fix .desktop files so they validate. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=zork -VERSION=${VERSION:-20140219} +VERSION=${VERSION:-20211011} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} ARCH=noarch -# 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 @@ -43,49 +46,63 @@ rm -rf $PRGNAM-$VERSION mkdir $PRGNAM-$VERSION cd $PRGNAM-$VERSION +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION + # zork 1/2/3 are z-code version 3 (z3), uu is z5. -mkdir -p $PKG/usr/share/zcode $PKG/usr/doc/$PRGNAM-$VERSION/invisiclues +mkdir -p $PKG/usr/share/zcode $PKGDOC/invisiclues for game in 1 2 3; do rm -rf * unzip -a -LL $CWD/zork$game.zip cat data/zork$game.dat > $PKG/usr/share/zcode/zork$game.z3 - cat readme.txt > $PKG/usr/doc/$PRGNAM-$VERSION/readme-zork$game.txt + fmt -s readme.txt > $PKGDOC/readme-zork$game.txt done rm -rf * unzip -a -LL $CWD/ztuu.zip cat ztuu.z5 > $PKG/usr/share/zcode/ztuu.z5 -cat readme.txt > $PKG/usr/doc/$PRGNAM-$VERSION/readme-ztuu.txt -cat invisiclues.txt > $PKG/usr/doc/$PRGNAM-$VERSION/invisiclues/ztuu.txt -cat invisiclues.html > $PKG/usr/doc/$PRGNAM-$VERSION/invisiclues/ztuu.html +fmt -s readme.txt > $PKGDOC/readme-ztuu.txt +cat invisiclues.txt > $PKGDOC/invisiclues/ztuu.txt +cat invisiclues.html > $PKGDOC/invisiclues/ztuu.html # ztuu has invisiclues in the zip file, add the clues for 1/2/3 also -cat $CWD/ZorkI.inv > $PKG/usr/doc/$PRGNAM-$VERSION/invisiclues/zork1.txt -cat $CWD/ZorkII.inv > $PKG/usr/doc/$PRGNAM-$VERSION/invisiclues/zork2.txt -cat $CWD/ZorkIII.inv > $PKG/usr/doc/$PRGNAM-$VERSION/invisiclues/zork3.txt +cat $CWD/ZorkI.inv > $PKGDOC/invisiclues/zork1.txt +cat $CWD/ZorkII.inv > $PKGDOC/invisiclues/zork2.txt +cat $CWD/ZorkIII.inv > $PKGDOC/invisiclues/zork3.txt -cat $CWD/README.interpreters > $PKG/usr/doc/$PRGNAM-$VERSION/README.interpreters -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +cat $CWD/README.interpreters > $PKGDOC/README.interpreters +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild # Script wrapper and .desktop files written for this SlackBuild mkdir -p \ - $PKG/usr/share/zork \ - $PKG/usr/bin \ - $PKG/usr/share/applications + $PKG/usr/share/games/zork \ + $PKG/usr/games \ + $PKG/usr/man/man6 \ + $PKG/usr/share/applications \ + $PKG/usr/share/pixmaps -install -m0755 $CWD/zork.sh $PKG/usr/share/zork/zorkwrapper.sh +install -m0755 $CWD/zorkwrapper.sh $PKG/usr/share/games/zork/zorkwrapper.sh +gzip -9c < $CWD/zorkwrapper.sh.6 > $PKG/usr/man/man6/zorkwrapper.sh.6.gz for game in zork1 zork2 zork3 ztuu; do - ln -s ../share/zork/zorkwrapper.sh $PKG/usr/bin/$game + ln -s ../share/games/zork/zorkwrapper.sh $PKG/usr/games/$game + ln -s zorkwrapper.sh.6.gz $PKG/usr/man/man6/$game.6.gz cat $CWD/desktop/$game.desktop > $PKG/usr/share/applications/$game.desktop done -ln -s ../share/zork/zorkwrapper.sh $PKG/usr/bin/$PRGNAM +# zork1 => zork, so we have an exe and a man page matching the package name. +ln -s zorkwrapper.sh.6.gz $PKG/usr/man/man6/$PRGNAM.6.gz +ln -s ../share/games/zork/zorkwrapper.sh $PKG/usr/games/$PRGNAM + +# Icons created with mkicons.sh, q.v. +for i in $CWD/icons/*.png; do + px=$( basename $i | cut -d. -f1 ) + size=${px}x${px} + dir=$PKG/usr/share/icons/hicolor/$size/apps + mkdir -p $dir + cat $i > $dir/$PRGNAM.png +done -# Icon converted from Z.ICO here: -# http://www.ifarchive.org/if-archive/infocom/icons/ZorkLetters.zip -mkdir -p $PKG/usr/share/pixmaps -cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png +ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png mkdir -p $PKG/install sed "s,@VERSION@,$VERSION," $CWD/slack-desc > $PKG/install/slack-desc diff --git a/games/zork/zork.info b/games/zork/zork.info index 467d955584..4374960e32 100644 --- a/games/zork/zork.info +++ b/games/zork/zork.info @@ -1,5 +1,5 @@ PRGNAM="zork" -VERSION="20140219" +VERSION="20211011" HOMEPAGE="http://www.infocom-if.org/" DOWNLOAD="http://infocom.elsewhere.org/scheyen/Download/zork1.zip \ http://infocom.elsewhere.org/scheyen/Download/zork2.zip \ diff --git a/games/zork/zork.png b/games/zork/zork.png deleted file mode 100644 index 911641be09..0000000000 Binary files a/games/zork/zork.png and /dev/null differ diff --git a/games/zork/zork.sh b/games/zork/zork.sh deleted file mode 100644 index 507091bbf7..0000000000 --- a/games/zork/zork.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -# shell script wrapper for zork games. Finds an interpreter based -# on what's installed, finds the zcode file based on $0. - -# This script is only meant to work with the files installed by -# zork.SlackBuild, so it's dumber than a general-purpose script -# would be. In particular, it chokes on filenames with spaces -# in them (but there aren't any installed by the SlackBuild) - -ZCODEPATH=/usr/share/zcode - -# This ugly construct is needed in case zork1.z3 and zork1.z5 both -# exist (we only want the .z? glob to return one filename) -ZFILE=$( echo "$ZCODEPATH/$( echo "$0" | sed 's,.*/,,' )".z? | cut -d' ' -f1 ) - -# If the wrapper is called directly, default to Zork I -if [ ! -e $ZFILE ]; then - ZFILE=$ZCODEPATH/zork1.z3 -fi - -if which fizmo &>/dev/null; then - exec fizmo $ZFILE -elif which frotz &>/dev/null; then - exec frotz $ZFILE -elif which zoom &>/dev/null; then - if [ "$DISPLAY" = "" ]; then - echo "$0: can't run zoom, X isn't running. Install fizmo or frotz, or else startx first" - exit 1 - fi - - # zoom is an X app, if we were called from a .desktop file, - # need to get rid of the terminal it started for us. - nohup zoom $ZFILE &>/dev/null & - sleep 1 - disown -else - echo "$0: can't find an interpreter. Install one or more of fizmo, frotz, zoom." - exit 1 -fi diff --git a/games/zork/zorkwrapper.sh b/games/zork/zorkwrapper.sh new file mode 100644 index 0000000000..507091bbf7 --- /dev/null +++ b/games/zork/zorkwrapper.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# shell script wrapper for zork games. Finds an interpreter based +# on what's installed, finds the zcode file based on $0. + +# This script is only meant to work with the files installed by +# zork.SlackBuild, so it's dumber than a general-purpose script +# would be. In particular, it chokes on filenames with spaces +# in them (but there aren't any installed by the SlackBuild) + +ZCODEPATH=/usr/share/zcode + +# This ugly construct is needed in case zork1.z3 and zork1.z5 both +# exist (we only want the .z? glob to return one filename) +ZFILE=$( echo "$ZCODEPATH/$( echo "$0" | sed 's,.*/,,' )".z? | cut -d' ' -f1 ) + +# If the wrapper is called directly, default to Zork I +if [ ! -e $ZFILE ]; then + ZFILE=$ZCODEPATH/zork1.z3 +fi + +if which fizmo &>/dev/null; then + exec fizmo $ZFILE +elif which frotz &>/dev/null; then + exec frotz $ZFILE +elif which zoom &>/dev/null; then + if [ "$DISPLAY" = "" ]; then + echo "$0: can't run zoom, X isn't running. Install fizmo or frotz, or else startx first" + exit 1 + fi + + # zoom is an X app, if we were called from a .desktop file, + # need to get rid of the terminal it started for us. + nohup zoom $ZFILE &>/dev/null & + sleep 1 + disown +else + echo "$0: can't find an interpreter. Install one or more of fizmo, frotz, zoom." + exit 1 +fi diff --git a/games/zork/zorkwrapper.sh.6 b/games/zork/zorkwrapper.sh.6 new file mode 100644 index 0000000000..0f576e33bd --- /dev/null +++ b/games/zork/zorkwrapper.sh.6 @@ -0,0 +1,103 @@ +.\" Man page generated from reStructuredText. +. +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.TH "ZORKWRAPPER.SH" 6 "2021-10-11" "20211011" "SlackBuilds.org" +.SH NAME +zorkwrapper.sh \- play Infocom Zork games +.\" RST source for zorkwrapper.sh(6) man page. Convert with: +. +.\" rst2man.py zorkwrapper.sh.rst > zorkwrapper.sh.6 +. +.\" rst2man.py comes from the SBo development/docutils package. +. +.SH SYNOPSIS +.nf +\fBzork\fP +\fBzork2\fP +\fBzork3\fP +\fBztuu\fP +.fi +.sp +.SH DESCRIPTION +.sp +\fBzorkwrapper.sh\fP runs the Infocom Zork games. It\(aqs installed via +symlinks in the /usr/games directory, so each game can be run by +simply typing its name. +.sp +Supported games: +.INDENT 0.0 +.TP +.B \fBzork\fP +Zork I: The Great Underground Empire +.TP +.B \fBzork2\fP +Zork II: The Wizard of Frobozz +.TP +.B \fBzork3\fP +Zork III: The Dungeon Master +.TP +.B \fBztuu\fP +Zork: The Undiscovered Underground +.UNINDENT +.sp +The games are run with the first interpreter found, from the following list: +.INDENT 0.0 +.INDENT 3.5 +\fBfizmo\fP, \fBfrotz\fP, \fBzoom\fP\&. +.UNINDENT +.UNINDENT +.SH OPTIONS +.sp +There are no options or arguments. +.SH FILES +.sp +\fB/usr/share/games/zork/zorkwrapper.sh\fP is the master copy of the script, +which gets symlinked to the game names in \fB/usr/games\fP\&. +.sp +\fB/usr/share/zcode/\fP contains the Z\-Machine files: +.INDENT 0.0 +.INDENT 3.5 +\fBzork1.z3\fP, \fBzork2.z3\fP, \fBzork3.z3\fP, \fBztuu.z5\fP +.UNINDENT +.UNINDENT +.SH AUTHORS +.sp +\fBzorkwrapper.sh\fP and this man page were written for the +SlackBuilds.org project by B. Watson, and are licensed under the WTFPL. +.sp +The Zork games are the property of Activision, which released them +as free\-to\-use downloads. See /usr/doc/zork\-20211011/readme\-*.txt +for license information. +.SH SEE ALSO +.sp +\fBfizmo\fP(6), \fBfrotz\fP(6), \fBzoom\fP(6) +.sp +\fI\%http://www.infocom\-if.org/\fP +.\" Generated by docutils manpage writer. +. diff --git a/games/zork/zorkwrapper.sh.rst b/games/zork/zorkwrapper.sh.rst new file mode 100644 index 0000000000..8c052a0270 --- /dev/null +++ b/games/zork/zorkwrapper.sh.rst @@ -0,0 +1,84 @@ +.. RST source for zorkwrapper.sh(6) man page. Convert with: +.. rst2man.py zorkwrapper.sh.rst > zorkwrapper.sh.6 +.. rst2man.py comes from the SBo development/docutils package. + +.. |version| replace:: 20211011 +.. |date| date:: + +============== +zorkwrapper.sh +============== + +----------------------- +play Infocom Zork games +----------------------- + +:Manual section: 6 +:Manual group: SlackBuilds.org +:Date: |date| +:Version: |version| + +SYNOPSIS +======== + +| **zork** +| **zork2** +| **zork3** +| **ztuu** + +DESCRIPTION +=========== + +**zorkwrapper.sh** runs the Infocom Zork games. It's installed via +symlinks in the /usr/games directory, so each game can be run by +simply typing its name. + +Supported games: + +**zork** + Zork I: The Great Underground Empire + +**zork2** + Zork II: The Wizard of Frobozz + +**zork3** + Zork III: The Dungeon Master + +**ztuu** + Zork: The Undiscovered Underground + +The games are run with the first interpreter found, from the following list: + + **fizmo**, **frotz**, **zoom**. + +OPTIONS +======= + +There are no options or arguments. + +FILES +===== + +**/usr/share/games/zork/zorkwrapper.sh** is the master copy of the script, +which gets symlinked to the game names in **/usr/games**. + +**/usr/share/zcode/** contains the Z-Machine files: + + **zork1.z3**, **zork2.z3**, **zork3.z3**, **ztuu.z5** + +AUTHORS +======= + +**zorkwrapper.sh** and this man page were written for the +SlackBuilds.org project by B. Watson, and are licensed under the WTFPL. + +The Zork games are the property of Activision, which released them +as free-to-use downloads. See /usr/doc/zork-|version|/readme-\*.txt +for license information. + +SEE ALSO +======== + +**fizmo**\(6), **frotz**\(6), **zoom**\(6) + +http://www.infocom-if.org/ -- cgit v1.2.3-65-gdbad