actionquake / distrib

Official AQtion distribution files
GNU General Public License v2.0
25 stars 13 forks source link

Error on startup on Fedora 37 (libcurl-gnutls.so.4: cannot open shared object file: No such file or directory) #295

Closed Calinou closed 10 months ago

Calinou commented 1 year ago

OS: Fedora 37 AQtion version: 1.3.4 from Steam or direct download from https://www.aqtiongame.com/ (x86_64 Linux)

I get the following error when the game starts:

❯ ./launch.sh
Parent starting mainline.
[S_API] SteamAPI_Init(): Loaded '/home/hugo/.local/share/Steam/linux64/steamclient.so' OK.
Setting breakpad minidump AppID = 1978800
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  [redacted] [API loaded no]
Parent in command processing loop.
./q2pro: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
Parent shutting down.
Parent sending SHIMEVENT_BYE().
Parent waiting on child process.
Parent exiting mainline (child exit code 127).

I have libcurl installed on the system, but it's likely an incompatible version (OpenSSL vs GnuTLS). Unfortunately, Fedora doesn't seem to have the GnuTLS version of curl in its official packages.

In the meantime, I forced Steam to use the Windows version via Proton, which works great.

darkshade9 commented 1 year ago

Hi @Calinou -- did it work in previous versions? The impetus behind the change was that many users (specifically Mint users) were unable to launch the game from Steam because Steam was doing something that was setting an alternative library path to find libcurl, and the libcurl version that Steam uses is out of date. AQtion uses q2pro under the hood, which uses a very recent version of libcurl.

Can you try an experiment for me? In the directory containing the game (Steamapps/steam/common/AQtion ...), remove this line, save the file and try launching it from Steam again: LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/

Calinou commented 1 year ago

did it work in previous versions?

Yes, the previous versions worked correctly (such as the one that was on Steam on April 5th – that's the last one I remember being able to launch).

Can you try an experiment for me? In the directory containing the game (Steamapps/steam/common/AQtion ...), remove this line, save the file and try launching it from Steam again: LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/

I've tried that, but I still get the same error as before.

darkshade9 commented 1 year ago

@Calinou I'm attaching a binary I built locally to see if it helps. Can you try this q2pro version with and without the changes in the launch.sh file?

q2pro.zip

Calinou commented 1 year ago

I'm attaching a binary I built locally to see if it helps. Can you try this q2pro version with and without the changes in the launch.sh file?

I'm getting this error now:

❯ ./launch.sh
Parent starting mainline.
[S_API] SteamAPI_Init(): Loaded '/home/hugo/.local/share/Steam/linux64/steamclient.so' OK.
Setting breakpad minidump AppID = 1978800
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  [redacted] [API loaded no]
Parent in command processing loop.
./q2pro: error while loading shared libraries: /home/dino/git/actionquake-q2pro/extern/discord/lib/x86_64/discord_game_sdk.so: cannot open shared object file: No such file or directory
Parent shutting down.
Parent sending SHIMEVENT_BYE().
Parent waiting on child process.
Parent exiting mainline (child exit code 127).
darkshade9 commented 1 year ago

Yep, I knew I forgot something. Try this one instead, fresh off the build pipeline:

q2pro-lin-gcc.zip

Calinou commented 1 year ago

Yep, I knew I forgot something. Try this one instead, fresh off the build pipeline:

I get this after ensuring q2pro is made executable:

❯ ./launch.sh
Parent starting mainline.
[S_API] SteamAPI_Init(): Loaded '/home/hugo/.local/share/Steam/linux64/steamclient.so' OK.
Setting breakpad minidump AppID = 1978800
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  [redacted] [API loaded no]
Parent in command processing loop.
./q2pro: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory
Parent shutting down.
Parent sending SHIMEVENT_BYE().
Parent waiting on child process.
Parent exiting mainline (child exit code 127).

I have libjpeg-turbo installed from the Fedora repositories (there's no libjpeg8 in Fedora repositories).

darkshade9 commented 1 year ago

It's strange that it worked before, then. libjpeg-turbo depends on libjpeg.8 if I remember correctly...

Are you removing the LD_LIBRARY_PATH in the script? Are you able to launch ./q2pro directly?

Calinou commented 1 year ago

Are you removing the LD_LIBRARY_PATH in the script?

Yes (I've tried with and without LD_LIBRARY_PATH).

Are you able to launch ./q2pro directly?

No, I get the same error:

❯ ./q2pro
./q2pro: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory
darkshade9 commented 1 year ago

I'll have to do a spot check on the differences between these builds, but I'm fairly certain that there were no libjpeg changes between 1.3.4 and the release on the 5th. If you do an ldd q2pro | grep jpeg, does it show an expected path to find the library, or that it is not found?

Calinou commented 1 year ago

If you do an ldd q2pro | grep jpeg, does it show an expected path to find the library, or that it is not found?

I get this:

❯ ldd q2pro | grep jpeg
    libjpeg.so.8 => not found
darkshade9 commented 1 year ago

Just for experiment's sake, can we try to install libjpeg 8 via yum? libjpeg9 won't work as a replacement if it tries to defer to that version.

Calinou commented 1 year ago

Just for experiment's sake, can we try to install libjpeg 8 via yum? libjpeg9 won't work as a replacement if it tries to defer to that version.

There's no libjpeg8 in Fedora repositories, only libjpeg-turbo.

darkshade9 commented 1 year ago

I'm honestly surprised AQtion ever worked without libjpeg8, it's been a requirement since the first release. I'll see if there's an alternative method to get this working for you.

darkshade9 commented 10 months ago

Closing as there's an alternative way to play and no real conclusion to the issue, I'm unable to reproduce locally.