From: Rafael Sadowski Subject: Re: fs2open update to 23.2.1 To: Thomas Frohwein Cc: ports@openbsd.org Date: Sun, 14 Jan 2024 10:19:44 +0100 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 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; >