git: 9975aa3a3a27 - main - emulators/snes9x-gtk: Update to 1.61; maintain

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Tue, 20 Sep 2022 03:15:21 UTC
The branch main has been updated by jhale:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9975aa3a3a279b29865da5057ac4e678af0b354f

commit 9975aa3a3a279b29865da5057ac4e678af0b354f
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2022-09-20 03:04:40 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2022-09-20 03:15:12 +0000

    emulators/snes9x-gtk: Update to 1.61; maintain
    
    This port hasn't been updated in almost 6 years, so quite a bit has
    changed. See the releases links below for details. Notable changes
    include switching to the meson build system and using GTK 3 with
    c++ bindings instead of GTK 2.
    
    Some options have been dropped because they are no longer applicable
    or are now mandatory.
    
    https://github.com/snes9xgit/snes9x/releases
    https://github.com/snes9xgit/snes9x/releases/tag/1.61
---
 emulators/snes9x-gtk/Makefile                      | 93 +++++++---------------
 emulators/snes9x-gtk/distinfo                      | 10 ++-
 emulators/snes9x-gtk/files/patch-screenshot.cpp    | 10 ---
 .../files/patch-shaders_shader__platform.h         | 10 +++
 emulators/snes9x-gtk/pkg-plist                     | 17 ++++
 5 files changed, 64 insertions(+), 76 deletions(-)

diff --git a/emulators/snes9x-gtk/Makefile b/emulators/snes9x-gtk/Makefile
index c84f309d5f6b..3183239dee21 100644
--- a/emulators/snes9x-gtk/Makefile
+++ b/emulators/snes9x-gtk/Makefile
@@ -1,91 +1,58 @@
 PORTNAME=	snes9x
-PORTVERSION=	1.54.1
-PORTREVISION=	8
+DISTVERSION=	1.61
 CATEGORIES=	emulators
 PKGNAMESUFFIX=	-gtk
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	jhale@FreeBSD.org
 COMMENT=	Super Nintendo Entertainment System (SNES) Emulator
 WWW=		https://github.com/snes9xgit/snes9x
 
 # Commercial users must seek permission from copyright holders.
 LICENSE=	Snes9x
 LICENSE_NAME=	Snes9x License
-LICENSE_FILE=	${WRKSRC}/../docs/snes9x-license.txt
+LICENSE_FILE=	${WRKSRC}/../LICENSE
 LICENSE_PERMS=	dist-mirror pkg-mirror auto-accept
 
-LIB_DEPENDS=	libpng.so:graphics/png
+LIB_DEPENDS=	libminizip.so:archivers/minizip \
+		libepoxy.so:graphics/libepoxy \
+		libpng.so:graphics/png
 
+USES=		compiler:c++17-lang desktop-file-utils gettext \
+		gnome localbase:ldflags meson pkgconfig sdl xorg
 USE_GITHUB=	yes
 GH_ACCOUNT=	snes9xgit
-
-USES=		autoreconf:2.69 compiler:c11 desktop-file-utils gettext gmake \
-		gnome localbase perl5 pkgconfig sdl tar:bzip2 xorg
-USE_GNOME=	cairo gdkpixbuf2 gtk20 intltool libxml2
+GH_TUPLE=	KhronosGroup:glslang:bcf6a24:glslang/../shaders/glslang \
+		KhronosGroup:SPIRV-Cross:1458bae:spirv/../shaders/SPIRV-Cross
+USE_GNOME=	gdkpixbuf2 gtkmm30
 USE_SDL=	sdl2
-USE_XORG=	x11 xext
-GNU_CONFIGURE=	yes
-LDFLAGS+=	-Wl,--as-needed
+USE_XORG=	x11 xrandr xext
 
 PATCH_WRKSRC=	${WRKSRC}/..
 WRKSRC_SUBDIR=	gtk
 
-OPTIONS_DEFINE=		DEBUG JMA NETPLAY
-OPTIONS_GROUP=		SOUND VIDEO
-OPTIONS_GROUP_SOUND=	ALSA PORTAUDIO PULSEAUDIO
-OPTIONS_GROUP_VIDEO=	OPENGL XRANDR XVIDEO
-OPTIONS_DEFAULT=	JMA NETPLAY XVIDEO XRANDR
-
-DEBUG_CONFIGURE_WITH=		debug
-
-JMA_DESC=			JMA archive decompression support
-JMA_CONFIGURE_WITH=		jma-decomp
-
-NETPLAY_DESC=			Network support
-NETPLAY_CONFIGURE_WITH=		netplay
-
-OPENGL_CONFIGURE_WITH=		opengl
-OPENGL_USES=			gl
-OPENGL_USE=			GL=gl,glu
-
-XRANDR_CONFIGURE_WITH=		xrandr
-XRANDR_USE=			XORG=xrandr
-
-XVIDEO_CONFIGURE_WITH=		xv
-XVIDEO_USE=			XORG=xv
-
-ALSA_CONFIGURE_WITH=		alsa
-ALSA_LIB_DEPENDS=		libasound.so:audio/alsa-lib
-ALSA_USES=			compiler:c++11-lang
+OPTIONS_MULTI=		SOUND
+OPTIONS_MULTI_SOUND=	ALSA OSS PORTAUDIO PULSEAUDIO
+OPTIONS_DEFINE=		DEBUGGER NLS WAYLAND XVIDEO
+OPTIONS_DEFAULT=	OSS WAYLAND XVIDEO
+OPTIONS_SUB=		yes
 
-PORTAUDIO_CONFIGURE_WITH=	portaudio
-PORTAUDIO_LIB_DEPENDS=		libportaudio.so:audio/portaudio
+ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
+ALSA_MESON_TRUE=	alsa
 
-PULSEAUDIO_CONFIGURE_WITH=	pulseaudio
-PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio
+DEBUGGER_DESC=		Snes9X debugger
+DEBUGGER_MESON_TRUE=	debugger
 
-PLIST_FILES=	bin/snes9x-gtk \
-		share/pixmaps/snes9x.svg \
-		share/applications/snes9x.desktop
+OSS_MESON_TRUE=		oss
 
-.include <bsd.port.pre.mk>
+PORTAUDIO_LIB_DEPENDS=	libportaudio.so:audio/portaudio
+PORTAUDIO_MESON_TRUE=	portaudio
 
-.if exists(/usr/lib/libusbhid.a)
-CONFIGURE_ARGS+=	--with-joystick
-.else
-CONFIGURE_ARGS+=	--without-joystick
-.endif
+PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
+PULSEAUDIO_MESON_TRUE=	pulseaudio
 
-post-patch:
-	@${REINPLACE_CMD} -e 's|sdl|sdl2|g' -e 's|-ldl||g' \
-		${WRKSRC}/configure.ac
+WAYLAND_LIB_DEPENDS=	libwayland-client.so:graphics/wayland
+WAYLAND_MESON_TRUE=	wayland
 
-do-install:
-	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}${PKGNAMESUFFIX} \
-		${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX}
-	${INSTALL_DATA} ${WRKSRC}/data/snes9x.svg \
-		${STAGEDIR}${PREFIX}/share/pixmaps
-	${INSTALL_DATA} ${WRKSRC}/data/snes9x.desktop \
-		${STAGEDIR}${PREFIX}/share/applications
+XVIDEO_USE=		XORG=xv
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/emulators/snes9x-gtk/distinfo b/emulators/snes9x-gtk/distinfo
index 4b22925329a3..dbc73d9a5a1e 100644
--- a/emulators/snes9x-gtk/distinfo
+++ b/emulators/snes9x-gtk/distinfo
@@ -1,3 +1,7 @@
-TIMESTAMP = 1479034785
-SHA256 (snes9xgit-snes9x-1.54.1_GH0.tar.gz) = 85862a22498bc418c37bd7c81a3089d9cc00af279b91e5f7fa8bea05e2e3027b
-SIZE (snes9xgit-snes9x-1.54.1_GH0.tar.gz) = 2186737
+TIMESTAMP = 1663634942
+SHA256 (snes9xgit-snes9x-1.61_GH0.tar.gz) = ce7aad69c3041ba4c33690e9e7d21ceb1b9283d85759b1bf683dfb8c473511bb
+SIZE (snes9xgit-snes9x-1.61_GH0.tar.gz) = 3016890
+SHA256 (KhronosGroup-glslang-bcf6a24_GH0.tar.gz) = 89e768efce6c406bb4d0c00c14559106dba83542e3f5385648b5338a80db945c
+SIZE (KhronosGroup-glslang-bcf6a24_GH0.tar.gz) = 3183142
+SHA256 (KhronosGroup-SPIRV-Cross-1458bae_GH0.tar.gz) = f3eef2c0f46f8483bc61d687564c45ff6e9f4a38a7be5e6e4e5f59dd787a3785
+SIZE (KhronosGroup-SPIRV-Cross-1458bae_GH0.tar.gz) = 677457
diff --git a/emulators/snes9x-gtk/files/patch-screenshot.cpp b/emulators/snes9x-gtk/files/patch-screenshot.cpp
deleted file mode 100644
index 122d12fba7df..000000000000
--- a/emulators/snes9x-gtk/files/patch-screenshot.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- screenshot.cpp.orig	2016-10-15 00:20:34 UTC
-+++ screenshot.cpp
-@@ -186,6 +186,7 @@
- #include "memmap.h"
- #include "display.h"
- #include "screenshot.h"
-+#include <unistd.h>
- 
- 
- bool8 S9xDoScreenshot (int width, int height)
diff --git a/emulators/snes9x-gtk/files/patch-shaders_shader__platform.h b/emulators/snes9x-gtk/files/patch-shaders_shader__platform.h
new file mode 100644
index 000000000000..1db69cf88dd0
--- /dev/null
+++ b/emulators/snes9x-gtk/files/patch-shaders_shader__platform.h
@@ -0,0 +1,10 @@
+--- shaders/shader_platform.h.orig	2022-09-19 23:41:19 UTC
++++ shaders/shader_platform.h
+@@ -8,6 +8,7 @@
+ #define __SHADER_PLATFORM_H
+ 
+ #include "port.h"
++#include <unistd.h>
+ 
+ #ifdef SNES9X_GTK
+ #include <epoxy/gl.h>
diff --git a/emulators/snes9x-gtk/pkg-plist b/emulators/snes9x-gtk/pkg-plist
new file mode 100644
index 000000000000..bed7c959c5b8
--- /dev/null
+++ b/emulators/snes9x-gtk/pkg-plist
@@ -0,0 +1,17 @@
+bin/snes9x-gtk
+share/applications/snes9x-gtk.desktop
+share/icons/hicolor/128x128/apps/snes9x.png
+share/icons/hicolor/16x16/apps/snes9x.png
+share/icons/hicolor/24x24/apps/snes9x.png
+share/icons/hicolor/256x256/apps/snes9x.png
+share/icons/hicolor/32x32/apps/snes9x.png
+share/icons/hicolor/64x64/apps/snes9x.png
+%%NLS%%share/locale/es/LC_MESSAGES/snes9x-gtk.mo
+%%NLS%%share/locale/fr_FR/LC_MESSAGES/snes9x-gtk.mo
+%%NLS%%share/locale/ja/LC_MESSAGES/snes9x-gtk.mo
+%%NLS%%share/locale/pt_BR/LC_MESSAGES/snes9x-gtk.mo
+%%NLS%%share/locale/ru/LC_MESSAGES/snes9x-gtk.mo
+%%NLS%%share/locale/sr@latin/LC_MESSAGES/snes9x-gtk.mo
+%%NLS%%share/locale/uk/LC_MESSAGES/snes9x-gtk.mo
+%%NLS%%share/locale/zh_CN/LC_MESSAGES/snes9x-gtk.mo
+%%DATADIR%%/cheats.bml