games-emulation/snes9x: Bump to version 1.54.1
authorLars Wendler <polynomial-c@gentoo.org>
Fri, 11 Nov 2016 17:17:32 +0000 (18:17 +0100)
committerLars Wendler <polynomial-c@gentoo.org>
Fri, 11 Nov 2016 17:17:45 +0000 (18:17 +0100)
Package-Manager: portage-2.3.2

games-emulation/snes9x/Manifest
games-emulation/snes9x/files/snes9x-1.54.1-build.patch [new file with mode: 0644]
games-emulation/snes9x/files/snes9x-1.54.1-system-zlib.patch [new file with mode: 0644]
games-emulation/snes9x/snes9x-1.54.1.ebuild [new file with mode: 0644]

index 69194e2f57851628e30962a5f6d0cada35ea814a..8a7b5b80dcf0b820630b09a6bc70540d3abdba64 100644 (file)
@@ -1 +1,2 @@
 DIST snes9x-1.53-src.tar.bz2 1838746 SHA256 9f7c5d2d0fa3fe753611cf94e8879b73b8bb3c0eab97cdbcb6ab7376efa78dc3 SHA512 3ded506d1b3b6cff4e8e3de77ad557d97981eb97ea23ffc68ce5abbbd4677aca819776f1d11b9aa47f5b1a785b19455acf6ad4dbc536d3581d62c192ebdfbd8c WHIRLPOOL 482f0b2c476753b5ffb6ff30b1e5ccb9f50bd0dbe05c7147d5e1c073cd15ce7edd99dc4ea9c14bb50d0bd3cec7edda26e1c54b1b7e0c77b0eb26f9aa09e25f52
+DIST snes9x-1.54.1.tar.gz 2186737 SHA256 85862a22498bc418c37bd7c81a3089d9cc00af279b91e5f7fa8bea05e2e3027b SHA512 2a8fddc0b9044c0b7e10711b35c06555e280c93ddde3c101c4084f859079947acb209f2632ca08937fa2ca47932094040c4a7a60b6188354fd92f72dbdf854ed WHIRLPOOL 8ef309a14646c0250e81f6d2ede48da65144830247cb7cf17eccc6b94dffdd128f1b75d27258ae0d923b580c612984cef27c5237066c98a613b0a00faa3ad90b
diff --git a/games-emulation/snes9x/files/snes9x-1.54.1-build.patch b/games-emulation/snes9x/files/snes9x-1.54.1-build.patch
new file mode 100644 (file)
index 0000000..945b5f1
--- /dev/null
@@ -0,0 +1,55 @@
+--- snes9x-1.54.1/gtk/configure.ac
++++ snes9x-1.54.1/gtk/configure.ac
+@@ -33,7 +33,7 @@
+ 
+ AM_GLIB_GNU_GETTEXT
+ 
+-snes9xlocaledir='${prefix}/${DATADIRNAME}/locale'
++snes9xlocaledir='/usr/share/locale'
+ AC_SUBST(snes9xlocaledir)
+ 
+ AC_ARG_WITH(debug,
+--- snes9x-1.54.1/unix/configure.ac
++++ snes9x-1.54.1/unix/configure.ac
+@@ -56,20 +56,6 @@
+ # *** Execution begins here ***
+ # *****************************
+ 
+-# Remove -g and -O2 flags manually.
+-
+-if test "x$CFLAGS" != "x"; then
+-      CFLAGS="`echo \"$CFLAGS\" | sed -e 's/-g//'`"
+-      CFLAGS="`echo \"$CFLAGS\" | sed -e 's/-O2//'`"
+-fi
+-
+-if test "x$CXXFLAGS" != "x"; then
+-      CXXFLAGS="`echo \"$CXXFLAGS\" | sed -e 's/-g//'`"
+-      CXXFLAGS="`echo \"$CXXFLAGS\" | sed -e 's/-O2//'`"
+-fi
+-
+-# Test what compiler flags we should use.
+-
+ AC_ARG_ENABLE([debug],
+       [AS_HELP_STRING([--enable-debug],
+               [leave debug information in the final binary (default: no)])],
+@@ -79,9 +65,6 @@
+       AC_S9X_COMPILER_FLAG([-g],  [g])
+       AC_S9X_COMPILER_FLAG([-O0], [o0])
+ else
+-      AC_S9X_COMPILER_FLAG([-O3], [o3], [
+-              AC_S9X_COMPILER_FLAG([-O2], [o2], [
+-                      AC_S9X_COMPILER_FLAG([-O1], [o1])])])
+       AC_S9X_COMPILER_FLAG([-fomit-frame-pointer], [omit_frame_pointer])
+ fi
+ 
+--- snes9x-1.54.1/unix/Makefile.in
++++ snes9x-1.54.1/unix/Makefile.in
+@@ -47,7 +47,7 @@
+       exit 1
+ 
+ snes9x: $(OBJECTS)
+-      $(CCC) $(INCLUDES) -o $@ $(OBJECTS) -lm @S9XLIBS@
++      $(CCC) $(LDFLAGS) $(INCLUDES) -o $@ $(OBJECTS) -lm @S9XLIBS@
+ 
+ ../jma/s9x-jma.o: ../jma/s9x-jma.cpp
+       $(CCC) $(INCLUDES) -c $(CCFLAGS) -fexceptions $*.cpp -o $@
diff --git a/games-emulation/snes9x/files/snes9x-1.54.1-system-zlib.patch b/games-emulation/snes9x/files/snes9x-1.54.1-system-zlib.patch
new file mode 100644 (file)
index 0000000..e5d3c79
--- /dev/null
@@ -0,0 +1,307 @@
+From 22efabdfc5e3578276943a36ef351bf22a7bd061 Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Fri, 11 Nov 2016 17:52:07 +0100
+Subject: [PATCH] Introduce --with-system-zip configure flag to use system zip
+ (minizip)
+
+if available.
+---
+ conffile.h        |  6 +++++-
+ gtk/Makefile.am   |  6 +++++-
+ gtk/configure.ac  | 28 +++++++++++++++++++++++++++-
+ loadzip.cpp       |  4 ++++
+ memmap.cpp        |  6 +++++-
+ stream.cpp        |  6 +++++-
+ stream.h          |  7 +++++--
+ unix/Makefile.in  |  9 +++++++--
+ unix/configure.ac | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 9 files changed, 102 insertions(+), 17 deletions(-)
+
+diff --git a/conffile.h b/conffile.h
+index ed8a13b..366706f 100644
+--- a/conffile.h
++++ b/conffile.h
+@@ -197,7 +197,11 @@
+ #include <string>
+ 
+ #ifdef UNZIP_SUPPORT
+-#include "unzip/unzip.h"
++#  ifdef SYSTEM_ZIP
++#    include <minizip/unzip.h>
++#  else
++#    include "unzip/unzip.h"
++#  endif
+ #endif
+ #include "snes9x.h"
+ 
+diff --git a/gtk/Makefile.am b/gtk/Makefile.am
+index fad1cf2..57f00fb 100644
+--- a/gtk/Makefile.am
++++ b/gtk/Makefile.am
+@@ -196,12 +196,16 @@ snes9x_gtk_SOURCES += \
+     ../server.cpp
+ endif
+ 
++
+ # Zip support is nonconfigurable.
+ snes9x_gtk_SOURCES += \
+-    ../loadzip.cpp \
++    ../loadzip.cpp
++if ! SYSTEM_ZIP
++snes9x_gtk_SOURCES += \
+     ../unzip/unzip.c \
+     ../unzip/ioapi.c \
+     ../unzip/zip.c
++endif
+ UNZIPDEFINES=-DUNZIP_SUPPORT
+ 
+ if JMA
+diff --git a/gtk/configure.ac b/gtk/configure.ac
+index 4d21792..e64fac2 100644
+--- a/gtk/configure.ac
++++ b/gtk/configure.ac
+@@ -138,6 +138,12 @@ AC_ARG_WITH(zlib,
+   [],
+   [with_zlib=yes])
+ 
++AC_ARG_WITH(system-zip,
++  [AS_HELP_STRING([--with(out)-system-zip],
++    [Use system zip])],
++  [],
++  [system_zip=check])
++
+ AC_ARG_WITH(screenshot,
+   [AS_HELP_STRING([--with(out)-screenshot],
+     [Screenshot support through libpng if available (default: with)])],
+@@ -313,6 +319,25 @@ if test yes = "$with_screenshot"; then
+     ])
+ fi
+ 
++SYSTEM_ZIP=0
++SYSTEM_ZIP_CFLAGS=""
++SYSTEM_ZIP_LIBS=""
++ZIP_CFLAGS="-I../unzip"
++if test no != "$with_system_zip" && test yes = "$with_zlib" ; then
++    PKG_CHECK_MODULES([SYSTEM_ZIP],[minizip],[
++      ZIP_CFLAGS=""
++      SYSTEM_ZIP=yes
++      CFLAGS="$CFLAGS $SYSTEM_ZIP_CFLAGS -DSYSTEM_ZIP"
++      LIBS="$LIBS $SYSTEM_ZIP_LIBS"
++    ],[
++      if test check = "$with_system_zip"; then
++          AC_MSG_WARN(Cannot find SYSTEM_ZIP)
++      else
++          AC_MSG_ERROR(--with-system-zip given but cannot find proper zip)
++      fi
++    ])
++fi
++
+ if test yes = "$with_hq2x" ; then
+     HQ2X=yes
+     CFLAGS="$CFLAGS -DUSE_HQ2X"
+@@ -440,7 +465,7 @@ if test $ac_cv_my_sar_int8 = yes && \
+   CFLAGS="$CFLAGS -DRIGHTSHIFT_IS_SAR"
+ fi
+ 
+-CFLAGS="$CFLAGS -DUNZIP_SUPPORT -DSPC700_C -I. -I.. -I../unzip"
++CFLAGS="$CFLAGS -DUNZIP_SUPPORT -DSPC700_C -I. -I.. $ZIP_CFLAGS"
+ 
+ CXXFLAGS="$CFLAGS"
+ 
+@@ -462,6 +487,7 @@ AM_CONDITIONAL(ALSA, [test yes = "$ALSA"])
+ AM_CONDITIONAL(PULSEAUDIO, [test yes = "$PULSEAUDIO"])
+ AM_CONDITIONAL(HQ2X, [test yes = "$HQ2X"])
+ AM_CONDITIONAL(XBRZ, [test yes = "$XBRZ"])
++AM_CONDITIONAL(SYSTEM_ZIP, [test yes = "$SYSTEM_ZIP"])
+ 
+ AC_SUBST(NASM)
+ AC_SUBST(NASM_FLAGS)
+diff --git a/loadzip.cpp b/loadzip.cpp
+index 024bc79..dab2504 100644
+--- a/loadzip.cpp
++++ b/loadzip.cpp
+@@ -192,7 +192,11 @@
+ 
+ #include <assert.h>
+ #include <ctype.h>
++#ifdef SYSTEM_ZIP
++#include <minizip/unzip.h>
++#else
+ #include "unzip/unzip.h"
++#endif
+ #include "snes9x.h"
+ #include "memmap.h"
+ 
+diff --git a/memmap.cpp b/memmap.cpp
+index 19df95c..98de319 100644
+--- a/memmap.cpp
++++ b/memmap.cpp
+@@ -193,7 +193,11 @@
+ #include <assert.h>
+ 
+ #ifdef UNZIP_SUPPORT
+-#include "unzip/unzip.h"
++#  ifdef SYSTEM_ZIP
++#    include <minizip/unzip.h>
++#  else
++#    include "unzip/unzip.h"
++#  endif
+ #endif
+ 
+ #ifdef JMA_SUPPORT
+diff --git a/stream.cpp b/stream.cpp
+index 37051c3..bb64113 100644
+--- a/stream.cpp
++++ b/stream.cpp
+@@ -192,7 +192,11 @@
+ 
+ #include <string>
+ #ifdef UNZIP_SUPPORT
+-#include "unzip.h"
++#  ifdef SYSTEM_ZIP
++#    include <minizip/unzip.h>
++#  else
++#    include "unzip.h"
++#  endif
+ #endif
+ #include "snes9x.h"
+ #include "stream.h"
+diff --git a/stream.h b/stream.h
+index b03dea9..ea22df0 100644
+--- a/stream.h
++++ b/stream.h
+@@ -229,8 +229,11 @@ class fStream : public Stream
+ };
+ 
+ #ifdef UNZIP_SUPPORT
+-
+-#include "unzip.h"
++#  ifdef SYSTEM_ZIP
++#    include <minizip/unzip.h>
++#  else
++#    include "unzip.h"
++#  endif
+ 
+ #define unz_BUFFSIZ   1024
+ 
+diff --git a/unix/Makefile.in b/unix/Makefile.in
+index 5849568..aecad31 100644
+--- a/unix/Makefile.in
++++ b/unix/Makefile.in
+@@ -2,6 +2,7 @@
+ @S9XNETPLAY@
+ @S9XZIP@
+ @S9XJMA@
++@S9X_SYSTEM_ZIP@
+ 
+ # Fairly good and special-char-safe descriptor of the os being built on.
+ OS         = `uname -s -r -m|sed \"s/ /-/g\"|tr \"[A-Z]\" \"[a-z]\"|tr \"/()\" \"___\"`
+@@ -19,7 +20,11 @@ OBJECTS   += ../netplay.o ../server.o
+ endif
+ 
+ ifdef S9XZIP
+-OBJECTS   += ../loadzip.o ../unzip/ioapi.o ../unzip/unzip.o
++OBJECTS   += ../loadzip.o
++ifndef SYSTEM_ZIP
++OBJECTS   += ../unzip/ioapi.o ../unzip/unzip.o
++INCLUDES   = -I../unzip/
++endif
+ endif
+ 
+ ifdef S9XJMA
+@@ -29,7 +34,7 @@ endif
+ CCC        = @CXX@
+ CC         = @CC@
+ GASM       = @CXX@
+-INCLUDES   = -I. -I.. -I../apu/ -I../apu/bapu -I../unzip/ -I../jma/ -I../filter/
++INCLUDES   += -I. -I.. -I../apu/ -I../apu/bapu -I../jma/ -I../filter/
+ 
+ CCFLAGS    = @S9XFLGS@ @S9XDEFS@ $(DEFS)
+ CFLAGS     = $(CCFLAGS)
+diff --git a/unix/configure.ac b/unix/configure.ac
+index 3c851dc..dc0e7ba 100644
+--- a/unix/configure.ac
++++ b/unix/configure.ac
+@@ -201,16 +201,43 @@ AC_ARG_ENABLE([zip],
+               [enable ZIP support through zlib (default: yes)])],
+       [], [enable_zip="yes"])
+ 
++S9X_SYSTEM_ZIP="#SYSTEM_ZIP=1"
++
++AC_ARG_WITH([system-zip],
++      [AS_HELP_STRING([--with-system-zip],
++              [Use system zip (default: check)])],
++      [], [with_system_zip="check"])
++
+ if test "x$enable_zip" = "xyes"; then
+-      if test "x$snes9x_cv_zlib" = "xyes"; then
+-              S9XZIP="S9XZIP=1"
+-              S9XDEFS="$S9XDEFS -DUNZIP_SUPPORT"
+-              if test "x$enable_gzip" = "xno"; then 
+-                      S9XLIBS="$S9XLIBS -lz"
+-              fi
++      if test "x$with_system_zip" != "xno"; then
++              PKG_CHECK_MODULES(
++                      SYSTEM_ZIP,
++                      minizip,
++                      S9XZIP="S9XZIP=1"
++                      S9XDEFS="$S9XDEFS -DUNZIP_SUPPORT"
++                      S9X_SYSTEM_ZIP="SYSTEM_ZIP=1"
++                      S9XLIBS="$S9XLIBS $SYSTEM_ZIP_LIBS"
++                      if test "x$enable_gzip" = "xno"; then
++                              S9XLIBS="$S9XLIBS -lz"
++                      fi
++                      S9XDEFS="$S9XDEFS -DSYSTEM_ZIP",
++                      if test "x${with_system_zip}" != "xcheck"; then
++                              AC_MSG_ERROR([--with-system-zlib requested but no proper zlib found.])
++                      else
++                              AC_MSG_WARN([zlib not found. Build without SYSTEM_ZIP support.])
++                      fi
++              )
+       else
+-              AC_MSG_WARN([zlib not found. Build without ZIP support.])
+-              enable_zip="no"
++              if test "x$snes9x_cv_zlib" = "xyes"; then
++                      S9XZIP="S9XZIP=1"
++                      S9XDEFS="$S9XDEFS -DUNZIP_SUPPORT"
++                      if test "x$enable_gzip" = "xno"; then
++                              S9XLIBS="$S9XLIBS -lz"
++                      fi
++              else
++                      AC_MSG_WARN([zlib not found. Build without ZIP support.])
++                      enable_zip="no"
++              fi
+       fi
+ fi
+ 
+@@ -427,9 +454,11 @@ S9XLIBS="$LIBS $S9XLIBS"
+ S9XFLGS="`echo \"$S9XFLGS\" | sed -e 's/  */ /g'`"
+ S9XDEFS="`echo \"$S9XDEFS\" | sed -e 's/  */ /g'`"
+ S9XLIBS="`echo \"$S9XLIBS\" | sed -e 's/  */ /g'`"
++S9X_SYSTEM_ZIP="`echo \"$S9X_SYSTEM_ZIP\" | sed -e 's/  */ /g'`"
+ S9XFLGS="`echo \"$S9XFLGS\" | sed -e 's/^  *//'`"
+ S9XDEFS="`echo \"$S9XDEFS\" | sed -e 's/^  *//'`"
+ S9XLIBS="`echo \"$S9XLIBS\" | sed -e 's/^  *//'`"
++S9X_SYSTEM_ZIP="`echo \"$S9X_SYSTEM_ZIP\" | sed -e 's/^  *//'`"
+ 
+ AC_SUBST(S9XFLGS)
+ AC_SUBST(S9XDEFS)
+@@ -439,6 +468,7 @@ AC_SUBST(S9XDEBUGGER)
+ AC_SUBST(S9XNETPLAY)
+ AC_SUBST(S9XZIP)
+ AC_SUBST(S9XJMA)
++AC_SUBST(S9X_SYSTEM_ZIP)
+ 
+ rm config.info 2>/dev/null
+ 
+@@ -459,6 +489,7 @@ netplay support...... $enable_netplay
+ gamepad support...... $enable_gamepad
+ GZIP support......... $enable_gzip
+ ZIP support.......... $enable_zip
++SYSTEM_ZIP........... $with_system_zip
+ JMA support.......... $enable_jma
+ debugger............. $enable_debugger
+ 
+-- 
+2.10.2
+
diff --git a/games-emulation/snes9x/snes9x-1.54.1.ebuild b/games-emulation/snes9x/snes9x-1.54.1.ebuild
new file mode 100644 (file)
index 0000000..c52bc33
--- /dev/null
@@ -0,0 +1,124 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit autotools eutils flag-o-matic multilib gnome2-utils
+
+DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator"
+HOMEPAGE="https://github.com/snes9xgit/snes9x"
+SRC_URI="https://github.com/snes9xgit/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Snes9x GPL-2 GPL-2+ LGPL-2.1 LGPL-2.1+ ISC MIT ZLIB Info-ZIP"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
+IUSE="alsa debug gtk joystick multilib netplay nls opengl oss png pulseaudio portaudio +xv +xrandr"
+RESTRICT="bindist"
+
+RDEPEND="
+       sys-libs/zlib[minizip]
+       x11-libs/libX11
+       x11-libs/libXext
+       png? ( >=media-libs/libpng-1.2.43:0 )
+       gtk? ( >=x11-libs/gtk+-2.10:2
+               x11-misc/xdg-utils
+               portaudio? ( >=media-libs/portaudio-19_pre )
+               joystick? ( >=media-libs/libsdl-1.2.12[joystick] )
+               opengl? ( virtual/opengl )
+               xv? ( x11-libs/libXv )
+               xrandr? ( x11-libs/libXrandr )
+               alsa? ( media-libs/alsa-lib )
+               pulseaudio? ( media-sound/pulseaudio ) )
+"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+       x11-proto/xproto
+       gtk? ( virtual/pkgconfig
+               xv? ( x11-proto/videoproto ) )
+       nls? ( dev-util/intltool )"
+
+S="${WORKDIR}/${P}/unix"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.54.1-build.patch
+       "${FILESDIR}"/${PN}-1.53-cross-compile.patch
+       "${FILESDIR}"/${PN}-1.54.1-system-zlib.patch
+)
+
+src_prepare() {
+       cd "${WORKDIR}"/${P} || die
+       rm -r unzip || die
+       default
+       cd unix
+       eautoreconf
+       if use gtk; then
+               cd ../gtk || die
+               eautoreconf
+       fi
+}
+
+src_configure() {
+       append-ldflags -Wl,-z,noexecstack
+
+       # build breaks when zlib/zip support is disabled
+       econf \
+               --enable-gzip \
+               --enable-zip \
+               --with-system-zip \
+               $(use_enable joystick gamepad) \
+               $(use_enable debug debugger) \
+               $(use_enable netplay) \
+               $(use_enable png screenshot)
+
+       if use gtk; then
+               cd ../gtk || die
+               econf \
+                       --datadir=/usr/share \
+                       --with-zlib \
+                       --with-system-zip \
+                       $(use_enable nls) \
+                       $(use_with opengl) \
+                       $(use_with joystick) \
+                       $(use_with xv) \
+                       $(use_with xrandr) \
+                       $(use_with netplay) \
+                       $(use_with alsa) \
+                       $(use_with oss) \
+                       $(use_with pulseaudio) \
+                       $(use_with portaudio) \
+                       $(use_with png screenshot)
+       fi
+}
+
+src_compile() {
+       emake
+       if use gtk; then
+               emake -C ../gtk
+       fi
+}
+
+src_install() {
+       dobin ${PN}
+
+       dodoc ../docs/{snes9x.conf.default,{changes,control-inputs,controls,snapshots}.txt}
+
+       if use gtk; then
+               emake -C ../gtk DESTDIR="${D}" install
+               dodoc ../gtk/{AUTHORS,doc/README}
+       fi
+
+       docinto html
+       dodoc {.,..}/docs/*.html
+}
+
+pkg_preinst() {
+       use gtk && gnome2_icon_savelist
+}
+
+pkg_postinst() {
+       use gtk && gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+       use gtk && gnome2_icon_cache_update
+}