@Pentarctagon noticed in commit 9a34cbb329 that $UID isn't set when
/bin/sh isn't GNU Bash. `id -u` is specified by POSIX:
https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/id.html
Also move `-xe` to a `set` command (in case someone runs scripts with
`sh path/to/script` instead of `path/to/script`) and add `set -u` to
complain more loudly about such unset variables.
This is a complement to #7416 where it replaces opening the replay's download URL in a browser with directly downloading it into the player's save folder.
Unlike rwgrim/msys2-cross this Dockerfile doesn't require manual setup
as it downloads msys2 itself. Though it uses archlinux as image base
instead of debian in order to reuse archlinux's own pacman.
Steam's scout image provides way too old openssl library version which doesn't
doesn't properly handle recent expiry of one of root Let's Encrypt
certs.
The gcc-9 shipped with the Scout runtime forces the use of -static-libstdc++ which is what allows this to work. However, LTO is not yet able to be enabled since as of right now it simply crashes immediately with `free(): invalid pointer`.
Reasoning being:
* The result_set and other APIs are nicer to use.
* We use mariadb on our server rather than mysql, so this would minimize the chance of any incompatibilities.
* The mysql C++ connector 1.1 isn't compatible with with c++17 (https://stackoverflow.com/q/47284705).
Loonycyborg already uses these tools with Python 3.
The python launcher tool for Windows has magic handling for some shebang lines,
however `#!/bin/env python` isn't recognised without the `/usr`. Had the `/usr`
been included with the old code then these scripts would likely have been run
with Python 2.
https://docs.python.org/dev/using/windows.html#shebang-lines