summaryrefslogtreecommitdiff
path: root/games-emulation/snes9x
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
commit4cbcc855382a06088e2f016f62cafdbcb7e40665 (patch)
tree356496503d52354aa6d9f2d36126302fed5f3a73 /games-emulation/snes9x
parentfcc5224904648a8e6eb528d7603154160a20022f (diff)
gentoo resync : 20.03.2022
Diffstat (limited to 'games-emulation/snes9x')
-rw-r--r--games-emulation/snes9x/Manifest10
-rw-r--r--games-emulation/snes9x/files/snes9x-1.60-gcc11.patch47
-rw-r--r--games-emulation/snes9x/files/snes9x-1.61-libretro-flags.patch25
-rw-r--r--games-emulation/snes9x/metadata.xml3
-rw-r--r--games-emulation/snes9x/snes9x-1.60.ebuild139
-rw-r--r--games-emulation/snes9x/snes9x-1.61.ebuild153
6 files changed, 186 insertions, 191 deletions
diff --git a/games-emulation/snes9x/Manifest b/games-emulation/snes9x/Manifest
index 3e089ab165e3..f6f754f0e5b2 100644
--- a/games-emulation/snes9x/Manifest
+++ b/games-emulation/snes9x/Manifest
@@ -1,6 +1,8 @@
AUX snes9x-1.53-cross-compile.patch 892 BLAKE2B 9fb806ad16d48d5f07f1ab84feb5f7eafa52a1157eb25675650f08c8fbab8a42318d3277efbdd45f03250df2e9187c76df43312f7ffb2f226423e757b5f6e91c SHA512 4867b9a3e3f2a65684157b26e4b0b63971d37ad5abb16125567e89bc4116482488416ca51d30f639ef63886b05431c56b75978fe073a4755c48988f5ea9eaee5
AUX snes9x-1.59-build-system.patch 1303 BLAKE2B 48a349bc5d56fcf154faab76cf76fcbb98808ce7933ff5e6da2cbf2b22d62819367e2ac1224f66735108de44419375d6f6eb2c2a4a104a4d492148866b6e829e SHA512 abbd0bfea5ad23f652e8249adbdf1118a4efa2ed43301b1786bbd91a253e98fb7ff99f68ff62c128972fe0af47aee9fa48fa9e3218b0a33c9e68f468fbe2b9e8
-AUX snes9x-1.60-gcc11.patch 1805 BLAKE2B 0639b425266be59ac472f92154ce488bf0b6f631f00c2025104f6dfb31f1c72d1202657d182e47a47198606ce92a55bf8769662c9a4e81add171be547b7ced08 SHA512 600291b2c32e4099207eb31e7b6b19d4ec043b43d88b9eb5efe935c971ae8bcb02e821a6653246417481db0d46c5a3e1a4af3ea8c17894549b293e588f6fab79
-DIST snes9x-1.60.tar.gz 2863228 BLAKE2B 0ac3bdd2403221f1013e2b5438aacc4e7d361e943ac7edc56f8ef22827d81484e0b162b84f739ce0f68fe58021124275fd908ccdde99e1e1d6d6c9c0a6e3d17b SHA512 840b006a8fbd479fd5ceb2d94af4ef6470c5e27a3e6c8ddb0dffc8d3e51f465669144cd428bfce28b2ed4f68e70d8f252f2d8a2cae602ba797791d7e483c14c9
-EBUILD snes9x-1.60.ebuild 3029 BLAKE2B 2e8b7ab81a10a48aad64a09cbaae2ab2e7c8706af990ae18425be76ff6de2a58800563990f2de320cd959fcc1bcdb893595b47839a8d218244c8a7b7e6471e40 SHA512 bdc32f1d423acfce19d9672f057a228e763c8276333de0db4184eb53780edaa4af721a824d1c65dff04c7c14008ec1592139513694db6b68582e8b064bb72d12
-MISC metadata.xml 541 BLAKE2B 947726495e8cc2ced852a3f5b749abfb1bca7744ed82f42997ca97670ce58ebf4a6c49b4d382686fd948789c67c2ec381bfb1b164bddfa547b16389cb938e5b1 SHA512 a8e52524b33aff38cc2ebd41040cde80bcca815305d234b3708297899286657ac8786248af3a6c5df0b4c894af31aa29bf3d0cdb427e889c5d7f145d643331d4
+AUX snes9x-1.61-libretro-flags.patch 693 BLAKE2B 4f027c9278f866476ba0d2f0884fe105da31e40e7362dfece81d0cddaf74e411f8e6b1a59e4fbb41389a2829695e39ce29c5de29ae055f744feb9320fc9ef255 SHA512 b0851e9da76e9a05f1893014564e8833c72cf7025c4c9f9f44665374f1f69e44fd5400125459bca1656c7920e033b11e33e0a1a3fb0af8a25c1bd0b3db6870da
+DIST snes9x-1.61-glslang.tar.gz 3188787 BLAKE2B 36ed327fbb2aec3657fe300b98f2e45cfe039596a64bca3076ecb079f7c33aa14ac09a96e5a174ad51faf0c4d585d82aaadec3d8209cf8d3ca55d70e316b1642 SHA512 de2ebc0cd89d22582c079006ac45a812e3aaaad9a44c77c68530aa1468fbc840c6ae25a4356d4e9fc697524cd721d26506d85bc35eac98452eabce0bc098b5a4
+DIST snes9x-1.61-spirv.tar.gz 676662 BLAKE2B ab18406c99e4e04c6c497b5f447dcaccb7d5a60f42bf1cea31afee04ee664e74916b32736c1aea1e7106494154e48e5cbe9b5d6a0652667c4d0e2020814cd9bd SHA512 bfa3cc944450db59a57a685eea12b0ed0b5059d55a092ac5cdf6f4dc03c1e2d2e62fa5a576156c772340e12136b10d7ed790bb35b4aece2ee8405e64f826e31b
+DIST snes9x-1.61.tar.gz 3016890 BLAKE2B 3e94dee5172bf48d2461a3a1403fc7e7fc8069df6dddf5b5e1da59ee140297bd0b7cee6948b5eb154c1eec38aebe3ab29a9fae3dfb4abdce41769d2ace43dee1 SHA512 8b644f5b7136e89fd222bcb430fc736c74a3e383d7e6c7f0880235f6fa4c0f77abbf02493f8d654a12e87701111643e33877bc21bb3dfcc9b82a056fa1b1d880
+EBUILD snes9x-1.61.ebuild 3519 BLAKE2B aed7717315000d6ca7fbb25336b859b54a45a9af51ce7a5948dd28251ee98f6ea540d3390b75e2bed6e180fa80334e3fef757f37d61054252fc1cacabfb48bbb SHA512 eba8d739a0a7c2ad84714a0b5bc6f596fe676789d4d1447ceaf8121316a6b96b09a46f748f8b0a051c454479cce524f751615bf1776bcd4daf28168abb86a07f
+MISC metadata.xml 608 BLAKE2B 9e770ccbcf8a5c12fccf33febd962f5f64f3378d9eabacaea208c28bed78fd909004a822e221bb6155bef1e2fd8908544075e57d3f48232fff2fb7c2c93cb7e4 SHA512 21718e0e03cad23eabd7e360ba347e77fef1e4af97945e3436b6d494cf5c1f8c7336d5987eda79c4b8359057ebe3d56fc41c0de66d227183470a19c34e393ff9
diff --git a/games-emulation/snes9x/files/snes9x-1.60-gcc11.patch b/games-emulation/snes9x/files/snes9x-1.60-gcc11.patch
deleted file mode 100644
index 453771f5139c..000000000000
--- a/games-emulation/snes9x/files/snes9x-1.60-gcc11.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 7f6d9d6432d912cd90763c64f7c92270b3e6c182 Mon Sep 17 00:00:00 2001
-From: gocha <gochaism@gmail.com>
-Date: Sun, 19 Jan 2020 12:48:06 +0900
-Subject: [PATCH] win32: fix compilation error in vs2019
-
----
- conffile.cpp | 2 +-
- conffile.h | 6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/conffile.cpp b/conffile.cpp
-index 817afae7f..fa7de3fa2 100644
---- a/conffile.cpp
-+++ b/conffile.cpp
-@@ -452,7 +452,7 @@ void ConfigFile::ClearLines()
- }
- }
-
--bool ConfigFile::ConfigEntry::section_then_key_less::operator()(const ConfigEntry &a, const ConfigEntry &b) {
-+bool ConfigFile::ConfigEntry::section_then_key_less::operator()(const ConfigEntry &a, const ConfigEntry &b) const{
- if(curConfigFile && a.section!=b.section){
- const int sva = curConfigFile->GetSectionSize(a.section);
- const int svb = curConfigFile->GetSectionSize(b.section);
-diff --git a/conffile.h b/conffile.h
-index ba69812df..d92128cba 100644
---- a/conffile.h
-+++ b/conffile.h
-@@ -90,7 +90,7 @@ class ConfigFile {
- mutable bool used;
-
- struct section_then_key_less {
-- bool operator()(const ConfigEntry &a, const ConfigEntry &b);
-+ bool operator()(const ConfigEntry &a, const ConfigEntry &b) const;
- };
-
- struct key_less {
-@@ -101,8 +101,8 @@ class ConfigFile {
- };
-
- struct line_less {
-- bool operator()(const ConfigEntry &a, const ConfigEntry &b){
-- if(a.line==b.line) return (b.val.empty() && !a.val.empty()) || a.key<b.key;
-+ bool operator()(const ConfigEntry &a, const ConfigEntry &b) const{
-+ if(a.line==b.line) return (b.val.empty() && !a.val.empty()) || a.key<b.key;
- if(b.line<0) return true;
- if(a.line<0) return false;
- return a.line<b.line;
diff --git a/games-emulation/snes9x/files/snes9x-1.61-libretro-flags.patch b/games-emulation/snes9x/files/snes9x-1.61-libretro-flags.patch
new file mode 100644
index 000000000000..297c7d78257d
--- /dev/null
+++ b/games-emulation/snes9x/files/snes9x-1.61-libretro-flags.patch
@@ -0,0 +1,25 @@
+CXXFLAGS is used as a "common" flags variable and passed to CFLAGS,
+but want to use user's CFLAGS for CC rather than CXXFLAGS. Workaround
+with a temporary variable and also drop -O3/lto from defaults.
+--- a/libretro/Makefile
++++ b/libretro/Makefile
+@@ -4,3 +4,5 @@
+
+-LTO ?= -flto
++LTO :=
++ORIG_CXXFLAGS := $(CXXFLAGS)
++CXXFLAGS :=
+ SPACE :=
+@@ -580,4 +582,4 @@
+ else
+- CFLAGS += -O3 -DNDEBUG
+- CXXFLAGS += -O3 -DNDEBUG
++ CFLAGS += -DNDEBUG
++ CXXFLAGS += -DNDEBUG
+ endif
+@@ -612,3 +614,4 @@
+ CXXFLAGS += -DRIGHTSHIFT_IS_SAR -D__LIBRETRO__ -DALLOW_CPU_OVERCLOCK
+-CFLAGS := $(CXXFLAGS)
++CFLAGS := $(CXXFLAGS) $(CFLAGS)
++CXXFLAGS += $(ORIG_CXXFLAGS)
+ CFLAGS += -DHAVE_STDINT_H
diff --git a/games-emulation/snes9x/metadata.xml b/games-emulation/snes9x/metadata.xml
index 2d24d25eb987..8f63c2fe45fa 100644
--- a/games-emulation/snes9x/metadata.xml
+++ b/games-emulation/snes9x/metadata.xml
@@ -6,8 +6,9 @@
<name>Gentoo Games Project</name>
</maintainer>
<use>
- <flag name="netplay">Enable playing ROMs over the network (not recommended)</flag>
+ <flag name="glslang">Build support for slang-type shaders</flag>
<flag name="libretro">Build libretro port</flag>
+ <flag name="netplay">Enable playing ROMs over the network (not recommended)</flag>
</use>
<upstream>
<remote-id type="google-code">snes9x-gtk</remote-id>
diff --git a/games-emulation/snes9x/snes9x-1.60.ebuild b/games-emulation/snes9x/snes9x-1.60.ebuild
deleted file mode 100644
index b44ac4ece5bf..000000000000
--- a/games-emulation/snes9x/snes9x-1.60.ebuild
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic meson xdg
-
-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 ~ppc64 ~x86"
-IUSE="alsa debug gtk libretro multilib netplay opengl oss png pulseaudio portaudio wayland xinerama +xv"
-RESTRICT="bindist"
-
-RDEPEND="
- gtk? (
- dev-libs/glib:2
- media-libs/libsdl2[joystick]
- >=x11-libs/gtk+-3.22:3[wayland?]
- x11-libs/libXrandr
- x11-misc/xdg-utils
- alsa? ( media-libs/alsa-lib )
- opengl? (
- media-libs/libepoxy
- virtual/opengl
- )
- portaudio? ( >=media-libs/portaudio-19_pre )
- pulseaudio? ( media-sound/pulseaudio )
- xv? ( x11-libs/libXv )
- wayland? ( dev-libs/wayland )
- )
- !gtk? ( x11-libs/libXv )
- libretro? ( !!games-emulation/libretro-snes9x )
- png? ( media-libs/libpng:0= )
- sys-libs/zlib:=[minizip]
- xinerama? ( x11-libs/libXinerama )
- x11-libs/cairo
- x11-libs/gdk-pixbuf
- x11-libs/libX11
- x11-libs/libXext"
-DEPEND="${RDEPEND}
- x11-base/xorg-proto"
-BDEPEND="virtual/pkgconfig"
-
-S="${WORKDIR}/${P}/unix"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.53-cross-compile.patch
- "${FILESDIR}"/${PN}-1.59-build-system.patch
- "${FILESDIR}"/${PN}-1.60-gcc11.patch
-)
-
-src_prepare() {
- cd "${WORKDIR}/${P}" || die
- rm -r unzip || die
- default
- cd unix || die
- eautoreconf
- if use gtk ; then
- export EMESON_SOURCE="${WORKDIR}/${P}/gtk"
- fi
-}
-
-src_configure() {
- append-ldflags -Wl,-z,noexecstack
-
- # build breaks when zlib/zip support is disabled
- local myeconfargs=(
- --enable-gamepad
- --enable-gzip
- --enable-zip
- --with-system-zip
- $(use_enable debug debugger)
- $(use_enable netplay)
- $(use_enable png screenshot)
- $(use_enable xinerama)
- )
- econf "${myeconfargs[@]}"
-
- if use gtk; then
- local emesonargs=(
- -Dalsa="$(usex alsa true false)"
- -Ddebugger="$(usex debug true false)"
- -Dgtk2=false
- -Dgtk3=true
- -Dopengl="$(usex opengl true false)"
- -Doss="$(usex oss true false)"
- -Dportaudio="$(usex portaudio true false)"
- -Dpulseaudio="$(usex pulseaudio true false)"
- -Dscreenshot="$(usex png true false)"
- -Dsystem-zip=true
- -Dxv="$(usex xv true false)"
- -Dzlib=true
- -Dwayland="$(usex wayland true false)"
- )
- meson_src_configure
- fi
-}
-
-src_compile() {
- use libretro && emake -C ../libretro
- emake
- use gtk && meson_src_compile
-}
-
-src_install() {
- dobin ${PN}
-
- dodoc ../docs/{changes,control-inputs,controls,snapshots}.txt
- dodoc snes9x.conf.default
-
- if use libretro ; then
- cd "${WORKDIR}/${PF}/libretro/"
- dolib.so snes9x_libretro.so
- fi
-
- if use gtk ; then
- meson_src_install
- dodoc ../gtk/AUTHORS
- fi
-
- HTML_DOCS="${WORKDIR}/${PF}/docs/*.html"
- einstalldocs
-}
-
-pkg_preinst() {
- use gtk && xdg_pkg_preinst
-}
-
-pkg_postinst() {
- use gtk && xdg_pkg_postinst
-}
-
-pkg_postrm() {
- use gtk && xdg_pkg_postrm
-}
diff --git a/games-emulation/snes9x/snes9x-1.61.ebuild b/games-emulation/snes9x/snes9x-1.61.ebuild
new file mode 100644
index 000000000000..7300fb65bb2a
--- /dev/null
+++ b/games-emulation/snes9x/snes9x-1.61.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools meson toolchain-funcs xdg
+
+GLSLANG_COMMIT="bcf6a2430e99e8fc24f9f266e99316905e6d5134"
+SPIRV_COMMIT="1458bae62ec67ea7d12c5a13b740e23ed4bb226c"
+
+DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator"
+HOMEPAGE="https://github.com/snes9xgit/snes9x/"
+SRC_URI="
+ https://github.com/snes9xgit/snes9x/archive/${PV}.tar.gz -> ${P}.tar.gz
+ gui? ( glslang? (
+ https://github.com/KhronosGroup/glslang/archive/${GLSLANG_COMMIT}.tar.gz -> ${P}-glslang.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/${SPIRV_COMMIT}.tar.gz -> ${P}-spirv.tar.gz
+ ) )"
+
+LICENSE="
+ Snes9x GPL-2 GPL-2+ LGPL-2.1 LGPL-2.1+ ISC MIT ZLIB
+ gui? ( glslang? ( Apache-2.0 BSD ) )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE="alsa debug glslang gui libretro netplay opengl oss png portaudio pulseaudio wayland xinerama +xv"
+REQUIRED_USE="glslang? ( gui opengl )"
+RESTRICT="bindist test" # has no tests but can lead to bug #737044
+
+RDEPEND="
+ sys-libs/zlib:=[minizip]
+ x11-libs/libX11
+ x11-libs/libXext
+ alsa? ( media-libs/alsa-lib )
+ gui? (
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0[wayland?]
+ dev-libs/glib:2
+ dev-libs/libsigc++:2
+ media-libs/libsdl2[joystick]
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[wayland?]
+ x11-libs/libXrandr
+ x11-misc/xdg-utils
+ opengl? ( media-libs/libepoxy )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ wayland? ( dev-libs/wayland )
+ )
+ libretro? ( !games-emulation/libretro-snes9x )
+ png? ( media-libs/libpng:= )
+ xinerama? ( x11-libs/libXinerama )
+ xv? ( x11-libs/libXv )"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+ opengl? ( media-libs/libglvnd )"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.53-cross-compile.patch
+ "${FILESDIR}"/${PN}-1.59-build-system.patch
+ "${FILESDIR}"/${PN}-1.61-libretro-flags.patch
+)
+
+src_prepare() {
+ if use gui && use glslang; then
+ rmdir shaders/{glslang,SPIRV-Cross} || die
+ mv ../glslang-${GLSLANG_COMMIT} shaders/glslang || die
+ mv ../SPIRV-Cross-${SPIRV_COMMIT} shaders/SPIRV-Cross || die
+ fi
+
+ default
+
+ rm -r unzip || die
+
+ cd unix || die
+ eautoreconf
+}
+
+src_configure() {
+ tc-export CC CXX # for libretro
+
+ local econfargs=(
+ $(use_enable alsa sound-alsa)
+ $(use_enable debug debugger)
+ $(use_enable netplay)
+ $(use_enable png screenshot)
+ $(use_enable xinerama)
+ $(use_enable xv xvideo)
+ --enable-gamepad
+ --enable-gzip
+ --enable-zip
+ --with-system-zip
+ )
+
+ cd unix || die
+ econf "${econfargs[@]}"
+
+ if use gui; then
+ local emesonargs=(
+ $(meson_use alsa)
+ $(meson_use debug debugger)
+ $(meson_use glslang slang) # TODO?: unbundle
+ $(meson_use opengl)
+ $(meson_use oss)
+ $(meson_use png screenshot)
+ $(meson_use portaudio)
+ $(meson_use pulseaudio)
+ $(meson_use wayland)
+ $(meson_use xv)
+ -Dsystem-zip=true
+ -Dzlib=true
+ )
+
+ EMESON_SOURCE=${S}/gtk
+ meson_src_configure
+ fi
+}
+
+src_compile() {
+ if use libretro; then
+ emake -C libretro
+ # rebuild objects given libretro uses different defines (bug #791475)
+ rm *.o || die
+ fi
+
+ emake -C unix
+
+ use gui && meson_src_compile
+}
+
+src_install() {
+ if use libretro; then
+ exeinto /usr/$(get_libdir)/libretro
+ doexe libretro/snes9x_libretro.so
+ fi
+
+ dobin unix/${PN}
+
+ local DOCS=(
+ README.md
+ docs/{changes,control-inputs,controls,snapshots}.txt
+ unix/snes9x.conf.default
+ )
+ einstalldocs
+
+ if use gui; then
+ meson_src_install
+ dodoc gtk/AUTHORS
+ fi
+}