Commit Graph

168 Commits

Author SHA1 Message Date
Martin Pulec
6e8a62bf1c CI: use SDL3 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
c0d88af1ce CI mac: add libbacktrace 2025-08-14 08:08:36 +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
937d07ded2 CI: fix XIMEA URL 2025-04-04 11:58:23 +02:00
Martin Pulec
dccc4fff1e Revert "CI mac: disable pkg-config and use pkgconf"
This reverts commit 9cee3b1011.
2025-03-18 14:08:40 +01:00
Martin Pulec
a07c0db968 Revert "CI macos: pkg-config install fix"
This reverts commit 3e8100c7d2.
2025-03-18 14:08:40 +01:00
Martin Pulec
3e8100c7d2 CI macos: pkg-config install fix
THe problem seems to be that there is preinstalled pkg-config@0.29.2 in
CI but the version that is being to be installed is an alias for pkgconf.

The problem seems to be cumbersome, because installing pkgconf fails, pkg-config
as well (tries to install pkgconf 2.3.0; installed version of pkg-config
is pkg-config@0.29.2).

So made just a workaround, that will not be needed after the updated
pkg-config (linked to pkgconf) applies to all macos runners (will be
preinstalled).

The problematic package is pkg-config in current macos-13 runner but
pkg-config@0.29.2 in macos-14 image.
2024-11-25 11:19:45 +01:00
Martin Pulec
1edef2b0c8 .github/scripts/macOS/prepare.sh: suppres brew out
suppress `brew list` output

It is used just to check if a package is installed and the output is
print is output to stdout. To stderr is print that it if the package is
not installed.
2024-11-25 09:06:41 +01:00
Martin Pulec
9cee3b1011 CI mac: disable pkg-config and use pkgconf
pkgconf is more modern version and the CI on macos-14 now fails
because both pkg-config and pkgconf (presumably as a dependency) are to
be installed.

The erroa (the beginning, additional info omittedr):
```
==> Pouring pkgconf--2.3.0_1.arm64_sonoma.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /opt/homebrew
Could not symlink bin/pkg-config
Target /opt/homebrew/bin/pkg-config
is a symlink belonging to pkg-config@0.29.2. You can unlink it:
  brew unlink pkg-config@0.29.2
```

Both pkgconf and pkg-config can be installed automatically as a dependency
of some other packages so ensure a defined state (both installed,
pkg-config disabled).
2024-11-22 10:41:13 +01:00
Martin Pulec
b68569f4df CI mac: add /Library/Framework to rpath
needed for DELTACAST, otherwise manpage generation fails with:
```
 dyld[40232]: Library not loaded: @rpath/VideoMasterHD.framework/Versions/A/VideoMasterHD
  Referenced from: <3D8A8CBA-1094-3538-9770-331DE9A2D6D2> /Users/runner/work/UltraGrid/UltraGrid/bin/uv
  Reason: tried: '/usr/local/lib/VideoMasterHD.framework/Versions/A/VideoMasterHD' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/lib/VideoMasterHD.framework/Versions/A/VideoMasterHD' (no such file), '/usr/local/lib/VideoMasterHD.framework/Versions/A/VideoMasterHD' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/lib/VideoMasterHD.framework/Versions/A/VideoMasterHD' (no such file)
Could not obtain data from UG/reflector output!
```
2024-10-25 08:54:43 +02:00
Martin Pulec
bd2c1b7599 CI macos: fail if DELTA not found
Fail if DELTACAST SDK was not found (actually remove check for its
presence) if $SDK_URL is set.
2024-10-24 16:16:24 +02:00
Martin Pulec
4977da090b CI macos: re-enable DELTACAST
The file name has changed and --enable-deltacast was used just if the
download succeeded (which didn't).

Fixes the commit 98d4969b (2024-05-24) that disabled deltacast, because
the archive was not downloaded due to wrong name.
2024-10-24 16:14:34 +02:00
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 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
bd91d16b27 CI: common live555 handling 2024-05-31 16:04:45 +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
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 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
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
bcef2372d6 CI Mac GLFW patches: host again in main repo
This is perhaps better than hosting it aside, the patches are UG-specific,
anyways.
2024-02-16 15:23:35 +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 Pulec
5ef864729d CI mac install_others.sh: ensure vars visibility
Make some variables, which may be adjusted by subsequent commands,
visible outside the subshell.
2024-02-13 16:42:43 +01:00
Martin Pulec
bbed291a95 CI mac: remove NDI 4 compat
unneeded and removing will ease refactor
2024-02-13 16:04:37 +01:00
Martin Piatka
0fac525e6f CI: MacOS: Fix deltacast install 2024-02-13 14:00:26 +01:00
Martin Pulec
3ff011341e CI mac: enforce /Library/Frameworks for Syphon
In CI on x86_64, for some reason, the path defaults to
/Library/Frameworks, while otherwhere to @rpath. So enforce to
/Library/Frameworks to be deterministic.
2024-02-12 14:18:47 +01:00
Martin Pulec
93f9dd074f build/CI macOS: do not handle Syphon specially
\+ build x86_64 from source as well to:

   1. be consistent with the arm64 build
   2. the binary x86_64 already had hardcoded the path @loader_path/../Frameworks/
   instead of @rpath, which would require yet another handling
2024-02-12 11:57:48 +01:00
Martin Pulec
1cce11666e CI mac: do not handle VideoMasterHD manually
Use the installer and rely on dylibbundler v2 to deploy the framework
correctly.

Note: in the macOS/install_others.sh script, make sure that the env var
modification is global (== not just in the subshell) in order to be updated
by subsequent commands in the same script.
2024-02-12 11:57:48 +01:00
Martin Pulec
4ed7421276 CI mac: use mac dylib bundler v2 again
see the comment in the changed script for details
2024-02-12 09:55:52 +01:00
Martin Pulec
bea0ee1b64 CI mac: signing docu updates
\+ do not check $apple_key_p12_b64 in sign.sh but $KEY_CHAIN and
$KEY_CHAIN_PASS presence, which are used directly
2024-02-09 17:05:28 +01:00
Martin Pulec
86b4c0696d CI mac: move signing key import to environment.sh
The signing key is actually needed in the ccpp.yml workflow earlier than
`prepare.sh` is run, namely in cache-macos-nonfree-sdks step.
2024-02-09 16:44:26 +01:00
Martin Pulec
1ef26af0e6 CI mac arm64: enable Deltacast
disabled in 3a076d24

The VideoMasterHD[_audio] did have invalid signature because of tweaked
internal paths, which caused Apple runtime to kill the process. Removing
the signature is not sufficient (the runtime requires signature) so we
sign it by our key.
2024-02-09 16:44:26 +01:00
Martin Pulec
d82c10a7b1 CI mac: videomasterhd preparation improvement
Remove absolute path from library location - we are in the directory
anyways.

This will be useful for local use (to copy and paste) when the library
is already copied to `$(xcrun --show-sdk-path)..` etc.

\+ early return
2024-02-09 16:44:26 +01:00
Martin Pulec
58741e3d91 CI mac: import the key in prepare.sh
We will need to sign VideoMasterHD frameworks with our key.
2024-02-09 16:44:25 +01:00
Martin Pulec
e7c2379fef Revert "Revert "Revert "CI: macOS compilation fix (Vulkan missing hdr)"""
hopefully no longer needed

This reverts commit 4e5de7279c.
2024-02-09 12:46:03 +01:00
Martin Pulec
98d55eb316 CI mac arm64: added rpath needed for libjuice
otherwise linking fails with following error:

    dyld[34092]: Library not loaded: @rpath/libjuice.1.3.4.dylib
2024-02-09 12:14:22 +01:00
Martin Pulec
87e9438751 CI mac: select AJA arch
in order to work on arm64 as well
2024-02-09 12:14:22 +01:00
Martin Pulec
183ac67990 gh/scripts/macOS/prepare.sh: paths for arm64 Homebrew
Homebrew uses /opt/homebrew on arm64
2024-02-09 12:14:22 +01:00
Martin Pulec
e38af98538 CI mac: small updates for arm64
- missing sudo
- /usr/local/include mkdir for EWS
2024-02-09 12:14:22 +01:00
Martin Pulec
3a076d2482 CI mac arm64: disable cineform+Deltacast
- cineform seems to be unsupported altogether
- Deltacast should work but it doesn't seem so
2024-02-09 12:14:22 +01:00
Martin Pulec
d25d80939c CI mac: build Syphon for ARM 2024-02-09 12:14:21 +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
cfd8009380 gh/scripts/macOS/install_others.sh: fixed local path
fixed local installation when `cd` was executed (eg. for aja)
2024-02-09 08:41:48 +01:00