Update to OpenMW 0.51.0.

Using the built-in TinyXML leads to numerous crashes, which I have not
seen with the system one.

The crash catcher will try to call egdb, then lldb in case of a crash for
supplying additional information.  I have not added a RUN_DEPENDS on
devel/gdb intentionally.

Works very well so far on:
amdgpu0: RENOIR GC 9.3.0 7 CU rev 0x00

Will commit in a few days if I don't hear negative reports.

Index: Makefile
===================================================================
RCS file: /home/cvs/ports/games/openmw/Makefile,v
diff -u -p -r1.45 Makefile
--- Makefile    9 Jun 2026 03:25:29 -0000       1.45
+++ Makefile    21 Jun 2026 16:20:13 -0000
@@ -4,14 +4,13 @@ ONLY_FOR_ARCHS =      amd64 i386
 
 COMMENT =              open source implementation of TES III: Morrowind
 
-V =                    0.50.0
-REVISION =             2
+V =                    0.51.0
 GH_ACCOUNT =           OpenMW
 GH_PROJECT =           openmw
 GH_TAGNAME =           openmw-$V
 DISTNAME =             openmw-$V
 
-DISTFILES.a =          c393777d26d2ff6519ac23612abf8af42678c9dd.zip
+DISTFILES.a =          03259f3287ff8330f0d66fcd98d022edddffaa97.zip
 DIST_SUBDIR =          openmw
 SITES.a =              
https://github.com/recastnavigation/recastnavigation/archive/
 
@@ -26,12 +25,13 @@ PERMIT_PACKAGE =    Yes
 
 WANTLIB += ${COMPILER_LIBCXX} BulletCollision GL LinearMath MyGUIEngine
 WANTLIB += OpenThreads Qt6Core Qt6Gui Qt6Network Qt6OpenGL Qt6OpenGLWidgets
-WANTLIB += Qt6Svg Qt6Widgets SDL2 avcodec avformat avutil boost_iostreams-mt
-WANTLIB += boost_program_options-mt boost_random-mt boost_regex-mt
-WANTLIB += c collada-dom2.4-dp icudata icui18n icuuc luajit-5.1
-WANTLIB += lz4 m openal osg osgAnimation osgDB osgFX osgGA osgParticle
-WANTLIB += osgShadow osgSim osgText osgUtil osgViewer sqlite3
-WANTLIB += swresample swscale unshield yaml-cpp z
+WANTLIB += Qt6Svg Qt6Widgets SDL2 avcodec avformat avutil boost_container-mt
+WANTLIB += boost_iostreams-mt boost_program_options-mt boost_random-mt
+WANTLIB += boost_regex-mt c collada-dom2.4-dp icudata icui18n
+WANTLIB += icuuc luajit-5.1 lz4 m openal osg osgAnimation osgDB
+WANTLIB += osgFX osgGA osgParticle osgShadow osgSim osgText osgUtil
+WANTLIB += osgViewer sqlite3 swresample swscale tinyxml unshield
+WANTLIB += yaml-cpp z
 
 MODULES =              devel/cmake lang/lua x11/qt6 lang/clang
 MODCLANG_VERSION =     22
@@ -52,6 +52,7 @@ LIB_DEPENDS =         archivers/unshield \
                        graphics/openscenegraph>=3.6.5p11 \
                        lang/luajit \
                        textproc/icu4c \
+                       textproc/tinyxml \
                        x11/qt6/qtsvg
 RUN_DEPENDS  =         devel/desktop-file-utils
 
@@ -62,7 +63,8 @@ CONFIGURE_ARGS +=     -DBINDIR=${LOCALBASE}/
                        
-DOPENMW_RESOURCE_FILES="${LOCALBASE}/share/openmw/resources" \
                        
-DCMAKE_PREFIX_PATH="${LOCALBASE}/lib/qt5/cmake:${LOCALBASE}" \
                        -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON \
-                       -DCOLLADA_DOM_VERSION_MINOR=4
+                       -DCOLLADA_DOM_VERSION_MINOR=4 \
+                       -DUSE_SYSTEM_TINYXML=ON
 
 NO_TEST =              Yes
 
@@ -72,10 +74,11 @@ MODCMAKE_LDFLAGS =  -L${X11BASE}/lib
 
 post-extract:
        mkdir ${WRKDIST}/extern/fetched
-       mv ${WRKDIR}/recastnavigation-c393777d26d2ff6519ac23612abf8af42678c9dd \
+       mv ${WRKDIR}/recastnavigation-03259f3287ff8330f0d66fcd98d022edddffaa97 \
                ${WRKDIST}/extern/fetched/recastnavigation
 
 post-patch:
-       ${SUBST_CMD} ${WRKSRC}/components/files/linuxpath.cpp
+       ${SUBST_CMD} ${WRKSRC}/components/files/linuxpath.cpp \
+                       ${WRKSRC}/components/crashcatcher/crashcatcher.cpp
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/games/openmw/distinfo,v
diff -u -p -r1.14 distinfo
--- distinfo    15 Nov 2025 17:26:09 -0000      1.14
+++ distinfo    21 Jun 2026 09:03:15 -0000
@@ -1,4 +1,4 @@
-SHA256 (openmw/c393777d26d2ff6519ac23612abf8af42678c9dd.zip) = 
fX/DjJpS29oLodq3DR7VnaEXirHE+iCc23zC3Pzo5Oo=
-SHA256 (openmw/openmw-0.50.0.tar.gz) = 
cJOozvJlhSIGWFaeuEY2xauQHoL3TIo/ejqK7DW/xUw=
-SIZE (openmw/c393777d26d2ff6519ac23612abf8af42678c9dd.zip) = 1406094
-SIZE (openmw/openmw-0.50.0.tar.gz) = 6244084
+SHA256 (openmw/03259f3287ff8330f0d66fcd98d022edddffaa97.zip) = 
szfYzuvWZkHhqbnKLD2668WqaKOjDwlDXlxCDBd7LGI=
+SHA256 (openmw/openmw-0.51.0.tar.gz) = 
emXmOlaH/w1R8xnr1Smp6Tdw/tPMVAggHeRYjRFA8UQ=
+SIZE (openmw/03259f3287ff8330f0d66fcd98d022edddffaa97.zip) = 1446030
+SIZE (openmw/openmw-0.51.0.tar.gz) = 6325148
Index: patches/patch-components_crashcatcher_crashcatcher_cpp
===================================================================
RCS file: patches/patch-components_crashcatcher_crashcatcher_cpp
diff -N patches/patch-components_crashcatcher_crashcatcher_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-components_crashcatcher_crashcatcher_cpp      21 Jun 2026 
12:43:05 -0000
@@ -0,0 +1,33 @@
+Index: components/crashcatcher/crashcatcher.cpp
+--- components/crashcatcher/crashcatcher.cpp.orig
++++ components/crashcatcher/crashcatcher.cpp
+@@ -217,7 +217,7 @@ namespace
+ 
+     struct Gdb
+     {
+-        static constexpr char sName[] = "gdb";
++        static constexpr char sName[] = "egdb";
+         static constexpr char sScript[] = R"(shell echo ""
+ shell echo "* Loaded Libraries"
+ info sharedlibrary
+@@ -236,7 +236,7 @@ thread apply all backtrace full 1000
+ detach
+ quit
+ )";
+-        static constexpr char sCommandTemplate[] = "gdb --pid %d --quiet 
--batch --command %s";
++        static constexpr char sCommandTemplate[] = "egdb --pid %d --quiet 
--batch --command %s";
+     };
+ 
+     struct Lldb
+@@ -472,6 +472,11 @@ static void getExecPath(char** argv)
+     if (argv[0][0] == '/')
+     {
+         snprintf(argv0, sizeof(argv0), "%s", argv[0]);
++        return;
++    }
++    else
++    {
++        snprintf(argv0, sizeof(argv0), "%s/%s", "${TRUEPREFIX}/bin", argv[0]);
+         return;
+     }
+ 
Index: patches/patch-components_files_linuxpath_cpp
===================================================================
RCS file: 
/home/cvs/ports/games/openmw/patches/patch-components_files_linuxpath_cpp,v
diff -u -p -r1.3 patch-components_files_linuxpath_cpp
--- patches/patch-components_files_linuxpath_cpp        15 Nov 2025 21:39:12 
-0000      1.3
+++ patches/patch-components_files_linuxpath_cpp        21 Jun 2026 09:03:18 
-0000
@@ -1,7 +1,7 @@
 Index: components/files/linuxpath.cpp
 --- components/files/linuxpath.cpp.orig
 +++ components/files/linuxpath.cpp
-@@ -75,6 +75,10 @@ namespace Files
+@@ -77,6 +77,10 @@ namespace Files
  
      std::filesystem::path LinuxPath::getLocalPath() const
      {
@@ -12,7 +12,7 @@ Index: components/files/linuxpath.cpp
          auto localPath = std::filesystem::current_path() / "";
  
          static const std::filesystem::path statusPaths[]
-@@ -92,6 +96,7 @@ namespace Files
+@@ -94,6 +98,7 @@ namespace Files
          }
  
          return localPath;
Index: patches/patch-components_sceneutil_texturetype_hpp
===================================================================
RCS file: patches/patch-components_sceneutil_texturetype_hpp
diff -N patches/patch-components_sceneutil_texturetype_hpp
--- patches/patch-components_sceneutil_texturetype_hpp  9 Jun 2026 03:25:29 
-0000       1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-https://gitlab.com/OpenMW/openmw/-/commit/307a131ca09f705b97f15ede1f702630cca6b396
-
-Index: components/sceneutil/texturetype.hpp
---- components/sceneutil/texturetype.hpp.orig
-+++ components/sceneutil/texturetype.hpp
-@@ -18,7 +18,7 @@ namespace SceneUtil
-         {
-         }
- 
--        static const osg::StateAttribute::Type AttributeType = 
static_cast<osg::StateAttribute::Type>(69420);
-+        static const osg::StateAttribute::Type AttributeType = 
static_cast<osg::StateAttribute::Type>(69);
-         META_StateAttribute(SceneUtil, TextureType, AttributeType)
- 
-         bool isTextureAttribute() const override { return true; }
Index: patches/patch-extern_CMakeLists_txt
===================================================================
RCS file: /home/cvs/ports/games/openmw/patches/patch-extern_CMakeLists_txt,v
diff -u -p -r1.4 patch-extern_CMakeLists_txt
--- patches/patch-extern_CMakeLists_txt 15 Nov 2025 17:26:09 -0000      1.4
+++ patches/patch-extern_CMakeLists_txt 21 Jun 2026 09:03:18 -0000
@@ -1,17 +1,17 @@
 Index: extern/CMakeLists.txt
 --- extern/CMakeLists.txt.orig
 +++ extern/CMakeLists.txt
-@@ -173,13 +173,7 @@ if(NOT OPENMW_USE_SYSTEM_RECASTNAVIGATION)
+@@ -159,13 +159,7 @@ if(NOT OPENMW_USE_SYSTEM_RECASTNAVIGATION)
      set(RECASTNAVIGATION_TESTS OFF CACHE BOOL "")
      set(RECASTNAVIGATION_EXAMPLES OFF CACHE BOOL "")
  
 -    include(FetchContent)
 -    FetchContent_Declare(recastnavigation
--        URL 
https://github.com/recastnavigation/recastnavigation/archive/c393777d26d2ff6519ac23612abf8af42678c9dd.zip
--        URL_HASH 
SHA512=48f20cee7a70c2f20f4c68bb74d5af11a1434be85294e37f5fe7b7aae820fbcdff4f35d3be286eaf6f9cbce0aed4201fcc090df409a5bd04aec5fd7c29b3ad94
+-        URL 
https://github.com/OpenMW/recastnavigation/archive/03259f3287ff8330f0d66fcd98d022edddffaa97.zip
+-        URL_HASH 
SHA512=63db2ac90904764d7f1466d3c95994ec51d777cddd870b70f8ef674c09ed166b3d16ffc4ac1d18d0eab865fda4bf51b6ea17049025b66a338d3cadd0f48dc712
 -        SOURCE_DIR fetched/recastnavigation
 -    )
--    FetchContent_MakeAvailableExcludeFromAll(recastnavigation)
+-    FetchContent_MakeAvailable(recastnavigation)
 +    add_subdirectory("fetched/recastnavigation")
  endif()
  
Index: pkg/PLIST
===================================================================
RCS file: /home/cvs/ports/games/openmw/pkg/PLIST,v
diff -u -p -r1.14 PLIST
--- pkg/PLIST   15 Nov 2025 17:26:09 -0000      1.14
+++ pkg/PLIST   21 Jun 2026 09:39:29 -0000
@@ -9,43 +9,6 @@
 @bin bin/openmw-launcher
 @bin bin/openmw-navmeshtool
 @bin bin/openmw-wizard
-include/recastnavigation/
-include/recastnavigation/DebugDraw.h
-include/recastnavigation/DetourAlloc.h
-include/recastnavigation/DetourAssert.h
-include/recastnavigation/DetourCommon.h
-include/recastnavigation/DetourCrowd.h
-include/recastnavigation/DetourDebugDraw.h
-include/recastnavigation/DetourLocalBoundary.h
-include/recastnavigation/DetourMath.h
-include/recastnavigation/DetourNavMesh.h
-include/recastnavigation/DetourNavMeshBuilder.h
-include/recastnavigation/DetourNavMeshQuery.h
-include/recastnavigation/DetourNode.h
-include/recastnavigation/DetourObstacleAvoidance.h
-include/recastnavigation/DetourPathCorridor.h
-include/recastnavigation/DetourPathQueue.h
-include/recastnavigation/DetourProximityGrid.h
-include/recastnavigation/DetourStatus.h
-include/recastnavigation/DetourTileCache.h
-include/recastnavigation/DetourTileCacheBuilder.h
-include/recastnavigation/Recast.h
-include/recastnavigation/RecastAlloc.h
-include/recastnavigation/RecastAssert.h
-include/recastnavigation/RecastDebugDraw.h
-include/recastnavigation/RecastDump.h
-include/recastnavigation/version.h
-lib/cmake/recastnavigation/
-lib/cmake/recastnavigation/recastnavigation-config-version.cmake
-lib/cmake/recastnavigation/recastnavigation-config.cmake
-lib/cmake/recastnavigation/recastnavigation-targets${MODCMAKE_BUILD_SUFFIX}
-lib/cmake/recastnavigation/recastnavigation-targets.cmake
-@static-lib lib/libDebugUtils.a
-@static-lib lib/libDetour.a
-@static-lib lib/libDetourCrowd.a
-@static-lib lib/libDetourTileCache.a
-@static-lib lib/libRecast.a
-lib/pkgconfig/recastnavigation.pc
 share/applications/org.openmw.cs.desktop
 share/applications/org.openmw.launcher.desktop
 share/doc/pkg-readmes/${PKGSTEM}
@@ -74,6 +37,7 @@ share/openmw/resources/lua_api/openmw/am
 share/openmw/resources/lua_api/openmw/animation.lua
 share/openmw/resources/lua_api/openmw/async.lua
 share/openmw/resources/lua_api/openmw/camera.lua
+share/openmw/resources/lua_api/openmw/content.lua
 share/openmw/resources/lua_api/openmw/core.lua
 share/openmw/resources/lua_api/openmw/debug.lua
 share/openmw/resources/lua_api/openmw/input.lua
@@ -121,6 +85,8 @@ share/openmw/resources/shaders/compatibi
 share/openmw/resources/shaders/compatibility/normals.glsl
 share/openmw/resources/shaders/compatibility/objects.frag
 share/openmw/resources/shaders/compatibility/objects.vert
+share/openmw/resources/shaders/compatibility/outline.frag
+share/openmw/resources/shaders/compatibility/outline.vert
 share/openmw/resources/shaders/compatibility/ripples_blobber.frag
 share/openmw/resources/shaders/compatibility/ripples_simulate.frag
 share/openmw/resources/shaders/compatibility/shadowcasting.frag
@@ -131,6 +97,8 @@ share/openmw/resources/shaders/compatibi
 share/openmw/resources/shaders/compatibility/sky.vert
 share/openmw/resources/shaders/compatibility/terrain.frag
 share/openmw/resources/shaders/compatibility/terrain.vert
+share/openmw/resources/shaders/compatibility/terrain_composite.frag
+share/openmw/resources/shaders/compatibility/terrain_composite.vert
 share/openmw/resources/shaders/compatibility/vertexcolors.glsl
 share/openmw/resources/shaders/compatibility/water.frag
 share/openmw/resources/shaders/compatibility/water.vert
@@ -171,18 +139,21 @@ share/openmw/resources/shaders/lib/water
 share/openmw/resources/shaders/lib/water/rain_ripples.glsl
 share/openmw/resources/shaders/lib/water/ripples.glsl
 share/openmw/resources/translations/
+share/openmw/resources/translations/components_bg.qm
 share/openmw/resources/translations/components_de.qm
 share/openmw/resources/translations/components_en.qm
 share/openmw/resources/translations/components_fr.qm
 share/openmw/resources/translations/components_pl.qm
 share/openmw/resources/translations/components_ru.qm
 share/openmw/resources/translations/components_sv.qm
+share/openmw/resources/translations/launcher_bg.qm
 share/openmw/resources/translations/launcher_de.qm
 share/openmw/resources/translations/launcher_en.qm
 share/openmw/resources/translations/launcher_fr.qm
 share/openmw/resources/translations/launcher_pl.qm
 share/openmw/resources/translations/launcher_ru.qm
 share/openmw/resources/translations/launcher_sv.qm
+share/openmw/resources/translations/wizard_bg.qm
 share/openmw/resources/translations/wizard_de.qm
 share/openmw/resources/translations/wizard_en.qm
 share/openmw/resources/translations/wizard_fr.qm
@@ -192,6 +163,7 @@ share/openmw/resources/translations/wiza
 share/openmw/resources/version
 share/openmw/resources/vfs/
 share/openmw/resources/vfs-mw/
+share/openmw/resources/vfs-mw/builtin.omwscripts
 share/openmw/resources/vfs-mw/l10n/
 share/openmw/resources/vfs-mw/l10n/Calendar/
 share/openmw/resources/vfs-mw/l10n/Calendar/de.yaml
@@ -203,10 +175,26 @@ share/openmw/resources/vfs-mw/l10n/Calen
 share/openmw/resources/vfs-mw/l10n/Calendar/sv.yaml
 share/openmw/resources/vfs-mw/l10n/Interface/
 share/openmw/resources/vfs-mw/l10n/Interface/gmst.yaml
+share/openmw/resources/vfs-mw/l10n/Mechanics/
+share/openmw/resources/vfs-mw/l10n/Mechanics/gmst.yaml
 share/openmw/resources/vfs-mw/l10n/OMWEngine/
 share/openmw/resources/vfs-mw/l10n/OMWEngine/gmst.yaml
 share/openmw/resources/vfs-mw/openmw_aux/
 share/openmw/resources/vfs-mw/openmw_aux/calendarconfig.lua
+share/openmw/resources/vfs-mw/scripts/
+share/openmw/resources/vfs-mw/scripts/omw/
+share/openmw/resources/vfs-mw/scripts/omw/cellhandlers.lua
+share/openmw/resources/vfs-mw/scripts/omw/combat/
+share/openmw/resources/vfs-mw/scripts/omw/combat/common.lua
+share/openmw/resources/vfs-mw/scripts/omw/combat/global.lua
+share/openmw/resources/vfs-mw/scripts/omw/combat/local.lua
+share/openmw/resources/vfs-mw/scripts/omw/combat/menu.lua
+share/openmw/resources/vfs-mw/scripts/omw/esmfallbacks.lua
+share/openmw/resources/vfs-mw/scripts/omw/music/
+share/openmw/resources/vfs-mw/scripts/omw/music/helpers.lua
+share/openmw/resources/vfs-mw/scripts/omw/music/music.lua
+share/openmw/resources/vfs-mw/scripts/omw/music/settings.lua
+share/openmw/resources/vfs-mw/scripts/omw/playerskillhandlers.lua
 share/openmw/resources/vfs/animations/
 share/openmw/resources/vfs/animations/animation-config.yaml
 share/openmw/resources/vfs/builtin.omwscripts
@@ -382,12 +370,8 @@ share/openmw/resources/vfs/scripts/omw/c
 share/openmw/resources/vfs/scripts/omw/camera/move360.lua
 share/openmw/resources/vfs/scripts/omw/camera/settings.lua
 share/openmw/resources/vfs/scripts/omw/camera/third_person.lua
-share/openmw/resources/vfs/scripts/omw/cellhandlers.lua
 share/openmw/resources/vfs/scripts/omw/combat/
-share/openmw/resources/vfs/scripts/omw/combat/common.lua
-share/openmw/resources/vfs/scripts/omw/combat/global.lua
-share/openmw/resources/vfs/scripts/omw/combat/local.lua
-share/openmw/resources/vfs/scripts/omw/combat/menu.lua
+share/openmw/resources/vfs/scripts/omw/combat/interface.lua
 share/openmw/resources/vfs/scripts/omw/console/
 share/openmw/resources/vfs/scripts/omw/console/global.lua
 share/openmw/resources/vfs/scripts/omw/console/local.lua
@@ -407,9 +391,6 @@ share/openmw/resources/vfs/scripts/omw/m
 share/openmw/resources/vfs/scripts/omw/mechanics/playercontroller.lua
 share/openmw/resources/vfs/scripts/omw/music/
 share/openmw/resources/vfs/scripts/omw/music/actor.lua
-share/openmw/resources/vfs/scripts/omw/music/helpers.lua
-share/openmw/resources/vfs/scripts/omw/music/music.lua
-share/openmw/resources/vfs/scripts/omw/music/settings.lua
 share/openmw/resources/vfs/scripts/omw/mwui/
 share/openmw/resources/vfs/scripts/omw/mwui/borders.lua
 share/openmw/resources/vfs/scripts/omw/mwui/constants.lua
@@ -436,6 +417,7 @@ share/openmw/resources/vfs/shaders/inter
 share/openmw/resources/vfs/textures/
 share/openmw/resources/vfs/textures/omw/
 share/openmw/resources/vfs/textures/omw/water_nm.png
+share/openmw/resources/vfs/textures/omw_map_color_palette.dds
 share/openmw/resources/vfs/textures/omw_menu_icon_active.dds
 share/openmw/resources/vfs/textures/omw_menu_scroll_center_h.dds
 share/openmw/resources/vfs/textures/omw_menu_scroll_center_v.dds

Reply via email to