1{pkgs, system, nodejs, stdenv}:
2
3let
4 nodePackages = import ./composition-v6.nix {
5 inherit pkgs system nodejs;
6 };
7in
8nodePackages // {
9 dat = nodePackages.dat.override {
10 buildInputs = [ nodePackages.node-gyp-build ];
11 };
12
13 dnschain = nodePackages.dnschain.override {
14 buildInputs = [ pkgs.makeWrapper nodePackages.coffee-script ];
15 postInstall = ''
16 wrapProgram $out/bin/dnschain --suffix PATH : ${pkgs.openssl.bin}/bin
17 '';
18 };
19
20 node-inspector = nodePackages.node-inspector.override {
21 buildInputs = [ nodePackages.node-pre-gyp ];
22 };
23
24 phantomjs = nodePackages.phantomjs.override {
25 buildInputs = [ pkgs.phantomjs2 ];
26 };
27
28 webdrvr = nodePackages.webdrvr.override {
29 buildInputs = [ pkgs.phantomjs ];
30
31 preRebuild = ''
32 mkdir $TMPDIR/webdrvr
33
34 ln -s ${pkgs.fetchurl {
35 url = "https://selenium-release.storage.googleapis.com/2.43/selenium-server-standalone-2.43.1.jar";
36 sha1 = "ef1b5f8ae9c99332f99ba8794988a1d5b974d27b";
37 }} $TMPDIR/webdrvr/selenium-server-standalone-2.43.1.jar
38 ln -s ${pkgs.fetchurl {
39 url = "http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip";
40 sha1 = "26220f7e43ee3c0d714860db61c4d0ecc9bb3d89";
41 }} $TMPDIR/webdrvr/chromedriver_linux64.zip
42 '';
43
44 dontNpmInstall = true; # We face an error with underscore not found, but the package will work fine if we ignore this.
45 };
46
47 npm2nix = nodePackages."npm2nix-git://github.com/NixOS/npm2nix.git#5.12.0".override {
48 postInstall = "npm run-script prepublish";
49 };
50
51 bower2nix = nodePackages.bower2nix.override {
52 buildInputs = [ pkgs.makeWrapper ];
53 postInstall = ''
54 for prog in bower2nix fetch-bower; do
55 wrapProgram "$out/bin/$prog" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.git pkgs.nix ]}
56 done
57 '';
58 };
59
60 ios-deploy = nodePackages.ios-deploy.override {
61 preRebuild = ''
62 tmp=$(mktemp -d)
63 ln -s /usr/bin/xcodebuild $tmp
64 export PATH="$PATH:$tmp"
65 '';
66 };
67
68 fast-cli = nodePackages."fast-cli-1.x".override {
69 preRebuild = ''
70 # Simply ignore the phantomjs --version check. It seems to need a display but it is safe to ignore
71 sed -i -e "s|console.error('Error verifying phantomjs, continuing', err)|console.error('Error verifying phantomjs, continuing', err); return true;|" node_modules/phantomjs-prebuilt/lib/util.js
72 '';
73 buildInputs = [ pkgs.phantomjs2 ];
74 };
75}