Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
Re: fs2open update to 23.2.1
To:
Thomas Frohwein <tfrohwein@fastmail.com>
Cc:
ports@openbsd.org
Date:
Sun, 14 Jan 2024 10:19:44 +0100

Download raw body.

Thread
On Sat Jan 13, 2024 at 11:57:38PM -0500, Thomas Frohwein wrote:
> 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.

Starts without notable issues and the gameplay is still smooth.

OK rsadowski

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