131 Commits

Author SHA1 Message Date
Martin Pulec
45bb28c9a0 CI: enable SVT-JPEG-XS
only for Win + non-ARM Linux - doesn't seem to be officially supported
in neither ARM nor macOS

configure.ac - require just SVT-JPEG-XS 0.9 as is in msys Win package
(proxy mode commented out - isn't needed to set to "proxy_mode_full"
explicitly, anyways)
2026-02-27 09:22:09 +01:00
Martin Pulec
af553d6d27 CI Linux install libdecor Cairo plugin explicitly
Instead of ensuring that the plugin is present, instal the Cairo plugin
directly.

The Cairo implementation is the only libdecor plugin present in U22.04
repositories (U24.04 has the Gtk implementation as well).
2026-01-06 11:01:43 +01:00
Martin Pulec
a44e42e520 AppImage: bundle libdecor
both GLFW and SDL load libdecor-0.so.0 by dlopen so it is not going to
be bundled...
2026-01-06 09:02:56 +01: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
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
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
05187ea56d AppImage: bundle aux data for IM magickwand 2025-04-04 22:42:41 +02:00
Martin Pulec
d670e2ebee CI PCP Win: patch rather than using old version
IP*PKTINFO is defined by the Mingw-w64 headers but the structs
(eg. msghdr or cmsghdr) as defined in RFC 3542 seem to be called
differently (WSAMSG, WSACMSGHDR).

So the compat will be perhaps still required unless PCP adds support
for Win structure names. The other changes are just fixing Win-specific
headers (which may be fixed in PCP upstream eventually).

Also moved dummy Git identity setting to enfironment.sh (is now needed
also for MSW).
2025-03-18 14:15:34 +01:00
Martin Pulec
2f1de5bd4e fix CI coverity
The workarond is not needed in U24.04 (current ubuntu-latest used by
coverity-scan) and actually doesn't work (qtchooser is not installed).
2025-03-11 14:16:10 +01:00
Martin Pulec
65d886746f Revert "CI Linux: install pipewire with distro pkg"
ARM builds still use Debian 11, for which that is needed.

This reverts commit 35e30cd58c.
2025-03-11 14:16:07 +01:00
Martin Pulec
af222c70a5 CI Linux: use Qt6 in ubuntu-22.04 2025-03-10 11:08:59 +01:00
Martin Pulec
35e30cd58c CI Linux: install pipewire with distro pkg
+ remove explicit libdav1d install (already in FFmpeg build-dep)
2025-03-10 10:47:15 +01:00
Martin Pulec
2eaf9bc17d CI Linux: removed obsolete commands 2025-03-07 09:03:17 +01:00
Martin Pulec
fb022f2d1b CI Linux: switch to ubuntu-22.04
ubuntu-20.04 GH image is being deprecated and will be eventually removed
from GH
2025-03-07 09:03:06 +01:00
Martin Pulec
49a16a90a4 CI Linux: add-apt-repostitory retries
Fetching GPG keys sometimes fails on timeout so prevent it by adding
retries with exponentially increasing intervals taken from:
<https://github.com/canonical/server-test-scripts/pull/18>
(just removed bashisms)
2024-11-29 12:36:28 +01:00
Martin Pulec
36f427485f CI Linux: add deb-src in U24.04
ubuntu-latest is now U24.04, which uses .source files in deb822 format
instead the original .list in one-line-style format. ubuntu-latest is
used by Coverity runner.
2024-10-15 16:19:54 +02:00
Martin Pulec
1c61070f91 CI Linux: use libcurl4-openssl-dev instead of NSS
Needed for coverity-scan newly builds on ubuntu-latest (currently
24.04). Ubuntu 24.04 has no longer libcurl4-nss-dev.
2024-10-15 16:13:44 +02:00
Martin Pulec
09e140c2cc CI Linux FFmpeg: removed unused dep exclude
- libsdl2-dev is now normally used (previously used own build)
- libzmq3-dev perhaps also no longer needed to exclude
2024-07-18 09:15:19 +02:00
Martin Pulec
4229e9e381 CI Linux: hold libva2
refers to the revert - ensure that libva **won't** be installed from the PPA
2024-07-18 09:07:55 +02:00
Martin Pulec
10f1fffd51 CI Linux: install libvulkan-dev from PPA 2024-07-18 09:07:25 +02:00
Martin Pulec
433a54caf9 Revert "CI Linux FFmpeg: add the savoury1 PPA early"
The libva in the savoury1 is very new (2.22), which is even newer than
in U24.04. This would prevent LD_PRELOAD of libva from the system.

This reverts commit 234821d31c.
2024-07-18 08:43:48 +02:00
Martin Pulec
91b56cddab Reapply "CI Linux: use Vulkan directy from repo"
with the ppa:savoury1/ffmpeg4 (previous commit) no longer needed

This reverts commit 8922476204.
2024-07-16 16:20:39 +02:00
Martin Pulec
234821d31c CI Linux FFmpeg: add the savoury1 PPA early
needed for updated libvulkan-dev
2024-07-16 16:20:39 +02:00
Martin Pulec
4c07ff5c35 CI Linux FFmpeg: add OpenH264
U20.04 doesn't have libopenh264 yet, so use it from the
ppa:savoury1/ffmpeg4, which replaces ppa:savoury1/vlc3 - it contains
the same x265 version (3.6).

The new repo ppa:savoury1/ffmpeg4 contains more (updated) packages
than /vlc3, which can be actually the advantage (eg. no need to build
own Vulkan loader/headers).
2024-07-16 16:20:38 +02:00
Martin Pulec
f77763dcd5 CI Linux: use libajantv2
also build the library shared
2024-05-31 16:04:44 +02:00
Martin Pulec
8074e26ca4 CI Linux FFmpeg: do not build own libx264
added by the commit f3003ed1

For the original reason it is no longer needed (the higher bit depth
x264 is already included in distro repositories). Anyways, the version
of libx264, that will be installed, is taken from ppa:savoury1/vlc3,
anyways (newer one).
2024-04-12 10:56:56 +02:00
Martin Pulec
f5467237ae CI Linux: download rav1e build instead of building own
Building rav1e requires nasm 2.15 (if asm is not disabled) while U20
has just 2.14.02, so that the build in CI currently fails, anyways.

Pick sse4 for now but expect using avx2 version later, depending on
UG_ARCH value.

\+ populate PKG_CONFIG_PATH immediately
2024-03-20 14:16:08 +01:00
Martin Pulec
d74922e443 CI: install gcc 10 only in U20.04
This modifies the commit 7f166a2411. Although Linux CI is run with U20.04,
Coverity workflow uses ubuntu-latest, which is currently 22.04, where
default gcc is actually 11 and this breaks GPUJPEG compilation with
error starting with:
```
-- The C compiler identification is GNU 10.5.0
CMake Error at /usr/local/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:780 (message):
  Compiling the CUDA compiler identification source file
  "CMakeCUDACompilerId.cu" failed.

  Compiler: /usr/bin/nvcc
```

fixes failed run <https://github.com/CESNET/UltraGrid/actions/runs/7968323068>
2024-02-28 12:15:39 +01:00
Martin Pulec
bf09d1cdca CI: add sountfont, not download
The size is only some 90 kB when compressed so it is perhaps not worth
downloading from external source and depend on it.

It could be even bundled directly, not by CI. Now it is actually the case
in Linux (create-appimage.sh) but it is also possible for other platforms.
2024-02-13 16:44:31 +01:00
Martin Piatka
7f166a2411 CI: Ubuntu install gcc-10
FFmpeg refuses to build on gcc 9, because of missing intrinsic
_mm256_loadu2_m128i
2024-02-13 13:59:04 +01:00
Martin Pulec
b73edbf575 scripts: remove SC2140 disable
It is not needed to split the string like this:
```
a="potentially long string on"\
"multiple lines"
```
but it is better rather to put the '\' inside the string:
```
a="potentially long string on\
multiple lines"
```
2024-02-09 12:14:21 +01:00
Martin Pulec
683718a285 CI Linux FFmpeg: do not build VPL tools
tools are not required, reducing dependencies and build time

see failed run:
<https://github.com/CESNET/UltraGrid/actions/runs/7386262548/job/20092516404>
2024-01-03 09:17:11 +01:00
Martin Pulec
4019d611b3 CI: install AsciiDoc
In order to build the manual pages as those are build during UG build
since the previous commits.
2023-11-14 11:13:45 +01:00
Martin Pulec
8922476204 Revert "CI Linux: use Vulkan directy from repo"
FFmpeg Vulkan support requires at least Vulkan headers v1.3.238 but
Ubuntu 20.04 has only 1.2.131.

This reverts commit 8cb7e7e779.
2023-08-23 14:14:40 +02:00
Martin Pulec
b8ce258d4d sdl_mixer: try to open from common path
Copy sounfont to known path for macOS and Windows CI builds (in Linux,
this is already handled with a environment var SDL_SOUNDFONTS). And also
use that location if there is any soundfont.
2023-04-28 10:15:11 +02:00
Martin Pulec
30e9484ff7 AppImage: bundle a SoundFont file
In order to sdl_mixer being able to synthetise MIDI.
2023-04-28 10:15:11 +02:00
Martin Pulec
8cb7e7e779 CI Linux: use Vulkan directy from repo 2023-04-05 08:25:49 +02:00
Martin Pulec
3ac7af2aa0 CI Linux: install wayland with apt
Previously, actually the same version was used but downloaded directly
and installed with dpkg, because it has been used a version from U20
(now default) to U18.
2023-04-05 08:22:48 +02:00
Martin Pulec
9eb376ee38 CI Linux: do not build own SDL2 anymore
SDL2 now obviously works on U20.04, because we are building there. It
doesn't work on U22.04, but neither the build with SDL 2.0.20 nor 2.26.2
does.

The problem seems actually to be the inclusion of Wayland libraries in
AppImage.
2023-04-04 12:49:46 +02:00
Martin Piatka
eb7406f06e CI/Linux: Migrate to Ubuntu 20.04 2023-04-04 10:46:16 +02:00
Martin Pulec
f6dbfe1b85 CI Linux: removed libx11-dev
this should be no longer required to be installed explicitly
2023-03-20 16:54:28 +01:00
Martin Pulec
eaff363e93 CI Linux: install magickwand
For Coverity CI, it is not installed automatically as it is in C/C++ CI
(most likely build req for FFmpeg).
2023-03-20 16:54:28 +01:00
Martin Pulec
449c03dfcd CI: added caca 2023-03-09 13:27:47 +01:00
Martin Pulec
56ecf79f06 removed remaning cppunit bits 2023-03-07 15:45:46 +01:00