kbumsik / VirtScreen

Make your iPad/tablet/computer into a secondary monitor on Linux.
GNU General Public License v3.0
1.67k stars 111 forks source link

Lots of errors when running AppImage #105

Open fultonm opened 2 years ago

fultonm commented 2 years ago

Maybe a more detailed installation section is needed?

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
libGL error: MESA-LOADER: failed to open iris: /tmp/.mount_VirtScWp3UyZ/usr/share/virtscreen/env/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib64/dri/iris_dri.so) (search paths /usr/lib64/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast: /tmp/.mount_VirtScWp3UyZ/usr/share/virtscreen/env/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib64/dri/swrast_dri.so) (search paths /usr/lib64/dri, suffix _dri)
libGL error: failed to load driver: swrast

Fedora 35

treasuretron commented 2 years ago

same issues on Fedora 34 for me

follower commented 2 years ago

Does VirtScreen still run properly for you after displaying those errors?

As I understand it, partially translating this error message, this means:

libGL error: MESA-LOADER: failed to open iris: /tmp/.mount_VirtScWp3UyZ/usr/share/virtscreen/env/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib64/dri/iris_dri.so) (search paths /usr/lib64/dri, suffix _dri)

  1. the OpenGL loader program tried & failed to open a DRI "driver" named "iris" which is a shared library (contained in a file named /usr/lib64/dri/iris_dri.so).
  2. It failed to load the shared library because that shared library depends on a version (3.4.29) of libstdc++.so which could not be found.

So, that probably means either:

Given that the driver file (/usr/lib64/dri/iris_dri.so) seems to be located on your system, not within the AppImage, but it's trying to load /tmp/.mount_VirtScWp3UyZ/usr/share/virtscreen/env/bin/../lib/libstdc++.so.6 which is on the AppImage, I think that might mean that the AppImage was created on an OS version older than yours.

I wonder if this is somewhat an AppImage packaging issue in regard to loading local drivers from within an AppImage application.

The swrast driver is a software rasterizer/renderer which can be used (slowly) instead of a GPU.

The iris driver is used to render with Intel integrated graphics: https://linuxreviews.org/Intel_Iris.

follower commented 2 years ago

While I can't test this workaround (because I'm in the opposite situation of running on an older system that does need the libstdc++ version included in the AppImage) a LD_PRELOAD workaround was what I was thinking might help & appears to do so:

Alternatively, you could possibly try extracting the contents of the AppImage & deleting the version of libstdc++ included within it (not your system version of it).

follower commented 2 years ago

Some related discussions about the underlying OpenGL-related packaging issue: