New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Steam openssl fix #23034
WIP: Steam openssl fix #23034
Conversation
@corngood, thanks for your PR! By analyzing the history of the files in this pull request, we identified @abbradar, @hrdinka and @the-kenny to be potential reviewers. |
Doing this with
And presumably impacts child process (i.e. games). I'd love to find a better way, but any modifications to the steam ELF cause it to fail checksum and replace itself at startup. |
ValveSoftware/steam-for-linux#4619 Describes the root problem: it's statically linked against openssl |
Maybe we need to preload 64-bit version as well for consistency, too? |
@abbradar I don't think it's worth it. It would suppress the warning, but the steam client is 32-bit only, and most games these days are 64-bit, so it would be at the expense of an increased chance of the preload causing a problem. An alternative would be to build |
@corngood It won't even supress the warning, actually it will double their number :D The only possible advantage would be to override OpenSSL everywhere so if Steam has a 64-bit part with static OpenSSL it would also be fixed. About alternative: yes, I wanted to prosose this too but I tried to use it already some time ago when we needed to preload PulseAudio and it turns out I'll test it and merge in several days, thanks. |
@abbradar I was thinking it would suppress the warning if you preloaded from the chroot and used I'll push a new version with openssl-steam reverted, since it's unlikely to ever be needed again, and remove WIP. |
@abbradar A crash was reported with this PR at #20726 (comment). I'm going to investigate that as well before removing WIP. |
@abbradar looks like it may have been a false alarm. Feedback from more users would be nice, but I've removed WIP. |
I also reverted the commit where |
Just tested this pull request and can confirm that it fixes the same issue with another game (Dirt Rally). |
@abbradar thoughts on merging this? |
Also seems to work for me. |
@corngood I've done some more testing and it seems that this patch fixes some games, but it appears to break Team Fortress 2. Other Source Engine games (Counter Strike: Global Offensive, Portal 2) work fine.
|
@tjg1 that's unfortunate. Are you by any chance using:
I needed that for mesa, I think, so I've been doing all my testing with it for a while now. I'm just curious if it makes a difference for this. Also, could you post a stack trace if you can get one? At least it's a free game, so I'll be able to test it when I get some time. |
I'm not using |
Hey nice! This also fixes the error I recently experienced with games ported by Feral Interactive like Deus Ex Mankind Devided, Hitman, MadMax and Tomb Raider, which all have a similar launcher.
|
I completely forgot about this PR and got overwhelmed by other things later, sorry. @tjg1's report that it breaks some games worries me -- I'll try to run Team Fortress 2 with the patch and see what happens. |
@abbradar yeah I put WIP back on until we sort that out. |
I was able to reproduce the TF2 crash, and got the stack trace:
|
Looks like another problem with openssl being statically linked (into engine.so this time) and still calling to symbols from the shared library. |
I just had a steam client update, so I thought I'd test it again without the LD_PRELOAD hack, and it now seems to be working fine with mesa. It looks like since mesa 17, they have a built-in sha1 implementation, and no longer use openssl (or libnettle, etc). @abbradar we should probably remove the openssl dependency from mesa, but I'm thinking that should go into staging? So this change now simply reverts the openssl hacks used to get steam working with mesa. @baracoder @tjg1 @FRidh if any of you get a chance to test this, it would be appreciated. I've tested:
|
Can confirm this fixes TF2 and Awesomenauts (another game that was broken with previous patch). Feral Interactive games (Dirt Rally and Tomb Raider) also work fine. Awesome work. Thanks. |
I've been testing #23034 cherry-picked onto nixos-17.03 and it seems to fix the issue. I haven't yet found any new breakage. I'm using an nVidia card with the proprietary drivers. Tested and confirmed working so far:
|
Looks like we can revert this then on both master and 17.03. For me Insurgency and Wargame work. |
No longer necessary. See #23034 (comment) This reverts commit a120bad.
No longer necessary. See #23034 (comment) This reverts commit a50784b.
No longer necessary. See #23034 (comment) This reverts commit a120bad. (cherry picked from commit 398823d)
No longer necessary. See #23034 (comment) This reverts commit a50784b. (cherry picked from commit 2c006ca)
I've pushed these two commits to master and 17.03. |
Motivation for this change
This is an alternate fix #20269 which shouldn't cause the knock-on described in #20726.
Things done
(nix.useSandbox on NixOS,
or option
build-use-sandbox
innix.conf
on non-NixOS)
nix-shell -p nox --run "nox-review wip"
./result/bin/
)