aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--games/mupen64plus/README7
-rw-r--r--games/mupen64plus/doinst.sh3
-rw-r--r--games/mupen64plus/fix_multiple_definition_errors.patch11
-rw-r--r--games/mupen64plus/mupen64plus-core-2.5.9-fix-gcc10-fno-common.patch24
-rw-r--r--games/mupen64plus/mupen64plus.SlackBuild69
-rw-r--r--games/mupen64plus/mupen64plus.info6
6 files changed, 82 insertions, 38 deletions
diff --git a/games/mupen64plus/README b/games/mupen64plus/README
index 468f87c1c0c61..21263fa17846a 100644
--- a/games/mupen64plus/README
+++ b/games/mupen64plus/README
@@ -4,8 +4,5 @@ emulators, with dynamic recompilers for 32-bit x86 and 64-bit amd64
systems, and necessary plugins for audio, graphical rendering (RDP),
signal co-processor (RSP), and input.
-Note: Mupen64plus will build against SDL2 if installed, but SDL2 is
-not required.
-
-The 2.0 branch of mupen64plus does not include a GUI. If you want
-one, install the m64py package.
+Mupen64plus does not come with a GUI. For a GUI, install the m64py
+package available here at SBo.
diff --git a/games/mupen64plus/doinst.sh b/games/mupen64plus/doinst.sh
new file mode 100644
index 0000000000000..59eb079d1557a
--- /dev/null
+++ b/games/mupen64plus/doinst.sh
@@ -0,0 +1,3 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications 2>/dev/null
+fi
diff --git a/games/mupen64plus/fix_multiple_definition_errors.patch b/games/mupen64plus/fix_multiple_definition_errors.patch
deleted file mode 100644
index 5fa3372ab11d4..0000000000000
--- a/games/mupen64plus/fix_multiple_definition_errors.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur mupen64plus-bundle-src-2.5.orig/source/mupen64plus-core/src/main/workqueue.h mupen64plus-bundle-src-2.5/source/mupen64plus-core/src/main/workqueue.h
---- mupen64plus-bundle-src-2.5.orig/source/mupen64plus-core/src/main/workqueue.h 2015-04-27 00:42:49.000000000 +0200
-+++ mupen64plus-bundle-src-2.5/source/mupen64plus-core/src/main/workqueue.h 2020-05-08 19:04:37.956818550 +0200
-@@ -27,7 +27,6 @@
-
- struct work_struct;
-
--struct work_struct *work;
- typedef void (*work_func_t)(struct work_struct *work);
- struct work_struct {
- work_func_t func;
diff --git a/games/mupen64plus/mupen64plus-core-2.5.9-fix-gcc10-fno-common.patch b/games/mupen64plus/mupen64plus-core-2.5.9-fix-gcc10-fno-common.patch
new file mode 100644
index 0000000000000..babbd79314831
--- /dev/null
+++ b/games/mupen64plus/mupen64plus-core-2.5.9-fix-gcc10-fno-common.patch
@@ -0,0 +1,24 @@
+diff -up mupen64plus-bundle-src-2.5.9/source/mupen64plus-core/src/main/workqueue.h.orig mupen64plus-bundle-src-2.5.9/source/mupen64plus-core/src/main/workqueue.h
+--- mupen64plus-bundle-src-2.5.9/source/mupen64plus-core/src/main/workqueue.h.orig 2021-07-28 23:12:42.573699463 -0500
++++ mupen64plus-bundle-src-2.5.9/source/mupen64plus-core/src/main/workqueue.h 2021-07-28 23:13:30.238695477 -0500
+@@ -27,7 +27,6 @@
+
+ struct work_struct;
+
+-struct work_struct *work;
+ typedef void (*work_func_t)(struct work_struct *work);
+ struct work_struct {
+ work_func_t func;
+
+diff -up mupen64plus-bundle-src-2.5.9/source/mupen64plus-core/src/device/r4300/idec.h.orig mupen64plus-bundle-src-2.5.9/source/mupen64plus-core/src/device/r4300/idec.h
+--- mupen64plus-bundle-src-2.5.9/source/mupen64plus-core/src/device/r4300/idec.h.orig 2021-07-28 23:11:03.427914223 -0500
++++ mupen64plus-bundle-src-2.5.9/source/mupen64plus-core/src/device/r4300/idec.h 2021-07-28 23:12:13.275701913 -0500
+@@ -82,6 +82,6 @@ size_t idec_u53(uint32_t iw, uint8_t u53
+
+ #define IDEC_U53(r4300, iw, u53, u5) (void*)(((char*)(r4300)) + idec_u53((iw), (u53), (u5)))
+
+-const char* g_r4300_opcodes[R4300_OPCODES_COUNT];
++extern const char* g_r4300_opcodes[R4300_OPCODES_COUNT];
+
+ #endif
+
diff --git a/games/mupen64plus/mupen64plus.SlackBuild b/games/mupen64plus/mupen64plus.SlackBuild
index a7d27072ebba4..c59cb0b170eb7 100644
--- a/games/mupen64plus/mupen64plus.SlackBuild
+++ b/games/mupen64plus/mupen64plus.SlackBuild
@@ -2,19 +2,39 @@
# Slackware build script for mupen64plus
-# Written by M.Dinslage contact: daedra1980@gmail.com
+# Copyright 2021 Matt Dinslage, Springfield MO
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mupen64plus
-VERSION=${VERSION:-2.5}
+VERSION=${VERSION:-2.5.9}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
+SRCNAM=mupen64plus-bundle-src
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -32,15 +52,15 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LBIDIRSUFFIX=""
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LBIDIRSUFFIX=""
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
- LBIDIRSUFFIX="64"
+ LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
@@ -51,9 +71,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-bundle-src-$VERSION.tar.gz
-cd $PRGNAM-bundle-src-$VERSION
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -61,23 +81,34 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# https://github.com/mupen64plus/mupen64plus-core/issues/712#issuecomment-588871449
-patch -p1 < $CWD/fix_multiple_definition_errors.patch
+# Fix for compiling mupen64plus-core with gcc-10
+patch -p1 < $CWD/mupen64plus-core-2.5.9-fix-gcc10-fno-common.patch
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
-./m64p_build.sh V=1
-./m64p_install.sh PREFIX=/usr LIBDIR=/usr/lib${LBIDIRSUFFIX} MANDIR=/usr/man DESTDIR=$PKG
+./m64p_build.sh
+./m64p_install.sh PREFIX=/usr LIBDIR=/usr/lib${LIBDIRSUFFIX} MANDIR=/usr/man DESTDIR=$PKG
+
+# Don't ship .la files:
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+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 $TMP/$PRGNAM-bundle-src-$VERSION/test/doc/* $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+# mupen64plus-bundle is all the required mupen64plus soures in one package,
+# so each source has its own docs.
+for i in audio-sdl core input-sdl rom rsp-hle ui-console video-glide64mk2 video-rice ; do
+ mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM-$i
+ cp -a source/$PRGNAM-$i/{CREDITS,LICENSES,README,RELEASE,README.md,AUTHORS,gpl-license} \
+ $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM-$i 2>/dev/null || :
+done
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 -p $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/games/mupen64plus/mupen64plus.info b/games/mupen64plus/mupen64plus.info
index 8c2e15abbdef8..6489f06e6bda1 100644
--- a/games/mupen64plus/mupen64plus.info
+++ b/games/mupen64plus/mupen64plus.info
@@ -1,8 +1,8 @@
PRGNAM="mupen64plus"
-VERSION="2.5"
+VERSION="2.5.9"
HOMEPAGE="https://github.com/mupen64plus/mupen64plus-core"
-DOWNLOAD="https://github.com/mupen64plus/mupen64plus-core/releases/download/2.5/mupen64plus-bundle-src-2.5.tar.gz"
-MD5SUM="e329654f869ced5eaf82a8c2337b28d7"
+DOWNLOAD="https://github.com/mupen64plus/mupen64plus-core/releases/download/2.5.9/mupen64plus-bundle-src-2.5.9.tar.gz"
+MD5SUM="e3e617e775039e6221bb06d6917cbe78"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""