diff --git a/pkgs/tools/graphics/mangohud/default.nix b/pkgs/tools/graphics/mangohud/default.nix index cba3c24f70d8..b565ce52b92c 100644 --- a/pkgs/tools/graphics/mangohud/default.nix +++ b/pkgs/tools/graphics/mangohud/default.nix @@ -10,6 +10,8 @@ gnused, xdg-utils, dbus, + libGL, + libX11, hwdata, mangohud32, addDriverRunpath, @@ -20,7 +22,6 @@ ninja, pkg-config, unzip, - libX11, wayland, libXNVCtrl, nlohmann_json, @@ -138,6 +139,8 @@ stdenv.mkDerivation (finalAttrs: { ]; libdbus = dbus.lib; + libGL = libGL; + libX11 = libX11; inherit hwdata; }) ]; diff --git a/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch b/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch index c19b2081c97f..14589826208d 100644 --- a/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch +++ b/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch @@ -11,8 +11,33 @@ index 7379af1..4eef3fe 100644 SPDLOG_ERROR("Could not load libdbus-1.so.3"); return false; } +diff --git a/src/loaders/loader_glx.cpp b/src/loaders/loader_glx.cpp +index aa453b8..0f6479d 100644 +--- a/src/loaders/loader_glx.cpp ++++ b/src/loaders/loader_glx.cpp +@@ -23,7 +23,7 @@ bool glx_loader::Load() { + handle = real_dlopen("glxtrace.so", RTLD_LAZY); + #endif + if (!handle) +- handle = real_dlopen("libGL.so.1", RTLD_LAZY); ++ handle = real_dlopen("@libGL@/lib/libGL.so.1", RTLD_LAZY); + if (!handle) { + SPDLOG_ERROR("Failed to open " MANGOHUD_ARCH " libGL.so.1: {}", dlerror()); + return false; +diff --git a/src/loaders/loader_x11.cpp b/src/loaders/loader_x11.cpp +index 214fd50..2f08857 100644 +--- a/src/loaders/loader_x11.cpp ++++ b/src/loaders/loader_x11.cpp +@@ -110,6 +110,6 @@ static std::shared_ptr loader; + std::shared_ptr get_libx11() + { + if (!loader) +- loader = std::make_shared("libX11.so.6"); ++ loader = std::make_shared("@libX11@/lib/libX11.so.6"); + return loader; + } diff --git a/src/logging.cpp b/src/logging.cpp -index ca986d4..c4d99ea 100644 +index 4ef7023..e24f6da 100644 --- a/src/logging.cpp +++ b/src/logging.cpp @@ -28,8 +28,12 @@ string exec(string command) {