git: 58bb6e25dabb - main - games/spring: update 105.0.1 → 106.0.1

From: Dmitry Marakasov <amdmi3_at_FreeBSD.org>
Date: Fri, 18 Mar 2022 16:02:10 UTC
The branch main has been updated by amdmi3:

URL: https://cgit.FreeBSD.org/ports/commit/?id=58bb6e25dabbff3fd1c59c2cc696606d3a3feb20

commit 58bb6e25dabbff3fd1c59c2cc696606d3a3feb20
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2022-03-17 19:48:20 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2022-03-18 16:01:29 +0000

    games/spring: update 105.0.1 → 106.0.1
    
    - Remove some patches which were upstreamed after the previous update
    - Simplify passing port version to the build system, it now supports
      passing through a file
    - Consolidate most remaining patches into two larger topic chunks
      for easier handling and upstreaming; ramaining patches will be
      upstreamed in this go
---
 games/spring/Makefile                              |  29 ++---
 games/spring/distinfo                              |  42 ++++----
 .../patch-AI_Skirmish_CircuitAI_CMakeLists.txt     |  11 --
 ...h_CircuitAI_src_circuit_module_EconomyManager.h |  13 ---
 ...sh_CircuitAI_src_circuit_setup_SetupManager.cpp |  22 ----
 ...rcuitAI_src_circuit_util_math_EncloseCircle.cpp |  21 ----
 games/spring/files/patch-futex                     |  61 +++++++++++
 games/spring/files/patch-rts_Game_CMakeLists.txt   |   7 --
 games/spring/files/patch-rts_Game_GameSetup.cpp    |  11 --
 games/spring/files/patch-rts_Lua_LuaMaterial.h     |  12 ---
 ...ch-rts_Rendering_Env_Decals_DecalsDrawerGL4.cpp |  11 --
 .../spring/files/patch-rts_Rendering_LineDrawer.h  |  12 ---
 games/spring/files/patch-rts_Sim_CMakeLists.txt    |   7 --
 .../files/patch-rts_Sim_Misc_SimObjectIDPool.cpp   |  13 ---
 ...patch-rts_Sim_Projectiles_ProjectileHandler.cpp |  41 -------
 games/spring/files/patch-rts_System_CMakeLists.txt |  11 --
 .../files/patch-rts_System_Platform_Linux_Futex.h  |  19 ----
 .../files/patch-rts_System_SpringHashMap.hpp       |  12 ---
 .../files/patch-rts_System_SpringHashSet.hpp       |  12 ---
 .../patch-rts_System_Threading_SpringThreading.h   |  20 ----
 .../files/patch-rts_build_cmake_UtilVersion.cmake  |  69 ++----------
 .../files/patch-rts_builds_dedicated_main.cpp      |  13 ---
 games/spring/files/patch-shuffle                   | 119 +++++++++++++++++++++
 .../patch-tools_mapcompile_src_mapdecompile.cpp    |  11 --
 ...ools_pr-downloader_src_Downloader_Rapid_Sdp.cpp |  12 ---
 ...ols_pr-downloader_src_FileSystem_FileSystem.cpp |  12 ---
 games/spring/pkg-plist                             |   2 +-
 27 files changed, 228 insertions(+), 397 deletions(-)

diff --git a/games/spring/Makefile b/games/spring/Makefile
index 0e25bcea07d6..b1e846cdaee7 100644
--- a/games/spring/Makefile
+++ b/games/spring/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	spring
-PORTVERSION=	105.0.1
+PORTVERSION=	106.0.1
 CATEGORIES=	games
 
 MAINTAINER=	amdmi3@FreeBSD.org
@@ -25,17 +25,17 @@ ONLY_FOR_ARCHS=		amd64
 ONLY_FOR_ARCHS_REASON=	relies on x86 floating-point math and amd64 atomic ops
 
 USE_GITHUB=	yes
-GH_TUPLE=	spring:Python:3bb6837:Python/AI/Interfaces/Python \
-		spring:AAI:a15f45c:AAI/AI/Skirmish/AAI \
-		spring:CircuitAI:91fd31e:CircuitAI/AI/Skirmish/CircuitAI \
-		spring:HughAI:1a11f5a:HughAI/AI/Skirmish/HughAI \
-		spring:KAIK:f6bdd3e:KAIK/AI/Skirmish/KAIK \
-		spring:Shard:75339ae:Shard/AI/Skirmish/Shard \
-		spring:SpringMapConvNG:76429b4:SprintMapConvNG/tools/mapcompile \
-		spring:pr-downloader:67423a3:pr_downloader/tools/pr-downloader \
-		spring:pyunitsync:6e1b3fd:pyunitsync/tools/unitsync/python
+GH_TUPLE=	spring:Python:b69a4ea:Python/AI/Interfaces/Python \
+		spring:AAI:fba6d98:AAI/AI/Skirmish/AAI \
+		spring:CircuitAI:307daf7:CircuitAI/AI/Skirmish/CircuitAI \
+		spring:HughAI:2866476:HughAI/AI/Skirmish/HughAI \
+		spring:KAIK:2d9333e:KAIK/AI/Skirmish/KAIK \
+		spring:Shard:c551e5e:Shard/AI/Skirmish/Shard \
+		spring:SpringMapConvNG:0ddd86e:SprintMapConvNG/tools/mapcompile \
+		spring:pr-downloader:68b7dae:pr_downloader/tools/pr-downloader \
+		spring:pyunitsync:8dfe0bc:pyunitsync/tools/unitsync/python
 
-USES=		cmake compiler:c++11-lib desktop-file-utils gl localbase:ldflags \
+USES=		cmake compiler:c++17-lang desktop-file-utils gl localbase:ldflags \
 		openal:al pkgconfig sdl shared-mime-info xorg
 USE_GL=		gl glu glew
 USE_SDL=	sdl2
@@ -46,8 +46,6 @@ CMAKE_ARGS=	-DDATADIR:STRING="share/${PORTNAME}" \
 		-DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE \
 		-Wno-dev
 
-MAKE_ENV=	PORTVERSION="${PORTVERSION:R}"  # build system expects 2 digit version
-
 .if defined(WITH_SYNC_DEBUG)
 CFLAGS=		# empty
 CXXFLAGS=	# empty
@@ -70,7 +68,12 @@ MANPAGES_BUILD_DEPENDS=	asciidoc:textproc/asciidoc \
 			${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
 			bash:shells/bash
 
+post-extract:
+	# build system expects 2 digit version
+	@${ECHO_CMD} ${PORTVERSION:R} > ${WRKSRC}/VERSION
+
 post-patch:
+	@${REINPLACE_CMD} -i '' -e 's|LEGACY|OPENGL4|' ${WRKSRC}/doc/manpages/spring.6.txt
 .if defined(WITH_OPTIONAL_GS4)
 	# allows minimal runtest with older hardware
 	@${REINPLACE_CMD} -e '/GLEW_ARB_geometry_shader4/ s|CHECK_REQ_EXT|CHECK_OPT_EXT|' ${WRKSRC}/rts/Rendering/GlobalRendering.cpp
diff --git a/games/spring/distinfo b/games/spring/distinfo
index 90c03ccd98ec..3df98bb72c17 100644
--- a/games/spring/distinfo
+++ b/games/spring/distinfo
@@ -1,21 +1,21 @@
-TIMESTAMP = 1619038665
-SHA256 (spring-spring-105.0.1_GH0.tar.gz) = 975e74540acd6e2f0a1a4965d222ff79b035e152e35edbab982bee4a76a41b22
-SIZE (spring-spring-105.0.1_GH0.tar.gz) = 10625978
-SHA256 (spring-Python-3bb6837_GH0.tar.gz) = 710bb1a7f4835ab4d55a91b95cc7c5f53cfb8a3e2ba528f46d62df4f5a8d632e
-SIZE (spring-Python-3bb6837_GH0.tar.gz) = 29519
-SHA256 (spring-AAI-a15f45c_GH0.tar.gz) = 2d3b0922969b28596339f651bd208ce26b9220830cc917f70613368a2a4828ee
-SIZE (spring-AAI-a15f45c_GH0.tar.gz) = 137400
-SHA256 (spring-CircuitAI-91fd31e_GH0.tar.gz) = 8d54f79070559cf53bed127421a33ee2d5dc27825364e0ef9008d47e47e91980
-SIZE (spring-CircuitAI-91fd31e_GH0.tar.gz) = 713006
-SHA256 (spring-HughAI-1a11f5a_GH0.tar.gz) = 6caaae79f6435ac74b7f6bd4407f89c5e48f30711932655c9ba64321f8056937
-SIZE (spring-HughAI-1a11f5a_GH0.tar.gz) = 126562
-SHA256 (spring-KAIK-f6bdd3e_GH0.tar.gz) = 20cf1304c94f18f11cc22597e7b88bc57e7125a79541498d9b3b86faa133e63c
-SIZE (spring-KAIK-f6bdd3e_GH0.tar.gz) = 97974
-SHA256 (spring-Shard-75339ae_GH0.tar.gz) = 0dc59dc03cc3d92d30abe8f2570a7aa9ec6f80bbe9e8464baedc8810393e7f32
-SIZE (spring-Shard-75339ae_GH0.tar.gz) = 358911
-SHA256 (spring-SpringMapConvNG-76429b4_GH0.tar.gz) = 920a3cc2420feabdd8c8603b407070dfb6b56a65216f0d2e0796e94afa1cb22f
-SIZE (spring-SpringMapConvNG-76429b4_GH0.tar.gz) = 21488
-SHA256 (spring-pr-downloader-67423a3_GH0.tar.gz) = f12ff0999bac8b0044eb603975b324e2ca0461c6d4c0bb61e2856300ed6edea1
-SIZE (spring-pr-downloader-67423a3_GH0.tar.gz) = 832323
-SHA256 (spring-pyunitsync-6e1b3fd_GH0.tar.gz) = 3d05a88200337bbac3a8d4a8b92eb4660687fa3948a4aeb87fb07a01b057fa1a
-SIZE (spring-pyunitsync-6e1b3fd_GH0.tar.gz) = 131119
+TIMESTAMP = 1647541925
+SHA256 (spring-spring-106.0.1_GH0.tar.gz) = 2097642f8f5d77a5e61ecfea9159e835c4a78085b8ddf4ecaee1891589a98d37
+SIZE (spring-spring-106.0.1_GH0.tar.gz) = 9950280
+SHA256 (spring-Python-b69a4ea_GH0.tar.gz) = e6e0afd2b42c2ec66d0ce1bb5fbfeedc1d5d21646004c4bbf38997f1b64bd7cb
+SIZE (spring-Python-b69a4ea_GH0.tar.gz) = 29499
+SHA256 (spring-AAI-fba6d98_GH0.tar.gz) = 091d2d8ff43fb383e0584b74e7b692aec355715e29dd4d9c6e63b4fb237a5c89
+SIZE (spring-AAI-fba6d98_GH0.tar.gz) = 148147
+SHA256 (spring-CircuitAI-307daf7_GH0.tar.gz) = 23189c84cd8966dae042edc9cfcb860bfc23d1250f0d84470dceef9a604a1da8
+SIZE (spring-CircuitAI-307daf7_GH0.tar.gz) = 1455519
+SHA256 (spring-HughAI-2866476_GH0.tar.gz) = d0535163fec89d9db8c4e74a6b0cd1eb78f364130a0a936718bb77ecdb7a754e
+SIZE (spring-HughAI-2866476_GH0.tar.gz) = 126578
+SHA256 (spring-KAIK-2d9333e_GH0.tar.gz) = 64a82bd9fedaaf0b7b8802ed71f5b53f833d583f54dddb3ffd539ec767daf7b9
+SIZE (spring-KAIK-2d9333e_GH0.tar.gz) = 97982
+SHA256 (spring-Shard-c551e5e_GH0.tar.gz) = 3c0328a33332c3b8fe9152f2ebf839eee8cebcbd4326fe6745afc327c8114f4d
+SIZE (spring-Shard-c551e5e_GH0.tar.gz) = 358900
+SHA256 (spring-SpringMapConvNG-0ddd86e_GH0.tar.gz) = c9840de87cd37cab8bc2e2fc15cad3b177369a0dc8da41c7b8d4513d6355ca31
+SIZE (spring-SpringMapConvNG-0ddd86e_GH0.tar.gz) = 21487
+SHA256 (spring-pr-downloader-68b7dae_GH0.tar.gz) = 4931f0d4d514f7c201f2df85b3696cceb4190309e96edd37891ef6bec14b98b7
+SIZE (spring-pr-downloader-68b7dae_GH0.tar.gz) = 835836
+SHA256 (spring-pyunitsync-8dfe0bc_GH0.tar.gz) = a2fc49738d825016fdbe85b72de3542320f5bf8a640e1651cbb3661a682da281
+SIZE (spring-pyunitsync-8dfe0bc_GH0.tar.gz) = 131086
diff --git a/games/spring/files/patch-AI_Skirmish_CircuitAI_CMakeLists.txt b/games/spring/files/patch-AI_Skirmish_CircuitAI_CMakeLists.txt
deleted file mode 100644
index 1c3c40b327d4..000000000000
--- a/games/spring/files/patch-AI_Skirmish_CircuitAI_CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./AI/Skirmish/CircuitAI/CMakeLists.txt.orig	2021-01-01 16:10:55 UTC
-+++ ./AI/Skirmish/CircuitAI/CMakeLists.txt
-@@ -9,7 +9,7 @@ if (WIN32)  # spring::condition_variable_any requireme
- elseif (APPLE)
- 	set(additionalSources  ${additionalSources} ${CMAKE_SOURCE_DIR}/rts/System/Platform/Mac/Signal.cpp)
- else ()
--	set(additionalSources  ${additionalSources} ${CMAKE_SOURCE_DIR}/rts/System/Platform/Linux/Futex.cpp)
-+	#set(additionalSources  ${additionalSources} ${CMAKE_SOURCE_DIR}/rts/System/Platform/Linux/Futex.cpp)
- endif ()
- set(additionalLibraries    ${Cpp_AIWRAPPER_TARGET} CUtils)
- #set(additionalLibraries    ${Cpp_AIWRAPPER_TARGET} CUtils ${SDL2_LIBRARY})
diff --git a/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_module_EconomyManager.h b/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_module_EconomyManager.h
deleted file mode 100644
index 38095c6ee024..000000000000
--- a/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_module_EconomyManager.h
+++ /dev/null
@@ -1,13 +0,0 @@
-https://github.com/spring/CircuitAI/pull/17/files
-
---- AI/Skirmish/CircuitAI/src/circuit/module/EconomyManager.h.orig	2021-01-01 16:10:55 UTC
-+++ AI/Skirmish/CircuitAI/src/circuit/module/EconomyManager.h
-@@ -164,7 +164,7 @@ class CEconomyManager: public IModule { (private)
- 		float pull;
- 		int mex;
- 		float fraction;
--		inline bool operator< (const SPullMtoS& rhs) { return mex < rhs.mex; }
-+		inline bool operator< (const SPullMtoS& rhs) const { return mex < rhs.mex; }
- 		inline bool operator() (const SPullMtoS& lhs, const int rhs) { return lhs.mex < rhs; }
- 	};
- 	std::vector<SPullMtoS> mspInfos;
diff --git a/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_setup_SetupManager.cpp b/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_setup_SetupManager.cpp
deleted file mode 100644
index 9ecc171de28a..000000000000
--- a/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_setup_SetupManager.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
---- AI/Skirmish/CircuitAI/src/circuit/setup/SetupManager.cpp.orig	2021-01-01 16:10:55 UTC
-+++ AI/Skirmish/CircuitAI/src/circuit/setup/SetupManager.cpp
-@@ -26,6 +26,8 @@
- #include "Info.h"
- 
- #include <regex>
-+#include <algorithm>
-+#include <random>
- 
- namespace circuit {
- 
-@@ -183,7 +185,9 @@ void CSetupManager::PickStartPos(CCircuitAI* circuit, 
- 					c.distDivIncome = center.distance(cl.position) / income;
- 					validClusters.push_back(std::make_pair(kv.first, c));
- 				}
--				std::random_shuffle(validClusters.begin(), validClusters.end());
-+				std::random_device rd;
-+				std::minstd_rand g(rd());
-+				std::shuffle(validClusters.begin(), validClusters.end(), g);
- 
- 				auto cmp = [](const std::pair<int, SCluster>& a, const std::pair<int, SCluster>& b) {
- 					if (a.second.count < b.second.count) {
diff --git a/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_util_math_EncloseCircle.cpp b/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_util_math_EncloseCircle.cpp
deleted file mode 100644
index 0fea91623feb..000000000000
--- a/games/spring/files/patch-AI_Skirmish_CircuitAI_src_circuit_util_math_EncloseCircle.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
---- ./AI/Skirmish/CircuitAI/src/circuit/util/math/EncloseCircle.cpp.orig	2021-01-01 16:10:55 UTC
-+++ ./AI/Skirmish/CircuitAI/src/circuit/util/math/EncloseCircle.cpp
-@@ -9,6 +9,7 @@
- #include "util/utils.h"
- 
- #include <algorithm>
-+#include <random>
- #include <assert.h>
- 
- namespace circuit {
-@@ -48,7 +49,9 @@ void CEncloseCircle::MakeCircle(const std::vector<AIFl
- 		}
- 		// Randomize order
- 		// TODO: Read why shuffle??
--		std::random_shuffle(shuffled.begin(), shuffled.end());
-+		std::random_device rd;
-+		std::minstd_rand g(rd());
-+		std::shuffle(shuffled.begin(), shuffled.end(), g);
- 
- 		// Progressively add points to circle or recompute circle
- 		decltype(shuffled)::iterator it = shuffled.begin();
diff --git a/games/spring/files/patch-futex b/games/spring/files/patch-futex
new file mode 100644
index 000000000000..58ebd0d277d7
--- /dev/null
+++ b/games/spring/files/patch-futex
@@ -0,0 +1,61 @@
+--- ./AI/Skirmish/CircuitAI/CMakeLists.txt.orig	2021-01-01 16:10:55 UTC
++++ ./AI/Skirmish/CircuitAI/CMakeLists.txt
+@@ -9,7 +9,7 @@ if (WIN32)  # spring::condition_variable_any requireme
+ elseif (APPLE)
+ 	set(additionalSources  ${additionalSources} ${CMAKE_SOURCE_DIR}/rts/System/Platform/Mac/Signal.cpp)
+ else ()
+-	set(additionalSources  ${additionalSources} ${CMAKE_SOURCE_DIR}/rts/System/Platform/Linux/Futex.cpp)
++	#set(additionalSources  ${additionalSources} ${CMAKE_SOURCE_DIR}/rts/System/Platform/Linux/Futex.cpp)
+ endif ()
+ set(additionalLibraries    ${Cpp_AIWRAPPER_TARGET} CUtils)
+ #set(additionalLibraries    ${Cpp_AIWRAPPER_TARGET} CUtils ${SDL2_LIBRARY})
+--- rts/System/CMakeLists.txt.orig	2020-12-26 12:45:43 UTC
++++ rts/System/CMakeLists.txt
+@@ -140,7 +140,7 @@ set(sources_engine_System_Threading_Mac
+ 		"${CMAKE_CURRENT_SOURCE_DIR}/Platform/Mac/Signal.cpp"
+ 	)
+ set(sources_engine_System_Threading_Linux
+-		"${CMAKE_CURRENT_SOURCE_DIR}/Platform/Linux/Futex.cpp"
++		"${CMAKE_CURRENT_SOURCE_DIR}/Platform/Mac/Signal.cpp"
+ 		"${CMAKE_CURRENT_SOURCE_DIR}/Platform/Linux/ThreadSupport.cpp"
+ 	)
+ set(sources_engine_System_Threading_Windows
+--- rts/System/Platform/Linux/Futex.h.orig	2020-12-26 12:45:43 UTC
++++ rts/System/Platform/Linux/Futex.h
+@@ -8,7 +8,7 @@
+ #include "System/Misc/SpringTime.h"
+ 
+ 
+-
++#ifndef __FreeBSD__
+ class spring_futex
+ {
+ private:
+@@ -32,6 +32,7 @@ class spring_futex (public)
+ protected:
+ 	native_type mtx;
+ };
++#endif
+ 
+ /*FIXME
+ class recursive_futex
+--- rts/System/Threading/SpringThreading.h.orig	2020-12-26 12:45:43 UTC
++++ rts/System/Threading/SpringThreading.h
+@@ -13,7 +13,7 @@
+ 
+ #if   defined(_WIN32)
+ 	#include "System/Platform/Win/CriticalSection.h"
+-#elif defined(__APPLE__) || !defined(USE_FUTEX)
++#elif defined(__APPLE__) || defined(__FreeBSD__) || !defined(USE_FUTEX)
+ 	#include "System/Platform/Mac/Signal.h"
+ #elif !defined(__APPLE__) && defined(USE_FUTEX)
+ 	#include "System/Platform/Linux/Futex.h"
+@@ -37,7 +37,7 @@ namespace spring {
+ 	typedef CriticalSection recursive_mutex;
+ 	typedef win_signal signal;
+ 	typedef std::condition_variable_any condition_variable;
+-#elif defined(__APPLE__) || !defined(USE_FUTEX)
++#elif defined(__APPLE__) || defined(__FreeBSD__) || !defined(USE_FUTEX)
+ 	typedef std::mutex mutex;
+ 	typedef std::recursive_mutex recursive_mutex;
+ 	typedef mac_signal signal;
diff --git a/games/spring/files/patch-rts_Game_CMakeLists.txt b/games/spring/files/patch-rts_Game_CMakeLists.txt
deleted file mode 100644
index f4d4b899cd4d..000000000000
--- a/games/spring/files/patch-rts_Game_CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
---- rts/Game/CMakeLists.txt.orig	2021-01-01 16:12:22 UTC
-+++ rts/Game/CMakeLists.txt
-@@ -1,3 +1,4 @@
-+set_source_files_properties(GameSetup.cpp PROPERTIES CXX_STANDARD 14)
- 
- # This list was created using this *nix shell command:
- # > find . -name "*.cpp" | sort
diff --git a/games/spring/files/patch-rts_Game_GameSetup.cpp b/games/spring/files/patch-rts_Game_GameSetup.cpp
deleted file mode 100644
index a59f2cbdc615..000000000000
--- a/games/spring/files/patch-rts_Game_GameSetup.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- rts/Game/GameSetup.cpp.orig	2021-01-01 16:12:22 UTC
-+++ rts/Game/GameSetup.cpp
-@@ -255,7 +255,7 @@ void CGameSetup::LoadStartPositions(bool withoutMap)
- 		// Server syncs these later, so we can use unsynced rng
- 		CGlobalUnsyncedRNG rng;
- 		rng.Seed(HsiehHash(setupText.c_str(), setupText.length(), 1234567));
--		std::random_shuffle(teamStartNums.begin(), teamStartNums.begin() + teamStartingData.size(), rng);
-+		std::shuffle(teamStartNums.begin(), teamStartNums.begin() + teamStartingData.size(), rng);
- 	}
- 
- 	for (size_t i = 0; i < teamStartingData.size(); ++i)
diff --git a/games/spring/files/patch-rts_Lua_LuaMaterial.h b/games/spring/files/patch-rts_Lua_LuaMaterial.h
deleted file mode 100644
index 1c00a4ce7b0c..000000000000
--- a/games/spring/files/patch-rts_Lua_LuaMaterial.h
+++ /dev/null
@@ -1,12 +0,0 @@
-https://github.com/spring/spring/pull/556
-
---- rts/Lua/LuaMaterial.h.orig	2021-01-01 19:08:25 UTC
-+++ rts/Lua/LuaMaterial.h
-@@ -6,6 +6,7 @@
- #include <cstring> // strcmp
- #include <string>
- #include <vector>
-+#include <array>
- 
- /*
- LuaMaterial
diff --git a/games/spring/files/patch-rts_Rendering_Env_Decals_DecalsDrawerGL4.cpp b/games/spring/files/patch-rts_Rendering_Env_Decals_DecalsDrawerGL4.cpp
deleted file mode 100644
index a7926c4a645c..000000000000
--- a/games/spring/files/patch-rts_Rendering_Env_Decals_DecalsDrawerGL4.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- rts/Rendering/Env/Decals/DecalsDrawerGL4.cpp.orig	2021-01-01 19:08:25 UTC
-+++ rts/Rendering/Env/Decals/DecalsDrawerGL4.cpp
-@@ -338,7 +338,7 @@ void CDecalsDrawerGL4::DetectMaxDecals()
- 	decals.resize(maxDecals);
- 	freeIds.resize(maxDecals - 1); // idx = 0 is invalid, so -1
- 	std::iota(freeIds.begin(), freeIds.end(), 1); // start with 1, 0 is illegal
--	std::random_shuffle(freeIds.begin(), freeIds.end(), guRNG);
-+	std::shuffle(freeIds.begin(), freeIds.end(), guRNG);
- 	groups.reserve(maxDecalGroups);
- }
- 
diff --git a/games/spring/files/patch-rts_Rendering_LineDrawer.h b/games/spring/files/patch-rts_Rendering_LineDrawer.h
deleted file mode 100644
index b371fa11960b..000000000000
--- a/games/spring/files/patch-rts_Rendering_LineDrawer.h
+++ /dev/null
@@ -1,12 +0,0 @@
-https://github.com/spring/spring/pull/554
-
---- rts/Rendering/LineDrawer.h.orig	2020-12-26 12:45:43 UTC
-+++ rts/Rendering/LineDrawer.h
-@@ -4,6 +4,7 @@
- #define _LINE_DRAWER_H
- 
- #include <vector>
-+#include <array>
- 
- #include "Game/UI/CursorIcons.h"
- #include "Rendering/GL/VertexArrayTypes.h"
diff --git a/games/spring/files/patch-rts_Sim_CMakeLists.txt b/games/spring/files/patch-rts_Sim_CMakeLists.txt
deleted file mode 100644
index ed43eeb0fa5d..000000000000
--- a/games/spring/files/patch-rts_Sim_CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
---- rts/Sim/CMakeLists.txt.orig	2021-01-01 16:12:22 UTC
-+++ rts/Sim/CMakeLists.txt
-@@ -1,3 +1,4 @@
-+set(CMAKE_CXX_STANDARD 14)
- 
- # This list was created using this *nix shell command:
- # > find . -name "*.cpp"" | sort
diff --git a/games/spring/files/patch-rts_Sim_Misc_SimObjectIDPool.cpp b/games/spring/files/patch-rts_Sim_Misc_SimObjectIDPool.cpp
deleted file mode 100644
index 3cd82038751c..000000000000
--- a/games/spring/files/patch-rts_Sim_Misc_SimObjectIDPool.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
---- rts/Sim/Misc/SimObjectIDPool.cpp.orig	2020-12-26 12:45:43 UTC
-+++ rts/Sim/Misc/SimObjectIDPool.cpp
-@@ -25,8 +25,8 @@ void SimObjectIDPool::Expand(unsigned int baseID, unsi
- 	std::generate(newIDs.begin(), newIDs.begin() + numIDs, [&baseID]() { return (baseID++); });
- 
- 	// randomize so that Lua widgets can not easily determine counts
--	std::random_shuffle(newIDs.begin(), newIDs.begin() + numIDs, gsRNG);
--	std::random_shuffle(newIDs.begin(), newIDs.begin() + numIDs, gsRNG);
-+	std::shuffle(newIDs.begin(), newIDs.begin() + numIDs, gsRNG);
-+	std::shuffle(newIDs.begin(), newIDs.begin() + numIDs, gsRNG);
- 
- 	// lambda capture ("[n = baseID]() mutable { return (n++); }") requires std=c++14
- 	baseID -= numIDs;
diff --git a/games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp b/games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp
deleted file mode 100644
index 1bed456ac445..000000000000
--- a/games/spring/files/patch-rts_Sim_Projectiles_ProjectileHandler.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
---- rts/Sim/Projectiles/ProjectileHandler.cpp.orig	2020-12-26 12:45:43 UTC
-+++ rts/Sim/Projectiles/ProjectileHandler.cpp
-@@ -66,6 +66,18 @@ ProjMemPool projMemPool;
- CProjectileHandler projectileHandler;
- 
- 
-+namespace {
-+	template<class RandomIt, class RandomFunc>
-+	void random_shuffle(RandomIt first, RandomIt last, RandomFunc&& r)
-+	{
-+		typename std::iterator_traits<RandomIt>::difference_type i, n;
-+		n = last - first;
-+		for (i = n-1; i > 0; --i) {
-+			using std::swap;
-+			swap(first[i], first[r(i+1)]);
-+		}
-+	}
-+}
- 
- void CProjectileHandler::Init()
- {
-@@ -106,8 +118,8 @@ void CProjectileHandler::Init()
- 			freeProjectileIDs[false].push_back(i);
- 		}
- 
--		std::random_shuffle(freeProjectileIDs[ true].begin(), freeProjectileIDs[ true].end(), gsRNG);
--		std::random_shuffle(freeProjectileIDs[false].begin(), freeProjectileIDs[false].end(), guRNG);
-+		::random_shuffle(freeProjectileIDs[ true].begin(), freeProjectileIDs[ true].end(), gsRNG);
-+		::random_shuffle(freeProjectileIDs[false].begin(), freeProjectileIDs[false].end(), guRNG);
- 	}
- 
- 	for (int modelType = 0; modelType < MODELTYPE_OTHER; ++modelType) {
-@@ -395,7 +407,7 @@ void CProjectileHandler::AddProjectile(CProjectile* p)
- 
- 			// generate (newSize - oldSize) new id's starting from oldSize
- 			std::for_each(freeIDs.begin(), freeIDs.end(), [k = oldSize](int& id) mutable { id = k++; });
--			std::random_shuffle(freeIDs.begin(), freeIDs.end(), rngFunc);
-+			::random_shuffle(freeIDs.begin(), freeIDs.end(), rngFunc);
- 		}
- 
- 
diff --git a/games/spring/files/patch-rts_System_CMakeLists.txt b/games/spring/files/patch-rts_System_CMakeLists.txt
deleted file mode 100644
index 88d381cb27db..000000000000
--- a/games/spring/files/patch-rts_System_CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- rts/System/CMakeLists.txt.orig	2020-12-26 12:45:43 UTC
-+++ rts/System/CMakeLists.txt
-@@ -140,7 +140,7 @@ set(sources_engine_System_Threading_Mac
- 		"${CMAKE_CURRENT_SOURCE_DIR}/Platform/Mac/Signal.cpp"
- 	)
- set(sources_engine_System_Threading_Linux
--		"${CMAKE_CURRENT_SOURCE_DIR}/Platform/Linux/Futex.cpp"
-+		"${CMAKE_CURRENT_SOURCE_DIR}/Platform/Mac/Signal.cpp"
- 		"${CMAKE_CURRENT_SOURCE_DIR}/Platform/Linux/ThreadSupport.cpp"
- 	)
- set(sources_engine_System_Threading_Windows
diff --git a/games/spring/files/patch-rts_System_Platform_Linux_Futex.h b/games/spring/files/patch-rts_System_Platform_Linux_Futex.h
deleted file mode 100644
index db9fe3a85806..000000000000
--- a/games/spring/files/patch-rts_System_Platform_Linux_Futex.h
+++ /dev/null
@@ -1,19 +0,0 @@
---- rts/System/Platform/Linux/Futex.h.orig	2020-12-26 12:45:43 UTC
-+++ rts/System/Platform/Linux/Futex.h
-@@ -8,7 +8,7 @@
- #include "System/Misc/SpringTime.h"
- 
- 
--
-+#ifndef __FreeBSD__
- class spring_futex
- {
- private:
-@@ -32,6 +32,7 @@ class spring_futex (public)
- protected:
- 	native_type mtx;
- };
-+#endif
- 
- /*FIXME
- class recursive_futex
diff --git a/games/spring/files/patch-rts_System_SpringHashMap.hpp b/games/spring/files/patch-rts_System_SpringHashMap.hpp
deleted file mode 100644
index ef2177bd2674..000000000000
--- a/games/spring/files/patch-rts_System_SpringHashMap.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-https://github.com/spring/spring/pull/555
-
---- rts/System/SpringHashMap.hpp.orig	2021-01-01 16:12:22 UTC
-+++ rts/System/SpringHashMap.hpp
-@@ -9,6 +9,7 @@
- #include <cstdlib>
- #include <iterator>
- #include <utility>
-+#include <algorithm>
- 
- #define DCHECK_EQ_F(a, b)
- #define DCHECK_LT_F(a, b)
diff --git a/games/spring/files/patch-rts_System_SpringHashSet.hpp b/games/spring/files/patch-rts_System_SpringHashSet.hpp
deleted file mode 100644
index 2b4de466f67b..000000000000
--- a/games/spring/files/patch-rts_System_SpringHashSet.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-https://github.com/spring/spring/pull/555
-
---- rts/System/SpringHashSet.hpp.orig	2021-01-01 16:12:22 UTC
-+++ rts/System/SpringHashSet.hpp
-@@ -9,6 +9,7 @@
- #include <cstdlib> // malloc
- #include <iterator>
- #include <utility>
-+#include <algorithm> // fill_n
- 
- #define DCHECK_EQ_F(a, b)
- #define DCHECK_LT_F(a, b)
diff --git a/games/spring/files/patch-rts_System_Threading_SpringThreading.h b/games/spring/files/patch-rts_System_Threading_SpringThreading.h
deleted file mode 100644
index 3444142c45d7..000000000000
--- a/games/spring/files/patch-rts_System_Threading_SpringThreading.h
+++ /dev/null
@@ -1,20 +0,0 @@
---- rts/System/Threading/SpringThreading.h.orig	2020-12-26 12:45:43 UTC
-+++ rts/System/Threading/SpringThreading.h
-@@ -13,7 +13,7 @@
- 
- #if   defined(_WIN32)
- 	#include "System/Platform/Win/CriticalSection.h"
--#elif defined(__APPLE__) || !defined(USE_FUTEX)
-+#elif defined(__APPLE__) || defined(__FreeBSD__) || !defined(USE_FUTEX)
- 	#include "System/Platform/Mac/Signal.h"
- #elif !defined(__APPLE__) && defined(USE_FUTEX)
- 	#include "System/Platform/Linux/Futex.h"
-@@ -37,7 +37,7 @@ namespace spring {
- 	typedef CriticalSection recursive_mutex;
- 	typedef win_signal signal;
- 	typedef std::condition_variable_any condition_variable;
--#elif defined(__APPLE__) || !defined(USE_FUTEX)
-+#elif defined(__APPLE__) || defined(__FreeBSD__) || !defined(USE_FUTEX)
- 	typedef std::mutex mutex;
- 	typedef std::recursive_mutex recursive_mutex;
- 	typedef mac_signal signal;
diff --git a/games/spring/files/patch-rts_build_cmake_UtilVersion.cmake b/games/spring/files/patch-rts_build_cmake_UtilVersion.cmake
index 248218f7b5e6..2d3c84fed8c7 100644
--- a/games/spring/files/patch-rts_build_cmake_UtilVersion.cmake
+++ b/games/spring/files/patch-rts_build_cmake_UtilVersion.cmake
@@ -1,60 +1,11 @@
---- rts/build/cmake/UtilVersion.cmake.orig	2020-12-26 12:45:43 UTC
+--- rts/build/cmake/UtilVersion.cmake.orig	2022-01-10 23:00:52 UTC
 +++ rts/build/cmake/UtilVersion.cmake
-@@ -138,56 +138,7 @@ EndMacro (get_version_from_file)
- # Sets the following vars:
- # - ${prefix}_VERSION
- Macro    (fetch_spring_version dir prefix)
--	# unset the vars
--	Set(${prefix}_VERSION)
--	Set(${prefix}_VERSION-NOTFOUND)
--
--	If     (EXISTS "${dir}/.git")
--		# Try to fetch version through git
--		If     (NOT GIT_FOUND)
--			Message(FATAL_ERROR "Git repository detected, but git executable not found; failed to fetch ${prefix} version.")
--		EndIf  (NOT GIT_FOUND)
--
--		# Fetch git version info
--		git_util_describe(${prefix}_Describe ${dir} "*")
--		If     (NOT ${prefix}_Describe)
--			Message(FATAL_ERROR "Failed to fetch git-describe for ${prefix}.")
--		EndIf  (NOT ${prefix}_Describe)
--		If     ("${${prefix}_Describe}" MATCHES "^${VERSION_REGEX_RELEASE}$")
--			Set(${prefix}_IsRelease TRUE)
--		Else   ("${${prefix}_Describe}" MATCHES "^${VERSION_REGEX_RELEASE}$")
--			Set(${prefix}_IsRelease FALSE)
--		EndIf  ("${${prefix}_Describe}" MATCHES "^${VERSION_REGEX_RELEASE}$")
--		If     (NOT ${prefix}_IsRelease)
--			# We always want the long git-describe output on non-releases
--			# for example: 83.0.1-0-g1234567
--			git_util_describe(${prefix}_Describe ${dir} "*" --long)
--		EndIf  (NOT ${prefix}_IsRelease)
--
--		Git_Util_Branch(${prefix}_Branch ${dir})
--		If     (${prefix}_IsRelease)
--			Set(${prefix}_VERSION "${${prefix}_Describe}")
--		Else   (${prefix}_IsRelease)
--			If     (NOT ${prefix}_Branch)
--				Message(FATAL_ERROR "Failed to fetch the git branch for ${prefix}.")
--			EndIf  (NOT ${prefix}_Branch)
--			Set(${prefix}_VERSION "${${prefix}_Describe} ${${prefix}_Branch}")
--		EndIf  (${prefix}_IsRelease)
--		parse_spring_version(${prefix} "${${prefix}_VERSION}")
--		If     ("${${prefix}_Branch}" STREQUAL "master")
--			If     (NOT "${${prefix}_COMMITS}" STREQUAL "" OR NOT "${${prefix}_HASH}" STREQUAL "")
--				Message(AUTHOR_WARNING "Commit without a version tag found on branch master for ${prefix}; this indicates a tagging/branching/push error.")
--			EndIf  (NOT "${${prefix}_COMMITS}" STREQUAL "" OR NOT "${${prefix}_HASH}" STREQUAL "")
--		EndIf  ("${${prefix}_Branch}" STREQUAL "master")
--	Else   (EXISTS "${dir}/.git")
--		# Try to fetch version through VERSION file
--		get_version_from_file(${prefix}_VERSION "${dir}/VERSION")
--		If    (${${prefix}_VERSION-NOTFOUND})
--			Message(FATAL_ERROR "Failed to fetch ${prefix} version.")
--		Else  (${${prefix}_VERSION-NOTFOUND})
--			Message(STATUS "${prefix} version fetched from VERSION file: ${${prefix}_VERSION}")
--		EndIf (${${prefix}_VERSION-NOTFOUND})
--	EndIf  (EXISTS "${dir}/.git")
-+	Set(${prefix}_VERSION $ENV{PORTVERSION})
- 
- 	if(DEFINED ENV{CI})
- 		Message(STATUS "Build on travis-ci detected, not checking version (git clone --depth=...)")
+@@ -183,7 +183,7 @@ macro (fetch_spring_version dir prefix)
+ 		# Try to fetch version through VERSION file
+ 		get_version_from_file(${prefix}_VERSION "${dir}/VERSION")
+ 		if (${${prefix}_VERSION-NOTFOUND})
+-			message (FATAL_ERROR "Failed to fetch ${prefix} version.")
++			message (FATAL_ERROR "Failed to fetch ${prefix} version from ${dir}/VERSION.")
+ 		else ()
+ 			message (STATUS "${prefix} version fetched from VERSION file: ${${prefix}_VERSION}")
+ 		endif ()
diff --git a/games/spring/files/patch-rts_builds_dedicated_main.cpp b/games/spring/files/patch-rts_builds_dedicated_main.cpp
deleted file mode 100644
index 2ec9f76a03eb..000000000000
--- a/games/spring/files/patch-rts_builds_dedicated_main.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-https://github.com/spring/spring/pull/557
-
---- rts/builds/dedicated/main.cpp.orig	2020-12-26 12:45:43 UTC
-+++ rts/builds/dedicated/main.cpp
-@@ -4,6 +4,8 @@
- 
- #ifdef _WIN32
- #include <windows.h>
-+#else
-+#include <unistd.h>
- #endif
- 
- #include "Game/GameSetup.h"
diff --git a/games/spring/files/patch-shuffle b/games/spring/files/patch-shuffle
new file mode 100644
index 000000000000..5ade3d4fdc8f
--- /dev/null
+++ b/games/spring/files/patch-shuffle
@@ -0,0 +1,119 @@
+--- AI/Skirmish/CircuitAI/src/circuit/setup/SetupManager.cpp.orig	2021-01-01 16:10:55 UTC
++++ AI/Skirmish/CircuitAI/src/circuit/setup/SetupManager.cpp
+@@ -26,6 +26,8 @@
+ #include "Info.h"
+ 
+ #include <regex>
++#include <algorithm>
++#include <random>
+ 
+ namespace circuit {
+ 
+@@ -183,7 +185,9 @@ void CSetupManager::PickStartPos(CCircuitAI* circuit, 
+ 					c.distDivIncome = center.distance(cl.position) / income;
+ 					validClusters.push_back(std::make_pair(kv.first, c));
+ 				}
+-				std::random_shuffle(validClusters.begin(), validClusters.end());
++				std::random_device rd;
++				std::minstd_rand g(rd());
++				std::shuffle(validClusters.begin(), validClusters.end(), g);
+ 
+ 				auto cmp = [](const std::pair<int, SCluster>& a, const std::pair<int, SCluster>& b) {
+ 					if (a.second.count < b.second.count) {
+--- ./AI/Skirmish/CircuitAI/src/circuit/util/math/EncloseCircle.cpp.orig	2021-01-01 16:10:55 UTC
++++ ./AI/Skirmish/CircuitAI/src/circuit/util/math/EncloseCircle.cpp
+@@ -9,6 +9,7 @@
+ #include "util/utils.h"
+ 
+ #include <algorithm>
++#include <random>
+ #include <assert.h>
+ 
+ namespace circuit {
+@@ -48,7 +49,9 @@ void CEncloseCircle::MakeCircle(const std::vector<AIFl
+ 		}
+ 		// Randomize order
+ 		// TODO: Read why shuffle??
+-		std::random_shuffle(shuffled.begin(), shuffled.end());
++		std::random_device rd;
++		std::minstd_rand g(rd());
++		std::shuffle(shuffled.begin(), shuffled.end(), g);
+ 
+ 		// Progressively add points to circle or recompute circle
+ 		decltype(shuffled)::iterator it = shuffled.begin();
+--- rts/Game/GameSetup.cpp.orig	2021-01-01 16:12:22 UTC
++++ rts/Game/GameSetup.cpp
+@@ -255,7 +255,7 @@ void CGameSetup::LoadStartPositions(bool withoutMap)
+ 		// Server syncs these later, so we can use unsynced rng
+ 		CGlobalUnsyncedRNG rng;
+ 		rng.Seed(HsiehHash(setupText.c_str(), setupText.length(), 1234567));
+-		std::random_shuffle(teamStartNums.begin(), teamStartNums.begin() + teamStartingData.size(), rng);
++		std::shuffle(teamStartNums.begin(), teamStartNums.begin() + teamStartingData.size(), rng);
+ 	}
+ 
+ 	for (size_t i = 0; i < teamStartingData.size(); ++i)
+--- rts/Rendering/Env/Decals/DecalsDrawerGL4.cpp.orig	2021-01-01 19:08:25 UTC
++++ rts/Rendering/Env/Decals/DecalsDrawerGL4.cpp
+@@ -338,7 +338,7 @@ void CDecalsDrawerGL4::DetectMaxDecals()
+ 	decals.resize(maxDecals);
+ 	freeIds.resize(maxDecals - 1); // idx = 0 is invalid, so -1
+ 	std::iota(freeIds.begin(), freeIds.end(), 1); // start with 1, 0 is illegal
+-	std::random_shuffle(freeIds.begin(), freeIds.end(), guRNG);
++	std::shuffle(freeIds.begin(), freeIds.end(), guRNG);
+ 	groups.reserve(maxDecalGroups);
+ }
+ 
+--- rts/Sim/Misc/SimObjectIDPool.cpp.orig	2020-12-26 12:45:43 UTC
++++ rts/Sim/Misc/SimObjectIDPool.cpp
+@@ -25,8 +25,8 @@ void SimObjectIDPool::Expand(unsigned int baseID, unsi
+ 	std::generate(newIDs.begin(), newIDs.begin() + numIDs, [&baseID]() { return (baseID++); });
+ 
+ 	// randomize so that Lua widgets can not easily determine counts
+-	std::random_shuffle(newIDs.begin(), newIDs.begin() + numIDs, gsRNG);
+-	std::random_shuffle(newIDs.begin(), newIDs.begin() + numIDs, gsRNG);
++	std::shuffle(newIDs.begin(), newIDs.begin() + numIDs, gsRNG);
++	std::shuffle(newIDs.begin(), newIDs.begin() + numIDs, gsRNG);
+ 
+ 	// lambda capture ("[n = baseID]() mutable { return (n++); }") requires std=c++14
+ 	baseID -= numIDs;
+--- rts/Sim/Projectiles/ProjectileHandler.cpp.orig	2020-12-26 12:45:43 UTC
++++ rts/Sim/Projectiles/ProjectileHandler.cpp
+@@ -66,6 +66,18 @@ ProjMemPool projMemPool;
+ CProjectileHandler projectileHandler;
+ 
+ 
++namespace {
++	template<class RandomIt, class RandomFunc>
++	void random_shuffle(RandomIt first, RandomIt last, RandomFunc&& r)
++	{
++		typename std::iterator_traits<RandomIt>::difference_type i, n;
++		n = last - first;
++		for (i = n-1; i > 0; --i) {
++			using std::swap;
++			swap(first[i], first[r(i+1)]);
++		}
++	}
++}
+ 
+ void CProjectileHandler::Init()
+ {
+@@ -106,8 +118,8 @@ void CProjectileHandler::Init()
+ 			freeProjectileIDs[false].push_back(i);
+ 		}
+ 
+-		std::random_shuffle(freeProjectileIDs[ true].begin(), freeProjectileIDs[ true].end(), gsRNG);
+-		std::random_shuffle(freeProjectileIDs[false].begin(), freeProjectileIDs[false].end(), guRNG);
++		::random_shuffle(freeProjectileIDs[ true].begin(), freeProjectileIDs[ true].end(), gsRNG);
++		::random_shuffle(freeProjectileIDs[false].begin(), freeProjectileIDs[false].end(), guRNG);
+ 	}
+ 
+ 	for (int modelType = 0; modelType < MODELTYPE_OTHER; ++modelType) {
+@@ -395,7 +407,7 @@ void CProjectileHandler::AddProjectile(CProjectile* p)
+ 
+ 			// generate (newSize - oldSize) new id's starting from oldSize
+ 			std::for_each(freeIDs.begin(), freeIDs.end(), [k = oldSize](int& id) mutable { id = k++; });
+-			std::random_shuffle(freeIDs.begin(), freeIDs.end(), rngFunc);
++			::random_shuffle(freeIDs.begin(), freeIDs.end(), rngFunc);
+ 		}
+ 
+ 
diff --git a/games/spring/files/patch-tools_mapcompile_src_mapdecompile.cpp b/games/spring/files/patch-tools_mapcompile_src_mapdecompile.cpp
deleted file mode 100644
index 09b8fbba95dc..000000000000
--- a/games/spring/files/patch-tools_mapcompile_src_mapdecompile.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/mapcompile/src/mapdecompile.cpp.orig	2020-12-19 22:58:47 UTC
-+++ tools/mapcompile/src/mapdecompile.cpp
-@@ -1,7 +1,7 @@
- /* This file is part of SpringMapConvNG (GPL v2 or later), see the LICENSE file */
- 
- #include "SMFMap.h"
--#include <IL/il.h>
-+#include <il.h>
- #include <iostream>
- #include <string.h>
- 
diff --git a/games/spring/files/patch-tools_pr-downloader_src_Downloader_Rapid_Sdp.cpp b/games/spring/files/patch-tools_pr-downloader_src_Downloader_Rapid_Sdp.cpp
deleted file mode 100644
index 3a0523ac758e..000000000000
--- a/games/spring/files/patch-tools_pr-downloader_src_Downloader_Rapid_Sdp.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-https://github.com/spring/pr-downloader/pull/140
-
---- tools/pr-downloader/src/Downloader/Rapid/Sdp.cpp.orig	2020-12-20 17:04:22 UTC
-+++ tools/pr-downloader/src/Downloader/Rapid/Sdp.cpp
-@@ -5,6 +5,7 @@
- #include <stdio.h>
- #include <curl/curl.h>
- #include <stdlib.h>
-+#include <errno.h>
- 
- #include "Sdp.h"
- #include "RapidDownloader.h"
diff --git a/games/spring/files/patch-tools_pr-downloader_src_FileSystem_FileSystem.cpp b/games/spring/files/patch-tools_pr-downloader_src_FileSystem_FileSystem.cpp
deleted file mode 100644
index d26378522129..000000000000
--- a/games/spring/files/patch-tools_pr-downloader_src_FileSystem_FileSystem.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-https://github.com/spring/pr-downloader/pull/141
-
---- tools/pr-downloader/src/FileSystem/FileSystem.cpp.orig	2020-12-20 17:04:22 UTC
-+++ tools/pr-downloader/src/FileSystem/FileSystem.cpp
-@@ -18,6 +18,7 @@
- #include <sys/stat.h>
- #include <dirent.h>
- #include <stdlib.h>
-+#include <unistd.h>
- 
- #ifdef _WIN32
- #include <windows.h>
diff --git a/games/spring/pkg-plist b/games/spring/pkg-plist
index 6429c9b09a85..b868511ae2c5 100644
--- a/games/spring/pkg-plist
+++ b/games/spring/pkg-plist
@@ -8,7 +8,7 @@ lib/libunitsync.so
 share/applications/spring.desktop
 %%MANPAGES%%share/man/man6/spring-dedicated.6.gz
 %%MANPAGES%%share/man/man6/spring-headless.6.gz
-%%MANPAGES%%share/man/man6/spring-legacy.6.gz
+%%MANPAGES%%share/man/man6/spring-opengl4.6.gz
 %%MANPAGES%%share/man/man6/spring.6.gz
 share/mime/packages/spring.xml
 share/pixmaps/application-x-spring-demo.png