git: 597ca5a01e38 - main - emulators/higan: Update to v110

From: Lorenzo Salvadore <salvadore_at_FreeBSD.org>
Date: Wed, 06 Dec 2023 15:01:54 UTC
The branch main has been updated by salvadore:

URL: https://cgit.FreeBSD.org/ports/commit/?id=597ca5a01e3893880470afdd10a9cc4a0cdaa93a

commit 597ca5a01e3893880470afdd10a9cc4a0cdaa93a
Author:     Lorenzo Salvadore <salvadore@FreeBSD.org>
AuthorDate: 2023-11-18 12:02:56 +0000
Commit:     Lorenzo Salvadore <salvadore@FreeBSD.org>
CommitDate: 2023-12-06 15:01:49 +0000

    emulators/higan: Update to v110
    
    Moreover,
    
    - Switch to USE_GITHUB, since the sources are now available only there.
    - Replace WWW with the GitHub repository link, since the site in WWW
      does not exist anymore.
    - Change default sound option from OSS to OPENAL: OSS does not work.
    - Do not require GCC anymore.
    
    PR:             273678
    Approved by:    Naram Qashat <cyberbotx@cyberbotx.com> (maintainer)
---
 emulators/higan/Makefile                           | 40 ++++++++++------------
 emulators/higan/distinfo                           |  6 ++--
 emulators/higan/files/patch-higan_GNUmakefile      | 10 ------
 .../files/patch-higan_target-tomoko_GNUmakefile    | 15 --------
 ...gan_target-tomoko_presentation_presentation.cpp | 11 ------
 .../patch-higan_target-tomoko_program_medium.cpp   | 11 ------
 .../files/patch-higan_target-tomoko_tomoko.cpp     | 23 -------------
 .../files/patch-higan_target-tomoko_tomoko.hpp     |  8 -----
 ...ch-higan_target-tomoko_tools_cheat-database.cpp | 11 ------
 emulators/higan/files/patch-icarus_core_core.cpp   | 35 -------------------
 emulators/higan/files/patch-icarus_icarus.cpp      | 23 -------------
 emulators/higan/pkg-plist                          | 35 ++++++++++---------
 12 files changed, 41 insertions(+), 187 deletions(-)

diff --git a/emulators/higan/Makefile b/emulators/higan/Makefile
index ca16f7cd8ace..37e3518c56ad 100644
--- a/emulators/higan/Makefile
+++ b/emulators/higan/Makefile
@@ -1,29 +1,32 @@
 PORTNAME=	higan
-PORTVERSION=	106
-PORTREVISION=	12
+DISTVERSIONPREFIX=	v
+DISTVERSION=	110
 CATEGORIES=	emulators games
-MASTER_SITES=	http://download.byuu.org/ \
-		http://www.cyberbotx.com/higan/
-DISTNAME=	${PORTNAME}_v${PORTVERSION}-source
 
 MAINTAINER=	cyberbotx@cyberbotx.com
 COMMENT=	Nintendo multi-system emulator
-WWW=		http://byuu.org/higan/
+WWW=		https://github.com/higan-emu/higan
+
+LICENSE=	GPLv3+
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 
 ONLY_FOR_ARCHS=	amd64 i386 powerpc powerpc64 powerpc64le
 
 LIB_DEPENDS=	libfontconfig.so:x11-fonts/fontconfig \
-		libfreetype.so:print/freetype2
+		libfreetype.so:print/freetype2 \
+		libharfbuzz.so:print/harfbuzz
 
-USES=		7z compiler:c++14-lang gettext gmake gnome pkgconfig xorg
+USES=		compiler:c++14-lang gettext gmake gnome pkgconfig xorg
 USE_GNOME=	cairo gdkpixbuf2 gtk20 gtksourceview2
-USE_XORG=	x11 xext
+USE_XORG=	x11 xext xrandr
 USE_CSTD=	c99
 USE_CXXSTD=	c++14
-USE_GCC=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	higan-emu
 
 MAKEFILE=	GNUmakefile
-MAKE_ENV=	compiler="${CXX}" hiro="gtk"
+MAKE_ENV=	compiler="${CXX}" hiro="gtk2"
 
 OPTIONS_DEFINE=		DEBUG
 OPTIONS_MULTI=		VIDEO SOUND INPUT
@@ -31,7 +34,7 @@ OPTIONS_MULTI_VIDEO=	GLX SDL XSHM XV
 OPTIONS_MULTI_SOUND=	AO OPENAL OSS PULSEAUDIO
 OPTIONS_MULTI_INPUT=	INPUT_SDL INPUT_X
 OPTIONS_DEFAULT=	GLX XSHM XV SDL \
-			OSS INPUT_SDL INPUT_X
+			OPENAL INPUT_SDL INPUT_X
 
 XSHM_DESC=		Build XShm video driver
 XV_DESC=		Build Xv video driver
@@ -43,7 +46,7 @@ GLX_USE=	GL=gl
 GLX_VARS=	VIDEO_DRIVER+=video.glx
 
 SDL_USES=	sdl
-SDL_USE=	XORG=xv SDL=sdl
+SDL_USE=	XORG=xv SDL=sdl2
 SDL_VARS=	VIDEO_DRIVER+=video.sdl
 
 XSHM_USE=	XORG=xext
@@ -70,11 +73,6 @@ INPUT_SDL_VARS=	INPUT_DRIVER+=input.sdl
 INPUT_X_VARS=	INPUT_DRIVER+=input.xlib
 
 post-patch:
-	${REINPLACE_CMD} \
-		-e 's|%%VIDEO%%|${VIDEO_DRIVER}|' \
-		-e 's|%%AUDIO%%|${AUDIO_DRIVER}|' \
-		-e 's|%%INPUT%%|${INPUT_DRIVER}|' \
-		${WRKSRC}/higan/target-tomoko/GNUmakefile
 	${REINPLACE_CMD} -e 's|/usr/share/|${PREFIX}/share/|' \
 		${WRKSRC}/nall/path.hpp
 
@@ -91,9 +89,9 @@ do-build:
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/higan/out/higan ${STAGEDIR}${PREFIX}/bin/
 	${INSTALL_PROGRAM} ${WRKSRC}/icarus/out/icarus ${STAGEDIR}${PREFIX}/bin/
-	${INSTALL_DATA} ${WRKSRC}/higan/data/higan.png ${STAGEDIR}${PREFIX}/share/pixmaps/
-	${INSTALL_DATA} ${WRKSRC}/higan/data/higan.desktop ${STAGEDIR}${PREFIX}/share/applications/
-	(cd ${WRKSRC}/higan/systems && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/)
+	${INSTALL_DATA} ${WRKSRC}/higan/target-higan/resource/higan.png ${STAGEDIR}${PREFIX}/share/pixmaps/
+	${INSTALL_DATA} ${WRKSRC}/higan/target-higan/resource/higan.desktop ${STAGEDIR}${PREFIX}/share/applications/
+	(cd ${WRKSRC}/higan/System && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/)
 	(cd ${WRKSRC}/icarus/Database && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/icarus/Database/)
 
 .include <bsd.port.mk>
diff --git a/emulators/higan/distinfo b/emulators/higan/distinfo
index f976c88f3721..2338ce694466 100644
--- a/emulators/higan/distinfo
+++ b/emulators/higan/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1516118942
-SHA256 (higan_v106-source.7z) = 6564f91f232040c46c052de763dc139e94005e0f2376959fdacbb6ccd3fd6d18
-SIZE (higan_v106-source.7z) = 830639
+TIMESTAMP = 1700308663
+SHA256 (higan-emu-higan-v110_GH0.tar.gz) = 18457ac2608ab548983c3266ae38e6397d1801773969a796a672e2d9c56c69c5
+SIZE (higan-emu-higan-v110_GH0.tar.gz) = 1661896
diff --git a/emulators/higan/files/patch-higan_GNUmakefile b/emulators/higan/files/patch-higan_GNUmakefile
deleted file mode 100644
index 86cf95a2f544..000000000000
--- a/emulators/higan/files/patch-higan_GNUmakefile
+++ /dev/null
@@ -1,10 +0,0 @@
---- higan/GNUmakefile.orig	2020-02-08 23:13:45 UTC
-+++ higan/GNUmakefile
-@@ -26,7 +26,6 @@ else ifneq ($(filter $(platform),linux bsd),)
-   flags += -fopenmp
-   link += -fopenmp
-   ifeq ($(binary),application)
--    flags += -march=native
-     link += -Wl,-export-dynamic
-     link += -lX11 -lXext
-   else ifeq ($(binary),library)
diff --git a/emulators/higan/files/patch-higan_target-tomoko_GNUmakefile b/emulators/higan/files/patch-higan_target-tomoko_GNUmakefile
deleted file mode 100644
index 1b8131a40d9d..000000000000
--- a/emulators/higan/files/patch-higan_target-tomoko_GNUmakefile
+++ /dev/null
@@ -1,15 +0,0 @@
---- higan/target-tomoko/GNUmakefile.orig	2017-09-23 21:35:23 UTC
-+++ higan/target-tomoko/GNUmakefile
-@@ -30,9 +30,9 @@ else ifeq ($(platform),linux)
-   ruby += audio.oss audio.alsa audio.openal audio.pulseaudio audio.pulseaudiosimple audio.ao
-   ruby += input.sdl input.xlib input.udev
- else ifeq ($(platform),bsd)
--  ruby += video.glx video.xvideo video.xshm video.sdl
--  ruby += audio.oss audio.openal
--  ruby += input.sdl input.xlib
-+  ruby += %%VIDEO%%
-+  ruby += %%AUDIO%%
-+  ruby += %%INPUT%%
- endif
- 
- # ruby
diff --git a/emulators/higan/files/patch-higan_target-tomoko_presentation_presentation.cpp b/emulators/higan/files/patch-higan_target-tomoko_presentation_presentation.cpp
deleted file mode 100644
index bc30b6dc349c..000000000000
--- a/emulators/higan/files/patch-higan_target-tomoko_presentation_presentation.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- higan/target-tomoko/presentation/presentation.cpp.orig	2017-01-13 17:52:31 UTC
-+++ higan/target-tomoko/presentation/presentation.cpp
-@@ -278,7 +278,7 @@ auto Presentation::toggleFullScreen() ->
- }
- 
- auto Presentation::loadShaders() -> void {
--  auto pathname = locate("Video Shaders/");
-+  auto pathname = locateShared("Video Shaders/");
- 
-   if(settings["Video/Driver"].text() == "OpenGL") {
-     for(auto shader : directory::folders(pathname, "*.shader")) {
diff --git a/emulators/higan/files/patch-higan_target-tomoko_program_medium.cpp b/emulators/higan/files/patch-higan_target-tomoko_program_medium.cpp
deleted file mode 100644
index 6c898cd0f699..000000000000
--- a/emulators/higan/files/patch-higan_target-tomoko_program_medium.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- higan/target-tomoko/program/medium.cpp.orig	2017-01-13 10:43:46 UTC
-+++ higan/target-tomoko/program/medium.cpp
-@@ -17,7 +17,7 @@ auto Program::loadMedium() -> void {
- auto Program::loadMedium(Emulator::Interface& interface, const Emulator::Interface::Medium& medium) -> void {
-   unloadMedium();
- 
--  mediumPaths.append(locate({medium.name, ".sys/"}));
-+  mediumPaths.append(locateShared({medium.name, ".sys/"}));
- 
-   Emulator::audio.reset(2, audio->get(Audio::Frequency).get<uint>(44100));
-   inputManager->bind(emulator = &interface);
diff --git a/emulators/higan/files/patch-higan_target-tomoko_tomoko.cpp b/emulators/higan/files/patch-higan_target-tomoko_tomoko.cpp
deleted file mode 100644
index e3790ab98982..000000000000
--- a/emulators/higan/files/patch-higan_target-tomoko_tomoko.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
---- higan/target-tomoko/tomoko.cpp.orig	2016-07-01 08:21:27 UTC
-+++ higan/target-tomoko/tomoko.cpp
-@@ -4,6 +4,20 @@ unique_pointer<Audio> audio;
- unique_pointer<Input> input;
- Emulator::Interface* emulator = nullptr;
- 
-+auto locateShared(string name) -> string {
-+  string location = {Path::program(), name};
-+  if(inode::exists(location)) return location;
-+
-+  location = {Path::shared(), "higan/", name};
-+  if(inode::exists(location)) return location;
-+
-+  location = {Path::config(), "higan/", name};
-+  if(inode::exists(location)) return location;
-+
-+  directory::create({Path::local(), "higan/"});
-+  return {Path::local(), "higan/", name};
-+}
-+
- auto locate(string name) -> string {
-   string location = {Path::program(), name};
-   if(inode::exists(location)) return location;
diff --git a/emulators/higan/files/patch-higan_target-tomoko_tomoko.hpp b/emulators/higan/files/patch-higan_target-tomoko_tomoko.hpp
deleted file mode 100644
index 4ba140a1b1d0..000000000000
--- a/emulators/higan/files/patch-higan_target-tomoko_tomoko.hpp
+++ /dev/null
@@ -1,8 +0,0 @@
---- higan/target-tomoko/tomoko.hpp.orig	2017-01-11 11:35:22 UTC
-+++ higan/target-tomoko/tomoko.hpp
-@@ -18,4 +18,5 @@ extern Emulator::Interface* emulator;
- #include "tools/tools.hpp"
- #include "presentation/presentation.hpp"
- 
-+auto locateShared(string name) -> string;
- auto locate(string name) -> string;
diff --git a/emulators/higan/files/patch-higan_target-tomoko_tools_cheat-database.cpp b/emulators/higan/files/patch-higan_target-tomoko_tools_cheat-database.cpp
deleted file mode 100644
index 30fa5b7f3eee..000000000000
--- a/emulators/higan/files/patch-higan_target-tomoko_tools_cheat-database.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- higan/target-tomoko/tools/cheat-database.cpp.orig	2016-05-03 22:40:39 UTC
-+++ higan/target-tomoko/tools/cheat-database.cpp
-@@ -18,7 +18,7 @@ auto CheatDatabase::findCodes() -> void 
-   if(!emulator) return;
-   auto sha256 = emulator->sha256();
- 
--  auto contents = string::read(locate("cheats.bml"));
-+  auto contents = string::read(locateShared("cheats.bml"));
-   auto document = BML::unserialize(contents);
- 
-   for(auto cartridge : document.find("cartridge")) {
diff --git a/emulators/higan/files/patch-icarus_core_core.cpp b/emulators/higan/files/patch-icarus_core_core.cpp
deleted file mode 100644
index afb1a98de642..000000000000
--- a/emulators/higan/files/patch-icarus_core_core.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
---- icarus/core/core.cpp.orig	2017-01-23 13:51:10 UTC
-+++ icarus/core/core.cpp
-@@ -1,18 +1,18 @@
- Icarus::Icarus() {
--  database.famicom = BML::unserialize(string::read(locate("Database/Famicom.bml")));
--  database.superFamicom = BML::unserialize(string::read(locate("Database/Super Famicom.bml")));
--  database.masterSystem = BML::unserialize(string::read(locate("Database/Master System.bml")));
--  database.megaDrive = BML::unserialize(string::read(locate("Database/Mega Drive.bml")));
--  database.pcEngine = BML::unserialize(string::read(locate("Database/PC Engine.bml")));
--  database.superGrafx = BML::unserialize(string::read(locate("Database/SuperGrafx.bml")));
--  database.gameBoy = BML::unserialize(string::read(locate("Database/Game Boy.bml")));
--  database.gameBoyColor = BML::unserialize(string::read(locate("Database/Game Boy Color.bml")));
--  database.gameBoyAdvance = BML::unserialize(string::read(locate("Database/Game Boy Advance.bml")));
--  database.gameGear = BML::unserialize(string::read(locate("Database/Game Gear.bml")));
--  database.wonderSwan = BML::unserialize(string::read(locate("Database/WonderSwan.bml")));
--  database.wonderSwanColor = BML::unserialize(string::read(locate("Database/WonderSwan Color.bml")));
--  database.bsMemory = BML::unserialize(string::read(locate("Database/BS Memory.bml")));
--  database.sufamiTurbo = BML::unserialize(string::read(locate("Database/Sufami Turbo.bml")));
-+  database.famicom = BML::unserialize(string::read(locateShared("Database/Famicom.bml")));
-+  database.superFamicom = BML::unserialize(string::read(locateShared("Database/Super Famicom.bml")));
-+  database.masterSystem = BML::unserialize(string::read(locateShared("Database/Master System.bml")));
-+  database.megaDrive = BML::unserialize(string::read(locateShared("Database/Mega Drive.bml")));
-+  database.pcEngine = BML::unserialize(string::read(locateShared("Database/PC Engine.bml")));
-+  database.superGrafx = BML::unserialize(string::read(locateShared("Database/SuperGrafx.bml")));
-+  database.gameBoy = BML::unserialize(string::read(locateShared("Database/Game Boy.bml")));
-+  database.gameBoyColor = BML::unserialize(string::read(locateShared("Database/Game Boy Color.bml")));
-+  database.gameBoyAdvance = BML::unserialize(string::read(locateShared("Database/Game Boy Advance.bml")));
-+  database.gameGear = BML::unserialize(string::read(locateShared("Database/Game Gear.bml")));
-+  database.wonderSwan = BML::unserialize(string::read(locateShared("Database/WonderSwan.bml")));
-+  database.wonderSwanColor = BML::unserialize(string::read(locateShared("Database/WonderSwan Color.bml")));
-+  database.bsMemory = BML::unserialize(string::read(locateShared("Database/BS Memory.bml")));
-+  database.sufamiTurbo = BML::unserialize(string::read(locateShared("Database/Sufami Turbo.bml")));
- }
- 
- auto Icarus::error() const -> string {
diff --git a/emulators/higan/files/patch-icarus_icarus.cpp b/emulators/higan/files/patch-icarus_icarus.cpp
deleted file mode 100644
index 311f0a0db489..000000000000
--- a/emulators/higan/files/patch-icarus_icarus.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
---- icarus/icarus.cpp.orig	2017-01-11 13:07:07 UTC
-+++ icarus/icarus.cpp
-@@ -4,6 +4,20 @@ using namespace nall;
- #include <hiro/hiro.hpp>
- using namespace hiro;
- 
-+auto locateShared(string name) -> string {
-+  string location = {Path::program(), name};
-+  if(inode::exists(location)) return location;
-+
-+  location = {Path::shared(), "icarus/", name}; 
-+  if(inode::exists(location)) return location;
-+
-+  location = {Path::config(), "icarus/", name};
-+  if(inode::exists(location)) return location;
-+
-+  directory::create({Path::local(), "icarus/"});
-+  return {Path::local(), "icarus/", name};
-+}
-+
- auto locate(string name) -> string {
-   string location = {Path::program(), name};
-   if(inode::exists(location)) return location;
diff --git a/emulators/higan/pkg-plist b/emulators/higan/pkg-plist
index 840dfadc469a..f8b22890cadb 100644
--- a/emulators/higan/pkg-plist
+++ b/emulators/higan/pkg-plist
@@ -1,21 +1,24 @@
+%%DATADIR%%/Game Boy Color/boot.cgb-0.rom
+%%DATADIR%%/Game Boy Color/boot.cgb-1.rom
+%%DATADIR%%/Game Boy/boot.dmg-0.rom
+%%DATADIR%%/Game Boy/boot.dmg-1.rom
+%%DATADIR%%/Game Boy/boot.mgb.rom
+%%DATADIR%%/MSX/Keyboard/Japanese/layout.bml
+%%DATADIR%%/MSX/bios.rom
+%%DATADIR%%/MSX2/Keyboard/Japanese/layout.bml
+%%DATADIR%%/MSX2/bios.rom
+%%DATADIR%%/MSX2/sub.rom
+%%DATADIR%%/Mega Drive/tmss.rom
+%%DATADIR%%/Pocket Challenge V2/boot.rom
+%%DATADIR%%/Super Famicom/boards.bml
+%%DATADIR%%/Super Famicom/ipl.rom
+%%DATADIR%%/SwanCrystal/boot.rom
+%%DATADIR%%/WonderSwan Color/boot.rom
+%%DATADIR%%/WonderSwan/boot.rom
 bin/higan
 bin/icarus
 share/applications/higan.desktop
-%%DATADIR%%/Famicom.sys/manifest.bml
-%%DATADIR%%/Game Boy Advance.sys/manifest.bml
-%%DATADIR%%/Game Boy Color.sys/boot.rom
-%%DATADIR%%/Game Boy Color.sys/manifest.bml
-%%DATADIR%%/Game Boy.sys/boot.rom
-%%DATADIR%%/Game Boy.sys/manifest.bml
-%%DATADIR%%/Game Gear.sys/manifest.bml
-%%DATADIR%%/Master System.sys/manifest.bml
-%%DATADIR%%/Mega Drive.sys/manifest.bml
-%%DATADIR%%/Mega Drive.sys/tmss.rom
-%%DATADIR%%/PC Engine.sys/manifest.bml
-%%DATADIR%%/Super Famicom.sys/ipl.rom
-%%DATADIR%%/Super Famicom.sys/manifest.bml
-%%DATADIR%%/SuperGrafx.sys/manifest.bml
-%%DATADIR%%/WonderSwan Color.sys/manifest.bml
-%%DATADIR%%/WonderSwan.sys/manifest.bml
 share/icarus/Database/Super Famicom.bml
+share/icarus/Database/BS Memory.bml
+share/icarus/Database/Sufami Turbo.bml
 share/pixmaps/higan.png