about summary refs log tree commit diff
path: root/pkgs/development/node-packages/overrides.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/node-packages/overrides.nix')
-rw-r--r--pkgs/development/node-packages/overrides.nix40
1 files changed, 28 insertions, 12 deletions
diff --git a/pkgs/development/node-packages/overrides.nix b/pkgs/development/node-packages/overrides.nix
index 9cb312a2db039..ee5527fa97fb1 100644
--- a/pkgs/development/node-packages/overrides.nix
+++ b/pkgs/development/node-packages/overrides.nix
@@ -9,6 +9,7 @@ let
     callPackage
     fetchFromGitHub
     fetchurl
+    fetchpatch
     nixosTests;
 
   since = version: lib.versionAtLeast nodejs.version version;
@@ -92,6 +93,8 @@ final: prev: {
 
   bitwarden-cli = prev."@bitwarden/cli".override {
     name = "bitwarden-cli";
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = with pkgs; [ pixman cairo pango ];
   };
 
   bower2nix = prev.bower2nix.override {
@@ -218,6 +221,10 @@ final: prev: {
       libsecret
       final.node-gyp-build
       final.node-pre-gyp
+
+      pixman
+      cairo
+      pango
     ] ++ lib.optionals stdenv.isDarwin [
       darwin.apple_sdk.frameworks.AppKit
       darwin.apple_sdk.frameworks.Security
@@ -314,16 +321,23 @@ final: prev: {
   };
 
   node2nix = prev.node2nix.override {
-    nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
-    # We need to use master because of a fix that replaces git:// url to https://.
+    # Get latest commit for misc fixes
     src = fetchFromGitHub {
       owner = "svanderburg";
       repo = "node2nix";
-      rev = "68f5735f9a56737e3fedceb182705985e3ab8799";
-      sha256 = "sha256-NK6gDTkGx0GG7yPTwgtFC4ttQZPfcLaLp8W8OOMO6bg=";
+      rev = "026360084db8a27095aafdac7125d7f1a93046c8";
+      sha256 = "sha256-zO/xGG10v7HGv58RLX5SFd7QOXAL2vRxCRM8IfRZ8JA=";
     };
-
-    postInstall = ''
+    nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
+    postInstall = let
+      # Needed to fix Node.js 16+ - PR svanderburg/node2nix#302
+      npmPatch = fetchpatch {
+        name = "emit-lockfile-v2-and-fix-bin-links-with-npmv7.patch";
+        url = "https://github.com/svanderburg/node2nix/commit/375a055041b5ee49ca5fb3f74a58ca197c90c7d5.patch";
+        hash = "sha256-uVYrXptJILojeur9s2O+J/f2vyPNCaZMn1GM/NoC5n8=";
+      };
+    in ''
+      patch -d $out/lib/node_modules/node2nix -p1 < ${npmPatch}
       wrapProgram "$out/bin/node2nix" --prefix PATH : ${lib.makeBinPath [ pkgs.nix ]}
     '';
   };
@@ -486,10 +500,18 @@ final: prev: {
 
   thelounge-theme-flat-blue = prev.thelounge-theme-flat-blue.override {
     nativeBuildInputs = [ final.node-pre-gyp ];
+    # TODO: needed until upstream pins thelounge version 4.3.1+ (which fixes dependency on old sqlite3 and transitively very old node-gyp 3.x)
+    preRebuild = ''
+      rm -r node_modules/node-gyp
+    '';
   };
 
   thelounge-theme-flat-dark = prev.thelounge-theme-flat-dark.override {
     nativeBuildInputs = [ final.node-pre-gyp ];
+    # TODO: needed until upstream pins thelounge version 4.3.1+ (which fixes dependency on old sqlite3 and transitively very old node-gyp 3.x)
+    preRebuild = ''
+      rm -r node_modules/node-gyp
+    '';
   };
 
   triton = prev.triton.override {
@@ -574,12 +596,6 @@ final: prev: {
   };
 
   wrangler = prev.wrangler.override (oldAttrs: {
-    dontNpmInstall = true;
-    nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
-    postInstall = ''
-      makeWrapper "$out/lib/node_modules/wrangler/bin/wrangler.js" "$out/bin/wrangler" \
-        --inherit-argv0
-    '';
     meta = oldAttrs.meta // { broken = before "16.13"; };
   });