public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2020-07-08  5:44 Joonas Niilola
  0 siblings, 0 replies; 10+ messages in thread
From: Joonas Niilola @ 2020-07-08  5:44 UTC (permalink / raw
  To: gentoo-commits

commit:     82798aecb9bff3f2a3c883b7f2fc14dc58ff0010
Author:     Alexey Sokolov <sokolov <AT> google <DOT> com>
AuthorDate: Fri May 29 07:40:37 2020 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jul  8 05:44:29 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=82798aec

games-engines/openmw: version bump - 0.46.0

Add option to use forked OSG

Fix build on ~arch, fix tests on i686, fix installation on Prefix

Closes: https://bugs.gentoo.org/673864
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Closes: https://github.com/gentoo/gentoo/pull/16000
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 games-engines/openmw/Manifest                      |   2 +
 .../openmw/files/openmw-0.46.0-fix-cast.patch      | 214 +++++++++++++
 .../openmw/files/openmw-0.46.0-floattest2.patch    | 139 +++++++++
 .../files/openmw-0.46.0-missing-include.patch      |  19 ++
 .../openmw/files/openmw-0.46.0-mygui-license.patch |  16 +
 .../files/openmw-0.46.0-nifbullet-test.patch       | 335 +++++++++++++++++++++
 .../files/openmw-0.46.0-recastnavigation.patch     |  24 ++
 games-engines/openmw/metadata.xml                  |   2 +
 .../{openmw-9999.ebuild => openmw-0.46.0.ebuild}   |  43 ++-
 games-engines/openmw/openmw-9999.ebuild            |  32 +-
 10 files changed, 803 insertions(+), 23 deletions(-)

diff --git a/games-engines/openmw/Manifest b/games-engines/openmw/Manifest
index fd925092a09..6f88c3b39a9 100644
--- a/games-engines/openmw/Manifest
+++ b/games-engines/openmw/Manifest
@@ -1 +1,3 @@
 DIST openmw-0.45.0.tar.gz 4711103 BLAKE2B 85676294b07170dd6845892e9e7b354c5767428584c76ea2e1a64e9f9c72c46c279fdf5043058d37b927cb55e6cf2e2222833129d64954cdcdb3af4eb4b84dc3 SHA512 b968426659457cf486f6756f7ab82cc4cb34a92923c433dd86f711e5d7097f75441ed17daa50d21f15f1847f5aed1f4c3a094a06cfd3f2e9b90aa182742c596f
+DIST openmw-0.46.0-floattest.patch 43168 BLAKE2B 060b529fd4cd01f0fc723bb5a00a256b9c1ae4413c7b22581467cce75416e01041c3af22f0215ad9b1c475965a988065e0860c01c1e71d97454b022eec4779ea SHA512 0e165417e9ae047231fdc27b62251b33867f3782c1753f81705c886d6d3a433c8bbc3b4653a2555bc644bad11db9769d4bc2abcc84ca3ab23fabb6b80347bc32
+DIST openmw-0.46.0.tar.gz 5155004 BLAKE2B 8ad94a7fffe5a0739c56c778efe2ec17ef66c312a7fe5caf015cf3cad2bc17d2abe8cdc3f4134049a32fe55c4f4b3f72678d2d0ce1037fd02f6ac753b9d89b2c SHA512 da384aead300552817c0d0ce03515a5ccc95dcab4e02d4c1dd0d6c5f1b01ee01209bbaea74e2d12021e3465e49b051823bb018de39675c5a22c6892893624486

diff --git a/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch b/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch
new file mode 100644
index 00000000000..f6e82cb3a2c
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch
@@ -0,0 +1,214 @@
+Fixes build on ~arch system, patch from upstream, to be dropped for 0.47
+
+From 208a50340db5506dded60c05272ce9692773baa9 Mon Sep 17 00:00:00 2001
+From: elsid <elsid.mail@gmail.com>
+Date: Mon, 13 Apr 2020 20:45:07 +0200
+Subject: [PATCH] Specialize DetourNavigator::ObjectId ctor for pointers
+
+To fix msvc error:
+components\detournavigator\objectid.hpp(14,13): error C2440: 'reinterpret_cast': cannot convert from 'const T' to 'size_t'
+          with
+          [
+              T=unsigned long
+          ]
+diff --git a/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp b/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
+index 5275d9119e..e44ae48786 100644
+--- a/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
++++ b/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
+@@ -61,15 +61,15 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        EXPECT_TRUE(manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
++        EXPECT_TRUE(manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
+     }
+ 
+     TEST_F(DetourNavigatorTileCachedRecastMeshManagerTest, add_object_for_existing_object_should_return_false)
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+-        EXPECT_FALSE(manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        EXPECT_FALSE(manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
+     }
+ 
+     TEST_F(DetourNavigatorTileCachedRecastMeshManagerTest, update_object_for_changed_object_should_return_changed_tiles)
+@@ -77,9 +77,9 @@ namespace
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+         const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
+-        manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
+         EXPECT_THAT(
+-            manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
++            manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
+             ElementsAre(TilePosition(-1, -1), TilePosition(-1, 0), TilePosition(0, -1), TilePosition(0, 0),
+                         TilePosition(1, -1), TilePosition(1, 0))
+         );
+@@ -89,9 +89,9 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_EQ(
+-            manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
++            manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
+             std::vector<TilePosition>()
+         );
+     }
+@@ -100,7 +100,7 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
+@@ -111,7 +111,7 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_EQ(manager.getMesh(TilePosition(1, 0)), nullptr);
+     }
+ 
+@@ -121,13 +121,13 @@ namespace
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+         const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
+ 
+-        manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
+         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(0, 0)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(1, 0)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(1, -1)), nullptr);
+ 
+-        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
+@@ -140,11 +140,11 @@ namespace
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+         const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
+ 
+-        manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
+         EXPECT_EQ(manager.getMesh(TilePosition(-1, -1)), nullptr);
+         EXPECT_EQ(manager.getMesh(TilePosition(-1, 0)), nullptr);
+ 
+-        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_EQ(manager.getMesh(TilePosition(1, 0)), nullptr);
+         EXPECT_EQ(manager.getMesh(TilePosition(1, -1)), nullptr);
+     }
+@@ -153,8 +153,8 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+-        manager.removeObject(ObjectId(1ul));
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.removeObject(ObjectId(&boxShape));
+         EXPECT_EQ(manager.getMesh(TilePosition(-1, -1)), nullptr);
+         EXPECT_EQ(manager.getMesh(TilePosition(-1, 0)), nullptr);
+         EXPECT_EQ(manager.getMesh(TilePosition(0, -1)), nullptr);
+@@ -166,13 +166,13 @@ namespace
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+ 
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(0, 0)), nullptr);
+ 
+-        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
+         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
+@@ -184,7 +184,7 @@ namespace
+         TileCachedRecastMeshManager manager(mSettings);
+         const auto initialRevision = manager.getRevision();
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_EQ(manager.getRevision(), initialRevision + 1);
+     }
+ 
+@@ -192,9 +192,9 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         const auto beforeAddRevision = manager.getRevision();
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_EQ(manager.getRevision(), beforeAddRevision);
+     }
+ 
+@@ -203,9 +203,9 @@ namespace
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+         const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
+-        manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
+         const auto beforeUpdateRevision = manager.getRevision();
+-        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_EQ(manager.getRevision(), beforeUpdateRevision + 1);
+     }
+ 
+@@ -213,9 +213,9 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         const auto beforeUpdateRevision = manager.getRevision();
+-        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         EXPECT_EQ(manager.getRevision(), beforeUpdateRevision);
+     }
+ 
+@@ -223,9 +223,9 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const btBoxShape boxShape(btVector3(20, 20, 100));
+-        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
++        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
+         const auto beforeRemoveRevision = manager.getRevision();
+-        manager.removeObject(ObjectId(1ul));
++        manager.removeObject(ObjectId(&boxShape));
+         EXPECT_EQ(manager.getRevision(), beforeRemoveRevision + 1);
+     }
+ 
+@@ -233,7 +233,7 @@ namespace
+     {
+         TileCachedRecastMeshManager manager(mSettings);
+         const auto beforeRemoveRevision = manager.getRevision();
+-        manager.removeObject(ObjectId(1ul));
++        manager.removeObject(ObjectId(&manager));
+         EXPECT_EQ(manager.getRevision(), beforeRemoveRevision);
+     }
+ }
+diff --git a/components/detournavigator/objectid.hpp b/components/detournavigator/objectid.hpp
+index 3b56924b13..6ddcc9169d 100644
+--- a/components/detournavigator/objectid.hpp
++++ b/components/detournavigator/objectid.hpp
+@@ -10,7 +10,7 @@ namespace DetourNavigator
+     {
+     public:
+         template <class T>
+-        explicit ObjectId(const T value) throw()
++        explicit ObjectId(T* value) throw()
+             : mValue(reinterpret_cast<std::size_t>(value))
+         {
+         }

diff --git a/games-engines/openmw/files/openmw-0.46.0-floattest2.patch b/games-engines/openmw/files/openmw-0.46.0-floattest2.patch
new file mode 100644
index 00000000000..ca6e355eab7
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.46.0-floattest2.patch
@@ -0,0 +1,139 @@
+https://gitlab.com/OpenMW/openmw/-/merge_requests/253
+
+--- a/apps/openmw_test_suite/detournavigator/navigator.cpp	2020-06-30 16:07:31.544410916 +0100
++++ b/apps/openmw_test_suite/detournavigator/navigator.cpp	2020-06-30 16:08:50.405698937 +0100
+@@ -458,25 +458,25 @@
+ 
+         EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim, mAreaCosts, mOut), Status::Success);
+ 
+-        EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+-            osg::Vec3f(0, 215, 185.33331298828125),
+-            osg::Vec3f(0, 186.6666717529296875, 185.33331298828125),
+-            osg::Vec3f(0, 158.333343505859375, 185.33331298828125),
+-            osg::Vec3f(0, 130.0000152587890625, 185.33331298828125),
+-            osg::Vec3f(0, 101.66667938232421875, 185.33331298828125),
+-            osg::Vec3f(0, 73.333343505859375, 185.33331298828125),
+-            osg::Vec3f(0, 45.0000152587890625, 185.33331298828125),
+-            osg::Vec3f(0, 16.6666812896728515625, 185.33331298828125),
+-            osg::Vec3f(0, -11.66664981842041015625, 185.33331298828125),
+-            osg::Vec3f(0, -39.999980926513671875, 185.33331298828125),
+-            osg::Vec3f(0, -68.33331298828125, 185.33331298828125),
+-            osg::Vec3f(0, -96.66664886474609375, 185.33331298828125),
+-            osg::Vec3f(0, -124.99997711181640625, 185.33331298828125),
+-            osg::Vec3f(0, -153.33331298828125, 185.33331298828125),
+-            osg::Vec3f(0, -181.6666412353515625, 185.33331298828125),
+-            osg::Vec3f(0, -209.999969482421875, 185.33331298828125),
+-            osg::Vec3f(0, -215, 185.33331298828125),
+-        })) << mPath;
++        EXPECT_THAT(mPath, ElementsAre(
++            Vec3fEq(0, 215, 185.33331298828125),
++            Vec3fEq(0, 186.6666717529296875, 185.33331298828125),
++            Vec3fEq(0, 158.333343505859375, 185.33331298828125),
++            Vec3fEq(0, 130.0000152587890625, 185.33331298828125),
++            Vec3fEq(0, 101.66667938232421875, 185.33331298828125),
++            Vec3fEq(0, 73.333343505859375, 185.33331298828125),
++            Vec3fEq(0, 45.0000152587890625, 185.33331298828125),
++            Vec3fEq(0, 16.6666812896728515625, 185.33331298828125),
++            Vec3fEq(0, -11.66664981842041015625, 185.33331298828125),
++            Vec3fEq(0, -39.999980926513671875, 185.33331298828125),
++            Vec3fEq(0, -68.33331298828125, 185.33331298828125),
++            Vec3fEq(0, -96.66664886474609375, 185.33331298828125),
++            Vec3fEq(0, -124.99997711181640625, 185.33331298828125),
++            Vec3fEq(0, -153.33331298828125, 185.33331298828125),
++            Vec3fEq(0, -181.6666412353515625, 185.33331298828125),
++            Vec3fEq(0, -209.999969482421875, 185.33331298828125),
++            Vec3fEq(0, -215, 185.33331298828125)
++        ));
+     }
+ 
+     TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_when_ground_cross_water_with_swim_and_walk_flags)
+@@ -505,25 +505,25 @@
+         EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim | Flag_walk, mAreaCosts, mOut),
+                   Status::Success);
+ 
+-        EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+-            osg::Vec3f(0, 215, -94.75363922119140625),
+-            osg::Vec3f(0, 186.6666717529296875, -106.0000152587890625),
+-            osg::Vec3f(0, 158.333343505859375, -115.85507965087890625),
+-            osg::Vec3f(0, 130.0000152587890625, -125.71016693115234375),
+-            osg::Vec3f(0, 101.66667938232421875, -135.5652313232421875),
+-            osg::Vec3f(0, 73.333343505859375, -143.3333587646484375),
+-            osg::Vec3f(0, 45.0000152587890625, -143.3333587646484375),
+-            osg::Vec3f(0, 16.6666812896728515625, -143.3333587646484375),
+-            osg::Vec3f(0, -11.66664981842041015625, -143.3333587646484375),
+-            osg::Vec3f(0, -39.999980926513671875, -143.3333587646484375),
+-            osg::Vec3f(0, -68.33331298828125, -143.3333587646484375),
+-            osg::Vec3f(0, -96.66664886474609375, -137.3043670654296875),
+-            osg::Vec3f(0, -124.99997711181640625, -127.44930267333984375),
+-            osg::Vec3f(0, -153.33331298828125, -117.59423065185546875),
+-            osg::Vec3f(0, -181.6666412353515625, -107.73915863037109375),
+-            osg::Vec3f(0, -209.999969482421875, -97.7971343994140625),
+-            osg::Vec3f(0, -215, -94.75363922119140625),
+-        })) << mPath;
++        EXPECT_THAT(mPath, ElementsAre(
++            Vec3fEq(0, 215, -94.75363922119140625),
++            Vec3fEq(0, 186.6666717529296875, -106.0000152587890625),
++            Vec3fEq(0, 158.333343505859375, -115.85507965087890625),
++            Vec3fEq(0, 130.0000152587890625, -125.71016693115234375),
++            Vec3fEq(0, 101.66667938232421875, -135.5652313232421875),
++            Vec3fEq(0, 73.333343505859375, -143.3333587646484375),
++            Vec3fEq(0, 45.0000152587890625, -143.3333587646484375),
++            Vec3fEq(0, 16.6666812896728515625, -143.3333587646484375),
++            Vec3fEq(0, -11.66664981842041015625, -143.3333587646484375),
++            Vec3fEq(0, -39.999980926513671875, -143.3333587646484375),
++            Vec3fEq(0, -68.33331298828125, -143.3333587646484375),
++            Vec3fEq(0, -96.66664886474609375, -137.3043670654296875),
++            Vec3fEq(0, -124.99997711181640625, -127.44930267333984375),
++            Vec3fEq(0, -153.33331298828125, -117.59423065185546875),
++            Vec3fEq(0, -181.6666412353515625, -107.73915863037109375),
++            Vec3fEq(0, -209.999969482421875, -97.7971343994140625),
++            Vec3fEq(0, -215, -94.75363922119140625)
++        ));
+     }
+ 
+     TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_when_ground_cross_water_with_max_int_cells_size_and_swim_and_walk_flags)
+@@ -552,25 +552,25 @@
+         EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim | Flag_walk, mAreaCosts, mOut),
+                   Status::Success);
+ 
+-        EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+-            osg::Vec3f(0, 215, -94.75363922119140625),
+-            osg::Vec3f(0, 186.6666717529296875, -106.0000152587890625),
+-            osg::Vec3f(0, 158.333343505859375, -115.85507965087890625),
+-            osg::Vec3f(0, 130.0000152587890625, -125.71016693115234375),
+-            osg::Vec3f(0, 101.66667938232421875, -135.5652313232421875),
+-            osg::Vec3f(0, 73.333343505859375, -143.3333587646484375),
+-            osg::Vec3f(0, 45.0000152587890625, -143.3333587646484375),
+-            osg::Vec3f(0, 16.6666812896728515625, -143.3333587646484375),
+-            osg::Vec3f(0, -11.66664981842041015625, -143.3333587646484375),
+-            osg::Vec3f(0, -39.999980926513671875, -143.3333587646484375),
+-            osg::Vec3f(0, -68.33331298828125, -143.3333587646484375),
+-            osg::Vec3f(0, -96.66664886474609375, -137.3043670654296875),
+-            osg::Vec3f(0, -124.99997711181640625, -127.44930267333984375),
+-            osg::Vec3f(0, -153.33331298828125, -117.59423065185546875),
+-            osg::Vec3f(0, -181.6666412353515625, -107.73915863037109375),
+-            osg::Vec3f(0, -209.999969482421875, -97.7971343994140625),
+-            osg::Vec3f(0, -215, -94.75363922119140625),
+-        })) << mPath;
++        EXPECT_THAT(mPath, ElementsAre(
++           Vec3fEq(0, 215, -94.75363922119140625),
++           Vec3fEq(0, 186.6666717529296875, -106.0000152587890625),
++           Vec3fEq(0, 158.333343505859375, -115.85507965087890625),
++           Vec3fEq(0, 130.0000152587890625, -125.71016693115234375),
++           Vec3fEq(0, 101.66667938232421875, -135.5652313232421875),
++           Vec3fEq(0, 73.333343505859375, -143.3333587646484375),
++           Vec3fEq(0, 45.0000152587890625, -143.3333587646484375),
++           Vec3fEq(0, 16.6666812896728515625, -143.3333587646484375),
++           Vec3fEq(0, -11.66664981842041015625, -143.3333587646484375),
++           Vec3fEq(0, -39.999980926513671875, -143.3333587646484375),
++           Vec3fEq(0, -68.33331298828125, -143.3333587646484375),
++           Vec3fEq(0, -96.66664886474609375, -137.3043670654296875),
++           Vec3fEq(0, -124.99997711181640625, -127.44930267333984375),
++           Vec3fEq(0, -153.33331298828125, -117.59423065185546875),
++           Vec3fEq(0, -181.6666412353515625, -107.73915863037109375),
++           Vec3fEq(0, -209.999969482421875, -97.7971343994140625),
++           Vec3fEq(0, -215, -94.75363922119140625)
++        ));
+     }
+ 
+     TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_ground_when_ground_cross_water_with_only_walk_flag)

diff --git a/games-engines/openmw/files/openmw-0.46.0-missing-include.patch b/games-engines/openmw/files/openmw-0.46.0-missing-include.patch
new file mode 100644
index 00000000000..803707498e4
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.46.0-missing-include.patch
@@ -0,0 +1,19 @@
+Fixes build on ~arch system, patch from upstream, to be dropped for 0.47
+
+From 10daadefbea1f62a818c339dc7f3d69a858bc8a6 Mon Sep 17 00:00:00 2001
+From: elsid <elsid.mail@gmail.com>
+Date: Thu, 30 Apr 2020 21:57:22 +0200
+Subject: [PATCH] Add missing include
+
+diff --git a/components/detournavigator/offmeshconnectionsmanager.hpp b/components/detournavigator/offmeshconnectionsmanager.hpp
+index 30d7976aec..155ce32963 100644
+--- a/components/detournavigator/offmeshconnectionsmanager.hpp
++++ b/components/detournavigator/offmeshconnectionsmanager.hpp
+@@ -13,6 +13,7 @@
+ 
+ #include <boost/optional.hpp>
+ 
++#include <algorithm>
+ #include <map>
+ #include <mutex>
+ #include <unordered_map>

diff --git a/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch b/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch
new file mode 100644
index 00000000000..a14f58bc9e7
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch
@@ -0,0 +1,16 @@
+We don't install license files
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d69352c94..5f97c86e9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -470,9 +470,6 @@ IF(NOT WIN32 AND NOT APPLE)
+     #    INSTALL(PROGRAMS "${OpenMW_BINARY_DIR}/Plugin_MyGUI_OpenMW_Resources.so" DESTINATION "${LIBDIR}" )
+     #ENDIF(BUILD_MYGUI_PLUGIN)
+ 
+-    # Install licenses
+-    INSTALL(FILES "files/mygui/DejaVu Font License.txt" DESTINATION "${LICDIR}" )
+-
+     # Install icon and desktop file
+     INSTALL(FILES "${OpenMW_BINARY_DIR}/org.openmw.launcher.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "openmw")
+     INSTALL(FILES "${OpenMW_SOURCE_DIR}/files/launcher/images/openmw.png" DESTINATION "${ICONDIR}" COMPONENT "openmw")

diff --git a/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch b/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch
new file mode 100644
index 00000000000..315b0753589
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch
@@ -0,0 +1,335 @@
+Fixes test on i686 system, patch from upstream, to be dropped for 0.47
+
+From 14d0ca4cd3e9aa9e329590913d5f8fb55077587d Mon Sep 17 00:00:00 2001
+From: elsid <elsid.mail@gmail.com>
+Date: Sun, 25 Nov 2018 11:42:26 +0300
+Subject: [PATCH 1/4] Cast float to btScalar
+
+---
+ .../detournavigator/recastmeshbuilder.cpp      | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/components/detournavigator/recastmeshbuilder.cpp b/components/detournavigator/recastmeshbuilder.cpp
+index d96ba2f29c..f613683571 100644
+--- a/components/detournavigator/recastmeshbuilder.cpp
++++ b/components/detournavigator/recastmeshbuilder.cpp
+@@ -163,15 +163,15 @@ namespace DetourNavigator
+ 
+         transformBoundingBox(transform, aabbMin, aabbMax);
+ 
+-        aabbMin.setX(std::max(mBounds.mMin.x(), aabbMin.x()));
+-        aabbMin.setX(std::min(mBounds.mMax.x(), aabbMin.x()));
+-        aabbMin.setY(std::max(mBounds.mMin.y(), aabbMin.y()));
+-        aabbMin.setY(std::min(mBounds.mMax.y(), aabbMin.y()));
+-
+-        aabbMax.setX(std::max(mBounds.mMin.x(), aabbMax.x()));
+-        aabbMax.setX(std::min(mBounds.mMax.x(), aabbMax.x()));
+-        aabbMax.setY(std::max(mBounds.mMin.y(), aabbMax.y()));
+-        aabbMax.setY(std::min(mBounds.mMax.y(), aabbMax.y()));
++        aabbMin.setX(std::max(static_cast<btScalar>(mBounds.mMin.x()), aabbMin.x()));
++        aabbMin.setX(std::min(static_cast<btScalar>(mBounds.mMax.x()), aabbMin.x()));
++        aabbMin.setY(std::max(static_cast<btScalar>(mBounds.mMin.y()), aabbMin.y()));
++        aabbMin.setY(std::min(static_cast<btScalar>(mBounds.mMax.y()), aabbMin.y()));
++
++        aabbMax.setX(std::max(static_cast<btScalar>(mBounds.mMin.x()), aabbMax.x()));
++        aabbMax.setX(std::min(static_cast<btScalar>(mBounds.mMax.x()), aabbMax.x()));
++        aabbMax.setY(std::max(static_cast<btScalar>(mBounds.mMin.y()), aabbMax.y()));
++        aabbMax.setY(std::min(static_cast<btScalar>(mBounds.mMax.y()), aabbMax.y()));
+ 
+         transformBoundingBox(transform.inverse(), aabbMin, aabbMax);
+ 
+
+From ef5a5ef43f9a91795339ef3ea97c505c1e9dc28d Mon Sep 17 00:00:00 2001
+From: elsid <elsid.mail@gmail.com>
+Date: Sun, 25 Nov 2018 14:03:28 +0300
+Subject: [PATCH 2/4] Print not matched values with full precision
+
+---
+ .../detournavigator/operators.hpp             | 62 +++++++++++++++----
+ 1 file changed, 51 insertions(+), 11 deletions(-)
+
+diff --git a/apps/openmw_test_suite/detournavigator/operators.hpp b/apps/openmw_test_suite/detournavigator/operators.hpp
+index a473632bab..e34d6278a7 100644
+--- a/apps/openmw_test_suite/detournavigator/operators.hpp
++++ b/apps/openmw_test_suite/detournavigator/operators.hpp
+@@ -20,22 +20,62 @@ namespace DetourNavigator
+     }
+ }
+ 
++namespace
++{
++    template <class T>
++    struct Wrapper {
++        const T& mValue;
++    };
++
++    template <class Range>
++    inline testing::Message& writeRange(testing::Message& message, const Range& range)
++    {
++        message << "{\n";
++        for (const auto& v : range)
++            message << Wrapper<typename std::decay<decltype(v)>::type> {v} << ",\n";
++        return message << "}";
++    }
++}
++
+ namespace testing
+ {
++    template <>
++    inline testing::Message& Message::operator <<(const osg::Vec3f& value)
++    {
++        return (*this) << "osg::Vec3f(" << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.x()
++            << ", " << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.y()
++            << ", " << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.z()
++            << ')';
++    }
++
++    template <>
++    inline testing::Message& Message::operator <<(const Wrapper<osg::Vec3f>& value)
++    {
++        return (*this) << value.mValue;
++    }
++
++    template <>
++    inline testing::Message& Message::operator <<(const Wrapper<float>& value)
++    {
++        return (*this) << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.mValue;
++    }
++
+     template <>
+     inline testing::Message& Message::operator <<(const std::deque<osg::Vec3f>& value)
+     {
+-        (*this) << "{\n";
+-        for (const auto& v : value)
+-        {
+-            std::ostringstream stream;
+-            stream << "osg::Vec3f("
+-                   << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.x() << ", "
+-                   << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.y() << ", "
+-                   << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.z() << ")";
+-            (*this) << stream.str() << ",\n";
+-        }
+-        return (*this) << "}";
++        return writeRange(*this, value);
++    }
++
++    template <>
++    inline testing::Message& Message::operator <<(const std::vector<osg::Vec3f>& value)
++    {
++        return writeRange(*this, value);
++    }
++
++    template <>
++    inline testing::Message& Message::operator <<(const std::vector<float>& value)
++    {
++        return writeRange(*this, value);
+     }
+ }
+ 
+
+From 2d7c3bae6127fc3717d5e3a8e8830215450fb47f Mon Sep 17 00:00:00 2001
+From: elsid <elsid.mail@gmail.com>
+Date: Sun, 25 Nov 2018 11:46:09 +0300
+Subject: [PATCH 3/4] Support bullet with double precision
+
+---
+ apps/openmw/mwphysics/heightfield.cpp         | 38 ++++++++++++++++++-
+ apps/openmw/mwphysics/heightfield.hpp         |  5 +++
+ .../detournavigator/recastmeshbuilder.cpp     |  4 +-
+ .../nifloader/testbulletnifloader.cpp         | 36 ++++++++++++++++--
+ 4 files changed, 77 insertions(+), 6 deletions(-)
+
+diff --git a/apps/openmw/mwphysics/heightfield.cpp b/apps/openmw/mwphysics/heightfield.cpp
+index 52aed9c072..e1448116bf 100644
+--- a/apps/openmw/mwphysics/heightfield.cpp
++++ b/apps/openmw/mwphysics/heightfield.cpp
+@@ -7,12 +7,48 @@
+ 
+ #include <LinearMath/btTransform.h>
+ 
++#include <type_traits>
++
++namespace
++{
++    template <class T>
++    auto makeHeights(const T* heights, float sqrtVerts)
++        -> std::enable_if_t<std::is_same<btScalar, T>::value, std::vector<btScalar>>
++    {
++        return {};
++    }
++
++    template <class T>
++    auto makeHeights(const T* heights, float sqrtVerts)
++        -> std::enable_if_t<!std::is_same<btScalar, T>::value, std::vector<btScalar>>
++    {
++        return std::vector<btScalar>(heights, heights + static_cast<std::ptrdiff_t>(sqrtVerts * sqrtVerts));
++    }
++
++    template <class T>
++    auto getHeights(const T* floatHeights, const std::vector<btScalar>&)
++        -> std::enable_if_t<std::is_same<btScalar, T>::value, const btScalar*>
++    {
++        return floatHeights;
++    }
++
++    template <class T>
++    auto getHeights(const T*, const std::vector<btScalar>& btScalarHeights)
++        -> std::enable_if_t<!std::is_same<btScalar, T>::value, const btScalar*>
++    {
++        return btScalarHeights.data();
++    }
++}
++
+ namespace MWPhysics
+ {
+     HeightField::HeightField(const float* heights, int x, int y, float triSize, float sqrtVerts, float minH, float maxH, const osg::Object* holdObject)
++        : mHeights(makeHeights(heights, sqrtVerts))
+     {
+         mShape = new btHeightfieldTerrainShape(
+-            sqrtVerts, sqrtVerts, heights, 1,
++            sqrtVerts, sqrtVerts,
++            getHeights(heights, mHeights),
++            1,
+             minH, maxH, 2,
+             PHY_FLOAT, false
+         );
+diff --git a/apps/openmw/mwphysics/heightfield.hpp b/apps/openmw/mwphysics/heightfield.hpp
+index f248186db3..2ba58afff8 100644
+--- a/apps/openmw/mwphysics/heightfield.hpp
++++ b/apps/openmw/mwphysics/heightfield.hpp
+@@ -3,6 +3,10 @@
+ 
+ #include <osg/ref_ptr>
+ 
++#include <LinearMath/btScalar.h>
++
++#include <vector>
++
+ class btCollisionObject;
+ class btHeightfieldTerrainShape;
+ 
+@@ -27,6 +31,7 @@ namespace MWPhysics
+         btHeightfieldTerrainShape* mShape;
+         btCollisionObject* mCollisionObject;
+         osg::ref_ptr<const osg::Object> mHoldObject;
++        std::vector<btScalar> mHeights;
+ 
+         void operator=(const HeightField&);
+         HeightField(const HeightField&);
+diff --git a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
+index 6c474765de..c86dee6e55 100644
+--- a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
++++ b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
+@@ -363,11 +363,11 @@ namespace
+             AreaType_ground
+         );
+         const auto recastMesh = builder.create(mGeneration, mRevision);
+-        EXPECT_EQ(recastMesh->getVertices(), std::vector<float>({
++        EXPECT_THAT(recastMesh->getVertices(), Pointwise(FloatNear(1e-5), std::vector<float>({
+             1.41421353816986083984375, 0, 1.1920928955078125e-07,
+             -1.41421353816986083984375, 0, -1.1920928955078125e-07,
+             1.1920928955078125e-07, 0, -1.41421353816986083984375,
+-        }));
++        })));
+         EXPECT_EQ(recastMesh->getIndices(), std::vector<int>({0, 1, 2}));
+         EXPECT_EQ(recastMesh->getAreaTypes(), std::vector<AreaType>({AreaType_ground}));
+     }
+diff --git a/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp b/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
+index 36f2512462..6ec94fd68f 100644
+--- a/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
++++ b/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
+@@ -9,6 +9,8 @@
+ #include <gtest/gtest.h>
+ #include <gmock/gmock.h>
+ 
++#include <algorithm>
++
+ namespace
+ {
+     template <class T>
+@@ -30,6 +32,34 @@ namespace
+         shape.processAllTriangles(&callback, aabbMin, aabbMax);
+         return result;
+     }
++
++    bool isNear(btScalar lhs, btScalar rhs)
++    {
++        return std::abs(lhs - rhs) <= 1e-5;
++    }
++
++    bool isNear(const btVector3& lhs, const btVector3& rhs)
++    {
++        return std::equal(
++            static_cast<const btScalar*>(lhs),
++            static_cast<const btScalar*>(lhs) + 3,
++            static_cast<const btScalar*>(rhs),
++            [] (btScalar lhs, btScalar rhs) { return isNear(lhs, rhs); }
++        );
++    }
++
++    bool isNear(const btMatrix3x3& lhs, const btMatrix3x3& rhs)
++    {
++        for (int i = 0; i < 3; ++i)
++            if (!isNear(lhs[i], rhs[i]))
++                return false;
++        return true;
++    }
++
++    bool isNear(const btTransform& lhs, const btTransform& rhs)
++    {
++        return isNear(lhs.getOrigin(), rhs.getOrigin()) && isNear(lhs.getBasis(), rhs.getBasis());
++    }
+ }
+ 
+ static std::ostream& operator <<(std::ostream& stream, const btVector3& value)
+@@ -157,7 +187,7 @@ static bool operator ==(const btCompoundShape& lhs, const btCompoundShape& rhs)
+     for (int i = 0; i < lhs.getNumChildShapes(); ++i)
+     {
+         if (!compareObjects(lhs.getChildShape(i), rhs.getChildShape(i))
+-                || !(lhs.getChildTransform(i) == rhs.getChildTransform(i)))
++                || !isNear(lhs.getChildTransform(i), rhs.getChildTransform(i)))
+             return false;
+     }
+     return true;
+@@ -165,13 +195,13 @@ static bool operator ==(const btCompoundShape& lhs, const btCompoundShape& rhs)
+ 
+ static bool operator ==(const btBoxShape& lhs, const btBoxShape& rhs)
+ {
+-    return lhs.getLocalScaling() == rhs.getLocalScaling()
++    return isNear(lhs.getLocalScaling(), rhs.getLocalScaling())
+         && lhs.getHalfExtentsWithoutMargin() == rhs.getHalfExtentsWithoutMargin();
+ }
+ 
+ static bool operator ==(const btBvhTriangleMeshShape& lhs, const btBvhTriangleMeshShape& rhs)
+ {
+-    return lhs.getLocalScaling() == rhs.getLocalScaling()
++    return isNear(lhs.getLocalScaling(), rhs.getLocalScaling())
+         && lhs.usesQuantizedAabbCompression() == rhs.usesQuantizedAabbCompression()
+         && lhs.getOwnsBvh() == rhs.getOwnsBvh()
+         && getTriangles(lhs) == getTriangles(rhs);
+
+From 66da72048a5893bc8c9b20f6f7210fd45b6a74bf Mon Sep 17 00:00:00 2001
+From: elsid <elsid.mail@gmail.com>
+Date: Wed, 20 Feb 2019 23:41:16 +0300
+Subject: [PATCH 4/4] Update bullet for windows up to 2.87
+
+---
+ CI/before_script.msvc.sh | 12 ++++++------
+ appveyor.yml             |  4 ++--
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/appveyor.yml b/appveyor.yml
+index 3057cc7257..e2c13ed948 100644
+--- a/appveyor.yml
++++ b/appveyor.yml
+@@ -30,8 +30,8 @@ configuration:
+ clone_depth: 1
+ 
+ cache:
+-    - C:\projects\openmw\deps\Bullet-2.86-msvc2015-win32.7z
+-    - C:\projects\openmw\deps\Bullet-2.86-msvc2015-win64.7z
++    - C:\projects\openmw\deps\Bullet-2.87-msvc2015-win32.7z
++    - C:\projects\openmw\deps\Bullet-2.87-msvc2015-win64.7z
+     - C:\projects\openmw\deps\MyGUI-3.2.2-msvc2015-win32.7z
+     - C:\projects\openmw\deps\MyGUI-3.2.2-msvc2015-win64.7z
+     - C:\projects\openmw\deps\OSG-3.4.1-scrawl-msvc2015-win32.7z

diff --git a/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch b/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch
new file mode 100644
index 00000000000..ea3242d73ca
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch
@@ -0,0 +1,24 @@
+Use system recastnavigation instead of bundled one
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d69352c94..cfb53dc5b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -596,7 +596,16 @@ endif(WIN32)
+ # Extern
+ set(RECASTNAVIGATION_STATIC ON CACHE BOOL "Build recastnavigation static libraries")
+ 
+-add_subdirectory (extern/recastnavigation EXCLUDE_FROM_ALL)
++add_library(RecastNavigation::DebugUtils SHARED IMPORTED)
++add_library(RecastNavigation::Detour SHARED IMPORTED)
++add_library(RecastNavigation::Recast SHARED IMPORTED)
++set_target_properties(RecastNavigation::DebugUtils PROPERTIES
++	IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libDebugUtils.so)
++set_target_properties(RecastNavigation::Detour PROPERTIES
++	IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libDetour.so)
++set_target_properties(RecastNavigation::Recast PROPERTIES
++	IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libRecast.so)
++
+ add_subdirectory (extern/osg-ffmpeg-videoplayer)
+ add_subdirectory (extern/oics)
+ if (BUILD_OPENCS)

diff --git a/games-engines/openmw/metadata.xml b/games-engines/openmw/metadata.xml
index 9927592a87f..d1fe5ab9e39 100644
--- a/games-engines/openmw/metadata.xml
+++ b/games-engines/openmw/metadata.xml
@@ -16,12 +16,14 @@
 	<use>
 		<flag name="devtools">Install development tools like
 			bsatool, esmtool and opencs.</flag>
+		<flag name="osg-fork">Use OpenSceneGraph forked by OpenMW instead of upstream OSG.</flag>
 	</use>
 	<upstream>
 		<changelog>https://github.com/OpenMW/openmw/releases</changelog>
 		<doc lang="en">https://wiki.openmw.org</doc>
 		<bugs-to>https://bugs.openmw.org/</bugs-to>
 		<remote-id type="github">OpenMW/openmw</remote-id>
+		<remote-id type="gitlab">OpenMW/openmw</remote-id>
 	</upstream>
 	<longdescription lang="en">
 		OpenMW is a new and modern engine based on the one that runs the 2002

diff --git a/games-engines/openmw/openmw-9999.ebuild b/games-engines/openmw/openmw-0.46.0.ebuild
similarity index 67%
copy from games-engines/openmw/openmw-9999.ebuild
copy to games-engines/openmw/openmw-0.46.0.ebuild
index ac6ee3301bc..abb4174bc5f 100644
--- a/games-engines/openmw/openmw-9999.ebuild
+++ b/games-engines/openmw/openmw-0.46.0.ebuild
@@ -3,23 +3,26 @@
 
 EAPI=7
 
-inherit cmake xdg-utils readme.gentoo-r1
+inherit cmake flag-o-matic xdg-utils readme.gentoo-r1
 
 DESCRIPTION="Open source reimplementation of TES III: Morrowind"
-HOMEPAGE="https://openmw.org/"
+HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw"
 
 if [[ ${PV} == *9999* ]]; then
 	inherit git-r3
-	EGIT_REPO_URI=${EGIT_REPO_URI:-"https://github.com/OpenMW/openmw.git"}
+	EGIT_REPO_URI="https://github.com/OpenMW/openmw.git"
 else
-	SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz"
+	SRC_URI="
+		https://github.com/OpenMW/openmw/archive/${P}.tar.gz
+		https://gitlab.com/OpenMW/openmw/-/merge_requests/163.patch -> ${P}-floattest.patch
+	"
 	KEYWORDS="~amd64 ~x86"
 	S="${WORKDIR}/${PN}-${P}"
 fi
 
 LICENSE="GPL-3 MIT BitstreamVera ZLIB"
 SLOT="0"
-IUSE="doc devtools test +qt5"
+IUSE="doc devtools +osg-fork test +qt5"
 RESTRICT="!test? ( test )"
 
 # FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory,
@@ -27,7 +30,7 @@ RESTRICT="!test? ( test )"
 
 RDEPEND="
 	dev-games/mygui
-	>=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib]
+	dev-games/recastnavigation
 	dev-libs/boost:=[threads]
 	dev-libs/tinyxml[stl]
 	media-libs/libsdl2[joystick,opengl,video]
@@ -35,6 +38,8 @@ RDEPEND="
 	media-video/ffmpeg:=
 	>=sci-physics/bullet-2.86:=
 	virtual/opengl
+	osg-fork? ( dev-games/openscenegraph-openmw:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
+	!osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
 	qt5? (
 		app-arch/unshield
 		dev-qt/qtcore:5
@@ -58,20 +63,34 @@ BDEPEND="
 	)
 "
 
+PATCHES=(
+	"${FILESDIR}"/openmw-0.46.0-mygui-license.patch
+	"${FILESDIR}"/openmw-0.46.0-recastnavigation.patch
+	"${FILESDIR}"/openmw-0.46.0-missing-include.patch
+	"${FILESDIR}"/openmw-0.46.0-fix-cast.patch
+	"${FILESDIR}"/openmw-0.46.0-nifbullet-test.patch
+	# https://gitlab.com/OpenMW/openmw/-/merge_requests/163
+	"${DISTDIR}"/openmw-0.46.0-floattest.patch
+	"${FILESDIR}"/openmw-0.46.0-floattest2.patch
+)
+
 src_prepare() {
 	cmake_src_prepare
 
-	# We don't install license files
-	sed -i '/LICDIR/d' CMakeLists.txt || die
-
 	# Use the system tinyxml headers
 	rm -v extern/oics/tiny{str,xml}* || die
+
+	# Unbundle recastnavigation
+	rm -vr extern/recastnavigation || die
+	sed -i "s#GENTOO_RECAST_LIBDIR#${EPREFIX}/usr/$(get_libdir)#" CMakeLists.txt || die
 }
 
 src_configure() {
 	use devtools && ! use qt5 && \
 		elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed"
 
+	append-cxxflags "-I${EPREFIX}/usr/include/recastnavigation"
+
 	local mycmakeargs=(
 		-DBUILD_BSATOOL=$(usex devtools)
 		-DBUILD_DOCS=$(usex doc)
@@ -81,9 +100,9 @@ src_configure() {
 		-DBUILD_OPENCS=$(usex devtools $(usex qt5))
 		-DBUILD_WIZARD=$(usex qt5)
 		-DBUILD_UNITTESTS=$(usex test)
-		-DGLOBAL_DATA_PATH=/usr/share
-		-DICONDIR="/usr/share/icons/hicolor/256x256/apps"
-		-DMORROWIND_DATA_FILES="/usr/share/morrowind-data"
+		-DGLOBAL_DATA_PATH="${EPREFIX}/usr/share"
+		-DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps"
+		-DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data"
 		-DUSE_SYSTEM_TINYXML=ON
 		-DDESIRED_QT_VERSION=5
 	)

diff --git a/games-engines/openmw/openmw-9999.ebuild b/games-engines/openmw/openmw-9999.ebuild
index ac6ee3301bc..df9cc73b585 100644
--- a/games-engines/openmw/openmw-9999.ebuild
+++ b/games-engines/openmw/openmw-9999.ebuild
@@ -3,14 +3,14 @@
 
 EAPI=7
 
-inherit cmake xdg-utils readme.gentoo-r1
+inherit cmake flag-o-matic xdg-utils readme.gentoo-r1
 
 DESCRIPTION="Open source reimplementation of TES III: Morrowind"
-HOMEPAGE="https://openmw.org/"
+HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw"
 
 if [[ ${PV} == *9999* ]]; then
 	inherit git-r3
-	EGIT_REPO_URI=${EGIT_REPO_URI:-"https://github.com/OpenMW/openmw.git"}
+	EGIT_REPO_URI="https://github.com/OpenMW/openmw.git"
 else
 	SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz"
 	KEYWORDS="~amd64 ~x86"
@@ -19,7 +19,7 @@ fi
 
 LICENSE="GPL-3 MIT BitstreamVera ZLIB"
 SLOT="0"
-IUSE="doc devtools test +qt5"
+IUSE="doc devtools +osg-fork test +qt5"
 RESTRICT="!test? ( test )"
 
 # FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory,
@@ -27,7 +27,7 @@ RESTRICT="!test? ( test )"
 
 RDEPEND="
 	dev-games/mygui
-	>=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib]
+	dev-games/recastnavigation
 	dev-libs/boost:=[threads]
 	dev-libs/tinyxml[stl]
 	media-libs/libsdl2[joystick,opengl,video]
@@ -35,6 +35,8 @@ RDEPEND="
 	media-video/ffmpeg:=
 	>=sci-physics/bullet-2.86:=
 	virtual/opengl
+	osg-fork? ( dev-games/openscenegraph-openmw:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
+	!osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
 	qt5? (
 		app-arch/unshield
 		dev-qt/qtcore:5
@@ -58,20 +60,28 @@ BDEPEND="
 	)
 "
 
+PATCHES=(
+	"${FILESDIR}"/openmw-0.46.0-mygui-license.patch
+	"${FILESDIR}"/openmw-0.46.0-recastnavigation.patch
+)
+
 src_prepare() {
 	cmake_src_prepare
 
-	# We don't install license files
-	sed -i '/LICDIR/d' CMakeLists.txt || die
-
 	# Use the system tinyxml headers
 	rm -v extern/oics/tiny{str,xml}* || die
+
+	# Unbundle recastnavigation
+	rm -vr extern/recastnavigation || die
+	sed -i "s#GENTOO_RECAST_LIBDIR#${EPREFIX}/usr/$(get_libdir)#" CMakeLists.txt || die
 }
 
 src_configure() {
 	use devtools && ! use qt5 && \
 		elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed"
 
+	append-cxxflags "-I${EPREFIX}/usr/include/recastnavigation"
+
 	local mycmakeargs=(
 		-DBUILD_BSATOOL=$(usex devtools)
 		-DBUILD_DOCS=$(usex doc)
@@ -81,9 +91,9 @@ src_configure() {
 		-DBUILD_OPENCS=$(usex devtools $(usex qt5))
 		-DBUILD_WIZARD=$(usex qt5)
 		-DBUILD_UNITTESTS=$(usex test)
-		-DGLOBAL_DATA_PATH=/usr/share
-		-DICONDIR="/usr/share/icons/hicolor/256x256/apps"
-		-DMORROWIND_DATA_FILES="/usr/share/morrowind-data"
+		-DGLOBAL_DATA_PATH="${EPREFIX}/usr/share"
+		-DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps"
+		-DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data"
 		-DUSE_SYSTEM_TINYXML=ON
 		-DDESIRED_QT_VERSION=5
 	)


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2021-03-08  7:35 Joonas Niilola
  0 siblings, 0 replies; 10+ messages in thread
From: Joonas Niilola @ 2021-03-08  7:35 UTC (permalink / raw
  To: gentoo-commits

commit:     7a7657e01bf33cba95cf23d4877106b76f793fee
Author:     Alexey Sokolov <sokolov <AT> google <DOT> com>
AuthorDate: Mon Mar  8 07:29:04 2021 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Mar  8 07:35:05 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a7657e0

games-engines/openmw: fix build of 9999

Closes: https://bugs.gentoo.org/773211
Signed-off-by: Alexey Sokolov <sokolov <AT> google.com>
Thanks-to: Benjamin Winger <bmw <AT> disroot.org>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../openmw/files/openmw-0.47.0-bullet-debian.patch        | 15 +++++++++++++++
 games-engines/openmw/openmw-9999.ebuild                   | 10 ++++------
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/games-engines/openmw/files/openmw-0.47.0-bullet-debian.patch b/games-engines/openmw/files/openmw-0.47.0-bullet-debian.patch
new file mode 100644
index 00000000000..3a8486250a8
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.47.0-bullet-debian.patch
@@ -0,0 +1,15 @@
+This condition makes it link to wrong library on Gentoo Prefix on Debian
+--- a/components/CMakeLists.txt
++++ b/components/CMakeLists.txt
+@@ -246,11 +246,7 @@ target_link_libraries(components
+     RecastNavigation::Recast
+     )
+ 
+-if (BULLET_USE_DOUBLES AND (UBUNTU_FOUND OR DEBIAN_FOUND) AND OPENMW_USE_SYSTEM_BULLET)
+-    target_link_libraries(components BulletCollision-float64 LinearMath-float64)
+-else()
+     target_link_libraries(components ${BULLET_LIBRARIES})
+-endif()
+ 
+ if (WIN32)
+     target_link_libraries(components

diff --git a/games-engines/openmw/openmw-9999.ebuild b/games-engines/openmw/openmw-9999.ebuild
index 70603fec46a..512ef385589 100644
--- a/games-engines/openmw/openmw-9999.ebuild
+++ b/games-engines/openmw/openmw-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -26,6 +26,7 @@ RESTRICT="!test? ( test )"
 # used when BUILD_OPENCS flag is enabled. See bug #676266.
 
 RDEPEND="
+	app-arch/lz4
 	dev-games/mygui
 	dev-games/recastnavigation
 	dev-libs/boost:=[threads]
@@ -62,7 +63,7 @@ BDEPEND="
 
 PATCHES=(
 	"${FILESDIR}"/openmw-0.47.0-mygui-license.patch
-	"${FILESDIR}"/openmw-0.46.0-recastnavigation.patch
+	"${FILESDIR}"/openmw-0.47.0-bullet-debian.patch
 )
 
 src_prepare() {
@@ -70,10 +71,6 @@ src_prepare() {
 
 	# Use the system tinyxml headers
 	rm -v extern/oics/tiny{str,xml}* || die
-
-	# Unbundle recastnavigation
-	rm -vr extern/recastnavigation || die
-	sed -i "s#GENTOO_RECAST_LIBDIR#${EPREFIX}/usr/$(get_libdir)#" CMakeLists.txt || die
 }
 
 src_configure() {
@@ -95,6 +92,7 @@ src_configure() {
 		-DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps"
 		-DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data"
 		-DUSE_SYSTEM_TINYXML=ON
+		-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON
 		-DDESIRED_QT_VERSION=5
 		-DBULLET_USE_DOUBLES=ON
 	)


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2021-05-06 13:18 Joonas Niilola
  0 siblings, 0 replies; 10+ messages in thread
From: Joonas Niilola @ 2021-05-06 13:18 UTC (permalink / raw
  To: gentoo-commits

commit:     67601527665101d64ee8ffd265785d6524f7dedb
Author:     Alexey Sokolov <sokolov <AT> google <DOT> com>
AuthorDate: Wed May  5 17:02:29 2021 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu May  6 13:18:47 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67601527

games-engines/openmw: remove openmw-0.47.0-bullet-debian.patch

https://gitlab.com/OpenMW/openmw/-/commit/e3a6cb1695336c834c9664eabc40028f01e3b99f
includes it

Signed-off-by: Alexey Sokolov <sokolov <AT> google.com>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../openmw/files/openmw-0.47.0-bullet-debian.patch        | 15 ---------------
 games-engines/openmw/openmw-9999.ebuild                   |  1 -
 2 files changed, 16 deletions(-)

diff --git a/games-engines/openmw/files/openmw-0.47.0-bullet-debian.patch b/games-engines/openmw/files/openmw-0.47.0-bullet-debian.patch
deleted file mode 100644
index 3a8486250a8..00000000000
--- a/games-engines/openmw/files/openmw-0.47.0-bullet-debian.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-This condition makes it link to wrong library on Gentoo Prefix on Debian
---- a/components/CMakeLists.txt
-+++ b/components/CMakeLists.txt
-@@ -246,11 +246,7 @@ target_link_libraries(components
-     RecastNavigation::Recast
-     )
- 
--if (BULLET_USE_DOUBLES AND (UBUNTU_FOUND OR DEBIAN_FOUND) AND OPENMW_USE_SYSTEM_BULLET)
--    target_link_libraries(components BulletCollision-float64 LinearMath-float64)
--else()
-     target_link_libraries(components ${BULLET_LIBRARIES})
--endif()
- 
- if (WIN32)
-     target_link_libraries(components

diff --git a/games-engines/openmw/openmw-9999.ebuild b/games-engines/openmw/openmw-9999.ebuild
index d57328e79fe..7e624ccea45 100644
--- a/games-engines/openmw/openmw-9999.ebuild
+++ b/games-engines/openmw/openmw-9999.ebuild
@@ -63,7 +63,6 @@ BDEPEND="
 
 PATCHES=(
 	"${FILESDIR}"/openmw-0.47.0-mygui-license.patch
-	"${FILESDIR}"/openmw-0.47.0-bullet-debian.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2021-05-06 13:18 Joonas Niilola
  0 siblings, 0 replies; 10+ messages in thread
From: Joonas Niilola @ 2021-05-06 13:18 UTC (permalink / raw
  To: gentoo-commits

commit:     c1911b70f86e3f764570bd5bd32b5c6363d540d1
Author:     Alexey Sokolov <sokolov <AT> google <DOT> com>
AuthorDate: Thu May  6 09:41:00 2021 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu May  6 13:18:46 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1911b70

games-engines/openmw: fix build with gcc 11

Signed-off-by: Alexey Sokolov <sokolov <AT> google.com>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../openmw/files/openmw-0.46.0-gcc11.patch         | 36 ++++++++++++++++++++++
 games-engines/openmw/openmw-0.46.0.ebuild          |  1 +
 2 files changed, 37 insertions(+)

diff --git a/games-engines/openmw/files/openmw-0.46.0-gcc11.patch b/games-engines/openmw/files/openmw-0.46.0-gcc11.patch
new file mode 100644
index 00000000000..0dc3106fb3b
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.46.0-gcc11.patch
@@ -0,0 +1,36 @@
+diff --git a/components/sceneutil/mwshadowtechnique.cpp b/components/sceneutil/mwshadowtechnique.cpp
+index cb3a1b2..62cfeec 100644
+--- a/components/sceneutil/mwshadowtechnique.cpp
++++ b/components/sceneutil/mwshadowtechnique.cpp
+@@ -24,6 +24,7 @@
+ #include <osg/io_utils>
+ 
+ #include <sstream>
++#include <limits>
+ 
+ namespace {
+ 
+diff --git a/components/sceneutil/shadow.cpp b/components/sceneutil/shadow.cpp
+index 035c19a..aba1b81 100644
+--- a/components/sceneutil/shadow.cpp
++++ b/components/sceneutil/shadow.cpp
+@@ -4,6 +4,7 @@
+ 
+ #include <components/sceneutil/vismask.hpp>
+ #include <components/settings/settings.hpp>
++#include <limits>
+ 
+ namespace SceneUtil
+ {
+diff --git a/components/terrain/quadtreeworld.cpp b/components/terrain/quadtreeworld.cpp
+index f998b78..e0e47dd 100644
+--- a/components/terrain/quadtreeworld.cpp
++++ b/components/terrain/quadtreeworld.cpp
+@@ -3,6 +3,7 @@
+ #include <osgUtil/CullVisitor>
+ 
+ #include <sstream>
++#include <limits>
+ 
+ #include <components/misc/constants.hpp>
+ #include <components/sceneutil/mwshadowtechnique.hpp>

diff --git a/games-engines/openmw/openmw-0.46.0.ebuild b/games-engines/openmw/openmw-0.46.0.ebuild
index ce3fb564e71..9b4a6bfa4e9 100644
--- a/games-engines/openmw/openmw-0.46.0.ebuild
+++ b/games-engines/openmw/openmw-0.46.0.ebuild
@@ -72,6 +72,7 @@ PATCHES=(
 	# https://gitlab.com/OpenMW/openmw/-/merge_requests/163
 	"${DISTDIR}"/openmw-0.46.0-floattest.patch
 	"${FILESDIR}"/openmw-0.46.0-floattest2.patch
+	"${FILESDIR}"/openmw-0.46.0-gcc11.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2021-12-06 10:40 David Seifert
  0 siblings, 0 replies; 10+ messages in thread
From: David Seifert @ 2021-12-06 10:40 UTC (permalink / raw
  To: gentoo-commits

commit:     7d9a09fdbbac2bcaaeb79ce9cc4d852f7f656101
Author:     Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org>
AuthorDate: Mon Dec  6 10:40:28 2021 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Mon Dec  6 10:40:28 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d9a09fd

games-engines/openmw: drop old

Closes: https://github.com/gentoo/gentoo/pull/23194
Closes: https://bugs.gentoo.org/794538
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 games-engines/openmw/Manifest                      |   2 -
 .../openmw/files/openmw-0.46.0-boost-1.77.patch    |  10 -
 .../openmw/files/openmw-0.46.0-fix-cast.patch      | 214 -------------
 .../openmw/files/openmw-0.46.0-floattest2.patch    | 139 ---------
 .../openmw/files/openmw-0.46.0-gcc11.patch         |  36 ---
 .../files/openmw-0.46.0-missing-include.patch      |  19 --
 .../openmw/files/openmw-0.46.0-mygui-license.patch |  16 -
 .../files/openmw-0.46.0-nifbullet-test.patch       | 335 ---------------------
 .../files/openmw-0.46.0-recastnavigation.patch     |  24 --
 games-engines/openmw/openmw-0.46.0-r2.ebuild       | 163 ----------
 10 files changed, 958 deletions(-)

diff --git a/games-engines/openmw/Manifest b/games-engines/openmw/Manifest
index 088a9b8fd26c..607fa30988f1 100644
--- a/games-engines/openmw/Manifest
+++ b/games-engines/openmw/Manifest
@@ -1,3 +1 @@
-DIST openmw-0.46.0-floattest.patch 43168 BLAKE2B 060b529fd4cd01f0fc723bb5a00a256b9c1ae4413c7b22581467cce75416e01041c3af22f0215ad9b1c475965a988065e0860c01c1e71d97454b022eec4779ea SHA512 0e165417e9ae047231fdc27b62251b33867f3782c1753f81705c886d6d3a433c8bbc3b4653a2555bc644bad11db9769d4bc2abcc84ca3ab23fabb6b80347bc32
-DIST openmw-0.46.0.tar.gz 5155004 BLAKE2B 8ad94a7fffe5a0739c56c778efe2ec17ef66c312a7fe5caf015cf3cad2bc17d2abe8cdc3f4134049a32fe55c4f4b3f72678d2d0ce1037fd02f6ac753b9d89b2c SHA512 da384aead300552817c0d0ce03515a5ccc95dcab4e02d4c1dd0d6c5f1b01ee01209bbaea74e2d12021e3465e49b051823bb018de39675c5a22c6892893624486
 DIST openmw-0.47.0.tar.gz 5156857 BLAKE2B 40e8b9670423259fa0cc03ef000c17ebe06d1d58c2527b51b25cea3b54978b8a698984371eac14ff212f9550253ab17d41b83d37426371f12f5ce2d30b240d3d SHA512 517e650d0054cdba8d38de05ed3975b0fcf8de32fda59c8df7c34b973e5390efa0dd9ec79babdfdaa79dee7aa8a75009776f62fad91b9aa9aa28016c5032652b

diff --git a/games-engines/openmw/files/openmw-0.46.0-boost-1.77.patch b/games-engines/openmw/files/openmw-0.46.0-boost-1.77.patch
deleted file mode 100644
index 708fd9e9f52f..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-boost-1.77.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-https://bugs.gentoo.org/808763
-
---- a/components/vfs/filesystemarchive.cpp
-+++ b/components/vfs/filesystemarchive.cpp
-@@ -1,4 +1,5 @@
- #include "filesystemarchive.hpp"
- 
-+#include <algorithm>
- #include <boost/filesystem.hpp>
- 

diff --git a/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch b/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch
deleted file mode 100644
index f6e82cb3a2c9..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-Fixes build on ~arch system, patch from upstream, to be dropped for 0.47
-
-From 208a50340db5506dded60c05272ce9692773baa9 Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Mon, 13 Apr 2020 20:45:07 +0200
-Subject: [PATCH] Specialize DetourNavigator::ObjectId ctor for pointers
-
-To fix msvc error:
-components\detournavigator\objectid.hpp(14,13): error C2440: 'reinterpret_cast': cannot convert from 'const T' to 'size_t'
-          with
-          [
-              T=unsigned long
-          ]
-diff --git a/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp b/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
-index 5275d9119e..e44ae48786 100644
---- a/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
-+++ b/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
-@@ -61,15 +61,15 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        EXPECT_TRUE(manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
-+        EXPECT_TRUE(manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
-     }
- 
-     TEST_F(DetourNavigatorTileCachedRecastMeshManagerTest, add_object_for_existing_object_should_return_false)
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
--        EXPECT_FALSE(manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        EXPECT_FALSE(manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
-     }
- 
-     TEST_F(DetourNavigatorTileCachedRecastMeshManagerTest, update_object_for_changed_object_should_return_changed_tiles)
-@@ -77,9 +77,9 @@ namespace
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
-         const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
--        manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
-         EXPECT_THAT(
--            manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
-+            manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
-             ElementsAre(TilePosition(-1, -1), TilePosition(-1, 0), TilePosition(0, -1), TilePosition(0, 0),
-                         TilePosition(1, -1), TilePosition(1, 0))
-         );
-@@ -89,9 +89,9 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_EQ(
--            manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
-+            manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
-             std::vector<TilePosition>()
-         );
-     }
-@@ -100,7 +100,7 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
-@@ -111,7 +111,7 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_EQ(manager.getMesh(TilePosition(1, 0)), nullptr);
-     }
- 
-@@ -121,13 +121,13 @@ namespace
-         const btBoxShape boxShape(btVector3(20, 20, 100));
-         const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
- 
--        manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
-         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(0, 0)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(1, 0)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(1, -1)), nullptr);
- 
--        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
-@@ -140,11 +140,11 @@ namespace
-         const btBoxShape boxShape(btVector3(20, 20, 100));
-         const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
- 
--        manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
-         EXPECT_EQ(manager.getMesh(TilePosition(-1, -1)), nullptr);
-         EXPECT_EQ(manager.getMesh(TilePosition(-1, 0)), nullptr);
- 
--        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_EQ(manager.getMesh(TilePosition(1, 0)), nullptr);
-         EXPECT_EQ(manager.getMesh(TilePosition(1, -1)), nullptr);
-     }
-@@ -153,8 +153,8 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
--        manager.removeObject(ObjectId(1ul));
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.removeObject(ObjectId(&boxShape));
-         EXPECT_EQ(manager.getMesh(TilePosition(-1, -1)), nullptr);
-         EXPECT_EQ(manager.getMesh(TilePosition(-1, 0)), nullptr);
-         EXPECT_EQ(manager.getMesh(TilePosition(0, -1)), nullptr);
-@@ -166,13 +166,13 @@ namespace
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
- 
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(0, 0)), nullptr);
- 
--        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
-         EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
-@@ -184,7 +184,7 @@ namespace
-         TileCachedRecastMeshManager manager(mSettings);
-         const auto initialRevision = manager.getRevision();
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_EQ(manager.getRevision(), initialRevision + 1);
-     }
- 
-@@ -192,9 +192,9 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         const auto beforeAddRevision = manager.getRevision();
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_EQ(manager.getRevision(), beforeAddRevision);
-     }
- 
-@@ -203,9 +203,9 @@ namespace
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
-         const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
--        manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
-         const auto beforeUpdateRevision = manager.getRevision();
--        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_EQ(manager.getRevision(), beforeUpdateRevision + 1);
-     }
- 
-@@ -213,9 +213,9 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         const auto beforeUpdateRevision = manager.getRevision();
--        manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         EXPECT_EQ(manager.getRevision(), beforeUpdateRevision);
-     }
- 
-@@ -223,9 +223,9 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const btBoxShape boxShape(btVector3(20, 20, 100));
--        manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+        manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-         const auto beforeRemoveRevision = manager.getRevision();
--        manager.removeObject(ObjectId(1ul));
-+        manager.removeObject(ObjectId(&boxShape));
-         EXPECT_EQ(manager.getRevision(), beforeRemoveRevision + 1);
-     }
- 
-@@ -233,7 +233,7 @@ namespace
-     {
-         TileCachedRecastMeshManager manager(mSettings);
-         const auto beforeRemoveRevision = manager.getRevision();
--        manager.removeObject(ObjectId(1ul));
-+        manager.removeObject(ObjectId(&manager));
-         EXPECT_EQ(manager.getRevision(), beforeRemoveRevision);
-     }
- }
-diff --git a/components/detournavigator/objectid.hpp b/components/detournavigator/objectid.hpp
-index 3b56924b13..6ddcc9169d 100644
---- a/components/detournavigator/objectid.hpp
-+++ b/components/detournavigator/objectid.hpp
-@@ -10,7 +10,7 @@ namespace DetourNavigator
-     {
-     public:
-         template <class T>
--        explicit ObjectId(const T value) throw()
-+        explicit ObjectId(T* value) throw()
-             : mValue(reinterpret_cast<std::size_t>(value))
-         {
-         }

diff --git a/games-engines/openmw/files/openmw-0.46.0-floattest2.patch b/games-engines/openmw/files/openmw-0.46.0-floattest2.patch
deleted file mode 100644
index ca6e355eab7d..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-floattest2.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-https://gitlab.com/OpenMW/openmw/-/merge_requests/253
-
---- a/apps/openmw_test_suite/detournavigator/navigator.cpp	2020-06-30 16:07:31.544410916 +0100
-+++ b/apps/openmw_test_suite/detournavigator/navigator.cpp	2020-06-30 16:08:50.405698937 +0100
-@@ -458,25 +458,25 @@
- 
-         EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim, mAreaCosts, mOut), Status::Success);
- 
--        EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
--            osg::Vec3f(0, 215, 185.33331298828125),
--            osg::Vec3f(0, 186.6666717529296875, 185.33331298828125),
--            osg::Vec3f(0, 158.333343505859375, 185.33331298828125),
--            osg::Vec3f(0, 130.0000152587890625, 185.33331298828125),
--            osg::Vec3f(0, 101.66667938232421875, 185.33331298828125),
--            osg::Vec3f(0, 73.333343505859375, 185.33331298828125),
--            osg::Vec3f(0, 45.0000152587890625, 185.33331298828125),
--            osg::Vec3f(0, 16.6666812896728515625, 185.33331298828125),
--            osg::Vec3f(0, -11.66664981842041015625, 185.33331298828125),
--            osg::Vec3f(0, -39.999980926513671875, 185.33331298828125),
--            osg::Vec3f(0, -68.33331298828125, 185.33331298828125),
--            osg::Vec3f(0, -96.66664886474609375, 185.33331298828125),
--            osg::Vec3f(0, -124.99997711181640625, 185.33331298828125),
--            osg::Vec3f(0, -153.33331298828125, 185.33331298828125),
--            osg::Vec3f(0, -181.6666412353515625, 185.33331298828125),
--            osg::Vec3f(0, -209.999969482421875, 185.33331298828125),
--            osg::Vec3f(0, -215, 185.33331298828125),
--        })) << mPath;
-+        EXPECT_THAT(mPath, ElementsAre(
-+            Vec3fEq(0, 215, 185.33331298828125),
-+            Vec3fEq(0, 186.6666717529296875, 185.33331298828125),
-+            Vec3fEq(0, 158.333343505859375, 185.33331298828125),
-+            Vec3fEq(0, 130.0000152587890625, 185.33331298828125),
-+            Vec3fEq(0, 101.66667938232421875, 185.33331298828125),
-+            Vec3fEq(0, 73.333343505859375, 185.33331298828125),
-+            Vec3fEq(0, 45.0000152587890625, 185.33331298828125),
-+            Vec3fEq(0, 16.6666812896728515625, 185.33331298828125),
-+            Vec3fEq(0, -11.66664981842041015625, 185.33331298828125),
-+            Vec3fEq(0, -39.999980926513671875, 185.33331298828125),
-+            Vec3fEq(0, -68.33331298828125, 185.33331298828125),
-+            Vec3fEq(0, -96.66664886474609375, 185.33331298828125),
-+            Vec3fEq(0, -124.99997711181640625, 185.33331298828125),
-+            Vec3fEq(0, -153.33331298828125, 185.33331298828125),
-+            Vec3fEq(0, -181.6666412353515625, 185.33331298828125),
-+            Vec3fEq(0, -209.999969482421875, 185.33331298828125),
-+            Vec3fEq(0, -215, 185.33331298828125)
-+        ));
-     }
- 
-     TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_when_ground_cross_water_with_swim_and_walk_flags)
-@@ -505,25 +505,25 @@
-         EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim | Flag_walk, mAreaCosts, mOut),
-                   Status::Success);
- 
--        EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
--            osg::Vec3f(0, 215, -94.75363922119140625),
--            osg::Vec3f(0, 186.6666717529296875, -106.0000152587890625),
--            osg::Vec3f(0, 158.333343505859375, -115.85507965087890625),
--            osg::Vec3f(0, 130.0000152587890625, -125.71016693115234375),
--            osg::Vec3f(0, 101.66667938232421875, -135.5652313232421875),
--            osg::Vec3f(0, 73.333343505859375, -143.3333587646484375),
--            osg::Vec3f(0, 45.0000152587890625, -143.3333587646484375),
--            osg::Vec3f(0, 16.6666812896728515625, -143.3333587646484375),
--            osg::Vec3f(0, -11.66664981842041015625, -143.3333587646484375),
--            osg::Vec3f(0, -39.999980926513671875, -143.3333587646484375),
--            osg::Vec3f(0, -68.33331298828125, -143.3333587646484375),
--            osg::Vec3f(0, -96.66664886474609375, -137.3043670654296875),
--            osg::Vec3f(0, -124.99997711181640625, -127.44930267333984375),
--            osg::Vec3f(0, -153.33331298828125, -117.59423065185546875),
--            osg::Vec3f(0, -181.6666412353515625, -107.73915863037109375),
--            osg::Vec3f(0, -209.999969482421875, -97.7971343994140625),
--            osg::Vec3f(0, -215, -94.75363922119140625),
--        })) << mPath;
-+        EXPECT_THAT(mPath, ElementsAre(
-+            Vec3fEq(0, 215, -94.75363922119140625),
-+            Vec3fEq(0, 186.6666717529296875, -106.0000152587890625),
-+            Vec3fEq(0, 158.333343505859375, -115.85507965087890625),
-+            Vec3fEq(0, 130.0000152587890625, -125.71016693115234375),
-+            Vec3fEq(0, 101.66667938232421875, -135.5652313232421875),
-+            Vec3fEq(0, 73.333343505859375, -143.3333587646484375),
-+            Vec3fEq(0, 45.0000152587890625, -143.3333587646484375),
-+            Vec3fEq(0, 16.6666812896728515625, -143.3333587646484375),
-+            Vec3fEq(0, -11.66664981842041015625, -143.3333587646484375),
-+            Vec3fEq(0, -39.999980926513671875, -143.3333587646484375),
-+            Vec3fEq(0, -68.33331298828125, -143.3333587646484375),
-+            Vec3fEq(0, -96.66664886474609375, -137.3043670654296875),
-+            Vec3fEq(0, -124.99997711181640625, -127.44930267333984375),
-+            Vec3fEq(0, -153.33331298828125, -117.59423065185546875),
-+            Vec3fEq(0, -181.6666412353515625, -107.73915863037109375),
-+            Vec3fEq(0, -209.999969482421875, -97.7971343994140625),
-+            Vec3fEq(0, -215, -94.75363922119140625)
-+        ));
-     }
- 
-     TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_when_ground_cross_water_with_max_int_cells_size_and_swim_and_walk_flags)
-@@ -552,25 +552,25 @@
-         EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim | Flag_walk, mAreaCosts, mOut),
-                   Status::Success);
- 
--        EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
--            osg::Vec3f(0, 215, -94.75363922119140625),
--            osg::Vec3f(0, 186.6666717529296875, -106.0000152587890625),
--            osg::Vec3f(0, 158.333343505859375, -115.85507965087890625),
--            osg::Vec3f(0, 130.0000152587890625, -125.71016693115234375),
--            osg::Vec3f(0, 101.66667938232421875, -135.5652313232421875),
--            osg::Vec3f(0, 73.333343505859375, -143.3333587646484375),
--            osg::Vec3f(0, 45.0000152587890625, -143.3333587646484375),
--            osg::Vec3f(0, 16.6666812896728515625, -143.3333587646484375),
--            osg::Vec3f(0, -11.66664981842041015625, -143.3333587646484375),
--            osg::Vec3f(0, -39.999980926513671875, -143.3333587646484375),
--            osg::Vec3f(0, -68.33331298828125, -143.3333587646484375),
--            osg::Vec3f(0, -96.66664886474609375, -137.3043670654296875),
--            osg::Vec3f(0, -124.99997711181640625, -127.44930267333984375),
--            osg::Vec3f(0, -153.33331298828125, -117.59423065185546875),
--            osg::Vec3f(0, -181.6666412353515625, -107.73915863037109375),
--            osg::Vec3f(0, -209.999969482421875, -97.7971343994140625),
--            osg::Vec3f(0, -215, -94.75363922119140625),
--        })) << mPath;
-+        EXPECT_THAT(mPath, ElementsAre(
-+           Vec3fEq(0, 215, -94.75363922119140625),
-+           Vec3fEq(0, 186.6666717529296875, -106.0000152587890625),
-+           Vec3fEq(0, 158.333343505859375, -115.85507965087890625),
-+           Vec3fEq(0, 130.0000152587890625, -125.71016693115234375),
-+           Vec3fEq(0, 101.66667938232421875, -135.5652313232421875),
-+           Vec3fEq(0, 73.333343505859375, -143.3333587646484375),
-+           Vec3fEq(0, 45.0000152587890625, -143.3333587646484375),
-+           Vec3fEq(0, 16.6666812896728515625, -143.3333587646484375),
-+           Vec3fEq(0, -11.66664981842041015625, -143.3333587646484375),
-+           Vec3fEq(0, -39.999980926513671875, -143.3333587646484375),
-+           Vec3fEq(0, -68.33331298828125, -143.3333587646484375),
-+           Vec3fEq(0, -96.66664886474609375, -137.3043670654296875),
-+           Vec3fEq(0, -124.99997711181640625, -127.44930267333984375),
-+           Vec3fEq(0, -153.33331298828125, -117.59423065185546875),
-+           Vec3fEq(0, -181.6666412353515625, -107.73915863037109375),
-+           Vec3fEq(0, -209.999969482421875, -97.7971343994140625),
-+           Vec3fEq(0, -215, -94.75363922119140625)
-+        ));
-     }
- 
-     TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_ground_when_ground_cross_water_with_only_walk_flag)

diff --git a/games-engines/openmw/files/openmw-0.46.0-gcc11.patch b/games-engines/openmw/files/openmw-0.46.0-gcc11.patch
deleted file mode 100644
index 0dc3106fb3bf..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-gcc11.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/components/sceneutil/mwshadowtechnique.cpp b/components/sceneutil/mwshadowtechnique.cpp
-index cb3a1b2..62cfeec 100644
---- a/components/sceneutil/mwshadowtechnique.cpp
-+++ b/components/sceneutil/mwshadowtechnique.cpp
-@@ -24,6 +24,7 @@
- #include <osg/io_utils>
- 
- #include <sstream>
-+#include <limits>
- 
- namespace {
- 
-diff --git a/components/sceneutil/shadow.cpp b/components/sceneutil/shadow.cpp
-index 035c19a..aba1b81 100644
---- a/components/sceneutil/shadow.cpp
-+++ b/components/sceneutil/shadow.cpp
-@@ -4,6 +4,7 @@
- 
- #include <components/sceneutil/vismask.hpp>
- #include <components/settings/settings.hpp>
-+#include <limits>
- 
- namespace SceneUtil
- {
-diff --git a/components/terrain/quadtreeworld.cpp b/components/terrain/quadtreeworld.cpp
-index f998b78..e0e47dd 100644
---- a/components/terrain/quadtreeworld.cpp
-+++ b/components/terrain/quadtreeworld.cpp
-@@ -3,6 +3,7 @@
- #include <osgUtil/CullVisitor>
- 
- #include <sstream>
-+#include <limits>
- 
- #include <components/misc/constants.hpp>
- #include <components/sceneutil/mwshadowtechnique.hpp>

diff --git a/games-engines/openmw/files/openmw-0.46.0-missing-include.patch b/games-engines/openmw/files/openmw-0.46.0-missing-include.patch
deleted file mode 100644
index 803707498e43..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-missing-include.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Fixes build on ~arch system, patch from upstream, to be dropped for 0.47
-
-From 10daadefbea1f62a818c339dc7f3d69a858bc8a6 Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Thu, 30 Apr 2020 21:57:22 +0200
-Subject: [PATCH] Add missing include
-
-diff --git a/components/detournavigator/offmeshconnectionsmanager.hpp b/components/detournavigator/offmeshconnectionsmanager.hpp
-index 30d7976aec..155ce32963 100644
---- a/components/detournavigator/offmeshconnectionsmanager.hpp
-+++ b/components/detournavigator/offmeshconnectionsmanager.hpp
-@@ -13,6 +13,7 @@
- 
- #include <boost/optional.hpp>
- 
-+#include <algorithm>
- #include <map>
- #include <mutex>
- #include <unordered_map>

diff --git a/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch b/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch
deleted file mode 100644
index a14f58bc9e79..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-We don't install license files
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d69352c94..5f97c86e9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -470,9 +470,6 @@ IF(NOT WIN32 AND NOT APPLE)
-     #    INSTALL(PROGRAMS "${OpenMW_BINARY_DIR}/Plugin_MyGUI_OpenMW_Resources.so" DESTINATION "${LIBDIR}" )
-     #ENDIF(BUILD_MYGUI_PLUGIN)
- 
--    # Install licenses
--    INSTALL(FILES "files/mygui/DejaVu Font License.txt" DESTINATION "${LICDIR}" )
--
-     # Install icon and desktop file
-     INSTALL(FILES "${OpenMW_BINARY_DIR}/org.openmw.launcher.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "openmw")
-     INSTALL(FILES "${OpenMW_SOURCE_DIR}/files/launcher/images/openmw.png" DESTINATION "${ICONDIR}" COMPONENT "openmw")

diff --git a/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch b/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch
deleted file mode 100644
index 315b0753589d..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch
+++ /dev/null
@@ -1,335 +0,0 @@
-Fixes test on i686 system, patch from upstream, to be dropped for 0.47
-
-From 14d0ca4cd3e9aa9e329590913d5f8fb55077587d Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Sun, 25 Nov 2018 11:42:26 +0300
-Subject: [PATCH 1/4] Cast float to btScalar
-
----
- .../detournavigator/recastmeshbuilder.cpp      | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/components/detournavigator/recastmeshbuilder.cpp b/components/detournavigator/recastmeshbuilder.cpp
-index d96ba2f29c..f613683571 100644
---- a/components/detournavigator/recastmeshbuilder.cpp
-+++ b/components/detournavigator/recastmeshbuilder.cpp
-@@ -163,15 +163,15 @@ namespace DetourNavigator
- 
-         transformBoundingBox(transform, aabbMin, aabbMax);
- 
--        aabbMin.setX(std::max(mBounds.mMin.x(), aabbMin.x()));
--        aabbMin.setX(std::min(mBounds.mMax.x(), aabbMin.x()));
--        aabbMin.setY(std::max(mBounds.mMin.y(), aabbMin.y()));
--        aabbMin.setY(std::min(mBounds.mMax.y(), aabbMin.y()));
--
--        aabbMax.setX(std::max(mBounds.mMin.x(), aabbMax.x()));
--        aabbMax.setX(std::min(mBounds.mMax.x(), aabbMax.x()));
--        aabbMax.setY(std::max(mBounds.mMin.y(), aabbMax.y()));
--        aabbMax.setY(std::min(mBounds.mMax.y(), aabbMax.y()));
-+        aabbMin.setX(std::max(static_cast<btScalar>(mBounds.mMin.x()), aabbMin.x()));
-+        aabbMin.setX(std::min(static_cast<btScalar>(mBounds.mMax.x()), aabbMin.x()));
-+        aabbMin.setY(std::max(static_cast<btScalar>(mBounds.mMin.y()), aabbMin.y()));
-+        aabbMin.setY(std::min(static_cast<btScalar>(mBounds.mMax.y()), aabbMin.y()));
-+
-+        aabbMax.setX(std::max(static_cast<btScalar>(mBounds.mMin.x()), aabbMax.x()));
-+        aabbMax.setX(std::min(static_cast<btScalar>(mBounds.mMax.x()), aabbMax.x()));
-+        aabbMax.setY(std::max(static_cast<btScalar>(mBounds.mMin.y()), aabbMax.y()));
-+        aabbMax.setY(std::min(static_cast<btScalar>(mBounds.mMax.y()), aabbMax.y()));
- 
-         transformBoundingBox(transform.inverse(), aabbMin, aabbMax);
- 
-
-From ef5a5ef43f9a91795339ef3ea97c505c1e9dc28d Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Sun, 25 Nov 2018 14:03:28 +0300
-Subject: [PATCH 2/4] Print not matched values with full precision
-
----
- .../detournavigator/operators.hpp             | 62 +++++++++++++++----
- 1 file changed, 51 insertions(+), 11 deletions(-)
-
-diff --git a/apps/openmw_test_suite/detournavigator/operators.hpp b/apps/openmw_test_suite/detournavigator/operators.hpp
-index a473632bab..e34d6278a7 100644
---- a/apps/openmw_test_suite/detournavigator/operators.hpp
-+++ b/apps/openmw_test_suite/detournavigator/operators.hpp
-@@ -20,22 +20,62 @@ namespace DetourNavigator
-     }
- }
- 
-+namespace
-+{
-+    template <class T>
-+    struct Wrapper {
-+        const T& mValue;
-+    };
-+
-+    template <class Range>
-+    inline testing::Message& writeRange(testing::Message& message, const Range& range)
-+    {
-+        message << "{\n";
-+        for (const auto& v : range)
-+            message << Wrapper<typename std::decay<decltype(v)>::type> {v} << ",\n";
-+        return message << "}";
-+    }
-+}
-+
- namespace testing
- {
-+    template <>
-+    inline testing::Message& Message::operator <<(const osg::Vec3f& value)
-+    {
-+        return (*this) << "osg::Vec3f(" << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.x()
-+            << ", " << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.y()
-+            << ", " << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.z()
-+            << ')';
-+    }
-+
-+    template <>
-+    inline testing::Message& Message::operator <<(const Wrapper<osg::Vec3f>& value)
-+    {
-+        return (*this) << value.mValue;
-+    }
-+
-+    template <>
-+    inline testing::Message& Message::operator <<(const Wrapper<float>& value)
-+    {
-+        return (*this) << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.mValue;
-+    }
-+
-     template <>
-     inline testing::Message& Message::operator <<(const std::deque<osg::Vec3f>& value)
-     {
--        (*this) << "{\n";
--        for (const auto& v : value)
--        {
--            std::ostringstream stream;
--            stream << "osg::Vec3f("
--                   << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.x() << ", "
--                   << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.y() << ", "
--                   << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.z() << ")";
--            (*this) << stream.str() << ",\n";
--        }
--        return (*this) << "}";
-+        return writeRange(*this, value);
-+    }
-+
-+    template <>
-+    inline testing::Message& Message::operator <<(const std::vector<osg::Vec3f>& value)
-+    {
-+        return writeRange(*this, value);
-+    }
-+
-+    template <>
-+    inline testing::Message& Message::operator <<(const std::vector<float>& value)
-+    {
-+        return writeRange(*this, value);
-     }
- }
- 
-
-From 2d7c3bae6127fc3717d5e3a8e8830215450fb47f Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Sun, 25 Nov 2018 11:46:09 +0300
-Subject: [PATCH 3/4] Support bullet with double precision
-
----
- apps/openmw/mwphysics/heightfield.cpp         | 38 ++++++++++++++++++-
- apps/openmw/mwphysics/heightfield.hpp         |  5 +++
- .../detournavigator/recastmeshbuilder.cpp     |  4 +-
- .../nifloader/testbulletnifloader.cpp         | 36 ++++++++++++++++--
- 4 files changed, 77 insertions(+), 6 deletions(-)
-
-diff --git a/apps/openmw/mwphysics/heightfield.cpp b/apps/openmw/mwphysics/heightfield.cpp
-index 52aed9c072..e1448116bf 100644
---- a/apps/openmw/mwphysics/heightfield.cpp
-+++ b/apps/openmw/mwphysics/heightfield.cpp
-@@ -7,12 +7,48 @@
- 
- #include <LinearMath/btTransform.h>
- 
-+#include <type_traits>
-+
-+namespace
-+{
-+    template <class T>
-+    auto makeHeights(const T* heights, float sqrtVerts)
-+        -> std::enable_if_t<std::is_same<btScalar, T>::value, std::vector<btScalar>>
-+    {
-+        return {};
-+    }
-+
-+    template <class T>
-+    auto makeHeights(const T* heights, float sqrtVerts)
-+        -> std::enable_if_t<!std::is_same<btScalar, T>::value, std::vector<btScalar>>
-+    {
-+        return std::vector<btScalar>(heights, heights + static_cast<std::ptrdiff_t>(sqrtVerts * sqrtVerts));
-+    }
-+
-+    template <class T>
-+    auto getHeights(const T* floatHeights, const std::vector<btScalar>&)
-+        -> std::enable_if_t<std::is_same<btScalar, T>::value, const btScalar*>
-+    {
-+        return floatHeights;
-+    }
-+
-+    template <class T>
-+    auto getHeights(const T*, const std::vector<btScalar>& btScalarHeights)
-+        -> std::enable_if_t<!std::is_same<btScalar, T>::value, const btScalar*>
-+    {
-+        return btScalarHeights.data();
-+    }
-+}
-+
- namespace MWPhysics
- {
-     HeightField::HeightField(const float* heights, int x, int y, float triSize, float sqrtVerts, float minH, float maxH, const osg::Object* holdObject)
-+        : mHeights(makeHeights(heights, sqrtVerts))
-     {
-         mShape = new btHeightfieldTerrainShape(
--            sqrtVerts, sqrtVerts, heights, 1,
-+            sqrtVerts, sqrtVerts,
-+            getHeights(heights, mHeights),
-+            1,
-             minH, maxH, 2,
-             PHY_FLOAT, false
-         );
-diff --git a/apps/openmw/mwphysics/heightfield.hpp b/apps/openmw/mwphysics/heightfield.hpp
-index f248186db3..2ba58afff8 100644
---- a/apps/openmw/mwphysics/heightfield.hpp
-+++ b/apps/openmw/mwphysics/heightfield.hpp
-@@ -3,6 +3,10 @@
- 
- #include <osg/ref_ptr>
- 
-+#include <LinearMath/btScalar.h>
-+
-+#include <vector>
-+
- class btCollisionObject;
- class btHeightfieldTerrainShape;
- 
-@@ -27,6 +31,7 @@ namespace MWPhysics
-         btHeightfieldTerrainShape* mShape;
-         btCollisionObject* mCollisionObject;
-         osg::ref_ptr<const osg::Object> mHoldObject;
-+        std::vector<btScalar> mHeights;
- 
-         void operator=(const HeightField&);
-         HeightField(const HeightField&);
-diff --git a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
-index 6c474765de..c86dee6e55 100644
---- a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
-+++ b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
-@@ -363,11 +363,11 @@ namespace
-             AreaType_ground
-         );
-         const auto recastMesh = builder.create(mGeneration, mRevision);
--        EXPECT_EQ(recastMesh->getVertices(), std::vector<float>({
-+        EXPECT_THAT(recastMesh->getVertices(), Pointwise(FloatNear(1e-5), std::vector<float>({
-             1.41421353816986083984375, 0, 1.1920928955078125e-07,
-             -1.41421353816986083984375, 0, -1.1920928955078125e-07,
-             1.1920928955078125e-07, 0, -1.41421353816986083984375,
--        }));
-+        })));
-         EXPECT_EQ(recastMesh->getIndices(), std::vector<int>({0, 1, 2}));
-         EXPECT_EQ(recastMesh->getAreaTypes(), std::vector<AreaType>({AreaType_ground}));
-     }
-diff --git a/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp b/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
-index 36f2512462..6ec94fd68f 100644
---- a/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
-+++ b/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
-@@ -9,6 +9,8 @@
- #include <gtest/gtest.h>
- #include <gmock/gmock.h>
- 
-+#include <algorithm>
-+
- namespace
- {
-     template <class T>
-@@ -30,6 +32,34 @@ namespace
-         shape.processAllTriangles(&callback, aabbMin, aabbMax);
-         return result;
-     }
-+
-+    bool isNear(btScalar lhs, btScalar rhs)
-+    {
-+        return std::abs(lhs - rhs) <= 1e-5;
-+    }
-+
-+    bool isNear(const btVector3& lhs, const btVector3& rhs)
-+    {
-+        return std::equal(
-+            static_cast<const btScalar*>(lhs),
-+            static_cast<const btScalar*>(lhs) + 3,
-+            static_cast<const btScalar*>(rhs),
-+            [] (btScalar lhs, btScalar rhs) { return isNear(lhs, rhs); }
-+        );
-+    }
-+
-+    bool isNear(const btMatrix3x3& lhs, const btMatrix3x3& rhs)
-+    {
-+        for (int i = 0; i < 3; ++i)
-+            if (!isNear(lhs[i], rhs[i]))
-+                return false;
-+        return true;
-+    }
-+
-+    bool isNear(const btTransform& lhs, const btTransform& rhs)
-+    {
-+        return isNear(lhs.getOrigin(), rhs.getOrigin()) && isNear(lhs.getBasis(), rhs.getBasis());
-+    }
- }
- 
- static std::ostream& operator <<(std::ostream& stream, const btVector3& value)
-@@ -157,7 +187,7 @@ static bool operator ==(const btCompoundShape& lhs, const btCompoundShape& rhs)
-     for (int i = 0; i < lhs.getNumChildShapes(); ++i)
-     {
-         if (!compareObjects(lhs.getChildShape(i), rhs.getChildShape(i))
--                || !(lhs.getChildTransform(i) == rhs.getChildTransform(i)))
-+                || !isNear(lhs.getChildTransform(i), rhs.getChildTransform(i)))
-             return false;
-     }
-     return true;
-@@ -165,13 +195,13 @@ static bool operator ==(const btCompoundShape& lhs, const btCompoundShape& rhs)
- 
- static bool operator ==(const btBoxShape& lhs, const btBoxShape& rhs)
- {
--    return lhs.getLocalScaling() == rhs.getLocalScaling()
-+    return isNear(lhs.getLocalScaling(), rhs.getLocalScaling())
-         && lhs.getHalfExtentsWithoutMargin() == rhs.getHalfExtentsWithoutMargin();
- }
- 
- static bool operator ==(const btBvhTriangleMeshShape& lhs, const btBvhTriangleMeshShape& rhs)
- {
--    return lhs.getLocalScaling() == rhs.getLocalScaling()
-+    return isNear(lhs.getLocalScaling(), rhs.getLocalScaling())
-         && lhs.usesQuantizedAabbCompression() == rhs.usesQuantizedAabbCompression()
-         && lhs.getOwnsBvh() == rhs.getOwnsBvh()
-         && getTriangles(lhs) == getTriangles(rhs);
-
-From 66da72048a5893bc8c9b20f6f7210fd45b6a74bf Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Wed, 20 Feb 2019 23:41:16 +0300
-Subject: [PATCH 4/4] Update bullet for windows up to 2.87
-
----
- CI/before_script.msvc.sh | 12 ++++++------
- appveyor.yml             |  4 ++--
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/appveyor.yml b/appveyor.yml
-index 3057cc7257..e2c13ed948 100644
---- a/appveyor.yml
-+++ b/appveyor.yml
-@@ -30,8 +30,8 @@ configuration:
- clone_depth: 1
- 
- cache:
--    - C:\projects\openmw\deps\Bullet-2.86-msvc2015-win32.7z
--    - C:\projects\openmw\deps\Bullet-2.86-msvc2015-win64.7z
-+    - C:\projects\openmw\deps\Bullet-2.87-msvc2015-win32.7z
-+    - C:\projects\openmw\deps\Bullet-2.87-msvc2015-win64.7z
-     - C:\projects\openmw\deps\MyGUI-3.2.2-msvc2015-win32.7z
-     - C:\projects\openmw\deps\MyGUI-3.2.2-msvc2015-win64.7z
-     - C:\projects\openmw\deps\OSG-3.4.1-scrawl-msvc2015-win32.7z

diff --git a/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch b/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch
deleted file mode 100644
index ea3242d73ca8..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Use system recastnavigation instead of bundled one
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d69352c94..cfb53dc5b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -596,7 +596,16 @@ endif(WIN32)
- # Extern
- set(RECASTNAVIGATION_STATIC ON CACHE BOOL "Build recastnavigation static libraries")
- 
--add_subdirectory (extern/recastnavigation EXCLUDE_FROM_ALL)
-+add_library(RecastNavigation::DebugUtils SHARED IMPORTED)
-+add_library(RecastNavigation::Detour SHARED IMPORTED)
-+add_library(RecastNavigation::Recast SHARED IMPORTED)
-+set_target_properties(RecastNavigation::DebugUtils PROPERTIES
-+	IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libDebugUtils.so)
-+set_target_properties(RecastNavigation::Detour PROPERTIES
-+	IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libDetour.so)
-+set_target_properties(RecastNavigation::Recast PROPERTIES
-+	IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libRecast.so)
-+
- add_subdirectory (extern/osg-ffmpeg-videoplayer)
- add_subdirectory (extern/oics)
- if (BUILD_OPENCS)

diff --git a/games-engines/openmw/openmw-0.46.0-r2.ebuild b/games-engines/openmw/openmw-0.46.0-r2.ebuild
deleted file mode 100644
index 24532e11f3da..000000000000
--- a/games-engines/openmw/openmw-0.46.0-r2.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake flag-o-matic xdg-utils readme.gentoo-r1
-
-DESCRIPTION="Open source reimplementation of TES III: Morrowind"
-HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw"
-
-if [[ ${PV} == *9999* ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/OpenMW/openmw.git"
-else
-	SRC_URI="
-		https://github.com/OpenMW/openmw/archive/${P}.tar.gz
-		https://gitlab.com/OpenMW/openmw/-/merge_requests/163.patch -> ${P}-floattest.patch
-	"
-	KEYWORDS="~amd64 ~x86"
-	S="${WORKDIR}/${PN}-${P}"
-fi
-
-LICENSE="GPL-3 MIT BitstreamVera ZLIB"
-SLOT="0"
-IUSE="doc devtools +osg-fork test +qt5"
-RESTRICT="!test? ( test )"
-
-# FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory,
-# used when BUILD_OPENCS flag is enabled. See bug #676266.
-
-RDEPEND="
-	dev-games/mygui
-	dev-games/recastnavigation
-	dev-libs/boost:=[threads(+),zlib]
-	dev-libs/tinyxml:=[stl]
-	media-libs/libsdl2[joystick,opengl,video]
-	media-libs/openal
-	media-video/ffmpeg:=
-	>=sci-physics/bullet-2.86:=[-double-precision]
-	virtual/opengl
-	osg-fork? ( =dev-games/openscenegraph-openmw-3.4*:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
-	!osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
-	qt5? (
-		app-arch/unshield
-		dev-qt/qtcore:5
-		dev-qt/qtgui:5
-		dev-qt/qtnetwork:5
-		dev-qt/qtopengl:5
-		dev-qt/qtwidgets:5
-	)
-"
-
-DEPEND="${RDEPEND}"
-
-BDEPEND="
-	virtual/pkgconfig
-	doc? (
-		app-doc/doxygen[doc]
-		dev-python/sphinx
-	)
-	test? (
-		dev-cpp/gtest
-	)
-"
-
-PATCHES=(
-	"${FILESDIR}"/openmw-0.46.0-mygui-license.patch
-	"${FILESDIR}"/openmw-0.46.0-recastnavigation.patch
-	"${FILESDIR}"/openmw-0.46.0-missing-include.patch
-	"${FILESDIR}"/openmw-0.46.0-fix-cast.patch
-	"${FILESDIR}"/openmw-0.46.0-nifbullet-test.patch
-	# https://gitlab.com/OpenMW/openmw/-/merge_requests/163
-	"${DISTDIR}"/openmw-0.46.0-floattest.patch
-	"${FILESDIR}"/openmw-0.46.0-floattest2.patch
-	"${FILESDIR}"/openmw-0.46.0-gcc11.patch
-	"${FILESDIR}"/openmw-0.46.0-boost-1.77.patch
-)
-
-src_prepare() {
-	cmake_src_prepare
-
-	# Use the system tinyxml headers
-	rm -v extern/oics/tiny{str,xml}* || die
-
-	# Unbundle recastnavigation
-	rm -vr extern/recastnavigation || die
-	sed -i "s#GENTOO_RECAST_LIBDIR#${EPREFIX}/usr/$(get_libdir)#" CMakeLists.txt || die
-}
-
-src_configure() {
-	use devtools && ! use qt5 && \
-		elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed"
-
-	append-cxxflags "-I${EPREFIX}/usr/include/recastnavigation"
-
-	local mycmakeargs=(
-		-DBUILD_BSATOOL=$(usex devtools)
-		-DBUILD_DOCS=$(usex doc)
-		-DBUILD_ESMTOOL=$(usex devtools)
-		-DBUILD_LAUNCHER=$(usex qt5)
-		-DBUILD_NIFTEST=$(usex devtools)
-		-DBUILD_OPENCS=$(usex devtools $(usex qt5))
-		-DBUILD_WIZARD=$(usex qt5)
-		-DBUILD_UNITTESTS=$(usex test)
-		-DGLOBAL_DATA_PATH="${EPREFIX}/usr/share"
-		-DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps"
-		-DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data"
-		-DUSE_SYSTEM_TINYXML=ON
-		-DDESIRED_QT_VERSION=5
-	)
-
-	cmake_src_configure
-}
-
-src_compile() {
-	cmake_src_compile
-
-	if use doc ; then
-		cmake_src_compile doc
-		find "${CMAKE_BUILD_DIR}"/docs/Doxygen/html \
-			-name '*.md5' -type f -delete || die
-		HTML_DOCS=( "${CMAKE_BUILD_DIR}"/docs/Doxygen/html/. )
-	fi
-}
-
-src_test() {
-	"${BUILD_DIR}/openmw_test_suite" || die
-}
-
-src_install() {
-	cmake_src_install
-
-	local DOC_CONTENTS="
-	You need the original Morrowind data files. If you haven't
-	installed them yet, you can install them straight via the
-	installation wizard which is the officially supported method
-	(either by using the launcher or by calling 'openmw-wizard'
-	directly).\n"
-
-	if ! use qt5; then
-		local DOC_CONTENTS+="\n\n
-		USE flag 'qt5' is disabled, 'openmw-launcher' and
-		'openmw-wizard' are not available. You are on your own for
-		making the Morrowind data files available and pointing
-		openmw at them.\n\n
-		Additionally; you must import the Morrowind.ini file before
-		running openmw with the Morrowind data files for the first
-		time. Typically this can be done like so:\n\n
-		\t mkdir -p ~/.config/openmw\n
-		\t openmw-iniimporter /path/to/Morrowind.ini ~/.config/openmw/openmw.cfg"
-	fi
-
-	readme.gentoo_create_doc
-}
-
-pkg_postinst() {
-	xdg_icon_cache_update
-	readme.gentoo_print_elog
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2022-08-28  0:10 Ionen Wolkens
  0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2022-08-28  0:10 UTC (permalink / raw
  To: gentoo-commits

commit:     59ff79ab1c87e63d8b6a6b5d9828f4bc48b56ec2
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 27 23:52:39 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sun Aug 28 00:08:40 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=59ff79ab

games-engines/openmw: fix build with gcc12

Seeing users hit this, so fixing myself quick. Builds but not
thoroughly tested so there could be other issues.

Closes: https://bugs.gentoo.org/858725
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../openmw/files/openmw-0.47.0-gcc12.patch         | 33 ++++++++++++++++++++++
 games-engines/openmw/openmw-0.47.0-r1.ebuild       |  3 +-
 2 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/games-engines/openmw/files/openmw-0.47.0-gcc12.patch b/games-engines/openmw/files/openmw-0.47.0-gcc12.patch
new file mode 100644
index 000000000000..4c04d7b25c78
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.47.0-gcc12.patch
@@ -0,0 +1,33 @@
+Backport missing includes causing issues with gcc12.
+https://bugs.gentoo.org/858725
+https://gitlab.com/OpenMW/openmw/-/commit/5f2e282359
+From: elsid <elsid.mail@gmail.com>
+Date: Tue, 17 May 2022 00:58:24 +0200
+Subject: [PATCH] Add includes for used types and functions
+--- a/components/myguiplatform/myguidatamanager.cpp
++++ b/components/myguiplatform/myguidatamanager.cpp
+@@ -1,8 +1,11 @@
+ #include "myguidatamanager.hpp"
+ 
++#include <memory>
++#include <string>
++
+ #include <MyGUI_DataFileStream.h>
+ 
+-#include <boost/filesystem.hpp>
++#include <boost/filesystem/operations.hpp>
+ #include <boost/filesystem/fstream.hpp>
+ 
+ #include <components/debug/debuglog.hpp>
+--- a/components/myguiplatform/myguidatamanager.hpp
++++ b/components/myguiplatform/myguidatamanager.hpp
+@@ -3,6 +3,8 @@
+ 
+ #include <MyGUI_DataManager.h>
+ 
++#include <string>
++
+ namespace osgMyGUI
+ {
+ 
+GitLab

diff --git a/games-engines/openmw/openmw-0.47.0-r1.ebuild b/games-engines/openmw/openmw-0.47.0-r1.ebuild
index 7dd2a4a0a958..0d9ccae64cb6 100644
--- a/games-engines/openmw/openmw-0.47.0-r1.ebuild
+++ b/games-engines/openmw/openmw-0.47.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -64,6 +64,7 @@ BDEPEND="
 PATCHES=(
 	"${FILESDIR}"/openmw-0.47.0-mygui-license.patch
 	"${FILESDIR}"/openmw-0.47.0-sigstksz.patch
+	"${FILESDIR}"/openmw-0.47.0-gcc12.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2023-05-28 13:21 Joonas Niilola
  0 siblings, 0 replies; 10+ messages in thread
From: Joonas Niilola @ 2023-05-28 13:21 UTC (permalink / raw
  To: gentoo-commits

commit:     924881b4e6497164f15f7145b3528f09af0099fd
Author:     Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org>
AuthorDate: Sat May 27 18:04:35 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sun May 28 13:21:25 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=924881b4

games-engines/openmw: fix build with gcc13

Closes: https://bugs.gentoo.org/905337
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Closes: https://github.com/gentoo/gentoo/pull/31190
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../openmw/files/openmw-0.47.0-gcc13.patch         | 22 ++++++++++++++++++++++
 games-engines/openmw/openmw-0.47.0-r2.ebuild       |  1 +
 2 files changed, 23 insertions(+)

diff --git a/games-engines/openmw/files/openmw-0.47.0-gcc13.patch b/games-engines/openmw/files/openmw-0.47.0-gcc13.patch
new file mode 100644
index 000000000000..bb99b7c77880
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.47.0-gcc13.patch
@@ -0,0 +1,22 @@
+Fix missing includes causing issues with gcc13.
+https://bugs.gentoo.org/905337
+--- a/apps/openmw/mwinput/controlswitch.hpp
++++ b/apps/openmw/mwinput/controlswitch.hpp
+@@ -3,6 +3,7 @@
+ 
+ #include <map>
+ #include <string>
++#include <cinttypes>
+ 
+ namespace ESM
+ {
+--- a/components/misc/utf8stream.hpp
++++ b/components/misc/utf8stream.hpp
+@@ -3,6 +3,7 @@
+ 
+ #include <cstring>
+ #include <tuple>
++#include <cinttypes>
+ 
+ class Utf8Stream
+ {

diff --git a/games-engines/openmw/openmw-0.47.0-r2.ebuild b/games-engines/openmw/openmw-0.47.0-r2.ebuild
index 91dd01645c25..98cbd99efd3a 100644
--- a/games-engines/openmw/openmw-0.47.0-r2.ebuild
+++ b/games-engines/openmw/openmw-0.47.0-r2.ebuild
@@ -65,6 +65,7 @@ PATCHES=(
 	"${FILESDIR}"/openmw-0.47.0-mygui-license.patch
 	"${FILESDIR}"/openmw-0.47.0-sigstksz.patch
 	"${FILESDIR}"/openmw-0.47.0-gcc12.patch
+	"${FILESDIR}"/openmw-0.47.0-gcc13.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2023-09-09  0:49 Ionen Wolkens
  0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2023-09-09  0:49 UTC (permalink / raw
  To: gentoo-commits

commit:     05c2df081afa33374ebdf5405f43819578a06c65
Author:     Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org>
AuthorDate: Fri Sep  8 23:38:19 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sat Sep  9 00:46:17 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=05c2df08

games-engines/openmw: drop 0.47.0-r2

Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Closes: https://github.com/gentoo/gentoo/pull/32696
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 games-engines/openmw/Manifest                      |   1 -
 .../openmw/files/openmw-0.47.0-gcc12.patch         |  33 -----
 .../openmw/files/openmw-0.47.0-gcc13.patch         |  22 ----
 .../openmw/files/openmw-0.47.0-mygui-license.patch |  16 ---
 .../openmw/files/openmw-0.47.0-sigstksz.patch      |  42 ------
 games-engines/openmw/openmw-0.47.0-r2.ebuild       | 145 ---------------------
 6 files changed, 259 deletions(-)

diff --git a/games-engines/openmw/Manifest b/games-engines/openmw/Manifest
index 0bfdae772a9c..1146884524c0 100644
--- a/games-engines/openmw/Manifest
+++ b/games-engines/openmw/Manifest
@@ -1,3 +1,2 @@
-DIST openmw-0.47.0.tar.gz 5156857 BLAKE2B 40e8b9670423259fa0cc03ef000c17ebe06d1d58c2527b51b25cea3b54978b8a698984371eac14ff212f9550253ab17d41b83d37426371f12f5ce2d30b240d3d SHA512 517e650d0054cdba8d38de05ed3975b0fcf8de32fda59c8df7c34b973e5390efa0dd9ec79babdfdaa79dee7aa8a75009776f62fad91b9aa9aa28016c5032652b
 DIST openmw-0.48.0.tar.gz 6020423 BLAKE2B 6a6f710f06efc0e844115018365db8148e9f6acefd453df74904144f53f5e896e9ab4d4f563ab95a3231500a2c1a5e1f8c5b6d6ac5c1315805c61657d13a7aa8 SHA512 969c10b285c039b54810c56f202f9c33bd03c83d87fec722c3389525e87fc7104760ea12527be5fb19a3f7ae2dc9aef0e4c6b7375d8bbcd6eb726e1d7859b833
 DIST openmw-template-8966dab24692555eec720c854fb0f73d108070cd.omwgame 139730 BLAKE2B bf7f96912fd828078c62d112f3ff83e9a35298516135fb46b15ed01fc0260247cc0cba4aa3bbc55bf6a688f216384dbd9a5aa3328c4387b9b180b80f7463963e SHA512 6e38642bcf013c5f496a9cb0bf3ec7c9553b6e86b836e7844824c5a05f556c9391167214469b6318401684b702d7569896bf743c85aee4198612b3315ba778d6

diff --git a/games-engines/openmw/files/openmw-0.47.0-gcc12.patch b/games-engines/openmw/files/openmw-0.47.0-gcc12.patch
deleted file mode 100644
index 4c04d7b25c78..000000000000
--- a/games-engines/openmw/files/openmw-0.47.0-gcc12.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Backport missing includes causing issues with gcc12.
-https://bugs.gentoo.org/858725
-https://gitlab.com/OpenMW/openmw/-/commit/5f2e282359
-From: elsid <elsid.mail@gmail.com>
-Date: Tue, 17 May 2022 00:58:24 +0200
-Subject: [PATCH] Add includes for used types and functions
---- a/components/myguiplatform/myguidatamanager.cpp
-+++ b/components/myguiplatform/myguidatamanager.cpp
-@@ -1,8 +1,11 @@
- #include "myguidatamanager.hpp"
- 
-+#include <memory>
-+#include <string>
-+
- #include <MyGUI_DataFileStream.h>
- 
--#include <boost/filesystem.hpp>
-+#include <boost/filesystem/operations.hpp>
- #include <boost/filesystem/fstream.hpp>
- 
- #include <components/debug/debuglog.hpp>
---- a/components/myguiplatform/myguidatamanager.hpp
-+++ b/components/myguiplatform/myguidatamanager.hpp
-@@ -3,6 +3,8 @@
- 
- #include <MyGUI_DataManager.h>
- 
-+#include <string>
-+
- namespace osgMyGUI
- {
- 
-GitLab

diff --git a/games-engines/openmw/files/openmw-0.47.0-gcc13.patch b/games-engines/openmw/files/openmw-0.47.0-gcc13.patch
deleted file mode 100644
index bb99b7c77880..000000000000
--- a/games-engines/openmw/files/openmw-0.47.0-gcc13.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Fix missing includes causing issues with gcc13.
-https://bugs.gentoo.org/905337
---- a/apps/openmw/mwinput/controlswitch.hpp
-+++ b/apps/openmw/mwinput/controlswitch.hpp
-@@ -3,6 +3,7 @@
- 
- #include <map>
- #include <string>
-+#include <cinttypes>
- 
- namespace ESM
- {
---- a/components/misc/utf8stream.hpp
-+++ b/components/misc/utf8stream.hpp
-@@ -3,6 +3,7 @@
- 
- #include <cstring>
- #include <tuple>
-+#include <cinttypes>
- 
- class Utf8Stream
- {

diff --git a/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch b/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch
deleted file mode 100644
index 3bf5915bb65d..000000000000
--- a/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-We don't install license files
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d69352c94..5f97c86e9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -856,9 +856,6 @@ elseif(NOT APPLE)
-             INSTALL(PROGRAMS "${INSTALL_SOURCE}/openmw-wizard" DESTINATION "${BINDIR}" )
-         ENDIF(BUILD_WIZARD)
- 
--        # Install licenses
--        INSTALL(FILES "files/mygui/DejaVuFontLicense.txt" DESTINATION "${LICDIR}" )
--
-         # Install icon and desktop file
-         INSTALL(FILES "${OpenMW_BINARY_DIR}/org.openmw.launcher.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "openmw")
-         INSTALL(FILES "${OpenMW_SOURCE_DIR}/files/launcher/images/openmw.png" DESTINATION "${ICONDIR}" COMPONENT "openmw")

diff --git a/games-engines/openmw/files/openmw-0.47.0-sigstksz.patch b/games-engines/openmw/files/openmw-0.47.0-sigstksz.patch
deleted file mode 100644
index 588d6d639726..000000000000
--- a/games-engines/openmw/files/openmw-0.47.0-sigstksz.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 98a7d90ee258ceef9c70b0b2955d0458ec46f048 Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Fri, 24 Sep 2021 19:40:29 +0200
-Subject: [PATCH] Assume SIGSTKSZ is not a constant
-
-SIGSTKSZ is not defined as constant since glibc 2.34:
-https://sourceware.org/git/?p=glibc.git;a=commit;h=6c57d320484988e87e446e2e60ce42816bf51d53
-
-Upstream-Status: Submitted
-[https://gitlab.com/OpenMW/openmw/-/merge_requests/1239]
----
- components/crashcatcher/crashcatcher.cpp | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/components/crashcatcher/crashcatcher.cpp b/components/crashcatcher/crashcatcher.cpp
-index 86571e1e3a..c828e1ca81 100644
---- a/components/crashcatcher/crashcatcher.cpp
-+++ b/components/crashcatcher/crashcatcher.cpp
-@@ -56,8 +56,6 @@ static const char exec_err[] = "!!! Failed to exec debug process\n";
- 
- static char argv0[PATH_MAX];
- 
--static char altstack[SIGSTKSZ];
--
- 
- static struct {
-     int signum;
-@@ -475,9 +473,10 @@ int crashCatcherInstallHandlers(int argc, char **argv, int num_signals, int *sig
- 
-     /* Set an alternate signal stack so SIGSEGVs caused by stack overflows
-      * still run */
-+    static char* altstack = new char [SIGSTKSZ];
-     altss.ss_sp = altstack;
-     altss.ss_flags = 0;
--    altss.ss_size = sizeof(altstack);
-+    altss.ss_size = SIGSTKSZ;
-     sigaltstack(&altss, nullptr);
- 
-     memset(&sa, 0, sizeof(sa));
--- 
-GitLab
-

diff --git a/games-engines/openmw/openmw-0.47.0-r2.ebuild b/games-engines/openmw/openmw-0.47.0-r2.ebuild
deleted file mode 100644
index 98cbd99efd3a..000000000000
--- a/games-engines/openmw/openmw-0.47.0-r2.ebuild
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake readme.gentoo-r1 xdg
-
-DESCRIPTION="Open source reimplementation of TES III: Morrowind"
-HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw"
-
-if [[ ${PV} == *9999* ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/OpenMW/openmw.git"
-else
-	SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz"
-	KEYWORDS="~amd64 ~arm64 ~x86"
-	S="${WORKDIR}/${PN}-${P}"
-fi
-
-LICENSE="GPL-3 MIT BitstreamVera ZLIB"
-SLOT="0"
-IUSE="doc devtools +osg-fork test +qt5"
-RESTRICT="!test? ( test )"
-
-# FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory,
-# used when BUILD_OPENCS flag is enabled. See bug #676266.
-
-RDEPEND="
-	app-arch/lz4:=
-	dev-games/mygui
-	dev-games/recastnavigation:=
-	dev-libs/boost:=[zlib]
-	dev-libs/tinyxml[stl]
-	media-libs/libsdl2[joystick,opengl,video]
-	media-libs/openal
-	<media-video/ffmpeg-5:=
-	>=sci-physics/bullet-2.86:=[double-precision]
-	virtual/opengl
-	osg-fork? ( >=dev-games/openscenegraph-openmw-3.6:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
-	!osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
-	qt5? (
-		app-arch/unshield
-		dev-qt/qtcore:5
-		dev-qt/qtgui:5
-		dev-qt/qtnetwork:5
-		dev-qt/qtopengl:5
-		dev-qt/qtwidgets:5
-	)
-"
-
-DEPEND="${RDEPEND}"
-
-BDEPEND="
-	virtual/pkgconfig
-	doc? (
-		app-doc/doxygen[dot]
-		dev-python/sphinx
-	)
-	test? (
-		dev-cpp/gtest
-	)
-"
-
-PATCHES=(
-	"${FILESDIR}"/openmw-0.47.0-mygui-license.patch
-	"${FILESDIR}"/openmw-0.47.0-sigstksz.patch
-	"${FILESDIR}"/openmw-0.47.0-gcc12.patch
-	"${FILESDIR}"/openmw-0.47.0-gcc13.patch
-)
-
-src_prepare() {
-	cmake_src_prepare
-
-	# Use the system tinyxml headers
-	rm -v extern/oics/tiny{str,xml}* || die
-}
-
-src_configure() {
-	use devtools && ! use qt5 &&
-		elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed"
-
-	local mycmakeargs=(
-		-DBUILD_BSATOOL=$(usex devtools)
-		-DBUILD_DOCS=$(usex doc)
-		-DBUILD_ESMTOOL=$(usex devtools)
-		-DBUILD_LAUNCHER=$(usex qt5)
-		-DBUILD_NIFTEST=$(usex devtools)
-		-DBUILD_OPENCS=$(usex devtools $(usex qt5))
-		-DBUILD_WIZARD=$(usex qt5)
-		-DBUILD_UNITTESTS=$(usex test)
-		-DGLOBAL_DATA_PATH="${EPREFIX}/usr/share"
-		-DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps"
-		-DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data"
-		-DUSE_SYSTEM_TINYXML=ON
-		-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON
-	)
-
-	cmake_src_configure
-}
-
-src_compile() {
-	cmake_src_compile
-
-	if use doc ; then
-		cmake_src_compile doc
-		find "${BUILD_DIR}"/docs/Doxygen/html \
-			-name '*.md5' -type f -delete || die
-		HTML_DOCS=( "${BUILD_DIR}"/docs/Doxygen/html/. )
-	fi
-}
-
-src_test() {
-	"${BUILD_DIR}/openmw_test_suite" || die
-}
-
-src_install() {
-	cmake_src_install
-
-	local DOC_CONTENTS="
-	You need the original Morrowind data files. If you haven't
-	installed them yet, you can install them straight via the
-	installation wizard which is the officially supported method
-	(either by using the launcher or by calling 'openmw-wizard'
-	directly).\n"
-
-	if ! use qt5; then
-		DOC_CONTENTS+="\n\n
-		USE flag 'qt5' is disabled, 'openmw-launcher' and
-		'openmw-wizard' are not available. You are on your own for
-		making the Morrowind data files available and pointing
-		openmw at them.\n\n
-		Additionally; you must import the Morrowind.ini file before
-		running openmw with the Morrowind data files for the first
-		time. Typically this can be done like so:\n\n
-		\t mkdir -p ~/.config/openmw\n
-		\t openmw-iniimporter /path/to/Morrowind.ini ~/.config/openmw/openmw.cfg"
-	fi
-
-	readme.gentoo_create_doc
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-	readme.gentoo_print_elog
-}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2024-03-04 21:48 James Le Cuirot
  0 siblings, 0 replies; 10+ messages in thread
From: James Le Cuirot @ 2024-03-04 21:48 UTC (permalink / raw
  To: gentoo-commits

commit:     546afd11b7bde55829c409c406eac51c8d023d78
Author:     Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org>
AuthorDate: Thu Feb 22 22:46:38 2024 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Mon Mar  4 21:48:18 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=546afd11

games-engines/openmw: fix build with gcc 14

Closes: https://bugs.gentoo.org/925105
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Closes: https://github.com/gentoo/gentoo/pull/35490
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-engines/openmw/files/openmw-0.48.0-gcc14.patch | 13 +++++++++++++
 games-engines/openmw/openmw-0.48.0.ebuild            |  4 ++++
 2 files changed, 17 insertions(+)

diff --git a/games-engines/openmw/files/openmw-0.48.0-gcc14.patch b/games-engines/openmw/files/openmw-0.48.0-gcc14.patch
new file mode 100644
index 000000000000..b352d0536c8b
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.48.0-gcc14.patch
@@ -0,0 +1,13 @@
+Fix build with gcc 14
+https://bugs.gentoo.org/925105
+
+--- a/components/bsa/bsa_file.cpp
++++ b/components/bsa/bsa_file.cpp
+@@ -26,6 +26,7 @@
+ #include <components/files/constrainedfilestream.hpp>
+ 
+ #include <cassert>
++#include <algorithm>
+ 
+ #include <boost/filesystem/path.hpp>
+ #include <boost/filesystem/fstream.hpp>

diff --git a/games-engines/openmw/openmw-0.48.0.ebuild b/games-engines/openmw/openmw-0.48.0.ebuild
index eb7f2b4e8286..287a32cb26c6 100644
--- a/games-engines/openmw/openmw-0.48.0.ebuild
+++ b/games-engines/openmw/openmw-0.48.0.ebuild
@@ -73,6 +73,10 @@ BDEPEND="
 	)
 "
 
+PATCHES=(
+	"${FILESDIR}/openmw-0.48.0-gcc14.patch"
+)
+
 src_prepare() {
 	cmake_src_prepare
 


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/
@ 2024-10-20 21:52 James Le Cuirot
  0 siblings, 0 replies; 10+ messages in thread
From: James Le Cuirot @ 2024-10-20 21:52 UTC (permalink / raw
  To: gentoo-commits

commit:     cbf77c44e554b4f4a0c0277a9fbeea1fa16687f5
Author:     Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org>
AuthorDate: Wed Oct 16 13:37:24 2024 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sun Oct 20 21:51:36 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cbf77c44

games-engines/openmw: remove unneeded dep on Xt

Closes: https://bugs.gentoo.org/925582
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Closes: https://github.com/gentoo/gentoo/pull/39010
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-engines/openmw/files/openmw-0.48.0-Xt.patch | 17 +++++++++++++++++
 games-engines/openmw/openmw-0.48.0.ebuild         |  1 +
 2 files changed, 18 insertions(+)

diff --git a/games-engines/openmw/files/openmw-0.48.0-Xt.patch b/games-engines/openmw/files/openmw-0.48.0-Xt.patch
new file mode 100644
index 000000000000..e24516af9155
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.48.0-Xt.patch
@@ -0,0 +1,17 @@
+https://gitlab.com/OpenMW/openmw/-/merge_requests/4407
+https://bugs.gentoo.org/925582
+
+--- a/apps/wizard/CMakeLists.txt
++++ b/apps/wizard/CMakeLists.txt
+@@ -98,11 +98,6 @@ if (BUILD_WITH_CODE_COVERAGE)
+   target_link_libraries(openmw-wizard gcov)
+ endif()
+ 
+-# Workaround for binutil => 2.23 problem when linking, should be fixed eventually upstream
+-if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+-target_link_libraries(openmw-wizard dl Xt)
+-endif()
+-
+ if (WIN32)
+     INSTALL(TARGETS openmw-wizard RUNTIME DESTINATION ".")
+ endif(WIN32)

diff --git a/games-engines/openmw/openmw-0.48.0.ebuild b/games-engines/openmw/openmw-0.48.0.ebuild
index 65765800e7b5..0ca8e595f5d7 100644
--- a/games-engines/openmw/openmw-0.48.0.ebuild
+++ b/games-engines/openmw/openmw-0.48.0.ebuild
@@ -76,6 +76,7 @@ BDEPEND="
 
 PATCHES=(
 	"${FILESDIR}/openmw-0.48.0-gcc14.patch"
+	"${FILESDIR}/openmw-0.48.0-Xt.patch"
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-10-20 21:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-09  0:49 [gentoo-commits] repo/gentoo:master commit in: games-engines/openmw/, games-engines/openmw/files/ Ionen Wolkens
  -- strict thread matches above, loose matches on Subject: below --
2024-10-20 21:52 James Le Cuirot
2024-03-04 21:48 James Le Cuirot
2023-05-28 13:21 Joonas Niilola
2022-08-28  0:10 Ionen Wolkens
2021-12-06 10:40 David Seifert
2021-05-06 13:18 Joonas Niilola
2021-05-06 13:18 Joonas Niilola
2021-03-08  7:35 Joonas Niilola
2020-07-08  5:44 Joonas Niilola

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox