Commit Graph

24553 Commits

Author SHA1 Message Date
Itms 7b3d6ce04e New appdata entry for A27.1
Fixes #7986

(cherry picked from commit 406565f3c4)
Signed-off-by: Itms <itms@wildfiregames.com>
a27.1-rc1
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>
a27
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
real_tabasco_sauce 5bd9a07731 Add gathering animations to the marian legionary
Fixes #7438

(cherry picked from commit 60d388804a)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 06:48:06 +01:00
Itms 73b2eed323 Fix unix-build tarball inclusion of text files
The .txt were wrongly send to a subdirectory named `.` and the files
converted to Markdown were forgotten.

(cherry picked from commit e1ecc4a743)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:31 +01:00
Itms 4d2e7d6a70 Remove unused Ptolemaic Juggernaut prop template
This is an oversight from 415304db8a and #6660.

This forgotten template cropped up in #7525. It does not contain the
needed components to interact correctly with the player.

(cherry picked from commit 95fb0f9ed0)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:30 +01:00
Ralph Sennhauser cc67acde62 Remove spurious fi in build-source-libs.sh
d15f1c29e4 added an extra fi, remove it.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit efc9c09280)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:29 +01:00
Ralph Sennhauser f14b29923e Prefetch tarballs in bundle pipline
Fetch third party tarballs for source packages so they will be bundled
in source release tarballs.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 3aa95b7a28)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:28 +01:00
Ralph Sennhauser 0c154623b4 Add support for fetch-only for libraries
Used to prefetch all required tarballs to build pyrogenesis later
without network access as is common for Linux package build and some
other CI environments.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit f9a43c8c40)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:27 +01:00
Dunedan f9adb4379e Ensure buttons on summary screen are always on top
On low vertical resolutions when playing games with 8 players in 4
different teams, the summary will overflow the available vertical space.
This commit ensures that in such a case the buttons below the summary
are still clickable by ensuring they stay always on top of the summary.

(cherry picked from commit 4d19935f48)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:26 +01:00