here's an updated for games/0ad, sending it a bit early so interested folks can play it :)
https://play0ad.com/new-release-0-a-d-alpha-26-zhuangzi/ I've only played it briefly, but the new civilization (Han) is really cool. Will hopefully play it more in the following days. port-wise I removed the backported diff and updated the one we need. Upstream explicitly links to libogg and libvorbis on OpenBSD (there's a check in build/premake/extern_libs5.lua -- I'm assuming they dlopen on other platforms?) but starting from this version it also need vorbisfile to link. OK for after the unlock? Index: Makefile.inc =================================================================== RCS file: /home/cvs/ports/games/0ad/Makefile.inc,v retrieving revision 1.14 diff -u -p -r1.14 Makefile.inc --- Makefile.inc 11 Mar 2022 19:04:03 -0000 1.14 +++ Makefile.inc 2 Oct 2022 20:33:54 -0000 @@ -2,7 +2,7 @@ ONLY_FOR_ARCHS = amd64 i386 CATEGORIES = games -V ?= 0.0.25b +V ?= 0.0.26 HOMEPAGE = https://play0ad.com/ Index: base/Makefile =================================================================== RCS file: /home/cvs/ports/games/0ad/base/Makefile,v retrieving revision 1.37 diff -u -p -r1.37 Makefile --- base/Makefile 18 Aug 2022 02:24:48 -0000 1.37 +++ base/Makefile 3 Oct 2022 14:42:02 -0000 @@ -3,15 +3,13 @@ COMMENT = historical real-time strategy DISTNAME = 0ad-${V}-alpha-unix-build PKGNAME = 0ad-${V} -REVISION = 0 - USE_WXNEEDED = Yes SO_VERSION = 0.0 SHARED_LIBS += mozjs78-ps-release ${SO_VERSION} -WANTLIB += ${COMPILER_LIBCXX} GL SDL2 X11 boost_filesystem -WANTLIB += boost_system c crypto curl enet execinfo fmt gloox iconv +WANTLIB += ${COMPILER_LIBCXX} SDL2 X11 boost_filesystem +WANTLIB += boost_system c crypto curl enet execinfo fmt freetype gloox iconv WANTLIB += icudata icui18n icuuc idn m miniupnpc ogg openal WANTLIB += png sodium ssl vorbis vorbisfile xml2 z Index: base/distinfo =================================================================== RCS file: /home/cvs/ports/games/0ad/base/distinfo,v retrieving revision 1.9 diff -u -p -r1.9 distinfo --- base/distinfo 22 Nov 2021 16:00:30 -0000 1.9 +++ base/distinfo 2 Oct 2022 20:34:16 -0000 @@ -1,2 +1,2 @@ -SHA256 (0ad-0.0.25b-alpha-unix-build.tar.gz) = AnMMMof21FEekRntNF1CSk7z9aMb9KCnzHntgNv+PIA= -SIZE (0ad-0.0.25b-alpha-unix-build.tar.gz) = 78022628 +SHA256 (0ad-0.0.26-alpha-unix-build.tar.gz) = SpkFAE4iDXdP8H/TH+XKqzraOAfut79mSykEWDcRQhw= +SIZE (0ad-0.0.26-alpha-unix-build.tar.gz) = 78065537 Index: base/patches/patch-build_premake_extern_libs5_lua =================================================================== RCS file: base/patches/patch-build_premake_extern_libs5_lua diff -N base/patches/patch-build_premake_extern_libs5_lua --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ base/patches/patch-build_premake_extern_libs5_lua 2 Oct 2022 22:15:24 -0000 @@ -0,0 +1,12 @@ +Index: build/premake/extern_libs5.lua +--- build/premake/extern_libs5.lua.orig ++++ build/premake/extern_libs5.lua +@@ -675,7 +675,7 @@ extern_lib_defs = { + -- TODO: We need to force linking with these as currently + -- they need to be loaded explicitly on execution + add_default_links({ +- unix_names = { "ogg", "vorbis" }, ++ unix_names = { "ogg", "vorbis", "vorbisfile" }, + }) + else + pkgconfig.add_links("vorbisfile") Index: base/patches/patch-build_workspaces_update-workspaces_sh =================================================================== RCS file: /home/cvs/ports/games/0ad/base/patches/patch-build_workspaces_update-workspaces_sh,v retrieving revision 1.8 diff -u -p -r1.8 patch-build_workspaces_update-workspaces_sh --- base/patches/patch-build_workspaces_update-workspaces_sh 11 Mar 2022 19:04:03 -0000 1.8 +++ base/patches/patch-build_workspaces_update-workspaces_sh 2 Oct 2022 20:42:23 -0000 @@ -2,7 +2,7 @@ Don't build bundled libraries during con Index: build/workspaces/update-workspaces.sh --- build/workspaces/update-workspaces.sh.orig +++ build/workspaces/update-workspaces.sh -@@ -86,7 +86,7 @@ if [ "`uname -s`" != "Darwin" ]; then +@@ -90,7 +90,7 @@ if [ "`uname -s`" != "Darwin" ]; then echo # Build/update bundled external libraries @@ -10,4 +10,4 @@ Index: build/workspaces/update-workspace + # (cd ../../libraries/source/fcollada && MAKE=${MAKE} JOBS=${JOBS} ./build.sh) || die "FCollada build failed" echo if [ "$with_system_mozjs" = "false" ]; then - (cd ../../libraries/source/spidermonkey && MAKE=${MAKE} JOBS=${JOBS} ./build.sh) || die "SpiderMonkey build failed" + (cd ../../libraries/source/spidermonkey && MAKE=${MAKE} JOBS=${JOBS} PYTHONNOUSERSITE=true ./build.sh) || die "SpiderMonkey build failed" Index: base/patches/patch-libraries_source_spidermonkey_FixMacBuild_diff =================================================================== RCS file: base/patches/patch-libraries_source_spidermonkey_FixMacBuild_diff diff -N base/patches/patch-libraries_source_spidermonkey_FixMacBuild_diff --- base/patches/patch-libraries_source_spidermonkey_FixMacBuild_diff 18 Aug 2022 02:24:48 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,100 +0,0 @@ -Backport from upstream patch. Much of this is only for macos aarch64, -but it includes a piece that fixes build with newer setuptools as well. -Keeping the whole lot together because it's easier to handle the diff -that way. - -(ports/games/0ad/Makefile.inc sets ONLY_FOR_ARCHS=amd64 i386 anyway -so this won't actually be built on aarch64 as-is). - -Index: libraries/source/spidermonkey/FixMacBuild.diff ---- libraries/source/spidermonkey/FixMacBuild.diff.orig -+++ libraries/source/spidermonkey/FixMacBuild.diff -@@ -13,12 +13,84 @@ - js_flags.append('-Xclang') - --- a/build/moz.configure/toolchain.configure - +++ b/build/moz.configure/toolchain.configure --@@ -141,7 +141,7 @@ -+@@ -141,7 +141,6 @@ - @imports(_from='biplist', _import='readPlist') - def macos_sdk(sdk, host): - sdk_min_version = Version('10.11') - - sdk_max_version = Version('10.15.4') --+ sdk_max_version = Version('11.99') - - if sdk: -- sdk = sdk[0] -\ No newline at end of file -+ sdk = sdk[0] -+@@ -170,11 +169,6 @@ -+ 'You may need to point to it using --with-macos-sdk=<path> in your ' -+ 'mozconfig. Various SDK versions are available from ' -+ 'https://github.com/phracker/MacOSX-SDKs' % (version, sdk_min_version)) -+- if version > sdk_max_version: -+- die('SDK version "%s" is unsupported. Please downgrade to version ' -+- '%s. You may need to point to it using --with-macos-sdk=<path> in ' -+- 'your mozconfig. Various SDK versions are available from ' -+- 'https://github.com/phracker/MacOSX-SDKs' % (version, sdk_max_version)) -+ return sdk -+ -+ set_config('MACOS_SDK_DIR', macos_sdk) -+--- a/build/moz.configure/init.configure -++++ b/build/moz.configure/init.configure -+@@ -375,9 +375,6 @@ -+ sys.exit(subprocess.call([python] + sys.argv)) -+ -+ # We are now in the virtualenv -+- if not distutils.sysconfig.get_python_lib(): -+- die('Could not determine python site packages directory') -+- -+ str_version = '.'.join(str(v) for v in version) -+ -+ return namespace( -+--- a/js/src/jit/arm64/vixl/MozCpu-vixl.cpp -++++ b/js/src/jit/arm64/vixl/MozCpu-vixl.cpp -+@@ -69,7 +69,7 @@ void CPU::SetUp() { -+ -+ -+ uint32_t CPU::GetCacheType() { -+-#if defined(__aarch64__) && !defined(_MSC_VER) -++#if defined(__aarch64__) && (defined(__linux__) || defined(__android__)) -+ uint64_t cache_type_register; -+ // Copy the content of the cache type register to a core register. -+ __asm__ __volatile__ ("mrs %[ctr], ctr_el0" // NOLINT -+--- a/js/src/wasm/WasmSignalHandlers.cpp -++++ b/js/src/wasm/WasmSignalHandlers.cpp -+@@ -226,6 +226,10 @@ using mozilla::DebugOnly; -+ # define R13_sig(p) ((p)->thread.__sp) -+ # define R14_sig(p) ((p)->thread.__lr) -+ # define R15_sig(p) ((p)->thread.__pc) -++# define EPC_sig(p) ((p)->thread.__pc) -++# define RFP_sig(p) ((p)->thread.__fp) -++# define R31_sig(p) ((p)->thread.__sp) -++# define RLR_sig(p) ((p)->thread.__lr) -+ #else -+ # error "Don't know how to read/write to the thread state via the mcontext_t." -+ #endif -+@@ -351,6 +355,12 @@ struct macos_arm_context { -+ arm_neon_state_t float_; -+ }; -+ # define CONTEXT macos_arm_context -++# elif defined(__aarch64__) -++struct macos_aarch64_context { -++ arm_thread_state64_t thread; -++ arm_neon_state64_t float_; -++}; -++# define CONTEXT macos_aarch64_context -+ # else -+ # error Unsupported architecture -+ # endif -+@@ -816,6 +826,11 @@ static bool HandleMachException(const ExceptionRequest& request) { -+ unsigned int float_state_count = ARM_NEON_STATE_COUNT; -+ int thread_state = ARM_THREAD_STATE; -+ int float_state = ARM_NEON_STATE; -++# elif defined(__aarch64__) -++ unsigned int thread_state_count = ARM_THREAD_STATE64_COUNT; -++ unsigned int float_state_count = ARM_NEON_STATE64_COUNT; -++ int thread_state = ARM_THREAD_STATE64; -++ int float_state = ARM_NEON_STATE64; -+ # else -+ # error Unsupported architecture -+ # endif Index: base/patches/patch-libraries_source_spidermonkey_FixPythonCollectionABC_diff =================================================================== RCS file: base/patches/patch-libraries_source_spidermonkey_FixPythonCollectionABC_diff diff -N base/patches/patch-libraries_source_spidermonkey_FixPythonCollectionABC_diff --- base/patches/patch-libraries_source_spidermonkey_FixPythonCollectionABC_diff 18 Aug 2022 02:24:48 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,94 +0,0 @@ -Based on upstream patch, preemptive fix for 3.10 (and avoid some -spam in the console output for earlier) - -Index: libraries/source/spidermonkey/FixPythonCollectionABC.diff ---- libraries/source/spidermonkey/FixPythonCollectionABC.diff.orig -+++ libraries/source/spidermonkey/FixPythonCollectionABC.diff -@@ -0,0 +1,87 @@ -+--- a/python/mach/mach/config.py -++++ b/python/mach/mach/config.py -+@@ -144,7 +144,7 @@ -+ return _ -+ -+ -+-class ConfigSettings(collections.Mapping): -++class ConfigSettings(collections.abc.Mapping): -+ """Interface for configuration settings. -+ -+ This is the main interface to the configuration. -+@@ -190,7 +190,7 @@ -+ will result in exceptions being raised. -+ """ -+ -+- class ConfigSection(collections.MutableMapping, object): -++ class ConfigSection(collections.abc.MutableMapping, object): -+ """Represents an individual config section.""" -+ def __init__(self, config, name, settings): -+ object.__setattr__(self, '_config', config) -+--- a/python/mach/mach/decorators.py -++++ b/python/mach/mach/decorators.py -+@@ -159,7 +159,7 @@ -+ 'Conditions argument must take a list ' + \ -+ 'of functions. Found %s instead.' -+ -+- if not isinstance(command.conditions, collections.Iterable): -++ if not isinstance(command.conditions, collections.abc.Iterable): -+ msg = msg % (command.name, type(command.conditions)) -+ raise MachError(msg) -+ -+--- a/python/mach/mach/main.py -++++ b/python/mach/mach/main.py -+@@ -16,7 +16,7 @@ -+ import sys -+ import traceback -+ import uuid -+-from collections import Iterable -++from collections.abc import Iterable -+ -+ from six import string_types -+ -+--- a/python/mozbuild/mozbuild/backend/configenvironment.py -++++ b/python/mozbuild/mozbuild/backend/configenvironment.py -+@@ -9,7 +9,8 @@ -+ import sys -+ import json -+ -+-from collections import Iterable, OrderedDict -++from collections import OrderedDict -++from collections.abc import Iterable -+ from types import ModuleType -+ -+ import mozpack.path as mozpath -+--- a/python/mozbuild/mozbuild/makeutil.py -++++ b/python/mozbuild/mozbuild/makeutil.py -+@@ -7,7 +7,7 @@ -+ import os -+ import re -+ import six -+-from collections import Iterable -++from collections.abc import Iterable -+ -+ -+ class Makefile(object): -+--- a/python/mozbuild/mozbuild/util.py -++++ b/python/mozbuild/mozbuild/util.py -+@@ -782,7 +782,7 @@ -+ self._strings = StrictOrderingOnAppendList() -+ self._children = {} -+ -+- class StringListAdaptor(collections.Sequence): -++ class StringListAdaptor(collections.abc.Sequence): -+ def __init__(self, hsl): -+ self._hsl = hsl -+ -+--- a/testing/mozbase/manifestparser/manifestparser/filters.py -++++ b/testing/mozbase/manifestparser/manifestparser/filters.py -+@@ -15,1 +15,2 @@ -+-from collections import defaultdict, MutableSequence -++from collections import defaultdict -++from collections.abc import MutableSequence -+--- a/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py -++++ b/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py -+@@ -82,1 +82,1 @@ -+-from collections import MutableSet, MutableMapping, MutableSequence -++from collections.abc import MutableSet, MutableMapping, MutableSequence Index: base/patches/patch-libraries_source_spidermonkey_FixVirtualenvForPython310_diff =================================================================== RCS file: base/patches/patch-libraries_source_spidermonkey_FixVirtualenvForPython310_diff diff -N base/patches/patch-libraries_source_spidermonkey_FixVirtualenvForPython310_diff --- base/patches/patch-libraries_source_spidermonkey_FixVirtualenvForPython310_diff 18 Aug 2022 02:24:48 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,21 +0,0 @@ -Based on upstream patch, preemptive fix for 3.10 - -Index: libraries/source/spidermonkey/FixVirtualenvForPython310.diff ---- libraries/source/spidermonkey/FixVirtualenvForPython310.diff.orig -+++ libraries/source/spidermonkey/FixVirtualenvForPython310.diff -@@ -0,0 +1,15 @@ -+--- a/third_party/python/virtualenv/virtualenv.py -++++ b/third_party/python/virtualenv/virtualenv.py -+@@ -1804,7 +1804,11 @@ -+ pass -+ else: -+ # noinspection PyProtectedMember -+- if sysconfig._get_default_scheme() == "posix_local": -++ try: # Python >= 3.10 -++ default_scheme = sysconfig.get_default_scheme() -++ except: # Python < 3.10 -++ default_scheme = sysconfig._get_default_scheme() -++ if default_scheme == "posix_local": -+ local_path = os.path.join(home_dir, "local") -+ if not os.path.exists(local_path): -+ os.mkdir(local_path) Index: base/patches/patch-libraries_source_spidermonkey_build_sh =================================================================== RCS file: /home/cvs/ports/games/0ad/base/patches/patch-libraries_source_spidermonkey_build_sh,v retrieving revision 1.5 diff -u -p -r1.5 patch-libraries_source_spidermonkey_build_sh --- base/patches/patch-libraries_source_spidermonkey_build_sh 11 Mar 2022 19:04:03 -0000 1.5 +++ base/patches/patch-libraries_source_spidermonkey_build_sh 2 Oct 2022 20:42:23 -0000 @@ -1,7 +1,7 @@ Index: libraries/source/spidermonkey/build.sh --- libraries/source/spidermonkey/build.sh.orig +++ libraries/source/spidermonkey/build.sh -@@ -113,8 +113,8 @@ else +@@ -128,8 +128,8 @@ else cd "$FOLDER" fi @@ -12,7 +12,7 @@ Index: libraries/source/spidermonkey/bui mkdir -p build-debug cd build-debug # SM configure checks for autoconf, but we don't actually need it. -@@ -156,7 +156,7 @@ else +@@ -171,7 +171,7 @@ else STATIC_LIB_SUFFIX=.a if [ "`uname -s`" = "OpenBSD" ]; then @@ -21,7 +21,7 @@ Index: libraries/source/spidermonkey/bui elif [ "`uname -s`" = "Darwin" ]; then LIB_SUFFIX=.a -@@ -182,7 +182,7 @@ fi +@@ -197,7 +197,7 @@ fi mkdir -p "${INCLUDE_DIR_RELEASE}" cp -R -L "${FOLDER}"/build-release/dist/include/* "${INCLUDE_DIR_RELEASE}/" @@ -30,7 +30,7 @@ Index: libraries/source/spidermonkey/bui mkdir -p "${INCLUDE_DIR_DEBUG}" cp -R -L "${FOLDER}"/build-debug/dist/include/* "${INCLUDE_DIR_DEBUG}/" fi -@@ -223,7 +223,7 @@ else +@@ -238,7 +238,7 @@ else # Copy shared libs to both lib/ and binaries/ so the compiler and executable (resp.) can find them. cp -L "${FOLDER}/build-${REL}/js/src/build/${LIB_PREFIX}${LIB_NAME}-${REL}${LIB_SUFFIX}" "lib/${LIB_PREFIX}${LIB_NAME}-${REL}${LIB_SUFFIX}" cp -L "${FOLDER}/build-${REL}/js/src/build/${LIB_PREFIX}${LIB_NAME}-${REL}${LIB_SUFFIX}" "../../../binaries/system/${LIB_PREFIX}${LIB_NAME}-${REL}${LIB_SUFFIX}" Index: base/patches/patch-libraries_source_spidermonkey_patch_sh =================================================================== RCS file: base/patches/patch-libraries_source_spidermonkey_patch_sh diff -N base/patches/patch-libraries_source_spidermonkey_patch_sh --- base/patches/patch-libraries_source_spidermonkey_patch_sh 18 Aug 2022 02:24:48 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -Loosely based on upstream commits - -Index: libraries/source/spidermonkey/patch.sh ---- libraries/source/spidermonkey/patch.sh.orig -+++ libraries/source/spidermonkey/patch.sh -@@ -34,6 +34,9 @@ patch -p1 < ../FixMSVCRootedVoid.diff - # so this patches it to an arbitrarily high Mac OS 11 - patch -p1 < ../FixMacBuild.diff - -+patch -p1 < ../FixVirtualenvForPython310.diff -+patch -p1 < ../FixPythonCollectionABC.diff -+ - # Fix FP access breaking compilation on RPI3+ - # https://bugzilla.mozilla.org/show_bug.cgi?id=1526653 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1536491 Index: base/pkg/PLIST =================================================================== RCS file: /home/cvs/ports/games/0ad/base/pkg/PLIST,v retrieving revision 1.12 diff -u -p -r1.12 PLIST --- base/pkg/PLIST 11 Mar 2022 19:04:03 -0000 1.12 +++ base/pkg/PLIST 2 Oct 2022 22:48:19 -0000 @@ -3,6 +3,7 @@ bin/0ad @so lib/libCollada.so @static-lib lib/libatlas.a @static-lib lib/libengine.a +@static-lib lib/libgladwrapper.a @static-lib lib/libglooxwrapper.a @static-lib lib/libgraphics.a @static-lib lib/libgui.a @@ -185,6 +186,7 @@ share/0ad/mods/_test.tex/art/textures/a/ share/0ad/mods/_test.tex/art/textures/a/demo.png share/0ad/mods/_test.tex/art/textures/a/demo.tga share/0ad/mods/_test.tex/art/textures/b/ +share/0ad/mods/_test.tex/art/textures/b/npot.png share/0ad/mods/_test.tex/art/textures/b/test.png share/0ad/mods/_test.xero/ share/0ad/mods/_test.xero/a/ Index: data/distinfo =================================================================== RCS file: /home/cvs/ports/games/0ad/data/distinfo,v retrieving revision 1.9 diff -u -p -r1.9 distinfo --- data/distinfo 22 Nov 2021 16:00:31 -0000 1.9 +++ data/distinfo 2 Oct 2022 20:37:28 -0000 @@ -1,2 +1,2 @@ -SHA256 (0ad-0.0.25b-alpha-unix-data.tar.gz) = qeYM9hLOtk7xP5SYp9QuDZXaL9PtomwjApQsFEfAcyg= -SIZE (0ad-0.0.25b-alpha-unix-data.tar.gz) = 1608167375 +SHA256 (0ad-0.0.26-alpha-unix-data.tar.gz) = P9HJAYQS7JNQLEsa2FFUAYRThNKiH9dosD8R0d28iCg= +SIZE (0ad-0.0.26-alpha-unix-data.tar.gz) = 1708638040