aboutsummaryrefslogtreecommitdiff
path: root/games/megamario/megamario.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'games/megamario/megamario.SlackBuild')
-rw-r--r--games/megamario/megamario.SlackBuild62
1 files changed, 44 insertions, 18 deletions
diff --git a/games/megamario/megamario.SlackBuild b/games/megamario/megamario.SlackBuild
index 09993267ec455..063b32c654cba 100644
--- a/games/megamario/megamario.SlackBuild
+++ b/games/megamario/megamario.SlackBuild
@@ -6,11 +6,15 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# 20211022 bkw: BUILD=2
+# - new-style icons.
+# - make the in-game music work (by transcoding it to ogg).
+
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=megamario
VERSION=${VERSION:-1.7}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -22,9 +26,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 +67,22 @@ unzip $CWD/$ZIPFILE -x '*.exe' '*.dll' \
log.txt data/save.sav data/levels/1/1 data/levels/11/mai
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 {} \+
+
+# 20211025 bkw: gzip the patches. Don't trust git not to eat the \r
+# characters, since it's configurable by whoever checks this out.
# missing includes
-patch -p1 < $CWD/patches/compilefix.diff
+zcat $CWD/patches/compilefix.diff.gz | patch -p1
-# look for mp3music in DATADIR, not current dir
-patch -p1 < $CWD/patches/usemp3music.diff
+# Use ogg music rather than mp3, and look for music in DATADIR, not
+# current dir. Slackware's sdl has a libSDL_mixer.so that doesn't
+# support mp3, so we have to convert to sometime it does support.
+zcat $CWD/patches/oggmusic.diff.gz | patch -p1
# write log.txt to ~/.megamario/, not current dir
-patch -p1 < $CWD/patches/logfile.diff
+zcat $CWD/patches/logfile.diff.gz | patch -p1
# bin is hardcoded
sed -i 's,\<bin\>,games,' Makefile
@@ -102,15 +105,38 @@ make install \
PREFIX=$PKG/usr \
DATADIR="$PKG/$DATADIR"
-# 'make install' doesn't install the high-quality mp3 music
-cp -a mp3music $PKG/$DATADIR
+# not doing a man page as there are no command-line options.
+
+# 'make install' doesn't install the high-quality mp3 music. We have
+# to transcode them to ogg anyway. Sadly we're converting from one
+# lossy codec to another... while we're at it, get rid of the embedded
+# video frames in some of the mp3s, which the game never displays.
+# The converted music is ~17% smaller than the original mp3 music.
+OGGDIR=$PKG/$DATADIR/oggmusic
+mkdir -p $OGGDIR
+cp -a mp3music/*.dat $OGGDIR
+totalcount="$( /bin/ls -1 mp3music/*.mp3 | wc -l )"
+for song in mp3music/*.mp3; do
+ echo "===> [$((++count))/$totalcount] transcoding $song"
+ ffmpeg -loglevel 16 -i "$song" -vn -b:a 128k \
+ "$OGGDIR/$( basename "$song" .mp3 )".ogg
+done
# upstream's .desktop fails to validate, use our own fixed one.
-# the icon is upstream's.
-# not doing a man page as there are no command-line options.
mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
-cat $PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
+
+# the icon was made from upstream's player2l.png and full_pipe_left.png.
+# native size is 80x80.
+for i in 32 48 64 80; do
+ px=$( basename $i | cut -d. -f1 )
+ size=${px}x${px}
+ dir=$PKG/usr/share/icons/hicolor/$size/apps
+ mkdir -p $dir
+ convert -resize $size $CWD/$PRGNAM.png $dir/$PRGNAM.png
+done
+
+ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a *.txt $PKG/usr/doc/$PRGNAM-$VERSION