Veloren Airshipper- libEGL.so not found

Hi, I was trying to install Airshipper to play veloren on nixos-unstable using nix-env -iA nixos.airshipper. It installs and updates the game just fine, however, when I try to play it, I get an error. Here’s the log of the error:

[2022-03-16][23:45:43][wgpu_hal::gles::egl:484][WARN] Unable to open libEGL.so: Library(DlOpen { desc: "libEGL.so: cannot open shared object file: No such file or directory" })
[2022-03-16][23:45:43][wgpu_hal::vulkan::adapter:843][INFO] Private capabilities: PrivateCapabilities { flip_y_requires_shift: true, imageless_framebuffers: true, image_view_usage: true, timeline_semaphores: true, texture_d24: true, texture_d24_s8: true, non_coherent_map_mask: 63 }
[2022-03-16][23:45:43][airshipper::gui::components::changelog:171][DEBUG] Changelog up-to-date.
[2022-03-16][23:45:44][airshipper::gui::components::news:43][DEBUG] News up-to-date.
[2022-03-16][23:45:45][airshipper::profiles:198][ERROR] Environment variable error: Unnecessary ',' in variable list
[2022-03-16][23:45:45][airshipper::profiles:204][DEBUG] Launching /home/thanawat/.local/share/airshipper/profiles/default/veloren-voxygen
[2022-03-16][23:45:45][airshipper::profiles:205][DEBUG] CWD: "/home/thanawat/.local/share/airshipper/profiles/default"
[2022-03-16][23:45:45][airshipper::profiles:206][DEBUG] ENV: {"VELOREN_USERDATA": "/home/thanawat/.local/share/airshipper/profiles/default/userdata", "VOXYGEN_SCREENSHOT": "/home/thanawat/.local/share/airshipper/profiles/default/screenshots", "WGPU_BACKEND": "vulkan", "VELOREN_ASSETS": "/home/thanawat/.local/share/airshipper/profiles/default/assets"}
[2022-03-16][23:45:45][airshipper::gui::views::default:449][ERROR] Failed to receive an update from Veloren process! No such file or directory (os error 2)

It seems that libEGL.so is not found as a library when trying to play the game. I’m not sure how to fix this with an overlay… I also tried to install airshipper from the official flake, GitHub - veloren/Airshipper: The official Veloren launcher! This repository is a mirror. Please submit all PRs and issues on our GitLab page: https://gitlab.com/veloren/airshipper but I get an error saying Nightly 2021-12-19 is not available .
Thank you in advance for your help.

For libEGL.so, did you enable all the necessary OpenGL options in your system configuration?

About the GitHub: please don’t use it anymore, they moved the canonical repositories to GitLab.

That won’t fix the issue about rust though, it has been reported in the veloren/veloren already, and a solution has been proposed and I asked for clarification last week, as it is not clear to me how to apply the solution and if it was nix or rust side, or both even.

What OpenGL options should I enable? is it just hardware.opengl.enable = true ?

I had a look at this a few days ago - the libGL error isn’t related.

If you try adding libGL to buildInputs and rebuild, it will detect things properly, but veloren still doesn’t work after download due to missing libraries.

I see. I guess I’ll have to wait a bit before I can play the game on Nixos then… I could also just try the flatpack version later.

You could probably do LD_LIBRARY_PATH=/run/opengl-driver/lib before launching it.

The binary Airshipper downloads needs to be patched to work with Nix, https://github.com/veloren/Airshipper/blob/68f0405480ff2fc44890091f72e7aa3afd772259/client/src/nix.rs#L4-L33 does that. That should be updated to include libEGL. The other error is unrelated, just updating the flake.lock should fix it.

Let me just elaborate on my earlier post as well as what @yusdacra said:

  1. the missing libGL.so message doesn’t matter - it’s just that airshipper cannot find libGL.so which can be fixed by adding it to libPath but again, it really isn’t required, because of the next item:
  2. airshipper will patch the downloaded binary when it detects NixOS and that patch does include libGL. However, due to nixos/os-release: generate from attrset by peterhoeg · Pull Request #162168 · NixOS/nixpkgs · GitHub by yours truly, airshipper is no longer able to detect that it’s running on NixOS and thus the patching doesn’t happen.
  3. even with the NixOS check fixed, it still doesn’t work since we recently starting erroring out when a number of deprecated attribute names were used. In this case it’s libudev. So we need to patch airshipper for that (I’m submitting a PR upstream for this) as well.

If you want airshipper to work right now:

  1. pull in this commit 0c68e23f523 (will be in the next unstable)
  2. patch airshipper to look for udev instead of libudev by pulling in airshipper: work around deprecated names by peterhoeg · Pull Request #164688 · NixOS/nixpkgs · GitHub
1 Like

Another option is the flatpak :slight_smile: