Skip to content

Instantly share code, notes, and snippets.

@leana8959
Created March 7, 2026 09:48
Show Gist options
  • Select an option

  • Save leana8959/da1161837bbc0e7bbf4485079350fda2 to your computer and use it in GitHub Desktop.

Select an option

Save leana8959/da1161837bbc0e7bbf4485079350fda2 to your computer and use it in GitHub Desktop.
NixOS Life is Strange glibc missing libc_dlopen_mode symbol fix
{
programs.steam = {
enable = true;
protontricks.enable = true;
package =
let
# Following is a patch for Life is strange
#
# A symbol in glibc is no longer exported.
# https://sourceware.org/git/?p=glibc.git%3Ba%3Dcommit%3Bh%3D7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8
#
# Three solutions:
# - Use an older version of nixpkgs (doesn't upgrade well).
# - Use an option in a config file to disable the pop-up. (People say it doesn't work at the first start up).
# - Patch glibc (wtf) (doesn't upgrade well).
# - Change LD_PRELOAD envvar so the so file can be found (worked on the first try).
#
# Now, by the magic of nix, this will continue to work.
#
# https://www.reddit.com/r/linux_gaming/comments/121yhpm/why_the_native_port_of_life_is_strage_before_the/
# https://www.protondb.com/app/554620
libc_dlopen_mode__fix = pkgs.stdenv.mkDerivation (finalAttrs: {
pname = "libc_dlopen_mode";
version = lib.substring 0 8 finalAttrs.src.rev;
src = pkgs.fetchFromGitHub {
owner = "vkc-1974";
repo = "XCOM2WotC-f35";
rev = "20bcf64f169f356139c485cd6c636f2a17e7e65a";
hash = "sha256-w3Qi5ysNyw5gOU2lmJjPUhMkthZUhZjaquurHFt3PoA=";
};
installPhase = ''
cp liblibc_dlopen_mode.so $out
'';
});
in
pkgs.steam.override (oldArgs: {
extraEnv = oldArgs.extraEnv or { } // {
LD_PRELOAD = "${libc_dlopen_mode__fix}";
};
});
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment