Commit Graph

76 Commits

Author SHA1 Message Date
Martin Pulec
16d11f013d AppRun Filejail: whitelist -t file:<name> 2023-06-15 16:43:46 +02:00
Martin Pulec
80df5db0fd AppImage Firejail: support for spaces in names 2023-06-08 15:42:51 +02:00
Martin Pulec
1d246688d8 AppRun: accept FIREJAIL_OPTS from caller
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.
2023-05-18 08:43:51 +02:00
Martin Pulec
e15f57c38a AppRun: do not pass SoundFont in env var
Do not use env var SDL_SOUNDFONT to pass sounfont path but let the
sdl_mixer UG module load the fonts directly (as on other platforms).
2023-05-18 08:43:51 +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
34f5d2d036 AppRun Firejail updates
- 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
2023-04-27 15:21:18 +02:00
Martin Pulec
47fac9109c AppRun: use $ULTRAGRID_AUTOUPDATE val as interval
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.
2023-04-21 10:04:56 +02:00
Martin Pulec
0bd5c1d12c AppRun: autoupdater updates
- if updated, restart the command using the new AppImage
- if update fails (eg. no error connection), AppImage will continue
  running
2023-04-20 17:30:01 +02:00
Martin Pulec
b4b138b74f AppRun: do not use LD_LIB_PATH for handle_updates()
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)
2023-04-05 16:32:58 +02:00
Martin Pulec
35bf20065e AppRun: use get_loader() from preload.sh 2023-04-05 16:12:55 +02:00
Martin Pulec
c0cde4bc82 Firejail: allow pipewire screen capture
additionally requires root (not to be disabled by default.profile) + not
disabling dbus
2023-04-05 15:24:11 +02:00
Martin Pulec
538fc2af3f AppRun: preload also libpipewire
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.
2023-04-05 15:24:11 +02:00
Martin Pulec
8ea11c3413 AppRun: run tput prior to setting LD_LIB_PATH
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)
2023-04-04 15:59:47 +02:00
Martin Pulec
062f771fde AppImage: don't use bundled Wayland libraries
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).
2023-04-04 14:19:55 +02:00
Martin Pulec
2dbaec7255 AppRun: "printf" added to printed string by mistake 2023-03-09 14:14:26 +01:00
Martin Pulec
571b9a7064 AppRun firejail: removed deprecated --shell
firejail repors it's deprecated as for 0.9.72 and refuses to run
2023-01-18 11:38:16 +01:00
Martin Pulec
7d033195b3 AppRun,create-appimage.sh: added missing expr redirections 2023-01-02 10:44:31 +01:00
Martin Pulec
4f7c37ca97 AppImage: fixed appimageupdate not running on U22.04
llibfuse2 is missing there
2023-01-02 10:27:20 +01:00
Martin Pulec
fb0729bb6e AppRun: do not mount /tmp RO if will be written 2022-12-02 11:18:12 +01:00
Martin Pulec
de64f60d29 AppRun: simplify a bit
do more work in add_whitelist()
2022-12-02 11:15:20 +01:00
Martin Pulec
2714c6b3bf AppRun: watch adding /tmp
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)
2022-12-02 11:15:18 +01:00
Martin Pulec
0c14f1180a AppRun: supress shellcheck warning 2022-11-25 11:02:20 +01:00
Martin Pulec
2a423ef77a AppRun: whitelist+mkdir also dump/record with dir
Take explicit path from '-d dump:<dir>' or '--record=<dir>' and
whitelist + mkdir it (it may not exist yet and then whitelisting would
not work).
2022-11-22 16:40:13 +01:00
Martin Pulec
9f838ec1bb AppRun: whitelist CWD if dump requested
Dump/export dumps to current directory by default
2022-11-22 16:40:13 +01:00
Martin Pulec
19a2a336e5 AppRun: whitelist absolute paths
If user passses as the parameter relative path, it haven't worked.
2022-11-22 16:40:13 +01:00
Martin Pulec
45b010f53f AppRun: print man page only if 1-2 param given
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).
2022-11-14 10:18:39 +01:00
Martin Pulec
3b15dd2926 AppRun: do not print misleading message
Do not warn that bundled libva is used when libavcodec is not compiled
at all.
2022-10-24 15:06:53 +02:00
Martin Pulec
6b6070dcef AppRun: fixed exiting if TERM is not defined
tput returns non-zero if TERM is not set (eg. run by the CI check) and
shell is set to errexit (-e). (Previously the return value was hidden by
return value of calling echo).
2022-10-21 15:27:46 +02:00
Martin Pulec
762dbb0eae AppRun: colored output 2022-10-21 14:45:22 +02:00
Martin Pulec
fba27c434b Revert "AppRun: added libva-wayland to preload"
This reverts commit e687bd35ac.

This currently cause following error on Arch:

    expr: symbol lookup error: /lib/libva-wayland.so.2: undefined symbol: wl_proxy_marshal_flags
    id: symbol lookup error: /lib/libva-wayland.so.2: undefined symbol: wl_proxy_marshal_flags
2022-10-21 14:45:22 +02:00
Martin Pulec
e687bd35ac AppRun: added libva-wayland to preload
currently will not be used by CI because U18.04 doesn't link that
library
2022-10-11 16:22:54 +02:00
Martin Pulec
6ceec5edc3 AppRun: whitelist also file=
- rewritten - allow also multiple whitelisted patterns on cmdline
- whitelist every "file=" (midi) and "filename=" occurences
2022-09-13 16:36:33 +02:00
Martin Pulec
14489deb0a AppImage: set TMPDIR to a writable path 2022-09-12 16:44:05 +02:00
Martin Pulec
56ab0c5433 AppRun: fixed shellcheck complain 2022-09-12 16:44:05 +02:00
Martin Pulec
ad5c6bd2c2 AppImage: bundle libjack.so.0 again
This effectively reverts 3c9b8293.

libjack.so.0 is a dependency also for different modules like portaudio
so if we do not want to depend on instance in the system, we must ship
our version.
2022-07-27 09:05:56 +02:00
Martin Pulec
97dd5ceecb AppRun fixed libva-x11 not being LD_PRELOADED
In the second iteration of for cycle, $NAME was derived from something
like "/usr/lib/libva.so.2:/usr/lib/libva-drm.so.2"  (s/libva/libva-x11),
which obviously didn't exist as a file.

Fixes:

    $ <AppImage> --list-modules | grep -A 2 'Errors:'
    Errors:
            ultragrid_acompress_libavcodec.so
                    ./squashfs-root2/usr/lib/libva-x11.so.2: undefined symbol: va_fool_postp
2022-07-20 14:23:04 +02:00
Martin Pulec
9bbcefc240 AppRun (Linux): bundled libva selection improve 2022-07-20 14:22:57 +02:00
Martin Pulec
a9178a0eb1 Fixed AppImage showing "bin" dir as a tool 2022-06-01 11:21:57 +02:00
Martin Pulec
1cf8dde8b4 AppImage: Qt6 support 2022-05-30 15:38:49 +02:00
Martin Pulec
8bcaefec36 AppImage: do not use -t short opt for tool
'-t' is already used by UG (capture), which disallows use like:

    UltraGrid.AppUmage -t testcard

used '-o' instead
2022-05-12 13:37:02 +02:00
Martin Pulec
4cd5d9662f AppImage: tool selection improvements
- accept '-t' alongside '--tool'
- show accept -t/--tool help
- use bold font
2022-05-10 11:16:10 +02:00
Martin Pulec
93409cd85a Fixed AppImage -h displaying UG not AI help 2022-05-10 09:36:22 +02:00
Martin Pulec
7af87c935c Linux firejail: whitelist video (v4l2) 2022-04-01 14:13:46 +02:00
Martin Pulec
3a83770967 Fixed AppImage Firejail whitelist generation
Fixed 8e77dab6f

If no pattern was found, actually whole line was printed and
whitelisted, sample wrong input:

    UltraGrid-continuous-x86_64.AppImage -t testcard
2022-03-25 15:43:22 +01:00
Martin Pulec
8e77dab6ff Linux firejail: add some whitelists
Added explicit whitelist for --playback and -t testcard:filename
patterns.
2022-03-11 15:43:09 +01:00
Martin Pulec
e9fc1e0fda AppImage: check also ULTRAGRID_USE_FIREJAIL for 0 or no 2022-03-04 16:28:58 +01:00
Martin Pulec
a81b5b83fd AppRun: fixed shellcheck complains 2022-02-03 15:41:07 +01:00
Martin Pulec
1873392fa7 Linux AppImage: copy DejaVu Sans+Mono Book+Bold
Copy DejaVu Sans+Mono Book+Bold explicitly + pass it a variable
UG_FONT_DIR to UltraGrid.
2022-01-21 15:09:31 +01:00
Martin Pulec
4870b8f046 AppImage: font location <ai>/usr/share/fonts
Changed font location to <appimage>/usr/share/fonts - this is more
convenient location than <appimage>/usr/lib/fonts.
2022-01-21 10:26:52 +01:00
Martin Pulec
33cb1812a9 AppImage: env var ULTRAGRID_BUNDLED_LIBVA
to enforce use of bundled libva even if system libva found
2021-12-02 12:19:15 +01:00