Commit graph

24560 commits

Author SHA1 Message Date
Itms
69461c90b7
Bump build date of A27.1 RC2
(cherry picked from commit 16bcc5a870)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 18:36:33 +02:00
Itms
6b763af4c8
Fixup SpiderMonkey DLL for Windows 7 on Win32
Pulling the DLL from SVN is performed separately to allow backporting
to A27.

Accepted-By: sera
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/8175
(cherry picked from commit b362f0537a)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 15:19:15 +02:00
Ralph Sennhauser
0dbc1f604a
Add support for specifying pkg-config via env
For cross compiling there is a need to specify an alternative binary for
pkg-config. It's customary to use the environment variable PKG_CONFIG for
this.

Ref: #8135
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 2b5830e82a)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 15:18:21 +02:00
Ralph Sennhauser
bf4eee555f
Don't export HOSTTYPE in update-workspace.sh
Exporting HOSTTYPE prevents cross compilation as HOSTTYPE is used to
override target host arch instead of detecting it from chosen compiler.
This then results in the wrong arch specific source files to be
included. So just don't set it by default and let it to the user to set
it if he so chooses.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 707abee34d)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 15:17:22 +02:00
Itms
dae7a8c394
Bump engine version to 0.27.1 2025-07-12 15:14:45 +02:00
Itms
4633a2d522
Extend previous commit
Backport part of 0e1c881fef
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 15:14:34 +02:00
Dunedan
aa3767d2f9
Fix pre-commit workflow to work with Ubuntu 24.04
(cherry picked from commit 782bab293b)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-08 11:16:31 +02:00
Itms
7b3d6ce04e
New appdata entry for A27.1
Fixes #7986

(cherry picked from commit 406565f3c4)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-20 12:04:50 +02:00
elexis
c98ae10e39
Fix change perspective in replays
Fixes change perspective features of multiplayer replays following cheat
protection in 023527e56e.

Fixes: #8020
(cherry picked from commit 67eaa8f1a9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:59:26 +02:00
Lancelot de Ferrière
655a444847
Always allow last-ditch GCs
As noted on #7979, we run into OOMs since commit af32d386b9. The reason is that the default incremental GC budget is unlimited, which actually doesn't perform incremental GCs. Our settings can lead to situation where the incremental GCs don't actually sweep, thus not freeing memory.
SM has a mechanism to avoid OOM anyways with LAST_DITCH GCs, but by default these can only occur ever 30 seconds. Turn this off.

Reported by: langbart

(cherry picked from commit e3e542b1f9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:58:32 +02:00
Ralph Sennhauser
182b1e3ee6
Fix memory leak wrt renderer instance
The renderer instance is created with new, so use delete.

Direct leak of 80 byte(s) in 1 object(s) allocated from:
    #0 0x7fd3c932870b in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/15/libasan.so.8+0x12870b)
    #1 0x55bbedf25fb0 in InitGraphics(CmdLineArgs const&, int, std::vector<CStr8, std::allocator<CStr8> > const&, ScriptContext&, ScriptInterface&) ../../../source/ps/GameSetup/GameSetup.cpp:654
    #2 0x55bbed2bb95e in RunGameOrAtlas ../../../source/main.cpp:684
    #3 0x55bbed271b28 in main ../../../source/main.cpp:759
    #4 0x7fd3c665f3ed in __libc_start_call_main (/lib64/libc.so.6+0x263ed)

Fixes: #7951
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 03fd1acd5d)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:58:03 +02:00
Ralph Sennhauser
60a44dfc26
Never strip binaries automatically
Striping is trivial, getting the debug symbols if premake just strips
them silently is a pain tho.

Stripping should optionally be done during install, as we don't have an
install target nor an install-strip target, make it a configure option
which is off by default.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 1fac3461f9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:57:03 +02:00
Dunedan
38e4cdc755
Fix password change for certain usernames
This fixes the ability for users with uppercase letters in their
username to change their passwords, which wasn't possible before on
non-Windows platforms. The underlying issue for that is
https://github.com/processone/ejabberd/issues/4377 and in addition some
inconsistent normalization of usernames in password change requests
by gloox. This commit works around that by always using the local JID
part as username for password requests, which got the nodeprep string
profile already applied.

It also fixes a problem that Windows users which were able to change
their passwords, weren't able to login afterwards anymore, unless they
typed their username in all lowercase in the login form. This was caused
by using the all lowercase username as input for the password hash
function, instead of using the username in the user supplied case.

Fixes #7796

(cherry picked from commit 638391d7ab)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:53:33 +02:00
Lancelot de Ferrière
68d99b3944
Fix no-pch build following #7829
(cherry picked from commit dd74892463)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 22:29:09 +02:00
Itms
5ffddd0cc4
Implement pipeline for generating patch releases
The new patch-release pipeline takes a git branch originating from a
release tag, applies the changes since the tag onto the nightly build of
the release, and rebuilds the Windows binary.

All resulting changes are sent to the bundling pipeline which builds for
macOS and creates the tarballs and installers.

There will be two instances of the bundles pipeline: the main one will
keep tracking the main branch and providing biweekly bundles of the next
release, while a new patched-bundles pipeline will be manually used to
generate patch releases.

(cherry picked from commit 51ab929926)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:22:12 +02:00
Itms
2721d642b8
Allow downloading Windows libraries into nightly
(cherry picked from commit c38b40cda8)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:13:10 +02:00
Lancelot de Ferrière
e1daff1869
Iterate the component map only once on serialization
(cherry picked from commit 9eccf1f27d)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:05:53 +02:00
Lancelot de Ferrière
e5df3e1ad8
Skip UTF8 conversions in prototype name
(cherry picked from commit ea34960249)
(fixed build on 520c489b68 by moving a change to this commit)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:05:00 +02:00
Lancelot de Ferrière
5ab58f82f0
BinarySerializer: avoid creating unnecessary ScriptRequest
(cherry picked from commit bcd0e12cc3)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:02:58 +02:00
Lancelot de Ferrière
520c489b68
Cache property keys during component serialization
(cherry picked from commit ab6a420f78)
(fixed build on this commit by moving a change to commit originally ea34960249)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:00:56 +02:00
Lancelot de Ferrière
0fdd6005b8
Skip redundant HasProperty in GetObjectClassName
(cherry picked from commit 83bf2eb22e)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:59:21 +02:00
Itms
3fce9a37cc
Generate signatures and hashes in the bundles job
(cherry picked from commit 1adab34511)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:50:14 +02:00
Lancelot de Ferrière
e4b604982a
Stop running shrinking gcs & simplify GC logic.
Shrinking GCs dump the JITted code, which leads to redundant recompilations, lowers performance, and makes profiling JS more difficult.
They may still happen if the runtime is at risk of OOM.

(cherry picked from commit af32d386b9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:49:41 +02:00
phosit
b78b666797
Catch all std::exception from a map in atlas
Since 0eed117e6d exceptions from the map generation script are rethrown
in the main thread but not all of them are catched.

This defect is already fixed in the engine with 82513c9104

Fixes: #7620
(cherry picked from commit 56abf84da2)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:48:54 +02:00
Dunedan
2fcce77ad4
Properly terminate the XMPP connection
This ensures the XMPP connection gets properly terminated when leaving
the lobby.

Fixes #7504

(cherry picked from commit 312c6e8165)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:48:33 +02:00
Dunedan
83c8ec1b4a
Create port forwarding for correct port with UPnP
Up to know the UPnP logic ignored the port a user was hosting a game on
and always added a port forwarding for the default port UDP 20595. This
commit fixes that, so a port forwarding is added for the actual port a
game is hosted on.

(cherry picked from commit fcd3fc2aa3)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:47:43 +02:00
Dunedan
a7694ef8b3
Fix adding port forwardings using UPnP
The UPnP implementation included a combination of two subtle bugs, which
resulted in failure to create port forwardings every time after the
first one.

When using UPnP, the internet gateway to create the port forwardings at
needs to discovered. As that takes a while, the its root descriptor URL
was supposed to be cached after successful discovery in the user config
in "network.upnprootdescurl". However, instead of caching the root
descriptor URL, the control URL got cached. That caused following
requests to the root descriptor URL to fail, as they ended up at the
control URL instead. As such requests might also fail when the network
topology changed, the code was supposed to fall back to discovering the
internet gateway again when the cached one didn't work. However, due to
the inner workings of miniupnpc the request using the cached root
descriptor URL didn't result in an error, so the new discovery was never
triggered. As the wrong value was persisted in the user config there was
also no way to get out of this situation again.

This commit fixes both of these bugs.

As far as I can tell these bugs existed since the introduction of the
caching of the root descriptor URL in 0ba25e9968, which means creating
port forwardings using UPnP has been broken since Alpha 15.

(cherry picked from commit 18d7746c84)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:44:35 +02:00
fiftydinar
5012d1f1c0
Add StartupWMClass to desktop file
This fixes the potential edge-cases of icon not showing, like in Gnome's dash for example.

(cherry picked from commit 26acb9df22)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:57:43 +02:00
Ralph Sennhauser
73dec93113
Cmake-4 support for nvtt
Fix nvtt build to support cmake-4, while at it also fix other
related outstanding cmake issues in nvtt.

Fixes: #7538
Fixes: #7764
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 263b481442)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:57 +02:00
Vladislav Belov
c4d10eedfd
Fixes runtime switch of the GPU skinning.
Fixes #7572, #7630.

(cherry picked from commit 2264807ad0)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:56 +02:00
Vladislav Belov
21ec2f0ab8
Allows compute shaders for GL only since 4.3.
It seems current checks for GL 4.2 aren't enough so just disable
compute shaders for GL 4.2. Fixes #7734.

(cherry picked from commit fa3fb5d064)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:55 +02:00
Vladislav Belov
85cc968be0
Fixes out of bounds during GL buffer binding.
There was an out of bounds access during binding a uniform buffer on
GL. Fixes #7567, #7598.

(cherry picked from commit bce6e2c238)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:54 +02:00
Dunedan
ef9ea478ec
Add workaround to turn off nursery size heuristic
SpiderMonkey 98 introduced a size heuristic for the nursery GC region
(https://phabricator.services.mozilla.com/D136637). As this heuristic
uses a wall-clock time duration, it results in a severe performance
regression on slower systems for our use case.

This commit adds a workaround to turn off that heuristic, by telling
SpiderMonkey that a "page load" (something which doesn't have a meaning
in the context of pyrogenesis) is in progress, as that heuristic is
disabled for page loads.

Co-Authored by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Fixes #7714

(cherry picked from commit 11dd480b67)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:53 +02:00
Ralph Sennhauser
417af009ea
Don't map unknown scancodes to hotkeys
Users may generate key presses that don't map to a distinct SDL scancode
and will be mapped SDL_SCANCODE_UNKNOWN instead. Using the same ID for
unmapped hotkeys means any such key press will execute unset hotkeys. As
luck would have it in #7644 this leads to calling "Custom exit to
desktop" if the hotkey is unbound as is the default.

So simply use a code for unused hotkeys that doesn't map to any SDL
scancodes.

Fixes: #7644
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit f10526284f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:52 +02:00
Itms
fa5f81ba6f
Fix Jenkins pipelines on Linux agent
The Linux agent now runs Docker in rootless mode for additional
security. Operations inside containers must be run as root to match the
underprivileged user running Docker.

(cherry picked from commit b831b1f559)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:51 +02:00
Ralph Sennhauser
30fe4f7fdc
Remove root check in update-workspace.sh
If you run as root then created files will be owned by root, this is
expected behaviour and not messing with permissions as stated in the
error message.

Running in a container the root user may map to the user starting the
container while all other users would need mapping to be able to work
with a bind mounted a checkout.

Further Debian patches out the root check to be able to build on their
builder.

Given the above remove the check.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 6738fdbab7)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:50 +02:00
Ralph Sennhauser
1ec2709236
Bump Windows libs for premake5 beta4
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 8baff65e95)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:49 +02:00
Ralph Sennhauser
fa1f474d6e
Use new premake lto api if available
Premake v5.0.0-beta4 replaces the LinkTimeOptimization flag with a
function linktimeoptimization, use it if available to avoid deprecation
warning.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit df38d4e899)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:48 +02:00
Ralph Sennhauser
e2d4ad6c40
Update premake to v5.0.0-beta4
https://github.com/premake/premake-core/releases/tag/v5.0.0-beta4

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 84b407aa35)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:47 +02:00
AFCMS
851bbf07ac
Improve the software center display of the application
- OARS content rating have been updated to version 1.1
- Touch Screens, Keyboard, Mouse have been marked as supported
- Laptop screens and bigger are marked as required to the minimum width of 1024 required by the game
- Fixes the device compatibility page on GNOME Software.
- added a "0AD" keyword to  fix an issue with Flathub search feature where searching for "0AD" instead of "0 A.D." returns no results.

(cherry picked from commit 51bbdc6537)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:38 +02:00
Stan
8a593904d5
Patch metainfo file to to match the new requirements
(cherry picked from commit cf0c285d8e)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:24 +02:00
Vincent Cheng
ef42efe1e1
Make sure mozjs patch FixFpNormIssue.diff applies cleanly on i386
(cherry picked from commit 026a668a0f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 21:31:27 +02:00
Martijn van Duren
8a31db1659
OpenBSD supports pkg-config
(cherry picked from commit 064ab14577)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 21:04:53 +02:00
Martijn van Duren
50127606b3
Make libraries/*/build.sh use "${TAR}" instead of tar directly.
This allows systems using a tar version not supporting all the required
flags to easily switch to gnu tar.

(cherry picked from commit 2338473da1)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 21:03:12 +02:00
Ștefan Talpalaru
8053860a5b
build-source-libs.sh: fix "--with-system-premake"
(cherry picked from commit 3ff3f72890)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 21:02:41 +02:00
Ralph Sennhauser
6746f380f7
Add missing header in KeyName
Reported-by: @svenstaro
Ref: #7564
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit bccd3db231)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 20:59:22 +02:00
Dunedan
8c69bb026d
Update supported languages for the NSI installer
235ea5cfb4 updated the languages supported by 0 A.D., but missed
updating them for the installer. This commit makes up for that and
updates the languages for the installer as well.

(cherry picked from commit db35a8494c)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 19:30:34 +01:00
Vladislav Belov
d4e1b8b9db
Disables compute shaders for GL ARB backend.
(cherry picked from commit a7ead4cf4c)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 19:28:00 +01:00
Vladislav Belov
8f8d08b9f3
Disables GL storage buffers on Mesa.
This is a workaround to avoid disabling GL storage buffers completely.
Because they might not work or might lead to a decreased performance.
We need to investigate that further when we have a local reproduce.

(cherry picked from commit 635a268dd9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 06:49:26 +01:00
Itms
0651c11977
Fix crash when trying to join games in lobby dialog
This fixes an oversight from d655455304. During a code deduplication, a
check was removed. When looking at the lobby as a dialog (while in
gamesetup), it should be impossible to try to join a game.

(cherry picked from commit 6ac5c376ea)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 06:48:51 +01:00