Jump to content

s0600204

WFG Programming Team
  • Posts

    261
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by s0600204

  1. Incidentally, I've also tried looking into this. I'm pleased to say that (after spending more time than I care to admit on it) I can now successfully build sm91 using python 3.12. The bad news that is that my solution as-is is a mess, and probably won't work for others, particularly Windows or macOS users. It would be a lot easier, I'd imagine/hope, to patch SM102.
  2. Yes; corrected. @krt0143, add an empty <ProductionQueue/> element to your template.
  3. What you're looking for is the Builder component (<Builder></Builder>). Notably, the following mixin file, which is included into the definition of every unit that can build buildings: https://code.wildfiregames.com/source/0ad/browse/ps/trunk/binaries/data/mods/public/simulation/templates/mixins/builder.xml Note that this does provide civ-specificity: if your new structure template is named, say, brit/camp_example.xml, then adding it to the above file as structures/{civ}/camp_example will cause it to only appear in the build list of Britannic builders (builder units belonging to other civs - e.g. in-game allies - will be able to assist with construction once the foundation has been laid). The absence of, say, a mace/camp_example.xml template is silently ignored. That said, Athenian builders have an additional mixin for Athenian-only buildings: https://code.wildfiregames.com/source/0ad/browse/ps/trunk/binaries/data/mods/public/simulation/templates/mixins/civ/athen.xml You can also add it to specific unit templates, like how the Roman Army Camp is listed at the top of the "Basic"-rank variant of the Roman units that can build it: https://code.wildfiregames.com/source/0ad/browse/ps/trunk/binaries/data/mods/public/simulation/templates/units/rome/infantry_swordsman_b.xml
  4. Hi! Please follow the instructions here: https://trac.wildfiregames.com/wiki/ReportingErrors#Errors At first glance, it sounds like https://trac.wildfiregames.com/ticket/5265. (Which shouldn't be happening anymore, as it was resolved for Alpha 24.) What version of 0A.D. and macOS are you using?
  5. spidermonkey, when built as part of the pyrogenesis pre-build process, explicitly and intentionally disables the Intl api due to problems with the spidemonkey build process erroneously inserting an otherwise non-compatible version of the ICU headers into the include search paths of pyrogenesis, causing build failures. (See #5868) Subsequently, anything that uses the Intl api (e.g. <Date Instance>.toLocaleTimeString()) may not work as expected and (it seems) will fallback on using the local timezone of the computer upon which it is run. As 0 A.D. does not itself make use of this API, this has not been a problem until now. This is why you've had to use manual timezone offsets - the values of which will most likely only be correct for you and anyone else in your timezone, and only as long as you and your targets don't transition in or out of daylight saving time - instead of being able to leave timezone calculations to .toLocalTimeString(); and also why timezone identifiers are ignored and not validated. If/when D3127 is merged, it might be possible to re-enable the Intl api - people using a system-repo provided version of spidermonkey will most likely have access to it - but that will need testing and will not happen with the next release. Alternatively, it might be possible to consider building spidermonkey with the --with-system-icu flag instead of the --without-intl-api flag - which also prevents the issue with incorrect ICU headers - although some research may be needed to work out why the latter was used in preference to the former in the first place. (Added as part of the upgrade from SM24 to SM31 in r16214. In SM24 the Intl api was disabled by default; in SM31 it was enabled by default. As we don't use the api, perhaps it was to get a quicker build?)
  6. Yes. It's what's described as a "mixin", and it is used to add attributes common to many Athenian templates in a bid to reduce duplication. The template it refers to can be located in simulation/templates/mixins.
  7. Unsurprising. I'm a little busy at the moment with work, but I'll look into it when I get time. @ShadowOfHassen, hyperion's suggestion of working on top of a fork of 0ad.git is what I do for my two mods listed on mod.io. The script he provided (which works roughly the same as the script I wrote and use for the same task on my computer) detects which files have been altered, which means the output mod file will only contain files that have been modified by your commits. The script also supports auto-marking files that should be "deleted" (read: ignored) from mods that appear above it in the in-game mod list. As what you're attempting to do is modify not remove templates, this feature is probably not one you'll be using.
  8. See also: https://wildfiregames.com/forum/topic/22711-template-based-history-strings (was the announcement for the r19960 change that Stan` linked to above, in case it was unclear why that action was taken) https://mod.io/g/0ad/m/reference-suite-plus (contains many of the strings removed by r19960) (might not work with SVN/A27)
  9. Tough. The original poster got his answer; everything else appears to be just trolling and flaming.
  10. Was that with or without the differential Stan` mentioned above (D3127) applied? (Because that should now work...)
  11. Unfortunately SETUPTOOLS_USE_DISTUTILS=stdlib is not a long-term solution, as the python standard lib's distutils is deprecated as of python 3.10 and due to be removed as part of python 3.12 (scheduled to be released October 2023). If spidermonkey intends to keep using distutils past that point, they are going to have to use setuptools' vendored version. (And either spidermonkey, Debian, setuptools - or a combination of all three - are going to have to come up with an official solution to this.) @Itms with the caveat that as of writing this I haven't completed a full build of spidermonkey on my VM - so there may be failure later in the build - here's the patch:FixInstallScheme.diff Needless to say it's not suitable for applying on Windows systems (as that would, at a guess, use the "nt" scheme).
  12. Ok, I've now created a Bookworm VM myself, and my current findings: I can duplicate the build failure if python3-setuptools is installed from the Debian repos. Uninstalling it clears the issue. (@hyperion this is probably what you're missing.) My earlier patch doesn't work. The reason it doesn't work is because of how setuptools resolves the installation scheme - ask it to use "posix_prefix", and setuptools asks sysconfig what the preferred scheme is for "prefix", whereupon it gets the response "posix_local". So setuptools uses that scheme instead. That reason sysconfig returns that value is due to the modifications Debian has made to that module. (It's also where the detection of virtual environments takes place. And fails because this bit of the process isn't being run inside a virtualenv.) setuptools attempts to use "posix_prefix" on posix-y systems anyway under certain circumstances (which spidermonkey's build process meets), so my patch - even if it was correct - is redundant. @Itms I may have an alternate solution - albeit one that will conflict with the patch you've imported from SM - but I need to sleep right now so I shall have to get back to you with it.
  13. The links not surviving is to be expected - until you have a successful build of spidermonkey, /home/domowy/svn/0ad/libraries/source/spidermonkey/mozjs-91.13.1/ will be nuked every time update-workspaces.sh is run.
  14. Heh, looks like @Itms was a few of hours ahead of me in investigating! At a guess, this: https://salsa.debian.org/cpython-team/python3/-/blob/python3.10/debian/patches/distutils-install-layout.diff (There is also https://salsa.debian.org/cpython-team/python3/-/blob/python3.10/debian/patches/sysconfig-debian-schemes.diff which modifies sysconfig, which appears to be where DEB_PYTHON_INSTALL_LAYOUT is read.) It adds two new "Install Schemes": unix_local and deb_system. The default "Install Scheme" for Debian(-derived) distros is unix_local; which has the "purelib" path template of '{base}/local/lib/python{py_version_short}/dist-packages' which matches @zyli's initial report above. With the DEB_PYTHON_INSTALL_LAYOUT environment variable set to "deb", the "Install Scheme" used changes to deb_system; which has the "purelib" path template of '{base}/lib/python3/dist-packages', which matches the last reported attempt. Both patches have code that detects virtual environments (and uses the posix_prefix install scheme instead in that case) - however this detection only functions when it is run inside a virtual environment, and this point of the spidermonkey build process is run outside it. That said, I may have a solution:installscheme.patch @hyperion Out of curiosity, are setuptools/virtualenv/distutils installed globally in that image? (Or need installing globally as part of the process?)
  15. Something has changed: the path given by the "FileNotFound" error message earlier: '/home/domowy/svn/0ad/libraries/source/spidermonkey/mozjs-91.13.1/build-debug/_virtualenvs/common/local/lib/python3.10/dist-packages' has now lost its "local" subpath '/home/domowy/svn/0ad/libraries/source/spidermonkey/mozjs-91.13.1/build-debug/_virtualenvs/common/lib/python3/dist-packages' One step forward! @zyli, would I be right in thinking that if you go to /home/domowy/svn/0ad/libraries/source/spidermonkey/mozjs-91.13.1/build-debug/_virtualenvs/common/lib/python3 there is a "site-packages" subdirectory but not "dist-packages"?
  16. Out of curiosity @zyli, if you enter the following into a python3 interpreter... >>> import sysconfig >>> sysconfig.get_default_scheme() >>> sysconfig.get_scheme_names() >>> sysconfig._get_preferred_schemes() ...what output do you get? Also, do you happen to have python3-distutils installed?
  17. Intentional (by design of the session UI, not the Structure Tree), and dates back to this Revision. Easily changed by altering this line of code. Note the same thing occurs in the game setup screen (also by design, and also that Revision, but behaviour defined in a different file).
  18. My thoughts: I like git; (Bit controversial, but) I also like Phabricator (and, despite its flaws, arcanist!) (So I'd like to see consideration of migrating across to Phorge - once the Phorge team release a guide as to how to do that!) I'd like to see the repository split to differentiate between the engine and the game; I'd like to see binaries off-loaded via git-lfs or some other suitable tool; I'd like to for us to stop committing Windows-only binaries into the repository, but make them available through other means for those unable (or unwilling) to build themselves: The same process could potentially be used to provide "nightly" builds for macOS and some Linux distros as well; (On a related note, I'd also like to see a build script for Windows like the one we have for macOS - e.g. it also fetches and builds the libraries/dependencies. But that's for another thread.) We should continue to be self-hosted where possible;
  19. In the initial flurry of interest from/discussion between various concerned parties to continue Phabricator in some form, one user proposed dropping support for subversion and mercurial (so as to permit pushing directly to a phabricator-managed git repo with "git push" instead of having to use arcanist). There was some push back from others about losing mercurial support but not a single voice against the proposed loss of support for subversion. (Link to the discussion - requires login.) Since the fork ("Phorge") has established itself, the only mention to subversion that I can find (in the publicly/guest accessible bits, anyway) is in the list of "projects" for the various components of Phorge. As you might note - a project hasn't been created for subversion, although it is in the list. According to the comments below the list, projects will be created on a "as-needed" basis. So it looks like there's no plan to drop subversion support... but also no-one has stepped forward to express an interest in maintaining it either. (Unlike mercurial, who does have someone.)
  20. Reference: https://code.wildfiregames.com/D4316
  21. Some other long words in English: https://www.youtube.com/watch?v=NQrxzgd6ASA And there are plenty of suggestions in the comments for other long words both in English and other languages... hope no one suffers from hippopotomonstrosesquippedaliophobia*! (* - Fear of long words)
  22. (@hyperion if you did that, you would get the following: WARNING: specificName should be an object of civ->name mappings in budhist_evangelism.json) @PyrrhicVictoryGuy It should read something like: ... "specificName": { "bact": "Buddhist Evangelism" }, ...
  23. Pretty self-explanatory. Please specify the correct civ within your structure templates. Either provide the missing template, or provide a suitable alternative under SkirmishReplacements in simulation/data/civs/bact.json.
  24. @Stan` Not yet - at a cursory glance, it looks like https://code.wildfiregames.com/D3613 might resolve it. (I'm a little busy with work right now, so if anyone wishes to commandeer and take it further do feel free.)
  25. Whilst autotools may use CBUILD for the build system and CHOST for the system that the built application is to run on, premake5 uses os.host for the build system and os.target for the system the built application is to run on. Thus, I think you might want to go back to os.istarget("windows") in your patch, as the rest of the file expects arch to be that of the system the built application is to run on, and pulls in the correct architecture-specific headers accordingly. (Of course, I could be getting confused...) (That said, the architecture detection on Windows is broken anyway: our autobuilder is 64-bit but spits out a 32-bit executable... the only thing telling it what arch to build for is what you see in that file.)
×
×
  • Create New...