From 73e46470852753b3f3e22bf79bd4230ff0e1cdc2 Mon Sep 17 00:00:00 2001 From: Elyhaka <57923898+Elyhaka@users.noreply.github.com> Date: Fri, 17 Apr 2020 18:23:31 +0200 Subject: [PATCH] teams: fixing pulseaudio access --- .../instant-messengers/teams/default.nix | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix index 63d922ab299..6b5acd8344a 100644 --- a/pkgs/applications/networking/instant-messengers/teams/default.nix +++ b/pkgs/applications/networking/instant-messengers/teams/default.nix @@ -52,6 +52,28 @@ stdenv.mkDerivation rec { ln -s $out/opt/teams/teams $out/bin/ ''; + dontAutoPatchelf = true; + + # Includes runtimeDependencies in the RPATH of the included Node modules + # so that dynamic loading works. We cannot use directly runtimeDependencies + # here, since the libraries from runtimeDependencies are not propagated + # to the dynamically loadable node modules because of a condition in + # autoPatchElfHook since *.node modules have Type: DYN (Shared object file) + # instead of EXEC or INTERP it expects. + # Fixes: https://github.com/NixOS/nixpkgs/issues/85449 + postFixup = '' + autoPatchelf "$out" + + runtime_rpath="${lib.makeLibraryPath runtimeDependencies}" + + for mod in $(find "$out/opt/teams" -name '*.node'); do + mod_rpath="$(patchelf --print-rpath "$mod")" + + echo "Adding runtime dependencies to RPATH of Node module $mod" + patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod" + done; + ''; + meta = with stdenv.lib; { description = "Microsoft Teams"; homepage = "https://teams.microsoft.com";