Commit Graph

201 Commits

Author SHA1 Message Date
Martin Pulec
ba0d897c50 replace vidcap_params_set_capture_filter with _add_
Improves the commint 4682cf65 (2024-08-19) allowing also the capture
filter to be specified both before and after the vcap (if only one
used), eg.  `-F flip -t testcard -F mirror`.
2025-11-14 10:35:04 +01:00
Martin Pulec
1f1505ab12 AppRun: another updates 2025-10-01 10:20:19 +02:00
Martin Pulec
9b635b5a84 AppImage Firejail: no disable-mnt for symlinks 2025-10-01 09:47:21 +02:00
Martin Pulec
5c379c8d60 AppRun: add --mk-symlinks for symlinks create
for convenience to allow uv/hd-rum-transcode normally
2025-09-30 14:45:54 +02:00
Martin Pulec
2ff0bd5c19 AppRun: allow running with symlinks
resolve tool from $APPIMAGE ($0; progname)

This allows running the reflector with just `hd-rum-transcode` if
symlinked with that name.
2025-09-30 12:17:51 +02:00
Martin Pulec
4357452c32 move soundfont to shared + always install
This simplifies things a bit at the expense that the soundfont is always
included/installed (91 kB).

Added get_data_path() function for generic handling the path to common
data (eg. /usr/local/share/ultragrid if installed). The idea is to catch
all cases - installed (run with absolute or relative path) or run from
inside the source directory in one place.
2025-09-03 16:42:28 +02:00
Martin Pulec
517f47ec7e create_appimage.sh: fix missing $
The excludelist was not applied for arm64 (used x86 instead)? Currently
excluded was just ld-linux-aarch64.so.1 but it may cause problems...
2025-08-29 12:33:38 +02:00
Martin Pulec
2ae0eee190 excludelist.local.x86: disable also libgdk-3.so.0
Not tested but trivially, libgdk-3.so.0 from (build) Ubuntu 22.04
should not be incompatible when running on the  same distro.

This is not known to cause issues but better to remove this since it
the original use case seem no longer being valid. Track just the
excludelist from AppImage creator.
2025-08-29 12:16:05 +02:00
Martin Pulec
2a34727449 excludelist.local.x86: disable libgdk_pixbuf-2.0.so.0
commented out libgdk_pixbuf-2.0.so.0

Normal build no longer runs on Rocky Linux 9 but alternative build (built
on centos 7) does. But conversly excluding the files causes dependency
problems for vcap/file vcomp/lavc, vdisp.file, vdisp/gl. Tested on Alma
9.6, which shuld be basically the same as Rocky. After re-adding the
problem disappears.
2025-08-29 12:02:01 +02:00
Martin Pulec
aa6be6b1a4 create-appimage.sh: ship soundfont also for fluidsynth
not only sdl_mixer
2025-08-27 09:30:35 +02:00
Martin Pulec
4a8c12f416 add .sh suffix to hd-rum-av
This is more convenient and allow the users that honor that behave more
correctly, eg. he macOS legacy compat wrapper in Makefile adding -real
to executable binaries.
2025-08-14 09:08:28 +02:00
Martin Pulec
c67610c527 macos_bundle_libs.sh: avoid otool on dir
eg. uv.dSYM
2025-08-14 08:28:11 +02:00
Martin Pulec
61261a39df create-appimage.sh: try curl prior to wget
In CI, the attempt to download mkappimage sometimes fail with some cryptic:
```
ERROR 403: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature..
```
2025-07-17 15:32:31 +02:00
Martin Pulec
f043f10a9e fix data/scripts/macos_bundle_libs.sh
the former failed on Mac OS X 10.11 with:
`sed: 1: "/LC_RPATH/,+2p": expected context address`.

The '+2' address seem to be GNU extension, although supported by current
macOSes (and busybox).

see also
<https://stackoverflow.com/questions/26124650/sed-use-expected-context-address>
2025-05-20 11:07:51 +02:00
Martin Pulec
26031495f4 macos_bundle_libs.sh: skip scripts for dylibbundle
do not run dylibbundler on shell scripts
2025-05-06 12:27:58 +02:00
Martin Pulec
3edee950bf create-appimage.sh: silence tput err msgs
tput is just a pretty-printer, suppress the errs like `tput: unknown
terminal "unknown"` in CI (not relevant at all, just to make it clear)
2025-04-15 09:40:22 +02:00
Martin Pulec
8c73534128 create-appimages.sh: print errors bold/red
The errors are not fatal unless in CI but user should be notified.
2025-04-04 22:42:44 +02:00
Martin Pulec
05187ea56d AppImage: bundle aux data for IM magickwand 2025-04-04 22:42:41 +02:00
Martin Pulec
c84422ab84 AppImage Firejail: suppress private-tmp in config
Upstream Firejail (0.9.75) has now private-tmp enabld by default in
default.profile, which breaks run from the nounted AppImage.
2025-03-26 14:25:35 +01:00
Martin Pulec
6bcac129b7 macOS lib bundle: move from Makefile to a script
Extend the script added by previous commit to one handling the entire
bundling from Makefile.

It is nicer having the scripting outside the Makefile, anyways, and the
bundle LC_RPATH fix workaround closly relates to bundling.
2025-03-25 14:12:43 +01:00
Martin Pulec
641df59fcd fix macOS 15.4 beta crashes due to LC_RPATH dups
Fixes the UG crashes caused by the multiplication of
"@executable_path/../libs/" caused by replacing multiple (originally
distinct) LC_RPATH values with this one.

+ removed invalid comment from Makefile (actually was related to
"bundle-nolib" target that is no longer present)

closes GH-436
2025-03-19 10:46:30 +01:00
Martin Pulec
7e1cbf8c6d AppRun Firejail fixes
- setup_firejail was not passed the whole command-line as the fucnction
(and subsequently called ones) expected
- omit adding --read-only=/tmp fixed - now paths are "-enclosed, handle
eventual mutliplied leading / and evental trailing one and don't assume
space after (not needed now, " delimits that)
2025-03-12 12:32:10 +01:00
Martin Pulec
b7fddb8725 AppImage Firajail: drop --ipc-namespace
breaks display vulkan_sdl2 with x11 driver (but not wayland!)
2025-02-06 13:57:14 +01:00
Martin Pulec
2e321f6511 AppImage: disable signing again
Validation with:
<https://github.com/AppImageCommunity/AppImageUpdate/releases/download/continuous/validate-x86_64.AppImage>

fails, which eg. prevents the AppImage update. Perhaps problem in
AppImageUpdate upstream (the sign reenablement is quite new - see the
link referenced in 9a6f0796).
2025-01-21 09:36:27 +01:00
Martin Pulec
9a6f07964a AppImage CI: reenable signing
Adapted to the new (proposed) way of signing:
<https://github.com/probonopd/go-appimage/issues/318>. It is possible
that it this is not final implementation in the go-appimage.
2025-01-13 14:28:29 +01:00
Martin Pulec
6ebeec3e28 AppRun: if update is due, touch first
If ULTRAGRID_AUTOUPDATE is set and the update is due, touch the AppImage
first. This is convenient if user wants to skip the update eg. by pressing
Ctrl-C, next run will not enforce the update becauuse the date of the file
is reset. User can run then run the AppImage by issuing the command again
without the update.

+ notice that updating because of ULTRAGRID_AUTOUPDATE is set
+ rename handle_updates to handle_autopudates (the normal update by -u is
not handled by that function at all)
2025-01-09 12:25:27 +01:00
Martin Pulec
a544fee812 AppImage: set debug if $ULTRAGRID_VERBOSE
If $ULTRAGRID_VERBOSE is set and $APPIMAGE_DEBUG is undefined, set
APPIMAGE_DEBUG to value of ULTRAGRID_APPIMAGE.
2024-09-25 09:15:48 +02:00
Martin Pulec
b644147807 AppImage AppRun: in debug print that no upd. avail
If $APPIMAGE_DEBUG print explicitly that no updates are
available. (`appimageupdatetool -j` really returns 0 when no updates
available, otherwise 1 or a different value on error).
2024-09-25 09:15:48 +02:00
Martin Pulec
e1c747e966 CI mac: use macos-13
macOS 12 is no longer supported and as Homebrew has a policy, that it
compiles packages from sources on unsupported macOSes, it is needed to
switch to newer macOS to keep reasonable build times.
2024-09-19 16:18:59 +02:00
Martin Pulec
77d243f931 AppRun: fix libwayland* not found condition
(commit HEAD^^^)
2024-09-17 15:07:41 +02:00
Martin Pulec
0b261533c8 AppRun: added APPIMAGE_DEBUG + use for libwayland*
Replace FIREJAIL_DEBUG with APPIMAGE_DEBUG and use it to debug printf
that we are using bundled libwayland*.
2024-09-17 14:09:10 +02:00
Martin Pulec
8a58843b7c AppRun: use bundled libwayland* only if needed
Besides the original check (-n $WAYLAND_DISPLAY), do not use the bundled
libraries also when there are the libwayland* in system (so not needed).

This allows `uv -d sdl:driver=KMSDRM` even from console when
WAYLAND_DISPLAY is not defined but Wayland is run in a different session.

If the WAYLAND_DISPLAY is defined but the not all libwayland* are found
in the system, now the bundled version is used (changed- was not
previously).
2024-09-17 13:59:21 +02:00
Martin Pulec
4b449c5917 create-appimage.sh: do not exclude libpipewire-0.3.so.0
ilibpipewire-0.3.so.0 was added to excludelist causing the distcheck fail,
see [1]

We do not need to exclude the lib, because we already handle the preload
in data/scripts/Linux-AppImage/AppRun:282 (the case is similar as for
libjack.so.0 as also mentioned in the related AppImage issue).

[1]:
04af461f47
2024-08-28 13:29:49 +02:00
Martin Pulec
81691c2199 AppRun: removed unused code
not run in MSW, C&P
2024-07-30 08:39:11 +02:00
Martin Pulec
e412845740 data/scripts/build_aja_lib_win64.sh: absolute path
Use absolute path for libajantv2 library.

The relative path was used as for now, which is true in the CI (libajantv2
is extracted to .) but is less eligible for interactive use.
2024-07-26 09:35:42 +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
f3d67249b7 AppImage custom excludelist x86: removed gnutls
Doesn't seem to be required and nwo (since the new PPA use) causes following error:
```
ultragrid_vidcap_rtsp.so: /lib/x86_64-linux-gnu/libgnutls.so.30: undefined symbol: nettle_siv_gcm_aes256_decrypt_message, version NETTLE_8
``
(obviously) when libgnutls30 is not installed, eg. in Ubuntu 24.04.
2024-07-18 10:49:28 +02:00
Martin Pulec
417497b406 AppRun: check system libva
Check if bundled libavcodec has all dependencies satisfied from system
libva, if not do not use the system ones.

Fixes the error message:
```
undefined symbol: vaMapBuffer2  (./squashfs-root/usr/lib/libavutil.so.59)
```

on (some) current Ubuntu 22.04 with current continuous AI.
2024-07-17 16:07:12 +02:00
Martin Pulec
89b173ba2b AppImage: option --ug-help for UG help
If run from within the AppImage, -h shows help of the AppImage wrapper
itself, not the one of UltraGrid. So add --ug-help as an alternative for
`-o uv -h`.

First considered was a shortopt -H, but this is currently mapped by UG
for --full-help (which can be used directly), so keep the long variant
in order not to make it confusing.
2024-07-09 09:27:19 +02:00
Martin Piatka
2f601f5ccd CI Win: Dependencies for screen capture 2024-07-08 16:04:20 +02:00
Martin Pulec
46b2c0ee64 AppRun: restore TIO with sighandler
Restore TIO always - the firejail doesn't always let UG exit gracefully
(seems like there is some timeout), so restore this with the wrapping
script.
2024-07-03 09:33:18 +02:00
Martin Pulec
e6473a01dd AppRun Firejail: allow Avahi over D-bus
needed for NDI discovery
2024-06-26 14:33:24 +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
51589f52da hd-rum-av: support for AppImage/Firejail 2024-05-28 08:51:01 +02:00
Martin Pulec
7373b28aaa AppRun: shorten conditions
||-syntax takes just one line instead of 3
2024-05-09 15:29:29 +02:00
Martin Pulec
3b30d2934b AppIamge: system libva usability improvement
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.
2024-05-09 14:54:24 +02:00
Martin Pulec
5df57da6ba macos-wrapper: change version from 10.15 to 12
Current C/C++ workflow builds already on macOS 12, so that also macOS
versions 10.15 and 11 would be incompatible.
2024-05-09 09:39:27 +02:00
Martin Pulec
65129a99e7 AppRun FJ (Linux): do not whitelist /tmp
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`
2024-04-12 10:56:52 +02:00
Martin Pulec
3efd4186a7 AppRun: exec UG binary with exec
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.
2024-02-19 15:10:38 +01:00