Hi, This is a diff to finally update Arx Libertatis to 1.2. It was held up by not starting, which is probably the the infinite loop in GitHub PR #265. Now it runs fine; I tested the update with a few minutes of play time, and everything looks as expected.
The build now uses graphics/inkscape to generate icons. This leads to the ugly, but non-breaking warning: ** Message: 03:32:58.894: Cannot create profile directory /arx-libertatis-1.2_writes_to_HOME/.config/inkscape. I tried a couple of ways to work around this; setting $HOME, $INKSCAPE_PROFILE_DIR, via MAKE_ENV, CONFIGURE_ENV, or patching it into cmake/Icons.cmake, all unsuccessfully. At this point, I think this can still be updated, unless someone has a solution for this warning. Other things of note: - Upstream switched from devel/sdl to devel/sdl2 as default. - Now includes a blender plugin; I assume for modding (not tested). - Now includes an install target (yay!) and a test target. - The new shared library libArxIO builds only if libc is linked explicitly. The README has details on how to get started with the game data. Release announcement: https://arx-libertatis.org/releases/1.2 Detailed changelog: https://wiki.arx-libertatis.org/Changelog#1.2 I'm planning to update this soon, but looking to see if any comments, especially regarding the inkscape warning. comments? oks? Index: Makefile =================================================================== RCS file: /cvs/ports/games/arx-libertatis/Makefile,v retrieving revision 1.10 diff -u -p -r1.10 Makefile --- Makefile 11 Mar 2022 19:04:07 -0000 1.10 +++ Makefile 17 Mar 2022 12:01:15 -0000 @@ -3,53 +3,50 @@ CATEGORIES = games MAINTAINER = Thomas Frohwein <[email protected]> +PKGNAME = arx-libertatis-${GH_TAGNAME} GH_ACCOUNT = arx GH_PROJECT = ArxLibertatis -GH_TAGNAME = 1.1.2-r1 -PKGNAME = arx-libertatis-${GH_TAGNAME:S/-r/pl/} -REVISION = 4 +GH_TAGNAME = 1.2 + +SHARED_LIBS += ArxIO 0.0 # 1.2 # GPLv3+, fonts are SIL OFL 1.1 license PERMIT_PACKAGE = Yes -WANTLIB += ${COMPILER_LIBCXX} GL GLEW SDL c freetype m openal -WANTLIB += z +WANTLIB += ${COMPILER_LIBCXX} SDL2 c epoxy freetype m openal z -# C++11 +# C++17 COMPILER = base-clang ports-gcc base-gcc MODULES = devel/cmake BUILD_DEPENDS = devel/boost \ - devel/desktop-file-utils + devel/cppunit \ + graphics/ImageMagick \ + graphics/glm \ + graphics/inkscape \ + graphics/optipng LIB_DEPENDS = audio/openal \ - devel/sdl \ - graphics/glew - -RUN_DEPENDS = devel/desktop-file-utils + devel/sdl2 +RUN_DEPENDS = devel/desktop-file-utils \ + x11/gtk+3,-guic -CONFIGURE_ARGS = -DCMAKE_EXE_LINKER_FLAGS="-lpthread" \ +CONFIGURE_ARGS = -DBUILD_CRASHHANDLER=OFF \ -DBUILD_CRASHREPORTER=OFF \ + -DBUILD_IO_LIBRARY=OFF \ + -DBUILD_TESTS=ON \ + -DCMAKE_EXE_LINKER_FLAGS="-lpthread" \ + -DCMAKE_INSTALL_MANDIR=${LOCALBASE}/man \ -DCMAKE_INSTALL_PREFIX=${LOCALBASE}/share/arx \ - -DUSE_QT4=OFF \ - -DUSE_QT5=OFF - -NO_TEST = Yes + -DUNITY_BUILD=OFF -do-install: - ${INSTALL_DATA_DIR} ${PREFIX}/share/arx - ${INSTALL_DATA_DIR} ${PREFIX}/share/applications - ${INSTALL_DATA_DIR} ${PREFIX}/share/pixmaps - ${INSTALL_DATA} ${WRKSRC}/data/icons/arx-libertatis.desktop \ - ${PREFIX}/share/applications - ${INSTALL_DATA} ${WRKSRC}/data/icons/arx-libertatis.png \ - ${PREFIX}/share/pixmaps - ${INSTALL_MAN} ${WRKSRC}/data/man/{arxsavetool.1,arxunpak.1} \ - ${PREFIX}/man/man1 - ${INSTALL_MAN} ${WRKSRC}/data/man/arx.6 ${PREFIX}/man/man6 - ${INSTALL_PROGRAM} ${WRKBUILD}/{arxsavetool,arxunpak} ${PREFIX}/bin - ${INSTALL_PROGRAM} ${WRKBUILD}/arx ${PREFIX}/share/arx - ${INSTALL_SCRIPT} ${WRKSRC}/scripts/arx-install-data ${PREFIX}/bin - ${SUBST_CMD} -c -m 755 ${FILESDIR}/arx ${PREFIX}/bin/arx +post-install: + ln -sf ${TRUEPREFIX}/share/arx/bin/arx ${PREFIX}/bin/arx + ln -sf ${TRUEPREFIX}/share/arx/bin/arx-install-data \ + ${PREFIX}/bin/arx-install-data + ln -sf ${TRUEPREFIX}/share/arx/bin/arxsavetool \ + ${PREFIX}/bin/arxsavetool + ln -sf ${TRUEPREFIX}/share/arx/bin/arxunpak \ + ${PREFIX}/bin/arxunpak .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/games/arx-libertatis/distinfo,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 distinfo --- distinfo 6 May 2018 15:15:00 -0000 1.1.1.1 +++ distinfo 17 Mar 2022 12:01:15 -0000 @@ -1,2 +1,2 @@ -SHA256 (ArxLibertatis-1.1.2-r1.tar.gz) = mFv5eVuLpo9s71XJswivyby9lZCKEjOWsT7Yi7akCWc= -SIZE (ArxLibertatis-1.1.2-r1.tar.gz) = 1289821 +SHA256 (ArxLibertatis-1.2.tar.gz) = jNeMwvwrpAQx3PpG56FhBXmW+K2nWnivE9l35A1AE9M= +SIZE (ArxLibertatis-1.2.tar.gz) = 1478180 Index: patches/patch-CMakeLists_txt =================================================================== RCS file: patches/patch-CMakeLists_txt diff -N patches/patch-CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-CMakeLists_txt 17 Mar 2022 12:01:15 -0000 @@ -0,0 +1,14 @@ +explicitly link libc + +Index: CMakeLists.txt +--- CMakeLists.txt.orig ++++ CMakeLists.txt +@@ -1831,7 +1831,7 @@ if(BUILD_IO_LIBRARY) + list(APPEND ArxIO_SOURCES src/platform/WindowsUtils.cpp) + endif() + +- set(ArxIO_LIBRARIES ${BASE_LIBRARIES} ${ZLIB_LIBRARIES}) ++ set(ArxIO_LIBRARIES ${BASE_LIBRARIES} ${ZLIB_LIBRARIES} c) + + add_library_shared(ArxIO "${ArxIO_SOURCES}" "${ArxIO_LIBRARIES}") + set_binary_public_headers(ArxIO src/lib/ArxIO.h) Index: patches/patch-src_core_Version_cpp_in =================================================================== RCS file: patches/patch-src_core_Version_cpp_in diff -N patches/patch-src_core_Version_cpp_in --- patches/patch-src_core_Version_cpp_in 11 Mar 2022 19:04:07 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -Remove blocks with uninitialized, and apparently otherwise unused variables -const int tbg_version_id is needed during compilation, will try to set to 0 - -Index: src/core/Version.cpp.in ---- src/core/Version.cpp.in.orig -+++ src/core/Version.cpp.in -@@ -25,14 +25,10 @@ - * For available variables see cmake/VersionString.cmake. - */ - --#if ${VERSION_COUNT} != 4 && ${VERSION_COUNT} != 5 --#error "Configure error - the VERSION file should specify three or five non-empty lines!" --#endif -- - const std::string arx_version = "${VERSION_0}${GIT_SUFFIX_5}"; - const std::string arx_release_codename = "${VERSION_4}"; - - // TODO move this to an external file once we ship our own resources - const std::string arx_credits = "${AUTHORS}"; - --const int tbg_version_id = ${VERSION_2}; -+const int tbg_version_id = 0; Index: patches/patch-src_platform_crashhandler_CrashHandlerPOSIX_cpp =================================================================== RCS file: patches/patch-src_platform_crashhandler_CrashHandlerPOSIX_cpp diff -N patches/patch-src_platform_crashhandler_CrashHandlerPOSIX_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_platform_crashhandler_CrashHandlerPOSIX_cpp 17 Mar 2022 12:01:15 -0000 @@ -0,0 +1,24 @@ +Avoid infinite loop in getCoreDumpFile() +GitHub PR #265 + +Index: src/platform/crashhandler/CrashHandlerPOSIX.cpp +--- src/platform/crashhandler/CrashHandlerPOSIX.cpp.orig ++++ src/platform/crashhandler/CrashHandlerPOSIX.cpp +@@ -171,7 +171,7 @@ static fs::path getCoreDumpFile() { + size_t start = 0; + while(start < pattern.length()) { + +- size_t end = pattern.find('%'); ++ size_t end = pattern.find('%', start); + if(end == std::string::npos) { + end = pattern.length(); + } +@@ -246,7 +246,7 @@ static fs::path getCoreDumpFile() { + size_t start = 0; + while(start < pattern.length()) { + +- size_t end = pattern.find('%'); ++ size_t end = pattern.find('%', start); + if(end == std::string::npos) { + end = pattern.length(); + } Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/games/arx-libertatis/pkg/PLIST,v retrieving revision 1.4 diff -u -p -r1.4 PLIST --- pkg/PLIST 11 Mar 2022 19:04:07 -0000 1.4 +++ pkg/PLIST 17 Mar 2022 12:01:15 -0000 @@ -1,14 +1,111 @@ bin/arx bin/arx-install-data -@bin bin/arxsavetool -@bin bin/arxunpak +bin/arxsavetool +bin/arxunpak +@man man/man1/arx-install-data.1 @man man/man1/arxsavetool.1 @man man/man1/arxunpak.1 @man man/man6/arx.6 -share/applications/arx-libertatis.desktop share/arx/ -@bin share/arx/arx +share/arx/bin/ +@bin share/arx/bin/arx +share/arx/bin/arx-install-data +share/arx/bin/arxsavetool +share/arx/bin/arxunpak +share/arx/include/ +share/arx/include/ArxIO.h +share/arx/lib/ +@lib share/arx/lib/libArxIO.so.${LIBArxIO_VERSION} +share/arx/libexec/ +@bin share/arx/libexec/arxtool +share/arx/share/ +share/arx/share/applications/ +share/arx/share/applications/arx-libertatis.desktop +share/arx/share/blender/ +share/arx/share/blender/scripts/ +share/arx/share/blender/scripts/addons/ +share/arx/share/blender/scripts/addons/arx/ +share/arx/share/blender/scripts/addons/arx/.gitignore +share/arx/share/blender/scripts/addons/arx/__init__.py +share/arx/share/blender/scripts/addons/arx/arx_io_animation.py +share/arx/share/blender/scripts/addons/arx/arx_io_area.py +share/arx/share/blender/scripts/addons/arx/arx_io_material.py +share/arx/share/blender/scripts/addons/arx/arx_io_model.py +share/arx/share/blender/scripts/addons/arx/arx_io_test_roundtrip.py +share/arx/share/blender/scripts/addons/arx/arx_io_util.py +share/arx/share/blender/scripts/addons/arx/arx_ui_area.py +share/arx/share/blender/scripts/addons/arx/dataAmb.py +share/arx/share/blender/scripts/addons/arx/dataCin.py +share/arx/share/blender/scripts/addons/arx/dataCommon.py +share/arx/share/blender/scripts/addons/arx/dataDlf.py +share/arx/share/blender/scripts/addons/arx/dataFtl.py +share/arx/share/blender/scripts/addons/arx/dataFts.py +share/arx/share/blender/scripts/addons/arx/dataLlf.py +share/arx/share/blender/scripts/addons/arx/dataTea.py +share/arx/share/blender/scripts/addons/arx/files.py +share/arx/share/blender/scripts/addons/arx/lib.py +share/arx/share/blender/scripts/addons/arx/main.py +share/arx/share/blender/scripts/addons/arx/managers.py +share/arx/share/blender/scripts/addons/arx/meshEdit.py +share/arx/share/blender/scripts/addons/arx/naivePkware.py +share/arx/share/games/ +share/arx/share/games/arx/ +share/arx/share/games/arx/localisation/ +share/arx/share/games/arx/localisation/languages/ +share/arx/share/games/arx/localisation/languages/chinese.ini +share/arx/share/games/arx/localisation/languages/deutsch.ini +share/arx/share/games/arx/localisation/languages/english.ini +share/arx/share/games/arx/localisation/languages/francais.ini +share/arx/share/games/arx/localisation/languages/hungarian.ini +share/arx/share/games/arx/localisation/languages/italiano.ini +share/arx/share/games/arx/localisation/languages/japanese.ini +share/arx/share/games/arx/localisation/languages/russian.ini +share/arx/share/games/arx/localisation/languages/spanish.ini +share/arx/share/games/arx/localisation/xtext_default_001_arxlibertatis.ini +share/arx/share/games/arx/localisation/xtext_deutsch_001_arxlibertatis.ini +share/arx/share/games/arx/localisation/xtext_english_001_arxlibertatis.ini +share/arx/share/games/arx/localisation/xtext_hungarian_001_arxlibertatis.ini +share/arx/share/games/arx/localisation/xtext_italiano_001_arxlibertatis.ini +share/arx/share/games/arx/localisation/xtext_russian_001_arxlibertatis.ini +share/arx/share/games/arx/localisation/xtext_spanish_001_arxlibertatis.ini +share/arx/share/games/arx/misc/ +share/arx/share/games/arx/misc/dejavusansmono.ttf +share/arx/share/games/arx/misc/icons.ttf +share/arx/share/icons/ +share/arx/share/icons/hicolor/ +share/arx/share/icons/hicolor/128x128/ +share/arx/share/icons/hicolor/128x128/apps/ +share/arx/share/icons/hicolor/128x128/apps/arx-libertatis.png +share/arx/share/icons/hicolor/16x16/ +share/arx/share/icons/hicolor/16x16/apps/ +share/arx/share/icons/hicolor/16x16/apps/arx-libertatis.png +share/arx/share/icons/hicolor/192x192/ +share/arx/share/icons/hicolor/192x192/apps/ +share/arx/share/icons/hicolor/192x192/apps/arx-libertatis.png +share/arx/share/icons/hicolor/22x22/ +share/arx/share/icons/hicolor/22x22/apps/ +share/arx/share/icons/hicolor/22x22/apps/arx-libertatis.png +share/arx/share/icons/hicolor/24x24/ +share/arx/share/icons/hicolor/24x24/apps/ +share/arx/share/icons/hicolor/24x24/apps/arx-libertatis.png +share/arx/share/icons/hicolor/256x256/ +share/arx/share/icons/hicolor/256x256/apps/ +share/arx/share/icons/hicolor/256x256/apps/arx-libertatis.png +share/arx/share/icons/hicolor/32x32/ +share/arx/share/icons/hicolor/32x32/apps/ +share/arx/share/icons/hicolor/32x32/apps/arx-libertatis.png +share/arx/share/icons/hicolor/48x48/ +share/arx/share/icons/hicolor/48x48/apps/ +share/arx/share/icons/hicolor/48x48/apps/arx-libertatis.png +share/arx/share/icons/hicolor/512x512/ +share/arx/share/icons/hicolor/512x512/apps/ +share/arx/share/icons/hicolor/512x512/apps/arx-libertatis.png +share/arx/share/icons/hicolor/64x64/ +share/arx/share/icons/hicolor/64x64/apps/ +share/arx/share/icons/hicolor/64x64/apps/arx-libertatis.png +share/arx/share/icons/hicolor/96x96/ +share/arx/share/icons/hicolor/96x96/apps/ +share/arx/share/icons/hicolor/96x96/apps/arx-libertatis.png share/doc/pkg-readmes/${PKGSTEM} -share/pixmaps/ -share/pixmaps/arx-libertatis.png @tag update-desktop-database +@tag gtk-update-icon-cache %D/share/arx/share/icons/hicolor
