in additon to gl and sdl check, bundle also if having vulkan
This should be covered by the sdl case, anyways - vulkan display uses
sdl for window management so this usually implies that sdl display will
be present as well, unless explicitly disabled.
the previous actually didn't work properly, because uv-qt depend
on libQt6OpenGL.so.6 which in turn depend on libOpenGL.so.0. But
LD_LIBRARY_PATH is not set inside the AI so the transitive dep
is not handled and thus the preload is not applied.
Querying libQt6OpenGL.so.6 directly also don't work because it resolves
to the libOpenGL.so.0 in the same library, from which we cannot deduce
if its counterpart is inside the system.
generate the run-time dependency according to the build system, not
hard-coded
The advantage for CI is that it does no longer need to be upgraded every
time the GH runner was updated.
This also generalizes for non-CI builds, when the build macOS version
can obviously differ from the CI macos runner.
Do not use both Darwin and macOS version, use just macOS ver.
Currently Ubuntu 25.10 live DVD (ubuntu-25.10-desktop-amd64.iso)
does not include the library, preventing the GUI from being
run. On the other hand, if used unconditionally, it causes
the warning (even in the U25.10) for which it was removed:
<https://github.com/linuxdeploy/linuxdeploy/issues/152>
So preload the library if is in the system and use the bundled just as
a fallback.
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`.
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.
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.
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.
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.
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..
```
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.
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
- 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)
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)
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).
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.
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).
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
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.
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
```
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.
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.
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.