1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-20 00:21:35 +00:00

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
This commit is contained in:
Dmitry Marakasov 2022-03-17 22:48:20 +03:00
parent 98f5f7f0f4
commit 58bb6e25da
27 changed files with 228 additions and 397 deletions

View File

@ -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

View File

@ -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

View File

@ -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})

View File

@ -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;

View File

@ -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) {

View File

@ -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();

View File

@ -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;

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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);
}

View File

@ -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"

View File

@ -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

View File

@ -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;

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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;

View File

@ -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 ()

View File

@ -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"

View File

@ -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);
}

View File

@ -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>

View File

@ -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"

View File

@ -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>

View File

@ -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