1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-02-05 11:35:01 +00:00

- Update to 94.1

- Unbreak
- Support staging
- Use new LIB_DEPENDS syntax
This commit is contained in:
Dmitry Marakasov 2013-12-16 11:22:24 +00:00
parent a11860d0d0
commit da9662ef60
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=336624
34 changed files with 590 additions and 292 deletions

View File

@ -2,19 +2,16 @@
# $FreeBSD$
PORTNAME= spring
PORTVERSION= 0.82.7.1
PORTREVISION= 3
PORTVERSION= 94.1
CATEGORIES= games
MASTER_SITES= SF/springrts/springrts/${PORTNAME}-${PORTVERSION}
MASTER_SITES= SF/springrts/springrts/${PORTNAME}-${PORTVERSION} \
http://springrts.com/dl/
DISTNAME= ${PORTNAME}_${PORTVERSION}_src
MAINTAINER= amdmi3@FreeBSD.org
COMMENT= A project aiming to create a new and versatile RTS Engine
DEPRECATED= Broken for more than 6 month
EXPIRATION_DATE= 2013-12-22
BROKEN= Does not build with recent boost
LICENSE= GPLv2
LIB_DEPENDS= libfreetype.so:${PORTSDIR}/print/freetype2 \
libboost_thread.so:${PORTSDIR}/devel/boost-libs \
@ -29,52 +26,82 @@ ONLY_FOR_ARCHS_REASON= relies on x86 floating-point math
USE_SDL= sdl
USE_OPENAL= al
USE_GL= glew
USE_GL= gl glu glew
USE_XORG= x11 xcursor
USE_LDCONFIG= yes
USE_DOS2UNIX= *.h *.hpp *.cpp
USES= cmake
USES= cmake compiler:c++11-lib
CMAKE_ARGS= -DDATADIR:STRING="share/${PORTNAME}" \
-DMARCH_FLAG:STRING= \
-DAI_TYPES:STRING="NATIVE" \
-DMANDIR:STRING="man" \
-DCREATE_MAN_PAGES:BOOL=false
-DDOCDIR:STRING="share/doc/${PORTNAME}" \
-DCREATE_MAN_PAGES:BOOL=false \
-DUNITSYNC_PYTHON_WRAPPER:BOOL=false \
-DCUSTOM_CFLAGS:BOOL=true
WRKSRC= ${WRKDIR}/${PORTNAME}_${PORTVERSION}
PORTDOCS= *
PORTDATA= *
NO_STAGE= yes
.include <bsd.port.pre.mk>
OPTIONS_DEFINE= MANPAGES PR_DOWNLOADER DOCS
OPTIONS_DEFAULT=MANPAGES PR_DOWNLOADER
OPTIONS_SUB= *
HTMLDOCS_DESC= Build and install HTML documentation
PR_DOWNLOADER_DESC= Map and game downloader
MANPAGES_CMAKE_ON= -DCREATE_MAN_PAGES:BOOL=true -DMANDIR:STRING="man"
MANPAGES_CMAKE_OFF= -DCREATE_MAN_PAGES:BOOL=false
MANPAGES_BUILD_DEPENDS= 7z:${PORTSDIR}/archivers/p7zip \
asciidoc:${PORTSDIR}/textproc/asciidoc \
xsltproc:${PORTSDIR}/textproc/libxslt \
${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:${PORTSDIR}/textproc/docbook-xsl \
bash:${PORTSDIR}/shells/bash
MANPAGES_DOCS_ON= -DUSERDOCS_PLAIN:BOOL=true
MANPAGES_DOCS_OFF= -DUSERDOCS_PLAIN:BOOL=false
PR_DOWNLOADER_LIB_DEPENDS=libcurl.so:${PORTSDIR}/ftp/curl
.include <bsd.port.options.mk>
.if ${ARCH} == "i386"
BROKEN= does not build on i386 (undefined reference to __sync_fetch_and_add_8)
.endif
.if defined(WITH_SYNC_DEBUG)
CFLAGS= # empty
CXXFLAGS= # empty
CMAKE_ARGS+= -DTRACE_SYNC=true -DSYNCDEBUG=true
CMAKE_BUILD_TYPE= DEBUG2
CMAKE_BUILD_TYPE=DEBUG2
.endif
.if ! ${PORT_OPTIONS:MPR_DOWNLOADER}
post-extract:
@${RM} ${WRKSRC}/tools/pr-downloader/CMakeLists.txt
.endif
post-patch:
@${REINPLACE_CMD} -E -e '/FIND_PACKAGE.*(Python|JNI)/ d' \
${WRKSRC}/tools/unitsync/CMakeLists.txt
@${REINPLACE_CMD} -e 's|/etc/\(spring/datadir\)|${PREFIX}/\1|g; \
/AddDirs.*GetBinaryPath/ d' \
@${REINPLACE_CMD} -e 's|-O2||' ${WRKSRC}/CMakeLists.txt
@${REINPLACE_CMD} -e 's|/etc/\(spring/datadir\)|${PREFIX}/\1|g' \
${WRKSRC}/rts/System/FileSystem/DataDirLocater.cpp
@${REINPLACE_CMD} -e 's|x1F3F|x0F3F|g' \
${WRKSRC}/rts/System/FPUCheck.h
${WRKSRC}/rts/System/Sync/FPUCheck.cpp
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/rts/build/cmake/*.cmake
@${REINPLACE_CMD} -e 's|execinfo|${LOCALBASE}/lib/libexecinfo.so|' \
${WRKSRC}/rts/CMakeLists.txt
${WRKSRC}/rts/CMakeLists.txt \
${WRKSRC}/rts/builds/dedicated/CMakeLists.txt
@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \
${WRKSRC}/rts/System/Platform/Misc.cpp
post-install:
.if ${PORT_OPTIONS:MDOCS}
${MKDIR} ${DOCSDIR}
cd ${WRKSRC}/doc && ${COPYTREE_SHARE} "userdocs DevGuide.html HowTo* \
SelectionKeys.txt StartScriptFormat.txt changelog.txt" ${DOCSDIR}/
@${REINPLACE_CMD} -e 's|/bin/bash|${LOCALBASE}&|' \
${WRKSRC}/doc/manpages/make_manpages.sh
.if ! ${PORT_OPTIONS:MMANPAGES}
@${REINPLACE_CMD} -e '/set(CREATE_MAN_PAGES)/ d' \
${WRKSRC}/doc/CMakeLists.txt
.endif
@${ECHO_CMD}; ${CAT} ${PKGMESSAGE}; ${ECHO_CMD}
.include <bsd.port.post.mk>
pre-build:
cd ${WRKSRC} && ${MAKE} generateVersionFiles
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (spring_0.82.7.1_src.tar.gz) = 24a02b9489a52d96bc78899dda577e05ab24933f501ea50b504ae197777fde74
SIZE (spring_0.82.7.1_src.tar.gz) = 11277409
SHA256 (spring_94.1_src.tar.gz) = 26da7271baa8b3dd57022541d98e6a4841084d749788b698c4f8a914cf9e7004
SIZE (spring_94.1_src.tar.gz) = 11793404

View File

@ -0,0 +1,11 @@
--- AI/Skirmish/KAIK/AIClasses.hpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/AIClasses.hpp 2013-11-11 03:13:58.779774182 +0400
@@ -111,7 +111,7 @@
#define math GetMathHandler()
#define pather GetPathFinder()
#define ut GetUnitTable()
-#define tm GetThreatMap()
+#define thm GetThreatMap()
#define uh GetUnitHandler()
#define dm GetDefenseMatrix()
#define ah GetAttackHandler()

View File

@ -0,0 +1,28 @@
--- AI/Skirmish/KAIK/AttackHandler.cpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/AttackHandler.cpp 2013-11-11 03:16:31.073773664 +0400
@@ -829,9 +829,9 @@
ai->pather->micropather->SetMapData(
ai->pather->MoveArrays[group_in->GetWorstMoveType()],
- ai->tm->GetThreatArray(),
- ai->tm->GetThreatMapWidth(),
- ai->tm->GetThreatMapHeight()
+ ai->thm->GetThreatArray(),
+ ai->thm->GetThreatMapWidth(),
+ ai->thm->GetThreatMapHeight()
);
@@ -930,9 +930,9 @@
// in each group (movement map PATHTOUSE is hack)
ai->pather->micropather->SetMapData(
ai->pather->MoveArrays[PATHTOUSE],
- ai->tm->GetThreatArray(),
- ai->tm->GetThreatMapWidth(),
- ai->tm->GetThreatMapHeight()
+ ai->thm->GetThreatArray(),
+ ai->thm->GetThreatMapWidth(),
+ ai->thm->GetThreatMapHeight()
);
// calculate and draw k-means for the base perimeters every 10 seconds

View File

@ -0,0 +1,11 @@
--- AI/Skirmish/KAIK/BuildUp.cpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/BuildUp.cpp 2013-11-11 03:15:30.794774021 +0400
@@ -32,7 +32,7 @@
void CBuildUp::Update(int frame) {
if (frame % 15 == 0) {
// update current threat map
- ai->tm->Update();
+ ai->thm->Update();
ai->uh->UpdateUpgradeTasks(frame);
GetEconState(&econState);

View File

@ -0,0 +1,11 @@
--- AI/Skirmish/KAIK/DGunController.cpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/DGunController.cpp 2013-11-11 03:17:24.007772549 +0400
@@ -166,7 +166,7 @@
if (canDGun) {
IssueOrder(dgunPos, CMD_DGUN, 0);
} else {
- bool bDanger = ai->tm->ThreatAtThisPoint(commanderPos/*curTargetPos*/) > ai->tm->GetAverageThreat();
+ bool bDanger = ai->thm->ThreatAtThisPoint(commanderPos/*curTargetPos*/) > ai->thm->GetAverageThreat();
if (bDanger) {
state.Reset(currentFrame, true);

View File

@ -0,0 +1,38 @@
--- AI/Skirmish/KAIK/DefenseMatrix.cpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/DefenseMatrix.cpp 2013-11-11 03:16:52.800773805 +0400
@@ -84,7 +84,7 @@
int y = (int) (builderpos.z / f3multiplier);
float fastSumMap = sumMap[y * ai->pather->PathMapXSize + x];
float3 spotpos = float3(x * f3multiplier, 0, y * f3multiplier);
- float myscore = fastSumMap / (builderpos.distance2D(spotpos) + averagemapsize / 8) * ((ai->pather->HeightMap[y * ai->pather->PathMapXSize + x] + 200) / (ai->pather->AverageHeight + 10)) / (ai->tm->ThreatAtThisPoint(spotpos) + 0.01);
+ float myscore = fastSumMap / (builderpos.distance2D(spotpos) + averagemapsize / 8) * ((ai->pather->HeightMap[y * ai->pather->PathMapXSize + x] + 200) / (ai->pather->AverageHeight + 10)) / (ai->thm->ThreatAtThisPoint(spotpos) + 0.01);
bestscore_fast = myscore;
bestspotx_fast = x;
bestspoty_fast = y;
@@ -131,7 +131,7 @@
float3 bestPosibleSpotpos = float3(bestX * f3multiplier, 0, bestY * f3multiplier);
// this must be guessed, set it to the best possible (slow)
- float bestThreatAtThisPoint = 0.01 + ai->tm->GetAverageThreat() - 1;
+ float bestThreatAtThisPoint = 0.01 + ai->thm->GetAverageThreat() - 1;
float bestDistance = builderpos.distance2D(bestPosibleSpotpos);
float bestHeight = ai->pather->HeightMap[cachePoint->y * ai->pather->PathMapXSize + cachePoint->x] + 200;
float bestPosibleMyScore = bestScoreInThisBox / (bestDistance + averagemapsize / 4) * (bestHeight + 200) / bestThreatAtThisPoint;
@@ -145,7 +145,7 @@
for (int sy = y * CACHEFACTOR; sy < ai->pather->PathMapYSize && sy < (y * CACHEFACTOR + CACHEFACTOR); sy++) {
float fastSumMap = sumMap[sy * ai->pather->PathMapXSize + sx];
float3 spotpos = float3(sx * f3multiplier, 0, sy * f3multiplier);
- float myscore = fastSumMap / (builderpos.distance2D(spotpos) + averagemapsize / 4) * (ai->pather->HeightMap[sy * ai->pather->PathMapXSize + sx]+200) / (ai->tm->ThreatAtThisPoint(spotpos) + 0.01);
+ float myscore = fastSumMap / (builderpos.distance2D(spotpos) + averagemapsize / 4) * (ai->pather->HeightMap[sy * ai->pather->PathMapXSize + sx]+200) / (ai->thm->ThreatAtThisPoint(spotpos) + 0.01);
// THIS COULD BE REALLY SLOW!
if (myscore > bestscore_fast && BuildMaskArray[sy * ai->pather->PathMapXSize + sx] == 0 && ai->cb->CanBuildAt(def, spotpos)) {
bestscore_fast = myscore;
@@ -199,7 +199,7 @@
}
spotFinder->InvalidateSumMap(x, y, Range + 1);
- // ai->debug->MakeBWTGA(Chokepointmap, ai->tm->GetThreatMapWidth(), ai->tm->GetThreatMapHeight(), "DebugPathMatrix", 1);
+ // ai->debug->MakeBWTGA(Chokepointmap, ai->thm->GetThreatMapWidth(), ai->thm->GetThreatMapHeight(), "DebugPathMatrix", 1);
}

View File

@ -0,0 +1,51 @@
--- AI/Skirmish/KAIK/KAIK.cpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/KAIK.cpp 2013-11-11 03:15:53.601773605 +0400
@@ -194,13 +194,13 @@
void CKAIK::EnemyDestroyed(int enemyUnitID, int attackerUnitID) {
if (ai->Initialized()) {
ai->dgunConHandler->NotifyEnemyDestroyed(enemyUnitID, attackerUnitID);
- ai->tm->EnemyDestroyed(enemyUnitID, attackerUnitID);
+ ai->thm->EnemyDestroyed(enemyUnitID, attackerUnitID);
}
}
void CKAIK::EnemyDamaged(int enemyUnitID, int attackerUnitID, float damage, float3 dir) {
if (ai->Initialized()) {
- ai->tm->EnemyDamaged(enemyUnitID, attackerUnitID);
+ ai->thm->EnemyDamaged(enemyUnitID, attackerUnitID);
damage = damage;
dir = dir;
@@ -209,12 +209,12 @@
void CKAIK::EnemyCreated(int enemyUnitID) {
if (ai->Initialized()) {
- ai->tm->EnemyCreated(enemyUnitID);
+ ai->thm->EnemyCreated(enemyUnitID);
}
}
void CKAIK::EnemyFinished(int enemyUnitID) {
if (ai->Initialized()) {
- ai->tm->EnemyFinished(enemyUnitID);
+ ai->thm->EnemyFinished(enemyUnitID);
}
}
@@ -229,7 +229,7 @@
}
if ((msg = strstr(msg, "ThreatMap::DBG")) != NULL) {
- ai->tm->ToggleVisOverlay();
+ ai->thm->ToggleVisOverlay();
}
}
}
@@ -298,7 +298,7 @@
ai->dgunConHandler->Update(frame);
if ((frame - ai->InitFrame()) == 1) {
- // ai->tm->Init();
+ // ai->thm->Init();
ai->dm->Init();
}

View File

@ -0,0 +1,12 @@
--- AI/Skirmish/KAIK/Logger.cpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/Logger.cpp 2013-11-11 03:18:04.431773779 +0400
@@ -14,8 +14,7 @@
time_t now1;
time(&now1);
-//FIXME:compile hack for macosx
-#undef tm
+
struct tm* now2 = localtime(&now1);
std::stringstream ss;

View File

@ -0,0 +1,14 @@
--- AI/Skirmish/KAIK/Logger.h.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/Logger.h 2013-11-11 04:04:46.414772522 +0400
@@ -2,10 +2,8 @@
#define KAIK_LOGGER_HDR
#include <string>
-//FIXME:compile hack for macosx
-#undef tm
#include <fstream>
-#define tm GetThreatMap()
+#define thm GetThreatMap()
namespace springLegacyAI {
class IAICallback;

View File

@ -0,0 +1,20 @@
--- AI/Skirmish/KAIK/MetalMap.cpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/MetalMap.cpp 2013-11-11 03:17:46.615772673 +0400
@@ -57,7 +57,7 @@
if (spotCoords.x >= 0.0f) {
float distance = spotCoords.distance2D(ai->cb->GetUnitPos(builderid)) + 150;
- float myThreat = ai->tm->ThreatAtThisPoint(spotCoords);
+ float myThreat = ai->thm->ThreatAtThisPoint(spotCoords);
float spotScore = VectoredSpots[i].y / distance / (myThreat + 10);
// along with threatmap try to search for enemy armed units around cause
@@ -92,7 +92,7 @@
// by presence of ARMED enemy units or buildings
bool b1 = (TempScore < spotScore);
bool b2 = (numEnemies == 0);
- bool b3 = (myThreat <= (ai->tm->GetAverageThreat() * 1.5));
+ bool b3 = (myThreat <= (ai->thm->GetAverageThreat() * 1.5));
bool b4 = (ai->uh->TaskPlanExist(spotCoords, extractor));
if (b1 && b2 && b3 && !b4 && !bOccupied) {

View File

@ -0,0 +1,48 @@
--- AI/Skirmish/KAIK/Unit.cpp.orig 2013-03-26 03:58:45.000000000 +0400
+++ AI/Skirmish/KAIK/Unit.cpp 2013-11-11 03:16:19.873774077 +0400
@@ -256,7 +256,7 @@
const FeatureDef* fDef = ai->cb->GetFeatureDef(featureIDs[i]);
const float3& fPos = ai->cb->GetFeaturePos(featureIDs[i]);
const float fDist = fPos.distance2D(ai->cb->GetUnitPos(uid));
- const float fThreat = ai->tm->ThreatAtThisPoint(fPos);
+ const float fThreat = ai->thm->ThreatAtThisPoint(fPos);
if (fDef == 0)
continue;
@@ -266,11 +266,11 @@
continue;
}
- if (fDef->metal > bestScore && fThreat <= ai->tm->GetAverageThreat()) {
+ if (fDef->metal > bestScore && fThreat <= ai->thm->GetAverageThreat()) {
bestScore = fDef->metal;
bestFeatureID = featureIDs[i];
}
- else if (bestScore == fDef->metal && fThreat <= ai->tm->GetAverageThreat()) {
+ else if (bestScore == fDef->metal && fThreat <= ai->thm->GetAverageThreat()) {
if (fDist < bestDist) {
bestFeatureID = featureIDs[i];
bestDist = fDist;
@@ -282,7 +282,7 @@
const FeatureDef* fDef = ai->cb->GetFeatureDef(featureIDs[i]);
const float3& fPos = ai->cb->GetFeaturePos(featureIDs[i]);
const float fDist = fPos.distance2D(ai->cb->GetUnitPos(uid));
- const float fThreat = ai->tm->ThreatAtThisPoint(fPos);
+ const float fThreat = ai->thm->ThreatAtThisPoint(fPos);
if (fDef == 0)
continue;
@@ -291,11 +291,11 @@
continue;
}
- if (fDef->energy > bestScore && fThreat < ai->tm->GetAverageThreat()) {
+ if (fDef->energy > bestScore && fThreat < ai->thm->GetAverageThreat()) {
bestScore = fDef->energy;
bestFeatureID = featureIDs[i];
}
- else if (bestScore == fDef->energy && fThreat < ai->tm->GetAverageThreat()) {
+ else if (bestScore == fDef->energy && fThreat < ai->thm->GetAverageThreat()) {
if (fDist < bestDist) {
bestFeatureID = featureIDs[i];
bestDist = fDist;

View File

@ -0,0 +1,10 @@
--- CMakeLists.txt.orig 2013-03-26 03:58:35.000000000 +0400
+++ CMakeLists.txt 2013-11-09 07:51:04.829392176 +0400
@@ -364,7 +364,6 @@
elseif (MSVC)
# nothing to be done here
else (MSVC)
- Message(FATAL_ERROR "unknown compiler")
endif ($ENV{CXX} MATCHES "icpc")
add_definitions(-DSTREFLOP_SSE) # would break AI compiling, but is undefined in ./AI/CMakeLists.txt

View File

@ -1,20 +1,11 @@
--- ./rts/CMakeLists.txt.orig 2010-09-06 16:16:17.000000000 +0400
+++ ./rts/CMakeLists.txt 2010-09-15 23:05:01.000000000 +0400
@@ -46,6 +46,8 @@
--- rts/CMakeLists.txt.orig 2013-11-09 00:09:15.910054493 +0400
+++ rts/CMakeLists.txt 2013-11-09 00:18:23.355754880 +0400
@@ -63,7 +63,7 @@
ENDIF (PREFER_STATIC_LIBS)
LIST(APPEND engineCommonLibraries ${DEVIL_IL_LIBRARY})
+LIST(APPEND spring_libraries execinfo)
+
### Find include directories and add platform specific libraries
LIST(APPEND engineCommonLibraries ${Boost_REGEX_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_SIGNALS_LIBRARY})
@@ -53,7 +55,7 @@
IF (UNIX)
# Needed for dynamically loading shared libraries (on some OS)
- LIST(APPEND engineCommonLibraries dl)
+ LIST(APPEND engineCommonLibraries execinfo)
ENDIF (UNIX)
+ LIST(APPEND engineCommonLibraries ${CMAKE_DL_LIBS} execinfo)
ENDIF (UNIX AND NOT MINGW)
IF (MINGW)
FIND_PACKAGE_STATIC(ZLIB REQUIRED)

View File

@ -0,0 +1,11 @@
--- rts/Rendering/Shaders/ShaderStates.h.orig 2013-12-06 06:06:48.795486079 +0400
+++ rts/Rendering/Shaders/ShaderStates.h 2013-12-06 06:30:20.577430223 +0400
@@ -227,7 +227,7 @@
{
std::map<std::string, std::string>::const_iterator it = flags.find(flag);
if (it != flags.end()) {
- std::istringstream buf(*it);
+ std::istringstream buf(it->second);
T temp;
buf >> temp;
return temp;

View File

@ -0,0 +1,18 @@
--- rts/Sim/Misc/DefinitionTag.h.orig 2013-12-06 22:23:53.818446384 +0400
+++ rts/Sim/Misc/DefinitionTag.h 2013-12-06 22:42:16.128369497 +0400
@@ -15,7 +15,6 @@
#include <typeinfo>
#include "Lua/LuaParser.h"
#include "System/float3.h"
-#include "System/Util.h"
//example usage: DUMMYTAG(Defs, DefClass, table, customParams)
struct table {};
@@ -43,6 +42,7 @@
}
};
+#include "System/Util.h"
/**
* @brief Untyped definition tag meta data.

View File

@ -0,0 +1,11 @@
--- rts/System/Platform/Linux/CrashHandler.cpp.orig 2013-03-26 03:58:36.000000000 +0400
+++ rts/System/Platform/Linux/CrashHandler.cpp 2013-11-09 00:15:32.446878961 +0400
@@ -323,7 +323,7 @@
static void ForcedExitAfterTenSecs() {
boost::this_thread::sleep(boost::posix_time::seconds(10));
- std::_Exit(-1);
+ exit(-1);
}

View File

@ -1,7 +1,16 @@
--- rts/System/Platform/Misc.cpp.orig 2010-09-06 16:16:18.000000000 +0400
+++ rts/System/Platform/Misc.cpp 2010-09-15 22:44:06.000000000 +0400
@@ -106,7 +106,7 @@
procExeFilePath = std::string(pathReal);
--- rts/System/Platform/Misc.cpp.orig 2012-02-12 22:27:27.502768102 +0400
+++ rts/System/Platform/Misc.cpp 2012-02-13 01:50:43.365521912 +0400
@@ -2,7 +2,7 @@
#include "Misc.h"
-#ifdef linux
+#if defined(linux) || defined(__FreeBSD__)
#include <unistd.h>
#include <dlfcn.h> // for dladdr(), dlopen()
@@ -187,7 +187,7 @@
procExeFilePath = GetRealPath(path);
}
#else
- #error implement this
@ -9,3 +18,12 @@
#endif
if (procExeFilePath.empty()) {
@@ -208,7 +208,7 @@
// this will only be used if moduleFilePath stays empty
const char* error = NULL;
-#if defined(linux) || defined(__APPLE__)
+#if defined(linux) || defined(__APPLE__) || defined(__FreeBSD__)
#ifdef __APPLE__
#define SHARED_LIBRARY_EXTENSION "dylib"
#else

View File

@ -0,0 +1,47 @@
--- rts/System/Platform/Threading.cpp.orig 2013-03-26 03:58:36.000000000 +0400
+++ rts/System/Platform/Threading.cpp 2013-11-09 00:13:03.263078447 +0400
@@ -39,7 +39,7 @@
static boost::thread::id simThreadID;
static boost::thread::id batchThreadID;
#endif
-#if defined(__APPLE__)
+#if defined(__APPLE__) || defined(__FreeBSD__)
#elif defined(WIN32)
static DWORD cpusSystem = 0;
#else
@@ -52,7 +52,7 @@
if (inited)
return;
- #if defined(__APPLE__)
+ #if defined(__APPLE__) || defined(__FreeBSD__)
// no-op
#elif defined(WIN32)
@@ -76,7 +76,7 @@
return ~0;
}
- #if defined(__APPLE__)
+ #if defined(__APPLE__) || defined(__FreeBSD__)
// no-op
#elif defined(WIN32)
@@ -151,7 +151,7 @@
boost::uint32_t GetAvailableCoresMask()
{
boost::uint32_t systemCores = 0;
- #if defined(__APPLE__)
+ #if defined(__APPLE__) || defined(__FreeBSD__)
// no-op
systemCores = ~0;
@@ -269,7 +269,7 @@
void SetThreadScheduler()
{
- #if defined(__APPLE__)
+ #if defined(__APPLE__) || defined(__FreeBSD__)
// no-op
#elif defined(WIN32)

View File

@ -0,0 +1,11 @@
--- ./rts/System/Rectangle.h.orig 2013-03-26 03:58:36.000000000 +0400
+++ ./rts/System/Rectangle.h 2013-11-11 00:22:51.737774094 +0400
@@ -45,7 +45,7 @@
y1 < rect.y2 && y2 > rect.y1;
}
- bool operator< (const SRectangle& other) {
+ bool operator< (const SRectangle& other) const {
if (x1 == other.x1) {
return (z1 < other.z1);
} else {

View File

@ -1,11 +0,0 @@
--- rts/System/SpringApp.cpp.orig 2010-09-06 16:16:18.000000000 +0400
+++ rts/System/SpringApp.cpp 2010-09-15 23:03:15.000000000 +0400
@@ -255,7 +255,7 @@
logOutput.Print("CPU: affinity failed");
}
}
-#elif defined(__APPLE__)
+#elif defined(__APPLE__) || defined(__FreeBSD__) // may still use something like below for FreeBSD
// no-op
#else
if (affinity > 0) {

View File

@ -0,0 +1,15 @@
--- rts/System/creg/creg.h.orig 2013-12-06 06:06:48.806486080 +0400
+++ rts/System/creg/creg.h 2013-12-06 07:18:09.477443592 +0400
@@ -442,10 +442,10 @@
// Stupid GCC likes this template<> crap very much
#define CR_BIND_TEMPLATE(TCls, ctor_args) \
template<> creg::IMemberRegistrator* TCls::memberRegistrator=0; \
- template<> creg::Class* TCls::GetClass() const { return binder.class_; } \
template<> void TCls::_ConstructInstance(void* d) { new(d) MyType ctor_args; } \
template<> void TCls::_DestructInstance(void* d) { ((MyType*)d)->~MyType(); } \
- template<> creg::ClassBinder TCls::binder(#TCls, 0, 0, &TCls::memberRegistrator, sizeof(TCls), alignof(TCls), TCls::hasVTable, TCls::_ConstructInstance, TCls::_DestructInstance);
+ template<> creg::ClassBinder TCls::binder(#TCls, 0, 0, &TCls::memberRegistrator, sizeof(TCls), alignof(TCls), TCls::hasVTable, TCls::_ConstructInstance, TCls::_DestructInstance); \
+ template<> creg::Class* TCls::GetClass() const { return binder.class_; }
/** @def CR_BIND_DERIVED_INTERFACE
* Bind an abstract derived class

View File

@ -0,0 +1,10 @@
--- rts/build/cmake/FindAsciiDoc.cmake.orig 2013-11-09 03:59:29.984998154 +0400
+++ rts/build/cmake/FindAsciiDoc.cmake 2013-11-09 04:04:52.833206309 +0400
@@ -41,6 +41,7 @@
PATH_SUFFIXES
xml/docbook/stylesheet/nwalsh/manpages
sgml/docbook/xsl-stylesheets/manpages
+ xsl/docbook/manpages
DOC "DocBook XSL Style-Sheet"
)

View File

@ -1,11 +0,0 @@
--- rts/builds/DS/CMakeLists.txt.orig 2010-09-06 16:16:18.000000000 +0400
+++ rts/builds/DS/CMakeLists.txt 2010-09-15 23:46:32.000000000 +0400
@@ -21,7 +21,7 @@
LIST(APPEND engineDedicatedLibraries headlessStubs)
IF (UNIX)
# Needed for dynamically loading shared libraries (on some OS)
- LIST(APPEND engineDedicatedLibraries dl)
+ #LIST(APPEND engineDedicatedLibraries dl)
ENDIF (UNIX)
IF (MINGW OR APPLE)

View File

@ -0,0 +1,11 @@
--- ./rts/builds/dedicated/CMakeLists.txt.orig 2013-03-26 03:58:36.000000000 +0400
+++ ./rts/builds/dedicated/CMakeLists.txt 2013-11-09 00:39:09.704093624 +0400
@@ -24,7 +24,7 @@
LIST(APPEND engineDedicatedLibraries headlessStubs)
IF (UNIX)
# Needed for dynamically loading shared libraries (on some OS)
- LIST(APPEND engineDedicatedLibraries dl)
+ LIST(APPEND engineDedicatedLibraries ${CMAKE_DL_LIBS} execinfo)
ENDIF (UNIX)
IF (MINGW OR APPLE)

View File

@ -0,0 +1,18 @@
--- rts/lib/assimp/code/STEPFile.h.orig 2013-03-26 03:58:36.000000000 +0400
+++ rts/lib/assimp/code/STEPFile.h 2013-11-11 04:15:43.177772957 +0400
@@ -195,13 +195,13 @@
// conversion support.
template <typename T>
const T& ResolveSelect(const DB& db) const {
- return Couple<T>(db).MustGetObject(To<EXPRESS::ENTITY>())->To<T>();
+ return Couple<T>(db).MustGetObject(To<EXPRESS::ENTITY>())->template To<T>();
}
template <typename T>
const T* ResolveSelectPtr(const DB& db) const {
const EXPRESS::ENTITY* e = ToPtr<EXPRESS::ENTITY>();
- return e?Couple<T>(db).MustGetObject(*e)->ToPtr<T>():(const T*)0;
+ return e?Couple<T>(db).MustGetObject(*e)->template ToPtr<T>():(const T*)0;
}
public:

View File

@ -1,7 +1,7 @@
--- ./rts/lib/gml/gmlcls.h.orig 2010-09-06 16:16:18.000000000 +0400
+++ ./rts/lib/gml/gmlcls.h 2010-09-15 23:36:35.000000000 +0400
@@ -60,7 +60,7 @@
//#define BOOST_AC_USE_PTHREADS
--- rts/lib/gml/gmlcls.h.orig 2013-12-07 00:06:39.928020847 +0400
+++ rts/lib/gml/gmlcls.h 2013-12-07 00:09:21.477010398 +0400
@@ -43,7 +43,7 @@
extern bool ThreadRegistered();
// memory barriers for different platforms
-#if defined(__APPLE__) || defined(__FreeBSD__)
@ -9,7 +9,7 @@
# include <libkern/OSAtomic.h>
# define GML_MEMBAR OSMemoryBarrier()
#elif defined(__GNUC__)
@@ -112,7 +112,7 @@
@@ -95,7 +95,7 @@
# define GML_TYPENAME
#endif
@ -18,3 +18,16 @@
# define GML_USE_SPEEDY_TLS 1
# include "System/Platform/errorhandler.h"
# include "speedy-tls.h"
@@ -234,11 +234,7 @@
}
virtual ~gmlBaseMutexLock() {
if (GML::Enabled()) {
-#if (BOOST_VERSION >= 103500)
- ((T*)lockdata)->boost::unique_lock<U>::~unique_lock();
-#else
- ((T*)lockdata)->boost::scoped_lock<U>::~scoped_lock();
-#endif
+ ((T*)lockdata)->~T();
}
}
};

View File

@ -0,0 +1,13 @@
--- rts/lib/headlessStubs/CMakeLists.txt.orig 2013-03-26 03:58:36.000000000 +0400
+++ rts/lib/headlessStubs/CMakeLists.txt 2013-12-07 07:05:38.984034014 +0400
@@ -15,8 +15,8 @@
ELSE (MINGW)
# Use a direct copy of the GL and SDL headers,
# as these may not be available on headless systems.
- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/SDL)
+ INCLUDE_DIRECTORIES(BEFORE ${CMAKE_SOURCE_DIR}/include)
+ INCLUDE_DIRECTORIES(BEFORE ${CMAKE_SOURCE_DIR}/include/SDL)
ENDIF (MINGW)
ADD_LIBRARY(headlessStubs STATIC EXCLUDE_FROM_ALL ${headlessStubsSources})

View File

@ -1,10 +0,0 @@
--- rts/lib/lobby/Connection.h.orig 2010-12-10 17:17:43.000000000 +0300
+++ rts/lib/lobby/Connection.h 2010-12-10 17:19:28.000000000 +0300
@@ -6,6 +6,7 @@
#include <boost/asio/streambuf.hpp>
#include <boost/asio/deadline_timer.hpp>
#include <boost/asio/ip/tcp.hpp>
+#include <list>
#include <string>
struct ClientStatus

View File

@ -0,0 +1,10 @@
--- rts/lib/minizip/CMakeLists.txt.orig 2013-03-26 03:58:36.000000000 +0400
+++ rts/lib/minizip/CMakeLists.txt 2013-11-09 04:02:41.051969166 +0400
@@ -1,7 +1,6 @@
# Spring supplied CMake build file
Set(MINIZIP_FIND_QUIETLY TRUE)
-FIND_PACKAGE_STATIC(MiniZip)
If (MINIZIP_FOUND)
# Use the system supplied MiniZip library

View File

@ -0,0 +1,38 @@
--- tools/pr-downloader/src/lib/pugixml/pugixml.hpp.orig 2013-12-06 06:19:54.039431635 +0400
+++ tools/pr-downloader/src/lib/pugixml/pugixml.hpp 2013-12-06 06:24:02.124415606 +0400
@@ -17,32 +17,9 @@
#include "pugiconfig.hpp"
#ifndef PUGIXML_NO_STL
-namespace std
-{
- struct bidirectional_iterator_tag;
-
-#ifdef __SUNPRO_CC
- // Sun C++ compiler has a bug which forces template argument names in forward declarations to be the same as in actual definitions
- template <class _T> class allocator;
- template <class _charT> struct char_traits;
- template <class _charT, class _Traits> class basic_istream;
- template <class _charT, class _Traits> class basic_ostream;
- template <class _charT, class _Traits, class _Allocator> class basic_string;
-#else
- // Borland C++ compiler has a bug which forces template argument names in forward declarations to be the same as in actual definitions
- template <class _Ty> class allocator;
- template <class _Ty> struct char_traits;
- template <class _Elem, class _Traits> class basic_istream;
- template <class _Elem, class _Traits> class basic_ostream;
- template <class _Elem, class _Traits, class _Ax> class basic_string;
-#endif
-
- // Digital Mars compiler has a bug which requires a forward declaration for explicit instantiation (otherwise type selection is messed up later, producing link errors)
- // Also note that we have to declare char_traits as a class here, since it's defined that way
-#ifdef __DMC__
- template <> class char_traits<char>;
-#endif
-}
+# include <istream>
+# include <ostream>
+# include <string>
#endif
// Macro for deprecated features

View File

@ -0,0 +1,11 @@
--- tools/pr-downloader/src/lib/xmlrpc++/src/base64.h.orig 2013-03-26 03:58:49.000000000 +0400
+++ tools/pr-downloader/src/lib/xmlrpc++/src/base64.h 2013-11-09 14:42:21.013340982 +0400
@@ -13,6 +13,8 @@
# include <iterator>
#endif
+#include <ios>
+
static
int _base64Chars[]= {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',

View File

@ -1,16 +0,0 @@
--- tools/unitsync/unitsync.cpp.orig 2010-01-31 20:03:33.000000000 +0300
+++ tools/unitsync/unitsync.cpp 2010-02-04 16:13:38.000000000 +0300
@@ -259,8 +259,11 @@
EXPORT(int) Init(bool isServer, int id)
{
try {
- if (!logOutputInitialised)
- logOutput.SetFileName("unitsync.log");
+ if (!logOutputInitialised) {
+ string fname = getenv("HOME");
+ fname += "/.spring/unitsync.log";
+ logOutput.SetFileName(fname.c_str());
+ }
if (!configHandler)
ConfigHandler::Instantiate(); // use the default config file
FileSystemHandler::Initialize(false);

View File

@ -1,200 +1,19 @@
%%PR_DOWNLOADER%%bin/pr-downloader
bin/spring
bin/spring-dedicated
bin/spring-headless
bin/spring-multithreaded
%%PR_DOWNLOADER%%lib/libpr-downloader_shared.so
%%PR_DOWNLOADER%%lib/libpr-downloader_static.a
lib/libspringserver.so
lib/libunitsync.so
%%MANPAGES%%man/man6/spring-dedicated.6.gz
%%MANPAGES%%man/man6/spring-headless.6.gz
%%MANPAGES%%man/man6/spring-multithreaded.6.gz
%%MANPAGES%%man/man6/spring.6.gz
share/applications/spring.desktop
share/mime/packages/spring.xml
share/pixmaps/application-x-spring-demo.png
share/pixmaps/spring.png
%%DATADIR%%/AI/Interfaces/C/0.1/InterfaceInfo.lua
%%DATADIR%%/AI/Interfaces/C/0.1/libAIInterface.so
%%DATADIR%%/AI/Skirmish/AAI/0.9/AIInfo.lua
%%DATADIR%%/AI/Skirmish/AAI/0.9/AIOptions.lua
%%DATADIR%%/AI/Skirmish/AAI/0.9/FAQ.txt
%%DATADIR%%/AI/Skirmish/AAI/0.9/ReadMe.txt
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/general.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/help/example_general.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/help/example_mod.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/AA5.0project.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/AAIA10.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/BA.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/BOTA.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/BOTA_14.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/CA-BETA1.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/Expand_and_Exterminate_v_0.171.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/FF_1.21_S.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/KuroTA-v047.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/PURE0.51.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/S44Lyuban_v106.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/StarWars01.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/XTA.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/XTAPEV9585.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/gundam_1.1_epic.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/gundam_1.1_tiny.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod/tc.cfg
%%DATADIR%%/AI/Skirmish/AAI/0.9/libSkirmishAI.so
%%DATADIR%%/AI/Skirmish/CppTestAI/0.1/AIInfo.lua
%%DATADIR%%/AI/Skirmish/CppTestAI/0.1/AIOptions.lua
%%DATADIR%%/AI/Skirmish/CppTestAI/0.1/libSkirmishAI.so
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/AIInfo.lua
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/AIOptions.lua
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/BA-categorization-patch.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/BA-categorization.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/BA-config.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/BOTA-categorization.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/BOTA-config.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/NOTA-categorization.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/NOTA-config.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/SA-categorization.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/SA-config.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/XTA-categorization.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/XTA-config.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/ca-categorization.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/ca-config.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/ct-categorization.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/ct-config.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs/template-config.cfg
%%DATADIR%%/AI/Skirmish/E323AI/3.25.0/libSkirmishAI.so
%%DATADIR%%/AI/Skirmish/KAIK/0.13/AIInfo.lua
%%DATADIR%%/AI/Skirmish/KAIK/0.13/AIOptions.lua
%%DATADIR%%/AI/Skirmish/KAIK/0.13/libSkirmishAI.so
%%DATADIR%%/AI/Skirmish/NullAI/0.1/AIInfo.lua
%%DATADIR%%/AI/Skirmish/NullAI/0.1/AIOptions.lua
%%DATADIR%%/AI/Skirmish/NullAI/0.1/libSkirmishAI.so
%%DATADIR%%/AI/Skirmish/RAI/0.601/AIInfo.lua
%%DATADIR%%/AI/Skirmish/RAI/0.601/AIOptions.lua
%%DATADIR%%/AI/Skirmish/RAI/0.601/libSkirmishAI.so
%%DATADIR%%/LuaUI/CHANGELOG.txt
%%DATADIR%%/LuaUI/Config/README.txt
%%DATADIR%%/LuaUI/Fonts/FreeMonoBold_12.lua
%%DATADIR%%/LuaUI/Fonts/FreeMonoBold_12.png
%%DATADIR%%/LuaUI/Fonts/README
%%DATADIR%%/LuaUI/Headers/colors.h.lua
%%DATADIR%%/LuaUI/Headers/keysym.h.lua
%%DATADIR%%/LuaUI/Icons/chi.png
%%DATADIR%%/LuaUI/Icons/cross.png
%%DATADIR%%/LuaUI/Icons/diamond.png
%%DATADIR%%/LuaUI/Icons/e.png
%%DATADIR%%/LuaUI/Icons/hemi-down.png
%%DATADIR%%/LuaUI/Icons/hemi-up.png
%%DATADIR%%/LuaUI/Icons/hemi.png
%%DATADIR%%/LuaUI/Icons/hourglass-side.png
%%DATADIR%%/LuaUI/Icons/hourglass.png
%%DATADIR%%/LuaUI/Icons/m-down.png
%%DATADIR%%/LuaUI/Icons/m-up.png
%%DATADIR%%/LuaUI/Icons/m.png
%%DATADIR%%/LuaUI/Icons/sphere.png
%%DATADIR%%/LuaUI/Icons/square.png
%%DATADIR%%/LuaUI/Icons/square_+.png
%%DATADIR%%/LuaUI/Icons/square_x.png
%%DATADIR%%/LuaUI/Icons/star-dark.png
%%DATADIR%%/LuaUI/Icons/star.png
%%DATADIR%%/LuaUI/Icons/tri-down.png
%%DATADIR%%/LuaUI/Icons/tri-up.png
%%DATADIR%%/LuaUI/Icons/triangle-down.png
%%DATADIR%%/LuaUI/Icons/triangle-up.png
%%DATADIR%%/LuaUI/Icons/x.png
%%DATADIR%%/LuaUI/Images/flags25x15.png
%%DATADIR%%/LuaUI/Images/highlight_strip.png
%%DATADIR%%/LuaUI/Images/players.png
%%DATADIR%%/LuaUI/Models/colors.lua
%%DATADIR%%/LuaUI/Models/colors.mtl
%%DATADIR%%/LuaUI/Models/colors.obj
%%DATADIR%%/LuaUI/NEWS.txt
%%DATADIR%%/LuaUI/README.txt
%%DATADIR%%/LuaUI/Sounds/README.txt
%%DATADIR%%/LuaUI/Sounds/bounce.wav
%%DATADIR%%/LuaUI/Sounds/flag_grab.wav
%%DATADIR%%/LuaUI/Sounds/land.wav
%%DATADIR%%/LuaUI/Sounds/message_admin.wav
%%DATADIR%%/LuaUI/Sounds/message_private.wav
%%DATADIR%%/LuaUI/Sounds/message_team.wav
%%DATADIR%%/LuaUI/Sounds/pop.wav
%%DATADIR%%/LuaUI/Sounds/teamgrab.wav
%%DATADIR%%/LuaUI/Widgets/camera_shake.lua
%%DATADIR%%/LuaUI/Widgets/camera_smooth_move.lua
%%DATADIR%%/LuaUI/Widgets/gui_buildspacing.lua
%%DATADIR%%/LuaUI/Widgets/gui_comm_ends.lua
%%DATADIR%%/LuaUI/Widgets/gui_hilight_unit.lua
%%DATADIR%%/LuaUI/Widgets/gui_selbuttons.lua
%%DATADIR%%/LuaUI/Widgets/gui_team_platter.lua
%%DATADIR%%/LuaUI/Widgets/gui_xray_shader.lua
%%DATADIR%%/LuaUI/Widgets/headless_setup.lua
%%DATADIR%%/LuaUI/Widgets/ingame_lobby.example.lua
%%DATADIR%%/LuaUI/Widgets/minimap_relative.lua
%%DATADIR%%/LuaUI/Widgets/minimap_startbox.lua
%%DATADIR%%/LuaUI/Widgets/unit_factory_guard.lua
%%DATADIR%%/LuaUI/Widgets/unit_immobile_buider.lua
%%DATADIR%%/LuaUI/Widgets/unit_metal_maker.lua
%%DATADIR%%/LuaUI/Widgets/unit_stockpile.lua
%%DATADIR%%/LuaUI/actions.lua
%%DATADIR%%/LuaUI/callins.lua
%%DATADIR%%/LuaUI/ctrlpanel.txt
%%DATADIR%%/LuaUI/debug.lua
%%DATADIR%%/LuaUI/flags.lua
%%DATADIR%%/LuaUI/fonts.lua
%%DATADIR%%/LuaUI/layout.lua
%%DATADIR%%/LuaUI/loadmodel.lua
%%DATADIR%%/LuaUI/main.lua
%%DATADIR%%/LuaUI/savetable.lua
%%DATADIR%%/LuaUI/selector.lua
%%DATADIR%%/LuaUI/setupdefs.lua
%%DATADIR%%/LuaUI/system.lua
%%DATADIR%%/LuaUI/tweakmode.lua
%%DATADIR%%/LuaUI/utils.lua
%%DATADIR%%/LuaUI/widgets.lua
%%DATADIR%%/PALETTE.PAL
%%DATADIR%%/base/cursors.sdz
%%DATADIR%%/base/maphelper.sdz
%%DATADIR%%/base/spring/bitmaps.sdz
%%DATADIR%%/base/springcontent.sdz
%%DATADIR%%/cmdcolors.txt
%%DATADIR%%/ctrlpanel.txt
%%DATADIR%%/fonts/AUTHORS
%%DATADIR%%/fonts/COPYING
%%DATADIR%%/fonts/CREDITS
%%DATADIR%%/fonts/FreeSansBold.otf
%%DATADIR%%/fonts/README
%%DATADIR%%/luaui.lua
%%DATADIR%%/selectkeys.txt
%%DATADIR%%/springrc-template-headless.txt
%%DATADIR%%/teamcolors.lua
%%DATADIR%%/uikeys.txt
@dirrm %%DATADIR%%/fonts
@dirrm %%DATADIR%%/base/spring
@dirrm %%DATADIR%%/base
@dirrm %%DATADIR%%/LuaUI/Widgets
@dirrm %%DATADIR%%/LuaUI/Sounds
@dirrm %%DATADIR%%/LuaUI/Models
@dirrm %%DATADIR%%/LuaUI/Images
@dirrm %%DATADIR%%/LuaUI/Icons
@dirrm %%DATADIR%%/LuaUI/Headers
@dirrm %%DATADIR%%/LuaUI/Fonts
@dirrm %%DATADIR%%/LuaUI/Config
@dirrm %%DATADIR%%/LuaUI
@dirrm %%DATADIR%%/AI/Skirmish/RAI/0.601
@dirrm %%DATADIR%%/AI/Skirmish/RAI
@dirrm %%DATADIR%%/AI/Skirmish/NullAI/0.1
@dirrm %%DATADIR%%/AI/Skirmish/NullAI
@dirrm %%DATADIR%%/AI/Skirmish/KAIK/0.13
@dirrm %%DATADIR%%/AI/Skirmish/KAIK
@dirrm %%DATADIR%%/AI/Skirmish/E323AI/3.25.0/configs
@dirrm %%DATADIR%%/AI/Skirmish/E323AI/3.25.0
@dirrm %%DATADIR%%/AI/Skirmish/E323AI
@dirrm %%DATADIR%%/AI/Skirmish/CppTestAI/0.1
@dirrm %%DATADIR%%/AI/Skirmish/CppTestAI
@dirrm %%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/mod
@dirrm %%DATADIR%%/AI/Skirmish/AAI/0.9/cfg/help
@dirrm %%DATADIR%%/AI/Skirmish/AAI/0.9/cfg
@dirrm %%DATADIR%%/AI/Skirmish/AAI/0.9
@dirrm %%DATADIR%%/AI/Skirmish/AAI
@dirrm %%DATADIR%%/AI/Skirmish
@dirrm %%DATADIR%%/AI/Interfaces/C/0.1
@dirrm %%DATADIR%%/AI/Interfaces/C
@dirrm %%DATADIR%%/AI/Interfaces
@dirrm %%DATADIR%%/AI
@dirrm %%DATADIR%%
@dirrmtry share/mime/packages
@dirrmtry share/mime