git: 9fa27ababe92 - main - games/openomf: Update 0.6.5 => 0.8.3, improve port

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Thu, 28 Aug 2025 14:50:01 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9fa27ababe927df8fb7d0ecd2f4a188f514c5a13

commit 9fa27ababe927df8fb7d0ecd2f4a188f514c5a13
Author:     Stas Timokhin <devel@stasyan.com>
AuthorDate: 2025-08-28 14:42:02 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-08-28 14:49:46 +0000

    games/openomf: Update 0.6.5 => 0.8.3, improve port
    
    Changelogs:
    https://github.com/omf2097/openomf/releases/tag/0.7.0
    https://github.com/omf2097/openomf/releases/tag/0.7.1
    https://github.com/omf2097/openomf/releases/tag/0.8.0
    https://github.com/omf2097/openomf/releases/tag/0.8.1-rc2
    https://github.com/omf2097/openomf/releases/tag/0.8.1-rc3
    https://github.com/omf2097/openomf/releases/tag/0.8.1
    https://github.com/omf2097/openomf/releases/tag/0.8.2
    https://github.com/omf2097/openomf/releases/tag/0.8.3-fk1
    https://github.com/omf2097/openomf/releases/tag/0.8.3
    
    Improve port:
    - Add github to WWW.
    - Add LICENSE.
    - Switch to default cmake build instead of cmake:insource.
    - Parapetrize "openomf" with "${PORTNAME}" in several places.
    - Fix warnings from portclippy and portlint.
    
    PR:             289093
    Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
---
 games/openomf/Makefile                             | 67 +++++++++-------------
 games/openomf/distinfo                             |  9 +--
 games/openomf/files/patch-CMakeLists.txt           | 23 --------
 games/openomf/files/patch-src_main.c               | 11 ----
 .../files/patch-src_resources_pathmanager.c        | 26 ++++-----
 games/openomf/pkg-plist                            | 19 +++++-
 6 files changed, 62 insertions(+), 93 deletions(-)

diff --git a/games/openomf/Makefile b/games/openomf/Makefile
index b3dafd2baa53..f7c1120c267a 100644
--- a/games/openomf/Makefile
+++ b/games/openomf/Makefile
@@ -1,59 +1,48 @@
 PORTNAME=	openomf
-PORTVERSION=	0.6.5
-PORTREVISION=	6
+DISTVERSION=	0.8.3
 CATEGORIES=	games
 MASTER_SITES=	http://www.omf2097.com/pub/files/omf/:data
-DISTFILES+=	omf2097.rar:data
-EXTRACT_ONLY=	${DISTFILE_shadow} ${DISTFILE_libdumb} \
-		${DISTNAME}.tar.gz
+DISTFILES=	omf2097.rar:data
 
 MAINTAINER=	devel@stasyan.com
 COMMENT=	Rewritten engine for One Must Fall 2097
-WWW=		https://www.openomf.org/
+WWW=		https://www.openomf.org/ \
+		https://github.com/omf2097/openomf/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
 LIB_DEPENDS=	libconfuse.so:devel/libconfuse \
+		libenet.so:net/enet \
+		libepoxy.so:graphics/libepoxy \
+		libminiupnpc.so:net/miniupnpc \
+		libnatpmp.so:net/libnatpmp \
+		libopusfile.so:audio/opusfile \
 		libpng.so:graphics/png \
-		libargtable2.so:devel/argtable \
-		libenet.so:net/enet
-EXTRACT_DEPENDS=	unrar:archivers/unrar
+		libxmp.so:audio/libxmp
 
+USES=		cmake compiler:c++11-lang sdl
 USE_GITHUB=	yes
 GH_ACCOUNT=	omf2097
-GH_TAGNAME=	c36c421
-GH_TUPLE=	omf2097:libShadowDive:b2c34a6:shadow \
-		kode54:dumb:238f23c:libdumb
-
-USES=		cmake:insource compiler:c++11-lang gettext openal sdl
-USE_SDL=	sdl2
+USE_SDL=	mixer2 sdl2
 
 LDFLAGS_i386=	-Wl,-znotext
 
-DESKTOP_ENTRIES="OpenOMF" "" \
-		"${PREFIX}/share/openomf/openomf_icon.png " \
-		"openomf" "Game;ArcadeGame;" false
-
-.include <bsd.port.options.mk>
-
-post-extract:
-	${RMDIR} ${WRKSRC}/external/libShadowDive
-	${LN} -s ${WRKSRC_shadow} ${WRKSRC}/external/libShadowDive
-	${LN} -s ${WRKSRC_libdumb}/dumb ${WRKSRC}/external/dumb
-	${MKDIR} ${WRKDIR}/omf
-	cd ${WRKDIR}/omf && unrar e -idq ${DISTDIR}/omf2097.rar
+DESKTOP_ENTRIES=	"OpenOMF" "" \
+			"${DATADIR}/${PORTNAME}.png " \
+			"${PORTNAME}" "Game;ArcadeGame;" false
 
 post-patch:
-	${REINPLACE_CMD} -e 's,%%PREFIX%%,"${PREFIX}",g' \
+	${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/src/resources/pathmanager.c
-.if ${ARCH} != i386
-	${REINPLACE_CMD} -e 's,-msse ,,' \
-		${WRKSRC}/external/dumb/dumb/cmake/CMakeLists.txt
-.endif
-
-do-install:
-	${INSTALL_PROGRAM} ${WRKSRC}/openomf ${STAGEDIR}${PREFIX}/bin
-	@${MKDIR} ${STAGEDIR}${DATADIR}
-	${INSTALL_DATA} ${WRKSRC}/resources/openomf_icon.png ${STAGEDIR}${DATADIR}
-	${INSTALL_DATA} ${WRKSRC}/resources/openomf.bk ${STAGEDIR}${DATADIR}
-	(cd ${WRKDIR}/omf && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR})
+	${REINPLACE_CMD} -e 's|share/games/openomf|share/openomf|g' \
+		${WRKSRC}/CMakeLists.txt \
+		${WRKSRC}/cmake-scripts/BuildLanguages.cmake
+
+post-install:
+	(cd ${WRKDIR}/OMF2097 && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR})
+	(cd ${WRKSRC}/resources && \
+		${INSTALL_DATA} DANISH.TXT DANISH2.TXT ENGLISH2.TXT GERMAN2.TXT \
+		${STAGEDIR}${DATADIR})
 
 .include <bsd.port.mk>
diff --git a/games/openomf/distinfo b/games/openomf/distinfo
index 78596da2f57f..718dbc1e002e 100644
--- a/games/openomf/distinfo
+++ b/games/openomf/distinfo
@@ -1,8 +1,5 @@
+TIMESTAMP = 1750522810
 SHA256 (omf2097.rar) = bc2ce50b8ea282b61e9685e883436e9cb4bcf7bacec0a58f0a685f20289f8a13
 SIZE (omf2097.rar) = 6345106
-SHA256 (omf2097-openomf-0.6.5-c36c421_GH0.tar.gz) = e8837884e6813f42c4fc0b7864f65c343f8831f1e66247cb82e7bfcb2cc06f08
-SIZE (omf2097-openomf-0.6.5-c36c421_GH0.tar.gz) = 259458
-SHA256 (omf2097-libShadowDive-b2c34a6_GH0.tar.gz) = 47e33af4f03539c39045eba2ad150ff88195f326c8d8f82d31b82738da5731da
-SIZE (omf2097-libShadowDive-b2c34a6_GH0.tar.gz) = 113591
-SHA256 (kode54-dumb-238f23c_GH0.tar.gz) = d49d1a211b5eb3fd446bcd4a7ba7710b056e0579ad7bfa1d7a7ea99956f79c91
-SIZE (kode54-dumb-238f23c_GH0.tar.gz) = 178894
+SHA256 (omf2097-openomf-0.8.3_GH0.tar.gz) = f31bce32acef44af214a194730968e4f71b83765c0d339b7170494917a7dfdcb
+SIZE (omf2097-openomf-0.8.3_GH0.tar.gz) = 812837
diff --git a/games/openomf/files/patch-CMakeLists.txt b/games/openomf/files/patch-CMakeLists.txt
deleted file mode 100644
index 9e046cc0c01e..000000000000
--- a/games/openomf/files/patch-CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
---- CMakeLists.txt.orig	2016-01-10 17:37:25 UTC
-+++ CMakeLists.txt
-@@ -67,6 +67,7 @@ ENDIF()
- find_package(SDL2)
- find_package(enet)
- find_package(confuse)
-+find_package(Gettext)
- 
- # Check functions and generate platform configuration file
- CHECK_SYMBOL_EXISTS(strdup "string.h" HAVE_STD_STRDUP)
-@@ -320,10 +321,10 @@ ENDIF()
- # Handle module playback libraries
- IF(USE_SUBMODULES)
-     set(CORELIBS ${CORELIBS} dumb)
--    set(COREINCS ${COREINCS} ${DUMB_INCLUDE_DIR})
-+    set(COREINCS ${DUMB_INCLUDE_DIR} ${COREINCS} )
- ELSEIF(USE_DUMB)
-     set(CORELIBS ${CORELIBS} ${DUMB_LIBRARY})
--    set(COREINCS ${COREINCS} ${DUMB_INCLUDE_DIR})
-+    set(COREINCS ${DUMB_INCLUDE_DIR} ${COREINCS})
- ENDIF()
- IF(USE_MODPLUG)
-     set(CORELIBS ${CORELIBS} ${MODPLUG_LIBRARY})
diff --git a/games/openomf/files/patch-src_main.c b/games/openomf/files/patch-src_main.c
deleted file mode 100644
index 7a27405be42c..000000000000
--- a/games/openomf/files/patch-src_main.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/main.c.orig	2016-01-10 17:37:25 UTC
-+++ src/main.c
-@@ -156,7 +156,7 @@ int main(int argc, char *argv[]) {
-     INFO("Running on platform: %s", SDL_GetPlatform());
- 
- #ifndef STANDALONE_SERVER
--    if(SDL_InitSubSystem(SDL_INIT_JOYSTICK|SDL_INIT_GAMECONTROLLER|SDL_INIT_HAPTIC)) {
-+    if(SDL_InitSubSystem(SDL_INIT_JOYSTICK|SDL_INIT_GAMECONTROLLER)) {
-         err_msgbox("SDL2 Initialization failed: %s", SDL_GetError());
-         goto exit_2;
-     }
diff --git a/games/openomf/files/patch-src_resources_pathmanager.c b/games/openomf/files/patch-src_resources_pathmanager.c
index 7e9ec87edaed..365a06c92ef9 100644
--- a/games/openomf/files/patch-src_resources_pathmanager.c
+++ b/games/openomf/files/patch-src_resources_pathmanager.c
@@ -1,16 +1,16 @@
 --- src/resources/pathmanager.c.orig	2016-01-10 17:37:25 UTC
 +++ src/resources/pathmanager.c
-@@ -85,11 +85,11 @@ int pm_init() {
-                 local_path_build(RESOURCE_PATH, bin_base_dir, "resources\\");
-                 local_path_build(PLUGIN_PATH, bin_base_dir, "plugins\\");
+@@ -133,6 +133,13 @@ int pm_init() {
+                 local_path_build(RESOURCE_PATH, bin_base_dir, "../share/games/openomf/");
+                 local_path_build(SHADER_PATH, bin_base_dir, "../share/games/openomf/shaders/");
                  m_ok = 1;
--            } else if(!strcasecmp(SDL_GetPlatform(), "Linux")) {
-+            } else if(!strcasecmp(SDL_GetPlatform(), "FreeBSD")) {
-                 // on linux, the resources will be in ../share/games/openomf, relative to the binary
-                 // so if openomf is installed to /usr/local/bin,
-                 // the resources will be in /usr/local/share/games/openomf
--                local_path_build(RESOURCE_PATH, bin_base_dir, "../share/games/openomf/");
-+                local_path_build(RESOURCE_PATH, %%PREFIX%%, "/share/openomf/");
-                 local_path_build(PLUGIN_PATH, bin_base_dir, "../lib/openomf/");
-                 m_ok = 1;
-             } else if(!strcasecmp(SDL_GetPlatform(), "Mac OS X")) {
++            } else if(strcmp(SDL_GetPlatform(), "FreeBSD") == 0) {
++                // on FreeBSD, the resources will be in ../share/openomf, relative to the binary
++                // so if openomf is installed to %%PREFIX%%/bin,
++                // the resources will be in %%PREFIX%%/share/openomf
++                local_path_build(RESOURCE_PATH, bin_base_dir, "../share/openomf/");
++                local_path_build(SHADER_PATH, bin_base_dir, "../share/openomf/shaders/");
++                m_ok = 1;
+             } else if(strcmp(SDL_GetPlatform(), "Mac OS X") == 0) {
+                 // on OSX, GetBasePath returns the 'Resources' directory
+                 // if run from an app bundle, so we can use this as-is
diff --git a/games/openomf/pkg-plist b/games/openomf/pkg-plist
index 05c83afc117f..91e475ead0b5 100644
--- a/games/openomf/pkg-plist
+++ b/games/openomf/pkg-plist
@@ -12,12 +12,18 @@ bin/openomf
 %%DATADIR%%/ARENA4.PSM
 %%DATADIR%%/CHARSMAL.DAT
 %%DATADIR%%/CREDITS.BK
+%%DATADIR%%/DANISH.LNG
+%%DATADIR%%/DANISH.LNG2
+%%DATADIR%%/DANISH.TXT
+%%DATADIR%%/DANISH2.TXT
 %%DATADIR%%/DOS4GW.EXE
 %%DATADIR%%/END.BK
 %%DATADIR%%/END.PSM
 %%DATADIR%%/END1.BK
 %%DATADIR%%/END2.BK
 %%DATADIR%%/ENGLISH.DAT
+%%DATADIR%%/ENGLISH.DAT2
+%%DATADIR%%/ENGLISH2.TXT
 %%DATADIR%%/FIGHTR0.AF
 %%DATADIR%%/FIGHTR1.AF
 %%DATADIR%%/FIGHTR10.AF
@@ -32,6 +38,8 @@ bin/openomf
 %%DATADIR%%/FILE0001.EXE
 %%DATADIR%%/FILE_ID.DIZ
 %%DATADIR%%/GERMAN.DAT
+%%DATADIR%%/GERMAN.DAT2
+%%DATADIR%%/GERMAN2.TXT
 %%DATADIR%%/GRAPHCHR.DAT
 %%DATADIR%%/HELPME.DOC
 %%DATADIR%%/HELPME.EXE
@@ -39,7 +47,10 @@ bin/openomf
 %%DATADIR%%/KATUSHAI.BK
 %%DATADIR%%/KATUSHAI.PIC
 %%DATADIR%%/KATUSHAI.TRN
+%%DATADIR%%/LICENSE
 %%DATADIR%%/LICENSE.DOC
+%%DATADIR%%/LICENSE.argtable3
+%%DATADIR%%/LICENSE.gamecontrollerdb
 %%DATADIR%%/MAIN.BK
 %%DATADIR%%/MANUAL.DOC
 %%DATADIR%%/MASTER.DAT
@@ -79,6 +90,7 @@ bin/openomf
 %%DATADIR%%/ORDER_UK.DOC
 %%DATADIR%%/PLAYERS.PIC
 %%DATADIR%%/RANDOM.DAT
+%%DATADIR%%/README.md
 %%DATADIR%%/SETUP.BOX
 %%DATADIR%%/SETUP.CFG
 %%DATADIR%%/SETUP.EXE
@@ -91,5 +103,10 @@ bin/openomf
 %%DATADIR%%/WORLD.BK
 %%DATADIR%%/WORLD.PIC
 %%DATADIR%%/WORLD.TRN
+%%DATADIR%%/gamecontrollerdb.txt
 %%DATADIR%%/openomf.bk
-%%DATADIR%%/openomf_icon.png
+%%DATADIR%%/openomf.png
+%%DATADIR%%/shaders/palette.frag
+%%DATADIR%%/shaders/palette.vert
+%%DATADIR%%/shaders/rgba.frag
+%%DATADIR%%/shaders/rgba.vert