+ 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 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.
- TMPDIR was not writtable - `--read-only=/tmp` after
`--read-write=/tmp/something` overrides read-write, order needs to be
reversed
- for args file, filename, make parent directory writtable - it may not
only be read, but also written (like `--protocol sdp:file=out.sdp`)
+ FIREJAIL_DEBUG to print assembled Firejail arguments
If $ULTRAGRID_AUTOUPDATE is set to >= 0, use it as update interval (in
days).
Since the value 0 was used to suppress the update warning, the value
to suppress the warning was required to change to -1.
The command-line tools used here (eg. stat) may use our custom libraries
(like libselinux) which may not be entirely compatible (it just most
likely ends up with a warning).
+ do the same for get_tools() and set_libva_ld_preload()
+ use original (if any) LD_LIBRARY_PATH for set_ld_preload()
+ removed unneeded `exit $?` (it is implicit)
libpipewire is incompatible with preloaded jack on current Arch and
causes a crash (unsatisfied jack pipewire function dependency).
Anyways, the pipewire screen capture didn't work with the bundled
library, anyways, so we certainly need one from system.
Setting LD_LIBRARY_PATH would override the library path also for tput
executable, leading to possible incompatible version of ncurses in
bundle, leading to following error:
tput: /tmp/.mount_UG-20-oJoJEf/usr/lib/libncursesw.so.6: version `NCURSES6_TINFO_6.2.20211010' not found (required by tput)
(and of course the color escape sequence is not returned)
Don't use bundled Wayland libraries when running on Wayland but use it
otherwise to satisfy possibly unsatisfied dependencies.
See also previous commit - Wayland libraries seem not to be portable and
prevent SDL2 native run on Wayland. After this change, SDL2 runs on
U22.04 in Weston (without Xwayland).
Beware not to add --whitelist=/tmp[something] because that would hide
the actual mounted image (/tmp/.mount_ultragridsomething). As /tmp is
remounted RO, just make the "whitelisted" dirs RW.
+ add to whitelist $DIR (path to executable) if it is not /tmp (eg.
extracted AppImage somewhere)
Do not interfere with UltraGrid -m parameter -- show man if only 1-2
parameters given (`uv -m 1500` doesn't make much sense for UG),
otherwise pass it to UltraGrid.
This allows using commands like `UltraGrid-continuous-x86_64.AppImage -m
1316 -t testcard -d gl` (`-m` MTU parameter at the first place).
Keep appimageupdatetool copy in current directory (where the script also
looks it up from previous commit) as a cache.
+ use either wget or curl (whichever available)
cache/preload AppImage tools appimageupdatetool and mkappimage
Lookup the tools also in current directory where it is downloaded if
there isn't a system one, so this can be considered also as a cache for
future runs.
extract mkappimage if fuse is not available, eg. in docker containers
+ use curl instead of wget - curl is already used a line above so it
must be present, wget don't