-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fatal: Could not initialize GLX #301
Comments
Thanks for analyzing this @AlbrechtL. Searching the web for |
Here you go strace.log Tons of
|
Indeed Are you getting the error Is there any Qt plugin with "glx" in its name that gets deployed into a subdirectory of your AppDir (which we could use as a trigger to also deploy |
Yes.
I don't know what you mean. My feeling from the other warnings is that some Qt plugins are missing. Inside my local Qt6 installation I found the following plugins:
|
I am looking for something that gets deployed into your AppDir which we could use as an indication that we also need to deploy For this it would be helpful if you could run
after having run Also, what happens if you export |
Here, go-appimage/src/appimagetool/appdirtool.go Lines 1331 to 1343 in 70b3d60
But apparently this does not trigger |
Regarding grep
Full AppImage generation log including the Regarding
Regarding
|
Most likely unrelated, but |
The reason why |
I didn't hard code this library. I just link it dynamically like all other shared libraries. Maybe inside the SoapySDR shared library there are some hard coded absolute paths.
Nothing found. |
What happens if you manually copy |
The app startes a little bit further but crashes again. It seems that more libraries are missing. Key error messages
Full log:
|
What can of worms did we open here ;-/ Where are the missing libraries located on your build/host system? |
Both build and host systems is Ubuntu. The libraries are located here e.g. |
Any new here? How can I help to find the issue? |
Uh, these files seem to be specific to the GPU, which probably means that we'd have to bundle all of |
Copy some additional libs to AppImage. See probonopd/go-appimage#301 for details
Pretty much the same picture (see below). Commit to copy the libraries: AlbrechtL/welle.io@6f57d28
and with
|
Are you running |
Yes, see:
|
@AlbrechtL does the AppImage there work for you? |
I just did a short smoke test, basic functions are there, but still a few libs are missing. But I think this can be fixed easily in @Samueru-sama shell script (AppImage/AppImageSpec#36 (comment)). But the AppImage is huge 151 MB the working older once was ~60 MB.
As far as I can see, the key factor to get it working is the usage of https://github.com/VHSgunzo/sharun. |
...and possibly the use of |
There isn't much that can be done, the size is similar to my OBS Studio appimage, which is also a Qt application with all the libs including the gpu libs included, also I had to copy the entire You can try to build on alpine, since I normally use Artix linux instead for my appimages. EDIT: Also statically link some dependencies if possible, for example stuff like ffmpeg reduces the size of the appimage a lot if it is statically linked instead of copying all the ffmpeg libs. EDIT2: Btw on my script I noticed something that could be improved, this part:
change it to |
I'm building the welle.io AppImage via GitHub Actions (see: https://github.com/AlbrechtL/welle.io/blob/master/.github/workflows/linux.yml). Yesterday I heard the first time from What would be the recommended steps to get a working AppImage? |
sharun is very flexible, you just give the path to the binaries you want to bundle using the However note that in order to get the GL libs you have to simulate some display since those are dlopened and won't be picked up by ldd or similar means, run the lib4bin script with the If you can't do that then it would be doing a local run on ubuntu to see what libs end up being bundle and then on the deploy script the missing libs get added manually (likely be to tedious) and |
@Samueru-sama Thanks for the explanation. I tried add The important workflow lines are Can I ask you for help to get it working? |
@AlbrechtL not sure if this applies to Welle, but for PrusaSlicer I had to do this when using |
Don't use go-appimagetool to deploy if lib4bin is going to be used. lib4bin recently had several features added that make it easier to deploy. use
|
@AlbrechtL I did the needed changes here. However it is not working, it is missing a lot of libraries including the all the Qt plugins, which I have previously deployed the plugins manually, but Does the application actually work in the ubuntu runner that is being built on? I noticed that a |
@probonopd Thanks for answering!
Wow, a lot of custom steps to get the PrusaSlicer AppImage working! @Samueru-sama Thanks for your work to fix the welle.io build workflow!
Correct, the Qt packages are installed via https://github.com/miurahr/aqtinstall/ because I want to use the latest Qt libraries.
Regarding Qt I would say yes. Honestly, I never tried it but I use official Qt Installer for development and this installer and |
I think in this case it is better to use a container and spin archlinux, you get Qt 6.8.1 with the plugins as well. |
To be honest, creating a container just for creating a AppImage is too complicated to me. It is not the initial effort, it is the ongoing maintenance that I don't want to do. It would be nice to have a seamless working solution with a minimum of workflow lines. But Qt seems too complicated, obviously. I think I will focus on Flatpak instead - sorry! |
it is not really complicated, just need to add:
On the .yml and then replace all the apt related commands for pacman ones. (I use Artix instead of Arch because it produces smaller packages, but you can use Arch or anything else that gives you latest Qt). This simplifies the workflow because you don't have to use an action to get Qt and also arch bundles its packages, so you don't need to install as many dependencies to build something on arch as well. With that said I think the issue is that the application doesn't work in the current container because the libraries that it needs aren't being picked up with strace, and the only time I've seen this is when the app doesn't start, can't guarantee that this issue would not happen on Arch as well. |
I'm trying to port my project https://github.com/AlbrechtL/welle.io/ to go-appimage with Qt6. It seems that some libraries or modules inside the AppImage are missing.
welle.io AppImage output (the warnings and fatal messages shouldn't be there)
Inside the AppImage build logs 10_Create AppImage.txt I found the following messages that may be related.
This is the successor issue of #300.
I'm using the following GitHub Actions workflow: https://github.com/AlbrechtL/welle.io/blob/0999d28f88f88587c21364dd2bf4942318ae91c2/.github/workflows/linux.yml
The text was updated successfully, but these errors were encountered: