about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/teams
diff options
context:
space:
mode:
authorElyhaka <57923898+Elyhaka@users.noreply.github.com>2020-04-17 18:23:31 +0200
committerElyhaka <57923898+Elyhaka@users.noreply.github.com>2020-04-27 15:14:07 +0200
commit73e46470852753b3f3e22bf79bd4230ff0e1cdc2 (patch)
tree82105293693838bc0511527c4c3aa3530bfd6ee7 /pkgs/applications/networking/instant-messengers/teams
parent8afc0daa2982cb7f3732bd357ccdc9dcc0367d89 (diff)
teams: fixing pulseaudio access
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/teams')
-rw-r--r--pkgs/applications/networking/instant-messengers/teams/default.nix22
1 files changed, 22 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index 63d922ab29949..6b5acd8344a8e 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";