git: c470081849a0 - main - games/spring: Remove expired port

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Sun, 31 Dec 2023 00:08:11 UTC
The branch main has been updated by bofh:

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

commit c470081849a0a971beb5168121d5ef8ea9917be7
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2023-12-30 03:42:53 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2023-12-31 00:06:25 +0000

    games/spring: Remove expired port
    
    2023-11-30 games/spring: Fails to build and marked broken for several months
---
 MOVED                                              |   1 +
 games/Makefile                                     |   1 -
 games/spring/Makefile                              |  94 ----------------
 games/spring/distinfo                              |  21 ----
 games/spring/files/patch-doc_CMakeLists.txt        |  11 --
 .../files/patch-doc_manpages_make__manpages.sh     |   8 --
 games/spring/files/patch-futex                     |  61 -----------
 games/spring/files/patch-rts_System_GlobalRNG.h    |  13 ---
 ...tch-rts_System_Platform_Linux_ThreadSupport.cpp |  19 ----
 .../files/patch-rts_System_Platform_Misc.cpp       |  21 ----
 .../files/patch-rts_build_cmake_FindSevenZip.cmake |  11 --
 .../files/patch-rts_build_cmake_UtilVersion.cmake  |  11 --
 games/spring/files/patch-shuffle                   | 119 ---------------------
 games/spring/pkg-descr                             |   7 --
 games/spring/pkg-message                           |  17 ---
 games/spring/pkg-plist                             |  15 ---
 16 files changed, 1 insertion(+), 429 deletions(-)

diff --git a/MOVED b/MOVED
index 15b287eb6480..ff19be0951ab 100644
--- a/MOVED
+++ b/MOVED
@@ -8240,3 +8240,4 @@ games/quake3||2023-12-31|Has expired: BROKEN for more than 4 years on all suppor
 audio/xmradio||2023-12-31|Has expired: Requires defunct bktr
 editors/xi-core||2023-12-31|Has expired: Project is currently discontinued, one depend port broken (editors/xi-term set to deprecation too). Upstream recommends editors/lapce
 editors/pdfedit||2023-12-31|Has expired: BROKEN on all supported versions for 2 years after the EOL of 12
+games/spring||2023-12-31|Has expired: Fails to build and marked broken for several months
diff --git a/games/Makefile b/games/Makefile
index 0e0e20fee09f..a31c1abe97f8 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -930,7 +930,6 @@
     SUBDIR += spellcast
     SUBDIR += spicetrade
     SUBDIR += spider
-    SUBDIR += spring
     SUBDIR += starfighter
     SUBDIR += starlanes
     SUBDIR += steelstorm
diff --git a/games/spring/Makefile b/games/spring/Makefile
deleted file mode 100644
index 833f32e03650..000000000000
--- a/games/spring/Makefile
+++ /dev/null
@@ -1,94 +0,0 @@
-PORTNAME=	spring
-PORTVERSION=	106.0.1
-CATEGORIES=	games
-
-MAINTAINER=	amdmi3@FreeBSD.org
-COMMENT=	Project aiming to create a new and versatile RTS Engine
-WWW=		https://springrts.com/
-
-LICENSE=	GPLv2+ BSD3CLAUSE BSD2CLAUSE
-LICENSE_COMB=	multi
-LICENSE_FILE=	${WRKSRC}/LICENSE
-
-DEPRECATED=	Fails to build and marked broken for several months
-EXPIRATION_DATE=2023-11-30
-
-LIB_DEPENDS=	libfreetype.so:print/freetype2 \
-		libIL.so:graphics/devil \
-		libogg.so:audio/libogg \
-		libvorbis.so:audio/libvorbis \
-		libminizip.so:archivers/minizip \
-		libfontconfig.so:x11-fonts/fontconfig \
-		libcurl.so:ftp/curl \
-		libunwind.so:devel/libunwind \
-		libjsoncpp.so:devel/jsoncpp
-BUILD_DEPENDS=	7zz:archivers/7-zip
-
-BROKEN_FreeBSD_13=	ld: error: undefined symbol: streflop_libm::__inline_isnanf(float)
-BROKEN_FreeBSD_14=	ld: error: undefined symbol: streflop_libm::__inline_isnanf(float)
-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: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++17-lang desktop-file-utils gl localbase:ldflags \
-		openal:al pkgconfig sdl shared-mime-info xorg
-USE_GL=		gl glu glew
-USE_SDL=	sdl2
-USE_XORG=	x11 xcursor
-CMAKE_ARGS=	-DDATADIR:STRING="share/${PORTNAME}" \
-		-DDOCDIR:STRING="share/doc/${PORTNAME}" \
-		-DAI_TYPES:STRING="NATIVE" \
-		-DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE \
-		-Wno-dev
-
-.if defined(WITH_SYNC_DEBUG)
-CFLAGS=		# empty
-CXXFLAGS=	# empty
-CMAKE_ARGS+=	-DTRACE_SYNC=true -DSYNCDEBUG=true -DSYNCCHECK=true
-CMAKE_BUILD_TYPE=DEBUG
-.endif
-
-# The check-target fails right now: https://springrts.com/mantis/view.php?id=4736
-TEST_TARGET=	check
-
-PORTDATA=	*
-
-OPTIONS_DEFINE=	MANPAGES
-OPTIONS_DEFAULT=MANPAGES
-OPTIONS_SUB=	yes
-
-MANPAGES_CMAKE_BOOL=	ENABLE_MANPAGES
-MANPAGES_BUILD_DEPENDS=	asciidoc:textproc/asciidoc \
-			xsltproc:textproc/libxslt \
-			${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
-.endif
-	@${REINPLACE_CMD} -e 's|/etc/\(spring/datadir\)|${PREFIX}/\1|g' \
-		${WRKSRC}/rts/System/FileSystem/DataDirLocater.cpp
-	@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
-		${WRKSRC}/rts/build/cmake/*.cmake
-	# XXX: recheck if this is still needed
-	@${REINPLACE_CMD} -e 's|x1F3F|x0F3F|g' \
-		${WRKSRC}/rts/System/Sync/FPUCheck.cpp
-
-.include <bsd.port.mk>
diff --git a/games/spring/distinfo b/games/spring/distinfo
deleted file mode 100644
index 3df98bb72c17..000000000000
--- a/games/spring/distinfo
+++ /dev/null
@@ -1,21 +0,0 @@
-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-doc_CMakeLists.txt b/games/spring/files/patch-doc_CMakeLists.txt
deleted file mode 100644
index 0ba4cf802a1b..000000000000
--- a/games/spring/files/patch-doc_CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- doc/CMakeLists.txt.orig	2020-12-26 12:45:43 UTC
-+++ doc/CMakeLists.txt
-@@ -1,6 +1,7 @@
-+option(ENABLE_MANPAGES "Enable manpages" FALSE)
- 
- ### make and install the man pages
--if    (UNIX)
-+if    (UNIX AND ENABLE_MANPAGES)
- 	find_package(SevenZip)
- 	set(AsciiDoc_FIND_QUIETLY TRUE)
- 	find_package(AsciiDoc)
diff --git a/games/spring/files/patch-doc_manpages_make__manpages.sh b/games/spring/files/patch-doc_manpages_make__manpages.sh
deleted file mode 100644
index 4798cb83a812..000000000000
--- a/games/spring/files/patch-doc_manpages_make__manpages.sh
+++ /dev/null
@@ -1,8 +0,0 @@
---- doc/manpages/make_manpages.sh.orig	2020-12-26 12:45:43 UTC
-+++ doc/manpages/make_manpages.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/usr/bin/env bash
- 
- ORIG_DIR=$(pwd)
- 
diff --git a/games/spring/files/patch-futex b/games/spring/files/patch-futex
deleted file mode 100644
index 58ebd0d277d7..000000000000
--- a/games/spring/files/patch-futex
+++ /dev/null
@@ -1,61 +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})
---- 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_System_GlobalRNG.h b/games/spring/files/patch-rts_System_GlobalRNG.h
deleted file mode 100644
index 3c04c91f6c80..000000000000
--- a/games/spring/files/patch-rts_System_GlobalRNG.h
+++ /dev/null
@@ -1,13 +0,0 @@
-https://github.com/spring/spring/pull/558
-
---- rts/System/GlobalRNG.h.orig	2021-01-01 16:12:22 UTC
-+++ rts/System/GlobalRNG.h
-@@ -100,6 +100,8 @@ template<typename RNG, bool synced> class CGlobalRNG {
- 	typedef typename RNG::val_type rng_val_type;
- 	typedef typename RNG::res_type rng_res_type;
- 
-+	using result_type = rng_res_type;
-+
- 	static_assert(std::numeric_limits<float>::digits == 24, "sign plus mantissa bits should be 24");
- 
- 	void Seed(rng_val_type seed) { SetSeed(seed); }
diff --git a/games/spring/files/patch-rts_System_Platform_Linux_ThreadSupport.cpp b/games/spring/files/patch-rts_System_Platform_Linux_ThreadSupport.cpp
deleted file mode 100644
index c3acda218cc8..000000000000
--- a/games/spring/files/patch-rts_System_Platform_Linux_ThreadSupport.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
---- rts/System/Platform/Linux/ThreadSupport.cpp.orig	2021-01-01 16:12:22 UTC
-+++ rts/System/Platform/Linux/ThreadSupport.cpp
-@@ -7,6 +7,7 @@
- #include <csignal>
- #include <fstream>
- #include <sys/syscall.h>
-+#include <pthread_np.h>
- 
- #include "System/Log/ILog.h"
- #include "System/Platform/Threading.h"
-@@ -42,7 +43,7 @@ enum LinuxThreadState {
-  * There is no glibc wrapper for this system call, so you have to write one:
-  */
- static int gettid() {
--	return syscall(SYS_gettid);
-+	return pthread_getthreadid_np();
- }
- 
- /**
diff --git a/games/spring/files/patch-rts_System_Platform_Misc.cpp b/games/spring/files/patch-rts_System_Platform_Misc.cpp
deleted file mode 100644
index 79e4df8e1c33..000000000000
--- a/games/spring/files/patch-rts_System_Platform_Misc.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
---- rts/System/Platform/Misc.cpp.orig	2021-01-01 16:12:22 UTC
-+++ rts/System/Platform/Misc.cpp
-@@ -29,7 +29,9 @@
- 	#include <mach-o/dyld.h>
- 
- #elif defined( __FreeBSD__)
-+	#include <sys/types.h>
- 	#include <sys/sysctl.h>
-+	#include <ifaddrs.h>
- 
- #else
- 
-@@ -714,7 +716,7 @@ namespace Platform
- 		return (GetMacType(macAddr, 0), macAddr);
- 	}
- 
--	#elif defined(__APPLE__)
-+	#elif defined(__APPLE__) || defined (__FreeBSD__)
- 
- 	std::array<uint8_t, 6> GetRawMacAddr() {
- 		// TODO: http://lists.freebsd.org/pipermail/freebsd-hackers/2004-June/007415.html
diff --git a/games/spring/files/patch-rts_build_cmake_FindSevenZip.cmake b/games/spring/files/patch-rts_build_cmake_FindSevenZip.cmake
deleted file mode 100644
index e75226c6175a..000000000000
--- a/games/spring/files/patch-rts_build_cmake_FindSevenZip.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
---- rts/build/cmake/FindSevenZip.cmake.orig	2020-12-26 12:45:43 UTC
-+++ rts/build/cmake/FindSevenZip.cmake
-@@ -23,7 +23,7 @@ ENDIF (SEVENZIP_BIN)
- set(progfilesx86 "ProgramFiles(x86)")
- 
- find_program(SEVENZIP_BIN
--	NAMES 7z 7za
-+	NAMES 7zz
- 	HINTS "${MINGWDIR}" "${MINGWLIBS}/bin" "$ENV{${progfilesx86}}/7-zip" "$ENV{ProgramFiles}/7-zip" "$ENV{ProgramW6432}/7-zip"
- 	PATH_SUFFIXES bin
- 	DOC "7zip executable"
diff --git a/games/spring/files/patch-rts_build_cmake_UtilVersion.cmake b/games/spring/files/patch-rts_build_cmake_UtilVersion.cmake
deleted file mode 100644
index 2d3c84fed8c7..000000000000
--- a/games/spring/files/patch-rts_build_cmake_UtilVersion.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
---- rts/build/cmake/UtilVersion.cmake.orig	2022-01-10 23:00:52 UTC
-+++ rts/build/cmake/UtilVersion.cmake
-@@ -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-shuffle b/games/spring/files/patch-shuffle
deleted file mode 100644
index 5ade3d4fdc8f..000000000000
--- a/games/spring/files/patch-shuffle
+++ /dev/null
@@ -1,119 +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) {
---- ./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/pkg-descr b/games/spring/pkg-descr
deleted file mode 100644
index 2636a55d210b..000000000000
--- a/games/spring/pkg-descr
+++ /dev/null
@@ -1,7 +0,0 @@
-Spring is a full 3D RTS game engine, designed, in its basis, to
-be able to run the content of the game Total Annihilation and deliver
-a similar, but improved, gaming experience.
-
-Games can be intense and very large scaled, with fight of, literally,
-hundreds of unit and the mods allow very wide arrays of different
-strategies and tactics.
diff --git a/games/spring/pkg-message b/games/spring/pkg-message
deleted file mode 100644
index 3dbd2a7cc4cb..000000000000
--- a/games/spring/pkg-message
+++ /dev/null
@@ -1,17 +0,0 @@
-[
-{ type: install
-  message: <<EOM
-To finalize installation of Spring, you need to get at least one
-map and at least one mod, and place those into your ~/.spring. Also,
-if you wish to play mods based on Total Annihilation, you'll need
-OTA content as well.
-
-For further instructions, see:
-
-   http://springrts.com/wiki/Read_Me_First
-
-Alternatively, you can use games/springlobby port which allows you
-to download maps and setup single- and multiplayer games.
-EOM
-}
-]
diff --git a/games/spring/pkg-plist b/games/spring/pkg-plist
deleted file mode 100644
index b868511ae2c5..000000000000
--- a/games/spring/pkg-plist
+++ /dev/null
@@ -1,15 +0,0 @@
-bin/mapcompile
-bin/mapdecompile
-bin/pr-downloader
-bin/spring
-bin/spring-dedicated
-bin/spring-headless
-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-opengl4.6.gz
-%%MANPAGES%%share/man/man6/spring.6.gz
-share/mime/packages/spring.xml
-share/pixmaps/application-x-spring-demo.png
-share/pixmaps/spring.png