diff options
-rw-r--r-- | games/zsnes/0012-Fix-build-with-gcc-4.7.patch | 24 | ||||
-rw-r--r-- | games/zsnes/README | 19 | ||||
-rw-r--r-- | games/zsnes/doinst.sh | 4 | ||||
-rw-r--r-- | games/zsnes/sbo.diff | 71 | ||||
-rw-r--r-- | games/zsnes/slack-desc | 6 | ||||
-rw-r--r-- | games/zsnes/zsnes-1.51-libpng15.patch | 12 | ||||
-rw-r--r-- | games/zsnes/zsnes.SlackBuild | 178 | ||||
-rw-r--r-- | games/zsnes/zsnes.desktop | 12 | ||||
-rw-r--r-- | games/zsnes/zsnes.info | 10 | ||||
-rw-r--r-- | games/zsnes/zsnes.png | bin | 8010 -> 0 bytes |
10 files changed, 174 insertions, 162 deletions
diff --git a/games/zsnes/0012-Fix-build-with-gcc-4.7.patch b/games/zsnes/0012-Fix-build-with-gcc-4.7.patch deleted file mode 100644 index 2c29f5be4348..000000000000 --- a/games/zsnes/0012-Fix-build-with-gcc-4.7.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Etienne Millon <etienne.millon@gmail.com> -Date: Thu, 12 Apr 2012 18:01:45 +0200 -Subject: Fix build with gcc 4.7 - -Headers in the new C++ library do not implicitly import unistd.h, so it is -necessary to do it in the source. - -Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667429 ---- - src/tools/depbuild.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/tools/depbuild.cpp b/src/tools/depbuild.cpp -index 1e4bbc5..ea0854c 100644 ---- a/src/tools/depbuild.cpp -+++ b/src/tools/depbuild.cpp -@@ -25,6 +25,7 @@ This program generates dependencies for all C/C++/Assembly files - #include <string> - #include <cstdio> - #include <cstdlib> -+#include <unistd.h> - using namespace std; - - #include "fileutil.h" diff --git a/games/zsnes/README b/games/zsnes/README index 8b29ccbba8cb..ad29c79ef8ad 100644 --- a/games/zsnes/README +++ b/games/zsnes/README @@ -3,10 +3,23 @@ zsnes (SNES emulator) ZSNES is a Super Nintendo emulator programmed by zsKnight and _Demo_. On April 2, 2001 the ZSNES project was GPL'ed and its source released to the public. It currently runs on Windows, Linux, FreeBSD, and DOS. -Remember that this is a public beta so don't expect this to run on -your machine. -Note to 64-bit users: zsnes can't be built for 64-bit, and it's no +The original zsnes developers' last release was 1.51, in 2007. This +build is for xyproto's fork, which is still maintained as of 2023, and +has several bugfixes and minor enhancements. + +Build options (environment variables): + +- AO=no - disable libao for audio output. Removes all audio output +drivers except SDL. Probably not useful. + +- DEBUGGER=no - disable the built-in debugger. May give a slight speed +boost on old/slow systems. + +Note to x86_64 users: zsnes can't be built for 64-bit, and it's no longer practical to provide a static binary as was done in the past. It should be possible to build zsnes if you install multilib, though the SlackBuild maintainer hasn't tested this. + +Note to ARM/aarch64 users: because zsnes is partially written in x86 +assembly, it can't be built for ARM. diff --git a/games/zsnes/doinst.sh b/games/zsnes/doinst.sh index 5934a15ab1ef..65c7e2eeb9aa 100644 --- a/games/zsnes/doinst.sh +++ b/games/zsnes/doinst.sh @@ -1,9 +1,9 @@ if [ -x /usr/bin/update-desktop-database ]; then - /usr/bin/update-desktop-database -q usr/share/applications + /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 + /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1 fi fi diff --git a/games/zsnes/sbo.diff b/games/zsnes/sbo.diff new file mode 100644 index 000000000000..97a8fbbe3aa3 --- /dev/null +++ b/games/zsnes/sbo.diff @@ -0,0 +1,71 @@ +diff -Naur zsnes-2.0.12/Makefile zsnes-2.0.12.patched/Makefile +--- zsnes-2.0.12/Makefile 2023-05-03 08:02:58.000000000 -0400 ++++ zsnes-2.0.12.patched/Makefile 2023-11-14 03:21:25.391574152 -0500 +@@ -408,10 +408,10 @@ + @echo "LDFLAGS = $(LDFLAGS)" + + install: +- install -Dm755 zsnes '$(DESTDIR)$(PREFIX)/bin/zsnes' ++ install -s -Dm755 zsnes '$(DESTDIR)$(PREFIX)/games/zsnes' + for ICON_SIZE in 16x16 32x32 48x48 64x64 128x128; do \ + install -Dm644 icons/$${ICON_SIZE}x32.png "$(DESTDIR)$(PREFIX)/share/icons/hicolor/$$ICON_SIZE/apps/io.github.xyproto.zsnes.png" ; \ + done +- install -Dm755 linux/zsnes.desktop '$(DESTDIR)$(PREFIX)/share/applications/io.github.xyproto.zsnes.desktop' +- install -Dm755 linux/io.github.xyproto.zsnes.metainfo.xml -t '$(DESTDIR)$(PREFIX)/share/metainfo' +- install -Dm644 man/zsnes.1 '$(DESTDIR)$(PREFIX)/share/man/man1/zsnes.1' ++ install -Dm644 linux/zsnes.desktop '$(DESTDIR)$(PREFIX)/share/applications/io.github.xyproto.zsnes.desktop' ++ install -Dm644 linux/io.github.xyproto.zsnes.metainfo.xml -t '$(DESTDIR)$(PREFIX)/share/metainfo' ++ install -Dm644 man/zsnes.1 '$(DESTDIR)$(PREFIX)/man/man6/zsnes.6' +diff -Naur zsnes-2.0.12/linux/zsnes.desktop zsnes-2.0.12.patched/linux/zsnes.desktop +--- zsnes-2.0.12/linux/zsnes.desktop 2023-05-03 08:02:58.000000000 -0400 ++++ zsnes-2.0.12.patched/linux/zsnes.desktop 2023-11-14 03:21:25.392574152 -0500 +@@ -3,8 +3,8 @@ + Type=Application + Name=ZSNES + Comment=Super Nintendo emulator +-Exec=zsnes %f +-TryExec=zsnes ++Exec=/usr/games/zsnes %f ++TryExec=/usr/games/zsnes + Icon=io.github.xyproto.zsnes + Terminal=false + StartupNotify=false +diff -Naur zsnes-2.0.12/man/zsnes.1 zsnes-2.0.12.patched/man/zsnes.1 +--- zsnes-2.0.12/man/zsnes.1 2023-05-03 08:02:58.000000000 -0400 ++++ zsnes-2.0.12.patched/man/zsnes.1 2023-11-14 03:24:07.337558911 -0500 +@@ -1,4 +1,4 @@ +-.TH "ZSNES 2.0.12" 1 ++.TH ZSNES "6" "November 2023" "2.0.12" "SlackBuilds.org" + + .SH NAME + ZSNES - Super Nintendo console emulator +@@ -10,7 +10,15 @@ + .B ZSNES + is an emulator for the Super Nintendo video game console. It is written in a combination of x86 assembly, C, C++, and PSR. It is currently available on Windows, DOS, x86 Linux, x86 Mac OS X, and x86 BSD. + +-Visit http://www.zsnes.com/ for the latest updates. ++Visit https://github.com/xyproto/zsnes for the latest updates. ++ ++.B Note: ++This man page hasn't been updated in a long time; see the output ++of ++.B ++zsnes --help ++for a complete, up-to-date list of options. Also, some of the URLs ++listed here no longer work. + + .SH OPTIONS + Note: Many of these options can also be set in the GUI. +@@ -204,10 +212,10 @@ + http://zsnes-docs.sf.net/ + .TP + ZSNES IRC: +-#zsnes on irc.freenode.net ++#zsnes on irc.libera.chat + .TP + ZSNES Docs IRC: +-#zsnes-docs on irc.freenode.net ++#zsnes-docs on irc.libera.chat + + .SH "COPYRIGHT NOTICE" + Copyright \(co 1997-2008 ZSNES Team diff --git a/games/zsnes/slack-desc b/games/zsnes/slack-desc index 0c4a74c25572..d74e01afa7f8 100644 --- a/games/zsnes/slack-desc +++ b/games/zsnes/slack-desc @@ -11,9 +11,9 @@ zsnes: zsnes: ZSNES is a Super Nintendo emulator programmed by zsKnight and _Demo_. zsnes: On April 2, 2001 the ZSNES project was GPL'ed and its source released zsnes: to the public. It currently runs on Windows, Linux, FreeBSD, and DOS. -zsnes: Remember that this is a public beta so don't expect this to run on -zsnes: your machine. +zsnes: This is xyproto's fork, still maintained as of 2023. zsnes: -zsnes: Homepage: http://www.zsnes.com +zsnes: Build options: AO=@A@, DEBUGGER=@D@ zsnes: +zsnes: Homepage: https://github.com/xyproto/zsnes zsnes: diff --git a/games/zsnes/zsnes-1.51-libpng15.patch b/games/zsnes/zsnes-1.51-libpng15.patch deleted file mode 100644 index b32c30967547..000000000000 --- a/games/zsnes/zsnes-1.51-libpng15.patch +++ /dev/null @@ -1,12 +0,0 @@ -Use existing png_set_IHDR() and stop accessing PNG structure members directly - ---- src/zip/zpng.c -+++ src/zip/zpng.c -@@ -129,7 +129,6 @@ - png_set_IHDR(png_ptr, info_ptr, width, height, 8, - PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); -- info_ptr->color_type = PNG_COLOR_TYPE_RGB; - - //Allocate an array of scanline pointers - row_pointers = (png_bytep*)malloc(height*sizeof(png_bytep)); diff --git a/games/zsnes/zsnes.SlackBuild b/games/zsnes/zsnes.SlackBuild index c3aa081f8728..40508e9927d1 100644 --- a/games/zsnes/zsnes.SlackBuild +++ b/games/zsnes/zsnes.SlackBuild @@ -2,53 +2,27 @@ # Slackware build script for zsnes -# Copyright (c) 2008, Antonio Hernández Blas <email removed> -# Copyright (c) 2010, 2012, Carlos Corbacho <email removed> -# Copyright (c) 2018, B. Watson <urchlay@slackware.uk> -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# 1.- Redistributions of source code 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. - -# 20211230 bkw: -# - statifier's never going to work on current/15.0, its author hasn't -# updated it since 2016. so get rid of the 64-bit download and code -# to support it. sorry. - -# 20211215 bkw: BUILD=5 -# - fix -current 32-bit build. -# - new-style icons. -# - TODO: statified binary needs updating. Except statifier seems not -# to work on -current. Sigh. -# - TODO: investigate fork: https://github.com/xyproto/zsnes - -# 20180123 bkw: Finally, 64-bit support! Sort-of. Using a dirty hack. -# Also, move binary to /usr/games and man page to section 6. +# Written by B. Watson (urchlay@slackware.uk) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +# Note: this is a completely new-from-template znes.SlackBuild, +# written from scratch, for the "LTS" 2.x fork from xyproto. It shares +# no code with the old zsnes.SlackBuild for the 1.51 release. + +# TODO: build a static 32-bit binary for x86_64 users. Can't be done +# on Slackware (we don't have static X11, SDL, png16, nor GL libs), +# but maybe it could be done on some other distro (one that uses musl, +# maybe), then hosted as a DOWNLOAD_X86_64. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=zsnes -VERSION=${VERSION:-1.51b} -BUILD=${BUILD:-5} +VERSION=${VERSION:-2.0.12} +BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} -ZSNESSRC="$(echo $VERSION | tr -d .)src" -ZSNESDIR="_$(echo $VERSION | tr . _)" - if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; @@ -57,87 +31,89 @@ if [ -z "$ARCH" ]; then esac fi +# No SLKCFLAGS here. Upstream's got a set of flags they've tested with, +# and most of the code's in asm anyway. +case "$ARCH" in + i?86) ;; + x86_64) MULTI=yes ;; + *) BADARCH=yes ;; +esac + +# Hang on to this for use in error message, below. +OLDARCH="$ARCH" + +# Always uses MMX extensions so i686 is correct. +# PRINT_PACKAGE_NAME and the actual package name will always say i686. +ARCH="i686" + if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi +if [ "$MULTI" = "yes" ]; then + echo "=== Attempting multilib build on $OLDARCH..." + CTEST=$TMP/`mcookie`.c + echo 'main(){}' > $CTEST + if ! gcc -w -m32 -o /dev/null $CTEST 2>/dev/null; then + echo "*** You don't have multilib installed, bailing." + exit 1 + fi + echo "=== Multilib gcc is installed..." + rm -f $CTEST +fi + +if [ "$BADARCH" = "yes" ]; then + echo "*** Sorry, $PRGNAM can't be built on $OLDARCH." ; exit 1 +fi + 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" -else - printf "\n Error: $PRGNAM won't compile on $ARCH\n\n" - exit 1 -fi - set -e rm -rf $PKG -mkdir -p $TMP $PKG/usr $OUTPUT +mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM$ZSNESSRC.tar.bz2 -# Fix the directory tree in zsnes: -mv $PRGNAM$ZSNESDIR $PRGNAM-$VERSION -mv $PRGNAM-$VERSION/src/* $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz 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 {} \+ - -# GCC 4.7 fixes from Debian -cat $CWD/0012-Fix-build-with-gcc-4.7.patch | patch -p2 --verbose - -# Fix for libpng16 (thanks to Arch Linux) -# https://projects.archlinux.org/svntogit/community.git/plain/trunk/zsnes-1.51-libpng15.patch?h=packages/zsnes -patch -p1 < $CWD/zsnes-1.51-libpng15.patch - -CFLAGS="$SLKCFLAGS -fcommon -std=c++11" \ -force_arch="$ARCH" \ -./configure \ - --prefix=/usr \ - --enable-release \ - --disable-cpucheck \ - --disable-debugger - -CFLAGS="$SLKCFLAGS -fcommon -std=c++11" \ -force_arch="$ARCH" \ -make +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} + + +# Patch does these things: +# - Install binary to /usr/games +# - Fix install permissions for icon, .desktop, metainfo (no +x). +# - Install man page to /usr/man (not /usr/share/man) +# - Change the section in the man page to 6, install in man6. +# - Use the github URL in the man page, not zsnes.com. +# - Use full path to binary in .desktop file. +# I wanted to build a static binary, but Slackware doesn't ship a +# full set of static libs, plus glibc's getpwnam() and getpwuid() +# are used (which use dlopen() to load a shared lib at runtime). +patch -p1 < $CWD/sbo.diff + +# Build options. +# Disabling WITH_AO doesn't seem particularly useful, but allow it. +# Disabling WITH_DEBUGGER might make sense for slow systems. +A=no ; D=no +[ "${AO:-yes}" = "yes" ] && ARGS+="WITH_AO=yes " && A=yes +[ "${DEBUGGER:-yes}" = "yes" ] && ARGS+="WITH_DEBUGGER=yes " && D=yes +echo "::: running: make $ARGS" + +make $ARGS make install DESTDIR=$PKG -mv $PKG/usr/bin $PKG/usr/games # configure ignores --bindir, grr! -strip $PKG/usr/games/$PRGNAM - -# Man page belongs in section 6, since this is a game. -mkdir -p $PKG/usr/man/man6 -sed '/^\.TH/s,1$,6,' $PKG/usr/man/man1/$PRGNAM.1 | \ - gzip -9c > $PKG/usr/man/man6/$PRGNAM.6.gz -rm -rf $PKG/usr/man/man1 - -# Add a .desktop file and icon for good menu integration -mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps -install -m 0644 $CWD/zsnes.desktop $PKG/usr/share/applications/zsnes.desktop - -for px in 16 32 48 64; do - 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 +gzip -9 $PKG/usr/man/man*/* -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a docs/* $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC +cp -a COPYING* README* TODO* $PKGDOC +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc +sed -e "s,@A@,$A," -e "s,@D@,$D," < $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG diff --git a/games/zsnes/zsnes.desktop b/games/zsnes/zsnes.desktop deleted file mode 100644 index 5d956ff6c4e3..000000000000 --- a/games/zsnes/zsnes.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Name=ZSNES -Comment=SNES Emulator -Exec=zsnes -Icon=zsnes -Terminal=false -Type=Application -Categories=Game;Emulator; -StartupNotify=false -GenericName=ZSNES Emulator -X-KDE-StartupNotify=false -X-DCOP-ServiceType=Multi diff --git a/games/zsnes/zsnes.info b/games/zsnes/zsnes.info index e94ab52cc541..4677393f0267 100644 --- a/games/zsnes/zsnes.info +++ b/games/zsnes/zsnes.info @@ -1,9 +1,9 @@ PRGNAM="zsnes" -VERSION="1.51b" -HOMEPAGE="http://www.zsnes.com" -DOWNLOAD="http://zsnes.sf.net/zsnes151bsrc.tar.bz2" -MD5SUM="904ee432f378609176ed30c01cf6ea28" -DOWNLOAD_x86_64="UNSUPPORTED" +VERSION="2.0.12" +HOMEPAGE="https://github.com/xyproto/zsnes" +DOWNLOAD="https://github.com/xyproto/zsnes/archive/2.0.12/zsnes-2.0.12.tar.gz" +MD5SUM="6c28a252c887f1d697c1baa960a1db98" +DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" MAINTAINER="B. Watson" diff --git a/games/zsnes/zsnes.png b/games/zsnes/zsnes.png Binary files differdeleted file mode 100644 index 24c47f4a9335..000000000000 --- a/games/zsnes/zsnes.png +++ /dev/null |