diff options
Diffstat (limited to 'games/prboom-plus')
-rw-r--r-- | games/prboom-plus/README | 41 | ||||
-rw-r--r-- | games/prboom-plus/doinst.sh | 10 | ||||
-rw-r--r-- | games/prboom-plus/prboom-plus.SlackBuild | 143 | ||||
-rw-r--r-- | games/prboom-plus/prboom-plus.info | 10 | ||||
-rw-r--r-- | games/prboom-plus/slack-desc | 4 |
5 files changed, 151 insertions, 57 deletions
diff --git a/games/prboom-plus/README b/games/prboom-plus/README index 43eafc4b0e..2cd75e32f9 100644 --- a/games/prboom-plus/README +++ b/games/prboom-plus/README @@ -1,12 +1,35 @@ -PrBoom+ is a Doom source port developed from the original PrBoom project. +prboom-plus (Doom source port) -Features uncapped framerate, widescreen aspect ratios, soundfont support, -variable gamespeed, re-record, walkcam, chasecam, full full mouselook, fov and -other features along with full compatibility with the original Doom/Doom2 -engines. +PrBoom+ is a Doom source port developed from the original PrBoom +project. -FluidSynth, needed for soundfont support, is an optional dependency. +Features uncapped framerate, widescreen aspect ratios, soundfont +support, variable gamespeed, re-record, walkcam, chasecam, full +mouselook, variable FOV, and other features along with full +compatibility with the original Doom/Doom2 engines. -The documentation refers to a directory into which an IWAD file (doom.wad, -doom2.wad, tnt.wad, plutonia.wad, or the shareware doom1.wad) may be placed. -The IWAD directory is /usr/share/games/doom. +The documentation refers to a directory into which an IWAD +file (doom.wad, doom2.wad, tnt.wad, plutonia.wad, or the +shareware doom1.wad) may be placed. The IWAD directory is +/usr/share/games/doom. If you don't have any IWADs, install +doom_shareware_data to play shareware Doom. + +Optional dependencies, autodetected: +portmidi - for the PortMIDI backend. Most users won't need this. +dumb - somehow, this can be used for music. No idea how to enable it, + but if dumb is detected, prboom-plus will link with it. + +*** NOTE *** + +Currently the SDL MIDI player is broken. The default player in this +build is OPL2. You won't be able to select SDL from the "Preferred +MIDI Player" menu in the game options. If you have an old config +file that sets snd_midiplayer to "sdl", the music will sound *really* +messed up. If this happens, simply edit ~/.prboom-plus/prboom-plus.cfg +and remove the line containing snd_midiplayer. Or just delete the +file, to start with default settings. + +If you don't like the sound of the OPL2 music, you can try using +FluidSynth instead (Options -> General -> Preferred MIDI Player in the +user interface). Other options (PortMIDI and ALSA) may be usable but +will require more setup, outside the scope of this README. diff --git a/games/prboom-plus/doinst.sh b/games/prboom-plus/doinst.sh new file mode 100644 index 0000000000..daf1ce3148 --- /dev/null +++ b/games/prboom-plus/doinst.sh @@ -0,0 +1,10 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /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 usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/games/prboom-plus/prboom-plus.SlackBuild b/games/prboom-plus/prboom-plus.SlackBuild index 2ac6a047c3..373411b1ad 100644 --- a/games/prboom-plus/prboom-plus.SlackBuild +++ b/games/prboom-plus/prboom-plus.SlackBuild @@ -1,29 +1,61 @@ -#!/bin/sh +#!/bin/bash # Slackware build script for prboom-plus -# Written by Dugan Chen (thedoogster@gmail.com) +# Originally written by Dugan Chen (email removed) +# Modified and now maintained by B. Watson <urchlay@slackware.uk>. +# Original had no license. Modified version released under the WTFPL. See +# http://www.wtfpl.net/txt/copying/ for details. + +# 20230714 bkw: update for v2.6.66. SDL MIDI is still broken. +# - change default fluidsynth soundfont to one that exists in Slackware. +# - document optional dependency dumb. + +# 20220622 bkw: update for v2.6.2, add missing doinst.sh. + +# 20211027 bkw: +# - update for v2.6.1um. +# - band-aid for segfaults on -current (see below). this isn't +# a side-effect of the version upgrade: it happens on 2.6um also. + +# 20210223 bkw: update for v2.6um. Upstream switched to cmake, +# so we can't build previous versions any more. + +# 20200416 bkw: +# - take over maintenance +# - i486 => i586 +# - switch to coelckers github fork, since it's maintained +# - SDL2_* now required +# - install desktop, icon, bash completion +# - game binaries in /usr/games + +cd $(dirname $0) ; CWD=$(pwd) PRGNAM=prboom-plus -VERSION=${VERSION:-2.5.1.4} +VERSION=${VERSION:-2.6.66} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in - i?86) ARCH=i486 ;; + i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi -CWD=$(pwd) +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" @@ -45,43 +77,72 @@ rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.gz cd $PRGNAM-$VERSION 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 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; - -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -./configure \ - --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --build=$ARCH-slackware-linux \ - --datarootdir=/usr \ - --enable-gl - -make -make install DESTDIR=$PKG - -# Configure script insists on putting docs in /usr/share/doc, even when told not to. -mv $PKG/usr/share/doc $PKG/usr - -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true - -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 - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a \ - doc/ AUTHORS COPYING INSTALL NEWS README TODO \ - $PKG/usr/doc/$PRGNAM-$VERSION +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ + +[ -d prboom2 ] && cd prboom2 + +# upstream hardcoded paths, can't override on cmake command line. +sed -i '/install/s,/bin,/games,' src/CMakeLists.txt +sed -i '/^set(CMAKE_INSTALL_DOCDIR/d' CMakeLists.txt + +# 20230714 bkw: use a default soundfont that exists. allows choosing the +# fluidsynth midi option. personally I think opl2 sounds better, but *shrug*. +US="/usr/share" +sed -i '/snd_soundfont/s,"'$US'[^"]*","'$US'/minuet/soundfonts/GeneralUser-v1.47.sf2",' src/m_misc.c + +MIXEROPT=ON +if [ "${BANDAID:-yes}" = "yes" ]; then + # 20211027 bkw: Band-aid. The game segfaults when the midi backend + # is set to "sdl". Adding -DWITH_MIXER=OFF stops it segfaulting, but + # it sounds *horrible*. So this bit of sed changes the default sound + # backend to "opl2", which doesn't sound as nice, but allows the game + # to run. Also it increases the default volume, since the opl2 synth + # is quieter. + # 20230714 bkw: this is still needed for v2.6.66. the fault is in + # Slackware 15.0, so it's not going to change soon. + MIXEROPT=OFF + sed -i -e '/"snd_midiplayer"/s,"sdl","opl2",' \ + -e '/"music_volume"/s,8,12,' \ + src/m_misc.c + + # 2nd half of the band-aid: prevent the user from choosing SDL MIDI + # from the menu. + sed -i '/"snd_midiplayer"/s,midiplayers,&+1,' src/m_menu.c +fi + +mkdir -p build +cd build + cmake \ + -DWITH_MIXER=$MIXEROPT \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DCMAKE_INSTALL_BINDIR=games \ + -DCMAKE_INSTALL_MANDIR=/usr/man \ + -DCMAKE_INSTALL_DOCDIR=/usr/doc/$PRGNAM-$VERSION \ + -DCMAKE_BUILD_TYPE=Release .. + make + make install/strip DESTDIR=$PKG +cd .. + +gzip $PKG/usr/man/man?/*.? + +# desktop/icon/completion included in tarball but not installed +mkdir -p $PKG/usr/share/applications \ + $PKG/usr/share/icons/hicolor/scalable/apps \ + $PKG/usr/share/bash-completion/completions +cp ICONS/$PRGNAM.desktop $PKG/usr/share/applications +cp ICONS/$PRGNAM.svg $PKG/usr/share/icons/hicolor/scalable/apps +cp ICONS/$PRGNAM.bash $PKG/usr/share/bash-completion/completions/$PRGNAM + +cp -a AUTHORS COPYING README NEWS $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $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} +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/games/prboom-plus/prboom-plus.info b/games/prboom-plus/prboom-plus.info index 450e3d6e19..0b35a74d52 100644 --- a/games/prboom-plus/prboom-plus.info +++ b/games/prboom-plus/prboom-plus.info @@ -1,10 +1,10 @@ PRGNAM="prboom-plus" -VERSION="2.5.1.4" +VERSION="2.6.66" HOMEPAGE="http://prboom-plus.sourceforge.net" -DOWNLOAD="http://downloads.sourceforge.net/project/prboom-plus/prboom-plus/2.5.1.4/prboom-plus-2.5.1.4.tar.gz" -MD5SUM="eff7878d4542259a2bd6b2fef79962ca" +DOWNLOAD="https://github.com/coelckers/prboom-plus/archive/v2.6.66/prboom-plus-2.6.66.tar.gz" +MD5SUM="62b29843ba4ab1f442be8fe469ee523f" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -MAINTAINER="Dugan Chen" -EMAIL="thedoogster@gmail.com" +MAINTAINER="B. Watson" +EMAIL="urchlay@slackware.uk" diff --git a/games/prboom-plus/slack-desc b/games/prboom-plus/slack-desc index bd3b0e71f3..196aeff751 100644 --- a/games/prboom-plus/slack-desc +++ b/games/prboom-plus/slack-desc @@ -13,7 +13,7 @@ prboom-plus: project. prboom-plus: prboom-plus: Features uncapped framerate, widescreen aspect ratios, FluidSynth prboom-plus: support, variable gamespeed, re-record, walkcam, chasecam, full -prboom-plus: full mouselook, fov and other features along with full compatibility -prboom-plus: with the original Doom/Doom2 engines. +prboom-plus: mouselook, variable fov and other features along with full +prboom-plus: compatibility with the original Doom/Doom2 engines. prboom-plus: prboom-plus: http://prboom-plus.sourceforge.net |