aboutsummaryrefslogtreecommitdiff
path: root/games/0ad
diff options
context:
space:
mode:
authorGuido Falsi <madpilot@FreeBSD.org>2014-10-12 23:44:07 +0000
committerGuido Falsi <madpilot@FreeBSD.org>2014-10-12 23:44:07 +0000
commit59242427b1f2e65b8a48c6c1f41020a99a7d7f5c (patch)
tree9cb3d4f3b13cfb2ada3f19d654503ce7ed92b8b1 /games/0ad
parent1f02458bdd55b7fcd0f073b9a83fda2cd5fb6e09 (diff)
downloadports-59242427b1f2e65b8a48c6c1f41020a99a7d7f5c.tar.gz
ports-59242427b1f2e65b8a48c6c1f41020a99a7d7f5c.zip
Notes
Diffstat (limited to 'games/0ad')
-rw-r--r--games/0ad/Makefile35
-rw-r--r--games/0ad/distinfo8
-rw-r--r--games/0ad/files/patch-build-premake-premake4-build-gmake.bsd-Premake4.make20
-rw-r--r--games/0ad/files/patch-build-premake-premake4.lua44
-rw-r--r--games/0ad/files/patch-build-resources-0ad.sh7
-rw-r--r--games/0ad/files/patch-build__premake__extern_libs4.lua11
-rw-r--r--games/0ad/files/patch-build__premake__premake4.lua17
-rw-r--r--games/0ad/files/patch-build__workspaces__update-workspaces.sh13
-rw-r--r--games/0ad/files/patch-libraries-source-fcollada-src-FCollada-FUtils-FUStringBuilder.hpp45
-rw-r--r--games/0ad/files/patch-libraries__source__fcollada__src__FCollada__FUtils__FUStringBuilder.hpp157
-rw-r--r--games/0ad/files/patch-libraries__source__fcollada__src__Makefile11
-rw-r--r--games/0ad/files/patch-libraries__source__spidermonkey__build.sh (renamed from games/0ad/files/patch-libraries-source-spidermonkey-build.sh)8
-rw-r--r--games/0ad/files/patch-source-lib-lib.h10
-rw-r--r--games/0ad/files/patch-source-lib-sysdep-os-unix-x-x.cpp16
-rw-r--r--games/0ad/files/patch-source-simulation2-system_ParamNode.cpp13
-rw-r--r--games/0ad/files/patch-source-tools-atlas-AtlasObject-AtlasObjectJS.cpp11
-rw-r--r--games/0ad/pkg-plist6
17 files changed, 237 insertions, 195 deletions
diff --git a/games/0ad/Makefile b/games/0ad/Makefile
index 3638783fc438..7ee54b040244 100644
--- a/games/0ad/Makefile
+++ b/games/0ad/Makefile
@@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= 0ad
-PORTVERSION= 0.0.14
-PORTREVISION= 4
+PORTVERSION= 0.0.17
CATEGORIES= games
MASTER_SITES= SF/zero-ad/releases
DISTFILES= ${PORTNAME}-${PORTVERSION}-alpha-unix-build.tar.xz \
@@ -11,8 +10,7 @@ DISTFILES= ${PORTNAME}-${PORTVERSION}-alpha-unix-build.tar.xz \
MAINTAINER= madpilot@FreeBSD.org
COMMENT= Real-time strategy (RTS) game of ancient warfare
-BUILD_DEPENDS= bash:${PORTSDIR}/shells/bash \
- zip:${PORTSDIR}/archivers/zip \
+BUILD_DEPENDS= zip:${PORTSDIR}/archivers/zip \
cmake:${PORTSDIR}/devel/cmake
LIB_DEPENDS= libboost_thread.so:${PORTSDIR}/devel/boost-libs \
libexecinfo.so:${PORTSDIR}/devel/libexecinfo \
@@ -20,18 +18,24 @@ LIB_DEPENDS= libboost_thread.so:${PORTSDIR}/devel/boost-libs \
libogg.so:${PORTSDIR}/audio/libogg \
libvorbis.so:${PORTSDIR}/audio/libvorbis \
libcurl.so:${PORTSDIR}/ftp/curl \
- libgamin-1.so:${PORTSDIR}/devel/gamin
+ libgamin-1.so:${PORTSDIR}/devel/gamin \
+ libgloox.so:${PORTSDIR}/net-im/gloox \
+ libminiupnpc.so:${PORTSDIR}/net/miniupnpc \
+ libnspr4.so:${PORTSDIR}/devel/nspr \
+ libenet.so:${PORTSDIR}/net/enet
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}-alpha
BUILD_WRKSRC= ${WRKSRC}/build/workspaces/gcc
MAKE_ARGS= config=release
-USES= compiler:c++11-lang dos2unix gmake openal:al pkgconfig tar:xz
+USES= compiler:c++11-lang dos2unix gmake iconv openal:al \
+ pkgconfig tar:xz
USE_SDL= sdl
USE_GNOME= libxml2 gtk20
USE_GL= gl
+BUNDLE_LIBS= yes
DOS2UNIX_REGEX= .*\.([ch]p{0,2}|make)
-USE_WX= 2.8
+USE_WX= 2.8+
WX_COMPS= wx:lib
WX_UNICODE= yes
MAKE_ENV+= JOBS=${_MAKE_JOBS}
@@ -40,31 +44,30 @@ MANUAL_PACKAGE_BUILD= huge
PORTDATA= *
-.include <bsd.port.options.mk>
-
-.if ${OSVERSION} < 900014
-FAVORITE_COMPILER= gcc
-.endif
-
post-patch:
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
-e 's|%%CC%%|${CC}|' \
${WRKSRC}/build/premake/premake4.lua
@${REINPLACE_CMD} 's,^\(Exec=\)/usr/local,\1${PREFIX},' \
${WRKSRC}/build/resources/0ad.desktop
+ @${REINPLACE_CMD} 's|%%PREFIX%%|${PREFIX}|' \
+ ${WRKSRC}/build/resources/0ad.sh
pre-build:
- (cd ${WRKSRC}/build/workspaces && ${SETENV} ${MAKE_ENV} ./update-workspaces.sh --bindir=${PREFIX}/bin --datadir=${DATADIR} --libdir=${PREFIX}/lib/${PORTNAME})
+ (cd ${WRKSRC}/build/workspaces && ${SETENV} ${MAKE_ENV} ./update-workspaces.sh --with-system-miniupnpc --bindir=${PREFIX}/bin --datadir=${DATADIR} --libdir=${PREFIX}/lib/${PORTNAME})
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/binaries/system/pyrogenesis ${STAGEDIR}${PREFIX}/bin
${INSTALL_SCRIPT} ${WRKSRC}/build/resources/0ad.sh ${STAGEDIR}${PREFIX}/bin/0ad
${INSTALL_PROGRAM} ${WRKSRC}/binaries/system/ActorEditor ${STAGEDIR}${PREFIX}/bin
${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
- (cd ${WRKSRC}/binaries/system && ${INSTALL_LIB} libAtlasUI.so libCollada.so libenet.so.1 libmozjs185-ps-release.so.1.0 libnvcore.so libnvimage.so libnvmath.so libnvtt.so ${STAGEDIR}${PREFIX}/lib/${PORTNAME})
+ (cd ${WRKSRC}/binaries/system && ${INSTALL_LIB} libAtlasUI.so libCollada.so libmozjs24-ps-release.so libnvcore.so libnvimage.so libnvmath.so libnvtt.so ${STAGEDIR}${PREFIX}/lib/${PORTNAME})
${INSTALL_DATA} ${WRKSRC}/build/resources/0ad.desktop ${STAGEDIR}${PREFIX}/share/applications
${INSTALL_DATA} ${WRKSRC}/build/resources/0ad.png ${STAGEDIR}${PREFIX}/share/pixmaps
${MKDIR} ${STAGEDIR}${DATADIR}
- (cd ${WRKSRC}/binaries/data && ${COPYTREE_SHARE} "config mods tests tools" ${STAGEDIR}${DATADIR})
+ (cd ${WRKSRC}/binaries/data && ${COPYTREE_SHARE} "config l10n tests tools" ${STAGEDIR}${DATADIR})
+ ${MKDIR} ${STAGEDIR}${DATADIR}/mods/public ${STAGEDIR}${DATADIR}/mods/mod
+ ${TAR} xf ${WRKSRC}/binaries/data/mods/public/public.zip -C ${STAGEDIR}${DATADIR}/mods/public --no-same-permissions
+ ${TAR} xf ${WRKSRC}/binaries/data/mods/mod/mod.zip -C ${STAGEDIR}${DATADIR}/mods/mod --no-same-permissions
.include <bsd.port.mk>
diff --git a/games/0ad/distinfo b/games/0ad/distinfo
index 7674ad0b8d8e..f8a22065acc4 100644
--- a/games/0ad/distinfo
+++ b/games/0ad/distinfo
@@ -1,4 +1,4 @@
-SHA256 (0ad-0.0.14-alpha-unix-build.tar.xz) = 2034cc71043c970e6229080385b343b08fd5c0b2258372dc19de4c2057267a5c
-SIZE (0ad-0.0.14-alpha-unix-build.tar.xz) = 10172124
-SHA256 (0ad-0.0.14-alpha-unix-data.tar.xz) = e046531a55226a15784ce9c31df1d8e6723ad2cedd70a0abb63dc1721bf2a770
-SIZE (0ad-0.0.14-alpha-unix-data.tar.xz) = 450006708
+SHA256 (0ad-0.0.17-alpha-unix-build.tar.xz) = ef144d44fe8a8abd29a4642999a58a596b8f0d0e1f310065f5ce1dfbe29c3aeb
+SIZE (0ad-0.0.17-alpha-unix-build.tar.xz) = 19327284
+SHA256 (0ad-0.0.17-alpha-unix-data.tar.xz) = 6bf2234ef5043b14a3bbeda013fefed73ce2e564262f5e03b0801bfe671331d0
+SIZE (0ad-0.0.17-alpha-unix-data.tar.xz) = 561617008
diff --git a/games/0ad/files/patch-build-premake-premake4-build-gmake.bsd-Premake4.make b/games/0ad/files/patch-build-premake-premake4-build-gmake.bsd-Premake4.make
deleted file mode 100644
index 45d8a468a5c5..000000000000
--- a/games/0ad/files/patch-build-premake-premake4-build-gmake.bsd-Premake4.make
+++ /dev/null
@@ -1,20 +0,0 @@
---- build/premake/premake4/build/gmake.bsd/Premake4.make.orig 2012-09-13 04:29:58.196744551 +0200
-+++ build/premake/premake4/build/gmake.bsd/Premake4.make 2012-09-13 04:32:48.083760584 +0200
-@@ -24,7 +24,7 @@
- TARGETDIR = ../../bin/release
- TARGET = $(TARGETDIR)/premake4
- DEFINES += -DNDEBUG -DLUA_USE_POSIX -DLUA_USE_DLOPEN
-- INCLUDES += -I../../src/host/lua-5.1.4/src
-+ INCLUDES += -I../../src/host/lua-5.1.4/src -I$(LOCALBASE)/include/wx-2.8
- CPPFLAGS += -MMD -MP $(DEFINES) $(INCLUDES)
- CFLAGS += $(CPPFLAGS) -Wall -Os
- CXXFLAGS += $(CPPFLAGS) -Wall -Os
-@@ -46,7 +46,7 @@
- TARGETDIR = ../../bin/debug
- TARGET = $(TARGETDIR)/premake4
- DEFINES += -D_DEBUG -DLUA_USE_POSIX -DLUA_USE_DLOPEN
-- INCLUDES += -I../../src/host/lua-5.1.4/src
-+ INCLUDES += -I../../src/host/lua-5.1.4/src -I$(LOCALBASE)/include/wx-2.8
- CPPFLAGS += -MMD -MP $(DEFINES) $(INCLUDES)
- CFLAGS += $(CPPFLAGS) -Wall -g
- CXXFLAGS += $(CPPFLAGS) -Wall -g
diff --git a/games/0ad/files/patch-build-premake-premake4.lua b/games/0ad/files/patch-build-premake-premake4.lua
deleted file mode 100644
index 5bd59b07522c..000000000000
--- a/games/0ad/files/patch-build-premake-premake4.lua
+++ /dev/null
@@ -1,44 +0,0 @@
---- build/premake/premake4.lua.orig 2013-08-27 04:42:56.000000000 +0200
-+++ build/premake/premake4.lua 2013-09-17 18:31:17.300814455 +0200
-@@ -39,7 +39,7 @@
- if arch == "x86_64" or arch == "amd64" then
- arch = "amd64"
- else
-- os.execute("gcc -dumpmachine > .gccmachine.tmp")
-+ os.execute("%%CC%% -dumpmachine > .gccmachine.tmp")
- local f = io.open(".gccmachine.tmp", "r")
- local machine = f:read("*line")
- f:close()
-@@ -91,7 +91,7 @@
- -- do the test in this build script instead (which is kind of ugly - please fix if
- -- you have a better idea)
- if not _OPTIONS["icc"] then
-- os.execute("gcc -dumpversion > .gccver.tmp")
-+ os.execute("%%CC%% -dumpversion > .gccver.tmp")
- local f = io.open(".gccver.tmp", "r")
- major, dot, minor = f:read(1, 1, 1)
- f:close()
-@@ -138,7 +138,7 @@
-
- function project_set_build_flags()
-
-- flags { "Symbols", "NoEditAndContinue" }
-+ flags { "NoEditAndContinue" }
- if not _OPTIONS["icc"] and (os.is("windows") or not _OPTIONS["minimal-flags"]) then
- -- adds the -Wall compiler flag
- flags { "ExtraWarnings" } -- this causes far too many warnings/remarks on ICC
-@@ -356,11 +356,11 @@
- -- X11 includes may be installed in one of a gadzillion of three places
- -- Famous last words: "You can't include too much! ;-)"
- includedirs {
-- "/usr/X11R6/include/X11",
-- "/usr/X11R6/include",
-+ "%%LOCALBASE%%/include/X11",
-+ "%%LOCALBASE%%/include",
- "/usr/include/X11"
- }
-- libdirs { "/usr/X11R6/lib" }
-+ libdirs { "%%LOCALBASE%%/lib" }
- end
- end
-
diff --git a/games/0ad/files/patch-build-resources-0ad.sh b/games/0ad/files/patch-build-resources-0ad.sh
deleted file mode 100644
index 81bd3f0f30d8..000000000000
--- a/games/0ad/files/patch-build-resources-0ad.sh
+++ /dev/null
@@ -1,7 +0,0 @@
---- build/resources/0ad.sh.orig 2010-08-15 14:23:11.000000000 +0200
-+++ build/resources/0ad.sh 2012-05-10 15:17:57.136470711 +0200
-@@ -1,3 +1,3 @@
- #!/bin/sh
-
--/usr/bin/pyrogenesis "$@"
-+/usr/local/bin/pyrogenesis "$@"
diff --git a/games/0ad/files/patch-build__premake__extern_libs4.lua b/games/0ad/files/patch-build__premake__extern_libs4.lua
new file mode 100644
index 000000000000..59d76aaadc89
--- /dev/null
+++ b/games/0ad/files/patch-build__premake__extern_libs4.lua
@@ -0,0 +1,11 @@
+--- build/premake/extern_libs4.lua.orig 2014-09-24 10:05:27 UTC
++++ build/premake/extern_libs4.lua
+@@ -237,7 +237,7 @@
+ end
+ -- TODO: This actually applies to most libraries we use on BSDs, make this a global setting.
+ if os.is("bsd") then
+- includedirs { "/usr/local/include" }
++ includedirs { "%%LOCALBASE%%/include" }
+ end
+ end,
+ link_settings = function()
diff --git a/games/0ad/files/patch-build__premake__premake4.lua b/games/0ad/files/patch-build__premake__premake4.lua
new file mode 100644
index 000000000000..5ab3bdd4964f
--- /dev/null
+++ b/games/0ad/files/patch-build__premake__premake4.lua
@@ -0,0 +1,17 @@
+--- build/premake/premake4.lua.orig 2014-09-24 10:05:09 UTC
++++ build/premake/premake4.lua
+@@ -416,11 +416,11 @@
+ includedirs {
+ "/usr/X11R6/include/X11",
+ "/usr/X11R6/include",
+- "/usr/local/include/X11",
+- "/usr/local/include",
++ "%%LOCALBASE%%/include/X11",
++ "%%LOCALBASE%%/include",
+ "/usr/include/X11"
+ }
+- libdirs { "/usr/X11R6/lib" }
++ libdirs { "%%LOCALBASE%%/lib" }
+ end
+ end
+
diff --git a/games/0ad/files/patch-build__workspaces__update-workspaces.sh b/games/0ad/files/patch-build__workspaces__update-workspaces.sh
new file mode 100644
index 000000000000..311f65a0c84f
--- /dev/null
+++ b/games/0ad/files/patch-build__workspaces__update-workspaces.sh
@@ -0,0 +1,13 @@
+--- build/workspaces/update-workspaces.sh.orig 2014-09-20 19:02:24 UTC
++++ build/workspaces/update-workspaces.sh
+@@ -1,10 +1,5 @@
+ #!/bin/sh
+
+-if [ "$(id -u)" = "0" ]; then
+- echo "Running as root will mess up file permissions. Aborting ..." 1>&2
+- exit 1
+-fi
+-
+ die()
+ {
+ echo ERROR: $*
diff --git a/games/0ad/files/patch-libraries-source-fcollada-src-FCollada-FUtils-FUStringBuilder.hpp b/games/0ad/files/patch-libraries-source-fcollada-src-FCollada-FUtils-FUStringBuilder.hpp
deleted file mode 100644
index d01f7a08b497..000000000000
--- a/games/0ad/files/patch-libraries-source-fcollada-src-FCollada-FUtils-FUStringBuilder.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
---- libraries/source/fcollada/src/FCollada/FUtils/FUStringBuilder.hpp.orig 2013-04-03 00:21:34.395291619 +0200
-+++ libraries/source/fcollada/src/FCollada/FUtils/FUStringBuilder.hpp 2013-04-03 00:23:23.590274415 +0200
-@@ -18,6 +18,42 @@
- #include <float.h>
- #endif
-
-+#ifdef __FreeBSD__
-+// ecvt is not included in FreeBSD's stdlib
-+// http://forum.pellesc.de/index.php?PHPSESSID=0c4srgu3vrs19ali5459jehdh3&topic=2103.msg7797#msg7797
-+char *ecvt(double value, int ndigit, int *decpt, int *sign)
-+{
-+ static char buffer[348];
-+ static const int n = sizeof(buffer)/sizeof(buffer[0])-1;
-+ ptrdiff_t pd;
-+ int len;
-+ int zeros=0;
-+ if (ndigit > n) ndigit=n;
-+ while (value > -1.0 && value < 1.0 ) {
-+ value*=10.0;
-+ zeros++;
-+ }
-+ sprintf(buffer,"%.*f",DBL_DIG,value);
-+ len=strlen(buffer);
-+ if (buffer[0]=='-') {
-+ memmove(buffer, buffer+1, --len);
-+ buffer[len]='\0';
-+ *sign=1;
-+ }
-+ else *sign = 0;
-+ pd=strchr(buffer,'.')-buffer;
-+ memmove(buffer+pd,buffer+pd+1,--len-pd);
-+ buffer[len]='\0';
-+ *decpt=(int)pd-zeros;
-+ if (len >= ndigit) buffer[ndigit]='\0';
-+ else {
-+ memset(buffer+len,'0',ndigit-len);
-+ buffer[ndigit]='\0';
-+ }
-+ return buffer;
-+}
-+#endif
-+
- #ifdef WIN32
- #define ecvt _ecvt
- #endif // WIN32
diff --git a/games/0ad/files/patch-libraries__source__fcollada__src__FCollada__FUtils__FUStringBuilder.hpp b/games/0ad/files/patch-libraries__source__fcollada__src__FCollada__FUtils__FUStringBuilder.hpp
new file mode 100644
index 000000000000..602b6410648c
--- /dev/null
+++ b/games/0ad/files/patch-libraries__source__fcollada__src__FCollada__FUtils__FUStringBuilder.hpp
@@ -0,0 +1,157 @@
+--- libraries/source/fcollada/src/FCollada/FUtils/FUStringBuilder.hpp.orig 2014-09-24 10:30:15 UTC
++++ libraries/source/fcollada/src/FCollada/FUtils/FUStringBuilder.hpp
+@@ -26,63 +26,6 @@
+ #define SAFE_DELETE_ARRAY(ptr) if (ptr != NULL) { delete [] ptr; ptr = NULL; }
+ #endif
+
+-template <class Char, class FloatType>
+-void FloatToString(FloatType f, Char* sz)
+-{
+- Char* buffer = sz + 1;
+- static const int digitCount = 6;
+- int decimal, sign;
+-
+- // ecvt rounds the string for us: http://www.datafocus.com/docs/man3/ecvt.3.asp
+- char* end = ecvt(f, digitCount, &decimal, &sign);
+-
+- if (sign != 0) (*buffer++) = '-';
+- int count = digitCount;
+- if (decimal > digitCount)
+- {
+- // We use the scientific notation: P.MeX
+- (*buffer++) = (*end++); // P is one character.
+- (*buffer++) = '.';
+-
+- // Mantissa (cleaned for zeroes)
+- for (--count; count > 0; --count) if (end[count - 1] != '0') break;
+- for (int i = 0; i < count; ++i) (*buffer++) = (*end++);
+- if (buffer[-1] == '.') --buffer;
+-
+- // Exponent
+- (*buffer++) = 'e';
+- uint32 exponent = decimal - 1; // X
+- if (exponent >= 10) (*buffer++) = (Char) ('0' + (exponent / 10));
+- (*buffer++) = (Char) ('0' + (exponent % 10));
+- (*buffer) = 0;
+- return;
+- }
+- else if (decimal > 0)
+- {
+- // Simple number: A.B
+- for (int i = 0; i < decimal; ++i) (*buffer++) = (*end++);
+- if (decimal < digitCount) (*buffer++) = '.';
+- count = digitCount - decimal;
+- }
+- else if (decimal < -digitCount)
+- {
+- // What case is this?
+- decimal = count = 0;
+- }
+- else if (decimal < 0 || (decimal == 0 && *end != '0'))
+- {
+- // Tiny number: 0.Me-X
+- (*buffer++) = '0'; (*buffer++) = '.';
+- for (int i = 0; i < -decimal; ++i) (*buffer++) = '0';
+- count = digitCount + decimal;
+- }
+- for (; count > 0; --count) if (end[count - 1] != '0') break;
+- for (int i = 0; i < count; ++i) (*buffer++) = (*end++);
+- if (decimal == 0 && count == 0) (*buffer++) = '0';
+- if (buffer[-1] == '.') --buffer;
+- (*buffer) = 0;
+-}
+-
+ template <class Char>
+ FUStringBuilderT<Char>::FUStringBuilderT(const String& sz)
+ {
+@@ -234,53 +177,50 @@
+ template <class Char>
+ void FUStringBuilderT<Char>::append(float f)
+ {
+-#ifdef WIN32
+- // use <float.h> _isnan method to detect the 1.#IND00 NaN.
+- if (f != std::numeric_limits<float>::infinity() && f != -std::numeric_limits<float>::infinity() && f != std::numeric_limits<float>::quiet_NaN() && f != std::numeric_limits<float>::signaling_NaN() && !_isnan((double)f))
+-#else
+- if (f != std::numeric_limits<float>::infinity() && f != -std::numeric_limits<float>::infinity() && f != std::numeric_limits<float>::quiet_NaN() && f != std::numeric_limits<float>::signaling_NaN())
+-#endif
+- {
+- if (IsEquivalent(f, 0.0f, std::numeric_limits<float>::epsilon())) append((Char)'0');
+- else
+- {
+- Char sz[128];
+- FloatToString(f, sz);
+- append(sz + 1);
+- }
+- }
+- else if (f == std::numeric_limits<float>::infinity())
+- { append((Char)'I'); append((Char)'N'); append((Char)'F'); }
+- else if (f == -std::numeric_limits<float>::infinity())
+- { append((Char)'-'); append((Char)'I'); append((Char)'N'); append((Char)'F'); }
+- else
+- { append((Char)'N'); append((Char)'a'); append((Char)'N'); }
++ append((double)f);
+ }
+
+ template <class Char>
+ void FUStringBuilderT<Char>::append(double f)
+ {
+-#ifdef WIN32
+- // use <float.h> _isnan method to detect the .#IND00 NaN.
+- if (f != std::numeric_limits<float>::infinity() && f != -std::numeric_limits<float>::infinity() && f != std::numeric_limits<float>::quiet_NaN() && f != std::numeric_limits<float>::signaling_NaN() && !_isnan(f))
+-#else
+- if (f != std::numeric_limits<float>::infinity() && f != -std::numeric_limits<float>::infinity() && f != std::numeric_limits<float>::quiet_NaN() && f != std::numeric_limits<float>::signaling_NaN())
+-#endif
+- {
+- if (IsEquivalent(f, 0.0, std::numeric_limits<double>::epsilon())) append((Char)'0');
+- else
+- {
+- Char sz[128];
+- FloatToString(f, sz);
+- append(sz + 1);
+- }
++ if (f == -std::numeric_limits<double>::infinity()) {
++ append("-INF");
++ return;
++ } else if (f == std::numeric_limits<double>::infinity()) {
++ append("INF");
++ return;
++ } else if (f != f) {
++ append("NaN");
++ return;
++ } else if (-std::numeric_limits<double>::epsilon() < f && f < std::numeric_limits<double>::epsilon()) {
++ append("0.0E0");
++ return;
+ }
+- else if (f == std::numeric_limits<double>::infinity())
+- { append((Char)'I'); append((Char)'N'); append((Char)'F'); }
+- else if (f == -std::numeric_limits<double>::infinity())
+- { append((Char)'-'); append((Char)'I'); append((Char)'N'); append((Char)'F'); }
++
++ if (f < 0.0) {
++ f = -f;
++ append('-');
++ }
++
++ int e = 0;
++// e = floor(log10(f));
++// f = f / pow(10.0, e);
++
++ if (f < 1.0)
++ for (; f < 1.0; f *= 10.0)
++ e--;
+ else
+- { append((Char)'N'); append((Char)'a'); append((Char)'N'); }
++ for (; f >= 10.0; f /= 10.0)
++ e++;
++
++ char tmp[10];
++ sprintf(tmp, "%.6g", f);
++ append(tmp);
++ if (tmp[1] == 0) // only one digit, add missing part according canonical representation
++ append(".0");
++
++ sprintf(tmp, "E%d", e);
++ append(tmp);
+ }
+
+ template <class Char>
diff --git a/games/0ad/files/patch-libraries__source__fcollada__src__Makefile b/games/0ad/files/patch-libraries__source__fcollada__src__Makefile
new file mode 100644
index 000000000000..9fd151bb3e0b
--- /dev/null
+++ b/games/0ad/files/patch-libraries__source__fcollada__src__Makefile
@@ -0,0 +1,11 @@
+--- libraries/source/fcollada/src/Makefile.orig 2014-09-27 14:41:22 UTC
++++ libraries/source/fcollada/src/Makefile
+@@ -227,7 +227,7 @@
+ all: output/libFColladaSD.a output/libFColladaSR.a install
+
+ output_dirs:
+- bash -c 'mkdir -p output/{debug,release,test}/{FCollada/{FCDocument,FMath,FUtils,FColladaTest/{FCTestAssetManagement,FCTestExportImport,FCTestXRef}},FColladaPlugins/FArchiveXML}'
++ csh -c 'mkdir -p output/{debug,release,test}/{FCollada/{FCDocument,FMath,FUtils,FColladaTest/{FCTestAssetManagement,FCTestExportImport,FCTestXRef}},FColladaPlugins/FArchiveXML}'
+
+ test: FCollada/FColladaTest/ output/FColladaTest
+ ( cd FCollada/FColladaTest/ ; ../../output/FColladaTest )
diff --git a/games/0ad/files/patch-libraries-source-spidermonkey-build.sh b/games/0ad/files/patch-libraries__source__spidermonkey__build.sh
index 0462783d2d63..29210bee68c1 100644
--- a/games/0ad/files/patch-libraries-source-spidermonkey-build.sh
+++ b/games/0ad/files/patch-libraries__source__spidermonkey__build.sh
@@ -1,8 +1,8 @@
---- libraries/source/spidermonkey/build.sh.orig 2013-02-04 01:31:03.000000000 +0100
-+++ libraries/source/spidermonkey/build.sh 2013-04-03 00:34:16.221257333 +0200
-@@ -53,6 +53,14 @@
+--- libraries/source/spidermonkey/build.sh.orig 2014-09-24 08:29:20 UTC
++++ libraries/source/spidermonkey/build.sh
+@@ -66,6 +66,14 @@
- cd js-1.8.5/js/src
+ cd mozjs24/js/src
+cp jsnativestack.cpp jsnativestack.cpp.orig
+sed 's/# include <pthread_np.h>/#pragma GCC visibility push(default)\
diff --git a/games/0ad/files/patch-source-lib-lib.h b/games/0ad/files/patch-source-lib-lib.h
deleted file mode 100644
index f68e772a150d..000000000000
--- a/games/0ad/files/patch-source-lib-lib.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- source/lib/lib.h.orig 2013-09-17 20:41:12.887277235 +0200
-+++ source/lib/lib.h 2013-09-17 20:44:34.202282356 +0200
-@@ -63,6 +63,7 @@
- #include <cmath> // fabsf
- #include <limits> // numeric_limits
- #include <stdexcept> // out_of_range
-+#include <algorithm> // std::min, std::max
-
- template<typename T>
- T Clamp(T val, T min, T max)
diff --git a/games/0ad/files/patch-source-lib-sysdep-os-unix-x-x.cpp b/games/0ad/files/patch-source-lib-sysdep-os-unix-x-x.cpp
deleted file mode 100644
index 8ca964a6a19c..000000000000
--- a/games/0ad/files/patch-source-lib-sysdep-os-unix-x-x.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
---- source/lib/sysdep/os/unix/x/x.cpp.orig 2012-05-18 13:26:07.715192771 +0200
-+++ source/lib/sysdep/os/unix/x/x.cpp 2012-05-18 13:26:35.139193906 +0200
-@@ -40,10 +40,10 @@
-
- #define Cursor X__Cursor
-
--#include <Xlib.h>
-+#include <X11/Xlib.h>
- #include <stdlib.h>
--#include <Xatom.h>
--#include <Xcursor/Xcursor.h>
-+#include <X11/Xatom.h>
-+#include <X11/Xcursor/Xcursor.h>
-
- #include "SDL.h"
- #include "SDL_syswm.h"
diff --git a/games/0ad/files/patch-source-simulation2-system_ParamNode.cpp b/games/0ad/files/patch-source-simulation2-system_ParamNode.cpp
deleted file mode 100644
index aafbb94c4d30..000000000000
--- a/games/0ad/files/patch-source-simulation2-system_ParamNode.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
---- source/simulation2/system/ParamNode.cpp.orig 2013-09-26 18:21:33.000000000 +0200
-+++ source/simulation2/system/ParamNode.cpp 2013-09-26 18:22:57.000000000 +0200
-@@ -37,6 +37,10 @@
- #include <boost/algorithm/string.hpp>
- #include <boost/algorithm/string/join.hpp> // this isn't in string.hpp in old Boosts
-
-+/* we need to force the instantiation of the wchar_t specialization of std::basic_string's empty()
-+ * method in order to get a reference to it through std::mem_fun_ref on lines 122 and 123 */
-+template bool std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::empty() const;
-+
- static CParamNode g_NullNode(false);
-
- CParamNode::CParamNode(bool isOk) :
diff --git a/games/0ad/files/patch-source-tools-atlas-AtlasObject-AtlasObjectJS.cpp b/games/0ad/files/patch-source-tools-atlas-AtlasObject-AtlasObjectJS.cpp
deleted file mode 100644
index fed2ce4707be..000000000000
--- a/games/0ad/files/patch-source-tools-atlas-AtlasObject-AtlasObjectJS.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- source/tools/atlas/AtlasObject/AtlasObjectJS.cpp.orig 2012-05-21 22:49:25.624250443 +0200
-+++ source/tools/atlas/AtlasObject/AtlasObjectJS.cpp 2012-05-21 22:49:28.429250717 +0200
-@@ -24,7 +24,7 @@
- # pragma warning(disable:4996) // deprecated CRT
- #endif
-
--#include "wx/log.h"
-+#include "wx-2.8/wx/log.h"
-
- #include <sstream>
-
diff --git a/games/0ad/pkg-plist b/games/0ad/pkg-plist
index bc53ec4d6c17..b09f4cdb4d1f 100644
--- a/games/0ad/pkg-plist
+++ b/games/0ad/pkg-plist
@@ -3,14 +3,10 @@ bin/0ad
bin/ActorEditor
lib/0ad/libAtlasUI.so
lib/0ad/libCollada.so
-lib/0ad/libenet.so.1
-lib/0ad/libmozjs185-ps-release.so.1.0
+lib/0ad/libmozjs24-ps-release.so
lib/0ad/libnvcore.so
lib/0ad/libnvimage.so
lib/0ad/libnvmath.so
lib/0ad/libnvtt.so
share/applications/0ad.desktop
share/pixmaps/0ad.png
-@exec mkdir -p %D/%%DATADIR%%/mods/_test.minimal/art/meshes
-@exec mkdir -p %D/%%DATADIR%%/mods/_test.minimal/art/actors
-@dirrm lib/0ad