Hi, This is an update for fs2open to 19.0.0 which was released in January. I'm planning to get this update in before ports tree locks. As it's a non-trivial one, some additional eyes and input would be appreciated.
Notes: - Changelog: https://github.com/scp-fs2open/fs2open.github.com/releases/tag/release_19_0_0 - disables bundles SDL2 which is running behind (2.0.10 vs 2.0.12) - tested on both radeon (earlier draft) and intel Coffeelake. I noticed that with radeon (Radeon HD 6870), I was unable to get the first mission in nebula to load. It's called Mystery of the Trinity (Act 1, Mission 5) and analysis of the coredump implicates code/graphics/opengl/gropenglshader.cpp:790. No such issue with intel. Likely an issue with shader support on Radeon. - had to rename a variable _L -> _LuaState to avoid clash with a macro in ctype.h - Expanded the README because fullscreen tends to have issues with scaling correctly. This issue was already present in prior versions. - all other changes are generally trivial oks? comments? Index: Makefile =================================================================== RCS file: /cvs/ports/games/fs2open/Makefile,v retrieving revision 1.8 diff -u -p -r1.8 Makefile --- Makefile 20 Aug 2020 17:32:37 -0000 1.8 +++ Makefile 4 Sep 2020 21:42:54 -0000 @@ -1,11 +1,10 @@ -# $OpenBSD: Makefile,v 1.8 2020/08/20 17:32:37 thfr Exp $ +# $OpenBSD: Makefile,v 1.7 2019/07/14 02:16:51 naddy Exp $ COMMENT = open source game engine based on FreeSpace 2 -V = 3.8.0 +V = 19.0.0 DISTNAME = fs2_open_${V:S/./_/g}-source-Unix PKGNAME = fs2open-${V} -REVISION = 3 CATEGORIES = games @@ -19,14 +18,11 @@ PERMIT_DISTFILES = no license at all WANTLIB += ${COMPILER_LIBCXX} c m z WANTLIB += SDL2 ${MODLUA_WANTLIB} openal -WANTLIB += avcodec avformat avutil jpeg swresample swscale +WANTLIB += avcodec avformat avutil freetype jpeg swresample swscale WANTLIB += jansson png MASTER_SITES = https://github.com/scp-fs2open/fs2open.github.com/releases/download/release_${V:S/./_/g}/ -# Remove on next update -DISTFILES = ${DISTNAME}_1{${DISTNAME}}${EXTRACT_SUFX} - # c++11 COMPILER = base-clang ports-gcc MODULES = devel/cmake \ @@ -40,12 +36,20 @@ LIB_DEPENDS = audio/openal \ CONFIGURE_ARGS = -DCMAKE_INSTALL_PREFIX=${LOCALBASE}/share/fs2open \ -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen:Bool=Yes +# currently not building; would be ${WRKBUILD}/bin/unittests NO_TEST = Yes WRKDIST = ${WRKDIR}/fs2open.github.com +# remove bundled SDL +post-extract: + rm -rf ${WRKSRC}/lib/libsdl + pre-patch: @cd ${WRKSRC} && perl -i -pe 's/\r$$//' code/utils/boost/syncboundedqueue.h + +do-gen: + ${SUBST_CMD} ${WRKSRC}/CMakeLists.txt post-install: ${SUBST_CMD} -c -m 755 ${FILESDIR}/fs2open ${PREFIX}/bin/fs2open Index: distinfo =================================================================== RCS file: /cvs/ports/games/fs2open/distinfo,v retrieving revision 1.3 diff -u -p -r1.3 distinfo --- distinfo 2 Mar 2018 06:59:06 -0000 1.3 +++ distinfo 4 Sep 2020 21:42:54 -0000 @@ -1,2 +1,2 @@ -SHA256 (fs2_open_3_8_0-source-Unix_1.tar.gz) = 0m/4tma9rh6fQquvL0mNs2EJPyKJ2nhVXx9vu6dWIic= -SIZE (fs2_open_3_8_0-source-Unix_1.tar.gz) = 9040907 +SHA256 (fs2_open_19_0_0-source-Unix.tar.gz) = lRzBrQo8iZ3VNRXrGpfDxxndhL3b3QHdkXeIT5klYo4= +SIZE (fs2_open_19_0_0-source-Unix.tar.gz) = 12195030 Index: patches/patch-CMakeLists_txt =================================================================== RCS file: /cvs/ports/games/fs2open/patches/patch-CMakeLists_txt,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-CMakeLists_txt --- patches/patch-CMakeLists_txt 16 Feb 2018 11:39:51 -0000 1.1.1.1 +++ patches/patch-CMakeLists_txt 4 Sep 2020 21:42:54 -0000 @@ -1,13 +1,23 @@ $OpenBSD: patch-CMakeLists_txt,v 1.1.1.1 2018/02/16 11:39:51 kirby Exp $ +add include and lib directories to find system SDL2 try to avoid get_target_property error -remove cotire submodule dependency Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -13,6 +13,7 @@ include(cmake/util.cmake) - set_policy(CMP0051 OLD) +@@ -2,6 +2,9 @@ + CMAKE_MINIMUM_REQUIRED(VERSION 3.4) + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + ++include_directories( "${LOCALBASE}/include" "${LOCALBASE}/include/SDL2" ) ++link_directories( "${LOCALBASE}/lib" ) ++ + # Make sure the source and binary directory are not the sample + if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") + message(FATAL_ERROR "Binary and source directory can not be the same! Choose another build directory.") +@@ -13,6 +16,7 @@ include(cmake/util.cmake) + set_policy(CMP0051 NEW) set_policy(CMP0053 NEW) set_policy(CMP0054 NEW) +set_policy(CMP0026 OLD) # to avoid get_target_property error Index: patches/patch-cmake_platformChecks_cmake =================================================================== RCS file: /cvs/ports/games/fs2open/patches/patch-cmake_platformChecks_cmake,v retrieving revision 1.1 diff -u -p -r1.1 patch-cmake_platformChecks_cmake --- patches/patch-cmake_platformChecks_cmake 29 May 2018 07:32:31 -0000 1.1 +++ patches/patch-cmake_platformChecks_cmake 4 Sep 2020 21:42:54 -0000 @@ -1,4 +1,4 @@ -$OpenBSD: patch-cmake_platformChecks_cmake,v 1.1 2018/05/29 07:32:31 kirby Exp $ +$OpenBSD$ Index: cmake/platformChecks.cmake --- cmake/platformChecks.cmake.orig @@ -7,8 +7,8 @@ Index: cmake/platformChecks.cmake include(CheckCXXSymbolExists) include(CheckTypeSize) --CHECK_INCLUDE_FILE("execinfo.h" HAVE_EXECINFO_H) -+#CHECK_INCLUDE_FILE("execinfo.h" HAVE_EXECINFO_H) - CHECK_INCLUDE_FILE_CXX("cxxabi.h" HAVE_CXXAPI_H) +-CHECK_INCLUDE_FILE("execinfo.h" SCP_HAVE_EXECINFO_H) ++#CHECK_INCLUDE_FILE("execinfo.h" SCP_HAVE_EXECINFO_H) + CHECK_INCLUDE_FILE_CXX("cxxabi.h" SCP_HAVE_CXXAPI_H) CHECK_TYPE_SIZE("max_align_t" MAX_ALIGN_T) Index: patches/patch-cmake_toolchain-clang_cmake =================================================================== RCS file: /cvs/ports/games/fs2open/patches/patch-cmake_toolchain-clang_cmake,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-cmake_toolchain-clang_cmake --- patches/patch-cmake_toolchain-clang_cmake 16 Feb 2018 11:39:51 -0000 1.1.1.1 +++ patches/patch-cmake_toolchain-clang_cmake 4 Sep 2020 21:42:54 -0000 @@ -1,16 +1,19 @@ -$OpenBSD: patch-cmake_toolchain-clang_cmake,v 1.1.1.1 2018/02/16 11:39:51 kirby Exp $ +$OpenBSD$ -remove hardcoded -O2 +remove hardcoded -O{0,2} flags Index: cmake/toolchain-clang.cmake --- cmake/toolchain-clang.cmake.orig +++ cmake/toolchain-clang.cmake -@@ -80,7 +80,7 @@ if(SUPPORTS_SHIFT_NEGATIVE_VALUE) +@@ -82,9 +82,9 @@ if(SUPPORTS_SHIFT_NEGATIVE_VALUE) set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-shift-negative-value") endif() --set(COMPILER_FLAGS_RELEASE "-O2 -Wno-unused-variable") -+set(COMPILER_FLAGS_RELEASE "-Wno-unused-variable") +-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 "-O0 -g -Wshadow") ++set(COMPILER_FLAGS_DEBUG "-g -Wshadow") + # Always use the base flags and add our compiler flags at the bacl + set(CMAKE_CXX_FLAGS "${CXX_BASE_FLAGS} ${COMPILER_FLAGS}") Index: patches/patch-cmake_toolchain-gcc_cmake =================================================================== RCS file: /cvs/ports/games/fs2open/patches/patch-cmake_toolchain-gcc_cmake,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-cmake_toolchain-gcc_cmake --- patches/patch-cmake_toolchain-gcc_cmake 16 Feb 2018 11:39:51 -0000 1.1.1.1 +++ patches/patch-cmake_toolchain-gcc_cmake 4 Sep 2020 21:42:54 -0000 @@ -1,16 +1,19 @@ -$OpenBSD: patch-cmake_toolchain-gcc_cmake,v 1.1.1.1 2018/02/16 11:39:51 kirby Exp $ +$OpenBSD$ -remove hardcoded -O2 +remove hardcoded -O{0,2} flags Index: cmake/toolchain-gcc.cmake --- cmake/toolchain-gcc.cmake.orig +++ cmake/toolchain-gcc.cmake -@@ -87,7 +87,7 @@ set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-deprecated +@@ -94,9 +94,9 @@ if(SUPPORTS_STRINGOP_TRUNCATION) + set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-stringop-overflow") + endif() - set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-unused-parameter") +-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_RELEASE "-O2 -Wno-unused-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-empty-body -Wno-clobbered") -+set(COMPILER_FLAGS_RELEASE "-Wno-unused-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-empty-body -Wno-clobbered") - - set(COMPILER_FLAGS_DEBUG "-O0 -g -Wshadow") +-set(COMPILER_FLAGS_DEBUG "-O0 -g -Wshadow") ++set(COMPILER_FLAGS_DEBUG "-g -Wshadow") + # Always use the base flags and add our compiler flags at the bacl + set(CMAKE_CXX_FLAGS "${CXX_BASE_FLAGS} ${COMPILER_FLAGS}") Index: patches/patch-code_CMakeLists_txt =================================================================== RCS file: patches/patch-code_CMakeLists_txt diff -N patches/patch-code_CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-code_CMakeLists_txt 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +correct capitalization for libSDL2 + +Index: code/CMakeLists.txt +--- code/CMakeLists.txt.orig ++++ code/CMakeLists.txt +@@ -26,7 +26,7 @@ TARGET_LINK_LIBRARIES(code PUBLIC ${LUA_LIBS}) + TARGET_LINK_LIBRARIES(code PUBLIC ${PNG_LIBS}) + TARGET_LINK_LIBRARIES(code PUBLIC ${JPEG_LIBS}) + +-TARGET_LINK_LIBRARIES(code PUBLIC sdl2) ++TARGET_LINK_LIBRARIES(code PUBLIC SDL2) + + TARGET_LINK_LIBRARIES(code PUBLIC ffmpeg) + Index: patches/patch-code_libs_renderdoc_renderdoc_app_h =================================================================== RCS file: patches/patch-code_libs_renderdoc_renderdoc_app_h diff -N patches/patch-code_libs_renderdoc_renderdoc_app_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-code_libs_renderdoc_renderdoc_app_h 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +add to ifdef + +Index: code/libs/renderdoc/renderdoc_app.h +--- code/libs/renderdoc/renderdoc_app.h.orig ++++ code/libs/renderdoc/renderdoc_app.h +@@ -35,7 +35,7 @@ + + #if defined(WIN32) + #define RENDERDOC_CC __cdecl +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__OpenBSD__) + #define RENDERDOC_CC + #elif defined(__APPLE__) + #define RENDERDOC_CC Index: patches/patch-code_libs_renderdoc_renderdoc_cpp =================================================================== RCS file: patches/patch-code_libs_renderdoc_renderdoc_cpp diff -N patches/patch-code_libs_renderdoc_renderdoc_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-code_libs_renderdoc_renderdoc_cpp 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +we don't have RTLD_NOLOAD + +Index: code/libs/renderdoc/renderdoc.cpp +--- code/libs/renderdoc/renderdoc.cpp.orig ++++ code/libs/renderdoc/renderdoc.cpp +@@ -14,7 +14,7 @@ RENDERDOC_API_1_1_1* api = nullptr; + + pRENDERDOC_GetAPI load_getAPI() { + #ifdef SCP_UNIX +- auto handle = dlopen("librenderdoc.so", RTLD_NOLOAD); ++ auto handle = dlopen("librenderdoc.so", RTLD_LAZY); + auto symbol = dlsym(handle, "RENDERDOC_GetAPI"); + + if (handle != nullptr) { Index: patches/patch-code_network_gtrack_cpp =================================================================== RCS file: patches/patch-code_network_gtrack_cpp diff -N patches/patch-code_network_gtrack_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-code_network_gtrack_cpp 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +include sys/socket.h, needed for AF_INET + +Index: code/network/gtrack.cpp +--- code/network/gtrack.cpp.orig ++++ code/network/gtrack.cpp +@@ -25,6 +25,9 @@ + #include "network/ptrack.h" + #include "network/multi_fstracker.h" + ++#ifdef __OpenBSD__ ++#include <sys/socket.h> ++#endif + + // check structs for size compatibility + SDL_COMPILE_TIME_ASSERT(game_packet_header, sizeof(game_packet_header) == 529); Index: patches/patch-code_network_multi_portfwd_cpp =================================================================== RCS file: patches/patch-code_network_multi_portfwd_cpp diff -N patches/patch-code_network_multi_portfwd_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-code_network_multi_portfwd_cpp 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +supply AI_V4MAPPED + +Index: code/network/multi_portfwd.cpp +--- code/network/multi_portfwd.cpp.orig ++++ code/network/multi_portfwd.cpp +@@ -7,6 +7,9 @@ + * + */ + ++/* not supplied in headers */ ++#define AI_V4MAPPED 0x00000800 ++ + #ifdef _WIN32 + #include <winsock2.h> + #include <ws2tcpip.h> Index: patches/patch-code_network_ptrack_cpp =================================================================== RCS file: patches/patch-code_network_ptrack_cpp diff -N patches/patch-code_network_ptrack_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-code_network_ptrack_cpp 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +include sys/socket.h needed for AF_INET + +Index: code/network/ptrack.cpp +--- code/network/ptrack.cpp.orig ++++ code/network/ptrack.cpp +@@ -25,6 +25,9 @@ + #include "network/psnet2.h" + #include "network/multi_fstracker.h" + ++#ifdef __OpenBSD__ ++#include <sys/socket.h> ++#endif + + // check structs for size compatibility + SDL_COMPILE_TIME_ASSERT(udp_packet_header, sizeof(udp_packet_header) == 497); Index: patches/patch-code_network_valid_cpp =================================================================== RCS file: patches/patch-code_network_valid_cpp diff -N patches/patch-code_network_valid_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-code_network_valid_cpp 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +include sys/socket.h + +Index: code/network/valid.cpp +--- code/network/valid.cpp.orig ++++ code/network/valid.cpp +@@ -27,6 +27,9 @@ + #include "network/multi_fstracker.h" + #include "io/timer.h" + ++#ifdef __OpenBSD__ ++#include <sys/socket.h> ++#endif + + // check structs for size compatibility + SDL_COMPILE_TIME_ASSERT(vmt_validate_mission_req_struct, sizeof(vmt_validate_mission_req_struct) == 104); Index: patches/patch-code_osapi_dialogs_cpp =================================================================== RCS file: patches/patch-code_osapi_dialogs_cpp diff -N patches/patch-code_osapi_dialogs_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-code_osapi_dialogs_cpp 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,18 @@ +$OpenBSD$ + +disable breaking on error with SDL_ShowMessageBox() +this is a backport of a part of commit +7f286b726d70904e46acac54dbc44ba3d4e8dad7 + +Index: code/osapi/dialogs.cpp +--- code/osapi/dialogs.cpp.orig ++++ code/osapi/dialogs.cpp +@@ -403,7 +403,7 @@ namespace os + if (SDL_ShowMessageBox(&boxData, &buttonId) < 0) + { + // Call failed +- abort(); ++ buttonId = 1; // No action + } + + switch (buttonId) Index: patches/patch-lib_CMakeLists_txt =================================================================== RCS file: patches/patch-lib_CMakeLists_txt diff -N patches/patch-lib_CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_CMakeLists_txt 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +disable bundled SDL + +Index: lib/CMakeLists.txt +--- lib/CMakeLists.txt.orig ++++ lib/CMakeLists.txt +@@ -13,8 +13,6 @@ include(OpenAL.cmake) + + add_subdirectory(opengl) + +-ADD_SUBDIRECTORY(libsdl) +- + ADD_SUBDIRECTORY(jansson) + # These are only required for the web-ui which is non-Windows + IF(UNIX) Index: patches/patch-lib_libRocket_Include_Rocket_Core_Lua_Interpreter_h =================================================================== RCS file: patches/patch-lib_libRocket_Include_Rocket_Core_Lua_Interpreter_h diff -N patches/patch-lib_libRocket_Include_Rocket_Core_Lua_Interpreter_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_libRocket_Include_Rocket_Core_Lua_Interpreter_h 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,31 @@ +$OpenBSD$ + +_L -> _LuaState to avoid clash with macro in ctype.h + +Index: lib/libRocket/Include/Rocket/Core/Lua/Interpreter.h +--- lib/libRocket/Include/Rocket/Core/Lua/Interpreter.h.orig ++++ lib/libRocket/Include/Rocket/Core/Lua/Interpreter.h +@@ -103,7 +103,7 @@ class ROCKETLUA_API Interpreter : public Plugin (publi + must call lua_close yourself or if you need to continue to use the lua_State pointer provided here. Internally, it calls + Interpreter::Startup() and registers the "body" tag to generate a LuaDocument rather than a Rocket::Core::ElementDocument. + If the argument provided is NULL, a Lua context is created automatically instead. */ +- static void Initialise(lua_State *_L); ++ static void Initialise(lua_State *_LuaState); + + /** Stops the plugin by calling lua_close + @remark Shutdown calls lua_Close on the lua_State associated with the Interpreter. If a lua_State was provided in the +@@ -118,12 +118,12 @@ class ROCKETLUA_API Interpreter : public Plugin (publi + @sa Rocket::Core::Plugin::OnShutdown */ + virtual void OnShutdown(); + private: +- /** Creates a lua_State for @var _L and calls luaL_openlibs, then calls Interpreter::RegisterCoreTypes(lua_State*) ++ /** Creates a lua_State for @var _LuaState and calls luaL_openlibs, then calls Interpreter::RegisterCoreTypes(lua_State*) + @remark called by Interpreter::Initialise() */ + void Startup(); + + /** Lua state that Interpreter::Initialise() creates. */ +- static lua_State* _L; ++ static lua_State* _LuaState; + }; + } + } Index: patches/patch-lib_libRocket_Source_Core_Lua_Interpreter_cpp =================================================================== RCS file: patches/patch-lib_libRocket_Source_Core_Lua_Interpreter_cpp diff -N patches/patch-lib_libRocket_Source_Core_Lua_Interpreter_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_libRocket_Source_Core_Lua_Interpreter_cpp 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,181 @@ +$OpenBSD$ + +_L -> _LuaState to avoid clash with macro in ctype.h + +Index: lib/libRocket/Source/Core/Lua/Interpreter.cpp +--- lib/libRocket/Source/Core/Lua/Interpreter.cpp.orig ++++ lib/libRocket/Source/Core/Lua/Interpreter.cpp +@@ -60,19 +60,19 @@ + namespace Rocket { + namespace Core { + namespace Lua { +-lua_State* Interpreter::_L = NULL; ++lua_State* Interpreter::_LuaState = NULL; + //typedefs for nicer Lua names + typedef Rocket::Core::ElementDocument Document; + + void Interpreter::Startup() + { +- if(_L == NULL) ++ if(_LuaState == NULL) + { + Log::Message(Log::LT_INFO, "Loading Lua interpreter"); +- _L = luaL_newstate(); +- luaL_openlibs(_L); ++ _LuaState = luaL_newstate(); ++ luaL_openlibs(_LuaState); + } +- RegisterCoreTypes(_L); ++ RegisterCoreTypes(_LuaState); + } + + +@@ -111,27 +111,27 @@ void Interpreter::LoadFile(const String& file) + Rocket::Core::FileInterface* file_interface = Rocket::Core::GetFileInterface(); + Rocket::Core::FileHandle handle = file_interface->Open(file); + if(handle == 0) { +- lua_pushfstring(_L, "LoadFile: Unable to open file: %s", file.CString()); +- Report(_L); ++ lua_pushfstring(_LuaState, "LoadFile: Unable to open file: %s", file.CString()); ++ Report(_LuaState); + return; + } + + size_t size = file_interface->Length(handle); + if(size == 0) { +- lua_pushfstring(_L, "LoadFile: File is 0 bytes in size: %s", file.CString()); +- Report(_L); ++ lua_pushfstring(_LuaState, "LoadFile: File is 0 bytes in size: %s", file.CString()); ++ Report(_LuaState); + return; + } + char* file_contents = new char[size]; + file_interface->Read(file_contents,size,handle); + file_interface->Close(handle); + +- if(luaL_loadbuffer(_L,file_contents,size,file.CString()) != 0) +- Report(_L); ++ if(luaL_loadbuffer(_LuaState,file_contents,size,file.CString()) != 0) ++ Report(_LuaState); + else //if there were no errors loading, then the compiled function is on the top of the stack + { +- if(lua_pcall(_L,0,0,0) != 0) +- Report(_L); ++ if(lua_pcall(_LuaState,0,0,0) != 0) ++ Report(_LuaState); + } + + delete[] file_contents; +@@ -140,27 +140,27 @@ void Interpreter::LoadFile(const String& file) + + void Interpreter::DoString(const Rocket::Core::String& code, const Rocket::Core::String& name) + { +- if(luaL_loadbuffer(_L,code.CString(),code.Length(), name.CString()) != 0) +- Report(_L); ++ if(luaL_loadbuffer(_LuaState,code.CString(),code.Length(), name.CString()) != 0) ++ Report(_LuaState); + else + { +- if(lua_pcall(_L,0,0,0) != 0) +- Report(_L); ++ if(lua_pcall(_LuaState,0,0,0) != 0) ++ Report(_LuaState); + } + } + + void Interpreter::LoadString(const Rocket::Core::String& code, const Rocket::Core::String& name) + { +- if(luaL_loadbuffer(_L,code.CString(),code.Length(), name.CString()) != 0) +- Report(_L); ++ if(luaL_loadbuffer(_LuaState,code.CString(),code.Length(), name.CString()) != 0) ++ Report(_LuaState); + } + + + void Interpreter::BeginCall(int funRef) + { +- lua_settop(_L,0); //empty stack +- //lua_getref(_L,funRef); +- lua_rawgeti(_L, LUA_REGISTRYINDEX, (int)funRef); ++ lua_settop(_LuaState,0); //empty stack ++ //lua_getref(_LuaState,funRef); ++ lua_rawgeti(_LuaState, LUA_REGISTRYINDEX, (int)funRef); + } + + int Interpreter::ErrorHandler(lua_State* L) { +@@ -196,8 +196,8 @@ int Interpreter::ErrorHandler(lua_State* L) { + bool Interpreter::ExecuteCall(int params, int res) + { + bool ret = true; +- int top = lua_gettop(_L); +- if(lua_type(_L,top-params) != LUA_TFUNCTION) ++ int top = lua_gettop(_LuaState); ++ if(lua_type(_LuaState,top-params) != LUA_TFUNCTION) + { + ret = false; + //stack cleanup +@@ -205,24 +205,24 @@ bool Interpreter::ExecuteCall(int params, int res) + { + for(int i = top; i >= (top-params); i--) + { +- if(!lua_isnone(_L,i)) +- lua_remove(_L,i); ++ if(!lua_isnone(_LuaState,i)) ++ lua_remove(_LuaState,i); + } + } + } + else + { +- lua_pushcfunction(_L, ErrorHandler); +- lua_insert(_L, -params - 2); ++ lua_pushcfunction(_LuaState, ErrorHandler); ++ lua_insert(_LuaState, -params - 2); + +- if(lua_pcall(_L,params,res,-params - 2) != 0) ++ if(lua_pcall(_LuaState,params,res,-params - 2) != 0) + { +- Report(_L); ++ Report(_LuaState); + ret = false; + res = 0; + } + +- lua_remove(_L, -res - 1); // Remove error function from stack ++ lua_remove(_LuaState, -res - 1); // Remove error function from stack + } + return ret; + } +@@ -232,12 +232,12 @@ void Interpreter::EndCall(int res) + //stack cleanup + for(int i = res; i > 0; i--) + { +- if(!lua_isnone(_L,res)) +- lua_remove(_L,res); ++ if(!lua_isnone(_LuaState,res)) ++ lua_remove(_LuaState,res); + } + } + +-lua_State* Interpreter::GetLuaState() { return _L; } ++lua_State* Interpreter::GetLuaState() { return _LuaState; } + + + //From Plugin +@@ -267,14 +267,14 @@ void Interpreter::Initialise() + void Interpreter::Initialise(lua_State *luaStatePointer) + { + Interpreter *iPtr = new Interpreter(); +- iPtr->_L = luaStatePointer; ++ iPtr->_LuaState = luaStatePointer; + Rocket::Core::RegisterPlugin(iPtr); + } + + void Interpreter::Shutdown(bool free_state) + { + if (free_state) { +- lua_close(_L); ++ lua_close(_LuaState); + } + } + Index: patches/patch-lib_libpcp_src_net_gateway_c =================================================================== RCS file: patches/patch-lib_libpcp_src_net_gateway_c diff -N patches/patch-lib_libpcp_src_net_gateway_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_libpcp_src_net_gateway_c 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ + +Index: lib/libpcp/src/net/gateway.c +--- lib/libpcp/src/net/gateway.c.orig ++++ lib/libpcp/src/net/gateway.c +@@ -62,7 +62,7 @@ + #include "pcp_win_defines.h" + #endif + +-#if defined(__APPLE__) || defined(__FreeBSD__) ++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #include <sys/sysctl.h> + #include <net/if_dl.h> //struct sockaddr_dl + #define USE_SOCKET_ROUTE Index: patches/patch-lib_libpcp_src_net_sock_ntop_c =================================================================== RCS file: patches/patch-lib_libpcp_src_net_sock_ntop_c diff -N patches/patch-lib_libpcp_src_net_sock_ntop_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_libpcp_src_net_sock_ntop_c 4 Sep 2020 21:42:54 -0000 @@ -0,0 +1,18 @@ +$OpenBSD$ + +add missing define, as found in code/windows_stub/config.h and +lib/libpcp/src/windows/pcp_win_defines.h (identical) + +Index: lib/libpcp/src/net/sock_ntop.c +--- lib/libpcp/src/net/sock_ntop.c.orig ++++ lib/libpcp/src/net/sock_ntop.c +@@ -23,6 +23,9 @@ + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++/* Doesn't get picked up from Windows header files, therefore added here: */ ++#define AI_V4MAPPED 0x00000800 ++ + #ifdef HAVE_CONFIG_H + #include "config.h" + #else Index: pkg/README =================================================================== RCS file: /cvs/ports/games/fs2open/pkg/README,v retrieving revision 1.2 diff -u -p -r1.2 README --- pkg/README 4 Sep 2018 12:46:12 -0000 1.2 +++ pkg/README 4 Sep 2020 21:42:54 -0000 @@ -33,4 +33,13 @@ Mods In order to run mods, create a folder for each mod in ~/.local/share/fs2open and call fs2open like this: -fs2open -mod <modfolder> +$ fs2open -mod <modfolder> + +Cursor Dyssynchrony +=================== + +If mouse position doesn't match activity in the game (i.e. you need +over a different screen position than the button to activate the +button), try running the game windowed with set resolution, e.g.: + +$ fs2open -window -res 1600x900