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

Reply via email to