summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/discord/linux.nix
diff options
context:
space:
mode:
authorArtturi <Artturin@artturin.com>2022-10-22 21:50:39 +0300
committerGitHub <noreply@github.com>2022-10-22 14:50:39 -0400
commitcdde640978b59004fb5ad91a66ba95a4ae52d770 (patch)
tree82b10836b93c78b0fbb8660b46f532db07646189 /pkgs/applications/networking/instant-messengers/discord/linux.nix
parent655b51eb188a5abe9748796888226b68e988dc2f (diff)
downloadnixpkgs-cdde640978b59004fb5ad91a66ba95a4ae52d770.tar
nixpkgs-cdde640978b59004fb5ad91a66ba95a4ae52d770.tar.gz
nixpkgs-cdde640978b59004fb5ad91a66ba95a4ae52d770.tar.bz2
nixpkgs-cdde640978b59004fb5ad91a66ba95a4ae52d770.tar.lz
nixpkgs-cdde640978b59004fb5ad91a66ba95a4ae52d770.tar.xz
nixpkgs-cdde640978b59004fb5ad91a66ba95a4ae52d770.tar.zst
nixpkgs-cdde640978b59004fb5ad91a66ba95a4ae52d770.zip
discord: add a script to disable breaking updates (#197248)
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/discord/linux.nix')
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/linux.nix44
1 files changed, 31 insertions, 13 deletions
diff --git a/pkgs/applications/networking/instant-messengers/discord/linux.nix b/pkgs/applications/networking/instant-messengers/discord/linux.nix
index ec34959a290..9ac36b66ff8 100644
--- a/pkgs/applications/networking/instant-messengers/discord/linux.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/linux.nix
@@ -4,9 +4,22 @@
 , glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11
 , libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes
 , libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss
-, pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript
+, pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript, python3, runCommand
 , common-updater-scripts, withOpenASAR ? false }:
 
+let
+  disableBreakingUpdates = runCommand "disable-breaking-updates.py"
+    {
+      pythonInterpreter = "${python3.interpreter}";
+      configDirName = lib.toLower binaryName;
+    } ''
+    mkdir -p $out/bin
+    cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py
+    substituteAllInPlace $out/bin/disable-breaking-updates.py
+    chmod +x $out/bin/disable-breaking-updates.py
+  '';
+in
+
 stdenv.mkDerivation rec {
   inherit pname version src meta;
 
@@ -85,7 +98,8 @@ stdenv.mkDerivation rec {
         "''${gappsWrapperArgs[@]}" \
         --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
         --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-        --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${binaryName}
+        --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${binaryName} \
+        --run "${lib.getExe disableBreakingUpdates}"
 
     ln -s $out/opt/${binaryName}/${binaryName} $out/bin/
     # Without || true the install would fail on case-insensitive filesystems
@@ -115,15 +129,19 @@ stdenv.mkDerivation rec {
     mimeTypes = [ "x-scheme-handler/discord" ];
   };
 
-  passthru.updateScript = writeScript "discord-update-script" ''
-    #!/usr/bin/env nix-shell
-    #!nix-shell -i bash -p curl gnugrep common-updater-scripts
-    set -eou pipefail;
-    url=$(curl -sI "https://discordapp.com/api/download/${
-      builtins.replaceStrings [ "discord-" "discord" ] [ "" "stable" ] pname
-    }?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
-    version=''${url##https://dl*.discordapp.net/apps/linux/}
-    version=''${version%%/*.tar.gz}
-    update-source-version ${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix
-  '';
+  passthru = {
+    # make it possible to run disableBreakingUpdates standalone
+    inherit disableBreakingUpdates;
+    updateScript = writeScript "discord-update-script" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl gnugrep common-updater-scripts
+      set -eou pipefail;
+      url=$(curl -sI "https://discordapp.com/api/download/${
+        builtins.replaceStrings [ "discord-" "discord" ] [ "" "stable" ] pname
+      }?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
+      version=''${url##https://dl*.discordapp.net/apps/linux/}
+      version=''${version%%/*.tar.gz}
+      update-source-version ${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix
+    '';
+  };
 }