diff options
4 files changed, 159 insertions, 0 deletions
diff --git a/games-emulation/mednafen/Manifest b/games-emulation/mednafen/Manifest index f5e17d722e57..a8d7bacbbbf3 100644 --- a/games-emulation/mednafen/Manifest +++ b/games-emulation/mednafen/Manifest @@ -1,2 +1,3 @@ DIST mednafen-0.9.38.7.tar.bz2 3882418 SHA256 1bb3beef883a325c35d1a1ce14959c307a4c321f2ea29d4ddb216c6dd03aded8 SHA512 759c83928ef7a9e856dc7f546542ab1e7cbe944d0184a7693ce3b1466220233eb40c2b215100920920754eb5a93587bd8e2d8150e00ec9c93da1d518107e0d76 WHIRLPOOL 0cb94abdaa697558f3575c8e4d6e0a816888ace2b860797a8a947ddca3ae66e517dd044f9ce266e7a19ac6e16a56f91bc93db2bbc7a9817e5afcc75a93cb2f42 DIST mednafen-0.9.39.2.tar.bz2 4005259 SHA256 b42470b2ddf68ce0747f5b8ba4e1d1c3047fa8c45b8e168da43f3e2461ec34cc SHA512 e6d0f571ea82c9315336a02c8b91fc4b19d160a8ded3b0499b8a59d27c6f312a2dbe554e1e10e8ebd8616f862b59fe1d1d577e41942b31ab9b587b47c63b30dc WHIRLPOOL 4aa11afffd1b14890e1d85cbb38397e2c613c8087e441a015b9d362ccbb59476077d65245efdf3ebc8e3b16b79b953ab9acb71c77476f3e362746e95a2877a4e +DIST mednafen-0.9.41.tar.xz 3148348 SHA256 74736b9b52a7ba6270b67ae8e6c876a887e0e26a00a7d96bdd49af17992aac47 SHA512 d3c7707874eabbec41e5b725813d16e599f3ad89ecbd9c8e1264184d74ab2bf7a21a3f6fe177b6bc429f7bd56f9eea17a9a6fefce8e70b82e87a93d75f5d39c9 WHIRLPOOL f754a45f46a5cd18117b1b710dd7fed5ebcfb311bf4ed4b7961c99636c13559db75f83cf7b34122fb403b7794ddeec6af79469bb7743cb60a7840ffe807fa2d7 diff --git a/games-emulation/mednafen/files/mednafen-0.9.41-remove-cflags.patch b/games-emulation/mednafen/files/mednafen-0.9.41-remove-cflags.patch new file mode 100644 index 000000000000..a0a52997a27b --- /dev/null +++ b/games-emulation/mednafen/files/mednafen-0.9.41-remove-cflags.patch @@ -0,0 +1,57 @@ +Remove flags that subvert user choice in Gentoo + +--- a/configure.ac ++++ b/configure.ac +@@ -88,21 +88,7 @@ + AC_CHECK_LIB([z], [zlibVersion], ZLIB_LIBS="-lz", AC_MSG_ERROR([*** zlib not found!])) + AC_SUBST([ZLIB_LIBS]) + +-dnl -fno-fast-math and -fno-unsafe-math-optimizations to make sure it's disabled, as the fast-math feature on certain older +-dnl versions of gcc produces horribly broken code(and even when it's working correctly, it can have somewhat unpredictable effects). +-dnl +-dnl -fno-aggressive-loop-optimizations because I don't trust gcc's aggressive loop optimizations, and there miiight be old code +-dnl in Mednafen that would cause problems. +-dnl +-dnl -fomit-frame-pointer is required for some x86 inline assembly to compile. +-dnl + OPTIMIZER_FLAGS="" +-AX_CFLAGS_GCC_OPTION([-fno-fast-math], OPTIMIZER_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fno-unsafe-math-optimizations], OPTIMIZER_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fno-aggressive-loop-optimizations], OPTIMIZER_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fno-ipa-icf], OPTIMIZER_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fomit-frame-pointer], OPTIMIZER_FLAGS) +- + dnl + dnl Aggressively try to disable PIC and PIE, as it has a significant performance overhead and will + dnl break some code(with compile-time failures or run-time assert()s triggering). +@@ -110,12 +95,6 @@ + dnl Use -fwrapv instead of -fno-strict-overflow; -fno-strict-overflow is buggy on gcc and does not work as documented/implied. + dnl + CODEGEN_FLAGS="" +-AX_CFLAGS_GCC_OPTION([-fno-pic], CODEGEN_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fno-pie], CODEGEN_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fno-PIC], CODEGEN_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fno-PIE], CODEGEN_FLAGS) +-AX_CFLAGS_GCC_OPTION([-nopie], CODEGEN_FLAGS) +-AX_CFLAGS_GCC_OPTION([-no-pie], CODEGEN_FLAGS) + AX_CFLAGS_GCC_OPTION([-fwrapv], CODEGEN_FLAGS) + AX_CFLAGS_GCC_OPTION([-fjump-tables], CODEGEN_FLAGS) + +@@ -139,9 +118,6 @@ + # Used as needed in Makefile.am: + # + NO_STACK_PROTECTOR_FLAGS="" +-AX_CFLAGS_GCC_OPTION([-fno-stack-protector], NO_STACK_PROTECTOR_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fno-stack-protector-all], NO_STACK_PROTECTOR_FLAGS) +-AX_CFLAGS_GCC_OPTION([-fno-stack-protector-strong], NO_STACK_PROTECTOR_FLAGS) + AC_SUBST(NO_STACK_PROTECTOR_FLAGS) + + # ----------------------------------- +@@ -165,7 +141,6 @@ + # Begin ss flags + # + SS_EXTRA_FLAGS="" +-AX_CFLAGS_GCC_OPTION([-mtune=haswell], SS_EXTRA_FLAGS) + AC_SUBST(SS_EXTRA_FLAGS) + # + # End ss flags diff --git a/games-emulation/mednafen/files/mednafen-0.9.41-zlib.patch b/games-emulation/mednafen/files/mednafen-0.9.41-zlib.patch new file mode 100644 index 000000000000..7f78d385d8eb --- /dev/null +++ b/games-emulation/mednafen/files/mednafen-0.9.41-zlib.patch @@ -0,0 +1,30 @@ +Use system minizip instead of bundled one + +--- a/include/mednafen/compress/Makefile.am.inc ++++ b/include/mednafen/compress/Makefile.am.inc +@@ -1 +1 @@ +-mednafen_SOURCES += compress/minilzo.c compress/ioapi.c compress/unzip.c compress/GZFileStream.cpp compress/ZLInflateFilter.cpp ++mednafen_SOURCES += compress/minilzo.c compress/ioapi.c compress/GZFileStream.cpp compress/ZLInflateFilter.cpp +--- a/include/mednafen/file.cpp ++++ b/include/mednafen/file.cpp +@@ -29,7 +29,7 @@ + #include <errno.h> + #include <trio/trio.h> + +-#include "compress/unzip.h" ++#include <minizip/unzip.h> + + #include "file.h" + #include "general.h" +--- a/include/mednafen/Makefile.am ++++ b/include/mednafen/Makefile.am +@@ -6,7 +6,7 @@ + bin_PROGRAMS = mednafen + + mednafen_SOURCES = debug.cpp error.cpp mempatcher.cpp settings.cpp endian.cpp Time.cpp mednafen.cpp git.cpp file.cpp general.cpp memory.cpp netplay.cpp state.cpp state_rewind.cpp movie.cpp player.cpp PSFLoader.cpp SSFLoader.cpp SNSFLoader.cpp SPCReader.cpp tests.cpp qtrecord.cpp Stream.cpp MemoryStream.cpp FileStream.cpp IPSPatcher.cpp +-mednafen_LDADD = trio/libtrio.a ++mednafen_LDADD = trio/libtrio.a -lminizip + mednafen_DEPENDENCIES = trio/libtrio.a + + if HAVE_SDL + diff --git a/games-emulation/mednafen/mednafen-0.9.41.ebuild b/games-emulation/mednafen/mednafen-0.9.41.ebuild new file mode 100644 index 000000000000..f6bab688bcbf --- /dev/null +++ b/games-emulation/mednafen/mednafen-0.9.41.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit autotools flag-o-matic pax-utils + +DESCRIPTION="Argument-driven multi-system emulator utilizing OpenGL and SDL" +HOMEPAGE="https://mednafen.github.io/" +SRC_URI="https://mednafen.github.io/releases/files/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="alsa altivec cjk debugger jack nls pax_kernel" + +RDEPEND=" + dev-libs/libcdio + media-libs/libsdl[sound,joystick,opengl,video] + media-libs/libsndfile + sys-libs/zlib[minizip] + virtual/opengl + alsa? ( media-libs/alsa-lib ) + jack? ( media-sound/jack-audio-connection-kit ) + nls? ( virtual/libintl )" +DEPEND="${RDEPEND} + virtual/pkgconfig + nls? ( sys-devel/gettext )" + +S=${WORKDIR}/${PN} + +PATCHES=( + "${FILESDIR}"/${PN}-0.9.41-remove-cflags.patch + "${FILESDIR}"/${PN}-0.9.41-zlib.patch +) + +pkg_pretend() { + if has ccache ${FEATURES}; then + ewarn + ewarn "If you experience build failure, try turning off ccache in FEATURES." + ewarn + fi +} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # very sensitive code (bug #539992) + strip-flags + append-flags -fomit-frame-pointer -fwrapv + econf \ + $(use_enable alsa) \ + $(use_enable altivec) \ + $(use_enable cjk cjk-fonts) \ + $(use_enable debugger) \ + $(use_enable jack) \ + $(use_enable nls) +} + +src_install() { + default + dodoc Documentation/cheats.txt + + if use pax_kernel; then + pax-mark m "${ED%/}"/bin/mednafen || die + fi +} |