diff options
Diffstat (limited to 'games/zsnes')
-rw-r--r-- | games/zsnes/0012-Fix-build-with-gcc-4.7.patch | 24 | ||||
-rw-r--r-- | games/zsnes/README | 28 | ||||
-rw-r--r-- | games/zsnes/doinst.sh | 7 | ||||
-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 | 192 | ||||
-rw-r--r-- | games/zsnes/zsnes.desktop | 12 | ||||
-rw-r--r-- | games/zsnes/zsnes.info | 16 | ||||
-rw-r--r-- | games/zsnes/zsnes.png | bin | 8010 -> 0 bytes |
10 files changed, 186 insertions, 182 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 2c29f5be43..0000000000 --- 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 303d2ae76e..ad29c79ef8 100644 --- a/games/zsnes/README +++ b/games/zsnes/README @@ -3,11 +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: Since zsnes can't be compiled for 64-bit, a -"statified" 32-bit static binary is used. This allows running zsnes on -a pure 64-bit system, but *without* OpenGL support (meaning the maximum -window size is 640x480). If you use multilib, you can get OpenGL support -by building a 32-bit native zsnes package instead. + +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 392c12adb9..65c7e2eeb9 100644 --- a/games/zsnes/doinst.sh +++ b/games/zsnes/doinst.sh @@ -1,4 +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 -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 0000000000..97a8fbbe3a --- /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 0c4a74c255..d74e01afa7 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 b32c309675..0000000000 --- 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 1f4fc9f8e5..40508e9927 100644 --- a/games/zsnes/zsnes.SlackBuild +++ b/games/zsnes/zsnes.SlackBuild @@ -2,41 +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 <yalhcru@gmail.com> -# 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. - -# 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:-4} +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 ;; @@ -45,109 +31,89 @@ 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. +# 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" -elif [ "$ARCH" = "x86_64" ]; then - echo "=== $ARCH detected, using statified binary" -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 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 {} \; - -if [ "$ARCH" = "x86_64" ]; then - # Can't compile, so use a statified binary. This was prepared - # by compiling zsnes with the same configure flags as below, - # plus --disable-opengl, then converting with: - # $ statifier \ - # --set=LD_PRELOAD=/usr/lib/libudev.so:/usr/lib/libaoss.so:/usr/lib/libasound.so \ - # zsnes zsnes.static - # Unfortunately this won't work with OpenGL because the shared libs - # are driver-specific: I could preload the nvidia driver, but the - # result would only work on systems that use nvidia (not AMD or intel, - # or even nouveau). - mkdir -p $PKG/usr/games $PKG/usr/doc/$PRGNAM-$VERSION $PKG/usr/man/man1 - xz -d < $CWD/$PRGNAM.static.xz > $PKG/usr/games/$PRGNAM - chmod 755 $PKG/usr/games/$PRGNAM - - # Docs and man page still come from the source. - cp -a docs/* $PKG/usr/doc/$PRGNAM-$VERSION - cp -a linux/$PRGNAM.1 $PKG/usr/man/man1 -else - # 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" \ - CXXFLAGS="$SLKCFLAGS" \ - force_arch="$ARCH" \ - ./configure \ - --prefix=/usr \ - --enable-release \ - --disable-cpucheck \ - --disable-debugger - - CFLAGS="$SLKCFLAGS" \ - CXXFLAGS="$SLKCFLAGS" \ - force_arch="$ARCH" \ - make - make install DESTDIR=$PKG - mv $PKG/usr/bin $PKG/usr/games # configure ignores --bindir, grr! - strip $PKG/usr/games/$PRGNAM -fi - -# 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 -install -m 0644 $CWD/zsnes.png $PKG/usr/share/pixmaps/zsnes.png - -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 +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 +gzip -9 $PKG/usr/man/man*/* + +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 5d956ff6c4..0000000000 --- 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 6d36e1575e..facf966b21 100644 --- a/games/zsnes/zsnes.info +++ b/games/zsnes/zsnes.info @@ -1,12 +1,10 @@ PRGNAM="zsnes" -VERSION="1.51b" -HOMEPAGE="http://www.zsnes.com" -DOWNLOAD="http://zsnes.sf.net/zsnes151bsrc.tar.bz2" -MD5SUM="904ee432f378609176ed30c01cf6ea28" -DOWNLOAD_x86_64="http://zsnes.sf.net/zsnes151bsrc.tar.bz2 \ - https://slackware.uk/~urchlay/src/zsnes.static.xz" -MD5SUM_x86_64="904ee432f378609176ed30c01cf6ea28 \ - c2289a3cbe04b62fda1f4b896c04b275" +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="UNSUPPORTED" +MD5SUM_x86_64="" REQUIRES="" MAINTAINER="B. Watson" -EMAIL="yalhcru@gmail.com" +EMAIL="urchlay@slackware.uk" diff --git a/games/zsnes/zsnes.png b/games/zsnes/zsnes.png Binary files differdeleted file mode 100644 index 24c47f4a93..0000000000 --- a/games/zsnes/zsnes.png +++ /dev/null |