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
This commit is contained in:
Jason E. Hale 2022-09-19 23:04:40 -04:00
parent 47ff75a189
commit 9975aa3a3a
5 changed files with 64 additions and 76 deletions

View File

@ -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
OPTIONS_MULTI= SOUND
OPTIONS_MULTI_SOUND= ALSA OSS PORTAUDIO PULSEAUDIO
OPTIONS_DEFINE= DEBUGGER NLS WAYLAND XVIDEO
OPTIONS_DEFAULT= OSS WAYLAND XVIDEO
OPTIONS_SUB= yes
DEBUG_CONFIGURE_WITH= debug
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_MESON_TRUE= alsa
JMA_DESC= JMA archive decompression support
JMA_CONFIGURE_WITH= jma-decomp
DEBUGGER_DESC= Snes9X debugger
DEBUGGER_MESON_TRUE= debugger
NETPLAY_DESC= Network support
NETPLAY_CONFIGURE_WITH= netplay
OSS_MESON_TRUE= oss
OPENGL_CONFIGURE_WITH= opengl
OPENGL_USES= gl
OPENGL_USE= GL=gl,glu
PORTAUDIO_LIB_DEPENDS= libportaudio.so:audio/portaudio
PORTAUDIO_MESON_TRUE= portaudio
XRANDR_CONFIGURE_WITH= xrandr
XRANDR_USE= XORG=xrandr
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_MESON_TRUE= pulseaudio
XVIDEO_CONFIGURE_WITH= xv
XVIDEO_USE= XORG=xv
WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland
WAYLAND_MESON_TRUE= wayland
ALSA_CONFIGURE_WITH= alsa
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_USES= compiler:c++11-lang
XVIDEO_USE= XORG=xv
PORTAUDIO_CONFIGURE_WITH= portaudio
PORTAUDIO_LIB_DEPENDS= libportaudio.so:audio/portaudio
PULSEAUDIO_CONFIGURE_WITH= pulseaudio
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PLIST_FILES= bin/snes9x-gtk \
share/pixmaps/snes9x.svg \
share/applications/snes9x.desktop
.include <bsd.port.pre.mk>
.if exists(/usr/lib/libusbhid.a)
CONFIGURE_ARGS+= --with-joystick
.else
CONFIGURE_ARGS+= --without-joystick
.endif
post-patch:
@${REINPLACE_CMD} -e 's|sdl|sdl2|g' -e 's|-ldl||g' \
${WRKSRC}/configure.ac
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
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -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

View File

@ -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)

View File

@ -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>

View File

@ -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