#!/bin/bash # Slackware build script for kegs # Written by B. Watson (yalhcru@gmail.com) # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. # 20210225 bkw: update for v1.05. lots of changes: # - include the ROM image in the package (add it to DOWNLOAD) # - allow_sound_open_fail.diff no longer required # - rework allow_window_close.diff for v1.05 # - .desktop file no longer needs Terminal=true # - upstream now supports pulseaudio, so build with it by default. add # AUDIO variable to build the old OSS sound support or ALSA via aoss # instead. # 20170305 bkw: # - fix building under installwatch, caused by a symlink in the # tarball being listed before its target Why does this choke # under installwatch and not otherwise? Not bumping BUILD for this. # 20150621 bkw: bump BUILD to 2 # - fix link to GS/OS images in README # - split up huge README, move most of it to README.Slackware # - add allow_sound_open_fail.diff # - add instructions on getting OSS audio to work on modern Slack # - "Exec=aoss xkegs" in .desktop file PRGNAM=kegs VERSION=${VERSION:-1.05} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" else SLKCFLAGS="-O2" fi set -e AUDIO=${AUDIO:-pulse} VARS=$CWD/makevars/vars.$AUDIO if [ ! -e $VARS ]; then echo -n "*** AUDIO=\"$AUDIO\" not supported. Use one of: " 1>&2 list="$( ls -1 $CWD/makevars/vars.* | cut -d. -f2 )" echo $list 1>&2 exit 1 fi rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM.$VERSION tar xvf $CWD/$PRGNAM.$VERSION.tar.gz \ --exclude '*/KEGSMAC.app' \ --exclude xkegs cd $PRGNAM.$VERSION chown -R root:root . find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ # device name for joysticks has changed for the 21st century. sed -i 's,/dev/js,/dev/input/js,' src/joystick_driver.c # xkegs refuses to close (close button greyed-out by window manager). # Small patch by SlackBuild author fixes this large annoyance (which is # extra-annoying because there's also no Quit option in the kegs menu). # I've sent this upstream, maybe it'll get integrated in future versions. # 20210225 bkw: Years later. Patch had to change for 1.05. The README # for kegs *actually says* you can close the main KEGS window to quit, # *and you can't fucking close it* without this patch. Apologies if I # sound a bit strident, but... patch -p1 < $CWD/allow_window_close.diff cd src rm -f vars cat $VARS > vars make SLKCFLAGS="$SLKCFLAGS" x$PRGNAM to_pro partls cd - # No install target, just stick it all where it goes. mkdir -p \ $PKG/usr/bin \ $PKG/usr/libexec \ $PKG/usr/share/pixmaps \ $PKG/usr/share/applications \ $PKG/usr/share/$PRGNAM \ $PKG/usr/man/man1 install -s -m0755 x$PRGNAM $PKG/usr/libexec/ install -s -m0755 src/to_pro src/partls $PKG/usr/bin/ install -m0755 $CWD/x$PRGNAM.sh $PKG/usr/bin/x$PRGNAM install -m0644 $CWD/$PRGNAM.desktop $PKG/usr/share/applications/ install -m0644 $CWD/config.$PRGNAM.default $PKG/usr/share/$PRGNAM # The icons were converted from the Mac OSX icon with icns2png. for i in 16 32 48 128; do idir=$PKG/usr/share/icons/hicolor/${i}x${i}/apps mkdir -p $idir cat $CWD/icons/$i.png > $idir/$PRGNAM.png done # old-style icon (e.g. windowmaker, fvwm2) ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png # Include the ROM image in the package. It's been available on the # asimov site for at least 20 years now, Apple has never complained. unzip -p $CWD/gsrom03.zip > $PKG/usr/share/$PRGNAM/rom03 # Man pages are specific to the SlackBuild, though I've sent # them upstream for consideration. for file in $CWD/man/*.1; do sed "s/@VERSION@/$VERSION/g" $file \ | gzip -9c \ > $PKG/usr/man/man1/$( basename $file ).gz done # Half the supplied documentation refers to it as "kegs" and # the other half calls it "xkegs". To avoid confusion: ln -s x$PRGNAM.1.gz $PKG/usr/man/man1/$PRGNAM.1.gz ln -s x$PRGNAM $PKG/usr/bin/$PRGNAM mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION install -m0644 *.txt $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install sed "s,@AUDIO@,$AUDIO," $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}