Commit Graph

547 Commits

Author SHA1 Message Date
Martin Pulec
64ee8a2f48 macOS build: fixed crashing build
the build fails after switch to macos-13 on manual page generation:
```
dyld[41003]: Symbol not found: __Z11IsRGBFormat21NTV2FrameBufferFormat
  Referenced from: <2945C378-5453-3610-9AA4-63E2723BBA5D> /Users/runner/work/UltraGrid/UltraGrid/bin/uv
  Expected in:     <no uuid> unknown
Could not obtain data from UG/reflector output!
make: *** [uv.1] Error 3
make: *** Waiting for unfinished jobs....
```

which tries to run bin/uv with --fullhelp.

(this fails only if run within the script data/make_man.sh, not when run directly)
2024-09-20 14:15:54 +02:00
Martin Piatka
3385323173 CI: Disable drm disp for x86 builds 2024-09-16 16:03:29 +02:00
Martin Pulec
64db0c40d4 CI Win: current MSVC/CUDA 11.8 incompatibility workaroud
Workaround to current MSVC error with CUDA 11.8:
```
C:\Program Files\Microsoft Visual
Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\yvals_core.h(888):
error: static assertion failed with "error STL1002: Unexpected compiler
version, expected CUDA 12.4 or newer."
```

CUDA 11.8 is used for compatibility with CC 3.5 (Kepler) devices. The
support for those will however end in 5 days [1] so we may swich to CUDA
12.x later.

[1]: https://endoflife.date/nvidia-gpu
2024-08-28 13:29:49 +02:00
Martin Pulec
b64804cea0 CI Linux: utilize continuous GPUJPEG build from GH
advantages:

- it saves some build time (approx. 25 sec)
- it is compatible with Windows CI where the binary build is used as well
- reduces complexity by delegating the build to GPUJPEG CI
2024-08-14 10:42:01 +02:00
Martin Pulec
d371815308 CI Linux: build GJ for CC 3.5
As it is now common also for different CUDA stuff and GPUJPEG binary CI
builds themselves (but used only for Win), build also for CC 3.5 (Kepler
cards), which will be still supported for very short amount of time
(but as there will be builds, those can be used in future also on such
a cards, even if the support will be dropped from UG further).
2024-08-09 09:23:01 +02:00
Martin Pulec
a893667a52 CI Win AJA: built libajantv2 rename
Built libajantv2 has now a different name:
```
2024-07-25T10:26:49.7807780Z      Creating library D:/a/UltraGrid/UltraGrid/libajantv2/build/ajantv2/Release/ajantv2_vs143_MT.lib and object D:/a/UltraGrid/UltraGrid/libajantv2/build/ajantv2/Release/ajantv2_vs143_MT.exp
2024-07-25T10:26:50.0519395Z   ajantv2.vcxproj -> D:\a\UltraGrid\UltraGrid\libajantv2\build\ajantv2\Release\ajantv2_vs143_MT.dll
```
2024-07-25 15:02:00 +02:00
Martin Pulec
a220061494 CI AJA: replaced -DAJANTV2_DISABLE_PLUGINS=ON
with -DAJANTV2_DISABLE_PLUGIN_LOAD=ON

Not sure how it relates, but the former one is not supported and not
disabling the later causes undefined references to mbedtls, eg.:
```
/usr/bin/ld: /usr/local/lib/libajantv2.so: undefined reference to `mbedtls_pk_load_file'
/usr/bin/ld: /usr/local/lib/libajantv2.so: undefined reference to `mbedtls_pem_init'
/usr/bin/ld: /usr/local/lib/libajantv2.so: undefined reference to `mbedtls_pem_read_buffer'
/usr/bin/ld: /usr/local/lib/libajantv2.so: undefined reference to `mbedtls_pem_free'
/usr/bin/ld: /usr/local/lib/libajantv2.so: undefined reference to `mbedtls_pk_parse_subpubkey'
```
2024-07-25 15:01:46 +02:00
Martin Pulec
e40eeee538 Revert "GitHub CI: Win - install whole gcc toolchain"
Seem no longer to be needed, also GCC has been used that time.
The change may very slightly (if noticable) improve CI run time but it
is consstent with instructions in wiki and also more clear.

This reverts commit 8278e15201.
2024-07-25 09:35:25 +02:00
Martin Pulec
8adb8f2c50 current live555 compat 2024-07-19 12:01:52 +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 Piatka
8f6c5fb81e CI Win: Install VC 2010 Redist 2024-07-08 16:04:21 +02:00
Martin Pulec
16150dc8c1 CI mac: do not install NDI lib
not needed and removing it simplifies the stuff greatly
2024-06-25 15:11:59 +02:00
Martin Pulec
09eb5411ed print NDI ver: use NDIlib_version()
Note that the printed now is the runtime version, while in the previous
version it wash the version used (just) for the compilation. Current
inmplementation seem to be better, anyways.
2024-06-25 15:08:29 +02:00
Martin Pulec
b57680dd68 CI: suppress brew list output for uninstalled
the message: `Error: No such keg: /opt/homebrew/Cellar/asciidoctor`
is now print on stderr, which disturbs GitHub CI (complains about it in
action summary annotations; just a warning).
`
2024-06-25 15:08:29 +02:00
Martin Pulec
b88d0c4218 CI NDI: do not repeat downloads in install scripts
NDI SDK should be already downloaed from the step before in the YAML.
2024-06-25 15:08:26 +02:00
Martin Pulec
c8b1e6859d CI Linux FFmpeg: patch VP9 FFmpeg patch
temporarily again incompatible with current FFmpeg HEAD
2024-06-25 09:38:22 +02:00
Martin Pulec
9eb292252e CI Linux arm: use common build flags
Some features that are used by x86_64 Linux build are disabled, for the
rest dependencies are installed.

disabled:
- CUDA features (except of NV Jetson usually there is no CUDA)
- lavc vdpau (similar to CUDA, it is primarliy NV-focused API)
- Qt GUI
- Cineform (doesn't compile on ARM)

dependencies installed:
- libsdl2-ttf-dev
- libsdl2-mixer-dev
- libva-dev
2024-06-12 10:57:52 +02:00
Martin Pulec
e7014492b7 CI Linux arm: fixed drm option 2024-06-12 10:23:11 +02:00
Martin Pulec
5fdab70595 CI live555: add -fPIC
The -fPIC argument is needed for live555 on arm64 Linux.
2024-06-12 08:13:11 +02:00
Martin Pulec
8ee1db3604 CI live555: moved needed C++ flags to CXXFLAGS 2024-06-12 08:13:04 +02:00
Martin Pulec
fde605f2b8 CI: arm build fix
The commit bd91d16b (2024-05-31) causes the live555 being build on all
platforms, including arm Linux. But the plaform is not valid for that,
so replace linux-64bit with linux.

Also enforce live555 in this case.
2024-06-12 08:12:53 +02:00
Martin Pulec
47c492ffb9 CI Win: CUDA/MSVC incompatibility fix
Latest MSVS 2022 17.10.34928.147 (MSVC v14.40.33807) in GH runner
20240603.1.0) is no longer compatible with CUDA 11.8.0.52206. CUDA refuses
to compile because of unsupported compiler. Previous version 17.9.34902.65
(GH runner 20240514.3.0) was OK.

As MSVS 2022 is supported by CUDA 11.8 in general, we can pass
-allow-unsupported-compiler flag.
2024-06-07 10:40:19 +02:00
Martin Pulec
cedf2b516b CI live555: pass the CPLUSPLUS_COMPILER always
Although not required for platforms other than Linux, it doesn't hurt
if we use this always (reduce script size and complexity).

\+ also removed setting CC/CXX for Win - perhaps no longer needed but
the second is now overriden, anyways (CPLUSPLUS_COPILER is set to CXX
by default but we override it)
2024-05-31 16:33:34 +02:00
Martin Pulec
bd91d16b27 CI: common live555 handling 2024-05-31 16:04:45 +02:00
Martin Pulec
0ed7d449bc CI: cache AJA build [Win]
Since we must now build the new libajantv2, which takes some 3 minutes,
cache the build in order not to increase the build time.

Also use libajantv2 path for the SDK instead of AJA (doesn't require
unneeded rename), which will be Windows specific.

Only do it in MSW, since the build is slowest. But it can be easily used
also for other platforms.
2024-05-31 16:04:45 +02:00
Martin Pulec
a735dac86a CI+build Win: use libajantv2
Use libajantv2 + switch the build system to the new lib at the same time
(it is easier and there is perhaps not a big advantage to splitthis to
2 steps).
2024-05-31 16:04:44 +02:00
Martin Pulec
d3e7abf213 CI libajantv2: install in a common script 2024-05-31 16:04:44 +02:00
Martin Pulec
3cbd01a8e6 CI mac: use libajantv2
move cmake call with flags to a common function
2024-05-31 16:04:44 +02:00
Martin Pulec
f77763dcd5 CI Linux: use libajantv2
also build the library shared
2024-05-31 16:04:44 +02:00
Martin Pulec
a4a2baf32e move some template files to auto places
- moved ultragrid-bugreport-collect.sh to doc (will be bundled automatically)
- moved data/MacOS-bundle-template to data/template (just a move)
- added data/template/README.md
2024-05-31 16:04:42 +02:00
Martin Piatka
dd8e8efb47 CI/arm: Enable DRM display 2024-05-22 10:10:22 +02:00
Martin Pulec
111207abf1 CI macOS: swap version and arch position
was UltraGrid-<arch>-<version>.dmg (eg. UltraGrid-arm64-1.9.2.dmg),
which is not consistent with other platforms,
eg. UltraGrid-1.9.2-x86_64.AppImage and UltraGrid-1.9.2-win64.zip. The
one with the version just after UltraGrid seems to be more natural.
2024-05-21 12:56:45 +02:00
Martin Pulec
d10a9d5cc7 CI macOS: install only not installed brew formulas
The GitHub actions now complain if trying to install a formula, that is
already installed, eg:
```
  run macOS (macos-14)
  pkg-config 0.29.2_3 is already installed and up-to-date. To reinstall 0.29.2_3, run: brew reinstall pkg-config

```

As a workaround, install just the formulas, that are not already
installed.
2024-05-20 08:52:40 +02:00
Martin Pulec
98d4969b84 CI macos: adapt to new DELTACAST packages
see previous commit
2024-05-07 13:36:22 +02:00
Martin Pulec
5a10b1a614 CI Win: adapt to new DELATCAST packages
See:
<https://www.deltacast.tv/media/30987/changenotice_videomaster625_installers_and_distribution_packages.pdf>
2024-05-07 12:50:17 +02:00
Martin Pulec
b348d32547 CI Windows: install clang gcc-compat
No longer installed automatically, causing gcc from mingw64 MSYS2
environment being used (autoconf defaults to gcc).
2024-04-23 16:14:50 +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
d5af762fe4 CI Windows: build CUDA stuff for CC 3.5
Kepler cards are still (and few months will be) supported by NVIDIA.
2024-04-09 07:55:33 +02:00
Martin Pulec
9aada40c4e Revert "CI FFmpeg Linux: pin Vulkan-Headers"
No longer needed. Moreover, this now prevents the FFmpeg build.

This reverts commit b8f4d15df4.
2024-04-08 10:38:24 +02:00
Martin Pulec
21f4627af5 CI Windows: install Vulkan
Supposedly, it has been installed as a ffmpeg dependency but now the
MSYS package depends just on vulkan-loader, not headers.
2024-03-25 11:03:52 +01:00
Martin Pulec
8d1a36916d .github/scripts/macOS/sign.sh: added usage notice 2024-03-25 09:16:43 +01:00
Martin Pulec
f2ba6e81ba CI macOS: skip sign+notarize step if $apple_key_p12_b64 undef
\+ error from the notarize script if called

Previously (since commit 1c7c3ac1), the script silently exitted without
cigning and notarizing the app, which may harden debugging. Now the skip
is explicit and if the script is called anyways, it returns error.

enhances the commit 1c7c3ac1 (2024-03-22)
2024-03-25 09:01:13 +01:00
Martin Pulec
1c7c3ac196 CI macOS: do not fail on sign if no keys
If no signing keys available, the expected behavior is rather to skip
signing instead of failing, which is unintended because of shell check
for unset variables (set -u).
2024-03-22 16:04:13 +01:00
Martin Pulec
393b67ef7f CI FFmpeg Linux libde264 patch: removed reordered_opaque
dropped from upstream
2024-03-20 14:45:20 +01:00