games/0ad: Update to 0.27.0
- Remove upstreamed patches - This version allows using vanilla spidermonkey provided from system This update disables "GPU skinning" by default because it causes crashes. This is being investigated upstream [1] [1] https://gitea.wildfiregames.com/0ad/0ad/issues/7598
This commit is contained in:
parent
d27074d2c8
commit
a95cde2a7a
@ -1,11 +1,9 @@
|
||||
PORTNAME= 0ad
|
||||
PORTVERSION= 0.0.26
|
||||
PORTREVISION= 36
|
||||
DISTVERSION= 0.27.0
|
||||
CATEGORIES= games
|
||||
MASTER_SITES= http://releases.wildfiregames.com/ \
|
||||
SF/zero-ad/releases
|
||||
DISTFILES= ${PORTNAME}-${PORTVERSION}-alpha-unix-build.tar.xz \
|
||||
${PORTNAME}-${PORTVERSION}-alpha-unix-data.tar.xz
|
||||
MASTER_SITES= https://releases.wildfiregames.com/
|
||||
DISTFILES= ${PORTNAME}-${DISTVERSION}-unix-build.tar.xz \
|
||||
${PORTNAME}-${DISTVERSION}-unix-data.tar.xz
|
||||
|
||||
MAINTAINER= madpilot@FreeBSD.org
|
||||
COMMENT= Real-time strategy (RTS) game of ancient warfare
|
||||
@ -29,7 +27,8 @@ LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs \
|
||||
libminiupnpc.so:net/miniupnpc \
|
||||
libenet.so:net/enet \
|
||||
libsodium.so:security/libsodium \
|
||||
libfmt.so:devel/libfmt
|
||||
libfmt.so:devel/libfmt \
|
||||
libmozjs-115.so:lang/spidermonkey115
|
||||
|
||||
USES= compiler:c++11-lib desktop-file-utils dos2unix gmake gnome \
|
||||
iconv openal:al perl5 pkgconfig python:3.9,build sdl tar:xz \
|
||||
@ -40,7 +39,7 @@ USE_SDL= sdl2
|
||||
USE_XORG= x11 xcursor
|
||||
USE_PERL5= build
|
||||
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}-alpha
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
|
||||
BUILD_WRKSRC= ${WRKSRC}/build/workspaces/gcc
|
||||
MAKE_ARGS= config=release verbose=1
|
||||
CPPFLAGS+= -DU_USING_ICU_NAMESPACE=1
|
||||
@ -57,25 +56,29 @@ PORTDATA= *
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
post-extract:
|
||||
@(cd ${WRKSRC}/libraries/source/nvtt && ${TAR} xf nvtt-28209.tar.xz)
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
|
||||
-e 's|%%CC%%|${CC}|' \
|
||||
${WRKSRC}/build/premake/premake5.lua ${WRKSRC}/build/premake/extern_libs5.lua
|
||||
${WRKSRC}/build/premake/extern_libs5.lua
|
||||
.if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == gcc
|
||||
@${REINPLACE_CMD} -e '1055,1251s/-rdynamic/-lssp_nonshared &/' \
|
||||
-e '1441s/"execinfo",/& "ssp_nonshared",/' \
|
||||
@${REINPLACE_CMD} -e '1130,1530s/-rdynamic/-lssp_nonshared &/' \
|
||||
-e '1112,1502s/"execinfo",/& "ssp_nonshared",/' \
|
||||
${WRKSRC}/build/premake/premake5.lua
|
||||
.endif
|
||||
|
||||
pre-build:
|
||||
(cd ${WRKSRC}/build/workspaces && ${SETENV} ${MAKE_ENV} ./update-workspaces.sh --bindir=${PREFIX}/bin --datadir=${DATADIR} --libdir=${PREFIX}/lib/${PORTNAME})
|
||||
(cd ${WRKSRC}/libraries && ${SETENV} ${MAKE_ENV} ./build-source-libs.sh --with-system-mozjs -j ${_MAKE_JOBS})
|
||||
(cd ${WRKSRC}/build/workspaces && ${SETENV} ${MAKE_ENV} ./update-workspaces.sh --with-system-mozjs --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 libmozjs78-ps-release.so libnvcore.so libnvimage.so libnvmath.so libnvtt.so ${STAGEDIR}${PREFIX}/lib/${PORTNAME})
|
||||
(cd ${WRKSRC}/binaries/system && ${INSTALL_LIB} libAtlasUI.so libCollada.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}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
TIMESTAMP = 1664037479
|
||||
SHA256 (0ad-0.0.26-alpha-unix-build.tar.xz) = 2e1c6df7e3312e77c5f82788664cffc3a78d3bf60606c00039275e1d13c0ee4b
|
||||
SIZE (0ad-0.0.26-alpha-unix-build.tar.xz) = 75599800
|
||||
SHA256 (0ad-0.0.26-alpha-unix-data.tar.xz) = b200e48558f882807910e3c686567b6a396248d9d418044ecfde090b05772d7d
|
||||
SIZE (0ad-0.0.26-alpha-unix-data.tar.xz) = 1351511480
|
||||
TIMESTAMP = 1738253090
|
||||
SHA256 (0ad-0.27.0-unix-build.tar.xz) = aa94857009750d5f61dbf016bc150e3bdcbdb3acdfc8ad20b73ab8b43e9a1ba6
|
||||
SIZE (0ad-0.27.0-unix-build.tar.xz) = 152170976
|
||||
SHA256 (0ad-0.27.0-unix-data.tar.xz) = 3e48855ab8e1ef81270338462c8270b015213f14f5e054aab92ad74d5ea59dea
|
||||
SIZE (0ad-0.27.0-unix-data.tar.xz) = 1367701984
|
||||
|
||||
11
games/0ad/files/patch-binaries_data_config_default.cfg
Normal file
11
games/0ad/files/patch-binaries_data_config_default.cfg
Normal file
@ -0,0 +1,11 @@
|
||||
--- binaries/data/config/default.cfg.orig 2025-01-28 19:44:19 UTC
|
||||
+++ binaries/data/config/default.cfg
|
||||
@@ -154,7 +154,7 @@ textures.maxanisotropy = 2
|
||||
textures.maxanisotropy = 2
|
||||
|
||||
; GPU skinning via compute shaders, requires up-to-date drivers
|
||||
-gpuskinning = true
|
||||
+gpuskinning = false
|
||||
|
||||
; Use smooth LOS interpolation
|
||||
smoothlos = true
|
||||
@ -1,49 +0,0 @@
|
||||
diff --git a/source/graphics/TextureManager.cpp b/source/graphics/TextureManager.cpp
|
||||
index ec68b15989..9cfa615997 100644
|
||||
--- source/graphics/TextureManager.cpp
|
||||
+++ source/graphics/TextureManager.cpp
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* Copyright (C) 2023 Wildfire Games.
|
||||
+/* Copyright (C) 2024 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@@ -806,7 +806,7 @@ public:
|
||||
files.push_back(f);
|
||||
p = p / GetWstringFromWpath(*it);
|
||||
}
|
||||
- return m_TextureConverter.ComputeSettings(GetWstringFromWpath(srcPath.leaf()), files);
|
||||
+ return m_TextureConverter.ComputeSettings(GetWstringFromWpath(srcPath.filename()), files);
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/source/lib/file/file_system.cpp b/source/lib/file/file_system.cpp
|
||||
index 1db6dc65d3..2b1fdba056 100644
|
||||
--- source/lib/file/file_system.cpp
|
||||
+++ source/lib/file/file_system.cpp
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* Copyright (C) 2023 Wildfire Games.
|
||||
+/* Copyright (C) 2024 Wildfire Games.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "lib/sysdep/filesystem.h"
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
+#include <boost/version.hpp>
|
||||
#include <memory>
|
||||
|
||||
bool DirectoryExists(const OsPath& path)
|
||||
@@ -229,7 +230,11 @@ Status CopyFile(const OsPath& path, const OsPath& newPath, bool override_if_exis
|
||||
try
|
||||
{
|
||||
if(override_if_exists)
|
||||
+#if BOOST_VERSION >=107400
|
||||
+ fs::copy_file(fs::path(path.string()), fs::path(newPath.string()), boost::filesystem::copy_options::overwrite_existing);
|
||||
+#else
|
||||
fs::copy_file(fs::path(path.string()), fs::path(newPath.string()), boost::filesystem::copy_option::overwrite_if_exists);
|
||||
+#endif
|
||||
else
|
||||
fs::copy_file(fs::path(path.string()), fs::path(newPath.string()));
|
||||
}
|
||||
@ -1,11 +1,14 @@
|
||||
--- build/premake/extern_libs5.lua.orig 2021-02-06 00:32:37 UTC
|
||||
--- build/premake/extern_libs5.lua.orig 2025-01-28 19:57:28 UTC
|
||||
+++ build/premake/extern_libs5.lua
|
||||
@@ -193,7 +193,7 @@ extern_lib_defs = {
|
||||
end
|
||||
@@ -232,9 +232,9 @@ extern_lib_defs = {
|
||||
-- TODO: This actually applies to most libraries we use on BSDs, make this a global setting.
|
||||
if os.istarget("bsd") then
|
||||
- sysincludedirs { "/usr/local/include" }
|
||||
+ sysincludedirs { "%%LOCALBASE%%/include" }
|
||||
if externalincludedirs then
|
||||
- externalincludedirs { "/usr/local/include" }
|
||||
+ externalincludedirs { "%%LOCALBASE%%/include" }
|
||||
else
|
||||
- sysincludedirs { "/usr/local/include" }
|
||||
+ sysincludedirs { "%%LOCALBASE%%/include" }
|
||||
end
|
||||
end
|
||||
end,
|
||||
link_settings = function()
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- build/premake/premake5.lua.orig 2022-09-23 19:16:45 UTC
|
||||
--- build/premake/premake5.lua.orig 2025-01-28 19:57:28 UTC
|
||||
+++ build/premake/premake5.lua
|
||||
@@ -76,14 +76,10 @@ else
|
||||
@@ -85,14 +85,10 @@ else
|
||||
end
|
||||
else
|
||||
local machine = "x86_64"
|
||||
@ -17,14 +17,5 @@
|
||||
+ machine = f:read("*line")
|
||||
+ f:close()
|
||||
-- Special handling on mac os where xcode needs special flags.
|
||||
-- TODO: We should look into "universal" macOS compilation.
|
||||
if os.istarget("macosx") then
|
||||
if string.find(machine, "arm64") then
|
||||
@@ -380,7 +376,7 @@ function project_set_build_flags()
|
||||
|
||||
if os.istarget("linux") or os.istarget("bsd") then
|
||||
if _OPTIONS["prefer-local-libs"] then
|
||||
- libdirs { "/usr/local/lib" }
|
||||
+ libdirs { "%%LOCALBASE%%/lib" }
|
||||
end
|
||||
|
||||
-- To use our local shared libraries, they need to be found in the
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
--- build/workspaces/update-workspaces.sh.orig 2014-09-20 19:02:24 UTC
|
||||
--- build/workspaces/update-workspaces.sh.orig 2025-01-28 19:57:28 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
|
||||
- echo "Running as root will mess up file permissions. Aborting ..." 1>&2
|
||||
- exit 1
|
||||
-fi
|
||||
-
|
||||
die()
|
||||
{
|
||||
echo ERROR: $*
|
||||
echo ERROR: "$*"
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- libraries/source/nvtt/src/src/nvcore/Debug.cpp.orig 2021-02-28 23:45:14 UTC
|
||||
+++ libraries/source/nvtt/src/src/nvcore/Debug.cpp
|
||||
@@ -628,6 +628,9 @@ namespace
|
||||
--- libraries/source/nvtt/nvtt-28209/src/src/nvcore/Debug.cpp.orig 2025-01-30 19:39:40 UTC
|
||||
+++ libraries/source/nvtt/nvtt-28209/src/src/nvcore/Debug.cpp
|
||||
@@ -631,6 +631,9 @@ namespace
|
||||
# elif NV_CPU_X86
|
||||
ucontext_t * ucp = (ucontext_t *)secret;
|
||||
return (void *)ucp->uc_mcontext.mc_eip;
|
||||
@ -1,14 +0,0 @@
|
||||
--- libraries/source/spidermonkey/FixExclusiveDataClang19.diff.orig 2024-10-26 16:30:56 UTC
|
||||
+++ libraries/source/spidermonkey/FixExclusiveDataClang19.diff
|
||||
@@ -0,0 +1,11 @@
|
||||
+--- a/js/src/threading/ExclusiveData.h.orig 2020-11-28 17:33:56.000000000 +0100
|
||||
++++ b/js/src/threading/ExclusiveData.h
|
||||
+@@ -110,7 +110,7 @@
|
||||
+ : lock_(id), value_(std::forward<Args>(args)...) {}
|
||||
+
|
||||
+ ExclusiveData(ExclusiveData&& rhs)
|
||||
+- : lock_(std::move(rhs.lock)), value_(std::move(rhs.value_)) {
|
||||
++ : lock_(std::move(rhs.lock())), value_(std::move(rhs.value_)) {
|
||||
+ MOZ_ASSERT(&rhs != this, "self-move disallowed!");
|
||||
+ }
|
||||
+
|
||||
@ -1,17 +0,0 @@
|
||||
--- libraries/source/spidermonkey/FixFreeBSDClang16.diff.orig 2023-06-28 15:31:44 UTC
|
||||
+++ libraries/source/spidermonkey/FixFreeBSDClang16.diff
|
||||
@@ -0,0 +1,14 @@
|
||||
+diff -ruN a/build/moz.configure/flags.configure b/build/moz.configure/flags.configure
|
||||
+--- a/build/moz.configure/flags.configure 2020-11-28 17:33:01.000000000 +0100
|
||||
++++ b/build/moz.configure/flags.configure
|
||||
+@@ -56,10 +56,5 @@
|
||||
+ # Temporary until https://bugs.llvm.org/show_bug.cgi?id=45835 gets a
|
||||
+ # real fix: clang 10 hangs with some ubsan-inserted code constructs.
|
||||
+ return None
|
||||
+- if enabled and compiler.version >= '9.0.0':
|
||||
+- if compiler.type == 'clang':
|
||||
+- return ['-fexperimental-new-pass-manager']
|
||||
+- elif compiler.type == 'clang-cl':
|
||||
+- return ['-Xclang', '-fexperimental-new-pass-manager']
|
||||
+
|
||||
+ set_config('MOZ_NEW_PASS_MANAGER_FLAGS', new_pass_manager_flags)
|
||||
@ -1,11 +0,0 @@
|
||||
--- libraries/source/spidermonkey/patch.sh.orig 2022-09-23 20:36:41 UTC
|
||||
+++ libraries/source/spidermonkey/patch.sh
|
||||
@@ -84,4 +84,8 @@ then
|
||||
patch -p1 < ../FixFreeBSDCargoChecksum.diff
|
||||
# https://svnweb.freebsd.org/ports/head/lang/spidermonkey78/files/patch-third__party_rust_cc_src_lib.rs?view=log
|
||||
patch -p1 < ../FixFreeBSDRustThirdPartyOSDetection.diff
|
||||
+ # Remove now unknown compiler option causing problems
|
||||
+ patch -p1 < ../FixFreeBSDClang16.diff
|
||||
+ # Fix with clang19
|
||||
+ patch -p1 < ../FixExclusiveDataClang19.diff
|
||||
fi
|
||||
@ -1,6 +1,6 @@
|
||||
--- source/lib/allocators/page_aligned.cpp.orig 2017-07-28 19:57:26 UTC
|
||||
--- source/lib/allocators/page_aligned.cpp.orig 2025-01-28 19:58:03 UTC
|
||||
+++ source/lib/allocators/page_aligned.cpp
|
||||
@@ -49,7 +49,7 @@ static const int mmap_flags = MAP_PRIVATE|MAP_ANONYMOU
|
||||
@@ -48,7 +48,7 @@ Status mem_Reserve(size_t size, u8** pp)
|
||||
Status mem_Reserve(size_t size, u8** pp)
|
||||
{
|
||||
errno = 0;
|
||||
@ -9,7 +9,7 @@
|
||||
*pp = (u8*)ret;
|
||||
return StatusFromMap(ret);
|
||||
}
|
||||
@@ -76,7 +76,7 @@ Status mem_Commit(u8* p, size_t size, int prot)
|
||||
@@ -75,7 +75,7 @@ Status mem_Decommit(u8* p, size_t size)
|
||||
Status mem_Decommit(u8* p, size_t size)
|
||||
{
|
||||
errno = 0;
|
||||
|
||||
@ -1,18 +0,0 @@
|
||||
--- source/network/NetMessage.cpp.orig 2023-09-17 08:35:54 UTC
|
||||
+++ source/network/NetMessage.cpp
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* Copyright (C) 2017 Wildfire Games.
|
||||
+/* Copyright (C) 2023 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@@ -216,7 +216,8 @@ CNetMessage* CNetMessageFactory::CreateMessage(const v
|
||||
break;
|
||||
|
||||
default:
|
||||
- LOGERROR("CNetMessageFactory::CreateMessage(): Unknown message type '%d' received", header.GetType());
|
||||
+ LOGERROR("CNetMessageFactory::CreateMessage(): Unknown message type '%d' received",
|
||||
+ static_cast<int>(header.GetType()));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
--- source/network/NetServer.cpp.orig 2022-09-23 19:17:14 UTC
|
||||
+++ source/network/NetServer.cpp
|
||||
@@ -302,7 +302,11 @@ void CNetServerWorker::SetupUPnP()
|
||||
else if ((devlist = upnpDiscover(10000, 0, 0, 0, 0, 0)) != NULL)
|
||||
#endif
|
||||
{
|
||||
+#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 18
|
||||
+ ret = UPNP_GetValidIGD(devlist, &urls, &data, internalIPAddress, sizeof(internalIPAddress), NULL, 0);
|
||||
+#else
|
||||
ret = UPNP_GetValidIGD(devlist, &urls, &data, internalIPAddress, sizeof(internalIPAddress));
|
||||
+#endif
|
||||
allocatedUrls = ret != 0; // urls is allocated on non-zero return values
|
||||
}
|
||||
else
|
||||
@@ -321,9 +325,18 @@ void CNetServerWorker::SetupUPnP()
|
||||
LOGMESSAGE("Net server: found valid IGD = %s", urls.controlURL);
|
||||
break;
|
||||
case 2:
|
||||
+#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 18
|
||||
+ LOGMESSAGE("Net server: found a valid IGD with a reserved address = %s, will try to continue anyway", urls.controlURL);
|
||||
+ break;
|
||||
+ case 3:
|
||||
LOGMESSAGE("Net server: found a valid, not connected IGD = %s, will try to continue anyway", urls.controlURL);
|
||||
break;
|
||||
+ case 4:
|
||||
+#else
|
||||
+ LOGMESSAGE("Net server: found a valid, not connected IGD = %s, will try to continue anyway", urls.controlURL);
|
||||
+ break;
|
||||
case 3:
|
||||
+#endif
|
||||
LOGMESSAGE("Net server: found a UPnP device unrecognized as IGD = %s, will try to continue anyway", urls.controlURL);
|
||||
break;
|
||||
default:
|
||||
@ -1,11 +0,0 @@
|
||||
--- source/simulation2/serialization/BinarySerializer.cpp.orig 2022-08-21 12:45:40 UTC
|
||||
+++ source/simulation2/serialization/BinarySerializer.cpp
|
||||
@@ -52,7 +52,7 @@ static u8 GetArrayType(js::Scalar::Type arrayType)
|
||||
case js::Scalar::Uint8Clamped:
|
||||
return SCRIPT_TYPED_ARRAY_UINT8_CLAMPED;
|
||||
default:
|
||||
- LOGERROR("Cannot serialize unrecognized typed array view: %d", arrayType);
|
||||
+ LOGERROR("Cannot serialize unrecognized typed array view: %d", static_cast<int>(arrayType));
|
||||
throw PSERROR_Serialize_InvalidScriptValue();
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,6 @@ bin/0ad
|
||||
bin/ActorEditor
|
||||
lib/0ad/libAtlasUI.so
|
||||
lib/0ad/libCollada.so
|
||||
lib/0ad/libmozjs78-ps-release.so
|
||||
lib/0ad/libnvcore.so
|
||||
lib/0ad/libnvimage.so
|
||||
lib/0ad/libnvmath.so
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user