sudo apt install libxcb-xinerama0 worked ror me, thanks @DougL , happy bunny now
great to hear. now if we can get LightBurn devs aware of it. @berainlb are you still tied into the Beta group and can let the devs know they forgot to package the xinerama lib with the 1.4.03 release?
Letās ask @adammhaile to take a look here.
Itās not clear to me if they forgot to package xinerama lib or if they inadvertently introduced a dependency since 1.4.02 didnāt require it.
Shared internally and received the following as feedback from a new member of the team.
The AppImage package should include the needed module already
next version will have this fixed
AppImage? Are you leaking an announcement?
I guess .7z
is the same as .appimage
Yesterday I tried to package the latest version for nix following another package which was an .appimage
But it didnāt work. I use nix, but I donāt know enough to package qt.
close but not quite. To experiment, take one of your AppImage applications and run it with " āappimage-extract" and youāll see the āfilesystemā created. Notice how its directory structure mimicks the Linux root filesystem whereas the LightBurn 7z is more of an application directory structure which has been very common in UNIX world for decades. ie tgz, zip, 7z etc provided the application directory for most parts needed by the app but system APIs are often left as requirements prior to running the app. AppImage takes it the next layer and has you providing a fusefs(filesystem overlay) where the System APIs/libraries are provided with the application specific files.
So the .AppImage build weāre working with will include all necessary Qt libraries inside. The .7z file is just a zip of the binaries with directly linked libraries. The .AppImage file is a container that goes one level deeper in the linked library files.
Think about the AppImage as a āmini virtual machineā in terms of OS/library/program, and it gets granted access to the local filesystem for accessing files or devices.
Trying to package LightBurn into an AppImage from the existing .run
or .7z
installation wonāt help you resolve the original issue about xcb as itās still basing itself off an application folder where the library is missing.
Weāll provide a working AppImage (tested on Ubuntu 20.04, 22.04 and 23.04) of LightBurn 1.4.03 shortly for those affected to validate if the AppImage resolves the library dependency, as a short fix while we understand why the problem cropped up in the first place.
Thank you for the info.
When packaging in nix the libraries in the zip are removed and replaced by the libraries in nix.
But I got stuck. I donāt have enough qt/nix/packaging knowledge.
1.2.01 is the last version which works with this packaging. There is a way to make it work till 1.4.01: but then the libs are used from the zip, and not from nix.
Please hit this and let us know how things progress.
nix run nixpkgs#appimage-run -- LIGHTBURN_1.4.03.AppImage
# or
nix-shell -p appimage-run
appimage-run LIGHTBURN_1.4.03.AppImage
Iām able to run this one on NixOS
Iāll try to package this appimage in the future for nix, similar to:
I tried the AppImage for a quick test on Kubuntu 22.04.3 with a GRBL based Orture LM1 diode laser and LightBurn started and did framing as expected but when I tried the camera interface it would not work in the AppImage while it worked with the 7z which I have linking back to old gstreamer libs via
and my startup script:
#!/bin/bash
#
# if LightBurn update feature does not work, try installing libssl1.0-dev
#sudo apt install libssl1.0-dev
HERE=`pwd`
#lbDIR=~/.local/share/LightBurn
lbDIR=~/LightBurn
lbCMD=$lbDIR/LightBurn
lbLibsDIR=~/LightBurnLibs
gstLibs=gstreamer-1.0
if [ ! -d $lbLibsDIR/$gstLibs ] ; then
cd
git clone http://github.com/dlarue/LightBurnLibs
cd $HERE
fi
GST_PLUGIN_SYSTEM_PATH=${lbLibsDIR}/${gstLibs} $lbCMD
Here are the console errors when I tried the AppImage and enabled the camera:
"FaceTime HD Camera (Built-in): " "/dev/video0"
CFU: downloaded 1160 of -1
CFU: downloaded 1160 of 1160
Your version is up to date. " (1.4.03)"
"FaceTime HD Camera (Built-in): " "/dev/video0"
libva info: VA-API version 1.14.0
libva info: User environment variable requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
(AppRun:38851): GStreamer-WARNING **: 14:48:35.264: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcamerabin.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcamerabin.so: undefined symbol: gst_type_mark_as_plugin_api
(AppRun:38851): GStreamer-WARNING **: 14:48:35.266: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcamerabin.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcamerabin.so: undefined symbol: gst_type_mark_as_plugin_api
(AppRun:38851): GLib-GObject-WARNING **: 14:48:35.266: invalid (NULL) pointer instance
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.266: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(AppRun:38851): GLib-GObject-WARNING **: 14:48:35.266: invalid (NULL) pointer instance
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.266: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(AppRun:38851): GLib-GObject-WARNING **: 14:48:35.266: invalid (NULL) pointer instance
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.266: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.266: gst_object_ref_sink: assertion 'object != NULL' failed
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.266: gst_element_get_bus: assertion 'GST_IS_ELEMENT (element)' failed
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.266: gst_bus_add_watch_full: assertion 'GST_IS_BUS (bus)' failed
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.266: gst_bus_set_sync_handler: assertion 'GST_IS_BUS (bus)' failed
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.266: gst_object_ref: assertion 'object != NULL' failed
(AppRun:38851): GLib-GObject-WARNING **: 14:48:35.272: invalid (NULL) pointer instance
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.272: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(AppRun:38851): GLib-GObject-WARNING **: 14:48:35.272: invalid (NULL) pointer instance
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.272: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.272: g_object_set: assertion 'G_IS_OBJECT (object)' failed
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.272: g_object_set: assertion 'G_IS_OBJECT (object)' failed
(AppRun:38851): GStreamer-WARNING **: 14:48:35.279: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /lib/x86_64-linux-gnu/libgstcodecparsers-1.0.so.0: undefined symbol: g_memdup2
(AppRun:38851): GStreamer-WARNING **: 14:48:35.280: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_video_meta_set_alignment
(AppRun:38851): GStreamer-WARNING **: 14:48:35.281: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_video_meta_set_alignment
(AppRun:38851): GStreamer-WARNING **: 14:48:35.283: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_video_meta_set_alignment
(AppRun:38851): GStreamer-WARNING **: 14:48:35.286: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so': /lib/x86_64-linux-gnu/libgstgl-1.0.so.0: undefined symbol: gst_video_format_info_component
(AppRun:38851): GStreamer-WARNING **: 14:48:35.290: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /lib/x86_64-linux-gnu/libgstcodecparsers-1.0.so.0: undefined symbol: g_memdup2
(AppRun:38851): GStreamer-WARNING **: 14:48:35.291: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_video_meta_set_alignment
(AppRun:38851): GStreamer-WARNING **: 14:48:35.292: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwaylandsink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwaylandsink.so: undefined symbol: gst_type_mark_as_plugin_api
(AppRun:38851): GStreamer-WARNING **: 14:48:35.295: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /lib/x86_64-linux-gnu/libgstcodecparsers-1.0.so.0: undefined symbol: g_memdup2
(AppRun:38851): GStreamer-WARNING **: 14:48:35.295: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_video_meta_set_alignment
(AppRun:38851): GStreamer-WARNING **: 14:48:35.296: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_video_meta_set_alignment
(AppRun:38851): GStreamer-WARNING **: 14:48:35.297: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstxvimagesink.so: undefined symbol: gst_video_meta_set_alignment
(AppRun:38851): GStreamer-WARNING **: 14:48:35.299: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopengl.so': /lib/x86_64-linux-gnu/libgstgl-1.0.so.0: undefined symbol: gst_video_format_info_component
(AppRun:38851): GStreamer-WARNING **: 14:48:35.301: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /lib/x86_64-linux-gnu/libgstcodecparsers-1.0.so.0: undefined symbol: g_memdup2
(AppRun:38851): GStreamer-WARNING **: 14:48:35.301: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstximagesink.so: undefined symbol: gst_video_meta_set_alignment
(AppRun:38851): GStreamer-WARNING **: 14:48:35.302: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwaylandsink.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwaylandsink.so: undefined symbol: gst_type_mark_as_plugin_api
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.324: gst_object_ref: assertion 'object != NULL' failed
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.325: gst_element_set_state: assertion 'GST_IS_ELEMENT (element)' failed
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.325: g_object_get: assertion 'G_IS_OBJECT (object)' failed
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.325: gst_element_set_state: assertion 'GST_IS_ELEMENT (element)' failed
(AppRun:38851): GStreamer-CRITICAL **: 14:48:35.325: gst_element_set_state: assertion 'GST_IS_ELEMENT (element)' failed
(AppRun:38851): GLib-GObject-CRITICAL **: 14:48:35.325: g_object_get: assertion 'G_IS_OBJECT (object)' failed
I also got the same camera issue on a booted ISO of Ubuntu 22.04.3 AND it would not load from the appimage because it wanted fuse2 and Ubuntu 22.04.3 had libfuse3.3 installed, not fuse2.
In order to test it I used --appimage-extract in the Downloads directory, changed into the squashfs-root directory and ran AppRun.
I booted Lubuntu 22.04.3 from ISO and it had libfuse2 so I installed it and LightBurn from appimage opened up just fine. The camera still did not work.
Sorry for the headaches LB Devs.
Thank you Doug. @goeland86 has been working this and is based in Europe, so Iād expect heāll be commenting tomorrow.
FYI, Iād backed off on basic testing of the betaās since I saw there were a couple of Linux users looking like they were testing well. Seems they were slacking since the show-stopper xcb bug made it to release.
I will say that having a host computer with a dozen ISO images from different release versions makes it pretty easy to test features and installer. I put LightBurn files on my Hostās hard drive so access to the installation file or other versions is just a click of a mount point in the file viewer away.
Virtual machines might be usable too but an ISO coming off the hostās hdd boots really fast and the hardware isnāt as generic as a VM hardware is. Food for thought.
Hi Doug,
Thanks for the feedback. Iāll have to look at why the camera is having a hard time in the appimage file. What youāre passing along seems to indicate missing gstreamer libraries in the bundled libraries. But as youāre having the issue on 22.04 without manually installing them as well, thatās not surprising. It is disappointing that we didnāt catch it with internal testing, but I havenāt received my laser yet. So thatās why I havenāt yet managed to test camera stuff with Linux much, sometimes you just need the hardware to make it work, as you noted.
The camera issue is likely an organizational thing for the AppImage since I just moved squashfs-root/lib to squashfs-root/libORG then copied the 7z(from 1.4.03) LightBurn/lib to squashfs-root/lib and repackaged LightBurn-x86_64.AppImage and the camera came to life when I ran the AppImage.
@Rick is there any chance there is a beta forum for info/discussion on this? Besides the missing system xcb library file and the camera libs Iād also like to post about where the AppImage local files are stored. Thx
Interesting, so the camera works when using the lib
folder from the 7z? That kind of aligns with what I noticed that the AppImage isnāt encapsulating the gstreamer libraries inside itself by default.
Regarding the local files for AppImage storage, check your DMs, I think itās better if we discuss this via email directly, as the Linux build system is undergoing a rebuild (hence the AppImage distribution format), so any discussion we have on this now would be obsolete in a matter of weeks.
The post for the beta is where we normally ask for feedback on that given beta release. In this case, I leave it to @goeland86, as he is the one working these issues.