From cce2b65151ee844c3a0af0393742ba9c5bb73066 Mon Sep 17 00:00:00 2001 From: Olli Helenius Date: Sat, 26 Jun 2021 17:31:30 +0300 Subject: [PATCH] teams: fix absolute path usages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are some references to absolute paths in the Teams application code: * /usr/share/pixmaps - The application icon. * /usr/bin/xdg-mime - Uses absolute path to invoke. * /usr/bin/teams - Uses absolute path in the autostart file if configured to start automatically at login. Though the paths are hardcoded they can be easily changed within the application’s main JavaScript code bundle and so we’ll do just that. This should at least fix auto-start not working, even when enabled. --- .../instant-messengers/teams/default.nix | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix index ab6274cdf346..1267340c0985 100644 --- a/pkgs/applications/networking/instant-messengers/teams/default.nix +++ b/pkgs/applications/networking/instant-messengers/teams/default.nix @@ -13,6 +13,7 @@ , gawk , xdg-utils , systemd +, nodePackages , enableRectOverlay ? false }: stdenv.mkDerivation rec { @@ -24,7 +25,7 @@ stdenv.mkDerivation rec { sha256 = "1kx4j837fd344zy90nl0j3r8cdvihy6i6gf56wd5n56zngx1fhjv"; }; - nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ]; + nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook nodePackages.asar ]; unpackCmd = "dpkg -x $curSrc ."; @@ -40,11 +41,27 @@ stdenv.mkDerivation rec { ]; preFixup = '' - gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin:${xdg-utils}/bin") + gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin") gappsWrapperArgs+=(--add-flags --disable-namespace-sandbox) gappsWrapperArgs+=(--add-flags --disable-setuid-sandbox) ''; + + buildPhase = '' + runHook preBuild + + asar extract share/teams/resources/app.asar "$TMP/work" + substituteInPlace $TMP/work/main.bundle.js \ + --replace "/usr/share/pixmaps/" "$out/share/pixmaps" \ + --replace "/usr/bin/xdg-mime" "${xdg-utils}/bin/xdg-mime" \ + --replace "Exec=/usr/bin/" "Exec=" # Remove usage of absolute path in autostart. + asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" share/teams/resources/app.asar + + runHook postBuild + ''; + + preferLocalBuild = true; + installPhase = '' runHook preInstall