Ubuntu 24.10 - Client fails

A little frustrated trying to get the client to run on 24.10 (yes, I know you don’t declare support for it yet). Was hoping, though, that one of these options may play out.

Running “just” the pre-compiled client, along with the requisite packages, produces a large white screen with the Bluecherry logo in the center. The log files whine:

[2024-10-16T22:16:51.798657]Uncaught error
[2024-10-16T22:16:51.798657]Error: Unsupported operation: isEnabled
[2024-10-16T22:16:51.798657]Stack trace: #0      AppAutoLauncherImplNoop.isEnabled (package:launch_at_startup/src/app_auto_launcher_impl_noop.dart:8)
#1      LaunchAtStartup.isEnabled (package:launch_at_startup/src/launch_at_startup.dart:62)
#2      new _SettingsOption.<anonymous closure> (package:bluecherry_client/providers/settings_provider.dart:136)
#3      new Future.microtask.<anonymous closure> (dart:async/future.dart:285)
#4      _rootRun (dart:async/zone.dart:1391)
#5      _CustomZone.run (dart:async/zone.dart:1301)
#6      _CustomZone.runGuarded (dart:async/zone.dart:1209)
#7      _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249)
#8      _rootRun (dart:async/zone.dart:1399)
#9      _CustomZone.run (dart:async/zone.dart:1301)
#10     _CustomZone.runGuarded (dart:async/zone.dart:1209)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249)
#12     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#13     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)

[2024-10-16T22:16:51.799921]Error loading data for window.launch_app_on_startup. Fallback to default value

I can’t really find anything to install, update, or modify, or if this really is the fatality keeping the window from proceeding forward into something resembling camera output.

OK, fine, lets make it from source.


Aight, follow instructions here.

After trying to figure out all the missing packages, and a successful run of ./configure , make will choke with:

g++ -DPACKAGE_NAME=\"Bluecherry\ client\" -DPACKAGE_TARNAME=\"bluecherry-client\" -DPACKAGE_VERSION=\"2.2.9\" -DPACKAGE_STRING=\"Bluecherry\ client\ 2.2.9\" -DPACKAGE_BUGREPORT=\"https://github.com/bluecherrydvr/bluecherry-client/issues\" -DPACKAGE_URL=\"https://bluecherrydvr.com\" -DPACKAGE=\"bluecherry-client\" -DVERSION=\"2.2.9\" -DHAVE_LIBPTHREAD=1 -I.  -I./src -DQT_DISABLE_DEPRECATED_BEFORE=0  -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -DQT_SQL_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtSql -DQT_NETWORK_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -DQT_WIDGETS_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -DQT_GUI_LIB -DQT_CONCURRENT_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtConcurrent -DQT_CORE_LIB  -I/usr/include/x86_64-linux-gnu  -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/fribidi -I/usr/include/x86_64-linux-gnu -I/usr/include/libxml2 -I/usr/include/lua5.2 -I/usr/include/SDL2 -I/usr/include/uchardet -I/usr/include/pipewire-0.3 -I/usr/include/spa-0.2 -D_REENTRANT -I/usr/include/libdrm -I/usr/include/sixel  -std=c++11 -fPIC -g -O2 -MT src/core/bluecherry_client-VaapiHWAccel.o -MD -MP -MF src/core/.deps/bluecherry_client-VaapiHWAccel.Tpo -c -o src/core/bluecherry_client-VaapiHWAccel.o `test -f 'src/core/VaapiHWAccel.cpp' || echo './'`src/core/VaapiHWAccel.cpp
src/core/VaapiHWAccel.cpp:14:10: fatal error: libavcodec/vaapi.h: No such file or directory
   14 | #include <libavcodec/vaapi.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:2145: src/core/bluecherry_client-VaapiHWAccel.o] Error 1

The missing vaapi.h file seems to be present in older Ubuntu versions’ libavcodec-dev package… but not in 24.xx. Following to its source, ffmpeg, it appears the latest version there does not have it either. I’m not smart enough to know how to futz with the source for ffmpeg (e.g. not the Ubuntu release) to get what B/C needs from it.

Any tips for getting it to work? Would I be better off trying to get the 2.xx version compiled and/or installed (running the 18.04 .deb installer for older client had its problems, I tried that, but that’s probably a separate post…)?

Followup:

OK, lets try the V3 client from here , AppImage should be pretty simple, right? …

0.29.1 (git ede67ed) - Multimedia Development Kit. Copyright (c) 2016-2024 WangBin(QtAV author) <wbsecg1 at gmail.com>
Build for: Linux 4KB x86_64; glibc2.24/2.40 libc++200000; Clang20.0.0 (++20241015031252+9b7491e86691-1~exp1~20241015151425.1990); 02:16:30 Oct 16 2024
libEGL fatal: did not find extension DRI_Mesa version 

Searching for that error seems to go down a rabbit hole of graphics incompatibilities

I’d guess if I tried building that from source (never used flutter before) it would still crash anyway…

Sigh, any help for a weary old man?

It seems like you’re building from the bleeding edge release. This version is unstable, and is in constant development.

Please, download the client from Release v3.0.0-beta19. We are having issues with AppImage (see Issue #245). Please try to use the .deb installer.

Well, trying a lot of things.

I can confirm the V3 .deb image works nicely, thank you.

However, I am trying to connect to an older (2.8.8) server that the V3 client doesn’t want to talk to (Reasonable on your part)… so I was trying to build against the older V2.xx source (github /bluecherrydvr/bluecherry-client/releases/tag/2.2.9) (a .deb for that would work too; the Ubuntu 1804 image works nicely on a 1804 box, but on 2404 goes into library hell).

“Just upgrade your older one” is a reasonable answer, but last-resort for me.

Anyway, the missing vaapi.h header was from the 2.2.9 source… was somewhat hoping there would be a library that replaces it that could be apt-get install’d into the box I’m making on. I certainly could try building on an older image (e.g. Ubuntu 1804 if that is what the .deb was made on) but fear everything is dynamically linked and the libraries would be missing on target system when transferring the compiled executable to a 24xx box…

Thanks in advance