bones_was_here [Wed, 26 Feb 2025 01:54:20 +0000 (11:54 +1000)]
rsync: implement SSL/TLS, change URL
I've added rsync TLS termination to the xonotic.org reverse proxy and
updated its rsyncd config. Legacy Xonotic rsync updaters are still
supported.
These client scripts use openssl to verify the server certificate and
protect the rsync connection.
Changed the URL so the server config no longer needs to define a module
for every package, so rsync URLs can also be browsable via https, and so
we don't confusingly use beta.xonotic.org to update to a stable release.
bones_was_here [Wed, 26 Feb 2025 01:56:50 +0000 (11:56 +1000)]
rsync: improve status messages, fix target selection
Fixes printing the wrong message "release" when updating from an
autobuild zip. That code can't distinguish between rsync and release
reliably (because an autobuild zip has the release-style pk3 names) and
doesn't need to.
Fixes the "secret trick" potentially clobbering the filesystem:
downloading update-to-autobuild.sh separately to /home/user/Downloads/
and running from there it downloaded Xonotic to ~/Downloads/Xonotic/,
but if run again it detected that new Xonotic/ directory and set the
rsync target to ../../.. (ie /). That fallback target is no longer
supported as it's a bit odd to download a complete copy via the updater,
but it can still be done by creating the script parent directories.
Moves the main "Do you want to continue" after other messages so the
user is better informed about what they're confirming.
bones_was_here [Wed, 19 Mar 2025 19:52:42 +0000 (05:52 +1000)]
rsync: mostly replace Windows batch script with POSIX shell script
This makes advanced features easier to implement because the language is
more powerful and standardised, and allows most of the code to be shared
by all platforms.
The Linux script is better so this brings various improvements.
Fixes minor inconsistencies in Windows file excludes.
bones_was_here [Tue, 11 Mar 2025 21:00:09 +0000 (07:00 +1000)]
rsync: automate Windows binary maintenance
Sources from msys2 rather than cygwin because msys2 uses ~standard
pacman which allows a linux build server to fetch the current bins
cleanly, also msys2 has newer rsync and openssl.
Increases minimum Windows rsync OS requirement to Windows 10 x64,
see https://www.msys2.org/docs/windows_support/
Removes redundant copy and chmod batch steps.
The chmod was a workaround only needed due to running rsync with
--executability (needed on linux but it was probably a mistake to use it
on windows where it causes problems due to windows' lack of a direct
equivalent of the unix execute permission).
bones_was_here [Mon, 17 Mar 2025 23:05:33 +0000 (09:05 +1000)]
rsync: improve robustness of scripts, fix non-interactive mode
POSIX shell:
- In non-interactive mode an infinite loop occurred unless the --yes
argument was passed.
- `which` is a non-standard program, `command -v` is a POSIX standard
shell builtin.
- `exec` prevents potential glitches when the script is updated by rsync
while still running.
Windows batch:
- Variable assignments persisted after batch exit, potentially
interfering with other batch execution.
- If copying failed the window closed before the error could be read.
This is based on wiki pages and DP's CONTRIBUTING.md and it adds some
policies that previously were expected but not documented.
This is intended to replace policy and licensing sections of the wiki,
partly to collate these and partly because only the Team should be able
to push updates to them.
bones_was_here [Wed, 27 Dec 2023 14:09:08 +0000 (00:09 +1000)]
Remove buildfiles: second copy of SDL for Mac specific to dev/git builds, and related workarounds for old DP
Mac users will need a newer version which can be installed from homebrew
as mentioned in https://gitlab.com/xonotic/darkplaces/-/blob/master/README.md#macos
bones_was_here [Mon, 25 Dec 2023 09:14:02 +0000 (19:14 +1000)]
Remove libode from Linux autobuilds
This is still supported if the system has the lib installed. We can
build and ship the library (for Windows too) if people want to use it,
in the meantime we can remove the precompiled version from the repo.
drjaska [Thu, 21 Dec 2023 21:01:13 +0000 (23:01 +0200)]
Windows: use build-environment-supplied libSDL2 in developer builds
This requires developers to have installed SDL2 from MSYS2's `pacman` as
documented in https://gitlab.com/xonotic/xonotic/-/wikis/Repository_Access
Fixes failure to build current DP on Windows: the precompiled SDL2 in
this repo is too old.
Removes the need for manually maintaining that library and storing it in
this repo.
bones_was_here [Mon, 18 Dec 2023 02:59:10 +0000 (12:59 +1000)]
Makefile: improve robustness
Defines all build stages in terms of files generated/required instead of
using PHONY targets.
Ensures `clean` target completes before build targets start and that
no other targets can run while a clean or update target is running.
Works around d0_blind_id autotools flakiness.
Fixes clean targets failing and causing an abort if the d0_blind_id
Makefile doesn't exist.
bones_was_here [Sun, 17 Dec 2023 12:49:25 +0000 (22:49 +1000)]
Misc build updates
Switch to apple's special linker.
Avoid multithreaded flakiness with mac builds.
Strip linux and windows bins (mac bins already were stripped), we almost
never get backtraces for bugs and the few people who are able to produce
one are also able to compile a debug binary.
Unset *nix executable bit on windows dlls.