Index | Thread | Search

From:
Thomas Frohwein <tfrohwein@fastmail.com>
Subject:
fs2open update to 23.2.1
To:
ports@openbsd.org
Cc:
rafael@sizeofvoid.org
Date:
Sat, 13 Jan 2024 23:57:38 -0500

Download raw body.

Thread
Hi,

This diff updates fs2open to the latest version 23.2.1. Using
DIST_TUPLE now simplifies the submodule handling quite a bit. I
enabled vulkan again because it builds with it, though I only get a
test image with a multi-colored triangle when trying to run the game
with '-vulkan'. The vendored libhidapi needs a dependency on libusb1
which is added now. I also found that the vendored imgui tries to
dlopen(3) libGL.so.1 which fails, so patch this to drop the version
suffix.

Tested with a brief play session and planning to commit the update soon
if no issues are raised.

Index: Makefile
===================================================================
RCS file: /cvs/ports/games/fs2open/Makefile,v
retrieving revision 1.19
diff -u -p -r1.19 Makefile
--- Makefile	26 Sep 2023 17:58:07 -0000	1.19
+++ Makefile	14 Jan 2024 04:52:16 -0000
@@ -3,11 +3,8 @@ ONLY_FOR_ARCHS =	aarch64 amd64 i386
 
 COMMENT =	open source game engine based on FreeSpace 2
 
-V =		23.0.0
-DISTNAME =	fs2open-${V}
-GH_ACCOUNT =	scp-fs2open
-GH_PROJECT =	fs2open.github.com
-GH_TAGNAME =	release_${V:S/./_/g}
+V =		23.2.1
+PKGNAME =	fs2open-${V}
 
 CATEGORIES =	games
 
@@ -17,21 +14,18 @@ MAINTAINER =	Thomas Frohwein <thfr@openb
 PERMIT_PACKAGE =	no license at all
 PERMIT_DISTFILES =	no license at all
 
-# if running with vulkan backend, dlopen's vulkan in vulkan.hpp
-WANTLIB += ${COMPILER_LIBCXX} SDL2 avcodec avformat avutil c freetype
+# GL is dlopen'd
+WANTLIB += ${COMPILER_LIBCXX} GL SDL2 avcodec avformat avutil c freetype iconv
 WANTLIB += jansson jpeg ${MODLUA_WANTLIB} m openal png swresample swscale
-WANTLIB += vulkan z
+WANTLIB += usb-1.0 vulkan z
 
-RPAVLIK_CMAKE_MOD =	7cef9577d6fc35057ea57f46b4986a8a28aeff50
-LIBROCKET =		ecd648a43aff8a9f3daf064d75ca5725237d5b38
-
-SITES.a =	https://github.com/asarium/cmake-modules/archive/
-SITES.b =	https://github.com/asarium/libRocket/archive/
-
-DISTFILES.a =		${RPAVLIK_CMAKE_MOD}.tar.gz
-DISTFILES.b = 		${LIBROCKET}.tar.gz
-
-DIST_SUBDIR =		fs2open-${V}
+DIST_TUPLE +=	github scp-fs2open fs2open.github.com release_${V:S/./_/g} .
+DIST_TUPLE +=	github asarium cmake-modules \
+		7cef9577d6fc35057ea57f46b4986a8a28aeff50 \
+		cmake/external/rpavlik-cmake-modules # Boost License 1.0
+DIST_TUPLE +=	github asarium libRocket \
+		ecd648a43aff8a9f3daf064d75ca5725237d5b38 \
+		lib/libRocket # MIT
 
 # c++11
 COMPILER =		base-clang ports-gcc
@@ -39,6 +33,7 @@ MODULES =		devel/cmake \
 			lang/lua
 LIB_DEPENDS =		audio/openal \
 			devel/jansson \
+			devel/libusb1 \
 			devel/sdl2 \
 			graphics/ffmpeg \
 			graphics/png \
@@ -47,25 +42,18 @@ LIB_DEPENDS =		audio/openal \
 CXXFLAGS +=		-I${X11BASE}/include -I${LOCALBASE}/include
 MODCMAKE_LDFLAGS =	-L${X11BASE}/lib -L${LOCALBASE}/lib
 
-# Disable Vulkan because of build failure, since upgrade to 1.3.224.1:
-# code/graphics/vulkan/VulkanRenderer.cpp:794:21: error: no viable overloaded '='
-# m_graphicsPipeline = m_device->createGraphicsPipelineUnique(nullptr, pipelineInfo);
 CONFIGURE_ARGS =	-DCMAKE_INSTALL_PREFIX=${LOCALBASE}/share/fs2open \
 			-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=On \
-			-DFSO_BUILD_WITH_VULKAN=Off
+			-DFSO_BUILD_WITH_VULKAN=On
 
 # currently not building; would be ${WRKBUILD}/bin/unittests
 NO_TEST =		Yes
 
+WRKDIST =		${WRKDIR}/fs2open.github.com-release_${V:S/./_/g}
+
 # remove bundled SDL
 post-extract:
 	rm -rf	${WRKSRC}/lib/libsdl
-	rmdir	${WRKSRC}/cmake/external/rpavlik-cmake-modules
-	ln -s	${WRKDIR}/cmake-modules-${RPAVLIK_CMAKE_MOD} \
-		${WRKSRC}/cmake/external/rpavlik-cmake-modules
-	rmdir	${WRKSRC}/lib/libRocket
-	ln -s	${WRKDIR}/libRocket-${LIBROCKET} \
-		${WRKSRC}/lib/libRocket
 
 do-gen:
 	${SUBST_CMD} ${WRKSRC}/CMakeLists.txt
Index: distinfo
===================================================================
RCS file: /cvs/ports/games/fs2open/distinfo,v
retrieving revision 1.7
diff -u -p -r1.7 distinfo
--- distinfo	22 Feb 2023 06:51:24 -0000	1.7
+++ distinfo	14 Jan 2024 04:52:16 -0000
@@ -1,6 +1,6 @@
-SHA256 (fs2open-23.0.0/7cef9577d6fc35057ea57f46b4986a8a28aeff50.tar.gz) = e2kS2gGlbuyljBP4u7B7YSCvjwRyIxZ0fcgTKo7GWso=
-SHA256 (fs2open-23.0.0/ecd648a43aff8a9f3daf064d75ca5725237d5b38.tar.gz) = JcjDM2xciQqxzt/90Z17tubwjVy+HASUyiAs+5h/Tfc=
-SHA256 (fs2open-23.0.0/fs2open-23.0.0.tar.gz) = AZok/u73pI+BcPAznFUwEisya9iPtz6ddRW/6eU4Gqg=
-SIZE (fs2open-23.0.0/7cef9577d6fc35057ea57f46b4986a8a28aeff50.tar.gz) = 267464
-SIZE (fs2open-23.0.0/ecd648a43aff8a9f3daf064d75ca5725237d5b38.tar.gz) = 2417905
-SIZE (fs2open-23.0.0/fs2open-23.0.0.tar.gz) = 12210430
+SHA256 (asarium-cmake-modules-7cef9577d6fc35057ea57f46b4986a8a28aeff50.tar.gz) = e2kS2gGlbuyljBP4u7B7YSCvjwRyIxZ0fcgTKo7GWso=
+SHA256 (asarium-libRocket-ecd648a43aff8a9f3daf064d75ca5725237d5b38.tar.gz) = JcjDM2xciQqxzt/90Z17tubwjVy+HASUyiAs+5h/Tfc=
+SHA256 (scp-fs2open-fs2open.github.com-release_23_2_1.tar.gz) = kOF0mdyZk3DmQV+1a0a3VbA7GH8DAUz4qYOjnTrd4Bs=
+SIZE (asarium-cmake-modules-7cef9577d6fc35057ea57f46b4986a8a28aeff50.tar.gz) = 267464
+SIZE (asarium-libRocket-ecd648a43aff8a9f3daf064d75ca5725237d5b38.tar.gz) = 2417905
+SIZE (scp-fs2open-fs2open.github.com-release_23_2_1.tar.gz) = 12091345
Index: patches/patch-cmake_toolchain-clang_cmake
===================================================================
RCS file: /cvs/ports/games/fs2open/patches/patch-cmake_toolchain-clang_cmake,v
retrieving revision 1.4
diff -u -p -r1.4 patch-cmake_toolchain-clang_cmake
--- patches/patch-cmake_toolchain-clang_cmake	11 Mar 2022 19:04:26 -0000	1.4
+++ patches/patch-cmake_toolchain-clang_cmake	14 Jan 2024 04:52:16 -0000
@@ -1,4 +1,4 @@
-remove hardcoded -O{0,2} flags
+remove hardcoded optimization flags
 
 Index: cmake/toolchain-clang.cmake
 --- cmake/toolchain-clang.cmake.orig
@@ -10,7 +10,7 @@ Index: cmake/toolchain-clang.cmake
 -set(COMPILER_FLAGS_RELEASE "-O2 -Wno-unused-variable -Wno-unused-parameter")
 +set(COMPILER_FLAGS_RELEASE "-Wno-unused-variable -Wno-unused-parameter")
  
--set(COMPILER_FLAGS_DEBUG "-O0 -g -Wshadow")
+-set(COMPILER_FLAGS_DEBUG "-Og -g -Wshadow")
 +set(COMPILER_FLAGS_DEBUG "-g -Wshadow")
  
  # Always use the base flags and add our compiler flags at the bacl
Index: patches/patch-cmake_toolchain-gcc_cmake
===================================================================
RCS file: /cvs/ports/games/fs2open/patches/patch-cmake_toolchain-gcc_cmake,v
retrieving revision 1.5
diff -u -p -r1.5 patch-cmake_toolchain-gcc_cmake
--- patches/patch-cmake_toolchain-gcc_cmake	20 Aug 2022 06:27:04 -0000	1.5
+++ patches/patch-cmake_toolchain-gcc_cmake	14 Jan 2024 04:52:16 -0000
@@ -1,4 +1,4 @@
-remove hardcoded -O{0,2} flags
+remove hardcoded optimization flags
 
 Index: cmake/toolchain-gcc.cmake
 --- cmake/toolchain-gcc.cmake.orig
@@ -10,7 +10,7 @@ Index: cmake/toolchain-gcc.cmake
 -set(COMPILER_FLAGS_RELEASE "-O2 -Wno-unused-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-empty-body -Wno-clobbered  -Wno-unused-parameter")
 +set(COMPILER_FLAGS_RELEASE "-Wno-unused-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-empty-body -Wno-clobbered  -Wno-unused-parameter")
  
--set(COMPILER_FLAGS_DEBUG "-O0 -g -Wshadow")
+-set(COMPILER_FLAGS_DEBUG "-Og -g -Wshadow")
 +set(COMPILER_FLAGS_DEBUG "-g -Wshadow")
  
  # Always use the base flags and add our compiler flags at the back
Index: patches/patch-code_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/games/fs2open/patches/patch-code_CMakeLists_txt,v
retrieving revision 1.3
diff -u -p -r1.3 patch-code_CMakeLists_txt
--- patches/patch-code_CMakeLists_txt	11 Mar 2022 19:04:26 -0000	1.3
+++ patches/patch-code_CMakeLists_txt	14 Jan 2024 04:52:16 -0000
@@ -3,7 +3,7 @@ correct capitalization for libSDL2
 Index: code/CMakeLists.txt
 --- code/CMakeLists.txt.orig
 +++ code/CMakeLists.txt
-@@ -28,7 +28,7 @@ TARGET_LINK_LIBRARIES(code PUBLIC ${PNG_LIBS})
+@@ -31,7 +31,7 @@ TARGET_LINK_LIBRARIES(code PUBLIC ${PNG_LIBS})
  TARGET_LINK_LIBRARIES(code PUBLIC ${JPEG_LIBS})
  TARGET_LINK_LIBRARIES(code PUBLIC lz4)
  
Index: patches/patch-lib_imgui_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/games/fs2open/patches/patch-lib_imgui_CMakeLists_txt,v
retrieving revision 1.1
diff -u -p -r1.1 patch-lib_imgui_CMakeLists_txt
--- patches/patch-lib_imgui_CMakeLists_txt	22 Feb 2023 06:51:24 -0000	1.1
+++ patches/patch-lib_imgui_CMakeLists_txt	14 Jan 2024 04:52:16 -0000
@@ -1,7 +1,7 @@
 Index: lib/imgui/CMakeLists.txt
 --- lib/imgui/CMakeLists.txt.orig
 +++ lib/imgui/CMakeLists.txt
-@@ -28,7 +28,7 @@ target_include_directories(imgui SYSTEM PUBLIC "${CMAK
+@@ -35,7 +35,7 @@ target_include_directories(imgui SYSTEM PUBLIC "${CMAK
  suppress_warnings(imgui)
  
  set_target_properties(imgui PROPERTIES FOLDER "3rdparty")
@@ -9,4 +9,4 @@ Index: lib/imgui/CMakeLists.txt
 +TARGET_LINK_LIBRARIES(imgui PUBLIC SDL2)
  target_link_libraries(imgui PUBLIC compiler)
  
- 
+ if (FSO_BUILD_WITH_VULKAN)
Index: patches/patch-lib_imgui_backends_imgui_impl_opengl3_loader_h
===================================================================
RCS file: patches/patch-lib_imgui_backends_imgui_impl_opengl3_loader_h
diff -N patches/patch-lib_imgui_backends_imgui_impl_opengl3_loader_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_imgui_backends_imgui_impl_opengl3_loader_h	14 Jan 2024 04:52:16 -0000
@@ -0,0 +1,14 @@
+dlopen correctly - leave out Linux version suffix
+
+Index: lib/imgui/backends/imgui_impl_opengl3_loader.h
+--- lib/imgui/backends/imgui_impl_opengl3_loader.h.orig
++++ lib/imgui/backends/imgui_impl_opengl3_loader.h
+@@ -658,7 +658,7 @@ static GL3WglProc (*glx_get_proc_address)(const GLubyt
+ 
+ static int open_libgl(void)
+ {
+-    libgl = dlopen("libGL.so.1", RTLD_LAZY | RTLD_LOCAL);
++    libgl = dlopen("libGL.so", RTLD_LAZY | RTLD_LOCAL);
+     if (!libgl)
+         return GL3W_ERROR_LIBRARY_OPEN;
+     *(void **)(&glx_get_proc_address) = dlsym(libgl, "glXGetProcAddressARB");
Index: patches/patch-lib_vulkan-hpp_vulkan_vulkan_hpp
===================================================================
RCS file: patches/patch-lib_vulkan-hpp_vulkan_vulkan_hpp
diff -N patches/patch-lib_vulkan-hpp_vulkan_vulkan_hpp
--- patches/patch-lib_vulkan-hpp_vulkan_vulkan_hpp	11 Mar 2022 19:04:26 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: lib/vulkan-hpp/vulkan/vulkan.hpp
---- lib/vulkan-hpp/vulkan/vulkan.hpp.orig
-+++ lib/vulkan-hpp/vulkan/vulkan.hpp
-@@ -67999,7 +67999,7 @@ namespace VULKAN_HPP_NAMESPACE
- 
-   private:
-     bool m_success;
--#if defined(__linux__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__)
-     void *m_library;
- #elif defined(_WIN32)
-     HMODULE m_library;