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.
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).
- 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
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.
In the current AppImages, the bundled libavcodec depends just on
libva.so.2 but libavutil depends on libva.so.2, libav-drm.so.2 and
libva-x11.so.2. Since the availability of any of libva-*.so was not
detected, even if those are not present (eg. in GRML 24.02 libva-x11.so.2
is missing), the system library was used.
As a solution, check the availability of all libav.* that is bundled
libavcodec and libavutil depending on.
if it happens that parent dir is /tmp, eg.:
`ug.AppImage -t testcard:file=/tmp/img.pam`
do not whitelist /tmp, otherwise following error occurs:
`Error: invalid whitelist path /tmp`
This respawns the process instead of the script. The advantage is that
when the AppImage process is killed, UG is killed as well, eg. in this
case:
```
UltraGrid-continuous-x86_64.AppImage -t testcard & (sleep 3; kill $!)
```
Otherwise just the parent process (the shell) is killed, leaving the child
(UG) running on background, which is undesirable. See also:
<https://stackoverflow.com/questions/8533377/why-child-process-still-alive-after-parent-process-was-killed-in-linux>
For the above command, `kill -SIGTERM -$!` would be required to do
the job, but the parent shell process keeps "running" in the background
and `bg` needs to be run.
Do not bundle SDL_SOUNDFONT instead of the SoundFont now included in
sources. This is a bit contra-intuitive, since the user may have set
the SDL_SOUNDFONT for its primary reason. Using the variable was just
a workaround to find _any_ usable soundfont, which is now unneeded.
Also, the user-selected soundfont may have hundreds of MB (as usually
the general-purpose soundfonts have).
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.
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"
```
removed accidentally by 7c0bd41b
Now it is shifted after the while-loop (not `shift` in every while
iteration) - should behave the same but this is canonical according to
getopts man (w/o needless '$' before OPTIND).
Since the manual page is partially generated using uv/hd-rum-transcode
output (for options), check if there is some output available.
Most importantly this should catch the situation when UG/reflector output
changes so that it is no more extracted to the manual page.
Currently, it always downloads continuous (regardless if invoked from
continous or release channel). But currently it doesn't remove the old
release if the name doesn't match continuous (moreover if it would be
deleted, it is moved to -bkp, possibly overriding the previous version).
+ removed the subshell
The redirection is actually no longer neeeded - we do not need to bother
where the output goes but the reason for the redirection is no longer
valid - the created AppImage is no longer outputted.
mkappimage now tries to automatically upload the asset if it detects
running in GitHub CI, which is not the behavior we perhaps want because
it deletes and recreates our _continuous_ release.
See following failed run:
https://github.com/CESNET/UltraGrid/actions/runs/5575039257/jobs/10185765784
+ fixed `wget` presence check in `create-appimage.sh`
the former was a bit error-prone and eg. since 2b9ed6c7 (2023-05-15),
icon.icns was not copied (just to old bundle but not re-copied to GUI
bundle). Also things like Vulcan shaderes were not copied.
Here, we use a no-clobber option not to override files specific to GUI
bundle.
+ fixed the actaull path of icon.icns inside the bundle
The caller can now provide its own FIREJAIL_OPTS (if something is
needed).
+ do not pass explicitly UG_FONT_DIR to firejail - the environment isn't
entirely pruned, the env vars usually pass to the Firejail, except of
some, including LD_PRELOAD, LD_LIBRARY_PATH and TMPDIR, which are
already passed.