From 77cd3995289bcb6030adcf9e036b784c55161bdb Mon Sep 17 00:00:00 2001 From: Helmut Pozimski Date: Mon, 1 Mar 2021 12:29:56 +0100 Subject: [PATCH 1/2] 0ad: update to 0.0.24. --- srcpkgs/0ad/patches/musl.patch | 11 - srcpkgs/0ad/patches/ppc-musl.patch | 17 +- srcpkgs/0ad/patches/ppc64-spidermonkey.patch | 43 ---- srcpkgs/0ad/patches/ppc64.patch | 217 +++--------------- .../0ad/patches/remove-macos-include.patch | 11 + srcpkgs/0ad/patches/template-misuse.patch | 43 ---- srcpkgs/0ad/template | 17 +- 7 files changed, 64 insertions(+), 295 deletions(-) delete mode 100644 srcpkgs/0ad/patches/ppc64-spidermonkey.patch create mode 100644 srcpkgs/0ad/patches/remove-macos-include.patch delete mode 100644 srcpkgs/0ad/patches/template-misuse.patch diff --git a/srcpkgs/0ad/patches/musl.patch b/srcpkgs/0ad/patches/musl.patch index 59a59f9d2ec..768ebc01932 100644 --- a/srcpkgs/0ad/patches/musl.patch +++ b/srcpkgs/0ad/patches/musl.patch @@ -1,14 +1,3 @@ ---- libraries/source/nvtt/src/src/nvmath/nvmath.h.orig 2018-06-16 16:01:48.511540946 +0200 -+++ libraries/source/nvtt/src/src/nvmath/nvmath.h 2018-06-16 16:02:29.935000183 +0200 -@@ -130,7 +130,7 @@ - { - #if NV_OS_WIN32 - return _isnan(f) != 0; --#elif NV_OS_DARWIN || NV_OS_FREEBSD || NV_OS_OPENBSD -+#elif NV_OS_DARWIN || NV_OS_FREEBSD || NV_OS_OPENBSD || !defined(__GLIBC__) - return isnan(f); - #elif NV_OS_LINUX - return isnanf(f); --- source/lib/sysdep/os/linux/ldbg.cpp.orig 2018-06-16 16:27:55.639277094 +0200 +++ source/lib/sysdep/os/linux/ldbg.cpp 2018-06-16 16:28:17.342014019 +0200 @@ -33,7 +33,7 @@ diff --git a/srcpkgs/0ad/patches/ppc-musl.patch b/srcpkgs/0ad/patches/ppc-musl.patch index 388943badb1..a10b97af3aa 100644 --- a/srcpkgs/0ad/patches/ppc-musl.patch +++ b/srcpkgs/0ad/patches/ppc-musl.patch @@ -1,15 +1,14 @@ -On musl this is necessary to get full definition of pt_regs. - ---- libraries/source/nvtt/src/src/nvcore/Debug.cpp -+++ libraries/source/nvtt/src/src/nvcore/Debug.cpp -@@ -27,6 +27,10 @@ - # include +--- libraries/source/nvtt/src/src/nvcore/Debug.cpp 2021-02-27 11:38:49.764811556 +0100 ++++ libraries/source/nvtt/src/src/nvcore/Debug.cpp 2021-02-27 11:39:48.919032920 +0100 +@@ -40,6 +40,11 @@ + # include #endif +#if NV_OS_LINUX -+# include // struct pt_regs ++# include // struct pt_regs +#endif + - #if NV_OS_LINUX || NV_OS_DARWIN || NV_OS_FREEBSD || NV_OS_OPENBSD - # include // getpid ++ + #if NV_OS_UNIX + # include // getpid #endif diff --git a/srcpkgs/0ad/patches/ppc64-spidermonkey.patch b/srcpkgs/0ad/patches/ppc64-spidermonkey.patch deleted file mode 100644 index 948d1c66033..00000000000 --- a/srcpkgs/0ad/patches/ppc64-spidermonkey.patch +++ /dev/null @@ -1,43 +0,0 @@ ---- libraries/source/spidermonkey/patch.sh -+++ libraries/source/spidermonkey/patch.sh -@@ -53,3 +53,4 @@ patch -p1 < ../FixTracelogger.diff - # Based on: https://svnweb.freebsd.org/ports/head/sysutils/py-psutil121/files/patch-_psutil_bsd.c?revision=436575&view=markup - # Related: https://bugzilla.mozilla.org/show_bug.cgi?id=1238983 - patch -p0 < ../FixpsutilFreeBSD.diff -+patch -p0 < ../ppc64.diff ---- /dev/null -+++ libraries/source/spidermonkey/ppc64.diff -@@ -0,0 +1,33 @@ -+--- js/src/jit/CodeGenerator.cpp -++++ js/src/jit/CodeGenerator.cpp -+@@ -3464,12 +3464,12 @@ CodeGenerator::visitCallDirectEvalV(LCallDirectEvalV* lir) -+ callVM(DirectEvalValueInfo, lir); -+ } -+ -+-// Registers safe for use before generatePrologue(). -+-static const uint32_t EntryTempMask = Registers::TempMask & ~(1 << OsrFrameReg.code()); -+- -+ void -+ CodeGenerator::generateArgumentsChecks(bool bailout) -+ { -++ // Registers safe for use before generatePrologue(). -++ static const uint32_t EntryTempMask = Registers::TempMask & ~(1 << OsrFrameReg.code()); -++ -+ // This function can be used the normal way to check the argument types, -+ // before entering the function and bailout when arguments don't match. -+ // For debug purpose, this is can also be used to force/check that the -+--- js/src/jit/none/MacroAssembler-none.h -++++ js/src/jit/none/MacroAssembler-none.h -+@@ -131,6 +131,12 @@ class Assembler : public AssemblerShared -+ static void ToggleCall(CodeLocationLabel, bool) { MOZ_CRASH(); } -+ -+ static uintptr_t GetPointer(uint8_t*) { MOZ_CRASH(); } -++ -++ void verifyHeapAccessDisassembly(uint32_t begin, uint32_t end, -++ const Disassembler::HeapAccess &heapAccess) -++ { -++ MOZ_CRASH(); -++ } -+ }; -+ -+ class Operand diff --git a/srcpkgs/0ad/patches/ppc64.patch b/srcpkgs/0ad/patches/ppc64.patch index e409c0ed917..87bc3a4800d 100644 --- a/srcpkgs/0ad/patches/ppc64.patch +++ b/srcpkgs/0ad/patches/ppc64.patch @@ -1,182 +1,3 @@ ---- build/premake/premake4.lua -+++ build/premake/premake4.lua -@@ -88,6 +88,8 @@ else - arch = "arm" - elseif string.find(machine, "aarch64") == 1 then - arch = "aarch64" -+ elseif string.find(machine, "ppc64") == 1 or string.find(machine, "powerpc64") == 1 then -+ arch = "ppc64" - else - print("WARNING: Cannot determine architecture from GCC, assuming x86") - end -@@ -823,6 +825,8 @@ function setup_all_libs () - table.insert(source_dirs, "lib/sysdep/arch/x86_x64"); - elseif arch == "arm" then - table.insert(source_dirs, "lib/sysdep/arch/arm"); -+ elseif arch == "ppc64" then -+ table.insert(source_dirs, "lib/sysdep/arch/ppc64"); - elseif arch == "aarch64" then - table.insert(source_dirs, "lib/sysdep/arch/aarch64"); - end ---- build/premake/premake5.lua -+++ build/premake/premake5.lua -@@ -81,6 +81,8 @@ else - arch = "arm" - elseif string.find(machine, "aarch64") == 1 then - arch = "aarch64" -+ elseif string.find(machine, "ppc64") == 1 or string.find(machine, "powerpc64") == 1 then -+ arch = "ppc64" - else - print("WARNING: Cannot determine architecture from GCC, assuming x86") - end -@@ -823,6 +825,8 @@ function setup_all_libs () - table.insert(source_dirs, "lib/sysdep/arch/x86_x64"); - elseif arch == "arm" then - table.insert(source_dirs, "lib/sysdep/arch/arm"); -+ elseif arch == "ppc64" then -+ table.insert(source_dirs, "lib/sysdep/arch/ppc64"); - elseif arch == "aarch64" then - table.insert(source_dirs, "lib/sysdep/arch/aarch64"); - end ---- libraries/source/nvtt/src/src/nvcore/poshlib/posh.h -+++ libraries/source/nvtt/src/src/nvcore/poshlib/posh.h -@@ -663,7 +663,7 @@ Metrowerks: - ** the MIPS series, so we have to be careful about those. - ** ---------------------------------------------------------------------------- - */ --#if defined POSH_CPU_X86 || defined POSH_CPU_AXP || defined POSH_CPU_STRONGARM || defined POSH_CPU_AARCH64 || defined POSH_OS_WIN32 || defined POSH_OS_WINCE || defined __MIPSEL__ -+#if defined POSH_CPU_X86 || defined POSH_CPU_AXP || defined POSH_CPU_STRONGARM || defined POSH_CPU_AARCH64 || defined POSH_OS_WIN32 || defined POSH_OS_WINCE || defined __MIPSEL__ || __LITTLE_ENDIAN__ - # define POSH_ENDIAN_STRING "little" - # define POSH_LITTLE_ENDIAN 1 - #else ---- libraries/source/nvtt/src/src/nvmath/Plane.h -+++ libraries/source/nvtt/src/src/nvmath/Plane.h -@@ -6,6 +6,10 @@ - #include - #include - -+#if NV_USE_ALTIVEC -+#undef vector -+#endif -+ - namespace nv - { - class Matrix; ---- libraries/source/nvtt/src/src/nvtt/squish/simd_ve.h -+++ libraries/source/nvtt/src/src/nvtt/squish/simd_ve.h -@@ -1,6 +1,7 @@ - /* ----------------------------------------------------------------------------- - - Copyright (c) 2006 Simon Brown si@sjbrown.co.uk -+ Copyright (c) 2016 Raptor Engineering, LLC - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the -@@ -31,7 +32,7 @@ - - namespace squish { - --#define VEC4_CONST( X ) Vec4( ( vector float )( X ) ) -+#define VEC4_CONST( X ) Vec4( vec_splats( (float)X ) ) - - class Vec4 - { -@@ -96,7 +97,7 @@ public: - - Vec4& operator*=( Arg v ) - { -- m_v = vec_madd( m_v, v.m_v, ( vector float )( -0.0f ) ); -+ m_v = vec_madd( m_v, v.m_v, vec_splats( -0.0f ) ); - return *this; - } - -@@ -112,7 +113,7 @@ public: - - friend Vec4 operator*( Vec4::Arg left, Vec4::Arg right ) - { -- return Vec4( vec_madd( left.m_v, right.m_v, ( vector float )( -0.0f ) ) ); -+ return Vec4( vec_madd( left.m_v, right.m_v, vec_splats( -0.0f ) ) ); - } - - //! Returns a*b + c -@@ -133,7 +134,7 @@ public: - vector float estimate = vec_re( v.m_v ); - - // one round of Newton-Rhaphson refinement -- vector float diff = vec_nmsub( estimate, v.m_v, ( vector float )( 1.0f ) ); -+ vector float diff = vec_nmsub( estimate, v.m_v, vec_splats( 1.0f ) ); - return Vec4( vec_madd( diff, estimate, estimate ) ); - } - ---- source/graphics/TextureConverter.cpp -+++ source/graphics/TextureConverter.cpp -@@ -45,6 +45,10 @@ struct BufferOutputHandler : public nvtt::OutputHandler - { - } - -+ virtual void endImage() -+ { -+ } -+ - virtual bool writeData(const void* data, int size) - { - size_t off = buffer.size(); ---- source/lib/alignment.h -+++ source/lib/alignment.h -@@ -80,7 +80,18 @@ static const size_t cacheLineSize = 64; // (L2) - // MMU pages - // - -+#ifdef __PPC64__ -+// NOTE: ppc64 can operate in either 4k or 64k page size mode -+// If the define page size is larger than the active page size, -+// the allocator functions normally. If the defined page size -+// is less than the active page size, the allocator fails tests. -+// -+// Define the page size to the maximum known architectural page -+// size on ppc64 systems. -+static const size_t g_PageSize = 64 * 1024; // 64 KB -+#else - static const size_t g_PageSize = 4 * 1024; // 4 KB -+#endif - static const size_t g_LargePageSize = 2 * 1024 * 1024; // 2 MB - - ---- source/lib/byte_order.h -+++ source/lib/byte_order.h -@@ -33,7 +33,7 @@ - #ifndef BYTE_ORDER - # define LITTLE_ENDIAN 0x4321 - # define BIG_ENDIAN 0x1234 --# if ARCH_IA32 || ARCH_IA64 || ARCH_AMD64 || ARCH_ALPHA || ARCH_ARM || ARCH_AARCH64 || ARCH_MIPS || defined(__LITTLE_ENDIAN__) -+# if ARCH_IA32 || ARCH_IA64 || ARCH_AMD64 || ARCH_ALPHA || ARCH_ARM || ARCH_AARCH64 || ARCH_PPC64 || ARCH_MIPS || defined(__LITTLE_ENDIAN__) - # define BYTE_ORDER LITTLE_ENDIAN - # else - # define BYTE_ORDER BIG_ENDIAN ---- source/lib/sysdep/arch.h -+++ source/lib/sysdep/arch.h -@@ -64,6 +64,12 @@ - #else - # define ARCH_AARCH64 0 - #endif -+// .. PowerPC64 (PPC64) -+#if defined(__PPC64__) -+# define ARCH_PPC64 1 -+#else -+# define ARCH_PPC64 0 -+#endif - // .. MIPS - #if defined(__MIPS__) || defined(__mips__) || defined(__mips) - # define ARCH_MIPS 1 -@@ -72,7 +78,7 @@ - #endif - - // ensure exactly one architecture has been detected --#if (ARCH_IA32+ARCH_IA64+ARCH_AMD64+ARCH_ALPHA+ARCH_ARM+ARCH_AARCH64+ARCH_MIPS) != 1 -+#if (ARCH_IA32+ARCH_IA64+ARCH_AMD64+ARCH_ALPHA+ARCH_ARM+ARCH_AARCH64+ARCH_PPC64+ARCH_MIPS) != 1 - # error "architecture not correctly detected (either none or multiple ARCH_* defined)" - #endif - --- /dev/null +++ source/lib/sysdep/arch/ppc64/ppc64.cpp @@ -0,0 +1,50 @@ @@ -230,13 +51,43 @@ +{ + return "IBM POWER"; // TODO +} ---- source/ps/GameSetup/HWDetect.cpp -+++ source/ps/GameSetup/HWDetect.cpp -@@ -247,6 +247,7 @@ void RunHardwareDetection() - scriptInterface.SetProperty(settings, "arch_amd64", ARCH_AMD64); +--- source/lib/byte_order.h.orig 2021-02-28 16:59:34.041933978 +0100 ++++ source/lib/byte_order.h 2021-02-28 16:59:59.311582587 +0100 +@@ -33,7 +33,7 @@ + #ifndef BYTE_ORDER + # define LITTLE_ENDIAN 0x4321 + # define BIG_ENDIAN 0x1234 +-# if ARCH_IA32 || ARCH_IA64 || ARCH_AMD64 || ARCH_ALPHA || ARCH_ARM || ARCH_AARCH64 || ARCH_MIPS || ARCH_E2K || defined(__LITTLE_ENDIAN__) ++# if ARCH_IA32 || ARCH_IA64 || ARCH_AMD64 || ARCH_ALPHA || ARCH_ARM || ARCH_AARCH64 || ARCH_MIPS || ARCH_E2K || ARCH_PPC64 || defined(__LITTLE_ENDIAN__) + # define BYTE_ORDER LITTLE_ENDIAN + # else + # define BYTE_ORDER BIG_ENDIAN +--- source/ps/GameSetup/HWDetect.cpp.orig 2021-02-28 18:09:30.331118437 +0100 ++++ source/ps/GameSetup/HWDetect.cpp 2021-02-28 18:09:52.209822367 +0100 +@@ -124,6 +124,7 @@ scriptInterface.SetProperty(settings, "arch_arm", ARCH_ARM); scriptInterface.SetProperty(settings, "arch_aarch64", ARCH_AARCH64); + scriptInterface.SetProperty(settings, "arch_e2k", ARCH_E2K); + scriptInterface.SetProperty(settings, "arch_ppc64", ARCH_PPC64); #ifdef NDEBUG scriptInterface.SetProperty(settings, "build_debug", 0); +--- source/lib/sysdep/arch.h.orig 2021-02-28 18:45:28.761727174 +0100 ++++ source/lib/sysdep/arch.h 2021-02-28 18:46:03.270251202 +0100 +@@ -76,9 +76,15 @@ + #else + # define ARCH_E2K 0 + #endif ++// .. PowerPC64 (PPC64) ++#if defined(__PPC64__) ++# define ARCH_PPC64 1 ++#else ++# define ARCH_PPC64 0 ++#endif + + // ensure exactly one architecture has been detected +-#if (ARCH_IA32+ARCH_IA64+ARCH_AMD64+ARCH_ALPHA+ARCH_ARM+ARCH_AARCH64+ARCH_MIPS+ARCH_E2K) != 1 ++#if (ARCH_IA32+ARCH_IA64+ARCH_AMD64+ARCH_ALPHA+ARCH_ARM+ARCH_AARCH64+ARCH_MIPS+ARCH_E2K+ARCH_PPC64) != 1 + # error "architecture not correctly detected (either none or multiple ARCH_* defined)" + #endif + diff --git a/srcpkgs/0ad/patches/remove-macos-include.patch b/srcpkgs/0ad/patches/remove-macos-include.patch new file mode 100644 index 00000000000..9e6cc6189c8 --- /dev/null +++ b/srcpkgs/0ad/patches/remove-macos-include.patch @@ -0,0 +1,11 @@ +--- source/ps/tests/stub_impl_hack.cpp.orig 2021-03-01 11:33:10.873986567 +0100 ++++ source/ps/tests/stub_impl_hack.cpp 2021-03-01 11:35:37.991089218 +0100 +@@ -13,7 +13,7 @@ + #include + + bool suite_TestDummy_init = false; +-#include "/Users/wfg/Jenkins/workspace/macOS-all-bundles/source/ps/tests/stub_impl_hack.h" ++#include "stub_impl_hack.h" + + static TestDummy suite_TestDummy; + diff --git a/srcpkgs/0ad/patches/template-misuse.patch b/srcpkgs/0ad/patches/template-misuse.patch deleted file mode 100644 index 7ae376ff1fe..00000000000 --- a/srcpkgs/0ad/patches/template-misuse.patch +++ /dev/null @@ -1,43 +0,0 @@ -Index: libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp -=================================================================== ---- libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp.orig -+++ libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp -@@ -329,16 +329,3 @@ void FArchiveXML::WritePhysicsRigidBodyP - FArchiveXML::LetWriteObject(physicsRigidBodyParameters->GetPhysicsShape(i), techniqueNode); - } - } -- --template --xmlNode* FArchiveXML::AddPhysicsParameter(xmlNode* parentNode, const char* name, FCDParameterAnimatableT& value) --{ -- xmlNode* paramNode = AddChild(parentNode, name); -- AddContent(paramNode, FUStringConversion::ToString((TYPE&) value)); -- if (value.IsAnimated()) -- { -- const FCDAnimated* animated = value.GetAnimated(); -- FArchiveXML::WriteAnimatedValue(animated, paramNode, name); -- } -- return paramNode; --} -Index: libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h -=================================================================== ---- libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h.orig -+++ libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h -@@ -573,4 +573,17 @@ public: - static xmlNode* WriteLibrary(FCDLibrary* library, xmlNode* node); - }; - -+template -+xmlNode* FArchiveXML::AddPhysicsParameter(xmlNode* parentNode, const char* name, FCDParameterAnimatableT& value) -+{ -+ xmlNode* paramNode = AddChild(parentNode, name); -+ AddContent(paramNode, FUStringConversion::ToString((TYPE&) value)); -+ if (value.IsAnimated()) -+ { -+ const FCDAnimated* animated = value.GetAnimated(); -+ FArchiveXML::WriteAnimatedValue(animated, paramNode, name); -+ } -+ return paramNode; -+} -+ - #endif //_FCPARCHIVECOLLADA_H_ diff --git a/srcpkgs/0ad/template b/srcpkgs/0ad/template index 88314906c9a..b161be5615e 100644 --- a/srcpkgs/0ad/template +++ b/srcpkgs/0ad/template @@ -1,20 +1,20 @@ # Template file for '0ad' pkgname=0ad -version=0.0.23b -revision=5 +version=0.0.24 +revision=1 archs="x86_64* i686* aarch64* armv7l* ppc64le*" -wrksrc="${pkgname}-${version}-alpha" -hostmakedepends="pkg-config perl cmake python tar" +create_wrksrc=yes +hostmakedepends="pkg-config perl cmake python3 rust cargo yasm tar" makedepends="SDL2-devel boost-devel gloox-devel libcurl-devel libenet-devel libopenal-devel libpng-devel libsodium-devel libxml2-devel miniupnpc-devel - nspr-devel wxWidgets-gtk3-devel" + nspr-devel wxWidgets-gtk3-devel fmt-devel" depends="${pkgname}-data" short_desc="Historically-based real-time strategy game" maintainer="Helmut Pozimski " license="GPL-2.0-or-later, CC-BY-SA-3.0, MPL-2.0, MIT" homepage="https://play0ad.com" distfiles="https://releases.wildfiregames.com/${pkgname}-${version}-alpha-unix-build.tar.xz" -checksum=01bff7641ee08cac896c54d518d7e4b01752513105558f212e3199d747512a37 +checksum=00aee2d2f11e48b169be41ddad8090e49f8173c09242fc2fa4a0d44e4763cc53 nocross="uses bundled third-party libraries that do not cross-compile" CXXFLAGS="-fpermissive" @@ -22,8 +22,13 @@ CXXFLAGS="-fpermissive" LDFLAGS="-fuse-ld=bfd" export WX_CONFIG="wx-config-gtk3" +do_extract() { + bsdtar xJf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${pkgname}-${version}-alpha-unix-build.tar.xz -C ${wrksrc} +} + do_configure() { cd ${wrksrc}/build/workspaces + ./clean-workspaces.sh ./update-workspaces.sh --bindir=/usr/bin --libdir=/usr/lib/0ad \ --datadir=/usr/share/${pkgname}/data } From d08fe5553addf1e300c5e72e61a2e8ed2bfb82aa Mon Sep 17 00:00:00 2001 From: Helmut Pozimski Date: Mon, 1 Mar 2021 12:30:07 +0100 Subject: [PATCH 2/2] 0ad-data: update to 0.0.24. --- srcpkgs/0ad-data/template | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/srcpkgs/0ad-data/template b/srcpkgs/0ad-data/template index 24a87a74efe..b5d431867aa 100644 --- a/srcpkgs/0ad-data/template +++ b/srcpkgs/0ad-data/template @@ -1,14 +1,14 @@ # Template file for '0ad-data' pkgname=0ad-data -version=0.0.23b -revision=2 -wrksrc="0ad-${version}-alpha" +version=0.0.24 +revision=1 short_desc="Historically-based real-time strategy game (data files)" maintainer="Helmut Pozimski " license="CC-BY-SA-3.0" homepage="https://play0ad.com" distfiles="https://releases.wildfiregames.com/0ad-${version}-alpha-unix-data.tar.xz" -checksum=e11b4ade7ede954cbbdc1fe6e2e4b25ac6b8d5a644133b640ffc9b099338a713 +checksum=929a55a6aa63c143b7fd20553375878a2e732353dbbcc757fa876b4181fdd75a +create_wrksrc=yes nocross=yes case "$XBPS_TARGET_MACHINE" in @@ -16,6 +16,10 @@ case "$XBPS_TARGET_MACHINE" in *) broken="no base game available";; esac +do_extract() { + bsdtar xJf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/0ad-${version}-alpha-unix-data.tar.xz -C ${wrksrc} +} + do_install() { vmkdir usr/share/0ad/data vmkdir usr/share/0ad/data/tools