about summary refs log tree commit diff
path: root/pkgs/top-level/node-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/node-packages.nix')
-rw-r--r--pkgs/top-level/node-packages.nix27
1 files changed, 16 insertions, 11 deletions
diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix
index 8725ce1e9cd7..448904ce385a 100644
--- a/pkgs/top-level/node-packages.nix
+++ b/pkgs/top-level/node-packages.nix
@@ -1,10 +1,11 @@
-{ pkgs, stdenv, nodejs, fetchurl, neededNatives, self, generated ? ./node-packages-generated.nix }:
+{ pkgs, stdenv, nodejs, fetchurl, fetchgit, neededNatives, self, generated ? ./node-packages-generated.nix }:
 
-{
+rec {
   nativeDeps = {
-    "node-expat"."*" = [ pkgs.expat ];
-    "rbytes"."*" = [ pkgs.openssl ];
-    "phantomjs"."~1.9" = [ pkgs.phantomjs ];
+    "node-expat" = [ pkgs.expat ];
+    "rbytes" = [ pkgs.openssl ];
+    "phantomjs" = [ pkgs.phantomjs ];
+    "node-protobuf" = [ pkgs.protobuf ];
   };
 
   buildNodePackage = import ../development/web/nodejs/build-node-package.nix {
@@ -12,15 +13,19 @@
     inherit (pkgs) runCommand;
   };
 
-  patchLatest = srcAttrs:
-    let src = fetchurl srcAttrs; in pkgs.runCommand src.name {} ''
+  patchSource = fn: srcAttrs:
+    let src = fn srcAttrs; in pkgs.runCommand src.name {} ''
       mkdir unpack
       cd unpack
-      tar xf ${src}
+      unpackFile ${src}
+      chmod -R +w */
       mv */ package 2>/dev/null || true
-      sed -i -e "s/: \"latest\"/: \"*\"/" package/package.json
-      tar cf $out *
+      sed -i -e "s/:\s*\"latest\"/:  \"*\"/" -e "s/:\s*\"\(https\?\|git\(\+\(ssh\|http\|https\)\)\?\):\/\/[^\"]*\"/: \"*\"/" package/package.json
+      mv */ $out
     '';
 
+  # Backwards compat
+  patchLatest = patchSource fetchurl;
+
   /* Put manual packages below here (ideally eventually managed by npm2nix */
-} // import generated { inherit self fetchurl; inherit (pkgs) lib; }
+} // import generated { inherit self fetchurl fetchgit; inherit (pkgs) lib; }