run the same test cases for both Arch Linux and Ubuntu
+ rename Dockerfile.arch to Dockerfile.archlinux (the former is a bit
misleading - arch==architecture or what?)
ensure URL is not empty
see also f4f54fda - adding -f to curl caused URL to be empty if release
was not found (was to be created) - the GH REST API returns 404 with
a valid body without -f but fails with empty. Since `-o pipefail` is not
used, the curl error was not used because last command of pipeline is jq.
The REST API returned 4xx on unknown object but valid JSON body. As
written originally, valid JSON was assumed (result queried on null).
So revert back the original curl calls where acquiring JSON.
- '|| true' no longer needded
- CFLAGS also doesn't seem to be required
- remove --disable-shared - when possible, linkling dynamic library may
be rather preferred than the contrary
compute SHA256 checksums for builds
this is useful at least for 2 reasons:
1. user can ensure that the build comes really from the CI (isn't
tampered)
2. can identify or match version with appropriate action run (the $VERSION
is usually always "continuous", except for releases)
The sha256 sum is currently only show in the protocol, not uploaded
to GH releases - this doesn't seem to be needed because GH currently
already prints the checksum by itself on the download (releases) page.
Skip computing checksum in Win when uplad-artifact is used - the zip
is actually created by the Action so we cannot compute the checksum
on it.
/sbin/sha256sum is not present in CI mac workers for some reason
CMAKE_OSX_SYSROOT is empty by default since CMake 4 [1] so make a workaround
MSCOS_SDK_VERSION_MAJOR and _MINOR seems to be unused but are derived
from MACOS_SDK_VERSION which is conversly derived from MACOS_SDK_NAME,
which can be now eg. /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
(`xcrun --sdk macosx --show-sdk-path`) - not containing the version
string in expected form.
[1]: https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_SYSROOT.html
doesn't need to be patched
Also, the dynamic version may be slightly better because it is separated
from UG, eg. also because the uv binary and reflector both link with
this so not linking twice (increasing overall size).
This simplifies things a bit at the expense that the soundfont is always
included/installed (91 kB).
Added get_data_path() function for generic handling the path to common
data (eg. /usr/local/share/ultragrid if installed). The idea is to catch
all cases - installed (run with absolute or relative path) or run from
inside the source directory in one place.
in similar fashion as already done for install_sdl.sh
As a bonus, we do not need to depend on whole prepare.sh for cache
rebuild but only on this script, which is perhaps cleaner and may
yield less rebuilds. Also prepare.sh is slightly easier.
the script is sourced so errexit+nounset is perhaps not yet set
But it is better to exit early, especially when setting the environment
variables that are considered a prerequisite.
add all to one script with deps/build_install/install_cached actions
- yml - use action @main
- cache: do not depend .github/scripts/Linux/prepare.sh, just the
catch-all SDL install file
- build SDL,SDL_ttf without entering the dir (as fluidsynth already does)
Install the qt6-wayland package - the plugin will then be deployed to
the AppImage automatically.
for the case when user has set QT_QPA_PLATFORM=wayland
+ also to LIBRARY_PATH - this will is done also with -L in configure,
probably
Seems like that /usr/local/lib has never been in LD_LIBRARY_PATH and
somehow it didn't matter so far. But with fluidsynth build, we now get
in CI (== also prevents build):
```
ultragrid_acap_fluidsynth.so: libfluidsynth.so.3: cannot open shared object file: No such file or directory
````
In U22.04 (current Linux CI image), fluidsynth depends on sdl2, which
is undesirable. Actually we need to avoid sdl2 linking altogether.
Build from sources alongside with SDL. This makes sense since SDL_mixer
used to be build there and fluidsynth is replacing it.
+ prevent libsdl2-2.0-0 from (accidentally) installing
In Debian/Ubuntu, libbacktrace is part of libgcc-XY-dev package so no
need to install anything (but this doesn't hold eg. for Arch where this
is a packed as a standalone package libbacktrace).
live555 HEAD commit is now f4a4e8fb0
testRTSPClient.cpp:64:24: error: copying variable of type 'EventLoopWatchVariable' (aka 'atomic<char>') invokes deleted constructor
64 | EventLoopWatchVariable eventLoopWatchVariable = 0;
Print the output variable assigned in the script in case that this
fails, otherwise it on the output without NL and will be prepended to
next var (if any).
This also simplifies the call in YAML.
XIEMA uses something like (for ARM mac):
"cs-cz|6ea47896-cfc1-4c33-a2cc-5dc7ee38de39|15.05.2024 11:57:53|LiveSite"
where the spaces and pipes may cause problems later if not properly
sanitized. Doesn't seem to cause problems so far but perhaps still better
to sanitize.
Keep just chars from Portable Filename Character Set (alnums + <space>,
<dash-minus>, <underscore>), other replace with _.