Debian 13 removed the `cross-gcc-dev` package as it was unmaintained
(Debian bug #1107126). This broke the existing cross build setup.
Instead, switch to using binary cross-gcc packages, which work the same
without having to manually generate the libraries. This is still fully
symmetrical.
Allows specifying --debug to build.py to build Debug builds of the
server, facilitating easier debugging. This is then called by default
for weekly builds.
Adds a system to build.py which can automatically determine which
version of each upstream framework (.NET, NodeJS, others in the future)
a given HEAD is at in the submodules, and provide that build argument
into the Docker builds.
This will ensure we can reliably build versions on either side of a
framework version transition (i.e. both stable and master) without any
manual work.
For an explanation of how it works, see the comments in `build.yaml`.
Future code framework updates will need the `build.yaml` updated to
include the relevant (merge) commit hash and version.
Also adds better logging, including this new framework version as well
as a record of the Docker build commands for each build.
Using is_stable avoids "not is_unstable" which is confusing. Make
stability the default.
Also clean up the now completely unnecessary version_suffix in Docker
builds, as the only decider is stability.
Remove some duplicated code by refactoring the architecture checking
into a function. The error paths would have also likely resulted in
NameErrors being thrown due to function arguments having underscores, so
that has been corrected as well.
Provides much more reliable and consistent argumentation and help
documentation for the script.
Also supports "auto" as a version identical to "master" for better
clarity of what it does.