space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.71k stars 3.43k forks source link

glfw3 fails to load on Linux #720

Closed ghpsk closed 4 years ago

ghpsk commented 4 years ago

Attempting to run current release throws this error:

Unhandled exception. System.EntryPointNotFoundException: Unable to find an entry point named 'glfwWindowHintString' in shared library 'glfw3.dll'.
   at OpenToolkit.GraphicsLibraryFramework.GLFWNative.glfwWindowHintString(Int32 hint, Byte* value)
   at OpenToolkit.GraphicsLibraryFramework.GLFW.WindowHint(WindowHintString hint, String value) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/OpenToolkit.GraphicsLibraryFramework/GLFW.cs:line 909
   at Robust.Client.Graphics.Clyde.Clyde.InitWindow() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.Windowing.cs:line 133
   at Robust.Client.Graphics.Clyde.Clyde.InitWindowing() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.Windowing.cs:line 119
   at Robust.Client.Graphics.Clyde.Clyde.Initialize() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.cs:line 72
   at Robust.Client.GameController.Startup() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController.cs:line 130
   at Robust.Client.GameController.ParsedMain(CommandLineArgs args) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 51
   at Robust.Client.GameController.Start(String[] args) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 39
   at Robust.Client.GameController.Main(String[] args) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 24

It seems as if the dependency on glfw3.dll isn't being properly redirected to libglfw.so.3. glfw3.dll is not present in the Linux Robust.Client directory, which is likely as it should be.

PJB3005 commented 4 years ago

Nah the file paths are correct. The problem is almost certainly that I was lazy when compiling GLFW and that it's failing to load the GLFW we ship due to stupid ABI issues, and instead falling back to an outdated system version.

ScumbagDog commented 4 years ago

I just tried to run the client myself, and I couldn't replicate your problem. It starts up fine, and I could connect to the public server and play, no problem. On the other hand, I cannot run the server (log for the curious), but that's for another issue.

EDIT: Server runs fine for me now. Dunno what the problem was, I just ran a system update and pulled the latest version of SS14.

AJCM-git commented 4 years ago

is this still an issue?

Wonuku commented 4 years ago

Throwing this error in the latest version when trying to join servers:

[DEBG] clyde.win: GLFW initialized, version: 3.2.1 X11 GLX EGL clock_gettime /dev/js Xf86vm shared.
[FATL] unhandled: System.EntryPointNotFoundException: Unable to find an entry point named 'glfwWindowHintString' in shared library 'glfw3.dll'.
   at OpenToolkit.GraphicsLibraryFramework.GLFWNative.glfwWindowHintString(Int32 hint, Byte* value)
   at OpenToolkit.GraphicsLibraryFramework.GLFW.WindowHint(WindowHintString hint, String value) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/OpenToolkit.GraphicsLibraryFramework/GLFW.cs:line 909
   at Robust.Client.Graphics.Clyde.Clyde.InitWindow() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.Windowing.cs:line 147
   at Robust.Client.Graphics.Clyde.Clyde.InitWindowing() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.Windowing.cs:line 133
   at Robust.Client.Graphics.Clyde.Clyde.Initialize() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.cs:line 93
   at Robust.Client.GameController.Startup(Func`1 logHandlerFactory) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController.cs:line 136
   at Robust.Client.GameController.ParsedMain(CommandLineArgs args, Boolean contentStart) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 54
   at Robust.Client.GameController.Start(String[] args, Boolean contentStart) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 37
   at Robust.Client.GameController.Main(String[] args) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 22
Unhandled exception. System.EntryPointNotFoundException: Unable to find an entry point named 'glfwWindowHintString' in shared library 'glfw3.dll'.
   at OpenToolkit.GraphicsLibraryFramework.GLFWNative.glfwWindowHintString(Int32 hint, Byte* value)
   at OpenToolkit.GraphicsLibraryFramework.GLFW.WindowHint(WindowHintString hint, String value) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/OpenToolkit.GraphicsLibraryFramework/GLFW.cs:line 909
   at Robust.Client.Graphics.Clyde.Clyde.InitWindow() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.Windowing.cs:line 147
   at Robust.Client.Graphics.Clyde.Clyde.InitWindowing() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.Windowing.cs:line 133
   at Robust.Client.Graphics.Clyde.Clyde.Initialize() in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/Graphics/Clyde/Clyde.cs:line 93
   at Robust.Client.GameController.Startup(Func`1 logHandlerFactory) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController.cs:line 136
   at Robust.Client.GameController.ParsedMain(CommandLineArgs args, Boolean contentStart) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 54
   at Robust.Client.GameController.Start(String[] args, Boolean contentStart) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 37
   at Robust.Client.GameController.Main(String[] args) in /var/lib/jenkins/workspace/SS14 Content/RobustToolbox/Robust.Client/GameController/GameController.Standalone.cs:line 22

this happens after the update gets downloaded

PJB3005 commented 4 years ago

That's because it's failing to load our provided libglfw.so.3 and falling back to the system's one which is too outdated.

Wonuku commented 4 years ago

Outdated

* laughs in debian *

That's because it's failing to load our provided libglfw.so.3

Well I just extracted the zip again and found no file like that. Maybe it's renamed to something else?

provided

Is this a coding/packaging problem or does the game depend on the system for the right version of libraries?

BozoDel commented 4 years ago

Hi, just dropping by to say that it affects me too.

(hope I'm not being too pushy)