The default is to link against the most-recent musl version available
within the crosstool-ng toolchain, which is currently 1.2.2. Unlike
with glibc, there's no point in sticking to some older version.
The CT_GLIBC_KERNEL_VERSION_NONE option is about the minimum kernel
version supported by the toolchain's glibc. The default is to stick to
the version of the kernel headers, which should be just fine.
make-*: include musl build in make-binaries
Ctr actions: use github runners to provide bootstrap erlang
- adjust make-binaries script to use github runners' installed erlang
for bootstrapping
- this reduces the need to build an unnecessary toolchain for glibc
based binaries
Update zlib to 1.2.13 to address CVE-2022-37434
Also change zlib download to use archive URL so builds do not fail
when specified version is no longer the current version
Don't break the (currently nonexistent) case where a dependency's
rebar.config file specifies LDFLAGS before and after "-lstdc++", such as
"-lfoo -lstdc++ -lbar".
The tools/make-binaries script creates self-contained OTP releases for
Linux/x64 and Linux/arm64 systems. All optional ejabberd features are
supported. Erlang/OTP, Elixir, and all dependencies are downloaded and
built from source (using crosstool-NG). The generated binaries depend
on glibc 2.17 or later, all other external libraries are linked
statically.
The script should work on any non-ancient Linux/x64 system and requires
just a few common development tools (to bootstrap crosstool-NG).
The release is installed by creating an "ejabberd" user, extracting the
archive into /opt, and moving the systemd unit (or init script) into
place.