summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/languages-frameworks/bower.xml244
-rw-r--r--doc/languages-frameworks/index.xml1
-rw-r--r--nixos/modules/programs/virtualbox.nix4
-rw-r--r--nixos/modules/services/networking/wpa_supplicant.nix2
-rw-r--r--nixos/tests/installer.nix4
-rw-r--r--pkgs/applications/audio/meterbridge/default.nix2
-rw-r--r--pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch31
-rw-r--r--pkgs/applications/audio/spotify/default.nix4
-rw-r--r--pkgs/applications/misc/opencpn/default.nix32
-rw-r--r--pkgs/applications/misc/yakuake/3.0.nix66
-rw-r--r--pkgs/applications/networking/instant-messengers/blink/default.nix24
-rw-r--r--pkgs/applications/networking/instant-messengers/blink/pythonpath.patch45
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/sources.nix234
-rw-r--r--pkgs/applications/science/robotics/gazebo/6.nix8
-rw-r--r--pkgs/applications/science/robotics/gazebo/default.nix81
-rw-r--r--pkgs/applications/version-management/bugseverywhere/default.nix34
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix4
-rw-r--r--pkgs/applications/video/avidemux/default.nix127
-rw-r--r--pkgs/applications/video/avidemux/dynamic_install_dir.patch12
-rw-r--r--pkgs/applications/video/avidemux/wrapper.nix29
-rw-r--r--pkgs/applications/video/vlc/default.nix5
-rw-r--r--pkgs/build-support/fetchbower/default.nix37
-rw-r--r--pkgs/desktops/kde-5/plasma-5.5/kwin/default.nix1
-rw-r--r--pkgs/development/bower-modules/generic/default.nix49
-rw-r--r--pkgs/development/compilers/llvm/3.5/clang.nix1
-rw-r--r--pkgs/development/compilers/llvm/3.8/clang/default.nix55
-rw-r--r--pkgs/development/compilers/llvm/3.8/clang/purity.patch17
-rw-r--r--pkgs/development/compilers/llvm/3.8/default.nix35
-rw-r--r--pkgs/development/compilers/llvm/3.8/libc++/darwin.patch30
-rw-r--r--pkgs/development/compilers/llvm/3.8/libc++/default.nix40
-rw-r--r--pkgs/development/compilers/llvm/3.8/libc++/setup-hook.sh3
-rw-r--r--pkgs/development/compilers/llvm/3.8/libc++abi.nix47
-rw-r--r--pkgs/development/compilers/llvm/3.8/lldb.nix49
-rw-r--r--pkgs/development/compilers/llvm/3.8/llvm.nix80
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk8-linux.nix6
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk8psu-linux.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix5
-rw-r--r--pkgs/development/libraries/ignition-math/default.nix23
-rw-r--r--pkgs/development/libraries/ignition-transport/0.9.0.nix9
-rw-r--r--pkgs/development/libraries/ignition-transport/1.0.1.nix9
-rw-r--r--pkgs/development/libraries/ignition-transport/generic.nix25
-rw-r--r--pkgs/development/libraries/libressl/2.3.nix4
-rw-r--r--pkgs/development/libraries/ogre/default.nix6
-rw-r--r--pkgs/development/libraries/sdformat/3.nix7
-rw-r--r--pkgs/development/libraries/sdformat/default.nix23
-rw-r--r--pkgs/development/libraries/tinyxml-2/default.nix11
-rw-r--r--pkgs/development/libraries/v8/generic.nix6
-rw-r--r--pkgs/development/python-modules/bootstrapped-pip/default.nix4
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix3
-rw-r--r--pkgs/games/steam/runtime-wrapped.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix8
-rw-r--r--pkgs/servers/osrm-backend/4.5.0-openmp.patch18
-rw-r--r--pkgs/servers/osrm-backend/default.nix8
-rw-r--r--pkgs/tools/cd-dvd/dvdisaster/default.nix3
-rw-r--r--pkgs/tools/networking/lsh/default.nix2
-rw-r--r--pkgs/tools/networking/ppp/default.nix10
-rw-r--r--pkgs/top-level/all-packages.nix62
-rw-r--r--pkgs/top-level/node-packages-generated.nix4022
-rw-r--r--pkgs/top-level/node-packages.json1
-rw-r--r--pkgs/top-level/node-packages.nix6
-rw-r--r--pkgs/top-level/python-packages.nix204
62 files changed, 5587 insertions, 344 deletions
diff --git a/doc/languages-frameworks/bower.xml b/doc/languages-frameworks/bower.xml
new file mode 100644
index 00000000000..742d3c2e9fe
--- /dev/null
+++ b/doc/languages-frameworks/bower.xml
@@ -0,0 +1,244 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xml:id="sec-bower">
+
+<title>Bower</title>
+
+<para>
+  <link xlink:href="http://bower.io">Bower</link> is a package manager
+  for web site front-end components. Bower packages (comprising of
+  build artefacts and sometimes sources) are stored in
+  <command>git</command> repositories, typically on Github. The
+  package registry is run by the Bower team with package metadata
+  coming from the <filename>bower.json</filename> file within each
+  package.
+</para>
+
+<para>
+  The end result of running Bower is a
+  <filename>bower_components</filename> directory which can be included
+  in the web app's build process.
+</para>
+
+<para>
+  Bower can be run interactively, by installing
+  <varname>nodePackages.bower</varname>. More interestingly, the Bower
+  components can be declared in a Nix derivation, with the help of
+  <varname>nodePackages.bower2nix</varname>.
+</para>
+
+<section xml:id="ssec-bower2nix-usage">
+  <title><command>bower2nix</command> usage</title>
+
+<para>
+  Suppose you have a <filename>bower.json</filename> with the following contents:
+
+
+<example xml:id="ex-bowerJson"><title><filename>bower.json</filename></title>
+<programlisting language="json">
+<![CDATA[{
+  "name": "my-web-app",
+  "dependencies": {
+    "angular": "~1.5.0",
+    "bootstrap": "~3.3.6"
+  }
+}]]>
+</programlisting>
+</example>
+</para>
+
+
+<para>
+  Running <command>bower2nix</command> will produce something like the
+  following output:
+
+<programlisting language="nix">
+<![CDATA[{ fetchbower, buildEnv }:
+buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
+  (fetchbower "angular" "1.5.3" "~1.5.0" "1749xb0firxdra4rzadm4q9x90v6pzkbd7xmcyjk6qfza09ykk9y")
+  (fetchbower "bootstrap" "3.3.6" "~3.3.6" "1vvqlpbfcy0k5pncfjaiskj3y6scwifxygfqnw393sjfxiviwmbv")
+  (fetchbower "jquery" "2.2.2" "1.9.1 - 2" "10sp5h98sqwk90y4k6hbdviwqzvzwqf47r3r51pakch5ii2y7js1")
+]; }]]>
+</programlisting>
+</para>
+
+
+<para>
+  Using the <command>bower2nix</command> command line arguments, the
+  output can be redirected to a file. A name like
+  <filename>bower-packages.nix</filename> would be fine.
+</para>
+
+<para>
+  The resulting derivation is a union of all the downloaded Bower
+  packages (and their dependencies). To use it, they still need to be
+  linked together by Bower, which is where
+  <varname>buildBowerComponents</varname> is useful.
+</para>
+</section>
+
+<section xml:id="ssec-build-bower-components"><title><varname>buildBowerComponents</varname> function</title>
+
+  <para>
+  The function is implemented in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/bower-modules/generic/default.nix">
+  <filename>pkgs/development/bower-modules/generic/default.nix</filename></link>.
+  Example usage:
+
+<example xml:id="ex-buildBowerComponents"><title>buildBowerComponents</title>
+<programlisting language="nix">
+bowerComponents = buildBowerComponents {
+  name = "my-web-app";
+  generated = ./bower-packages.nix; <co xml:id="ex-buildBowerComponents-1" />
+  src = myWebApp; <co xml:id="ex-buildBowerComponents-2" />
+};
+</programlisting>
+</example>
+  </para>
+
+<para>
+In <xref linkend="ex-buildBowerComponents" />, the following arguments
+are of special significance to the function:
+
+<calloutlist>
+  <callout arearefs="ex-buildBowerComponents-1">
+    <para>
+      <varname>generated</varname> specifies the file which was created by <command>bower2nix</command>.
+    </para>
+  </callout>
+
+  <callout arearefs="ex-buildBowerComponents-2">
+    <para>
+      <varname>src</varname> is your project's sources. It needs to
+      contain a <filename>bower.json</filename> file.
+    </para>
+  </callout>
+</calloutlist>
+</para>
+
+<para>
+  <varname>buildBowerComponents</varname> will run Bower to link
+  together the output of <command>bower2nix</command>, resulting in a
+  <filename>bower_components</filename> directory which can be used.
+</para>
+
+<para>
+  Here is an example of a web frontend build process using
+  <command>gulp</command>. You might use <command>grunt</command>, or
+  anything else.
+</para>
+
+<example xml:id="ex-bowerGulpFile"><title>Example build script (<filename>gulpfile.js</filename>)</title>
+<programlisting language="javascript">
+<![CDATA[var gulp = require('gulp');
+
+gulp.task('default', [], function () {
+  gulp.start('build');
+});
+
+gulp.task('build', [], function () {
+  console.log("Just a dummy gulp build");
+  gulp
+    .src(["./bower_components/**/*"])
+    .pipe(gulp.dest("./gulpdist/"));
+});]]>
+</programlisting>
+</example>
+
+<example xml:id="ex-buildBowerComponentsDefaultNix">
+  <title>Full example — <filename>default.nix</filename></title>
+<programlisting language="nix">
+{ myWebApp ? { outPath = ./.; name = "myWebApp"; }
+, pkgs ? import &lt;nixpkgs&gt; {}
+}:
+
+pkgs.stdenv.mkDerivation {
+  name = "my-web-app-frontend";
+  src = myWebApp;
+
+  buildInputs = [ pkgs.nodePackages.gulp ];
+
+  bowerComponents = pkgs.buildBowerComponents { <co xml:id="ex-buildBowerComponentsDefault-1" />
+    name = "my-web-app";
+    generated = ./bower-packages.nix;
+    src = myWebApp;
+  };
+
+  buildPhase = ''
+    cp --reflink=auto --no-preserve=mode -R $bowerComponents/bower_components . <co xml:id="ex-buildBowerComponentsDefault-2" />
+    export HOME=$PWD <co xml:id="ex-buildBowerComponentsDefault-3" />
+    ${pkgs.nodePackages.gulp}/bin/gulp build <co xml:id="ex-buildBowerComponentsDefault-4" />
+  '';
+
+  installPhase = "mv gulpdist $out";
+}
+</programlisting>
+</example>
+
+<para>
+A few notes about <xref linkend="ex-buildBowerComponentsDefaultNix" />:
+
+<calloutlist>
+  <callout arearefs="ex-buildBowerComponentsDefault-1">
+    <para>
+      The result of <varname>buildBowerComponents</varname> is an
+      input to the frontend build.
+    </para>
+  </callout>
+
+  <callout arearefs="ex-buildBowerComponentsDefault-2">
+    <para>
+      Whether to symlink or copy the
+      <filename>bower_components</filename> directory depends on the
+      build tool in use. In this case a copy is used to avoid
+      <command>gulp</command> silliness with permissions.
+    </para>
+  </callout>
+
+  <callout arearefs="ex-buildBowerComponentsDefault-3">
+    <para>
+      <command>gulp</command> requires <varname>HOME</varname> to
+      refer to a writeable directory.
+    </para>
+  </callout>
+
+  <callout arearefs="ex-buildBowerComponentsDefault-4">
+    <para>
+      The actual build command. Other tools could be used.
+    </para>
+  </callout>
+</calloutlist>
+</para>
+</section>
+
+<section xml:id="ssec-bower2nix-troubleshooting">
+  <title>Troubleshooting</title>
+
+<variablelist>
+
+  <varlistentry>
+    <term>
+    <literal>ENOCACHE</literal> errors from
+    <varname>buildBowerComponents</varname>
+    </term>
+    <listitem>
+      <para>
+        This means that Bower was looking for a package version which
+        doesn't exist in the generated
+        <filename>bower-packages.nix</filename>.
+      </para>
+      <para>
+        If <filename>bower.json</filename> has been updated, then run
+        <command>bower2nix</command> again.
+      </para>
+      <para>
+        It could also be a bug in <command>bower2nix</command> or
+        <command>fetchbower</command>. If possible, try reformulating
+        the version specification in <filename>bower.json</filename>.
+      </para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+</section>
+
+</section>
diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml
index ab62afa40d6..395d4688021 100644
--- a/doc/languages-frameworks/index.xml
+++ b/doc/languages-frameworks/index.xml
@@ -24,6 +24,7 @@ such as Perl or Haskell.  These are described in this chapter.</para>
 <xi:include href="r.xml" /> <!-- generated from ../../pkgs/development/r-modules/README.md  -->
 <xi:include href="qt.xml" />
 <xi:include href="texlive.xml" />
+<xi:include href="bower.xml" />
 
 
 </chapter>
diff --git a/nixos/modules/programs/virtualbox.nix b/nixos/modules/programs/virtualbox.nix
index a00b1e5f64d..be96cf23b39 100644
--- a/nixos/modules/programs/virtualbox.nix
+++ b/nixos/modules/programs/virtualbox.nix
@@ -1,8 +1,8 @@
 let
   msg = "Importing <nixpkgs/nixos/modules/programs/virtualbox.nix> is "
-      + "deprecated, please use `services.virtualboxHost.enable = true' "
+      + "deprecated, please use `virtualisation.virtualbox.host.enable = true' "
       + "instead.";
 in {
   config.warnings = [ msg ];
-  config.services.virtualboxHost.enable = true;
+  config.virtualisation.virtualbox.host.enable = true;
 }
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index a8f445a2c73..53648aef1e0 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -125,10 +125,12 @@ in {
       # FIXME: start a separate wpa_supplicant instance per interface.
       systemd.services.wpa_supplicant = let
         ifaces = cfg.interfaces;
+        deviceUnit = interface: [ "sys-subsystem-net-devices-${interface}.device" ];
       in {
         description = "WPA Supplicant";
 
         after = [ "network-interfaces.target" ];
+        requires = lib.concatMap deviceUnit ifaces;
         wantedBy = [ "network.target" ];
 
         path = [ pkgs.wpa_supplicant ];
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 9e5a6ad04e1..05c3f267eb9 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -366,8 +366,8 @@ in {
               "mkdir /mnt/boot",
               "mount LABEL=boot /mnt/boot",
               "udevadm settle",
-              "mdadm -W /dev/md0", # wait for sync to finish; booting off an unsynced device tends to fail
-              "mdadm -W /dev/md1",
+              "mdadm --verbose -W /dev/md0", # wait for sync to finish; booting off an unsynced device tends to fail
+              "mdadm --verbose -W /dev/md1",
           );
         '';
     };
diff --git a/pkgs/applications/audio/meterbridge/default.nix b/pkgs/applications/audio/meterbridge/default.nix
index e15febda231..d6ba094f458 100644
--- a/pkgs/applications/audio/meterbridge/default.nix
+++ b/pkgs/applications/audio/meterbridge/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0jb6g3kbfyr5yf8mvblnciva2bmc01ijpr51m21r27rqmgi8gj5k";
   };
 
-  patches = [ ./buf_rect.patch ];
+  patches = [ ./buf_rect.patch ./fix_build_with_gcc-5.patch];
 
   buildInputs =
     [ pkgconfig SDL SDL_image libjack2
diff --git a/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch b/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch
new file mode 100644
index 00000000000..a738cd0b82a
--- /dev/null
+++ b/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch
@@ -0,0 +1,31 @@
+Description: Fix build with gcc-5
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=778003
+Author: Jaromír Mikeš <mira.mikes@seznam.cz>
+Forwarded: No
+
+Index: meterbridge/src/linedraw.h
+===================================================================
+--- meterbridge.orig/src/linedraw.h
++++ meterbridge/src/linedraw.h
+@@ -1,7 +1,7 @@
+ #ifndef LINEDRAW_H
+ #define LINEDRAW_H
+ 
+-inline void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col);
++void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col);
+ 
+ void draw_ptr(SDL_Surface *surface, int x1, int y1, int x2, int y2, Uint32 nedle_col, Uint32 aa_col);
+ 
+Index: meterbridge/src/linedraw.c
+===================================================================
+--- meterbridge.orig/src/linedraw.c
++++ meterbridge/src/linedraw.c
+@@ -4,7 +4,7 @@
+ /* set a pixel on an SDL_Surface, assumes that the surface is 32bit RGBA,
+  * ordered ABGR (I think), probably wont work on bigendian systems */
+ 
+-inline void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col)
++void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col)
+ {
+ 	Uint32 *bufp = (Uint32 *)surface->pixels + y*surface->pitch/4 + x;
+ 	*bufp = col;
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 498a4be7ff4..243d1e49c7b 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -5,7 +5,7 @@
 assert stdenv.system == "x86_64-linux";
 
 let
-  version = "1.0.25.127.g58007b4c-22";
+  version = "1.0.26.125.g64dc8bc6-14";
 
   deps = [
     alsaLib
@@ -50,7 +50,7 @@ stdenv.mkDerivation {
   src =
     fetchurl {
       url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
-      sha256 = "1fxps0ls0g4idw10la3qrpmp2jn85lkm3xj4nam4ycx0jj8g1v2p";
+      sha256 = "09wanpml2a6k8asfc0pd56n7fia37amgsplsan1qdh6dwdzr3rv5";
     };
 
   buildInputs = [ dpkg makeWrapper ];
diff --git a/pkgs/applications/misc/opencpn/default.nix b/pkgs/applications/misc/opencpn/default.nix
new file mode 100644
index 00000000000..d6b9b943b6e
--- /dev/null
+++ b/pkgs/applications/misc/opencpn/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, gtk2, wxGTK30, libpulseaudio, curl,
+  gettext, glib, portaudio }:
+
+stdenv.mkDerivation rec {
+  name = "opencpn-${version}";
+  version = "4.2.0";
+
+  src = fetchFromGitHub {
+    owner = "OpenCPN";
+    repo = "OpenCPN";
+    rev = "v${version}";
+    sha256 = "1m6fp9lf9ki9444h0dq6bj0vr7d0pcxkbjv3j2v76p0ksk2l8kw3";
+  };
+
+  buildInputs = [ pkgconfig cmake gtk2 wxGTK30 libpulseaudio curl gettext
+                  glib portaudio ];
+
+  cmakeFlags = [
+    "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include"
+    "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A concise ChartPlotter/Navigator";
+    maintainers = [ stdenv.lib.maintainers.kragniz ];
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.gpl2;
+    homepage = "http://opencpn.org/";
+  };
+}
diff --git a/pkgs/applications/misc/yakuake/3.0.nix b/pkgs/applications/misc/yakuake/3.0.nix
new file mode 100644
index 00000000000..f3aff480914
--- /dev/null
+++ b/pkgs/applications/misc/yakuake/3.0.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, lib
+, fetchurl
+, cmake
+, extra-cmake-modules
+, karchive
+, kcrash
+, kdbusaddons
+, ki18n
+, kiconthemes
+, knewstuff
+, knotifications
+, knotifyconfig
+, konsole
+, kparts
+, kwindowsystem
+, makeQtWrapper
+
+}:
+
+let
+  pname = "yakuake";
+  version = "3.0.2";
+in
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://download.kde.org/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "0vcdji1k8d3pz7k6lkw8ighkj94zff2l2cf9v1avf83f4hjyfhg5";
+  };
+
+  buildInputs = [
+    cmake
+    extra-cmake-modules
+    karchive
+    kcrash
+    kdbusaddons
+    ki18n
+    kiconthemes
+    knewstuff
+    knotifications
+    knotifyconfig
+    kparts
+    kwindowsystem
+  ];
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+    makeQtWrapper
+  ];
+
+  propagatedUserEnvPkgs = [
+    konsole
+  ];
+
+  postInstall = ''
+    wrapQtProgram "$out/bin/yakuake"
+  '';
+
+  meta = {
+    homepage = https://yakuake.kde.org;
+    description = "Quad-style terminal emulator for KDE";
+    maintainers = with lib.maintainers; [ fridh ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/blink/default.nix b/pkgs/applications/networking/instant-messengers/blink/default.nix
index 7b0e4d70fd9..8076b27d1c5 100644
--- a/pkgs/applications/networking/instant-messengers/blink/default.nix
+++ b/pkgs/applications/networking/instant-messengers/blink/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, pythonPackages, pyqt4, cython, libvncserver, zlib, twisted
-, gnutls, libvpx }:
+, gnutls, libvpx, makeDesktopItem }:
 
 pythonPackages.buildPythonApplication rec {
   name = "blink-${version}";
-  version = "1.4.2";
+  version = "2.0.0";
   
   src = fetchurl {
     url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz";
-    sha256 = "0ia5hgwyg6cm393ik4ggzhcmc957ncswycs07ilwj6vrrzraxfk7";
+    sha256 = "07hvy45pavgkvdlh4wbz3shsxh4fapg96qlqmfymdi1nfhwghb05";
   };
 
   patches = [ ./pythonpath.patch ];
@@ -20,16 +20,30 @@ pythonPackages.buildPythonApplication rec {
 
   buildInputs = [ cython zlib libvncserver libvpx ];
 
+  desktopItem = makeDesktopItem {
+    name = "Blink";
+    exec = "blink";
+    comment = meta.description;
+    desktopName = "Blink";
+    icon = "blink";
+    genericName = "Instant Messaging";
+    categories = "Application;Internet;";
+  };
+
   postInstall = ''
     wrapProgram $out/bin/blink \
       --prefix LD_LIBRARY_PATH ":" ${gnutls}/lib
+    mkdir -p "$out/share/applications"
+    mkdir -p "$out/share/pixmaps"
+    cp "$desktopItem"/share/applications/* "$out/share/applications"
+    cp "$out"/share/blink/icons/blink.* "$out/share/pixmaps"
   '';
 
   meta = with stdenv.lib; {
     homepage = http://icanblink.com/;
-    description = "A state of the art, easy to use SIP client";
+    description = "A state of the art, easy to use SIP client for Voice, Video and IM";
     platforms = platforms.linux;
-    license = licenses.mit;
+    license = licenses.gpl3;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch b/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch
index 723e097ea82..0df8bc84ff3 100644
--- a/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch
+++ b/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch
@@ -1,14 +1,44 @@
-diff -rupN a/blink/resources.py b/blink/resources.py
---- a/blink/resources.py	2015-03-17 03:24:06.000000000 -0600
-+++ b/blink/resources.py	2015-04-07 22:52:06.101096413 -0600
-@@ -60,14 +60,7 @@ class Resources(object):
+--- blink-2.0.0/blink/resources.py	2016-03-09 14:39:07.000000000 +0100
++++ blink-2.0.0/blink/resources-patched.py	2016-03-12 21:34:14.965476623 +0100
+@@ -1,7 +1,10 @@
++# Copyright (C) 2010-2013 AG Projects. See LICENSE for details.
++#
+ 
+ """Provide access to Blink's resources"""
+ 
+-import __main__
++__all__ = ['ApplicationData', 'Resources', 'IconManager']
++
+ import imghdr
+ import os
+ import platform
+@@ -19,14 +22,10 @@
+ from blink.util import run_in_gui_thread
+ 
+ 
+-__all__ = ['ApplicationData', 'Resources', 'IconManager']
+-
+-
+ class DirectoryContextManager(unicode):
+     def __enter__(self):
+         self.directory = os.getcwdu()
+         os.chdir(self)
+-
+     def __exit__(self, type, value, traceback):
+         os.chdir(self.directory)
+ 
+@@ -61,18 +60,7 @@
      @classproperty
      def directory(cls):
          if cls._cached_directory is None:
--            if sys.path[0] == '':
--                application_directory = os.path.realpath('') # executed in interactive interpreter
+-            try:
+-                binary_directory = os.path.dirname(os.path.realpath(__main__.__file__))
+-            except AttributeError:
+-                if hasattr(sys, 'frozen'):
+-                    application_directory = os.path.dirname(os.path.realpath(sys.executable))
+-                else:
+-                    application_directory = os.path.realpath('')  # executed in interactive interpreter
 -            else:
--                binary_directory = os.path.dirname(os.path.realpath(sys.argv[0]))
 -                if os.path.basename(binary_directory) == 'bin':
 -                    application_directory = os.path.dirname(binary_directory)
 -                else:
@@ -17,4 +47,3 @@ diff -rupN a/blink/resources.py b/blink/resources.py
              if os.path.exists(os.path.join(application_directory, 'resources', 'blink.ui')):
                  cls._cached_directory = os.path.join(application_directory, 'resources').decode(sys.getfilesystemencoding())
              else:
-Binary files a/blink/.resources.py.swp and b/blink/.resources.py.swp differ
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/sources.nix
index 19477d86a3c..e3ffa283ad9 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/sources.nix
@@ -4,123 +4,123 @@
 # ruby generate_sources.rb > sources.nix
 
 {
-  version = "38.6.0";
+  version = "38.7.1";
   sources = [
-    { locale = "ar"; arch = "linux-i686"; sha256 = "141b3e5a5a51b0ed8f11bc9233d19bccc3116e55d568eb4995bcd48c91ba3390"; }
-    { locale = "ar"; arch = "linux-x86_64"; sha256 = "f2841d9da85e788d868eb56a43baa8e7d72d40c9c82ca60f4f958b9285be5bc3"; }
-    { locale = "ast"; arch = "linux-i686"; sha256 = "aa52c0672bf8c2b28ae5efb26aa552592aad6c637b660f9cb4533cad72b9a4fc"; }
-    { locale = "ast"; arch = "linux-x86_64"; sha256 = "1a083214fc2f31e52b0d03bffbef64e364b77457e447ddc134dc363004768b03"; }
-    { locale = "be"; arch = "linux-i686"; sha256 = "f3e7653a7f9957e9722cf29a7a97b751ffc2b19bd4982ff603f6460afb07445d"; }
-    { locale = "be"; arch = "linux-x86_64"; sha256 = "55d7082b20da1bbe23b8d1a2e1e07f6a02f9dd96b065cab1a8a2acd086790d21"; }
-    { locale = "bg"; arch = "linux-i686"; sha256 = "132fb89107e653cb30e9f6fffbca6ced0451811080b89058a652dcb5187601f3"; }
-    { locale = "bg"; arch = "linux-x86_64"; sha256 = "03868dab14f8bd671eed93a05c50c3836bb047e4195a2b8e92d04d3cf3244c67"; }
-    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "ffa2c116e814da8f0a5995f382de0b4d614e72b55ecc905185c014abea763851"; }
-    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "74631bb2d75687aefc6e8dfa9414176a92de7a22890704f6f84603703a3dd880"; }
-    { locale = "br"; arch = "linux-i686"; sha256 = "3942e35a9ea655ac365a4b00f70d8b97e7833e50d00d7d07e5ce851956f55f00"; }
-    { locale = "br"; arch = "linux-x86_64"; sha256 = "33dba57581571faac7cc11aeafda68fce323c9fc322a3c8e43cbce794489ab39"; }
-    { locale = "ca"; arch = "linux-i686"; sha256 = "5001132684f89e6e4c4ab8d22f37739da4465577e850bed4748ad3079a0b592e"; }
-    { locale = "ca"; arch = "linux-x86_64"; sha256 = "3cfad5f05320d179b575bc263ceecef0c9bfec08e7a3471dd779be8798f8f8e8"; }
-    { locale = "cs"; arch = "linux-i686"; sha256 = "14879dadca5936473b42ccefc2485707330aa7062bd1c2094adafee0dde83a50"; }
-    { locale = "cs"; arch = "linux-x86_64"; sha256 = "92f39de732f2264c5658e3282d0a4259b437f81277c926b3fe0a1c51bb18a27b"; }
-    { locale = "cy"; arch = "linux-i686"; sha256 = "e38d9c45558bbf1414efff8568b79ed58c0383329923944aca72bcd075c71967"; }
-    { locale = "cy"; arch = "linux-x86_64"; sha256 = "43f11c8ea150c1b58031fd765fc5d789e56df68ef36dd989a8a67135d9a1e501"; }
-    { locale = "da"; arch = "linux-i686"; sha256 = "9815c3fb3c95d4fb73faeb9db10591a39131edcb846fb72b6c2b01ac132602f5"; }
-    { locale = "da"; arch = "linux-x86_64"; sha256 = "6435f69ebb748f2f81dfcd1da4d66030792e73735d11c788c4478cdb750de89d"; }
-    { locale = "de"; arch = "linux-i686"; sha256 = "d8601890fe1021c61b48cb755a98358fffb0e5c3de106d0408baa748c6e4ff21"; }
-    { locale = "de"; arch = "linux-x86_64"; sha256 = "96626e10573940ce9a77277f8776066e1f33d852ff1a9be25c613ea54b2ad3d0"; }
-    { locale = "dsb"; arch = "linux-i686"; sha256 = "c0cf3e5db343c031171cca6507839e18bb4232a498eb0ff87864c0d3f54c31d3"; }
-    { locale = "dsb"; arch = "linux-x86_64"; sha256 = "5c94f8200bf7e5bccdb4f454232707c1354d4cb87713648847d742d1d127b5bc"; }
-    { locale = "el"; arch = "linux-i686"; sha256 = "43b61ae50412d5df24f903bd1890be52164689b53ec9bbfe134b7bbb36952377"; }
-    { locale = "el"; arch = "linux-x86_64"; sha256 = "163e041e125f84db5f9d55f6e8a2e8d15b7ac6335187a55f00f7019b3038249c"; }
-    { locale = "en-GB"; arch = "linux-i686"; sha256 = "b34105daffdf9088fecd199e1525ebbc332ff6536487caa058d19daa4c7306c4"; }
-    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "ac54bf8c804d17ecebab6a865471ce5adf712466612eb435e5871a4ffcc7238a"; }
-    { locale = "en-US"; arch = "linux-i686"; sha256 = "2e60a2a5764cdee16659b125f7ad2dde7ff6e993c69a738d86fb39530e469328"; }
-    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "f0b4b0d5a7f4b21845e76411cd75d59b0e34a341747cafcb3e871a00b1b2535e"; }
-    { locale = "es-AR"; arch = "linux-i686"; sha256 = "fa9de1698297336d3db8d7cc6c59ea1cad595c2d5caf8081f85fc217535d630d"; }
-    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "62bf96299b20de2b6ea17db2113fd8220c60507314d9c3dfbd2ef06557746298"; }
-    { locale = "es-ES"; arch = "linux-i686"; sha256 = "1e79df1375e29c6aaf2839584ee51e23a326587e02440c07f10969f82e29daa3"; }
-    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "e5ef4e579c83b1f982b5d071966b3c1be39b94aa128e0ef14f4244e51b19c6c9"; }
-    { locale = "et"; arch = "linux-i686"; sha256 = "110dc75c81abcca2199c2f6bee542fe0909bfbe678e91376a1413a81bac88edf"; }
-    { locale = "et"; arch = "linux-x86_64"; sha256 = "71f7f7d5d9025423438138a62728d3494f2227c3b1daf8945cbd20d65e7629b3"; }
-    { locale = "eu"; arch = "linux-i686"; sha256 = "ad2e6071fafe18f3db5d4af4d938450ec1a8f538e2a5efc7f8ce1d28f1f3dd66"; }
-    { locale = "eu"; arch = "linux-x86_64"; sha256 = "32c8b0e825912b97a36cedf19ead4eba8427e08ac059b4bb9fda15c568ce6cff"; }
-    { locale = "fi"; arch = "linux-i686"; sha256 = "203006ba5572a315f851e69e74779f92123df25d6a1964283bbf546c43ca0ecb"; }
-    { locale = "fi"; arch = "linux-x86_64"; sha256 = "f87904779b68a60aef440a7eb5cf490fe224bc25517d9fa463575fd35c4fc895"; }
-    { locale = "fr"; arch = "linux-i686"; sha256 = "4d92b6273006f6a20c6b405cfdd017930e7341230f0deefdbe8961a3ab2099d7"; }
-    { locale = "fr"; arch = "linux-x86_64"; sha256 = "a7858e1fca3007710053cd6ffcd8d17fe111ec3727e98cfc410f426fb4dd04a1"; }
-    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "d222ea0506db332ab7590fc85dce4102613489506d7680bac31c82b855ae238e"; }
-    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "b466075727c3d3f709b9ddb1987f9fe69deb1efa34fecbd73aa1c5231ef844d8"; }
-    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "d786389a7866d2be769c079ec65396fe3888968f80f3fbd8d54e355ac3098f91"; }
-    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "8134a011c31cf63a5538fea89ef332a28ab510fb08e1251a9d460ba83946f656"; }
-    { locale = "gd"; arch = "linux-i686"; sha256 = "a5b5cb6e9a2daf1587af84083cd680b14f49a0f998d4e6e80f09c37aebac0b0f"; }
-    { locale = "gd"; arch = "linux-x86_64"; sha256 = "7b15ab841f95eda59256c7cb4c9c876b0bea34df9f0e1d3af3bd144230d7254a"; }
-    { locale = "gl"; arch = "linux-i686"; sha256 = "7bee6ae14c9f43689ab2c7b9a7de60af9fe4d9d567efb94b26e3109af04d6c43"; }
-    { locale = "gl"; arch = "linux-x86_64"; sha256 = "b9a6e5bd2c62745a82fd3685a694a6f34d3327b60a62af6e283caf3a67d77f22"; }
-    { locale = "he"; arch = "linux-i686"; sha256 = "17a322f92322de536ead76e292d877ab8e9deff9855b1c12fc20855d3935a548"; }
-    { locale = "he"; arch = "linux-x86_64"; sha256 = "e542cfdfd29f7d54520dc86c9b73252e57fd3346874f9d629fd31b25be463471"; }
-    { locale = "hr"; arch = "linux-i686"; sha256 = "fe1fc94042eaeeedc1e7592cbedc5e4c922c5e05cd212feff8a654898d2c2a9e"; }
-    { locale = "hr"; arch = "linux-x86_64"; sha256 = "de191f3cc421ed5b06ce981c0431decb933799252107b27103bc3c45ac6995be"; }
-    { locale = "hsb"; arch = "linux-i686"; sha256 = "f55ad886854541ea1d684d168f8fb3c858fc8a11324dc14fb64340cb47f6d7fe"; }
-    { locale = "hsb"; arch = "linux-x86_64"; sha256 = "ee03f60c834c141d3340dca9ecfce8f427ee50a3b6b963f4a565a843e895f614"; }
-    { locale = "hu"; arch = "linux-i686"; sha256 = "8462e0a665d04b9273dbfc1095ef57831165438c21c34b5d04d22b51276fc047"; }
-    { locale = "hu"; arch = "linux-x86_64"; sha256 = "6cc42919c6417860e19fcc851b8210b9d6e405c4b2ff0bf51cffb18af733b488"; }
-    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "2c3f4f4358387dad669254da46e21b4da1f54cedbc7be62c38448862a88edf37"; }
-    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "0556cb57c012554449d7044efaa5e8b4b938b15d55a19f91cb31ea5187b7ef76"; }
-    { locale = "id"; arch = "linux-i686"; sha256 = "26d31f04b836d3e5e3874c4e37d258effc8bd228223f6b963df3434d2276529c"; }
-    { locale = "id"; arch = "linux-x86_64"; sha256 = "55b2be7503278c0a41785796425fe35f5635e0c635d79a4246f7830a7cf6f075"; }
-    { locale = "is"; arch = "linux-i686"; sha256 = "29ce03e041c320aaa61c8ecefbe1a6cd2e9b96e916f3605f09a59cd271cfb741"; }
-    { locale = "is"; arch = "linux-x86_64"; sha256 = "44d7856e1779e86d715026a26fdc0db8beb8fac1bcba5c27ed652779f858c12e"; }
-    { locale = "it"; arch = "linux-i686"; sha256 = "47dd016eda154be31646105061570653ab61ab99d8bf873cf9e8e4b727847fc6"; }
-    { locale = "it"; arch = "linux-x86_64"; sha256 = "299941c56912734dd06c2f1dd89838d3a746dfde10df39f6caf198cf4fc6a332"; }
-    { locale = "ja"; arch = "linux-i686"; sha256 = "ff809f8f752612d242d5787f511b4821294855dd42027d7493f789200747575a"; }
-    { locale = "ja"; arch = "linux-x86_64"; sha256 = "babda834d5e6fa669691b974c4c4ea4b9207c3926796d0c1d76784b733d738a3"; }
-    { locale = "ko"; arch = "linux-i686"; sha256 = "a04ca9cd1cd435d4ab5d832efaeb1a6fee5e9e6c933c5a3a9b0e21bbc5141f24"; }
-    { locale = "ko"; arch = "linux-x86_64"; sha256 = "0390d47ca644679631b8bbb83cb45e404b4b7f1e4ad237d439318fd6464aeeb4"; }
-    { locale = "lt"; arch = "linux-i686"; sha256 = "9e9d3ed60a3ba5ef761937e5b2b06a4eaac1c6f6c1d72a9b3fe0ab7818e3d18f"; }
-    { locale = "lt"; arch = "linux-x86_64"; sha256 = "8d7cf2a173df6b7930a37244829934b2729341a8938288c988120010d1a52d2f"; }
-    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "fde6089efa39e867f8c8b4b6d6e9d5c006f87c4ceaabb78517b34ea288cebe1e"; }
-    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "9ff74ec5e87468f3912b1ec847eff2d215c35224b4ef82ba29efaba4a48f2bb0"; }
-    { locale = "nl"; arch = "linux-i686"; sha256 = "349101916960741272549700a4050850730679826ef3f6c837b542628ac9b17b"; }
-    { locale = "nl"; arch = "linux-x86_64"; sha256 = "0bc2cf52b46f15976cd5355960b81106279c4cea9b7d55ac0360a56dd934ce6a"; }
-    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "6eff1f88b362d81d71833b50606afffdb7e0210160bc9933226c472daa692259"; }
-    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "748726556948ebc59913a72965a54de67615217a93cf0351ece356524d8e3097"; }
-    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "6606ee970387998235ed96fdbacc64a47fe2bc0d78061cf4205200517ab6f092"; }
-    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "0a77fe35ddce1921252d2e2acbeb09d6e719d34b4d81af8d6ef9c5c846359780"; }
-    { locale = "pl"; arch = "linux-i686"; sha256 = "b8d81eba8470a29768ded1c6882cdbf2f3306843754d29fa35e385b0a6efce25"; }
-    { locale = "pl"; arch = "linux-x86_64"; sha256 = "2b10f69274860e7af35cbb795042d058c9480ad195cd435e457923da2341c99d"; }
-    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "4391c285e1db0767f7242fad4fbf6441572ef930acabc63209f1d2ac64e6d08c"; }
-    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "003060a341e1134870f96e1e032023884f3f22fa62261b07084e3cb8813423fb"; }
-    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "d261cbc11bd9b176b656c3ae75f802aee4f1828e14f1a9f0e8c7822e9a24c090"; }
-    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "81fb37b9591a159e9d5ceff18921683037b4c965765b47e736c9124ba6268ee2"; }
-    { locale = "rm"; arch = "linux-i686"; sha256 = "a7d699ac74a568922a363eabaa38627564fbc715cdd3612a8f51e0c373594646"; }
-    { locale = "rm"; arch = "linux-x86_64"; sha256 = "ab9c84765f54f02e385b360025d1c70937af91350cbf8eea666f97aec4e36276"; }
-    { locale = "ro"; arch = "linux-i686"; sha256 = "00db7d515ee4abcba36713a7bac64a2afdfa1782bc3e4175ae2c69535c7b6cdf"; }
-    { locale = "ro"; arch = "linux-x86_64"; sha256 = "03da97e6c832ce49ccf6736ddac4a14b92768442f6f462b0174324964693aaa7"; }
-    { locale = "ru"; arch = "linux-i686"; sha256 = "d7d78792a83d76ce4c521674275b3b6443d0c12ad376b4ec3c34bc4edef64078"; }
-    { locale = "ru"; arch = "linux-x86_64"; sha256 = "bc4c751c5079d3863df1b0dd5717d7f5c07c031fefe798642ff3ff91e8f7512c"; }
-    { locale = "si"; arch = "linux-i686"; sha256 = "9525a7a704f262efa1ad18ab154d7f0eeec8f923f641621a38cce3be5c090cd4"; }
-    { locale = "si"; arch = "linux-x86_64"; sha256 = "2e847ce3ee90d27b7e20602844cbc1c3a9e458a7d449386e5bc8067163b6559d"; }
-    { locale = "sk"; arch = "linux-i686"; sha256 = "389e6dea7b61aced9ad491b57441963cf9c3f5f0c90a80778ccee71320a8bf53"; }
-    { locale = "sk"; arch = "linux-x86_64"; sha256 = "c36e78ce9aecaa23cf183a453e6ae817a52b84e2129f4e41fd409a61e1705c6a"; }
-    { locale = "sl"; arch = "linux-i686"; sha256 = "e8f1dd49850b2c359a66e8f79839a95d6e1a09de5cdd41a64c44315fdcea544c"; }
-    { locale = "sl"; arch = "linux-x86_64"; sha256 = "3ae2a85dadbaf99109fa971bb0c7a825d4ad3d1357f4d51bc7bb20455564ea68"; }
-    { locale = "sq"; arch = "linux-i686"; sha256 = "dd52238fbd564d49ae8f3dfcee7e608615d3e78bd99373b1bbcdf51b9e20c354"; }
-    { locale = "sq"; arch = "linux-x86_64"; sha256 = "cbeadcb1de666c42c9e5b42b2a6c1fa14f80e4c6454ea8cfc34b0ad5dd472bb8"; }
-    { locale = "sr"; arch = "linux-i686"; sha256 = "1318c997a56245b296b2f9ac004b07f87d6492448272c8978e78193fe484336b"; }
-    { locale = "sr"; arch = "linux-x86_64"; sha256 = "0898d16c990669028fbea084755221c747db48392b30b7c498770fcb5df7b328"; }
-    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "50c76b8904b51a84136a1c69939e49541205ce8b804c2ce90cff196e826c275c"; }
-    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "bf3e5c83815458726317c8415963825975500452202f240200be0fab43b1e226"; }
-    { locale = "ta-LK"; arch = "linux-i686"; sha256 = "7d62ec98b8f01b12425e7692c4966faeeeb42ea66cd6105c37742698215bde5a"; }
-    { locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "416cffbe25f2b00cd584fa455768b09c5f8d1bc7938263880903050f8c08fab4"; }
-    { locale = "tr"; arch = "linux-i686"; sha256 = "581d6c8df1611d749d0dda9d1f248ebf354825f8a8097624fd08338ea5e01d38"; }
-    { locale = "tr"; arch = "linux-x86_64"; sha256 = "24b1b9bfa251add2d7f3183b0c3aafdea6b4caa5bdbcea718462185d6dc63e5b"; }
-    { locale = "uk"; arch = "linux-i686"; sha256 = "97175dba275e382b2436e9b7a948c46f137ed38612e90ea43466dd3fe20c878b"; }
-    { locale = "uk"; arch = "linux-x86_64"; sha256 = "273b08710fbc57c30828736c38a158ff66ac788b2ca3726118367466cab09797"; }
-    { locale = "vi"; arch = "linux-i686"; sha256 = "e0391fdecb11b5daac913f57894970208b51e1e7f1665ff56cb7a68dba0c442a"; }
-    { locale = "vi"; arch = "linux-x86_64"; sha256 = "af51ee3bd2ac246a4b465aa65b13d1aa661dbce5e0988524532616fb9d2d651b"; }
-    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "5e7d1543d41912ffa0a71137b90c40ab5569ffab65e8b99f0b62446561a78ca2"; }
-    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "f85c8086b462474e40b0b090f9b566aa55b228ec49ec18fa1b5987ec3efa048b"; }
-    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "6f161428af67a1635364660a8ec6d7c785350204d5bac602ebcd32861e9baf62"; }
-    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "2088379539a9b4ece3012b603a5731c92567fa4b3e5c448ae54e2729c8df0658"; }
+    { locale = "ar"; arch = "linux-i686"; sha256 = "186ba5f03adc7cb94c69351f5edcf241abdba1a3602f9b140a46682cb94b053c"; }
+    { locale = "ar"; arch = "linux-x86_64"; sha256 = "7c6308024524c8ba458bb43cace95bdf92dfa7d797c7ff936598257c018e4807"; }
+    { locale = "ast"; arch = "linux-i686"; sha256 = "61de0fc548ff70367334c82bec580caa895f3db63c6b045c5a717bfa282e69db"; }
+    { locale = "ast"; arch = "linux-x86_64"; sha256 = "34c935a0b162e182a341699782143cad1e225ea63bf314c158d25f629889c5e1"; }
+    { locale = "be"; arch = "linux-i686"; sha256 = "4442d37c8bb411c5c151bd98d06a375dc8ffcf72fee4d03bed6ac8691ccd8e2c"; }
+    { locale = "be"; arch = "linux-x86_64"; sha256 = "e7226b6b42e7cfe4d36c430eca755f5deae8899fd64ea1877ad576f96fe29b8c"; }
+    { locale = "bg"; arch = "linux-i686"; sha256 = "eaf46e571b55800dfaf63a807236e8bf5fa8e8ba77bc996830ab0dfcdce23300"; }
+    { locale = "bg"; arch = "linux-x86_64"; sha256 = "62edb0cee78dd88a871355c996107901456f1fb70793d21209e75875c33d91a3"; }
+    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "76e3222d9b7bc4f5948c56be6248deb23c1777550f497f115487e323c16b2f95"; }
+    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "b7ad9dd397abb89b844f8a1adbd34d0dfdea6bb85b3f8ad5d5f297e7f8b1b081"; }
+    { locale = "br"; arch = "linux-i686"; sha256 = "b10c7e572ba88f79acb2d57988308c5af6fde268f64434956c4312f8a7c3ed42"; }
+    { locale = "br"; arch = "linux-x86_64"; sha256 = "174f671aa90307e4dd6756d60f37a0b628d7d1cee8c7bb623a1a32c55b26a967"; }
+    { locale = "ca"; arch = "linux-i686"; sha256 = "b966f3381a30567db88890dd3885c56f9cf367d9c92e192d0c6c79066e482c91"; }
+    { locale = "ca"; arch = "linux-x86_64"; sha256 = "e5d96ddd9ed6b685b872d90e95bded23124e21575e9e0bcb7aeaa77ef0226009"; }
+    { locale = "cs"; arch = "linux-i686"; sha256 = "fdbe97bc87656569b20d8154619cd7b3b5c3b03cbbcd7ff2f1e07a3af547bb41"; }
+    { locale = "cs"; arch = "linux-x86_64"; sha256 = "b24ea0ae2977d9380cadfd130f83971e798677ce956152d794523e90a54222e6"; }
+    { locale = "cy"; arch = "linux-i686"; sha256 = "ba39bd39698ad0486e22806ff468b9a763712f35e943b93e6021365dc061c2ce"; }
+    { locale = "cy"; arch = "linux-x86_64"; sha256 = "f51e4dcaeac1aeb53d858d029c34c366e948616f7ca3f35eb22b165fd2839376"; }
+    { locale = "da"; arch = "linux-i686"; sha256 = "511441bfe56749643f59e10c9219b8c3192d64c50008ee3d8a2dc342993c0133"; }
+    { locale = "da"; arch = "linux-x86_64"; sha256 = "9f60a1c06da4e61a415359eeaed831d61a8c8ad377952948c1475ee6a2bc0cd3"; }
+    { locale = "de"; arch = "linux-i686"; sha256 = "d48939ad0dab7c4829cd41cd6afe9239d12ab2a2337296203b660613cbba2698"; }
+    { locale = "de"; arch = "linux-x86_64"; sha256 = "6b1398161ab1271caa14b20c4ad0b3e4372fca743b4ae2e3d5bd1d77d8038c15"; }
+    { locale = "dsb"; arch = "linux-i686"; sha256 = "c30f3fea47cca28fcc928d813e8c631db43a665d8f347f174b23ef3c1fdd7550"; }
+    { locale = "dsb"; arch = "linux-x86_64"; sha256 = "592b18fa8ff3749c7a68b5f5406f5ae42f9f97e47cc8c2f9c18b242c8f192b8d"; }
+    { locale = "el"; arch = "linux-i686"; sha256 = "1ccdde8b11337e75feabbd1e40f1316c287862769d0b9c37934f22108c74bf1a"; }
+    { locale = "el"; arch = "linux-x86_64"; sha256 = "acb837b0120f00f6cb39e447e86cb140c0cabbe599bff70d85429126df377d85"; }
+    { locale = "en-GB"; arch = "linux-i686"; sha256 = "ba4c223c22fda306f4b66daa6ed0d157c5c24489ec7627e1124c9f79b5aca989"; }
+    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "f4bb5a60493f3fbf519a55dc7ff2fa7bb455ad344d27b133addb2864f9d9d100"; }
+    { locale = "en-US"; arch = "linux-i686"; sha256 = "205729f0ce14666ef98b7e23dad0882d450a508b568fc1d2c99cdfffd2cc9547"; }
+    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "7c7cb801ea902f93e57f944209e1358bcbe73f8ee312112e94ade2a2ef4b1194"; }
+    { locale = "es-AR"; arch = "linux-i686"; sha256 = "8bbb39afd31656bc7cdab60b179e0a5bb9d9d9fed62e1ad398dfc5c0f40a35ab"; }
+    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "0d86ebebfd2ba294b0f27b5eb84b083a7c8cecc8fea944705525831cf3c161b8"; }
+    { locale = "es-ES"; arch = "linux-i686"; sha256 = "76673ffb93fb3b902366c5939619dfa11ecd724dc5ff37fe769d598dc937c353"; }
+    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "6e7098cf9eb6f1b55d7504b341b709133fb5d4d20cb761984647422749b71615"; }
+    { locale = "et"; arch = "linux-i686"; sha256 = "3de2c84af3c7111a306e35f1f7304bf7a77a0e50c8d2c9bfbc896a11a6a23e5d"; }
+    { locale = "et"; arch = "linux-x86_64"; sha256 = "a2bb5c2b6e174a65cf825293f57cc1628930686f6a674d2cb7fcee6aaf755afc"; }
+    { locale = "eu"; arch = "linux-i686"; sha256 = "f0ec8c9613ee04c7f7c1b55cb81386036220a715b58edc302e2099882e2c642d"; }
+    { locale = "eu"; arch = "linux-x86_64"; sha256 = "3ed3c4431fc604fbc05b6f17c9c6e74057278e9ef85480d60ea638843eab1394"; }
+    { locale = "fi"; arch = "linux-i686"; sha256 = "e4dac93472bc5f41a75daf9ca18265de527b5fc621812bde2c634f1fa5a4692c"; }
+    { locale = "fi"; arch = "linux-x86_64"; sha256 = "8a30c0c7a586f598e6065f20b2a0dc1e105f59d3e4adac8167da462e8e0193d2"; }
+    { locale = "fr"; arch = "linux-i686"; sha256 = "adfe8aca07faf08ba780ca0f84d638d461f4a0f00b92d5a9cebe8102a94bce79"; }
+    { locale = "fr"; arch = "linux-x86_64"; sha256 = "19ccb4a2ec44b1c8edce204627af3d0e84f214591d3b7a4f6e67e297dd9db0f9"; }
+    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "88f763080b2bbfb8957ed6b52189f2195b3317a1bfb851a6e686765e8a12181a"; }
+    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "5955d594802281794ef25e9fda196206464ac0594ce12e957b5c40c589c89ad0"; }
+    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "7fb849565e25b1bba853b434d7f0207bfc9b3f39251f08edf65a8a38ccd0dd96"; }
+    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "b56cd8b5fc665ad24061fdf2ac3196aff9f953395e894007b133bc83f676be33"; }
+    { locale = "gd"; arch = "linux-i686"; sha256 = "860dca420cd8c6c18bc703ab4934948e038b4e7e91a1d80d3f632980f0799424"; }
+    { locale = "gd"; arch = "linux-x86_64"; sha256 = "4e8723dacd9a4961f02fece36066166c044880fbc0c7aab4e0f1289a36bd22c6"; }
+    { locale = "gl"; arch = "linux-i686"; sha256 = "fd071bf547ba0baaf13141e30f34c15108fb6e44432b02d55508cf3dfca91cdb"; }
+    { locale = "gl"; arch = "linux-x86_64"; sha256 = "b999261eb53e28c5b43fa5d3ffcb2f9c12cca45a38c6e8fc56a342b1a5dda78a"; }
+    { locale = "he"; arch = "linux-i686"; sha256 = "2c2e7d7a459dd85f88fb3839002e2eb602d47ce5df4d0572928d8a35a0df4773"; }
+    { locale = "he"; arch = "linux-x86_64"; sha256 = "0c540f0ffb1224c8d3b18423690f319d25ff5e0c004d18cc8bc6b7d69ecbc48a"; }
+    { locale = "hr"; arch = "linux-i686"; sha256 = "5d7e14f94f53c7623dc4fce69aa991a67792e0d2405a6c7044558d5023ea0cc0"; }
+    { locale = "hr"; arch = "linux-x86_64"; sha256 = "6355145ae642332d1798f8ce169cb85cc930af6add6c8cda142e8183666fdb71"; }
+    { locale = "hsb"; arch = "linux-i686"; sha256 = "897eca9ffdbf28f3d3f720dd44f68f67a289e4d2aff91005c180688b34358b08"; }
+    { locale = "hsb"; arch = "linux-x86_64"; sha256 = "43d2cf464be8be57a5d2bdba1683e6179641448e351d9a8bee9889febe1ebefd"; }
+    { locale = "hu"; arch = "linux-i686"; sha256 = "5e6b806364d7e97384bf3f30e4f398c8041cd8acc000b21edcf218ca24e1903a"; }
+    { locale = "hu"; arch = "linux-x86_64"; sha256 = "5b96ea401ec1af9473cc57e4f09f6f264598e52196dd9da38cebe3e802649fc9"; }
+    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "3fbd40d914f9347f09848ffb3486d1cec9734f9ae3cc969bc71a8d9c61aea92b"; }
+    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "9f60903ccb571eebdf7fab4c62e1f0675d4c7f5bcbca7589e669c931b355b55a"; }
+    { locale = "id"; arch = "linux-i686"; sha256 = "bd0e53bb5d792c9caf2aedc67cf1df2281d234905b96748766446e842448e39e"; }
+    { locale = "id"; arch = "linux-x86_64"; sha256 = "f7bc98632e15fb73c61c5fd54c3e349e93f3f07b61ee92d704b105b05386949d"; }
+    { locale = "is"; arch = "linux-i686"; sha256 = "6361b21f9a57468cb8e6273805437d4a40f90c0b461d447b17543f84f9cae8c2"; }
+    { locale = "is"; arch = "linux-x86_64"; sha256 = "df4d4ef5a25a8aa2f9cbbfef2425056c19b568030e2b217f9bb535fcd81cc017"; }
+    { locale = "it"; arch = "linux-i686"; sha256 = "def27fdc02da10e148b3312199826157b981165a98ea9a3f5135866092e07ad3"; }
+    { locale = "it"; arch = "linux-x86_64"; sha256 = "3c55c72d8b9936dc0b0ecf2e88024d4e128f4cbdb32ec5770d4caa930e12d696"; }
+    { locale = "ja"; arch = "linux-i686"; sha256 = "7f1e39da21362857afd57151b0bb606c7a8b52f0ea1362cbb5bf9c4eb9b18db8"; }
+    { locale = "ja"; arch = "linux-x86_64"; sha256 = "3b70e990616d999c572a9e95f92dc62b004f5449891778a6530ee81dc1f42703"; }
+    { locale = "ko"; arch = "linux-i686"; sha256 = "7023635ab8fde872b41b08f523128721863091d7bd7e76646ea2f2929a667719"; }
+    { locale = "ko"; arch = "linux-x86_64"; sha256 = "370075633a30d3f4afbe69c617ecc4df33e51aa95704ef9fff599a13e9cb3ab2"; }
+    { locale = "lt"; arch = "linux-i686"; sha256 = "f143791c658916ee2ddac2199293ded234cfd8201cd6399775ccb996cb784e18"; }
+    { locale = "lt"; arch = "linux-x86_64"; sha256 = "5d48abb53a5b71be190dc4c127c5718704fbc12590c2c5fbcf3b4046f9840415"; }
+    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "319df90e458817537f7323e97c3d7fdeb2fd965a215b1173f87378b3c94e3ac7"; }
+    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "2f93a35135f387c8cb2e4ca4b0c800f846596d0f93350f3be0983797a0571359"; }
+    { locale = "nl"; arch = "linux-i686"; sha256 = "8e3d9003a67a0d38821dae7a070eebe32698ae6a89272394d4f7faea91595360"; }
+    { locale = "nl"; arch = "linux-x86_64"; sha256 = "bf2bb1676c5966b6fdcf34c93eb3444ed0f3dd6ed03c8e2a39f6757811bf0e7f"; }
+    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "e938fcf2e84bc19d766c89312f8ca8e055ffeaf7fe20ba8d616aeb0b862cd064"; }
+    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "ab0b01922e883a34874de33f6eae08a8e4e40d23dd7ddcdf42254386218728e6"; }
+    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "fd3fd9fe5280365a27ef4e81f7965da2e85ad149e4e026f6a8714a73d976eeb2"; }
+    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "6a68c72828036a256a8d04b1678be58c786671ef97f106b23812ebcf149f1d15"; }
+    { locale = "pl"; arch = "linux-i686"; sha256 = "26bb8ca3617c70d1126ef4111787ab267bc6dcd28b2b995e07b7296bdf24723b"; }
+    { locale = "pl"; arch = "linux-x86_64"; sha256 = "de6ac16163aab662ba4fef2130dd822ec9cfecc0f4beec54f2017785fec8eb0a"; }
+    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "82c459a487d2a7b156f92db36e85c815c714d59474ed9bd8cde46b08c69f1d57"; }
+    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "1f4caae64ced0c69fe6ba6330921fce0d220b616a0eb8b1e696da85cdcf5ec01"; }
+    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "830b649a394cd844bb1b159a76d265455f6ace76dec6697491367b2f6eff1588"; }
+    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "e89e906cd896c8e04754a9658dc72617954e0a097e6e3b648e5ce827c8cec7d7"; }
+    { locale = "rm"; arch = "linux-i686"; sha256 = "260fc959ce74945d827c230124a451cec75b6347b78d7d8bbeb65a2bd91f5bd8"; }
+    { locale = "rm"; arch = "linux-x86_64"; sha256 = "aa416170d0d04d0e2e570d0b0874b6c585d706f8b670de3c24bc5a9ce9819d8d"; }
+    { locale = "ro"; arch = "linux-i686"; sha256 = "a24ec33c8812921ad0f15dd4306218a2443f7018be5141bcc8e87e0ce3f52929"; }
+    { locale = "ro"; arch = "linux-x86_64"; sha256 = "5c8bb4872206cacd17cfb77ed3cf58024cdc81be181908213f80659c4d36594b"; }
+    { locale = "ru"; arch = "linux-i686"; sha256 = "06bde08af3d4b73db3f0a8b87f4f5f3bbc95fd92d717a9ac83efddb7ebc0f12b"; }
+    { locale = "ru"; arch = "linux-x86_64"; sha256 = "6adf1e6992b05b6c93152bb19a79fe39f319b5a5a62d2491191544eaaabbcc1b"; }
+    { locale = "si"; arch = "linux-i686"; sha256 = "3f757064e857d8c4d025c0de8325b3bfd81648ac2b77ee11ca847e8ea85d35a5"; }
+    { locale = "si"; arch = "linux-x86_64"; sha256 = "01147194ad382e4cc61c22c6a2672a01740ced6fdb3d4c2a9394ca9d62503c24"; }
+    { locale = "sk"; arch = "linux-i686"; sha256 = "ffd8e8bbadb7be4672555f1ec8e4134af5c0898041cc197e1d0081b636d07642"; }
+    { locale = "sk"; arch = "linux-x86_64"; sha256 = "d1e9df7d081afa272e94534ee3d6310c3498629cd7bba0fd7ab86675ea885714"; }
+    { locale = "sl"; arch = "linux-i686"; sha256 = "2835ea496c48c171efa0d79924cd3183c12f6de49ce05af72214f6ad4a407c85"; }
+    { locale = "sl"; arch = "linux-x86_64"; sha256 = "e585b0839c2b31ef12f562c4303b46b392493c6619b7e1b0c92e21c3afdb7461"; }
+    { locale = "sq"; arch = "linux-i686"; sha256 = "592ece3de096b4135c24e9079f20b85b8c394d488caa6b7907b75d49f51fb30d"; }
+    { locale = "sq"; arch = "linux-x86_64"; sha256 = "048bcb92d0915b909e2174c990948dd5c50345452369e067bf8c5770bc7b40c4"; }
+    { locale = "sr"; arch = "linux-i686"; sha256 = "b24e02beeb02d44ba64884864cdfb6605e7b3454b6e953767ceeaf4817f41d95"; }
+    { locale = "sr"; arch = "linux-x86_64"; sha256 = "caad067689a49308c2e51385750f3d2319e3a06757cf56060ce3c5ecb74a9ed6"; }
+    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "a2dc5de82a1736dd3aa157da305f5db478625508444df244a3492dfaff8278f3"; }
+    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "d2c4ab30e6e5d17716d7981d0039f043a41107edb917a838be66659d60653074"; }
+    { locale = "ta-LK"; arch = "linux-i686"; sha256 = "58773ebf8d949541a2c19924935eb09f0d996aa4059ad3c17a71c664357c2bcc"; }
+    { locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "bb5c4d1d81373c1d25c1df4d896fbd1ba52acfed4e890a81650e34e5b9bd2ef0"; }
+    { locale = "tr"; arch = "linux-i686"; sha256 = "c95f531aaa3d36788cf6511d51afa1242657890bdc10628218aef60d6d80b106"; }
+    { locale = "tr"; arch = "linux-x86_64"; sha256 = "bf04a4f7b629e20f8389aad530b89b592686bd1a8340090311882934f9bea391"; }
+    { locale = "uk"; arch = "linux-i686"; sha256 = "2c0c6d3a2d4228b7838864835665ff7d46cf8564d59db817ee1d8f9665828410"; }
+    { locale = "uk"; arch = "linux-x86_64"; sha256 = "c51477c9aaa96765205c163df83acb003c2db837243225d5d1e8753b1de5b71b"; }
+    { locale = "vi"; arch = "linux-i686"; sha256 = "3c92aef738962dab12fa0e118d64d29bb0d110f9ef2050630b3649d574036476"; }
+    { locale = "vi"; arch = "linux-x86_64"; sha256 = "4854536b65fb7afb8925315ff4192c369db53f55b3ccec698cb561af1bc03f68"; }
+    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "3aa69342828a99d075e0b70938d1360dcb9016ad322638c57fba9288e37b9b3e"; }
+    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "9d590c31e369d8e1287c915cb91061f14359329c89e5038e3491052ff3df894a"; }
+    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "f133efa32b74f0203186abfeb5b191bf50711f04bf29762e2569b78e0feb66e3"; }
+    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "15d71526ef072de2b9adacb300e0eb158170839be82a7def9efa6ac55adcda37"; }
   ];
 }
diff --git a/pkgs/applications/science/robotics/gazebo/6.nix b/pkgs/applications/science/robotics/gazebo/6.nix
new file mode 100644
index 00000000000..0d1aa4a9085
--- /dev/null
+++ b/pkgs/applications/science/robotics/gazebo/6.nix
@@ -0,0 +1,8 @@
+{ stdenv, fetchurl, callPackage, ignition, gazeboSimulator, ... } @ args:
+
+callPackage ./default.nix (args // rec {
+  version = "6.5.1";
+  src-sha256 = "96260aa23f1a1f24bc116f8e359d31f3bc65011033977cb7fb2c64d574321908";
+  sdformat = gazeboSimulator.sdformat3;
+})
+
diff --git a/pkgs/applications/science/robotics/gazebo/default.nix b/pkgs/applications/science/robotics/gazebo/default.nix
new file mode 100644
index 00000000000..1b71e45eb82
--- /dev/null
+++ b/pkgs/applications/science/robotics/gazebo/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, cmake, pkgconfig, boost, protobuf, freeimage
+  , boost-build, boost_process
+  , xorg_sys_opengl, tbb, ogre, tinyxml-2
+  , libtar, glxinfo,  libusb, libxslt, ruby, ignition
+  , pythonPackages, utillinux
+
+  # these deps are hidden; cmake doesn't catch them
+  , gazeboSimulator, sdformat ? gazeboSimulator.sdformat, curl, tinyxml, kde4, x11
+  , withIgnitionTransport ? true
+  , libav, withLibAvSupport ? true
+  , openal, withAudioSupport ? false
+  , withQuickBuild ? false, withHeadless ? false, withLowMemorySupport ? false
+  , doxygen, withDocs ? true
+  , bullet, withBulletEngineSupport ? false
+  , graphviz, withModelEditorSchematicView ? true # graphviz needed for this view
+  , gdal, withDigitalElevationTerrainsSupport ? true
+  , gts, withConstructiveSolidGeometrySupport ? true
+  , hdf5, withHdf5Support ? true
+  , version ? "7.0.0"
+  , src-sha256 ? "127q2g93kvmak2b6vhl13xzg56h09v14s4pki8wv7aqjv0c3whbl"
+  , ...
+}: with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  inherit version;
+  name = "gazebo-${version}";
+
+  src = fetchurl {
+    url = "http://osrf-distributions.s3.amazonaws.com/gazebo/releases/${name}.tar.bz2";
+    sha256 = src-sha256;
+  };
+
+  enableParallelBuilding = true; # gazebo needs this so bad
+  cmakeFlags = []
+    ++ optional withQuickBuild [ "-DENABLE_TESTS_COMPILATION=False" ]
+    ++ optional withLowMemorySupport [ "-DUSE_LOW_MEMORY_TESTS=True" ]
+    ++ optional withHeadless [ "-DENABLE_SCREEN_TESTS=False" ];
+
+  buildInputs = [
+    #cmake pkgconfig boost protobuf
+    freeimage
+    xorg_sys_opengl
+    tbb
+    ogre
+    tinyxml-2
+    libtar
+    glxinfo
+    libusb
+    libxslt
+    ignition.math2
+    sdformat
+    pythonPackages.pyopengl
+
+    # TODO: add these hidden deps to cmake configuration & submit upstream
+    curl
+    tinyxml
+    x11
+    kde4.qt4
+  ] ++ optional stdenv.isLinux utillinux # on Linux needs uuid/uuid.h
+    ++ optional withDocs doxygen
+    ++ optional withLibAvSupport libav  #TODO: package rubygem-ronn and put it here
+    ++ optional withAudioSupport openal
+    ++ optional withBulletEngineSupport bullet
+    ++ optional withIgnitionTransport ignition.transport
+    ++ optional withModelEditorSchematicView graphviz
+    ++ optional withDigitalElevationTerrainsSupport gdal
+    ++ optional withConstructiveSolidGeometrySupport gts
+    ++ optional withHdf5Support hdf5;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  propagatedNativeBuildInputs = [ boost boost-build boost_process protobuf ];
+
+  meta = with stdenv.lib; {
+    homepage = http://gazebosim.org/;
+    description = "Multi-robot simulator for outdoor environments";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ pxc ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/version-management/bugseverywhere/default.nix b/pkgs/applications/version-management/bugseverywhere/default.nix
new file mode 100644
index 00000000000..f8081ade61f
--- /dev/null
+++ b/pkgs/applications/version-management/bugseverywhere/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, pythonPackages, fetchurl }:
+
+#
+# Upstream stopped development of this package. If this package does not build
+# anymore, feel free to remove it by reverting the appropriate patch
+# (git log --grep bugseverywhere)
+#
+pythonPackages.buildPythonApplication rec {
+    version = "1.1.1";
+    name = "bugseverywhere-${version}";
+
+    src = fetchurl {
+      url =
+      "https://pypi.python.org/packages/source/b/bugs-everywhere/bugs-everywhere-${version}.tar.gz";
+      sha256 = "1ikm3ckwpimwcvx32vy7gh5gbp7q750j3327m17nvrj99g3daz2d";
+    };
+
+    # There are no tests in the repository.
+    doCheck = false;
+
+    buildInputs = with pythonPackages; [
+        jinja2
+        cherrypy
+    ];
+
+    meta = with stdenv.lib; {
+        description = "Bugtracker supporting distributed revision control";
+        homepage = "http://www.bugseverywhere.org/";
+        license = licenses.gpl2Plus;
+        platforms = platforms.all;
+        maintainers = [ maintainers.matthiasbeyer ];
+    };
+}
+
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 5083c73fb14..82a3dc79d7c 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -9,7 +9,7 @@
 }:
 
 let
-  version = "2.7.4";
+  version = "2.8.0";
   svn = subversionClient.override { perlBindings = true; };
 in
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "0ys55v2xrhzj74jrrqx75xpr458klnyxshh8d8swfpp0zgg79rfy";
+    sha256 = "0k77b5x41k80fqqmkmg59rdvs92xgp73iigh01l49h383r7rl2cs";
   };
 
   patches = [
diff --git a/pkgs/applications/video/avidemux/default.nix b/pkgs/applications/video/avidemux/default.nix
index 485d8c54eb3..3ffc18e3b18 100644
--- a/pkgs/applications/video/avidemux/default.nix
+++ b/pkgs/applications/video/avidemux/default.nix
@@ -1,46 +1,115 @@
-{stdenv, fetchurl, cmake, pkgconfig, libxml2, qt4, gtk, gettext, SDL,
-libXv, pixman, libpthreadstubs, libXau, libXdmcp, libxslt, x264,
-alsaLib, lame, faad2, libvorbis, yasm, libvpx, xvidcore, libva,
-faac ? null, faacSupport ? false }:
+{ stdenv, lib, fetchurl, cmake, pkgconfig, lndir
+, zlib, gettext, libvdpau, libva, libXv, sqlite, x265
+, yasm, fribidi, gtk3, qt4
+, withX264 ? true, x264
+, withLAME ? true, lame
+, withFAAC ? true, faac
+, withVorbis ? true, libvorbis
+, withPulse ? true, libpulseaudio
+, withFAAD ? true, faad2
+, withOpus ? true, libopus
+, withVPX ? true, libvpx
+}:
 
-assert stdenv ? glibc;
-assert faacSupport -> faac != null;
-
-stdenv.mkDerivation {
-  name = "avidemux-2.5.6";
+stdenv.mkDerivation rec {
+  name = "avidemux-${version}";
+  version = "2.6.12";
 
   src = fetchurl {
-    url = mirror://sourceforge/avidemux/avidemux_2.5.6.tar.gz;
-    sha256 = "12wvxz0n2g85f079d8mdkkp2zm279d34m9v7qgcqndh48cn7znnn";
+    url = "mirror://sourceforge/avidemux/avidemux/${version}/avidemux_${version}.tar.gz";
+    sha256 = "0nz52yih8sff53inndkh2dba759xjzsh4b8xjww419lcpk0qp6kn";
   };
 
-  buildInputs = [ cmake pkgconfig libxml2 qt4 gtk gettext SDL libXv
-    pixman libpthreadstubs libXau libXdmcp libxslt x264 alsaLib
-    lame faad2 libvorbis yasm libvpx xvidcore libva
-  ] ++ stdenv.lib.optional faacSupport faac;
+  nativeBuildInputs = [ cmake pkgconfig yasm lndir ];
+  buildInputs = [ zlib gettext libvdpau libva libXv sqlite x265 fribidi gtk3 qt4 ]
+             ++ lib.optional withX264 x264
+             ++ lib.optional withLAME lame
+             ++ lib.optional withFAAC faac
+             ++ lib.optional withVorbis libvorbis
+             ++ lib.optional withPulse libpulseaudio
+             ++ lib.optional withFAAD faad2
+             ++ lib.optional withOpus libopus
+             ++ lib.optional withVPX libvpx
+             ;
+
+  enableParallelBuilding = false;
+
+  outputs = [ "out" "cli" "gtk" "qt4" ];
+
+  patches = [ ./dynamic_install_dir.patch ];
+
+  buildCommand = ''
+    unpackPhase
+    cd "$sourceRoot"
+    patchPhase
+
+    export cmakeFlags="$cmakeFlags -DAVIDEMUX_SOURCE_DIR=$(pwd)"
+
+    function buildOutput() {
+      ( plugin_ui="$1"
+        output_dir="$2"
+        shift 2
+        export cmakeFlags="$cmakeFlags -DPLUGIN_UI=$plugin_ui -DCMAKE_INSTALL_PREFIX=$output_dir"
+        for i in "$@" avidemux_plugins; do
+          ( cd "$i"
+            cmakeConfigurePhase
+            buildPhase
+            installPhase
+          )
+        done
+        rm -rf avidemux_plugins/build
+      )
+    }
+
+    function buildUi() {
+      plugin_ui="$1"
+      output_dir="$2"
+      shift 2
+
+      # Hack to split builds properly
+      mkdir -p $output_dir
+      lndir $out $output_dir
+      buildOutput $plugin_ui $output_dir "$@"
+    }
+
+    function fixupUi() {
+      output_dir="$1"
+      shift
 
-  cmakeFlags = "-DPTHREAD_INCLUDE_DIR=${stdenv.glibc}/include" +
-    " -DGETTEXT_INCLUDE_DIR=${gettext}/include" +
-    " -DSDL_INCLUDE_DIR=${SDL}/include/SDL";
+      find $output_dir -lname $out\* -delete
+      find $output_dir -type f | while read -r f; do
+        rpath="$(patchelf --print-rpath $f 2>/dev/null)" || continue
+        new_rpath=""
+        IFS=':' read -ra old_rpath <<< "$rpath"
+        for p in "''${old_rpath[@]}"; do
+          new_rpath="$new_rpath:$p"
+          if [[ $p = $output_dir* ]]; then
+            new_rpath="$new_rpath:$out/''${p#$output_dir}"
+          fi
+        done
+        patchelf --set-rpath "$new_rpath" $f
+        patchelf --shrink-rpath $f
+      done
+    }
 
-  NIX_LDFLAGS="-lpthread";
+    buildOutput COMMON $out avidemux_core
+    buildOutput SETTINGS $out
+    buildUi CLI $cli avidemux/cli
+    buildUi GTK $gtk avidemux/gtk
+    buildUi QT4 $qt4 avidemux/qt4
 
-  postInstall = ''
-    cd $NIX_BUILD_TOP/$sourceRoot
-    mkdir build_plugins
-    cd build_plugins
-    cmake $cmakeFlags -DAVIDEMUX_INSTALL_PREFIX=$out \
-      -DAVIDEMUX_SOURCE_DIR=$NIX_BUILD_TOP/$sourceRoot \
-      -DAVIDEMUX_CORECONFIG_DIR=$NIX_BUILD_TOP/$sourceRoot/build/config ../plugins
+    fixupPhase
 
-    make
-    make install
+    fixupUi $cli
+    fixupUi $gtk
+    fixupUi $qt4
   '';
 
   meta = {
     homepage = http://fixounet.free.fr/avidemux/;
     description = "Free video editor designed for simple video editing tasks";
-    maintainers = with stdenv.lib.maintainers; [viric];
+    maintainers = with stdenv.lib.maintainers; [ viric abbradar ];
     platforms = with stdenv.lib.platforms; linux;
+    license = stdenv.lib.licenses.gpl2;
   };
 }
diff --git a/pkgs/applications/video/avidemux/dynamic_install_dir.patch b/pkgs/applications/video/avidemux/dynamic_install_dir.patch
new file mode 100644
index 00000000000..f2f963e5169
--- /dev/null
+++ b/pkgs/applications/video/avidemux/dynamic_install_dir.patch
@@ -0,0 +1,12 @@
+diff -ru3 avidemux_2.6.12.old/avidemux_core/ADM_core/src/ADM_fileio.cpp avidemux_2.6.12/avidemux_core/ADM_core/src/ADM_fileio.cpp
+--- avidemux_2.6.12.old/avidemux_core/ADM_core/src/ADM_fileio.cpp	2016-03-25 15:26:00.368213627 +0300
++++ avidemux_2.6.12/avidemux_core/ADM_core/src/ADM_fileio.cpp	2016-03-26 02:32:56.163550537 +0300
+@@ -393,7 +393,7 @@
+ 

+ 	return ADM_getRelativePath(buffer, base1, base2, base3);

+ #else

+-	return ADM_getRelativePath(ADM_INSTALL_DIR, base1, base2, base3);

++	return ADM_getRelativePath(getenv("ADM_ROOT_DIR"), base1, base2, base3);

+ #endif

+ }

+ 

diff --git a/pkgs/applications/video/avidemux/wrapper.nix b/pkgs/applications/video/avidemux/wrapper.nix
new file mode 100644
index 00000000000..ad41f56d39d
--- /dev/null
+++ b/pkgs/applications/video/avidemux/wrapper.nix
@@ -0,0 +1,29 @@
+{ buildEnv, avidemux, makeWrapper
+# GTK version is broken upstream, see https://bugzilla.redhat.com/show_bug.cgi?id=1244340
+, withUi ? "qt4"
+}:
+
+let
+  ui = builtins.getAttr withUi avidemux;
+
+in buildEnv {
+  name = "avidemux-${withUi}-" + avidemux.version;
+
+  paths = [ avidemux ui ];
+
+  buildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    # TODO: This could be avoided if buildEnv could be forced to create all directories
+    if [ -L $out/bin ]; then
+      rm $out/bin
+      mkdir $out/bin
+      for i in ${ui}/bin/*; do
+        ln -s $i $out/bin
+      done
+    fi
+    for i in $out/bin/*; do
+      wrapProgram $i --set ADM_ROOT_DIR $out
+    done
+  '';
+}
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 0e08c21fc99..a84f24a303a 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -27,6 +27,11 @@ stdenv.mkDerivation rec {
     sha256 = "1dazxbmzx2g5570pkg519a7fsj07rdr155kjsw7b9y8npql33lls";
   };
 
+  # Comment-out the Qt 5.5 version check, as we do apply the relevant patch.
+  # https://trac.videolan.org/vlc/ticket/16497
+  postPatch = if (!withQt5) then null else
+    "sed '/I78ef29975181ee22429c9bd4b11d96d9e68b7a9c/s/^/: #/' -i configure";
+
   buildInputs =
     [ xz bzip2 perl zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
       libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt
diff --git a/pkgs/build-support/fetchbower/default.nix b/pkgs/build-support/fetchbower/default.nix
index 057beb999b2..11d88ae10e9 100644
--- a/pkgs/build-support/fetchbower/default.nix
+++ b/pkgs/build-support/fetchbower/default.nix
@@ -1,11 +1,26 @@
-{ stdenv, fetch-bower, git }: name: version: target: outputHash: stdenv.mkDerivation {
-  name = "${name}-${version}";
-  buildCommand = ''
-    out=$PWD/out fetch-bower "${name}" "${version}" "${target}"
-    cp -R out $out
-  '';
-  outputHashMode = "recursive";
-  outputHashAlgo = "sha256";
-  inherit outputHash;
-  buildInputs = [git fetch-bower];
-}
+{ stdenv, lib, bower2nix }:
+let
+  bowerVersion = version:
+    let
+      components = lib.splitString "#" version;
+      hash = lib.last components;
+      ver = if builtins.length components == 1 then version else hash;
+    in ver;
+
+  fetchbower = name: version: target: outputHash: stdenv.mkDerivation {
+    name = "${name}-${bowerVersion version}";
+    buildCommand = ''
+      fetch-bower --quiet --out=$PWD/out "${name}" "${target}" "${version}"
+      # In some cases, the result of fetchBower is different depending
+      # on the output directory (e.g. if the bower package contains
+      # symlinks). So use a local output directory before copying to
+      # $out.
+      cp -R out $out
+    '';
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    inherit outputHash;
+    buildInputs = [ bower2nix ];
+  };
+
+in fetchbower
diff --git a/pkgs/desktops/kde-5/plasma-5.5/kwin/default.nix b/pkgs/desktops/kde-5/plasma-5.5/kwin/default.nix
index 2e86068b486..a09acb88aad 100644
--- a/pkgs/desktops/kde-5/plasma-5.5/kwin/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kwin/default.nix
@@ -26,6 +26,7 @@ plasmaPackage {
     kwindowsystem plasma-framework qtdeclarative qtmultimedia qtx11extras
   ];
   patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+  cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF" ];
   postInstall = ''
     wrapQtProgram "$out/bin/kwin_x11"
     wrapQtProgram "$out/bin/kwin_wayland"
diff --git a/pkgs/development/bower-modules/generic/default.nix b/pkgs/development/bower-modules/generic/default.nix
new file mode 100644
index 00000000000..ba15b588160
--- /dev/null
+++ b/pkgs/development/bower-modules/generic/default.nix
@@ -0,0 +1,49 @@
+{ pkgs }:
+
+{ buildInputs ? [], generated, ... } @ attrs:
+
+let
+  # Fetches the bower packages. `generated` should be the result of a
+  # `bower2nix` command.
+  bowerPackages = import generated {
+    inherit (pkgs) buildEnv fetchbower;
+  };
+
+in pkgs.stdenv.mkDerivation (
+  attrs
+  //
+  {
+    name = "bower_components-" + attrs.name;
+
+    inherit bowerPackages;
+
+    builder = builtins.toFile "builder.sh" ''
+      source $stdenv/setup
+
+      # The project's bower.json is required
+      cp $src/bower.json .
+
+      # Dereference symlinks -- bower doesn't like them
+      cp  --recursive --reflink=auto       \
+          --dereference --no-preserve=mode \
+          $bowerPackages bc
+
+      # Bower install in offline mode -- links together the fetched
+      # bower packages.
+      HOME=$PWD bower \
+          --config.storage.packages=bc/packages \
+          --config.storage.registry=bc/registry \
+          --offline install
+
+      # Sets up a single bower_components directory within
+      # the output derivation.
+      mkdir -p $out
+      mv bower_components $out
+    '';
+
+    buildInputs = buildInputs ++ [
+      pkgs.git
+      pkgs.nodePackages.bower
+    ];
+  }
+)
diff --git a/pkgs/development/compilers/llvm/3.5/clang.nix b/pkgs/development/compilers/llvm/3.5/clang.nix
index 42ca4ba70e4..d3ce8a4f9ff 100644
--- a/pkgs/development/compilers/llvm/3.5/clang.nix
+++ b/pkgs/development/compilers/llvm/3.5/clang.nix
@@ -50,5 +50,6 @@ in stdenv.mkDerivation {
     homepage    = http://llvm.org/;
     license     = stdenv.lib.licenses.bsd3;
     platforms   = stdenv.lib.platforms.all;
+    broken      = true;
   };
 }
diff --git a/pkgs/development/compilers/llvm/3.8/clang/default.nix b/pkgs/development/compilers/llvm/3.8/clang/default.nix
new file mode 100644
index 00000000000..047f87c92a9
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/clang/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetch, cmake, libxml2, libedit, llvm, version, clang-tools-extra_src, python }:
+
+let
+  gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
+in stdenv.mkDerivation {
+  name = "clang-${version}";
+
+  unpackPhase = ''
+    unpackFile ${fetch "cfe" "1ybcac8hlr9vl3wg8s4v6cp0c0qgqnwprsv85lihbkq3vqv94504"}
+    mv cfe-${version}.src clang
+    sourceRoot=$PWD/clang
+    unpackFile ${clang-tools-extra_src}
+    mv clang-tools-extra-* $sourceRoot/tools/extra
+  '';
+
+  buildInputs = [ cmake libedit libxml2 llvm python ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DCMAKE_CXX_FLAGS=-std=c++11"
+  ] ++
+  # Maybe with compiler-rt this won't be needed?
+  (stdenv.lib.optional stdenv.isLinux "-DGCC_INSTALL_PREFIX=${gcc}") ++
+  (stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include");
+
+  patches = [ ./purity.patch ];
+
+  postPatch = ''
+    sed -i -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/Tools.cpp
+    sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp
+  '';
+
+  # Clang expects to find LLVMgold in its own prefix
+  # Clang expects to find sanitizer libraries in its own prefix
+  postInstall = ''
+    ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+    ln -sv ${llvm}/lib/clang/${version}/lib $out/lib/clang/${version}/
+    ln -sv $out/bin/clang $out/bin/cpp
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    isClang = true;
+  } // stdenv.lib.optionalAttrs stdenv.isLinux {
+    inherit gcc;
+  };
+
+  meta = {
+    description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
+    homepage    = http://llvm.org/;
+    license     = stdenv.lib.licenses.bsd3;
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/3.8/clang/purity.patch b/pkgs/development/compilers/llvm/3.8/clang/purity.patch
new file mode 100644
index 00000000000..2d1c68d865e
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/clang/purity.patch
@@ -0,0 +1,17 @@
+--- a/lib/Driver/Tools.cpp	2016-02-12 15:51:41.000000000 -0700
++++ b/lib/Driver/Tools.cpp	2016-03-08 15:39:06.790111122 -0700
+@@ -8833,15 +8833,6 @@
+     CmdArgs.push_back("-shared");
+   }
+ 
+-  if (Arch == llvm::Triple::arm || Arch == llvm::Triple::armeb ||
+-      Arch == llvm::Triple::thumb || Arch == llvm::Triple::thumbeb ||
+-      (!Args.hasArg(options::OPT_static) &&
+-       !Args.hasArg(options::OPT_shared))) {
+-    CmdArgs.push_back("-dynamic-linker");
+-    CmdArgs.push_back(Args.MakeArgString(
+-        D.DyldPrefix + getLinuxDynamicLinker(Args, ToolChain)));
+-  }
+-
+   CmdArgs.push_back("-o");
+   CmdArgs.push_back(Output.getFilename());
diff --git a/pkgs/development/compilers/llvm/3.8/default.nix b/pkgs/development/compilers/llvm/3.8/default.nix
new file mode 100644
index 00000000000..a2a702a617e
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/default.nix
@@ -0,0 +1,35 @@
+{ newScope, stdenv, isl, fetchurl, overrideCC, wrapCC }:
+let
+  callPackage = newScope (self // { inherit stdenv isl version fetch; });
+
+  version = "3.8.0";
+
+  fetch = fetch_v version;
+  fetch_v = ver: name: sha256: fetchurl {
+    url = "http://llvm.org/releases/${ver}/${name}-${ver}.src.tar.xz";
+    inherit sha256;
+  };
+
+  compiler-rt_src = fetch "compiler-rt" "1c2nkp9563873ffz22qmhc0wakgj428pch8rmhym8agjamz3ily8";
+  clang-tools-extra_src = fetch "clang-tools-extra" "1i0yrgj8qrzjjswraz0i55lg92ljpqhvjr619d268vka208aigdg";
+
+  self = {
+    llvm = callPackage ./llvm.nix {
+      inherit compiler-rt_src stdenv;
+    };
+
+    clang-unwrapped = callPackage ./clang {
+      inherit clang-tools-extra_src stdenv;
+    };
+
+    clang = wrapCC self.clang-unwrapped;
+
+    stdenv = overrideCC stdenv self.clang;
+
+    lldb = callPackage ./lldb.nix {};
+
+    libcxx = callPackage ./libc++ {};
+
+    libcxxabi = callPackage ./libc++abi.nix {};
+  };
+in self
diff --git a/pkgs/development/compilers/llvm/3.8/libc++/darwin.patch b/pkgs/development/compilers/llvm/3.8/libc++/darwin.patch
new file mode 100644
index 00000000000..bf83f169cfc
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/libc++/darwin.patch
@@ -0,0 +1,30 @@
+diff -ru -x '*~' libcxx-3.4.2.src-orig/lib/CMakeLists.txt libcxx-3.4.2.src/lib/CMakeLists.txt
+--- libcxx-3.4.2.src-orig/lib/CMakeLists.txt	2013-11-15 18:18:57.000000000 +0100
++++ libcxx-3.4.2.src/lib/CMakeLists.txt	2014-09-24 14:04:01.000000000 +0200
+@@ -56,7 +56,7 @@
+       "-compatibility_version 1"
+       "-current_version ${LIBCXX_VERSION}"
+       "-install_name /usr/lib/libc++.1.dylib"
+-      "-Wl,-reexport_library,/usr/lib/libc++abi.dylib"
++      "-Wl,-reexport_library,${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib"
+       "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
+       "/usr/lib/libSystem.B.dylib")
+   else()
+@@ -64,14 +64,14 @@
+       list(FIND ${CMAKE_OSX_ARCHITECTURES} "armv7" OSX_HAS_ARMV7)
+       if (OSX_HAS_ARMV7)
+         set(OSX_RE_EXPORT_LINE
+-          "${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib"
++          "${CMAKE_OSX_SYSROOT}${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib"
+           "-Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++sjlj-abi.exp")
+       else()
+         set(OSX_RE_EXPORT_LINE
+-          "-Wl,-reexport_library,${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib")
++          "-Wl,-reexport_library,${CMAKE_OSX_SYSROOT}${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib")
+       endif()
+     else()
+-      set (OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
++      set (OSX_RE_EXPORT_LINE "${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
+     endif()
+ 
+     list(APPEND link_flags
diff --git a/pkgs/development/compilers/llvm/3.8/libc++/default.nix b/pkgs/development/compilers/llvm/3.8/libc++/default.nix
new file mode 100644
index 00000000000..00bfb3518b1
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/libc++/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetch, cmake, libcxxabi, fixDarwinDylibNames, version }:
+
+stdenv.mkDerivation rec {
+  name = "libc++-${version}";
+
+  src = fetch "libcxx" "0i7iyzk024krda5spfpfi8jksh83yp3bxqkal0xp76ffi11bszrm";
+
+  postUnpack = ''
+    unpackFile ${libcxxabi.src}
+  '';
+
+  preConfigure = ''
+    # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
+    cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$NIX_BUILD_TOP/libcxxabi-${version}.src/include")
+  '';
+
+  patches = [ ./darwin.patch ];
+
+  buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  cmakeFlags =
+    [ "-DCMAKE_BUILD_TYPE=Release"
+      "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
+      "-DLIBCXX_LIBCPPABI_VERSION=2"
+      "-DLIBCXX_CXX_ABI=libcxxabi"
+    ];
+
+  enableParallelBuilding = true;
+
+  linkCxxAbi = stdenv.isLinux;
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    homepage = http://libcxx.llvm.org/;
+    description = "A new implementation of the C++ standard library, targeting C++11";
+    license = "BSD";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/3.8/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/3.8/libc++/setup-hook.sh
new file mode 100644
index 00000000000..9022fced6ec
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/libc++/setup-hook.sh
@@ -0,0 +1,3 @@
+linkCxxAbi="@linkCxxAbi@"
+export NIX_CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
+export NIX_CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/3.8/libc++abi.nix b/pkgs/development/compilers/llvm/3.8/libc++abi.nix
new file mode 100644
index 00000000000..ec0be51a11c
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/libc++abi.nix
@@ -0,0 +1,47 @@
+{ stdenv, cmake, fetch, libcxx, libunwind, llvm, version }:
+
+stdenv.mkDerivation {
+  name = "libc++abi-${version}";
+
+  src = fetch "libcxxabi" "0ambfcmr2nh88hx000xb7yjm9lsqjjz49w5mlf6dlxzmj3nslzx4";
+
+  buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
+
+  postUnpack = ''
+    unpackFile ${libcxx.src}
+    unpackFile ${llvm.src}
+    export NIX_CFLAGS_COMPILE+=" -I$PWD/include"
+    export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_INCLUDES=$PWD/$(ls -d libcxx-*)/include"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    export TRIPLE=x86_64-apple-darwin
+  '';
+
+  installPhase = if stdenv.isDarwin
+    then ''
+      for file in lib/*.dylib; do
+        # this should be done in CMake, but having trouble figuring out
+        # the magic combination of necessary CMake variables
+        # if you fancy a try, take a look at
+        # http://www.cmake.org/Wiki/CMake_RPATH_handling
+        install_name_tool -id $out/$file $file
+      done
+      make install
+      install -d 755 $out/include
+      install -m 644 ../include/*.h $out/include
+    ''
+    else ''
+      install -d -m 755 $out/include $out/lib
+      install -m 644 lib/libc++abi.so.1.0 $out/lib
+      install -m 644 ../include/cxxabi.h $out/include
+      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
+      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
+    '';
+
+  meta = {
+    homepage = http://libcxxabi.llvm.org/;
+    description = "A new implementation of low level support for a standard C++ library";
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [ vlstill ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/3.8/lldb.nix b/pkgs/development/compilers/llvm/3.8/lldb.nix
new file mode 100644
index 00000000000..fe69130e71a
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/lldb.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetch
+, cmake
+, zlib
+, ncurses
+, swig
+, which
+, libedit
+, llvm
+, clang-unwrapped
+, python
+, version
+}:
+
+stdenv.mkDerivation {
+  name = "lldb-${version}";
+
+  src = fetch "lldb" "008fdbyza13ym3v0xpans4z4azw4y16hcbgrrnc4rx2mxwaw62ws";
+
+  patchPhase = ''
+    sed -i 's|/usr/bin/env||' \
+      scripts/Python/finish-swig-Python-LLDB.sh \
+      scripts/Python/build-swig-Python.sh
+  '';
+
+  buildInputs = [ cmake python which swig ncurses zlib libedit ];
+
+  preConfigure = ''
+    export CXXFLAGS="-pthread"
+    export LDFLAGS="-ldl"
+  '';
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DLLDB_PATH_TO_LLVM_BUILD=${llvm}"
+    "-DLLDB_PATH_TO_CLANG_BUILD=${clang-unwrapped}"
+    "-DPYTHON_VERSION_MAJOR=2"
+    "-DPYTHON_VERSION_MINOR=7"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A next-generation high-performance debugger";
+    homepage    = http://llvm.org/;
+    license     = stdenv.lib.licenses.bsd3;
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/3.8/llvm.nix b/pkgs/development/compilers/llvm/3.8/llvm.nix
new file mode 100644
index 00000000000..db73999719d
--- /dev/null
+++ b/pkgs/development/compilers/llvm/3.8/llvm.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, fetch
+, perl
+, groff
+, cmake
+, python
+, libffi
+, binutils
+, libxml2
+, valgrind
+, ncurses
+, version
+, zlib
+, compiler-rt_src
+, libcxxabi
+, debugVersion ? false
+, enableSharedLibraries ? !stdenv.isDarwin
+}:
+
+let
+  src = fetch "llvm" "0ikfq0gxac8xpvxj23l4hk8f12ydx48fljgrz1gl9xp0ks704nsm";
+in stdenv.mkDerivation rec {
+  name = "llvm-${version}";
+
+  unpackPhase = ''
+    unpackFile ${src}
+    mv llvm-${version}.src llvm
+    sourceRoot=$PWD/llvm
+    unpackFile ${compiler-rt_src}
+    mv compiler-rt-* $sourceRoot/projects/compiler-rt
+  '';
+
+  buildInputs = [ perl groff cmake libxml2 python libffi ]
+    ++ stdenv.lib.optional stdenv.isDarwin libcxxabi;
+
+  propagatedBuildInputs = [ ncurses zlib ];
+
+  # hacky fix: created binaries need to be run before installation
+  preBuild = ''
+    mkdir -p $out/
+    ln -sv $PWD/lib $out
+  '';
+
+  cmakeFlags = with stdenv; [
+    "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
+    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
+    "-DLLVM_BUILD_TESTS=ON"
+    "-DLLVM_ENABLE_FFI=ON"
+    "-DLLVM_ENABLE_RTTI=ON"
+  ] ++ stdenv.lib.optional enableSharedLibraries [
+    "-DLLVM_LINK_LLVM_DYLIB=ON"
+  ] ++ stdenv.lib.optional (!isDarwin)
+    "-DLLVM_BINUTILS_INCDIR=${binutils}/include"
+    ++ stdenv.lib.optionals ( isDarwin) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DCAN_TARGET_i386=false"
+  ];
+
+  postBuild = ''
+    rm -fR $out
+
+    paxmark m bin/{lli,llvm-rtdyld}
+
+    paxmark m unittests/ExecutionEngine/JIT/JITTests
+    paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests
+    paxmark m unittests/Support/SupportTests
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru.src = src;
+
+  meta = {
+    description = "Collection of modular and reusable compiler and toolchain technologies";
+    homepage    = http://llvm.org/;
+    license     = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 raskin viric ];
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/oraclejdk/jdk8-linux.nix b/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
index 48a586ffb0f..554e3fc9838 100644
--- a/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
@@ -1,9 +1,9 @@
 import ./jdk-linux-base.nix {
   productVersion = "8";
-  patchVersion = "73";
+  patchVersion = "77";
   downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
-  sha256_i686 = "1bi3yj2ds9w13p2lzvmxffk5gax8syi3bw52w8pam1jr3fmzgwgl";
-  sha256_x86_64 = "1rp3nbnhkncyr48m0nn3pf5fr4bp3lzm0ki4gca7mn7rzag19a26";
+  sha256_i686 = "14hyniai5l9qpg0pbnxa4rhyhk90qgihszfkn8h3vziqhmvrp27j";
+  sha256_x86_64 = "0hyzvvj4bf0r4jda8fv3k06d9bf37nji37qbq067mcjp5abc0zd4";
   jceName = "jce_policy-8.zip";
   jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
   sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
diff --git a/pkgs/development/compilers/oraclejdk/jdk8psu-linux.nix b/pkgs/development/compilers/oraclejdk/jdk8psu-linux.nix
index 0f6c4ad668a..554e3fc9838 100644
--- a/pkgs/development/compilers/oraclejdk/jdk8psu-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk8psu-linux.nix
@@ -1,9 +1,9 @@
 import ./jdk-linux-base.nix {
   productVersion = "8";
-  patchVersion = "74";
+  patchVersion = "77";
   downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
-  sha256_i686 = "1vc3g89fbrmznb10bhh5gs143hcjg4wsy4j4hwnr1djfj83y8188";
-  sha256_x86_64 = "1pfx7il1h42w3kigscdvm9vfy616lmsp1d2cqvplim3nyxwmvz8b";
+  sha256_i686 = "14hyniai5l9qpg0pbnxa4rhyhk90qgihszfkn8h3vziqhmvrp27j";
+  sha256_x86_64 = "0hyzvvj4bf0r4jda8fv3k06d9bf37nji37qbq067mcjp5abc0zd4";
   jceName = "jce_policy-8.zip";
   jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
   sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index b5b4db7e729..20a338dd2cb 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -957,4 +957,9 @@ self: super: {
   # We get lots of strange compiler errors during the test suite run.
   jsaddle = dontCheck super.jsaddle;
 
+  # https://github.com/gwern/mueval/issues/14
+  mueval = super.mueval.override {
+    hint = self.hint_0_4_3;
+  };
+
 }
diff --git a/pkgs/development/libraries/ignition-math/default.nix b/pkgs/development/libraries/ignition-math/default.nix
new file mode 100644
index 00000000000..f71def55583
--- /dev/null
+++ b/pkgs/development/libraries/ignition-math/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, cmake }:
+
+let
+  version = "2.3.0";
+in
+stdenv.mkDerivation rec {
+  name = "ign-math2-${version}";
+
+  src = fetchurl {
+    url = "http://gazebosim.org/distributions/ign-math/releases/ignition-math2-${version}.tar.bz2";
+    sha256 = "1a2jgq6allcxg62y0r61iv4hgxkfr1whpsxy75hg7k85s7da8dpl";
+  };
+
+  buildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    homepage = http://ignitionrobotics.org/libraries/math;
+    description = "Math library by Ingition Robotics, created for the Gazebo project";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ pxc ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/ignition-transport/0.9.0.nix b/pkgs/development/libraries/ignition-transport/0.9.0.nix
new file mode 100644
index 00000000000..3452c72839f
--- /dev/null
+++ b/pkgs/development/libraries/ignition-transport/0.9.0.nix
@@ -0,0 +1,9 @@
+{ stdenv, fetchurl, callPackage, ... } @ args :
+
+callPackage ./generic.nix (args // rec {
+  version = "0.9.0";
+  src = fetchurl {
+    url = "http://gazebosim.org/distributions/ign-transport/releases/ignition-transport-${version}.tar.bz2";
+    sha256 = "15a8lkxri8q2gc7h0pj1dg2kivhy46v8d3mlxpjy90l77788bw1z";
+  };
+})
diff --git a/pkgs/development/libraries/ignition-transport/1.0.1.nix b/pkgs/development/libraries/ignition-transport/1.0.1.nix
new file mode 100644
index 00000000000..2f9605a3a72
--- /dev/null
+++ b/pkgs/development/libraries/ignition-transport/1.0.1.nix
@@ -0,0 +1,9 @@
+{ stdenv, fetchurl, callPackage, ... } @ args :
+
+callPackage ./generic.nix (args // rec {
+  version = "1.0.1";
+  src = fetchurl {
+    url = "http://gazebosim.org/distributions/ign-transport/releases/ignition-transport-${version}.tar.bz2";
+    sha256 = "08qyd70vlymms1g4smblags9f057zsn62xxrx29rhd4wy8prnjsq";
+  };
+})
diff --git a/pkgs/development/libraries/ignition-transport/generic.nix b/pkgs/development/libraries/ignition-transport/generic.nix
new file mode 100644
index 00000000000..0b10c2cdb52
--- /dev/null
+++ b/pkgs/development/libraries/ignition-transport/generic.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, cmake, pkgconfig, utillinux,
+  protobuf, zeromq, cppzmq,
+  version, src    # parametrize version and src so we can easily have pkgs
+                  # for different versions
+  , ...
+}:
+
+stdenv.mkDerivation rec {
+  name = "ign-transport-${version}";
+  inherit src;
+
+  buildInputs = [ cmake protobuf zeromq pkgconfig
+    utillinux # we need utillinux/e2fsprogs uuid/uuid.h
+  ];
+
+  propagatedBuildInputs = [ cppzmq ];
+
+  meta = with stdenv.lib; {
+    homepage = http://ignitionrobotics.org/libraries/math;
+    description = "Math library by Ingition Robotics, created for the Gazebo project";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ pxc ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libressl/2.3.nix b/pkgs/development/libraries/libressl/2.3.nix
index a87e599cbc0..962bb547263 100644
--- a/pkgs/development/libraries/libressl/2.3.nix
+++ b/pkgs/development/libraries/libressl/2.3.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libressl-${version}";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchurl {
     url    = "mirror://openbsd/LibreSSL/${name}.tar.gz";
-    sha256 = "0sm9cjjqvj581sfd4sh0i467sh8p89nq9b8ck2qn3war92p5zx40";
+    sha256 = "1a8anm8nsfyxds03csk738m2cmzjbsb867my1rz5ij3w31k32wvn";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix
index 51782449a25..89d694cc497 100644
--- a/pkgs/development/libraries/ogre/default.nix
+++ b/pkgs/development/libraries/ogre/default.nix
@@ -8,11 +8,11 @@
 , nvidia_cg_toolkit }:
 
 stdenv.mkDerivation {
-  name = "ogre-1.9.0";
+  name = "ogre-1.9-hg-20160322";
 
   src = fetchurl {
-     url = "https://bitbucket.org/sinbad/ogre/get/v1-9-0.tar.gz";
-     sha256 = "0p8gyn293qn3iyiy1smfmjd9zpnjb8h2zgvff8778fwh0ylbmlpa";
+     url = "https://bitbucket.org/sinbad/ogre/get/v1-9.tar.gz";
+     sha256 = "0w3argjy1biaxwa3c80zxxgll67wjp8czd83p87awlcvwzdk5mz9";
   };
 
   cmakeFlags = [ "-DOGRE_INSTALL_SAMPLES=yes" ]
diff --git a/pkgs/development/libraries/sdformat/3.nix b/pkgs/development/libraries/sdformat/3.nix
new file mode 100644
index 00000000000..116f248b3b4
--- /dev/null
+++ b/pkgs/development/libraries/sdformat/3.nix
@@ -0,0 +1,7 @@
+{ stdenv, fetchurl, callPackage, ... } @ args:
+
+callPackage ./default.nix (args // rec {
+  version = "3.7.0";
+  srchash-sha256 = "07kn8bgvj9mwwinsp2cbmz11z7zw2lgnj61mi1gi1pjg7q9in98q";
+})
+
diff --git a/pkgs/development/libraries/sdformat/default.nix b/pkgs/development/libraries/sdformat/default.nix
new file mode 100644
index 00000000000..0245b47815e
--- /dev/null
+++ b/pkgs/development/libraries/sdformat/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, cmake, boost, ruby_1_9, ignition, tinyxml
+  , name ? "sdformat-${version}"
+  , version ? "4.0.0" # versions known to work with this expression include 3.7.0
+  , srchash-sha256 ? "b0f94bb40b0d83e35ff250a7916fdfd6df5cdc1e60c47bc53dd2da5e2378163e"
+  , ...
+  }:
+
+let 
+  ruby = ruby_1_9;
+in
+stdenv.mkDerivation rec {
+  src = fetchurl { 
+      url = "http://osrf-distributions.s3.amazonaws.com/sdformat/releases/${name}.tar.bz2";
+      sha256 = srchash-sha256;
+  };
+
+  inherit name;
+
+  enableParallelBuilding = true;
+  buildInputs = [
+    cmake boost ruby ignition.math2 tinyxml
+  ];
+}
diff --git a/pkgs/development/libraries/tinyxml-2/default.nix b/pkgs/development/libraries/tinyxml-2/default.nix
new file mode 100644
index 00000000000..29fa2739f24
--- /dev/null
+++ b/pkgs/development/libraries/tinyxml-2/default.nix
@@ -0,0 +1,11 @@
+{ stdenv, fetchurl, cmake }:
+let version = "3.0.0";
+in stdenv.mkDerivation rec {
+  name = "tinyxml-2-${version}";
+  src = fetchurl {
+    url = "https://github.com/leethomason/tinyxml2/archive/${version}.tar.gz";
+    sha256 = "0ispg7ngkry8vhzzawbq42y8gkj53xjipkycw0rkhh487ras32hj";
+  };
+
+  nativeBuildInputs = [ cmake ];
+}
diff --git a/pkgs/development/libraries/v8/generic.nix b/pkgs/development/libraries/v8/generic.nix
index 51637fe6dbd..349b35549b6 100644
--- a/pkgs/development/libraries/v8/generic.nix
+++ b/pkgs/development/libraries/v8/generic.nix
@@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ which ];
   buildInputs = [ readline python icu ];
 
+  NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
+
   buildFlags = [
     "LINK=g++"
     "-C out"
@@ -48,6 +50,10 @@ stdenv.mkDerivation rec {
     "BUILDTYPE=Release"
   ];
 
+  postPatch = stdenv.lib.optionalString (!stdenv.cc.isClang) ''
+    sed -i build/standalone.gyp -e 's,-Wno-format-pedantic,,g'
+  '';
+
   enableParallelBuilding = true;
 
   installPhase = ''
diff --git a/pkgs/development/python-modules/bootstrapped-pip/default.nix b/pkgs/development/python-modules/bootstrapped-pip/default.nix
index c53a2fd2477..dfa5f86944a 100644
--- a/pkgs/development/python-modules/bootstrapped-pip/default.nix
+++ b/pkgs/development/python-modules/bootstrapped-pip/default.nix
@@ -15,11 +15,11 @@ let
   };
 in stdenv.mkDerivation rec {
   name = "python-${python.version}-bootstrapped-pip-${version}";
-  version = "8.0.2";
+  version = "8.1.1";
 
   src = fetchurl {
     url = "https://pypi.python.org/packages/py2.py3/p/pip/pip-${version}-py2.py3-none-any.whl";
-    sha256 = "249a6f3194be8c2e8cb4d4be3f6fd16a9f1e3336218caffa8e7419e3816f9988";
+    sha256 = "0p62v87lm595kwmxrnqxc81dr7h6maaxj1y28b00bf9ag11c7fa4";
   };
 
   unpackPhase = ''
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index c843f0d2eef..0b16723866b 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -20,6 +20,9 @@ stdenv.mkDerivation rec {
   cmakeFlags =
     stdenv.lib.optional (qt4 != null) "-Dbuild_wizard=YES";
 
+  NIX_CFLAGS_COMPILE =
+    stdenv.lib.optional stdenv.isDarwin "-mmacosx-version-min=10.9";
+
   enableParallelBuilding = true;
 
   meta = {
diff --git a/pkgs/games/steam/runtime-wrapped.nix b/pkgs/games/steam/runtime-wrapped.nix
index c1c79f8ac43..a8037be8f83 100644
--- a/pkgs/games/steam/runtime-wrapped.nix
+++ b/pkgs/games/steam/runtime-wrapped.nix
@@ -85,6 +85,7 @@ let
     libpulseaudio
     alsaLib
     openalSoft
+    libva
   ] ++ lib.optional newStdcpp gcc.cc;
 
   ourRuntime = if runtimeOnly then []
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index f3dd32386bc..e7e81f4877f 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -210,7 +210,7 @@ with stdenv.lib;
   OCFS2_DEBUG_MASKLOG? n
   BTRFS_FS_POSIX_ACL y
   UBIFS_FS_ADVANCED_COMPR? y
-  ${optionalString (versionAtLeast version "4.0") ''
+  ${optionalString (versionAtLeast version "4.0" && versionOlder version "4.6") ''
     NFSD_PNFS y
   ''}
   NFSD_V2_ACL y
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 57a825ec0a0..e58230712a9 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.5-rc7";
-  modDirVersion = "4.5.0-rc7";
-  extraMeta.branch = "4.5";
+  version = "4.6-rc1";
+  modDirVersion = "4.6.0-rc1";
+  extraMeta.branch = "4.6";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/testing/linux-${version}.tar.xz";
-    sha256 = "0z43s7ccikmqigv4insjvizs3bkx2lgjvzsz5rmmpcga28dz44kq";
+    sha256 = "1y73sjd7i48d1c8x52z59imx8g8d00wy67r5666cvwqrq8d407h0";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/servers/osrm-backend/4.5.0-openmp.patch b/pkgs/servers/osrm-backend/4.5.0-openmp.patch
deleted file mode 100644
index f4010131f60..00000000000
--- a/pkgs/servers/osrm-backend/4.5.0-openmp.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b6a40f9..87ca301 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -261,9 +261,10 @@ target_link_libraries(OSRM ${STXXL_LIBRARY})
- target_link_libraries(osrm-extract ${STXXL_LIBRARY})
- target_link_libraries(osrm-prepare ${STXXL_LIBRARY})
- 
--if(MINGW)
--  # STXXL needs OpenMP library
--  target_link_libraries(osrm-extract gomp)
-+find_package(OpenMP)
-+if (OPENMP_FOUND)
-+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
-+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
- endif()
- 
- find_package( OSMPBF REQUIRED )
diff --git a/pkgs/servers/osrm-backend/default.nix b/pkgs/servers/osrm-backend/default.nix
index 9c1dd23b39f..23c3b237c57 100644
--- a/pkgs/servers/osrm-backend/default.nix
+++ b/pkgs/servers/osrm-backend/default.nix
@@ -1,17 +1,17 @@
 {stdenv, fetchFromGitHub, cmake, luabind, libosmpbf, stxxl, tbb, boost, expat, protobuf, bzip2, zlib, substituteAll}:
 
 stdenv.mkDerivation rec {
-  name = "osrm-backend-4.5.0";
+  name = "osrm-backend-${version}";
+  version = "4.9.1";
 
   src = fetchFromGitHub {
-    rev = "v4.5.0";
+    rev = "v${version}";
     owner  = "Project-OSRM";
     repo   = "osrm-backend";
-    sha256 = "19a8d1llvsrysyk1q48dpmh75qcbibfjlszndrysk11yh62hdvsz";
+    sha256 = "1r4dwniwxgfppnb9asdh98w5qxqwkjhp9gc5fabmck0gk73cwkcc";
   };
 
   patches = [
-    ./4.5.0-openmp.patch
     ./4.5.0-gcc-binutils.patch
     (substituteAll {
       src = ./4.5.0-default-profile-path.template.patch;
diff --git a/pkgs/tools/cd-dvd/dvdisaster/default.nix b/pkgs/tools/cd-dvd/dvdisaster/default.nix
index 7cb1bf7506d..08da13b569a 100644
--- a/pkgs/tools/cd-dvd/dvdisaster/default.nix
+++ b/pkgs/tools/cd-dvd/dvdisaster/default.nix
@@ -33,7 +33,8 @@ stdenv.mkDerivation rec {
   ] ++ stdenv.lib.optional (builtins.elem stdenv.system
       stdenv.lib.platforms.x86_64) "--with-sse2=yes";
 
-  enableParallelBuilding = true;
+  # fatal error: inlined-icons.h: No such file or directory
+  enableParallelBuilding = false;
 
   doCheck = true;
   checkPhase = ''
diff --git a/pkgs/tools/networking/lsh/default.nix b/pkgs/tools/networking/lsh/default.nix
index 77d268f3a47..5d788af1682 100644
--- a/pkgs/tools/networking/lsh/default.nix
+++ b/pkgs/tools/networking/lsh/default.nix
@@ -29,6 +29,8 @@ stdenv.mkDerivation rec {
     export lsh_cv_sys_unix98_ptys=yes
   '';
 
+  NIX_CFLAGS_COMPILE = "-std=gnu90";
+
   buildInputs = [ gperf guile gmp zlib liboop readline gnum4 pam ];
 
   meta = {
diff --git a/pkgs/tools/networking/ppp/default.nix b/pkgs/tools/networking/ppp/default.nix
index 43349178211..dd07e53ee6f 100644
--- a/pkgs/tools/networking/ppp/default.nix
+++ b/pkgs/tools/networking/ppp/default.nix
@@ -22,6 +22,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libpcap ];
 
+  installPhase = ''
+    mkdir -p $out/bin
+    make install
+    install -D -m 755 scripts/{pon,poff,plog} $out/bin
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/bin/{pon,poff,plog} --replace "/usr/sbin" "$out/bin"
+  '';
+
   meta = {
     homepage = https://ppp.samba.org/;
     description = "Point-to-point implementation for Linux and Solaris";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9c458eb9130..752f2307995 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -171,7 +171,7 @@ in
   };
 
   fetchbower = callPackage ../build-support/fetchbower {
-    inherit (nodePackages) fetch-bower;
+    inherit (nodePackages) bower2nix;
   };
 
   fetchbzr = callPackage ../build-support/fetchbzr { };
@@ -1572,6 +1572,28 @@ in
 
   gawp = goPackages.gawp.bin // { outputs = [ "bin" ]; };
 
+  gazeboSimulator = recurseIntoAttrs {
+    sdformat = gazeboSimulator.sdformat4;
+
+    sdformat3 = callPackage ../development/libraries/sdformat/3.nix { };
+
+    sdformat4 = callPackage ../development/libraries/sdformat { };
+
+    gazebo6 = callPackage ../applications/science/robotics/gazebo/6.nix { };
+
+    gazebo6-headless = callPackage ../applications/science/robotics/gazebo/6.nix { withHeadless = true;  };
+
+    gazebo7 = callPackage ../applications/science/robotics/gazebo { };
+  
+    gazebo7-headless = callPackage ../applications/science/robotics/gazebo { withHeadless = true; };
+
+  };
+  
+  # at present, Gazebo 7.0.0 does not match Gazebo 6.5.1 for compatibility
+  gazebo = gazeboSimulator.gazebo6;
+
+  gazebo-headless = gazeboSimulator.gazebo6-headless;
+
   gbdfed = callPackage ../tools/misc/gbdfed {
     gtk = gtk2;
   };
@@ -1906,6 +1928,20 @@ in
 
   ifuse = callPackage ../tools/filesystems/ifuse/default.nix { };
 
+  ignition = recurseIntoAttrs { 
+
+    math = callPackage ../development/libraries/ignition-math { };
+  
+    math2 = ignition.math;
+  
+    transport0 = callPackage ../development/libraries/ignition-transport/0.9.0.nix { };
+
+    transport1 = callPackage ../development/libraries/ignition-transport/1.0.1.nix { };
+
+    transport = ignition.transport0;
+  };
+
+
   ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
     inherit (haskellPackages) ihaskell ghcWithPackages;
 
@@ -3921,6 +3957,7 @@ in
 
   clang = llvmPackages.clang;
 
+  clang_38 = llvmPackages_38.clang;
   clang_37 = llvmPackages_37.clang;
   clang_36 = llvmPackages_36.clang;
   clang_35 = wrapCC llvmPackages_35.clang;
@@ -4418,6 +4455,7 @@ in
 
   llvm = llvmPackages.llvm;
 
+  llvm_38 = llvmPackages_38.llvm;
   llvm_37 = llvmPackages_37.llvm;
   llvm_36 = llvmPackages_36.llvm;
   llvm_35 = llvmPackages_35.llvm;
@@ -4445,6 +4483,10 @@ in
     inherit (stdenvAdapters) overrideCC;
   };
 
+  llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 {
+    inherit (stdenvAdapters) overrideCC;
+  };
+
   manticore = callPackage ../development/compilers/manticore { };
 
   mentorToolchains = recurseIntoAttrs (
@@ -8782,6 +8824,8 @@ in
 
   tinyxml2 = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
 
+  tinyxml-2 = callPackage ../development/libraries/tinyxml-2 { };
+
   tk = tk-8_6;
 
   tk-8_6 = callPackage ../development/libraries/tk/8.6.nix { };
@@ -9150,6 +9194,10 @@ in
 
   yuicompressor = callPackage ../development/tools/yuicompressor { };
 
+  ### DEVELOPMENT / BOWER MODULES (JAVASCRIPT)
+
+  buildBowerComponents = callPackage ../development/bower-modules/generic { };
+
   ### DEVELOPMENT / GO MODULES
 
   go14Packages = callPackage ./go-packages.nix {
@@ -9606,8 +9654,6 @@ in
 
   osrm-backend = callPackage ../servers/osrm-backend { };
 
-  osrm-backend_luajit = callPackage ../servers/osrm-backend { luabind = luabind_luajit; };
-
   p910nd = callPackage ../servers/p910nd { };
 
   petidomo = callPackage ../servers/mail/petidomo { };
@@ -11480,7 +11526,11 @@ in
 
   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
 
-  avidemux = callPackage ../applications/video/avidemux { };
+  avidemux_unwrapped = callPackage ../applications/video/avidemux { };
+
+  avidemux = callPackage ../applications/video/avidemux/wrapper.nix {
+    avidemux = avidemux_unwrapped;
+  };
 
   avogadro = callPackage ../applications/science/chemistry/avogadro {
     eigen = eigen2;
@@ -13202,6 +13252,8 @@ in
 
   openbrf = callPackage ../applications/misc/openbrf { };
 
+  opencpn = callPackage ../applications/misc/opencpn { };
+
   openimageio = callPackage ../applications/graphics/openimageio { };
 
   openjump = callPackage ../applications/misc/openjump { };
@@ -15277,6 +15329,8 @@ in
       themes = [];  # extra themes, etc.
     };
 
+    yakuake = callPackage ../applications/misc/yakuake/3.0.nix {};
+
   };
 
   kde5 =
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index 12d0aff2616..7cd7245edd8 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -4477,7 +4477,24 @@
     os = [ ];
     cpu = [ ];
   };
-  "bower" = self.by-version."bower"."1.4.1";
+  by-version."bower"."1.7.7" = self.buildNodePackage {
+    name = "bower-1.7.7";
+    version = "1.7.7";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bower/-/bower-1.7.7.tgz";
+      name = "bower-1.7.7.tgz";
+      sha1 = "2fd7ff3ebdcba5a8ffcd84c397c8fdfe9f825f92";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "bower" = self.by-version."bower"."1.7.7";
   by-spec."bower".">=1.2.8 <2" =
     self.by-version."bower"."1.4.1";
   by-spec."bower-config"."^0.6.1" =
@@ -4633,35 +4650,30 @@
     cpu = [ ];
   };
   by-spec."bower2nix"."*" =
-    self.by-version."bower2nix"."2.1.0";
-  by-version."bower2nix"."2.1.0" = self.buildNodePackage {
-    name = "bower2nix-2.1.0";
-    version = "2.1.0";
-    bin = true;
+    self.by-version."bower2nix"."3.0.1";
+  by-version."bower2nix"."3.0.1" = self.buildNodePackage {
+    name = "bower2nix-3.0.1";
+    version = "3.0.1";
     src = fetchurl {
-      url = "http://registry.npmjs.org/bower2nix/-/bower2nix-2.1.0.tgz";
-      name = "bower2nix-2.1.0.tgz";
-      sha1 = "213f507a729b20a1c3cb48f995a034f9c05f53e6";
+      url = "http://registry.npmjs.org/bower2nix/-/bower2nix-3.0.1.tgz";
+      name = "bower2nix-3.0.1.tgz";
+      sha256 = "0jfrz2mvnx3fp2p76dcnw18c1vajladbqcrzapf93jh8h6715msi";
     };
     deps = {
-      "temp-0.6.0" = self.by-version."temp"."0.6.0";
-      "fs.extra-1.3.2" = self.by-version."fs.extra"."1.3.2";
-      "bower-json-0.4.0" = self.by-version."bower-json"."0.4.0";
+      "argparse-1.0.4" = self.by-version."argparse"."1.0.4";
+      "bower-1.7.7" = self.by-version."bower"."1.7.7";
       "bower-endpoint-parser-0.2.1" = self.by-version."bower-endpoint-parser"."0.2.1";
+      "bower-json-0.6.0" = self.by-version."bower-json"."0.6.0";
       "bower-logger-0.2.1" = self.by-version."bower-logger"."0.2.1";
-      "bower-1.4.1" = self.by-version."bower"."1.4.1";
-      "argparse-0.1.15" = self.by-version."argparse"."0.1.15";
-      "clone-0.1.11" = self.by-version."clone"."0.1.11";
-      "semver-2.3.2" = self.by-version."semver"."2.3.2";
-      "fetch-bower-2.0.0" = self.by-version."fetch-bower"."2.0.0";
+      "fs-extra-0.26.7" = self.by-version."fs-extra"."0.26.7";
+      "lodash-4.2.1" = self.by-version."lodash"."4.2.1";
+      "promised-temp-0.1.0" = self.by-version."promised-temp"."0.1.0";
+      "semver-5.1.0" = self.by-version."semver"."5.1.0";
+      "temp-0.8.3" = self.by-version."temp"."0.8.3";
+      "glob-6.0.4" = self.by-version."glob"."6.0.4";
     };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
   };
-  "bower2nix" = self.by-version."bower2nix"."2.1.0";
+  "bower2nix" = self.by-version."bower2nix"."3.0.1";
   by-spec."bplist-parser"."0.0.6" =
     self.by-version."bplist-parser"."0.0.6";
   by-version."bplist-parser"."0.0.6" = self.buildNodePackage {
@@ -14795,32 +14807,6 @@
     os = [ ];
     cpu = [ ];
   };
-  by-spec."fetch-bower"."*" =
-    self.by-version."fetch-bower"."2.0.0";
-  by-version."fetch-bower"."2.0.0" = self.buildNodePackage {
-    name = "fetch-bower-2.0.0";
-    version = "2.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "http://registry.npmjs.org/fetch-bower/-/fetch-bower-2.0.0.tgz";
-      name = "fetch-bower-2.0.0.tgz";
-      sha1 = "c027feb75a512001d1287bbfb3ffaafba67eb92f";
-    };
-    deps = {
-      "bower-endpoint-parser-0.2.1" = self.by-version."bower-endpoint-parser"."0.2.1";
-      "bower-logger-0.2.1" = self.by-version."bower-logger"."0.2.1";
-      "bower-1.4.1" = self.by-version."bower"."1.4.1";
-      "glob-3.2.11" = self.by-version."glob"."3.2.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "fetch-bower" = self.by-version."fetch-bower"."2.0.0";
-  by-spec."fetch-bower".">=2 <3" =
-    self.by-version."fetch-bower"."2.0.0";
   by-spec."fields"."~0.1.22" =
     self.by-version."fields"."0.1.23";
   by-version."fields"."0.1.23" = self.buildNodePackage {
@@ -41997,8 +41983,6 @@
     os = [ ];
     cpu = [ ];
   };
-  by-spec."typescript"."*" =
-    self.by-version."typescript"."1.5.0-alpha";
   by-version."typescript"."1.5.0-alpha" = self.buildNodePackage {
     name = "typescript-1.5.0-alpha";
     version = "1.5.0-alpha";
@@ -42016,7 +42000,28 @@
     os = [ ];
     cpu = [ ];
   };
-  "typescript" = self.by-version."typescript"."1.5.0-alpha";
+  by-version."typescript"."1.8.9" = self.buildNodePackage {
+    name = "typescript-1.8.9";
+    version = "1.8.9";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/typescript/-/typescript-1.8.9.tgz";
+      name = "typescript-1.8.9.tgz";
+      sha1 = "b3b3a74059fd31cbd3ecad95d62465939e7ed5fa";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."typescript"."*" =
+    self.by-version."typescript"."1.8.9";
+  by-spec."typescript"."~1.8.9" =
+    self.by-version."typescript"."1.8.9";
+  "typescript" = self.by-version."typescript"."1.8.9";
   by-spec."typewiselite"."~1.0.0" =
     self.by-version."typewiselite"."1.0.0";
   by-version."typewiselite"."1.0.0" = self.buildNodePackage {
@@ -45517,4 +45522,3917 @@
     os = [ ];
     cpu = [ ];
   };
+  by-spec."ansi-regex"."^2.0.0" =
+    self.by-version."ansi-regex"."2.0.0";
+  by-version."ansi-regex"."2.0.0" = self.buildNodePackage {
+    name = "ansi-regex-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz";
+      name = "ansi-regex-2.0.0.tgz";
+      sha1 = "c5061b6e0ef8a81775e50f5d66151bf6bf371107";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ansi-styles"."^2.1.0" =
+    self.by-version."ansi-styles"."2.2.0";
+  by-version."ansi-styles"."2.2.0" = self.buildNodePackage {
+    name = "ansi-styles-2.2.0";
+    version = "2.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz";
+      name = "ansi-styles-2.2.0.tgz";
+      sha1 = "c59191936e6ed1c1315a4b6b6b97f3acfbfa68b0";
+    };
+    deps = {
+      "color-convert-1.0.0" = self.by-version."color-convert"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."argparse"."1.0.4" =
+    self.by-version."argparse"."1.0.4";
+  by-version."argparse"."1.0.4" = self.buildNodePackage {
+    name = "argparse-1.0.4";
+    version = "1.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/argparse/-/argparse-1.0.4.tgz";
+      name = "argparse-1.0.4.tgz";
+      sha1 = "2b12247b933001971addcbfe4e67d20fd395bbf4";
+    };
+    deps = {
+      "lodash-4.6.1" = self.by-version."lodash"."4.6.1";
+      "sprintf-js-1.0.3" = self.by-version."sprintf-js"."1.0.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "argparse" = self.by-version."argparse"."1.0.4";
+  by-spec."argparse"."^1.0.2" =
+    self.by-version."argparse"."1.0.7";
+  by-version."argparse"."1.0.7" = self.buildNodePackage {
+    name = "argparse-1.0.7";
+    version = "1.0.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/argparse/-/argparse-1.0.7.tgz";
+      name = "argparse-1.0.7.tgz";
+      sha1 = "c289506480557810f14a8bc62d7a06f63ed7f951";
+    };
+    deps = {
+      "sprintf-js-1.0.3" = self.by-version."sprintf-js"."1.0.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."array-find-index"."^1.0.0" =
+    self.by-version."array-find-index"."1.0.1";
+  by-version."array-find-index"."1.0.1" = self.buildNodePackage {
+    name = "array-find-index-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/array-find-index/-/array-find-index-1.0.1.tgz";
+      name = "array-find-index-1.0.1.tgz";
+      sha1 = "0bc25ddac941ec8a496ae258fd4ac188003ef3af";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."asn1".">=0.2.3 <0.3.0" =
+    self.by-version."asn1"."0.2.3";
+  by-version."asn1"."0.2.3" = self.buildNodePackage {
+    name = "asn1-0.2.3";
+    version = "0.2.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz";
+      name = "asn1-0.2.3.tgz";
+      sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."assert-plus".">=0.2.0 <0.3.0" =
+    self.by-version."assert-plus"."0.2.0";
+  by-version."assert-plus"."0.2.0" = self.buildNodePackage {
+    name = "assert-plus-0.2.0";
+    version = "0.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz";
+      name = "assert-plus-0.2.0.tgz";
+      sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."assert-plus"."^0.2.0" =
+    self.by-version."assert-plus"."0.2.0";
+  by-spec."assert-plus"."^1.0.0" =
+    self.by-version."assert-plus"."1.0.0";
+  by-version."assert-plus"."1.0.0" = self.buildNodePackage {
+    name = "assert-plus-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+      name = "assert-plus-1.0.0.tgz";
+      sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."assertion-error"."^1.0.0" =
+    self.by-version."assertion-error"."1.0.1";
+  by-version."assertion-error"."1.0.1" = self.buildNodePackage {
+    name = "assertion-error-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/assertion-error/-/assertion-error-1.0.1.tgz";
+      name = "assertion-error-1.0.1.tgz";
+      sha1 = "35aaeec33097f11f42399ecadf33faccd27f5c4c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."async"."^1.5.2" =
+    self.by-version."async"."1.5.2";
+  by-version."async"."1.5.2" = self.buildNodePackage {
+    name = "async-1.5.2";
+    version = "1.5.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/async/-/async-1.5.2.tgz";
+      name = "async-1.5.2.tgz";
+      sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."aws-sign2"."~0.6.0" =
+    self.by-version."aws-sign2"."0.6.0";
+  by-version."aws-sign2"."0.6.0" = self.buildNodePackage {
+    name = "aws-sign2-0.6.0";
+    version = "0.6.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz";
+      name = "aws-sign2-0.6.0.tgz";
+      sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."aws4"."^1.2.1" =
+    self.by-version."aws4"."1.3.2";
+  by-version."aws4"."1.3.2" = self.buildNodePackage {
+    name = "aws4-1.3.2";
+    version = "1.3.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz";
+      name = "aws4-1.3.2.tgz";
+      sha1 = "d39e0bee412ced0e8ed94a23e314f313a95b9fd1";
+    };
+    deps = {
+      "lru-cache-4.0.1" = self.by-version."lru-cache"."4.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."balanced-match"."^0.3.0" =
+    self.by-version."balanced-match"."0.3.0";
+  by-version."balanced-match"."0.3.0" = self.buildNodePackage {
+    name = "balanced-match-0.3.0";
+    version = "0.3.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz";
+      name = "balanced-match-0.3.0.tgz";
+      sha1 = "a91cdd1ebef1a86659e70ff4def01625fc2d6756";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."bl"."^0.9.3" =
+    self.by-version."bl"."0.9.5";
+  by-version."bl"."0.9.5" = self.buildNodePackage {
+    name = "bl-0.9.5";
+    version = "0.9.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bl/-/bl-0.9.5.tgz";
+      name = "bl-0.9.5.tgz";
+      sha1 = "c06b797af085ea00bc527afc8efcf11de2232054";
+    };
+    deps = {
+      "readable-stream-1.0.33" = self.by-version."readable-stream"."1.0.33";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."bl"."~1.0.0" =
+    self.by-version."bl"."1.0.3";
+  by-version."bl"."1.0.3" = self.buildNodePackage {
+    name = "bl-1.0.3";
+    version = "1.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bl/-/bl-1.0.3.tgz";
+      name = "bl-1.0.3.tgz";
+      sha1 = "fc5421a28fd4226036c3b3891a66a25bc64d226e";
+    };
+    deps = {
+      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."bluebird"."~1.2.4" =
+    self.by-version."bluebird"."1.2.4";
+  by-version."bluebird"."1.2.4" = self.buildNodePackage {
+    name = "bluebird-1.2.4";
+    version = "1.2.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bluebird/-/bluebird-1.2.4.tgz";
+      name = "bluebird-1.2.4.tgz";
+      sha1 = "5985ec23cb6ff1a5834cc6447b3c5ef010fd321a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."boom"."2.10.1" = self.buildNodePackage {
+    name = "boom-2.10.1";
+    version = "2.10.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/boom/-/boom-2.10.1.tgz";
+      name = "boom-2.10.1.tgz";
+      sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
+    };
+    deps = {
+      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "bower-endpoint-parser" = self.by-version."bower-endpoint-parser"."0.2.1";
+  by-spec."bower-json"."0.6.0" =
+    self.by-version."bower-json"."0.6.0";
+  by-version."bower-json"."0.6.0" = self.buildNodePackage {
+    name = "bower-json-0.6.0";
+    version = "0.6.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bower-json/-/bower-json-0.6.0.tgz";
+      name = "bower-json-0.6.0.tgz";
+      sha1 = "326579b23c33e4ea828e4763c55cd81fd7650329";
+    };
+    deps = {
+      "deep-extend-0.4.1" = self.by-version."deep-extend"."0.4.1";
+      "ext-name-3.0.0" = self.by-version."ext-name"."3.0.0";
+      "graceful-fs-3.0.8" = self.by-version."graceful-fs"."3.0.8";
+      "intersect-1.0.1" = self.by-version."intersect"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "bower-json" = self.by-version."bower-json"."0.6.0";
+  "bower-logger" = self.by-version."bower-logger"."0.2.1";
+  by-version."brace-expansion"."1.1.3" = self.buildNodePackage {
+    name = "brace-expansion-1.1.3";
+    version = "1.1.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz";
+      name = "brace-expansion-1.1.3.tgz";
+      sha1 = "46bff50115d47fc9ab89854abb87d98078a10991";
+    };
+    deps = {
+      "balanced-match-0.3.0" = self.by-version."balanced-match"."0.3.0";
+      "concat-map-0.0.1" = self.by-version."concat-map"."0.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."builtin-modules"."^1.0.0" =
+    self.by-version."builtin-modules"."1.1.1";
+  by-version."builtin-modules"."1.1.1" = self.buildNodePackage {
+    name = "builtin-modules-1.1.1";
+    version = "1.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz";
+      name = "builtin-modules-1.1.1.tgz";
+      sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."camelcase"."^2.0.0" =
+    self.by-version."camelcase"."2.1.1";
+  by-version."camelcase"."2.1.1" = self.buildNodePackage {
+    name = "camelcase-2.1.1";
+    version = "2.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz";
+      name = "camelcase-2.1.1.tgz";
+      sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."camelcase-keys"."^2.0.0" =
+    self.by-version."camelcase-keys"."2.1.0";
+  by-version."camelcase-keys"."2.1.0" = self.buildNodePackage {
+    name = "camelcase-keys-2.1.0";
+    version = "2.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz";
+      name = "camelcase-keys-2.1.0.tgz";
+      sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
+    };
+    deps = {
+      "camelcase-2.1.1" = self.by-version."camelcase"."2.1.1";
+      "map-obj-1.0.1" = self.by-version."map-obj"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."caseless"."~0.11.0" =
+    self.by-version."caseless"."0.11.0";
+  by-version."caseless"."0.11.0" = self.buildNodePackage {
+    name = "caseless-0.11.0";
+    version = "0.11.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz";
+      name = "caseless-0.11.0.tgz";
+      sha1 = "715b96ea9841593cc33067923f5ec60ebda4f7d7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."chalk"."1.1.1" = self.buildNodePackage {
+    name = "chalk-1.1.1";
+    version = "1.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz";
+      name = "chalk-1.1.1.tgz";
+      sha1 = "509afb67066e7499f7eb3535c77445772ae2d019";
+    };
+    deps = {
+      "ansi-styles-2.2.0" = self.by-version."ansi-styles"."2.2.0";
+      "escape-string-regexp-1.0.5" = self.by-version."escape-string-regexp"."1.0.5";
+      "has-ansi-2.0.0" = self.by-version."has-ansi"."2.0.0";
+      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
+      "supports-color-2.0.0" = self.by-version."supports-color"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."chalk"."^1.1.1" =
+    self.by-version."chalk"."1.1.1";
+  by-spec."color-convert"."^1.0.0" =
+    self.by-version."color-convert"."1.0.0";
+  by-version."color-convert"."1.0.0" = self.buildNodePackage {
+    name = "color-convert-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz";
+      name = "color-convert-1.0.0.tgz";
+      sha1 = "3c26fcd885d272d45beacf6e41baba75c89a8579";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."colors"."^1.1.0" =
+    self.by-version."colors"."1.1.2";
+  by-version."colors"."1.1.2" = self.buildNodePackage {
+    name = "colors-1.1.2";
+    version = "1.1.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz";
+      name = "colors-1.1.2.tgz";
+      sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."combined-stream"."^1.0.5" =
+    self.by-version."combined-stream"."1.0.5";
+  by-version."combined-stream"."1.0.5" = self.buildNodePackage {
+    name = "combined-stream-1.0.5";
+    version = "1.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz";
+      name = "combined-stream-1.0.5.tgz";
+      sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009";
+    };
+    deps = {
+      "delayed-stream-1.0.0" = self.by-version."delayed-stream"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."combined-stream"."~1.0.5" =
+    self.by-version."combined-stream"."1.0.5";
+  by-spec."commander"."^2.9.0" =
+    self.by-version."commander"."2.9.0";
+  by-version."commander"."2.9.0" = self.buildNodePackage {
+    name = "commander-2.9.0";
+    version = "2.9.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/commander/-/commander-2.9.0.tgz";
+      name = "commander-2.9.0.tgz";
+      sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+    };
+    deps = {
+      "graceful-readlink-1.0.1" = self.by-version."graceful-readlink"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."core-util-is"."1.0.2" = self.buildNodePackage {
+    name = "core-util-is-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+      name = "core-util-is-1.0.2.tgz";
+      sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."cryptiles"."2.0.5" = self.buildNodePackage {
+    name = "cryptiles-2.0.5";
+    version = "2.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz";
+      name = "cryptiles-2.0.5.tgz";
+      sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
+    };
+    deps = {
+      "boom-2.10.1" = self.by-version."boom"."2.10.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."dashdash".">=1.10.1 <2.0.0" =
+    self.by-version."dashdash"."1.13.0";
+  by-version."dashdash"."1.13.0" = self.buildNodePackage {
+    name = "dashdash-1.13.0";
+    version = "1.13.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz";
+      name = "dashdash-1.13.0.tgz";
+      sha1 = "a5aae6fd9d8e156624eb0dd9259eb12ba245385a";
+    };
+    deps = {
+      "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."debug"."2.2.0" = self.buildNodePackage {
+    name = "debug-2.2.0";
+    version = "2.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz";
+      name = "debug-2.2.0.tgz";
+      sha1 = "f87057e995b1a1f6ae6a4960664137bc56f039da";
+    };
+    deps = {
+      "ms-0.7.1" = self.by-version."ms"."0.7.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."decamelize"."^1.1.2" =
+    self.by-version."decamelize"."1.2.0";
+  by-version."decamelize"."1.2.0" = self.buildNodePackage {
+    name = "decamelize-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+      name = "decamelize-1.2.0.tgz";
+      sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."deep-extend"."^0.4.0" =
+    self.by-version."deep-extend"."0.4.1";
+  by-version."deep-extend"."0.4.1" = self.buildNodePackage {
+    name = "deep-extend-0.4.1";
+    version = "0.4.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz";
+      name = "deep-extend-0.4.1.tgz";
+      sha1 = "efe4113d08085f4e6f9687759810f807469e2253";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."deep-extend"."~0.4.0" =
+    self.by-version."deep-extend"."0.4.1";
+  by-spec."deep-freeze"."0.0.1" =
+    self.by-version."deep-freeze"."0.0.1";
+  by-version."deep-freeze"."0.0.1" = self.buildNodePackage {
+    name = "deep-freeze-0.0.1";
+    version = "0.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz";
+      name = "deep-freeze-0.0.1.tgz";
+      sha1 = "3a0b0005de18672819dfd38cd31f91179c893e84";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."definition-header"."~0.1.0" =
+    self.by-version."definition-header"."0.1.0";
+  by-version."definition-header"."0.1.0" = self.buildNodePackage {
+    name = "definition-header-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/definition-header/-/definition-header-0.1.0.tgz";
+      name = "definition-header-0.1.0.tgz";
+      sha1 = "01445ff4ca663114cbf2c5a1131f13bb544eb5dd";
+    };
+    deps = {
+      "joi-4.9.0" = self.by-version."joi"."4.9.0";
+      "joi-assert-0.0.3" = self.by-version."joi-assert"."0.0.3";
+      "parsimmon-0.5.1" = self.by-version."parsimmon"."0.5.1";
+      "xregexp-2.0.0" = self.by-version."xregexp"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."delayed-stream"."~1.0.0" =
+    self.by-version."delayed-stream"."1.0.0";
+  by-version."delayed-stream"."1.0.0" = self.buildNodePackage {
+    name = "delayed-stream-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+      name = "delayed-stream-1.0.0.tgz";
+      sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."detect-indent"."^0.2.0" =
+    self.by-version."detect-indent"."0.2.0";
+  by-version."detect-indent"."0.2.0" = self.buildNodePackage {
+    name = "detect-indent-0.2.0";
+    version = "0.2.0";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/detect-indent/-/detect-indent-0.2.0.tgz";
+      name = "detect-indent-0.2.0.tgz";
+      sha1 = "042914498979ac2d9f3c73e4ff3e6877d3bc92b6";
+    };
+    deps = {
+      "get-stdin-0.1.0" = self.by-version."get-stdin"."0.1.0";
+      "minimist-0.1.0" = self.by-version."minimist"."0.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."diff"."^1.4.0" =
+    self.by-version."diff"."1.4.0";
+  by-version."diff"."1.4.0" = self.buildNodePackage {
+    name = "diff-1.4.0";
+    version = "1.4.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/diff/-/diff-1.4.0.tgz";
+      name = "diff-1.4.0.tgz";
+      sha1 = "7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."duplexify"."3.4.3" = self.buildNodePackage {
+    name = "duplexify-3.4.3";
+    version = "3.4.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/duplexify/-/duplexify-3.4.3.tgz";
+      name = "duplexify-3.4.3.tgz";
+      sha1 = "af6a7b10d928b095f8ad854d072bb90998db850d";
+    };
+    deps = {
+      "end-of-stream-1.0.0" = self.by-version."end-of-stream"."1.0.0";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ecc-jsbn".">=0.0.1 <1.0.0" =
+    self.by-version."ecc-jsbn"."0.1.1";
+  by-version."ecc-jsbn"."0.1.1" = self.buildNodePackage {
+    name = "ecc-jsbn-0.1.1";
+    version = "0.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz";
+      name = "ecc-jsbn-0.1.1.tgz";
+      sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505";
+    };
+    deps = {
+      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ends-with"."^0.2.0" =
+    self.by-version."ends-with"."0.2.0";
+  by-version."ends-with"."0.2.0" = self.buildNodePackage {
+    name = "ends-with-0.2.0";
+    version = "0.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ends-with/-/ends-with-0.2.0.tgz";
+      name = "ends-with-0.2.0.tgz";
+      sha1 = "2f9da98d57a50cfda4571ce4339000500f4e6b8a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."error-ex"."^1.2.0" =
+    self.by-version."error-ex"."1.3.0";
+  by-version."error-ex"."1.3.0" = self.buildNodePackage {
+    name = "error-ex-1.3.0";
+    version = "1.3.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz";
+      name = "error-ex-1.3.0.tgz";
+      sha1 = "e67b43f3e82c96ea3a584ffee0b9fc3325d802d9";
+    };
+    deps = {
+      "is-arrayish-0.2.1" = self.by-version."is-arrayish"."0.2.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."escape-string-regexp"."1.0.5" = self.buildNodePackage {
+    name = "escape-string-regexp-1.0.5";
+    version = "1.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+      name = "escape-string-regexp-1.0.5.tgz";
+      sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."esprima"."^2.6.0" =
+    self.by-version."esprima"."2.7.2";
+  by-version."esprima"."2.7.2" = self.buildNodePackage {
+    name = "esprima-2.7.2";
+    version = "2.7.2";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz";
+      name = "esprima-2.7.2.tgz";
+      sha1 = "f43be543609984eae44c933ac63352a6af35f339";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."event-stream"."~3.1.5" =
+    self.by-version."event-stream"."3.1.7";
+  by-version."event-stream"."3.1.7" = self.buildNodePackage {
+    name = "event-stream-3.1.7";
+    version = "3.1.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/event-stream/-/event-stream-3.1.7.tgz";
+      name = "event-stream-3.1.7.tgz";
+      sha1 = "b4c540012d0fe1498420f3d8946008db6393c37a";
+    };
+    deps = {
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+      "duplexer-0.1.1" = self.by-version."duplexer"."0.1.1";
+      "from-0.1.3" = self.by-version."from"."0.1.3";
+      "map-stream-0.1.0" = self.by-version."map-stream"."0.1.0";
+      "pause-stream-0.0.11" = self.by-version."pause-stream"."0.0.11";
+      "split-0.2.10" = self.by-version."split"."0.2.10";
+      "stream-combiner-0.0.4" = self.by-version."stream-combiner"."0.0.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ext-list"."^2.0.0" =
+    self.by-version."ext-list"."2.2.0";
+  by-version."ext-list"."2.2.0" = self.buildNodePackage {
+    name = "ext-list-2.2.0";
+    version = "2.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ext-list/-/ext-list-2.2.0.tgz";
+      name = "ext-list-2.2.0.tgz";
+      sha1 = "a3e6fdeab978bca7a320c7e786f537083fc30055";
+    };
+    deps = {
+      "got-2.9.2" = self.by-version."got"."2.9.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ext-name"."^3.0.0" =
+    self.by-version."ext-name"."3.0.0";
+  by-version."ext-name"."3.0.0" = self.buildNodePackage {
+    name = "ext-name-3.0.0";
+    version = "3.0.0";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ext-name/-/ext-name-3.0.0.tgz";
+      name = "ext-name-3.0.0.tgz";
+      sha1 = "07e4418737cb1f513c32c6ea48d8b8c8e0471abb";
+    };
+    deps = {
+      "ends-with-0.2.0" = self.by-version."ends-with"."0.2.0";
+      "ext-list-2.2.0" = self.by-version."ext-list"."2.2.0";
+      "meow-3.7.0" = self.by-version."meow"."3.7.0";
+      "sort-keys-length-1.0.1" = self.by-version."sort-keys-length"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."extend"."~3.0.0" =
+    self.by-version."extend"."3.0.0";
+  by-version."extend"."3.0.0" = self.buildNodePackage {
+    name = "extend-3.0.0";
+    version = "3.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/extend/-/extend-3.0.0.tgz";
+      name = "extend-3.0.0.tgz";
+      sha1 = "5a474353b9f3353ddd8176dfd37b91c83a46f1d4";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."extsprintf"."1.0.3" =
+    self.by-version."extsprintf"."1.0.3";
+  by-version."extsprintf"."1.0.3" = self.buildNodePackage {
+    name = "extsprintf-1.0.3";
+    version = "1.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/extsprintf/-/extsprintf-1.0.3.tgz";
+      name = "extsprintf-1.0.3.tgz";
+      sha1 = "3310ca8ced5205e5234766b0b2744ea5b2788d67";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."find-up"."^1.0.0" =
+    self.by-version."find-up"."1.1.2";
+  by-version."find-up"."1.1.2" = self.buildNodePackage {
+    name = "find-up-1.1.2";
+    version = "1.1.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz";
+      name = "find-up-1.1.2.tgz";
+      sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+    };
+    deps = {
+      "path-exists-2.1.0" = self.by-version."path-exists"."2.1.0";
+      "pinkie-promise-2.0.0" = self.by-version."pinkie-promise"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."foreach"."^2.0.4" =
+    self.by-version."foreach"."2.0.5";
+  by-version."foreach"."2.0.5" = self.buildNodePackage {
+    name = "foreach-2.0.5";
+    version = "2.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz";
+      name = "foreach-2.0.5.tgz";
+      sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."form-data"."~1.0.0-rc3" =
+    self.by-version."form-data"."1.0.0-rc4";
+  by-version."form-data"."1.0.0-rc4" = self.buildNodePackage {
+    name = "form-data-1.0.0-rc4";
+    version = "1.0.0-rc4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz";
+      name = "form-data-1.0.0-rc4.tgz";
+      sha1 = "05ac6bc22227b43e4461f488161554699d4f8b5e";
+    };
+    deps = {
+      "async-1.5.2" = self.by-version."async"."1.5.2";
+      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
+      "mime-types-2.1.10" = self.by-version."mime-types"."2.1.10";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."from"."~0" =
+    self.by-version."from"."0.1.3";
+  by-version."from"."0.1.3" = self.buildNodePackage {
+    name = "from-0.1.3";
+    version = "0.1.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/from/-/from-0.1.3.tgz";
+      name = "from-0.1.3.tgz";
+      sha1 = "ef63ac2062ac32acf7862e0d40b44b896f22f3bc";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."fs-extra"."~0.26.5" =
+    self.by-version."fs-extra"."0.26.7";
+  by-version."fs-extra"."0.26.7" = self.buildNodePackage {
+    name = "fs-extra-0.26.7";
+    version = "0.26.7";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz";
+      name = "fs-extra-0.26.7.tgz";
+      sha1 = "9ae1fdd94897798edab76d0918cf42d0c3184fa9";
+    };
+    deps = {
+      "graceful-fs-4.1.3" = self.by-version."graceful-fs"."4.1.3";
+      "jsonfile-2.2.3" = self.by-version."jsonfile"."2.2.3";
+      "klaw-1.1.3" = self.by-version."klaw"."1.1.3";
+      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
+      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "fs-extra" = self.by-version."fs-extra"."0.26.7";
+  by-version."generate-object-property"."1.2.0" = self.buildNodePackage {
+    name = "generate-object-property-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz";
+      name = "generate-object-property-1.2.0.tgz";
+      sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
+    };
+    deps = {
+      "is-property-1.0.2" = self.by-version."is-property"."1.0.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."get-stdin"."^0.1.0" =
+    self.by-version."get-stdin"."0.1.0";
+  by-version."get-stdin"."0.1.0" = self.buildNodePackage {
+    name = "get-stdin-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz";
+      name = "get-stdin-0.1.0.tgz";
+      sha1 = "5998af24aafc802d15c82c685657eeb8b10d4a91";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."glob"."6.0.4" =
+    self.by-version."glob"."6.0.4";
+  by-version."glob"."6.0.4" = self.buildNodePackage {
+    name = "glob-6.0.4";
+    version = "6.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/glob/-/glob-6.0.4.tgz";
+      name = "glob-6.0.4.tgz";
+      sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22";
+    };
+    deps = {
+      "inflight-1.0.4" = self.by-version."inflight"."1.0.4";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
+      "once-1.3.3" = self.by-version."once"."1.3.3";
+      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "glob" = self.by-version."glob"."6.0.4";
+  by-spec."glob"."^4.0.6" =
+    self.by-version."glob"."4.5.3";
+  by-spec."glob"."^7.0.0" =
+    self.by-version."glob"."7.0.3";
+  by-version."glob"."7.0.3" = self.buildNodePackage {
+    name = "glob-7.0.3";
+    version = "7.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/glob/-/glob-7.0.3.tgz";
+      name = "glob-7.0.3.tgz";
+      sha1 = "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58";
+    };
+    deps = {
+      "inflight-1.0.4" = self.by-version."inflight"."1.0.4";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
+      "once-1.3.3" = self.by-version."once"."1.3.3";
+      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."got"."^2.7.2" =
+    self.by-version."got"."2.9.2";
+  by-version."got"."2.9.2" = self.buildNodePackage {
+    name = "got-2.9.2";
+    version = "2.9.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/got/-/got-2.9.2.tgz";
+      name = "got-2.9.2.tgz";
+      sha1 = "2e1ee58ea1e8d201e25ae580b96e63c15fefd4ee";
+    };
+    deps = {
+      "duplexify-3.4.3" = self.by-version."duplexify"."3.4.3";
+      "infinity-agent-2.0.3" = self.by-version."infinity-agent"."2.0.3";
+      "is-stream-1.0.1" = self.by-version."is-stream"."1.0.1";
+      "lowercase-keys-1.0.0" = self.by-version."lowercase-keys"."1.0.0";
+      "nested-error-stacks-1.0.2" = self.by-version."nested-error-stacks"."1.0.2";
+      "object-assign-2.1.1" = self.by-version."object-assign"."2.1.1";
+      "prepend-http-1.0.3" = self.by-version."prepend-http"."1.0.3";
+      "read-all-stream-2.2.0" = self.by-version."read-all-stream"."2.2.0";
+      "statuses-1.2.1" = self.by-version."statuses"."1.2.1";
+      "timed-out-2.0.0" = self.by-version."timed-out"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."got"."^3.2.0" =
+    self.by-version."got"."3.3.1";
+  by-version."got"."3.3.1" = self.buildNodePackage {
+    name = "got-3.3.1";
+    version = "3.3.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/got/-/got-3.3.1.tgz";
+      name = "got-3.3.1.tgz";
+      sha1 = "e5d0ed4af55fc3eef4d56007769d98192bcb2eca";
+    };
+    deps = {
+      "duplexify-3.4.3" = self.by-version."duplexify"."3.4.3";
+      "infinity-agent-2.0.3" = self.by-version."infinity-agent"."2.0.3";
+      "is-redirect-1.0.0" = self.by-version."is-redirect"."1.0.0";
+      "is-stream-1.0.1" = self.by-version."is-stream"."1.0.1";
+      "lowercase-keys-1.0.0" = self.by-version."lowercase-keys"."1.0.0";
+      "nested-error-stacks-1.0.2" = self.by-version."nested-error-stacks"."1.0.2";
+      "object-assign-3.0.0" = self.by-version."object-assign"."3.0.0";
+      "prepend-http-1.0.3" = self.by-version."prepend-http"."1.0.3";
+      "read-all-stream-3.1.0" = self.by-version."read-all-stream"."3.1.0";
+      "timed-out-2.0.0" = self.by-version."timed-out"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."graceful-fs"."3.0.8" = self.buildNodePackage {
+    name = "graceful-fs-3.0.8";
+    version = "3.0.8";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz";
+      name = "graceful-fs-3.0.8.tgz";
+      sha1 = "ce813e725fa82f7e6147d51c9a5ca68270551c22";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."graceful-fs"."^4.1.2" =
+    self.by-version."graceful-fs"."4.1.3";
+  by-version."graceful-fs"."4.1.3" = self.buildNodePackage {
+    name = "graceful-fs-4.1.3";
+    version = "4.1.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz";
+      name = "graceful-fs-4.1.3.tgz";
+      sha1 = "92033ce11113c41e2628d61fdfa40bc10dc0155c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."har-validator"."~2.0.6" =
+    self.by-version."har-validator"."2.0.6";
+  by-version."har-validator"."2.0.6" = self.buildNodePackage {
+    name = "har-validator-2.0.6";
+    version = "2.0.6";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz";
+      name = "har-validator-2.0.6.tgz";
+      sha1 = "cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d";
+    };
+    deps = {
+      "chalk-1.1.1" = self.by-version."chalk"."1.1.1";
+      "commander-2.9.0" = self.by-version."commander"."2.9.0";
+      "is-my-json-valid-2.13.1" = self.by-version."is-my-json-valid"."2.13.1";
+      "pinkie-promise-2.0.0" = self.by-version."pinkie-promise"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."has-ansi"."^2.0.0" =
+    self.by-version."has-ansi"."2.0.0";
+  by-version."has-ansi"."2.0.0" = self.buildNodePackage {
+    name = "has-ansi-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+      name = "has-ansi-2.0.0.tgz";
+      sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+    };
+    deps = {
+      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."hawk"."~3.1.0" =
+    self.by-version."hawk"."3.1.3";
+  by-version."hawk"."3.1.3" = self.buildNodePackage {
+    name = "hawk-3.1.3";
+    version = "3.1.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz";
+      name = "hawk-3.1.3.tgz";
+      sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
+    };
+    deps = {
+      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+      "boom-2.10.1" = self.by-version."boom"."2.10.1";
+      "cryptiles-2.0.5" = self.by-version."cryptiles"."2.0.5";
+      "sntp-1.0.9" = self.by-version."sntp"."1.0.9";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."hoek"."2.16.3" = self.buildNodePackage {
+    name = "hoek-2.16.3";
+    version = "2.16.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz";
+      name = "hoek-2.16.3.tgz";
+      sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."hoek"."^2.2.x" =
+    self.by-version."hoek"."2.16.3";
+  by-spec."hosted-git-info"."^2.1.4" =
+    self.by-version."hosted-git-info"."2.1.4";
+  by-version."hosted-git-info"."2.1.4" = self.buildNodePackage {
+    name = "hosted-git-info-2.1.4";
+    version = "2.1.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz";
+      name = "hosted-git-info-2.1.4.tgz";
+      sha1 = "d9e953b26988be88096c46e926494d9604c300f8";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."http-signature"."~1.1.0" =
+    self.by-version."http-signature"."1.1.1";
+  by-version."http-signature"."1.1.1" = self.buildNodePackage {
+    name = "http-signature-1.1.1";
+    version = "1.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz";
+      name = "http-signature-1.1.1.tgz";
+      sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf";
+    };
+    deps = {
+      "assert-plus-0.2.0" = self.by-version."assert-plus"."0.2.0";
+      "jsprim-1.2.2" = self.by-version."jsprim"."1.2.2";
+      "sshpk-1.7.4" = self.by-version."sshpk"."1.7.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."indent-string"."^2.1.0" =
+    self.by-version."indent-string"."2.1.0";
+  by-version."indent-string"."2.1.0" = self.buildNodePackage {
+    name = "indent-string-2.1.0";
+    version = "2.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz";
+      name = "indent-string-2.1.0.tgz";
+      sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
+    };
+    deps = {
+      "repeating-2.0.0" = self.by-version."repeating"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."infinity-agent"."^2.0.0" =
+    self.by-version."infinity-agent"."2.0.3";
+  by-version."infinity-agent"."2.0.3" = self.buildNodePackage {
+    name = "infinity-agent-2.0.3";
+    version = "2.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz";
+      name = "infinity-agent-2.0.3.tgz";
+      sha1 = "45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."ini"."1.3.4" = self.buildNodePackage {
+    name = "ini-1.3.4";
+    version = "1.3.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ini/-/ini-1.3.4.tgz";
+      name = "ini-1.3.4.tgz";
+      sha1 = "0537cb79daf59b59a1a517dff706c86ec039162e";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."intersect"."^1.0.1" =
+    self.by-version."intersect"."1.0.1";
+  by-version."intersect"."1.0.1" = self.buildNodePackage {
+    name = "intersect-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/intersect/-/intersect-1.0.1.tgz";
+      name = "intersect-1.0.1.tgz";
+      sha1 = "332650e10854d8c0ac58c192bdc27a8bf7e7a30c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-arrayish"."^0.2.1" =
+    self.by-version."is-arrayish"."0.2.1";
+  by-version."is-arrayish"."0.2.1" = self.buildNodePackage {
+    name = "is-arrayish-0.2.1";
+    version = "0.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+      name = "is-arrayish-0.2.1.tgz";
+      sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-builtin-module"."^1.0.0" =
+    self.by-version."is-builtin-module"."1.0.0";
+  by-version."is-builtin-module"."1.0.0" = self.buildNodePackage {
+    name = "is-builtin-module-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz";
+      name = "is-builtin-module-1.0.0.tgz";
+      sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe";
+    };
+    deps = {
+      "builtin-modules-1.1.1" = self.by-version."builtin-modules"."1.1.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."is-finite"."1.0.1" = self.buildNodePackage {
+    name = "is-finite-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz";
+      name = "is-finite-1.0.1.tgz";
+      sha1 = "6438603eaebe2793948ff4a4262ec8db3d62597b";
+    };
+    deps = {
+      "number-is-nan-1.0.0" = self.by-version."number-is-nan"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-my-json-valid"."^2.12.4" =
+    self.by-version."is-my-json-valid"."2.13.1";
+  by-version."is-my-json-valid"."2.13.1" = self.buildNodePackage {
+    name = "is-my-json-valid-2.13.1";
+    version = "2.13.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz";
+      name = "is-my-json-valid-2.13.1.tgz";
+      sha1 = "d55778a82feb6b0963ff4be111d5d1684e890707";
+    };
+    deps = {
+      "generate-function-2.0.0" = self.by-version."generate-function"."2.0.0";
+      "generate-object-property-1.2.0" = self.by-version."generate-object-property"."1.2.0";
+      "jsonpointer-2.0.0" = self.by-version."jsonpointer"."2.0.0";
+      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-plain-obj"."^1.0.0" =
+    self.by-version."is-plain-obj"."1.1.0";
+  by-version."is-plain-obj"."1.1.0" = self.buildNodePackage {
+    name = "is-plain-obj-1.1.0";
+    version = "1.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+      name = "is-plain-obj-1.1.0.tgz";
+      sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-redirect"."^1.0.0" =
+    self.by-version."is-redirect"."1.0.0";
+  by-version."is-redirect"."1.0.0" = self.buildNodePackage {
+    name = "is-redirect-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz";
+      name = "is-redirect-1.0.0.tgz";
+      sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."is-typedarray"."~1.0.0" =
+    self.by-version."is-typedarray"."1.0.0";
+  by-version."is-typedarray"."1.0.0" = self.buildNodePackage {
+    name = "is-typedarray-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+      name = "is-typedarray-1.0.0.tgz";
+      sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."is-utf8"."0.2.1" = self.buildNodePackage {
+    name = "is-utf8-0.2.1";
+    version = "0.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz";
+      name = "is-utf8-0.2.1.tgz";
+      sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."isarray"."~1.0.0" =
+    self.by-version."isarray"."1.0.0";
+  by-version."isarray"."1.0.0" = self.buildNodePackage {
+    name = "isarray-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+      name = "isarray-1.0.0.tgz";
+      sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."isemail"."1.x.x" =
+    self.by-version."isemail"."1.2.0";
+  by-version."isemail"."1.2.0" = self.buildNodePackage {
+    name = "isemail-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz";
+      name = "isemail-1.2.0.tgz";
+      sha1 = "be03df8cc3e29de4d2c5df6501263f1fa4595e9a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."isstream"."~0.1.2" =
+    self.by-version."isstream"."0.1.2";
+  by-spec."jodid25519".">=1.0.0 <2.0.0" =
+    self.by-version."jodid25519"."1.0.2";
+  by-version."jodid25519"."1.0.2" = self.buildNodePackage {
+    name = "jodid25519-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz";
+      name = "jodid25519-1.0.2.tgz";
+      sha1 = "06d4912255093419477d425633606e0e90782967";
+    };
+    deps = {
+      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."joi"."^4.0.0" =
+    self.by-version."joi"."4.9.0";
+  by-version."joi"."4.9.0" = self.buildNodePackage {
+    name = "joi-4.9.0";
+    version = "4.9.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/joi/-/joi-4.9.0.tgz";
+      name = "joi-4.9.0.tgz";
+      sha1 = "2355023363089ca01bc1fd079e72949f977baada";
+    };
+    deps = {
+      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+      "topo-1.1.0" = self.by-version."topo"."1.1.0";
+      "isemail-1.2.0" = self.by-version."isemail"."1.2.0";
+      "moment-2.12.0" = self.by-version."moment"."2.12.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."joi"."^4.7.0" =
+    self.by-version."joi"."4.9.0";
+  by-spec."joi-assert"."0.0.3" =
+    self.by-version."joi-assert"."0.0.3";
+  by-version."joi-assert"."0.0.3" = self.buildNodePackage {
+    name = "joi-assert-0.0.3";
+    version = "0.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/joi-assert/-/joi-assert-0.0.3.tgz";
+      name = "joi-assert-0.0.3.tgz";
+      sha1 = "77291376ac3f0b124f433f98db74b4f20f686fd6";
+    };
+    deps = {
+      "assertion-error-1.0.1" = self.by-version."assertion-error"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."js-yaml"."3.5.5" = self.buildNodePackage {
+    name = "js-yaml-3.5.5";
+    version = "3.5.5";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz";
+      name = "js-yaml-3.5.5.tgz";
+      sha1 = "0377c38017cabc7322b0d1fbcd25a491641f2fbe";
+    };
+    deps = {
+      "argparse-1.0.7" = self.by-version."argparse"."1.0.7";
+      "esprima-2.7.2" = self.by-version."esprima"."2.7.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsbn".">=0.1.0 <0.2.0" =
+    self.by-version."jsbn"."0.1.0";
+  by-version."jsbn"."0.1.0" = self.buildNodePackage {
+    name = "jsbn-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz";
+      name = "jsbn-0.1.0.tgz";
+      sha1 = "650987da0dd74f4ebf5a11377a2aa2d273e97dfd";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsbn"."~0.1.0" =
+    self.by-version."jsbn"."0.1.0";
+  by-spec."jsesc"."^0.5.0" =
+    self.by-version."jsesc"."0.5.0";
+  by-version."jsesc"."0.5.0" = self.buildNodePackage {
+    name = "jsesc-0.5.0";
+    version = "0.5.0";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+      name = "jsesc-0.5.0.tgz";
+      sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."json-pointer"."^0.2.2" =
+    self.by-version."json-pointer"."0.2.2";
+  by-version."json-pointer"."0.2.2" = self.buildNodePackage {
+    name = "json-pointer-0.2.2";
+    version = "0.2.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/json-pointer/-/json-pointer-0.2.2.tgz";
+      name = "json-pointer-0.2.2.tgz";
+      sha1 = "1a78285d4650c50b10475f7f59919a99db8a164b";
+    };
+    deps = {
+      "foreach-2.0.5" = self.by-version."foreach"."2.0.5";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."json-stringify-safe"."~5.0.1" =
+    self.by-version."json-stringify-safe"."5.0.1";
+  by-version."json-stringify-safe"."5.0.1" = self.buildNodePackage {
+    name = "json-stringify-safe-5.0.1";
+    version = "5.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+      name = "json-stringify-safe-5.0.1.tgz";
+      sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsonfile"."^2.1.0" =
+    self.by-version."jsonfile"."2.2.3";
+  by-version."jsonfile"."2.2.3" = self.buildNodePackage {
+    name = "jsonfile-2.2.3";
+    version = "2.2.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsonfile/-/jsonfile-2.2.3.tgz";
+      name = "jsonfile-2.2.3.tgz";
+      sha1 = "e252b99a6af901d3ec41f332589c90509a7bc605";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsonpointer"."2.0.0" =
+    self.by-version."jsonpointer"."2.0.0";
+  by-version."jsonpointer"."2.0.0" = self.buildNodePackage {
+    name = "jsonpointer-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz";
+      name = "jsonpointer-2.0.0.tgz";
+      sha1 = "3af1dd20fe85463910d469a385e33017d2a030d9";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."jsprim"."^1.2.2" =
+    self.by-version."jsprim"."1.2.2";
+  by-version."jsprim"."1.2.2" = self.buildNodePackage {
+    name = "jsprim-1.2.2";
+    version = "1.2.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz";
+      name = "jsprim-1.2.2.tgz";
+      sha1 = "f20c906ac92abd58e3b79ac8bc70a48832512da1";
+    };
+    deps = {
+      "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2";
+      "json-schema-0.2.2" = self.by-version."json-schema"."0.2.2";
+      "verror-1.3.6" = self.by-version."verror"."1.3.6";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."klaw"."^1.0.0" =
+    self.by-version."klaw"."1.1.3";
+  by-version."klaw"."1.1.3" = self.buildNodePackage {
+    name = "klaw-1.1.3";
+    version = "1.1.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/klaw/-/klaw-1.1.3.tgz";
+      name = "klaw-1.1.3.tgz";
+      sha1 = "7da33c6b42f9b3dc9cec00d17f13af017fcc2721";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."latest-version"."1.0.1" = self.buildNodePackage {
+    name = "latest-version-1.0.1";
+    version = "1.0.1";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz";
+      name = "latest-version-1.0.1.tgz";
+      sha1 = "72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb";
+    };
+    deps = {
+      "package-json-1.2.0" = self.by-version."package-json"."1.2.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."lazy.js"."~0.3.2" =
+    self.by-version."lazy.js"."0.3.2";
+  by-version."lazy.js"."0.3.2" = self.buildNodePackage {
+    name = "lazy.js-0.3.2";
+    version = "0.3.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/lazy.js/-/lazy.js-0.3.2.tgz";
+      name = "lazy.js-0.3.2.tgz";
+      sha1 = "7cc1107e5f809ae70498f511dd180e1f80b4efa9";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."load-json-file"."^1.0.0" =
+    self.by-version."load-json-file"."1.1.0";
+  by-version."load-json-file"."1.1.0" = self.buildNodePackage {
+    name = "load-json-file-1.1.0";
+    version = "1.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz";
+      name = "load-json-file-1.1.0.tgz";
+      sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
+    };
+    deps = {
+      "graceful-fs-4.1.3" = self.by-version."graceful-fs"."4.1.3";
+      "parse-json-2.2.0" = self.by-version."parse-json"."2.2.0";
+      "pify-2.3.0" = self.by-version."pify"."2.3.0";
+      "pinkie-promise-2.0.0" = self.by-version."pinkie-promise"."2.0.0";
+      "strip-bom-2.0.0" = self.by-version."strip-bom"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."lodash".">= 4.0.0 < 5.0.0" =
+    self.by-version."lodash"."4.6.1";
+  by-version."lodash"."4.6.1" = self.buildNodePackage {
+    name = "lodash-4.6.1";
+    version = "4.6.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/lodash/-/lodash-4.6.1.tgz";
+      name = "lodash-4.6.1.tgz";
+      sha1 = "df00c1164ad236b183cfc3887a5e8d38cc63cbbc";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."lodash"."~4.2.1" =
+    self.by-version."lodash"."4.2.1";
+  by-version."lodash"."4.2.1" = self.buildNodePackage {
+    name = "lodash-4.2.1";
+    version = "4.2.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/lodash/-/lodash-4.2.1.tgz";
+      name = "lodash-4.2.1.tgz";
+      sha1 = "171fdcfbbc30d689c544cd18c0529f56de6c1aa9";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "lodash" = self.by-version."lodash"."4.2.1";
+  by-spec."loud-rejection"."^1.0.0" =
+    self.by-version."loud-rejection"."1.3.0";
+  by-version."loud-rejection"."1.3.0" = self.buildNodePackage {
+    name = "loud-rejection-1.3.0";
+    version = "1.3.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/loud-rejection/-/loud-rejection-1.3.0.tgz";
+      name = "loud-rejection-1.3.0.tgz";
+      sha1 = "f289a392f17d2baacf194d0a673004394433b115";
+    };
+    deps = {
+      "array-find-index-1.0.1" = self.by-version."array-find-index"."1.0.1";
+      "signal-exit-2.1.2" = self.by-version."signal-exit"."2.1.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."lru-cache"."2.7.3" = self.buildNodePackage {
+    name = "lru-cache-2.7.3";
+    version = "2.7.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz";
+      name = "lru-cache-2.7.3.tgz";
+      sha1 = "6d4524e8b955f95d4f5b58851ce21dd72fb4e952";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."lru-cache"."^4.0.0" =
+    self.by-version."lru-cache"."4.0.1";
+  by-version."lru-cache"."4.0.1" = self.buildNodePackage {
+    name = "lru-cache-4.0.1";
+    version = "4.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz";
+      name = "lru-cache-4.0.1.tgz";
+      sha1 = "1343955edaf2e37d9b9e7ee7241e27c4b9fb72be";
+    };
+    deps = {
+      "pseudomap-1.0.2" = self.by-version."pseudomap"."1.0.2";
+      "yallist-2.0.0" = self.by-version."yallist"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."map-obj"."1.0.1" = self.buildNodePackage {
+    name = "map-obj-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz";
+      name = "map-obj-1.0.1.tgz";
+      sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."map-obj"."^1.0.1" =
+    self.by-version."map-obj"."1.0.1";
+  by-spec."map-stream"."~0.1.0" =
+    self.by-version."map-stream"."0.1.0";
+  by-version."map-stream"."0.1.0" = self.buildNodePackage {
+    name = "map-stream-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz";
+      name = "map-stream-0.1.0.tgz";
+      sha1 = "e56aa94c4c8055a16404a0674b78f215f7c8e194";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."meow"."3.7.0" = self.buildNodePackage {
+    name = "meow-3.7.0";
+    version = "3.7.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz";
+      name = "meow-3.7.0.tgz";
+      sha1 = "72cb668b425228290abbfa856892587308a801fb";
+    };
+    deps = {
+      "camelcase-keys-2.1.0" = self.by-version."camelcase-keys"."2.1.0";
+      "decamelize-1.2.0" = self.by-version."decamelize"."1.2.0";
+      "loud-rejection-1.3.0" = self.by-version."loud-rejection"."1.3.0";
+      "map-obj-1.0.1" = self.by-version."map-obj"."1.0.1";
+      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
+      "normalize-package-data-2.3.5" = self.by-version."normalize-package-data"."2.3.5";
+      "object-assign-4.0.1" = self.by-version."object-assign"."4.0.1";
+      "read-pkg-up-1.0.1" = self.by-version."read-pkg-up"."1.0.1";
+      "redent-1.0.0" = self.by-version."redent"."1.0.0";
+      "trim-newlines-1.0.0" = self.by-version."trim-newlines"."1.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime-db"."~1.22.0" =
+    self.by-version."mime-db"."1.22.0";
+  by-version."mime-db"."1.22.0" = self.buildNodePackage {
+    name = "mime-db-1.22.0";
+    version = "1.22.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz";
+      name = "mime-db-1.22.0.tgz";
+      sha1 = "ab23a6372dc9d86d3dc9121bd0ebd38105a1904a";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime-types"."^2.1.10" =
+    self.by-version."mime-types"."2.1.10";
+  by-version."mime-types"."2.1.10" = self.buildNodePackage {
+    name = "mime-types-2.1.10";
+    version = "2.1.10";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz";
+      name = "mime-types-2.1.10.tgz";
+      sha1 = "b93c7cb4362e16d41072a7e54538fb4d43070837";
+    };
+    deps = {
+      "mime-db-1.22.0" = self.by-version."mime-db"."1.22.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."mime-types"."~2.1.7" =
+    self.by-version."mime-types"."2.1.10";
+  by-spec."minichain"."~0.0.1" =
+    self.by-version."minichain"."0.0.1";
+  by-version."minichain"."0.0.1" = self.buildNodePackage {
+    name = "minichain-0.0.1";
+    version = "0.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minichain/-/minichain-0.0.1.tgz";
+      name = "minichain-0.0.1.tgz";
+      sha1 = "0bae49774170d8931401c271bb6ed6d3992a9f52";
+    };
+    deps = {
+      "ministyle-0.1.4" = self.by-version."ministyle"."0.1.4";
+      "miniwrite-0.1.4" = self.by-version."miniwrite"."0.1.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."minimatch"."2 || 3" =
+    self.by-version."minimatch"."3.0.0";
+  by-version."minimatch"."3.0.0" = self.buildNodePackage {
+    name = "minimatch-3.0.0";
+    version = "3.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz";
+      name = "minimatch-3.0.0.tgz";
+      sha1 = "5236157a51e4f004c177fb3c527ff7dd78f0ef83";
+    };
+    deps = {
+      "brace-expansion-1.1.3" = self.by-version."brace-expansion"."1.1.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."minimatch"."2.0.10" = self.buildNodePackage {
+    name = "minimatch-2.0.10";
+    version = "2.0.10";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz";
+      name = "minimatch-2.0.10.tgz";
+      sha1 = "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7";
+    };
+    deps = {
+      "brace-expansion-1.1.3" = self.by-version."brace-expansion"."1.1.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."minimist"."^0.1.0" =
+    self.by-version."minimist"."0.1.0";
+  by-version."minimist"."0.1.0" = self.buildNodePackage {
+    name = "minimist-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz";
+      name = "minimist-0.1.0.tgz";
+      sha1 = "99df657a52574c21c9057497df742790b2b4c0de";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."minimist"."1.2.0" = self.buildNodePackage {
+    name = "minimist-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz";
+      name = "minimist-1.2.0.tgz";
+      sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."minimist"."^1.1.3" =
+    self.by-version."minimist"."1.2.0";
+  by-spec."minimist"."^1.2.0" =
+    self.by-version."minimist"."1.2.0";
+  by-spec."ministyle".">=0.1.2 >=0.1.3 <0.2.0" =
+    self.by-version."ministyle"."0.1.4";
+  by-spec."ministyle"."~0.1.2" =
+    self.by-version."ministyle"."0.1.4";
+  by-spec."minitable"."0.0.4" =
+    self.by-version."minitable"."0.0.4";
+  by-version."minitable"."0.0.4" = self.buildNodePackage {
+    name = "minitable-0.0.4";
+    version = "0.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minitable/-/minitable-0.0.4.tgz";
+      name = "minitable-0.0.4.tgz";
+      sha1 = "8d61cb78fae6f371d8051ce77e8a7831ce3d5396";
+    };
+    deps = {
+      "miniwrite-0.1.4" = self.by-version."miniwrite"."0.1.4";
+      "minichain-0.0.1" = self.by-version."minichain"."0.0.1";
+      "ministyle-0.1.4" = self.by-version."ministyle"."0.1.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."miniwrite"."~0.1.2" =
+    self.by-version."miniwrite"."0.1.4";
+  by-version."mkdirp"."0.5.1" = self.buildNodePackage {
+    name = "mkdirp-0.5.1";
+    version = "0.5.1";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+      name = "mkdirp-0.5.1.tgz";
+      sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+    };
+    deps = {
+      "minimist-0.0.8" = self.by-version."minimist"."0.0.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."moment"."2.x.x" =
+    self.by-version."moment"."2.12.0";
+  by-version."moment"."2.12.0" = self.buildNodePackage {
+    name = "moment-2.12.0";
+    version = "2.12.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/moment/-/moment-2.12.0.tgz";
+      name = "moment-2.12.0.tgz";
+      sha1 = "dc2560d19838d6c0731b1a6afa04675264d360d6";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."ms"."0.7.1" =
+    self.by-version."ms"."0.7.1";
+  by-version."ms"."0.7.1" = self.buildNodePackage {
+    name = "ms-0.7.1";
+    version = "0.7.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz";
+      name = "ms-0.7.1.tgz";
+      sha1 = "9cd13c03adbff25b65effde7ce864ee952017098";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."nested-error-stacks"."1.0.2" = self.buildNodePackage {
+    name = "nested-error-stacks-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz";
+      name = "nested-error-stacks-1.0.2.tgz";
+      sha1 = "19f619591519f096769a5ba9a86e6eeec823c3cf";
+    };
+    deps = {
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."node-uuid"."1.x" =
+    self.by-version."node-uuid"."1.4.7";
+  by-version."node-uuid"."1.4.7" = self.buildNodePackage {
+    name = "node-uuid-1.4.7";
+    version = "1.4.7";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz";
+      name = "node-uuid-1.4.7.tgz";
+      sha1 = "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."node-uuid"."~1.4.7" =
+    self.by-version."node-uuid"."1.4.7";
+  by-spec."normalize-package-data"."^2.3.2" =
+    self.by-version."normalize-package-data"."2.3.5";
+  by-version."normalize-package-data"."2.3.5" = self.buildNodePackage {
+    name = "normalize-package-data-2.3.5";
+    version = "2.3.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz";
+      name = "normalize-package-data-2.3.5.tgz";
+      sha1 = "8d924f142960e1777e7ffe170543631cc7cb02df";
+    };
+    deps = {
+      "hosted-git-info-2.1.4" = self.by-version."hosted-git-info"."2.1.4";
+      "is-builtin-module-1.0.0" = self.by-version."is-builtin-module"."1.0.0";
+      "semver-5.1.0" = self.by-version."semver"."5.1.0";
+      "validate-npm-package-license-3.0.1" = self.by-version."validate-npm-package-license"."3.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."normalize-package-data"."^2.3.4" =
+    self.by-version."normalize-package-data"."2.3.5";
+  by-spec."number-is-nan"."^1.0.0" =
+    self.by-version."number-is-nan"."1.0.0";
+  by-version."number-is-nan"."1.0.0" = self.buildNodePackage {
+    name = "number-is-nan-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz";
+      name = "number-is-nan-1.0.0.tgz";
+      sha1 = "c020f529c5282adfdd233d91d4b181c3d686dc4b";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."oauth-sign"."~0.8.0" =
+    self.by-version."oauth-sign"."0.8.1";
+  by-version."oauth-sign"."0.8.1" = self.buildNodePackage {
+    name = "oauth-sign-0.8.1";
+    version = "0.8.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz";
+      name = "oauth-sign-0.8.1.tgz";
+      sha1 = "182439bdb91378bf7460e75c64ea43e6448def06";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."object-assign"."2.1.1" = self.buildNodePackage {
+    name = "object-assign-2.1.1";
+    version = "2.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz";
+      name = "object-assign-2.1.1.tgz";
+      sha1 = "43c36e5d569ff8e4816c4efa8be02d26967c18aa";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."object-assign"."^3.0.0" =
+    self.by-version."object-assign"."3.0.0";
+  by-version."object-assign"."3.0.0" = self.buildNodePackage {
+    name = "object-assign-3.0.0";
+    version = "3.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz";
+      name = "object-assign-3.0.0.tgz";
+      sha1 = "9bedd5ca0897949bca47e7ff408062d549f587f2";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."object-assign"."^4.0.1" =
+    self.by-version."object-assign"."4.0.1";
+  by-version."object-assign"."4.0.1" = self.buildNodePackage {
+    name = "object-assign-4.0.1";
+    version = "4.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz";
+      name = "object-assign-4.0.1.tgz";
+      sha1 = "99504456c3598b5cad4fc59c26e8a9bb107fe0bd";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."once"."1.3.3" = self.buildNodePackage {
+    name = "once-1.3.3";
+    version = "1.3.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/once/-/once-1.3.3.tgz";
+      name = "once-1.3.3.tgz";
+      sha1 = "b2e261557ce4c314ec8304f3fa82663e4297ca20";
+    };
+    deps = {
+      "wrappy-1.0.1" = self.by-version."wrappy"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."os-homedir"."^1.0.0" =
+    self.by-version."os-homedir"."1.0.1";
+  by-version."os-homedir"."1.0.1" = self.buildNodePackage {
+    name = "os-homedir-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz";
+      name = "os-homedir-1.0.1.tgz";
+      sha1 = "0d62bdf44b916fd3bbdcf2cab191948fb094f007";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."os-tmpdir"."^1.0.0" =
+    self.by-version."os-tmpdir"."1.0.1";
+  by-version."os-tmpdir"."1.0.1" = self.buildNodePackage {
+    name = "os-tmpdir-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz";
+      name = "os-tmpdir-1.0.1.tgz";
+      sha1 = "e9b423a1edaf479882562e92ed71d7743a071b6e";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."osenv"."0.1.3" = self.buildNodePackage {
+    name = "osenv-0.1.3";
+    version = "0.1.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz";
+      name = "osenv-0.1.3.tgz";
+      sha1 = "83cf05c6d6458fc4d5ac6362ea325d92f2754217";
+    };
+    deps = {
+      "os-homedir-1.0.1" = self.by-version."os-homedir"."1.0.1";
+      "os-tmpdir-1.0.1" = self.by-version."os-tmpdir"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."package-json"."1.2.0" = self.buildNodePackage {
+    name = "package-json-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz";
+      name = "package-json-1.2.0.tgz";
+      sha1 = "c8ecac094227cdf76a316874ed05e27cc939a0e0";
+    };
+    deps = {
+      "got-3.3.1" = self.by-version."got"."3.3.1";
+      "registry-url-3.0.3" = self.by-version."registry-url"."3.0.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."parse-json"."^2.2.0" =
+    self.by-version."parse-json"."2.2.0";
+  by-version."parse-json"."2.2.0" = self.buildNodePackage {
+    name = "parse-json-2.2.0";
+    version = "2.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz";
+      name = "parse-json-2.2.0.tgz";
+      sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+    };
+    deps = {
+      "error-ex-1.3.0" = self.by-version."error-ex"."1.3.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."parsimmon"."^0.5.0" =
+    self.by-version."parsimmon"."0.5.1";
+  by-version."parsimmon"."0.5.1" = self.buildNodePackage {
+    name = "parsimmon-0.5.1";
+    version = "0.5.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/parsimmon/-/parsimmon-0.5.1.tgz";
+      name = "parsimmon-0.5.1.tgz";
+      sha1 = "247c970d7d5e99a51115b16a106de96f0eb9303b";
+    };
+    deps = {
+      "pjs-5.1.1" = self.by-version."pjs"."5.1.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."path-exists"."^2.0.0" =
+    self.by-version."path-exists"."2.1.0";
+  by-version."path-exists"."2.1.0" = self.buildNodePackage {
+    name = "path-exists-2.1.0";
+    version = "2.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz";
+      name = "path-exists-2.1.0.tgz";
+      sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
+    };
+    deps = {
+      "pinkie-promise-2.0.0" = self.by-version."pinkie-promise"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."path-type"."^1.0.0" =
+    self.by-version."path-type"."1.1.0";
+  by-version."path-type"."1.1.0" = self.buildNodePackage {
+    name = "path-type-1.1.0";
+    version = "1.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz";
+      name = "path-type-1.1.0.tgz";
+      sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
+    };
+    deps = {
+      "graceful-fs-4.1.3" = self.by-version."graceful-fs"."4.1.3";
+      "pify-2.3.0" = self.by-version."pify"."2.3.0";
+      "pinkie-promise-2.0.0" = self.by-version."pinkie-promise"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pause-stream"."0.0.11" =
+    self.by-version."pause-stream"."0.0.11";
+  by-version."pause-stream"."0.0.11" = self.buildNodePackage {
+    name = "pause-stream-0.0.11";
+    version = "0.0.11";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz";
+      name = "pause-stream-0.0.11.tgz";
+      sha1 = "fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445";
+    };
+    deps = {
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pify"."^2.0.0" =
+    self.by-version."pify"."2.3.0";
+  by-version."pify"."2.3.0" = self.buildNodePackage {
+    name = "pify-2.3.0";
+    version = "2.3.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz";
+      name = "pify-2.3.0.tgz";
+      sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pinkie"."^2.0.0" =
+    self.by-version."pinkie"."2.0.4";
+  by-version."pinkie"."2.0.4" = self.buildNodePackage {
+    name = "pinkie-2.0.4";
+    version = "2.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz";
+      name = "pinkie-2.0.4.tgz";
+      sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pinkie-promise"."^2.0.0" =
+    self.by-version."pinkie-promise"."2.0.0";
+  by-version."pinkie-promise"."2.0.0" = self.buildNodePackage {
+    name = "pinkie-promise-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz";
+      name = "pinkie-promise-2.0.0.tgz";
+      sha1 = "4c83538de1f6e660c29e0a13446844f7a7e88259";
+    };
+    deps = {
+      "pinkie-2.0.4" = self.by-version."pinkie"."2.0.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."pjs"."5.x" =
+    self.by-version."pjs"."5.1.1";
+  by-version."pjs"."5.1.1" = self.buildNodePackage {
+    name = "pjs-5.1.1";
+    version = "5.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pjs/-/pjs-5.1.1.tgz";
+      name = "pjs-5.1.1.tgz";
+      sha1 = "9dfc4673bb01deffd6915fb1dec75827aba42abf";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."prepend-http"."1.0.3" = self.buildNodePackage {
+    name = "prepend-http-1.0.3";
+    version = "1.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/prepend-http/-/prepend-http-1.0.3.tgz";
+      name = "prepend-http-1.0.3.tgz";
+      sha1 = "4d0d2b6f9efcf1190c23931325b4f3a9dba84869";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."process-nextick-args"."~1.0.6" =
+    self.by-version."process-nextick-args"."1.0.6";
+  by-version."process-nextick-args"."1.0.6" = self.buildNodePackage {
+    name = "process-nextick-args-1.0.6";
+    version = "1.0.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz";
+      name = "process-nextick-args-1.0.6.tgz";
+      sha1 = "0f96b001cea90b12592ce566edb97ec11e69bd05";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."promised-temp"."^0.1.0" =
+    self.by-version."promised-temp"."0.1.0";
+  by-version."promised-temp"."0.1.0" = self.buildNodePackage {
+    name = "promised-temp-0.1.0";
+    version = "0.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/promised-temp/-/promised-temp-0.1.0.tgz";
+      name = "promised-temp-0.1.0.tgz";
+      sha1 = "5f8a704ccdf5f2ac23996fcafe2b301bc2a8d0eb";
+    };
+    deps = {
+      "temp-0.8.3" = self.by-version."temp"."0.8.3";
+      "q-1.4.1" = self.by-version."q"."1.4.1";
+      "debug-2.2.0" = self.by-version."debug"."2.2.0";
+      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "promised-temp" = self.by-version."promised-temp"."0.1.0";
+  by-spec."pseudomap"."^1.0.1" =
+    self.by-version."pseudomap"."1.0.2";
+  by-version."pseudomap"."1.0.2" = self.buildNodePackage {
+    name = "pseudomap-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+      name = "pseudomap-1.0.2.tgz";
+      sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."q"."1.4.1" = self.buildNodePackage {
+    name = "q-1.4.1";
+    version = "1.4.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/q/-/q-1.4.1.tgz";
+      name = "q-1.4.1.tgz";
+      sha1 = "55705bcd93c5f3673530c2c2cbc0c2b3addc286e";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."qs"."~6.0.2" =
+    self.by-version."qs"."6.0.2";
+  by-version."qs"."6.0.2" = self.buildNodePackage {
+    name = "qs-6.0.2";
+    version = "6.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/qs/-/qs-6.0.2.tgz";
+      name = "qs-6.0.2.tgz";
+      sha1 = "88c68d590e8ed56c76c79f352c17b982466abfcd";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."rc"."1.1.6" = self.buildNodePackage {
+    name = "rc-1.1.6";
+    version = "1.1.6";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/rc/-/rc-1.1.6.tgz";
+      name = "rc-1.1.6.tgz";
+      sha1 = "43651b76b6ae53b5c802f1151fa3fc3b059969c9";
+    };
+    deps = {
+      "deep-extend-0.4.1" = self.by-version."deep-extend"."0.4.1";
+      "ini-1.3.4" = self.by-version."ini"."1.3.4";
+      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
+      "strip-json-comments-1.0.4" = self.by-version."strip-json-comments"."1.0.4";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."read-all-stream"."2.2.0" = self.buildNodePackage {
+    name = "read-all-stream-2.2.0";
+    version = "2.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/read-all-stream/-/read-all-stream-2.2.0.tgz";
+      name = "read-all-stream-2.2.0.tgz";
+      sha1 = "6b83370546c55ab6ade2bf75e83c66e45989bbf0";
+    };
+    deps = {
+      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."read-all-stream"."^3.0.0" =
+    self.by-version."read-all-stream"."3.1.0";
+  by-version."read-all-stream"."3.1.0" = self.buildNodePackage {
+    name = "read-all-stream-3.1.0";
+    version = "3.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz";
+      name = "read-all-stream-3.1.0.tgz";
+      sha1 = "35c3e177f2078ef789ee4bfafa4373074eaef4fa";
+    };
+    deps = {
+      "pinkie-promise-2.0.0" = self.by-version."pinkie-promise"."2.0.0";
+      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."read-pkg"."^1.0.0" =
+    self.by-version."read-pkg"."1.1.0";
+  by-version."read-pkg"."1.1.0" = self.buildNodePackage {
+    name = "read-pkg-1.1.0";
+    version = "1.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz";
+      name = "read-pkg-1.1.0.tgz";
+      sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+    };
+    deps = {
+      "load-json-file-1.1.0" = self.by-version."load-json-file"."1.1.0";
+      "normalize-package-data-2.3.5" = self.by-version."normalize-package-data"."2.3.5";
+      "path-type-1.1.0" = self.by-version."path-type"."1.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."read-pkg-up"."^1.0.1" =
+    self.by-version."read-pkg-up"."1.0.1";
+  by-version."read-pkg-up"."1.0.1" = self.buildNodePackage {
+    name = "read-pkg-up-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
+      name = "read-pkg-up-1.0.1.tgz";
+      sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+    };
+    deps = {
+      "find-up-1.1.2" = self.by-version."find-up"."1.1.2";
+      "read-pkg-1.1.0" = self.by-version."read-pkg"."1.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."readable-stream"."^2.0.0" =
+    self.by-version."readable-stream"."2.0.6";
+  by-version."readable-stream"."2.0.6" = self.buildNodePackage {
+    name = "readable-stream-2.0.6";
+    version = "2.0.6";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz";
+      name = "readable-stream-2.0.6.tgz";
+      sha1 = "8f90341e68a53ccc928788dacfcd11b36eb9b78e";
+    };
+    deps = {
+      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "isarray-1.0.0" = self.by-version."isarray"."1.0.0";
+      "process-nextick-args-1.0.6" = self.by-version."process-nextick-args"."1.0.6";
+      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
+      "util-deprecate-1.0.2" = self.by-version."util-deprecate"."1.0.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."readable-stream"."~2.0.5" =
+    self.by-version."readable-stream"."2.0.6";
+  by-spec."redent"."^1.0.0" =
+    self.by-version."redent"."1.0.0";
+  by-version."redent"."1.0.0" = self.buildNodePackage {
+    name = "redent-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/redent/-/redent-1.0.0.tgz";
+      name = "redent-1.0.0.tgz";
+      sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
+    };
+    deps = {
+      "indent-string-2.1.0" = self.by-version."indent-string"."2.1.0";
+      "strip-indent-1.0.1" = self.by-version."strip-indent"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."repeating"."^2.0.0" =
+    self.by-version."repeating"."2.0.0";
+  by-version."repeating"."2.0.0" = self.buildNodePackage {
+    name = "repeating-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/repeating/-/repeating-2.0.0.tgz";
+      name = "repeating-2.0.0.tgz";
+      sha1 = "fd27d6d264d18fbebfaa56553dd7b82535a5034e";
+    };
+    deps = {
+      "is-finite-1.0.1" = self.by-version."is-finite"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."request"."2.69.0" = self.buildNodePackage {
+    name = "request-2.69.0";
+    version = "2.69.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/request/-/request-2.69.0.tgz";
+      name = "request-2.69.0.tgz";
+      sha1 = "cf91d2e000752b1217155c005241911991a2346a";
+    };
+    deps = {
+      "aws-sign2-0.6.0" = self.by-version."aws-sign2"."0.6.0";
+      "aws4-1.3.2" = self.by-version."aws4"."1.3.2";
+      "bl-1.0.3" = self.by-version."bl"."1.0.3";
+      "caseless-0.11.0" = self.by-version."caseless"."0.11.0";
+      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
+      "extend-3.0.0" = self.by-version."extend"."3.0.0";
+      "forever-agent-0.6.1" = self.by-version."forever-agent"."0.6.1";
+      "form-data-1.0.0-rc4" = self.by-version."form-data"."1.0.0-rc4";
+      "har-validator-2.0.6" = self.by-version."har-validator"."2.0.6";
+      "hawk-3.1.3" = self.by-version."hawk"."3.1.3";
+      "http-signature-1.1.1" = self.by-version."http-signature"."1.1.1";
+      "is-typedarray-1.0.0" = self.by-version."is-typedarray"."1.0.0";
+      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
+      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
+      "mime-types-2.1.10" = self.by-version."mime-types"."2.1.10";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "oauth-sign-0.8.1" = self.by-version."oauth-sign"."0.8.1";
+      "qs-6.0.2" = self.by-version."qs"."6.0.2";
+      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
+      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
+      "tunnel-agent-0.4.2" = self.by-version."tunnel-agent"."0.4.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."request"."^2.45.0" =
+    self.by-version."request"."2.69.0";
+  by-version."rimraf"."2.5.2" = self.buildNodePackage {
+    name = "rimraf-2.5.2";
+    version = "2.5.2";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz";
+      name = "rimraf-2.5.2.tgz";
+      sha1 = "62ba947fa4c0b4363839aefecd4f0fbad6059726";
+    };
+    deps = {
+      "glob-7.0.3" = self.by-version."glob"."7.0.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."semver"."2 || 3 || 4 || 5" =
+    self.by-version."semver"."5.1.0";
+  by-version."semver"."5.1.0" = self.buildNodePackage {
+    name = "semver-5.1.0";
+    version = "5.1.0";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/semver/-/semver-5.1.0.tgz";
+      name = "semver-5.1.0.tgz";
+      sha1 = "85f2cf8550465c4df000cf7d86f6b054106ab9e5";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."semver".">=5.1.0 <6" =
+    self.by-version."semver"."5.1.0";
+  by-version."semver"."4.3.6" = self.buildNodePackage {
+    name = "semver-4.3.6";
+    version = "4.3.6";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz";
+      name = "semver-4.3.6.tgz";
+      sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."semver"."^5.0.3" =
+    self.by-version."semver"."5.1.0";
+  by-version."semver-diff"."2.1.0" = self.buildNodePackage {
+    name = "semver-diff-2.1.0";
+    version = "2.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz";
+      name = "semver-diff-2.1.0.tgz";
+      sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36";
+    };
+    deps = {
+      "semver-5.1.0" = self.by-version."semver"."5.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."sigmund"."1.0.1" = self.buildNodePackage {
+    name = "sigmund-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz";
+      name = "sigmund-1.0.1.tgz";
+      sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."signal-exit"."^2.1.2" =
+    self.by-version."signal-exit"."2.1.2";
+  by-version."signal-exit"."2.1.2" = self.buildNodePackage {
+    name = "signal-exit-2.1.2";
+    version = "2.1.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz";
+      name = "signal-exit-2.1.2.tgz";
+      sha1 = "375879b1f92ebc3b334480d038dc546a6d558564";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."sort-keys"."^1.0.0" =
+    self.by-version."sort-keys"."1.1.1";
+  by-version."sort-keys"."1.1.1" = self.buildNodePackage {
+    name = "sort-keys-1.1.1";
+    version = "1.1.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sort-keys/-/sort-keys-1.1.1.tgz";
+      name = "sort-keys-1.1.1.tgz";
+      sha1 = "a791c26071df66c356bf5dcad9cfb57a7b2f826e";
+    };
+    deps = {
+      "is-plain-obj-1.1.0" = self.by-version."is-plain-obj"."1.1.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."sort-keys-length"."^1.0.0" =
+    self.by-version."sort-keys-length"."1.0.1";
+  by-version."sort-keys-length"."1.0.1" = self.buildNodePackage {
+    name = "sort-keys-length-1.0.1";
+    version = "1.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz";
+      name = "sort-keys-length-1.0.1.tgz";
+      sha1 = "9cb6f4f4e9e48155a6aa0671edd336ff1479a188";
+    };
+    deps = {
+      "sort-keys-1.1.1" = self.by-version."sort-keys"."1.1.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."spdx-correct"."~1.0.0" =
+    self.by-version."spdx-correct"."1.0.2";
+  by-version."spdx-correct"."1.0.2" = self.buildNodePackage {
+    name = "spdx-correct-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz";
+      name = "spdx-correct-1.0.2.tgz";
+      sha1 = "4b3073d933ff51f3912f03ac5519498a4150db40";
+    };
+    deps = {
+      "spdx-license-ids-1.2.0" = self.by-version."spdx-license-ids"."1.2.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."spdx-exceptions"."^1.0.4" =
+    self.by-version."spdx-exceptions"."1.0.4";
+  by-version."spdx-exceptions"."1.0.4" = self.buildNodePackage {
+    name = "spdx-exceptions-1.0.4";
+    version = "1.0.4";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz";
+      name = "spdx-exceptions-1.0.4.tgz";
+      sha1 = "220b84239119ae9045a892db81a83f4ce16f80fd";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."spdx-expression-parse"."~1.0.0" =
+    self.by-version."spdx-expression-parse"."1.0.2";
+  by-version."spdx-expression-parse"."1.0.2" = self.buildNodePackage {
+    name = "spdx-expression-parse-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz";
+      name = "spdx-expression-parse-1.0.2.tgz";
+      sha1 = "d52b14b5e9670771440af225bcb563122ac452f6";
+    };
+    deps = {
+      "spdx-exceptions-1.0.4" = self.by-version."spdx-exceptions"."1.0.4";
+      "spdx-license-ids-1.2.0" = self.by-version."spdx-license-ids"."1.2.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."spdx-license-ids"."^1.0.0" =
+    self.by-version."spdx-license-ids"."1.2.0";
+  by-version."spdx-license-ids"."1.2.0" = self.buildNodePackage {
+    name = "spdx-license-ids-1.2.0";
+    version = "1.2.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.0.tgz";
+      name = "spdx-license-ids-1.2.0.tgz";
+      sha1 = "b549dd0f63dcb745a17e2ea3a07402e0e332d1e2";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."spdx-license-ids"."^1.0.2" =
+    self.by-version."spdx-license-ids"."1.2.0";
+  by-spec."split"."0.2" =
+    self.by-version."split"."0.2.10";
+  by-version."split"."0.2.10" = self.buildNodePackage {
+    name = "split-0.2.10";
+    version = "0.2.10";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/split/-/split-0.2.10.tgz";
+      name = "split-0.2.10.tgz";
+      sha1 = "67097c601d697ce1368f418f06cd201cf0521a57";
+    };
+    deps = {
+      "through-2.3.8" = self.by-version."through"."2.3.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."sprintf-js"."1.0.3" = self.buildNodePackage {
+    name = "sprintf-js-1.0.3";
+    version = "1.0.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+      name = "sprintf-js-1.0.3.tgz";
+      sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."sshpk"."^1.7.0" =
+    self.by-version."sshpk"."1.7.4";
+  by-version."sshpk"."1.7.4" = self.buildNodePackage {
+    name = "sshpk-1.7.4";
+    version = "1.7.4";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz";
+      name = "sshpk-1.7.4.tgz";
+      sha1 = "ad7b47defca61c8415d964243b62b0ce60fbca38";
+    };
+    deps = {
+      "asn1-0.2.3" = self.by-version."asn1"."0.2.3";
+      "assert-plus-0.2.0" = self.by-version."assert-plus"."0.2.0";
+      "dashdash-1.13.0" = self.by-version."dashdash"."1.13.0";
+    };
+    optionalDependencies = {
+      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
+      "tweetnacl-0.14.1" = self.by-version."tweetnacl"."0.14.1";
+      "jodid25519-1.0.2" = self.by-version."jodid25519"."1.0.2";
+      "ecc-jsbn-0.1.1" = self.by-version."ecc-jsbn"."0.1.1";
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."stringstream"."0.0.5" = self.buildNodePackage {
+    name = "stringstream-0.0.5";
+    version = "0.0.5";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz";
+      name = "stringstream-0.0.5.tgz";
+      sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."strip-ansi"."^3.0.0" =
+    self.by-version."strip-ansi"."3.0.1";
+  by-version."strip-ansi"."3.0.1" = self.buildNodePackage {
+    name = "strip-ansi-3.0.1";
+    version = "3.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+      name = "strip-ansi-3.0.1.tgz";
+      sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+    };
+    deps = {
+      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."strip-bom"."^2.0.0" =
+    self.by-version."strip-bom"."2.0.0";
+  by-version."strip-bom"."2.0.0" = self.buildNodePackage {
+    name = "strip-bom-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz";
+      name = "strip-bom-2.0.0.tgz";
+      sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+    };
+    deps = {
+      "is-utf8-0.2.1" = self.by-version."is-utf8"."0.2.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."strip-indent"."^1.0.1" =
+    self.by-version."strip-indent"."1.0.1";
+  by-version."strip-indent"."1.0.1" = self.buildNodePackage {
+    name = "strip-indent-1.0.1";
+    version = "1.0.1";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz";
+      name = "strip-indent-1.0.1.tgz";
+      sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
+    };
+    deps = {
+      "get-stdin-4.0.1" = self.by-version."get-stdin"."4.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."strip-json-comments"."~1.0.4" =
+    self.by-version."strip-json-comments"."1.0.4";
+  by-version."strip-json-comments"."1.0.4" = self.buildNodePackage {
+    name = "strip-json-comments-1.0.4";
+    version = "1.0.4";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz";
+      name = "strip-json-comments-1.0.4.tgz";
+      sha1 = "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."supports-color"."^2.0.0" =
+    self.by-version."supports-color"."2.0.0";
+  by-version."supports-color"."2.0.0" = self.buildNodePackage {
+    name = "supports-color-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+      name = "supports-color-2.0.0.tgz";
+      sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."temp"."0.8.3" =
+    self.by-version."temp"."0.8.3";
+  by-version."temp"."0.8.3" = self.buildNodePackage {
+    name = "temp-0.8.3";
+    version = "0.8.3";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/temp/-/temp-0.8.3.tgz";
+      name = "temp-0.8.3.tgz";
+      sha1 = "e0c6bc4d26b903124410e4fed81103014dfc1f59";
+    };
+    deps = {
+      "os-tmpdir-1.0.1" = self.by-version."os-tmpdir"."1.0.1";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."temp"."^0.8.1" =
+    self.by-version."temp"."0.8.3";
+  by-spec."through"."2" =
+    self.by-version."through"."2.3.8";
+  by-version."through"."2.3.8" = self.buildNodePackage {
+    name = "through-2.3.8";
+    version = "2.3.8";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/through/-/through-2.3.8.tgz";
+      name = "through-2.3.8.tgz";
+      sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."through"."~2.3" =
+    self.by-version."through"."2.3.8";
+  by-spec."through"."~2.3.1" =
+    self.by-version."through"."2.3.8";
+  by-spec."topo"."1.x.x" =
+    self.by-version."topo"."1.1.0";
+  by-version."topo"."1.1.0" = self.buildNodePackage {
+    name = "topo-1.1.0";
+    version = "1.1.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/topo/-/topo-1.1.0.tgz";
+      name = "topo-1.1.0.tgz";
+      sha1 = "e9d751615d1bb87dc865db182fa1ca0a5ef536d5";
+    };
+    deps = {
+      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tough-cookie"."~2.2.0" =
+    self.by-version."tough-cookie"."2.2.2";
+  by-version."tough-cookie"."2.2.2" = self.buildNodePackage {
+    name = "tough-cookie-2.2.2";
+    version = "2.2.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz";
+      name = "tough-cookie-2.2.2.tgz";
+      sha1 = "c83a1830f4e5ef0b93ef2a3488e724f8de016ac7";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."trim-newlines"."^1.0.0" =
+    self.by-version."trim-newlines"."1.0.0";
+  by-version."trim-newlines"."1.0.0" = self.buildNodePackage {
+    name = "trim-newlines-1.0.0";
+    version = "1.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz";
+      name = "trim-newlines-1.0.0.tgz";
+      sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tsd"."~0.6.5" =
+    self.by-version."tsd"."0.6.5";
+  by-version."tsd"."0.6.5" = self.buildNodePackage {
+    name = "tsd-0.6.5";
+    version = "0.6.5";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tsd/-/tsd-0.6.5.tgz";
+      name = "tsd-0.6.5.tgz";
+      sha1 = "34a0b64c1db6a70b3860fe4f5571d9d1357421ad";
+    };
+    deps = {
+      "assertion-error-1.0.0" = self.by-version."assertion-error"."1.0.0";
+      "bl-0.9.5" = self.by-version."bl"."0.9.5";
+      "bluebird-1.2.4" = self.by-version."bluebird"."1.2.4";
+      "chalk-1.1.1" = self.by-version."chalk"."1.1.1";
+      "colors-1.1.2" = self.by-version."colors"."1.1.2";
+      "deep-freeze-0.0.1" = self.by-version."deep-freeze"."0.0.1";
+      "definition-header-0.1.0" = self.by-version."definition-header"."0.1.0";
+      "detect-indent-0.2.0" = self.by-version."detect-indent"."0.2.0";
+      "diff-1.4.0" = self.by-version."diff"."1.4.0";
+      "event-stream-3.1.7" = self.by-version."event-stream"."3.1.7";
+      "exit-0.1.2" = self.by-version."exit"."0.1.2";
+      "glob-4.5.3" = self.by-version."glob"."4.5.3";
+      "joi-4.9.0" = self.by-version."joi"."4.9.0";
+      "joi-assert-0.0.3" = self.by-version."joi-assert"."0.0.3";
+      "jsesc-0.5.0" = self.by-version."jsesc"."0.5.0";
+      "json-pointer-0.2.2" = self.by-version."json-pointer"."0.2.2";
+      "lazy.js-0.3.2" = self.by-version."lazy.js"."0.3.2";
+      "lru-cache-2.5.2" = self.by-version."lru-cache"."2.5.2";
+      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
+      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
+      "ministyle-0.1.4" = self.by-version."ministyle"."0.1.4";
+      "minitable-0.0.4" = self.by-version."minitable"."0.0.4";
+      "miniwrite-0.1.4" = self.by-version."miniwrite"."0.1.4";
+      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
+      "open-0.0.5" = self.by-version."open"."0.0.5";
+      "request-2.69.0" = self.by-version."request"."2.69.0";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+      "semver-4.3.6" = self.by-version."semver"."4.3.6";
+      "type-detect-0.1.2" = self.by-version."type-detect"."0.1.2";
+      "universal-analytics-0.3.11" = self.by-version."universal-analytics"."0.3.11";
+      "update-notifier-0.2.2" = self.by-version."update-notifier"."0.2.2";
+      "uri-templates-0.1.9" = self.by-version."uri-templates"."0.1.9";
+      "uuid-2.0.1" = self.by-version."uuid"."2.0.1";
+      "verror-1.4.0" = self.by-version."verror"."1.4.0";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "tsd" = self.by-version."tsd"."0.6.5";
+  by-spec."tunnel-agent"."~0.4.1" =
+    self.by-version."tunnel-agent"."0.4.2";
+  by-version."tunnel-agent"."0.4.2" = self.buildNodePackage {
+    name = "tunnel-agent-0.4.2";
+    version = "0.4.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz";
+      name = "tunnel-agent-0.4.2.tgz";
+      sha1 = "1104e3f36ac87125c287270067d582d18133bfee";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."tweetnacl".">=0.13.0 <1.0.0" =
+    self.by-version."tweetnacl"."0.14.1";
+  by-version."tweetnacl"."0.14.1" = self.buildNodePackage {
+    name = "tweetnacl-0.14.1";
+    version = "0.14.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.1.tgz";
+      name = "tweetnacl-0.14.1.tgz";
+      sha1 = "37c6a1fb5cd4b63b7acee450d8419d9c0024cc03";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."type-detect"."~0.1.2" =
+    self.by-version."type-detect"."0.1.2";
+  by-version."type-detect"."0.1.2" = self.buildNodePackage {
+    name = "type-detect-0.1.2";
+    version = "0.1.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/type-detect/-/type-detect-0.1.2.tgz";
+      name = "type-detect-0.1.2.tgz";
+      sha1 = "c88e853e54e5abd88f1bf3194b477c853c94f854";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."universal-analytics"."~0.3.4" =
+    self.by-version."universal-analytics"."0.3.11";
+  by-version."universal-analytics"."0.3.11" = self.buildNodePackage {
+    name = "universal-analytics-0.3.11";
+    version = "0.3.11";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/universal-analytics/-/universal-analytics-0.3.11.tgz";
+      name = "universal-analytics-0.3.11.tgz";
+      sha1 = "512879193a12a66dcbd9185121389bab913cd4b6";
+    };
+    deps = {
+      "request-2.69.0" = self.by-version."request"."2.69.0";
+      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
+      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."update-notifier"."^0.2.2" =
+    self.by-version."update-notifier"."0.2.2";
+  by-version."update-notifier"."0.2.2" = self.buildNodePackage {
+    name = "update-notifier-0.2.2";
+    version = "0.2.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/update-notifier/-/update-notifier-0.2.2.tgz";
+      name = "update-notifier-0.2.2.tgz";
+      sha1 = "e69b3a784b4e686a2acd98f5e66944591996e187";
+    };
+    deps = {
+      "chalk-0.5.1" = self.by-version."chalk"."0.5.1";
+      "configstore-0.3.2" = self.by-version."configstore"."0.3.2";
+      "is-npm-1.0.0" = self.by-version."is-npm"."1.0.0";
+      "latest-version-1.0.1" = self.by-version."latest-version"."1.0.1";
+      "semver-diff-2.1.0" = self.by-version."semver-diff"."2.1.0";
+      "string-length-1.0.1" = self.by-version."string-length"."1.0.1";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."uri-templates"."~0.1.5" =
+    self.by-version."uri-templates"."0.1.9";
+  by-version."uri-templates"."0.1.9" = self.buildNodePackage {
+    name = "uri-templates-0.1.9";
+    version = "0.1.9";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/uri-templates/-/uri-templates-0.1.9.tgz";
+      name = "uri-templates-0.1.9.tgz";
+      sha1 = "c56f7a5731b3a310226695f6e5639180fd1aa249";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."util-deprecate"."~1.0.1" =
+    self.by-version."util-deprecate"."1.0.2";
+  by-version."util-deprecate"."1.0.2" = self.buildNodePackage {
+    name = "util-deprecate-1.0.2";
+    version = "1.0.2";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+      name = "util-deprecate-1.0.2.tgz";
+      sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."validate-npm-package-license"."^3.0.1" =
+    self.by-version."validate-npm-package-license"."3.0.1";
+  by-version."validate-npm-package-license"."3.0.1" = self.buildNodePackage {
+    name = "validate-npm-package-license-3.0.1";
+    version = "3.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz";
+      name = "validate-npm-package-license-3.0.1.tgz";
+      sha1 = "2804babe712ad3379459acfbe24746ab2c303fbc";
+    };
+    deps = {
+      "spdx-correct-1.0.2" = self.by-version."spdx-correct"."1.0.2";
+      "spdx-expression-parse-1.0.2" = self.by-version."spdx-expression-parse"."1.0.2";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."verror"."~1.4.0" =
+    self.by-version."verror"."1.4.0";
+  by-version."verror"."1.4.0" = self.buildNodePackage {
+    name = "verror-1.4.0";
+    version = "1.4.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/verror/-/verror-1.4.0.tgz";
+      name = "verror-1.4.0.tgz";
+      sha1 = "5d8fdf5875141c3183b7c6bc23a0aa3e3e6ca4e2";
+    };
+    deps = {
+      "extsprintf-1.0.3" = self.by-version."extsprintf"."1.0.3";
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-version."xtend"."4.0.1" = self.buildNodePackage {
+    name = "xtend-4.0.1";
+    version = "4.0.1";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz";
+      name = "xtend-4.0.1.tgz";
+      sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  by-spec."yallist"."^2.0.0" =
+    self.by-version."yallist"."2.0.0";
+  by-version."yallist"."2.0.0" = self.buildNodePackage {
+    name = "yallist-2.0.0";
+    version = "2.0.0";
+    bin = false;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz";
+      name = "yallist-2.0.0.tgz";
+      sha1 = "306c543835f09ee1a4cb23b7bce9ab341c91cdd4";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
 }
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
index e67aecca695..600ea00b93e 100644
--- a/pkgs/top-level/node-packages.json
+++ b/pkgs/top-level/node-packages.json
@@ -122,7 +122,6 @@
 , "git-run"
 , "bower"
 , "bower2nix"
-, "fetch-bower"
 , "npm-check-updates"
 , "node-stringprep"
 , "ltx"
diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix
index fca110d2a01..d8eb668107b 100644
--- a/pkgs/top-level/node-packages.nix
+++ b/pkgs/top-level/node-packages.nix
@@ -63,6 +63,12 @@ in rec {
         sha1 = "26220f7e43ee3c0d714860db61c4d0ecc9bb3d89";
       }} ../webdrvr/chromedriver_linux64.zip
     '';
+    bower2nix.buildInputs = [ pkgs.makeWrapper ];
+    bower2nix.postInstall = ''
+      for prog in bower2nix fetch-bower; do
+        wrapProgram "$out/bin/$prog" --prefix PATH : "${pkgs.git}/bin"
+      done
+    '';
   } // args.overrides or {};
 
   # Apply overrides and back compatiblity transformations
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 6bf888aae2b..62b16f69e6b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -89,6 +89,8 @@ in modules // {
 
   blivet = callPackage ../development/python-modules/blivet { };
 
+  bugseverywhere = callPackage ../applications/version-management/bugseverywhere {};
+
   dbus = callPackage ../development/python-modules/dbus {
     dbus = pkgs.dbus;
   };
@@ -774,13 +776,18 @@ in modules // {
   };
 
   application = buildPythonPackage rec {
-    name = "python-application-${version}";
-    version = "1.5.0";
+    pname = "python-application";
+    name = "${pname}-${version}";
+    version = "2.0.2";
+    disabled = isPy3k;
+
+    src = pkgs.fetchdarcs {
+      url = "http://devel.ag-projects.com/repositories/${pname}";
+      rev = "release-${version}";
+      sha256 = "19dszv44py8qrq0jcjdycxpa7z2p8hi3ijq9gnqdsazbbjzf9svn";
+    };  
+    buildInputs = with self; [ zope_interface ];
 
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/source/p/python-application/${name}.tar.gz";
-      sha256 = "9bc00c2c639bf633e2c5e08d4bf1bb5d7edaad6ccdd473692f0362df08f8aafc";
-    };
   };
 
   appnope = buildPythonPackage rec {
@@ -1809,6 +1816,26 @@ in modules // {
     propagatedBuildInputs = with self; [ boto crcmod psutil ];
   };
 
+  cached-property = buildPythonPackage rec {
+    version = "1.3.0";
+    name = "cached-property-${version}";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/c/cached-property/${name}.tar.gz";
+      sha256 = "10dwi3s6f154ag9dvqy5jiwp31fs57lbxjcjgn4cwvi8qyqpi3j5";
+    };
+
+    buildInputs = with self; [ freezegun ];
+
+    meta = {
+      description = "A decorator for caching properties in classes";
+      homepage = https://github.com/pydanny/cached-property;
+      license = licenses.bsd3;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ ericsagnes ];
+    };
+  };
+
   cgroup-utils = buildPythonPackage rec {
     version = "0.6";
     name = "cgroup-utils-${version}";
@@ -4890,11 +4917,12 @@ in modules // {
   };
 
   docker = buildPythonPackage rec {
-    name = "docker-py-1.5.0";
+    name = "docker-py-${version}";
+    version = "1.7.2";
 
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/docker-py/${name}.tar.gz";
-      sha256 = "1l7q0179y4lmv24z4q12653141wc1b1zzgbfw46yzbs6mj7i4939";
+      sha256 = "0k6hm3vmqh1d3wr9rryyif5n4rzvcffdlb1k4jvzp7g4996d3ccm";
     };
 
     propagatedBuildInputs = with self; [ six requests2 websocket_client ];
@@ -4910,11 +4938,11 @@ in modules // {
   };
 
   dockerpty = buildPythonPackage rec {
-    name = "dockerpty-0.3.4";
+    name = "dockerpty-0.4.1";
 
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/dockerpty/${name}.tar.gz";
-      sha256 = "a51044cc49089a2408fdf6769a63eebe0b16d91f34716ecee681984446ce467d";
+      sha256 = "1kjn64wx23jmr8dcc6g7bwlmrhfmxr77gh6iphqsl39sayfxdab9";
     };
 
     propagatedBuildInputs = with self; [ six ];
@@ -5336,16 +5364,18 @@ in modules // {
 
 
   eventlib = buildPythonPackage rec {
-    name = "python-eventlib-${version}";
-    version = "0.2.1";
+    pname = "python-eventlib";
+    name = "${pname}-${version}";
+    version = "0.2.2";
 
     # Judging from SyntaxError
     disabled = isPy3k;
 
-    src = pkgs.fetchurl {
-      url = "http://download.ag-projects.com/SipClient/${name}.tar.gz";
-      sha256 = "25224794420f430946fe46932718b521a6264903fe8c0ed3563dfdb844c623e7";
-    };
+    src = pkgs.fetchdarcs {
+      url = "http://devel.ag-projects.com/repositories/${pname}";
+      rev = "release-${version}";
+      sha256 = "1zxhpq8i4jwsk7wmfncqfm211hqikj3hp38cfv509924bi76wak8";
+    };  
 
     propagatedBuildInputs = with self; [ greenlet ];
 
@@ -5777,8 +5807,8 @@ in modules // {
   gnutls = buildPythonPackage rec {
     name = "python-gnutls";
     src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/source/p/python-gnutls/python-gnutls-2.0.1.tar.gz";
-      sha256 = "d8fb368c6a4dd58bc6cd5e61d4a12d119c4506fd344a371b3429b3ac2623b9ac";
+      url = "https://pypi.python.org/packages/source/p/python-gnutls/python-gnutls-3.0.0.tar.gz";
+      sha256 = "1yrdxcj5rzvz8iglircz6icvyggz5fmdcd010n6w3j60yp4p84kc";
     };
 
     propagatedBuildInputs = with self; [ pkgs.gnutls ];
@@ -6881,6 +6911,8 @@ in modules // {
     preBuild = "${python}/bin/${python.executable} setup.py build_ext" +
                " --include-dirs=${pkgs.poppler_qt4}/include/poppler/";
 
+    NIX_CFLAGS_COMPILE = "-I${pkgs.poppler_qt4}/include/poppler/";
+
     meta = {
       description = "A Python binding to Poppler-Qt4";
       longDescription = ''
@@ -8275,7 +8307,7 @@ in modules // {
     };
   };
 
-  django_redis = makeOverridable ({ django ? self.django }: buildPythonPackage rec {
+  django_redis = buildPythonPackage rec {
     name = "django-redis-${version}";
     version = "4.2.0";
 
@@ -8286,29 +8318,29 @@ in modules // {
 
     buildInputs = [ self.mock ];
 
-    propagatedBuildInputs = [ django ] ++
-      (with self; [
-        redis
-        msgpack
-      ]);
+    propagatedBuildInputs = with self; [
+      django
+      redis
+      msgpack
+    ];
 
     meta = {
       description = "Full featured redis cache backend for Django";
       homepage = https://github.com/niwibe/django-redis;
       license = licenses.bsd3;
     };
-  }) {};
+  };
 
   django_reversion = buildPythonPackage rec {
     name = "django-reversion-${version}";
-    version = "1.8.5";
+    version = "1.10.1";
 
     src = pkgs.fetchurl {
-      url = "http://pypi.python.org/packages/source/d/django-reversion/${name}.tar.gz";
-      sha256 = "0z8fxvxgbxfnalr5br74rsw6g42nry2q656rx7rsgmicd8n42v2r";
+      url = "https://pypi.python.org/packages/source/d/django-reversion/${name}.tar.gz";
+      sha256 = "01iv8w6lmmq98qjhxmnp8ddjxifmhxcmp612ijd91wc8nv8lk12w";
     };
 
-    propagatedBuildInputs = with self; [ django_1_7 ] ++
+    propagatedBuildInputs = with self; [ django ] ++
       (optionals (pythonOlder "2.7") [ importlib ordereddict ]);
 
     meta = {
@@ -8318,7 +8350,7 @@ in modules // {
     };
   };
 
-  django_silk = makeOverridable ({ django ? self.django }: buildPythonPackage rec {
+  django_silk = buildPythonPackage rec {
     name = "django-silk-${version}";
     version = "0.5.6";
 
@@ -8329,25 +8361,25 @@ in modules // {
 
     buildInputs = [ self.mock ];
 
-    propagatedBuildInputs = [ django ] ++
-      (with self; [
-        pygments
-        simplejson
-        dateutil
-        requests2
-        sqlparse
-        jinja2
-        autopep8
-        pytz
-        pillow
-      ]);
+    propagatedBuildInputs = with self; [
+      django
+      pygments
+      simplejson
+      dateutil
+      requests2
+      sqlparse
+      jinja2
+      autopep8
+      pytz
+      pillow
+    ];
 
     meta = {
       description = "Silky smooth profiling for the Django Framework";
       homepage = https://github.com/mtford90/silk;
       license = licenses.mit;
     };
-  }) {};
+  };
 
   django_taggit = buildPythonPackage rec {
     name = "django-taggit-${version}";
@@ -8814,14 +8846,13 @@ in modules // {
   };
 
   docker_compose = buildPythonPackage rec {
-    version = "1.5.2";
+    version = "1.6.2";
     name = "docker-compose-${version}";
     namePrefix = "";
-    disabled = isPy3k || isPyPy;
 
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/d/docker-compose/${name}.tar.gz";
-      sha256 = "79aa7e2e6ef9ab1936f8777476ffd4bb329875ec3d3664d239896d2f2a3c4f4f";
+      sha256 = "10i4032d99hm5nj1p74pcad9i3gz1h5x3096byklncgssfyjqki6";
     };
 
     # lots of networking and other fails
@@ -8829,8 +8860,9 @@ in modules // {
     buildInputs = with self; [ mock pytest nose ];
     propagatedBuildInputs = with self; [
       requests2 six pyyaml texttable docopt docker dockerpty websocket_client
-      enum34 jsonschema
+      enum34 jsonschema cached-property
     ];
+
     patchPhase = ''
       sed -i "s/'requests >= 2.6.1, < 2.8'/'requests'/" setup.py
     '';
@@ -12158,14 +12190,16 @@ in modules // {
   };
 
   msrplib = buildPythonPackage rec {
-    name = "python-msrplib-${version}";
-    version = "0.18.0";
-
-    src = pkgs.fetchurl {
-      url = "http://download.ag-projects.com/MSRP/${name}.tar.gz";
-      sha256 = "0vp9g5p015g3f67rl4vz0qnn6x7hciry6nmvwf82h9h5rx11r43j";
-    };
-
+    pname = "python-msrplib";
+    name = "${pname}-${version}";
+    version = "0.19";
+
+    src = pkgs.fetchdarcs {
+      url = "http://devel.ag-projects.com/repositories/${pname}";
+      rev = "release-${version}";
+      sha256 = "0jqvvssbwzq7bwqn3wrjfnpj8zb558mynn2visnlrcma6b57yhwd";
+    };  
+    
     propagatedBuildInputs = with self; [ eventlib application gnutls ];
   };
 
@@ -13185,6 +13219,14 @@ in modules // {
     };
   };
 
+  numpy_1_11 = self.buildNumpyPackage rec {
+    version = "1.11.0";
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/n/numpy/numpy-${version}.tar.gz";
+      sha256 = "0gml1ng7iqk4xcrvspjd5vnfqdwfinvjfyksfawvy5h8426jdld1";
+    };
+  };
+
   numpydoc = buildPythonPackage rec {
     name = "numpydoc-${version}";
     version = "0.5";
@@ -13505,6 +13547,31 @@ in modules // {
     };
   };
 
+  python-otr = buildPythonPackage rec {
+    name = "${pname}-${version}";
+    pname = "python-otr";
+    version = "1.2.0";
+
+    disabled = isPy3k;
+
+    src = pkgs.fetchFromGitHub {
+      owner = "AGProjects";
+      repo = pname;
+      rev = "release-" + version;
+      sha256 = "0p3b1n8jlxwd65gbk2k5007fkhdyjwcvr4982s42hncivxvabzzy";
+    };
+
+    propagatedBuildInputs = with self; [ zope_interface cryptography application gmpy2 ];
+
+    meta = {
+      description = "A pure python implementation of OTR";
+      homepage = https://github.com/AGProjects/otr;
+      license = licenses.lgpl21Plus;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ edwtjo ];
+    };
+  };
+
   ply = buildPythonPackage (rec {
     name = "ply-3.8";
 
@@ -15532,19 +15599,19 @@ in modules // {
   };
 
   pip = buildPythonPackage rec {
-    version = "8.0.2";
+    version = "8.1.1";
     name = "pip-${version}";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pip/pip-${version}.tar.gz";
-      sha256 = "46f4bd0d8dfd51125a554568d646fe4200a3c2c6c36b9f2d06d2212148439521";
+      sha256 = "160pa7xg0vybidhszd1n0ik2xah0yz6gsym5hp8k7dmfd83d6y1y";
     };
 
     # pip detects that we already have bootstrapped_pip "installed", so we need
     # to force it a little.
     installFlags = [ "--ignore-installed" ];
 
-    buildInputs = with self; [ mock scripttest virtualenv pytest ];
+    buildInputs = with self; [ mock scripttest virtualenv pretend pytest ];
   };
 
 
@@ -19412,7 +19479,7 @@ in modules // {
       url = "https://pypi.python.org/packages/source/s/scipy/scipy-${version}.tar.gz";
       sha256 = "f600b755fb69437d0f70361f9e560ab4d304b1b66987ed5a28bdd9dd7793e089";
     };
-    numpy = self.numpy_1_10;
+    numpy = self.numpy;
   };
 
   scikitimage = buildPythonPackage rec {
@@ -20261,15 +20328,15 @@ in modules // {
 
   sipsimple = buildPythonPackage rec {
     name = "sipsimple-${version}";
-    version = "2.6.0";
+    version = "3.0.0";
     disabled = isPy3k;
 
     src = pkgs.fetchurl {
       url = "http://download.ag-projects.com/SipClient/python-${name}.tar.gz";
-      sha256 = "0xcyasas28q1ad1hgw4vd62b72mf1sng7xwfcls6dc05k9p3q8v3";
+      sha256 = "1q35kgz151rr99240jq55rs39y741m8shh9yihl3x95rkjxchji4";
     };
 
-    propagatedBuildInputs = with self; [ cython pkgs.openssl dns dateutil xcaplib msrplib lxml ];
+    propagatedBuildInputs = with self; [ cython pkgs.openssl dns dateutil xcaplib msrplib lxml python-otr ];
     buildInputs = with pkgs; [ alsaLib ffmpeg libv4l pkgconfig sqlite libvpx ];
   };
 
@@ -22542,12 +22609,15 @@ in modules // {
   };
 
   xcaplib = buildPythonPackage rec {
-    name = "python-xcaplib-${version}";
-    version = "1.1.0";
+    pname = "python-xcaplib";
+    name = "${pname}-${version}";
+    version = "1.2.0";
+    disabled = isPy3k;
 
-    src = pkgs.fetchurl {
-      url = "http://download.ag-projects.com/XCAP/${name}.tar.gz";
-      sha256 = "2f8ea6fe7d005104ef1d854aa87bd8ee85ca242a70cde42f409f8e5557f864b3";
+    src = pkgs.fetchdarcs {
+      url = "http://devel.ag-projects.com/repositories/${pname}";
+      rev = "release-${version}";
+      sha256 = "0vna5r4ihv7z1yx6r93954jqskcxky77znzy1m9dg9vna1dgwfdn";
     };
 
     propagatedBuildInputs = with self; [ eventlib application ];