FeralInteractive / ferallinuxscripts

General use repository for scripts used by Feral Interactive Linux games
61 stars 5 forks source link

Libcurl issue with openssl 1.1 [Tumbleweed][Arch] #2

Open moozaad opened 7 years ago

moozaad commented 7 years ago

I've raised this before on reddit but thought I'd better document it better.

Xcom and Madmax fail on opensuse tumbleweed due to steam runtime issues. I have no idea why you're including a copy of libcurl when it's a very common system library with a stable ABI.

For reference: https://abi-laboratory.pro/tracker/timeline/curl/ - ABI stability https://repology.org/metapackage/curl/information - ABI availability

Our work around is simply Mad Max/lib/x86_64> mv libcurl.so.4 libcurl.so.4_

My suggested fix is not to include libcurl, but instead install it as necessary from the distro.

mdiluz commented 7 years ago

Thanks for the report @moozaad. We've been aware of this for some time. From what I know it should be resolved in newer games (released after May 2017) - we've swapped to libressl instead of openssl which works around the problem for now. Dawn Of War 3 for example should already have the change so if you still hit the same issue with there then let us know.

We appreciate noting the workaround, that should help any other users who come into contact with this issue while we work towards patching older games.

This problem came from linking our libcurl directly with the steam runtime version of libssl, calling itself libssl.1.0.0 but having OPENSSL_1.0.1 available. When steam swapped to preferring native libraries in this update it broke compatibility for us, as the SUSE (and other distro) versions of libssl.1.0.0 don't provide OPENSSL_1.0.1 .

We'd certainly prefer to use the system libcurl, but due to a few complications with the steam runtime we currently can't. Those should be resolved in due course.

moozaad commented 7 years ago

Yeh, 1.0.2 and 1.1 here. That solution is probably for the best. Is there an ETA for the older games' launchers to be moved to libressl?

mdiluz commented 7 years ago

I don't have any specifics I'm afraid. We'll be patching in roughly priority order though based on the amount of user feedback, so I'll add yours to our pool.

If I get a chance I'll update this comment with a set list of games that need this fix and haven't received it already. That'll help users know when this workaround is needed.

moozaad commented 7 years ago

This issue is still present with madmax after the latest patch.

dotWAVE commented 7 years ago

I bought DiRT Rally today and had the same issue.

mdiluz commented 7 years ago

@moozaad and @dotWAVE, unfortunately both of those games do not have this fix yet, they're on our list though

mdiluz commented 7 years ago

Also worth noting that the steam-native-runtime package on Arch now depends on openssl-1.0 and so works around this issue for us in testing. So if you find yourself on this bug report as an Arch user you may want to install steam-native-runtime first and see if that fixes your issue.

moozaad commented 6 years ago

Warhammer still has the issue and that was updated just yesterday!

mdiluz commented 6 years ago

@moozaad Yup, that's correct. We have the fix for Total War Warhammer still in production, unfortunately. I'll adjust the original post so it's less misleading.

mdiluz commented 6 years ago

I expect this issue will begin to affect Ubuntu with 17.10 (releasing Oct 19th).

We're working to back-port patches to all old games affected, but for now extracting this zip into the lib/x86_64 directory in the game install path can work around the issue locally.

It's a steam runtime and system compatible versions of libressl, crypto and curl.

lib-x86_64-override.zip

moozaad commented 6 years ago

Can confirm that it does work with TWWH on tumbleweed. Is it it being backported to the whole library?

mdiluz commented 6 years ago

That's the intention, to all games affected

moozaad commented 6 years ago

Is there an ETD for deployment? I'd like to close so bug reports :)

mdiluz commented 6 years ago

Hi @moozaad, thanks for the reminder.

Things are moving, slowly, but Dirt Rally has a feral_linux_fixes steam branch (password ferallinuxfixes) now with these fixes, we'll be testing this version before going ahead with the other games.

@dotWAVE if you still have the issue, could you try the above branch as well?

rombert commented 6 years ago

For the record, this also affects Company of Heroes 2.

dotWAVE commented 6 years ago

@mdiluz I am unable to use the ferallinuxfixes beta access code.

mdiluz commented 6 years ago

Sorry, the branch had been upgraded to feral_support_branch with password feraldirtsupport.

Hopefully, that works for you while we work on releasing it fully.

mdiluz commented 6 years ago

Launching the game from the command line like that isn't supported and is likely to cause issues. You should launch steam from the command line, and the game from steam, to see the output from a normal launch.

The crash .dmp file is a Google breakpad dump file, containing a call stack and current register values for the crash, among a small amount of system information.

moozaad commented 6 years ago

I don't think that is related to libcurl. Raise a new ticket/issue?

mdiluz commented 6 years ago

OK, fixes have made their way onto steam for Middle Earth: Shadow of Mordor, Alien Isolation, Grid Autosport, Medieval 2, XCOM 2, Tomb Raider, F1 2015, Life Is Strange and Dawn of War 2 (and expansions). Big apologies for the long delay there - the bonus side is that these kinds of fixes are now much easier to make.

If you don't see an update immediately, then it may just be filtering through steam servers. If this particular issue still happens with those games after a few days, then let us know here.

To note, Deus Ex: Mankind Divided, Total War: Warhammer, Mad Max (on the non-Vulkan branch) and Shogun 2 (and expansions) will still need the workaround and will likely be addressed separately.

moozaad commented 6 years ago

It's a shame you didn't get the deus ex:MD fix in before the humble bundle this month! For anyone reading this, the quickest fix is still to rename /lib/x8664/libcurl.so.4 to something else (eg. libcurl.so.4 ). Quickest way to get there is right click the game in steam library->properties->local files(tab)->browse local files.

fosspill commented 6 years ago

I'm still experiencing this on Tomb Raider. renaming libcurl.so.4 worked though :)

SebastianPfliegel commented 6 years ago

@moozaad that did the trick for me, too. Also had to disable one of my displays to be able to start TombRaider in fullscreen. I need to finish this game before Rise of the Tomb Raider get's released ;)

virtualme1 commented 6 years ago

This fixes Total War War Hammer too thanks @moozaad

rombert commented 5 years ago

Confirming that for Company of Heroes 2 the fix works.

ollien commented 5 years ago

I'm still experiencing similar issues on XCOM 2. The game launches fine after running the fix in the linked reddit post.

AzP commented 4 years ago

No updates for this yet? Mad Max (vulkan version) is failing for me on Gentoo. I have openssl-1.0.2 installed.

/mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax: /usr/lib64/libcrypto.so.1.0.0: no version information available (required by /mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax)
/mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax: /usr/lib64/libcurl.so.4: no version information available (required by /mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax)

I am running with STEAM_RUNTIME=0, so I might be seeing a different issue?

dotWAVE commented 4 years ago

I'll test it on Gentoo if I have time tonight.

dotWAVE commented 4 years ago

No updates for this yet? Mad Max (vulkan version) is failing for me on Gentoo. I have openssl-1.0.2 installed.

/mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax: /usr/lib64/libcrypto.so.1.0.0: no version information available (required by /mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax)
/mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax: /usr/lib64/libcurl.so.4: no version information available (required by /mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax)

I am running with STEAM_RUNTIME=0, so I might be seeing a different issue?

Sorry I took this long to get back to this. The game runs for me without any intervention. I am currently running openssl-1.1.1d-r3 and STEAM_RUNTIME is not set. Using a 17.1 profile.

AzP commented 4 years ago

No updates for this yet? Mad Max (vulkan version) is failing for me on Gentoo. I have openssl-1.0.2 installed.

/mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax: /usr/lib64/libcrypto.so.1.0.0: no version information available (required by /mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax)
/mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax: /usr/lib64/libcurl.so.4: no version information available (required by /mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax)

I am running with STEAM_RUNTIME=0, so I might be seeing a different issue?

Sorry I took this long to get back to this. The game runs for me without any intervention. I am currently running openssl-1.1.1d-r3 and STEAM_RUNTIME is not set. Using a 17.1 profile.

Weird! It was working for me last February, but after running a full emerge -uDvatN world in mid December, it didn't start any more. I am running the vulkan beta version, but reverting back to the older non-beta didn't solve the issue of it not starting. If I do a "Verify game files" in Steam, it re-installs 2 libraries that esteam deletes, but then it fails to start because of other missing libraries. It seems like the "no version available" warning isn't the issue though, others are reporting that that warning is not important, as long as the library is of the right version. I have the older, "compatibility" versions installed, since esteam emerges those if needed.

I've also updated to the 17.1 profile, running unstable 64-bit, and have done a complete update of everything. I'm running with the latest kernel and amdgpu drivers.

dotWAVE commented 4 years ago

I've added STEAM_RUNTIME=0 %command% to the launch options and I still don't get the library version warnings that you are. This is also on vulkan_beta which I hadn't mentioned before.

AzP commented 4 years ago

No updates for this yet? Mad Max (vulkan version) is failing for me on Gentoo. I have openssl-1.0.2 installed.

/mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax: /usr/lib64/libcrypto.so.1.0.0: no version information available (required by /mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax)
/mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax: /usr/lib64/libcurl.so.4: no version information available (required by /mnt/media/SteamLibrary/steamapps/common/Mad Max/bin/MadMax)

I am running with STEAM_RUNTIME=0, so I might be seeing a different issue?

Sorry I took this long to get back to this. The game runs for me without any intervention. I am currently running openssl-1.1.1d-r3 and STEAM_RUNTIME is not set. Using a 17.1 profile.

Do you have dev-libs/openssl-compat-1.0.2u installed as well? Or will Mad Max find and use the 1.1 library automatically?

Edit: BTW, Alien Isolation seems to work for me, without issues.

Edit2: Is it possible it is related to the 17.1 profile upgrade, when transitioning the /usr/lib directory? My Mad Max is crashing with a SIGSEV 11 upon starting, could that be the cause? I've e-mailed Feral's support, but can't get past "Please try with STEAM_RUNTIME=1 or switch to Ubuntu".

Edit3: @dotWAVE, are you running curl with the openssl or libressl USE flag? I'm running with openssl.

dotWAVE commented 4 years ago

I do not have dev-libs/openssl-compat emerged (any version). net-misc/curl is built with openssl.

AzP commented 4 years ago

I do not have dev-libs/openssl-compat emerged (any version). net-misc/curl is built with openssl.

Have you run the 'esteam' script, from the steam overlay?

dotWAVE commented 4 years ago

Have you run the 'esteam' script, from the steam overlay?

No, I installed steam with the manual method rather than an overlay.

AzP commented 4 years ago

Ok, so that's one difference. You're most likely using the bundled libraries while I'm using some system libraries in their place. That's one of the things the esteam tool does.

Den fre 17 jan. 2020 15:41dotWAVE notifications@github.com skrev:

Have you run the 'esteam' script, from the steam overlay?

No, I installed steam with the manual method rather than an overlay.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/FeralInteractive/ferallinuxscripts/issues/2?email_source=notifications&email_token=AAHJCWSJIQBQCOB2AE3X6L3Q6G7TBA5CNFSM4DR6UXE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJH4KEQ#issuecomment-575653138, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHJCWQPWVG3GU7PIPL53ADQ6G7TBANCNFSM4DR6UXEQ .

Samsagax commented 3 years ago

Hello. Sorry to necropost on this one. But I encountered this issue and the game DiRT Rally only outputs a SIGSEGV (11) and dump created. I'm on ArchLinux playing on steam big picture mode (GamerOS-like setup) After trying to run the game through the terminal and lds the binary the culprit was libcurl not having versión information. The branch suggested here (feral_support_branch) worked for me without any workarounds. Is it possible to release that branch as the regular game?

brianstamper commented 3 years ago

Same issue as Samsagax, except not using big picture mode. Where is this branch and how does one use it? I don't see anything under github.com/FeralInteractive that looks right.

Samsagax commented 3 years ago

Same issue as Samsagax, except not using big picture mode. Where is this branch and how does one use it? I don't see anything under github.com/FeralInteractive that looks right.

This is the fix I mentioned: https://github.com/FeralInteractive/ferallinuxscripts/issues/2#issuecomment-359401398

brianstamper commented 3 years ago

Same issue as Samsagax, except not using big picture mode. Where is this branch and how does one use it? I don't see anything under github.com/FeralInteractive that looks right.

This is the fix I mentioned: #2 (comment)

Yes, but where is this branch, and how does one use it? I'm fine in general with cloning git repos and doing builds and such, but I do not see this branch anywhere nor do I know how to apply it to the install of the game I have in my Steam library.

Samsagax commented 3 years ago

Yes, but where is this branch, and how does one use it? I'm fine in general with cloning git repos and doing builds and such, but I do not see this branch anywhere nor do I know how to apply it to the install of the game I have in my Steam library.

Inside Steam, go to the game, right click on it > Properties..., then on the side look for Betas, inside the Beta access code field put feraldirtsupport and click on Check button. After that you will have the option to opt-in a beta branch and select the one that says feral_support_branch. The game will update and you can test.

Hope this helps.

brianstamper commented 3 years ago

Yes, but where is this branch, and how does one use it? I'm fine in general with cloning git repos and doing builds and such, but I do not see this branch anywhere nor do I know how to apply it to the install of the game I have in my Steam library.

Inside Steam, go to the game, right click on it > Properties..., then on the side look for Betas, inside the Beta access code field put feraldirtsupport and click on Check button. After that you will have the option to opt-in a beta branch and select the one that says feral_support_branch. The game will update and you can test.

Hope this helps.

Hey that worked! Thank you very much.