Commit Graph

651 Commits

Author SHA1 Message Date
Martin Pulec
de37ee3a70 CI Dockerfile.ubuntu: adjust also for ubuntu-latest
some packages changed its names
2025-11-25 11:55:49 +01:00
Martin Pulec
8b13221a05 CI Linux: run Docker tests in parallel 2025-11-25 11:55:49 +01:00
Martin Pulec
9e7f643aed docker_appimage_tests.sh: simplify
add the version unconditionally in the script and do not add a placeholder
to Dockerfile
2025-11-25 11:55:49 +01:00
Martin Pulec
aa3051dc0e CI Linux AppImage Docker: try also latest Ubuntu 2025-11-25 11:55:48 +01:00
Martin Pulec
59069b8361 CI Linux AppImage check: run at once 2025-11-25 11:55:48 +01:00
Martin Pulec
8e9f142f7c CI Dockerfile.archlinux: add missing deps
- harfbuzz - blacklisted by AI excludelist
- xorg-server-xvfb - needed for GUI test
2025-11-25 11:55:48 +01:00
Martin Pulec
53892bbd0a CI Linux AppImage test: run tests for both distros
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?)
2025-11-25 11:55:48 +01:00
Martin Pulec
e693ca0b98 GH/.../docker_appimage_tests.sh: quote vars
+ split long lines
+ move --appimage-extract to the begining

all changes are mostly a refactor
2025-11-25 11:55:48 +01:00
Martin Pulec
709276a8af CI: mv AppImage Docker tests to standalone script 2025-11-25 11:55:42 +01:00
Martin Piatka
2ee732aae4 CI: Linux/SDL: Install xtest build dependency 2025-11-20 12:38:37 +01:00
Martin Pulec
8bb8b2cb81 gh/create_release: check URL not empty
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.
2025-11-20 09:08:42 +01:00
Martin Pulec
f4f54fdae9 partially revert 194cb695
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.
2025-11-14 16:30:28 +01:00
Martin Pulec
fc5ff25315 CI PCP: simplified
- '|| 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
2025-11-14 13:47:04 +01:00
Martin Pulec
8cfe1af9c3 CI Win PCP: removed the patch
accepted in upstream
2025-11-12 10:13:40 +01:00
Martin Pulec
cc5ff8417d CI: move cineform patch to patches/ subdir 2025-11-12 08:15:14 +01:00
Martin Pulec
bfbaddb2f0 CI Win: unpin libpcpnatpmp
but the code still needs to be patched

this roughly reverts the commit 382f2fc26b
2025-11-11 16:19:57 +01:00
Martin Pulec
960a36288d CI: compute checksums
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
2025-10-31 16:18:57 +01:00
Martin Pulec
fd38dbfadb CI Linux FFmpeg: build with liboapv
to support APV in Linux binary builds
2025-10-24 11:23:00 +02:00
Martin Pulec
da5c166935 CI Windows: updated Spout build
the CMakeList.txt in upstream changed build location

+ print missing items in configure.ac
2025-10-20 11:41:56 +02:00
Martin Pulec
0921b1d30b CI Linux FFmpeg: build own dav1d
current FFmpeg code requires dav1d >1.0.0 but in Ubuntu 22.04 is just 0.9.2
2025-10-03 15:57:09 +02:00
Martin Pulec
3f0d98a18f CI Linux FFmpeg: update libde265 patch
the original version no longer applied so the UG/FFmpeg build failed
2025-10-03 15:19:58 +02:00
Martin Pulec
5de91b212f configure: testcard-extras - move to testcard2
The sdl_mixer audio capture has gone and there remains just TTF, which
can be considered as an optional feature for testcard2.
2025-09-29 14:44:28 +02:00
Martin Pulec
2a315d4a22 CI libajantv2 macOS fix
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
2025-09-15 12:39:24 +02:00
Martin Pulec
95180fa86e CI: build dynamic version of Cineform
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).
2025-09-15 12:35:04 +02:00
Martin Pulec
4357452c32 move soundfont to shared + always install
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.
2025-09-03 16:42:28 +02:00
Martin Pulec
2169772063 remove sdl_mixer
should be replaced altogether with fluidsynth - add alias there

+ removed typo in fluidsynth pkg name  ARM CI bootstrap.sh
2025-09-01 10:22:18 +02:00
Martin Pulec
44788b71ce CI Linux install_sdl.sh: ensure features
ensure required features explicitly on
2025-09-01 09:17:27 +02:00
Martin Pulec
14b41852d2 CI Linux: build up-to-date glfw 2025-08-28 09:20:28 +02:00
Martin Pulec
1a1bee8a29 CI Linux: simplify caches
handle cache build/install (transitively) in prepare.sh
2025-08-28 09:19:55 +02:00
Martin Pulec
ed78a761fe CI Linux FFmpeg: consolidate to a single script
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.
2025-08-28 08:48:18 +02:00
Martin Pulec
a15d3d0d95 CI: environment.sh: set -eu
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.
2025-08-28 08:48:18 +02:00
Martin Pulec
0cfe4b6b0f CI Linux SDL: consolidate
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)
2025-08-28 08:48:16 +02:00
Martin Pulec
4466594c1e CI Linux: add Qt6 Wayland plugin
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
2025-08-27 14:09:37 +02:00
Martin Pulec
e5691c9bee CI Linux: add /usr/local/lib to LD_LIBRARY_PATH
+ 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
````
2025-08-27 14:09:36 +02:00
Martin Pulec
031510b7e8 CI Linux: build fluidsynth alongside with SDL
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
2025-08-27 14:09:35 +02:00
Martin Pulec
6e8a62bf1c CI: use SDL3 2025-08-27 12:13:08 +02:00
Martin Pulec
6eb185bda8 CI Linux: build SDL3
based on 9eb376ee38
2025-08-27 12:13:08 +02:00
Martin Pulec
3a60095d58 CI: enforce fluidsynth, do not require sdl_mixer 2025-08-27 09:00:21 +02:00
Martin Pulec
3af5f4dad6 CI Linux FFmpeg: update SVT-HEVC patch
the older seem no longer apply with the last 5000 commits from FFmpeg Git

rebased upon current FFmpeg Git master
2025-08-20 12:06:44 +02:00
Martin Pulec
c0d88af1ce CI mac: add libbacktrace 2025-08-14 08:08:36 +02:00
Martin Pulec
624bd0f517 CI Linux: enforce libbacktrace
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).
2025-08-13 15:01:33 +02:00
Martin Pulec
4a4716f6e7 CI mac: fix broken live555 test
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;
2025-08-13 10:32:20 +02:00
Martin Pulec
cc2e7103b1 configure.ac: generate debug symbols for Win
<https://stackoverflow.com/questions/74416539/clang-14-does-not-generate-pdb-file>

Set it only when linking, not for configure.
2025-08-12 12:24:59 +02:00
Martin Pulec
f1e2c9b568 CI Win: pthreads are now provided with a new pkg 2025-08-12 12:24:58 +02:00
Martin Pulec
194cb695e3 GH scripts: add -f to curl
to catch 4xx HTTP errors (curls returns 0 otherwise)
2025-07-15 09:20:42 +02:00
Martin Pulec
a10bc18ae4 GH arm+coverity builds: add -f to curl
in order to fail on 4xx HTTP errors
2025-07-15 09:20:42 +02:00
Martin Pulec
8adbafcda9 gh/arm/bootstrap.sh: pass GITHUB_TOKEN
to avoid GH rate-limit
2025-07-15 09:20:37 +02:00
Martin Pulec
1ba9fbd609 ccpp: update etags handling
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.
2025-06-26 14:26:52 +02:00
Martin Pulec
be33cbed45 gh/get-etag.sh: sanitize ETAGs
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 _.
2025-06-26 14:26:18 +02:00
Martin Pulec
0a9bc4be68 CI improve etag handling
- simplify: do not handle more items (unneded)
- unless optional specified, fail early
2025-06-20 14:59:18 +02:00