summary refs log tree commit diff
path: root/pkgs/development/tools/electron/binary/generic.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/electron/binary/generic.nix')
-rw-r--r--pkgs/development/tools/electron/binary/generic.nix61
1 files changed, 46 insertions, 15 deletions
diff --git a/pkgs/development/tools/electron/binary/generic.nix b/pkgs/development/tools/electron/binary/generic.nix
index 615ec9243bb..6e1493528e2 100644
--- a/pkgs/development/tools/electron/binary/generic.nix
+++ b/pkgs/development/tools/electron/binary/generic.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , libXScrnSaver
 , makeWrapper
 , fetchurl
@@ -6,17 +7,24 @@
 , glib
 , gtk3
 , unzip
-, atomEnv
-, libuuid
 , at-spi2-atk
-, at-spi2-core
 , libdrm
 , mesa
 , libxkbcommon
-, libappindicator-gtk3
 , libxshmfence
 , libglvnd
-, wayland
+, alsa-lib
+, cairo
+, cups
+, dbus
+, expat
+, gdk-pixbuf
+, nss
+, nspr
+, xorg
+, pango
+, systemd
+, pciutils
 }:
 
 version: hashes:
@@ -32,7 +40,7 @@ let
       ++ optionals (versionAtLeast version "11.0.0") [ "aarch64-darwin" ]
       ++ optionals (versionOlder version "19.0.0") [ "i686-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    knownVulnerabilities = optional (versionOlder version "22.0.0" || versions.major version == "23") "Electron version ${version} is EOL";
+    knownVulnerabilities = optional (versionOlder version "25.0.0") "Electron version ${version} is EOL";
   };
 
   fetcher = vers: tag: hash: fetchurl {
@@ -64,13 +72,36 @@ let
     passthru.headers = headersFetcher version hashes.headers;
   };
 
-  electronLibPath = with lib; makeLibraryPath (
-    [ libuuid at-spi2-atk at-spi2-core libappindicator-gtk3 wayland ]
-    ++ optionals (versionAtLeast version "9.0.0") [ libdrm mesa ]
-    ++ optionals (versionOlder version "10.0.0") [ libXScrnSaver ]
-    ++ optionals (versionAtLeast version "11.0.0") [ libxkbcommon ]
-    ++ optionals (versionAtLeast version "12.0.0") [ libxshmfence ]
-    ++ optionals (versionAtLeast version "17.0.0") [ libglvnd ]
+  electronLibPath = lib.makeLibraryPath ([
+    alsa-lib
+    at-spi2-atk
+    cairo
+    cups
+    dbus
+    expat
+    gdk-pixbuf
+    glib
+    gtk3
+    nss
+    nspr
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXcomposite
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXrandr
+    xorg.libxkbfile
+    pango
+    pciutils
+    stdenv.cc.cc.lib
+    systemd
+  ]
+    ++ lib.optionals (lib.versionAtLeast version "9.0.0") [ libdrm mesa ]
+    ++ lib.optionals (lib.versionOlder version "10.0.0") [ libXScrnSaver ]
+    ++ lib.optionals (lib.versionAtLeast version "11.0.0") [ libxkbcommon ]
+    ++ lib.optionals (lib.versionAtLeast version "12.0.0") [ libxshmfence ]
+    ++ lib.optionals (lib.versionAtLeast version "17.0.0") [ libglvnd ]
   );
 
   linux = {
@@ -95,7 +126,7 @@ let
     postFixup = ''
       patchelf \
         --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "${atomEnv.libPath}:${electronLibPath}:$out/libexec/electron" \
+        --set-rpath "${electronLibPath}:$out/libexec/electron" \
         $out/libexec/electron/.electron-wrapped \
         ${lib.optionalString (lib.versionAtLeast version "15.0.0") "$out/libexec/electron/.chrome_crashpad_handler-wrapped" }
     '';