games/spring: Remove expired port

2023-11-30 games/spring: Fails to build and marked broken for several months
This commit is contained in:
Muhammad Moinur Rahman 2023-12-30 04:42:53 +01:00
parent bf234f895b
commit c470081849
16 changed files with 1 additions and 429 deletions

1
MOVED
View file

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

View file

@ -930,7 +930,6 @@
SUBDIR += spellcast
SUBDIR += spicetrade
SUBDIR += spider
SUBDIR += spring
SUBDIR += starfighter
SUBDIR += starlanes
SUBDIR += steelstorm

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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