about summary refs log tree commit diff
path: root/pkgs/top-level
diff options
context:
space:
mode:
authorMatthew Justin Bauer <mjbauer95@gmail.com>2018-03-22 11:29:45 -0500
committerGitHub <noreply@github.com>2018-03-22 11:29:45 -0500
commit68f691508333a0e718203be8dfeb824d0bebe659 (patch)
tree054fdb83fb9baacb1b9b2911ca807581e74d9852 /pkgs/top-level
parentbda581585185b167192d10148caea21448514204 (diff)
parent66b1712a6278d974a4ea7c6997fa70c19cc87701 (diff)
Merge branch 'master' into hyper-haskell
Diffstat (limited to 'pkgs/top-level')
-rw-r--r--pkgs/top-level/aliases.nix96
-rw-r--r--pkgs/top-level/all-packages.nix5245
-rw-r--r--pkgs/top-level/beam-packages.nix22
-rw-r--r--pkgs/top-level/coq-packages.nix81
-rw-r--r--pkgs/top-level/darwin-packages.nix68
-rw-r--r--pkgs/top-level/default.nix6
-rw-r--r--pkgs/top-level/dotnet-packages.nix29
-rw-r--r--pkgs/top-level/emacs-packages.nix66
-rw-r--r--pkgs/top-level/emscripten-packages.nix129
-rw-r--r--pkgs/top-level/haskell-packages.nix263
-rw-r--r--pkgs/top-level/impure.nix40
-rw-r--r--pkgs/top-level/java-packages.nix3
-rw-r--r--pkgs/top-level/lua-packages.nix613
-rw-r--r--pkgs/top-level/make-tarball.nix6
-rw-r--r--pkgs/top-level/metrics.nix13
-rw-r--r--pkgs/top-level/node-packages-generated.nix53358
-rw-r--r--pkgs/top-level/node-packages.json192
-rw-r--r--pkgs/top-level/node-packages.nix102
-rw-r--r--pkgs/top-level/ocaml-packages.nix167
-rw-r--r--pkgs/top-level/perl-packages.nix1506
-rw-r--r--pkgs/top-level/php-packages.nix297
-rw-r--r--pkgs/top-level/python-packages.nix12619
-rw-r--r--pkgs/top-level/release-cross.nix41
-rw-r--r--pkgs/top-level/release-lib.nix47
-rw-r--r--pkgs/top-level/release-small.nix25
-rw-r--r--pkgs/top-level/release.nix153
-rw-r--r--pkgs/top-level/rust-packages.nix46
-rw-r--r--pkgs/top-level/splice.nix86
-rw-r--r--pkgs/top-level/stage.nix14
29 files changed, 8037 insertions, 67296 deletions
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index c47e3fe325bf9..4e91dee6a405c 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -24,68 +24,104 @@ in
   ### Deprecated aliases - for backward compatibility
 
 mapAliases (rec {
-  accounts-qt = libsForQt5.accounts-qt;  # added 2015-12-19
-  adobeReader = adobe-reader;
+  _2048-in-terminal = "2048-in-terminal"; # added 2017-01-16
+  _2bwm = "2bwm"; # added 2017-01-16
+  _389-ds-base = "389-ds-base"; # added 2017-01-16
+  _90secondportraits = "90secondsportraits"; # added 2017-01-16
+  accounts-qt = libsForQt5.accounts-qt; # added 2015-12-19
+  adobeReader = adobe-reader; # added 2013-11-04
   aircrackng = aircrack-ng; # added 2016-01-14
   ammonite-repl = ammonite; # added 2017-05-02
   arduino_core = arduino-core;  # added 2015-02-04
   asciidocFull = asciidoc-full;  # added 2014-06-22
-  bar = lemonbar;  # added 2015-01-16
+  at_spi2_atk = at-spi2-atk; # added 2018-02-25
+  at_spi2_core = at-spi2-core; # added 2018-02-25
   bar-xft = lemonbar-xft;  # added 2015-01-16
   bashCompletion = bash-completion; # Added 2016-09-28
   bridge_utils = bridge-utils;  # added 2015-02-20
   btrfsProgs = btrfs-progs; # added 2016-01-03
   bundler_HEAD = bundler; # added 2015-11-15
+  cantarell_fonts = cantarell-fonts; # added 2018-03-03
   checkbashism = checkbashisms; # added 2016-08-16
   cifs_utils = cifs-utils; # added 2016-08
   clangAnalyzer = clang-analyzer;  # added 2015-02-20
   clawsMail = claws-mail; # added 2016-04-29
+  clutter_gtk = clutter-gtk; # added 2018-02-25
   conkerorWrapper = conkeror; # added 2015-01
   cool-old-term = cool-retro-term; # added 2015-01-31
   cupsBjnp = cups-bjnp; # added 2016-01-02
   cups_filters = cups-filters; # added 2016-08
   cv = progress; # added 2015-09-06
+  dbus_glib = dbus-glib; # added 2018-02-25
+  deadbeef-mpris2-plugin = deadbeefPlugins.mpris2; # added 2018-02-23
   debian_devscripts = debian-devscripts; # added 2016-03-23
+  desktop_file_utils = desktop-file-utils; # added 2018-02-25
   digikam5 = digikam; # added 2017-02-18
+  double_conversion = double-conversion; # 2017-11-22
   dwarf_fortress = dwarf-fortress; # added 2016-01-23
   dwbWrapper = dwb; # added 2015-01
   enblendenfuse = enblend-enfuse; # 2015-09-30
+  evolution_data_server = evolution-data-server; # added 2018-02-25
   exfat-utils = exfat;                  # 2015-09-11
   firefox-esr-wrapper = firefox-esr;  # 2016-01
   firefox-wrapper = firefox;          # 2016-01
   firefoxWrapper = firefox;           # 2015-09
+  font-awesome-ttf = font-awesome_4; # 2018-02-25
   foomatic_filters = foomatic-filters;  # 2016-08
   fuse_exfat = exfat;                   # 2015-09-11
   gettextWithExpat = gettext; # 2016-02-19
+  gdb-multitarget = gdb; # added 2017-11-13
   git-hub = gitAndTools.git-hub; # added 2016-04-29
+  glib_networking = glib-networking; # added 2018-02-25
+  go-pup = pup; # added 2017-12-19
   googleAuthenticator = google-authenticator; # added 2016-10-16
+  gnome_doc_utils = gnome-doc-utils; # added 2018-02-25
+  gnome-themes-standard = gnome-themes-extra; # added 2018-03-14
+  gnome_themes_standard = gnome-themes-standard; # added 2018-02-25
   grantlee5 = libsForQt5.grantlee;  # added 2015-12-19
+  gsettings_desktop_schemas = gsettings-desktop-schemas; # added 2018-02-25
   gst_ffmpeg = gst-ffmpeg;  # added 2017-02
   gst_plugins_base = gst-plugins-base;  # added 2017-02
   gst_plugins_good = gst-plugins-good;  # added 2017-02
   gst_plugins_bad = gst-plugins-bad;  # added 2017-02
   gst_plugins_ugly = gst-plugins-ugly;  # added 2017-02
   gst_python = gst-python;  # added 2017-02
+  gtk_doc = gtk-doc; # added 2018-02-25
+  guileCairo = guile-cairo; # added 2017-09-24
+  guileGnome = guile-gnome; # added 2017-09-24
+  guile_lib = guile-lib; # added 2017-09-24
+  guileLint = guile-lint; # added 2017-09-27
+  guile_ncurses = guile-ncurses; # added 2017-09-24
+  gupnp_av = gupnp-av; # added 2018-02-25
+  gupnp_dlna = gupnp-dlna; # added 2018-02-25
+  gupnp_igd = gupnp-igd; # added 2018-02-25
   gupnptools = gupnp-tools;  # added 2015-12-19
   gnustep-make = gnustep.make; # added 2016-7-6
+  hicolor_icon_theme = hicolor-icon-theme; # added 2018-02-25
   htmlTidy = html-tidy;  # added 2014-12-06
   iana_etc = iana-etc;  # added 2017-03-08
   idea = jetbrains; # added 2017-04-03
-  inherit (haskell.compiler) jhc uhc;   # 2015-05-15
   inotifyTools = inotify-tools;
   joseki = apache-jena-fuseki; # added 2016-02-28
-  jquery_ui = jquery-ui;  # added 2014-09-07
+  json_glib = json-glib; # added 2018-02-25
   kdiff3-qt5 = kdiff3; # added 2017-02-18
   keepassx2-http = keepassx-reboot; # added 2016-10-17
   keepassx-reboot = keepassx-community; # added 2017-02-01
+  keepassx-community = keepassxc; # added 2017-11
   keybase-go = keybase;  # added 2016-08-24
   krename-qt5 = krename; # added 2017-02-18
   letsencrypt = certbot; # added 2016-05-16
   libdbusmenu_qt5 = libsForQt5.libdbusmenu;  # added 2015-12-19
+  libcanberra_gtk2 = libcanberra-gtk2; # added 2018-02-25
+  libcanberra_gtk3 = libcanberra-gtk3; # added 2018-02-25
   libcap_manpages = libcap.doc; # added 2016-04-29
   libcap_pam = if stdenv.isLinux then libcap.pam else null; # added 2016-04-29
   libcap_progs = libcap.out; # added 2016-04-29
+  libgnome_keyring = libgnome-keyring; # added 2018-02-25
+  libgnome_keyring3 = libgnome-keyring3; # added 2018-02-25
+  libgumbo = gumbo; # added 2018-01-21
   libjson_rpc_cpp = libjson-rpc-cpp; # added 2017-02-28
+  libmysql = mysql.connector-c; # added # 2017-12-28, this was a misnomer refering to libmysqlclient
   libtidy = html-tidy;  # added 2014-12-21
   links = links2; # added 2016-01-31
   lttngTools = lttng-tools;  # added 2014-07-31
@@ -96,22 +132,43 @@ mapAliases (rec {
   m3d-linux = m33-linux; # added 2016-08-13
   manpages = man-pages; # added 2015-12-06
   man_db = man-db; # added 2016-05
+  piwik = matomo; # added 2018-01-16
   midoriWrapper = midori; # added 2015-01
+  minc_tools = minc-tools; # 2017-12
   mlt-qt5 = libsForQt5.mlt;  # added 2015-12-19
+  mobile_broadband_provider_info = mobile-broadband-provider-info; # added 2018-02-25
   module_init_tools = kmod; # added 2016-04-22
   mssys = ms-sys; # added 2015-12-13
   multipath_tools = multipath-tools;  # added 2016-01-21
   mupen64plus1_5 = mupen64plus; # added 2016-02-12
   mysqlWorkbench = mysql-workbench; # added 2017-01-19
   ncat = nmap;  # added 2016-01-26
+  networkmanager_fortisslvpn = networkmanager-fortisslvpn; # added 2018-02-25
+  networkmanager_iodine = networkmanager-iodine; # added 2018-02-25
+  networkmanager_l2tp = networkmanager-l2tp; # added 2018-02-25
+  networkmanager_openconnect = networkmanager-openconnect; # added 2018-02-25
+  networkmanager_openvpn = networkmanager-openvpn; # added 2018-02-25
+  networkmanager_pptp = networkmanager-pptp; # added 2018-02-25
+  networkmanager_vpnc = networkmanager-vpnc; # added 2018-02-25
   nmap_graphical = nmap-graphical;  # added 2017-01-19
   nfsUtils = nfs-utils;  # added 2014-12-06
   opencl-icd = ocl-icd; # added 2017-01-20
+  openssh_with_kerberos = openssh; # added 2018-01-28
   owncloudclient = owncloud-client;  # added 2016-08
+  p11_kit = p11-kit; # added 2018-02-25
   pgp-tools = signing-party; # added 2017-03-26
   pidgin-with-plugins = pidgin; # added 2016-06
-  pidginlatexSF = pidginlatex; # added 2014-11-02
+  pidginlatexSF = pidgin-latex; # added 2014-11-02
+  pidginlatex = pidgin-latex; # added 2018-01-08
+  pidginmsnpecan = pidgin-msn-pecan; # added 2018-01-08
+  pidginotr = pidgin-otr; # added 2018-01-08
+  pidginosd = pidgin-osd; # added 2018-01-08
+  pidginsipe = pidgin-sipe; # added 2018-01-08
+  pidginwindowmerge = pidgin-window-merge; # added 2018-01-08
+  postage = pgmanage; # added 2017-11-03
   poppler_qt5 = libsForQt5.poppler;  # added 2015-12-19
+  PPSSPP = ppsspp; # added 2017-10-01
+  prometheus-statsd-bridge = prometheus-statsd-exporter;  # added 2017-08-27
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   QmidiNet = qmidinet;  # added 2016-05-22
   qt_gstreamer = qt-gstreamer;  # added 2017-02
@@ -119,30 +176,55 @@ mapAliases (rec {
   quake3game = ioquake3; # added 2016-01-14
   qwt6 = libsForQt5.qwt;  # added 2015-12-19
   rdiff_backup = rdiff-backup;  # added 2014-11-23
+  rdmd = dtools;  # added 2017-08-19
+  robomongo = robo3t; #added 2017-09-28
   rssglx = rss-glx; #added 2015-03-25
+  ruby_2_0_0 = throw "deprecated 2018-0213: use a newer version of ruby";
+  ruby_2_1_0 = throw "deprecated 2018-0213: use a newer version of ruby";
+  ruby_2_2_9 = throw "deprecated 2018-0213: use ruby_2_2 instead";
+  ruby_2_3_6 = throw "deprecated 2018-0213: use ruby_2_3 instead";
+  ruby_2_4_3 = throw "deprecated 2018-0213: use ruby_2_4 instead";
+  ruby_2_5_0 = throw "deprecated 2018-0213: use ruby_2_5 instead";
   rubygems = throw "deprecated 2016-03-02: rubygems is now bundled with ruby";
-  rustUnstable = rustNightly; # added 2016-11-29
   rxvt_unicode_with-plugins = rxvt_unicode-with-plugins; # added 2015-04-02
   samsungUnifiedLinuxDriver = samsung-unified-linux-driver; # added 2016-01-25
   saneBackends = sane-backends; # added 2016-01-02
   saneBackendsGit = sane-backends-git; # added 2016-01-02
   saneFrontends = sane-frontends; # added 2016-01-02
   scim = sc-im; # added 2016-01-22
+  shared_mime_info = shared-mime-info; # added 2018-02-25
   skrooge2 = skrooge; # added 2017-02-18
+  skype = skypeforlinux; # added 2017-07-27
   spaceOrbit = space-orbit; # addewd 2016-05-23
   speedtest_cli = speedtest-cli;  # added 2015-02-17
+  spice_gtk = spice-gtk; # added 2018-02-25
+  spice_protocol = spice-protocol; # added 2018-02-25
   sqliteInteractive = sqlite-interactive;  # added 2014-12-06
+  sshfs = sshfs-fuse; # added 2017-08-14
   sshfsFuse = sshfs-fuse; # added 2016-09
   surf-webkit2 = surf; # added 2017-04-02
   system_config_printer = system-config-printer;  # added 2016-01-03
+  telepathy_farstream = telepathy-farstream; # added 2018-02-25
+  telepathy_gabble = telepathy-gabble; # added 2018-02-25
+  telepathy_glib = telepathy-glib; # added 2018-02-25
+  telepathy_haze = telepathy-haze; # added 2018-02-25
+  telepathy_idle = telepathy-idle; # added 2018-02-25
+  telepathy_logger = telepathy-logger; # added 2018-02-25
+  telepathy_mission_control = telepathy-mission-control; # added 2018-02-25
+  telepathy_qt = telepathy-qt; # added 2018-02-25
   telepathy_qt5 = libsForQt5.telepathy;  # added 2015-12-19
+  telepathy_salut = telepathy-salut; # added 2018-02-25
   tftp_hpa = tftp-hpa; # added 2015-04-03
+  transmission_gtk = transmission-gtk; # added 2018-01-06
+  transmission_remote_gtk = transmission-remote-gtk; # added 2018-01-06
   ucsFonts = ucs-fonts; # added 2016-07-15
+  ultrastardx-beta = ultrastardx; # added 2017-08-12
   usb_modeswitch = usb-modeswitch; # added 2016-05-10
   vimbWrapper = vimb; # added 2015-01
   vimprobable2Wrapper = vimprobable2; # added 2015-01
   virtviewer = virt-viewer; # added 2015-12-24
   vorbisTools = vorbis-tools; # added 2016-01-26
+  winusb = woeusb; # added 2017-12-22
   x11 = xlibsWrapper; # added 2015-09
   xf86_video_nouveau = xorg.xf86videonouveau; # added 2015-09
   xlibs = xorg; # added 2015-09
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 50939db072c38..a386cf8a1c3b5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -27,18 +27,14 @@ with pkgs;
   # Used by wine, firefox with debugging version of Flash, ...
   pkgsi686Linux = forceSystem "i686-linux" "i386";
 
-  callPackage_i686 = pkgsi686Linux.callPackage;
-
-  forcedNativePackages = if hostPlatform == buildPlatform then pkgs else buildPackages;
+  callPackage_i686 = if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
+    then pkgsi686Linux.callPackage
+    else throw "callPackage_i686 not supported on system '${stdenv.system}'";
 
   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
   # it uses GCC compiled with multilib support; on i686-linux, it's
   # just the plain stdenv.
-  stdenv_32bit = lowPrio (
-    if system == "x86_64-linux" then
-      overrideCC stdenv gcc_multi
-    else
-      stdenv);
+  stdenv_32bit = lowPrio (if hostPlatform.is32bit then stdenv else multiStdenv);
 
   stdenvNoCC = stdenv.override { cc = null; };
 
@@ -50,7 +46,6 @@ with pkgs;
   inherit lib config;
 
   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
-  inherit (misc) versionedDerivation;
 
   # Applying this to an attribute set will cause nix-env to look
   # inside the set for derivations.
@@ -58,6 +53,13 @@ with pkgs;
 
   stringsWithDeps = lib.stringsWithDeps;
 
+  ### Evaluating the entire Nixpkgs naively will fail, make failure fast
+  AAAAAASomeThingsFailToEvaluate = throw ''
+    Please be informed that this pseudo-package is not the only part of
+    Nixpkgs that fails to evaluate. You should not evaluate entire Nixpkgs
+    without some special measures to handle failing packages, like those taken
+    by Hydra.
+  '';
 
   ### Nixpkgs maintainer tools
 
@@ -70,9 +72,17 @@ with pkgs;
   ### BUILD SUPPORT
 
   autoreconfHook = makeSetupHook
-    { substitutions = { inherit autoconf automake gettext libtool; }; }
+    { deps = [ autoconf automake gettext libtool ]; }
     ../build-support/setup-hooks/autoreconf.sh;
 
+  autoreconfHook264 = makeSetupHook
+    { deps = [ autoconf264 automake111x gettext libtool ]; }
+    ../build-support/setup-hooks/autoreconf.sh;
+
+  autoPatchelfHook = makeSetupHook
+    { deps = [ file ]; }
+    ../build-support/setup-hooks/auto-patchelf.sh;
+
   ensureNewerSourcesHook = { year }: makeSetupHook {}
     (writeScript "ensure-newer-sources-hook.sh" ''
       postUnpackHooks+=(_ensureNewerSources)
@@ -82,10 +92,19 @@ with pkgs;
       }
     '');
 
+  # Zip file format only allows times after year 1980, which makes e.g. Python wheel building fail with:
+  # ValueError: ZIP does not support timestamps before 1980
+  ensureNewerSourcesForZipFilesHook = ensureNewerSourcesHook { year = "1980"; };
+
   updateAutotoolsGnuConfigScriptsHook = makeSetupHook
     { substitutions = { gnu_config = gnu-config;}; }
     ../build-support/setup-hooks/update-autotools-gnu-config-scripts.sh;
 
+  gogUnpackHook = makeSetupHook {
+    name = "gog-unpack-hook";
+    deps = [ innoextract file-rename ]; }
+    ../build-support/setup-hooks/gog-unpack.sh;
+
   buildEnv = callPackage ../build-support/buildenv { }; # not actually a package
 
   buildFHSUserEnv = callPackage ../build-support/build-fhs-userenv { };
@@ -95,36 +114,42 @@ with pkgs;
   cmark = callPackage ../development/libraries/cmark { };
 
   dhallToNix = callPackage ../build-support/dhall-to-nix.nix {
-    inherit (haskellPackages) dhall-nix;
+    inherit dhall-nix;
   };
 
   diffPlugins = (callPackage ../build-support/plugins.nix {}).diffPlugins;
 
-  dockerTools = callPackage ../build-support/docker { };
+  dieHook = makeSetupHook {} ../build-support/setup-hooks/die.sh;
+
+  digitalbitbox = libsForQt5.callPackage ../applications/misc/digitalbitbox { };
+
+  # go 1.9 pin until https://github.com/moby/moby/pull/35739
+  dockerTools = callPackage ../build-support/docker { go = go_1_9; };
 
   docker_compose = pythonPackages.docker_compose;
 
+  docker-ls = callPackage ../tools/misc/docker-ls { };
+
+  dotfiles = callPackage ../applications/misc/dotfiles { };
+
   dotnetenv = callPackage ../build-support/dotnetenv {
     dotnetfx = dotnetfx40;
   };
 
   dotnetbuildhelpers = callPackage ../build-support/dotnetbuildhelpers { };
 
+  dotnet-sdk = callPackage ../development/compilers/dotnet/sdk/default.nix { };
+
   dispad = callPackage ../tools/X11/dispad { };
 
+  dump1090 = callPackage ../applications/misc/dump1090 { };
+
+  ebook2cw = callPackage ../applications/misc/ebook2cw { };
+
   vsenv = callPackage ../build-support/vsenv {
     vs = vs90wrapper;
   };
 
-  fetchadc = callPackage ../build-support/fetchadc {
-    adc_user = if config ? adc_user
-      then config.adc_user
-      else throw "You need an adc_user attribute in your config to download files from Apple Developer Connection";
-    adc_pass = if config ? adc_pass
-      then config.adc_pass
-      else throw "You need an adc_pass attribute in your config to download files from Apple Developer Connection";
-  };
-
   fetchbower = callPackage ../build-support/fetchbower {
     inherit (nodePackages) bower2nix;
   };
@@ -135,6 +160,12 @@ with pkgs;
 
   fetchdarcs = callPackage ../build-support/fetchdarcs { };
 
+  fetchdocker = callPackage ../build-support/fetchdocker { };
+
+  fetchDockerConfig = callPackage ../build-support/fetchdocker/fetchDockerConfig.nix { };
+
+  fetchDockerLayer = callPackage ../build-support/fetchdocker/fetchDockerLayer.nix { };
+
   fetchfossil = callPackage ../build-support/fetchfossil { };
 
   fetchgit = callPackage ../build-support/fetchgit {
@@ -143,16 +174,18 @@ with pkgs;
 
   fetchgitPrivate = callPackage ../build-support/fetchgit/private.nix { };
 
-  fetchgitrevision = import ../build-support/fetchgitrevision runCommand git;
-
   fetchgitLocal = callPackage ../build-support/fetchgitlocal { };
 
   fetchmtn = callPackage ../build-support/fetchmtn (config.fetchmtn or {});
 
   fetchMavenArtifact = callPackage ../build-support/fetchmavenartifact { };
 
+  graph-easy = callPackage ../tools/graphics/graph-easy { };
+
   packer = callPackage ../development/tools/packer { };
 
+  mht2htm = callPackage ../tools/misc/mht2htm { };
+
   fetchpatch = callPackage ../build-support/fetchpatch { };
 
   fetchs3 = callPackage ../build-support/fetchs3 { };
@@ -171,11 +204,18 @@ with pkgs;
 
   # `fetchurl' downloads a file from the network.
   fetchurl = import ../build-support/fetchurl {
-    inherit curl stdenv;
+    inherit lib stdenvNoCC;
+    # On darwin, libkrb5 needs bootstrap_cmds which would require
+    # converting many packages to fetchurl_boot to avoid evaluation cycles.
+    curl = buildPackages.curl.override (lib.optionalAttrs stdenv.isDarwin { gssSupport = false; });
   };
 
   fetchRepoProject = callPackage ../build-support/fetchrepoproject { };
 
+  fetchipfs = import ../build-support/fetchipfs {
+    inherit curl stdenv;
+  };
+
   # fetchurlBoot is used for curl and its dependencies in order to
   # prevent a cyclic dependency (curl depends on curl.tar.bz2,
   # curl.tar.bz2 depends on fetchurl, fetchurl depends on curl).  It
@@ -185,10 +225,10 @@ with pkgs;
 
   fetchzip = callPackage ../build-support/fetchzip { };
 
-  gitRepoToName = callPackage ../build-support/fetchgit/gitrepotoname.nix { };
+  fetchCrate = callPackage ../build-support/rust/fetchcrate.nix { };
 
   fetchFromGitHub = {
-    owner, repo, rev, name ? gitRepoToName repo rev,
+    owner, repo, rev, name ? "source",
     fetchSubmodules ? false, private ? false,
     githubBase ? "github.com", varPrefix ? null,
     ... # For hash agility
@@ -197,19 +237,10 @@ with pkgs;
     baseUrl = "https://${githubBase}/${owner}/${repo}";
     passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "private" "githubBase" "varPrefix" ];
     varBase = "NIX${if varPrefix == null then "" else "_${varPrefix}"}_GITHUB_PRIVATE_";
-  in if fetchSubmodules then
-    fetchgit ({
-      inherit name rev fetchSubmodules;
-      url = "${baseUrl}.git";
-    } // passthruAttrs)
-  else
     # We prefer fetchzip in cases we don't need submodules as the hash
     # is more stable in that case.
-    fetchzip ({
-      inherit name;
-      url = "${baseUrl}/archive/${rev}.tar.gz";
-      meta.homepage = "${baseUrl}/";
-    } // lib.optionalAttrs private {
+    fetcher = if fetchSubmodules then fetchgit else fetchzip;
+    privateAttrs = lib.optionalAttrs private {
       netrcPhase = ''
         if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then
           echo "Error: Private fetchFromGitHub requires the nix building process (nix-daemon in multi user mode) to have the ${varBase}USERNAME and ${varBase}PASSWORD env vars set." >&2
@@ -222,10 +253,15 @@ with pkgs;
         EOF
       '';
       netrcImpureEnvVars = [ "${varBase}USERNAME" "${varBase}PASSWORD" ];
-    } // passthruAttrs) // { inherit rev; };
+    };
+    fetcherArgs = (if fetchSubmodules
+        then { inherit rev fetchSubmodules; url = "${baseUrl}.git"; }
+        else ({ url = "${baseUrl}/archive/${rev}.tar.gz"; } // privateAttrs)
+      ) // passthruAttrs // { inherit name; };
+  in fetcher fetcherArgs // { meta.homepage = baseUrl; inherit rev; };
 
   fetchFromBitbucket = {
-    owner, repo, rev, name ? gitRepoToName repo rev,
+    owner, repo, rev, name ? "source",
     ... # For hash agility
   }@args: fetchzip ({
     inherit name;
@@ -236,7 +272,7 @@ with pkgs;
 
   # cgit example, snapshot support is optional in cgit
   fetchFromSavannah = {
-    repo, rev, name ? gitRepoToName repo rev,
+    repo, rev, name ? "source",
     ... # For hash agility
   }@args: fetchzip ({
     inherit name;
@@ -246,7 +282,7 @@ with pkgs;
 
   # gitlab example
   fetchFromGitLab = {
-    owner, repo, rev, name ? gitRepoToName repo rev,
+    owner, repo, rev, name ? "source",
     ... # For hash agility
   }@args: fetchzip ({
     inherit name;
@@ -256,7 +292,7 @@ with pkgs;
 
   # gitweb example, snapshot support is optional in gitweb
   fetchFromRepoOrCz = {
-    repo, rev, name ? gitRepoToName repo rev,
+    repo, rev, name ? "source",
     ... # For hash agility
   }@args: fetchzip ({
     inherit name;
@@ -274,6 +310,9 @@ with pkgs;
     inherit url;
   };
 
+  ld-is-cc-hook = makeSetupHook { name = "ld-is-cc-hook"; }
+    ../build-support/setup-hooks/ld-is-cc-hook.sh;
+
   libredirect = callPackage ../build-support/libredirect { };
 
   madonctl = callPackage ../applications/misc/madonctl { };
@@ -287,17 +326,22 @@ with pkgs;
       inherit contents compressor prepend;
     };
 
-  makeWrapper = makeSetupHook { } ../build-support/setup-hooks/make-wrapper.sh;
+  makeWrapper = makeSetupHook { deps = [ dieHook ]; }
+                              ../build-support/setup-hooks/make-wrapper.sh;
 
-  makeModulesClosure = { kernel, rootModules, allowMissing ? false }:
+  makeModulesClosure = { kernel, firmware, rootModules, allowMissing ? false }:
     callPackage ../build-support/kernel/modules-closure.nix {
-      inherit kernel rootModules allowMissing;
+      inherit kernel firmware rootModules allowMissing;
     };
 
+  mkShell = callPackage ../build-support/mkshell { };
+
   nixBufferBuilders = import ../build-support/emacs/buffer.nix { inherit (pkgs) lib writeText; inherit (emacsPackagesNg) inherit-local; };
 
   pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
 
+  closureInfo = callPackage ../build-support/closure-info.nix { };
+
   setupSystemdUnits = callPackage ../build-support/setup-systemd-units.nix { };
 
   singularity-tools = callPackage ../build-support/singularity-tools { };
@@ -326,8 +370,6 @@ with pkgs;
 
   fixDarwinDylibNames = makeSetupHook { } ../build-support/setup-hooks/fix-darwin-dylib-names.sh;
 
-  fixDarwinFrameworks = makeSetupHook { } ../build-support/setup-hooks/fix-darwin-frameworks.sh;
-
   keepBuildTree = makeSetupHook { } ../build-support/setup-hooks/keep-build-tree.sh;
 
   enableGCOVInstrumentation = makeSetupHook { } ../build-support/setup-hooks/enable-coverage-instrumentation.sh;
@@ -347,6 +389,8 @@ with pkgs;
 
   separateDebugInfo = makeSetupHook { } ../build-support/setup-hooks/separate-debug-info.sh;
 
+  setupDebugInfoDirs = makeSetupHook { } ../build-support/setup-hooks/setup-debug-info-dirs.sh;
+
   useOldCXXAbi = makeSetupHook { } ../build-support/setup-hooks/use-old-cxx-abi.sh;
 
   iconConvTools = callPackage ../build-support/icon-conv-tools {};
@@ -358,6 +402,10 @@ with pkgs;
 
   a2ps = callPackage ../tools/text/a2ps { };
 
+  abcm2ps = callPackage ../tools/audio/abcm2ps { };
+
+  abcmidi = callPackage ../tools/audio/abcmidi { };
+
   abduco = callPackage ../tools/misc/abduco { };
 
   acbuild = callPackage ../applications/misc/acbuild { };
@@ -368,6 +416,8 @@ with pkgs;
     ffmpeg = ffmpeg_1;
   };
 
+  acpica-tools = callPackage ../tools/system/acpica-tools { };
+
   actdiag = pythonPackages.actdiag;
 
   actkbd = callPackage ../tools/system/actkbd { };
@@ -390,9 +440,15 @@ with pkgs;
 
   aescrypt = callPackage ../tools/misc/aescrypt { };
 
+  acme-client = callPackage ../tools/networking/acme-client { inherit (darwin) apple_sdk; };
+
+  afew = callPackage ../applications/networking/mailreaders/afew { pythonPackages = python3Packages; };
+
   afio = callPackage ../tools/archivers/afio { };
 
-  afl = callPackage ../tools/security/afl { };
+  afl = callPackage ../tools/security/afl {
+    stdenv = clangStdenv;
+  };
 
   afpfs-ng = callPackage ../tools/filesystems/afpfs-ng/default.nix { };
 
@@ -408,6 +464,12 @@ with pkgs;
 
   airfield = callPackage ../tools/networking/airfield { };
 
+  airsonic = callPackage ../servers/misc/airsonic { };
+
+  airspy = callPackage ../applications/misc/airspy { };
+
+  airtame = callPackage ../applications/misc/airtame { };
+
   aj-snapshot  = callPackage ../applications/audio/aj-snapshot { };
 
   albert = libsForQt5.callPackage ../applications/misc/albert {};
@@ -436,8 +498,6 @@ with pkgs;
 
   aptly = callPackage ../tools/misc/aptly { };
 
-  apulse = callPackage ../misc/apulse { };
-
   archivemount = callPackage ../tools/filesystems/archivemount { };
 
   arandr = callPackage ../tools/X11/arandr { };
@@ -453,7 +513,7 @@ with pkgs;
     withGui = false;
   };
 
-  apitrace = libsForQt56.callPackage ../applications/graphics/apitrace {};
+  apitrace = libsForQt5.callPackage ../applications/graphics/apitrace {};
 
   argus = callPackage ../tools/networking/argus {};
 
@@ -493,17 +553,19 @@ with pkgs;
 
   atomicparsley = callPackage ../tools/video/atomicparsley { };
 
-  attic = callPackage ../tools/backup/attic {
-    python3Packages = python34Packages;
-  };
+  autoflake = callPackage ../development/tools/analysis/autoflake { };
 
   avfs = callPackage ../tools/filesystems/avfs { };
 
-  awscli = pythonPackages.awscli; # Should be moved out of python-packages.nix
+  awscli = callPackage ../tools/admin/awscli { };
+
+  awsebcli = callPackage ../tools/virtualization/awsebcli {};
 
   awslogs = callPackage ../tools/admin/awslogs { };
 
-  aws_shell = python2Packages.aws_shell; # Should be moved out of python-packages.nix
+  aws_shell = pythonPackages.callPackage ../tools/admin/aws_shell { };
+
+  aws-vault = callPackage ../tools/admin/aws-vault { };
 
   azure-cli = nodePackages.azure-cli;
 
@@ -535,34 +597,50 @@ with pkgs;
 
   apt = callPackage ../tools/package-management/apt {
     inherit (perlPackages) Po4a;
+    # include/c++/6.4.0/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
+    stdenv = overrideCC stdenv gcc5;
   };
 
   autorevision = callPackage ../tools/misc/autorevision { };
 
   bcachefs-tools = callPackage ../tools/filesystems/bcachefs-tools { };
 
+  bmap-tools = callPackage ../tools/misc/bmap-tools { };
+
   bonnie = callPackage ../tools/filesystems/bonnie { };
 
+  bonfire = callPackage ../tools/misc/bonfire { };
+
   container-linux-config-transpiler = callPackage ../development/tools/container-linux-config-transpiler { };
 
+  chkcrontab = callPackage ../tools/admin/chkcrontab { };
+
   djmount = callPackage ../tools/filesystems/djmount { };
 
   dgsh = callPackage ../shells/dgsh { };
 
   dkimpy = pythonPackages.dkimpy;
 
+  ecdsautils = callPackage ../tools/security/ecdsautils { };
+
   elvish = callPackage ../shells/elvish { };
 
   encryptr = callPackage ../tools/security/encryptr {
     gconf = gnome2.GConf;
  };
 
+ enchive = callPackage ../tools/security/enchive { };
+
   enpass = callPackage ../tools/security/enpass { };
 
   ezstream = callPackage ../tools/audio/ezstream { };
 
   genymotion = callPackage ../development/mobile/genymotion { };
 
+  git-fire = callPackage ../tools/misc/git-fire { };
+
+  gitless = callPackage ../applications/version-management/gitless/default.nix { };
+
   grc = callPackage ../tools/misc/grc { };
 
   green-pdfviewer = callPackage ../applications/misc/green-pdfviewer {
@@ -573,9 +651,14 @@ with pkgs;
 
   glyr = callPackage ../tools/audio/glyr { };
 
+  imgpatchtools = callPackage ../development/mobile/imgpatchtools { };
+
   lastpass-cli = callPackage ../tools/security/lastpass-cli { };
 
   pass = callPackage ../tools/security/pass { };
+  pass-otp = callPackage ../tools/security/pass-otp { };
+
+  gopass = callPackage ../tools/security/gopass { };
 
   browserpass = callPackage ../tools/security/browserpass { };
 
@@ -591,6 +674,14 @@ with pkgs;
 
   reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace {};
 
+  skhd = callPackage ../os-specific/darwin/skhd {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  qes = callPackage ../os-specific/darwin/qes {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
   xcodeenv = callPackage ../development/mobile/xcodeenv { };
 
   titaniumenv = callPackage ../development/mobile/titaniumenv {
@@ -609,12 +700,21 @@ with pkgs;
 
   inherit (androidenv) androidndk;
 
-  androidsdk = androidenv.androidsdk_7_1_1;
+  androidsdk = androidenv.androidsdk_8_0;
+
+  androidsdk_extras = self.androidenv.androidsdk_8_0_extras;
 
-  androidsdk_extras = self.androidenv.androidsdk_7_1_1_extras;
+  webos = recurseIntoAttrs {
+    cmake-modules = callPackage ../development/mobile/webos/cmake-modules.nix { };
+
+    novacom = callPackage ../development/mobile/webos/novacom.nix { };
+    novacomd = callPackage ../development/mobile/webos/novacomd.nix { };
+  };
 
   arc-theme = callPackage ../misc/themes/arc { };
 
+  arc-kde-theme = callPackage ../misc/themes/arc-kde { };
+
   adapta-gtk-theme = callPackage ../misc/themes/adapta { };
 
   aria2 = callPackage ../tools/networking/aria2 {
@@ -622,9 +722,7 @@ with pkgs;
   };
   aria = aria2;
 
-  aspcud = callPackage ../tools/misc/aspcud {
-    boost = boost163;
-  };
+  aspcud = callPackage ../tools/misc/aspcud { };
 
   at = callPackage ../tools/system/at { };
 
@@ -642,6 +740,8 @@ with pkgs;
     qt4Support = config.avahi.qt4Support or false;
   };
 
+  avro-c = callPackage ../development/libraries/avro-c { };
+
   avro-cpp = callPackage ../development/libraries/avro-c++ { boost = boost160; };
 
   aws = callPackage ../tools/virtualization/aws { };
@@ -654,13 +754,22 @@ with pkgs;
     libssl = openssl;
   };
 
+  axoloti = callPackage ../applications/audio/axoloti { };
+  dfu-util-axoloti = callPackage ../applications/audio/axoloti/dfu-util.nix { };
+  libusb1-axoloti = callPackage ../applications/audio/axoloti/libusb1.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
   azureus = callPackage ../tools/networking/p2p/azureus { };
 
-  backblaze-b2 = callPackage ../development/tools/backblaze-b2 { };
+  backblaze-b2 = python.pkgs.callPackage ../development/tools/backblaze-b2 { };
 
   backup = callPackage ../tools/backup/backup { };
 
-  base16 = callPackage ../misc/base16 { };
+  bar = callPackage ../tools/system/bar {};
+
+  base16-builder = callPackage ../misc/base16-builder { };
 
   basex = callPackage ../tools/text/xml/basex { };
 
@@ -678,16 +787,29 @@ with pkgs;
 
   bdf2psf = callPackage ../tools/misc/bdf2psf { };
 
+  bcat = callPackage ../tools/text/bcat {};
+
   bcache-tools = callPackage ../tools/filesystems/bcache-tools { };
 
   bchunk = callPackage ../tools/cd-dvd/bchunk { };
 
-  inherit (callPackages ../misc/logging/beats { })
+  inherit (callPackages ../misc/logging/beats/5.x.nix { })
     filebeat
     heartbeat
     metricbeat
     packetbeat;
 
+  inherit (let beats6 = callPackages ../misc/logging/beats/6.x.nix { }; in {
+    filebeat6   = beats6.filebeat;
+    heartbeat6  = beats6.heartbeat;
+    metricbeat6 = beats6.metricbeat;
+    packetbeat6 = beats6.packetbeat;
+  })
+    filebeat6
+    heartbeat6
+    metricbeat6
+    packetbeat6;
+
   bfr = callPackage ../tools/misc/bfr { };
 
   bibtool = callPackage ../tools/misc/bibtool { };
@@ -704,6 +826,8 @@ with pkgs;
 
   blink = callPackage ../applications/networking/instant-messengers/blink { };
 
+  libqmatrixclient = libsForQt5.callPackage ../development/libraries/libqmatrixclient { };
+
   quaternion = libsForQt5.callPackage ../applications/networking/instant-messengers/quaternion { };
 
   tensor = libsForQt5.callPackage ../applications/networking/instant-messengers/tensor { };
@@ -716,17 +840,21 @@ with pkgs;
 
   blockdiag = pythonPackages.blockdiag;
 
+  blsd = callPackage ../tools/misc/blsd {
+    libgit2 = libgit2_0_25;
+  };
+
   bluez-tools = callPackage ../tools/bluetooth/bluez-tools { };
 
   bmon = callPackage ../tools/misc/bmon { };
 
   bochs = callPackage ../applications/virtualization/bochs { };
 
-  borgbackup = callPackage ../tools/backup/borg {
-    python3Packages = python34Packages;
-  };
+  bubblewrap = callPackage ../tools/admin/bubblewrap { };
 
-  boomerang = callPackage ../development/tools/boomerang { };
+  borgbackup = callPackage ../tools/backup/borg { };
+
+  boomerang = libsForQt5.callPackage ../development/tools/boomerang { };
 
   boost-build = callPackage ../development/tools/boost-build { };
 
@@ -734,6 +862,8 @@ with pkgs;
 
   bootchart = callPackage ../tools/system/bootchart { };
 
+  bowtie2 = callPackage ../applications/science/biology/bowtie2 { };
+
   boxfs = callPackage ../tools/filesystems/boxfs { };
 
   brasero-original = lowPrio (callPackage ../tools/cd-dvd/brasero { });
@@ -751,7 +881,6 @@ with pkgs;
   bsod = callPackage ../misc/emulators/bsod { };
 
   btrfs-progs = callPackage ../tools/filesystems/btrfs-progs { };
-  btrfs-progs_4_4_1 = callPackage ../tools/filesystems/btrfs-progs/4.4.1.nix { };
 
   btrfs-dedupe = callPackage ../tools/filesystems/btrfs-dedupe/default.nix {};
 
@@ -759,6 +888,8 @@ with pkgs;
 
   buildtorrent = callPackage ../tools/misc/buildtorrent { };
 
+  bustle = haskellPackages.bustle;
+
   bwm_ng = callPackage ../tools/networking/bwm-ng { };
 
   byobu = callPackage ../tools/misc/byobu {
@@ -773,9 +904,15 @@ with pkgs;
 
   btfs = callPackage ../os-specific/linux/btfs { };
 
+  buildah = callPackage ../development/tools/buildah { };
+
   burpsuite = callPackage ../tools/networking/burpsuite {};
 
-  c3d = callPackage ../applications/graphics/c3d {};
+  c3d = callPackage ../applications/graphics/c3d {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  cue2pops = callPackage ../tools/cd-dvd/cue2pops { };
 
   cabal2nix = haskell.lib.overrideCabal haskellPackages.cabal2nix (drv: {
     isLibrary = false;
@@ -788,8 +925,10 @@ with pkgs;
       makeWrapper $exe $out/bin/${drv.pname} \
         --prefix PATH ":" "${nix}/bin" \
         --prefix PATH ":" "${nix-prefetch-scripts}/bin"
-      mkdir -p $out/share/bash-completion/completions
+      mkdir -p $out/share/{bash-completion/completions,zsh/vendor-completions,fish/completions}
       $exe --bash-completion-script $exe >$out/share/bash-completion/completions/${drv.pname}
+      $exe --zsh-completion-script $exe >$out/share/zsh/vendor-completions/_${drv.pname}
+      $exe --fish-completion-script $exe >$out/share/fish/completions/${drv.pname}.fish
     '';
   });
 
@@ -802,8 +941,16 @@ with pkgs;
   });
 
   caddy = callPackage ../servers/caddy { };
+  traefik = callPackage ../servers/traefik { };
+
+  calamares = libsForQt59.callPackage ../tools/misc/calamares {
+    python = python3;
+    boost = pkgs.boost.override { python = python3; };
+    libyamlcpp = callPackage ../development/libraries/libyaml-cpp { inherit boost; };
+  };
 
   capstone = callPackage ../development/libraries/capstone { };
+  unicorn-emu = callPackage ../development/libraries/unicorn-emu { };
 
   cataract          = callPackage ../applications/misc/cataract { };
   cataract-unstable = callPackage ../applications/misc/cataract/unstable.nix { };
@@ -812,6 +959,8 @@ with pkgs;
 
   catdoc = callPackage ../tools/text/catdoc { };
 
+  catdocx = callPackage ../tools/text/catdocx { };
+
   catclock = callPackage ../applications/misc/catclock { };
 
   cde = callPackage ../tools/package-management/cde { };
@@ -850,8 +999,12 @@ with pkgs;
 
   clib = callPackage ../tools/package-management/clib { };
 
+  clingo = callPackage ../applications/science/logic/potassco/clingo.nix { };
+
   colord-kde = libsForQt5.callPackage ../tools/misc/colord-kde {};
 
+  colpack = callPackage ../applications/science/math/colpack { };
+
   consul = callPackage ../servers/consul { };
 
   consul-ui = callPackage ../servers/consul/ui.nix { };
@@ -890,10 +1043,14 @@ with pkgs;
 
   coursier = callPackage ../development/tools/coursier {};
 
+  cri-tools = callPackage ../tools/virtualization/cri-tools {};
+
   crunch = callPackage ../tools/security/crunch { };
 
   crudini = callPackage ../tools/misc/crudini { };
 
+  cucumber = callPackage ../development/tools/cucumber {};
+
   daemontools = callPackage ../tools/admin/daemontools { };
 
   dale = callPackage ../development/compilers/dale { };
@@ -906,6 +1063,8 @@ with pkgs;
 
   dateutils = callPackage ../tools/misc/dateutils { };
 
+  ddar = pythonPackages.callPackage ../tools/backup/ddar { };
+
   ddate = callPackage ../tools/misc/ddate { };
 
   dehydrated = callPackage ../tools/admin/dehydrated { };
@@ -914,8 +1073,12 @@ with pkgs;
 
   deisctl = callPackage ../development/tools/deisctl {};
 
+  deja-dup = callPackage ../applications/backup/deja-dup { };
+
   devmem2 = callPackage ../os-specific/linux/devmem2 { };
 
+  dbus-broker = callPackage ../os-specific/linux/dbus-broker { };
+
   ioport = callPackage ../os-specific/linux/ioport {};
 
   diagrams-builder = callPackage ../tools/graphics/diagrams-builder {
@@ -951,6 +1114,8 @@ with pkgs;
 
   dlx = callPackage ../misc/emulators/dlx { };
 
+  doitlive = callPackage ../tools/misc/doitlive { };
+
   dosage = pythonPackages.dosage;
 
   dpic = callPackage ../tools/graphics/dpic { };
@@ -959,6 +1124,8 @@ with pkgs;
     gtk = gtk3;
   };
 
+  dtools = callPackage ../development/tools/dtools { };
+
   dtrx = callPackage ../tools/compression/dtrx { };
 
   duperemove = callPackage ../tools/filesystems/duperemove { };
@@ -975,6 +1142,8 @@ with pkgs;
 
   elementary-icon-theme = callPackage ../data/icons/elementary-icon-theme { };
 
+  elementary-xfce-icon-theme = callPackage ../data/icons/elementary-xfce-icon-theme { };
+
   elm-github-install = callPackage ../tools/package-management/elm-github-install { };
 
   emby = callPackage ../servers/emby { };
@@ -985,26 +1154,38 @@ with pkgs;
 
   envconsul = callPackage ../tools/system/envconsul { };
 
+  eschalot = callPackage ../tools/security/eschalot { };
+
   esptool = callPackage ../tools/misc/esptool { };
 
   esptool-ck = callPackage ../tools/misc/esptool-ck { };
 
+  ephemeralpg = callPackage ../applications/misc/ephemeralpg {};
+
+  et = callPackage ../applications/misc/et {};
+
+  eternal-terminal = callPackage ../tools/networking/eternal-terminal {};
+
   f3 = callPackage ../tools/filesystems/f3 { };
 
-  facter = callPackage ../tools/system/facter {
-    boost = boost160;
-  };
+  fac = callPackage ../development/tools/fac { };
+
+  facedetect = callPackage ../tools/graphics/facedetect { };
+
+  facter = callPackage ../tools/system/facter { };
 
   fasd = callPackage ../tools/misc/fasd { };
 
   fastJson = callPackage ../development/libraries/fastjson { };
 
-  fast-cli = nodePackages.fast-cli.overrideDerivation (old: {
-    buildInputs = old.buildInputs ++ [phantomjs2];
-  });
+  fast-cli = nodePackages.fast-cli;
+
+  fd = callPackage ../tools/misc/fd { };
 
   filebench = callPackage ../tools/misc/filebench { };
 
+  fileshelter = callPackage ../servers/web-apps/fileshelter { };
+
   fsmon = callPackage ../tools/misc/fsmon { };
 
   fsql = callPackage ../tools/misc/fsql { };
@@ -1031,23 +1212,45 @@ with pkgs;
 
   go-dependency-manager = callPackage ../development/tools/gdm { };
 
+  geckodriver = callPackage ../development/tools/geckodriver { };
+
+  geekbench = callPackage ../tools/misc/geekbench { };
+
   gencfsm = callPackage ../tools/security/gencfsm { };
 
   genromfs = callPackage ../tools/filesystems/genromfs { };
 
+  gh-ost = callPackage ../tools/misc/gh-ost { };
+
   gist = callPackage ../tools/text/gist { };
 
+  gixy = callPackage ../tools/admin/gixy { };
+
+  gllvm = callPackage ../development/tools/gllvm { };
+
   glide = callPackage ../development/tools/glide { };
 
   glock = callPackage ../development/tools/glock { };
 
+  glslviewer = callPackage ../development/tools/glslviewer {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
   gmic = callPackage ../tools/graphics/gmic { };
 
   goa = callPackage ../development/tools/goa { };
 
   gorilla-bin = callPackage ../tools/security/gorilla-bin { };
 
-  gringo = callPackage ../tools/misc/gringo { };
+  gosu = callPackage ../tools/misc/gosu { };
+
+  greg = callPackage ../applications/audio/greg {
+    pythonPackages = python3Packages;
+  };
+
+  gringo = callPackage ../tools/misc/gringo { scons = scons_2_5_1; };
+
+  grobi = callPackage ../tools/X11/grobi { };
 
   gti = callPackage ../tools/misc/gti { };
 
@@ -1059,10 +1262,14 @@ with pkgs;
 
   hid-listen = callPackage ../tools/misc/hid-listen { };
 
+  home-manager = callPackage ../tools/package-management/home-manager {};
+
   hostsblock = callPackage ../tools/misc/hostsblock { };
 
   hr = callPackage ../applications/misc/hr { };
 
+  hyx = callPackage ../tools/text/hyx { };
+
   icdiff = callPackage ../tools/text/icdiff {};
 
   interlock = callPackage ../servers/interlock {};
@@ -1071,6 +1278,10 @@ with pkgs;
 
   kapacitor = callPackage ../servers/monitoring/kapacitor { };
 
+  kisslicer = callPackage ../tools/misc/kisslicer { };
+
+  klaus = callPackage ../servers/web-apps/klaus { };
+
   lcdproc = callPackage ../servers/monitoring/lcdproc { };
 
   languagetool = callPackage ../tools/text/languagetool {  };
@@ -1081,32 +1292,62 @@ with pkgs;
 
   iio-sensor-proxy = callPackage ../os-specific/linux/iio-sensor-proxy { };
 
+  ipvsadm = callPackage ../os-specific/linux/ipvsadm { };
+
+  lynis = callPackage ../tools/security/lynis { };
+
   mathics = pythonPackages.mathics;
 
-  masscan = callPackage ../tools/security/masscan { };
+  masscan = callPackage ../tools/security/masscan {
+    stdenv = gccStdenv;
+  };
+
+  massren = callPackage ../tools/misc/massren { };
+
+  meritous = callPackage ../games/meritous { };
 
   meson = callPackage ../development/tools/build-managers/meson { };
 
+  metabase = callPackage ../servers/metabase { };
+
+  mp3blaster = callPackage ../applications/audio/mp3blaster { };
+
   mp3fs = callPackage ../tools/filesystems/mp3fs { };
 
+  mpdas = callPackage ../tools/audio/mpdas { };
+
   mpdcron = callPackage ../tools/audio/mpdcron { };
 
   mpdris2 = callPackage ../tools/audio/mpdris2 { };
 
+  mq-cli = callPackage ../tools/system/mq-cli { };
+
   nfdump = callPackage ../tools/networking/nfdump { };
 
-  patdiff = callPackage ../tools/misc/patdiff {
-    ocamlPackages = ocamlPackages_4_03;
-  };
+  noteshrink = callPackage ../tools/misc/noteshrink { };
+
+  nrsc5 = callPackage ../applications/misc/nrsc5 { };
+
+  onboard = callPackage ../applications/misc/onboard { };
+
+  optar = callPackage ../tools/graphics/optar {};
+
+  patdiff = callPackage ../tools/misc/patdiff { };
 
   playerctl = callPackage ../tools/audio/playerctl { };
 
   ps_mem = callPackage ../tools/system/ps_mem { };
 
+  parallel-rust = callPackage ../tools/misc/parallel-rust { };
+
   socklog = callPackage ../tools/system/socklog { };
 
   staccato = callPackage ../tools/text/staccato { };
 
+  stagit = callPackage ../development/tools/stagit { };
+
+  bash-supergenpass = callPackage ../tools/security/bash-supergenpass { };
+
   syscall_limiter = callPackage ../os-specific/linux/syscall_limiter {};
 
   syslogng = callPackage ../tools/system/syslog-ng { };
@@ -1115,6 +1356,12 @@ with pkgs;
 
   ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
 
+  riot-web = callPackage ../applications/networking/instant-messengers/riot/riot-web.nix {
+    conf = config.riot-web.conf or null;
+  };
+
+  rsbep = callPackage ../tools/backup/rsbep { };
+
   rsyslog = callPackage ../tools/system/rsyslog {
     hadoop = null; # Currently Broken
     czmq = czmq3;
@@ -1124,7 +1371,7 @@ with pkgs;
     libkrb5 = null;
     systemd = null;
     jemalloc = null;
-    libmysql = null;
+    mysql = null;
     postgresql = null;
     libdbi = null;
     net_snmp = null;
@@ -1165,10 +1412,16 @@ with pkgs;
     utillinux = utillinuxMinimal;
   };
 
+  antigen = callPackage ../shells/antigen { };
+
   apparix = callPackage ../tools/misc/apparix { };
 
   appdata-tools = callPackage ../tools/misc/appdata-tools { };
 
+  arping = callPackage ../tools/networking/arping { };
+
+  arpoison = callPackage ../tools/networking/arpoison { };
+
   asciidoc = callPackage ../tools/typesetting/asciidoc {
     inherit (python2Packages) matplotlib numpy aafigure recursivePthLoader;
     w3m = w3m-batch;
@@ -1192,6 +1445,8 @@ with pkgs;
 
   autossh = callPackage ../tools/networking/autossh { };
 
+  assh = callPackage ../tools/networking/assh { };
+
   asynk = callPackage ../tools/networking/asynk { };
 
   bacula = callPackage ../tools/backup/bacula { };
@@ -1200,24 +1455,36 @@ with pkgs;
 
   bats = callPackage ../development/interpreters/bats { };
 
+  bdsync = callPackage ../tools/backup/bdsync { };
+
   beanstalkd = callPackage ../servers/beanstalkd { };
 
+  beegfs = callPackage ../os-specific/linux/beegfs { };
+
   beets = callPackage ../tools/audio/beets {
     pythonPackages = python2Packages;
   };
 
+  bepasty = callPackage ../tools/misc/bepasty { };
+
+  bettercap = callPackage ../tools/security/bettercap { };
+
   bfg-repo-cleaner = gitAndTools.bfg-repo-cleaner;
 
+  bfs = callPackage ../tools/system/bfs { };
+
   bgs = callPackage ../tools/X11/bgs { };
 
   biber = callPackage ../tools/typesetting/biber {
-    inherit (perlPackages)
+    inherit (perlPackages) buildPerlModule
       autovivification BusinessISBN BusinessISMN BusinessISSN ConfigAutoConf
       DataCompare DataDump DateSimple EncodeEUCJPASCII EncodeHanExtra EncodeJIS2K
-      ExtUtilsLibBuilder FileSlurp IPCRun3 Log4Perl LWPProtocolHttps ListAllUtils
-      ListMoreUtils ModuleBuild MozillaCA ReadonlyXS RegexpCommon TextBibTeX
+      DateTime DateTimeFormatBuilder DateTimeCalendarJulian
+      ExtUtilsLibBuilder FileSlurp FileWhich IPCRun3 Log4Perl LWPProtocolHttps ListAllUtils
+      ListMoreUtils MozillaCA ReadonlyXS RegexpCommon TextBibTeX
       UnicodeCollate UnicodeLineBreak URI XMLLibXMLSimple XMLLibXSLT XMLWriter
-      ClassAccessor TextRoman DataUniqid LinguaTranslit UnicodeNormalize;
+      ClassAccessor TextCSV TextCSV_XS TextRoman DataUniqid LinguaTranslit UnicodeNormalize SortKey
+      TestDifferences;
   };
 
   blueman = callPackage ../tools/bluetooth/blueman {
@@ -1244,17 +1511,19 @@ with pkgs;
 
   burp = callPackage ../tools/backup/burp { };
 
-  buku = callPackage ../applications/misc/buku {
-    pythonPackages = python3Packages;
-  };
+  buku = callPackage ../applications/misc/buku { };
 
   byzanz = callPackage ../applications/video/byzanz {};
 
   ori = callPackage ../tools/backup/ori { };
 
+  anydesk = callPackage ../applications/networking/remote/anydesk { };
+
   atool = callPackage ../tools/archivers/atool { };
 
-  bsc = callPackage ../tools/compression/bsc { };
+  bsc = callPackage ../tools/compression/bsc {
+    inherit (llvmPackages) openmp;
+  };
 
   bzip2 = callPackage ../tools/compression/bzip2 { };
 
@@ -1273,6 +1542,8 @@ with pkgs;
 
   caudec = callPackage ../applications/audio/caudec { };
 
+  ccd2iso = callPackage ../tools/cd-dvd/ccd2iso { };
+
   ccid = callPackage ../tools/security/ccid { };
 
   ccrypt = callPackage ../tools/security/ccrypt { };
@@ -1292,9 +1563,8 @@ with pkgs;
   nrg2iso = callPackage ../tools/cd-dvd/nrg2iso { };
 
   libceph = ceph.lib;
-  ceph = callPackage ../tools/filesystems/ceph { boost = boost159; };
+  ceph = callPackage ../tools/filesystems/ceph { boost = boost165; };
   ceph-dev = ceph;
-  #ceph-dev = lowPrio (callPackage ../tools/filesystems/ceph/dev.nix { });
 
   cfdg = callPackage ../tools/graphics/cfdg {
     ffmpeg = ffmpeg_2;
@@ -1321,15 +1591,23 @@ with pkgs;
   cksfv = callPackage ../tools/networking/cksfv { };
 
   clementine = callPackage ../applications/audio/clementine {
-    boost = boost155;
-    gst_plugins = [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-ffmpeg ];
+    gst_plugins =
+      with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav ];
   };
 
   clementineFree = clementine.free;
 
   ciopfs = callPackage ../tools/filesystems/ciopfs { };
 
-  citrix_receiver = callPackage ../applications/networking/remote/citrix-receiver { };
+  citrix_receiver        = hiPrio citrix_receiver_13_9_0;
+  citrix_receiver_13_9_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.9.0"; };
+  citrix_receiver_13_8_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.8.0"; };
+  citrix_receiver_13_7_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.7.0"; };
+  citrix_receiver_13_6_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.6.0"; };
+  citrix_receiver_13_5_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.5.0"; };
+  citrix_receiver_13_4_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.4.0"; };
+
+  citra = libsForQt5.callPackage ../misc/emulators/citra { };
 
   cmst = libsForQt5.callPackage ../tools/networking/cmst { };
 
@@ -1349,6 +1627,8 @@ with pkgs;
 
   connman-gtk = callPackage ../tools/networking/connman-gtk { };
 
+  connman-ncurses = callPackage ../tools/networking/connman-ncurses { };
+
   connman-notify = callPackage ../tools/networking/connman-notify { };
 
   connmanui = callPackage ../tools/networking/connmanui { };
@@ -1358,10 +1638,11 @@ with pkgs;
   convertlit = callPackage ../tools/text/convertlit { };
 
   collectd = callPackage ../tools/system/collectd {
-    libmysql = mysql.lib;
     libsigrok = libsigrok-0-3-0; # not compatible with >= 0.4.0 yet
   };
 
+  collectd-data = callPackage ../tools/system/collectd/data.nix { };
+
   colormake = callPackage ../development/tools/build-managers/colormake { };
 
   cpuminer = callPackage ../tools/misc/cpuminer { };
@@ -1370,6 +1651,8 @@ with pkgs;
 
   cuetools = callPackage ../tools/cd-dvd/cuetools { };
 
+  u3-tool = callPackage ../tools/filesystems/u3-tool { };
+
   unifdef = callPackage ../development/tools/misc/unifdef { };
 
   unionfs-fuse = callPackage ../tools/filesystems/unionfs-fuse { };
@@ -1381,12 +1664,27 @@ with pkgs;
 
   libpinyin = callPackage ../development/libraries/libpinyin { };
 
+  libskk = callPackage ../development/libraries/libskk {
+    inherit (gnome3) gnome-common libgee;
+  };
+
   m17n_db = callPackage ../tools/inputmethods/m17n-db { };
 
   m17n_lib = callPackage ../tools/inputmethods/m17n-lib { };
 
+  skktools = callPackage ../tools/inputmethods/skk/skktools { };
+  skk-dicts = callPackage ../tools/inputmethods/skk/skk-dicts { };
+
+  libkkc-data = callPackage ../data/misc/libkkc-data {
+    inherit (pythonPackages) marisa;
+  };
+
+  libkkc = callPackage ../tools/inputmethods/libkkc {
+    inherit (gnome3) libgee;
+  };
+
   ibus = callPackage ../tools/inputmethods/ibus {
-    inherit (gnome3) dconf glib;
+    inherit (gnome3) dconf gconf glib;
   };
 
   ibus-qt = callPackage ../tools/inputmethods/ibus/ibus-qt.nix { };
@@ -1396,14 +1694,16 @@ with pkgs;
 
     hangul = callPackage ../tools/inputmethods/ibus-engines/ibus-hangul { };
 
+    kkc = callPackage ../tools/inputmethods/ibus-engines/ibus-kkc { };
+
     libpinyin = callPackage ../tools/inputmethods/ibus-engines/ibus-libpinyin { };
 
     m17n = callPackage ../tools/inputmethods/ibus-engines/ibus-m17n { };
 
-    mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
+    mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc rec {
       python = python2;
       inherit (python2Packages) gyp;
-      protobuf = protobuf3_2.override { stdenv = clangStdenv; };
+      protobuf = pkgs.protobuf.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
     };
 
     table = callPackage ../tools/inputmethods/ibus-engines/ibus-table {
@@ -1422,11 +1722,12 @@ with pkgs;
     plugins = [ ];
   };
 
-  brotli = callPackage ../tools/compression/brotli { };
-
-  brotliUnstable = callPackage ../tools/compression/brotli/unstable.nix { };
+  interception-tools = callPackage ../tools/inputmethods/interception-tools { };
+  interception-tools-plugins = {
+    caps2esc = callPackage ../tools/inputmethods/interception-tools/caps2esc.nix { };
+  };
 
-  libbrotli = callPackage ../development/libraries/libbrotli { };
+  brotli = callPackage ../tools/compression/brotli { };
 
   biosdevname = callPackage ../tools/networking/biosdevname { };
 
@@ -1438,12 +1739,16 @@ with pkgs;
 
   checkbashisms = callPackage ../development/tools/misc/checkbashisms { };
 
+  ckb = libsForQt5.callPackage ../tools/misc/ckb { };
+
   clamav = callPackage ../tools/security/clamav { };
 
   clex = callPackage ../tools/misc/clex { };
 
+  client-ip-echo = callPackage ../servers/misc/client-ip-echo { };
+
   cloc = callPackage ../tools/misc/cloc {
-    inherit (perlPackages) perl AlgorithmDiff RegexpCommon;
+    inherit (perlPackages) perl AlgorithmDiff ParallelForkManager RegexpCommon;
   };
 
   cloog = callPackage ../development/libraries/cloog {
@@ -1458,15 +1763,15 @@ with pkgs;
 
   cloud-utils = callPackage ../tools/misc/cloud-utils { };
 
-  ckb = libsForQt5.callPackage ../tools/misc/ckb { };
-
   compass = callPackage ../development/tools/compass { };
 
+  conda = callPackage ../tools/package-management/conda { };
+
   convmv = callPackage ../tools/misc/convmv { };
 
   convoy = callPackage ../tools/filesystems/convoy { };
 
-  cool-retro-term = libsForQt56.callPackage ../applications/misc/cool-retro-term { };
+  cool-retro-term = libsForQt5.callPackage ../applications/misc/cool-retro-term { };
 
   coreutils = callPackage ../tools/misc/coreutils {
     aclSupport = stdenv.isLinux;
@@ -1494,36 +1799,34 @@ with pkgs;
     cudatoolkit65
     cudatoolkit7
     cudatoolkit75
-    cudatoolkit8;
-
-  cudatoolkit = cudatoolkit8;
+    cudatoolkit8
+    cudatoolkit9;
 
-  cudnn = callPackage ../development/libraries/science/math/cudnn/default.nix {};
+  cudatoolkit = cudatoolkit9;
 
-  cudnn5_cudatoolkit75 = callPackage ../development/libraries/science/math/cudnn/7.5-5.0 {
-    cudatoolkit = cudatoolkit75;
-  };
+  inherit (callPackages ../development/libraries/science/math/cudnn { })
+    cudnn_cudatoolkit7
+    cudnn_cudatoolkit75
+    cudnn6_cudatoolkit8
+    cudnn_cudatoolkit8
+    cudnn_cudatoolkit9;
 
-  cudnn5_cudatoolkit80 = callPackage ../development/libraries/science/math/cudnn/8.0-5.0 {
-    cudatoolkit = cudatoolkit8;
-  };
-
-  cudnn51_cudatoolkit80 = callPackage ../development/libraries/science/math/cudnn/8.0-5.1 {
-    cudatoolkit = cudatoolkit8;
-  };
+  cudnn = cudnn_cudatoolkit9;
 
   curlFull = curl.override {
     idnSupport = true;
     ldapSupport = true;
     gssSupport = true;
+    brotliSupport = true;
   };
 
   curl = callPackage ../tools/networking/curl rec {
     fetchurl = fetchurlBoot;
-    http2Support = !stdenv.isDarwin;
+    http2Support = true;
     zlibSupport = true;
     sslSupport = zlibSupport;
     scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
+    gssSupport = true;
   };
 
   curl_unix_socket = callPackage ../tools/networking/curl-unix-socket rec { };
@@ -1553,6 +1856,8 @@ with pkgs;
 
   davfs2 = callPackage ../tools/filesystems/davfs2 { };
 
+  dbeaver = callPackage ../applications/misc/dbeaver { };
+
   dbench = callPackage ../development/tools/misc/dbench { };
 
   dclxvi = callPackage ../development/libraries/dclxvi { };
@@ -1569,6 +1874,8 @@ with pkgs;
 
   debootstrap = callPackage ../tools/misc/debootstrap { };
 
+  deer = callPackage ../shells/zsh-deer { };
+
   detox = callPackage ../tools/misc/detox { };
 
   devilspie2 = callPackage ../applications/misc/devilspie2 {
@@ -1589,14 +1896,20 @@ with pkgs;
 
   ddrescue = callPackage ../tools/system/ddrescue { };
 
-  deluge = python2Packages.deluge; # Package should be moved out of python-packages.nix
+  deluge = callPackage ../applications/networking/p2p/deluge {
+    pythonPackages = python2Packages;
+  };
 
-  desktop_file_utils = callPackage ../tools/misc/desktop-file-utils { };
+  desktop-file-utils = callPackage ../tools/misc/desktop-file-utils { };
 
   dfc  = callPackage ../tools/system/dfc { };
 
   dev86 = callPackage ../development/compilers/dev86 { };
 
+  diskrsync = callPackage ../tools/backup/diskrsync { };
+
+  djbdns = callPackage ../tools/networking/djbdns { };
+
   dnscrypt-proxy = callPackage ../tools/networking/dnscrypt-proxy { };
 
   dnscrypt-wrapper = callPackage ../tools/networking/dnscrypt-wrapper { };
@@ -1637,10 +1950,15 @@ with pkgs;
 
   disper = callPackage ../tools/misc/disper { };
 
-  dmd_2_067_1 = callPackage ../development/compilers/dmd/2.067.1.nix { };
-  dmd = callPackage ../development/compilers/dmd {
-    bootstrapDmd = dmd_2_067_1;
-  };
+  dleyna-connector-dbus = callPackage ../development/libraries/dleyna-connector-dbus { };
+
+  dleyna-core = callPackage ../development/libraries/dleyna-core { };
+
+  dleyna-renderer = callPackage ../development/libraries/dleyna-renderer { };
+
+  dleyna-server = callPackage ../development/libraries/dleyna-server { };
+
+  dmd = callPackage ../development/compilers/dmd { };
 
   dmg2img = callPackage ../tools/misc/dmg2img { };
 
@@ -1648,8 +1966,10 @@ with pkgs;
     inherit (perlPackages) PerlMagick;
   };
 
+  doas = callPackage ../tools/security/doas { };
+
   docbook2x = callPackage ../tools/typesetting/docbook2x {
-    inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
+    inherit (perlPackages) XMLSAX XMLSAXBase XMLParser XMLNamespaceSupport;
   };
 
   docbook2mdoc = callPackage ../tools/misc/docbook2mdoc { };
@@ -1665,14 +1985,24 @@ with pkgs;
   dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
 
   dolphinEmu = callPackage ../misc/emulators/dolphin-emu { };
-  dolphinEmuMaster = callPackage ../misc/emulators/dolphin-emu/master.nix { };
+  dolphinEmuMaster = callPackage ../misc/emulators/dolphin-emu/master.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
+    inherit (darwin) cf-private;
+    wxGTK = wxGTK31;
+  };
+
+  doomseeker = qt5.callPackage ../applications/misc/doomseeker { };
 
-  doomseeker = callPackage ../applications/misc/doomseeker { };
+  doom-bcc = callPackage ../games/zdoom/bcc-git.nix { };
 
   slade = callPackage ../applications/misc/slade {
     wxGTK = wxGTK30;
   };
 
+  sladeUnstable = callPackage ../applications/misc/slade/git.nix {
+    wxGTK = wxGTK30;
+  };
+
   drive = callPackage ../applications/networking/drive { };
 
   driftnet = callPackage ../tools/networking/driftnet {};
@@ -1683,7 +2013,7 @@ with pkgs;
 
   dtach = callPackage ../tools/misc/dtach { };
 
-  dtc = callPackage ../development/compilers/dtc { flex = flex_2_6_1; };
+  dtc = callPackage ../development/compilers/dtc { };
 
   dub = callPackage ../development/tools/build-managers/dub { };
 
@@ -1713,6 +2043,8 @@ with pkgs;
     # customConfig = builtins.readFile ./dvtm.config.h;
   };
 
+  ecmtools = callPackage ../tools/cd-dvd/ecm-tools { };
+
   e2tools = callPackage ../tools/filesystems/e2tools { };
 
   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
@@ -1727,6 +2059,8 @@ with pkgs;
 
   ecryptfs-helper = callPackage ../tools/security/ecryptfs/helper.nix { };
 
+  edid-decode = callPackage ../tools/misc/edid-decode { };
+
   editres = callPackage ../tools/graphics/editres { };
 
   edit = callPackage ../applications/editors/edit { };
@@ -1741,29 +2075,25 @@ with pkgs;
 
   mcrcon = callPackage ../tools/networking/mcrcon {};
 
+  uudeview = callPackage ../tools/misc/uudeview { };
+
+  uutils-coreutils = callPackage ../tools/misc/uutils-coreutils {
+    inherit (pythonPackages) sphinx;
+  };
+
   zabbix-cli = callPackage ../tools/misc/zabbix-cli { };
 
   ### DEVELOPMENT / EMSCRIPTEN
 
   buildEmscriptenPackage = callPackage ../development/em-modules/generic { };
 
+  emscriptenVersion = "1.37.36";
+
   emscripten = callPackage ../development/compilers/emscripten { };
 
-  emscriptenfastcomp-unwrapped = callPackage ../development/compilers/emscripten-fastcomp { };
-  emscriptenfastcomp-wrapped = wrapCCWith stdenv.cc.libc ''
-    # hardening flags break WASM support
-    cat > $out/nix-support/add-hardening.sh
-  '' emscriptenfastcomp-unwrapped;
-  emscriptenfastcomp = symlinkJoin {
-    name = "emscriptenfastcomp";
-    paths = [ emscriptenfastcomp-wrapped emscriptenfastcomp-unwrapped ];
-    preferLocalBuild = false;
-    allowSubstitutes = true;
-    postBuild = ''
-      # replace unwrapped clang-3.9 binary by wrapper
-      ln -sf $out/bin/clang $out/bin/clang-[0-9]*
-    '';
-  };
+  emscriptenfastcompPackages = callPackage ../development/compilers/emscripten-fastcomp { };
+
+  emscriptenfastcomp = emscriptenfastcompPackages.emscriptenfastcomp;
 
   emscriptenPackages = recurseIntoAttrs (callPackage ./emscripten-packages.nix { });
 
@@ -1776,11 +2106,13 @@ with pkgs;
   evemu = callPackage ../tools/system/evemu { };
 
   # The latest version used by elasticsearch, logstash, kibana and the the beats from elastic.
-  elk5Version = "5.4.2";
+  elk5Version = "5.6.6";
+  elk6Version = "6.1.2";
 
   elasticsearch = callPackage ../servers/search/elasticsearch { };
   elasticsearch2 = callPackage ../servers/search/elasticsearch/2.x.nix { };
   elasticsearch5 = callPackage ../servers/search/elasticsearch/5.x.nix { };
+  elasticsearch6 = callPackage ../servers/search/elasticsearch/6.x.nix { };
 
   elasticsearchPlugins = recurseIntoAttrs (
     callPackage ../servers/search/elasticsearch/plugins.nix { }
@@ -1792,6 +2124,8 @@ with pkgs;
 
   enblend-enfuse = callPackage ../tools/graphics/enblend-enfuse { };
 
+  cryfs = callPackage ../tools/filesystems/cryfs { };
+
   encfs = callPackage ../tools/filesystems/encfs {
     tinyxml2 = tinyxml-2;
   };
@@ -1800,12 +2134,22 @@ with pkgs;
 
   entr = callPackage ../tools/misc/entr { };
 
+  envoy = callPackage ../tools/networking/envoy {
+    bazel = bazel_0_4;
+  };
+
   eot_utilities = callPackage ../tools/misc/eot-utilities { };
 
   eplot = callPackage ../tools/graphics/eplot { };
 
   epstool = callPackage ../tools/graphics/epstool { };
 
+  epsxe = callPackage ../misc/emulators/epsxe { };
+
+  escrotum = callPackage ../tools/graphics/escrotum {
+    inherit (pythonPackages) buildPythonApplication pygtk numpy;
+  };
+
   ethtool = callPackage ../tools/misc/ethtool { };
 
   ettercap = callPackage ../applications/networking/sniffers/ettercap { };
@@ -1849,6 +2193,8 @@ with pkgs;
       pillow;
   };
 
+  fastpbkdf2 = callPackage ../development/libraries/fastpbkdf2 { };
+
   fanficfare = callPackage ../tools/text/fanficfare { };
 
   fastd = callPackage ../tools/networking/fastd { };
@@ -1869,19 +2215,23 @@ with pkgs;
 
     unikey = callPackage ../tools/inputmethods/fcitx-engines/fcitx-unikey { };
 
+    rime = callPackage ../tools/inputmethods/fcitx-engines/fcitx-rime { };
+
     m17n = callPackage ../tools/inputmethods/fcitx-engines/fcitx-m17n { };
 
-    mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc {
+    mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc rec {
       python = python2;
       inherit (python2Packages) gyp;
-      protobuf = protobuf3_2.override { stdenv = clangStdenv; };
+      protobuf = pkgs.protobuf.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
     };
 
     table-other = callPackage ../tools/inputmethods/fcitx-engines/fcitx-table-other { };
 
     cloudpinyin = callPackage ../tools/inputmethods/fcitx-engines/fcitx-cloudpinyin { };
 
-    libpinyin = callPackage ../tools/inputmethods/fcitx-engines/fcitx-libpinyin { };
+    libpinyin = libsForQt5.callPackage ../tools/inputmethods/fcitx-engines/fcitx-libpinyin { };
+
+    skk = callPackage ../tools/inputmethods/fcitx-engines/fcitx-skk { };
   };
 
   fcitx-configtool = callPackage ../tools/inputmethods/fcitx/fcitx-configtool.nix { };
@@ -1897,7 +2247,7 @@ with pkgs;
   ferm = callPackage ../tools/networking/ferm { };
 
   fgallery = callPackage ../tools/graphics/fgallery {
-    inherit (perlPackages) ImageExifTool JSON;
+    inherit (perlPackages) ImageExifTool CpanelJSONXS;
   };
 
   flannel = callPackage ../tools/networking/flannel { };
@@ -1916,6 +2266,10 @@ with pkgs;
 
   finger_bsd = callPackage ../tools/networking/bsd-finger { };
 
+  iprange = callPackage ../applications/networking/firehol/iprange.nix {};
+
+  firehol = callPackage ../applications/networking/firehol {};
+
   fio = callPackage ../tools/system/fio { };
 
   flamerobin = callPackage ../applications/misc/flamerobin { };
@@ -1940,10 +2294,14 @@ with pkgs;
 
   lprof = callPackage ../tools/graphics/lprof { };
 
+  fastlane = callPackage ../tools/admin/fastlane { };
+
   fatresize = callPackage ../tools/filesystems/fatresize {};
 
   fdk_aac = callPackage ../development/libraries/fdk-aac { };
 
+  fim = callPackage ../tools/graphics/fim { };
+
   flac123 = callPackage ../applications/audio/flac123 { };
 
   flamegraph = callPackage ../development/tools/flamegraph { };
@@ -1953,6 +2311,10 @@ with pkgs;
 
   flvtool2 = callPackage ../tools/video/flvtool2 { };
 
+  fmbt = callPackage ../development/tools/fmbt {
+    python = python2;
+  };
+
   fontforge = lowPrio (callPackage ../tools/misc/fontforge {
     inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
   });
@@ -1978,7 +2340,11 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
-  fox_1_6 = callPackage ../development/libraries/fox/fox-1.6.nix { };
+  fox_1_6 = callPackage ../development/libraries/fox/fox-1.6.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  fpart = callPackage ../tools/misc/fpart { };
 
   fping = callPackage ../tools/networking/fping {};
 
@@ -1992,20 +2358,23 @@ with pkgs;
 
   franz = callPackage ../applications/networking/instant-messengers/franz { };
 
+  freedroidrpg = callPackage ../games/freedroidrpg { };
+
   freeipmi = callPackage ../tools/system/freeipmi {};
 
-  freetalk = callPackage ../applications/networking/instant-messengers/freetalk { };
+  freetalk = callPackage ../applications/networking/instant-messengers/freetalk {
+    guile = guile_2_0;
+  };
 
   freetds = callPackage ../development/libraries/freetds { };
 
   frescobaldi = callPackage ../misc/frescobaldi {};
 
   frostwire = callPackage ../applications/networking/p2p/frostwire { };
+  frostwire-bin = callPackage ../applications/networking/p2p/frostwire/frostwire-bin.nix { };
 
   ftgl = callPackage ../development/libraries/ftgl { };
 
-  ftgl212 = callPackage ../development/libraries/ftgl/2.1.2.nix { };
-
   ftop = callPackage ../os-specific/linux/ftop { };
 
   fsfs = callPackage ../tools/filesystems/fsfs { };
@@ -2036,6 +2405,8 @@ with pkgs;
 
   garmintools = callPackage ../development/libraries/garmintools {};
 
+  gauge = callPackage ../development/tools/gauge { };
+
   gawk = callPackage ../tools/text/gawk {
     inherit (darwin) locale;
   };
@@ -2081,6 +2452,8 @@ with pkgs;
 
   genimage = callPackage ../tools/filesystems/genimage { };
 
+  gerrit = callPackage ../applications/version-management/gerrit { };
+
   geteltorito = callPackage ../tools/misc/geteltorito { };
 
   getmail = callPackage ../tools/networking/getmail { };
@@ -2099,12 +2472,16 @@ with pkgs;
 
   git-crecord = callPackage ../applications/version-management/git-crecord { };
 
-  git-lfs = callPackage ../applications/version-management/git-lfs { };
+  git-lfs = lowPrio (callPackage ../applications/version-management/git-lfs { });
+
+  git-lfs1 = callPackage ../applications/version-management/git-lfs/1.nix { };
 
   git-ftp = callPackage ../development/tools/git-ftp { };
 
   git-series = callPackage ../development/tools/git-series { };
 
+  git-sizer = callPackage ../applications/version-management/git-sizer { };
+
   git-up = callPackage ../applications/version-management/git-up { };
 
   gitfs = callPackage ../tools/filesystems/gitfs { };
@@ -2122,12 +2499,16 @@ with pkgs;
 
   gitlab-workhorse = callPackage ../applications/version-management/gitlab-workhorse { };
 
+  gitaly = callPackage ../applications/version-management/gitaly { };
+
   gitstats = callPackage ../applications/version-management/gitstats { };
 
   gogs = callPackage ../applications/version-management/gogs { };
 
   git-latexdiff = callPackage ../tools/typesetting/git-latexdiff { };
 
+  gitea = callPackage ../applications/version-management/gitea { };
+
   glusterfs = callPackage ../tools/filesystems/glusterfs { };
 
   glmark2 = callPackage ../tools/graphics/glmark2 { };
@@ -2152,6 +2533,8 @@ with pkgs;
 
   gnu-cobol = callPackage ../development/compilers/gnu-cobol { };
 
+  gnuclad = callPackage ../applications/graphics/gnuclad { };
+
   gnufdisk = callPackage ../tools/system/fdisk {
     guile = guile_1_8;
   };
@@ -2168,12 +2551,12 @@ with pkgs;
   gnupg20 = callPackage ../tools/security/gnupg/20.nix {
     pinentry = if stdenv.isDarwin then pinentry_mac else pinentry;
   };
-  gnupg21 = callPackage ../tools/security/gnupg/21.nix {
+  gnupg22 = callPackage ../tools/security/gnupg/22.nix {
     pinentry = if stdenv.isDarwin then pinentry_mac else pinentry;
   };
-  gnupg = gnupg21;
+  gnupg = gnupg22;
 
-  gnuplot = callPackage ../tools/graphics/gnuplot { qt = qt4; };
+  gnuplot = libsForQt5.callPackage ../tools/graphics/gnuplot { };
 
   gnuplot_qt = gnuplot.override { withQt = true; };
 
@@ -2194,9 +2577,9 @@ with pkgs;
 
   godot = callPackage ../development/tools/godot {};
 
-  go-mtpfs = callPackage ../tools/filesystems/go-mtpfs { };
+  goklp = callPackage ../tools/networking/goklp {};
 
-  go-pup = callPackage ../development/tools/pup { };
+  go-mtpfs = callPackage ../tools/filesystems/go-mtpfs { };
 
   go-sct = callPackage ../tools/X11/go-sct { };
 
@@ -2207,20 +2590,27 @@ with pkgs;
 
   google-authenticator = callPackage ../os-specific/linux/google-authenticator { };
 
-  google-cloud-sdk = callPackage ../tools/admin/google-cloud-sdk { };
+  google-cloud-sdk = python2.pkgs.google-cloud-sdk;
+  google-cloud-sdk-gce = python2.pkgs.google-cloud-sdk-gce;
 
   google-fonts = callPackage ../data/fonts/google-fonts { };
 
-  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine {  };
+  google-compute-engine = python2.pkgs.google-compute-engine;
 
   gource = callPackage ../applications/version-management/gource { };
 
+  govc = callPackage ../tools/virtualization/govc { };
+
   gpart = callPackage ../tools/filesystems/gpart { };
 
   gparted = callPackage ../tools/misc/gparted { };
 
   gpodder = callPackage ../applications/audio/gpodder { };
 
+  gpp = callPackage ../development/tools/gpp { };
+
+  gpredict = callPackage ../applications/science/astronomy/gpredict { };
+
   gptfdisk = callPackage ../tools/system/gptfdisk { };
 
   grafx2 = callPackage ../applications/graphics/grafx2 {};
@@ -2232,10 +2622,7 @@ with pkgs;
     callPackage ../tools/misc/graylog/plugins.nix { }
   );
 
-  gprof2dot = callPackage ../development/tools/profiling/gprof2dot {
-    # Using pypy provides significant performance improvements (~2x)
-    pythonPackages = pypyPackages;
-  };
+  gprof2dot = callPackage ../development/tools/profiling/gprof2dot { };
 
   graphviz = callPackage ../tools/graphics/graphviz {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
@@ -2250,17 +2637,13 @@ with pkgs;
    * that do want 2.32 but not 2.0 or 2.36. Please give a day's notice for
    * objections before removal. The feature is libgraph.
    */
-  graphviz_2_32 = callPackage ../tools/graphics/graphviz/2.32.nix {
+  graphviz_2_32 = lib.overrideDerivation (callPackage ../tools/graphics/graphviz/2.32.nix {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
-  };
+  }) (x: { configureFlags = x.configureFlags ++ ["--with-cgraph=no"];});
 
   grin = callPackage ../tools/text/grin { };
   ripgrep = callPackage ../tools/text/ripgrep { };
 
-  grive = callPackage ../tools/filesystems/grive {
-    json_c = json-c-0-11; # won't configure with 0.12; others are vulnerable
-  };
-
   grive2 = callPackage ../tools/filesystems/grive2 { };
 
   groff = callPackage ../tools/text/groff {
@@ -2346,9 +2729,11 @@ with pkgs;
     inherit (gnome2) libsoup;
   };
 
-  gupnp_av = callPackage ../development/libraries/gupnp-av {};
+  gupnp-av = callPackage ../development/libraries/gupnp-av {};
+
+  gupnp-dlna = callPackage ../development/libraries/gupnp-dlna {};
 
-  gupnp_igd = callPackage ../development/libraries/gupnp-igd {};
+  gupnp-igd = callPackage ../development/libraries/gupnp-igd {};
 
   gupnp-tools = callPackage ../tools/networking/gupnp-tools {};
 
@@ -2356,6 +2741,8 @@ with pkgs;
 
   gvolicon = callPackage ../tools/audio/gvolicon {};
 
+  gwyddion = callPackage ../applications/science/chemistry/gwyddion {};
+
   gzip = callPackage ../tools/compression/gzip { };
 
   gzrt = callPackage ../tools/compression/gzrt { };
@@ -2370,6 +2757,8 @@ with pkgs;
 
   pgjwt = callPackage ../servers/sql/postgresql/pgjwt {};
 
+  pgtap = callPackage ../servers/sql/postgresql/pgtap {};
+
   pigz = callPackage ../tools/compression/pigz { };
 
   pixz = callPackage ../tools/compression/pixz { };
@@ -2382,17 +2771,22 @@ with pkgs;
 
   h2 = callPackage ../servers/h2 { };
 
+  h5utils = callPackage ../tools/misc/h5utils {
+    libmatheval = null;
+    hdf4 = null;
+  };
+
   haproxy = callPackage ../tools/networking/haproxy { };
 
   haveged = callPackage ../tools/security/haveged { };
 
   habitat = callPackage ../applications/networking/cluster/habitat { };
-  habitat-sh = callPackage ../applications/networking/cluster/habitat/chroot-env.nix { };
 
   hardlink = callPackage ../tools/system/hardlink { };
 
   hashcat = callPackage ../tools/security/hashcat { };
-  hashcat3 = callPackage ../tools/security/hashcat/hashcat3 { };
+
+  hash_extender = callPackage ../tools/security/hash_extender { };
 
   hash-slinger = callPackage ../tools/security/hash-slinger { };
 
@@ -2418,6 +2812,12 @@ with pkgs;
     mpi = null;
   };
 
+  hdf5_1_8 = callPackage ../tools/misc/hdf5/1_8.nix {
+    gfortran = null;
+    szip = null;
+    mpi = null;
+  };
+
   hdf5-mpi = appendToName "mpi" (hdf5.override {
     szip = null;
     mpi = pkgs.openmpi;
@@ -2431,6 +2831,21 @@ with pkgs;
     inherit gfortran;
   });
 
+  hdf5-threadsafe = appendToName "threadsafe" (hdf5.overrideAttrs (oldAttrs: {
+      # Threadsafe hdf5
+      # However, hdf5 hl (High Level) library is not considered stable
+      # with thread safety and should be disabled.
+      configureFlags = oldAttrs.configureFlags ++ ["--enable-threadsafe" "--disable-hl" ];
+  }));
+
+  hdfview = callPackage ../tools/misc/hdfview {
+    javac = jdk;
+  };
+
+  hdf_java = callPackage ../tools/misc/hdfjava {
+    javac = jdk;
+  };
+
   hecate = callPackage ../applications/editors/hecate { };
 
   heaptrack = libsForQt5.callPackage ../development/tools/profiling/heaptrack {};
@@ -2441,6 +2856,9 @@ with pkgs;
 
   hevea = callPackage ../tools/typesetting/hevea { };
 
+  hexd = callPackage ../tools/misc/hexd { };
+  pixd = callPackage ../tools/misc/pixd { };
+
   hhpc = callPackage ../tools/misc/hhpc { };
 
   hiera-eyaml = callPackage ../tools/system/hiera-eyaml { };
@@ -2462,7 +2880,9 @@ with pkgs;
 
   host = bind.host;
 
-  hotspot = libsForQt56.callPackage ../development/tools/analysis/hotspot { };
+  hotpatch = callPackage ../development/libraries/hotpatch { };
+
+  hotspot = libsForQt5.callPackage ../development/tools/analysis/hotspot { };
 
   hping = callPackage ../tools/networking/hping { };
 
@@ -2488,7 +2908,9 @@ with pkgs;
 
   i2p = callPackage ../tools/networking/i2p {};
 
-  i2pd = callPackage ../tools/networking/i2pd {};
+  i2pd = callPackage ../tools/networking/i2pd {
+    boost = boost165;
+  };
 
   i-score = libsForQt5.callPackage ../applications/audio/i-score { };
 
@@ -2516,6 +2938,7 @@ with pkgs;
             stdenv = llvmPackages_38.libcxxStdenv;
             libcxx = llvmPackages_38.libcxx;
             boost = boost160.override { inherit stdenv; };
+            avro-cpp_llvm = avro-cpp.override { inherit stdenv boost; };
           })
       irods
       irods-icommands;
@@ -2534,15 +2957,13 @@ with pkgs;
   };
 
 
-  # ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
-  #   inherit (haskellPackages) ihaskell ghcWithPackages;
+  ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
+    inherit (haskellPackages) ghcWithPackages;
 
-  #   ipython = python3.buildEnv.override {
-  #     extraLibs = with python3Packages; [ ipython ipykernel jupyter_client notebook ];
-  #   };
+    jupyter = python3.withPackages (ps: [ ps.jupyter ps.notebook ]);
 
-  #   packages = config.ihaskell.packages or (self: []);
-  # };
+    packages = config.ihaskell.packages or (self: []);
+  };
 
   imapproxy = callPackage ../tools/networking/imapproxy { };
 
@@ -2554,10 +2975,16 @@ with pkgs;
 
   inadyn = callPackage ../tools/networking/inadyn { };
 
+  inboxer = callPackage ../applications/networking/mailreaders/inboxer { };
+
   inetutils = callPackage ../tools/networking/inetutils { };
 
+  infiniband-diags = callPackage ../tools/networking/infiniband-diags { };
+
   inform7 = callPackage ../development/compilers/inform7 { };
 
+  infamousPlugins = callPackage ../applications/audio/infamousPlugins { };
+
   innoextract = callPackage ../tools/archivers/innoextract { };
 
   intecture-agent = callPackage ../tools/admin/intecture/agent.nix { };
@@ -2566,13 +2993,15 @@ with pkgs;
 
   intecture-cli = callPackage ../tools/admin/intecture/cli.nix { };
 
+  iodine = callPackage ../tools/networking/iodine { };
+
   ioping = callPackage ../tools/system/ioping { };
 
   iops = callPackage ../tools/system/iops { };
 
   ior = callPackage ../tools/system/ior { };
 
-  iodine = callPackage ../tools/networking/iodine { };
+  iouyap = callPackage ../tools/networking/iouyap { };
 
   ip2location = callPackage ../tools/networking/ip2location { };
 
@@ -2583,6 +3012,9 @@ with pkgs;
   iperf = iperf3;
 
   ipfs = callPackage ../applications/networking/ipfs { };
+  ipfs-migrator = callPackage ../applications/networking/ipfs-migrator { };
+
+  ipget = callPackage ../applications/networking/ipget { };
 
   ipmitool = callPackage ../tools/system/ipmitool {
     static = false;
@@ -2590,10 +3022,14 @@ with pkgs;
 
   ipmiutil = callPackage ../tools/system/ipmiutil {};
 
+  ipmicfg = callPackage ../applications/misc/ipmicfg {};
+
   ipmiview = callPackage ../applications/misc/ipmiview {};
 
   ipcalc = callPackage ../tools/networking/ipcalc {};
 
+  netmask = callPackage ../tools/networking/netmask {};
+
   ipv6calc = callPackage ../tools/networking/ipv6calc {};
 
   ipxe = callPackage ../tools/misc/ipxe { };
@@ -2616,10 +3052,14 @@ with pkgs;
 
   jaaa = callPackage ../applications/audio/jaaa { };
 
-  jackett = callPackage ../servers/jackett { };
+  jackett = callPackage ../servers/jackett {
+    mono = mono50;
+  };
 
   jade = callPackage ../tools/text/sgml/jade { };
 
+  jazzy = callPackage ../development/tools/jazzy { };
+
   jd = callPackage ../development/tools/jd { };
 
   jd-gui = callPackage_i686 ../tools/security/jd-gui { };
@@ -2632,8 +3072,6 @@ with pkgs;
 
   jhead = callPackage ../tools/graphics/jhead { };
 
-  jid = callPackage ../development/tools/jid { };
-
   jing = self.jing-trang;
   jing-trang = callPackage ../tools/text/xml/jing-trang { };
 
@@ -2661,12 +3099,18 @@ with pkgs;
 
   jo = callPackage ../development/tools/jo { };
 
+  jrnl = callPackage ../applications/misc/jrnl { };
+
+  jsawk = callPackage ../tools/text/jsawk { };
+
   jscoverage = callPackage ../development/tools/misc/jscoverage { };
 
   jsduck = callPackage ../development/tools/jsduck { };
 
   jucipp = callPackage ../applications/editors/jucipp { };
 
+  jupp = callPackage ../applications/editors/jupp { };
+
   jwhois = callPackage ../tools/networking/jwhois { };
 
   k2pdfopt = callPackage ../applications/misc/k2pdfopt { };
@@ -2685,9 +3129,13 @@ with pkgs;
 
   kdbplus = callPackage_i686 ../applications/misc/kdbplus { };
 
+  kde2-decoration = libsForQt5.callPackage ../misc/themes/kde2 { };
+
   keepalived = callPackage ../tools/networking/keepalived { };
 
-  kexectools = callPackage ../os-specific/linux/kexectools { };
+  kexectools = if hostPlatform.isKexecable
+                 then callPackage ../os-specific/linux/kexectools { }
+               else null;
 
   keybase = callPackage ../tools/security/keybase { };
 
@@ -2701,6 +3149,7 @@ with pkgs;
 
   kibana  = callPackage ../development/tools/misc/kibana { };
   kibana5 = callPackage ../development/tools/misc/kibana/5.x.nix { };
+  kibana6 = callPackage ../development/tools/misc/kibana/6.x.nix { };
 
   kismet = callPackage ../applications/networking/sniffers/kismet { };
 
@@ -2708,6 +3157,8 @@ with pkgs;
 
   knockknock = callPackage ../tools/security/knockknock { };
 
+  kore = callPackage ../development/web/kore { };
+
   partition-manager = libsForQt5.callPackage ../tools/misc/partition-manager { };
 
   kpcli = callPackage ../tools/security/kpcli { };
@@ -2716,6 +3167,8 @@ with pkgs;
 
   kronometer = libsForQt5.callPackage ../tools/misc/kronometer { };
 
+  elisa = libsForQt5.callPackage ../applications/audio/elisa { };
+
   kdiff3 = libsForQt5.callPackage ../tools/text/kdiff3 { };
 
   kwalletcli = libsForQt5.callPackage ../tools/security/kwalletcli { };
@@ -2726,8 +3179,12 @@ with pkgs;
 
   kytea = callPackage ../tools/text/kytea { };
 
+  ldc = callPackage ../development/compilers/ldc { };
+
   lbreakout2 = callPackage ../games/lbreakout2 { };
 
+  lego = callPackage ../tools/admin/lego { };
+
   leocad = callPackage ../applications/graphics/leocad { };
 
   less = callPackage ../tools/misc/less { };
@@ -2740,12 +3197,15 @@ with pkgs;
 
   libscrypt = callPackage ../development/libraries/libscrypt { };
 
+  libcloudproviders = callPackage ../development/libraries/libcloudproviders { };
+
   libsmi = callPackage ../development/libraries/libsmi { };
 
   lesspipe = callPackage ../tools/misc/lesspipe { };
 
   liquidsoap = callPackage ../tools/audio/liquidsoap/full.nix {
     ffmpeg = ffmpeg_2;
+    ocamlPackages = ocamlPackages_4_02;
   };
 
   lksctp-tools = callPackage ../os-specific/linux/lksctp-tools { };
@@ -2762,6 +3222,7 @@ with pkgs;
 
   logstash  = callPackage ../tools/misc/logstash { };
   logstash5 = callPackage ../tools/misc/logstash/5.x.nix { };
+  logstash6 = callPackage ../tools/misc/logstash/6.x.nix { };
 
   logstash-contrib = callPackage ../tools/misc/logstash/contrib.nix { };
 
@@ -2787,12 +3248,18 @@ with pkgs;
 
   matrix-synapse = callPackage ../servers/matrix-synapse { };
 
+  mdbook = callPackage ../tools/text/mdbook {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
   memtester = callPackage ../tools/system/memtester { };
 
   minidlna = callPackage ../tools/networking/minidlna { };
 
   minisign = callPackage ../tools/security/minisign { };
 
+  ministat = callPackage ../tools/misc/ministat { };
+
   mmv = callPackage ../tools/misc/mmv { };
 
   morituri = callPackage ../applications/audio/morituri { };
@@ -2803,6 +3270,8 @@ with pkgs;
 
   mkcast = callPackage ../applications/video/mkcast { };
 
+  mtail = callPackage ../servers/monitoring/mtail { };
+
   multitail = callPackage ../tools/misc/multitail { };
 
   mxt-app = callPackage ../misc/mxt-app { };
@@ -2859,54 +3328,29 @@ with pkgs;
 
   ninka = callPackage ../development/tools/misc/ninka { };
 
+  nixnote2 = libsForQt5.callPackage ../applications/misc/nixnote2 { };
+
   nodejs = hiPrio nodejs-6_x;
 
   nodejs-slim = nodejs-slim-6_x;
 
-  nodejs-4_x = callPackage ../development/web/nodejs/v4.nix {
-    libtool = darwin.cctools;
-  };
-
-  nodejs-slim-4_x = callPackage ../development/web/nodejs/v4.nix {
-    libtool = darwin.cctools;
-    enableNpm = false;
-  };
-
-  nodejs-6_x = callPackage ../development/web/nodejs/v6.nix {
-    libtool = darwin.cctools;
-  };
-
-  nodejs-slim-6_x = callPackage ../development/web/nodejs/v6.nix {
-    libtool = darwin.cctools;
-    enableNpm = false;
-  };
+  nodejs-6_x = callPackage ../development/web/nodejs/v6.nix {};
+  nodejs-slim-6_x = callPackage ../development/web/nodejs/v6.nix { enableNpm = false; };
 
-  nodejs-7_x = callPackage ../development/web/nodejs/v7.nix {
-    libtool = darwin.cctools;
-  };
-
-  nodejs-slim-7_x = callPackage ../development/web/nodejs/v7.nix {
-    libtool = darwin.cctools;
-    enableNpm = false;
-  };
+  nodejs-8_x = callPackage ../development/web/nodejs/v8.nix {};
+  nodejs-slim-8_x = callPackage ../development/web/nodejs/v8.nix { enableNpm = false; };
 
-  nodejs-8_x = callPackage ../development/web/nodejs/v8.nix {
-    libtool = darwin.cctools;
-  };
+  nodejs-9_x = callPackage ../development/web/nodejs/v9.nix {};
+  nodejs-slim-9_x = callPackage ../development/web/nodejs/v9.nix { enableNpm = false; };
 
-  nodejs-slim-8_x = callPackage ../development/web/nodejs/v8.nix {
-    libtool = darwin.cctools;
-    enableNpm = false;
+  nodePackages_8_x = callPackage ../development/node-packages/default-v8.nix {
+    nodejs = pkgs.nodejs-8_x;
   };
 
   nodePackages_6_x = callPackage ../development/node-packages/default-v6.nix {
     nodejs = pkgs.nodejs-6_x;
   };
 
-  nodePackages_4_x = callPackage ../development/node-packages/default-v4.nix {
-    nodejs = pkgs.nodejs-4_x;
-  };
-
   nodePackages = nodePackages_6_x;
 
   # Can be used as a user shell
@@ -2914,7 +3358,13 @@ with pkgs;
 
   npm2nix = nodePackages.npm2nix;
 
-  kea = callPackage ../tools/networking/kea { };
+  file-rename = callPackage ../tools/filesystems/file-rename { };
+
+  kea = callPackage ../tools/networking/kea {
+    boost = boost165;
+  };
+
+  ispell = callPackage ../tools/text/ispell {};
 
   kindlegen = callPackage ../tools/typesetting/kindlegen { };
 
@@ -2928,9 +3378,7 @@ with pkgs;
 
   leafpad = callPackage ../applications/editors/leafpad { };
 
-  leatherman = callPackage ../development/libraries/leatherman {
-    boost = boost160;
-  };
+  leatherman = callPackage ../development/libraries/leatherman { };
 
   leela = callPackage ../tools/graphics/leela { };
 
@@ -2946,14 +3394,16 @@ with pkgs;
 
   libevdev = callPackage ../development/libraries/libevdev { };
 
-  libevhtp = callPackage ../development/libraries/libevhtp { };
-
   libfann = callPackage ../development/libraries/libfann { };
 
+  libipfix = callPackage ../development/libraries/libipfix { };
+
   libircclient = callPackage ../development/libraries/libircclient { };
 
   libite = callPackage ../development/libraries/libite { };
 
+  liblouis = callPackage ../development/libraries/liblouis { };
+
   liboauth = callPackage ../development/libraries/liboauth { };
 
   libsidplayfp = callPackage ../development/libraries/libsidplayfp { };
@@ -2966,6 +3416,8 @@ with pkgs;
 
   libtirpc = callPackage ../development/libraries/ti-rpc { };
 
+  libtins = callPackage ../development/libraries/libtins { };
+
   libshout = callPackage ../development/libraries/libshout { };
 
   libqb = callPackage ../development/libraries/libqb { };
@@ -2994,8 +3446,12 @@ with pkgs;
 
   libibverbs = callPackage ../development/libraries/libibverbs { };
 
+  libxc = callPackage ../development/libraries/libxc { };
+
   libxcomp = callPackage ../development/libraries/libxcomp { };
 
+  libxl = callPackage ../development/libraries/libxl {};
+
   libx86emu = callPackage ../development/libraries/libx86emu { };
 
   libzmf = callPackage ../development/libraries/libzmf {};
@@ -3008,6 +3464,8 @@ with pkgs;
 
   limesurvey = callPackage ../servers/limesurvey { };
 
+  localtime = callPackage ../tools/system/localtime { };
+
   logcheck = callPackage ../tools/system/logcheck {
     inherit (perlPackages) mimeConstruct;
   };
@@ -3041,7 +3499,9 @@ with pkgs;
   ltris = callPackage ../games/ltris { };
 
   lxc = callPackage ../os-specific/linux/lxc { };
-  lxcfs = callPackage ../os-specific/linux/lxcfs { };
+  lxcfs = callPackage ../os-specific/linux/lxcfs {
+    enableDebugBuild = config.lxcfs.enableDebugBuild or false;
+  };
   lxd = callPackage ../tools/admin/lxd { };
 
   lzfse = callPackage ../tools/compression/lzfse { };
@@ -3070,7 +3530,9 @@ with pkgs;
 
   mailhog = callPackage ../servers/mail/mailhog {};
 
-  mailnag = callPackage ../applications/networking/mailreaders/mailnag { };
+  mailnag = callPackage ../applications/networking/mailreaders/mailnag {
+    pythonPackages = python2Packages;
+  };
 
   mailsend = callPackage ../tools/networking/mailsend { };
 
@@ -3122,9 +3584,7 @@ with pkgs;
 
   memtest86 = callPackage ../tools/misc/memtest86 { };
 
-  memtest86plus = callPackage ../tools/misc/memtest86+ {
-    stdenv = overrideCC stdenv gcc5;
-  };
+  memtest86plus = callPackage ../tools/misc/memtest86+ { };
 
   meo = callPackage ../tools/security/meo {
     boost = boost155;
@@ -3152,12 +3612,18 @@ with pkgs;
 
   mednafen-server = callPackage ../misc/emulators/mednafen/server.nix { };
 
-  mednaffe = callPackage ../misc/emulators/mednaffe/default.nix { };
+  mednaffe = callPackage ../misc/emulators/mednaffe/default.nix {
+    gtk2 = null;
+  };
 
   megacli = callPackage ../tools/misc/megacli { };
 
   megatools = callPackage ../tools/networking/megatools { };
 
+  memo = callPackage ../applications/misc/memo/default.nix { };
+
+  mencal = callPackage ../applications/misc/mencal/default.nix { } ;
+
   metamorphose2 = callPackage ../applications/misc/metamorphose2 { };
 
   metar = callPackage ../applications/misc/metar { };
@@ -3178,7 +3644,8 @@ with pkgs;
 
   minissdpd = callPackage ../tools/networking/minissdpd { };
 
-  inherit (callPackage ../tools/networking/miniupnpc { })
+  inherit (callPackage ../tools/networking/miniupnpc
+            { inherit (darwin) cctools; })
     miniupnpc_1 miniupnpc_2;
   miniupnpc = miniupnpc_1;
 
@@ -3186,6 +3653,8 @@ with pkgs;
 
   miniball = callPackage ../development/libraries/miniball { };
 
+  minijail = callPackage ../tools/system/minijail { };
+
   minixml = callPackage ../development/libraries/minixml { };
 
   mir-qualia = callPackage ../tools/text/mir-qualia {
@@ -3194,6 +3663,8 @@ with pkgs;
 
   miredo = callPackage ../tools/networking/miredo { };
 
+  mirrorbits = callPackage ../servers/mirrorbits { };
+
   mitmproxy = callPackage ../tools/networking/mitmproxy { };
 
   mjpegtoolsFull = callPackage ../tools/video/mjpegtools { };
@@ -3212,10 +3683,14 @@ with pkgs;
 
   mktorrent = callPackage ../tools/misc/mktorrent { };
 
+  mmake = callPackage ../tools/misc/mmake { };
+
   modemmanager = callPackage ../tools/networking/modemmanager {};
 
   modsecurity_standalone = callPackage ../tools/security/modsecurity { };
 
+  molden = callPackage ../applications/science/chemistry/molden { };
+
   molly-guard = callPackage ../os-specific/linux/molly-guard { };
 
   moneyplex = callPackage ../applications/office/moneyplex { };
@@ -3276,6 +3751,10 @@ with pkgs;
 
   munge = callPackage ../tools/security/munge { };
 
+  mycli = callPackage ../tools/admin/mycli { };
+
+  mydumper = callPackage ../tools/backup/mydumper { };
+
   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
 
   mysqltuner = callPackage ../tools/misc/mysqltuner { };
@@ -3288,7 +3767,18 @@ with pkgs;
 
   nasty = callPackage ../tools/security/nasty { };
 
+  nat-traverse = callPackage ../tools/networking/nat-traverse { };
+
+  nawk = callPackage ../tools/text/nawk { };
+
   nbd = callPackage ../tools/networking/nbd { };
+  xnbd = callPackage ../tools/networking/xnbd { };
+
+  inherit (callPackages ../development/libraries/science/math/nccl { })
+    nccl_cudatoolkit8
+    nccl_cudatoolkit9;
+
+  nccl = nccl_cudatoolkit9;
 
   ndjbdns = callPackage ../tools/networking/ndjbdns { };
 
@@ -3345,17 +3835,19 @@ with pkgs;
 
   networkmanager = callPackage ../tools/networking/network-manager { };
 
-  networkmanager_openvpn = callPackage ../tools/networking/network-manager/openvpn.nix { };
+  networkmanager-iodine = callPackage ../tools/networking/network-manager/iodine.nix { };
+
+  networkmanager-openvpn = callPackage ../tools/networking/network-manager/openvpn.nix { };
 
-  networkmanager_pptp = callPackage ../tools/networking/network-manager/pptp.nix { };
+  networkmanager-pptp = callPackage ../tools/networking/network-manager/pptp.nix { };
 
-  networkmanager_l2tp = callPackage ../tools/networking/network-manager/l2tp.nix { };
+  networkmanager-l2tp = callPackage ../tools/networking/network-manager/l2tp.nix { };
 
-  networkmanager_vpnc = callPackage ../tools/networking/network-manager/vpnc.nix { };
+  networkmanager-vpnc = callPackage ../tools/networking/network-manager/vpnc.nix { };
 
-  networkmanager_openconnect = callPackage ../tools/networking/network-manager/openconnect.nix { };
+  networkmanager-openconnect = callPackage ../tools/networking/network-manager/openconnect.nix { };
 
-  networkmanager_fortisslvpn = callPackage ../tools/networking/network-manager/fortisslvpn.nix { };
+  networkmanager-fortisslvpn = callPackage ../tools/networking/network-manager/fortisslvpn.nix { };
 
   networkmanager_strongswan = callPackage ../tools/networking/network-manager/strongswan.nix { };
 
@@ -3363,17 +3855,21 @@ with pkgs;
 
   networkmanager_dmenu = callPackage ../tools/networking/networkmanager_dmenu  { };
 
-  newsbeuter = callPackage ../applications/networking/feedreaders/newsbeuter { };
-
-  newsbeuter-dev = callPackage ../applications/networking/feedreaders/newsbeuter/dev.nix { };
+  newsboat = callPackage ../applications/networking/feedreaders/newsboat { };
 
   nextcloud = callPackage ../servers/nextcloud { };
 
+  nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
+
   nextcloud-news-updater = callPackage ../servers/nextcloud/news-updater.nix { };
 
   ngrep = callPackage ../tools/networking/ngrep { };
 
-  ngrok = callPackage ../tools/networking/ngrok { };
+  ngrok = ngrok-2;
+
+  ngrok-2 = callPackage ../tools/networking/ngrok-2 { };
+
+  ngrok-1 = callPackage ../tools/networking/ngrok-1 { };
 
   noice = callPackage ../applications/misc/noice { };
 
@@ -3381,6 +3877,8 @@ with pkgs;
 
   nomad = callPackage ../applications/networking/cluster/nomad { };
 
+  miller = callPackage ../tools/text/miller { };
+
   milu = callPackage ../applications/misc/milu { };
 
   mpack = callPackage ../tools/networking/mpack { };
@@ -3391,10 +3889,14 @@ with pkgs;
 
   pnmixer = callPackage ../tools/audio/pnmixer { };
 
+  pulsemixer = callPackage ../tools/audio/pulsemixer { };
+
   pwsafe = callPackage ../applications/misc/pwsafe {
     wxGTK = wxGTK30;
   };
 
+  niff = callPackage ../tools/package-management/niff { };
+
   nifskope = callPackage ../tools/graphics/nifskope { };
 
   nilfs-utils = callPackage ../tools/filesystems/nilfs-utils {};
@@ -3402,7 +3904,7 @@ with pkgs;
 
   nitrogen = callPackage ../tools/X11/nitrogen {};
 
-  nixbot = callPackage ../tools/misc/nixbot {};
+  notify-desktop = callPackage ../tools/misc/notify-desktop {};
 
   nkf = callPackage ../tools/text/nkf {};
 
@@ -3418,8 +3920,12 @@ with pkgs;
     graphicalSupport = true;
   };
 
+  nmapsi4 = libsForQt5.callPackage ../tools/security/nmap/qt.nix { };
+
   nnn = callPackage ../applications/misc/nnn { };
 
+  notary = callPackage ../tools/security/notary { };
+
   notify-osd = callPackage ../applications/misc/notify-osd { };
 
   nox = callPackage ../tools/package-management/nox {
@@ -3461,7 +3967,7 @@ with pkgs;
 
   nzbget = callPackage ../tools/networking/nzbget { };
 
-  oathToolkit = callPackage ../tools/security/oath-toolkit { };
+  oathToolkit = callPackage ../tools/security/oath-toolkit { inherit (gnome2) gtkdoc;  };
 
   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
 
@@ -3487,6 +3993,12 @@ with pkgs;
 
   oh-my-zsh = callPackage ../shells/oh-my-zsh { };
 
+  ola = callPackage ../applications/misc/ola { };
+
+  onioncircuits = callPackage ../tools/security/onioncircuits {
+    inherit (gnome3) defaultIconTheme;
+  };
+
   opencc = callPackage ../tools/text/opencc { };
 
   opencl-info = callPackage ../tools/system/opencl-info { };
@@ -3524,24 +4036,23 @@ with pkgs;
 
   openresolv = callPackage ../tools/networking/openresolv { };
 
-  opensc = callPackage ../tools/security/opensc { };
+  opensc = callPackage ../tools/security/opensc {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  opensm = callPackage ../tools/networking/opensm { };
 
   openssh =
     callPackage ../tools/networking/openssh {
       hpnSupport = false;
-      withKerberos = stdenv.isDarwin;
       etcDir = "/etc/ssh";
       pam = if stdenv.isLinux then pam else null;
     };
 
   openssh_hpn = pkgs.appendToName "with-hpn" (openssh.override { hpnSupport = true; });
 
-  openssh_with_kerberos = pkgs.appendToName "with-kerberos" (openssh.override { withKerberos = true; });
-
   opensp = callPackage ../tools/text/sgml/opensp { };
 
-  spCompat = callPackage ../tools/text/sgml/opensp/compat.nix { };
-
   opentracker = callPackage ../applications/networking/p2p/opentracker { };
 
   opentsdb = callPackage ../tools/misc/opentsdb {};
@@ -3550,6 +4061,10 @@ with pkgs;
 
   openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { };
 
+  openvpn-auth-ldap = callPackage ../tools/networking/openvpn/openvpn-auth-ldap.nix {
+    stdenv = clangStdenv;
+  };
+
   update-resolv-conf = callPackage ../tools/networking/openvpn/update-resolv-conf.nix { };
 
   open-pdf-presenter = callPackage ../applications/misc/open-pdf-presenter { };
@@ -3568,12 +4083,15 @@ with pkgs;
 
   ostree = callPackage ../tools/misc/ostree { };
 
+  otfcc = callPackage ../tools/misc/otfcc { };
+
   otpw = callPackage ../os-specific/linux/otpw { };
 
+  overmind = callPackage ../applications/misc/overmind { };
+
   owncloud = owncloud70;
 
   inherit (callPackages ../servers/owncloud { })
-    owncloud705
     owncloud70
     owncloud80
     owncloud81
@@ -3581,25 +4099,31 @@ with pkgs;
     owncloud90
     owncloud91;
 
-  owncloud-client = libsForQt56.callPackage ../applications/networking/owncloud-client { };
+  owncloud-client = libsForQt5.callPackage ../applications/networking/owncloud-client { };
+
+  oxipng = callPackage ../tools/graphics/oxipng { };
 
   p2pvc = callPackage ../applications/video/p2pvc {};
 
   p7zip = callPackage ../tools/archivers/p7zip { };
 
-  packagekit = callPackage ../tools/package-management/packagekit {
-    nix = nixUnstable;
-  };
+  packagekit = callPackage ../tools/package-management/packagekit { };
+
+  packagekit-qt = libsForQt5.callPackage ../tools/package-management/packagekit/qt.nix { };
 
   packetdrill = callPackage ../tools/networking/packetdrill { };
 
+  pacman = callPackage ../tools/package-management/pacman { };
+
+  padthv1 = callPackage ../applications/audio/padthv1 { };
+
   pakcs = callPackage ../development/compilers/pakcs {};
 
   pal = callPackage ../tools/misc/pal { };
 
   pandoc = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskellPackages.pandoc) (drv: {
     configureFlags = drv.configureFlags or [] ++ ["-fembed_data_files"];
-    buildTools = drv.buildTools or [] ++ [haskellPackages.hsb2hs];
+    buildDepends = drv.buildDepends or [] ++ [haskellPackages.file-embed];
   });
 
   pamtester = callPackage ../tools/security/pamtester { };
@@ -3624,6 +4148,10 @@ with pkgs;
 
   pepper = callPackage ../tools/admin/salt/pepper { };
 
+  percona-xtrabackup = callPackage ../tools/backup/percona-xtrabackup {
+    boost = boost159;
+  };
+
   pick = callPackage ../tools/misc/pick { };
 
   pitivi = callPackage ../applications/video/pitivi {
@@ -3632,7 +4160,7 @@ with pkgs;
           (attrs: { nativeBuildInputs = attrs.nativeBuildInputs ++ [ gtk3 ];
                     # Fix this build error in ./tests/examples/waylandsink:
                     #   main.c:28:2: error: #error "Wayland is not supported in GTK+"
-                    configureFlags = attrs.configureFlags or "" + "--enable-wayland=no";
+                    configureFlags = attrs.configureFlags or [] ++ [ "--enable-wayland=no" ];
                   });
       };
   };
@@ -3689,6 +4217,8 @@ with pkgs;
 
   pdf2svg = callPackage ../tools/graphics/pdf2svg { };
 
+  fmodex = callPackage ../games/zandronum/fmod.nix { };
+
   pdfmod = callPackage ../applications/misc/pdfmod { };
 
   jbig2enc = callPackage ../tools/graphics/jbig2enc { };
@@ -3724,21 +4254,25 @@ with pkgs;
 
   philter = callPackage ../tools/networking/philter { };
 
-  pinentry = callPackage ../tools/security/pinentry {
-    libcap = if stdenv.isDarwin then null else libcap;
-    qt4 = null;
+  pinentry = pinentry_ncurses.override {
+    inherit gtk2;
   };
 
-  pinentry_ncurses = pinentry.override {
+  pinentry_ncurses = callPackage ../tools/security/pinentry {
+    libcap = if stdenv.isDarwin then null else libcap;
     gtk2 = null;
   };
 
+  pinentry_gnome = pinentry_ncurses.override {
+    gcr = gnome3.gcr;
+  };
+
   pinentry_qt4 = pinentry_ncurses.override {
-    inherit qt4;
+    qt = qt4;
   };
 
-  pinentry_qt5 = libsForQt5.callPackage ../tools/security/pinentry/qt5.nix {
-    libcap = if stdenv.isDarwin then null else libcap;
+  pinentry_qt5 = pinentry_ncurses.override {
+    qt = qt5.qtbase;
   };
 
   pinentry_mac = callPackage ../tools/security/pinentry-mac {
@@ -3764,12 +4298,18 @@ with pkgs;
 
   platinum-searcher = callPackage ../tools/text/platinum-searcher { };
 
+  playbar2 = libsForQt5.callPackage ../applications/audio/playbar2 { };
+
   plex = callPackage ../servers/plex { enablePlexPass = config.plex.enablePlexPass or false; };
 
+  plexpy = callPackage ../servers/plexpy { python = python2; };
+
   ploticus = callPackage ../tools/graphics/ploticus {
     libpng = libpng12;
   };
 
+  plotinus = callPackage ../tools/misc/plotinus { };
+
   plotutils = callPackage ../tools/graphics/plotutils { };
 
   plowshare = callPackage ../tools/misc/plowshare { };
@@ -3806,11 +4346,11 @@ with pkgs;
 
   popfile = callPackage ../tools/text/popfile { };
 
+  poretools = callPackage ../applications/science/biology/poretools { };
+
   postscript-lexmark = callPackage ../misc/drivers/postscript-lexmark { };
 
-  povray = callPackage ../tools/graphics/povray {
-    automake = automake113x; # fails with 14
-  };
+  povray = callPackage ../tools/graphics/povray { };
 
   ppl = callPackage ../development/libraries/ppl { };
 
@@ -3826,6 +4366,8 @@ with pkgs;
 
   profile-sync-daemon = callPackage ../tools/misc/profile-sync-daemon { };
 
+  projectlibre = callPackage ../applications/misc/projectlibre { };
+
   projectm = callPackage ../applications/audio/projectm { };
 
   proot = callPackage ../tools/system/proot { };
@@ -3858,6 +4400,8 @@ with pkgs;
     libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
   };
 
+  pubs = callPackage ../tools/misc/pubs {};
+
   pv = callPackage ../tools/misc/pv { };
 
   pwgen = callPackage ../tools/security/pwgen { };
@@ -3888,7 +4432,9 @@ with pkgs;
 
   qarte = callPackage ../applications/video/qarte { };
 
-  qnial = callPackage ../development/interpreters/qnial {};
+  qlcplus = libsForQt5.callPackage ../applications/misc/qlcplus { };
+
+  qnial = callPackage ../development/interpreters/qnial { };
 
   ocz-ssd-guru = callPackage ../tools/misc/ocz-ssd-guru { };
 
@@ -3933,6 +4479,8 @@ with pkgs;
 
   radeon-profile = libsForQt5.callPackage ../tools/misc/radeon-profile { };
 
+  radsecproxy = callPackage ../tools/networking/radsecproxy { };
+
   radvd = callPackage ../tools/networking/radvd { };
 
   rainbowstream = pythonPackages.rainbowstream;
@@ -3949,6 +4497,8 @@ with pkgs;
 
   rc = callPackage ../shells/rc { };
 
+  rdma-core = callPackage ../os-specific/linux/rdma-core { };
+
   read-edid = callPackage ../os-specific/linux/read-edid { };
 
   redir = callPackage ../tools/networking/redir { };
@@ -3982,6 +4532,8 @@ with pkgs;
 
   recoll = callPackage ../applications/search/recoll { };
 
+  reflex = callPackage ../development/tools/reflex { };
+
   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
 
   reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
@@ -3998,7 +4550,11 @@ with pkgs;
 
   remmina = callPackage ../applications/networking/remote/remmina {
     adwaita-icon-theme = gnome3.adwaita-icon-theme;
-    gsettings_desktop_schemas = gnome3.gsettings_desktop_schemas;
+    gsettings-desktop-schemas = gnome3.gsettings-desktop-schemas;
+  };
+
+  rename = callPackage ../tools/misc/rename {
+    inherit (perlPackages) buildPerlPackage;
   };
 
   renameutils = callPackage ../tools/misc/renameutils { };
@@ -4009,6 +4565,8 @@ with pkgs;
 
   reckon = callPackage ../tools/text/reckon { };
 
+  recoverjpeg = callPackage ../tools/misc/recoverjpeg { };
+
   reposurgeon = callPackage ../applications/version-management/reposurgeon { };
 
   reptyr = callPackage ../os-specific/linux/reptyr {};
@@ -4021,8 +4579,6 @@ with pkgs;
 
   rdfind = callPackage ../tools/filesystems/rdfind { };
 
-  rdmd = callPackage ../development/compilers/rdmd { };
-
   rhash = callPackage ../tools/security/rhash { };
 
   riemann_c_client = callPackage ../tools/misc/riemann-c-client { };
@@ -4042,6 +4598,10 @@ with pkgs;
 
   rnv = callPackage ../tools/text/xml/rnv { };
 
+  roundup = callPackage ../tools/misc/roundup { };
+
+  routino = callPackage ../tools/misc/routino { };
+
   rq = callPackage ../development/tools/rq {
     v8 = v8_static;
   };
@@ -4056,7 +4616,7 @@ with pkgs;
 
   rockbox_utility = libsForQt5.callPackage ../tools/misc/rockbox-utility { };
 
-  rosegarden = callPackage ../applications/audio/rosegarden { };
+  rosegarden = libsForQt5.callPackage ../applications/audio/rosegarden { };
 
   rowhammer-test = callPackage ../tools/system/rowhammer-test { };
 
@@ -4092,6 +4652,8 @@ with pkgs;
 
   rzip = callPackage ../tools/compression/rzip { };
 
+  s-tui = callPackage ../tools/system/s-tui { };
+
   s3backer = callPackage ../tools/filesystems/s3backer { };
 
   s3fs = callPackage ../tools/filesystems/s3fs { };
@@ -4132,10 +4694,16 @@ with pkgs;
     quazip = quazip_qt4;
   };
 
+  screenkey = python2Packages.callPackage ../applications/video/screenkey {
+    inherit (gnome3) defaultIconTheme;
+  };
+
   quazip_qt4 = libsForQt5.quazip.override {
     qtbase = qt4; qmake = qmake4Hook;
   };
 
+  scfbuild = python2.pkgs.callPackage ../tools/misc/scfbuild { };
+
   scrot = callPackage ../tools/graphics/scrot { };
 
   scrypt = callPackage ../tools/security/scrypt { };
@@ -4144,6 +4712,8 @@ with pkgs;
 
   sdl-jstest = callPackage ../tools/misc/sdl-jstest { };
 
+  skim = callPackage ../tools/misc/skim { };
+
   sec = callPackage ../tools/admin/sec { };
 
   seccure = callPackage ../tools/security/seccure { };
@@ -4168,9 +4738,11 @@ with pkgs;
 
   sharutils = callPackage ../tools/archivers/sharutils { };
 
+  shocco = callPackage ../tools/text/shocco { };
+
   shotwell = callPackage ../applications/graphics/shotwell { };
 
-  shout = callPackage ../applications/networking/irc/shout { };
+  shout = nodePackages.shout;
 
   shellinabox = callPackage ../servers/shellinabox { };
 
@@ -4180,7 +4752,15 @@ with pkgs;
 
   siege = callPackage ../tools/networking/siege {};
 
-  sigil = libsForQt56.callPackage ../applications/editors/sigil { };
+  sigal = callPackage ../applications/misc/sigal {
+    inherit (pythonPackages) buildPythonApplication fetchPypi;
+  };
+
+  sigil = libsForQt5.callPackage ../applications/editors/sigil { };
+
+  signal-desktop = callPackage ../applications/networking/instant-messengers/signal-desktop { };
+
+  signal-desktop-beta = callPackage ../applications/networking/instant-messengers/signal-desktop/beta.nix { };
 
   # aka., pgp-tools
   signing-party = callPackage ../tools/security/signing-party { };
@@ -4204,9 +4784,11 @@ with pkgs;
 
   sisco.lv2 = callPackage ../applications/audio/sisco.lv2 { };
 
+  sit = callPackage ../applications/version-management/sit { };
+
   skippy-xd = callPackage ../tools/X11/skippy-xd {};
 
-  sks = callPackage ../servers/sks { inherit (ocamlPackages) ocaml camlp4; };
+  sks = callPackage ../servers/sks { inherit (ocamlPackages_4_02) ocaml camlp4; };
 
   skydns = callPackage ../servers/skydns { };
 
@@ -4230,6 +4812,8 @@ with pkgs;
 
   smbnetfs = callPackage ../tools/filesystems/smbnetfs {};
 
+  smenu = callPackage ../tools/misc/smenu { };
+
   smugline = python3Packages.smugline;
 
   snabb = callPackage ../tools/networking/snabb { } ;
@@ -4242,7 +4826,10 @@ with pkgs;
 
   sshguard = callPackage ../tools/security/sshguard {};
 
-  softhsm = callPackage ../tools/security/softhsm { };
+  softhsm = callPackage ../tools/security/softhsm {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   solr = callPackage ../servers/search/solr { };
 
@@ -4256,6 +4843,8 @@ with pkgs;
 
   sparsehash = callPackage ../development/libraries/sparsehash { };
 
+  spectre-meltdown-checker = callPackage ../tools/security/spectre-meltdown-checker { };
+
   spiped = callPackage ../tools/networking/spiped { };
 
   sqliteman = callPackage ../applications/misc/sqliteman { };
@@ -4264,6 +4853,8 @@ with pkgs;
 
   storebrowse = callPackage ../tools/system/storebrowse { };
 
+  stubby = callPackage ../tools/networking/stubby { };
+
   syntex = callPackage ../tools/graphics/syntex {};
 
   fusesmb = callPackage ../tools/filesystems/fusesmb { samba = samba3; };
@@ -4282,10 +4873,14 @@ with pkgs;
 
   squashfsTools = callPackage ../tools/filesystems/squashfs { };
 
+  squashfuse = callPackage ../tools/filesystems/squashfuse { };
+
   srcml = callPackage ../applications/version-management/srcml { };
 
   sshfs-fuse = callPackage ../tools/filesystems/sshfs-fuse { };
 
+  sshlatex = callPackage ../tools/typesetting/sshlatex { };
+
   sshuttle = callPackage ../tools/security/sshuttle { };
 
   ssldump = callPackage ../tools/networking/ssldump { };
@@ -4310,6 +4905,8 @@ with pkgs;
 
   super-user-spark = haskellPackages.callPackage ../applications/misc/super_user_spark { };
 
+  svgcleaner = callPackage ../tools/graphics/svgcleaner { };
+
   ssdeep = callPackage ../tools/security/ssdeep { };
 
   ssh-ident = callPackage ../tools/networking/ssh-ident { };
@@ -4328,6 +4925,8 @@ with pkgs;
 
   ssss = callPackage ../tools/security/ssss { };
 
+  stabber = callPackage ../misc/stabber { };
+
   stress = callPackage ../tools/system/stress { };
 
   stress-ng = callPackage ../tools/system/stress-ng { };
@@ -4348,9 +4947,9 @@ with pkgs;
     preCheck = "export PATH=dist/build/stutter:$PATH";
   });
 
-  strongswan = callPackage ../tools/networking/strongswan { };
-
-  strongswanTNC = callPackage ../tools/networking/strongswan { enableTNC=true; };
+  strongswan    = callPackage ../tools/networking/strongswan { };
+  strongswanTNC = callPackage ../tools/networking/strongswan { enableTNC = true; };
+  strongswanNM  = callPackage ../tools/networking/strongswan { enableNetworkManager = true; };
 
   su = shadow.su;
 
@@ -4358,6 +4957,8 @@ with pkgs;
 
   surfraw = callPackage ../tools/networking/surfraw { };
 
+  swagger-codegen = callPackage ../tools/networking/swagger-codegen { };
+
   swec = callPackage ../tools/networking/swec {
     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
   };
@@ -4377,10 +4978,14 @@ with pkgs;
 
   staruml = callPackage ../tools/misc/staruml { inherit (gnome2) GConf; libgcrypt = libgcrypt_1_5; };
 
+  otter-browser = qt5.callPackage ../applications/networking/browsers/otter {};
+
   privoxy = callPackage ../tools/networking/privoxy {
     w3m = w3m-batch;
   };
 
+  netalyzr = callPackage ../tools/networking/netalyzr { };
+
   swaks = callPackage ../tools/networking/swaks { };
 
   swiften = callPackage ../development/libraries/swiften { };
@@ -4419,20 +5024,35 @@ with pkgs;
 
   telegraf = callPackage ../servers/monitoring/telegraf { };
 
-  texmacs = callPackage ../applications/editors/texmacs {
-    tex = texlive.combined.scheme-small;
-    extraFonts = true;
-  };
+  teleport = callPackage ../servers/teleport {};
+
+  telepresence = callPackage ../tools/networking/telepresence { };
+
+  tewisay = callPackage ../tools/misc/tewisay { };
+
+  texmacs = if stdenv.isDarwin
+    then callPackage ../applications/editors/texmacs/darwin.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
+      tex = texlive.combined.scheme-small;
+      extraFonts = true;
+    } else callPackage ../applications/editors/texmacs {
+      tex = texlive.combined.scheme-small;
+      extraFonts = true;
+    };
 
-  texmaker = callPackage ../applications/editors/texmaker { };
+  texmaker = libsForQt5.callPackage ../applications/editors/texmaker { };
 
   texstudio = callPackage ../applications/editors/texstudio { };
 
   textadept = callPackage ../applications/editors/textadept { };
 
+  texworks = callPackage ../applications/editors/texworks { };
+
   thc-hydra = callPackage ../tools/security/thc-hydra { };
 
-  thefuck = callPackage ../tools/misc/thefuck { };
+  theharvester = callPackage ../tools/security/theharvester { };
+
+  thefuck = python3Packages.callPackage ../tools/misc/thefuck { };
 
   thin-provisioning-tools = callPackage ../tools/misc/thin-provisioning-tools {  };
 
@@ -4444,6 +5064,8 @@ with pkgs;
 
   timetrap = callPackage ../applications/office/timetrap { };
 
+  tzupdate = callPackage ../applications/misc/tzupdate { };
+
   tinc = callPackage ../tools/networking/tinc { };
 
   tie = callPackage ../development/tools/misc/tie { };
@@ -4454,10 +5076,10 @@ with pkgs;
 
   tiny8086 = callPackage ../applications/virtualization/8086tiny { };
 
-  tlsdate = callPackage ../tools/networking/tlsdate { };
-
   tldr = callPackage ../tools/misc/tldr { };
 
+  tldr-hs = haskellPackages.tldr;
+
   tlspool = callPackage ../tools/networking/tlspool { };
 
   tmate = callPackage ../tools/misc/tmate { };
@@ -4472,8 +5094,6 @@ with pkgs;
 
   tmuxinator = callPackage ../tools/misc/tmuxinator { };
 
-  tmin = callPackage ../tools/security/tmin { };
-
   tmsu = callPackage ../tools/filesystems/tmsu { };
 
   toilet = callPackage ../tools/misc/toilet { };
@@ -4493,6 +5113,12 @@ with pkgs;
 
   tor-browser-bundle-bin = callPackage ../applications/networking/browsers/tor-browser-bundle-bin { };
 
+  tor-browser-bundle = callPackage ../applications/networking/browsers/tor-browser-bundle {
+    stdenv = stdenvNoCC;
+    tor-browser-unwrapped = firefoxPackages.tor-browser;
+    inherit (python27Packages) obfsproxy;
+  };
+
   touchegg = callPackage ../tools/inputmethods/touchegg { };
 
   torsocks = callPackage ../tools/security/tor/torsocks.nix { };
@@ -4539,7 +5165,8 @@ with pkgs;
 
   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
 
-  ttfautohint = callPackage ../tools/misc/ttfautohint { };
+  ttfautohint = libsForQt5.callPackage ../tools/misc/ttfautohint { };
+  ttfautohint-nox = ttfautohint.override { enableGUI = false; };
 
   tty-clock = callPackage ../tools/misc/tty-clock { };
 
@@ -4547,6 +5174,10 @@ with pkgs;
 
   ttylog = callPackage ../tools/misc/ttylog { };
 
+  turses = callPackage ../applications/networking/instant-messengers/turses { };
+
+  oysttyer = callPackage ../applications/networking/instant-messengers/oysttyer { };
+
   twitterBootstrap = callPackage ../development/web/twitter-bootstrap {};
   twitterBootstrap3 = callPackage ../development/web/twitter-bootstrap/v3.nix {};
 
@@ -4570,7 +5201,9 @@ with pkgs;
 
   udptunnel = callPackage ../tools/networking/udptunnel { };
 
-  ufraw = callPackage ../applications/graphics/ufraw { };
+  ufraw = callPackage ../applications/graphics/ufraw {
+    stdenv = overrideCC stdenv gcc6; # doesn't build with gcc7
+  };
 
   uget = callPackage ../tools/networking/uget { };
 
@@ -4588,8 +5221,12 @@ with pkgs;
 
   untex = callPackage ../tools/text/untex { };
 
+  untrunc = callPackage ../tools/video/untrunc { };
+
   upx = callPackage ../tools/compression/upx { };
 
+  uqmi = callPackage ../tools/networking/uqmi { };
+
   uriparser = callPackage ../development/libraries/uriparser {};
 
   urlscan = callPackage ../applications/misc/urlscan { };
@@ -4598,6 +5235,8 @@ with pkgs;
 
   usbmuxd = callPackage ../tools/misc/usbmuxd {};
 
+  usync = callPackage ../applications/misc/usync { };
+
   uwsgi = callPackage ../servers/uwsgi {
     plugins = [];
     withPAM = stdenv.isLinux;
@@ -4608,18 +5247,20 @@ with pkgs;
 
   volatility = callPackage ../tools/security/volatility { };
 
-  vidalia = callPackage ../tools/security/vidalia { };
-
   vbetool = callPackage ../tools/system/vbetool { };
 
   vde2 = callPackage ../tools/networking/vde2 { };
 
   vboot_reference = callPackage ../tools/system/vboot_reference { };
 
+  vcftools = callPackage ../applications/science/biology/vcftools { };
+
   vcsh = callPackage ../applications/version-management/vcsh {
     inherit (perlPackages) ShellCommand TestMost;
   };
 
+  vcstool = callPackage ../development/tools/vcstool { };
+
   verilator = callPackage ../applications/science/electronics/verilator {};
 
   verilog = callPackage ../applications/science/electronics/verilog {};
@@ -4643,6 +5284,8 @@ with pkgs;
 
   vncrec = callPackage ../tools/video/vncrec { };
 
+  vo-amrwbenc = callPackage ../development/libraries/vo-amrwbenc { };
+
   vobcopy = callPackage ../tools/cd-dvd/vobcopy { };
 
   vobsub2srt = callPackage ../tools/cd-dvd/vobsub2srt { };
@@ -4677,7 +5320,7 @@ with pkgs;
 
   vtun = callPackage ../tools/networking/vtun { };
 
-  wakatime = callPackage ../tools/misc/wakatime { };
+  wakatime = pythonPackages.callPackage ../tools/misc/wakatime { };
 
   weather = callPackage ../applications/misc/weather { };
 
@@ -4685,6 +5328,8 @@ with pkgs;
 
   wal_e = callPackage ../tools/backup/wal-e { };
 
+  watchexec = callPackage ../tools/misc/watchexec { };
+
   watchman = callPackage ../development/tools/watchman { };
 
   wavefunctioncollapse = callPackage ../tools/graphics/wavefunctioncollapse {};
@@ -4695,6 +5340,10 @@ with pkgs;
 
   whois = callPackage ../tools/networking/whois { };
 
+  woff2 = callPackage ../development/web/woff2 { };
+
+  woof = callPackage ../tools/misc/woof { };
+
   wsmancli = callPackage ../tools/system/wsmancli {};
 
   wolfebin = callPackage ../tools/networking/wolfebin {
@@ -4763,6 +5412,8 @@ with pkgs;
 
   ttmkfdir = callPackage ../tools/misc/ttmkfdir { };
 
+  ttwatch = callPackage ../tools/misc/ttwatch { };
+
   udunits = callPackage ../development/libraries/udunits { };
 
   uemacs = callPackage ../applications/editors/uemacs { };
@@ -4771,7 +5422,7 @@ with pkgs;
 
   uhttpmock = callPackage ../development/libraries/uhttpmock { };
 
-  uim = kde4.callPackage ../tools/inputmethods/uim { };
+  uim = callPackage ../tools/inputmethods/uim { };
 
   uhub = callPackage ../servers/uhub { };
 
@@ -4797,6 +5448,8 @@ with pkgs;
 
   xbrightness = callPackage ../tools/X11/xbrightness { };
 
+  xkbvalidate = callPackage ../tools/X11/xkbvalidate { };
+
   xfstests = callPackage ../tools/misc/xfstests { };
 
   xprintidle-ng = callPackage ../tools/X11/xprintidle-ng {};
@@ -4817,6 +5470,8 @@ with pkgs;
 
   unarj = callPackage ../tools/archivers/unarj { };
 
+  unp = callPackage ../tools/archivers/unp { };
+
   unshield = callPackage ../tools/archivers/unshield { };
 
   unzip = callPackage ../tools/archivers/unzip { };
@@ -4840,7 +5495,15 @@ with pkgs;
     inherit (gnome3) libgee;
   };
 
-  varnish = callPackage ../servers/varnish { };
+  inherit (callPackages ../servers/varnish { })
+    varnish4 varnish5 varnish6;
+  inherit (callPackages ../servers/varnish/packages.nix { })
+    varnish4Packages
+    varnish5Packages
+    varnish6Packages;
+
+  varnishPackages = varnish5Packages;
+  varnish = varnishPackages.varnish;
 
   venus = callPackage ../tools/misc/venus {
     python = python27;
@@ -4854,6 +5517,8 @@ with pkgs;
 
   vmtouch = callPackage ../tools/misc/vmtouch { };
 
+  vncdo = callPackage ../tools/admin/vncdo { };
+
   volumeicon = callPackage ../tools/audio/volumeicon { };
 
   waf = callPackage ../development/tools/build-managers/waf { };
@@ -4877,12 +5542,14 @@ with pkgs;
 
   which = callPackage ../tools/system/which { };
 
-  winusb = callPackage ../tools/misc/winusb { };
+  woeusb = callPackage ../tools/misc/woeusb { };
 
   chase = callPackage ../tools/system/chase { };
 
   wicd = callPackage ../tools/networking/wicd { };
 
+  wimlib = callPackage ../tools/archivers/wimlib { };
+
   wipe = callPackage ../tools/security/wipe { };
 
   wkhtmltopdf = callPackage ../tools/graphics/wkhtmltopdf {
@@ -4903,7 +5570,7 @@ with pkgs;
 
   wv2 = callPackage ../tools/misc/wv2 { };
 
-  inherit (ocamlPackages) wyrd;
+  wyrd = callPackage ../tools/misc/wyrd { };
 
   x86info = callPackage ../os-specific/linux/x86info { };
 
@@ -4912,23 +5579,19 @@ with pkgs;
   xbursttools = assert stdenv ? glibc; callPackage ../tools/misc/xburst-tools rec {
     # It needs a cross compiler for mipsel to build the firmware it will
     # load into the Ben Nanonote
-    crossPrefix = "mipsel-unknown-linux";
+    crossPrefix = "mipsel-unknown-linux-gnu";
     gccCross =
       let
         pkgsCross = nixpkgsFun {
           # Ben Nanonote system
           crossSystem = {
             config = crossPrefix;
-            bigEndian = true;
             arch = "mips";
             float = "soft";
-            withTLS = true;
             libc = "uclibc";
             platform = {
               name = "ben_nanonote";
               kernelMajor = "2.6";
-              # It's not a bcm47xx processor, but for the headers this should work
-              kernelHeadersBaseConfig = "bcm47xx_defconfig";
               kernelArch = "mips";
             };
             gcc = {
@@ -4987,7 +5650,9 @@ with pkgs;
 
   xsv = callPackage ../tools/text/xsv { };
 
-  xtreemfs = callPackage ../tools/filesystems/xtreemfs {};
+  xtreemfs = callPackage ../tools/filesystems/xtreemfs {
+    boost = boost165;
+  };
 
   xurls = callPackage ../tools/text/xurls {};
 
@@ -4997,10 +5662,15 @@ with pkgs;
 
   xwinmosaic = callPackage ../tools/X11/xwinmosaic {};
 
+  xwinwrap = callPackage ../tools/X11/xwinwrap {};
+
   yaft = callPackage ../applications/misc/yaft { };
 
   yarn = callPackage ../development/tools/yarn  { };
 
+  yarn2nix = callPackage ../development/tools/yarn2nix { };
+  inherit (yarn2nix) mkYarnPackage;
+
   yasr = callPackage ../applications/audio/yasr { };
 
   yank = callPackage ../tools/misc/yank { };
@@ -5014,6 +5684,8 @@ with pkgs;
 
   yle-dl = callPackage ../tools/misc/yle-dl {};
 
+  you-get = python3Packages.callPackage ../tools/misc/you-get { };
+
   zbackup = callPackage ../tools/backup/zbackup {};
 
   zbar = callPackage ../tools/graphics/zbar { };
@@ -5044,6 +5716,8 @@ with pkgs;
   zpaq = callPackage ../tools/archivers/zpaq { };
   zpaqd = callPackage ../tools/archivers/zpaq/zpaqd.nix { };
 
+  zsh-autoenv = callPackage ../tools/misc/zsh-autoenv { };
+
   zsh-git-prompt = callPackage ../shells/zsh-git-prompt { };
 
   zsh-navigation-tools = callPackage ../tools/misc/zsh-navigation-tools { };
@@ -5052,6 +5726,12 @@ with pkgs;
 
   zsh-autosuggestions = callPackage ../shells/zsh-autosuggestions { };
 
+  zsh-powerlevel9k = callPackage ../shells/zsh-powerlevel9k { };
+
+  zsh-command-time = callPackage ../shells/zsh-command-time { };
+
+  zssh = callPackage ../tools/networking/zssh { };
+
   zstd = callPackage ../tools/compression/zstd { };
   zstdmt = callPackage ../tools/compression/zstdmt { };
 
@@ -5062,6 +5742,9 @@ with pkgs;
 
   ### SHELLS
 
+  runtimeShell = "${runtimeShellPackage}/bin/bash";
+  runtimeShellPackage = bash;
+
   bash = lowPrio (callPackage ../shells/bash/4.4.nix {
     texinfo = null;
     interactive = stdenv.isCygwin; # patch for cygwin requires readline support
@@ -5074,6 +5757,8 @@ with pkgs;
 
   bash-completion = callPackage ../shells/bash-completion { };
 
+  nix-bash-completions = callPackage ../shells/nix-bash-completions { };
+
   dash = callPackage ../shells/dash { };
 
   es = callPackage ../shells/es { };
@@ -5088,6 +5773,8 @@ with pkgs;
 
   oh = callPackage ../shells/oh { };
 
+  oil = callPackage ../shells/oil { };
+
   pash = callPackage ../shells/pash { };
 
   tcsh = callPackage ../shells/tcsh { };
@@ -5129,12 +5816,11 @@ with pkgs;
   avra = callPackage ../development/compilers/avra { };
 
   avian = callPackage ../development/compilers/avian {
-    stdenv = overrideCC stdenv gcc49;
+    inherit (darwin.apple_sdk.frameworks) CoreServices Foundation;
+    stdenv = if stdenv.cc.isGNU then overrideCC stdenv gcc49 else stdenv;
   };
 
-  bigloo = callPackage ../development/compilers/bigloo {
-    stdenv = overrideCC stdenv gcc49;
-  };
+  bigloo = callPackage ../development/compilers/bigloo { };
 
   binaryen = callPackage ../development/compilers/binaryen { };
 
@@ -5156,12 +5842,25 @@ with pkgs;
     chickenEggs = callPackage ../development/tools/egg2nix/chicken-eggs.nix { };
   };
 
-  ccl = callPackage ../development/compilers/ccl { };
+  ccl = callPackage ../development/compilers/ccl {
+    inherit (darwin) bootstrap_cmds;
+  };
 
-  chez = callPackage ../development/compilers/chez { };
+  chez = callPackage ../development/compilers/chez {
+    inherit (darwin) cctools;
+  };
 
   clang = llvmPackages.clang;
 
+  clang-sierraHack = clang.override {
+    name = "clang-wrapper-with-reexport-hack";
+    bintools = clang.bintools.override {
+      useMacosReexportHack = true;
+    };
+  };
+
+  clang_6  = llvmPackages_6.clang;
+  clang_5  = llvmPackages_5.clang;
   clang_4  = llvmPackages_4.clang;
   clang_39 = llvmPackages_39.clang;
   clang_38 = llvmPackages_38.clang;
@@ -5173,23 +5872,24 @@ with pkgs;
 
   clang-analyzer = callPackage ../development/tools/analysis/clang-analyzer { };
 
-  clangUnwrapped = llvm: pkg: callPackage pkg { inherit llvm; };
-
   clangSelf = clangWrapSelf llvmPackagesSelf.clang;
 
   clangWrapSelf = build: ccWrapperFun {
     cc = build;
     isClang = true;
-    stdenv = clangStdenv;
-    libc = glibc;
+    inherit stdenvNoCC;
+    inherit (targetPackages.stdenv.cc) bintools libc;
     extraPackages = [ libcxx libcxxabi ];
     nativeTools = false;
     nativeLibc = false;
   };
 
   #Use this instead of stdenv to build with clang
-  clangStdenv = if stdenv.isDarwin then stdenv else lowPrio llvmPackages.stdenv;
-  libcxxStdenv = lowPrio llvmPackages.libcxxStdenv;
+  clangStdenv = if stdenv.cc.isClang then stdenv else lowPrio llvmPackages.stdenv;
+  clang-sierraHack-stdenv = overrideCC stdenv clang-sierraHack;
+  libcxxStdenv = if stdenv.isDarwin then stdenv else lowPrio llvmPackages.libcxxStdenv;
+
+  clasp-common-lisp = callPackage ../development/compilers/clasp {};
 
   clean = callPackage ../development/compilers/clean { };
 
@@ -5199,14 +5899,9 @@ with pkgs;
 
   cmucl_binary = callPackage_i686 ../development/compilers/cmucl/binary.nix { };
 
-  compcert = callPackage ../development/compilers/compcert ((
-    if system == "x86_64-linux"
-    then { tools = pkgsi686Linux.stdenv.cc; }
-    else {}
-  ) // {
-    coq = coq_8_6;
-  });
+  compcert = callPackage ../development/compilers/compcert { };
 
+  cpp-gsl = callPackage ../development/libraries/cpp-gsl { };
 
   # Users installing via `nix-env` will likely be using the REPL,
   # which has a hard dependency on Z3, so make sure it is available.
@@ -5222,6 +5917,10 @@ with pkgs;
 
   devpi-client = callPackage ../development/tools/devpi-client {};
 
+  devpi-server = callPackage ../development/tools/devpi-server {};
+
+  dotty = callPackage ../development/compilers/scala/dotty.nix { jre = jre8;};
+
   drumstick = callPackage ../development/libraries/drumstick { };
 
   ecl = callPackage ../development/compilers/ecl { };
@@ -5238,23 +5937,58 @@ with pkgs;
   gambit = callPackage ../development/compilers/gambit { };
   gerbil = callPackage ../development/compilers/gerbil { };
 
-  gcc = gcc5;
+  gccFun = callPackage ../development/compilers/gcc/7;
+  gcc = gcc7;
   gcc-unwrapped = gcc.cc;
 
+  gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
+    allowedRequisites = null;
+    cc = gcc;
+    # Remove libcxx/libcxxabi, and add clang for AS if on darwin (it uses
+    # clang's internal assembler).
+    extraBuildInputs = lib.optional hostPlatform.isDarwin clang.cc;
+  };
+
+  gcc7Stdenv = overrideCC gccStdenv gcc7;
+
   wrapCCMulti = cc:
-    if system == "x86_64-linux" then lowPrio (
-      let
-        extraBuildCommands = ''
-          echo "dontMoveLib64=1" >> $out/nix-support/setup-hook
-        '';
-      in wrapCCWith glibc_multi extraBuildCommands (cc.cc.override {
-        stdenv = overrideCC stdenv (wrapCCWith glibc_multi "" cc.cc);
+    if system == "x86_64-linux" then let
+      # Binutils with glibc multi
+      bintools = cc.bintools.override {
+        libc = glibc_multi;
+      };
+    in lowPrio (wrapCCWith {
+      cc = cc.cc.override {
+        stdenv = overrideCC stdenv (wrapCCWith {
+          cc = cc.cc;
+          inherit bintools;
+          libc = glibc_multi;
+        });
         profiledCompiler = false;
         enableMultilib = true;
-      }))
-    else throw "Multilib ${cc.name} not supported on ‘${system}’";
+      };
+      libc = glibc_multi;
+      inherit bintools;
+      extraBuildCommands = ''
+        echo "dontMoveLib64=1" >> $out/nix-support/setup-hook
+      '';
+  }) else throw "Multilib ${cc.name} not supported on ‘${system}’";
+
+  wrapClangMulti = clang:
+    if system == "x86_64-linux" then
+      callPackage ../development/compilers/llvm/multi.nix {
+        inherit clang;
+        gcc32 = pkgsi686Linux.gcc;
+        gcc64 = pkgs.gcc;
+      }
+    else throw "Multilib ${clang.cc.name} not supported on '${system}'";
 
   gcc_multi = wrapCCMulti gcc;
+  clang_multi = wrapClangMulti clang;
+
+  gccMultiStdenv = overrideCC stdenv gcc_multi;
+  clangMultiStdenv = overrideCC stdenv clang_multi;
+  multiStdenv = if stdenv.cc.isClang then clangMultiStdenv else gccMultiStdenv;
 
   gcc_debug = lowPrio (wrapCC (gcc.cc.override {
     stripped = false;
@@ -5262,6 +5996,10 @@ with pkgs;
 
   gccApple = throw "gccApple is no longer supported";
 
+  libstdcxxHook = makeSetupHook
+    { substitutions = { gcc = gcc-unwrapped; }; }
+    ../development/compilers/gcc/libstdc++-hook.sh;
+
   # Can't just overrideCC, because then the stdenv-cross mkDerivation will be
   # thrown away. TODO: find a better solution for this.
   crossLibcStdenv = buildPackages.makeStdenvCross {
@@ -5270,56 +6008,46 @@ with pkgs;
     cc = buildPackages.gccCrossStageStatic;
   };
 
+  # The GCC used to build libc for the target platform. Normal gccs will be
+  # built with, and use, that cross-compiled libc.
   gccCrossStageStatic = assert targetPlatform != buildPlatform; let
     libcCross1 =
-      if targetPlatform.libc == "msvcrt" then __targetPackages.windows.mingw_w64_headers
+      if targetPlatform.libc == "msvcrt" then targetPackages.windows.mingw_w64_headers
       else if targetPlatform.libc == "libSystem" then darwin.xcode
+      else if targetPlatform.libc == "musl" then musl
       else null;
-    in wrapCCCross {
-      cc = forcedNativePackages.gcc.cc.override {
+    binutils1 = wrapBintoolsWith {
+      bintools = binutils-unwrapped;
+      libc = libcCross1;
+    };
+    in wrapCCWith {
+      name = "gcc-cross-wrapper";
+      cc = gccFun {
+        # copy-pasted
+        inherit noSysDirs;
+        # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
+        profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+        isl = if !stdenv.isDarwin then isl_0_17 else null;
+
+        # just for stage static
         crossStageStatic = true;
         langCC = false;
         libcCross = libcCross1;
+        targetPackages.stdenv.cc.bintools = binutils1;
         enableShared = false;
-        # Why is this needed?
-        inherit (forcedNativePackages) binutils;
       };
+      bintools = binutils1;
       libc = libcCross1;
-      inherit (forcedNativePackages) binutils;
   };
 
   # Only needed for mingw builds
-  gccCrossMingw2 = assert targetPlatform != buildPlatform; wrapCCCross {
+  gccCrossMingw2 = assert targetPlatform != buildPlatform; wrapCCWith {
+    name = "gcc-cross-wrapper";
     cc = gccCrossStageStatic.gcc;
     libc = windows.mingw_headers2;
-    inherit (forcedNativePackages) binutils;
+    inherit binutils;
   };
 
-  gccCrossStageFinal = assert targetPlatform != buildPlatform; wrapCCCross {
-    cc = forcedNativePackages.gcc.cc.override {
-      crossStageStatic = false;
-
-      # Why is this needed?
-      inherit (forcedNativePackages) binutils;
-    };
-    libc = libcCross;
-    inherit (forcedNativePackages) binutils;
-  };
-
-  gcc45 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.5 {
-    inherit noSysDirs;
-    texinfo = texinfo4;
-
-    ppl = null;
-    cloogppl = null;
-
-    # bootstrapping a profiled compiler does not work in the sheevaplug:
-    # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
-    profiledCompiler = !stdenv.isArm;
-
-    libcCross = if targetPlatform != buildPlatform then libcCross else null;
-  }));
-
   gcc48 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.8 {
     inherit noSysDirs;
 
@@ -5390,7 +6118,7 @@ with pkgs;
     isl = isl_0_17;
   }));
 
-  gfortran = gfortran5;
+  gfortran = gfortran7;
 
   gfortran48 = wrapCC (gcc48.cc.override {
     name = "gfortran";
@@ -5432,8 +6160,8 @@ with pkgs;
     profiledCompiler = false;
   });
 
-  gcj = gcj49;
-  gcj49 = wrapCC (gcc49.cc.override {
+  gcj = gcj6;
+  gcj6 = wrapCC (gcc6.cc.override {
     name = "gcj";
     langJava = true;
     langFortran = false;
@@ -5444,45 +6172,19 @@ with pkgs;
     inherit (gnome2) libart_lgpl;
   });
 
-  gnat = gnat45; # failed to make 4.6 or 4.8 build
-
-  gnat45 = wrapCC (gcc45.cc.override {
-    name = "gnat";
-    langCC = false;
-    langC = true;
-    langAda = true;
-    profiledCompiler = false;
-    inherit gnatboot;
-    # We can't use the ppl stuff, because we would have
-    # libstdc++ problems.
-    cloogppl = null;
-    ppl = null;
-  });
-
-  gnatboot = wrapGCC-old (callPackage ../development/compilers/gnatboot {});
-
   gnu-smalltalk = callPackage ../development/compilers/gnu-smalltalk {
     emacsSupport = config.emacsSupport or false;
   };
 
-  gccgo = gccgo49;
-
-  gccgo49 = wrapCC (gcc49.cc.override {
-    name = "gccgo49";
+  gccgo = gccgo6;
+  gccgo6 = wrapCC (gcc6.cc.override {
+    name = "gccgo6";
     langCC = true; #required for go.
     langC = true;
     langGo = true;
     profiledCompiler = false;
   });
 
-  ghdl_mcode = callPackage_i686 ../development/compilers/ghdl {
-    flavour = "mcode";
-  };
-
-  ghdl_llvm = callPackage ../development/compilers/ghdl {
-    flavour = "llvm";
-  };
-
   gcl = callPackage ../development/compilers/gcl {
     gmp = gmp4;
   };
@@ -5515,7 +6217,8 @@ with pkgs;
     sha256 = "1r0rqbnw7rf94f5bsa3gi8bick4xb7qnp1dkvdjfbvqjvysvc44r";
     ncurses = pkgsi686Linux.ncurses5;
   };
-  gcc-arm-embedded = gcc-arm-embedded-5;
+  gcc-arm-embedded-6 = callPackage ../development/compilers/gcc-arm-embedded/6 {};
+  gcc-arm-embedded = gcc-arm-embedded-6;
 
   gforth = callPackage ../development/compilers/gforth {};
 
@@ -5525,7 +6228,7 @@ with pkgs;
 
   haskell = callPackage ./haskell-packages.nix { };
 
-  haskellPackages = haskell.packages.ghc802.override {
+  haskellPackages = haskell.packages.ghc822.override {
     overrides = config.haskellPackageOverrides or (self: super: {});
   };
 
@@ -5542,14 +6245,19 @@ with pkgs;
   psc-package = haskell.lib.justStaticExecutables
     (haskellPackages.callPackage ../development/compilers/purescript/psc-package { });
 
+  tamarin-prover =
+    (haskellPackages.callPackage ../applications/science/logic/tamarin-prover {
+      # NOTE: do not use the haskell packages 'graphviz' and 'maude'
+      inherit maude which sapic;
+      graphviz = graphviz-nox;
+    });
+
   inherit (ocamlPackages.haxe) haxe_3_2 haxe_3_4;
   haxe = haxe_3_4;
   haxePackages = recurseIntoAttrs (callPackage ./haxe-packages.nix { });
   inherit (haxePackages) hxcpp;
 
-  hhvm = callPackage ../development/compilers/hhvm {
-    boost = boost160;
-  };
+  hhvm = callPackage ../development/compilers/hhvm { };
 
   hop = callPackage ../development/compilers/hop { };
 
@@ -5569,23 +6277,28 @@ with pkgs;
 
   glslang = callPackage ../development/compilers/glslang { };
 
-  go_bootstrap = callPackage ../development/compilers/go/1.4.nix {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
-  go_1_6 = callPackage ../development/compilers/go/1.6.nix {
-    inherit (darwin.apple_sdk.frameworks) Security Foundation;
-  };
+  go_bootstrap = if stdenv.isAarch64 then
+    srcOnly {
+      name = "go-1.8-linux-arm64-bootstrap";
+      src = fetchurl {
+        url = "https://cache.xor.us/go-1.8-linux-arm64-bootstrap.tar.xz";
+        sha256 = "0sk6g03x9gbxk2k1djnrgy8rzw1zc5f6ssw0hbxk6kjr85lpmld6";
+      };
+    }
+  else
+    callPackage ../development/compilers/go/1.4.nix {
+      inherit (darwin.apple_sdk.frameworks) Security;
+    };
 
-  go_1_7 = callPackage ../development/compilers/go/1.7.nix {
+  go_1_9 = callPackage ../development/compilers/go/1.9.nix {
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
   };
 
-  go_1_8 = callPackage ../development/compilers/go/1.8.nix {
+  go_1_10 = callPackage ../development/compilers/go/1.10.nix {
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
   };
 
-  go = go_1_8;
+  go = go_1_10;
 
   go-repo-root = callPackage ../development/tools/go-repo-root { };
 
@@ -5606,13 +6319,26 @@ with pkgs;
   icedtea_web = icedtea8_web;
 
   idrisPackages = callPackage ../development/idris-modules {
-    inherit (haskellPackages) idris;
-  };
 
-  intercal = callPackage ../development/compilers/intercal {
-    flex = flex_2_6_1; # Works with 2.5.35 too, but not 2.6.3
+    idris-no-deps =
+      let
+        inherit (self.haskell) lib;
+        haskellPackages = self.haskellPackages.override {
+          overrides = self: super: {
+            binary = lib.dontCheck self.binary_0_8_5_1;
+            parsers = lib.dontCheck super.parsers;
+            semigroupoids = lib.dontCheck super.semigroupoids;
+            trifecta = lib.dontCheck super.trifecta;
+          };
+        };
+      in
+        haskellPackages.idris;
   };
 
+  idris = idrisPackages.with-packages [ idrisPackages.base ] ;
+
+  intercal = callPackage ../development/compilers/intercal { };
+
   irony-server = callPackage ../development/tools/irony-server/default.nix {
     # The repository of irony to use -- must match the version of the employed emacs
     # package.  Wishing we could merge it into one irony package, to avoid this issue,
@@ -5640,6 +6366,15 @@ with pkgs;
         inherit (gnome2) GConf gnome_vfs;
       };
 
+  openjdk9 =
+    # if stdenv.isDarwin then
+    #   callPackage ../development/compilers/openjdk-darwin/9.nix { }
+    # else
+      callPackage ../development/compilers/openjdk/9.nix {
+        bootjdk = openjdk8;
+        inherit (gnome2) GConf gnome_vfs;
+      };
+
   openjdk = openjdk8;
 
   jdk7 = openjdk7 // { outputs = [ "out" ]; };
@@ -5647,21 +6382,41 @@ with pkgs;
     (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
       (openjdk7.jre // { outputs = [ "jre" ]; }));
 
-  jdk8 = if stdenv.isArm then oraclejdk8 else openjdk8 // { outputs = [ "out" ]; };
-  jre8 = if stdenv.isArm then oraclejre8 else lib.setName "openjre-${lib.getVersion pkgs.openjdk8.jre}"
+  jdk8 = if stdenv.isArm || stdenv.isAarch64 then oraclejdk8 else openjdk8 // { outputs = [ "out" ]; };
+  jre8 = if stdenv.isArm || stdenv.isAarch64 then oraclejre8 else lib.setName "openjre-${lib.getVersion pkgs.openjdk8.jre}"
     (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
       (openjdk8.jre // { outputs = [ "jre" ]; }));
   jre8_headless =
-    if stdenv.isDarwin then jre8 else
+    if stdenv.isArm || stdenv.isAarch64 then
+      oraclejre8
+    else if stdenv.isDarwin then
+      jre8
+    else
       lib.setName "openjre-${lib.getVersion pkgs.openjdk8.jre}-headless"
         (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
           ((openjdk8.override { minimal = true; }).jre // { outputs = [ "jre" ]; }));
 
+  jdk9 = if stdenv.isArm || stdenv.isAarch64 then oraclejdk9 else openjdk9 // { outputs = [ "out" ]; };
+  jre9 = if stdenv.isArm || stdenv.isAarch64 then oraclejre9 else lib.setName "openjre-${lib.getVersion pkgs.openjdk9.jre}"
+    (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
+      (openjdk9.jre // { outputs = [ "jre" ]; }));
+  jre9_headless =
+    if stdenv.isArm || stdenv.isAarch64 then
+      oraclejre9
+    else if stdenv.isDarwin then
+      jre9
+    else
+      lib.setName "openjre-${lib.getVersion pkgs.openjdk9.jre}-headless"
+        (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
+          ((openjdk9.override { minimal = true; }).jre // { outputs = [ "jre" ]; }));
+
   jdk = jdk8;
   jre = jre8;
   jre_headless = jre8_headless;
 
-  openshot-qt = libsForQt56.callPackage ../applications/video/openshot-qt { };
+  inherit (callPackages ../development/compilers/graalvm { }) mx jvmci8 graalvm8;
+
+  openshot-qt = libsForQt5.callPackage ../applications/video/openshot-qt { };
 
   oraclejdk = pkgs.jdkdistro true false;
 
@@ -5669,36 +6424,39 @@ with pkgs;
 
   oraclejdk8psu = pkgs.oraclejdk8psu_distro true false;
 
+  oraclejdk9 = pkgs.oraclejdk9distro "JDK" false;
+
   oraclejre = lowPrio (pkgs.jdkdistro false false);
 
   oraclejre8 = lowPrio (pkgs.oraclejdk8distro false false);
 
   oraclejre8psu = lowPrio (pkgs.oraclejdk8psu_distro false false);
 
+  oraclejre9 = lowPrio (pkgs.oraclejdk9distro "JRE" false);
+
+  oracleserverjre9 = lowPrio (pkgs.oraclejdk9distro "ServerJRE" false);
+
   jrePlugin = jre8Plugin;
 
   jre8Plugin = lowPrio (pkgs.oraclejdk8distro false true);
 
-  supportsJDK =
-    system == "i686-linux" ||
-    system == "x86_64-linux" ||
-    system == "armv7l-linux";
-
   jdkdistro = oraclejdk8distro;
 
   oraclejdk8distro = installjdk: pluginSupport:
-    assert supportsJDK;
     (if pluginSupport then appendToName "with-plugin" else x: x)
-      (callPackage ../development/compilers/oraclejdk/jdk8cpu-linux.nix { inherit installjdk; });
+      (callPackage ../development/compilers/oraclejdk/jdk8cpu-linux.nix { inherit installjdk pluginSupport; });
 
   oraclejdk8psu_distro = installjdk: pluginSupport:
-    assert supportsJDK;
     (if pluginSupport then appendToName "with-plugin" else x: x)
-      (callPackage ../development/compilers/oraclejdk/jdk8psu-linux.nix { inherit installjdk; });
+      (callPackage ../development/compilers/oraclejdk/jdk8psu-linux.nix { inherit installjdk pluginSupport; });
+
+  oraclejdk9distro = packageType: pluginSupport:
+    (if pluginSupport then appendToName "with-plugin" else x: x)
+      (callPackage ../development/compilers/oraclejdk/jdk9-linux.nix { inherit packageType pluginSupport; });
 
   jikes = callPackage ../development/compilers/jikes { };
 
-  julia = callPackage ../development/compilers/julia {
+  julia_04 = callPackage ../development/compilers/julia {
     gmp = gmp6;
     openblas = openblasCompat;
     inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
@@ -5707,11 +6465,19 @@ with pkgs;
 
   julia_05 = callPackage ../development/compilers/julia/0.5.nix {
     gmp = gmp6;
+    libgit2 = libgit2_0_25;
     openblas = openblasCompat;
     inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
     llvm = llvm_38;
   };
 
+  julia_06 = callPackage ../development/compilers/julia/0.6.nix {
+    gmp = gmp6;
+    openblas = openblasCompat;
+    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
+    llvm = llvm_39;
+  };
+
   julia-git = lowPrio (callPackage ../development/compilers/julia/git.nix {
     gmp = gmp6;
     openblas = openblasCompat;
@@ -5719,6 +6485,10 @@ with pkgs;
     llvm = llvm_39;
   });
 
+  julia = julia_06;
+
+  jwasm =  callPackage ../development/compilers/jwasm { };
+
   kotlin = callPackage ../development/compilers/kotlin { };
 
   lazarus = callPackage ../development/compilers/fpc/lazarus.nix {
@@ -5731,13 +6501,20 @@ with pkgs;
 
   lizardfs = callPackage ../tools/filesystems/lizardfs { };
 
-  lld = llvmPackages_4.lld;
+  lld = llvmPackages.lld;
+  lld_4 = llvmPackages_4.lld;
+  lld_5 = llvmPackages_5.lld;
+  lld_6 = llvmPackages_6.lld;
 
   lldb = llvmPackages.lldb;
   lldb_4 = llvmPackages_4.lldb;
+  lldb_5 = llvmPackages_5.lldb;
+  lldb_6 = llvmPackages_6.lldb;
 
   llvm = llvmPackages.llvm;
 
+  llvm_6  = llvmPackages_6.llvm;
+  llvm_5  = llvmPackages_5.llvm;
   llvm_4  = llvmPackages_4.llvm;
   llvm_39 = llvmPackages_39.llvm;
   llvm_38 = llvmPackages_38.llvm;
@@ -5745,38 +6522,65 @@ with pkgs;
   llvm_35 = llvmPackages_35.llvm;
   llvm_34 = llvmPackages_34.llvm;
 
-  llvmPackages = recurseIntoAttrs llvmPackages_4;
+  llvmPackages = recurseIntoAttrs llvmPackages_5;
 
   llvmPackagesSelf = llvmPackages_34.override {
     stdenv = libcxxStdenv;
   };
 
-  llvmPackages_34 = callPackage ../development/compilers/llvm/3.4 {
+  llvmPackages_34 = callPackage ../development/compilers/llvm/3.4 ({
     isl = isl_0_12;
-  };
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6;
+  });
 
-  llvmPackages_35 = callPackage ../development/compilers/llvm/3.5 {
+  llvmPackages_35 = callPackage ../development/compilers/llvm/3.5 ({
     isl = isl_0_14;
-  };
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6;
+  });
 
-  llvmPackages_37 = callPackage ../development/compilers/llvm/3.7 {
+  llvmPackages_37 = callPackage ../development/compilers/llvm/3.7 ({
     inherit (stdenvAdapters) overrideCC;
-  };
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6;
+  });
 
-  llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 {
+  llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 ({
     inherit (stdenvAdapters) overrideCC;
-  };
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6;
+  });
 
-  llvmPackages_39 = callPackage ../development/compilers/llvm/3.9 {
+  llvmPackages_39 = callPackage ../development/compilers/llvm/3.9 ({
     inherit (stdenvAdapters) overrideCC;
-  };
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6;
+  });
 
   llvmPackages_4 = callPackage ../development/compilers/llvm/4 ({
     inherit (stdenvAdapters) overrideCC;
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6;
+  });
+
+  llvmPackages_5 = callPackage ../development/compilers/llvm/5 ({
+    inherit (stdenvAdapters) overrideCC;
   } // stdenv.lib.optionalAttrs stdenv.isDarwin {
-    cmake = cmake.override { isBootstrap = true; };
+    cmake = cmake.override {
+      isBootstrap = true;
+      majorVersion = "3.9"; # 3.10.2: 'ApplicationServices/ApplicationServices.h' file not found
+    };
     libxml2 = libxml2.override { pythonSupport = false; };
     python2 = callPackage ../development/interpreters/python/cpython/2.7/boot.nix { inherit (darwin) CF configd; };
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
+  });
+
+  llvmPackages_6 = callPackage ../development/compilers/llvm/6 ({
+    inherit (stdenvAdapters) overrideCC;
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
   });
 
   manticore = callPackage ../development/compilers/manticore { };
@@ -5792,6 +6596,13 @@ with pkgs;
   mitscheme = callPackage ../development/compilers/mit-scheme {
    texLive = texlive.combine { inherit (texlive) scheme-small; };
    texinfo = texinfo5;
+   xlibsWrapper = null;
+  };
+
+  mitschemeX11 = callPackage ../development/compilers/mit-scheme {
+   texLive = texlive.combine { inherit (texlive) scheme-small; };
+   texinfo = texinfo5;
+   enableX11 = true;
   };
 
   mkcl = callPackage ../development/compilers/mkcl {};
@@ -5815,11 +6626,26 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Foundation;
   });
 
+  mono48 = lowPrio (callPackage ../development/compilers/mono/4.8.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  });
+
   mono50 = lowPrio (callPackage ../development/compilers/mono/5.0.nix {
     inherit (darwin) libobjc;
     inherit (darwin.apple_sdk.frameworks) Foundation;
   });
 
+  mono54 = lowPrio (callPackage ../development/compilers/mono/5.4.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  });
+
+  mono58 = lowPrio (callPackage ../development/compilers/mono/5.8.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  });
+
   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
 
   mozart-binary = callPackage ../development/compilers/mozart/binary.nix { };
@@ -5844,18 +6670,15 @@ with pkgs;
 
   metaocaml_3_09 = callPackage ../development/compilers/ocaml/metaocaml-3.09.nix { };
 
-  ber_metaocaml_003 = callPackage ../development/compilers/ocaml/ber-metaocaml-003.nix { };
+  ber_metaocaml = callPackage ../development/compilers/ocaml/ber-metaocaml-104.nix { };
 
   ocaml_make = callPackage ../development/ocaml-modules/ocamlmake { };
 
   ocaml-top = callPackage ../development/tools/ocaml/ocaml-top { };
 
-  ocsigen-i18n = callPackage ../development/tools/ocaml/ocsigen-i18n {
-    ocamlPackages = ocamlPackages_4_03;
-  };
+  ocsigen-i18n = callPackage ../development/tools/ocaml/ocsigen-i18n { };
 
   opa = callPackage ../development/compilers/opa {
-    nodejs = nodejs-4_x;
     ocamlPackages = ocamlPackages_4_02;
   };
 
@@ -5877,33 +6700,20 @@ with pkgs;
     inherit (darwin) apple_sdk;
   };
 
-  rustRegistry = callPackage ./rust-packages.nix { };
-
-  rust = rustStable;
-  rustStable = callPackage ../development/compilers/rust {
-    inherit (llvmPackages_4) llvm;
-  };
-  rustBeta = lowPrio (recurseIntoAttrs (callPackage ../development/compilers/rust/beta.nix {}));
-
-  rustNightly = rustBeta;
-
-  # rust support in nixpkgs isn't yet well maintained enough for us to
-  # pretend to support nightlies in a meaningful way.
+  # For beta and nightly releases use the nixpkgs-mozilla overlay
+  rust = callPackage ../development/compilers/rust
+    (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+      stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
+    });
+  inherit (rust) cargo rustc;
 
-  # rustNightly = lowPrio (recurseIntoAttrs (callPackage ../development/compilers/rust/nightly.nix {
-  #   rustPlatform = recurseIntoAttrs (makeRustPlatform rustBeta);
-  # }));
+  buildRustCrate = callPackage ../build-support/rust/build-rust-crate.nix { };
 
-  rustNightlyBin = lowPrio (callPackage ../development/compilers/rust/nightlyBin.nix {
-     buildRustPackage = callPackage ../build-support/rust {
-       rust = rustNightlyBin;
-     };
-  });
+  cargo-vendor = callPackage ../build-support/rust/cargo-vendor {};
 
-  cargo = rust.cargo;
-  rustc = rust.rustc;
+  carnix = (callPackage ../build-support/rust/carnix.nix { }).carnix { };
 
-  cargo-edit = callPackage ../tools/package-management/cargo-edit { };
+  defaultCrateOverrides = callPackage ../build-support/rust/default-crate-overrides.nix { };
 
   rustPlatform = recurseIntoAttrs (makeRustPlatform rust);
 
@@ -5917,15 +6727,13 @@ with pkgs;
         inherit rust;
       };
 
-      rustcSrc = stdenv.mkDerivation {
-        name = "rust-src";
-        src = rust.rustc.src;
-        phases = ["unpackPhase" "installPhase"];
-        installPhase = "mv src $out";
+      rustcSrc = callPackage ../development/compilers/rust/rust-src.nix {
+        inherit (rust) rustc;
       };
-
     });
 
+  cargo-edit = callPackage ../tools/package-management/cargo-edit { };
+
   rainicorn = callPackage ../development/tools/rust/rainicorn { };
   rustfmt = callPackage ../development/tools/rust/rustfmt { };
   rustracer = callPackage ../development/tools/rust/racer { };
@@ -5937,14 +6745,7 @@ with pkgs;
 
   sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {};
   sbcl = callPackage ../development/compilers/sbcl {};
-  # For Maxima
-  sbcl_1_3_12 = callPackage ../development/compilers/sbcl/1.3.12.nix { };
-  # For ACL2
-  sbcl_1_2_0 = callPackage ../development/compilers/sbcl/1.2.0.nix {
-    clisp = clisp;
-  };
 
-  scala_2_9 = callPackage ../development/compilers/scala/2.9.nix { };
   scala_2_10 = callPackage ../development/compilers/scala/2.10.nix { };
   scala_2_11 = callPackage ../development/compilers/scala/2.11.nix { };
   scala_2_12 = callPackage ../development/compilers/scala { jre = jre8; };
@@ -5956,6 +6757,8 @@ with pkgs;
 
   serpent = callPackage ../development/compilers/serpent { };
 
+  shmig = callPackage ../development/tools/database/shmig { };
+
   smlnjBootstrap = callPackage ../development/compilers/smlnj/bootstrap.nix { };
   smlnj = if stdenv.isDarwin
             then callPackage ../development/compilers/smlnj { }
@@ -5984,11 +6787,14 @@ with pkgs;
   tbb = callPackage ../development/libraries/tbb { };
 
   terra = callPackage ../development/compilers/terra {
-    llvmPackages = llvmPackages_38;
+    llvmPackages = llvmPackages_38 // {
+      llvm = llvmPackages_38.llvm.override { enableSharedLibraries = false; };
+    };
     lua = lua5_1;
   };
 
   teyjus = callPackage ../development/compilers/teyjus {
+    inherit (ocamlPackages_4_02) ocaml;
     omake = omake_rc1;
   };
 
@@ -6005,11 +6811,13 @@ with pkgs;
   urweb = callPackage ../development/compilers/urweb { };
 
   inherit (callPackage ../development/compilers/vala { })
-    vala_0_23
     vala_0_26
     vala_0_28
     vala_0_32
     vala_0_34
+    vala_0_36
+    vala_0_38
+    vala_0_40
     vala;
 
   valadoc = callPackage ../development/tools/valadoc { };
@@ -6018,43 +6826,43 @@ with pkgs;
 
   wla-dx = callPackage ../development/compilers/wla-dx { };
 
-  wrapCCWith = libc: extraBuildCommands: baseCC: ccWrapperFun {
-    nativeTools = stdenv.cc.nativeTools or false;
-    nativeLibc = stdenv.cc.nativeLibc or false;
+  wrapCCWith = { name ? "", cc, bintools, libc, extraBuildCommands ? "" }:
+      ccWrapperFun rec {
+    nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
+    nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
     nativePrefix = stdenv.cc.nativePrefix or "";
-    cc = baseCC;
-    dyld = if stdenv.isDarwin then darwin.dyld else null;
-    isGNU = baseCC.isGNU or false;
-    isClang = baseCC.isClang or false;
-    inherit libc extraBuildCommands;
-  };
+    noLibc = !nativeLibc && (libc == null);
 
-  ccWrapperFun = callPackage ../build-support/cc-wrapper;
+    isGNU = cc.isGNU or false;
+    isClang = cc.isClang or false;
 
-  wrapCC = wrapCCWith stdenv.cc.libc "";
-  # legacy version, used for gnat bootstrapping
-  wrapGCC-old = baseGCC: callPackage ../build-support/gcc-wrapper-old {
-    nativeTools = stdenv.cc.nativeTools or false;
-    nativeLibc = stdenv.cc.nativeLibc or false;
-    nativePrefix = stdenv.cc.nativePrefix or "";
-    gcc = baseGCC;
-    libc = glibc;
+    inherit name cc bintools libc extraBuildCommands;
   };
 
-  wrapCCCross =
-    {cc, libc, binutils, shell ? "", name ? "gcc-cross-wrapper"}:
-
-    forcedNativePackages.ccWrapperFun {
-      nativeTools = false;
-      nativeLibc = false;
-      noLibc = (libc == null);
+  ccWrapperFun = callPackage ../build-support/cc-wrapper;
+  bintoolsWrapperFun = callPackage ../build-support/bintools-wrapper;
+
+  wrapCC = cc: wrapCCWith {
+    name = lib.optionalString (targetPlatform != hostPlatform) "gcc-cross-wrapper";
+    inherit cc;
+    # This should be the only bintools runtime dep with this sort of logic. The
+    # Others should instead delegate to the next stage's choice with
+    # `targetPackages.stdenv.cc.bintools`. This one is different just to
+    # provide the default choice, avoiding infinite recursion.
+    bintools = if targetPlatform.isDarwin then darwin.binutils else binutils;
+    libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
+  };
+
+  wrapBintoolsWith = { bintools, libc }: bintoolsWrapperFun {
+    nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
+    nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
+    nativePrefix = stdenv.cc.nativePrefix or "";
 
-      dyld = if stdenv.isDarwin then darwin.dyld else null;
-      isGNU = cc.isGNU or false;
-      isClang = cc.isClang or false;
+    noLibc = (libc == null);
 
-      inherit cc binutils libc shell name;
-    };
+    inherit bintools libc;
+    extraBuildCommands = "";
+  };
 
   # prolog
   yap = callPackage ../development/compilers/yap { };
@@ -6063,14 +6871,15 @@ with pkgs;
 
   yosys = callPackage ../development/compilers/yosys { };
 
-  zulu = callPackage ../development/compilers/zulu { };
+  z88dk = callPackage ../development/compilers/z88dk { };
 
+  zulu8 = callPackage ../development/compilers/zulu/8.nix { };
+  zulu9 = callPackage ../development/compilers/zulu { };
+  zulu = zulu9;
 
   ### DEVELOPMENT / INTERPRETERS
 
-  acl2 = callPackage ../development/interpreters/acl2 {
-    sbcl = sbcl_1_2_0;
-  };
+  acl2 = callPackage ../development/interpreters/acl2 { };
 
   angelscript = callPackage ../development/interpreters/angelscript {};
 
@@ -6085,29 +6894,29 @@ with pkgs;
   clisp = callPackage ../development/interpreters/clisp { };
   clisp-tip = callPackage ../development/interpreters/clisp/hg.nix { };
 
-  # compatibility issues in 2.47 - at list 2.44.1 is known good
-  # for sbcl bootstrap.
-  # SBCL page recommends 2.33.2, though. Not sure when was it last tested
-  clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix {
-    libsigsegv = libsigsegv_25;
-  };
-
   clojure = callPackage ../development/interpreters/clojure { };
 
   clooj = callPackage ../development/interpreters/clojure/clooj.nix { };
 
+  dhall = callPackage ../development/interpreters/dhall { };
+
+  dhall-nix = haskell.lib.justStaticExecutables haskellPackages.dhall-nix;
+
+  dhall-bash = haskell.lib.justStaticExecutables haskellPackages.dhall-bash;
+
+  dhall-json = haskell.lib.justStaticExecutables haskellPackages.dhall-json;
+
+  dhall-text = haskell.lib.justStaticExecutables haskellPackages.dhall-text;
+
+  duktape = callPackage ../development/interpreters/duktape { };
+
   beam = callPackage ./beam-packages.nix { };
 
   inherit (beam.interpreters)
-    erlang erlang_odbc erlang_javac erlang_odbc_javac
-    elixir elixir_1_5 elixir_1_4 elixir_1_3
-    lfe lfe_1_2
-    erlangR16 erlangR16_odbc
-    erlang_basho_R16B02 erlang_basho_R16B02_odbc
-    erlangR17 erlangR17_odbc erlangR17_javac erlangR17_odbc_javac
-    erlangR18 erlangR18_odbc erlangR18_javac erlangR18_odbc_javac
-    erlangR19 erlangR19_odbc erlangR19_javac erlangR19_odbc_javac
-    erlangR20 erlangR20_odbc erlangR20_javac erlangR20_odbc_javac;
+    erlang erlangR18 erlangR19 erlangR20
+    erlang_odbc erlang_javac erlang_odbc_javac erlang_nox erlang_basho_R16B02
+    elixir elixir_1_6 elixir_1_5 elixir_1_4 elixir_1_3
+    lfe lfe_1_2;
 
   inherit (beam.packages.erlang)
     rebar rebar3-open rebar3
@@ -6137,6 +6946,8 @@ with pkgs;
 
   jmeter = callPackage ../applications/networking/jmeter {};
 
+  joker = callPackage ../development/interpreters/joker {};
+
   davmail = callPackage ../applications/networking/davmail {};
 
   kanif = callPackage ../applications/networking/cluster/kanif { };
@@ -6155,6 +6966,8 @@ with pkgs;
     gtk2 = gtk2-x11;
   };
 
+  lxtask = callPackage ../desktops/lxde/core/lxtask { };
+
   kona = callPackage ../development/interpreters/kona {};
 
   lolcode = callPackage ../development/interpreters/lolcode { };
@@ -6208,7 +7021,7 @@ with pkgs;
   mesos = callPackage ../applications/networking/cluster/mesos {
     sasl = cyrus_sasl;
     inherit (pythonPackages) python boto setuptools wrapPython;
-    pythonProtobuf = pythonPackages.protobuf2_6;
+    pythonProtobuf = pythonPackages.protobuf;
     perf = linuxPackages.perf;
   };
 
@@ -6217,8 +7030,6 @@ with pkgs;
   mujs = callPackage ../development/interpreters/mujs { };
 
   nix-exec = callPackage ../development/interpreters/nix-exec {
-    nix = nixUnstable;
-
     git = gitMinimal;
   };
 
@@ -6248,16 +7059,19 @@ with pkgs;
   octaveFull = (lowPrio (callPackage ../development/interpreters/octave {
     qt = qt4;
     overridePlatforms = ["x86_64-linux" "x86_64-darwin"];
+    openblas = if stdenv.isDarwin then openblasCompat else openblas;
   }));
 
   ocropus = callPackage ../applications/misc/ocropus { };
 
-  inherit (callPackages ../development/interpreters/perl {}) perl perl522 perl524;
+  octopus = callPackage ../applications/science/chemistry/octopus { openblas=openblasCompat; };
+
+  inherit (callPackages ../development/interpreters/perl {}) perl perl522 perl524 perl526;
 
   pachyderm = callPackage ../applications/networking/cluster/pachyderm { };
 
-  php = php71;
-  phpPackages = php71Packages;
+  php = php72;
+  phpPackages = php72Packages;
 
   php56Packages = recurseIntoAttrs (callPackage ./php-packages.nix {
     php = php56;
@@ -6271,18 +7085,28 @@ with pkgs;
     php = php71;
   });
 
+  php72Packages = recurseIntoAttrs (callPackage ./php-packages.nix {
+    php = php72;
+  });
+
+
   inherit (callPackages ../development/interpreters/php { })
     php56
     php70
-    php71;
+    php71
+    php72;
 
-  php-embed = php71-embed;
+  php-embed = php72-embed;
 
   php71-embed = php71.override {
     config.php.embed = true;
     config.php.apxs2 = false;
   };
 
+  php72-embed = php72.override {
+    config.php.embed = true;
+    config.php.apxs2 = false;
+  };
 
   picoc = callPackage ../development/interpreters/picoc {};
 
@@ -6291,6 +7115,7 @@ with pkgs;
   pltScheme = racket; # just to be sure
 
   polyml = callPackage ../development/compilers/polyml { };
+  polyml56 = callPackage ../development/compilers/polyml/5.6.nix { };
 
   pure = callPackage ../development/interpreters/pure {
     llvm = llvm_35;
@@ -6299,9 +7124,11 @@ with pkgs;
 
   # Python interpreters. All standard library modules are included except for tkinter, which is
   # available as `pythonPackages.tkinter` and can be used as any other Python package.
+  # When switching these sets, please update docs at ../../doc/languages-frameworks/python.md
   python = python2;
   python2 = python27;
   python3 = python36;
+  pypy = pypy27;
 
   # Python interpreter that is build with all modules, including tkinter.
   # These are for compatibility and should not be used inside Nixpkgs.
@@ -6309,7 +7136,6 @@ with pkgs;
   python2Full = python2.override{x11Support=true;};
   python27Full = python27.override{x11Support=true;};
   python3Full = python3.override{x11Support=true;};
-  python33Full = python33.override{x11Support=true;};
   python34Full = python34.override{x11Support=true;};
   python35Full = python35.override{x11Support=true;};
   python36Full = python36.override{x11Support=true;};
@@ -6323,10 +7149,6 @@ with pkgs;
     self = python27;
     inherit (darwin) CF configd;
   };
-  python33 = callPackage ../development/interpreters/python/cpython/3.3 {
-    self = python33;
-    inherit (darwin) CF configd;
-  };
   python34 = callPackage ../development/interpreters/python/cpython/3.4 {
     inherit (darwin) CF configd;
     self = python34;
@@ -6340,17 +7162,22 @@ with pkgs;
     self = python36;
   };
 
-  # Should eventually be moved inside Python interpreters.
-  python-setup-hook = callPackage ../development/interpreters/python/setup-hook.nix { };
-
-  pypy = pypy27;
-
   pypy27 = callPackage ../development/interpreters/python/pypy/2.7 {
     self = pypy27;
     python = python27.override{x11Support=true;};
     db = db.override { dbmSupport = true; };
   };
 
+  # Python package sets.
+  python27Packages = lib.hiPrioSet (recurseIntoAttrs python27.pkgs);
+  python34Packages = python34.pkgs;
+  python35Packages = python35.pkgs;
+  python36Packages = recurseIntoAttrs python36.pkgs;
+  pypyPackages = pypy.pkgs;
+
+  # Should eventually be moved inside Python interpreters.
+  python-setup-hook = callPackage ../development/interpreters/python/setup-hook.nix { };
+
   python2nix = callPackage ../tools/package-management/python2nix { };
 
   pythonDocs = recurseIntoAttrs (callPackage ../development/interpreters/python/cpython/docs {});
@@ -6366,13 +7193,25 @@ with pkgs;
 
   svg2tikz = python27Packages.svg2tikz;
 
+  pew = callPackage ../development/tools/pew {};
+  pipenv = callPackage ../development/tools/pipenv {};
+
+  pipewire = callPackage ../development/libraries/pipewire {};
+
   pyrex = pyrex095;
 
   pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
 
   pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
 
-  racket = callPackage ../development/interpreters/racket { };
+  racket = callPackage ../development/interpreters/racket {
+    # racket 6.11 doesn't build with gcc6 + recent glibc:
+    # https://github.com/racket/racket/pull/1886
+    # https://github.com/NixOS/nixpkgs/pull/31017#issuecomment-343574769
+    stdenv = if stdenv.isDarwin then stdenv else gcc7Stdenv;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+  };
+  racket-minimal = callPackage ../development/interpreters/racket/minimal.nix { };
 
   rakudo = callPackage ../development/interpreters/rakudo {
     inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
@@ -6380,6 +7219,10 @@ with pkgs;
 
   rascal = callPackage ../development/interpreters/rascal { };
 
+  red = callPackage ../development/interpreters/red { };
+
+  regextester = callPackage ../applications/misc/regextester { };
+
   regina = callPackage ../development/interpreters/regina { };
 
   inherit (ocamlPackages) reason;
@@ -6396,21 +7239,14 @@ with pkgs;
   bundix = callPackage ../development/ruby-modules/bundix { };
   bundler = callPackage ../development/ruby-modules/bundler { };
   bundlerEnv = callPackage ../development/ruby-modules/bundler-env { };
+  bundlerApp = callPackage ../development/ruby-modules/bundler-app { };
+
+  inherit (callPackage ../development/interpreters/ruby { inherit (darwin.apple_sdk.frameworks) Foundation; })
+    ruby_2_3
+    ruby_2_4
+    ruby_2_5;
 
-  inherit (callPackage ../development/interpreters/ruby {})
-    ruby_2_0_0
-    ruby_2_1_10
-    ruby_2_2_7
-    ruby_2_3_4
-    ruby_2_4_1;
-
-  # Ruby aliases
-  ruby = ruby_2_3;
-  ruby_2_0 = ruby_2_0_0;
-  ruby_2_1 = ruby_2_1_10;
-  ruby_2_2 = ruby_2_2_7;
-  ruby_2_3 = ruby_2_3_4;
-  ruby_2_4 = ruby_2_4_1;
+  ruby = ruby_2_4;
 
   scsh = callPackage ../development/interpreters/scsh { };
 
@@ -6418,20 +7254,19 @@ with pkgs;
 
   self = callPackage_i686 ../development/interpreters/self { };
 
-  spark = spark_21;
-  spark_16 = callPackage ../applications/networking/cluster/spark { version = "1.6.3"; };
-  spark_21 = callPackage ../applications/networking/cluster/spark { version = "2.1.0"; };
+  spark = spark_22;
+  spark_22 = callPackage ../applications/networking/cluster/spark { version = "2.2.1"; };
 
   spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { };
   spidermonkey_17 = callPackage ../development/interpreters/spidermonkey/17.nix { };
-  spidermonkey_24 = callPackage ../development/interpreters/spidermonkey/24.nix { };
   spidermonkey_31 = callPackage ../development/interpreters/spidermonkey/31.nix { };
   spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix { };
+  spidermonkey_52 = callPackage ../development/interpreters/spidermonkey/52.nix { };
   spidermonkey = spidermonkey_31;
 
   ssm-agent = callPackage ../applications/networking/cluster/ssm-agent { };
 
-  supercollider = libsForQt56.callPackage ../development/interpreters/supercollider {
+  supercollider = libsForQt5.callPackage ../development/interpreters/supercollider {
     fftw = fftwSinglePrec;
   };
 
@@ -6469,10 +7304,18 @@ with pkgs;
     samples = true;
   };
 
-  avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {};
+  avrgcclibc = throw "avrgcclibs are now separate packages, install avrbinutils, avrgcc and avrlibc";
+
+  avrbinutils = callPackage ../development/misc/avr/binutils {};
+
+  avrgcc      = callPackage ../development/misc/avr/gcc {};
+
+  avrlibc     = callPackage ../development/misc/avr/libc {};
 
   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
 
+  betaflight = callPackage ../development/stm32/betaflight { };
+
   sourceFromHead = callPackage ../build-support/source-from-head-fun.nix {};
 
   ecj = callPackage ../development/eclipse/ecj { };
@@ -6481,16 +7324,23 @@ with pkgs;
 
   jython = callPackage ../development/interpreters/jython {};
 
-  guileCairo = callPackage ../development/guile-modules/guile-cairo { };
+  guile-cairo = callPackage ../development/guile-modules/guile-cairo {
+    guile = guile_2_0;
+  };
+
+  guile-fibers = callPackage ../development/guile-modules/guile-fibers { };
 
-  guileGnome = callPackage ../development/guile-modules/guile-gnome {
+  guile-gnome = callPackage ../development/guile-modules/guile-gnome {
     gconf = gnome2.GConf;
+    guile = guile_2_0;
     inherit (gnome2) gnome_vfs libglade libgnome libgnomecanvas libgnomeui;
   };
 
-  guile_lib = callPackage ../development/guile-modules/guile-lib { };
+  guile-lib = callPackage ../development/guile-modules/guile-lib {
+    guile = guile_2_0;
+  };
 
-  guile_ncurses = callPackage ../development/guile-modules/guile-ncurses { };
+  guile-ncurses = callPackage ../development/guile-modules/guile-ncurses { };
 
   guile-opengl = callPackage ../development/guile-modules/guile-opengl { };
 
@@ -6498,12 +7348,15 @@ with pkgs;
 
   guile-sdl2 = callPackage ../development/guile-modules/guile-sdl2 { };
 
-  guile-xcb = callPackage ../development/guile-modules/guile-xcb { };
-
-  pharo-vms = callPackage_i686 ../development/pharo/vm { };
-  pharo-vm  = pharo-vms.pharo-no-spur;
-  pharo-vm5 = pharo-vms.pharo-spur;
+  guile-xcb = callPackage ../development/guile-modules/guile-xcb {
+    guile = guile_2_0;
+  };
 
+  pharo-vms = callPackage ../development/pharo/vm { };
+  pharo = pharo-vms.multi-vm-wrapper;
+  pharo-cog32 = pharo-vms.cog32;
+  pharo-spur32 = pharo-vms.spur32;
+  pharo-spur64 = assert stdenv.is64bit; pharo-vms.spur64;
   pharo-launcher = callPackage ../development/pharo/launcher { };
 
   srecord = callPackage ../development/tools/misc/srecord { };
@@ -6527,8 +7380,14 @@ with pkgs;
 
   augeas = callPackage ../tools/system/augeas { };
 
-  ansible  = python2Packages.ansible2;
-  ansible2 = python2Packages.ansible2;
+  ansible_2_1 = callPackage ../tools/admin/ansible/2.1.nix {};
+  ansible_2_2 = callPackage ../tools/admin/ansible/2.2.nix {};
+  ansible_2_3 = callPackage ../tools/admin/ansible/2.3.nix {};
+  ansible_2_4 = callPackage ../tools/admin/ansible/2.4.nix {};
+  ansible  = ansible_2_4;
+  ansible2 = ansible_2_4;
+
+  ansible-lint = callPackage ../development/tools/ansible-lint {};
 
   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
 
@@ -6543,14 +7402,17 @@ with pkgs;
 
   apacheAnt = callPackage ../development/tools/build-managers/apache-ant { };
 
-  apacheKafka = apacheKafka_0_10;
-  apacheKafka_0_8 = callPackage ../servers/apache-kafka { majorVersion = "0.8"; };
+  apacheKafka = apacheKafka_1_0;
   apacheKafka_0_9 = callPackage ../servers/apache-kafka { majorVersion = "0.9"; };
   apacheKafka_0_10 = callPackage ../servers/apache-kafka { majorVersion = "0.10"; };
+  apacheKafka_0_11 = callPackage ../servers/apache-kafka { majorVersion = "0.11"; };
+  apacheKafka_1_0 = callPackage ../servers/apache-kafka { majorVersion = "1.0"; };
 
   kt = callPackage ../tools/misc/kt {};
 
-  asn2quickder = callPackage ../development/tools/asn2quickder {};
+  arpa2cm = callPackage ../development/tools/build-managers/arpa2cm { };
+
+  asn2quickder = python2Packages.callPackage ../development/tools/asn2quickder {};
 
   astyle = callPackage ../development/tools/misc/astyle { };
 
@@ -6569,17 +7431,11 @@ with pkgs;
 
   autocutsel = callPackage ../tools/X11/autocutsel{ };
 
-  automake = automake115x;
+  automake = automake116x;
 
   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
 
-  automake112x = callPackage ../development/tools/misc/automake/automake-1.12.x.nix { };
-
-  automake113x = callPackage ../development/tools/misc/automake/automake-1.13.x.nix { };
-
-  automake114x = callPackage ../development/tools/misc/automake/automake-1.14.x.nix { };
-
-  automake115x = callPackage ../development/tools/misc/automake/automake-1.15.x.nix { };
+  automake116x = callPackage ../development/tools/misc/automake/automake-1.16.x.nix { };
 
   automoc4 = callPackage ../development/tools/misc/automoc4 { };
 
@@ -6593,8 +7449,11 @@ with pkgs;
 
   bam = callPackage ../development/tools/build-managers/bam {};
 
+  bazel_0_4 = callPackage ../development/tools/build-managers/bazel/0.4.nix { };
   bazel = callPackage ../development/tools/build-managers/bazel { };
 
+  buildBazelPackage = callPackage ../build-support/build-bazel-package { };
+
   bear = callPackage ../development/tools/build-managers/bear { };
 
   bin_replace_string = callPackage ../development/tools/misc/bin_replace_string { };
@@ -6602,22 +7461,41 @@ with pkgs;
   binutils =
     if targetPlatform.isDarwin
     then darwin.binutils
+    else if targetPlatform.isRiscV
+    then binutils_2_30
     else binutils-raw;
 
-  binutils-raw = callPackage ../development/tools/misc/binutils {
+  binutils-unwrapped = callPackage ../development/tools/misc/binutils {
     # FHS sys dirs presumably only have stuff for the build platform
     noSysDirs = (targetPlatform != buildPlatform) || noSysDirs;
   };
+  binutils-raw = wrapBintoolsWith {
+    libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
+    bintools = binutils-unwrapped;
+  };
+  binutils-unwrapped_2_30 = callPackage ../development/tools/misc/binutils/2.30.nix {
+    # FHS sys dirs presumably only have stuff for the build platform
+    noSysDirs = (targetPlatform != buildPlatform) || noSysDirs;
+  };
+  binutils-raw_2_30 = wrapBintoolsWith {
+    libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
+    bintools = binutils-unwrapped_2_30;
+  };
+  binutils_2_30 = binutils-raw_2_30;
 
   binutils_nogold = lowPrio (binutils-raw.override {
-    gold = false;
+    bintools = binutils-raw.bintools.override {
+      gold = false;
+    };
   });
 
   bison2 = callPackage ../development/tools/parsing/bison/2.x.nix { };
   bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { };
   bison = bison3;
 
-  blackmagic = callPackage ../development/tools/misc/blackmagic { };
+  blackmagic = callPackage ../development/tools/misc/blackmagic {
+    stdenv = overrideCC stdenv gcc6;
+  };
 
   bloaty = callPackage ../development/tools/bloaty { };
 
@@ -6633,11 +7511,14 @@ with pkgs;
   buildbot-worker = callPackage ../development/tools/build-managers/buildbot/worker.nix {
     pythonPackages = python2Packages;
   };
+  buildbot-pkg = callPackage ../development/tools/build-managers/buildbot/pkg.nix {
+    inherit (python2Packages) buildPythonPackage fetchPypi setuptools;
+  };
   buildbot-plugins = callPackages ../development/tools/build-managers/buildbot/plugins.nix {
     pythonPackages = python2Packages;
   };
   buildbot-ui = buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
-  buildbot-full = buildbot.withPlugins (with self.buildbot-plugins; [ www console-view waterfall-view grid-view ]);
+  buildbot-full = buildbot.withPlugins (with self.buildbot-plugins; [ www console-view waterfall-view grid-view wsgi-dashboards ]);
 
   buildkite-agent = callPackage ../development/tools/continuous-integration/buildkite-agent { };
 
@@ -6681,9 +7562,7 @@ with pkgs;
 
   cheat = callPackage ../applications/misc/cheat { };
 
-  chefdk = callPackage ../development/tools/chefdk {
-    ruby = ruby_2_0;
-  };
+  chefdk = callPackage ../development/tools/chefdk { };
 
   matter-compiler = callPackage ../development/compilers/matter-compiler {};
 
@@ -6699,7 +7578,9 @@ with pkgs;
 
   cide = callPackage ../development/tools/continuous-integration/cide { };
 
-  "cl-launch" = callPackage ../development/tools/misc/cl-launch {};
+  cl-launch = callPackage ../development/tools/misc/cl-launch {};
+
+  cloudfoundry-cli = callPackage ../development/tools/cloudfoundry-cli { };
 
   coan = callPackage ../development/tools/analysis/coan { };
 
@@ -6711,6 +7592,8 @@ with pkgs;
 
   cookiecutter = pythonPackages.cookiecutter;
 
+  corundum = callPackage ../development/tools/corundum { };
+
   ctags = callPackage ../development/tools/misc/ctags { };
 
   ctagsWrapped = callPackage ../development/tools/misc/ctags/wrapped.nix {};
@@ -6722,13 +7605,14 @@ with pkgs;
     inherit (darwin) ps;
   };
 
-  cmake = callPackage ../development/tools/build-managers/cmake {
+  cmake = libsForQt5.callPackage ../development/tools/build-managers/cmake {
     inherit (darwin) ps;
   };
 
   cmakeCurses = cmake.override { useNcurses = true; };
 
-  cmakeWithGui = cmakeCurses.override { useQt4 = true; };
+  cmakeWithGui = cmakeCurses.override { withQt5 = true; };
+  cmakeWithQt4Gui = cmakeCurses.override { useQt4 = true; };
 
   # Does not actually depend on Qt 5
   inherit (kdeFrameworks) extra-cmake-modules kapidox kdoctools;
@@ -6768,6 +7652,8 @@ with pkgs;
   libcxx = llvmPackages.libcxx;
   libcxxabi = llvmPackages.libcxxabi;
 
+  librarian-puppet-go = callPackage ../development/tools/librarian-puppet-go { };
+
   libstdcxx5 = callPackage ../development/libraries/libstdc++5 { };
 
   libsigrok = callPackage ../development/tools/libsigrok { };
@@ -6783,6 +7669,8 @@ with pkgs;
 
   dejagnu = callPackage ../development/tools/misc/dejagnu { };
 
+  devtodo = callPackage ../development/tools/devtodo { };
+
   dfeet = callPackage ../development/tools/misc/d-feet { };
 
   dfu-programmer = callPackage ../development/tools/misc/dfu-programmer { };
@@ -6836,6 +7724,8 @@ with pkgs;
 
   drake = callPackage ../development/tools/build-managers/drake { };
 
+  drip = callPackage ../development/tools/drip { };
+
   drush = callPackage ../development/tools/misc/drush { };
 
   editorconfig-core-c = callPackage ../development/tools/misc/editorconfig-core-c { };
@@ -6860,24 +7750,31 @@ with pkgs;
 
   findbugs = callPackage ../development/tools/analysis/findbugs { };
 
-  foreman = callPackage ../tools/system/foreman { };
+  flootty = callPackage ../development/tools/flootty { };
 
   flow = callPackage ../development/tools/analysis/flow {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
     inherit (darwin) cf-private;
-    inherit (ocamlPackages_4_03) ocaml findlib camlp4 sedlex ocamlbuild;
+    inherit (ocamlPackages) ocaml findlib camlp4 sedlex ocamlbuild ocaml_lwt
+      wtf8 dtoa;
   };
 
+  foreman = callPackage ../tools/system/foreman { };
+
   framac = callPackage ../development/tools/analysis/frama-c { };
 
   frame = callPackage ../development/libraries/frame { };
 
+  fsatrace = callPackage ../development/tools/misc/fsatrace { };
+
   fswatch = callPackage ../development/tools/misc/fswatch { };
 
   funnelweb = callPackage ../development/tools/literate-programming/funnelweb { };
 
   gede = callPackage ../development/tools/misc/gede { };
 
+  gdbgui = callPackage ../development/tools/misc/gdbgui { };
+
   pmd = callPackage ../development/tools/analysis/pmd { };
 
   jdepend = callPackage ../development/tools/analysis/jdepend { };
@@ -6898,17 +7795,21 @@ with pkgs;
 
   global = callPackage ../development/tools/misc/global { };
 
-  gnome_doc_utils = callPackage ../development/tools/documentation/gnome-doc-utils {};
+  gnome-doc-utils = callPackage ../development/tools/documentation/gnome-doc-utils {};
+
+  gnome-desktop-testing = callPackage ../development/tools/gnome-desktop-testing {};
+
+  gnome-usage = callPackage ../applications/misc/gnome-usage {};
 
   gnum4 = callPackage ../development/tools/misc/gnum4 { };
 
-  gnumake380 = callPackage ../development/tools/build-managers/gnumake/3.80 { };
   gnumake382 = callPackage ../development/tools/build-managers/gnumake/3.82 { };
   gnumake3 = gnumake382;
-  gnumake40 = callPackage ../development/tools/build-managers/gnumake/4.0 { };
-  gnumake41 = callPackage ../development/tools/build-managers/gnumake/4.1 { };
   gnumake42 = callPackage ../development/tools/build-managers/gnumake/4.2 { };
-  gnumake = gnumake42;
+  gnumake = if hostPlatform.isRiscV # Technically this check should be for glibc version.
+    then gnumake42HEAD
+  else gnumake42;
+  gnumake42HEAD = callPackage ../development/tools/build-managers/gnumake/4.2/head.nix { };
 
   gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep {});
 
@@ -6932,13 +7833,19 @@ with pkgs;
 
   grail = callPackage ../development/libraries/grail { };
 
-  gtk_doc = callPackage ../development/tools/documentation/gtk-doc { };
+  gtk-doc = callPackage ../development/tools/documentation/gtk-doc { };
 
   gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
 
-  guileLint = callPackage ../development/tools/guile/guile-lint { };
+  guile-lint = callPackage ../development/tools/guile/guile-lint {
+    guile = guile_1_8;
+  };
+
+  gwrap = callPackage ../development/tools/guile/g-wrap {
+    guile = guile_2_0;
+  };
 
-  gwrap = callPackage ../development/tools/guile/g-wrap { };
+  hcloud = callPackage ../development/tools/hcloud { };
 
   help2man = callPackage ../development/tools/misc/help2man {
     inherit (perlPackages) LocaleGettext;
@@ -6959,7 +7866,7 @@ with pkgs;
   };
 
   include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use {
-    llvmPackages = llvmPackages_38;
+    llvmPackages = llvmPackages_4;
   };
 
   indent = callPackage ../development/tools/misc/indent { };
@@ -6968,7 +7875,9 @@ with pkgs;
 
   inotify-tools = callPackage ../development/tools/misc/inotify-tools { };
 
-  intel-gpu-tools = callPackage ../development/tools/misc/intel-gpu-tools {};
+  intel-gpu-tools = callPackage ../development/tools/misc/intel-gpu-tools { };
+
+  insomnia = callPackage ../development/web/insomnia { };
 
   iozone = callPackage ../development/tools/misc/iozone { };
 
@@ -6980,12 +7889,16 @@ with pkgs;
 
   jamomacore = callPackage ../development/libraries/audio/jamomacore { };
 
+  jbake = callPackage ../development/tools/jbake { };
+
   jikespg = callPackage ../development/tools/parsing/jikespg { };
 
   jenkins = callPackage ../development/tools/continuous-integration/jenkins { };
 
   jenkins-job-builder = pythonPackages.jenkins-job-builder;
 
+  kafkacat = callPackage ../development/tools/kafkacat { };
+
   kati = callPackage ../development/tools/build-managers/kati { };
 
   kconfig-frontends = callPackage ../development/tools/misc/kconfig-frontends {
@@ -6996,6 +7909,8 @@ with pkgs;
 
   kube-aws = callPackage ../development/tools/kube-aws { };
 
+  Literate = callPackage ../development/tools/literate-programming/Literate {};
+
   lcov = callPackage ../development/tools/analysis/lcov { };
 
   leiningen = callPackage ../development/tools/build-managers/leiningen { };
@@ -7024,7 +7939,7 @@ with pkgs;
 
   lttv = callPackage ../development/tools/misc/lttv { };
 
-  massif-visualizer = kde4.callPackage ../development/tools/analysis/massif-visualizer { };
+  massif-visualizer = libsForQt5.callPackage ../development/tools/analysis/massif-visualizer { };
 
   maven = maven3;
   maven3 = callPackage ../development/tools/build-managers/apache-maven { };
@@ -7037,13 +7952,15 @@ with pkgs;
 
   mk = callPackage ../development/tools/build-managers/mk { };
 
+  mkdocs = callPackage ../development/tools/documentation/mkdocs { };
+
   moby = callPackage ../development/tools/misc/moby { };
 
   msgpack-tools = callPackage ../development/tools/msgpack-tools { };
 
   msitools = callPackage ../development/tools/misc/msitools { };
 
-  multi-ghc-travis = callPackage ../development/tools/haskell/multi-ghc-travis { };
+  multi-ghc-travis = haskell.lib.justStaticExecutables haskellPackages.multi-ghc-travis;
 
   neoload = callPackage ../development/tools/neoload {
     licenseAccepted = (config.neoload.accept_license or false);
@@ -7060,34 +7977,31 @@ with pkgs;
 
   ninja = callPackage ../development/tools/build-managers/ninja { };
 
+  gn = callPackage ../development/tools/build-managers/gn { };
+
   nixbang = callPackage ../development/tools/misc/nixbang {
       pythonPackages = python3Packages;
   };
 
   nexus = callPackage ../development/tools/repository-managers/nexus { };
 
-  node_webkit = node_webkit_0_9;
-
-  nwjs_0_12 = callPackage ../development/tools/node-webkit/nw12.nix {
-    gconf = pkgs.gnome2.GConf;
-  };
-
-  node_webkit_0_11 = callPackage ../development/tools/node-webkit/nw11.nix {
+  nwjs = callPackage ../development/tools/nwjs {
     gconf = pkgs.gnome2.GConf;
   };
 
-  node_webkit_0_9 = callPackage ../development/tools/node-webkit/nw9.nix {
+  # only kept for nixui, see https://github.com/matejc/nixui/issues/27
+  nwjs_0_12 = callPackage ../development/tools/node-webkit/nw12.nix {
     gconf = pkgs.gnome2.GConf;
   };
 
   noweb = callPackage ../development/tools/literate-programming/noweb { };
   nuweb = callPackage ../development/tools/literate-programming/nuweb { tex = texlive.combined.scheme-small; };
 
+  obelisk = callPackage ../development/tools/ocaml/obelisk { };
+
   obuild = callPackage ../development/tools/ocaml/obuild { };
 
-  omake = callPackage ../development/tools/ocaml/omake {
-    inherit (ocamlPackages_4_02) ocaml;
-  };
+  omake = callPackage ../development/tools/ocaml/omake { };
 
   inherit (ocamlPackages) omake_rc1;
 
@@ -7115,23 +8029,23 @@ with pkgs;
 
   phantomjs = callPackage ../development/tools/phantomjs { };
 
-  phantomjs2 = callPackage ../development/tools/phantomjs2 { };
+  phantomjs2 = libsForQt5.callPackage ../development/tools/phantomjs2 { };
 
   pmccabe = callPackage ../development/tools/misc/pmccabe { };
 
-  /* Make pkgconfig always return a nativeDrv, never a proper crossDrv,
-     because most usage of pkgconfig as buildInput (inheritance of
-     pre-cross nixpkgs) means using it using as nativeBuildInput
-     cross_renaming: we should make all programs use pkgconfig as
-     nativeBuildInput after the renaming.
-     */
-  pkgconfig = forcedNativePackages.callPackage ../development/tools/misc/pkgconfig {
+  pkgconfig = callPackage ../development/tools/misc/pkgconfig {
     fetchurl = fetchurlBoot;
   };
   pkgconfigUpstream = lowPrio (pkgconfig.override { vanilla = true; });
 
   postiats-utilities = callPackage ../development/tools/postiats-utilities {};
 
+  postman = callPackage ../development/web/postman {};
+
+  pprof = callPackage ../development/tools/profiling/pprof { };
+
+  pyprof2calltree = pythonPackages.callPackage ../development/tools/profiling/pyprof2calltree { };
+
   prelink = callPackage ../development/tools/misc/prelink { };
 
   premake3 = callPackage ../development/tools/misc/premake/3.nix { };
@@ -7139,11 +8053,17 @@ with pkgs;
   premake4 = callPackage ../development/tools/misc/premake { };
 
   premake5 = callPackage ../development/tools/misc/premake/5.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
   };
 
   premake = premake4;
 
+  procodile = callPackage ../tools/system/procodile { };
+
+  pup = callPackage ../development/tools/pup { };
+
+  pyrseas = callPackage ../development/tools/database/pyrseas { };
+
   qtcreator = libsForQt5.callPackage ../development/qtcreator { };
 
   r10k = callPackage ../tools/system/r10k { };
@@ -7164,6 +8084,7 @@ with pkgs;
     rubyBindings = config.radare.rubyBindings or false;
     luaBindings = config.radare.luaBindings or false;
   };
+  radare2-cutter = libsForQt5.callPackage ../development/tools/analysis/radare2-cutter { };
 
   ragel = ragelStable;
 
@@ -7175,9 +8096,7 @@ with pkgs;
 
   hammer = callPackage ../development/tools/parsing/hammer { };
 
-  redis-dump = callPackage ../development/tools/redis-dump {
-    ruby = ruby_2_0;
-  };
+  redis-dump = callPackage ../development/tools/redis-dump { };
 
   redo = callPackage ../development/tools/build-managers/redo { };
 
@@ -7189,6 +8108,11 @@ with pkgs;
 
   remake = callPackage ../development/tools/build-managers/remake { };
 
+  retdec = callPackage ../development/tools/analysis/retdec { };
+  retdec-full = callPackage ../development/tools/analysis/retdec {
+    withPEPatterns = true;
+  };
+
   rhc = callPackage ../development/tools/rhc { };
 
   rman = callPackage ../development/tools/misc/rman { };
@@ -7205,16 +8129,24 @@ with pkgs;
 
   selendroid = callPackage ../development/tools/selenium/selendroid { };
 
-  scons = callPackage ../development/tools/build-managers/scons { };
+  sconsPackages = callPackage ../development/tools/build-managers/scons { };
+  scons = sconsPackages.scons_3_0_1;
+  scons_2_5_1 = sconsPackages.scons_2_5_1;
 
   sbt = callPackage ../development/tools/build-managers/sbt { };
   sbt-with-scala-native = callPackage ../development/tools/build-managers/sbt/scala-native.nix { };
   simpleBuildTool = sbt;
 
+  sbt-extras = callPackage ../development/tools/build-managers/sbt-extras { };
+
+  shallot = callPackage ../tools/misc/shallot { };
+
   shards = callPackage ../development/tools/build-managers/shards { };
 
   shellcheck = haskell.lib.justStaticExecutables haskellPackages.ShellCheck;
 
+  schemaspy = callPackage ../development/tools/database/schemaspy { };
+
   shncpd = callPackage ../tools/networking/shncpd { };
 
   sigrok-cli = callPackage ../development/tools/sigrok-cli { };
@@ -7234,6 +8166,8 @@ with pkgs;
 
   smc = callPackage ../tools/misc/smc { };
 
+  snowman = qt5.callPackage ../development/tools/analysis/snowman { };
+
   sparse = callPackage ../development/tools/analysis/sparse { };
 
   speedtest-cli = callPackage ../tools/networking/speedtest-cli { };
@@ -7246,7 +8180,7 @@ with pkgs;
     flex = flex_2_5_35;
   };
 
-  sqlitebrowser = libsForQt56.callPackage ../development/tools/database/sqlitebrowser { };
+  sqlitebrowser = libsForQt5.callPackage ../development/tools/database/sqlitebrowser { };
 
   sselp = callPackage ../tools/X11/sselp{ };
 
@@ -7275,7 +8209,7 @@ with pkgs;
   texinfo413 = callPackage ../development/tools/misc/texinfo/4.13a.nix { };
   texinfo4 = texinfo413;
   texinfo5 = callPackage ../development/tools/misc/texinfo/5.2.nix { };
-  texinfo6 = callPackage ../development/tools/misc/texinfo/6.3.nix { };
+  texinfo6 = callPackage ../development/tools/misc/texinfo/6.5.nix { };
   texinfo = texinfo6;
   texinfoInteractive = appendToName "interactive" (
     texinfo.override { interactive = true; }
@@ -7285,6 +8219,8 @@ with pkgs;
 
   texi2mdoc = callPackage ../tools/misc/texi2mdoc { };
 
+  todolist = callPackage ../applications/misc/todolist { };
+
   travis = callPackage ../development/tools/misc/travis { };
 
   tweak = callPackage ../applications/editors/tweak { };
@@ -7297,9 +8233,7 @@ with pkgs;
 
   universal-ctags = callPackage ../development/tools/misc/universal-ctags { };
 
-  vagrant = callPackage ../development/tools/vagrant {
-    ruby = ruby_2_2;
-  };
+  vagrant = callPackage ../development/tools/vagrant {};
 
   bashdb = callPackage ../development/tools/misc/bashdb { };
 
@@ -7309,10 +8243,6 @@ with pkgs;
     inherit (gnu) mig;
   };
 
-  gdbGuile = lowPrio (gdb.override { inherit guile; });
-
-  gdb-multitarget = lowPrio (gdb.override { multitarget = true; });
-
   valgrind = callPackage ../development/tools/analysis/valgrind {
     inherit (darwin) xnu bootstrap_cmds cctools;
     llvm = llvm_39;
@@ -7321,7 +8251,7 @@ with pkgs;
 
   valkyrie = callPackage ../development/tools/analysis/valkyrie { };
 
-  qcachegrind = libsForQt56.callPackage ../development/tools/analysis/qcachegrind {};
+  qcachegrind = libsForQt5.callPackage ../development/tools/analysis/qcachegrind {};
 
   verasco = ocaml-ng.ocamlPackages_4_02.verasco.override {
     coq = coq_8_4;
@@ -7335,6 +8265,8 @@ with pkgs;
     pythonPackages = python3Packages;
   };
 
+  watson-ruby = callPackage ../development/tools/misc/watson-ruby {};
+
   xc3sprog = callPackage ../development/tools/misc/xc3sprog { };
 
   xcbuild  = callPackage ../development/tools/xcbuild/wrapper.nix {
@@ -7350,26 +8282,28 @@ with pkgs;
   xxdiff = callPackage ../development/tools/misc/xxdiff {
     bison = bison2;
   };
-  xxdiff-tip = callPackage ../development/tools/misc/xxdiff/tip.nix { };
+  xxdiff-tip = libsForQt5.callPackage ../development/tools/misc/xxdiff/tip.nix { };
 
   yacc = bison;
 
+  yaml2json = callPackage ../development/tools/yaml2json { };
+
   ycmd = callPackage ../development/tools/misc/ycmd {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
-    llvmPackages = llvmPackages_4;
     python = python2;
   };
 
   yodl = callPackage ../development/tools/misc/yodl { };
 
+  yq = callPackage ../development/tools/yq {
+    inherit (python3Packages) buildPythonApplication fetchPypi pyyaml xmltodict;
+  };
+
   winpdb = callPackage ../development/tools/winpdb { };
 
   grabserial = callPackage ../development/tools/grabserial { };
 
-  mypy = callPackage ../development/tools/mypy {
-    inherit (python3Packages) fetchPypi buildPythonApplication lxml typed-ast;
-  };
-
+  mypy = python3Packages.callPackage ../development/tools/mypy { };
 
   ### DEVELOPMENT / LIBRARIES
 
@@ -7389,6 +8323,8 @@ with pkgs;
 
   afflib = callPackage ../development/libraries/afflib { };
 
+  aften = callPackage ../development/libraries/aften { };
+
   alure = callPackage ../development/libraries/alure { };
 
   agg = callPackage ../development/libraries/agg { };
@@ -7401,10 +8337,14 @@ with pkgs;
 
   amrwb = callPackage ../development/libraries/amrwb { };
 
+  anttweakbar = callPackage ../development/libraries/AntTweakBar { };
+
   appstream = callPackage ../development/libraries/appstream { };
 
   appstream-glib = callPackage ../development/libraries/appstream-glib { };
 
+  appstream-qt = libsForQt5.callPackage ../development/libraries/appstream/qt.nix { };
+
   apr = callPackage ../development/libraries/apr { };
 
   aprutil = callPackage ../development/libraries/apr-util {
@@ -7427,15 +8367,17 @@ with pkgs;
 
   aspellDicts = recurseIntoAttrs (callPackages ../development/libraries/aspell/dictionaries.nix {});
 
-  aspellWithDicts = callPackage ../development/libraries/aspell/aspell-with-dicts.nix { };
+  aspellWithDicts = callPackage ../development/libraries/aspell/aspell-with-dicts.nix {
+    aspell = aspell.override { searchNixProfiles = false; };
+  };
 
   attica = callPackage ../development/libraries/attica { };
 
   attr = callPackage ../development/libraries/attr { };
 
-  at_spi2_core = callPackage ../development/libraries/at-spi2-core { };
+  at-spi2-core = callPackage ../development/libraries/at-spi2-core { };
 
-  at_spi2_atk = callPackage ../development/libraries/at-spi2-atk { };
+  at-spi2-atk = callPackage ../development/libraries/at-spi2-atk { };
 
   aqbanking = callPackage ../development/libraries/aqbanking { };
 
@@ -7449,18 +8391,32 @@ with pkgs;
 
   babl = callPackage ../development/libraries/babl { };
 
+  backward-cpp = callPackage ../development/libraries/backward-cpp { };
+
   bctoolbox = callPackage ../development/libraries/bctoolbox {
     mbedtls = mbedtls_1_3;
   };
 
   beecrypt = callPackage ../development/libraries/beecrypt { };
 
+  belcard = callPackage ../development/libraries/belcard { };
+
+  belr = callPackage ../development/libraries/belr { };
+
   beignet = callPackage ../development/libraries/beignet {
-    inherit (llvmPackages) llvm clang-unwrapped;
+    inherit (llvmPackages_39) llvm clang-unwrapped;
   };
 
   belle-sip = callPackage ../development/libraries/belle-sip { };
 
+  libbfd = callPackage ../development/libraries/libbfd { };
+
+  libopcodes = callPackage ../development/libraries/libopcodes { };
+
+  # TODO(@Ericson2314): Build bionic libc from source
+  bionic = assert hostPlatform.useAndroidPrebuilt;
+    androidenv.androidndkPkgs.libraries;
+
   bobcat = callPackage ../development/libraries/bobcat { };
 
   boehmgc = callPackage ../development/libraries/boehm-gc { };
@@ -7469,26 +8425,29 @@ with pkgs;
 
   boost155 = callPackage ../development/libraries/boost/1.55.nix { };
   boost159 = callPackage ../development/libraries/boost/1.59.nix { };
+  boost15x = boost159;
   boost160 = callPackage ../development/libraries/boost/1.60.nix { };
   boost162 = callPackage ../development/libraries/boost/1.62.nix { };
   boost163 = callPackage ../development/libraries/boost/1.63.nix { };
   boost164 = callPackage ../development/libraries/boost/1.64.nix { };
-  boost = boost162;
+  boost165 = callPackage ../development/libraries/boost/1.65.nix { };
+  boost166 = callPackage ../development/libraries/boost/1.66.nix { };
+  boost16x = boost166;
+  boost = boost16x;
 
   boost_process = callPackage ../development/libraries/boost-process { };
 
   botan = callPackage ../development/libraries/botan { };
   botan2 = callPackage ../development/libraries/botan/2.0.nix { };
-  botanUnstable = callPackage ../development/libraries/botan/unstable.nix { };
 
   box2d = callPackage ../development/libraries/box2d { };
 
-  breakpad = callPackage ../development/libraries/breakpad { };
-
   buddy = callPackage ../development/libraries/buddy { };
 
   bwidget = callPackage ../development/libraries/bwidget { };
 
+  bzrtp = callPackage ../development/libraries/bzrtp { };
+
   c-ares = callPackage ../development/libraries/c-ares {
     fetchurl = fetchurlBoot;
   };
@@ -7497,14 +8456,16 @@ with pkgs;
 
   capnproto = callPackage ../development/libraries/capnproto { };
 
-  ccnx = callPackage ../development/libraries/ccnx { };
-
   ndn-cxx = callPackage ../development/libraries/ndn-cxx { };
 
   cddlib = callPackage ../development/libraries/cddlib {};
 
   cdk = callPackage ../development/libraries/cdk {};
 
+  cdo = callPackage ../development/libraries/cdo {
+    stdenv = gccStdenv;
+  };
+
   cimg = callPackage  ../development/libraries/cimg { };
 
   scmccid = callPackage ../development/libraries/scmccid { };
@@ -7562,7 +8523,7 @@ with pkgs;
   clutter-gst = callPackage ../development/libraries/clutter-gst {
   };
 
-  clutter_gtk = callPackage ../development/libraries/clutter-gtk { };
+  clutter-gtk = callPackage ../development/libraries/clutter-gtk { };
 
   cminpack = callPackage ../development/libraries/cminpack { };
 
@@ -7638,7 +8599,7 @@ with pkgs;
 
   dbus = callPackage ../development/libraries/dbus { };
   dbus_cplusplus  = callPackage ../development/libraries/dbus-cplusplus { };
-  dbus_glib       = callPackage ../development/libraries/dbus-glib { };
+  dbus-glib       = callPackage ../development/libraries/dbus-glib { };
   dbus_java       = callPackage ../development/libraries/java/dbus-java { };
 
   dbus-sharp-1_0 = callPackage ../development/libraries/dbus-sharp/dbus-sharp-1.0.nix { };
@@ -7661,7 +8622,7 @@ with pkgs;
 
   dhex = callPackage ../applications/editors/dhex { };
 
-  double_conversion = callPackage ../development/libraries/double-conversion { };
+  double-conversion = callPackage ../development/libraries/double-conversion { };
 
   dclib = callPackage ../development/libraries/dclib { };
 
@@ -7679,10 +8640,24 @@ with pkgs;
 
   dotconf = callPackage ../development/libraries/dotconf { };
 
+  # Multi-arch "drivers" which we want to build for i686.
+  driversi686Linux = recurseIntoAttrs {
+    inherit (pkgsi686Linux)
+      mesa_drivers
+      vaapiIntel
+      libvdpau-va-gl
+      vaapiVdpau
+      beignet
+      glxinfo
+      vdpauinfo;
+  };
+
   dssi = callPackage ../development/libraries/dssi {};
 
   dxflib = callPackage ../development/libraries/dxflib {};
 
+  easyloggingpp = callPackage ../development/libraries/easyloggingpp {};
+
   eccodes = callPackage ../development/libraries/eccodes { };
 
   eclib = callPackage ../development/libraries/eclib {};
@@ -7692,12 +8667,16 @@ with pkgs;
 
   eigen2 = callPackage ../development/libraries/eigen/2.0.nix {};
 
-  vmmlib = callPackage ../development/libraries/vmmlib {};
+  vmmlib = callPackage ../development/libraries/vmmlib {
+    inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo;
+  };
 
   elastix = callPackage ../development/libraries/science/biology/elastix { };
 
   enchant = callPackage ../development/libraries/enchant { };
 
+  enchant2 = callPackage ../development/libraries/enchant/2.x.nix { };
+
   enet = callPackage ../development/libraries/enet { };
 
   epoxy = callPackage ../development/libraries/epoxy {};
@@ -7710,8 +8689,6 @@ with pkgs;
 
   eventlog = callPackage ../development/libraries/eventlog { };
 
-  facile = callPackage ../development/libraries/facile { };
-
   faac = callPackage ../development/libraries/faac { };
 
   faad2 = callPackage ../development/libraries/faad2 { };
@@ -7720,12 +8697,12 @@ with pkgs;
     inherit (pkgs.gnome2) gtkglext;
   };
 
-  far2l = callPackage ../applications/misc/far2l { };
+  far2l = callPackage ../applications/misc/far2l {
+    stdenv = if stdenv.cc.isClang then llvmPackages_4.stdenv else stdenv;
+  };
 
   farbfeld = callPackage ../development/libraries/farbfeld { };
 
-  farsight2 = callPackage ../development/libraries/farsight2 { };
-
   farstream = callPackage ../development/libraries/farstream {
     inherit (gst_all_1)
       gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad
@@ -7749,14 +8726,14 @@ with pkgs;
   ffmpeg_2_8 = callPackage ../development/libraries/ffmpeg/2.8.nix {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
-  ffmpeg_3_3 = callPackage ../development/libraries/ffmpeg/3.3.nix {
+  ffmpeg_3_4 = callPackage ../development/libraries/ffmpeg/3.4.nix {
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreMedia;
   };
   # Aliases
   ffmpeg_0 = ffmpeg_0_10;
   ffmpeg_1 = ffmpeg_1_2;
   ffmpeg_2 = ffmpeg_2_8;
-  ffmpeg_3 = ffmpeg_3_3;
+  ffmpeg_3 = ffmpeg_3_4;
   ffmpeg = ffmpeg_3;
 
   ffmpeg-full = callPackage ../development/libraries/ffmpeg-full {
@@ -7804,6 +8781,8 @@ with pkgs;
   fltk13 = callPackage ../development/libraries/fltk { };
   fltk = self.fltk13;
 
+  flyway = callPackage ../development/tools/flyway { };
+
   fplll = callPackage ../development/libraries/fplll {};
   fplll_20160331 = callPackage ../development/libraries/fplll/20160331.nix {};
 
@@ -7811,6 +8790,8 @@ with pkgs;
 
   freetts = callPackage ../development/libraries/freetts { };
 
+  frog = self.languageMachines.frog;
+
   fstrm = callPackage ../development/libraries/fstrm { };
 
   cfitsio = callPackage ../development/libraries/cfitsio { };
@@ -7839,7 +8820,9 @@ with pkgs;
 
   freeglut = callPackage ../development/libraries/freeglut { };
 
-  freenect = callPackage ../development/libraries/freenect { };
+  freenect = callPackage ../development/libraries/freenect {
+    inherit (darwin.apple_sdk.frameworks) Cocoa GLUT;
+  };
 
   freetype = callPackage ../development/libraries/freetype { };
 
@@ -7894,8 +8877,12 @@ with pkgs;
 
   getdata = callPackage ../development/libraries/getdata { };
 
+  getdns = callPackage ../development/libraries/getdns { };
+
   gettext = callPackage ../development/libraries/gettext { };
 
+  gflags = callPackage ../development/libraries/gflags { };
+
   gf2x = callPackage ../development/libraries/gf2x {};
 
   gd = callPackage ../development/libraries/gd {
@@ -7921,11 +8908,15 @@ with pkgs;
 
   icon-lang = callPackage ../development/interpreters/icon-lang { };
 
-  libgit2 = callPackage ../development/libraries/git2 (
-    stdenv.lib.optionalAttrs stdenv.isDarwin {
-      inherit (darwin) libiconv;
-    }
-  );
+  libgit2 = callPackage ../development/libraries/git2 {
+    inherit (darwin) libiconv;
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  libgit2_0_25 = callPackage ../development/libraries/git2/0.25.nix {
+    inherit (darwin) libiconv;
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   gle = callPackage ../development/libraries/gle { };
 
@@ -7938,9 +8929,13 @@ with pkgs;
   glfw2 = callPackage ../development/libraries/glfw/2.x.nix { };
   glfw3 = callPackage ../development/libraries/glfw/3.x.nix { };
 
-  glibc = callPackage ../development/libraries/glibc {
+  glibc_2_26 = callPackage ../development/libraries/glibc {
     installLocales = config.glibc.locales or false;
   };
+  glibc_2_27 = callPackage ../development/libraries/glibc/2.27.nix {
+    installLocales = config.glibc.locales or false;
+  };
+  glibc = if hostPlatform.isRiscV then glibc_2_27 else glibc_2_26;
 
   glibc_memusage = callPackage ../development/libraries/glibc {
     installLocales = false;
@@ -7948,25 +8943,35 @@ with pkgs;
   };
 
   # Being redundant to avoid cycles on boot. TODO: find a better way
-  glibcCross = callPackage ../development/libraries/glibc {
+  glibcCross = let
+    expr = if hostPlatform.isRiscV
+             then ../development/libraries/glibc/2.27.nix
+           else ../development/libraries/glibc;
+  in callPackage expr {
     installLocales = config.glibc.locales or false;
     stdenv = crossLibcStdenv;
   };
 
+  muslCross = callPackage ../os-specific/linux/musl {
+    stdenv = crossLibcStdenv;
+  };
+
   # We can choose:
   libcCrossChooser = name:
     # libc is hackily often used from the previous stage. This `or`
     # hack fixes the hack, *sigh*.
-    /**/ if name == "glibc" then __targetPackages.glibcCross or glibcCross
+    /**/ if name == "glibc" then targetPackages.glibcCross or glibcCross
+    else if name == "bionic" then targetPackages.bionic
     else if name == "uclibc" then uclibcCross
-    else if name == "msvcrt" then __targetPackages.windows.mingw_w64 or windows.mingw_w64
+    else if name == "musl" then targetPackages.muslCross or muslCross
+    else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
     else if name == "libSystem" then darwin.xcode
     else throw "Unknown libc";
 
   libcCross = assert targetPlatform != buildPlatform; libcCrossChooser targetPlatform.libc;
 
-  # Only supported on Linux
-  glibcLocales = if stdenv.isLinux then callPackage ../development/libraries/glibc/locales.nix { } else null;
+  # Only supported on Linux, using glibc
+  glibcLocales = if hostPlatform.libc == "glibc" then callPackage ../development/libraries/glibc/locales.nix { } else null;
 
   glibcInfo = callPackage ../development/libraries/glibc/info.nix { };
 
@@ -7975,7 +8980,6 @@ with pkgs;
   };
 
   glm = callPackage ../development/libraries/glm { };
-  glm_0954 = callPackage ../development/libraries/glm/0954.nix { };
 
   globalplatform = callPackage ../development/libraries/globalplatform { };
   gppcscconnectionplugin =
@@ -7995,7 +8999,9 @@ with pkgs;
 
   glui = callPackage ../development/libraries/glui {};
 
-  gmime = callPackage ../development/libraries/gmime { };
+  gmime2 = callPackage ../development/libraries/gmime/2.nix { };
+  gmime3 = callPackage ../development/libraries/gmime/3.nix { };
+  gmime = gmime2;
 
   gmm = callPackage ../development/libraries/gmm { };
 
@@ -8010,9 +9016,15 @@ with pkgs;
 
   mpfi = callPackage ../development/libraries/mpfi { };
 
+  mpfshell = callPackage ../development/tools/mpfshell { };
+
   # A GMP fork
   mpir = callPackage ../development/libraries/mpir {};
 
+  gns3Packages = callPackage ../applications/networking/gns3 { };
+  gns3-gui = gns3Packages.guiStable;
+  gns3-server = gns3Packages.serverStable;
+
   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection {
     nixStoreDir = config.nix.storeDir or builtins.storeDir;
     inherit (darwin) cctools;
@@ -8020,6 +9032,7 @@ with pkgs;
   };
 
   goocanvas = callPackage ../development/libraries/goocanvas { };
+  goocanvas2 = callPackage ../development/libraries/goocanvas/2.x.nix { };
 
   google-gflags = callPackage ../development/libraries/google-gflags { };
 
@@ -8027,6 +9040,8 @@ with pkgs;
 
   grib-api = callPackage ../development/libraries/grib-api { };
 
+  grpc = callPackage ../development/libraries/grpc { };
+
   gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
     callPackage = pkgs.newScope (pkgs // { libav = pkgs.ffmpeg; });
   });
@@ -8081,20 +9096,22 @@ with pkgs;
 
   qt-gstreamer1 = callPackage ../development/libraries/gstreamer/qt-gstreamer { boost = boost155;};
 
+  qtstyleplugin-kvantum-qt4 = callPackage ../development/libraries/qtstyleplugin-kvantum-qt4 { };
+
   gnet = callPackage ../development/libraries/gnet { };
 
   gnu-config = callPackage ../development/libraries/gnu-config { };
 
-  gnu-efi = callPackage ../development/libraries/gnu-efi { };
-
-  gnutls = gnutls35;
+  gnu-efi = if hostPlatform.isEfi
+              then callPackage ../development/libraries/gnu-efi { }
+            else null;
 
-  gnutls35 = callPackage
+  gnutls = callPackage
     (if stdenv.isDarwin
       # Avoid > 3.5.10 due to frameworks for now; see discussion on:
       # https://github.com/NixOS/nixpkgs/commit/d6454e6a1
       then ../development/libraries/gnutls/3.5.10.nix
-      else ../development/libraries/gnutls/3.5.nix)
+      else ../development/libraries/gnutls/3.6.nix)
     {
       guileBindings = config.gnutls.guile or false;
     };
@@ -8110,6 +9127,8 @@ with pkgs;
 
   pgpdump = callPackage ../tools/security/pgpdump { };
 
+  pgpkeyserver-lite = callPackage ../servers/web-apps/pgpkeyserver-lite {};
+
   gpgstats = callPackage ../tools/security/gpgstats { };
 
   gpshell = callPackage ../development/tools/misc/gpshell { };
@@ -8140,7 +9159,7 @@ with pkgs;
   };
   glibmm = callPackage ../development/libraries/glibmm { };
 
-  glib_networking = callPackage ../development/libraries/glib-networking {};
+  glib-networking = callPackage ../development/libraries/glib-networking {};
 
   ace = callPackage ../development/libraries/ace { };
 
@@ -8159,6 +9178,11 @@ with pkgs;
   cairomm = callPackage ../development/libraries/cairomm { };
 
   pango = callPackage ../development/libraries/pango { };
+
+  pangolin = callPackage ../development/libraries/pangolin {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
+
   pangomm = callPackage ../development/libraries/pangomm {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
   };
@@ -8172,6 +9196,7 @@ with pkgs;
   gnome-sharp = callPackage ../development/libraries/gnome-sharp {};
 
   granite = callPackage ../development/libraries/granite { };
+  elementary-cmake-modules = callPackage ../development/libraries/elementary-cmake-modules { };
 
   gtk2 = callPackage ../development/libraries/gtk+/2.x.nix {
     cupsSupport = config.gtk2.cups or stdenv.isLinux;
@@ -8212,6 +9237,12 @@ with pkgs;
 
   gtk-mac-bundler = callPackage ../development/tools/gtk-mac-bundler {};
 
+  gtksourceview = gtksourceview3;
+
+  gtksourceview3 = callPackage ../development/libraries/gtksourceview/3.x.nix { };
+
+  gtksourceview4 = callPackage ../development/libraries/gtksourceview/4.x.nix { };
+
   gtkspell2 = callPackage ../development/libraries/gtkspell { };
 
   gtkspell3 = callPackage ../development/libraries/gtkspell/3.nix { };
@@ -8220,6 +9251,8 @@ with pkgs;
 
   gts = callPackage ../development/libraries/gts { };
 
+  gumbo = callPackage ../development/libraries/gumbo { };
+
   gvfs = callPackage ../development/libraries/gvfs {
     gnome = self.gnome3;
   };
@@ -8240,12 +9273,15 @@ with pkgs;
     withIcu = true;
     withGraphite2 = true;
   };
+  harfbuzz-icu-58 = harfbuzz-icu.override {
+    icu = icu58;
+  };
 
   hawknl = callPackage ../development/libraries/hawknl { };
 
   haxor-news = callPackage ../applications/misc/haxor-news { };
 
-  herqq = callPackage ../development/libraries/herqq { };
+  herqq = libsForQt5.callPackage ../development/libraries/herqq { };
 
   heyefi = haskellPackages.heyefi;
 
@@ -8283,13 +9319,34 @@ with pkgs;
 
   hwloc = callPackage ../development/libraries/hwloc {};
 
-  hydra = callPackage ../development/tools/misc/hydra { stdenv = overrideCC stdenv gcc6; };
+  hwloc-nox = callPackage ../development/libraries/hwloc {
+    x11Support = false;
+  };
+
+  hydra = callPackage ../development/tools/misc/hydra { };
 
   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
 
   hyena = callPackage ../development/libraries/hyena { };
 
-  icu = callPackage ../development/libraries/icu { };
+  icu58 = callPackage (import ../development/libraries/icu/58.nix fetchurl) ({
+    nativeBuildRoot = buildPackages.icu58.override { buildRootOnly = true; };
+  } //
+    (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+      stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
+    }));
+  icu59 = callPackage ../development/libraries/icu/59.nix ({
+    nativeBuildRoot = buildPackages.icu59.override { buildRootOnly = true; };
+  } // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+      stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
+    }));
+  icu60 = callPackage ../development/libraries/icu/60.nix ({
+    nativeBuildRoot = buildPackages.icu60.override { buildRootOnly = true; };
+  } // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+      stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
+    }));
+
+  icu = icu59;
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
@@ -8332,12 +9389,12 @@ with pkgs;
   ip2location-c = callPackage ../development/libraries/ip2location-c { };
 
   irrlicht = callPackage ../development/libraries/irrlicht { };
-  irrlicht3843 = callPackage ../development/libraries/irrlicht/irrlicht3843.nix { };
 
   isocodes = callPackage ../development/libraries/iso-codes { };
 
   ispc = callPackage ../development/compilers/ispc {
-    llvmPackages = llvmPackages_39;
+    llvmPackages = llvmPackages_4;
+    stdenv = llvmPackages_4.stdenv;
   };
 
   itk = callPackage ../development/libraries/itk { };
@@ -8356,9 +9413,10 @@ with pkgs;
 
   jshon = callPackage ../development/tools/parsing/jshon { };
 
-  json_glib = callPackage ../development/libraries/json-glib { };
+  json2hcl = callPackage ../development/tools/json2hcl { };
+
+  json-glib = callPackage ../development/libraries/json-glib { };
 
-  json-c-0-11 = callPackage ../development/libraries/json-c/0.11.nix { }; # vulnerable
   json_c = callPackage ../development/libraries/json-c { };
 
   jsoncpp = callPackage ../development/libraries/jsoncpp { };
@@ -8383,8 +9441,6 @@ with pkgs;
     in
       recurseIntoAttrs (makeOverridable mkFrameworks attrs);
 
-  kdelibs4 = kdeApplications.kdelibs;
-
   keybinder = callPackage ../development/libraries/keybinder {
     automake = automake111x;
     lua = lua5_1;
@@ -8399,7 +9455,12 @@ with pkgs;
   krb5Full = callPackage ../development/libraries/kerberos/krb5.nix {
     inherit (darwin) bootstrap_cmds;
   };
-  libkrb5 = krb5Full.override { type = "lib"; };
+  libkrb5 = krb5Full.override {
+    fetchurl = fetchurlBoot;
+    type = "lib";
+  };
+
+  languageMachines = recurseIntoAttrs (import ../development/libraries/languagemachines/packages.nix { inherit callPackage; });
 
   lasso = callPackage ../development/libraries/lasso { };
 
@@ -8435,6 +9496,8 @@ with pkgs;
 
   libaccounts-glib = callPackage ../development/libraries/libaccounts-glib { };
 
+  libacr38u = callPackage ../tools/security/libacr38u { };
+
   libagar = callPackage ../development/libraries/libagar { };
   libagar_test = callPackage ../development/libraries/libagar/libagar_test.nix { };
 
@@ -8445,6 +9508,8 @@ with pkgs;
 
   libabw = callPackage ../development/libraries/libabw { };
 
+  libamqpcpp = callPackage ../development/libraries/libamqpcpp { };
+
   libantlr3c = callPackage ../development/libraries/libantlr3c {};
 
   libappindicator-gtk2 = callPackage ../development/libraries/libappindicator { gtkVersion = "2"; };
@@ -8475,7 +9540,7 @@ with pkgs;
   libb2 = callPackage ../development/libraries/libb2 { };
 
   libbap = callPackage ../development/libraries/libbap {
-    inherit (ocamlPackages_4_02) bap ocaml findlib ctypes;
+    inherit (ocamlPackages) bap ocaml findlib ctypes;
   };
 
   libbass = (callPackage ../development/libraries/audio/libbass { }).bass;
@@ -8496,29 +9561,33 @@ with pkgs;
   libburn = callPackage ../development/libraries/libburn { };
 
   libcaca = callPackage ../development/libraries/libcaca {
-    inherit (xlibs) libX11 libXext;
+    inherit (xorg) libX11 libXext;
   };
 
-  libcanberra_gtk3 = callPackage ../development/libraries/libcanberra {
-    gtk = pkgs.gtk3;
-  };
-  libcanberra_gtk2 = pkgs.libcanberra_gtk3.override { gtk = pkgs.gtk2; };
+  libcanberra = callPackage ../development/libraries/libcanberra { };
+  libcanberra-gtk3 = pkgs.libcanberra.override { gtk = pkgs.gtk3; };
+  libcanberra-gtk2 = pkgs.libcanberra-gtk3.override { gtk = pkgs.gtk2; };
 
   libcanberra_kde = if (config.kde_runtime.libcanberraWithoutGTK or true)
-    then pkgs.libcanberra_gtk2.override { gtk = null; }
-    else pkgs.libcanberra_gtk2;
+    then pkgs.libcanberra
+    else pkgs.libcanberra-gtk2;
 
   libcec = callPackage ../development/libraries/libcec { };
   libcec_platform = callPackage ../development/libraries/libcec/platform.nix { };
 
   libcello = callPackage ../development/libraries/libcello {};
 
+  libcerf = callPackage ../development/libraries/libcerf {};
+
   libcdaudio = callPackage ../development/libraries/libcdaudio { };
 
   libcddb = callPackage ../development/libraries/libcddb { };
 
-  libcdio = callPackage ../development/libraries/libcdio { };
-  libcdio082 = callPackage ../development/libraries/libcdio/0.82.nix { };
+  libcdio = callPackage ../development/libraries/libcdio {
+    inherit (darwin.apple_sdk.frameworks) Carbon IOKit;
+  };
+
+  libcdio-paranoia = callPackage ../development/libraries/libcdio-paranoia { };
 
   libcdr = callPackage ../development/libraries/libcdr { lcms = lcms2; };
 
@@ -8560,8 +9629,6 @@ with pkgs;
 
   libctemplate = callPackage ../development/libraries/libctemplate { };
 
-  libctemplate_2_2 = callPackage ../development/libraries/libctemplate/2.2.nix { };
-
   libcouchbase = callPackage ../development/libraries/libcouchbase { };
 
   libcue = callPackage ../development/libraries/libcue { };
@@ -8572,15 +9639,17 @@ with pkgs;
 
   libdap = callPackage ../development/libraries/libdap { };
 
+  libdazzle = callPackage ../development/libraries/libdazzle { };
+
   libdbi = callPackage ../development/libraries/libdbi { };
 
   libdbiDriversBase = callPackage ../development/libraries/libdbi-drivers {
-    libmysql = null;
+    mysql = null;
     sqlite = null;
   };
 
   libdbiDrivers = libdbiDriversBase.override {
-    inherit sqlite libmysql;
+    inherit sqlite mysql;
   };
 
   libdbusmenu-glib = callPackage ../development/libraries/libdbusmenu { };
@@ -8599,7 +9668,7 @@ with pkgs;
 
   libdevil-nox = libdevil.override {
     libX11 = null;
-    mesa_noglu = null;
+    libGL = null;
   };
 
   libdigidoc = callPackage ../development/libraries/libdigidoc { };
@@ -8655,6 +9724,8 @@ with pkgs;
 
   libetpan = callPackage ../development/libraries/libetpan { };
 
+  libexecinfo = callPackage ../development/libraries/libexecinfo { };
+
   libfaketime = callPackage ../development/libraries/libfaketime { };
 
   libfakekey = callPackage ../development/libraries/libfakekey { };
@@ -8676,14 +9747,10 @@ with pkgs;
 
   libgdata = gnome3.libgdata;
 
-  libgee_0_6 = callPackage ../development/libraries/libgee/0.6.nix { };
-
-  libgee_0_8 = callPackage ../development/libraries/libgee/0.8.nix { };
-
   libgig = callPackage ../development/libraries/libgig { };
 
-  libgnome_keyring = callPackage ../development/libraries/libgnome-keyring { };
-  libgnome_keyring3 = gnome3.libgnome_keyring;
+  libgnome-keyring = callPackage ../development/libraries/libgnome-keyring { };
+  libgnome-keyring3 = gnome3.libgnome-keyring;
 
   libglvnd = callPackage ../development/libraries/libglvnd { };
 
@@ -8693,13 +9760,17 @@ with pkgs;
 
   libgroove = callPackage ../development/libraries/libgroove { };
 
-  libseccomp = callPackage ../development/libraries/libseccomp { };
+  libseccomp =  if hostPlatform.isSeccomputable
+                  then callPackage ../development/libraries/libseccomp { }
+                else null;
 
   libsecret = callPackage ../development/libraries/libsecret { };
 
   libserialport = callPackage ../development/libraries/libserialport { };
 
-  libsoundio = callPackage ../development/libraries/libsoundio { };
+  libsoundio = callPackage ../development/libraries/libsoundio {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit;
+  };
 
   libgtop = callPackage ../development/libraries/libgtop {};
 
@@ -8729,10 +9800,6 @@ with pkgs;
 
   libexosip = callPackage ../development/libraries/exosip {};
 
-  libexosip_3 = callPackage ../development/libraries/exosip/3.x.nix {
-    libosip = libosip_3;
-  };
-
   libextractor = callPackage ../development/libraries/libextractor {
     libmpeg2 = mpeg2dec;
   };
@@ -8767,6 +9834,11 @@ with pkgs;
 
   libgpgerror = callPackage ../development/libraries/libgpg-error { };
 
+  # https://github.com/gpg/libgpg-error/blob/70058cd9f944d620764e57c838209afae8a58c78/README#L118-L140
+  libgpgerror-gen-posix-lock-obj = libgpgerror.override {
+    genPosixLockObjOnly = true;
+  };
+
   libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
 
   libgpod = callPackage ../development/libraries/libgpod {
@@ -8774,16 +9846,18 @@ with pkgs;
     monoSupport = false;
   };
 
+  libgssglue = callPackage ../development/libraries/libgssglue { };
+
   libgsystem = callPackage ../development/libraries/libgsystem { };
 
   libgudev = callPackage ../development/libraries/libgudev { };
 
+  libguestfs-appliance = callPackage ../development/libraries/libguestfs/appliance.nix {};
   libguestfs = callPackage ../development/libraries/libguestfs {
     inherit (perlPackages) libintlperl GetoptLong SysVirt;
+    appliance = libguestfs-appliance;
   };
 
-  libgumbo = callPackage ../development/libraries/libgumbo { };
-
   libhangul = callPackage ../development/libraries/libhangul { };
 
   libharu = callPackage ../development/libraries/libharu { };
@@ -8820,6 +9894,8 @@ with pkgs;
 
   liblastfm = callPackage ../development/libraries/liblastfm { };
 
+  liblcf = callPackage ../development/libraries/liblcf { };
+
   liblqr1 = callPackage ../development/libraries/liblqr-1 { };
 
   liblockfile = callPackage ../development/libraries/liblockfile { };
@@ -8843,7 +9919,8 @@ with pkgs;
   libmtp = callPackage ../development/libraries/libmtp { };
 
   libmsgpack = callPackage ../development/libraries/libmsgpack { };
-  libmsgpack_1_4 = callPackage ../development/libraries/libmsgpack/1.4.nix { };
+
+  libmypaint = callPackage ../development/libraries/libmypaint { };
 
   libmysqlconnectorcpp = callPackage ../development/libraries/libmysqlconnectorcpp {
     mysql = mysql57;
@@ -8859,15 +9936,21 @@ with pkgs;
 
   libnfc = callPackage ../development/libraries/libnfc { };
 
+  libnfs = callPackage ../development/libraries/libnfs { };
+
   libnfsidmap = callPackage ../development/libraries/libnfsidmap { };
 
   libnice = callPackage ../development/libraries/libnice { };
 
+  libnsl = callPackage ../development/libraries/libnsl { };
+
   liboping = callPackage ../development/libraries/liboping { };
 
   libplist = callPackage ../development/libraries/libplist { };
 
-  libqglviewer = callPackage ../development/libraries/libqglviewer { };
+  libqglviewer = callPackage ../development/libraries/libqglviewer {
+    inherit (darwin.apple_sdk.frameworks) AGL;
+  };
 
   libre = callPackage ../development/libraries/libre {};
   librem = callPackage ../development/libraries/librem {};
@@ -8882,6 +9965,8 @@ with pkgs;
 
   librevisa = callPackage ../development/libraries/librevisa { };
 
+  librime = callPackage ../development/libraries/librime {};
+
   libsamplerate = callPackage ../development/libraries/libsamplerate {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon CoreServices;
   };
@@ -8924,7 +10009,7 @@ with pkgs;
   };
 
   # On non-GNU systems we need GNU Gettext for libintl.
-  libintlOrEmpty = stdenv.lib.optional (!stdenv.isLinux) gettext;
+  libintlOrEmpty = stdenv.lib.optional (!stdenv.isLinux || hostPlatform.libc != "glibc") gettext;
 
   libid3tag = callPackage ../development/libraries/libid3tag {
     gperf = gperf_3_0;
@@ -8946,6 +10031,8 @@ with pkgs;
     graphviz = graphviz-nox;
   };
 
+  libinput-gestures = callPackage ../tools/inputmethods/libinput-gestures {};
+
   libisofs = callPackage ../development/libraries/libisofs { };
 
   libisoburn = callPackage ../development/libraries/libisoburn { };
@@ -8971,14 +10058,14 @@ with pkgs;
 
   libmatchbox = callPackage ../development/libraries/libmatchbox { };
 
-  libmatheval = callPackage ../development/libraries/libmatheval { };
+  libmatheval = callPackage ../development/libraries/libmatheval {
+    guile = guile_2_0;
+  };
 
   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
 
   libmatroska = callPackage ../development/libraries/libmatroska { };
 
-  libmcs = callPackage ../development/libraries/libmcs { };
-
   libmd = callPackage ../development/libraries/libmd { };
 
   libmemcached = callPackage ../development/libraries/libmemcached { };
@@ -8991,7 +10078,11 @@ with pkgs;
 
   libmilter = callPackage ../development/libraries/libmilter { };
 
-  libminc = callPackage ../development/libraries/libminc { };
+  libminc = callPackage ../development/libraries/libminc {
+    hdf5 = hdf5_1_8;
+  };
+
+  libmirage = callPackage ../misc/emulators/cdemu/libmirage.nix { };
 
   libmkv = callPackage ../development/libraries/libmkv { };
 
@@ -9011,12 +10102,8 @@ with pkgs;
 
   libmrss = callPackage ../development/libraries/libmrss { };
 
-  libmsn = callPackage ../development/libraries/libmsn { };
-
   libmspack = callPackage ../development/libraries/libmspack { };
 
-  libmusicbrainz2 = callPackage ../development/libraries/libmusicbrainz/2.x.nix { };
-
   libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
 
   libmusicbrainz5 = callPackage ../development/libraries/libmusicbrainz/5.x.nix { };
@@ -9099,14 +10186,10 @@ with pkgs;
 
   libpfm = callPackage ../development/libraries/libpfm { };
 
-  libpqxx = callPackage ../development/libraries/libpqxx {
-    gnused = gnused_422;
-  };
+  libpqxx = callPackage ../development/libraries/libpqxx { };
 
   libproxy = callPackage ../development/libraries/libproxy {
-    stdenv = if stdenv.isDarwin
-      then overrideCC stdenv gcc
-      else stdenv;
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation JavaScriptCore;
   };
 
   libpseudo = callPackage ../development/libraries/libpseudo { };
@@ -9119,6 +10202,8 @@ with pkgs;
 
   libqalculate = callPackage ../development/libraries/libqalculate { };
 
+  libroxml = callPackage ../development/libraries/libroxml { };
+
   librsvg = callPackage ../development/libraries/librsvg { };
 
   librsync = callPackage ../development/libraries/librsync { };
@@ -9135,13 +10220,12 @@ with pkgs;
 
   libsigsegv = callPackage ../development/libraries/libsigsegv { };
 
-  # To bootstrap SBCL, I need CLisp 2.44.1; it needs libsigsegv 2.5
-  libsigsegv_25 = callPackage ../development/libraries/libsigsegv/2.5.nix { };
-
   libsndfile = callPackage ../development/libraries/libsndfile {
     inherit (darwin.apple_sdk.frameworks) Carbon AudioToolbox;
   };
 
+  libsnark = callPackage ../development/libraries/libsnark { };
+
   libsodium = callPackage ../development/libraries/libsodium { };
 
   libsoup = callPackage ../development/libraries/libsoup { };
@@ -9154,6 +10238,8 @@ with pkgs;
 
   libstartup_notification = callPackage ../development/libraries/startup-notification { };
 
+  libstemmer = callPackage ../development/libraries/libstemmer { };
+
   libstroke = callPackage ../development/libraries/libstroke { };
 
   libstrophe = callPackage ../development/libraries/libstrophe { };
@@ -9186,21 +10272,13 @@ with pkgs;
 
   libtorrentRasterbar = callPackage ../development/libraries/libtorrent-rasterbar { };
 
-  libtorrentRasterbar_1_0 = callPackage ../development/libraries/libtorrent-rasterbar/1.0.nix { };
-
-  libtoxcore-old = callPackage ../development/libraries/libtoxcore/old-api.nix { };
-
   libtoxcore-new = callPackage ../development/libraries/libtoxcore/new-api.nix { };
 
   libtoxcore = callPackage ../development/libraries/libtoxcore { };
 
   libtap = callPackage ../development/libraries/libtap { };
 
-  libtsm = callPackage ../development/libraries/libtsm {
-    automake = automake114x;
-  };
-
-  libtunepimp = callPackage ../development/libraries/libtunepimp { };
+  libtsm = callPackage ../development/libraries/libtsm { };
 
   libtxc_dxtn = callPackage ../development/libraries/libtxc_dxtn { };
 
@@ -9212,19 +10290,20 @@ with pkgs;
 
   libu2f-server = callPackage ../development/libraries/libu2f-server { };
 
+  libubox = callPackage ../development/libraries/libubox { };
+
   libuecc = callPackage ../development/libraries/libuecc { };
 
   libui = callPackage ../development/libraries/libui { };
 
-  libunity = callPackage ../development/libraries/libunity { };
-
   libunistring = callPackage ../development/libraries/libunistring { };
 
   libupnp = callPackage ../development/libraries/pupnp { };
 
+  libwhereami = callPackage ../development/libraries/libwhereami { };
+
   giflib = giflib_5_1;
   giflib_4_1 = callPackage ../development/libraries/giflib/4.1.nix { };
-  giflib_5_0 = callPackage ../development/libraries/giflib/5.0.nix { };
   giflib_5_1 = callPackage ../development/libraries/giflib/5.1.nix { };
 
   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
@@ -9261,6 +10340,10 @@ with pkgs;
 
   libva = callPackage ../development/libraries/libva { };
   libva-full = libva.override { minimal = false; };
+  libva-utils = callPackage ../development/libraries/libva-utils { };
+
+  libva1 = callPackage ../development/libraries/libva/1.0.0.nix { };
+  libva1-full = libva1.override { minimal = false; };
 
   libvdpau = callPackage ../development/libraries/libvdpau { };
 
@@ -9287,6 +10370,8 @@ with pkgs;
 
   libvorbis = callPackage ../development/libraries/libvorbis { };
 
+  libwebcam = callPackage ../os-specific/linux/libwebcam { };
+
   libwebp = callPackage ../development/libraries/libwebp { };
 
   libwmf = callPackage ../development/libraries/libwmf { };
@@ -9315,8 +10400,8 @@ with pkgs;
 
   libxmi = callPackage ../development/libraries/libxmi { };
 
-  libxml2 = callPackage ../development/libraries/libxml2 {
-  };
+  libxml2 = callPackage ../development/libraries/libxml2 { };
+
   libxml2Python = pkgs.buildEnv { # slightly hacky
     name = "libxml2+py-${self.libxml2.version}";
     paths = with libxml2; [ dev bin py ];
@@ -9324,7 +10409,7 @@ with pkgs;
     # the hook to find catalogs is hidden by buildEnv
     postBuild = ''
       mkdir "$out/nix-support"
-      cp '${libxml2.dev}/nix-support/propagated-native-build-inputs' "$out/nix-support/"
+      cp '${libxml2.dev}/nix-support/propagated-build-inputs' "$out/nix-support/"
     '';
   };
 
@@ -9341,6 +10426,13 @@ with pkgs;
 
   libyamlcpp = callPackage ../development/libraries/libyaml-cpp { };
 
+  libyamlcpp_0_3 = pkgs.libyamlcpp.overrideAttrs (oldAttrs: rec {
+    src = pkgs.fetchurl {
+      url = "https://github.com/jbeder/yaml-cpp/archive/release-0.3.0.tar.gz";
+      sha256 = "12aszqw6svwlnb6nzhsbqhz3c7vnd5ahd0k6xlj05w8lm83hx3db";
+      };
+  });
+
   libykneomgr = callPackage ../development/libraries/libykneomgr { };
 
   libytnef = callPackage ../development/libraries/libytnef { };
@@ -9359,6 +10451,8 @@ with pkgs;
 
   lightlocker = callPackage ../misc/screensavers/light-locker { };
 
+  lightstep-tracer-cpp = callPackage ../development/libraries/lightstep-tracer-cpp { };
+
   linenoise = callPackage ../development/libraries/linenoise { };
 
   linenoise-ng = callPackage ../development/libraries/linenoise-ng { };
@@ -9387,10 +10481,14 @@ with pkgs;
 
   luabind_luajit = callPackage ../development/libraries/luabind { lua = luajit; };
 
+  luaffi = callPackage ../development/libraries/luaffi { lua = lua5_1; };
+
   lzo = callPackage ../development/libraries/lzo { };
 
   mapnik = callPackage ../development/libraries/mapnik { };
 
+  marisa = callPackage ../development/libraries/marisa {};
+
   matio = callPackage ../development/libraries/matio { };
 
   mbedtls = callPackage ../development/libraries/mbedtls { };
@@ -9408,9 +10506,28 @@ with pkgs;
 
   mergerfs = callPackage ../tools/filesystems/mergerfs { };
 
-  mesaSupported = lib.elem system lib.platforms.mesaPlatforms;
+  ## libGL/libGLU/Mesa stuff
+
+  # Default libGL implementation, should provide headers and libGL.so/libEGL.so/... to link agains them
+  # Default implementation is `mesa`, but can be eventually replaced with `libglvnd`,
+  # or other runtime dispatcher
+  libGL = mesa_noglu;
+
+  # Default libGLU
+  libGLU = mesa_glu;
+
+  # Combined derivation, contains both libGL and libGLU
+  # Please, avoid using this attribute.  It was meant as transitional hack
+  # for packages that assume that libGLU and libGL live in the same prefix.
+  # libGLU_combined propagates both libGL and libGLU
+  libGLU_combined = mesa;
+
+  # Default derivation with libGL.so.1 to link into /run/opengl-drivers (if need)
+  libGL_driver = mesa_drivers;
 
-  mesaDarwinOr = alternative: if stdenv.isDarwin
+  libGLSupported = lib.elem system lib.platforms.mesaPlatforms;
+
+  libGLDarwinOr = alternative: if stdenv.isDarwin
     then callPackage ../development/libraries/mesa-darwin {
       inherit (darwin.apple_sdk.frameworks) OpenGL;
       inherit (darwin.apple_sdk.libs) Xplugin;
@@ -9418,17 +10535,16 @@ with pkgs;
     }
     else alternative;
 
-  mesa_noglu = mesaDarwinOr (callPackage ../development/libraries/mesa {
+  # FIXME: should be `libGL = libGLDarwinOr mesa_nonglu` but this change cause mass rebuild,
+  # until all packages will refer to libGL/GLU/GLU combined
+  mesa_noglu = libGLDarwinOr (callPackage ../development/libraries/mesa {
     # makes it slower, but during runtime we link against just mesa_drivers
     # through /run/opengl-driver*, which is overriden according to config.grsecurity
     # grsecEnabled = true; # no more support in nixpkgs ATM
-
-    # llvm-4.0.0 won't pass tests on aarch64
-    llvmPackages = if system == "aarch64-linux" then llvmPackages_39 else llvmPackages_4;
   });
 
-  mesa_glu =  mesaDarwinOr (callPackage ../development/libraries/mesa-glu { });
-  mesa_drivers = mesaDarwinOr (
+  mesa_glu =  libGLDarwinOr (callPackage ../development/libraries/mesa-glu { });
+  mesa_drivers = libGLDarwinOr (
     let mo = mesa_noglu.override {
       grsecEnabled = config.grsecurity or false;
       enableTextureFloats = true;
@@ -9440,7 +10556,7 @@ with pkgs;
   # for packages that assume that libGLU and libGL live in the same prefix.
   # Otherwise it's better to use mesa_glu or mesa_noglu, depending on whether
   # you need libGLU or not (_glu propagates _noglu).
-  mesa = mesaDarwinOr (buildEnv {
+  mesa = libGLDarwinOr (buildEnv {
     name = "mesa-${mesa_noglu.version}";
     paths = [ mesa_noglu.dev mesa_noglu.out mesa_glu mesa_glu.dev ];
     meta = {
@@ -9448,6 +10564,8 @@ with pkgs;
     };
   });
 
+  ## End libGL/libGLU/Mesa stuff
+
   meterbridge = callPackage ../applications/audio/meterbridge { };
 
   mhddfs = callPackage ../tools/filesystems/mhddfs { };
@@ -9463,7 +10581,7 @@ with pkgs;
     ffmpeg = ffmpeg_2;
   };
 
-  mkvtoolnix = callPackage ../applications/video/mkvtoolnix { };
+  mkvtoolnix = libsForQt5.callPackage ../applications/video/mkvtoolnix { };
 
   mkvtoolnix-cli = callPackage ../applications/video/mkvtoolnix {
     withGUI = false;
@@ -9485,13 +10603,17 @@ with pkgs;
 
   mpeg2dec = libmpeg2;
 
+  mqtt-bench = callPackage ../applications/misc/mqtt-bench {};
+
   msilbc = callPackage ../development/libraries/msilbc { };
 
   mp4v2 = callPackage ../development/libraries/mp4v2 { };
 
   libmpc = callPackage ../development/libraries/libmpc { };
 
-  mpich2 = callPackage ../development/libraries/mpich2 { };
+  mpich2 = callPackage ../development/libraries/mpich2 {
+    gfortran = gfortran5;
+  };
 
   mstpd = callPackage ../os-specific/linux/mstpd { };
 
@@ -9509,7 +10631,9 @@ with pkgs;
 
   mygpoclient = pythonPackages.mygpoclient;
 
-  mygui = callPackage ../development/libraries/mygui {};
+  mygui = callPackage ../development/libraries/mygui {
+    ogre = ogre1_9;
+  };
 
   mysocketw = callPackage ../development/libraries/mysocketw { };
 
@@ -9521,11 +10645,17 @@ with pkgs;
 
   ndpi = callPackage ../development/libraries/ndpi { };
 
+  nifticlib = callPackage ../development/libraries/science/biology/nifticlib { };
+
   notify-sharp = callPackage ../development/libraries/notify-sharp { };
 
-  ncurses5 = callPackage ../development/libraries/ncurses { abiVersion = "5"; };
-  ncurses6 = callPackage ../development/libraries/ncurses { abiVersion = "6"; };
-  ncurses = if stdenv.isDarwin then ncurses5 else ncurses6;
+  ncurses5 = callPackage ../development/libraries/ncurses {
+    abiVersion = "5";
+  };
+  ncurses6 = callPackage ../development/libraries/ncurses {
+    abiVersion = "6";
+  };
+  ncurses = ncurses6;
 
   neardal = callPackage ../development/libraries/neardal { };
 
@@ -9548,7 +10678,7 @@ with pkgs;
   };
   libnghttp2 = nghttp2.lib;
 
-  nix-plugins = callPackage ../development/libraries/nix-plugins {};
+  nix-plugins = callPackage ../development/libraries/nix-plugins { };
 
   nlohmann_json = callPackage ../development/libraries/nlohmann_json { };
 
@@ -9567,6 +10697,8 @@ with pkgs;
 
   nss_wrapper = callPackage ../development/libraries/nss_wrapper { };
 
+  ntbtls = callPackage ../development/libraries/ntbtls { };
+
   ntk = callPackage ../development/libraries/audio/ntk { };
 
   ntrack = callPackage ../development/libraries/ntrack { };
@@ -9575,16 +10707,22 @@ with pkgs;
 
   nvidia-video-sdk = callPackage ../development/libraries/nvidia-video-sdk { };
 
-  ocl-icd = callPackage ../development/libraries/ocl-icd { };
+  ocl-icd-oclhGen = oclh: callPackage ../development/libraries/ocl-icd { opencl-headers = oclh; };
+  ocl-icd-oclh_1_2 = ocl-icd-oclhGen opencl-headers_1_2;
+  ocl-icd-oclh_2_2 = ocl-icd-oclhGen opencl-headers_2_2;
+  ocl-icd = ocl-icd-oclh_2_2;
 
   ode = callPackage ../development/libraries/ode { };
 
   ogre = callPackage ../development/libraries/ogre {};
+  ogre1_9 = callPackage ../development/libraries/ogre/1.9.x.nix {};
 
   ogrepaged = callPackage ../development/libraries/ogrepaged { };
 
   olm = callPackage ../development/libraries/olm { };
 
+  oneko = callPackage ../applications/misc/oneko { };
+
   oniguruma = callPackage ../development/libraries/oniguruma { };
 
   openal = self.openalSoft;
@@ -9595,24 +10733,21 @@ with pkgs;
 
   openbabel = callPackage ../development/libraries/openbabel { };
 
-  opencascade = callPackage ../development/libraries/opencascade {
-    tcl = tcl-8_5;
-    tk = tk-8_5;
-  };
+  opencascade = callPackage ../development/libraries/opencascade { };
 
-  opencascade_6_5 = callPackage ../development/libraries/opencascade/6.5.nix {
-    automake = automake111x;
-    ftgl = ftgl212;
-  };
+  opencascade_oce = opencascade;
 
-  opencascade_oce = callPackage ../development/libraries/opencascade/oce.nix { };
-
-  opencl-headers = callPackage ../development/libraries/opencl-headers { };
+  opencl-headersGen = v: callPackage ../development/libraries/opencl-headers { version = v; };
+  opencl-headers_1_2 = opencl-headersGen "12";
+  opencl-headers_2_2 = opencl-headersGen "22";
+  opencl-headers = opencl-headers_2_2;
 
   opencl-clhpp = callPackage ../development/libraries/opencl-clhpp { };
 
   opencollada = callPackage ../development/libraries/opencollada { };
 
+  opencore-amr = callPackage ../development/libraries/opencore-amr { };
+
   opencsg = callPackage ../development/libraries/opencsg { };
 
   openct = callPackage ../development/libraries/openct { };
@@ -9622,7 +10757,12 @@ with pkgs;
   };
 
   opencv3 = callPackage ../development/libraries/opencv/3.x.nix {
-    inherit (darwin.apple_sdk.frameworks) AVFoundation Cocoa QTKit;
+    enableCuda = config.cudaSupport or false;
+    inherit (darwin.apple_sdk.frameworks) AVFoundation Cocoa QTKit VideoDecodeAcceleration;
+  };
+
+  opencv3WithoutCuda = opencv3.override {
+    enableCuda = false;
   };
 
   # this ctl version is needed by openexr_viewers
@@ -9630,6 +10770,8 @@ with pkgs;
 
   openexr = callPackage ../development/libraries/openexr { };
 
+  openexrid-unstable = callPackage ../development/libraries/openexrid-unstable { };
+
   openldap = callPackage ../development/libraries/openldap { };
 
   opencolorio = callPackage ../development/libraries/opencolorio { };
@@ -9654,6 +10796,8 @@ with pkgs;
 
   openslp = callPackage ../development/libraries/openslp {};
 
+  openvdb = callPackage ../development/libraries/openvdb {};
+
   inherit (callPackages ../development/libraries/libressl { })
     libressl_2_5
     libressl_2_6;
@@ -9684,16 +10828,24 @@ with pkgs;
   };
 
   opensubdiv = callPackage ../development/libraries/opensubdiv {
+    cudaSupport = config.cudaSupport or false;
     cmake = cmake_2_8;
   };
 
+  open-wbo = callPackage ../applications/science/logic/open-wbo {};
+
   openwsman = callPackage ../development/libraries/openwsman {};
 
   ortp = callPackage ../development/libraries/ortp { };
 
+  openrct2 = callPackage ../games/openrct2/default.nix { };
+
   osm-gps-map = callPackage ../development/libraries/osm-gps-map { };
 
-  p11_kit = callPackage ../development/libraries/p11-kit { };
+  osinfo-db = callPackage ../data/misc/osinfo-db { };
+  osinfo-db-tools = callPackage ../tools/misc/osinfo-db-tools { };
+
+  p11-kit = callPackage ../development/libraries/p11-kit { };
 
   paperkey = callPackage ../tools/security/paperkey { };
 
@@ -9705,8 +10857,7 @@ with pkgs;
 
   pcg_c = callPackage ../development/libraries/pcg-c { };
 
-  pcl = callPackage ../development/libraries/pcl {
-    vtk = vtkWithQt4;
+  pcl = libsForQt5.callPackage ../development/libraries/pcl {
     inherit (darwin) cf-private;
     inherit (darwin.apple_sdk.frameworks) Cocoa AGL OpenGL;
   };
@@ -9724,9 +10875,13 @@ with pkgs;
 
   pg_similarity = callPackage ../servers/sql/postgresql/pg_similarity {};
 
+  pg_tmp = callPackage ../development/tools/database/pg_tmp { };
+
   pgroonga = callPackage ../servers/sql/postgresql/pgroonga {};
 
-  plv8 = callPackage ../servers/sql/postgresql/plv8 {};
+  plv8 = callPackage ../servers/sql/postgresql/plv8 {
+    v8 = v8_6_x;
+  };
 
   phonon = callPackage ../development/libraries/phonon {};
 
@@ -9734,7 +10889,9 @@ with pkgs;
 
   phonon-backend-vlc = callPackage ../development/libraries/phonon/backends/vlc.nix {};
 
-  physfs = callPackage ../development/libraries/physfs { };
+  inherit (callPackage ../development/libraries/physfs { })
+    physfs_2
+    physfs;
 
   pipelight = callPackage ../tools/misc/pipelight {
     stdenv = stdenv_32bit;
@@ -9770,10 +10927,7 @@ with pkgs;
     suffix = "min";
   };
 
-  poppler_qt4 = poppler.override {
-    qt4Support = true;
-    suffix = "qt4";
-  };
+  poppler_qt4 = callPackage ../development/libraries/poppler/qt4.nix { };
 
   poppler_utils = poppler.override { suffix = "utils"; utils = true; };
 
@@ -9783,6 +10937,13 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AudioToolbox AudioUnit CoreAudio CoreServices Carbon;
   };
 
+  portaudio2014 = portaudio.overrideAttrs (oldAttrs: {
+    src = fetchurl {
+      url = http://www.portaudio.com/archives/pa_stable_v19_20140130.tgz;
+      sha256 = "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g";
+    };
+  });
+
   portmidi = callPackage ../development/libraries/portmidi {};
 
   prison = callPackage ../development/libraries/prison { };
@@ -9796,18 +10957,14 @@ with pkgs;
 
   postgis = callPackage ../development/libraries/postgis { };
 
-  protobuf = protobuf2_6;
-  protobuf3_0 = lowPrio (callPackage ../development/libraries/protobuf/3.0.nix { });
-  # 3.0.0-beta-2 is only introduced for tensorflow. remove this version when tensorflow is moved to 3.0.
-  protobuf3_0_0b2 = lowPrio (callPackage ../development/libraries/protobuf/3.0.0-beta-2.nix { });
+  protobuf = protobuf3_4;
+
+  protobuf3_5 = callPackage ../development/libraries/protobuf/3.5.nix { };
+  protobuf3_4 = callPackage ../development/libraries/protobuf/3.4.nix { };
   protobuf3_1 = callPackage ../development/libraries/protobuf/3.1.nix { };
-  protobuf3_2 = callPackage ../development/libraries/protobuf/3.2.nix { };
-  protobuf2_6 = callPackage ../development/libraries/protobuf/2.6.nix { };
   protobuf2_5 = callPackage ../development/libraries/protobuf/2.5.nix { };
 
-  protobufc = protobufc1_1;
-  protobufc1_1 = callPackage ../development/libraries/protobufc/1.1.nix { };
-  protobufc1_0 = callPackage ../development/libraries/protobufc/1.0.nix { };
+  protobufc = callPackage ../development/libraries/protobufc/1.3.nix { };
 
   flatbuffers = callPackage ../development/libraries/flatbuffers { };
 
@@ -9831,7 +10988,7 @@ with pkgs;
   qoauth = callPackage ../development/libraries/qoauth { };
 
   qt3 = callPackage ../development/libraries/qt-3 {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
     libpng = libpng12;
   };
 
@@ -9839,13 +10996,13 @@ with pkgs;
 
   qt48 = callPackage ../development/libraries/qt-4.x/4.8 {
     # GNOME dependencies are not used unless gtkStyle == true
-    mesa = mesa_noglu;
     inherit (pkgs.gnome2) libgnomeui GConf gnome_vfs;
     cups = if stdenv.isLinux then cups else null;
 
     # XXX: mariadb doesn't built on fbsd as of nov 2015
     mysql = if (!stdenv.isFreeBSD) then mysql else null;
 
+    inherit libGL;
     inherit (pkgs.darwin) cf-private libobjc;
     inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices OpenGL Cocoa AGL;
   };
@@ -9870,12 +11027,12 @@ with pkgs;
       bison = bison2; # error: too few arguments to function 'int yylex(...
       inherit cups;
       harfbuzz = harfbuzz-icu;
-      mesa = mesa_noglu;
+      inherit libGL;
       inherit perl;
       inherit (gst_all_1) gstreamer gst-plugins-base;
     });
 
-  libsForQt56 = recurseIntoAttrs (lib.makeScope qt56.newScope mkLibsForQt5);
+  libsForQt56 = lib.makeScope qt56.newScope mkLibsForQt5;
 
   qt59 = recurseIntoAttrs (makeOverridable
     (import ../development/libraries/qt-5/5.9) {
@@ -9884,16 +11041,31 @@ with pkgs;
       bison = bison2; # error: too few arguments to function 'int yylex(...
       inherit cups;
       harfbuzz = harfbuzz-icu;
-      mesa = mesa_noglu;
+      inherit libGL;
       inherit perl;
       inherit (gst_all_1) gstreamer gst-plugins-base;
       inherit (gnome3) gtk3 dconf;
     });
 
-  libsForQt59 = recurseIntoAttrs (lib.makeScope qt59.newScope mkLibsForQt5);
+  libsForQt59 = lib.makeScope qt59.newScope mkLibsForQt5;
 
-  qt5 = qt59;
-  libsForQt5 = libsForQt59;
+  qt510 = recurseIntoAttrs (makeOverridable
+    (import ../development/libraries/qt-5/5.10) {
+      inherit newScope;
+      inherit stdenv fetchurl makeSetupHook makeWrapper;
+      bison = bison2; # error: too few arguments to function 'int yylex(...
+      inherit cups;
+      harfbuzz = harfbuzz-icu;
+      inherit libGL;
+      inherit perl;
+      inherit (gst_all_1) gstreamer gst-plugins-base;
+      inherit (gnome3) gtk3 dconf;
+    });
+
+  libsForQt510 = recurseIntoAttrs (lib.makeScope qt510.newScope mkLibsForQt5);
+
+  qt5 = qt510;
+  libsForQt5 = libsForQt510;
 
   qt5ct = libsForQt5.callPackage ../tools/misc/qt5ct { };
 
@@ -9912,7 +11084,7 @@ with pkgs;
       kservice ktexteditor ktextwidgets kunitconversion kwallet kwayland
       kwidgetsaddons kwindowsystem kxmlgui kxmlrpcclient modemmanager-qt
       networkmanager-qt plasma-framework prison solid sonnet syntax-highlighting
-      threadweaver;
+      threadweaver kirigami2;
 
     ### KDE PLASMA 5
 
@@ -9922,7 +11094,7 @@ with pkgs;
     ### KDE APPLICATIONS
 
     inherit (kdeApplications.override { libsForQt5 = self; })
-      libkdcraw libkexiv2 libkipi libkomparediff2;
+      kholidays libkdcraw libkexiv2 libkipi libkomparediff2 libksane;
 
     ### LIBRARIES
 
@@ -9932,12 +11104,20 @@ with pkgs;
 
     qgpgme = callPackage ../development/libraries/gpgme { };
 
-    grantlee = callPackage ../development/libraries/grantlee/5.x.nix { };
+    grantlee = callPackage ../development/libraries/grantlee/5 { };
 
     inherit (callPackage ../development/libraries/kirigami { })
       kirigami_1
       kirigami_2;
 
+    kdb = callPackage ../development/libraries/kdb { };
+
+    kdiagram = callPackage ../development/libraries/kdiagram { };
+
+    kproperty = callPackage ../development/libraries/kproperty { };
+
+    kreport = callPackage ../development/libraries/kreport { };
+
     kirigami = kirigami_1;
 
     libcommuni = callPackage ../development/libraries/libcommuni { };
@@ -10000,6 +11180,8 @@ with pkgs;
 
     qtstyleplugins = callPackage ../development/libraries/qtstyleplugins { };
 
+    qtstyleplugin-kvantum = libsForQt5.callPackage ../development/libraries/qtstyleplugin-kvantum { };
+
     quazip = callPackage ../development/libraries/quazip { };
 
     qwt = callPackage ../development/libraries/qwt/6.nix { };
@@ -10031,7 +11213,9 @@ with pkgs;
 
   qwt = callPackage ../development/libraries/qwt {};
 
-  qwt6_qt4 = callPackage ../development/libraries/qwt/6_qt4.nix { };
+  qwt6_qt4 = callPackage ../development/libraries/qwt/6_qt4.nix {
+    inherit (darwin.apple_sdk.frameworks) AGL;
+  };
 
   qxt = callPackage ../development/libraries/qxt {};
 
@@ -10041,6 +11225,8 @@ with pkgs;
 
   rabbitmq-java-client = callPackage ../development/libraries/rabbitmq-java-client {};
 
+  rapidjson = callPackage ../development/libraries/rapidjson {};
+
   raul = callPackage ../development/libraries/audio/raul { };
 
   readline = readline6;
@@ -10057,7 +11243,7 @@ with pkgs;
   readosm = callPackage ../development/libraries/readosm { };
 
   lambdabot = callPackage ../development/tools/haskell/lambdabot {
-    haskell-lib = haskell.lib;
+    haskellLib = haskell.lib;
   };
 
   lambda-mod-zsh-theme = callPackage ../shells/lambda-mod-zsh-theme/default.nix { };
@@ -10094,8 +11280,8 @@ with pkgs;
   resolv_wrapper = callPackage ../development/libraries/resolv_wrapper { };
 
   rhino = callPackage ../development/libraries/java/rhino {
-    javac = gcj;
-    jvm = gcj;
+    javac = jdk;
+    jvm = jre;
   };
 
   rlog = callPackage ../development/libraries/rlog { };
@@ -10121,7 +11307,7 @@ with pkgs;
   schroedinger = callPackage ../development/libraries/schroedinger { };
 
   SDL = callPackage ../development/libraries/SDL {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
     alsaSupport = stdenv.isLinux;
     x11Support = !stdenv.isCygwin;
     pulseaudioSupport = config.pulseaudio or stdenv.isLinux;
@@ -10145,17 +11331,22 @@ with pkgs;
   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
 
   SDL2 = callPackage ../development/libraries/SDL2 {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
     alsaSupport = stdenv.isLinux;
     x11Support = !stdenv.isCygwin;
+    waylandSupport = stdenv.isLinux;
     udevSupport = stdenv.isLinux;
     pulseaudioSupport = config.pulseaudio or stdenv.isLinux;
     inherit (darwin.apple_sdk.frameworks) AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL;
   };
 
-  SDL2_image = callPackage ../development/libraries/SDL2_image { };
+  SDL2_image = callPackage ../development/libraries/SDL2_image {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
-  SDL2_mixer = callPackage ../development/libraries/SDL2_mixer { };
+  SDL2_mixer = callPackage ../development/libraries/SDL2_mixer {
+    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit AudioToolbox;
+  };
 
   SDL2_net = callPackage ../development/libraries/SDL2_net { };
 
@@ -10175,7 +11366,6 @@ with pkgs;
 
   shhopt = callPackage ../development/libraries/shhopt { };
 
-  silgraphite = callPackage ../development/libraries/silgraphite {};
   graphite2 = callPackage ../development/libraries/silgraphite/graphite2.nix {};
 
   simavr = callPackage ../development/tools/simavr { };
@@ -10185,6 +11375,7 @@ with pkgs;
   simp_le = callPackage ../tools/admin/simp_le { };
 
   sfml = callPackage ../development/libraries/sfml { };
+  csfml = callPackage ../development/libraries/csfml { };
 
   shapelib = callPackage ../development/libraries/shapelib { };
 
@@ -10201,6 +11392,8 @@ with pkgs;
 
   smpeg = callPackage ../development/libraries/smpeg { };
 
+  smpeg2 = callPackage ../development/libraries/smpeg2 { };
+
   snack = callPackage ../development/libraries/snack {
         # optional
   };
@@ -10227,7 +11420,8 @@ with pkgs;
 
   speechd = callPackage ../development/libraries/speechd { };
 
-  speech_tools = callPackage ../development/libraries/speech-tools {};
+  speech-tools = callPackage ../development/libraries/speech-tools {};
+  speech_tools = speech-tools;
 
   speex = callPackage ../development/libraries/speex {
     fftw = fftwFloat;
@@ -10246,9 +11440,11 @@ with pkgs;
     inherit (pythonPackages) pyparsing;
   };
 
-  spice_gtk = callPackage ../development/libraries/spice-gtk { };
+  spice-gtk = callPackage ../development/libraries/spice-gtk { };
+
+  spice-protocol = callPackage ../development/libraries/spice-protocol { };
 
-  spice_protocol = callPackage ../development/libraries/spice-protocol { };
+  spice-up = callPackage ../applications/office/spice-up { };
 
   sratom = callPackage ../development/libraries/audio/sratom { };
 
@@ -10264,10 +11460,10 @@ with pkgs;
 
   sqlite3_analyzer = lowPrio (callPackage ../development/libraries/sqlite/sqlite3_analyzer.nix { });
 
-  sqlite-amalgamation = callPackage ../development/libraries/sqlite-amalgamation { };
-
   sqlite-interactive = appendToName "interactive" (sqlite.override { interactive = true; }).bin;
 
+  sqlite-jdbc = callPackage ../servers/sql/sqlite/jdbc { };
+
   sqlcipher = lowPrio (callPackage ../development/libraries/sqlcipher {
     readline = null;
     ncurses = null;
@@ -10285,6 +11481,8 @@ with pkgs;
 
   strigi = callPackage ../development/libraries/strigi { clucene_core = clucene_core_2; };
 
+  subdl = callPackage ../applications/video/subdl { };
+
   subtitleeditor = callPackage ../applications/video/subtitleeditor { };
 
   suil-qt4 = callPackage ../development/libraries/audio/suil {
@@ -10299,6 +11497,8 @@ with pkgs;
 
   suil = suil-qt4;
 
+  sundials = callPackage ../development/libraries/sundials { };
+
   sutils = callPackage ../tools/misc/sutils { };
 
   svrcore = callPackage ../development/libraries/svrcore { };
@@ -10342,11 +11542,13 @@ with pkgs;
 
   tecla = callPackage ../development/libraries/tecla { };
 
-  telepathy_glib = callPackage ../development/libraries/telepathy/glib { };
+  tectonic = callPackage ../tools/typesetting/tectonic { };
 
-  telepathy_farstream = callPackage ../development/libraries/telepathy/farstream {};
+  telepathy-glib = callPackage ../development/libraries/telepathy/glib { };
 
-  telepathy_qt = callPackage ../development/libraries/telepathy/qt { qtbase = qt4; };
+  telepathy-farstream = callPackage ../development/libraries/telepathy/farstream {};
+
+  telepathy-qt = callPackage ../development/libraries/telepathy/qt { qtbase = qt4; };
 
   tevent = callPackage ../development/libraries/tevent {
     python = python2;
@@ -10354,6 +11556,8 @@ with pkgs;
 
   tet = callPackage ../development/tools/misc/tet { };
 
+  theft = callPackage ../development/libraries/theft { };
+
   thrift = callPackage ../development/libraries/thrift {
     inherit (pythonPackages) twisted;
   };
@@ -10395,6 +11599,8 @@ with pkgs;
 
   tremor = callPackage ../development/libraries/tremor { };
 
+  twolame = callPackage ../development/libraries/twolame { };
+
   udns = callPackage ../development/libraries/udns { };
 
   uid_wrapper = callPackage ../development/libraries/uid_wrapper { };
@@ -10433,31 +11639,31 @@ with pkgs;
     gnutls = gnutls;
   });
 
+  # 3.14 is needed for R V8 module in ../development/r-modules/default.nix
   v8_3_14 = callPackage ../development/libraries/v8/3.14.nix {
     inherit (python2Packages) python gyp;
+    cctools = darwin.cctools;
+    stdenv = overrideCC stdenv gcc5;
   };
 
   v8_3_16_14 = callPackage ../development/libraries/v8/3.16.14.nix {
     inherit (python2Packages) python gyp;
     cctools = darwin.cctools;
+    stdenv = if stdenv.isDarwin then stdenv else overrideCC stdenv gcc5;
   };
 
-  v8_3_24_10 = callPackage ../development/libraries/v8/3.24.10.nix {
-    inherit (python2Packages) python gyp;
-  };
-
-  v8_3_30_33 = callPackage ../development/libraries/v8/3.30.33.nix {
-    inherit (python2Packages) python gyp;
-  };
-
-  v8_4_5 = callPackage ../development/libraries/v8/4.5.nix {
-    inherit (python2Packages) python gyp;
+  v8_6_x = callPackage ../development/libraries/v8/6_x.nix {
+    inherit (python2Packages) python;
   };
 
-  v8 = callPackage ../development/libraries/v8 {
+  v8 = callPackage ../development/libraries/v8 ({
     inherit (python2Packages) python gyp;
     cctools = darwin.cctools;
-  };
+    icu = icu58; # v8-5.4.232 fails against icu4c-59.1
+  } // lib.optionalAttrs stdenv.isLinux {
+    # doesn't build with gcc7
+    stdenv = overrideCC stdenv gcc6;
+  });
 
   v8_static = lowPrio (self.v8.override { static = true; });
 
@@ -10469,6 +11675,8 @@ with pkgs;
     libva = libva-full; # needs libva-{x11,glx}
   };
 
+  vale = callPackage ../tools/text/vale { };
+
   vamp = callPackage ../development/libraries/audio/vamp { };
 
   vc = callPackage ../development/libraries/vc { };
@@ -10487,6 +11695,8 @@ with pkgs;
 
   vmime = callPackage ../development/libraries/vmime { };
 
+  vrb = callPackage ../development/libraries/vrb { };
+
   vrpn = callPackage ../development/libraries/vrpn { };
 
   vsqlite = callPackage ../development/libraries/vsqlite { };
@@ -10505,6 +11715,7 @@ with pkgs;
 
   vxl = callPackage ../development/libraries/vxl {
     libpng = libpng12;
+    stdenv = overrideCC stdenv gcc6; # upstream code incompatible with gcc7
   };
 
   wavpack = callPackage ../development/libraries/wavpack {
@@ -10525,17 +11736,18 @@ with pkgs;
 
   wcslib = callPackage ../development/libraries/wcslib { };
 
-  webkitgtk = webkitgtk216x;
+  webkitgtk = webkitgtk220x;
 
   webkitgtk24x-gtk3 = callPackage ../development/libraries/webkitgtk/2.4.nix {
-    harfbuzz = harfbuzz-icu;
+    harfbuzz = harfbuzz-icu-58;
     gst-plugins-base = gst_all_1.gst-plugins-base;
     inherit (darwin) libobjc;
   };
 
-  webkitgtk216x = callPackage ../development/libraries/webkitgtk/2.16.nix {
+  webkitgtk220x = callPackage ../development/libraries/webkitgtk/2.20.nix {
     harfbuzz = harfbuzz-icu;
-    gst-plugins-base = gst_all_1.gst-plugins-base;
+    inherit (gst_all_1) gst-plugins-base gst-plugins-bad;
+    stdenv = overrideCC stdenv gcc6;
   };
 
   webkitgtk24x-gtk2 = webkitgtk24x-gtk3.override {
@@ -10551,9 +11763,10 @@ with pkgs;
 
   wiredtiger = callPackage ../development/libraries/wiredtiger { };
 
-  wt = callPackage ../development/libraries/wt { };
-
-  wvstreams = callPackage ../development/libraries/wvstreams { };
+  wt = wt4;
+  inherit (callPackages ../development/libraries/wt {})
+    wt3
+    wt4;
 
   wxGTK = wxGTK28;
 
@@ -10576,6 +11789,8 @@ with pkgs;
     withMesa = lib.elem system lib.platforms.mesaPlatforms;
   };
 
+  wxGTK31 = callPackage ../development/libraries/wxwidgets/3.1 {};
+
   wxmac = callPackage ../development/libraries/wxwidgets/3.0/mac.nix {
     inherit (darwin.apple_sdk.frameworks) AGL Cocoa Kernel;
     inherit (darwin.stubs) setfile rez derez;
@@ -10592,8 +11807,8 @@ with pkgs;
   x265 = callPackage ../development/libraries/x265 { };
 
   inherit (callPackages ../development/libraries/xapian { })
-    xapian_1_2_22 xapian_1_4_4;
-  xapian = xapian_1_4_4;
+    xapian_1_2_22 xapian_1_4;
+  xapian = xapian_1_4;
 
   xapian-omega = callPackage ../development/libraries/xapian/tools/omega {
     libmagic = file;
@@ -10622,7 +11837,9 @@ with pkgs;
 
   xalanc = callPackage ../development/libraries/xalanc {};
 
-  xgboost = callPackage ../development/libraries/xgboost { };
+  xgboost = callPackage ../development/libraries/xgboost {
+    cudaSupport = config.cudaSupport or false;
+  };
 
   xgeometry-select = callPackage ../tools/X11/xgeometry-select { };
 
@@ -10647,6 +11864,8 @@ with pkgs;
 
   xvidcore = callPackage ../development/libraries/xvidcore { };
 
+  xxHash = callPackage ../development/libraries/xxHash {};
+
   xylib = callPackage ../development/libraries/xylib { };
 
   yajl = callPackage ../development/libraries/yajl { };
@@ -10693,6 +11912,8 @@ with pkgs;
     czmq = czmq3;
   };
 
+  zig = callPackage ../development/compilers/zig {};
+
   zimlib = callPackage ../development/libraries/zimlib { };
 
   zita-convolver = callPackage ../development/libraries/audio/zita-convolver { };
@@ -10779,9 +12000,13 @@ with pkgs;
 
   mockobjects = callPackage ../development/libraries/java/mockobjects { };
 
-  saxon = callPackage ../development/libraries/java/saxon { };
+  saxonb = saxonb_8_8;
 
-  saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
+  inherit (callPackages ../development/libraries/java/saxon { })
+    saxon
+    saxonb_8_8
+    saxonb_9_1
+    saxon-he;
 
   smack = callPackage ../development/libraries/java/smack { };
 
@@ -10792,10 +12017,6 @@ with pkgs;
 
   ### DEVELOPMENT / LIBRARIES / JAVASCRIPT
 
-  jquery = callPackage ../development/libraries/javascript/jquery { };
-
-  jquery-ui = callPackage ../development/libraries/javascript/jquery-ui { };
-
   yuicompressor = callPackage ../development/tools/yuicompressor { };
 
   ### DEVELOPMENT / BOWER MODULES (JAVASCRIPT)
@@ -10804,24 +12025,18 @@ with pkgs;
 
   ### DEVELOPMENT / GO MODULES
 
-  buildGo16Package = callPackage ../development/go-modules/generic {
-    go = go_1_6;
-  };
-
-  buildGo17Package = callPackage ../development/go-modules/generic {
-    go = go_1_7;
-  };
-
-  buildGo18Package = callPackage ../development/go-modules/generic {
-    go = go_1_8;
+  buildGo19Package = callPackage ../development/go-modules/generic {
+    go = go_1_9;
   };
 
-  buildGoPackage = buildGo18Package;
+  buildGoPackage = buildGo19Package;
 
   go2nix = callPackage ../development/tools/go2nix { };
 
   leaps = callPackage ../development/tools/leaps { };
 
+  ws = callPackage ../development/tools/ws { };
+
   ### DEVELOPMENT / JAVA MODULES
 
   javaPackages = recurseIntoAttrs (callPackage ./java-packages.nix { });
@@ -10883,22 +12098,6 @@ with pkgs;
     sqitchModule = perlPackages.AppSqitch;
   };
 
-  ### DEVELOPMENT / PYTHON MODULES
-
-  # Python package sets.
-
-  python27Packages = lib.hiPrioSet (recurseIntoAttrs python27.pkgs);
-
-  python33Packages = python33.pkgs;
-
-  python34Packages = python34.pkgs;
-
-  python35Packages = python35.pkgs;
-
-  python36Packages = recurseIntoAttrs python36.pkgs;
-
-  pypyPackages = pypy.pkgs;
-
   ### DEVELOPMENT / R MODULES
 
   R = callPackage ../applications/science/math/R {
@@ -10936,7 +12135,7 @@ with pkgs;
 
   ### SERVERS
 
-  "389-ds-base" = callPackage ../servers/ldap/389 {
+  _389-ds-base = callPackage ../servers/ldap/389 {
     kerberos = libkrb5;
   };
 
@@ -10970,6 +12169,8 @@ with pkgs;
   apacheHttpdPackages = apacheHttpdPackagesFor pkgs.apacheHttpd pkgs.apacheHttpdPackages;
   apacheHttpdPackages_2_4 = apacheHttpdPackagesFor pkgs.apacheHttpd_2_4 pkgs.apacheHttpdPackages_2_4;
 
+  appdaemon = callPackage ../servers/home-assistant/appdaemon.nix { };
+
   archiveopteryx = callPackage ../servers/mail/archiveopteryx/default.nix { };
 
   atlassian-confluence = callPackage ../servers/atlassian/confluence.nix { };
@@ -10981,7 +12182,8 @@ with pkgs;
   cassandra_2_1 = callPackage ../servers/nosql/cassandra/2.1.nix { };
   cassandra_2_2 = callPackage ../servers/nosql/cassandra/2.2.nix { };
   cassandra_3_0 = callPackage ../servers/nosql/cassandra/3.0.nix { };
-  cassandra = cassandra_3_0;
+  cassandra_3_11 = callPackage ../servers/nosql/cassandra/3.11.nix { };
+  cassandra = cassandra_3_11;
 
   apache-jena = callPackage ../servers/nosql/apache-jena/binary.nix {
     java = jdk;
@@ -11007,15 +12209,17 @@ with pkgs;
   bind = callPackage ../servers/dns/bind { };
   dnsutils = bind.dnsutils;
 
-  bird = callPackage ../servers/bird { };
-  bird6 = bird.override { enableIPv6 = true; };
+  inherit (callPackages ../servers/bird { })
+    bird bird6 bird2;
 
   bosun = callPackage ../servers/monitoring/bosun { };
   scollector = bosun;
 
   cayley = callPackage ../servers/cayley { };
 
-  charybdis = callPackage ../servers/irc/charybdis {};
+  charybdis = callPackage ../servers/irc/charybdis { };
+
+  clamsmtp = callPackage ../servers/mail/clamsmtp { };
 
   clickhouse = callPackage ../servers/clickhouse { };
 
@@ -11023,7 +12227,7 @@ with pkgs;
     spidermonkey = spidermonkey_1_8_5;
     python = python27;
     sphinx = python27Packages.sphinx;
-    erlang = erlangR17;
+    erlang = erlangR19;
   };
 
   couchdb2 = callPackage ../servers/http/couchdb/2.0.0.nix {
@@ -11034,6 +12238,8 @@ with pkgs;
 
   dex-oidc = callPackage ../servers/dex { };
 
+  dgraph = callPackage ../servers/dgraph { };
+
   dico = callPackage ../servers/dico { };
 
   dict = callPackage ../servers/dict {
@@ -11050,11 +12256,8 @@ with pkgs;
     inherit (perlPackages) Error MailDKIM MIMEtools NetServer;
   };
 
-  dnschain = callPackage ../servers/dnschain { };
-
   dovecot = callPackage ../servers/mail/dovecot { };
   dovecot_pigeonhole = callPackage ../servers/mail/dovecot/plugins/pigeonhole { };
-  dovecot_antispam = callPackage ../servers/mail/dovecot/plugins/antispam { };
 
   dspam = callPackage ../servers/mail/dspam {
     inherit (perlPackages) NetSMTP;
@@ -11066,15 +12269,21 @@ with pkgs;
 
   exhibitor = callPackage ../servers/exhibitor { };
 
+  hyp = callPackage ../servers/http/hyp/default.nix { };
+
   prosody = callPackage ../servers/xmpp/prosody {
-    lua5 = lua5_1;
-    inherit (lua51Packages) luasocket luasec luaexpat luafilesystem luabitop luaevent luazlib;
+    # _compat can probably be removed on next minor version after 0.10.0
+    lua5 = lua5_2_compat;
+    inherit (lua52Packages) luasocket luasec luaexpat luafilesystem luabitop luaevent luadbi;
   };
 
+  biboumi = callPackage ../servers/xmpp/biboumi { };
+
   elasticmq = callPackage ../servers/elasticmq { };
 
   eventstore = callPackage ../servers/nosql/eventstore {
-    v8 = v8_3_24_10;
+    mono = mono46;
+    v8 = v8_6_x;
   };
 
   etcdctl = etcd;
@@ -11089,8 +12298,8 @@ with pkgs;
 
   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
 
-  firebird = callPackage ../servers/firebird { icu = null; };
-  firebirdSuper = callPackage ../servers/firebird { superServer = true; };
+  firebird = callPackage ../servers/firebird { icu = null; stdenv = overrideCC stdenv gcc5; };
+  firebirdSuper = callPackage ../servers/firebird { icu = icu58; superServer = true; stdenv = overrideCC stdenv gcc5; };
 
   fleet = callPackage ../servers/fleet { };
 
@@ -11106,6 +12315,8 @@ with pkgs;
     openssl = openssl_1_0_2;
   };
 
+  fusionInventory = callPackage ../servers/monitoring/fusion-inventory { };
+
   gatling = callPackage ../servers/http/gatling { };
 
   glabels = callPackage ../applications/graphics/glabels { };
@@ -11114,7 +12325,7 @@ with pkgs;
 
   grafana = callPackage ../servers/monitoring/grafana { };
 
-  groovebasin = callPackage ../applications/audio/groovebasin { nodejs = nodejs-4_x; };
+  h2o = callPackage ../servers/http/h2o { };
 
   haka = callPackage ../tools/security/haka { };
 
@@ -11124,6 +12335,8 @@ with pkgs;
 
   hiawatha = callPackage ../servers/http/hiawatha {};
 
+  home-assistant = callPackage ../servers/home-assistant { };
+
   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
 
   jboss = callPackage ../servers/http/jboss { };
@@ -11135,7 +12348,9 @@ with pkgs;
   knot-dns = callPackage ../servers/dns/knot-dns { };
   knot-resolver = callPackage ../servers/dns/knot-resolver {
     # TODO: vimNox after it gets fixed on Darwin or something lighter
-    hexdump = if stdenv.isLinux then utillinux.bin else vim/*xxd*/;
+    hexdump = if stdenv.isLinux then utillinux.bin
+              else if stdenv.isDarwin then darwin.shell_cmds
+              else vim/*xxd*/;
   };
 
   rdkafka = callPackage ../development/libraries/rdkafka { };
@@ -11144,10 +12359,13 @@ with pkgs;
 
   lighttpd = callPackage ../servers/http/lighttpd { };
 
+  lwan = callPackage ../servers/http/lwan { };
+
   mailman = callPackage ../servers/mail/mailman { };
 
   mattermost = callPackage ../servers/mattermost { };
   matterircd = callPackage ../servers/mattermost/matterircd.nix { };
+  matterbridge = callPackage ../servers/matterbridge { };
 
   mediatomb = callPackage ../servers/mediatomb { };
 
@@ -11155,8 +12373,6 @@ with pkgs;
 
   meteor = callPackage ../servers/meteor/default.nix { };
 
-  mfi = callPackage ../servers/mfi { };
-
   minio = callPackage ../servers/minio { };
 
   # Backwards compatibility.
@@ -11212,6 +12428,8 @@ with pkgs;
     modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders nginxModules.shibboleth ];
   };
 
+  libmodsecurity = callPackage ../tools/security/libmodsecurity { };
+
   ngircd = callPackage ../servers/irc/ngircd { };
 
   nix-binary-cache = callPackage ../servers/http/nix-binary-cache {};
@@ -11224,7 +12442,7 @@ with pkgs;
 
   oauth2_proxy = callPackage ../servers/oauth2_proxy { };
 
-  openpts = callPackage ../servers/openpts { };
+  openafs = callPackage ../servers/openafs { tsmbac = null; ncurses = null; };
 
   openresty = callPackage ../servers/http/openresty { };
 
@@ -11258,10 +12476,7 @@ with pkgs;
 
   pshs = callPackage ../servers/http/pshs { };
 
-  libpulseaudio = callPackage ../servers/pulseaudio {
-    libOnly = true;
-    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
-  };
+  # PulseAudio daemons
 
   # Name is changed to prevent use in packages;
   # please use libpulseaudio instead.
@@ -11281,6 +12496,25 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
   };
 
+  # libpulse implementations
+
+  libpulseaudio-vanilla = callPackage ../servers/pulseaudio {
+    libOnly = true;
+    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
+  };
+
+  apulse = callPackage ../misc/apulse { };
+
+  libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix {
+    libpulseaudio = libpulseaudio-vanilla; # headers only
+  };
+
+  libcardiacarrest = callPackage ../misc/libcardiacarrest {
+    libpulseaudio = libpulseaudio-vanilla; # meta only
+  };
+
+  libpulseaudio = libpulseaudio-vanilla;
+
   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
 
   pies = callPackage ../servers/pies { };
@@ -11298,8 +12532,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  mongodb248 = callPackage ../servers/nosql/mongodb/2.4.8.nix { };
-
   percona-server56 = callPackage ../servers/sql/percona/5.6.x.nix { };
   percona-server = percona-server56;
 
@@ -11331,7 +12563,6 @@ with pkgs;
   };
 
   mysql = mariadb;
-  libmysql = mysql.client; # `libmysql` is a slight misnomer ATM
 
   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
 
@@ -11339,10 +12570,19 @@ with pkgs;
 
   munin = callPackage ../servers/monitoring/munin { };
 
-  nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official-2.x.nix { };
+  monitoring-plugins = callPackage ../servers/monitoring/plugins { };
+  nagiosPluginsOfficial = monitoring-plugins;
+
+  inherit (callPackage ../servers/monitoring/plugins/labs_consol_de.nix { inherit (perlPackages) NetSNMP; })
+    check-nwc-health
+    check-ups-health;
+
+  checkSSLCert = callPackage ../servers/monitoring/nagios/plugins/check_ssl_cert.nix { };
 
   neo4j = callPackage ../servers/nosql/neo4j { };
 
+  check-esxi-hardware = callPackage ../servers/monitoring/plugins/esxi.nix {};
+
   net_snmp = callPackage ../servers/monitoring/net-snmp {
     # https://sourceforge.net/p/net-snmp/bugs/2712/
     # remove after net-snmp > 5.7.3
@@ -11361,13 +12601,15 @@ with pkgs;
   oracleXE = callPackage ../servers/sql/oracle-xe { };
 
   softether_4_18 = callPackage ../servers/softether/4.18.nix { };
-  softether = softether_4_18;
+  softether_4_20 = callPackage ../servers/softether/4.20.nix { };
+  softether_4_25 = callPackage ../servers/softether/4.25.nix { };
+  softether = softether_4_25;
 
   qboot = callPackage ../applications/virtualization/qboot { stdenv = stdenv_32bit; };
 
-  OVMF = callPackage ../applications/virtualization/OVMF { seabios=false; openssl=null; };
-  OVMF-CSM = callPackage ../applications/virtualization/OVMF { openssl=null; };
-  #WIP: OVMF-secureBoot = callPackage ../applications/virtualization/OVMF { seabios=false; secureBoot=true; };
+  OVMF = callPackage ../applications/virtualization/OVMF { seabios = null; openssl = null; };
+  OVMF-CSM = callPackage ../applications/virtualization/OVMF { openssl = null; };
+  #WIP: OVMF-secureBoot = callPackage ../applications/virtualization/OVMF { seabios = null; secureBoot = true; };
 
   seabios = callPackage ../applications/virtualization/seabios { };
 
@@ -11375,7 +12617,8 @@ with pkgs;
 
   vmfs-tools = callPackage ../tools/filesystems/vmfs-tools { };
 
-  pgpool92 = pgpool.override { postgresql = postgresql92; };
+  pgbouncer = callPackage ../servers/sql/pgbouncer/default.nix { };
+
   pgpool93 = pgpool.override { postgresql = postgresql93; };
   pgpool94 = pgpool.override { postgresql = postgresql94; };
 
@@ -11384,48 +12627,57 @@ with pkgs;
     libmemcached = null; # Detection is broken upstream
   };
 
-  postgresql = postgresql95;
+  postgresql = postgresql96;
 
   inherit (callPackages ../servers/sql/postgresql { })
-    postgresql91
-    postgresql92
     postgresql93
     postgresql94
     postgresql95
-    postgresql96;
+    postgresql96
+    postgresql100;
 
   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
 
+  inherit (callPackage ../servers/monitoring/prometheus {})
+      prometheus_1
+      prometheus_2
+      ;
+
   prom2json = callPackage ../servers/monitoring/prometheus/prom2json.nix { };
-  prometheus = callPackage ../servers/monitoring/prometheus { };
+  prometheus = prometheus_1;
   prometheus-alertmanager = callPackage ../servers/monitoring/prometheus/alertmanager.nix { };
   prometheus-bind-exporter = callPackage ../servers/monitoring/prometheus/bind-exporter.nix { };
   prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
   prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
   prometheus-consul-exporter = callPackage ../servers/monitoring/prometheus/consul-exporter.nix { };
+  prometheus-dovecot-exporter = callPackage ../servers/monitoring/prometheus/dovecot-exporter.nix { };
   prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { };
   prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { };
   prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { };
   prometheus-mesos-exporter = callPackage ../servers/monitoring/prometheus/mesos-exporter.nix { };
+  prometheus-minio-exporter = callPackage ../servers/monitoring/prometheus/minio-exporter { };
   prometheus-mysqld-exporter = callPackage ../servers/monitoring/prometheus/mysqld-exporter.nix { };
   prometheus-nginx-exporter = callPackage ../servers/monitoring/prometheus/nginx-exporter.nix { };
   prometheus-node-exporter = callPackage ../servers/monitoring/prometheus/node-exporter.nix { };
+  prometheus-openvpn-exporter = callPackage ../servers/monitoring/prometheus/openvpn-exporter.nix { };
+  prometheus-postfix-exporter = callPackage ../servers/monitoring/prometheus/postfix-exporter.nix { };
   prometheus-pushgateway = callPackage ../servers/monitoring/prometheus/pushgateway.nix { };
+  prometheus-rabbitmq-exporter = callPackage ../servers/monitoring/prometheus/rabbitmq-exporter.nix { };
   prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
-  prometheus-statsd-bridge = callPackage ../servers/monitoring/prometheus/statsd-bridge.nix { };
+  prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-bridge.nix { };
   prometheus-unifi-exporter = callPackage ../servers/monitoring/prometheus/unifi-exporter { };
   prometheus-varnish-exporter = callPackage ../servers/monitoring/prometheus/varnish-exporter.nix { };
 
   psqlodbc = callPackage ../servers/sql/postgresql/psqlodbc { };
 
-  pumpio = callPackage ../servers/web-apps/pump.io { };
-
   pure-ftpd = callPackage ../servers/ftp/pure-ftpd { };
 
   pyIRCt = callPackage ../servers/xmpp/pyIRCt {};
 
   pyMAILt = callPackage ../servers/xmpp/pyMAILt {};
 
+  pypolicyd-spf = python3.pkgs.callPackage ../servers/mail/pypolicyd-spf { };
+
   qpid-cpp = callPackage ../servers/amqp/qpid-cpp {
     boost = boost155;
   };
@@ -11436,7 +12688,10 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AppKit Carbon Cocoa;
   };
 
-  radicale = callPackage ../servers/radicale { };
+  radicale1 = callPackage ../servers/radicale/1.x.nix { };
+  radicale2 = callPackage ../servers/radicale/default.nix { };
+
+  radicale = radicale2;
 
   rake = callPackage ../development/tools/build-managers/rake { };
 
@@ -11446,7 +12701,7 @@ with pkgs;
 
   restic = callPackage ../tools/backup/restic { };
 
-  restund = callPackage ../servers/restund {};
+  restya-board = callPackage ../servers/web-apps/restya-board { };
 
   rethinkdb = callPackage ../servers/nosql/rethinkdb {
     libtool = darwin.cctools;
@@ -11456,12 +12711,12 @@ with pkgs;
     boost = boost159;
   };
 
-  #ripple-rest = callPackage ../servers/rippled/ripple-rest.nix { };
-
   s6 = callPackage ../tools/system/s6 { };
 
   s6-rc = callPackage ../tools/system/s6-rc { };
 
+  supervise = callPackage ../tools/system/supervise { };
+
   spamassassin = callPackage ../servers/mail/spamassassin {
     inherit (perlPackages) HTMLParser NetDNS NetAddrIP DBFile
       HTTPDate MailDKIM LWP IOSocketSSL;
@@ -11475,9 +12730,10 @@ with pkgs;
 
   samba4 = callPackage ../servers/samba/4.x.nix {
     python = python2;
-    # enableLDAP
   };
 
+  sambaMaster = callPackage ../servers/samba/master.nix { };
+
   samba = samba4;
 
   smbclient = samba;
@@ -11506,6 +12762,8 @@ with pkgs;
 
   sambaFull = samba4Full;
 
+  shairplay = callPackage ../servers/shairplay { };
+
   shairport-sync = callPackage ../servers/shairport-sync { };
 
   serfdom = callPackage ../servers/serf { };
@@ -11514,9 +12772,7 @@ with pkgs;
 
   ruby-zoom = callPackage ../tools/text/ruby-zoom { };
 
-  sensu = callPackage ../servers/monitoring/sensu {
-    ruby = ruby_2_1;
-  };
+  sensu = callPackage ../servers/monitoring/sensu { };
 
   uchiwa = callPackage ../servers/monitoring/uchiwa { };
 
@@ -11550,13 +12806,15 @@ with pkgs;
   slurm-full = appendToName "full" (callPackage ../servers/computing/slurm { });
   slurm-llnl-full = slurm-full; # renamed July 2017
 
+  slurm-spank-x11 = callPackage ../servers/computing/slurm-spank-x11 { };
+
   systemd-journal2gelf = callPackage ../tools/system/systemd-journal2gelf { };
 
   inherit (callPackages ../servers/http/tomcat { })
     tomcat7
     tomcat8
     tomcat85
-    tomcatUnstable;
+    tomcat9;
 
   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
 
@@ -11564,13 +12822,15 @@ with pkgs;
 
   tt-rss = callPackage ../servers/tt-rss { };
 
+  searx = callPackage ../servers/web-apps/searx { };
+
   selfoss = callPackage ../servers/web-apps/selfoss { };
 
   shaarli = callPackage ../servers/web-apps/shaarli { };
 
   shaarli-material = callPackage ../servers/web-apps/shaarli/material-theme.nix { };
 
-  piwik = callPackage ../servers/web-apps/piwik { };
+  matomo = callPackage ../servers/web-apps/matomo { };
 
   axis2 = callPackage ../servers/http/tomcat/axis2 { };
 
@@ -11604,14 +12864,15 @@ with pkgs;
   };
 
   xorg = recurseIntoAttrs (lib.callPackagesWith pkgs ../servers/x11/xorg/default.nix {
-    inherit clangStdenv fetchurl fetchgit fetchpatch stdenv pkgconfig intltool freetype fontconfig
-      libxslt expat libpng zlib perl mesa_drivers spice_protocol libunwind
+    inherit clangStdenv fetchurl fetchgit fetchpatch stdenv intltool freetype fontconfig
+      libxslt expat libpng zlib perl mesa_drivers spice-protocol libunwind
       dbus libuuid openssl gperf m4 libevdev tradcpp libinput mcpp makeWrapper autoreconfHook
-      autoconf automake libtool xmlto asciidoc flex bison mtdev pixman
+      autoconf automake libtool mtdev pixman
       cairo epoxy;
+    inherit (buildPackages) pkgconfig xmlto asciidoc flex bison;
     inherit (darwin) apple_sdk cf-private libobjc;
     bootstrap_cmds = if stdenv.isDarwin then darwin.bootstrap_cmds else null;
-    mesa = mesa_noglu;
+    mesa = libGL;
     python = python2; # Incompatible with Python 3x
     udev = if stdenv.isLinux then udev else null;
     libdrm = if stdenv.isLinux then libdrm else null;
@@ -11663,12 +12924,20 @@ with pkgs;
   alsaOss = callPackage ../os-specific/linux/alsa-oss { };
   alsaTools = callPackage ../os-specific/linux/alsa-tools { };
 
+  inherit (callPackage ../misc/arm-trusted-firmware {})
+    buildArmTrustedFirmware
+    armTrustedFirmwareAllwinner
+    armTrustedFirmwareQemu
+    armTrustedFirmwareRK3328
+    ;
+
   microcodeAmd = callPackage ../os-specific/linux/microcode/amd.nix { };
 
   microcodeIntel = callPackage ../os-specific/linux/microcode/intel.nix { };
 
-  inherit (callPackages ../os-specific/linux/apparmor { pythonPackages = python27Packages; swig = swig2; })
-    libapparmor apparmor-pam apparmor-parser apparmor-profiles apparmor-utils;
+  inherit (callPackages ../os-specific/linux/apparmor { python = python3; })
+    libapparmor apparmor-utils apparmor-bin-utils apparmor-parser apparmor-pam
+    apparmor-profiles apparmor-kernel-patches;
 
   atop = callPackage ../os-specific/linux/atop { };
 
@@ -11689,9 +12958,7 @@ with pkgs;
 
   blktrace = callPackage ../os-specific/linux/blktrace { };
 
-  bluez5 = callPackage ../os-specific/linux/bluez/bluez5.nix { };
-
-  bluez4 = callPackage ../os-specific/linux/bluez { };
+  bluez5 = callPackage ../os-specific/linux/bluez { };
 
   # Needed for LibreOffice
   bluez5_28 = lowPrio (callPackage ../os-specific/linux/bluez/bluez5_28.nix { });
@@ -11703,6 +12970,7 @@ with pkgs;
   bridge-utils = callPackage ../os-specific/linux/bridge-utils { };
 
   busybox = callPackage ../os-specific/linux/busybox { };
+  busybox-sandbox-shell = callPackage ../os-specific/linux/busybox/sandbox-shell.nix { };
 
   cachefilesd = callPackage ../os-specific/linux/cachefilesd { };
 
@@ -11718,6 +12986,8 @@ with pkgs;
 
   conky = callPackage ../os-specific/linux/conky ({
     lua = lua5_1; # conky can use 5.2, but toluapp can not
+    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+    pulseSupport = config.pulseaudio or false;
   } // config.conky or {});
 
   conntrack_tools = callPackage ../os-specific/linux/conntrack-tools { };
@@ -11734,53 +13004,12 @@ with pkgs;
 
   crda = callPackage ../os-specific/linux/crda { };
 
-  darwin = let
-    apple-source-releases = callPackage ../os-specific/darwin/apple-source-releases { };
-  in apple-source-releases // rec {
-    cctools = callPackage ../os-specific/darwin/cctools/port.nix {
-      inherit libobjc;
-      stdenv = if stdenv.isDarwin then stdenv else libcxxStdenv;
-      inherit maloader;
-      xctoolchain = xcode.toolchain;
-    };
-
-    cf-private = callPackage ../os-specific/darwin/cf-private {
-      inherit (apple-source-releases) CF;
-      inherit osx_private_sdk;
-    };
-
-    maloader = callPackage ../os-specific/darwin/maloader {
-      inherit opencflite;
-    };
-
-    opencflite = callPackage ../os-specific/darwin/opencflite {};
-
-    swift-corefoundation = callPackage ../os-specific/darwin/swift-corefoundation {};
-
-    ios-cross = callPackage ../os-specific/darwin/ios-cross {
-      inherit (darwin) binutils;
-    };
-
-    xcode = callPackage ../os-specific/darwin/xcode {};
-
-    osx_private_sdk = callPackage ../os-specific/darwin/osx-private-sdk {};
-
-    security_tool = (newScope (darwin.apple_sdk.frameworks // darwin)) ../os-specific/darwin/security-tool {
-      Security-framework = darwin.apple_sdk.frameworks.Security;
-    };
-
-    binutils = callPackage ../os-specific/darwin/binutils { inherit cctools; };
-
-    apple_sdk = callPackage ../os-specific/darwin/apple-sdk {};
-
-    libobjc = apple-source-releases.objc4;
-
-    stubs = callPackages ../os-specific/darwin/stubs {};
-
-    usr-include = callPackage ../os-specific/darwin/usr-include {};
-
-    DarwinTools = callPackage ../os-specific/darwin/DarwinTools {};
-  };
+  # Darwin package set
+  #
+  # Even though this is a set of packages not single package, use `callPackage`
+  # not `callPackages` so the per-package callPackages don't have their
+  # `.override` clobbered. C.F. `llvmPackages` which does the same.
+  darwin = callPackage ./darwin-packages.nix { };
 
   devicemapper = lvm2;
 
@@ -11804,10 +13033,16 @@ with pkgs;
 
   dstat = callPackage ../os-specific/linux/dstat { };
 
-  fwupd = callPackage ../os-specific/linux/firmware/fwupd { inherit (gnome2) gtk_doc; };
+  # unstable until the first 1.x release
+  fscrypt-experimental = callPackage ../os-specific/linux/fscrypt { };
+  fscryptctl-experimental = callPackage ../os-specific/linux/fscryptctl { };
+
+  fwupd = callPackage ../os-specific/linux/firmware/fwupd { };
 
   fwupdate = callPackage ../os-specific/linux/firmware/fwupdate { };
 
+  fwts = callPackage ../os-specific/linux/fwts { };
+
   libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
 
   libuuid =
@@ -11839,10 +13074,6 @@ with pkgs;
 
   facetimehd-firmware = callPackage ../os-specific/linux/firmware/facetimehd-firmware { };
 
-  fanctl = callPackage ../os-specific/linux/fanctl {
-    iproute = iproute.override { enableFan = true; };
-  };
-
   fatrace = callPackage ../os-specific/linux/fatrace { };
 
   ffadoFull = callPackage ../os-specific/linux/ffado {
@@ -11862,9 +13093,12 @@ with pkgs;
     inherit (linuxPackages) kernel;
   };
 
-  fuse = callPackage ../os-specific/linux/fuse {
+  fusePackages = callPackage ../os-specific/linux/fuse {
     utillinux = utillinuxMinimal;
   };
+  fuse = lowPrio fusePackages.fuse_2;
+  fuse3 = fusePackages.fuse_3;
+  fuse-common = hiPrio fusePackages.fuse_3.common;
 
   fusionio-util = callPackage ../os-specific/linux/fusionio/util.nix { };
 
@@ -11872,6 +13106,8 @@ with pkgs;
 
   gfxtablet = callPackage ../os-specific/linux/gfxtablet {};
 
+  gmailieer = callPackage ../applications/networking/gmailieer {};
+
   gpm = callPackage ../servers/gpm {
     ncurses = null;  # Keep curses disabled for lack of value
   };
@@ -11903,6 +13139,8 @@ with pkgs;
 
   i7z = callPackage ../os-specific/linux/i7z { };
 
+  pcm = callPackage ../os-specific/linux/pcm { };
+
   ima-evm-utils = callPackage ../os-specific/linux/ima-evm-utils { };
 
   intel2200BGFirmware = callPackage ../os-specific/linux/firmware/intel2200BGFirmware { };
@@ -11916,13 +13154,10 @@ with pkgs;
   iproute = callPackage ../os-specific/linux/iproute { };
 
   iputils = callPackage ../os-specific/linux/iputils {
-    sp = spCompat;
-    inherit (perlPackages) SGMLSpm;
+    inherit (buildPackages.buildPackages.perlPackages) SGMLSpm;
   };
 
-  iptables = callPackage ../os-specific/linux/iptables {
-    flex = flex_2_5_35;
-  };
+  iptables = callPackage ../os-specific/linux/iptables { };
 
   iptstate = callPackage ../os-specific/linux/iptstate { } ;
 
@@ -11953,6 +13188,8 @@ with pkgs;
 
   kmscube = callPackage ../os-specific/linux/kmscube { };
 
+  kmsxx = callPackage ../development/libraries/kmsxx { };
+
   latencytop = callPackage ../os-specific/linux/latencytop { };
 
   ldm = callPackage ../os-specific/linux/ldm { };
@@ -11969,6 +13206,8 @@ with pkgs;
 
   linuxConsoleTools = callPackage ../os-specific/linux/consoletools { };
 
+  openelec-dvb-firmware = callPackage ../os-specific/linux/firmware/openelec-dvb-firmware { };
+
   openiscsi = callPackage ../os-specific/linux/open-iscsi { };
 
   openisns = callPackage ../os-specific/linux/open-isns { };
@@ -11983,30 +13222,8 @@ with pkgs;
 
   lkl = callPackage ../applications/virtualization/lkl { };
 
-  linuxHeaders_2_4 = callPackage ../os-specific/linux/kernel-headers/2.4.nix {
-    cross = if targetPlatform != hostPlatform then targetPlatform else null;
-  };
-
-  linuxHeaders_2_6 = callPackage ../os-specific/linux/kernel-headers/4.4.nix {
-    cross = if targetPlatform != hostPlatform then targetPlatform else null;
-  };
-
-  linuxHeaders_4_4 = callPackage ../os-specific/linux/kernel-headers/4.4.nix {
-    cross = if targetPlatform != hostPlatform then targetPlatform else null;
-  };
-
-  # We can choose:
-  linuxHeaders =
-    if targetPlatform != hostPlatform
-    then
-      { # switch
-        "2.4" = linuxHeaders_2_4;
-        "2.6" = linuxHeaders_2_6;
-        "4.4" = linuxHeaders_4_4;
-      }.${targetPlatform.platform.kernelMajor}
-        or (throw "Unknown linux kernel version")
-    else
-      linuxHeaders_4_4;
+  inherit (callPackages ../os-specific/linux/kernel-headers { })
+    linuxHeaders;
 
   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
 
@@ -12014,24 +13231,29 @@ with pkgs;
 
   klibcShrunk = lowPrio (callPackage ../os-specific/linux/klibc/shrunk.nix { });
 
-  linux_hardened_copperhead = callPackage ../os-specific/linux/kernel/linux-hardened-copperhead.nix {
+  linux_beagleboard = callPackage ../os-specific/linux/kernel/linux-beagleboard.nix {
+    kernelPatches =
+      [ kernelPatches.bridge_stp_helper
+        kernelPatches.cpu-cgroup-v2."4.11"
+        kernelPatches.modinst_arg_list_too_long
+      ];
+  };
+
+  linux_copperhead = callPackage ../os-specific/linux/kernel/linux-copperhead-hardened.nix {
     kernelPatches = with kernelPatches; [
       kernelPatches.bridge_stp_helper
-      kernelPatches.p9_fixes
       kernelPatches.modinst_arg_list_too_long
-      kernelPatches.cpu-cgroup-v2."4.11"
+      kernelPatches.tag_hardened
     ];
-    extraConfig = import ../os-specific/linux/kernel/hardened-config.nix {
-      inherit stdenv;
-      inherit (linux) version;
-    };
   };
 
+  # linux mptcp is based on the 4.4 kernel
   linux_mptcp = callPackage ../os-specific/linux/kernel/linux-mptcp.nix {
     kernelPatches =
       [ kernelPatches.bridge_stp_helper
         kernelPatches.p9_fixes
-        kernelPatches.DCCP_double_free_vulnerability_CVE-2017-6074
+        kernelPatches.cpu-cgroup-v2."4.9"
+        kernelPatches.modinst_arg_list_too_long
       ]
       ++ lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
@@ -12046,13 +13268,11 @@ with pkgs;
     ];
   };
 
-  linux_3_10 = callPackage ../os-specific/linux/kernel/linux-3.10.nix {
-    kernelPatches = with kernelPatches;
-      [ bridge_stp_helper
-        p9_fixes
-        lguest_entry-linkage
-        packet_fix_race_condition_CVE_2016_8655
-        DCCP_double_free_vulnerability_CVE-2017-6074
+  linux_4_4 = callPackage ../os-specific/linux/kernel/linux-4.4.nix {
+    kernelPatches =
+      [ kernelPatches.bridge_stp_helper
+        kernelPatches.cpu-cgroup-v2."4.4"
+        kernelPatches.modinst_arg_list_too_long
       ]
       ++ lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
@@ -12061,11 +13281,11 @@ with pkgs;
       ];
   };
 
-  linux_4_4 = callPackage ../os-specific/linux/kernel/linux-4.4.nix {
+  linux_4_9 = callPackage ../os-specific/linux/kernel/linux-4.9.nix {
     kernelPatches =
       [ kernelPatches.bridge_stp_helper
-        kernelPatches.p9_fixes
-        kernelPatches.cpu-cgroup-v2."4.4"
+        kernelPatches.cpu-cgroup-v2."4.9"
+        kernelPatches.modinst_arg_list_too_long
       ]
       ++ lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
@@ -12074,11 +13294,12 @@ with pkgs;
       ];
   };
 
-  linux_4_9 = callPackage ../os-specific/linux/kernel/linux-4.9.nix {
+  linux_4_14 = callPackage ../os-specific/linux/kernel/linux-4.14.nix {
     kernelPatches =
       [ kernelPatches.bridge_stp_helper
-        kernelPatches.p9_fixes
-        kernelPatches.cpu-cgroup-v2."4.9"
+        # See pkgs/os-specific/linux/kernel/cpu-cgroup-v2-patches/README.md
+        # when adding a new linux version
+        kernelPatches.cpu-cgroup-v2."4.11"
         kernelPatches.modinst_arg_list_too_long
       ]
       ++ lib.optionals ((platform.kernelArch or null) == "mips")
@@ -12088,13 +13309,12 @@ with pkgs;
       ];
   };
 
-  linux_4_12 = callPackage ../os-specific/linux/kernel/linux-4.12.nix {
+  linux_4_15 = callPackage ../os-specific/linux/kernel/linux-4.15.nix {
     kernelPatches =
       [ kernelPatches.bridge_stp_helper
-        kernelPatches.p9_fixes
         # See pkgs/os-specific/linux/kernel/cpu-cgroup-v2-patches/README.md
         # when adding a new linux version
-        kernelPatches.cpu-cgroup-v2."4.11"
+        # kernelPatches.cpu-cgroup-v2."4.11"
         kernelPatches.modinst_arg_list_too_long
       ]
       ++ lib.optionals ((platform.kernelArch or null) == "mips")
@@ -12107,7 +13327,6 @@ with pkgs;
   linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
-      kernelPatches.p9_fixes
       kernelPatches.modinst_arg_list_too_long
     ] ++ lib.optionals ((platform.kernelArch or null) == "mips") [
       kernelPatches.mips_fpureg_emu
@@ -12116,6 +13335,24 @@ with pkgs;
     ];
   };
 
+  linux_testing_bcachefs = callPackage ../os-specific/linux/kernel/linux-testing-bcachefs.nix {
+    kernelPatches =
+      [ kernelPatches.bridge_stp_helper
+        kernelPatches.modinst_arg_list_too_long
+      ]
+      ++ lib.optionals ((platform.kernelArch or null) == "mips")
+      [ kernelPatches.mips_fpureg_emu
+        kernelPatches.mips_fpu_sigill
+        kernelPatches.mips_ext3_n32
+      ];
+  };
+
+  linux_riscv = callPackage ../os-specific/linux/kernel/linux-riscv.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.modinst_arg_list_too_long
+    ];
+  };
 
   linux_samus_4_12 = callPackage ../os-specific/linux/kernel/linux-samus-4.12.nix {
     kernelPatches =
@@ -12125,21 +13362,9 @@ with pkgs;
         # when adding a new linux version
         kernelPatches.cpu-cgroup-v2."4.11"
         kernelPatches.modinst_arg_list_too_long
-    ];
-  };
-
-  linux_samus_latest = linux_samus_4_12;
-
-  linux_chromiumos_3_18 = callPackage ../os-specific/linux/kernel/linux-chromiumos-3.18.nix {
-    kernelPatches = [ kernelPatches.chromiumos_Kconfig_fix_entries_3_18
-                      kernelPatches.chromiumos_no_link_restrictions
-                      kernelPatches.genksyms_fix_segfault
-                      kernelPatches.DCCP_double_free_vulnerability_CVE-2017-6074
-                    ];
+      ];
   };
 
-  linux_chromiumos_latest = linux_chromiumos_3_18;
-
   /* Linux kernel modules are inherently tied to a specific kernel.  So
      rather than provide specific instances of those packages for a
      specific kernel, we have a function that builds those packages
@@ -12150,6 +13375,7 @@ with pkgs;
     callPackage = newScope self;
 
     inherit kernel;
+    inherit (kernel) stdenv; # in particular, use the same compiler by default
 
     acpi_call = callPackage ../os-specific/linux/acpi-call {};
 
@@ -12161,6 +13387,8 @@ with pkgs;
 
     bbswitch = callPackage ../os-specific/linux/bbswitch {};
 
+    beegfs-module = callPackage ../os-specific/linux/beegfs/kernel-module.nix { };
+
     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
 
     blcr = callPackage ../os-specific/linux/blcr { };
@@ -12177,6 +13405,8 @@ with pkgs;
 
     pktgen = callPackage ../os-specific/linux/pktgen { };
 
+    hyperv-daemons = callPackage ../os-specific/linux/hyperv-daemons { };
+
     odp-dpdk = callPackage ../os-specific/linux/odp-dpdk { };
 
     ofp = callPackage ../os-specific/linux/ofp { };
@@ -12189,8 +13419,6 @@ with pkgs;
 
     v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };
 
-    frandom = callPackage ../os-specific/linux/frandom { };
-
     fusionio-vsl = callPackage ../os-specific/linux/fusionio/vsl.nix { };
 
     lttng-modules = callPackage ../os-specific/linux/lttng-modules { };
@@ -12209,13 +13437,17 @@ with pkgs;
 
     ply = callPackage ../os-specific/linux/ply { };
 
+    rtl8192eu = callPackage ../os-specific/linux/rtl8192eu { };
+
     rtl8723bs = callPackage ../os-specific/linux/rtl8723bs { };
 
     rtl8812au = callPackage ../os-specific/linux/rtl8812au { };
 
+    rtl8814au = callPackage ../os-specific/linux/rtl8814au { };
+
     rtlwifi_new = callPackage ../os-specific/linux/rtlwifi_new { };
 
-    openafsClient = callPackage ../servers/openafs-client { };
+    openafs = callPackage ../servers/openafs/module.nix { };
 
     facetimehd = callPackage ../os-specific/linux/facetimehd { };
 
@@ -12240,14 +13472,10 @@ with pkgs;
 
     prl-tools = callPackage ../os-specific/linux/prl-tools { };
 
-    seturgent = callPackage ../os-specific/linux/seturgent { };
-
     sch_cake = callPackage ../os-specific/linux/sch_cake { };
 
-    inherit (callPackage ../os-specific/linux/spl {
-      configFile = "kernel";
-      inherit kernel;
-    }) splStable splUnstable;
+    inherit (callPackage ../os-specific/linux/spl {})
+      splStable splUnstable splLegacyCrypto;
 
     spl = splStable;
 
@@ -12257,6 +13485,8 @@ with pkgs;
 
     tp_smapi = callPackage ../os-specific/linux/tp_smapi { };
 
+    usbip = callPackage ../os-specific/linux/usbip { };
+
     v86d = callPackage ../os-specific/linux/v86d { };
 
     vhba = callPackage ../misc/emulators/cdemu/vhba.nix { };
@@ -12276,27 +13506,27 @@ with pkgs;
     inherit (callPackage ../os-specific/linux/zfs {
       configFile = "kernel";
       inherit kernel spl;
-    }) zfsStable zfsUnstable;
+     }) zfsStable zfsUnstable zfsLegacyCrypto;
 
-    zfs = zfsStable;
+     zfs = zfsStable;
   });
 
   # The current default kernel / kernel modules.
-  linuxPackages = linuxPackages_4_9;
+  linuxPackages = linuxPackages_4_14;
   linux = linuxPackages.kernel;
 
   # Update this when adding the newest kernel major version!
-  linuxPackages_latest = linuxPackages_4_12;
+  linuxPackages_latest = linuxPackages_4_15;
   linux_latest = linuxPackages_latest.kernel;
 
   # Build the kernel modules for the some of the kernels.
-  linuxPackages_hardened_copperhead = linuxPackagesFor pkgs.linux_hardened_copperhead;
+  linuxPackages_beagleboard = linuxPackagesFor pkgs.linux_beagleboard;
   linuxPackages_mptcp = linuxPackagesFor pkgs.linux_mptcp;
   linuxPackages_rpi = linuxPackagesFor pkgs.linux_rpi;
-  linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10);
   linuxPackages_4_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_4);
   linuxPackages_4_9 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_9);
-  linuxPackages_4_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_12);
+  linuxPackages_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_14);
+  linuxPackages_4_15 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_15);
   # Don't forget to update linuxPackages_latest!
 
   # Intentionally lacks recurseIntoAttrs, as -rc kernels will quite likely break out-of-tree modules and cause failed Hydra builds.
@@ -12304,44 +13534,48 @@ with pkgs;
 
   linuxPackages_custom = { version, src, configfile }:
     recurseIntoAttrs (linuxPackagesFor (pkgs.linuxManualConfig {
-      inherit version src configfile;
+      inherit version src configfile stdenv;
       allowImportFromDerivation = true;
     }));
 
+  # Build a kernel with bcachefs module
+  linuxPackages_testing_bcachefs = recurseIntoAttrs (linuxPackagesFor pkgs.linux_testing_bcachefs);
+
   # Build a kernel for Xen dom0
+  linuxPackages_xen_dom0 = recurseIntoAttrs (linuxPackagesFor (pkgs.linux.override { features.xen_dom0=true; }));
+
   linuxPackages_latest_xen_dom0 = recurseIntoAttrs (linuxPackagesFor (pkgs.linux_latest.override { features.xen_dom0=true; }));
 
   # Hardened linux
-  linux_hardened = let linux = pkgs.linuxPackages_latest.kernel; in linux.override {
+  hardenedLinuxPackagesFor = kernel: linuxPackagesFor (kernel.override {
     extraConfig = import ../os-specific/linux/kernel/hardened-config.nix {
       inherit stdenv;
-      inherit (linux) version;
+      inherit (kernel) version;
     };
-  };
+  });
 
-  linuxPackages_hardened =
-    recurseIntoAttrs (linuxPackagesFor linux_hardened);
+  linuxPackages_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux);
+  linux_hardened = linuxPackages_hardened.kernel;
 
-  # Grsecurity packages
+  linuxPackages_latest_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest);
+  linux_latest_hardened = linuxPackages_latest_hardened.kernel;
 
-  linux_grsec_nixos = kernelPatches.grsecurity_testing;
+  linuxPackages_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor (pkgs.linux.override { features.xen_dom0=true; }));
 
-  linuxPackages_grsec_nixos =
-    recurseIntoAttrs (linuxPackagesFor linux_grsec_nixos);
+  linuxPackages_latest_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor (pkgs.linux_latest.override { features.xen_dom0=true; }));
 
-  linux_grsec_server_xen = linux_grsec_nixos;
+  linuxPackages_copperhead_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_copperhead);
+  linux_copperhead_hardened = linuxPackages_copperhead_hardened.kernel;
+  linux_hardened_copperhead = linux_copperhead_hardened; # alias for backward compatibility
 
   # Samus kernels
   linuxPackages_samus_4_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_samus_4_12);
-  linuxPackages_samus_latest = recurseIntoAttrs (linuxPackagesFor pkgs.linux_samus_latest);
-
-  # ChromiumOS kernels
-  linuxPackages_chromiumos_3_18 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_chromiumos_3_18);
-  linuxPackages_chromiumos_latest = recurseIntoAttrs (linuxPackagesFor pkgs.linux_chromiumos_latest);
+  linuxPackages_samus_latest = linuxPackages_samus_4_12;
+  linux_samus_latest = linuxPackages_samus_latest.kernel;
 
   # A function to build a manually-configured kernel
-  linuxManualConfig = pkgs.buildLinux;
-  buildLinux = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
+  linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
+  buildLinux = attrs: callPackage ../os-specific/linux/kernel/generic.nix attrs;
 
   keyutils = callPackage ../os-specific/linux/keyutils { };
 
@@ -12383,8 +13617,6 @@ with pkgs;
     python3 = null; # Currently not using the python3 bindings
   };
 
-  libnscd = callPackage ../os-specific/linux/libnscd { };
-
   libnotify = callPackage ../development/libraries/libnotify { };
 
   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
@@ -12395,8 +13627,8 @@ with pkgs;
 
   mbpfan = callPackage ../os-specific/linux/mbpfan { };
 
-  mdadm = callPackage ../os-specific/linux/mdadm { };
-  mdadm4 = callPackage ../os-specific/linux/mdadm/4.nix { };
+  mdadm = mdadm4;
+  mdadm4 = callPackage ../os-specific/linux/mdadm { };
 
   mingetty = callPackage ../os-specific/linux/mingetty { };
 
@@ -12414,6 +13646,17 @@ with pkgs;
   multipath-tools = callPackage ../os-specific/linux/multipath-tools { };
 
   musl = callPackage ../os-specific/linux/musl { };
+  musl-fts = callPackage ../os-specific/linux/musl/fts.nix { };
+  musl-getconf = callPackage ../os-specific/linux/musl/getconf.nix { };
+  musl-getent = callPackage ../os-specific/linux/musl/getent.nix { };
+  getent =
+    if hostPlatform.isMusl then musl-getent
+    # This may not be right on other platforms, but preserves existing behavior
+    else /* if hostPlatform.libc == "glibc" then */ glibc.bin;
+
+  getconf =
+    if hostPlatform.isMusl then musl-getconf
+    else lib.getBin stdenv.cc.libc;
 
   nettools = callPackage ../os-specific/linux/net-tools { };
 
@@ -12432,13 +13675,22 @@ with pkgs;
 
   delve = callPackage ../development/tools/delve { };
 
+  dep = callPackage ../development/tools/dep { };
+
   go-bindata = callPackage ../development/tools/go-bindata { };
 
   go-bindata-assetfs = callPackage ../development/tools/go-bindata-assetfs { };
 
+  go-protobuf = callPackage ../development/tools/go-protobuf { };
+
+
+  go-symbols = callPackage ../development/tools/go-symbols { };
+
+  go-outline = callPackage ../development/tools/go-outline { };
+
   gocode = callPackage ../development/tools/gocode { };
 
-  kgocode = callPackage ../applications/misc/kgocode { };
+  goconvey = callPackage ../development/tools/goconvey { };
 
   gotags = callPackage ../development/tools/gotags { };
 
@@ -12450,10 +13702,18 @@ with pkgs;
 
   goimports = callPackage ../development/tools/goimports { };
 
+  gopkgs = callPackage ../development/tools/gopkgs { };
+
   govers = callPackage ../development/tools/govers { };
 
   gotools = callPackage ../development/tools/gotools { };
 
+  gomodifytags = callPackage ../development/tools/gomodifytags { };
+
+  go-langserver = callPackage ../development/tools/go-langserver { };
+
+  gotests = callPackage ../development/tools/gotests { };
+
   gogoclient = callPackage ../os-specific/linux/gogoclient { };
 
   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
@@ -12493,6 +13753,8 @@ with pkgs;
     config = config.pcmciaUtils.config or null;
   };
 
+  pcstat = callPackage ../tools/system/pcstat { };
+
   perf-tools = callPackage ../os-specific/linux/perf-tools { };
 
   pipes = callPackage ../misc/screensavers/pipes { };
@@ -12523,16 +13785,18 @@ with pkgs;
 
   watch = callPackage ../os-specific/linux/procps/watch.nix { };
 
-  qemu_kvm = lowPrio (qemu.override { x86Only = true; });
+  qemu_kvm = lowPrio (qemu.override { hostCpuOnly = true; });
 
   # See `xenPackages` source for explanations.
   # Building with `xen` instead of `xen-slim` is possible, but makes no sense.
-  qemu_xen = lowPrio (qemu.override { x86Only = true; xenSupport = true; xen = xen-slim; });
-  qemu_xen-light = lowPrio (qemu.override { x86Only = true; xenSupport = true; xen = xen-light; });
-  qemu_xen_4_8 = lowPrio (qemu.override { x86Only = true; xenSupport = true; xen = xen_4_8-slim; });
-  qemu_xen_4_8-light = lowPrio (qemu.override { x86Only = true; xenSupport = true; xen = xen_4_8-light; });
+  qemu_xen = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-slim; });
+  qemu_xen-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-light; });
+  qemu_xen_4_8 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_8-slim; });
+  qemu_xen_4_8-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_8-light; });
+  qemu_xen_4_10 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_10-slim; });
+  qemu_xen_4_10-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_10-light; });
 
-  qemu_test = lowPrio (qemu.override { x86Only = true; nixosTestRunner = true; });
+  qemu_test = lowPrio (qemu.override { hostCpuOnly = true; nixosTestRunner = true; });
 
   firmwareLinuxNonfree = callPackage ../os-specific/linux/firmware/firmware-linux-nonfree { };
 
@@ -12548,6 +13812,12 @@ with pkgs;
 
   rfkill_udev = callPackage ../os-specific/linux/rfkill/udev.nix { };
 
+  riscv-pk = callPackage ../misc/riscv-pk { };
+
+  riscv-pk-with-kernel = riscv-pk.override {
+    payload = "${linux_riscv}/vmlinux";
+  };
+
   rtkit = callPackage ../os-specific/linux/rtkit { };
 
   rt5677-firmware = callPackage ../os-specific/linux/firmware/rt5677 { };
@@ -12574,6 +13844,8 @@ with pkgs;
 
   setools = callPackage ../os-specific/linux/setools { };
 
+  seturgent = callPackage ../os-specific/linux/seturgent { };
+
   shadow = callPackage ../os-specific/linux/shadow { };
 
   sinit = callPackage ../os-specific/linux/sinit {
@@ -12587,12 +13859,6 @@ with pkgs;
 
   statifier = callPackage ../os-specific/linux/statifier { };
 
-  inherit (callPackage ../os-specific/linux/spl {
-    configFile = "user";
-  }) splStable splUnstable;
-
-  spl = splStable;
-
   sysdig = callPackage ../os-specific/linux/sysdig {
     kernel = null;
   }; # pkgs.sysdig is a client, for a driver look at linuxPackagesFor
@@ -12615,12 +13881,7 @@ with pkgs;
 
   systemd = callPackage ../os-specific/linux/systemd {
     utillinux = utillinuxMinimal; # break the cyclic dependency
-    gperf = gperf_3_0; # fix build until v233
-  }
-    // {
-      udev.bin = systemd;     # ${systemd.udev.bin}/bin/udevadm
-      udev.lib = libudev.out; # ${systemd.udev.lib}/lib/libudev.*
-    };
+  };
 
   # standalone cryptsetup generator for systemd
   systemd-cryptsetup-generator = callPackage ../os-specific/linux/systemd/cryptsetup-generator.nix { };
@@ -12650,9 +13911,6 @@ with pkgs;
 
   tunctl = callPackage ../os-specific/linux/tunctl { };
 
-  # TODO(dezgeg): either refactor & use ubootTools directly, or remove completely
-  ubootChooser = name: ubootTools;
-
   # Upstream U-Boots:
   inherit (callPackage ../misc/uboot {})
     buildUBoot
@@ -12660,28 +13918,33 @@ with pkgs;
     ubootA20OlinuxinoLime
     ubootBananaPi
     ubootBeagleboneBlack
+    ubootClearfog
+    ubootGuruplug
     ubootJetsonTK1
     ubootOdroidXU3
+    ubootOrangePiPc
     ubootPcduino3Nano
+    ubootPine64
+    ubootQemuAarch64
+    ubootQemuArm
     ubootRaspberryPi
     ubootRaspberryPi2
     ubootRaspberryPi3_32bit
     ubootRaspberryPi3_64bit
+    ubootSheevaplug
+    ubootSopine
     ubootUtilite
     ubootWandboard
     ;
 
   # Non-upstream U-Boots:
-  ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
-
   ubootNanonote = callPackage ../misc/uboot/nanonote.nix { };
 
-  ubootGuruplug = callPackage ../misc/uboot/guruplug.nix { };
+  ubootRock64 = callPackage ../misc/uboot/rock64.nix { };
 
   uclibc = callPackage ../os-specific/linux/uclibc { };
 
   uclibcCross = lowPrio (callPackage ../os-specific/linux/uclibc {
-    inherit (buildPackages) linuxHeaders;
     gccCross = gccCrossStageStatic;
     cross = assert targetPlatform != buildPlatform; targetPlatform;
   });
@@ -12695,7 +13958,7 @@ with pkgs;
 
   udisks1 = callPackage ../os-specific/linux/udisks/1-default.nix { };
   udisks2 = callPackage ../os-specific/linux/udisks/2-default.nix { };
-  udisks = udisks1;
+  udisks = udisks2;
 
   udisks_glue = callPackage ../os-specific/linux/udisks-glue { };
 
@@ -12703,9 +13966,9 @@ with pkgs;
 
   upower = callPackage ../os-specific/linux/upower { };
 
-  upstart = callPackage ../os-specific/linux/upstart { };
-
-  upstart-check-config = callPackage ../os-specific/linux/upstart/check-config.nix {};
+  usbguard = libsForQt5.callPackage ../os-specific/linux/usbguard {
+    libgcrypt = null;
+  };
 
   usbutils = callPackage ../os-specific/linux/usbutils { };
 
@@ -12798,7 +14061,7 @@ with pkgs;
 
   inherit (callPackage ../os-specific/linux/zfs {
     configFile = "user";
-  }) zfsStable zfsUnstable;
+  }) zfsStable zfsUnstable zfsLegacyCrypto;
 
   zfs = zfsStable;
 
@@ -12826,13 +14089,15 @@ with pkgs;
 
   bgnet = callPackage ../data/documentation/bgnet { };
 
+  brise = callPackage ../data/misc/brise { };
+
   inherit (kdeFrameworks) breeze-icons;
 
   cacert = callPackage ../data/misc/cacert { };
 
   caladea = callPackage ../data/fonts/caladea {};
 
-  cantarell_fonts = callPackage ../data/fonts/cantarell-fonts { };
+  cantarell-fonts = callPackage ../data/fonts/cantarell-fonts { };
 
   carlito = callPackage ../data/fonts/carlito {};
 
@@ -12842,7 +14107,9 @@ with pkgs;
 
   comic-relief = callPackage ../data/fonts/comic-relief {};
 
-  coreclr = callPackage ../development/compilers/coreclr { };
+  coreclr = callPackage ../development/compilers/coreclr {
+    debug = config.coreclr.debug or false;
+  };
 
   corefonts = callPackage ../data/fonts/corefonts { };
 
@@ -12868,6 +14135,8 @@ with pkgs;
 
   dina-font-pcf = callPackage ../data/fonts/dina-pcf { };
 
+  dns-root-data = callPackage ../data/misc/dns-root-data { };
+
   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
 
   docbook_sgml_dtd_31 = callPackage ../data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix { };
@@ -12908,11 +14177,12 @@ with pkgs;
 
   faba-mono-icons = callPackage ../data/icons/faba-mono-icons { };
 
+  fixedsys-excelsior = callPackage ../data/fonts/fixedsys-excelsior { };
+
   emacs-all-the-icons-fonts = callPackage ../data/fonts/emacs-all-the-icons-fonts { };
 
   emojione = callPackage ../data/fonts/emojione {
     inherit (nodePackages) svgo;
-    inherit (pythonPackages) scfbuild;
   };
 
   encode-sans = callPackage ../data/fonts/encode-sans { };
@@ -12928,7 +14198,8 @@ with pkgs;
 
   fira-mono = callPackage ../data/fonts/fira-mono { };
 
-  font-awesome-ttf = callPackage ../data/fonts/font-awesome-ttf { };
+  font-awesome_4 = callPackage ../data/fonts/font-awesome-4 { };
+  font-awesome_5 = callPackage ../data/fonts/font-awesome-5 { };
 
   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
 
@@ -12946,7 +14217,7 @@ with pkgs;
 
   gnome_user_docs = callPackage ../data/documentation/gnome-user-docs { };
 
-  inherit (gnome3) gsettings_desktop_schemas;
+  inherit (gnome3) gsettings-desktop-schemas;
 
   go-font = callPackage ../data/fonts/go-font { };
 
@@ -12956,20 +14227,27 @@ with pkgs;
 
   helvetica-neue-lt-std = callPackage ../data/fonts/helvetica-neue-lt-std { };
 
-  hicolor_icon_theme = callPackage ../data/icons/hicolor-icon-theme { };
+  hicolor-icon-theme = callPackage ../data/icons/hicolor-icon-theme { };
 
   hanazono = callPackage ../data/fonts/hanazono { };
 
+  ibm-plex = callPackage ../data/fonts/ibm-plex { };
+
   inconsolata = callPackage ../data/fonts/inconsolata {};
   inconsolata-lgc = callPackage ../data/fonts/inconsolata/lgc.nix {};
 
   input-fonts = callPackage ../data/fonts/input-fonts { };
 
-  iosevka = callPackage ../data/fonts/iosevka { };
+  iosevka = callPackage ../data/fonts/iosevka {
+    nodejs = nodejs-8_x;
+  };
+  iosevka-bin = callPackage ../data/fonts/iosevka/bin.nix {};
 
   ipafont = callPackage ../data/fonts/ipafont {};
   ipaexfont = callPackage ../data/fonts/ipaexfont {};
 
+  iwona = callPackage ../data/fonts/iwona { };
+
   junicode = callPackage ../data/fonts/junicode { };
 
   kawkab-mono-font = callPackage ../data/fonts/kawkab-mono {};
@@ -12978,6 +14256,8 @@ with pkgs;
 
   kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 {};
 
+  latinmodern-math = callPackage ../data/fonts/lm-math {};
+
   lato = callPackage ../data/fonts/lato {};
 
   league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type {};
@@ -12996,6 +14276,8 @@ with pkgs;
 
   libertine = callPackage ../data/fonts/libertine { };
 
+  libertinus = callPackage ../data/fonts/libertinus { };
+
   libre-baskerville = callPackage ../data/fonts/libre-baskerville { };
 
   libre-bodoni = callPackage ../data/fonts/libre-bodoni { };
@@ -13022,13 +14304,19 @@ with pkgs;
 
   man-pages = callPackage ../data/documentation/man-pages { };
 
+  material-icons = callPackage ../data/fonts/material-icons { };
+
   meslo-lg = callPackage ../data/fonts/meslo-lg {};
 
+  migmix = callPackage ../data/fonts/migmix {};
+
+  migu = callPackage ../data/fonts/migu {};
+
   miscfiles = callPackage ../data/misc/miscfiles { };
 
   media-player-info = callPackage ../data/misc/media-player-info {};
 
-  mobile_broadband_provider_info = callPackage ../data/misc/mobile-broadband-provider-info { };
+  mobile-broadband-provider-info = callPackage ../data/misc/mobile-broadband-provider-info { };
 
   monoid = callPackage ../data/fonts/monoid { };
 
@@ -13046,12 +14334,16 @@ with pkgs;
 
   mustache-spec = callPackage ../data/documentation/mustache-spec { };
 
+  myrica = callPackage ../data/fonts/myrica { };
+
   nafees = callPackage ../data/fonts/nafees { };
 
   inherit (callPackages ../data/fonts/noto-fonts {})
     noto-fonts noto-fonts-cjk noto-fonts-emoji;
 
-  nullmailer = callPackage ../servers/mail/nullmailer { };
+  nullmailer = callPackage ../servers/mail/nullmailer {
+    stdenv = gccStdenv;
+  };
 
   numix-icon-theme = callPackage ../data/icons/numix-icon-theme { };
 
@@ -13059,6 +14351,8 @@ with pkgs;
 
   numix-icon-theme-square = callPackage ../data/icons/numix-icon-theme-square { };
 
+  numix-cursor-theme = callPackage ../data/icons/numix-cursor-theme { };
+
   oldstandard = callPackage ../data/fonts/oldstandard { };
 
   oldsindhi = callPackage ../data/fonts/oldsindhi { };
@@ -13079,6 +14373,8 @@ with pkgs;
 
   papirus-icon-theme = callPackage ../data/icons/papirus-icon-theme { };
 
+  papis = python3Packages.callPackage ../tools/misc/papis { };
+
   pecita = callPackage ../data/fonts/pecita {};
 
   paratype-pt-mono = callPackage ../data/fonts/paratype-pt/mono.nix {};
@@ -13091,15 +14387,21 @@ with pkgs;
 
   powerline-fonts = callPackage ../data/fonts/powerline-fonts { };
 
+  powerline-go = callPackage ../tools/misc/powerline-go { };
+
   profont = callPackage ../data/fonts/profont { };
 
   proggyfonts = callPackage ../data/fonts/proggyfonts { };
 
   sampradaya = callPackage ../data/fonts/sampradaya { };
 
+  scowl = callPackage ../data/misc/scowl { };
+
   shaderc = callPackage ../development/compilers/shaderc { };
 
-  shared_mime_info = callPackage ../data/misc/shared-mime-info { };
+  mime-types = callPackage ../data/misc/mime-types { };
+
+  shared-mime-info = callPackage ../data/misc/shared-mime-info { };
 
   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
 
@@ -13114,7 +14416,7 @@ with pkgs;
   stix-two = callPackage ../data/fonts/stix-two { };
 
   inherit (callPackages ../data/fonts/gdouros { })
-    symbola aegyptus akkadian anatolian maya unidings musica analecta;
+    symbola aegyptus akkadian anatolian maya unidings musica analecta textfonts aegan abydos;
 
   iana-etc = callPackage ../data/misc/iana-etc { };
 
@@ -13122,6 +14424,8 @@ with pkgs;
 
   qgo = libsForQt5.callPackage ../games/qgo { };
 
+  qmc2 = libsForQt5.callPackage ../misc/emulators/qmc2 { };
+
   quattrocento = callPackage ../data/fonts/quattrocento {};
 
   quattrocento-sans = callPackage ../data/fonts/quattrocento-sans {};
@@ -13181,12 +14485,26 @@ with pkgs;
 
   terminus_font_ttf = callPackage ../data/fonts/terminus-font-ttf { };
 
+  tex-gyre = callPackage ../data/fonts/tex-gyre { };
+
+  tex-gyre-bonum-math = callPackage ../data/fonts/tex-gyre-math { variant = "bonum"; };
+
+  tex-gyre-pagella-math = callPackage ../data/fonts/tex-gyre-math { variant = "pagella"; };
+
+  tex-gyre-schola-math = callPackage ../data/fonts/tex-gyre-math { variant = "schola"; };
+
+  tex-gyre-termes-math = callPackage ../data/fonts/tex-gyre-math { variant = "termes"; };
+
   tipa = callPackage ../data/fonts/tipa { };
 
   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
 
   ttf-envy-code-r = callPackage ../data/fonts/ttf-envy-code-r {};
 
+  twemoji-color-font = callPackage ../data/fonts/twemoji-color-font {
+    inherit (nodePackages) svgo;
+  };
+
   tzdata = callPackage ../data/misc/tzdata { };
 
   ubuntu_font_family = callPackage ../data/fonts/ubuntu-font-family { };
@@ -13203,8 +14521,12 @@ with pkgs;
 
   vanilla-dmz = callPackage ../data/icons/vanilla-dmz { };
 
+  vdrsymbols = callPackage ../data/fonts/vdrsymbols { };
+
   vistafonts = callPackage ../data/fonts/vista-fonts { };
 
+  vistafonts-chs = callPackage ../data/fonts/vista-fonts-chs { };
+
   wireless-regdb = callPackage ../data/misc/wireless-regdb { };
 
   wqy_microhei = callPackage ../data/fonts/wqy-microhei { };
@@ -13223,10 +14545,12 @@ with pkgs;
 
   zeal = libsForQt5.callPackage ../data/documentation/zeal { };
 
+  zilla-slab = callPackage ../data/fonts/zilla-slab { };
+
 
   ### APPLICATIONS
 
-  "2bwm" = callPackage ../applications/window-managers/2bwm {
+  _2bwm = callPackage ../applications/window-managers/2bwm {
     patches = config."2bwm".patches or [];
   };
 
@@ -13259,7 +14583,6 @@ with pkgs;
   abcde = callPackage ../applications/audio/abcde {
     inherit (perlPackages) DigestSHA MusicBrainz MusicBrainzDiscID;
     inherit (pythonPackages) eyeD3;
-    libcdio = libcdio082;
   };
 
   abiword = callPackage ../applications/office/abiword {
@@ -13270,13 +14593,15 @@ with pkgs;
   abook = callPackage ../applications/misc/abook { };
 
   acd-cli = callPackage ../applications/networking/sync/acd_cli {
-    inherit (python35Packages)
+    inherit (python3Packages)
       buildPythonApplication appdirs colorama dateutil
       requests requests_toolbelt sqlalchemy fusepy;
   };
 
   adobe-reader = callPackage_i686 ../applications/misc/adobe-reader { };
 
+  masterpdfeditor = libsForQt5.callPackage ../applications/misc/masterpdfeditor { };
+
   aeolus = callPackage ../applications/audio/aeolus { };
 
   aewan = callPackage ../applications/editors/aewan { };
@@ -13291,6 +14616,8 @@ with pkgs;
 
   airwave = callPackage ../applications/audio/airwave/default.nix { };
 
+  alembic = callPackage ../development/libraries/alembic {};
+
   alchemy = callPackage ../applications/graphics/alchemy { };
 
   alock = callPackage ../misc/screensavers/alock { };
@@ -13301,9 +14628,9 @@ with pkgs;
     tcl = tcl-8_5;
   };
 
-  amarok = kde4.callPackage ../applications/audio/amarok {
-    ffmpeg = ffmpeg_2;
-  };
+  msgviewer = callPackage ../applications/networking/mailreaders/msgviewer { };
+
+  amarok-kf5 = libsForQt5.callPackage ../applications/audio/amarok/kf5.nix { };
 
   AMB-plugins = callPackage ../applications/audio/AMB-plugins { };
 
@@ -13311,9 +14638,9 @@ with pkgs;
 
   amsn = callPackage ../applications/networking/instant-messengers/amsn { };
 
-  androidStudioPackages = callPackage ../applications/editors/android-studio/packages.nix {};
+  androidStudioPackages = callPackage ../applications/editors/android-studio { };
   android-studio = androidStudioPackages.stable;
-  android-studio-preview = androidStudioPackages.preview;
+  android-studio-preview = androidStudioPackages.beta;
 
   antfs-cli = callPackage ../applications/misc/antfs-cli {};
 
@@ -13323,6 +14650,8 @@ with pkgs;
 
   ao = callPackage ../applications/graphics/ao {};
 
+  apache-directory-studio = callPackage ../applications/networking/apache-directory-studio {};
+
   aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { };
 
   ardour = callPackage ../applications/audio/ardour {
@@ -13343,10 +14672,12 @@ with pkgs;
   };
 
   atom = callPackage ../applications/editors/atom { };
+  atom-beta = callPackage ../applications/editors/atom/beta.nix { };
 
-  aseprite = callPackage ../applications/editors/aseprite {
-    giflib = giflib_4_1;
-  };
+  aseprite = callPackage ../applications/editors/aseprite { };
+  aseprite-unfree = aseprite.override { unfree = true; };
+
+  astah-community = callPackage ../applications/graphics/astah-community { };
 
   astroid = callPackage ../applications/networking/mailreaders/astroid { };
 
@@ -13363,26 +14694,31 @@ with pkgs;
 
   schismtracker = callPackage ../applications/audio/schismtracker { };
 
-  altcoins = recurseIntoAttrs ( callPackage ../applications/altcoins {
-    callPackage = newScope { boost = boost155; };
-  } );
+  altcoins = recurseIntoAttrs ( callPackage ../applications/altcoins { } );
   bitcoin = altcoins.bitcoin;
   bitcoin-xt = altcoins.bitcoin-xt;
+  cryptop = altcoins.cryptop;
 
   libbitcoin = callPackage ../tools/misc/libbitcoin/libbitcoin.nix {
     secp256k1 = secp256k1.override { enableECDH = true; };
   };
 
-  libbitcoin-client = callPackage ../tools/misc/libbitcoin/libbitcoin-client.nix { };
-
+  libbitcoin-protocol = callPackage ../tools/misc/libbitcoin/libbitcoin-protocol.nix { };
+  libbitcoin-client   = callPackage ../tools/misc/libbitcoin/libbitcoin-client.nix { };
+  libbitcoin-network  = callPackage ../tools/misc/libbitcoin/libbitcoin-network.nix { };
   libbitcoin-explorer = callPackage ../tools/misc/libbitcoin/libbitcoin-explorer.nix { };
 
+
   go-ethereum = self.altcoins.go-ethereum;
+  ethsign = self.altcoins.ethsign;
   ethabi = self.altcoins.ethabi;
   ethrun = self.altcoins.ethrun;
   seth = self.altcoins.seth;
   dapp = self.altcoins.dapp;
-  hsevm = self.altcoins.hsevm;
+  hevm = self.altcoins.hevm;
+
+  parity = self.altcoins.parity;
+  parity-beta = self.altcoins.parity-beta;
 
   stellar-core = self.altcoins.stellar-core;
 
@@ -13392,12 +14728,10 @@ with pkgs;
 
   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
 
-  avidemux_unwrapped = callPackage ../applications/video/avidemux {
-    libva = libva-full; # also wants libva-x11
+  avidemux = libsForQt5.callPackage ../applications/video/avidemux {
+    libva = libva-full;
   };
 
-  avidemux = callPackage ../applications/video/avidemux/wrapper.nix { };
-
   avogadro = callPackage ../applications/science/chemistry/avogadro {
     eigen = eigen2;
   };
@@ -13446,15 +14780,15 @@ with pkgs;
 
   batti = callPackage ../applications/misc/batti { };
 
-  baudline = callPackage ../applications/audio/baudline {
-    jack = jack1;
-  };
+  baudline = callPackage ../applications/audio/baudline { };
 
 
   bazaar = callPackage ../applications/version-management/bazaar { };
 
   bazaarTools = callPackage ../applications/version-management/bazaar/tools.nix { };
 
+  bb =  callPackage ../applications/misc/bb { };
+
   beast = callPackage ../applications/audio/beast {
     inherit (gnome2) libgnomecanvas libart_lgpl;
     guile = guile_1_8;
@@ -13464,6 +14798,8 @@ with pkgs;
 
   bibletime = callPackage ../applications/misc/bibletime { };
 
+  bitcoinarmory = callPackage ../applications/misc/bitcoinarmory { pythonPackages = python2Packages; };
+
   bitkeeper = callPackage ../applications/version-management/bitkeeper {
     gperf = gperf_3_0;
   };
@@ -13471,22 +14807,36 @@ with pkgs;
   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
   bitlbee-plugins = callPackage ../applications/networking/instant-messengers/bitlbee/plugins.nix { };
 
+  bitlbee-discord = callPackage ../applications/networking/instant-messengers/bitlbee-discord { };
+
   bitlbee-facebook = callPackage ../applications/networking/instant-messengers/bitlbee-facebook { };
 
   bitlbee-steam = callPackage ../applications/networking/instant-messengers/bitlbee-steam { };
 
   bitmeter = callPackage ../applications/audio/bitmeter { };
 
-  bitwig-studio =  callPackage ../applications/audio/bitwig-studio {
+  bitscope = recurseIntoAttrs
+    (callPackage ../applications/science/electronics/bitscope/packages.nix { });
+
+  bitwig-studio1 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio1.nix {
     inherit (gnome2) zenity;
   };
+  bitwig-studio2 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio2.nix {
+    inherit (gnome2) zenity;
+    inherit (self) bitwig-studio1;
+  };
+  bitwig-studio = bitwig-studio2;
+
+  bgpdump = callPackage ../tools/networking/bgpdump { };
 
   blackbox = callPackage ../applications/version-management/blackbox { };
 
   bleachbit = callPackage ../applications/misc/bleachbit { };
 
   blender = callPackage  ../applications/misc/blender {
+    cudaSupport = config.cudaSupport or false;
     python = python35;
+    stdenv = overrideCC stdenv gcc6;
   };
 
   bluefish = callPackage ../applications/editors/bluefish {
@@ -13495,6 +14845,8 @@ with pkgs;
 
   bluejeans = callPackage ../applications/networking/browsers/mozilla-plugins/bluejeans { };
 
+  bombono = callPackage ../applications/video/bombono {};
+
   bomi = libsForQt5.callPackage ../applications/video/bomi {
     youtube-dl = pythonPackages.youtube-dl;
     pulseSupport = config.pulseaudio or true;
@@ -13503,6 +14855,8 @@ with pkgs;
 
   brackets = callPackage ../applications/editors/brackets { gconf = gnome3.gconf; };
 
+  notmuch-bower = callPackage ../applications/networking/mailreaders/notmuch-bower { };
+
   bristol = callPackage ../applications/audio/bristol { };
 
   bs1770gain = callPackage ../applications/audio/bs1770gain {
@@ -13519,17 +14873,22 @@ with pkgs;
 
   calf = callPackage ../applications/audio/calf {
       inherit (gnome2) libglade;
+      stdenv = overrideCC stdenv gcc5;
   };
 
   calcurse = callPackage ../applications/misc/calcurse { };
 
   calibre = libsForQt5.callPackage ../applications/misc/calibre { };
 
-  calligra = kde4.callPackage ../applications/office/calligra {
-    vc = vc_0_7;
+  calligra = libsForQt5.callPackage ../applications/office/calligra {
+    inherit (kdeApplications) akonadi-calendar akonadi-contacts;
+    openjpeg = openjpeg_1;
   };
 
-  camlistore = callPackage ../applications/misc/camlistore { };
+  perkeep = callPackage ../applications/misc/perkeep {
+    # Perkeep is very particular about which go version to build with.
+    go = go_1_9;
+  };
 
   canto-curses = callPackage ../applications/networking/feedreaders/canto-curses { };
 
@@ -13537,12 +14896,12 @@ with pkgs;
 
   carddav-util = callPackage ../tools/networking/carddav-util { };
 
-  catfish = callPackage ../applications/search/catfish {
-    pythonPackages = python2Packages;
-  };
+  catfish = callPackage ../applications/search/catfish { };
 
   cava = callPackage ../applications/audio/cava { };
 
+  cask = callPackage ../development/tools/build-managers/cask { };
+
   cb2bib = libsForQt5.callPackage ../applications/office/cb2bib { };
 
   cbatticon = callPackage ../applications/misc/cbatticon { };
@@ -13564,7 +14923,9 @@ with pkgs;
 
   centerim = callPackage ../applications/networking/instant-messengers/centerim { };
 
-  cgit = callPackage ../applications/version-management/git-and-tools/cgit { };
+  cgit = callPackage ../applications/version-management/git-and-tools/cgit {
+    inherit (python3Packages) python wrapPython pygments markdown;
+  };
 
   cgminer = callPackage ../applications/misc/cgminer {
     amdappsdk = amdappsdk28;
@@ -13595,14 +14956,14 @@ with pkgs;
   cinelerra = callPackage ../applications/video/cinelerra { };
 
   claws-mail = callPackage ../applications/networking/mailreaders/claws-mail {
-    inherit (gnome3) gsettings_desktop_schemas;
+    inherit (gnome3) gsettings-desktop-schemas;
     inherit (xorg) libSM;
     enableNetworkManager = config.networking.networkmanager.enable or false;
   };
 
   clfswm = callPackage ../applications/window-managers/clfswm { };
 
-  cligh = callPackage ../development/tools/github/cligh {};
+  cligh = python3Packages.callPackage ../development/tools/github/cligh {};
 
   clipgrab = callPackage ../applications/video/clipgrab { };
 
@@ -13610,12 +14971,13 @@ with pkgs;
 
   cloud-print-connector = callPackage ../servers/cloud-print-connector { };
 
+  clp = callPackage ../applications/science/math/clp { };
+
   cmatrix = callPackage ../applications/misc/cmatrix { };
 
   cmus = callPackage ../applications/audio/cmus {
     inherit (darwin.apple_sdk.frameworks) CoreAudio;
     libjack = libjack2;
-    libcdio = libcdio082;
     ffmpeg = ffmpeg_2;
 
     pulseaudioSupport = config.pulseaudio or false;
@@ -13625,13 +14987,9 @@ with pkgs;
 
   communi = libsForQt5.callPackage ../applications/networking/irc/communi { };
 
-  compiz = callPackage ../applications/window-managers/compiz {
-    inherit (gnome2) GConf ORBit2 metacity;
-  };
-
   confclerk = callPackage ../applications/misc/confclerk { };
 
-  copyq = callPackage ../applications/misc/copyq { };
+  copyq = libsForQt5.callPackage ../applications/misc/copyq { };
 
   coriander = callPackage ../applications/video/coriander {
     inherit (gnome2) libgnomeui GConf;
@@ -13690,12 +15048,12 @@ with pkgs;
 
   cyclone = callPackage ../applications/audio/pd-plugins/cyclone  { };
 
-  darcs = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskellPackages.darcs) (drv: {
+  darcs = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskell.packages.ghc802.darcs) (drv: {
     configureFlags = (stdenv.lib.remove "-flibrary" drv.configureFlags or []) ++ ["-f-library"];
   });
 
   darktable = callPackage ../applications/graphics/darktable {
-    inherit (gnome2) GConf libglade;
+    lua = lua5_3;
     pugixml = pugixml.override { shared = true; };
   };
 
@@ -13705,11 +15063,16 @@ with pkgs;
 
   dd-agent = callPackage ../tools/networking/dd-agent { };
 
+  ddgr = callPackage ../applications/misc/ddgr { };
+
   deadbeef = callPackage ../applications/audio/deadbeef {
     pulseSupport = config.pulseaudio or true;
   };
 
-  deadbeef-mpris2-plugin = callPackage ../applications/audio/deadbeef/plugins/mpris2.nix { };
+  deadbeefPlugins = {
+    mpris2 = callPackage ../applications/audio/deadbeef/plugins/mpris2.nix { };
+    opus = callPackage ../applications/audio/deadbeef/plugins/opus.nix { };
+  };
 
   deadbeef-with-plugins = callPackage ../applications/audio/deadbeef/wrapper.nix {
     plugins = [];
@@ -13740,8 +15103,6 @@ with pkgs;
 
   dmenu = callPackage ../applications/misc/dmenu { };
 
-  dmenu-wayland = callPackage ../applications/misc/dmenu/wayland.nix { };
-
   dmenu2 = callPackage ../applications/misc/dmenu2 { };
 
   dmensamenu = callPackage ../applications/misc/dmensamenu {
@@ -13753,11 +15114,13 @@ with pkgs;
   dmtx-utils = callPackage (callPackage ../tools/graphics/dmtx-utils) {
   };
 
-  inherit (callPackage ../applications/virtualization/docker { })
-    docker_17_06;
+  # go 1.9 pin until https://github.com/moby/moby/pull/35739
+  inherit (callPackage ../applications/virtualization/docker { go = go_1_9; })
+    docker_17_12
+    docker_18_02;
 
-  docker = docker_17_06;
-  docker-edge = docker_17_06;
+  docker = docker_17_12;
+  docker-edge = docker_18_02;
 
   docker-proxy = callPackage ../applications/virtualization/docker/proxy.nix { };
 
@@ -13765,9 +15128,14 @@ with pkgs;
 
   docker-machine = callPackage ../applications/networking/cluster/docker-machine { };
   docker-machine-kvm = callPackage ../applications/networking/cluster/docker-machine/kvm.nix { };
+  docker-machine-xhyve = callPackage ../applications/networking/cluster/docker-machine/xhyve.nix {
+    inherit (darwin.apple_sdk.frameworks) Hypervisor vmnet;
+  };
 
   docker-distribution = callPackage ../applications/virtualization/docker-distribution { };
 
+  docker-credential-gcr = callPackage ../tools/admin/docker-credential-gcr { };
+
   doodle = callPackage ../applications/search/doodle { };
 
   dr14_tmeter = callPackage ../applications/audio/dr14_tmeter { };
@@ -13784,6 +15152,10 @@ with pkgs;
 
   devede = callPackage ../applications/video/devede { };
 
+  denemo = callPackage ../applications/audio/denemo {
+    inherit (gnome3) gtksourceview;
+  };
+
   dvb_apps  = callPackage ../applications/video/dvb-apps { };
 
   dvdauthor = callPackage ../applications/video/dvdauthor { };
@@ -13803,6 +15175,8 @@ with pkgs;
     patches = config.dwm.patches or [];
   };
 
+  dynamips = callPackage ../applications/virtualization/dynamips { };
+
   evilwm = callPackage ../applications/window-managers/evilwm {
     patches = config.evilwm.patches or [];
   };
@@ -13821,6 +15195,8 @@ with pkgs;
 
   ekho = callPackage ../applications/audio/ekho { };
 
+  electron-cash = libsForQt5.callPackage ../applications/misc/electron-cash { };
+
   electrum = callPackage ../applications/misc/electrum { };
 
   electrum-dash = callPackage ../applications/misc/electrum-dash { };
@@ -14010,8 +15386,6 @@ with pkgs;
   emacs25Packages = emacsPackagesGen emacs25 pkgs.emacs25Packages;
 
   emacsPackagesNgGen = emacs: import ./emacs-packages.nix {
-    overrides = (config.emacsPackageOverrides or (p: {})) pkgs;
-
     inherit lib newScope stdenv;
     inherit fetchFromGitHub fetchgit fetchhg fetchurl;
     inherit emacs texinfo makeWrapper runCommand;
@@ -14037,10 +15411,12 @@ with pkgs;
   emacs25WithPackages = emacs25PackagesNg.emacsWithPackages;
   emacsWithPackages = emacsPackagesNg.emacsWithPackages;
 
-  # inherit (gnome3) empathy;
+  inherit (gnome3) empathy;
 
   enhanced-ctorrent = callPackage ../applications/networking/enhanced-ctorrent { };
 
+  eolie = callPackage ../applications/networking/browsers/eolie { };
+
   epdfview = callPackage ../applications/misc/epdfview { };
 
   inherit (gnome3) epiphany;
@@ -14078,21 +15454,26 @@ with pkgs;
 
   gpg-mdp = callPackage ../applications/misc/gpg-mdp { };
 
+  icesl = callPackage ../applications/misc/icesl { };
+
   keepassx = callPackage ../applications/misc/keepassx { };
   keepassx2 = callPackage ../applications/misc/keepassx/2.0.nix { };
-  keepassx-community = libsForQt5.callPackage ../applications/misc/keepassx/community.nix { };
+  keepassxc = libsForQt5.callPackage ../applications/misc/keepassx/community.nix { };
 
   inherit (gnome3) evince;
-  evolution_data_server = gnome3.evolution_data_server;
+  evolution-data-server = gnome3.evolution-data-server;
 
-  keepass = callPackage ../applications/misc/keepass { };
+  keepass = callPackage ../applications/misc/keepass {
+    buildDotnetPackage = buildDotnetPackage.override { mono = mono54; };
+  };
 
   keepass-keeagent = callPackage ../applications/misc/keepass-plugins/keeagent { };
 
-  keepass-keefox = callPackage ../applications/misc/keepass-plugins/keefox { };
-
   keepass-keepasshttp = callPackage ../applications/misc/keepass-plugins/keepasshttp { };
 
+  keepass-keepassrpc = callPackage ../applications/misc/keepass-plugins/keepassrpc { };
+  keepass-keefox = keepass-keepassrpc; # backwards compatibility alias, added 2018-02
+
   exrdisplay = callPackage ../applications/graphics/exrdisplay { };
 
   exrtools = callPackage ../applications/graphics/exrtools { };
@@ -14113,15 +15494,19 @@ with pkgs;
 
   fldigi = callPackage ../applications/audio/fldigi { };
 
+  flink = flink_1_4;
+  flink_1_3 = callPackage ../applications/networking/cluster/flink { version = "1.3"; };
+  flink_1_4 = callPackage ../applications/networking/cluster/flink { version = "1.4"; };
+
   fluidsynth = callPackage ../applications/audio/fluidsynth {
-     inherit (darwin.apple_sdk.frameworks) CoreServices CoreAudio AudioUnit;
+     inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio CoreMIDI CoreServices;
   };
 
   fmit = libsForQt5.callPackage ../applications/audio/fmit { };
 
   fmsynth = callPackage ../applications/audio/fmsynth { };
 
-  focuswriter = callPackage ../applications/editors/focuswriter { };
+  focuswriter = libsForQt5.callPackage ../applications/editors/focuswriter { };
 
   font-manager = callPackage ../applications/misc/font-manager { };
 
@@ -14141,16 +15526,22 @@ with pkgs;
 
   ganttproject-bin = callPackage ../applications/misc/ganttproject-bin { };
 
+  gcal = callPackage ../applications/misc/gcal { };
+
   geany = callPackage ../applications/editors/geany { };
   geany-with-vte = callPackage ../applications/editors/geany/with-vte.nix { };
 
+  ghostwriter = libsForQt5.callPackage ../applications/editors/ghostwriter { };
+
   gksu = callPackage ../applications/misc/gksu { };
 
   gnss-sdr = callPackage ../applications/misc/gnss-sdr { };
 
   gnuradio = callPackage ../applications/misc/gnuradio {
     inherit (python2Packages) cheetah lxml matplotlib numpy python pyopengl pyqt4 scipy wxPython pygtk;
+    inherit (darwin.apple_sdk.frameworks) CoreAudio;
     fftw = fftwFloat;
+    qwt = qwt6_qt4;
   };
 
   gnuradio-with-packages = callPackage ../applications/misc/gnuradio/wrapper.nix {
@@ -14168,21 +15559,31 @@ with pkgs;
 
   gnuradio-osmosdr = callPackage ../applications/misc/gnuradio-osmosdr { };
 
-  goldendict = libsForQt56.callPackage ../applications/misc/goldendict { };
+  goldendict = libsForQt5.callPackage ../applications/misc/goldendict { };
 
   inherit (ocamlPackages) google-drive-ocamlfuse;
 
   google-musicmanager = callPackage ../applications/audio/google-musicmanager { };
 
+  googler = callPackage ../applications/misc/googler {
+    python = python3;
+  };
+
   gopher = callPackage ../applications/networking/gopher/gopher { };
 
+  gopherclient = libsForQt5.callPackage ../applications/networking/gopher/gopherclient { };
+
+  goxel = callPackage ../applications/graphics/goxel { };
+
   gpa = callPackage ../applications/misc/gpa { };
 
   gpicview = callPackage ../applications/graphics/gpicview {
     gtk2 = gtk2-x11;
   };
 
-  gqrx = callPackage ../applications/misc/gqrx { };
+  gqrx = qt5.callPackage ../applications/misc/gqrx { };
+
+  gpx-viewer = callPackage ../applications/misc/gpx-viewer { };
 
   grass = callPackage ../applications/gis/grass { };
 
@@ -14210,6 +15611,8 @@ with pkgs;
 
   rhythmbox = callPackage ../applications/audio/rhythmbox { };
 
+  gradio = callPackage ../applications/audio/gradio { };
+
   puddletag = callPackage ../applications/audio/puddletag { };
 
   w_scan = callPackage ../applications/video/w_scan { };
@@ -14218,18 +15621,22 @@ with pkgs;
 
   wavrsocvt = callPackage ../applications/misc/audio/wavrsocvt { };
 
+  welle-io = libsForQt5.callPackage ../applications/misc/welle-io { };
+
   wireshark-cli = callPackage ../applications/networking/sniffers/wireshark {
     withQt = false;
     withGtk = false;
     inherit (darwin.apple_sdk.frameworks) ApplicationServices SystemConfiguration;
   };
+
+  # the cli binary is actually called tshark and often packaged under this name
+  tshark = wireshark-cli;
+
   # The GTK UI is deprecated by upstream. You probably want the QT version.
   wireshark-gtk = wireshark-cli.override { withGtk = true; };
   wireshark-qt = wireshark-cli.override { withQt = true; };
   wireshark = wireshark-qt;
 
-  wvdial = callPackage ../os-specific/linux/wvdial { };
-
   fbida = callPackage ../applications/graphics/fbida { };
 
   fdupes = callPackage ../tools/misc/fdupes { };
@@ -14244,6 +15651,7 @@ with pkgs;
       libpng = libpng_apng;
       python = python2;
       gnused = gnused_422;
+      icu = icu59;
     };
   });
 
@@ -14306,6 +15714,8 @@ with pkgs;
 
   flac = callPackage ../applications/audio/flac { };
 
+  flameshot = libsForQt5.callPackage ../tools/misc/flameshot { };
+
   flashplayer = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer {
     debug = config.flashplayer.debug or false;
   };
@@ -14326,10 +15736,7 @@ with pkgs;
 
   fomp = callPackage ../applications/audio/fomp { };
 
-  freecad = callPackage ../applications/graphics/freecad {
-    boost = boost155;
-    opencascade = opencascade_oce;
-  };
+  freecad = callPackage ../applications/graphics/freecad { };
 
   freemind = callPackage ../applications/misc/freemind { };
 
@@ -14363,6 +15770,8 @@ with pkgs;
 
   gcolor2 = callPackage ../applications/graphics/gcolor2 { };
 
+  gcolor3 = callPackage ../applications/graphics/gcolor3 { };
+
   get_iplayer = callPackage ../applications/misc/get_iplayer {};
 
   getxbook = callPackage ../applications/misc/getxbook {};
@@ -14370,7 +15779,6 @@ with pkgs;
   ghq = gitAndTools.ghq;
 
   gimp_2_8 = callPackage ../applications/graphics/gimp/2.8.nix {
-    inherit (gnome2) libart_lgpl;
     webkit = null;
     lcms = lcms2;
     inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
@@ -14397,11 +15805,12 @@ with pkgs;
 
   gitAndTools = recurseIntoAttrs (callPackage ../applications/version-management/git-and-tools {});
 
-  inherit (gitAndTools) git gitFull gitSVN git-cola svn2git git-radar transcrypt git-crypt;
+  inherit (gitAndTools) git gitFull gitSVN git-cola svn2git git-radar git-secret transcrypt git-crypt;
 
   gitMinimal = git.override {
     withManual = false;
     pythonSupport = false;
+    withpcre2 = false;
   };
 
   gitRepo = callPackage ../applications/version-management/git-repo {
@@ -14447,7 +15856,12 @@ with pkgs;
     libart = pkgs.gnome2.libart_lgpl;
   };
 
-  jetbrains = recurseIntoAttrs (callPackages ../applications/editors/jetbrains { androidsdk = androidsdk_extras; });
+  jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains {
+    jdk = jetbrains.jdk;
+    androidsdk = androidsdk_extras;
+  }) // {
+    jdk = callPackage ../development/compilers/jetbrains-jdk {  };
+  });
 
   libquvi = callPackage ../applications/video/quvi/library.nix { };
 
@@ -14459,6 +15873,8 @@ with pkgs;
 
   mi2ly = callPackage ../applications/audio/mi2ly {};
 
+  moe =  callPackage ../applications/editors/moe { };
+
   praat = callPackage ../applications/audio/praat { };
 
   quvi = callPackage ../applications/video/quvi/tool.nix {
@@ -14468,17 +15884,19 @@ with pkgs;
 
   quvi_scripts = callPackage ../applications/video/quvi/scripts.nix { };
 
+  rhvoice = callPackage ../applications/audio/rhvoice { };
+
   svox = callPackage ../applications/audio/svox { };
 
   gkrellm = callPackage ../applications/misc/gkrellm {
     inherit (darwin) IOKit;
   };
 
+  gmtk = callPackage ../development/libraries/gmtk { };
+
   gmu = callPackage ../applications/audio/gmu { };
 
-  gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
-    inherit (gnome2) GConf;
-  };
+  gnome_mplayer = callPackage ../applications/video/gnome-mplayer { };
 
   gnumeric = callPackage ../applications/office/gnumeric { };
 
@@ -14496,11 +15914,15 @@ with pkgs;
 
   gphoto2fs = callPackage ../applications/misc/gphoto2/gphotofs.nix { };
 
-  gramps = callPackage ../applications/misc/gramps { };
+  gramps = callPackage ../applications/misc/gramps {
+        pythonPackages = python3Packages;
+  };
 
   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
   graphicsmagick_q16 = callPackage ../applications/graphics/graphicsmagick { quantumdepth = 16; };
 
+  grisbi = callPackage ../applications/office/grisbi { gtk = gtk2; };
+
   gtkpod = callPackage ../applications/audio/gtkpod {
     gnome = gnome3;
     inherit (gnome2) libglade;
@@ -14571,6 +15993,11 @@ with pkgs;
 
   gv = callPackage ../applications/misc/gv { };
 
+  gutenberg = callPackage ../applications/misc/gutenberg {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    inherit (darwin) cf-private;
+  };
+
   guvcview = callPackage ../os-specific/linux/guvcview {
     pulseaudioSupport = config.pulseaudio or true;
     ffmpeg = ffmpeg_2;
@@ -14588,8 +16015,6 @@ with pkgs;
 
   hello = callPackage ../applications/misc/hello { };
 
-  kubernetes-helm = callPackage ../applications/networking/cluster/helm { };
-
   helmholtz = callPackage ../applications/audio/pd-plugins/helmholtz { };
 
   heme = callPackage ../applications/editors/heme { };
@@ -14605,6 +16030,7 @@ with pkgs;
   hipchat = callPackage ../applications/networking/instant-messengers/hipchat { };
 
   hledger = haskell.lib.justStaticExecutables haskellPackages.hledger;
+  hledger-ui = haskell.lib.justStaticExecutables haskellPackages.hledger-ui;
   hledger-web = haskell.lib.justStaticExecutables haskellPackages.hledger-web;
 
   homebank = callPackage ../applications/office/homebank {
@@ -14613,9 +16039,13 @@ with pkgs;
 
   ht = callPackage ../applications/editors/ht { };
 
+  hubstaff = callPackage ../applications/misc/hubstaff { };
+
   hue-cli = callPackage ../tools/networking/hue-cli { };
 
-  hugin = callPackage ../applications/graphics/hugin { };
+  hugin = callPackage ../applications/graphics/hugin {
+    wxGTK = wxGTK30;
+  };
 
   hugo = callPackage ../applications/misc/hugo { };
 
@@ -14638,9 +16068,7 @@ with pkgs;
     extra-packages = [ csound ];
   };
 
-  jackline = callPackage ../applications/networking/instant-messengers/jackline {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_02;
-  };
+  jackline = callPackage ../applications/networking/instant-messengers/jackline { };
 
   slack = callPackage ../applications/networking/instant-messengers/slack { };
 
@@ -14649,12 +16077,15 @@ with pkgs;
   spectrwm = callPackage ../applications/window-managers/spectrwm { };
 
   wlc = callPackage ../development/libraries/wlc { };
+  wlroots = callPackage ../development/libraries/wlroots { };
+  rootston = wlroots.bin;
   orbment = callPackage ../applications/window-managers/orbment { };
   sway = callPackage ../applications/window-managers/sway { };
 
-  swc = callPackage ../development/libraries/swc { };
-  wld = callPackage ../development/libraries/wld { };
-  velox = callPackage ../applications/window-managers/velox { };
+  velox = callPackage ../applications/window-managers/velox {
+    stConf = config.st.conf or null;
+    stPatches = config.st.patches or null;
+  };
 
   i3 = callPackage ../applications/window-managers/i3 {
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
@@ -14684,6 +16115,8 @@ with pkgs;
 
   i3status = callPackage ../applications/window-managers/i3/status.nix { };
 
+  i3status-rust = callPackage ../applications/window-managers/i3/status-rust.nix { };
+
   i810switch = callPackage ../os-specific/linux/i810switch { };
 
   icewm = callPackage ../applications/window-managers/icewm {};
@@ -14692,7 +16125,9 @@ with pkgs;
 
   ifenslave = callPackage ../os-specific/linux/ifenslave { };
 
-  ii = callPackage ../applications/networking/irc/ii { };
+  ii = callPackage ../applications/networking/irc/ii {
+    stdenv = gccStdenv;
+  };
 
   ike = callPackage ../applications/networking/ike { };
 
@@ -14819,8 +16254,12 @@ with pkgs;
 
   japa = callPackage ../applications/audio/japa { };
 
+  jdupes = callPackage ../tools/misc/jdupes { };
+
   jedit = callPackage ../applications/editors/jedit { };
 
+  jgmenu = callPackage ../applications/misc/jgmenu { };
+
   jigdo = callPackage ../applications/misc/jigdo { };
 
   jitsi = callPackage ../applications/networking/instant-messengers/jitsi { };
@@ -14840,19 +16279,13 @@ with pkgs;
 
   k3d = callPackage ../applications/graphics/k3d {
     inherit (pkgs.gnome2) gtkglext;
-    boost = boost155;
+    stdenv = overrideCC stdenv gcc6;
   };
 
-  k3b = kdeApplications.k3b;
-
   k9copy = libsForQt5.callPackage ../applications/video/k9copy {};
 
-  kadu = kde4.callPackage ../applications/networking/instant-messengers/kadu { };
-
   kanboard = callPackage ../applications/misc/kanboard { };
 
-  kde-telepathy = kde4.callPackage ../applications/networking/instant-messengers/telepathy/kde {};
-
   kdeApplications =
     let
       mkApplications = import ../applications/kde;
@@ -14865,10 +16298,10 @@ with pkgs;
       recurseIntoAttrs (makeOverridable mkApplications attrs);
 
   inherit (kdeApplications)
-    akonadi ark dolphin ffmpegthumbs filelight gwenview kate kdenlive
-    kcachegrind kcalc kcolorchooser kcontacts kdf kgpg khelpcenter kig kmix
-    kolourpaint kompare konsole krfb kwalletmanager marble okteta okular
-    spectacle;
+    akonadi akregator ark dolphin ffmpegthumbs filelight gwenview k3b
+    kaddressbook kate kcachegrind kcalc kcolorchooser kcontacts kdenlive kdf kdialog keditbookmarks
+    kget kgpg khelpcenter kig kleopatra kmail kmix kolourpaint kompare konsole
+    kontact korganizer krdc krfb kwalletmanager marble minuet okteta okular spectacle;
 
   kdeconnect = libsForQt5.callPackage ../applications/misc/kdeconnect { };
 
@@ -14886,15 +16319,19 @@ with pkgs;
 
   keepnote = callPackage ../applications/office/keepnote { };
 
+  kega-fusion = callPackage_i686 ../misc/emulators/kega-fusion { };
+
   kermit = callPackage ../tools/misc/kermit { };
 
+  kexi = libsForQt5.callPackage ../applications/office/kexi { };
+
   keyfinder = libsForQt5.callPackage ../applications/audio/keyfinder { };
 
   keyfinder-cli = libsForQt5.callPackage ../applications/audio/keyfinder-cli { };
 
   keymon = callPackage ../applications/video/key-mon { };
 
-  kgraphviewer = kde4.callPackage ../applications/graphics/kgraphviewer { };
+  kgraphviewer = libsForQt5.callPackage ../applications/graphics/kgraphviewer { };
 
   khal = callPackage ../applications/misc/khal { };
 
@@ -14913,11 +16350,11 @@ with pkgs;
 
   kipi-plugins = libsForQt5.callPackage ../applications/graphics/kipi-plugins { };
 
-  kiwix = callPackage ../applications/misc/kiwix {
-    stdenv = overrideCC stdenv gcc49;
-  };
+  kitty = callPackage ../applications/misc/kitty { };
 
-  kmplayer = kde4.callPackage ../applications/video/kmplayer { };
+  kiwix = callPackage ../applications/misc/kiwix { };
+
+  kmplayer = libsForQt5.callPackage ../applications/video/kmplayer { };
 
   kodestudio = callPackage ../applications/editors/kodestudio { };
 
@@ -14933,9 +16370,17 @@ with pkgs;
 
   ktorrent = libsForQt5.callPackage ../applications/networking/p2p/ktorrent { };
 
-  kubernetes = callPackage ../applications/networking/cluster/kubernetes {
-    go = go_1_7;
-  };
+  kubecfg = callPackage ../applications/networking/cluster/kubecfg { };
+
+  kubernetes = callPackage ../applications/networking/cluster/kubernetes {  };
+
+  kubectl = (kubernetes.override { components = [ "cmd/kubectl" ]; }).overrideAttrs(oldAttrs: {
+    name = "kubectl-${oldAttrs.version}";
+  });
+
+  kubernetes-helm = callPackage ../applications/networking/cluster/helm { };
+
+  kupfer = callPackage ../applications/misc/kupfer { };
 
   lame = callPackage ../development/libraries/lame { };
 
@@ -14957,16 +16402,12 @@ with pkgs;
 
   lastfmsubmitd = callPackage ../applications/audio/lastfmsubmitd { };
 
-  lbdb = callPackage ../tools/misc/lbdb { };
+  lbdb = callPackage ../tools/misc/lbdb { abook = null; gnupg = null; goobook = null; khard = null; mu = null; };
 
   lbzip2 = callPackage ../tools/compression/lbzip2 { };
 
   lci = callPackage ../applications/science/logic/lci {};
 
-  ldcpp = callPackage ../applications/networking/p2p/ldcpp {
-    inherit (gnome2) libglade;
-  };
-
   lemonbar = callPackage ../applications/window-managers/lemonbar { };
 
   lemonbar-xft = callPackage ../applications/window-managers/lemonbar/xft.nix { };
@@ -14983,12 +16424,15 @@ with pkgs;
   libreoffice-fresh = lowPrio (callPackage ../applications/office/libreoffice {
     inherit (perlPackages) ArchiveZip CompressZlib;
     inherit (gnome2) GConf ORBit2 gnome_vfs;
-    inherit (gnome3) gsettings_desktop_schemas defaultIconTheme;
+    inherit (gnome3) defaultIconTheme;
     zip = zip.override { enableNLS = false; };
     bluez5 = bluez5_28;
     fontsConf = makeFontsConf {
       fontDirectories = [
+        carlito dejavu_fonts
         freefont_ttf xorg.fontmiscmisc
+        liberation_ttf_v1_binary
+        liberation_ttf_v2_binary
       ];
     };
     clucene_core = clucene_core_2;
@@ -14996,14 +16440,15 @@ with pkgs;
     harfbuzz = harfbuzz.override {
       withIcu = true; withGraphite2 = true;
     };
+    # checking whether g++ supports C++14 or C++11... configure: error: no
+    stdenv = overrideCC stdenv gcc5;
   });
 
   libreoffice-still = lowPrio (callPackage ../applications/office/libreoffice/still.nix {
     inherit (perlPackages) ArchiveZip CompressZlib;
     inherit (gnome2) GConf ORBit2 gnome_vfs;
-    inherit (gnome3) gsettings_desktop_schemas defaultIconTheme;
+    inherit (gnome3) defaultIconTheme;
     zip = zip.override { enableNLS = false; };
-    #glm = glm_0954;
     bluez5 = bluez5_28;
     fontsConf = makeFontsConf {
       fontDirectories = [
@@ -15015,11 +16460,18 @@ with pkgs;
     harfbuzz = harfbuzz.override {
       withIcu = true; withGraphite2 = true;
     };
+    icu = icu58;
+    # checking whether g++ supports C++14 or C++11... configure: error: no
+    stdenv = overrideCC stdenv gcc5;
   });
 
 
   liferea = callPackage ../applications/networking/newsreaders/liferea {
-    inherit (gnome3) libpeas gsettings_desktop_schemas dconf;
+    inherit (gnome3) libpeas gsettings-desktop-schemas dconf;
+  };
+
+  lightworks = callPackage ../applications/video/lightworks {
+    portaudio = portaudio2014;
   };
 
   lingot = callPackage ../applications/audio/lingot {
@@ -15029,7 +16481,9 @@ with pkgs;
   linuxband = callPackage ../applications/audio/linuxband { };
 
   ledger2 = callPackage ../applications/office/ledger/2.6.3.nix { };
-  ledger3 = callPackage ../applications/office/ledger { };
+  ledger3 = callPackage ../applications/office/ledger {
+    boost = boost15x;
+  };
   ledger = ledger3;
   ledger-web = callPackage ../applications/office/ledger-web { };
 
@@ -15037,25 +16491,29 @@ with pkgs;
 
   lighttable = callPackage ../applications/editors/lighttable {};
 
+  libdsk = callPackage ../misc/emulators/libdsk { };
+
   links2 = callPackage ../applications/networking/browsers/links2 { };
 
   linphone = callPackage ../applications/networking/instant-messengers/linphone rec {
     polarssl = mbedtls_1_3;
   };
 
-  linuxsampler = callPackage ../applications/audio/linuxsampler {
-    bison = bison2;
-  };
+  linuxsampler = callPackage ../applications/audio/linuxsampler { };
 
   llpp = ocaml-ng.ocamlPackages_4_04.callPackage ../applications/misc/llpp { };
 
-  lmms = callPackage ../applications/audio/lmms { };
+  lmms = libsForQt5.callPackage ../applications/audio/lmms {
+    lame = null;
+    libsoundio = null;
+    portaudio = null;
+  };
 
   loxodo = callPackage ../applications/misc/loxodo { };
 
   lrzsz = callPackage ../tools/misc/lrzsz { };
 
-  luminanceHDR = libsForQt56.callPackage ../applications/graphics/luminance-hdr { };
+  luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };
 
   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
 
@@ -15071,7 +16529,11 @@ with pkgs;
     flavour = "git";
   };
 
-  lumail = callPackage ../applications/networking/mailreaders/lumail { };
+  looking-glass-client = callPackage ../applications/virtualization/looking-glass-client { };
+
+  lumail = callPackage ../applications/networking/mailreaders/lumail {
+    lua = lua5_1;
+  };
 
   lv2bm = callPackage ../applications/audio/lv2bm { };
 
@@ -15103,6 +16565,8 @@ with pkgs;
 
   matchbox = callPackage ../applications/window-managers/matchbox { };
 
+  mblaze = callPackage ../applications/networking/mailreaders/mblaze { };
+
   mcpp = callPackage ../development/compilers/mcpp { };
 
   mda_lv2 = callPackage ../applications/audio/mda-lv2 { };
@@ -15115,10 +16579,11 @@ with pkgs;
 
   meld = callPackage ../applications/version-management/meld { };
 
+  meme = callPackage ../applications/graphics/meme { };
+
   mcomix = callPackage ../applications/graphics/mcomix { };
 
-  mendeley = callPackage ../applications/office/mendeley {
-    qt5 = qt56;
+  mendeley = libsForQt5.callPackage ../applications/office/mendeley {
     gconf = pkgs.gnome2.GConf;
   };
 
@@ -15130,9 +16595,9 @@ with pkgs;
 
   mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; });
 
-  merkaartor = callPackage ../applications/misc/merkaartor { };
+  merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };
 
-  meshlab = callPackage ../applications/graphics/meshlab { };
+  meshlab = libsForQt5.callPackage ../applications/graphics/meshlab { };
 
   metersLv2 = callPackage ../applications/audio/meters_lv2 { };
 
@@ -15151,7 +16616,9 @@ with pkgs;
 
   minidjvu = callPackage ../applications/graphics/minidjvu { };
 
-  minikube = callPackage ../applications/networking/cluster/minikube { };
+  minikube = callPackage ../applications/networking/cluster/minikube {
+    inherit (darwin.apple_sdk.frameworks) vmnet;
+  };
 
   minitube = callPackage ../applications/video/minitube { };
 
@@ -15181,7 +16648,15 @@ with pkgs;
 
   mod-distortion = callPackage ../applications/audio/mod-distortion { };
 
-  monero = callPackage ../applications/misc/monero { };
+  monero = callPackage ../applications/altcoins/monero {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  monero-gui = libsForQt5.callPackage ../applications/altcoins/monero-gui { };
+
+  xmr-stak = callPackage ../applications/misc/xmr-stak {
+    hwloc = hwloc-nox;
+  };
 
   monkeysAudio = callPackage ../applications/audio/monkeys-audio { };
 
@@ -15263,6 +16738,8 @@ with pkgs;
 
   mm = callPackage ../applications/networking/instant-messengers/mm { };
 
+  mpc-qt = libsForQt5.callPackage ../applications/video/mpc-qt { };
+
   mplayer = callPackage ../applications/video/mplayer ({
     pulseSupport = config.pulseaudio or false;
     libdvdnav = libdvdnav_4_2_1;
@@ -15275,10 +16752,20 @@ with pkgs;
     };
 
   mpv = callPackage ../applications/video/mpv rec {
-    lua = lua5_1;
-    lua5_sockets = lua5_1_sockets;
+    inherit (luaPackages) luasocket;
     youtube-dl = pythonPackages.youtube-dl;
-    libva = libva-full;
+    libva      = libva-full;
+    waylandSupport     = stdenv.isLinux;
+    alsaSupport        = !stdenv.isDarwin;
+    pulseSupport       = !stdenv.isDarwin;
+    rubberbandSupport  = !stdenv.isDarwin;
+    dvdreadSupport     = !stdenv.isDarwin;
+    dvdnavSupport      = !stdenv.isDarwin;
+    drmSupport         = !stdenv.isDarwin;
+    vaapiSupport       = !stdenv.isDarwin;
+    x11Support         = !stdenv.isDarwin;
+    xineramaSupport    = !stdenv.isDarwin;
+    xvSupport          = !stdenv.isDarwin;
   };
 
   mpvScripts = {
@@ -15291,6 +16778,8 @@ with pkgs;
 
   mtpaint = callPackage ../applications/graphics/mtpaint { };
 
+  mucommander = callPackage ../applications/misc/mucommander { };
+
   multimarkdown = callPackage ../tools/typesetting/multimarkdown { };
 
   multimon-ng = callPackage ../applications/misc/multimon-ng { };
@@ -15299,7 +16788,6 @@ with pkgs;
       avahi = avahi.override {
         withLibdnssdCompat = true;
       };
-      qt5 = qt56; # Mumble doesn't work with Qt > 5.5
       jackSupport = config.mumble.jackSupport or false;
       speechdSupport = config.mumble.speechdSupport or false;
       pulseSupport = config.pulseaudio or false;
@@ -15310,7 +16798,6 @@ with pkgs;
       avahi = avahi.override {
         withLibdnssdCompat = true;
       };
-      qt5 = qt56; # Mumble doesn't work with Qt > 5.5
       jackSupport = config.mumble.jackSupport or false;
       speechdSupport = config.mumble.speechdSupport or false;
       pulseSupport = config.pulseaudio or false;
@@ -15352,12 +16839,10 @@ with pkgs;
 
   ostinato = callPackage ../applications/networking/ostinato { };
 
-  panamax_api = callPackage ../applications/networking/cluster/panamax/api {
-    ruby = ruby_2_1;
-  };
-  panamax_ui = callPackage ../applications/networking/cluster/panamax/ui {
-    ruby = ruby_2_1;
-  };
+  panamax_api = callPackage ../applications/networking/cluster/panamax/api { };
+  panamax_ui = callPackage ../applications/networking/cluster/panamax/ui { };
+
+  partio = callPackage ../development/libraries/partio {};
 
   pcmanfm = callPackage ../applications/misc/pcmanfm { };
 
@@ -15377,15 +16862,23 @@ with pkgs;
 
   polybar = callPackage ../applications/misc/polybar { };
 
+  ptex = callPackage ../development/libraries/ptex {};
+
   rssguard = libsForQt5.callPackage ../applications/networking/feedreaders/rssguard { };
 
   scudcloud = callPackage ../applications/networking/instant-messengers/scudcloud { };
 
-  shotcut = libsForQt5.callPackage ../applications/video/shotcut { };
+  shotcut = libsForQt5.callPackage ../applications/video/shotcut {
+    libmlt = mlt;
+  };
+
+  shogun = callPackage ../applications/science/machine-learning/shogun { };
 
   smplayer = libsForQt5.callPackage ../applications/video/smplayer { };
 
-  smtube = libsForQt56.callPackage ../applications/video/smtube {};
+  smtube = libsForQt5.callPackage ../applications/video/smtube {};
+
+  stride = callPackage ../applications/networking/instant-messengers/stride { };
 
   sudolikeaboss = callPackage ../tools/security/sudolikeaboss { };
 
@@ -15434,7 +16927,9 @@ with pkgs;
 
   mupdf = callPackage ../applications/misc/mupdf { };
 
-  diffpdf = callPackage ../applications/misc/diffpdf { };
+  diffpdf = libsForQt5.callPackage ../applications/misc/diffpdf { };
+
+  diff-pdf = callPackage ../applications/misc/diff-pdf { wxGTK = wxGTK31; };
 
   mlocate = callPackage ../tools/misc/mlocate { };
 
@@ -15442,6 +16937,8 @@ with pkgs;
 
   mythtv = callPackage ../applications/video/mythtv { };
 
+  micro = callPackage ../applications/editors/micro { };
+
   nano = callPackage ../applications/editors/nano { };
 
   nanoblogger = callPackage ../applications/misc/nanoblogger { };
@@ -15462,9 +16959,13 @@ with pkgs;
 
   nomacs = libsForQt5.callPackage ../applications/graphics/nomacs { };
 
-  notepadqq = libsForQt56.callPackage ../applications/editors/notepadqq { };
+  notepadqq = libsForQt5.callPackage ../applications/editors/notepadqq { };
 
-  notmuch = callPackage ../applications/networking/mailreaders/notmuch { };
+  notbit = callPackage ../applications/networking/mailreaders/notbit { };
+
+  notmuch = callPackage ../applications/networking/mailreaders/notmuch {
+    gmime = gmime3;
+  };
 
   notmuch-mutt = callPackage ../applications/networking/mailreaders/notmuch/mutt.nix { };
 
@@ -15472,12 +16973,6 @@ with pkgs;
 
   notmuch-addrlookup = callPackage ../applications/networking/mailreaders/notmuch-addrlookup { };
 
-  # Open Stack
-  nova = callPackage ../applications/virtualization/openstack/nova.nix { };
-  keystone = callPackage ../applications/virtualization/openstack/keystone.nix { };
-  neutron = callPackage ../applications/virtualization/openstack/neutron.nix { };
-  glance = callPackage ../applications/virtualization/openstack/glance.nix { };
-
   nova-filters =  callPackage ../applications/audio/nova-filters { };
 
   nspluginwrapper = callPackage ../applications/networking/browsers/mozilla-plugins/nspluginwrapper {};
@@ -15517,25 +17012,43 @@ with pkgs;
 
   opencpn = callPackage ../applications/misc/opencpn { };
 
-  openimageio = callPackage ../applications/graphics/openimageio { };
+  openfx = callPackage ../development/libraries/openfx {};
+
+  openimageio = callPackage ../applications/graphics/openimageio {
+    stdenv = overrideCC stdenv gcc6;
+  };
 
   openjump = callPackage ../applications/misc/openjump { };
 
   openscad = callPackage ../applications/graphics/openscad {};
 
+  opentimestamps-client = python3Packages.callPackage ../tools/misc/opentimestamps-client {};
+
+  opentx = callPackage ../applications/misc/opentx { };
+
   opera = callPackage ../applications/networking/browsers/opera {};
 
+  orca = python3Packages.callPackage ../applications/misc/orca {
+    inherit (gnome3) yelp-tools;
+  };
+
+  osm2xmap = callPackage ../applications/misc/osm2xmap {
+    libyamlcpp = libyamlcpp_0_3;
+  };
+
   osmctools = callPackage ../applications/misc/osmctools { };
 
   vivaldi = callPackage ../applications/networking/browsers/vivaldi {};
 
+  vivaldi-ffmpeg-codecs = callPackage ../applications/networking/browsers/vivaldi/ffmpeg-codecs.nix {};
+
   openmpt123 = callPackage ../applications/audio/openmpt123 {};
 
   opusfile = callPackage ../applications/audio/opusfile { };
 
   opusTools = callPackage ../applications/audio/opus-tools { };
 
-  orpie = callPackage ../applications/misc/orpie { gsl = gsl_1; };
+  orpie = callPackage ../applications/misc/orpie { gsl = gsl_1; ocamlPackages = ocamlPackages_4_02; };
 
   osmo = callPackage ../applications/office/osmo { };
 
@@ -15550,9 +17063,9 @@ with pkgs;
 
   pamixer = callPackage ../applications/audio/pamixer { };
 
-  pan = callPackage ../applications/networking/newsreaders/pan {
-    spellChecking = false;
-  };
+  ncpamixer = callPackage ../applications/audio/ncpamixer { };
+
+  pan = callPackage ../applications/networking/newsreaders/pan { };
 
   panotools = callPackage ../applications/graphics/panotools { };
 
@@ -15562,7 +17075,7 @@ with pkgs;
 
   pavucontrol = callPackage ../applications/audio/pavucontrol { };
 
-  paraview = callPackage ../applications/graphics/paraview { };
+  paraview = libsForQt5.callPackage ../applications/graphics/paraview { };
 
   packet = callPackage ../development/tools/packet { };
 
@@ -15593,6 +17106,8 @@ with pkgs;
     inherit (gst_all_1) gstreamer gst-plugins-base;
   };
 
+  peek = callPackage ../applications/video/peek { };
+
   pflask = callPackage ../os-specific/linux/pflask {};
 
   photoqt = libsForQt5.callPackage ../applications/graphics/photoqt { };
@@ -15621,11 +17136,11 @@ with pkgs;
     plugins = [];
   };
 
-  pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
+  pidgin-latex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
     texLive = texlive.combined.scheme-basic;
   };
 
-  pidginmsnpecan = callPackage ../applications/networking/instant-messengers/pidgin-plugins/msn-pecan { };
+  pidgin-msn-pecan = callPackage ../applications/networking/instant-messengers/pidgin-plugins/msn-pecan { };
 
   pidgin-mra = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-mra { };
 
@@ -15635,13 +17150,13 @@ with pkgs;
 
   pidgin-xmpp-receipts = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts { };
 
-  pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
+  pidgin-otr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
 
-  pidginosd = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-osd { };
+  pidgin-osd = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-osd { };
 
-  pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
+  pidgin-sipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
 
-  pidginwindowmerge = callPackage ../applications/networking/instant-messengers/pidgin-plugins/window-merge { };
+  pidgin-window-merge = callPackage ../applications/networking/instant-messengers/pidgin-plugins/window-merge { };
 
   purple-hangouts = callPackage ../applications/networking/instant-messengers/pidgin-plugins/purple-hangouts { };
 
@@ -15668,7 +17183,7 @@ with pkgs;
   pinfo = callPackage ../applications/misc/pinfo { };
 
   pinpoint = callPackage ../applications/office/pinpoint {
-    inherit (gnome3) clutter clutter_gtk;
+    inherit (gnome3) clutter clutter-gtk;
   };
 
   pinta = callPackage ../applications/graphics/pinta {
@@ -15713,9 +17228,10 @@ with pkgs;
     notifySupport   = config.profanity.notifySupport   or true;
     traySupport     = config.profanity.traySupport     or true;
     autoAwaySupport = config.profanity.autoAwaySupport or true;
+    python = python3;
   };
 
-  psi = kde4.callPackage ../applications/networking/instant-messengers/psi { };
+  psi = callPackage ../applications/networking/instant-messengers/psi { };
 
   psi-plus = callPackage ../applications/networking/instant-messengers/psi-plus { };
 
@@ -15725,7 +17241,9 @@ with pkgs;
 
   ptask = callPackage ../applications/misc/ptask { };
 
-  pulseview = callPackage ../applications/science/electronics/pulseview { };
+  pulseaudio-dlna = callPackage ../applications/audio/pulseaudio-dlna { };
+
+  pulseview = libsForQt5.callPackage ../applications/science/electronics/pulseview { };
 
   puredata = callPackage ../applications/audio/puredata { };
   puredata-with-plugins = plugins: callPackage ../applications/audio/puredata/wrapper.nix { inherit plugins; };
@@ -15738,27 +17256,32 @@ with pkgs;
 
   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
 
-  qbittorrent = libsForQt5.callPackage ../applications/networking/p2p/qbittorrent {
-    boost = boost;
-    libtorrentRasterbar = libtorrentRasterbar_1_0;
-  };
+  qbittorrent = libsForQt5.callPackage ../applications/networking/p2p/qbittorrent { };
 
   eiskaltdcpp = callPackage ../applications/networking/p2p/eiskaltdcpp {
     lua5 = lua5_1;
     miniupnpc = miniupnpc_1;
   };
 
+  qdirstat = libsForQt5.callPackage ../applications/misc/qdirstat {};
+
   qemu = callPackage ../applications/virtualization/qemu {
     inherit (darwin.apple_sdk.frameworks) CoreServices Cocoa;
     inherit (darwin.stubs) rez setfile;
   };
 
+  qemu-riscv = callPackage ../applications/virtualization/qemu/riscv.nix {};
+
   qgis = callPackage ../applications/gis/qgis {};
 
-  qgroundcontrol = libsForQt56.callPackage ../applications/science/robotics/qgroundcontrol { };
+  qgroundcontrol = libsForQt5.callPackage ../applications/science/robotics/qgroundcontrol { };
 
   qjackctl = libsForQt5.callPackage ../applications/audio/qjackctl { };
 
+  qmapshack = libsForQt5.callPackage ../applications/misc/qmapshack { };
+
+  qmediathekview = libsForQt5.callPackage ../applications/video/qmediathekview { };
+
   qmetro = callPackage ../applications/misc/qmetro { };
 
   qmidinet = callPackage ../applications/audio/qmidinet { };
@@ -15771,22 +17294,21 @@ with pkgs;
 
   qrcode = callPackage ../tools/graphics/qrcode {};
 
-  qsampler = callPackage ../applications/audio/qsampler { };
+  qsampler = libsForQt5.callPackage ../applications/audio/qsampler { };
 
   qscreenshot = callPackage ../applications/graphics/qscreenshot {
     qt = qt4;
   };
 
-  # 0.5.7 segfaults when opening the main panel with qt 5.7 and fails to compile with qt 5.8
-  qsyncthingtray = libsForQt56.callPackage ../applications/misc/qsyncthingtray { };
+  qsyncthingtray = libsForQt5.callPackage ../applications/misc/qsyncthingtray { };
 
   qstopmotion = callPackage ../applications/video/qstopmotion { };
 
-  qsynth = callPackage ../applications/audio/qsynth { };
+  qsynth = libsForQt5.callPackage ../applications/audio/qsynth { };
 
   qtbitcointrader = callPackage ../applications/misc/qtbitcointrader { };
 
-  qtox = libsForQt5.callPackage ../applications/networking/instant-messengers/qtox { };
+  qtox = libsForQt5.callPackage ../applications/networking/instant-messengers/qtox { ffmpeg = ffmpeg_2; };
 
   qtpass = libsForQt5.callPackage ../applications/misc/qtpass { };
 
@@ -15818,24 +17340,46 @@ with pkgs;
     withKDE = false;
   };
 
-  quassel-webserver = callPackage ../applications/networking/irc/quassel-webserver { };
+  quassel-webserver = nodePackages.quassel-webserver;
 
   quirc = callPackage ../tools/graphics/quirc {};
 
   quiterss = libsForQt5.callPackage ../applications/networking/newsreaders/quiterss {};
 
-  quodlibet-without-gst-plugins = callPackage ../applications/audio/quodlibet { };
+  falkon = libsForQt5.callPackage ../applications/networking/browsers/falkon { };
 
   quodlibet = callPackage ../applications/audio/quodlibet {
-    withGstPlugins = true;
-    gst-plugins-bad = null;
+    keybinder3 = null;
+    libmodplug = null;
+    kakasi = null;
+    libappindicator-gtk3 = null;
   };
 
-  qutebrowser = libsForQt5.callPackage ../applications/networking/browsers/qutebrowser {
-    inherit (python3Packages) buildPythonApplication pyqt5 jinja2 pygments pyyaml pypeg2 cssutils pyopengl;
-    inherit (gst_all_1) gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav;
+  quodlibet-without-gst-plugins = quodlibet.override {
+    withGstPlugins = false;
+    tag = "-without-gst-plugins";
   };
 
+  quodlibet-xine = quodlibet.override { xineBackend = true; tag = "-xine"; };
+
+  quodlibet-full = callPackage ../applications/audio/quodlibet {
+    inherit (gnome2) gtksourceview;
+    withDbusPython = true;
+    withPyInotify = true;
+    withMusicBrainzNgs = true;
+    withPahoMqtt = true;
+    keybinder3 = keybinder3;
+    libmodplug = libmodplug;
+    kakasi = kakasi;
+    webkitgtk = webkitgtk24x-gtk3;
+    libappindicator-gtk3 = libappindicator-gtk3;
+    tag = "-full";
+  };
+
+  quodlibet-xine-full = quodlibet-full.override { xineBackend = true; tag = "-xine-full"; };
+
+  qutebrowser = libsForQt5.callPackage ../applications/networking/browsers/qutebrowser { };
+
   rabbitvcs = callPackage ../applications/version-management/rabbitvcs {};
 
   rakarrack = callPackage ../applications/audio/rakarrack {
@@ -15846,38 +17390,34 @@ with pkgs;
     rancher-compose
     rancher-compose_0_10;
 
-  renoise = callPackage ../applications/audio/renoise {
-    demo = false;
+  renoise = callPackage ../applications/audio/renoise {};
+
+  radiotray-ng = callPackage ../applications/audio/radiotray-ng {
+    wxGTK = wxGTK30;
   };
 
-  rapcad = libsForQt56.callPackage ../applications/graphics/rapcad { boost = boost159; };
+  rapcad = libsForQt5.callPackage ../applications/graphics/rapcad { boost = boost159; };
 
   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
 
   ratmen = callPackage ../tools/X11/ratmen {};
 
-  ratox = callPackage ../applications/networking/instant-messengers/ratox {
-    libtoxcore = libtoxcore-old;
-  };
+  ratox = callPackage ../applications/networking/instant-messengers/ratox { };
 
   ratpoison = callPackage ../applications/window-managers/ratpoison { };
 
   rawtherapee = callPackage ../applications/graphics/rawtherapee {
     fftw = fftwSinglePrec;
-    cmake = cmake_2_8; # problems after 3.4 -> 3.6.0
   };
 
-  rawtherapee-git = lowPrio (callPackage ../applications/graphics/rawtherapee/dev.nix {
-    fftw = fftwSinglePrec;
-    cmake = cmake_2_8; # problems after 3.4 -> 3.6.0
-  });
-
   rclone = callPackage ../applications/networking/sync/rclone { };
 
   rcs = callPackage ../applications/version-management/rcs { };
 
   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
 
+  rdedup = callPackage ../tools/backup/rdedup { };
+
   rdup = callPackage ../tools/backup/rdup { };
 
   realpine = callPackage ../applications/networking/mailreaders/realpine {
@@ -15886,13 +17426,14 @@ with pkgs;
 
   recode = callPackage ../tools/text/recode { };
 
-  remotebox = callPackage ../applications/virtualization/remotebox { };
+  rednotebook = python3Packages.callPackage ../applications/editors/rednotebook { };
 
-  retroshare = callPackage ../applications/networking/p2p/retroshare { };
+  remotebox = callPackage ../applications/virtualization/remotebox { };
 
-  retroshare06 = lowPrio (callPackage ../applications/networking/p2p/retroshare/0.6.nix { });
+  retroshare = libsForQt5.callPackage ../applications/networking/p2p/retroshare { };
+  retroshare06 = retroshare;
 
-  ricochet = libsForQt56.callPackage ../applications/networking/instant-messengers/ricochet { };
+  ricochet = libsForQt5.callPackage ../applications/networking/instant-messengers/ricochet { };
 
   ripser = callPackage ../applications/science/math/ripser { };
 
@@ -15904,6 +17445,8 @@ with pkgs;
 
   rofi-menugen = callPackage ../applications/misc/rofi-menugen { };
 
+  rpcs3 = libsForQt5.callPackage ../misc/emulators/rpcs3 { };
+
   rstudio = libsForQt5.callPackage ../applications/editors/rstudio { };
 
   rsync = callPackage ../applications/networking/sync/rsync {
@@ -15912,6 +17455,8 @@ with pkgs;
   };
   rrsync = callPackage ../applications/networking/sync/rsync/rrsync.nix {};
 
+  rtl_433 = callPackage ../applications/misc/rtl_433 { };
+
   rtl-sdr = callPackage ../applications/misc/rtl-sdr { };
 
   rtv = callPackage ../applications/misc/rtv { };
@@ -15931,6 +17476,7 @@ with pkgs;
 
   rxvt_unicode-with-plugins = callPackage ../applications/misc/rxvt_unicode/wrapper.nix {
     plugins = [
+      urxvt_autocomplete_all_the_things
       urxvt_perl
       urxvt_perls
       urxvt_tabbedex
@@ -15941,6 +17487,7 @@ with pkgs;
   };
 
   # urxvt plugins
+  urxvt_autocomplete_all_the_things = callPackage ../applications/misc/rxvt_unicode-plugins/urxvt-autocomplete-all-the-things { };
   urxvt_perl = callPackage ../applications/misc/rxvt_unicode-plugins/urxvt-perl { };
   urxvt_perls = callPackage ../applications/misc/rxvt_unicode-plugins/urxvt-perls { };
   urxvt_tabbedex = callPackage ../applications/misc/rxvt_unicode-plugins/urxvt-tabbedex { };
@@ -15952,17 +17499,19 @@ with pkgs;
 
   udevil = callPackage ../applications/misc/udevil {};
 
-  udiskie = callPackage ../applications/misc/udiskie { };
+  udiskie = python3Packages.callPackage ../applications/misc/udiskie { };
 
   sakura = callPackage ../applications/misc/sakura {
     vte = gnome3.vte;
   };
 
+  sayonara = callPackage ../applications/audio/sayonara { };
+
   sbagen = callPackage ../applications/misc/sbagen { };
 
-  scantailor = callPackage ../applications/graphics/scantailor {
-    boost = boost155;
-  };
+  scantailor = callPackage ../applications/graphics/scantailor { };
+
+  scantailor-advanced = qt5.callPackage ../applications/graphics/scantailor/advanced.nix { };
 
   sc-im = callPackage ../applications/misc/sc-im { };
 
@@ -15972,10 +17521,10 @@ with pkgs;
     inherit (gnome2) libart_lgpl;
   };
 
-  seafile-client = callPackage ../applications/networking/seafile-client { };
+  seafile-client = libsForQt5.callPackage ../applications/networking/seafile-client { };
 
   seeks = callPackage ../tools/networking/p2p/seeks {
-    protobuf = protobuf2_5;
+    protobuf = protobuf3_1;
   };
 
   seg3d = callPackage ../applications/graphics/seg3d {
@@ -15992,18 +17541,18 @@ with pkgs;
 
   shutter = callPackage ../applications/graphics/shutter { };
 
-  simple-scan = callPackage ../applications/graphics/simple-scan { };
+  simple-scan = gnome3.simple-scan;
 
   siproxd = callPackage ../applications/networking/siproxd { };
 
-  skype = callPackage_i686 ../applications/networking/instant-messengers/skype { };
-
   skypeforlinux = callPackage ../applications/networking/instant-messengers/skypeforlinux { };
 
   skype4pidgin = callPackage ../applications/networking/instant-messengers/pidgin-plugins/skype4pidgin { };
 
   skype_call_recorder = callPackage ../applications/networking/instant-messengers/skype-call-recorder { };
 
+  SkypeExport = callPackage ../applications/networking/instant-messengers/SkypeExport { };
+
   slmenu = callPackage ../applications/misc/slmenu {};
 
   slop = callPackage ../tools/misc/slop {};
@@ -16024,20 +17573,25 @@ with pkgs;
 
   spideroak = callPackage ../applications/networking/spideroak { };
 
-  squishyball = callPackage ../applications/audio/squishyball { };
+  squishyball = callPackage ../applications/audio/squishyball {
+    ncurses = ncurses5;
+  };
 
   ssvnc = callPackage ../applications/networking/remote/ssvnc { };
 
-  styx = callPackage ../applications/misc/styx { };
+  stupidterm = callPackage ../applications/misc/stupidterm {
+    vte = gnome3.vte;
+    gtk = gtk3;
+  };
 
-  styx-themes = callPackage ../applications/misc/styx/themes.nix { };
+  styx = callPackage ../applications/misc/styx { };
 
   tecoc = callPackage ../applications/editors/tecoc { };
 
   viber = callPackage ../applications/networking/instant-messengers/viber { };
 
   sonic-pi = callPackage ../applications/audio/sonic-pi {
-    ruby = ruby_2_2;
+    ruby = ruby_2_3;
   };
 
   st = callPackage ../applications/misc/st {
@@ -16046,11 +17600,6 @@ with pkgs;
     extraLibs = config.st.extraLibs or [];
   };
 
-  st-wayland = callPackage ../applications/misc/st/wayland.nix {
-    conf = config.st.conf or null;
-    patches = config.st.patches or null;
-  };
-
   xst = callPackage ../applications/misc/st/xst.nix { };
 
   stag = callPackage ../applications/misc/stag {
@@ -16059,9 +17608,7 @@ with pkgs;
 
   stella = callPackage ../misc/emulators/stella { };
 
-  statsd = callPackage ../tools/networking/statsd {
-    nodejs = nodejs-4_x;
-  };
+  statsd = nodePackages.statsd;
 
   linuxstopmotion = callPackage ../applications/video/linuxstopmotion { };
 
@@ -16081,7 +17628,7 @@ with pkgs;
   bittorrentSync14 = callPackage ../applications/networking/bittorrentsync/1.4.x.nix { };
   bittorrentSync20 = callPackage ../applications/networking/bittorrentsync/2.0.x.nix { };
 
-  dropbox = libsForQt5.callPackage ../applications/networking/dropbox { };
+  dropbox = callPackage ../applications/networking/dropbox { };
 
   dropbox-cli = callPackage ../applications/networking/dropbox-cli { };
 
@@ -16094,10 +17641,14 @@ with pkgs;
 
   lightdm_qt = lightdm.override { withQt5 = true; };
 
-  lightdm_gtk_greeter = callPackage ../applications/display-managers/lightdm-gtk-greeter { };
+  lightdm_gtk_greeter = callPackage ../applications/display-managers/lightdm-gtk-greeter {
+    inherit (xfce) exo;
+  };
 
   slic3r = callPackage ../applications/misc/slic3r { };
 
+  slic3r-prusa3d = callPackage ../applications/misc/slic3r-prusa3d { };
+
   curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
   cura_stable = callPackage ../applications/misc/cura/stable.nix {
     curaengine = curaengine_stable;
@@ -16112,6 +17663,8 @@ with pkgs;
 
   peru = callPackage ../applications/version-management/peru {};
 
+  pmidi = callPackage ../applications/audio/pmidi { };
+
   printrun = callPackage ../applications/misc/printrun { };
 
   sddm = libsForQt5.callPackage ../applications/display-managers/sddm { };
@@ -16128,9 +17681,7 @@ with pkgs;
 
   smartdeblur = callPackage ../applications/graphics/smartdeblur { };
 
-  snapper = callPackage ../tools/misc/snapper {
-    btrfs-progs = btrfs-progs_4_4_1;
-  };
+  snapper = callPackage ../tools/misc/snapper { };
 
   snd = callPackage ../applications/audio/snd { };
 
@@ -16138,10 +17689,14 @@ with pkgs;
 
   sipp = callPackage ../development/tools/misc/sipp { };
 
+  skanlite = libsForQt5.callPackage ../applications/office/skanlite { };
+
   sonic-visualiser = libsForQt5.callPackage ../applications/audio/sonic-visualiser {
     inherit (pkgs.vamp) vampSDK;
   };
 
+  soulseekqt = callPackage ../applications/networking/p2p/soulseekqt { };
+
   sox = callPackage ../applications/misc/audio/sox {
     enableLame = config.sox.enableLame or false;
   };
@@ -16176,7 +17731,7 @@ with pkgs;
 
   stalonetray = callPackage ../applications/window-managers/stalonetray {};
 
-  inherit (ocamlPackages_4_03) stog;
+  inherit (ocamlPackages) stog;
 
   stp = callPackage ../applications/science/logic/stp {};
 
@@ -16186,6 +17741,7 @@ with pkgs;
 
   stumpwm-git = stumpwm.override {
     version = "git";
+    inherit sbcl lispPackages;
   };
 
   sublime = callPackage ../applications/editors/sublime { };
@@ -16216,19 +17772,25 @@ with pkgs;
 
   surf = callPackage ../applications/networking/browsers/surf { gtk = gtk2; };
 
+  sunvox = callPackage ../applications/audio/sunvox { };
+
   swh_lv2 = callPackage ../applications/audio/swh-lv2 { };
 
   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed { };
 
   symlinks = callPackage ../tools/system/symlinks { };
 
-  syncthing = callPackage ../applications/networking/syncthing { };
+  syncplay = callPackage ../applications/networking/syncplay { };
 
-  syncthing012 = callPackage ../applications/networking/syncthing012 { };
+  inherit (callPackages ../applications/networking/syncthing { })
+    syncthing
+    syncthing-cli
+    syncthing-discovery
+    syncthing-relay;
 
-  syncthing013 = callPackage ../applications/networking/syncthing013 { };
+  syncthing-gtk = python2Packages.callPackage ../applications/networking/syncthing-gtk { };
 
-  syncthing-inotify = callPackage ../applications/networking/syncthing/inotify.nix { };
+  syncthing-tray = callPackage ../applications/misc/syncthing-tray { };
 
   # linux only by now
   synergy = callPackage ../applications/misc/synergy { };
@@ -16253,10 +17815,10 @@ with pkgs;
     gconf = gnome2.GConf;
   };
 
-  teamspeak_client = libsForQt56.callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
+  teamspeak_client = libsForQt5.callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
   teamspeak_server = callPackage ../applications/networking/instant-messengers/teamspeak/server.nix { };
 
-  taskjuggler = callPackage ../applications/misc/taskjuggler { ruby = ruby_2_0; };
+  uaskjuggler = callPackage ../applications/misc/taskjuggler { };
 
   tasknc = callPackage ../applications/misc/tasknc { };
 
@@ -16266,24 +17828,22 @@ with pkgs;
 
   taskserver = callPackage ../servers/misc/taskserver { };
 
-  tdesktop = qt5.callPackage ../applications/networking/instant-messengers/telegram/tdesktop {
-    inherit (pythonPackages) gyp;
-    gcc = gcc6;
-  };
+  tdesktopPackages = callPackage ../applications/networking/instant-messengers/telegram/tdesktop { };
+  tdesktop = tdesktopPackages.stable;
 
   telegram-cli = callPackage ../applications/networking/instant-messengers/telegram/telegram-cli { };
 
-  telepathy_gabble = callPackage ../applications/networking/instant-messengers/telepathy/gabble { };
+  telepathy-gabble = callPackage ../applications/networking/instant-messengers/telepathy/gabble { };
 
-  telepathy_haze = callPackage ../applications/networking/instant-messengers/telepathy/haze {};
+  telepathy-haze = callPackage ../applications/networking/instant-messengers/telepathy/haze {};
 
-  telepathy_logger = callPackage ../applications/networking/instant-messengers/telepathy/logger {};
+  telepathy-logger = callPackage ../applications/networking/instant-messengers/telepathy/logger {};
 
-  telepathy_mission_control = callPackage ../applications/networking/instant-messengers/telepathy/mission-control { };
+  telepathy-mission-control = callPackage ../applications/networking/instant-messengers/telepathy/mission-control { };
 
-  telepathy_salut = callPackage ../applications/networking/instant-messengers/telepathy/salut {};
+  telepathy-salut = callPackage ../applications/networking/instant-messengers/telepathy/salut {};
 
-  telepathy_idle = callPackage ../applications/networking/instant-messengers/telepathy/idle {};
+  telepathy-idle = callPackage ../applications/networking/instant-messengers/telepathy/idle {};
 
   termdown = (newScope pythonPackages) ../applications/misc/termdown { };
 
@@ -16293,10 +17853,8 @@ with pkgs;
     vte = gnome2.vte.override { pythonSupport = true; };
   };
 
-  deepin-terminal = callPackage ../applications/misc/deepin-terminal {
+  lxterminal = callPackage ../applications/misc/lxterminal {
     vte = gnome3.vte;
-    wnck = libwnck3;
-    gee = libgee_0_8;
   };
 
   termite = callPackage ../applications/misc/termite {
@@ -16318,6 +17876,8 @@ with pkgs;
     enableGTK3 = true;
   };
 
+  thunderbolt = callPackage ../os-specific/linux/thunderbolt {};
+
   thunderbird-bin = callPackage ../applications/networking/mailreaders/thunderbird-bin {
     gconf = pkgs.gnome2.GConf;
     inherit (pkgs.gnome2) libgnome libgnomeui;
@@ -16331,7 +17891,11 @@ with pkgs;
     gtk = gtk3;
   };
 
-  timbreid = callPackage ../applications/audio/pd-plugins/timbreid { };
+  timbreid = callPackage ../applications/audio/pd-plugins/timbreid {
+    fftw = fftwSinglePrec;
+  };
+
+  timescaledb = callPackage ../servers/sql/postgresql/timescaledb {};
 
   timewarrior = callPackage ../applications/misc/timewarrior { };
 
@@ -16339,6 +17903,8 @@ with pkgs;
 
   tint2 = callPackage ../applications/misc/tint2 { };
 
+  tixati = callPackage ../applications/networking/p2p/tixati { };
+
   tkcvs = callPackage ../applications/version-management/tkcvs { };
 
   tla = callPackage ../applications/version-management/arch { };
@@ -16357,8 +17923,11 @@ with pkgs;
     enableKDE       = config.tomahawk.enableKDE       or false;
     enableTelepathy = config.tomahawk.enableTelepathy or false;
     quazip = quazip_qt4;
+    boost = boost155;
   };
 
+  topydo = callPackage ../applications/misc/topydo {};
+
   torchPackages = recurseIntoAttrs ( callPackage ../applications/science/machine-learning/torch {
     lua = luajit ;
   } );
@@ -16375,15 +17944,17 @@ with pkgs;
 
   toxic = callPackage ../applications/networking/instant-messengers/toxic { };
 
+  tqsl = callPackage ../applications/misc/tqsl { };
+
   transcode = callPackage ../applications/audio/transcode { };
 
   transcribe = callPackage ../applications/audio/transcribe { };
 
   transmission = callPackage ../applications/networking/p2p/transmission { };
-  transmission_gtk = transmission.override { enableGTK3 = true; };
+  transmission-gtk = transmission.override { enableGTK3 = true; };
 
   transmission-remote-cli = callPackage ../applications/networking/p2p/transmission-remote-cli {};
-  transmission_remote_gtk = callPackage ../applications/networking/p2p/transmission-remote-gtk {};
+  transmission-remote-gtk = callPackage ../applications/networking/p2p/transmission-remote-gtk {};
 
   transgui = callPackage ../applications/networking/p2p/transgui { };
 
@@ -16397,7 +17968,7 @@ with pkgs;
 
   tribler = callPackage ../applications/networking/p2p/tribler { };
 
-  trojita = libsForQt56.callPackage ../applications/networking/mailreaders/trojita { };
+  trojita = libsForQt5.callPackage ../applications/networking/mailreaders/trojita { };
 
   tsearch_extras = callPackage ../servers/sql/postgresql/tsearch_extras { };
 
@@ -16411,8 +17982,12 @@ with pkgs;
 
   twmn = libsForQt5.callPackage ../applications/misc/twmn { };
 
+  testssl = callPackage ../applications/networking/testssl { };
+
   umurmur = callPackage ../applications/networking/umurmur { };
 
+  udocker = pythonPackages.callPackage ../tools/virtualization/udocker { };
+
   unigine-valley = callPackage ../applications/graphics/unigine-valley { };
 
   inherit (ocamlPackages) unison;
@@ -16421,6 +17996,8 @@ with pkgs;
 
   urh = callPackage ../applications/misc/urh { };
 
+  uuagc = haskell.lib.justStaticExecutables haskellPackages.uuagc;
+
   uucp = callPackage ../tools/misc/uucp { };
 
   uvccapture = callPackage ../applications/video/uvccapture { };
@@ -16433,7 +18010,7 @@ with pkgs;
 
   utox = callPackage ../applications/networking/instant-messengers/utox { };
 
-  vanitygen = callPackage ../applications/misc/vanitygen { };
+  valentina = libsForQt5.callPackage ../applications/misc/valentina { };
 
   vanubi = callPackage ../applications/editors/vanubi { };
 
@@ -16457,7 +18034,7 @@ with pkgs;
     inherit (gnome3) defaultIconTheme;
   };
 
-  macvim = callPackage ../applications/editors/vim/macvim.nix { stdenv = clangStdenv; ruby = ruby_2_2; };
+  macvim = callPackage ../applications/editors/vim/macvim.nix { stdenv = clangStdenv; };
 
   vimHugeX = vim_configurable;
 
@@ -16491,7 +18068,13 @@ with pkgs;
 
   vimpc = callPackage ../applications/audio/vimpc { };
 
-  neovim = callPackage ../applications/editors/neovim { };
+  wrapNeovim = callPackage ../applications/editors/neovim/wrapper.nix { };
+
+  neovim-unwrapped = callPackage ../applications/editors/neovim {
+    luaPackages = luajitPackages;
+  };
+
+  neovim = wrapNeovim neovim-unwrapped { };
 
   neovim-qt = libsForQt5.callPackage ../applications/editors/neovim/qt.nix { };
 
@@ -16505,18 +18088,19 @@ with pkgs;
 
   virt-viewer = callPackage ../applications/virtualization/virt-viewer { };
 
-  virt-top = callPackage ../applications/virtualization/virt-top {
-    ocamlPackages = ocamlPackages_4_01_0;
-  };
+  virt-top = callPackage ../applications/virtualization/virt-top { };
+
+  virt-what = callPackage ../applications/virtualization/virt-what { };
 
   virtmanager = callPackage ../applications/virtualization/virt-manager {
     vte = gnome3.vte;
     dconf = gnome3.dconf;
-    spice_gtk = spice_gtk;
     system-libvirt = libvirt;
   };
 
-  virtmanager-qt = libsForQt5.callPackage ../applications/virtualization/virt-manager/qt.nix { };
+  virtmanager-qt = libsForQt5.callPackage ../applications/virtualization/virt-manager/qt.nix {
+    qtermwidget = lxqt.qtermwidget;
+  };
 
   virtinst = callPackage ../applications/virtualization/virtinst {};
 
@@ -16546,6 +18130,8 @@ with pkgs;
       else null;
   };
 
+  vpcs = callPackage ../applications/virtualization/vpcs { };
+
   primusLib = callPackage ../tools/X11/primus/lib.nix {
     nvidia_x11 = linuxPackages.nvidia_x11.override { libsOnly = true; };
   };
@@ -16570,6 +18156,8 @@ with pkgs;
       else null;
   };
 
+  uvcdynctrl = callPackage ../os-specific/linux/uvcdynctrl { };
+
   vkeybd = callPackage ../applications/audio/vkeybd {};
 
   vlc = callPackage ../applications/video/vlc {
@@ -16587,7 +18175,7 @@ with pkgs;
 
   vnstat = callPackage ../applications/networking/vnstat { };
 
-  vogl = qt56.callPackage ../development/tools/vogl { };
+  vogl = libsForQt5.callPackage ../development/tools/vogl { };
 
   volnoti = callPackage ../applications/misc/volnoti { };
 
@@ -16595,8 +18183,16 @@ with pkgs;
 
   vscode = callPackage ../applications/editors/vscode { };
 
+  vscode-with-extensions = callPackage ../applications/editors/vscode-with-extensions {};
+
+  vscode-utils = callPackage ../misc/vscode-extensions/vscode-utils.nix {};
+
+  vscode-extensions = recurseIntoAttrs (callPackage ../misc/vscode-extensions {});
+
   vue = callPackage ../applications/misc/vue { };
 
+  vuze = callPackage ../applications/networking/p2p/vuze { };
+
   vwm = callPackage ../applications/window-managers/vwm { };
 
   vym = callPackage ../applications/misc/vym { };
@@ -16630,12 +18226,20 @@ with pkgs;
 
   wayv = callPackage ../tools/X11/wayv {};
 
+  webtorrent_desktop = callPackage ../applications/video/webtorrent_desktop {};
+
   weechat = callPackage ../applications/networking/irc/weechat {
     inherit (darwin) libobjc;
     inherit (darwin) libresolv;
     guile = guile_2_0;
   };
 
+  weechat-matrix-bridge = callPackage ../applications/networking/instant-messengers/weechat-matrix-bridge {
+    inherit (luaPackages) cjson;
+  };
+
+  weechat-xmpp = callPackage ../applications/networking/instant-messengers/weechat-xmpp {};
+
   westonLite = callPackage ../applications/window-managers/weston {
     pango = null;
     freerdp = null;
@@ -16682,11 +18286,13 @@ with pkgs;
 
   wordnet = callPackage ../applications/misc/wordnet { };
 
+  wordgrinder = callPackage ../applications/office/wordgrinder { };
+
   worker = callPackage ../applications/misc/worker { };
 
   workrave = callPackage ../applications/misc/workrave {
-    inherit (gnome2) GConf gconfmm;
     inherit (python27Packages) cheetah;
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good;
   };
 
   worldengine-cli = python3Packages.worldengine;
@@ -16714,6 +18320,7 @@ with pkgs;
       ++ optional (cfg.enableFceumm or false) fceumm
       ++ optional (cfg.enableGambatte or false) gambatte
       ++ optional (cfg.enableGenesisPlusGX or false) genesis-plus-gx
+      ++ optional (cfg.enableHiganSFC or false) higan-sfc
       ++ optional (cfg.enableMAME or false) mame
       ++ optional (cfg.enableMGBA or false) mgba
       ++ optional (cfg.enableMupen64Plus or false) mupen64plus
@@ -16767,9 +18374,13 @@ with pkgs;
       );
   };
 
+  wsjtx = qt5.callPackage ../applications/misc/wsjtx { };
+
   wtftw = callPackage ../applications/window-managers/wtftw {};
 
-  wxhexeditor = callPackage ../applications/editors/wxhexeditor { };
+  wxhexeditor = callPackage ../applications/editors/wxhexeditor {
+    wxGTK = wxGTK31;
+  };
 
   wxcam = callPackage ../applications/video/wxcam {
     inherit (gnome2) libglade;
@@ -16827,7 +18438,6 @@ with pkgs;
   };
   xbmc-retroarch-advanced-launchers = kodi-retroarch-advanced-launchers;
 
-  # v1.3.2 segfaults with qt 5.7
   xca = libsForQt5.callPackage ../applications/misc/xca { };
 
   xcalib = callPackage ../tools/X11/xcalib { };
@@ -16858,15 +18468,21 @@ with pkgs;
 
   xenPackages = recurseIntoAttrs (callPackage ../applications/virtualization/xen/packages.nix {});
 
-  xen = xenPackages.xen_4_5-vanilla;
-  xen-slim = xenPackages.xen_4_5-slim;
-  xen-light = xenPackages.xen_4_5-light;
+  xen = xenPackages.xen-vanilla;
+  xen-slim = xenPackages.xen-slim;
+  xen-light = xenPackages.xen-light;
+
   xen_4_8 = xenPackages.xen_4_8-vanilla;
   xen_4_8-slim = xenPackages.xen_4_8-slim;
   xen_4_8-light = xenPackages.xen_4_8-light;
+  xen_4_10 = xenPackages.xen_4_10-vanilla;
+  xen_4_10-slim = xenPackages.xen_4_10-slim;
+  xen_4_10-light = xenPackages.xen_4_10-light;
 
   xkbset = callPackage ../tools/X11/xkbset { };
 
+  xkbmon = callPackage ../applications/misc/xkbmon { };
+
   win-spice = callPackage ../applications/virtualization/driver/win-spice { };
   win-virtio = callPackage ../applications/virtualization/driver/win-virtio { };
   win-qemu = callPackage ../applications/virtualization/driver/win-qemu { };
@@ -16897,9 +18513,9 @@ with pkgs;
 
   xiphos = callPackage ../applications/misc/xiphos {
     gconf = gnome2.GConf;
-    inherit (gnome2) gtkhtml libgtkhtml libglade scrollkeeper;
+    inherit (gnome2) libglade scrollkeeper;
+    gtkhtml = gnome2.gtkhtml4;
     python = python27;
-    webkitgtk = webkitgtk24x-gtk2;
   };
 
   xournal = callPackage ../applications/graphics/xournal {
@@ -16908,14 +18524,16 @@ with pkgs;
 
   apvlv = callPackage ../applications/misc/apvlv { };
 
-  xpdf = callPackage ../applications/misc/xpdf {
-    base14Fonts = "${ghostscript}/share/ghostscript/fonts";
-  };
+  xpdf = libsForQt5.callPackage ../applications/misc/xpdf { };
+
+  xpointerbarrier = callPackage ../tools/X11/xpointerbarrier {};
 
   xkb_switch = callPackage ../tools/X11/xkb-switch { };
 
   xkblayout-state = callPackage ../applications/misc/xkblayout-state { };
 
+  xmonad-log = callPackage ../tools/misc/xmonad-log { };
+
   xmonad-with-packages = callPackage ../applications/window-managers/xmonad/wrapper.nix {
     inherit (haskellPackages) ghcWithPackages;
     packages = self: [];
@@ -16923,21 +18541,21 @@ with pkgs;
 
   xmonad_log_applet_gnome2 = callPackage ../applications/window-managers/xmonad-log-applet {
     desktopSupport = "gnome2";
-    inherit (xfce) libxfce4util xfce4panel;
+    inherit (xfce) libxfce4util xfce4-panel;
     gnome2_panel = gnome2.gnome_panel;
     GConf2 = gnome2.GConf;
   };
 
   xmonad_log_applet_gnome3 = callPackage ../applications/window-managers/xmonad-log-applet {
     desktopSupport = "gnome3";
-    inherit (xfce) libxfce4util xfce4panel;
+    inherit (xfce) libxfce4util xfce4-panel;
     gnome2_panel = gnome2.gnome_panel;
     GConf2 = gnome2.GConf;
   };
 
   xmonad_log_applet_xfce = callPackage ../applications/window-managers/xmonad-log-applet {
     desktopSupport = "xfce4";
-    inherit (xfce) libxfce4util xfce4panel;
+    inherit (xfce) libxfce4util xfce4-panel;
     gnome2_panel = gnome2.gnome_panel;
     GConf2 = gnome2.GConf;
   };
@@ -16963,6 +18581,8 @@ with pkgs;
 
   xss-lock = callPackage ../misc/screensavers/xss-lock { };
 
+  xssproxy = callPackage ../misc/screensavers/xssproxy { };
+
   xsynth_dssi = callPackage ../applications/audio/xsynth-dssi { };
 
   xterm = callPackage ../applications/misc/xterm { };
@@ -16977,7 +18597,7 @@ with pkgs;
 
   roxterm = callPackage ../applications/misc/roxterm {
     inherit (pythonPackages) lockfile;
-    inherit (gnome3) gsettings_desktop_schemas vte;
+    inherit (gnome3) gsettings-desktop-schemas vte;
   };
 
   xtrace = callPackage ../tools/X11/xtrace { };
@@ -16998,6 +18618,8 @@ with pkgs;
 
   yabar = callPackage ../applications/window-managers/yabar { };
 
+  yabar-unstable = callPackage ../applications/window-managers/yabar/unstable.nix { };
+
   yakuake = libsForQt5.callPackage ../applications/misc/yakuake {
     inherit (kdeApplications) konsole;
   };
@@ -17010,23 +18632,29 @@ with pkgs;
 
   inherit (gnome3) yelp;
 
-  yoshimi = callPackage ../applications/audio/yoshimi { };
+  yokadi = python3Packages.callPackage ../applications/misc/yokadi {};
 
-  inherit (python3Packages) you-get;
+  yoshimi = callPackage ../applications/audio/yoshimi { };
 
   inherit (pythonPackages) youtube-dl;
 
+  youtube-viewer = perlPackages.WWWYoutubeViewer;
+
   zam-plugins = callPackage ../applications/audio/zam-plugins { };
 
-  zanshin = kde4.callPackage ../applications/office/zanshin { };
+  zanshin = libsForQt5.callPackage ../applications/office/zanshin {
+    inherit (kdeApplications) akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface kldap;
+    inherit (kdeFrameworks) krunner kwallet;
+    boost = boost160;
+  };
 
   zathura = callPackage ../applications/misc/zathura {
     useMupdf = config.zathura.useMupdf or true;
   };
 
-  zed = callPackage ../applications/editors/zed { };
-
-  zeroc_ice = callPackage ../development/libraries/zeroc-ice { };
+  zeroc_ice = callPackage ../development/libraries/zeroc-ice {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   zexy = callPackage ../applications/audio/pd-plugins/zexy  { };
 
@@ -17043,9 +18671,7 @@ with pkgs;
 
   zoom-us = callPackage ../applications/networking/instant-messengers/zoom-us { };
 
-  zotero = callPackage ../applications/office/zotero {
-    firefox = firefox-esr-unwrapped;
-  };
+  zotero = callPackage ../applications/office/zotero { };
 
   zscroll = callPackage ../applications/misc/zscroll {};
 
@@ -17053,9 +18679,9 @@ with pkgs;
 
   ### GAMES
 
-  "2048-in-terminal" = callPackage ../games/2048-in-terminal { };
+  _2048-in-terminal = callPackage ../games/2048-in-terminal { };
 
-  "90secondportraits" = callPackage ../games/90secondportraits { love = love_0_10; };
+  _90secondportraits = callPackage ../games/90secondportraits { love = love_0_10; };
 
   adom = callPackage ../games/adom { };
 
@@ -17070,17 +18696,22 @@ with pkgs;
 
   angband = callPackage ../games/angband { };
 
-  anki = callPackage ../games/anki { };
+  anki = python2Packages.callPackage ../games/anki { };
 
   armagetronad = callPackage ../games/armagetronad { };
 
-  arx-libertatis = callPackage ../games/arx-libertatis { };
+  arx-libertatis = callPackage ../games/arx-libertatis {
+    stdenv = overrideCC stdenv gcc6;
+  };
 
   asc = callPackage ../games/asc {
     lua = lua5_1;
     libsigcxx = libsigcxx12;
+    physfs = physfs_2;
   };
 
+  assaultcube = callPackage ../games/assaultcube { };
+
   astromenace = callPackage ../games/astromenace { };
 
   atanks = callPackage ../games/atanks {};
@@ -17113,6 +18744,8 @@ with pkgs;
 
   blobby = callPackage ../games/blobby { };
 
+  braincurses = callPackage ../games/braincurses { };
+
   brogue = callPackage ../games/brogue { };
 
   bsdgames = callPackage ../games/bsdgames { };
@@ -17121,7 +18754,14 @@ with pkgs;
 
   bzflag = callPackage ../games/bzflag { };
 
-  cataclysm-dda = callPackage ../games/cataclysm-dda { };
+  cataclysm-dda = callPackage ../games/cataclysm-dda {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    ncurses = ncurses5;
+  };
+
+  cataclysm-dda-git = callPackage ../games/cataclysm-dda/git.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
+  };
 
   chessdb = callPackage ../games/chessdb { };
 
@@ -17138,12 +18778,13 @@ with pkgs;
   confd = callPackage ../tools/system/confd { };
 
   construoBase = lowPrio (callPackage ../games/construo {
-    mesa = null;
+    libGL = null;
     freeglut = null;
   });
 
   construo = construoBase.override {
-    inherit mesa freeglut;
+    inherit  freeglut;
+    libGL = libGLU_combined;
   };
 
   crack_attack = callPackage ../games/crack-attack { };
@@ -17158,13 +18799,16 @@ with pkgs;
 
   crrcsim = callPackage ../games/crrcsim {};
 
+  cutemaze = libsForQt5.callPackage ../games/cutemaze {};
+
   cuyo = callPackage ../games/cuyo { };
 
   dhewm3 = callPackage ../games/dhewm3 {};
 
   digikam = libsForQt5.callPackage ../applications/graphics/digikam {
     inherit (plasma5) oxygen;
-    boost = boost160;
+    inherit (kdeApplications) kcalcore;
+    opencv3 = opencv3WithoutCuda;
   };
 
   displaycal = (newScope pythonPackages) ../applications/graphics/displaycal {};
@@ -17179,9 +18823,23 @@ with pkgs;
 
   dwarf-therapist = dwarf-fortress-packages.dwarf-therapist;
 
-  d1x_rebirth = callPackage ../games/d1x-rebirth { };
+  dxx-rebirth = callPackage ../games/dxx-rebirth {
+    physfs = physfs_2;
+  };
+
+  # these are here for compatibility
+  d1x_rebirth = dxx-rebirth;
+  d2x_rebirth = dxx-rebirth;
+
+  inherit (callPackages ../games/dxx-rebirth/assets.nix { })
+    descent1-assets
+    descent2-assets;
 
-  d2x_rebirth = callPackage ../games/d2x-rebirth { };
+  inherit (callPackages ../games/dxx-rebirth/full.nix { })
+    d1x-rebirth-full
+    d2x-rebirth-full;
+
+  easyrpg-player = callPackage ../games/easyrpg-player { };
 
   eboard = callPackage ../games/eboard { };
 
@@ -17201,6 +18859,8 @@ with pkgs;
 
   factorio = callPackage ../games/factorio { releaseType = "alpha"; };
 
+  factorio-experimental = callPackage ../games/factorio { releaseType = "alpha"; experimental = true; };
+
   factorio-headless = callPackage ../games/factorio { releaseType = "headless"; };
 
   factorio-demo = callPackage ../games/factorio { releaseType = "demo"; };
@@ -17217,6 +18877,8 @@ with pkgs;
 
   flightgear = libsForQt5.callPackage ../games/flightgear { };
 
+  flock = callPackage ../development/tools/flock { };
+
   freecell-solver = callPackage ../games/freecell-solver { };
 
   freeciv = callPackage ../games/freeciv { };
@@ -17228,9 +18890,9 @@ with pkgs;
 
   freedink = callPackage ../games/freedink { };
 
-  freeorion = callPackage ../games/freeorion {
-    boost = boost160;
-  };
+  freeorion = callPackage ../games/freeorion { };
+
+  freesweep = callPackage ../games/freesweep { };
 
   frotz = callPackage ../games/frotz { };
 
@@ -17244,7 +18906,9 @@ with pkgs;
 
   garden-of-coloured-lights = callPackage ../games/garden-of-coloured-lights { allegro = allegro4; };
 
-  gargoyle = callPackage ../games/gargoyle { };
+  gargoyle = callPackage ../games/gargoyle {
+    libtool = darwin.cctools;
+  };
 
   gav = callPackage ../games/gav { };
 
@@ -17252,12 +18916,8 @@ with pkgs;
 
   gemrb = callPackage ../games/gemrb { };
 
-  ghostOne = callPackage ../servers/games/ghost-one { };
-
   gl117 = callPackage ../games/gl-117 {};
 
-  glestae = callPackage ../games/glestae {};
-
   globulation2 = callPackage ../games/globulation {
     boost = boost155;
   };
@@ -17272,8 +18932,14 @@ with pkgs;
 
   gnugo = callPackage ../games/gnugo { };
 
+  gnujump = callPackage ../games/gnujump { };
+
   gogui = callPackage ../games/gogui {};
 
+  gtetrinet = callPackage ../games/gtetrinet {
+    inherit (gnome2) GConf libgnome libgnomeui;
+  };
+
   gtypist = callPackage ../games/gtypist { };
 
   gzdoom = callPackage ../games/gzdoom { };
@@ -17313,7 +18979,10 @@ with pkgs;
 
   lincity = callPackage ../games/lincity {};
 
-  lincity_ng = callPackage ../games/lincity/ng.nix {};
+  lincity_ng = callPackage ../games/lincity/ng.nix {
+    # https://github.com/lincity-ng/lincity-ng/issues/25
+    physfs = physfs_2;
+  };
 
   liquidwar = callPackage ../games/liquidwar {
     guile = guile_1_8;
@@ -17338,13 +19007,17 @@ with pkgs;
 
   minecraft-server = callPackage ../games/minecraft-server { };
 
+  moon-buggy = callPackage ../games/moon-buggy {};
+
   multimc = libsForQt5.callPackage ../games/multimc { };
 
   minetest = callPackage ../games/minetest {
     libpng = libpng12;
   };
 
-  mnemosyne = callPackage ../games/mnemosyne { };
+  mnemosyne = callPackage ../games/mnemosyne {
+    python = python3;
+  };
 
   mrrescue = callPackage ../games/mrrescue { };
 
@@ -17374,14 +19047,20 @@ with pkgs;
 
   openarena = callPackage ../games/openarena { };
 
-  opendungeons = callPackage ../games/opendungeons { };
+  opendungeons = callPackage ../games/opendungeons {
+    ogre = ogre1_9;
+  };
 
   openlierox = callPackage ../games/openlierox { };
 
   openclonk = callPackage ../games/openclonk { };
 
+  openjk = callPackage ../games/openjk { };
+
   openmw = callPackage ../games/openmw { };
 
+  openmw-tes3mp = libsForQt5.callPackage ../games/openmw/tes3mp.nix { };
+
   openra = callPackage ../games/openra { lua = lua5_1; };
 
   openrw = callPackage ../games/openrw { };
@@ -17418,6 +19097,8 @@ with pkgs;
 
   privateer = callPackage ../games/privateer { };
 
+  pysolfc = callPackage ../games/pysolfc { };
+
   qweechat = callPackage ../applications/networking/irc/qweechat { };
 
   qqwing = callPackage ../games/qqwing { };
@@ -17435,6 +19116,7 @@ with pkgs;
   quake3pointrelease = callPackage ../games/quake3/content/pointrelease.nix { };
 
   quakespasm = callPackage ../games/quakespasm { };
+  vkquake = callPackage ../games/quakespasm/vulkan.nix { };
 
   ioquake3 = callPackage ../games/quake3/ioquake { };
 
@@ -17443,11 +19125,17 @@ with pkgs;
   racer = callPackage ../games/racer { };
 
   residualvm = callPackage ../games/residualvm {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
   };
 
+  rftg = callPackage ../games/rftg { };
+
   rigsofrods = callPackage ../games/rigsofrods {
     angelscript = angelscript_2_22;
+    ogre = ogre1_9;
+    ogrepaged = ogrepaged.override {
+      ogre = ogre1_9;
+    };
     mygui = mygui.override {
       withOgre = true;
     };
@@ -17457,21 +19145,32 @@ with pkgs;
 
   rimshot = callPackage ../games/rimshot { love = love_0_7; };
 
-  rogue = callPackage ../games/rogue { };
+  rogue = callPackage ../games/rogue {
+    ncurses = ncurses5;
+  };
 
   robotfindskitten = callPackage ../games/robotfindskitten { };
 
+  rocksndiamonds = callPackage ../games/rocksndiamonds { };
+
   saga = callPackage ../applications/gis/saga { };
 
   samplv1 = callPackage ../applications/audio/samplv1 { };
 
   sauerbraten = callPackage ../games/sauerbraten {};
 
+  scaleway-cli = callPackage ../tools/admin/scaleway-cli { };
+
   scid = callPackage ../games/scid {
     tcl = tcl-8_5;
     tk = tk-8_5;
   };
 
+  scid-vs-pc = callPackage ../games/scid-vs-pc {
+    tcl = tcl-8_6;
+    tk = tk-8_6;
+  };
+
   scummvm = callPackage ../games/scummvm { };
 
   scorched3d = callPackage ../games/scorched3d { };
@@ -17480,10 +19179,14 @@ with pkgs;
 
   sdlmame = callPackage ../games/sdlmame { };
 
+  service-wrapper = callPackage ../os-specific/linux/service-wrapper { };
+
   sgtpuzzles = callPackage (callPackage ../games/sgt-puzzles) { };
 
   sienna = callPackage ../games/sienna { love = love_0_10; };
 
+  sil = callPackage ../games/sil { };
+
   simutrans = callPackage ../games/simutrans { };
   # get binaries without data built by Hydra
   simutrans_binaries = lowPrio simutrans.binaries;
@@ -17521,13 +19224,20 @@ with pkgs;
   };
 
   steam-run = steam.run;
+  steam-run-native = (steam.override {
+    nativeOnly = true;
+  }).run;
+
+  linux-steam-integration = callPackage ../games/linux-steam-integration {
+    gtk = pkgs.gtk3;
+  };
 
   stepmania = callPackage ../games/stepmania {
     ffmpeg = ffmpeg_2;
   };
 
   stuntrally = callPackage ../games/stuntrally {
-    bullet = bullet283;
+    ogre = ogre1_9;
     mygui = mygui.override {
       withOgre = true;
     };
@@ -17563,10 +19273,7 @@ with pkgs;
 
   tome4 = callPackage ../games/tome4 { };
 
-  trackballs = callPackage ../games/trackballs {
-    debug = false;
-    guile = guile_1_8;
-  };
+  trackballs = callPackage ../games/trackballs { };
 
   tremulous = callPackage ../games/tremulous { };
 
@@ -17590,13 +19297,8 @@ with pkgs;
 
   ultrastar-manager = libsForQt5.callPackage ../tools/misc/ultrastar-manager { };
 
-  ultrastardx = callPackage ../games/ultrastardx/1.1.nix {
-    ffmpeg = ffmpeg_0;
-    lua = lua5;
-  };
-  ultrastardx-beta = callPackage ../games/ultrastardx/1.3-beta.nix {
-    ffmpeg = ffmpeg_0;
-    lua = lua5;
+  ultrastardx = callPackage ../games/ultrastardx/default.nix {
+    ffmpeg = ffmpeg_2;
   };
 
   unnethack = callPackage ../games/unnethack { };
@@ -17617,7 +19319,9 @@ with pkgs;
 
   vapor = callPackage ../games/vapor { love = love_0_8; };
 
-  vapoursynth = callPackage ../development/libraries/vapoursynth { };
+  vapoursynth = callPackage ../development/libraries/vapoursynth {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
 
   vapoursynth-mvtools = callPackage ../development/libraries/vapoursynth-mvtools { };
 
@@ -17625,6 +19329,9 @@ with pkgs;
 
   vdrift = callPackage ../games/vdrift { };
 
+  # To ensure vdrift's code is built on hydra
+  vdrift-bin = vdrift.bin;
+
   vectoroids = callPackage ../games/vectoroids { };
 
   vessel = callPackage_i686 ../games/vessel { };
@@ -17637,6 +19344,8 @@ with pkgs;
 
   warmux = callPackage ../games/warmux { };
 
+  warsow-engine = callPackage ../games/warsow/engine.nix { };
+
   warsow = callPackage ../games/warsow { };
 
   warzone2100 = libsForQt5.callPackage ../games/warzone2100 { };
@@ -17664,6 +19373,7 @@ with pkgs;
     tk = tk-8_5;
   };
 
+  xjump = callPackage ../games/xjump { };
   # TODO: the corresponding nix file is missing
   # xracer = callPackage ../games/xracer { };
 
@@ -17683,16 +19393,12 @@ with pkgs;
 
   xsokoban = callPackage ../games/xsokoban { };
 
-  zandronum = callPackage ../games/zandronum {
-    cmake = cmake_2_8;
-  };
+  zandronum = callPackage ../games/zandronum { };
 
   zandronum-server = zandronum.override {
     serverOnly = true;
   };
 
-  zandronum-bin = hiPrio (callPackage ../games/zandronum/bin.nix { });
-
   zangband = callPackage ../games/zangband { };
 
   zdbsp = callPackage ../games/zdoom/zdbsp.nix { };
@@ -17711,7 +19417,9 @@ with pkgs;
 
   ### DESKTOP ENVIRONMENTS
 
-  clearlooks-phenix = callPackage ../misc/themes/gtk3/clearlooks-phenix { };
+  clearlooks-phenix = callPackage ../misc/themes/clearlooks-phenix { };
+
+  deepin = recurseIntoAttrs (callPackage ../desktops/deepin { });
 
   enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment {
     callPackage = newScope pkgs.enlightenment;
@@ -17723,23 +19431,31 @@ with pkgs;
   } // {
     inherit (pkgs)
       # GTK Libs
-      glib glibmm atk atkmm cairo pango pangomm gdk_pixbuf gtkmm2
+      glib glibmm atk atkmm cairo pango pangomm gdk_pixbuf gtkmm2 libcanberra-gtk2
 
       # Included for backwards compatibility
-      libsoup libwnck gtk_doc gnome_doc_utils;
+      libsoup libwnck gtk-doc gnome-doc-utils;
 
     gtk = self.gtk2;
     gtkmm = self.gtkmm2;
-    libcanberra = self.libcanberra_gtk2;
   });
 
-  gnome3_22 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.22 { });
-
-  gnome3 = gnome3_22;
+  gnome3 = recurseIntoAttrs (callPackage ../desktops/gnome-3 { });
 
   gnomeExtensions = {
+    appindicator = callPackage ../desktops/gnome-3/extensions/appindicator { };
+    battery-status = callPackage ../desktops/gnome-3/extensions/battery-status { };
     caffeine = callPackage ../desktops/gnome-3/extensions/caffeine { };
+    clipboard-indicator = callPackage ../desktops/gnome-3/extensions/clipboard-indicator { };
     dash-to-dock = callPackage ../desktops/gnome-3/extensions/dash-to-dock { };
+    dash-to-panel = callPackage ../desktops/gnome-3/extensions/dash-to-panel { };
+    icon-hider = callPackage ../desktops/gnome-3/extensions/icon-hider { };
+    mediaplayer = callPackage ../desktops/gnome-3/extensions/mediaplayer { };
+    nohotcorner = callPackage ../desktops/gnome-3/extensions/nohotcorner { };
+    no-title-bar = callPackage ../desktops/gnome-3/extensions/no-title-bar { };
+    remove-dropdown-arrows = callPackage ../desktops/gnome-3/extensions/remove-dropdown-arrows { };
+    taskwhisperer = callPackage ../desktops/gnome-3/extensions/taskwhisperer { };
+    timepp = callPackage ../desktops/gnome-3/extensions/timepp { };
     topicons-plus = callPackage ../desktops/gnome-3/extensions/topicons-plus { };
   };
 
@@ -17747,24 +19463,6 @@ with pkgs;
 
   kakasi = callPackage ../tools/text/kakasi { };
 
-  kde4 =
-    let
-      deps = lib.makeScope newScope (self: {
-        inherit (python2Packages) python;
-        kdelibs = kdelibs4;
-        boost = boost155;
-        ffmpeg = ffmpeg_2; # ffmpegthumb doesn't build otherwise
-      });
-
-      self = lib.makeScope deps.newScope (self: with self;
-        import ../desktops/kde-4.14 {
-          callPackageOrig = pkgs.callPackage;
-          inherit (self) callPackage;
-          inherit stdenv qt48 kdelibs;
-        }
-      );
-    in recurseIntoAttrs self;
-
   lumina = libsForQt5.callPackage ../desktops/lumina { };
 
   lxqt = recurseIntoAttrs (import ../desktops/lxqt {
@@ -17772,9 +19470,9 @@ with pkgs;
     inherit (lib) makeScope;
   });
 
-  mate = recurseIntoAttrs (callPackage ../desktops/mate {
-    callPackage = newScope pkgs.mate;
-  });
+  mate = recurseIntoAttrs (callPackage ../desktops/mate { });
+
+  maxx = callPackage ../desktops/maxx { };
 
   pantheon = recurseIntoAttrs rec {
     callPackage = newScope pkgs.pantheon;
@@ -17782,7 +19480,7 @@ with pkgs;
   };
 
   redshift = callPackage ../applications/misc/redshift {
-    inherit (python3Packages) python pygobject3 pyxdg;
+    inherit (python3Packages) python pygobject3 pyxdg wrapPython;
   };
 
   redshift-plasma-applet = libsForQt5.callPackage ../applications/misc/redshift-plasma-applet { };
@@ -17791,6 +19489,8 @@ with pkgs;
 
   orion = callPackage ../misc/themes/orion {};
 
+  elementary-gtk-theme = callPackage ../misc/themes/elementary { };
+
   albatross = callPackage ../misc/themes/albatross { };
 
   gtk_engines = callPackage ../misc/themes/gtk2/gtk-engines { };
@@ -17799,10 +19499,14 @@ with pkgs;
 
   gtk-engine-murrine = callPackage ../misc/themes/gtk2/gtk-engine-murrine { };
 
-  gnome_themes_standard = gnome3.gnome_themes_standard;
+  gnome-themes-extra = gnome3.gnome-themes-extra;
 
   numix-gtk-theme = callPackage ../misc/themes/numix { };
 
+  numix-solarized-gtk-theme = callPackage ../misc/themes/gtk3/numix-solarized-gtk-theme {  };
+
+  numix-sx-gtk-theme = callPackage ../misc/themes/numix-sx { };
+
   theme-vertex = callPackage ../misc/themes/vertex { };
 
   rox-filer = callPackage ../desktops/rox/rox-filer {
@@ -17810,7 +19514,10 @@ with pkgs;
   };
 
   xfce = xfce4-12;
+  xfceUnstable = xfce4-13;
+
   xfce4-12 = recurseIntoAttrs (callPackage ../desktops/xfce { });
+  xfce4-13 = recurseIntoAttrs (callPackage ../desktops/xfce4-13 { });
 
   xrandr-invert-colors = callPackage ../applications/misc/xrandr-invert-colors { };
 
@@ -17821,7 +19528,7 @@ with pkgs;
       mkPlasma5 = import ../desktops/plasma-5;
       attrs = {
         inherit libsForQt5 lib fetchurl;
-        inherit (gnome3) gconf;
+        inherit (gnome3) gconf gsettings-desktop-schemas;
       };
     in
       recurseIntoAttrs (makeOverridable mkPlasma5 attrs);
@@ -17829,13 +19536,13 @@ with pkgs;
   inherit (kdeFrameworks) kded kinit frameworkintegration;
 
   inherit (plasma5)
-    bluedevil breeze-gtk breeze-qt4 breeze-qt5 breeze-grub breeze-plymouth
+    bluedevil breeze-gtk breeze-qt5 breeze-grub breeze-plymouth
     kactivitymanagerd kde-cli-tools kde-gtk-config kdeplasma-addons kgamma5
     kinfocenter kmenuedit kscreen kscreenlocker ksshaskpass ksysguard
     kwallet-pam kwayland-integration kwin kwrited milou oxygen plasma-desktop
-    plasma-integration plasma-nm plasma-pa plasma-workspace
-    plasma-workspace-wallpapers polkit-kde-agent powerdevil startkde
-    systemsettings;
+    plasma-integration plasma-nm plasma-pa plasma-vault plasma-workspace
+    plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm
+    systemsettings user-manager xdg-desktop-portal-kde;
 
   ### SCIENCE
 
@@ -17863,6 +19570,8 @@ with pkgs;
 
   bcftools = callPackage ../applications/science/biology/bcftools { };
 
+  dcm2niix = callPackage ../applications/science/biology/dcm2niix { };
+
   diamond = callPackage ../applications/science/biology/diamond { };
 
   ecopcr = callPackage ../applications/science/biology/ecopcr { };
@@ -17877,6 +19586,10 @@ with pkgs;
     neuron-version = neuron.version;
   };
 
+  kallisto = callPackage ../applications/science/biology/kallisto { };
+
+  muscle = callPackage ../applications/science/biology/muscle/default.nix { };
+
   neuron = callPackage ../applications/science/biology/neuron {
     python = null;
   };
@@ -17889,7 +19602,7 @@ with pkgs;
 
   mrbayes = callPackage ../applications/science/biology/mrbayes { };
 
-  minc_tools = callPackage ../applications/science/biology/minc-tools { };
+  minc-tools = callPackage ../applications/science/biology/minc-tools { };
 
   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
 
@@ -17903,16 +19616,35 @@ with pkgs;
 
   plink-ng = callPackage ../applications/science/biology/plink-ng/default.nix { };
 
+  raxml = callPackage ../applications/science/biology/raxml { };
+
+  raxml-mpi = appendToName "mpi" (raxml.override {
+    mpi = true;
+  });
+
   samtools = callPackage ../applications/science/biology/samtools/default.nix { };
+  samtools_0_1_19 = callPackage ../applications/science/biology/samtools/samtools_0_1_19.nix {
+    stdenv = gccStdenv;
+  };
 
   snpeff = callPackage ../applications/science/biology/snpeff/default.nix { };
 
+  star = callPackage ../applications/science/biology/star { };
+
   varscan = callPackage ../applications/science/biology/varscan/default.nix { };
 
   bwa = callPackage ../applications/science/biology/bwa/default.nix { };
 
+  ### SCIENCE/MACHINE LEARNING
+
+  sc2-headless = callPackage ../applications/science/machine-learning/sc2-headless {
+    licenseAccepted = (config.sc2-headless.accept_license or false);
+  };
+
   ### SCIENCE/MATH
 
+  almonds = pythonPackages.callPackage ../applications/science/math/almonds { };
+
   arpack = callPackage ../development/libraries/science/math/arpack { };
 
   atlas = callPackage ../development/libraries/science/math/atlas {
@@ -17925,14 +19657,9 @@ with pkgs;
     withLapack = false;
   };
 
-  atlasWithLapack = atlas.override { withLapack = true; };
-
   blas = callPackage ../development/libraries/science/math/blas { };
 
-  clblas-cuda = callPackage ../development/libraries/science/math/clblas/cuda {
-    cudatoolkit = pkgs.cudatoolkit75;
-    inherit (linuxPackages) nvidia_x11;
-  };
+  clblas = callPackage ../development/libraries/science/math/clblas { };
 
   jags = callPackage ../applications/science/math/jags { };
 
@@ -17950,6 +19677,8 @@ with pkgs;
 
   liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
 
+  nasc = callPackage ../applications/science/math/nasc { };
+
   openblas = callPackage ../development/libraries/science/math/openblas { };
 
   # A version of OpenBLAS using 32-bit integers on all platforms for compatibility with
@@ -17960,6 +19689,13 @@ with pkgs;
 
   openspecfun = callPackage ../development/libraries/science/math/openspecfun {};
 
+  fenics = callPackage ../development/libraries/science/math/fenics {
+    inherit (python3Packages) numpy ply pytest python six sympy;
+    pythonPackages = python3Packages;
+    pythonBindings = true;
+    docs = true;
+  };
+
   lie = callPackage ../applications/science/math/LiE { };
 
   magma = callPackage ../development/libraries/science/math/magma { };
@@ -17972,6 +19708,8 @@ with pkgs;
 
   nauty = callPackage ../applications/science/math/nauty {};
 
+  petsc = callPackage ../development/libraries/science/math/petsc { };
+
   sage = callPackage ../applications/science/math/sage { };
 
   suitesparse_4_2 = callPackage ../development/libraries/science/math/suitesparse/4.2.nix { };
@@ -18041,121 +19779,37 @@ with pkgs;
 
   plm = callPackage ../applications/science/programming/plm { };
 
+  scyther = callPackage ../applications/science/programming/scyther { };
+
   ### SCIENCE/LOGIC
 
   abc-verifier = callPackage ../applications/science/logic/abc {};
 
   abella = callPackage ../applications/science/logic/abella {};
 
-  acgtk = callPackage ../applications/science/logic/acgtk {
-    ocamlPackages = ocamlPackages_4_03;
-  };
+  acgtk = callPackage ../applications/science/logic/acgtk { };
 
-  alt-ergo = callPackage ../applications/science/logic/alt-ergo {
-    ocamlPackages = ocamlPackages_4_02;
-  };
+  alt-ergo = callPackage ../applications/science/logic/alt-ergo { };
 
   aspino = callPackage ../applications/science/logic/aspino {};
 
   boogie = dotnetPackages.Boogie;
 
-  coq_8_3 = callPackage ../applications/science/logic/coq/8.3.nix {
+  inherit (callPackage ./coq-packages.nix {})
+    mkCoqPackages
+    coq_8_3 coq_8_4 coq_8_5 coq_8_6 coq_8_7
+    coqPackages_8_5 coqPackages_8_6 coqPackages_8_7
+    coqPackages coq
+  ;
+
+  coq2html = callPackage ../applications/science/logic/coq2html {
     make = pkgs.gnumake3;
-    inherit (ocamlPackages_3_12_1) ocaml findlib;
-    camlp5 = ocamlPackages_3_12_1.camlp5_transitional;
-    lablgtk = ocamlPackages_3_12_1.lablgtk_2_14;
   };
 
-  mkCoqPackages_8_4 = self: let callPackage = newScope self; in {
-    inherit callPackage;
-    coq = callPackage ../applications/science/logic/coq/8.4.nix {
-      inherit (ocamlPackages_4_02) ocaml findlib lablgtk;
-      camlp5 = ocamlPackages_4_02.camlp5_transitional;
-    };
-    coqPackages = coqPackages_8_4;
-
-    contribs =
-      let contribs =
-        import ../development/coq-modules/contribs
-        contribs
-        callPackage { };
-      in
-        recurseIntoAttrs contribs;
-
-    bedrock = callPackage ../development/coq-modules/bedrock {};
-    coqExtLib = callPackage ../development/coq-modules/coq-ext-lib {};
-    coqeal = callPackage ../development/coq-modules/coqeal {};
-    coquelicot = callPackage ../development/coq-modules/coquelicot {};
-    domains = callPackage ../development/coq-modules/domains {};
-    fiat = callPackage ../development/coq-modules/fiat {};
-    fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
-    flocq = callPackage ../development/coq-modules/flocq {};
-    heq = callPackage ../development/coq-modules/heq {};
-    interval = callPackage ../development/coq-modules/interval {};
-    mathcomp = callPackage ../development/coq-modules/mathcomp {};
-    paco = callPackage ../development/coq-modules/paco {};
-    QuickChick = callPackage ../development/coq-modules/QuickChick {};
-    ssreflect = callPackage ../development/coq-modules/ssreflect {};
-    tlc = callPackage ../development/coq-modules/tlc {};
-    unimath = callPackage ../development/coq-modules/unimath {};
-    ynot = callPackage ../development/coq-modules/ynot {};
-  };
-
-  mkCoqPackages_8_5 = self: let callPackage = newScope self; in rec {
-    inherit callPackage;
-    coq = callPackage ../applications/science/logic/coq {
-      version = "8.5pl3";
-    };
-    coqPackages = coqPackages_8_5;
-
-    autosubst = callPackage ../development/coq-modules/autosubst {};
-    coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
-    coquelicot = callPackage ../development/coq-modules/coquelicot {};
-    dpdgraph = callPackage ../development/coq-modules/dpdgraph {};
-    flocq = callPackage ../development/coq-modules/flocq {};
-    interval = callPackage ../development/coq-modules/interval {};
-    mathcomp = callPackage ../development/coq-modules/mathcomp { };
-    paco = callPackage ../development/coq-modules/paco {};
-    math-classes = callPackage ../development/coq-modules/math-classes { };
-    ssreflect = callPackage ../development/coq-modules/ssreflect { };
-    QuickChick = callPackage ../development/coq-modules/QuickChick {};
-    fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
-  };
-
-  mkCoqPackages_8_6 = self: let callPackage = newScope self; in rec {
-    inherit callPackage;
-    coq = callPackage ../applications/science/logic/coq {};
-    coqPackages = coqPackages_8_6;
-
-    autosubst = callPackage ../development/coq-modules/autosubst {};
-    coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
-    coquelicot = callPackage ../development/coq-modules/coquelicot {};
-    dpdgraph = callPackage ../development/coq-modules/dpdgraph {};
-    flocq = callPackage ../development/coq-modules/flocq {};
-    heq = callPackage ../development/coq-modules/heq {};
-    interval = callPackage ../development/coq-modules/interval {};
-    mathcomp = callPackage ../development/coq-modules/mathcomp { };
-    paco = callPackage ../development/coq-modules/paco {};
-    ssreflect = callPackage ../development/coq-modules/ssreflect { };
-    QuickChick = callPackage ../development/coq-modules/QuickChick {};
-    CoLoR = callPackage ../development/coq-modules/CoLoR {};
-    math-classes = callPackage ../development/coq-modules/math-classes { };
-    fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
-  };
-
-  coqPackages_8_4 = mkCoqPackages_8_4 coqPackages_8_4;
-  coqPackages_8_5 = mkCoqPackages_8_5 coqPackages_8_5;
-  coqPackages_8_6 = mkCoqPackages_8_6 coqPackages_8_6;
-  coqPackages = coqPackages_8_6;
-
-  coq_8_4 = coqPackages_8_4.coq;
-  coq_8_5 = coqPackages_8_5.coq;
-  coq_8_6 = coqPackages_8_6.coq;
-  coq_HEAD = callPackage ../applications/science/logic/coq/HEAD.nix {};
-  coq = coqPackages.coq;
-
   cryptoverif = callPackage ../applications/science/logic/cryptoverif { };
 
+  caprice32 = callPackage ../misc/emulators/caprice32 { };
+
   cubicle = callPackage ../applications/science/logic/cubicle { };
 
   cvc3 = callPackage ../applications/science/logic/cvc3 {
@@ -18163,7 +19817,11 @@ with pkgs;
   };
   cvc4 = callPackage ../applications/science/logic/cvc4 {};
 
-  ekrhyper = callPackage ../applications/science/logic/ekrhyper {};
+  drat-trim = callPackage ../applications/science/logic/drat-trim {};
+
+  ekrhyper = callPackage ../applications/science/logic/ekrhyper {
+    inherit (ocamlPackages_4_02) ocaml;
+  };
 
   eprover = callPackage ../applications/science/logic/eprover { };
 
@@ -18171,6 +19829,9 @@ with pkgs;
 
   gfan = callPackage ../applications/science/math/gfan {};
 
+  giac = callPackage ../applications/science/math/giac { };
+  giac-with-xcas = giac.override { enableGUI = true; };
+
   ginac = callPackage ../applications/science/math/ginac { };
 
   glucose = callPackage ../applications/science/logic/glucose { };
@@ -18184,11 +19845,16 @@ with pkgs;
 
   tini = callPackage ../applications/virtualization/tini {};
 
+  ifstat-legacy = callPackage ../tools/networking/ifstat-legacy { };
+
   isabelle = callPackage ../applications/science/logic/isabelle {
+    polyml = polyml56;
     java = if stdenv.isLinux then jre else jdk;
   };
 
-  iprover = callPackage ../applications/science/logic/iprover {};
+  iprover = callPackage ../applications/science/logic/iprover {
+    inherit (ocamlPackages_4_02) ocaml;
+  };
 
   jonprl = callPackage ../applications/science/logic/jonprl {
     smlnj = if stdenv.isDarwin
@@ -18220,7 +19886,7 @@ with pkgs;
 
   opensmt = callPackage ../applications/science/logic/opensmt { };
 
-  inherit (ocamlPackages) ott;
+  ott = callPackage ../applications/science/logic/ott { };
 
   otter = callPackage ../applications/science/logic/otter {};
 
@@ -18237,13 +19903,17 @@ with pkgs;
 
   proverif = callPackage ../applications/science/logic/proverif { };
 
+  sapic = callPackage ../applications/science/logic/sapic { };
+
   satallax = callPackage ../applications/science/logic/satallax {
     ocaml = ocamlPackages_4_01_0.ocaml;
   };
 
   saw-tools = callPackage ../applications/science/logic/saw-tools {};
 
-  spass = callPackage ../applications/science/logic/spass {};
+  spass = callPackage ../applications/science/logic/spass {
+    stdenv = gccStdenv;
+  };
 
   statverif = callPackage ../applications/science/logic/statverif { };
 
@@ -18265,16 +19935,26 @@ with pkgs;
     gmp-static = gmp.override { withStatic = true; };
   };
 
-  z3 = callPackage ../applications/science/logic/z3 {};
-  z3_opt = callPackage ../applications/science/logic/z3_opt {};
+  z3_4_5_0 = callPackage ../applications/science/logic/z3/4.5.0.nix {};
+  z3 = callPackage ../applications/science/logic/z3 { python = python2; };
+
+  tlaplus = callPackage ../applications/science/logic/tlaplus {};
+
+  aiger = callPackage ../applications/science/logic/aiger {};
+
+  avy = callPackage ../applications/science/logic/avy {};
 
   boolector = callPackage ../applications/science/logic/boolector {};
 
+  symbiyosys = callPackage ../applications/science/logic/symbiyosys {};
+
   ### SCIENCE / ELECTRONICS
 
+  adms = callPackage ../applications/science/electronics/adms { };
+
   eagle = callPackage ../applications/science/electronics/eagle { };
 
-  caneda = callPackage ../applications/science/electronics/caneda { };
+  caneda = libsForQt5.callPackage ../applications/science/electronics/caneda { };
 
   geda = callPackage ../applications/science/electronics/geda {
     guile = guile_2_0;
@@ -18289,19 +19969,47 @@ with pkgs;
     boost = boost160;
   };
 
+  kicad-unstable = python.pkgs.callPackage ../applications/science/electronics/kicad/unstable.nix {
+    wxGTK = wxGTK30;
+    boost = boost160;
+  };
+
+  librepcb = libsForQt5.callPackage ../applications/science/electronics/librepcb { };
+
   ngspice = callPackage ../applications/science/electronics/ngspice { };
 
   pcb = callPackage ../applications/science/electronics/pcb { };
 
   qucs = callPackage ../applications/science/electronics/qucs { };
 
+
   xoscope = callPackage ../applications/science/electronics/xoscope { };
 
 
   ### SCIENCE / MATH
 
-  caffe = callPackage ../applications/science/math/caffe {
-    cudaSupport = config.caffe.cudaSupport or config.cudaSupport or true;
+  caffe = callPackage ../applications/science/math/caffe rec {
+    cudaSupport = config.caffe.cudaSupport or config.cudaSupport or false;
+    cudnnSupport = cudaSupport;
+    # Used only for image loading.
+    opencv3 = opencv3WithoutCuda;
+  };
+
+  caffe2 = callPackage ../development/libraries/science/math/caffe2 {
+    eigen3 = eigen3_3;
+    inherit (python3Packages) python future six numpy pydot;
+    protobuf = protobuf3_1;
+    python-protobuf = python3Packages.protobuf3_1;
+    # Used only for image loading.
+    opencv3 = opencv3WithoutCuda;
+  };
+
+  cntk = callPackage ../applications/science/math/cntk rec {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    cudnnSupport = cudaSupport;
+    inherit (linuxPackages) nvidia_x11;
+    # Used only for image loading.
+    opencv3 = opencv3WithoutCuda;
   };
 
   ecm = callPackage ../applications/science/math/ecm { };
@@ -18318,7 +20026,6 @@ with pkgs;
   geogebra = callPackage ../applications/science/math/geogebra { };
 
   maxima = callPackage ../applications/science/math/maxima {
-    sbcl = sbcl_1_3_12;
     ecl = null;
   };
   maxima-ecl = callPackage ../applications/science/math/maxima {
@@ -18326,6 +20033,12 @@ with pkgs;
     sbcl = null;
   };
 
+  mxnet = callPackage ../applications/science/math/mxnet rec {
+    cudaSupport = config.cudaSupport or false;
+    cudnnSupport = cudaSupport;
+    inherit (linuxPackages) nvidia_x11;
+  };
+
   wxmaxima = callPackage ../applications/science/math/wxmaxima { wxGTK = wxGTK30; };
 
   pari = callPackage ../applications/science/math/pari { tex = texlive.combined.scheme-basic; };
@@ -18338,13 +20051,18 @@ with pkgs;
 
   pcalc = callPackage ../applications/science/math/pcalc { };
 
-  pspp = callPackage ../applications/science/math/pssp {
-    inherit (gnome2) libglade gtksourceview;
+  bcal = callPackage ../applications/science/math/bcal { };
+
+  pspp = callPackage ../applications/science/math/pspp {
+    inherit (gnome3) gtksourceview;
   };
 
-  singular = callPackage ../applications/science/math/singular {};
+  singular = callPackage ../applications/science/math/singular {
+    stdenv = overrideCC stdenv gcc5;
+  };
   libsingular = callPackage ../applications/science/math/singular {
     asLibsingular = true;
+    stdenv = overrideCC stdenv gcc5;
   };
 
   scilab = callPackage ../applications/science/math/scilab {
@@ -18493,6 +20211,8 @@ with pkgs;
 
   brgenml1cupswrapper = callPackage ../misc/cups/drivers/brgenml1cupswrapper {};
 
+  calaos_installer = libsForQt5.callPackage ../misc/calaos/installer {};
+
   cups = callPackage ../misc/cups {
     libusb = libusb1;
   };
@@ -18507,7 +20227,10 @@ with pkgs;
 
   cups-toshiba-estudio = callPackage ../misc/cups/drivers/estudio {};
 
+  cups-zj-58 =  callPackage ../misc/cups/drivers/zj-58 { };
+
   crashplan = callPackage ../applications/backup/crashplan { };
+  crashplansb = callPackage ../applications/backup/crashplan/crashplan-small-business.nix { inherit (gnome3) gconf; };
 
   colort = callPackage ../applications/misc/colort { };
 
@@ -18515,6 +20238,8 @@ with pkgs;
 
   e17gtk = callPackage ../misc/themes/e17gtk { };
 
+  epson-alc1100 = callPackage ../misc/drivers/epson-alc1100 { };
+
   epson-escpr = callPackage ../misc/drivers/epson-escpr { };
 
   epson_201207w = callPackage ../misc/drivers/epson_201207w { };
@@ -18528,6 +20253,10 @@ with pkgs;
   # this driver ships with pre-compiled 32-bit binary libraries
   cnijfilter_2_80 = callPackage_i686 ../misc/cups/drivers/cnijfilter_2_80 { };
 
+  cnijfilter_4_00 = callPackage ../misc/cups/drivers/cnijfilter_4_00 {
+    libusb = libusb1;
+  };
+
   cnijfilter2 = callPackage ../misc/cups/drivers/cnijfilter2 {
     libusb = libusb1;
   };
@@ -18553,12 +20282,15 @@ with pkgs;
   dell-530cdn = callPackage ../misc/drivers/dell-530cdn {};
 
   dosbox = callPackage ../misc/emulators/dosbox { };
+  dosbox-unstable = callPackage ../misc/emulators/dosbox/unstable.nix { };
 
   dpkg = callPackage ../tools/package-management/dpkg { };
 
   ekiga = newScope pkgs.gnome2 ../applications/networking/instant-messengers/ekiga { };
 
-  emulationstation = callPackage ../misc/emulators/emulationstation { };
+  emulationstation = callPackage ../misc/emulators/emulationstation {
+    stdenv = overrideCC stdenv gcc5;
+  };
 
   electricsheep = callPackage ../misc/screensavers/electricsheep { };
 
@@ -18573,7 +20305,7 @@ with pkgs;
   faust1 = callPackage ../applications/audio/faust/faust1.nix { };
 
   faust2 = callPackage ../applications/audio/faust/faust2.nix {
-    llvm = llvm_38;
+    llvm = llvm_5;
   };
 
   faust2alqt = callPackage ../applications/audio/faust/faust2alqt.nix { };
@@ -18594,7 +20326,7 @@ with pkgs;
 
   fceux = callPackage ../misc/emulators/fceux { };
 
-  flat-plat = callPackage ../misc/themes/flat-plat { };
+  flockit = callPackage ../tools/backup/flockit { };
 
   foldingathome = callPackage ../misc/foldingathome { };
 
@@ -18602,22 +20334,22 @@ with pkgs;
 
   foomatic-filters = callPackage ../misc/drivers/foomatic-filters {};
 
-  freestyle = callPackage ../misc/freestyle { };
-
-  gajim = callPackage ../applications/networking/instant-messengers/gajim { };
-
-  gale = callPackage ../applications/networking/instant-messengers/gale { };
+  gajim = python3.pkgs.callPackage ../applications/networking/instant-messengers/gajim {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-libav gst-plugins-ugly;
+    inherit (gnome3) gspell;
+  };
 
   gammu = callPackage ../applications/misc/gammu { };
 
   gensgs = callPackage_i686 ../misc/emulators/gens-gs { };
 
-  ghostscript = callPackage ../misc/ghostscript {
-    x11Support = false;
+  ghostscript = callPackage ../misc/ghostscript rec {
     cupsSupport = config.ghostscript.cups or (!stdenv.isDarwin);
+    x11Support = cupsSupport; # with CUPS, X11 only adds very little
   };
 
   ghostscriptX = appendToName "with-X" (ghostscript.override {
+    cupsSupport = true;
     x11Support = true;
   });
 
@@ -18637,6 +20369,8 @@ with pkgs;
 
   guetzli = callPackage ../applications/graphics/guetzli { };
 
+  gummi = callPackage ../applications/misc/gummi { };
+
   gxemul = callPackage ../misc/emulators/gxemul { };
 
   hatari = callPackage ../misc/emulators/hatari { };
@@ -18647,9 +20381,15 @@ with pkgs;
 
   hplipWithPlugin = hplip.override { withPlugin = true; };
 
-  hplip_3_15_9 = callPackage ../misc/drivers/hplip/3.15.9.nix { };
+  hplip_3_16_11 = callPackage ../misc/drivers/hplip/3.16.11.nix { };
+
+  hplipWithPlugin_3_16_11 = hplip.override { withPlugin = true; };
+
+  hyperfine = callPackage ../tools/misc/hyperfine { };
 
-  hplipWithPlugin_3_15_9 = hplip_3_15_9.override { withPlugin = true; };
+  epkowa = callPackage ../misc/drivers/epkowa { };
+
+  idsk = callPackage ../tools/filesystems/idsk { };
 
   illum = callPackage ../tools/system/illum { };
 
@@ -18658,11 +20398,16 @@ with pkgs;
 
   jack2Full = callPackage ../misc/jackaudio {
     libopus = libopus.override { withCustomModes = true; };
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox CoreAudio CoreFoundation;
   };
   libjack2 = jack2Full.override { prefix = "lib"; };
 
   keynav = callPackage ../tools/X11/keynav { };
 
+  kompose = callPackage ../applications/networking/cluster/kompose { };
+
+  kontemplate = callPackage ../applications/networking/cluster/kontemplate { };
+
   kops = callPackage ../applications/networking/cluster/kops { };
 
   lilypond = callPackage ../misc/lilypond { guile = guile_1_8; };
@@ -18672,10 +20417,15 @@ with pkgs;
   };
   openlilylib-fonts = callPackage ../misc/lilypond/fonts.nix { };
 
-  mailcore2 = callPackage ../development/libraries/mailcore2 { };
+  mailcore2 = callPackage ../development/libraries/mailcore2 {
+    icu = icu58;
+  };
 
   martyr = callPackage ../development/libraries/martyr { };
 
+  # previously known as flat-plat
+  materia-theme = callPackage ../misc/themes/materia-theme { };
+
   mess = callPackage ../misc/emulators/mess {
     inherit (pkgs.gnome2) GConf;
   };
@@ -18684,9 +20434,7 @@ with pkgs;
 
   mongoc = callPackage ../development/libraries/mongoc { };
 
-  mupen64plus = callPackage ../misc/emulators/mupen64plus {
-    stdenv = overrideCC stdenv gcc49;
-  };
+  mupen64plus = callPackage ../misc/emulators/mupen64plus { };
 
   mynewt-newt = callPackage ../tools/package-management/mynewt-newt { };
 
@@ -18695,6 +20443,7 @@ with pkgs;
       stateDir = config.nix.stateDir or "/nix/var";
       })
     nix
+    nix1
     nixStable
     nixUnstable;
 
@@ -18702,9 +20451,18 @@ with pkgs;
 
   nixopsUnstable = lowPrio (callPackage ../tools/package-management/nixops/unstable.nix { });
 
+  nixops-dns = callPackage ../tools/package-management/nixops/nixops-dns.nix { };
+
   nixui = callPackage ../tools/package-management/nixui { node_webkit = nwjs_0_12; };
 
-  nix-bundle = callPackage ../tools/package-management/nix-bundle { nix = nixUnstable; };
+  nix-bundle = callPackage ../tools/package-management/nix-bundle { };
+
+  nix-delegate = haskell.lib.justStaticExecutables haskellPackages.nix-delegate;
+  nix-deploy = haskell.lib.justStaticExecutables haskellPackages.nix-deploy;
+  nix-diff = haskell.lib.justStaticExecutables haskellPackages.nix-diff;
+
+  nix-info = callPackage ../tools/nix/info { };
+  nix-info-tested = callPackage ../tools/nix/info { doCheck = true; };
 
   nix-index = callPackage ../tools/package-management/nix-index { };
 
@@ -18720,7 +20478,7 @@ with pkgs;
 
   nix-template-rpm = callPackage ../build-support/templaterpm { inherit (pythonPackages) python toposort; };
 
-  nix-repl = callPackage ../tools/package-management/nix-repl { };
+  nix-repl = callPackage ../tools/package-management/nix-repl { nix = nix1; };
 
   nix-serve = callPackage ../tools/package-management/nix-serve { };
 
@@ -18758,15 +20516,14 @@ with pkgs;
   mnemonicode = callPackage ../misc/mnemonicode { };
 
   mysql-workbench = newScope gnome2 ../applications/misc/mysql-workbench (let mysql = mysql57; in {
-    automake = automake113x;
     gdal = gdal.override {mysql = mysql // {lib = {dev = mysql;};};};
     mysql = mysql;
     pcre = pcre-cpp;
   });
 
-  redis-desktop-manager = libsForQt56.callPackage ../applications/misc/redis-desktop-manager { };
+  redis-desktop-manager = libsForQt59.callPackage ../applications/misc/redis-desktop-manager { };
 
-  robomongo = callPackage ../applications/misc/robomongo { };
+  robo3t = callPackage ../applications/misc/robo3t { };
 
   rucksack = callPackage ../development/tools/rucksack { };
 
@@ -18776,6 +20533,8 @@ with pkgs;
 
   opkg-utils = callPackage ../tools/package-management/opkg-utils { };
 
+  pgmanage = callPackage ../applications/misc/pgmanage { };
+
   pgadmin = callPackage ../applications/misc/pgadmin { };
 
   pgf = pgf2;
@@ -18796,10 +20555,16 @@ with pkgs;
 
   pjsip = callPackage ../applications/networking/pjsip { };
 
-  PPSSPP = callPackage ../misc/emulators/ppsspp { SDL = SDL2; };
+  plano-theme = callPackage ../misc/themes/plano { };
+
+  ppsspp = libsForQt5.callPackage ../misc/emulators/ppsspp { };
 
   pt = callPackage ../applications/misc/pt { };
 
+  protocol = python3Packages.callPackage ../applications/networking/protocol { };
+
+  pykms = callPackage ../tools/networking/pykms { };
+
   pyload = callPackage ../applications/networking/pyload {};
 
   uae = callPackage ../misc/emulators/uae { };
@@ -18810,7 +20575,10 @@ with pkgs;
 
   redprl = callPackage ../applications/science/logic/redprl { };
 
-  retroarchBare = callPackage ../misc/emulators/retroarch { };
+  retroarchBare = callPackage ../misc/emulators/retroarch {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) AppKit Foundation;
+  };
 
   retroarch = wrapRetroArch { retroarch = retroarchBare; };
 
@@ -18820,6 +20588,12 @@ with pkgs;
 
   retrofe = callPackage ../misc/emulators/retrofe { };
 
+  rpl = callPackage ../tools/text/rpl {
+    pythonPackages = python3Packages;
+  };
+
+  ricty = callPackage ../data/fonts/ricty { };
+
   rss-glx = callPackage ../misc/screensavers/rss-glx { };
 
   runit = callPackage ../tools/system/runit { };
@@ -18849,6 +20623,9 @@ with pkgs;
   mfcl2700dncupswrapper = callPackage ../misc/cups/drivers/mfcl2700dncupswrapper { };
   mfcl2700dnlpr = callPackage_i686 ../misc/cups/drivers/mfcl2700dnlpr { };
 
+  mfcl2720dwcupswrapper = callPackage ../misc/cups/drivers/mfcl2720dwcupswrapper { };
+  mfcl2720dwlpr = callPackage ../misc/cups/drivers/mfcl2720dwlpr { };
+
   samsung-unified-linux-driver_1_00_37 = callPackage ../misc/cups/drivers/samsung { };
   samsung-unified-linux-driver_4_01_17 = callPackage ../misc/cups/drivers/samsung/4.01.17.nix { };
   samsung-unified-linux-driver = callPackage ../misc/cups/drivers/samsung/4.00.39 { };
@@ -18863,17 +20640,31 @@ with pkgs;
     snapscanFirmware = config.sane.snapscanFirmware or null;
   };
 
+  brlaser = callPackage ../misc/cups/drivers/brlaser { };
+
   brscan4 = callPackage ../applications/graphics/sane/backends/brscan4 { };
 
   mkSaneConfig = callPackage ../applications/graphics/sane/config.nix { };
 
   sane-frontends = callPackage ../applications/graphics/sane/frontends.nix { };
 
+  satysfi = callPackage ../tools/typesetting/satysfi {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_06;
+  };
+
+  sc-controller = pythonPackages.callPackage ../misc/drivers/sc-controller {
+    inherit libusb1; # Shadow python.pkgs.libusb1.
+  };
+
   sct = callPackage ../tools/X11/sct {};
 
   seafile-shared = callPackage ../misc/seafile-shared { };
 
-  slock = callPackage ../misc/screensavers/slock { };
+  serviio = callPackage ../servers/serviio {};
+
+  slock = callPackage ../misc/screensavers/slock {
+    conf = config.slock.conf or null;
+  };
 
   smokeping = callPackage ../tools/networking/smokeping {
     inherit fping rrdtool;
@@ -18892,21 +20683,29 @@ with pkgs;
 
   splix = callPackage ../misc/cups/drivers/splix { };
 
+  steamcontroller = callPackage ../misc/drivers/steamcontroller { };
+
   streamripper = callPackage ../applications/audio/streamripper { };
 
   sqsh = callPackage ../development/tools/sqsh { };
 
   inherit (callPackage ../applications/networking/cluster/terraform {})
     terraform_0_8_5
-    terraform_0_8_8
-    terraform_0_9_11;
+    terraform_0_8
+    terraform_0_9
+    terraform_0_10
+    terraform_0_10-full
+    terraform_0_11
+    terraform_0_11-full
+    ;
 
-  terraform_0_8 = terraform_0_8_8;
-  terraform_0_9 = terraform_0_9_11;
-  terraform = terraform_0_9;
+  terraform = terraform_0_11;
+  terraform-full = terraform_0_11-full;
 
   terraform-inventory = callPackage ../applications/networking/cluster/terraform-inventory {};
 
+  terraform-landscape = callPackage ../applications/networking/cluster/terraform-landscape {};
+
   terragrunt = callPackage ../applications/networking/cluster/terragrunt {};
 
   terragrunt_0_11_1 = callPackage ../applications/networking/cluster/terragrunt/0.11.1.nix {
@@ -18921,8 +20720,6 @@ with pkgs;
 
   tewi-font = callPackage ../data/fonts/tewi  {};
 
-  tex4ht = callPackage ../tools/typesetting/tex/tex4ht { tetex = ""; };
-
   texFunctions = callPackage ../tools/typesetting/tex/nix pkgs;
 
   # TeX Live; see http://nixos.org/nixpkgs/manual/#sec-language-texlive
@@ -18953,10 +20750,14 @@ with pkgs;
 
   utf8proc = callPackage ../development/libraries/utf8proc { };
 
+  unicode-paracode = callPackage ../tools/misc/unicode { };
+
   valauncher = callPackage ../applications/misc/valauncher { };
 
   vault = callPackage ../tools/security/vault { };
 
+  vaultenv = haskellPackages.vaultenv;
+
   vbam = callPackage ../misc/emulators/vbam {
     ffmpeg = ffmpeg_2;
   };
@@ -18980,14 +20781,14 @@ with pkgs;
   };
   vimprobable2 = wrapFirefox vimprobable2-unwrapped { };
 
-  vimb-unwrapped = callPackage ../applications/networking/browsers/vimb {
-    webkit = webkitgtk24x-gtk2;
-  };
+  vimb-unwrapped = callPackage ../applications/networking/browsers/vimb { };
   vimb = wrapFirefox vimb-unwrapped { };
 
   vips = callPackage ../tools/graphics/vips { };
   nip2 = callPackage ../tools/graphics/nip2 { };
 
+  virglrenderer = callPackage ../development/libraries/virglrenderer { };
+
   vokoscreen = libsForQt5.callPackage ../applications/video/vokoscreen { };
 
   wavegain = callPackage ../applications/audio/wavegain { };
@@ -19098,8 +20899,15 @@ with pkgs;
 
   xosd = callPackage ../misc/xosd { };
 
+  xosview2 = callPackage ../tools/X11/xosview2 { };
+
+  xpad = callPackage ../applications/misc/xpad {
+    inherit (gnome3) gtksourceview;
+  };
+
   xsane = callPackage ../applications/graphics/sane/xsane.nix {
     libpng = libpng12;
+    sane-backends = sane-backends.override { libpng = libpng12; };
   };
 
   xsw = callPackage ../applications/misc/xsw {
@@ -19115,8 +20923,11 @@ with pkgs;
     };
   };
 
-  yabause = callPackage ../misc/emulators/yabause {
-    qt = qt4;
+  xzoom = callPackage ../tools/X11/xzoom {};
+
+  yabause = libsForQt5.callPackage ../misc/emulators/yabause {
+    freeglut = null;
+    openal = null;
   };
 
   yadm = callPackage ../applications/version-management/yadm { };
@@ -19145,23 +20956,33 @@ with pkgs;
 
   zsnes = callPackage_i686 ../misc/emulators/zsnes { };
 
+  xcpc = callPackage ../misc/emulators/xcpc { };
+
+  zxcvbn-c = callPackage ../development/libraries/zxcvbn-c { };
+
   snes9x-gtk = callPackage ../misc/emulators/snes9x-gtk { };
 
+  openmsx = callPackage ../misc/emulators/openmsx {
+    python = python27;
+  };
+
   higan = callPackage ../misc/emulators/higan {
     inherit (gnome2) gtksourceview;
   };
 
-  misc = callPackage ../misc/misc.nix { };
-
   bullet = callPackage ../development/libraries/bullet {};
-  bullet283 = callPackage ../development/libraries/bullet/bullet283.nix {};
 
   spdlog = callPackage ../development/libraries/spdlog { };
 
-  dart = callPackage ../development/interpreters/dart { };
+  dart = dart_stable;
+  dart_old = callPackage ../development/interpreters/dart { version = "1.16.1"; };
+  dart_stable = callPackage ../development/interpreters/dart { version = "1.24.3"; };
+  dart_dev = callPackage ../development/interpreters/dart { version = "2.0.0-dev.26.0"; };
 
   httrack = callPackage ../tools/backup/httrack { };
 
+  httraqt = libsForQt5.callPackage ../tools/backup/httrack/qt.nix { };
+
   mg = callPackage ../applications/editors/mg { };
 
   mpvc = callPackage ../applications/misc/mpvc { };
@@ -19186,6 +21007,10 @@ with pkgs;
 
   iterm2 = callPackage ../applications/misc/iterm2 {};
 
+  sequeler = callPackage ../applications/misc/sequeler {
+    inherit (gnome3) gtksourceview libgda libgee;
+  };
+
   sequelpro = callPackage ../applications/misc/sequelpro {};
 
   maphosts = callPackage ../tools/networking/maphosts {};
@@ -19213,6 +21038,8 @@ with pkgs;
 
   hy = callPackage ../development/interpreters/hy {};
 
+  check-uptime = callPackage ../servers/monitoring/plugins/uptime.nix { };
+
   ghc-standalone-archive = callPackage ../os-specific/darwin/ghc-standalone-archive { inherit (darwin) cctools; };
 
   chrome-gnome-shell = callPackage  ../desktops/gnome-3/extensions/chrome-gnome-shell {};
@@ -19231,4 +21058,48 @@ with pkgs;
   undaemonize = callPackage ../tools/system/undaemonize {};
 
   houdini = callPackage ../applications/misc/houdini {};
+
+  xtermcontrol = callPackage ../applications/misc/xtermcontrol {};
+
+  openfst = callPackage ../development/libraries/openfst {};
+
+  # `recurseIntoAttrs` for sake of hydra, not nix-env
+  tests = recurseIntoAttrs {
+    cc-wrapper = callPackage ../test/cc-wrapper { };
+    cc-wrapper-gcc = callPackage ../test/cc-wrapper { stdenv = gccStdenv; };
+    cc-wrapper-clang = callPackage ../test/cc-wrapper { stdenv = llvmPackages.stdenv; };
+    cc-wrapper-libcxx = callPackage ../test/cc-wrapper { stdenv = llvmPackages.libcxxStdenv; };
+    cc-wrapper-clang-39 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_39.stdenv; };
+    cc-wrapper-libcxx-39 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_39.libcxxStdenv; };
+    cc-wrapper-clang-4 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_4.stdenv; };
+    cc-wrapper-libcxx-4 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_4.libcxxStdenv; };
+    cc-wrapper-clang-5 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_5.stdenv; };
+    cc-wrapper-libcxx-5 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_5.libcxxStdenv; };
+    cc-wrapper-clang-6 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_6.stdenv; };
+    cc-wrapper-libcxx-6 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_6.libcxxStdenv; };
+    stdenv-inputs = callPackage ../test/stdenv-inputs { };
+
+    cc-multilib-gcc = callPackage ../test/cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
+    cc-multilib-clang = callPackage ../test/cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };
+
+    macOSSierraShared = callPackage ../test/macos-sierra-shared {};
+  };
+
+  duti = callPackage ../os-specific/darwin/duti {};
+
+  dnstracer = callPackage ../tools/networking/dnstracer {
+    inherit (darwin) libresolv;
+  };
+
+  wal-g = callPackage ../tools/backup/wal-g {};
+
+  tlwg = callPackage ../data/fonts/tlwg { };
+
+  simplehttp2server = callPackage ../servers/simplehttp2server { };
+
+  diceware = callPackage ../tools/security/diceware { };
+
+  xml2rfc = callPackage ../tools/typesetting/xml2rfc { };
+
+  mmark = callPackage ../tools/typesetting/mmark { };
 }
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index fd2a556917127..765f69c1b14a4 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -6,21 +6,14 @@ rec {
   # Each
   interpreters = rec {
 
-    # R18 is the default version.
+    # R19 is the default version.
     erlang = erlangR19; # The main switch to change default Erlang version.
     erlang_odbc = erlangR19_odbc;
     erlang_javac = erlangR19_javac;
     erlang_odbc_javac = erlangR19_odbc_javac;
+    erlang_nox = erlangR19_nox;
 
     # These are standard Erlang versions, using the generic builder.
-    erlangR16 = lib.callErlang ../development/interpreters/erlang/R16.nix {};
-    erlangR16_odbc = erlangR16.override { odbcSupport = true; };
-    erlangR17 = lib.callErlang ../development/interpreters/erlang/R17.nix {};
-    erlangR17_odbc = erlangR17.override { odbcSupport = true; };
-    erlangR17_javac = erlangR17.override { javacSupport = true; };
-    erlangR17_odbc_javac = erlangR17.override {
-      javacSupport = true; odbcSupport = true;
-    };
     erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
       wxGTK = wxGTK30;
     };
@@ -29,6 +22,7 @@ rec {
     erlangR18_odbc_javac = erlangR18.override {
       javacSupport = true; odbcSupport = true;
     };
+    erlangR18_nox = erlangR18.override { wxSupport = false; };
     erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
       wxGTK = wxGTK30;
     };
@@ -37,6 +31,7 @@ rec {
     erlangR19_odbc_javac = erlangR19.override {
       javacSupport = true; odbcSupport = true;
     };
+    erlangR19_nox = erlangR19.override { wxSupport = false; };
     erlangR20 = lib.callErlang ../development/interpreters/erlang/R20.nix {
       wxGTK = wxGTK30;
     };
@@ -45,9 +40,10 @@ rec {
     erlangR20_odbc_javac = erlangR20.override {
       javacSupport = true; odbcSupport = true;
     };
+    erlangR20_nox = erlangR20.override { wxSupport = false; };
 
-    # Bash fork, using custom builder.
-    erlang_basho_R16B02 = lib.callErlang ../development/interpreters/erlang/R16B02-8-basho.nix {
+    # Basho fork, using custom builder.
+    erlang_basho_R16B02 = lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
     };
     erlang_basho_R16B02_odbc = erlang_basho_R16B02.override {
       odbcSupport = true;
@@ -56,7 +52,7 @@ rec {
     # Other Beam languages. These are built with `beam.interpreters.erlang`. To
     # access for example elixir built with different version of Erlang, use
     # `beam.packages.erlangR19.elixir`.
-    inherit (packages.erlang) elixir elixir_1_5 elixir_1_4 elixir_1_3;
+    inherit (packages.erlang) elixir elixir_1_6 elixir_1_5 elixir_1_4 elixir_1_3;
 
     inherit (packages.erlang) lfe lfe_1_2;
   };
@@ -70,8 +66,6 @@ rec {
 
     # Packages built with default Erlang version.
     erlang = packagesWith interpreters.erlang;
-    erlangR16 = packagesWith interpreters.erlangR16;
-    erlangR17 = packagesWith interpreters.erlangR17;
     erlangR18 = packagesWith interpreters.erlangR18;
     erlangR19 = packagesWith interpreters.erlangR19;
     erlangR20 = packagesWith interpreters.erlangR20;
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
new file mode 100644
index 0000000000000..419fc485dd012
--- /dev/null
+++ b/pkgs/top-level/coq-packages.nix
@@ -0,0 +1,81 @@
+{ lib, callPackage, newScope, recurseIntoAttrs
+, gnumake3
+, ocamlPackages_3_12_1
+, ocamlPackages_4_02
+}:
+
+let
+  mkCoqPackages' = self: coq:
+    let callPackage = newScope self ; in rec {
+      inherit callPackage coq;
+      coqPackages = self;
+
+      contribs = recurseIntoAttrs
+        (callPackage ../development/coq-modules/contribs {});
+
+      autosubst = callPackage ../development/coq-modules/autosubst {};
+      bignums = if lib.versionAtLeast coq.coq-version "8.6"
+        then callPackage ../development/coq-modules/bignums {}
+        else null;
+      category-theory = callPackage ../development/coq-modules/category-theory { };
+      CoLoR = callPackage ../development/coq-modules/CoLoR {};
+      coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
+      coq-haskell = callPackage ../development/coq-modules/coq-haskell { };
+      coquelicot = callPackage ../development/coq-modules/coquelicot {};
+      dpdgraph = callPackage ../development/coq-modules/dpdgraph {};
+      equations = callPackage ../development/coq-modules/equations { };
+      fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
+      flocq = callPackage ../development/coq-modules/flocq {};
+      heq = callPackage ../development/coq-modules/heq {};
+      HoTT = callPackage ../development/coq-modules/HoTT {};
+      interval = callPackage ../development/coq-modules/interval {};
+      math-classes = callPackage ../development/coq-modules/math-classes { };
+      mathcomp = callPackage ../development/coq-modules/mathcomp { };
+      metalib = callPackage ../development/coq-modules/metalib { };
+      multinomials = callPackage ../development/coq-modules/multinomials {};
+      paco = callPackage ../development/coq-modules/paco {};
+      QuickChick = callPackage ../development/coq-modules/QuickChick {};
+      ssreflect = callPackage ../development/coq-modules/ssreflect { };
+      tlc = callPackage ../development/coq-modules/tlc {};
+    };
+
+  filterCoqPackages = coq:
+    lib.filterAttrsRecursive
+    (_: p:
+      let pred = p.compatibleCoqVersions or (_: true);
+      in pred coq.coq-version
+    );
+
+in rec {
+
+  mkCoqPackages = coq:
+    let self = mkCoqPackages' self coq; in
+    filterCoqPackages coq self;
+
+  coq_8_3 = callPackage ../applications/science/logic/coq/8.3.nix {
+    make = gnumake3;
+    inherit (ocamlPackages_3_12_1) ocaml findlib;
+    camlp5 = ocamlPackages_3_12_1.camlp5_transitional;
+    lablgtk = ocamlPackages_3_12_1.lablgtk_2_14;
+  };
+  coq_8_4 = callPackage ../applications/science/logic/coq/8.4.nix {
+    inherit (ocamlPackages_4_02) ocaml findlib lablgtk;
+    camlp5 = ocamlPackages_4_02.camlp5_transitional;
+  };
+  coq_8_5 = callPackage ../applications/science/logic/coq {
+    version = "8.5pl3";
+  };
+  coq_8_6 = callPackage ../applications/science/logic/coq {
+    version = "8.6.1";
+  };
+  coq_8_7 = callPackage ../applications/science/logic/coq {
+    version = "8.7.2";
+  };
+
+  coqPackages_8_5 = mkCoqPackages coq_8_5;
+  coqPackages_8_6 = mkCoqPackages coq_8_6;
+  coqPackages_8_7 = mkCoqPackages coq_8_7;
+  coqPackages = coqPackages_8_7;
+  coq = coqPackages.coq;
+
+}
diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix
new file mode 100644
index 0000000000000..1f8039010d7b8
--- /dev/null
+++ b/pkgs/top-level/darwin-packages.nix
@@ -0,0 +1,68 @@
+{ pkgs, darwin, stdenv, callPackage, callPackages, newScope }:
+
+let
+  apple-source-releases = callPackage ../os-specific/darwin/apple-source-releases { };
+in
+
+(apple-source-releases // {
+
+  callPackage = newScope (darwin.apple_sdk.frameworks // darwin);
+
+  apple_sdk = callPackage ../os-specific/darwin/apple-sdk { };
+
+  binutils = pkgs.wrapBintoolsWith {
+    libc =
+      if pkgs.targetPlatform != pkgs.hostPlatform
+      then pkgs.libcCross
+      else pkgs.stdenv.cc.libc;
+    bintools = callPackage ../os-specific/darwin/binutils {
+      inherit (darwin) cctools;
+    };
+  };
+
+  cctools = callPackage ../os-specific/darwin/cctools/port.nix {
+    inherit (darwin) libobjc maloader;
+    stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
+    xctoolchain = darwin.xcode.toolchain;
+  };
+
+  cf-private = callPackage ../os-specific/darwin/cf-private {
+    inherit (apple-source-releases) CF;
+    inherit (darwin) osx_private_sdk;
+  };
+
+  DarwinTools = callPackage ../os-specific/darwin/DarwinTools { };
+
+  maloader = callPackage ../os-specific/darwin/maloader {
+    inherit (darwin) opencflite;
+  };
+
+  insert_dylib = callPackage ../os-specific/darwin/insert_dylib { };
+
+  ios-cross = callPackage ../os-specific/darwin/ios-cross {
+    inherit (darwin) binutils;
+  };
+
+  libobjc = apple-source-releases.objc4;
+  
+  lsusb = callPackage ../os-specific/darwin/lsusb { };
+
+  opencflite = callPackage ../os-specific/darwin/opencflite { };
+
+  osx_private_sdk = callPackage ../os-specific/darwin/osx-private-sdk { };
+
+  security_tool = darwin.callPackage ../os-specific/darwin/security-tool {
+    Security-framework = darwin.apple_sdk.frameworks.Security;
+  };
+
+  stubs = callPackages ../os-specific/darwin/stubs { };
+
+  swift-corefoundation = callPackage ../os-specific/darwin/swift-corefoundation { };
+
+  trash = callPackage ../os-specific/darwin/trash { inherit (darwin.apple_sdk) frameworks; };
+
+  usr-include = callPackage ../os-specific/darwin/usr-include { };
+
+  xcode = callPackage ../os-specific/darwin/xcode { };
+
+})
diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix
index 96d5e1fe28395..da7fc1bed34c5 100644
--- a/pkgs/top-level/default.nix
+++ b/pkgs/top-level/default.nix
@@ -22,9 +22,9 @@
   # `*Platform`s.
   localSystem
 
-  # The system packages will ultimately be run on. Null if the two should be the
+, # The system packages will ultimately be run on. Null if the two should be the
   # same.
-, crossSystem ? null
+  crossSystem ? null
 
 , # Allow a configuration attribute set to be passed in as an argument.
   config ? {}
@@ -49,7 +49,7 @@ in let
   # { /* the config */ } and
   # { pkgs, ... } : { /* the config */ }
   config =
-    if builtins.isFunction configExpr
+    if lib.isFunction configExpr
     then configExpr { inherit pkgs; }
     else configExpr;
 
diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix
index ac4c5eaac64c1..ca4469e9e998b 100644
--- a/pkgs/top-level/dotnet-packages.nix
+++ b/pkgs/top-level/dotnet-packages.nix
@@ -219,7 +219,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
   SmartIrc4net = fetchNuGet {
     baseName = "SmartIrc4net";
     version = "0.4.5.1";
-    sha256 = "1k6zc6xsqfzj7nc9479d32akj6d37jq6i1qirmz1i66p52zb5hm1";
+    sha256 = "1d531sj39fvwmj2wgplqfify301y3cwp7kwr9ai5hgrq81jmjn2b";
     outputFiles = [ "lib/*" ];
   };
 
@@ -331,13 +331,20 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
   Dafny = buildDotnetPackage rec {
     baseName = "Dafny";
-    version = "1.9.8";
+    version = "2.1.0";
 
     src = fetchurl {
       url = "https://github.com/Microsoft/dafny/archive/v${version}.tar.gz";
-      sha256 = "0n4pk4cv7d2zsn4xmyjlxvpfl9avq79r06c7kzmrng24p3k4qj6s";
+      sha256 = "1iyhy0zpi6wvqif7826anzgdipgsy5bk775ds9qqwfw27j7x6fy5";
     };
 
+    postPatch = ''
+      sed -i \
+        -e 's/ Visible="False"//' \
+        -e "s/Exists(\$(CodeContractsInstallDir))/Exists('\$(CodeContractsInstallDir)')/" \
+        Source/*/*.csproj
+    '';
+
     preBuild = ''
       ln -s ${pkgs.z3} Binaries/z3
     '';
@@ -345,7 +352,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     buildInputs = [ Boogie ];
 
     xBuildFiles = [ "Source/Dafny.sln" ];
-    xBuildFlags = [ ];
+    xBuildFlags = [ "/p:Configuration=Checked" "/p:Platform=Any CPU" "/t:Rebuild" ];
 
     outputFiles = [ "Binaries/*" ];
 
@@ -443,7 +450,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
     meta = {
       description = "Excel-DNA is an independent project to integrate .NET into Excel";
-      homepage = "http://excel-dna.net/";
+      homepage = "https://excel-dna.net/";
       license = stdenv.lib.licenses.mit;
       maintainers = with stdenv.lib.maintainers; [ obadz ];
       platforms = with stdenv.lib.platforms; linux;
@@ -715,7 +722,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
     meta = {
       description = "Math.NET Numerics is an opensource numerical library for .Net, Silverlight and Mono";
-      homepage = http://numerics.mathdotnet.com/;
+      homepage = https://numerics.mathdotnet.com/;
       license = stdenv.lib.licenses.mit;
       maintainers = with stdenv.lib.maintainers; [ obadz ];
       platforms = with stdenv.lib.platforms; linux;
@@ -872,7 +879,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
     meta = {
       description = "Popular high-performance JSON framework for .NET";
-      homepage = "http://www.newtonsoft.com/json";
+      homepage = "https://www.newtonsoft.com/json";
       license = stdenv.lib.licenses.mit;
       maintainers = with stdenv.lib.maintainers; [ obadz ];
       platforms = with stdenv.lib.platforms; linux;
@@ -881,13 +888,13 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
   Nuget = buildDotnetPackage {
     baseName = "Nuget";
-    version = "2.8.5";
+    version = "3.4.3";
 
     src = fetchFromGitHub {
       owner = "mono";
       repo = "nuget-binary";
-      rev = "da1f2102f8172df6f7a1370a4998e3f88b91c047";
-      sha256 = "1hbnckc4gvqkknf8gh1k7iwqb4vdzifdjd19i60fnczly5v8m1c3";
+      rev = "1f3025c2eb13bfcb56b47ddd77329ac3d9911d1c";
+      sha256 = "01snk05hcrp5i2ys3p1y34r05q1b460q6wb8p3vwpba2q2czdax5";
     };
 
     buildInputs = [ unzip ];
@@ -896,7 +903,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
     outputFiles = [ "*" ];
     dllFiles = [ "NuGet*.dll" ];
-    exeFiles = [ "NuGet.exe" ];
+    exeFiles = [ "nuget.exe" ];
   };
 
   Paket = buildDotnetPackage rec {
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index 5c50fe383bb9b..fbad836bc1ba1 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -32,9 +32,7 @@
 #   `meta` with `platforms` and `homepage` set to something you are
 #   unlikely to want to override for most packages
 
-{ overrides
-
-, lib, newScope, stdenv, fetchurl, fetchgit, fetchFromGitHub, fetchhg, runCommand
+{ lib, newScope, stdenv, fetchurl, fetchgit, fetchFromGitHub, fetchhg, runCommand
 
 , emacs, texinfo, lndir, makeWrapper
 , trivialBuild
@@ -75,26 +73,17 @@ let
 
   ## START HERE
 
-  tablist = melpaBuild rec {
-    pname = "tablist";
-    inherit (pdf-tools) src version;
-    fileSpecs = [ "lisp/tablist.el" "lisp/tablist-filter.el" ];
-    meta = {
-      description = "Extended tabulated-list-mode";
-      license = gpl3;
-    };
-  };
-
   pdf-tools = melpaBuild rec {
     pname = "pdf-tools";
-    version = "0.70";
+    version = "0.80";
     src = fetchFromGitHub {
       owner = "politza";
       repo = "pdf-tools";
       rev = "v${version}";
-      sha256 = "19sy49r3ijh36m7hl4vspw5c4i8pnfqdn4ldm2sqchxigkw56ayl";
+      sha256 = "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s";
     };
-    buildInputs = with external; [ autoconf automake libpng zlib poppler pkgconfig ];
+    nativeBuildInputs = [ external.pkgconfig ];
+    buildInputs = with external; [ autoconf automake libpng zlib poppler ];
     preBuild = "make server/epdfinfo";
     fileSpecs = [ "lisp/pdf-*.el" "server/epdfinfo" ];
     packageRequires = [ tablist let-alist ];
@@ -205,6 +194,9 @@ let
     };
   };
 
+  ess-R-object-popup =
+    callPackage ../applications/editors/emacs-modes/ess-R-object-popup { };
+
   find-file-in-project = melpaBuild rec {
     pname = "find-file-in-project";
     version = "3.5";
@@ -225,6 +217,10 @@ let
     };
   };
 
+  filesets-plus = callPackage ../applications/editors/emacs-modes/filesets-plus { };
+
+  font-lock-plus = callPackage ../applications/editors/emacs-modes/font-lock-plus { };
+
   ghc-mod = melpaBuild rec {
     pname = "ghc";
     version = external.ghc-mod.version;
@@ -254,6 +250,12 @@ let
     };
   };
 
+  hexrgb = callPackage ../applications/editors/emacs-modes/hexrgb { };
+
+  header2 = callPackage ../applications/editors/emacs-modes/header2 { };
+
+  helm-words = callPackage ../applications/editors/emacs-modes/helm-words { };
+
   hindent = melpaBuild rec {
     pname = "hindent";
     version = external.hindent.version;
@@ -267,10 +269,17 @@ let
     };
   };
 
+  icicles = callPackage ../applications/editors/emacs-modes/icicles { };
+
+  redshank = callPackage ../applications/editors/emacs-modes/redshank { };
+
   rtags = melpaBuild rec {
     pname = "rtags";
-    version = "2.0"; # really, it's some arbitrary git hash
+    version = "2.12";
     src = external.rtags.src;
+
+    configurePhase = ":";
+
     propagatedUserEnvPkgs = [ external.rtags ];
     fileSpecs = [ "src/*.el" ];
     inherit (external.rtags) meta;
@@ -287,6 +296,9 @@ let
     };
   };
 
+  lib-requires =
+    callPackage ../applications/editors/emacs-modes/lib-requires { };
+
   lui = melpaBuild rec {
     pname   = "lui";
     version = circe.version;
@@ -303,6 +315,16 @@ let
     inherit lib;
   };
 
+  org-mac-link =
+    callPackage ../applications/editors/emacs-modes/org-mac-link { };
+
+  perl-completion =
+    callPackage ../applications/editors/emacs-modes/perl-completion { };
+
+  railgun = callPackage ../applications/editors/emacs-modes/railgun { };
+
+  gn = callPackage ../applications/editors/emacs-modes/gn { };
+
   shorten = melpaBuild rec {
     pname   = "shorten";
     version = circe.version;
@@ -314,6 +336,8 @@ let
     };
   };
 
+  stgit = callPackage ../applications/editors/emacs-modes/stgit { };
+
   structured-haskell-mode = melpaBuild rec {
     pname = "shm";
     version = external.structured-haskell-mode.version;
@@ -329,6 +353,8 @@ let
     };
   };
 
+  thingatpt-plus = callPackage ../applications/editors/emacs-modes/thingatpt-plus { };
+
   tramp = callPackage ../applications/editors/emacs-modes/tramp { };
 
   weechat = melpaBuild rec {
@@ -350,14 +376,18 @@ let
     };
   };
 
+  yaoddmuse = callPackage ../applications/editors/emacs-modes/yaoddmuse { };
+
+  zeitgeist = callPackage ../applications/editors/emacs-modes/zeitgeist { };
+
   };
 
 in
   lib.makeScope newScope (self:
     {}
+    // melpaStablePackages self
     // melpaPackages self
     // elpaPackages self
-    // melpaStablePackages self
     // orgPackages self
     // packagesFun self
   )
diff --git a/pkgs/top-level/emscripten-packages.nix b/pkgs/top-level/emscripten-packages.nix
index ed9e09802b7d2..5b5b32b89da5a 100644
--- a/pkgs/top-level/emscripten-packages.nix
+++ b/pkgs/top-level/emscripten-packages.nix
@@ -1,48 +1,92 @@
 { pkgs }:
 
+with pkgs;
+
 # emscripten toolchain abstraction for nix
 # https://github.com/NixOS/nixpkgs/pull/16208
 
-with pkgs; rec {
-  json_c = pkgs.json_c.override {
-    stdenv = emscriptenStdenv;
-  };
+rec {
+  json_c = (pkgs.json_c.override {
+    stdenv = pkgs.emscriptenStdenv;
+  }).overrideDerivation
+    (old: {
+      nativeBuildInputs = [ autoreconfHook pkgconfig ];
+      propagatedBuildInputs = [ zlib ];
+      buildInputs = old.buildInputs ++ [ automake autoconf ];
+      configurePhase = ''
+        HOME=$TMPDIR
+        emconfigure ./configure --prefix=$out 
+      '';
+      checkPhase = ''
+        echo "================= testing json_c using node ================="
+
+        echo "Compiling a custom test"
+        set -x
+        emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 tests/test1.c \
+          `pkg-config zlib --cflags` \
+          `pkg-config zlib --libs` \
+          -I . \
+          .libs/libjson-c.so \
+          -o ./test1.js
+
+        echo "Using node to execute the test which basically outputs an error on stderr which we grep for" 
+        ${pkgs.nodejs}/bin/node ./test1.js 
+
+        set +x
+        if [ $? -ne 0 ]; then
+          echo "test1.js execution failed -> unit test failed, please fix"
+          exit 1;
+        else
+          echo "test1.js execution seems to work! very good."
+        fi
+        echo "================= /testing json_c using node ================="
+      '';
+    });
   
   libxml2 = (pkgs.libxml2.override {
     stdenv = emscriptenStdenv;
     pythonSupport = false;
   }).overrideDerivation
     (old: { 
-      buildInputs = old.buildInputs ++ [ autoreconfHook pkgconfig zlib nodejs ];
-      nativeBuildInputs = old.nativeBuildInputs ++ [ zlib pkgconfig ];
+      propagatedBuildInputs = [ zlib ];
+      buildInputs = old.buildInputs ++ [ pkgconfig ];
+
       # just override it with nothing so it does not fail
       autoreconfPhase = "echo autoreconfPhase not used..."; 
+      configurePhase = ''
+        HOME=$TMPDIR
+        emconfigure ./configure --prefix=$out --without-python
+      '';
       checkPhase = ''
-        echo "================= testing xmllint using node ================="
+        echo "================= testing libxml2 using node ================="
+
+        echo "Compiling a custom test"
+        set -x
         emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 xmllint.o \
         ./.libs/libxml2.a `pkg-config zlib --cflags` `pkg-config zlib --libs` -o ./xmllint.test.js \
         --embed-file ./test/xmlid/id_err1.xml  
-        # test/xmlid/id_err2.xml:3: validity error : xml:id : attribute type should be ID
-        # <!ATTLIST foo xml:id CDATA #IMPLIED>
-        #                                    ^
-        node ./xmllint.test.js --noout test/xmlid/id_err1.xml 2>&1  | grep 0bar   
+
+        echo "Using node to execute the test which basically outputs an error on stderr which we grep for" 
+        ${pkgs.nodejs}/bin/node ./xmllint.test.js --noout test/xmlid/id_err1.xml 2>&1 | grep 0bar   
+
+        set +x
         if [ $? -ne 0 ]; then
           echo "xmllint unit test failed, please fix this package"
           exit 1;
         else
           echo "since there is no stupid text containing 'foo xml:id' it seems to work! very good."
         fi
-        echo "================= /testing xmllint using node ================="
+        echo "================= /testing libxml2 using node ================="
       '';
     });            
   
-  xmlmirror = buildEmscriptenPackage rec {
+  xmlmirror = pkgs.buildEmscriptenPackage rec {
     name = "xmlmirror";
 
-    buildInputs = [ autoconf automake libtool pkgconfig gnumake libxml2 nodejs 
-       python openjdk json_c zlib ];
+    buildInputs = [ pkgconfig autoconf automake libtool gnumake libxml2 nodejs openjdk json_c ];
+    nativeBuildInputs = [ pkgconfig zlib ];
 
-    src = fetchgit {
+    src = pkgs.fetchgit {
       url = "https://gitlab.com/odfplugfest/xmlmirror.git";
       rev = "4fd7e86f7c9526b8f4c1733e5c8b45175860a8fd";
       sha256 = "1jasdqnbdnb83wbcnyrp32f36w3xwhwp0wq8lwwmhqagxrij1r4b";
@@ -50,6 +94,14 @@ with pkgs; rec {
      
     configurePhase = ''
       rm -f fastXmlLint.js*
+      # a fix for ERROR:root:For asm.js, TOTAL_MEMORY must be a multiple of 16MB, was 234217728
+      # https://gitlab.com/odfplugfest/xmlmirror/issues/8
+      sed -e "s/TOTAL_MEMORY=234217728/TOTAL_MEMORY=268435456/g" -i Makefile.emEnv
+      # https://github.com/kripken/emscripten/issues/6344
+      # https://gitlab.com/odfplugfest/xmlmirror/issues/9
+      sed -e "s/\$(JSONC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(LIBXML20_LDFLAGS)/\$(JSONC_LDFLAGS) \$(LIBXML20_LDFLAGS) \$(ZLIB_LDFLAGS) /g" -i Makefile.emEnv
+      # https://gitlab.com/odfplugfest/xmlmirror/issues/11
+      sed -e "s/-o fastXmlLint.js/-s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]' -o fastXmlLint.js/g" -i Makefile.emEnv
     '';
     
     buildPhase = ''
@@ -74,25 +126,58 @@ with pkgs; rec {
       cp *.rng $out/share
       cp README.md $doc/share/${name}
     '';
-    
-    postInstall = ''
+    checkPhase = ''
+      
     '';
   };  
 
   zlib = (pkgs.zlib.override {
-    stdenv = emscriptenStdenv;
+    stdenv = pkgs.emscriptenStdenv;
   }).overrideDerivation
-    (old: { 
+    (old: rec { 
+      buildInputs = old.buildInputs ++ [ pkgconfig ];
+      # we need to reset this setting!
+      NIX_CFLAGS_COMPILE="";
       configurePhase = ''
         # FIXME: Some tests require writing at $HOME
         HOME=$TMPDIR
         runHook preConfigure
 
-        emconfigure ./configure --prefix=$out
+        #export EMCC_DEBUG=2
+        emconfigure ./configure --prefix=$out --shared
 
         runHook postConfigure
       '';
-      postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+      dontStrip = true;
+      outputs = [ "out" ];
+      buildPhase = ''
+        emmake make
+      '';
+      installPhase = ''
+        emmake make install
+      '';
+      checkPhase = ''
+        echo "================= testing zlib using node ================="
+
+        echo "Compiling a custom test"
+        set -x
+        emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 test/example.c -DZ_SOLO \
+        libz.so.${old.version} -I . -o example.js
+
+        echo "Using node to execute the test"
+        ${pkgs.nodejs}/bin/node ./example.js 
+
+        set +x
+        if [ $? -ne 0 ]; then
+          echo "test failed for some reason"
+          exit 1;
+        else
+          echo "it seems to work! very good."
+        fi
+        echo "================= /testing zlib using node ================="
+      '';
+
+      postPatch = pkgs.stdenv.lib.optionalString pkgs.stdenv.isDarwin ''
         substituteInPlace configure \
           --replace '/usr/bin/libtool' 'ar' \
           --replace 'AR="libtool"' 'AR="ar"' \
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 099e45f102265..56d5aada81b6e 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -1,212 +1,163 @@
-{ pkgs, callPackage, stdenv, buildPlatform, targetPlatform }:
+{ buildPackages, pkgs
+, newScope, stdenv
+, buildPlatform, targetPlatform
+}:
 
-let # These are attributes in compiler and packages that don't support integer-simple.
-    integerSimpleExcludes = [
-      "ghc6102Binary"
-      "ghc704Binary"
-      "ghc742Binary"
-      "ghc6104"
-      "ghc6123"
-      "ghc704"
-      "ghc763"
-      "ghcjs"
-      "ghcjsHEAD"
-      "ghcCross"
-      "jhc"
-      "uhc"
-      "integer-simple"
-    ];
-in rec {
+let
+  # These are attributes in compiler and packages that don't support integer-simple.
+  integerSimpleExcludes = [
+    "ghc7103Binary"
+    "ghc821Binary"
+    "ghcCross"
+    "ghcjs"
+    "ghcjsHEAD"
+    "integer-simple"
+  ];
+
+  haskellLib = import ../development/haskell-modules/lib.nix {
+    inherit (pkgs) lib;
+    inherit pkgs;
+  };
+
+  callPackage = newScope { inherit haskellLib; };
+
+  bootstrapPackageSet = self: super: {
+    mkDerivation = drv: super.mkDerivation (drv // {
+      doCheck = false;
+      doHaddock = false;
+      enableExecutableProfiling = false;
+      enableLibraryProfiling = false;
+      enableSharedExecutables = false;
+      enableSharedLibraries = false;
+    });
+  };
 
-  lib = import ../development/haskell-modules/lib.nix { inherit pkgs; };
+in rec {
+  lib = haskellLib;
 
   compiler = {
 
-    ghc6102Binary = callPackage ../development/compilers/ghc/6.10.2-binary.nix { gmp = pkgs.gmp4; };
-    ghc704Binary = callPackage ../development/compilers/ghc/7.0.4-binary.nix {
-      gmp = pkgs.gmp4;
-    };
-    ghc742Binary = callPackage ../development/compilers/ghc/7.4.2-binary.nix {
-      gmp = pkgs.gmp4;
-    };
+    ghc7103Binary = callPackage ../development/compilers/ghc/7.10.3-binary.nix { };
+    ghc821Binary = callPackage ../development/compilers/ghc/8.2.1-binary.nix { };
 
-    ghc6104 = callPackage ../development/compilers/ghc/6.10.4.nix { ghc = compiler.ghc6102Binary; };
-    ghc6123 = callPackage ../development/compilers/ghc/6.12.3.nix { ghc = compiler.ghc6102Binary; };
-    ghc704 = callPackage ../development/compilers/ghc/7.0.4.nix {
-      ghc = compiler.ghc704Binary;
-    };
-    ghc722 = callPackage ../development/compilers/ghc/7.2.2.nix {
-      ghc = compiler.ghc704Binary;
-    };
-    ghc742 = callPackage ../development/compilers/ghc/7.4.2.nix {
-      ghc = compiler.ghc704Binary;
-    };
-    ghc763 = callPackage ../development/compilers/ghc/7.6.3.nix {
-      ghc = compiler.ghc704Binary;
-    };
-    ghc783 = callPackage ../development/compilers/ghc/7.8.3.nix {
-      ghc = compiler.ghc742Binary;
-    };
-    ghc784 = callPackage ../development/compilers/ghc/7.8.4.nix {
-      ghc = compiler.ghc742Binary;
-    };
-    ghc7102 = callPackage ../development/compilers/ghc/7.10.2.nix rec {
-      bootPkgs = packages.ghc784;
-      inherit (bootPkgs) hscolour;
-    };
     ghc7103 = callPackage ../development/compilers/ghc/7.10.3.nix rec {
-      bootPkgs = packages.ghc784;
+      bootPkgs = packages.ghc7103Binary;
       inherit (bootPkgs) hscolour;
-    };
-    ghc801 = callPackage ../development/compilers/ghc/8.0.1.nix rec {
-      bootPkgs = packages.ghc7103;
-      inherit (bootPkgs) hscolour;
-      sphinx = pkgs.python27Packages.sphinx;
+      buildLlvmPackages = buildPackages.llvmPackages_35;
+      llvmPackages = pkgs.llvmPackages_35;
     };
     ghc802 = callPackage ../development/compilers/ghc/8.0.2.nix rec {
-      bootPkgs = packages.ghc7103;
+      bootPkgs = packages.ghc7103Binary;
       inherit (bootPkgs) hscolour;
       sphinx = pkgs.python27Packages.sphinx;
+      buildLlvmPackages = buildPackages.llvmPackages_37;
+      llvmPackages = pkgs.llvmPackages_37;
     };
-    ghc821 = callPackage ../development/compilers/ghc/8.2.1.nix rec {
-      bootPkgs = packages.ghc802;
+    ghc822 = callPackage ../development/compilers/ghc/8.2.2.nix rec {
+      bootPkgs = packages.ghc821Binary;
       inherit (bootPkgs) hscolour alex happy;
       inherit buildPlatform targetPlatform;
       sphinx = pkgs.python3Packages.sphinx;
-      selfPkgs = packages.ghc821;
+      buildLlvmPackages = buildPackages.llvmPackages_39;
+      llvmPackages = pkgs.llvmPackages_39;
+    };
+    ghc841 = callPackage ../development/compilers/ghc/8.4.1.nix rec {
+      bootPkgs = packages.ghc821Binary;
+      inherit (bootPkgs) alex happy;
+      buildLlvmPackages = buildPackages.llvmPackages_5;
+      llvmPackages = pkgs.llvmPackages_5;
     };
     ghcHEAD = callPackage ../development/compilers/ghc/head.nix rec {
-      bootPkgs = packages.ghc7103;
+      bootPkgs = packages.ghc821Binary;
       inherit (bootPkgs) alex happy;
-      inherit buildPlatform targetPlatform;
-      selfPkgs = packages.ghcHEAD;
+      buildLlvmPackages = buildPackages.llvmPackages_5;
+      llvmPackages = pkgs.llvmPackages_5;
     };
     ghcjs = packages.ghc7103.callPackage ../development/compilers/ghcjs {
       bootPkgs = packages.ghc7103;
+      inherit (pkgs) cabal-install;
     };
     ghcjsHEAD = packages.ghc802.callPackage ../development/compilers/ghcjs/head.nix {
       bootPkgs = packages.ghc802;
-    };
-    ghcHaLVM240 = callPackage ../development/compilers/halvm/2.4.0.nix rec {
-      bootPkgs = packages.ghc802;
-      inherit (bootPkgs) hscolour alex happy;
-    };
-
-    jhc = callPackage ../development/compilers/jhc {
-      inherit (packages.ghc763) ghcWithPackages;
+      inherit (pkgs) cabal-install;
     };
 
-    uhc = callPackage ../development/compilers/uhc/default.nix ({
-      stdenv = pkgs.clangStdenv;
-      inherit (pkgs.haskellPackages) ghcWithPackages;
-    });
-
     # The integer-simple attribute set contains all the GHC compilers
     # build with integer-simple instead of integer-gmp.
-    integer-simple =
-      let integerSimpleGhcNames =
-            pkgs.lib.filter (name: ! builtins.elem name integerSimpleExcludes)
-                            (pkgs.lib.attrNames compiler);
-          integerSimpleGhcs = pkgs.lib.genAttrs integerSimpleGhcNames
-                                (name: compiler."${name}".override { enableIntegerSimple = true; });
-      in pkgs.recurseIntoAttrs (integerSimpleGhcs // {
-           ghcHEAD = integerSimpleGhcs.ghcHEAD.override { selfPkgs = packages.integer-simple.ghcHEAD; };
-         });
-
+    integer-simple = let
+      integerSimpleGhcNames = pkgs.lib.filter
+        (name: ! builtins.elem name integerSimpleExcludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
+      integerSimpleGhcNames
+      (name: compiler."${name}".override { enableIntegerSimple = true; }));
   };
 
-  packages = {
+  # Always get compilers from `buildPackages`
+  packages = let bh = buildPackages.haskell; in {
 
-    # Support for this compiler is broken, because it can't deal with directory-based package databases.
-    # ghc6104 = callPackage ../development/haskell-modules { ghc = compiler.ghc6104; };
-    ghc6123 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc6123;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-6.12.x.nix { };
-    };
-    ghc704 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc704;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.0.x.nix { };
-    };
-    ghc722 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc722;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.2.x.nix { };
-    };
-    ghc742 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc742;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.4.x.nix { };
-    };
-    ghc763 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc763;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.6.x.nix { };
-    };
-    ghc783 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc783;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.8.x.nix { };
-    };
-    ghc784 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc784;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.8.x.nix { };
-    };
-    ghc7102 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc7102;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { };
-    };
     ghc7103 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc7103;
+      buildHaskellPackages = bh.packages.ghc7103;
+      ghc = bh.compiler.ghc7103;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { };
     };
-    ghc801 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc801;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.0.x.nix { };
+    ghc7103Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc7103Binary;
+      ghc = bh.compiler.ghc7103Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
     };
     ghc802 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc802;
+      buildHaskellPackages = bh.packages.ghc802;
+      ghc = bh.compiler.ghc802;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.0.x.nix { };
     };
-    ghc821 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc821;
+    ghc821Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc821Binary;
+      ghc = bh.compiler.ghc821Binary;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
     };
-    ghcHEAD = callPackage ../development/haskell-modules {
-      ghc = compiler.ghcHEAD;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
+    ghc822 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc822;
+      ghc = bh.compiler.ghc822;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { };
     };
-    # TODO Support for multiple variants here
-    ghcCross = callPackage ../development/haskell-modules {
-      ghc = compiler.ghcHEAD.crossCompiler;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
+    ghc841 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc841;
+      ghc = bh.compiler.ghc841;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.4.x.nix { };
     };
-    ghcCross821 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc821.crossCompiler;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { };
+    ghcHEAD = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghcHEAD;
+      ghc = bh.compiler.ghcHEAD;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
     };
-    ghcjs = callPackage ../development/haskell-modules {
-      ghc = compiler.ghcjs;
+    ghcjs = callPackage ../development/haskell-modules rec {
+      buildHaskellPackages = ghc.bootPkgs;
+      ghc = bh.compiler.ghcjs;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { };
       packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
     };
-    ghcjsHEAD = callPackage ../development/haskell-modules {
-      ghc = compiler.ghcjsHEAD;
+    ghcjsHEAD = callPackage ../development/haskell-modules rec {
+      buildHaskellPackages = ghc.bootPkgs;
+      ghc = bh.compiler.ghcjsHEAD;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.0.x.nix { };
       packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
     };
-    ghcHaLVM240 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghcHaLVM240;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-halvm-2.4.0.nix { };
-    };
 
     # The integer-simple attribute set contains package sets for all the GHC compilers
     # using integer-simple instead of integer-gmp.
-    integer-simple =
-      let integerSimpleGhcNames =
-            pkgs.lib.filter (name: ! builtins.elem name integerSimpleExcludes)
-                            (pkgs.lib.attrNames packages);
-      in pkgs.lib.genAttrs integerSimpleGhcNames (name: packages."${name}".override {
-       ghc = compiler.integer-simple."${name}";
-       overrides = _self : _super : {
-         integer-simple = null;
-         integer-gmp = null;
-       };
+    integer-simple = let
+      integerSimpleGhcNames = pkgs.lib.filter
+        (name: ! builtins.elem name integerSimpleExcludes)
+        (pkgs.lib.attrNames packages);
+    in pkgs.lib.genAttrs integerSimpleGhcNames (name: packages."${name}".override {
+      ghc = compiler.integer-simple."${name}";
+      overrides = _self : _super : {
+        integer-simple = null;
+        integer-gmp = null;
+      };
     });
 
   };
diff --git a/pkgs/top-level/impure.nix b/pkgs/top-level/impure.nix
index c0cf8fb091139..a9f21e45aed4d 100644
--- a/pkgs/top-level/impure.nix
+++ b/pkgs/top-level/impure.nix
@@ -40,18 +40,36 @@ in
   # collections of packages.  These collection of packages are part of the
   # fix-point made by Nixpkgs.
   overlays ? let
-      dirPath = try (if pathExists <nixpkgs-overlays> then <nixpkgs-overlays> else "") "";
-      dirHome = homeDir + "/.config/nixpkgs/overlays";
-      dirCheck = dir: dir != "" && pathExists (dir + "/.");
-      overlays = dir:
-        let content = readDir dir; in
-        map (n: import (dir + ("/" + n)))
-          (builtins.filter (n: builtins.match ".*\.nix" n != null || pathExists (dir + ("/" + n + "/default.nix")))
-            (attrNames content));
+      isDir = path: pathExists (path + "/.");
+      pathOverlays = try <nixpkgs-overlays> "";
+      homeOverlaysFile = homeDir + "/.config/nixpkgs/overlays.nix";
+      homeOverlaysDir = homeDir + "/.config/nixpkgs/overlays";
+      overlays = path:
+        # check if the path is a directory or a file
+        if isDir path then
+          # it's a directory, so the set of overlays from the directory, ordered lexicographically
+          let content = readDir path; in
+          map (n: import (path + ("/" + n)))
+            (builtins.filter (n: builtins.match ".*\\.nix" n != null || pathExists (path + ("/" + n + "/default.nix")))
+              (attrNames content))
+        else 
+          # it's a file, so the result is the contents of the file itself
+          import path;
     in
-      if dirPath != "" then
-        overlays dirPath
-      else if dirCheck dirHome then overlays dirHome
+      if pathOverlays != "" && pathExists pathOverlays then overlays pathOverlays
+      else if pathExists homeOverlaysFile && pathExists homeOverlaysDir then 
+        throw ''
+          Nixpkgs overlays can be specified with ${homeOverlaysFile} or ${homeOverlaysDir}, but not both.
+          Please remove one of them and try again.
+        ''
+      else if pathExists homeOverlaysFile then 
+        if isDir homeOverlaysFile then 
+          throw (homeOverlaysFile + " should be a file")
+        else overlays homeOverlaysFile
+      else if pathExists homeOverlaysDir then
+        if !(isDir homeOverlaysDir) then 
+          throw (homeOverlaysDir + " should be a directory")
+        else overlays homeOverlaysDir
       else []
 
 , ...
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index 0df0b5a51c939..77cd5b0eba53e 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -61,6 +61,9 @@ in {
     junit_3_8_2
     junit_4_12;
 
+  inherit (callPackage ../development/java-modules/jogl { })
+    jogl_2_3_2;
+
   inherit (callPackage ../development/java-modules/log4j { inherit fetchMaven; })
     log4j_1_2_12;
 
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index f33b397958ca3..a23de670836b5 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -8,12 +8,14 @@
 { fetchurl, fetchzip, stdenv, lua, callPackage, unzip, zziplib, pkgconfig, libtool
 , pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat, cairo
 , perl, gtk2, python, glib, gobjectIntrospection, libevent, zlib, autoreconfHook
-, fetchFromGitHub, libmpack
+, mysql, postgresql, cyrus_sasl
+, fetchFromGitHub, libmpack, which, fetchpatch, writeText
 }:
 
 let
   isLua51 = lua.luaversion == "5.1";
   isLua52 = lua.luaversion == "5.2";
+  isLuaJIT = (builtins.parseDrvName lua.name).name == "luajit";
 
   platformString =
     if stdenv.isDarwin then "macosx"
@@ -33,15 +35,47 @@ let
   getLuaCPath   = lib : getPath lib "so";
 
   #define build lua package function
-  buildLuaPackage = callPackage ../development/lua-modules/generic lua;
+  buildLuaPackage = callPackage ../development/lua-modules/generic {
+    inherit lua writeText;
+  };
 
   luarocks = callPackage ../development/tools/misc/luarocks {
     inherit lua;
   };
 
+  bit32 = buildLuaPackage rec {
+    version = "5.3.0";
+    name = "bit32-${version}";
+
+    src = fetchFromGitHub {
+      owner = "keplerproject";
+      repo = "lua-compat-5.2";
+      rev = "bitlib-${version}";
+      sha256 = "1ipqlbvb5w394qwhm2f3w6pdrgy8v4q8sps5hh3pqz14dcqwakhj";
+    };
+
+    buildPhase = ''
+      cc ${if stdenv.isDarwin then "-bundle -undefined dynamic_lookup -all_load" else "-shared"} -Ic-api lbitlib.c -o bit32.so
+    '';
+
+    installPhase = ''
+      mkdir -p $out/lib/lua/${lua.luaversion}
+      install -p bit32.so $out/lib/lua/${lua.luaversion}
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Lua 5.2 bit manipulation library";
+      homepage = "http://www.lua.org/manual/5.2/manual.html#6.7";
+      license = licenses.mit;
+      maintainers = with maintainers; [ lblasc ];
+      platforms = platforms.unix;
+    };
+  };
+
   luabitop = buildLuaPackage rec {
     version = "1.0.2";
     name = "bitop-${version}";
+
     src = fetchurl {
       url = "http://bitop.luajit.org/download/LuaBitOp-${version}.tar.gz";
       sha256 = "16fffbrgfcw40kskh2bn9q7m3gajffwd2f35rafynlnd7llwj1qj";
@@ -65,20 +99,82 @@ let
       install -p bit.so $out/lib/lua/${lua.luaversion}
     '';
 
-    meta = {
+    meta = with stdenv.lib; {
+      description = "C extension module for Lua which adds bitwise operations on numbers";
       homepage = "http://bitop.luajit.org";
-      maintainers = with maintainers; [ flosse ];
+      license = licenses.mit;
+      maintainers = with maintainers; [ ];
+    };
+  };
+
+  luacheck = buildLuaPackage rec {
+    pname = "luacheck";
+    version = "0.20.0";
+    name = "${pname}-${version}";
+
+    src = fetchFromGitHub {
+      owner = "mpeterv";
+      repo = "luacheck";
+      rev = "${version}";
+      sha256 = "0ahfkmqcjhlb7r99bswy1sly6d7p4pyw5f4x4fxnxzjhbq0c5qcs";
+    };
+
+    propagatedBuildInputs = [ lua ];
+
+    # No Makefile.
+    dontBuild = true;
+
+    installPhase = ''
+      ${lua}/bin/lua install.lua $out
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A tool for linting and static analysis of Lua code";
+      homepage = https://github.com/mpeterv/luacheck;
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
+      platforms = platforms.unix;
+    };
+  };
+
+  luacyrussasl = buildLuaPackage rec {
+    version = "1.1.0";
+    name = "lua-cyrussasl-${version}";
+    src = fetchFromGitHub {
+      owner = "JorjBauer";
+      repo = "lua-cyrussasl";
+      rev = "v${version}";
+      sha256 = "14kzm3vk96k2i1m9f5zvpvq4pnzaf7s91h5g4h4x2bq1mynzw2s1";
+    };
+
+    preBuild = ''
+      makeFlagsArray=(
+        CFLAGS="-O2 -fPIC"
+        LDFLAGS="-O -shared -fpic -lsasl2"
+        LUAPATH="$out/share/lua/${lua.luaversion}"
+        CPATH="$out/lib/lua/${lua.luaversion}"
+      );
+      mkdir -p $out/{share,lib}/lua/${lua.luaversion}
+    '';
+
+    buildInputs = [ cyrus_sasl ];
+
+    meta = with stdenv.lib; {
+      homepage = "https://github.com/JorjBauer/lua-cyrussasl";
+      description = "Cyrus SASL library for Lua 5.1+";
+      license = licenses.bsd3;
     };
   };
 
   luaevent = buildLuaPackage rec {
-    version = "0.4.3";
+    version = "0.4.4";
     name = "luaevent-${version}";
-    disabled = isLua52;
 
-    src = fetchzip {
-      url = "https://github.com/harningt/luaevent/archive/v${version}.tar.gz";
-      sha256 = "1c1n2zqx5rwfwkqaq1jj8gvx1vswvbihj2sy445w28icz1xfhpik";
+    src = fetchFromGitHub {
+      owner = "harningt";
+      repo = "luaevent";
+      rev = "v${version}";
+      sha256 = "1krzxr0jkv3gmhpckp02byhdd9s5dd0hpyqc8irc8i79dd8x0p53";
     };
 
     preBuild = ''
@@ -97,14 +193,14 @@ let
       homepage = http://luaforge.net/projects/luaevent/;
       description = "Binding of libevent to Lua";
       license = licenses.mit;
-      maintainers = [ maintainers.koral ];
+      maintainers = with maintainers; [ koral ];
     };
   };
 
   luaexpat = buildLuaPackage rec {
     version = "1.3.0";
     name = "expat-${version}";
-    isLibrary = true;
+
     src = fetchurl {
       url = "https://matthewwild.co.uk/projects/luaexpat/luaexpat-${version}.tar.gz";
       sha256 = "1hvxqngn0wf5642i5p3vcyhg3pmp102k63s9ry4jqyyqc1wkjq6h";
@@ -124,60 +220,125 @@ let
         EXPAT_INC="-I${expat.dev}/include");
     '';
 
-    meta = {
+    disabled = isLuaJIT;
+
+    meta = with stdenv.lib; {
+      description = "SAX XML parser based on the Expat library";
       homepage = "http://matthewwild.co.uk/projects/luaexpat";
+      license = licenses.mit;
+      maintainers = with maintainers; [ flosse ];
+      platforms = platforms.unix;
+    };
+  };
+
+  luadbi = buildLuaPackage rec {
+    name = "luadbi-${version}";
+    version = "0.5";
+    src = fetchurl {
+      url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luadbi/luadbi.${version}.tar.gz";
+      sha256 = "07ikxgxgfpimnwf7zrqwcwma83ss3wm2nzjxpwv2a1c0vmc684a9";
+    };
+    sourceRoot = ".";
+
+    buildInputs = [ mysql.connector-c postgresql sqlite ];
+
+    preConfigure = ''
+      substituteInPlace Makefile --replace CC=gcc CC=cc
+    '' + stdenv.lib.optionalString stdenv.isDarwin ''
+      substituteInPlace Makefile \
+        --replace '-shared' '-bundle -undefined dynamic_lookup -all_load'
+    '';
+
+    NIX_CFLAGS_COMPILE = [
+      "-I${mysql.connector-c}/include/mysql"
+      "-L${mysql.connector-c}/lib/mysql"
+      "-I${postgresql}/include/server"
+    ];
+
+    installPhase = ''
+      mkdir -p $out/lib/lua/${lua.luaversion}
+      install -p DBI.lua *.so $out/lib/lua/${lua.luaversion}
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = "https://code.google.com/archive/p/luadbi/";
       platforms = stdenv.lib.platforms.unix;
-      maintainers = [ stdenv.lib.maintainers.flosse ];
     };
   };
 
   luafilesystem = buildLuaPackage rec {
-    name = "filesystem-1.6.2";
-    src = fetchzip {
-      url = "https://github.com/keplerproject/luafilesystem/archive/v1_6_2.tar.gz";
-      sha256 = "134azkxw84xp9g5qmzjsmcva629jm7plwcmjxkdzdg05vyd7kig1";
+    version = "1.6.3";
+    name = "filesystem-${version}";
+
+    src = fetchFromGitHub {
+      owner = "keplerproject";
+      repo = "luafilesystem";
+      rev = "v${stdenv.lib.replaceChars ["."] ["_"] version}";
+      sha256 = "1hxcnqj53540ysyw8fzax7f09pl98b8f55s712gsglcdxp2g2pri";
     };
-    preConfigure = "substituteInPlace config --replace 'CC= gcc' '';"
+
+    preConfigure = ''
+      substituteInPlace config --replace "CC= gcc" "";
+    ''
     + stdenv.lib.optionalString stdenv.isDarwin ''
       substituteInPlace config \
       --replace 'LIB_OPTION= -shared' '###' \
       --replace '#LIB_OPTION= -bundle' 'LIB_OPTION= -bundle'
       substituteInPlace Makefile --replace '10.3' '10.5'
     '';
-    meta = {
+
+    meta = with stdenv.lib; {
+      description = "Lua library complementing filesystem-related functions";
       homepage = "https://github.com/keplerproject/luafilesystem";
-      platforms = stdenv.lib.platforms.unix;
+      license = licenses.mit;
       maintainers = with maintainers; [ flosse ];
+      platforms = platforms.unix;
     };
   };
 
   luaposix = buildLuaPackage rec {
     name = "posix-${version}";
-    version = "33.4.0";
-    src = fetchurl {
-      url = "https://github.com/luaposix/luaposix/archive/release-v${version}.tar.gz";
-      sha256 = "e66262f5b7fe1c32c65f17a5ef5ffb31c4d1877019b4870a5d373e2ab6526a21";
+    version = "34.0.4";
+
+    src = fetchFromGitHub {
+      owner = "luaposix";
+      repo = "luaposix";
+      rev = "release-v${version}";
+      sha256 = "0p5583vidsm7s97zihf47c34vscwgbl86axrnj44j328v45kxb2z";
     };
-    buildInputs = [ perl ];
-    meta = {
+
+    propagatedBuildInputs = [ std.normalize bit32 ];
+
+    buildPhase = ''
+      ${lua}/bin/lua build-aux/luke \
+        package="luaposix" \
+        version="${version}"
+    '';
+
+    installPhase = ''
+      ${lua}/bin/lua build-aux/luke install --quiet \
+        INST_LIBDIR="$out/lib/lua/${lua.luaversion}" \
+        INST_LUADIR="$out/share/lua/${lua.luaversion}"
+    '';
+
+    meta = with stdenv.lib; {
       description = "Lua bindings for POSIX API";
       homepage = "https://github.com/luaposix/luaposix";
-      platforms = stdenv.lib.platforms.unix;
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp lblasc ];
+      platforms = platforms.unix;
     };
   };
 
   lpty = buildLuaPackage rec {
+    version = "1.2.1";
     name = "lpty-${version}";
-    version = "1.1.1";
+
     src = fetchurl {
-      url = "http://www.tset.de/downloads/lpty-1.1-1.tar.gz";
-      sha256 = "0d4ffda654dcf37dd8c99bcd100d0ee0dde7782cbd0ba9200ef8711c5cab02f1";
-    };
-    meta = {
-      homepage = "http://www.tset.de/lpty";
-      platforms = stdenv.lib.platforms.linux;
-      license = stdenv.lib.licenses.mit;
+      url = "http://www.tset.de/downloads/lpty-${version}-1.tar.gz";
+      sha256 = "0rgvbpymcgdkzdwfag607xfscs9xyqxg0dj0qr5fv906mi183gs6";
     };
+
     preBuild = ''
       makeFlagsArray=(
         INST_LIBDIR="$out/lib/lua/${lua.luaversion}"
@@ -187,10 +348,45 @@ let
         LUA_LIBDIR="-L${lua}/lib"
         );
     '';
+
+    meta = with stdenv.lib; {
+      description = "PTY control for Lua";
+      homepage = "http://www.tset.de/lpty";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
+      platforms = platforms.linux;
+    };
+  };
+
+  lua-iconv = buildLuaPackage rec {
+    name = "lua-iconv-${version}";
+    version = "7";
+
+    src = fetchFromGitHub {
+      owner = "ittner";
+      repo = "lua-iconv";
+      rev = name;
+      sha256 = "0rd76966qlxfp8ypkyrbif76nxnm1acclqwfs45wz3972jsk654i";
+    };
+
+    preBuild = ''
+      makeFlagsArray=(
+        INSTALL_PATH="$out/lib/lua/${lua.luaversion}"
+      );
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Lua bindings for POSIX iconv";
+      homepage = "https://ittner.github.io/lua-iconv/";
+      license = licenses.mit;
+      maintainers = with maintainers; [ richardipsum ];
+      platforms = platforms.unix;
+    };
   };
 
   luasec = buildLuaPackage rec {
     name = "sec-0.6";
+
     src = fetchFromGitHub {
       owner = "brunoos";
       repo = "luasec";
@@ -209,19 +405,24 @@ let
         LIB_PATH="-L$out/lib");
     '';
 
-    meta = {
+    meta = with stdenv.lib; {
+      description = "Lua binding for OpenSSL library to provide TLS/SSL communication";
       homepage = "https://github.com/brunoos/luasec";
-      platforms = stdenv.lib.platforms.unix;
-      maintainers = [ stdenv.lib.maintainers.flosse ];
+      license = licenses.mit;
+      maintainers = with maintainers; [ flosse ];
+      platforms = platforms.unix;
     };
   };
 
   luasocket = buildLuaPackage rec {
     name = "socket-${version}";
     version = "3.0-rc1";
-    src = fetchurl {
-      url = "https://github.com/diegonehab/luasocket/archive/v${version}.tar.gz";
-      sha256 = "0j8jx8bjicvp9khs26xjya8c495wrpb7parxfnabdqa5nnsxjrwb";
+
+    src = fetchFromGitHub {
+      owner = "diegonehab";
+      repo = "luasocket";
+      rev = "v${version}";
+      sha256 = "1chs7z7a3i3lck4x7rz60ziwbf793gw169hpjdfca8y4yf1hzsxk";
     };
 
     patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
@@ -237,28 +438,74 @@ let
       );
     '';
 
+    installTargets = [ "install" "install-unix" ];
+
     meta = with stdenv.lib; {
+      description = "Network support for Lua";
       homepage = "http://w3.impa.br/~diego/software/luasocket/";
+      license = licenses.mit;
+      maintainers = with maintainers; [ ];
       platforms = with platforms; darwin ++ linux ++ freebsd ++ illumos;
-      maintainers = with maintainers; [ mornfall ];
+    };
+  };
+
+  luxio = buildLuaPackage rec {
+    name = "luxio-${version}";
+    version = "13";
+
+    src = fetchurl {
+      url = "https://git.gitano.org.uk/luxio.git/snapshot/luxio-luxio-13.tar.bz2";
+      sha256 = "1hvwslc25q7k82rxk461zr1a2041nxg7sn3sw3w0y5jxf0giz2pz";
+    };
+
+    nativeBuildInputs = [ which pkgconfig ];
+
+    postPatch = ''
+      patchShebangs .
+    '';
+
+    preBuild = ''
+      makeFlagsArray=(
+        INST_LIBDIR="$out/lib/lua/${lua.luaversion}"
+        INST_LUADIR="$out/share/lua/${lua.luaversion}"
+        LUA_BINDIR="$out/bin"
+        INSTALL=install
+        );
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Lightweight UNIX I/O and POSIX binding for Lua";
+      homepage = "https://www.gitano.org.uk/luxio/";
+      license = licenses.mit;
+      maintainers = with maintainers; [ richardipsum ];
+      platforms = platforms.unix;
     };
   };
 
   luazip = buildLuaPackage rec {
     name = "zip-${version}";
-    version = "1.2.3";
-    src = fetchzip {
-      url = "https://github.com/luaforge/luazip/archive/0b8f5c958e170b1b49f05bc267bc0351ad4dfc44.zip";
+    version = "2007-10-30";
+
+    src = fetchFromGitHub {
+      owner = "luaforge";
+      repo = "luazip";
+      rev = "0b8f5c958e170b1b49f05bc267bc0351ad4dfc44";
       sha256 = "0zrrwhmzny5zbpx91bjbl77gzkvvdi3qhhviliggp0aj8w3faxsr";
     };
-    buildInputs = [ unzip zziplib ];
+
+    buildInputs = [ zziplib ];
+
     patches = [ ../development/lua-modules/zip.patch ];
-    # does not currently work under lua 5.2
-    disabled = isLua52;
-    meta = {
+
+    # Does not currently work under Lua 5.2 or LuaJIT.
+    disabled = isLua52 || isLuaJIT;
+
+    meta = with stdenv.lib; {
+      description = "Lua library to read files stored inside zip files";
       homepage = "https://github.com/luaforge/luazip";
-      platforms = stdenv.lib.platforms.linux;
-      license = stdenv.lib.licenses.mit;
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
+      platforms = platforms.linux;
     };
   };
 
@@ -266,14 +513,18 @@ let
     name = "zlib-${version}";
     version = "1.1";
 
-    src = fetchzip {
-      url = "https://github.com/brimworks/lua-zlib/archive/v${version}.tar.gz";
+    src = fetchFromGitHub {
+      owner = "brimworks";
+      repo = "lua-zlib";
+      rev = "v${version}";
       sha256 = "1520lk4xpf094xn2zallqgqhs0zb4w61l49knv9y8pmhkdkxzzgy";
     };
 
     buildInputs = [ zlib ];
 
-    preConfigure = "substituteInPlace Makefile --replace gcc cc --replace '-llua' ''";
+    preConfigure = ''
+      substituteInPlace Makefile --replace gcc cc --replace "-llua" ""
+    '';
 
     preBuild = ''
       makeFlagsArray=(
@@ -287,40 +538,52 @@ let
     preInstall = "mkdir -p $out/lib/lua/${lua.luaversion}";
 
     meta = with stdenv.lib; {
+      description = "Simple streaming interface to zlib for Lua";
       homepage = https://github.com/brimworks/lua-zlib;
-      platforms = platforms.unix;
       license = licenses.mit;
-      maintainers = [ maintainers.koral ];
+      maintainers = with maintainers; [ koral ];
+      platforms = platforms.unix;
     };
   };
 
 
-  luastdlib = buildLuaPackage {
-    name = "stdlib";
-    src = fetchzip {
-      url = "https://github.com/lua-stdlib/lua-stdlib/archive/release.zip";
-      sha256 = "0636absdfjx8ybglwydmqxwfwmqz1c4b9s5mhxlgm4ci18lw3hms";
+  luastdlib = buildLuaPackage rec {
+    name = "stdlib-${version}";
+    version = "41.2.1";
+
+    src = fetchFromGitHub {
+      owner = "lua-stdlib";
+      repo = "lua-stdlib";
+      rev = "release-v${version}";
+      sha256 = "03wd1qvkrj50fjszb2apzdkc8d5bpfbbi9pajl0vbrlzzmmi3jlq";
     };
-    buildInputs = [ autoreconfHook unzip ];
-    meta = {
-      homepage = "https://github.com/lua-stdlib/lua-stdlib/";
-      platforms = stdenv.lib.platforms.linux;
-      license = stdenv.lib.licenses.mit;
+
+    nativeBuildInputs = [ autoreconfHook unzip ];
+
+    meta = with stdenv.lib; {
+      description = "General Lua libraries";
+      homepage = "https://github.com/lua-stdlib/lua-stdlib";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
+      platforms = platforms.linux;
     };
   };
 
   lrexlib = buildLuaPackage rec {
     name = "lrexlib-${version}";
     version = "2.8.0";
-    src = fetchzip {
-      url = "https://github.com/rrthomas/lrexlib/archive/rel-2-8-0.zip";
+
+    src = fetchFromGitHub {
+      owner = "rrthomas";
+      repo = "lrexlib";
+      rev = "rel-2-8-0";
       sha256 = "1c62ny41b1ih6iddw5qn81gr6dqwfffzdp7q6m8x09zzcdz78zhr";
     };
-    buildInputs = [ unzip luastdlib pcre luarocks oniguruma gnulib tre glibc ];
+
+    buildInputs = [ luastdlib pcre luarocks oniguruma gnulib tre glibc ];
 
     buildPhase = let
       luaVariable = ''LUA_PATH="${luastdlib}/share/lua/${lua.luaversion}/?/init.lua;${luastdlib}/share/lua/${lua.luaversion}/?.lua"'';
-
       pcreVariable = "PCRE_DIR=${pcre.out} PCRE_INCDIR=${pcre.dev}/include";
       onigVariable = "ONIG_DIR=${oniguruma}";
       gnuVariable = "GNU_INCDIR=${gnulib}/lib";
@@ -336,40 +599,47 @@ let
       cp -r luarocks/lib $out;
     '';
 
-    meta = {
-      homepage = "https://github.com/lua-stdlib/lua-stdlib/";
-      platforms = stdenv.lib.platforms.linux;
-      license = stdenv.lib.licenses.mit;
+    meta = with stdenv.lib; {
+      description = "Lua bindings of various regex library APIs";
+      homepage = "https://github.com/rrthomas/lrexlib";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
+      platforms = platforms.linux;
     };
   };
 
   luasqlite3 = buildLuaPackage rec {
     name = "sqlite3-${version}";
-    version = "2.1.1";
-    src = fetchzip {
-      url = "https://github.com/LuaDist/luasql-sqlite3/archive/2acdb6cb256e63e5b5a0ddd72c4639d8c0feb52d.zip";
-      sha256 = "17zsa0jzciildil9k4lb0rjn9s1nj80dy16pzx9bxqyi75pjf2d4";
+    version = "2.3.0";
+
+    src = fetchFromGitHub {
+      owner = "LuaDist";
+      repo = "luasql-sqlite3";
+      rev = version;
+      sha256 = "05k8zs8nsdmlwja3hdhckwknf7ww5cvbp3sxhk2xd1i3ij6aa10b";
     };
 
-    buildInputs = [ unzip sqlite ];
+    buildInputs = [ sqlite ];
 
     patches = [ ../development/lua-modules/luasql.patch ];
 
-    meta = {
+    meta = with stdenv.lib; {
+      description = "Database connectivity for Lua";
       homepage = "https://github.com/LuaDist/luasql-sqlite3";
-      platforms = stdenv.lib.platforms.linux;
-      license = stdenv.lib.licenses.mit;
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
+      platforms = platforms.linux;
     };
   };
 
   lpeg = buildLuaPackage rec {
     name = "lpeg-${version}";
     version = "0.12";
+
     src = fetchurl {
       url = "http://www.inf.puc-rio.br/~roberto/lpeg/${name}.tar.gz";
       sha256 = "0xlbfw1w7l65a5qhnx5sfw327hkq1zcj8xmg4glfw6fj9ha4b9gg";
     };
-    buildInputs = [ unzip ];
 
     preBuild = ''
       makeFlagsArray=(CC=$CC);
@@ -383,112 +653,203 @@ let
       install -p re.lua $out/lib/lua/${lua.luaversion}
     '';
 
-    meta = {
+    meta = with stdenv.lib; {
+      description = "Parsing Expression Grammars For Lua";
       homepage = "http://www.inf.puc-rio.br/~roberto/lpeg/";
-      platforms = stdenv.lib.platforms.all;
-      license = stdenv.lib.licenses.mit;
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
+      platforms = platforms.all;
     };
   };
 
   cjson = buildLuaPackage rec {
     name = "cjson-${version}";
     version = "2.1.0";
+
     src = fetchurl {
-      url = "http://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz";
+      url = "http://www.kyne.com.au/~mark/software/download/lua-${name}.tar.gz";
       sha256 = "0y67yqlsivbhshg8ma535llz90r4zag9xqza5jx0q7lkap6nkg2i";
     };
+
     preBuild = ''
       sed -i "s|/usr/local|$out|" Makefile
     '';
+
     makeFlags = [ "LUA_VERSION=${lua.luaversion}" ];
+
     postInstall = ''
       rm -rf $out/share/lua/${lua.luaversion}/cjson/tests
     '';
+
     installTargets = "install install-extra";
-    meta = {
+
+    disabled = isLuaJIT;
+
+    meta = with stdenv.lib; {
       description = "Lua C extension module for JSON support";
-      license = stdenv.lib.licenses.mit;
+      homepage = "https://www.kyne.com.au/~mark/software/lua-cjson.php";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
     };
   };
 
   lgi = stdenv.mkDerivation rec {
     name = "lgi-${version}";
-    version = "0.9.1";
+    version = "0.9.2";
 
     src = fetchFromGitHub {
       owner = "pavouk";
       repo = "lgi";
       rev = version;
-      sha256 = "09pbapjhyc3sn0jgx747shqr9286wqfzw02h43p4pk8fv2b766b9";
-    };
-
-    meta = with stdenv.lib; {
-      description = "GObject-introspection based dynamic Lua binding to GObject based libraries";
-      homepage    = https://github.com/pavouk/lgi;
-      license     = "custom";
-      maintainers = with maintainers; [ lovek323 rasendubi ];
-      platforms   = platforms.unix;
+      sha256 = "03rbydnj411xpjvwsyvhwy4plm96481d7jax544mvk7apd8sd5jj";
     };
 
-    buildInputs = [ glib gobjectIntrospection lua pkgconfig ];
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ glib gobjectIntrospection lua ];
 
     makeFlags = [ "LUA_VERSION=${lua.luaversion}" ];
 
     preBuild = ''
       sed -i "s|/usr/local|$out|" lgi/Makefile
     '';
+
+    patches = [
+        (fetchpatch {
+            name = "lgi-find-cairo-through-typelib.patch";
+            url = "https://github.com/psychon/lgi/commit/46a163d9925e7877faf8a4f73996a20d7cf9202a.patch";
+            sha256 = "0gfvvbri9kyzhvq3bvdbj2l6mwvlz040dk4mrd5m9gz79f7w109c";
+        })
+    ];
+
+    meta = with stdenv.lib; {
+      description = "GObject-introspection based dynamic Lua binding to GObject based libraries";
+      homepage    = https://github.com/pavouk/lgi;
+      license     = licenses.mit;
+      maintainers = with maintainers; [ lovek323 rasendubi ];
+      platforms   = platforms.unix;
+    };
   };
 
   mpack = buildLuaPackage rec {
-    name = "lua-mpack-${libmpack.version}";
-    src = libmpack.src;
-    sourceRoot = "libmpack-${libmpack.rev}-src/binding/lua";
-    buildInputs = [ libmpack ]; #libtool lua pkgconfig ];
+    name = "mpack-${version}";
+    version = "1.0.7";
+
+    src = fetchFromGitHub {
+      owner = "libmpack";
+      repo = "libmpack-lua";
+      rev = version;
+      sha256 = "1nydi6xbmxwl1fmi32v5v8n74msnmzblzqaqnb102w6vkinampsb";
+    };
+
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ libmpack ];
     dontBuild = true;
-    preInstall = ''
-      mkdir -p $out/lib/lua/${lua.luaversion}
+
+    postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+      substituteInPlace Makefile \
+        --replace '-shared' '-bundle -undefined dynamic_lookup -all_load'
     '';
-    NIX_CFLAGS_COMPILE = "-Wno-error -fpic";
+
     installFlags = [
       "USE_SYSTEM_LUA=yes"
-      "LUA_VERSION_MAJ_MIN="
-      "LUA_CMOD_INSTALLDIR=$$out/lib/lua/${lua.luaversion}"
+      "USE_SYSTEM_MPACK=yes"
+      "MPACK_LUA_VERSION=${lua.version}"
+      "LUA_CMOD_INSTALLDIR=$(out)/lib/lua/${lua.luaversion}"
     ];
-    meta = {
-      description = "Simple implementation of msgpack in C Lua 5.1";
-      homepage = "https://github.com/tarruda/libmpack";
-      platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
-      license = stdenv.lib.licenses.mit;
-      # gcc -llua fails with luajit
-      broken = (builtins.parseDrvName lua.name).name != "lua";
+
+    meta = with stdenv.lib; {
+      description = "Lua bindings for libmpack";
+      homepage = "https://github.com/libmpack/libmpack-lua";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vyp ];
+      platforms = with platforms; linux ++ darwin;
+    };
+  };
+
+  std._debug = buildLuaPackage rec {
+    name = "std._debug-${version}";
+    version = "1.0";
+
+    src = fetchFromGitHub {
+      owner = "lua-stdlib";
+      repo = "_debug";
+      rev = "v${version}";
+      sha256 = "01kfs6k9j9zy4bvk13jx18ssfsmhlciyrni1x32qmxxf4wxyi65n";
+    };
+
+    # No Makefile.
+    dontBuild = true;
+
+    installPhase = ''
+      mkdir -p $out/share/lua/${lua.luaversion}/std
+      cp -r lib/std/_debug $out/share/lua/${lua.luaversion}/std/
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Manage an overall debug state, and associated hint substates.";
+      homepage    = https://lua-stdlib.github.io/_debug;
+      license     = licenses.mit;
+      maintainers = with maintainers; [ lblasc ];
+      platforms   = platforms.unix;
+    };
+  };
+
+  std.normalize = buildLuaPackage rec {
+    name = "std.normalize-${version}";
+    version = "2.0.1";
+
+    src = fetchFromGitHub {
+      owner = "lua-stdlib";
+      repo = "normalize";
+      rev = "v${version}";
+      sha256 = "1yz96r28d2wcgky6by92a21755bf4wzpn65rdv2ps0fxywgw5rda";
+    };
+
+    propagatedBuildInputs = [ std._debug ];
+
+    # No Makefile.
+    dontBuild = true;
+
+    installPhase = ''
+      mkdir -p $out/share/lua/${lua.luaversion}/std
+      cp -r lib/std/normalize $out/share/lua/${lua.luaversion}/std/
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Normalized Lua Functions";
+      homepage    = https://lua-stdlib.github.io/normalize;
+      license     = licenses.mit;
+      maintainers = with maintainers; [ lblasc ];
+      platforms   = platforms.unix;
     };
   };
 
   vicious = stdenv.mkDerivation rec {
     name = "vicious-${version}";
-    version = "2.2.0";
+    version = "2.3.1";
 
     src = fetchFromGitHub {
       owner = "Mic92";
       repo = "vicious";
       rev = "v${version}";
-      sha256 = "0dhy0vklrhqrnmxb9pyqbfvkwwy86lwysk93pzg1j1zwprx366fj";
-    };
-
-    meta = with stdenv.lib; {
-      description = "Vicious widgets for window managers";
-      homepage    = https://github.com/Mic92/vicious;
-      license     = licenses.gpl2;
-      maintainers = with maintainers; [ makefu mic92 ];
-      platforms   = platforms.linux;
+      sha256 = "1yzhjn8rsvjjsfycdc993ms6jy2j5jh7x3r2ax6g02z5n0anvnbx";
     };
 
     buildInputs = [ lua ];
+
     installPhase = ''
       mkdir -p $out/lib/lua/${lua.luaversion}/
       cp -r . $out/lib/lua/${lua.luaversion}/vicious/
       printf "package.path = '$out/lib/lua/${lua.luaversion}/?/init.lua;' ..  package.path\nreturn require((...) .. '.init')\n" > $out/lib/lua/${lua.luaversion}/vicious.lua
     '';
+
+    meta = with stdenv.lib; {
+      description = "A modular widget library for the awesome window manager";
+      homepage    = https://github.com/Mic92/vicious;
+      license     = licenses.gpl2;
+      maintainers = with maintainers; [ makefu mic92 ];
+      platforms   = platforms.linux;
+    };
   };
 
 }; in self
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index c7e5f21910bbd..ccd7b89fc12d3 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -24,7 +24,9 @@ releaseTools.sourceTarball rec {
     eval "$preConfigure"
     releaseName=nixpkgs-$VERSION$VERSION_SUFFIX
     echo -n $VERSION_SUFFIX > .version-suffix
+    echo -n ${nixpkgs.rev or nixpkgs.shortRev} > .git-revision
     echo "release name is $releaseName"
+    echo "git-revision is $(cat .git-revision)"
   '';
 
   dontBuild = false;
@@ -41,8 +43,10 @@ releaseTools.sourceTarball rec {
     echo 'abort "Illegal use of <nixpkgs> in Nixpkgs."' > $TMPDIR/barf.nix
 
     # Make sure that Nixpkgs does not use <nixpkgs>
-    if (find pkgs -type f -name '*.nix' -print | xargs grep '<nixpkgs\/'); then
+    badFiles=$(find pkgs -type f -name '*.nix' -print | xargs grep -l '^[^#]*<nixpkgs\/' || true)
+    if [[ -n $badFiles ]]; then
         echo "Nixpkgs is not allowed to use <nixpkgs> to refer to itself."
+        echo "The offending files: $badFiles"
         exit 1
     fi
 
diff --git a/pkgs/top-level/metrics.nix b/pkgs/top-level/metrics.nix
index 2a54566ef4a75..77f620da72499 100644
--- a/pkgs/top-level/metrics.nix
+++ b/pkgs/top-level/metrics.nix
@@ -19,7 +19,7 @@ runCommand "nixpkgs-metrics"
       shift
 
       echo "running $@"
-      NIX_SHOW_STATS=1 time "$@" > /dev/null 2> stats
+      NIX_SHOW_STATS=1 time "$@" 2>&1 > /dev/null | tee stats
 
       cat stats
 
@@ -35,14 +35,17 @@ runCommand "nixpkgs-metrics"
       [[ -n $x ]] || exit 1
       echo "$name.allocations $x B" >> $out/nix-support/hydra-metrics
 
-      x=$(sed -e 's/.*values allocated: \([0-9]\+\) .*/\1/ ; t ; d' stats)
+      x=$(sed -e 's/.*values allocated count: \([0-9]\+\).*/\1/ ; t ; d' stats)
       [[ -n $x ]] || exit 1
       echo "$name.values $x" >> $out/nix-support/hydra-metrics
     }
 
-    run nixos.smallContainer nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix -A closures.smallContainer.x86_64-linux
-    run nixos.kde nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix -A closures.kde.x86_64-linux
-    run nixos.lapp nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix -A closures.lapp.x86_64-linux
+    run nixos.smallContainer nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
+      -A closures.smallContainer.x86_64-linux --show-trace
+    run nixos.kde nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
+      -A closures.kde.x86_64-linux --show-trace
+    run nixos.lapp nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
+      -A closures.lapp.x86_64-linux --show-trace
     run nix-env.qa nix-env -f ${nixpkgs} -qa
     run nix-env.qaDrv nix-env -f ${nixpkgs} -qa --drv-path --meta --xml
 
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
deleted file mode 100644
index 432a367d15355..0000000000000
--- a/pkgs/top-level/node-packages-generated.nix
+++ /dev/null
@@ -1,53358 +0,0 @@
-{ self, fetchurl, fetchgit ? null, lib }:
-
-{
-  by-spec."Base64"."~0.2.0" =
-    self.by-version."Base64"."0.2.1";
-  by-version."Base64"."0.2.1" = self.buildNodePackage {
-    name = "Base64-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz";
-      name = "Base64-0.2.1.tgz";
-      sha1 = "ba3a4230708e186705065e66babdd4c35cf60028";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."CSSselect"."~0.4.0" =
-    self.by-version."CSSselect"."0.4.1";
-  by-version."CSSselect"."0.4.1" = self.buildNodePackage {
-    name = "CSSselect-0.4.1";
-    version = "0.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/CSSselect/-/CSSselect-0.4.1.tgz";
-      name = "CSSselect-0.4.1.tgz";
-      sha1 = "f8ab7e1f8418ce63cda6eb7bd778a85d7ec492b2";
-    };
-    deps = {
-      "CSSwhat-0.4.7" = self.by-version."CSSwhat"."0.4.7";
-      "domutils-1.4.3" = self.by-version."domutils"."1.4.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."CSSwhat"."0.4" =
-    self.by-version."CSSwhat"."0.4.7";
-  by-version."CSSwhat"."0.4.7" = self.buildNodePackage {
-    name = "CSSwhat-0.4.7";
-    version = "0.4.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/CSSwhat/-/CSSwhat-0.4.7.tgz";
-      name = "CSSwhat-0.4.7.tgz";
-      sha1 = "867da0ff39f778613242c44cfea83f0aa4ebdf9b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."JSON2"."^0.1.0" =
-    self.by-version."JSON2"."0.1.0";
-  by-version."JSON2"."0.1.0" = self.buildNodePackage {
-    name = "JSON2-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/JSON2/-/JSON2-0.1.0.tgz";
-      name = "JSON2-0.1.0.tgz";
-      sha1 = "8d7493040a63d5835af75f47decb83ab6c8c0790";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."JSONPath"."^0.10.0" =
-    self.by-version."JSONPath"."0.10.0";
-  by-version."JSONPath"."0.10.0" = self.buildNodePackage {
-    name = "JSONPath-0.10.0";
-    version = "0.10.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/JSONPath/-/JSONPath-0.10.0.tgz";
-      name = "JSONPath-0.10.0.tgz";
-      sha1 = "44959bdd94e3641858e7f2147d93c732f3505b1c";
-    };
-    deps = {
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."JSONStream"."1.x" =
-    self.by-version."JSONStream"."1.1.2";
-  by-version."JSONStream"."1.1.2" = self.buildNodePackage {
-    name = "JSONStream-1.1.2";
-    version = "1.1.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/JSONStream/-/JSONStream-1.1.2.tgz";
-      name = "JSONStream-1.1.2.tgz";
-      sha1 = "7c01816613d7e5fe41e913edb3b7f359fddbfbf8";
-    };
-    deps = {
-      "jsonparse-1.2.0" = self.by-version."jsonparse"."1.2.0";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."JSONStream"."^0.8.4" =
-    self.by-version."JSONStream"."0.8.4";
-  by-version."JSONStream"."0.8.4" = self.buildNodePackage {
-    name = "JSONStream-0.8.4";
-    version = "0.8.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz";
-      name = "JSONStream-0.8.4.tgz";
-      sha1 = "91657dfe6ff857483066132b4618b62e8f4887bd";
-    };
-    deps = {
-      "jsonparse-0.0.5" = self.by-version."jsonparse"."0.0.5";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."JSONStream"."^1.0.3" =
-    self.by-version."JSONStream"."1.1.2";
-  by-spec."abbrev"."1" =
-    self.by-version."abbrev"."1.0.7";
-  by-version."abbrev"."1.0.7" = self.buildNodePackage {
-    name = "abbrev-1.0.7";
-    version = "1.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz";
-      name = "abbrev-1.0.7.tgz";
-      sha1 = "5b6035b2ee9d4fb5cf859f08a9be81b208491843";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."abbrev"."1.0.x" =
-    self.by-version."abbrev"."1.0.7";
-  by-spec."abbrev"."~1.0.7" =
-    self.by-version."abbrev"."1.0.7";
-  by-spec."abstract-leveldown"."~0.12.1" =
-    self.by-version."abstract-leveldown"."0.12.4";
-  by-version."abstract-leveldown"."0.12.4" = self.buildNodePackage {
-    name = "abstract-leveldown-0.12.4";
-    version = "0.12.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz";
-      name = "abstract-leveldown-0.12.4.tgz";
-      sha1 = "29e18e632e60e4e221d5810247852a63d7b2e410";
-    };
-    deps = {
-      "xtend-3.0.0" = self.by-version."xtend"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."abstract-leveldown"."~0.12.2" =
-    self.by-version."abstract-leveldown"."0.12.4";
-  by-spec."accepts"."1.1.4" =
-    self.by-version."accepts"."1.1.4";
-  by-version."accepts"."1.1.4" = self.buildNodePackage {
-    name = "accepts-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz";
-      name = "accepts-1.1.4.tgz";
-      sha1 = "d71c96f7d41d0feda2c38cd14e8a27c04158df4a";
-    };
-    deps = {
-      "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14";
-      "negotiator-0.4.9" = self.by-version."negotiator"."0.4.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."accepts"."~1.0.4" =
-    self.by-version."accepts"."1.0.7";
-  by-version."accepts"."1.0.7" = self.buildNodePackage {
-    name = "accepts-1.0.7";
-    version = "1.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz";
-      name = "accepts-1.0.7.tgz";
-      sha1 = "5b501fb4f0704309964ccdb048172541208dab1a";
-    };
-    deps = {
-      "mime-types-1.0.2" = self.by-version."mime-types"."1.0.2";
-      "negotiator-0.4.7" = self.by-version."negotiator"."0.4.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."accepts"."~1.0.7" =
-    self.by-version."accepts"."1.0.7";
-  by-spec."accepts"."~1.2.10" =
-    self.by-version."accepts"."1.2.13";
-  by-version."accepts"."1.2.13" = self.buildNodePackage {
-    name = "accepts-1.2.13";
-    version = "1.2.13";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz";
-      name = "accepts-1.2.13.tgz";
-      sha1 = "e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea";
-    };
-    deps = {
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "negotiator-0.5.3" = self.by-version."negotiator"."0.5.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."accepts"."~1.2.12" =
-    self.by-version."accepts"."1.2.13";
-  by-spec."accepts"."~1.2.13" =
-    self.by-version."accepts"."1.2.13";
-  by-spec."accepts"."~1.3.0" =
-    self.by-version."accepts"."1.3.3";
-  by-version."accepts"."1.3.3" = self.buildNodePackage {
-    name = "accepts-1.3.3";
-    version = "1.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz";
-      name = "accepts-1.3.3.tgz";
-      sha1 = "c3ca7434938648c3e0d9c1e328dd68b622c284ca";
-    };
-    deps = {
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "negotiator-0.6.1" = self.by-version."negotiator"."0.6.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."accepts"."~1.3.3" =
-    self.by-version."accepts"."1.3.3";
-  by-spec."acorn"."0.11.0" =
-    self.by-version."acorn"."0.11.0";
-  by-version."acorn"."0.11.0" = self.buildNodePackage {
-    name = "acorn-0.11.0";
-    version = "0.11.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/acorn/-/acorn-0.11.0.tgz";
-      name = "acorn-0.11.0.tgz";
-      sha1 = "6e95f0253ad161ff0127db32983e5e2e5352d59a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."acorn"."^1.0.1" =
-    self.by-version."acorn"."1.2.2";
-  by-version."acorn"."1.2.2" = self.buildNodePackage {
-    name = "acorn-1.2.2";
-    version = "1.2.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz";
-      name = "acorn-1.2.2.tgz";
-      sha1 = "c8ce27de0acc76d896d2b1fad3df588d9e82f014";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."acorn"."^1.0.3" =
-    self.by-version."acorn"."1.2.2";
-  by-spec."acorn"."^2.1.0" =
-    self.by-version."acorn"."2.7.0";
-  by-version."acorn"."2.7.0" = self.buildNodePackage {
-    name = "acorn-2.7.0";
-    version = "2.7.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz";
-      name = "acorn-2.7.0.tgz";
-      sha1 = "ab6e7d9d886aaca8b085bc3312b79a198433f0e7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."acorn"."^2.7.0" =
-    self.by-version."acorn"."2.7.0";
-  by-spec."acorn"."^3.0.0" =
-    self.by-version."acorn"."3.2.0";
-  by-version."acorn"."3.2.0" = self.buildNodePackage {
-    name = "acorn-3.2.0";
-    version = "3.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/acorn/-/acorn-3.2.0.tgz";
-      name = "acorn-3.2.0.tgz";
-      sha1 = "7a82989ef6f063a237ababaf8df20d2965184b9f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."acorn"."^3.0.4" =
-    self.by-version."acorn"."3.2.0";
-  by-spec."acorn"."^3.1.0" =
-    self.by-version."acorn"."3.2.0";
-  by-spec."acorn-globals"."^1.0.2" =
-    self.by-version."acorn-globals"."1.0.9";
-  by-version."acorn-globals"."1.0.9" = self.buildNodePackage {
-    name = "acorn-globals-1.0.9";
-    version = "1.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz";
-      name = "acorn-globals-1.0.9.tgz";
-      sha1 = "55bb5e98691507b74579d0513413217c380c54cf";
-    };
-    deps = {
-      "acorn-2.7.0" = self.by-version."acorn"."2.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."acorn-globals"."^1.0.3" =
-    self.by-version."acorn-globals"."1.0.9";
-  by-spec."acorn-jsx"."^3.0.0" =
-    self.by-version."acorn-jsx"."3.0.1";
-  by-version."acorn-jsx"."3.0.1" = self.buildNodePackage {
-    name = "acorn-jsx-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz";
-      name = "acorn-jsx-3.0.1.tgz";
-      sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b";
-    };
-    deps = {
-      "acorn-3.2.0" = self.by-version."acorn"."3.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."active-x-obfuscator"."0.0.1" =
-    self.by-version."active-x-obfuscator"."0.0.1";
-  by-version."active-x-obfuscator"."0.0.1" = self.buildNodePackage {
-    name = "active-x-obfuscator-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz";
-      name = "active-x-obfuscator-0.0.1.tgz";
-      sha1 = "089b89b37145ff1d9ec74af6530be5526cae1f1a";
-    };
-    deps = {
-      "zeparser-0.0.5" = self.by-version."zeparser"."0.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."addr-to-ip-port"."^1.0.0" =
-    self.by-version."addr-to-ip-port"."1.4.2";
-  by-version."addr-to-ip-port"."1.4.2" = self.buildNodePackage {
-    name = "addr-to-ip-port-1.4.2";
-    version = "1.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/addr-to-ip-port/-/addr-to-ip-port-1.4.2.tgz";
-      name = "addr-to-ip-port-1.4.2.tgz";
-      sha1 = "7e46ff1f26b7a9f5e33fd839d57aef6303b4c692";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."addr-to-ip-port"."^1.0.1" =
-    self.by-version."addr-to-ip-port"."1.4.2";
-  by-spec."addressparser"."1.0.1" =
-    self.by-version."addressparser"."1.0.1";
-  by-version."addressparser"."1.0.1" = self.buildNodePackage {
-    name = "addressparser-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz";
-      name = "addressparser-1.0.1.tgz";
-      sha1 = "47afbe1a2a9262191db6838e4fd1d39b40821746";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."addressparser"."^0.3.2" =
-    self.by-version."addressparser"."0.3.2";
-  by-version."addressparser"."0.3.2" = self.buildNodePackage {
-    name = "addressparser-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/addressparser/-/addressparser-0.3.2.tgz";
-      name = "addressparser-0.3.2.tgz";
-      sha1 = "59873f35e8fcf6c7361c10239261d76e15348bb2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."addressparser"."~0.1.3" =
-    self.by-version."addressparser"."0.1.3";
-  by-version."addressparser"."0.1.3" = self.buildNodePackage {
-    name = "addressparser-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/addressparser/-/addressparser-0.1.3.tgz";
-      name = "addressparser-0.1.3.tgz";
-      sha1 = "9e9ab43d257e1ae784e1df5f580c9f5240f58874";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."addressparser"."~0.3.2" =
-    self.by-version."addressparser"."0.3.2";
-  by-spec."adm-zip"."0.2.1" =
-    self.by-version."adm-zip"."0.2.1";
-  by-version."adm-zip"."0.2.1" = self.buildNodePackage {
-    name = "adm-zip-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.2.1.tgz";
-      name = "adm-zip-0.2.1.tgz";
-      sha1 = "e801cedeb5bd9a4e98d699c5c0f4239e2731dcbf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."adm-zip"."0.4.4" =
-    self.by-version."adm-zip"."0.4.4";
-  by-version."adm-zip"."0.4.4" = self.buildNodePackage {
-    name = "adm-zip-0.4.4";
-    version = "0.4.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz";
-      name = "adm-zip-0.4.4.tgz";
-      sha1 = "a61ed5ae6905c3aea58b3a657d25033091052736";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."adm-zip"."0.4.7" =
-    self.by-version."adm-zip"."0.4.7";
-  by-version."adm-zip"."0.4.7" = self.buildNodePackage {
-    name = "adm-zip-0.4.7";
-    version = "0.4.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz";
-      name = "adm-zip-0.4.7.tgz";
-      sha1 = "8606c2cbf1c426ce8c8ec00174447fd49b6eafc1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."adm-zip"."~0.4.3" =
-    self.by-version."adm-zip"."0.4.7";
-  by-spec."after"."0.8.1" =
-    self.by-version."after"."0.8.1";
-  by-version."after"."0.8.1" = self.buildNodePackage {
-    name = "after-0.8.1";
-    version = "0.8.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/after/-/after-0.8.1.tgz";
-      name = "after-0.8.1.tgz";
-      sha1 = "ab5d4fb883f596816d3515f8f791c0af486dd627";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."after"."^0.8.1" =
-    self.by-version."after"."0.8.1";
-  by-spec."agent-base"."2" =
-    self.by-version."agent-base"."2.0.1";
-  by-version."agent-base"."2.0.1" = self.buildNodePackage {
-    name = "agent-base-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz";
-      name = "agent-base-2.0.1.tgz";
-      sha1 = "bd8f9e86a8eb221fffa07bd14befd55df142815e";
-    };
-    deps = {
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-      "semver-5.0.3" = self.by-version."semver"."5.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."agent-base"."~1.0.1" =
-    self.by-version."agent-base"."1.0.2";
-  by-version."agent-base"."1.0.2" = self.buildNodePackage {
-    name = "agent-base-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/agent-base/-/agent-base-1.0.2.tgz";
-      name = "agent-base-1.0.2.tgz";
-      sha1 = "6890d3fb217004b62b70f8928e0fae5f8952a706";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."airplay-js"."^0.2.5" =
-    self.by-version."airplay-js"."0.2.16";
-  by-version."airplay-js"."0.2.16" = self.buildNodePackage {
-    name = "airplay-js-0.2.16";
-    version = "0.2.16";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/airplay-js/-/airplay-js-0.2.16.tgz";
-      name = "airplay-js-0.2.16.tgz";
-      sha1 = "48566d5fa55a921d80187ad946f7e8f7555902a1";
-    };
-    deps = {
-      "mdns-js-0.5.0" = self.by-version."mdns-js"."0.5.0";
-      "plist-1.2.0" = self.by-version."plist"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."airplay-protocol"."^2.0.2" =
-    self.by-version."airplay-protocol"."2.0.2";
-  by-version."airplay-protocol"."2.0.2" = self.buildNodePackage {
-    name = "airplay-protocol-2.0.2";
-    version = "2.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/airplay-protocol/-/airplay-protocol-2.0.2.tgz";
-      name = "airplay-protocol-2.0.2.tgz";
-      sha1 = "b5b2a7137331f5545acbe196ba5693c13238fc5e";
-    };
-    deps = {
-      "bplist-creator-0.0.6" = self.by-version."bplist-creator"."0.0.6";
-      "bplist-parser-0.1.1" = self.by-version."bplist-parser"."0.1.1";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "plist-1.2.0" = self.by-version."plist"."1.2.0";
-      "reverse-http-1.2.0" = self.by-version."reverse-http"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."airplayer"."^2.0.0" =
-    self.by-version."airplayer"."2.0.0";
-  by-version."airplayer"."2.0.0" = self.buildNodePackage {
-    name = "airplayer-2.0.0";
-    version = "2.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/airplayer/-/airplayer-2.0.0.tgz";
-      name = "airplayer-2.0.0.tgz";
-      sha1 = "7ab62d23b96d44234138aec1281d2e67ef190259";
-    };
-    deps = {
-      "airplay-protocol-2.0.2" = self.by-version."airplay-protocol"."2.0.2";
-      "appendable-cli-menu-2.0.0" = self.by-version."appendable-cli-menu"."2.0.0";
-      "bonjour-3.5.0" = self.by-version."bonjour"."3.5.0";
-      "internal-ip-1.2.0" = self.by-version."internal-ip"."1.2.0";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "range-parser-1.2.0" = self.by-version."range-parser"."1.2.0";
-      "server-destroy-1.0.1" = self.by-version."server-destroy"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aliasify"."^1.7.2" =
-    self.by-version."aliasify"."1.9.0";
-  by-version."aliasify"."1.9.0" = self.buildNodePackage {
-    name = "aliasify-1.9.0";
-    version = "1.9.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aliasify/-/aliasify-1.9.0.tgz";
-      name = "aliasify-1.9.0.tgz";
-      sha1 = "03aa1a5fe5b4cac604e3b967bc4c7ceacf957030";
-    };
-    deps = {
-      "browserify-transform-tools-1.5.3" = self.by-version."browserify-transform-tools"."1.5.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."align-text"."^0.1.1" =
-    self.by-version."align-text"."0.1.4";
-  by-version."align-text"."0.1.4" = self.buildNodePackage {
-    name = "align-text-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
-      name = "align-text-0.1.4.tgz";
-      sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
-    };
-    deps = {
-      "kind-of-3.0.3" = self.by-version."kind-of"."3.0.3";
-      "longest-1.0.1" = self.by-version."longest"."1.0.1";
-      "repeat-string-1.5.4" = self.by-version."repeat-string"."1.5.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."align-text"."^0.1.3" =
-    self.by-version."align-text"."0.1.4";
-  by-spec."almond"."*" =
-    self.by-version."almond"."0.3.2";
-  by-version."almond"."0.3.2" = self.buildNodePackage {
-    name = "almond-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/almond/-/almond-0.3.2.tgz";
-      name = "almond-0.3.2.tgz";
-      sha1 = "e481c9f3446265e4056610dd6695fc26445f6be7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "almond" = self.by-version."almond"."0.3.2";
-  by-spec."alter"."~0.2.0" =
-    self.by-version."alter"."0.2.0";
-  by-version."alter"."0.2.0" = self.buildNodePackage {
-    name = "alter-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz";
-      name = "alter-0.2.0.tgz";
-      sha1 = "c7588808617572034aae62480af26b1d4d1cb3cd";
-    };
-    deps = {
-      "stable-0.1.5" = self.by-version."stable"."0.1.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."amdefine"."*" =
-    self.by-version."amdefine"."1.0.0";
-  by-version."amdefine"."1.0.0" = self.buildNodePackage {
-    name = "amdefine-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz";
-      name = "amdefine-1.0.0.tgz";
-      sha1 = "fd17474700cb5cc9c2b709f0be9d23ce3c198c33";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "amdefine" = self.by-version."amdefine"."1.0.0";
-  by-spec."amdefine".">=0.0.4" =
-    self.by-version."amdefine"."1.0.0";
-  by-spec."amqp".">=0.1.3" =
-    self.by-version."amqp"."0.2.6";
-  by-version."amqp"."0.2.6" = self.buildNodePackage {
-    name = "amqp-0.2.6";
-    version = "0.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/amqp/-/amqp-0.2.6.tgz";
-      name = "amqp-0.2.6.tgz";
-      sha1 = "d97fee5143026fa0b4fd6a5d56485f0448eb37ca";
-    };
-    deps = {
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ansi"."^0.3.0" =
-    self.by-version."ansi"."0.3.1";
-  by-version."ansi"."0.3.1" = self.buildNodePackage {
-    name = "ansi-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz";
-      name = "ansi-0.3.1.tgz";
-      sha1 = "0c42d4fb17160d5a9af1e484bace1c66922c1b21";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ansi"."^0.3.1" =
-    self.by-version."ansi"."0.3.1";
-  by-spec."ansi"."~0.3.1" =
-    self.by-version."ansi"."0.3.1";
-  by-spec."ansi-escapes"."^1.1.0" =
-    self.by-version."ansi-escapes"."1.4.0";
-  by-version."ansi-escapes"."1.4.0" = self.buildNodePackage {
-    name = "ansi-escapes-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz";
-      name = "ansi-escapes-1.4.0.tgz";
-      sha1 = "d3a8a83b319aa67793662b13e761c7911422306e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ansi-regex"."*" =
-    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 = "https://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-regex"."^0.2.0" =
-    self.by-version."ansi-regex"."0.2.1";
-  by-version."ansi-regex"."0.2.1" = self.buildNodePackage {
-    name = "ansi-regex-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz";
-      name = "ansi-regex-0.2.1.tgz";
-      sha1 = "0d8e946967a3d8143f93e24e298525fc1b2235f9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ansi-regex"."^0.2.1" =
-    self.by-version."ansi-regex"."0.2.1";
-  by-spec."ansi-regex"."^1.0.0" =
-    self.by-version."ansi-regex"."1.1.1";
-  by-version."ansi-regex"."1.1.1" = self.buildNodePackage {
-    name = "ansi-regex-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz";
-      name = "ansi-regex-1.1.1.tgz";
-      sha1 = "41c847194646375e6a1a5d10c3ca054ef9fc980d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ansi-regex"."^1.1.0" =
-    self.by-version."ansi-regex"."1.1.1";
-  by-spec."ansi-regex"."^1.1.1" =
-    self.by-version."ansi-regex"."1.1.1";
-  by-spec."ansi-regex"."^2.0.0" =
-    self.by-version."ansi-regex"."2.0.0";
-  by-spec."ansi-remover"."*" =
-    self.by-version."ansi-remover"."0.0.2";
-  by-version."ansi-remover"."0.0.2" = self.buildNodePackage {
-    name = "ansi-remover-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansi-remover/-/ansi-remover-0.0.2.tgz";
-      name = "ansi-remover-0.0.2.tgz";
-      sha1 = "7020086289f10e195d85d828de065ccdd50e6e66";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "ansi-remover" = self.by-version."ansi-remover"."0.0.2";
-  by-spec."ansi-styles"."^1.1.0" =
-    self.by-version."ansi-styles"."1.1.0";
-  by-version."ansi-styles"."1.1.0" = self.buildNodePackage {
-    name = "ansi-styles-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz";
-      name = "ansi-styles-1.1.0.tgz";
-      sha1 = "eaecbf66cd706882760b2f4691582b8f55d7a7de";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ansi-styles"."^2.0.1" =
-    self.by-version."ansi-styles"."2.2.1";
-  by-version."ansi-styles"."2.2.1" = self.buildNodePackage {
-    name = "ansi-styles-2.2.1";
-    version = "2.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
-      name = "ansi-styles-2.2.1.tgz";
-      sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ansi-styles"."^2.2.1" =
-    self.by-version."ansi-styles"."2.2.1";
-  by-spec."ansicolors"."~0.3.2" =
-    self.by-version."ansicolors"."0.3.2";
-  by-version."ansicolors"."0.3.2" = self.buildNodePackage {
-    name = "ansicolors-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz";
-      name = "ansicolors-0.3.2.tgz";
-      sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ansistyles"."~0.1.3" =
-    self.by-version."ansistyles"."0.1.3";
-  by-version."ansistyles"."0.1.3" = self.buildNodePackage {
-    name = "ansistyles-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz";
-      name = "ansistyles-0.1.3.tgz";
-      sha1 = "5de60415bda071bb37127854c864f41b23254539";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."anymatch"."^1.3.0" =
-    self.by-version."anymatch"."1.3.0";
-  by-version."anymatch"."1.3.0" = self.buildNodePackage {
-    name = "anymatch-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz";
-      name = "anymatch-1.3.0.tgz";
-      sha1 = "a3e52fa39168c825ff57b0248126ce5a8ff95507";
-    };
-    deps = {
-      "arrify-1.0.1" = self.by-version."arrify"."1.0.1";
-      "micromatch-2.3.8" = self.by-version."micromatch"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."apparatus".">= 0.0.9" =
-    self.by-version."apparatus"."0.0.9";
-  by-version."apparatus"."0.0.9" = self.buildNodePackage {
-    name = "apparatus-0.0.9";
-    version = "0.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/apparatus/-/apparatus-0.0.9.tgz";
-      name = "apparatus-0.0.9.tgz";
-      sha1 = "37dcd25834ad0b651076596291db823eeb1908bd";
-    };
-    deps = {
-      "sylvester-0.0.21" = self.by-version."sylvester"."0.0.21";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."append-transform"."^0.3.0" =
-    self.by-version."append-transform"."0.3.0";
-  by-version."append-transform"."0.3.0" = self.buildNodePackage {
-    name = "append-transform-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/append-transform/-/append-transform-0.3.0.tgz";
-      name = "append-transform-0.3.0.tgz";
-      sha1 = "d6933ce4a85f09445d9ccc4cc119051b7381a813";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."appendable-cli-menu"."^2.0.0" =
-    self.by-version."appendable-cli-menu"."2.0.0";
-  by-version."appendable-cli-menu"."2.0.0" = self.buildNodePackage {
-    name = "appendable-cli-menu-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/appendable-cli-menu/-/appendable-cli-menu-2.0.0.tgz";
-      name = "appendable-cli-menu-2.0.0.tgz";
-      sha1 = "dcfca9e509300e4c3b2d467965fe50c56fc75e66";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "keypress-0.2.1" = self.by-version."keypress"."0.2.1";
-      "single-line-log-1.1.1" = self.by-version."single-line-log"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aproba"."^1.0.1" =
-    self.by-version."aproba"."1.0.3";
-  by-version."aproba"."1.0.3" = self.buildNodePackage {
-    name = "aproba-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aproba/-/aproba-1.0.3.tgz";
-      name = "aproba-1.0.3.tgz";
-      sha1 = "7fb6da3a72c70249db63fd9b5c64b31af718a94f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aproba"."~1.0.3" =
-    self.by-version."aproba"."1.0.3";
-  by-spec."archiver"."~0.14.0" =
-    self.by-version."archiver"."0.14.4";
-  by-version."archiver"."0.14.4" = self.buildNodePackage {
-    name = "archiver-0.14.4";
-    version = "0.14.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/archiver/-/archiver-0.14.4.tgz";
-      name = "archiver-0.14.4.tgz";
-      sha1 = "5b9ddb9f5ee1ceef21cb8f3b020e6240ecb4315c";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "buffer-crc32-0.2.5" = self.by-version."buffer-crc32"."0.2.5";
-      "glob-4.3.5" = self.by-version."glob"."4.3.5";
-      "lazystream-0.1.0" = self.by-version."lazystream"."0.1.0";
-      "lodash-3.2.0" = self.by-version."lodash"."3.2.0";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "tar-stream-1.1.5" = self.by-version."tar-stream"."1.1.5";
-      "zip-stream-0.5.2" = self.by-version."zip-stream"."0.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."archy"."^1.0.0" =
-    self.by-version."archy"."1.0.0";
-  by-version."archy"."1.0.0" = self.buildNodePackage {
-    name = "archy-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz";
-      name = "archy-1.0.0.tgz";
-      sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."archy"."~1.0.0" =
-    self.by-version."archy"."1.0.0";
-  by-spec."are-we-there-yet"."~1.1.2" =
-    self.by-version."are-we-there-yet"."1.1.2";
-  by-version."are-we-there-yet"."1.1.2" = self.buildNodePackage {
-    name = "are-we-there-yet-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz";
-      name = "are-we-there-yet-1.1.2.tgz";
-      sha1 = "80e470e95a084794fe1899262c5667c6e88de1b3";
-    };
-    deps = {
-      "delegates-1.0.0" = self.by-version."delegates"."1.0.0";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."argparse"."0.1.15" =
-    self.by-version."argparse"."0.1.15";
-  by-version."argparse"."0.1.15" = self.buildNodePackage {
-    name = "argparse-0.1.15";
-    version = "0.1.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/argparse/-/argparse-0.1.15.tgz";
-      name = "argparse-0.1.15.tgz";
-      sha1 = "28a1f72c43113e763220e5708414301c8840f0a1";
-    };
-    deps = {
-      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
-      "underscore.string-2.3.3" = self.by-version."underscore.string"."2.3.3";
-    };
-    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 = "https://registry.npmjs.org/argparse/-/argparse-1.0.4.tgz";
-      name = "argparse-1.0.4.tgz";
-      sha1 = "2b12247b933001971addcbfe4e67d20fd395bbf4";
-    };
-    deps = {
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-      "sprintf-js-1.0.3" = self.by-version."sprintf-js"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  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 = "https://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."argparse"."^1.0.7" =
-    self.by-version."argparse"."1.0.7";
-  by-spec."argparse"."~ 0.1.11" =
-    self.by-version."argparse"."0.1.16";
-  by-version."argparse"."0.1.16" = self.buildNodePackage {
-    name = "argparse-0.1.16";
-    version = "0.1.16";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz";
-      name = "argparse-0.1.16.tgz";
-      sha1 = "cfd01e0fbba3d6caed049fbd758d40f65196f57c";
-    };
-    deps = {
-      "underscore-1.7.0" = self.by-version."underscore"."1.7.0";
-      "underscore.string-2.4.0" = self.by-version."underscore.string"."2.4.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."argparse"."~1.0.2" =
-    self.by-version."argparse"."1.0.7";
-  by-spec."arr-diff"."^2.0.0" =
-    self.by-version."arr-diff"."2.0.0";
-  by-version."arr-diff"."2.0.0" = self.buildNodePackage {
-    name = "arr-diff-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz";
-      name = "arr-diff-2.0.0.tgz";
-      sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf";
-    };
-    deps = {
-      "arr-flatten-1.0.1" = self.by-version."arr-flatten"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."arr-flatten"."^1.0.1" =
-    self.by-version."arr-flatten"."1.0.1";
-  by-version."arr-flatten"."1.0.1" = self.buildNodePackage {
-    name = "arr-flatten-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz";
-      name = "arr-flatten-1.0.1.tgz";
-      sha1 = "e5ffe54d45e19f32f216e91eb99c8ce892bb604b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-differ"."^1.0.0" =
-    self.by-version."array-differ"."1.0.0";
-  by-version."array-differ"."1.0.0" = self.buildNodePackage {
-    name = "array-differ-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz";
-      name = "array-differ-1.0.0.tgz";
-      sha1 = "eff52e3758249d33be402b8bb8e564bb2b5d4031";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-filter"."~0.0.0" =
-    self.by-version."array-filter"."0.0.1";
-  by-version."array-filter"."0.0.1" = self.buildNodePackage {
-    name = "array-filter-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz";
-      name = "array-filter-0.0.1.tgz";
-      sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-find"."^0.1.1" =
-    self.by-version."array-find"."0.1.1";
-  by-version."array-find"."0.1.1" = self.buildNodePackage {
-    name = "array-find-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-find/-/array-find-0.1.1.tgz";
-      name = "array-find-0.1.1.tgz";
-      sha1 = "dc813845ad5a9afc35cb92b786c878d81b5b82ce";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-find-index"."^1.0.1" =
-    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 = "https://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."array-flatten"."1.1.0" =
-    self.by-version."array-flatten"."1.1.0";
-  by-version."array-flatten"."1.1.0" = self.buildNodePackage {
-    name = "array-flatten-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.0.tgz";
-      name = "array-flatten-1.1.0.tgz";
-      sha1 = "ac3efac717b0e7bbdc778ce0bde7381ac6604393";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-flatten"."1.1.1" =
-    self.by-version."array-flatten"."1.1.1";
-  by-version."array-flatten"."1.1.1" = self.buildNodePackage {
-    name = "array-flatten-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
-      name = "array-flatten-1.1.1.tgz";
-      sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-flatten"."2.0.0" =
-    self.by-version."array-flatten"."2.0.0";
-  by-version."array-flatten"."2.0.0" = self.buildNodePackage {
-    name = "array-flatten-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-flatten/-/array-flatten-2.0.0.tgz";
-      name = "array-flatten-2.0.0.tgz";
-      sha1 = "24dd98b38b9194b59b2087ba40c21384d6b8a8dc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-flatten"."^2.1.0" =
-    self.by-version."array-flatten"."2.1.0";
-  by-version."array-flatten"."2.1.0" = self.buildNodePackage {
-    name = "array-flatten-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.0.tgz";
-      name = "array-flatten-2.1.0.tgz";
-      sha1 = "26a692c83881fc68dac3ec5d1f0c1b49bf2304d9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-index"."^1.0.0" =
-    self.by-version."array-index"."1.0.0";
-  by-version."array-index"."1.0.0" = self.buildNodePackage {
-    name = "array-index-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz";
-      name = "array-index-1.0.0.tgz";
-      sha1 = "ec56a749ee103e4e08c790b9c353df16055b97f9";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "es6-symbol-3.1.0" = self.by-version."es6-symbol"."3.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-indexofobject"."~0.0.1" =
-    self.by-version."array-indexofobject"."0.0.1";
-  by-version."array-indexofobject"."0.0.1" = self.buildNodePackage {
-    name = "array-indexofobject-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz";
-      name = "array-indexofobject-0.0.1.tgz";
-      sha1 = "aaa128e62c9b3c358094568c219ff64fe489d42a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-loop"."^1.0.0" =
-    self.by-version."array-loop"."1.0.0";
-  by-version."array-loop"."1.0.0" = self.buildNodePackage {
-    name = "array-loop-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-loop/-/array-loop-1.0.0.tgz";
-      name = "array-loop-1.0.0.tgz";
-      sha1 = "c033d086cf0d12af73aed5a99c0cedb37367b395";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-map"."~0.0.0" =
-    self.by-version."array-map"."0.0.0";
-  by-version."array-map"."0.0.0" = self.buildNodePackage {
-    name = "array-map-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz";
-      name = "array-map-0.0.0.tgz";
-      sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-reduce"."~0.0.0" =
-    self.by-version."array-reduce"."0.0.0";
-  by-version."array-reduce"."0.0.0" = self.buildNodePackage {
-    name = "array-reduce-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz";
-      name = "array-reduce-0.0.0.tgz";
-      sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-slice"."^0.2.3" =
-    self.by-version."array-slice"."0.2.3";
-  by-version."array-slice"."0.2.3" = self.buildNodePackage {
-    name = "array-slice-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz";
-      name = "array-slice-0.2.3.tgz";
-      sha1 = "dd3cfb80ed7973a75117cdac69b0b99ec86186f5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-union"."^1.0.1" =
-    self.by-version."array-union"."1.0.1";
-  by-version."array-union"."1.0.1" = self.buildNodePackage {
-    name = "array-union-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz";
-      name = "array-union-1.0.1.tgz";
-      sha1 = "4d410fc8395cb247637124bade9e3f547d5d55f2";
-    };
-    deps = {
-      "array-uniq-1.0.2" = self.by-version."array-uniq"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-uniq"."^1.0.1" =
-    self.by-version."array-uniq"."1.0.2";
-  by-version."array-uniq"."1.0.2" = self.buildNodePackage {
-    name = "array-uniq-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz";
-      name = "array-uniq-1.0.2.tgz";
-      sha1 = "5fcc373920775723cfd64d65c64bef53bf9eba6d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."array-uniq"."^1.0.2" =
-    self.by-version."array-uniq"."1.0.2";
-  by-spec."array-unique"."^0.2.1" =
-    self.by-version."array-unique"."0.2.1";
-  by-version."array-unique"."0.2.1" = self.buildNodePackage {
-    name = "array-unique-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz";
-      name = "array-unique-0.2.1.tgz";
-      sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."arraybuffer.slice"."0.0.6" =
-    self.by-version."arraybuffer.slice"."0.0.6";
-  by-version."arraybuffer.slice"."0.0.6" = self.buildNodePackage {
-    name = "arraybuffer.slice-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz";
-      name = "arraybuffer.slice-0.0.6.tgz";
-      sha1 = "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."arrify"."^1.0.0" =
-    self.by-version."arrify"."1.0.1";
-  by-version."arrify"."1.0.1" = self.buildNodePackage {
-    name = "arrify-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz";
-      name = "arrify-1.0.1.tgz";
-      sha1 = "898508da2226f380df904728456849c1501a4b0d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."asap"."^2.0.0" =
-    self.by-version."asap"."2.0.4";
-  by-version."asap"."2.0.4" = self.buildNodePackage {
-    name = "asap-2.0.4";
-    version = "2.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/asap/-/asap-2.0.4.tgz";
-      name = "asap-2.0.4.tgz";
-      sha1 = "b391bf7f6bfbc65706022fec8f49c4b07fecf589";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."asap"."~1.0.0" =
-    self.by-version."asap"."1.0.0";
-  by-version."asap"."1.0.0" = self.buildNodePackage {
-    name = "asap-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz";
-      name = "asap-1.0.0.tgz";
-      sha1 = "b2a45da5fdfa20b0496fc3768cc27c12fa916a7d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."asap"."~2.0.3" =
-    self.by-version."asap"."2.0.4";
-  by-spec."ascii-json"."~0.2" =
-    self.by-version."ascii-json"."0.2.0";
-  by-version."ascii-json"."0.2.0" = self.buildNodePackage {
-    name = "ascii-json-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ascii-json/-/ascii-json-0.2.0.tgz";
-      name = "ascii-json-0.2.0.tgz";
-      sha1 = "10ddb361fd48f72595309fd10a6ea2e7bf2c9218";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ascli"."~0.3" =
-    self.by-version."ascli"."0.3.0";
-  by-version."ascli"."0.3.0" = self.buildNodePackage {
-    name = "ascli-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ascli/-/ascli-0.3.0.tgz";
-      name = "ascli-0.3.0.tgz";
-      sha1 = "5e66230e5219fe3e8952a4efb4f20fae596a813a";
-    };
-    deps = {
-      "colour-0.7.1" = self.by-version."colour"."0.7.1";
-      "optjs-3.2.2" = self.by-version."optjs"."3.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."asn1"."0.1.11" =
-    self.by-version."asn1"."0.1.11";
-  by-version."asn1"."0.1.11" = self.buildNodePackage {
-    name = "asn1-0.1.11";
-    version = "0.1.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz";
-      name = "asn1-0.1.11.tgz";
-      sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."asn1"."0.2.1" =
-    self.by-version."asn1"."0.2.1";
-  by-version."asn1"."0.2.1" = self.buildNodePackage {
-    name = "asn1-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/asn1/-/asn1-0.2.1.tgz";
-      name = "asn1-0.2.1.tgz";
-      sha1 = "ecc73f75d31ea3c6ed9d47428db35fecc7b2c6dc";
-    };
-    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 = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz";
-      name = "asn1-0.2.3.tgz";
-      sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."asn1"."~0.2.3" =
-    self.by-version."asn1"."0.2.3";
-  by-spec."asn1.js"."^4.0.0" =
-    self.by-version."asn1.js"."4.6.2";
-  by-version."asn1.js"."4.6.2" = self.buildNodePackage {
-    name = "asn1.js-4.6.2";
-    version = "4.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.6.2.tgz";
-      name = "asn1.js-4.6.2.tgz";
-      sha1 = "c7c5a3444a45d40e7c56416400d00b33fd78247f";
-    };
-    deps = {
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "minimalistic-assert-1.0.0" = self.by-version."minimalistic-assert"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."assert"."*" =
-    self.by-version."assert"."1.4.1";
-  by-version."assert"."1.4.1" = self.buildNodePackage {
-    name = "assert-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz";
-      name = "assert-1.4.1.tgz";
-      sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
-    };
-    deps = {
-      "util-0.10.3" = self.by-version."util"."0.10.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "assert" = self.by-version."assert"."1.4.1";
-  by-spec."assert"."^1.1.1" =
-    self.by-version."assert"."1.4.1";
-  by-spec."assert"."~1.3.0" =
-    self.by-version."assert"."1.3.0";
-  by-version."assert"."1.3.0" = self.buildNodePackage {
-    name = "assert-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz";
-      name = "assert-1.3.0.tgz";
-      sha1 = "03939a622582a812cc202320a0b9a56c9b815849";
-    };
-    deps = {
-      "util-0.10.3" = self.by-version."util"."0.10.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."assert-plus"."0.1.2" =
-    self.by-version."assert-plus"."0.1.2";
-  by-version."assert-plus"."0.1.2" = self.buildNodePackage {
-    name = "assert-plus-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz";
-      name = "assert-plus-0.1.2.tgz";
-      sha1 = "d93ffdbb67ac5507779be316a7d65146417beef8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."assert-plus"."0.1.5" =
-    self.by-version."assert-plus"."0.1.5";
-  by-version."assert-plus"."0.1.5" = self.buildNodePackage {
-    name = "assert-plus-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz";
-      name = "assert-plus-0.1.5.tgz";
-      sha1 = "ee74009413002d84cec7219c6ac811812e723160";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."assert-plus"."0.1.x" =
-    self.by-version."assert-plus"."0.1.5";
-  by-spec."assert-plus".">=0.1.5 <0.2.0" =
-    self.by-version."assert-plus"."0.1.5";
-  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 = "https://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.1.5" =
-    self.by-version."assert-plus"."0.1.5";
-  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 = "https://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.1" =
-    self.by-version."assertion-error"."1.0.2";
-  by-version."assertion-error"."1.0.2" = self.buildNodePackage {
-    name = "assertion-error-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz";
-      name = "assertion-error-1.0.2.tgz";
-      sha1 = "13ca515d86206da0bac66e834dd397d87581094c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ast-traverse"."~0.1.1" =
-    self.by-version."ast-traverse"."0.1.1";
-  by-version."ast-traverse"."0.1.1" = self.buildNodePackage {
-    name = "ast-traverse-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz";
-      name = "ast-traverse-0.1.1.tgz";
-      sha1 = "69cf2b8386f19dcda1bb1e05d68fe359d8897de6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ast-types"."0.8.12" =
-    self.by-version."ast-types"."0.8.12";
-  by-version."ast-types"."0.8.12" = self.buildNodePackage {
-    name = "ast-types-0.8.12";
-    version = "0.8.12";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz";
-      name = "ast-types-0.8.12.tgz";
-      sha1 = "a0d90e4351bb887716c83fd637ebf818af4adfcc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ast-types"."0.8.15" =
-    self.by-version."ast-types"."0.8.15";
-  by-version."ast-types"."0.8.15" = self.buildNodePackage {
-    name = "ast-types-0.8.15";
-    version = "0.8.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ast-types/-/ast-types-0.8.15.tgz";
-      name = "ast-types-0.8.15.tgz";
-      sha1 = "8eef0827f04dff0ec8857ba925abe3fea6194e52";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ast-types"."~0.3.22" =
-    self.by-version."ast-types"."0.3.38";
-  by-version."ast-types"."0.3.38" = self.buildNodePackage {
-    name = "ast-types-0.3.38";
-    version = "0.3.38";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ast-types/-/ast-types-0.3.38.tgz";
-      name = "ast-types-0.3.38.tgz";
-      sha1 = "afe430e60b4db3ce2ed22ceea0f16f1c31763ef7";
-    };
-    deps = {
-      "private-0.1.6" = self.by-version."private"."0.1.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."astw"."^2.0.0" =
-    self.by-version."astw"."2.0.0";
-  by-version."astw"."2.0.0" = self.buildNodePackage {
-    name = "astw-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz";
-      name = "astw-2.0.0.tgz";
-      sha1 = "08121ac8288d35611c0ceec663f6cd545604897d";
-    };
-    deps = {
-      "acorn-1.2.2" = self.by-version."acorn"."1.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."*" =
-    self.by-version."async"."2.0.0-rc.6";
-  by-version."async"."2.0.0-rc.6" = self.buildNodePackage {
-    name = "async-2.0.0-rc.6";
-    version = "2.0.0-rc.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-2.0.0-rc.6.tgz";
-      name = "async-2.0.0-rc.6.tgz";
-      sha1 = "978fc4155d1fc30b8b58fc3f020102b2da02f2a4";
-    };
-    deps = {
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "async" = self.by-version."async"."2.0.0-rc.6";
-  by-spec."async"."0.1.18" =
-    self.by-version."async"."0.1.18";
-  by-version."async"."0.1.18" = self.buildNodePackage {
-    name = "async-0.1.18";
-    version = "0.1.18";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-0.1.18.tgz";
-      name = "async-0.1.18.tgz";
-      sha1 = "c59c923920b76d5bf23248c04433920c4d45086a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."0.1.22" =
-    self.by-version."async"."0.1.22";
-  by-version."async"."0.1.22" = self.buildNodePackage {
-    name = "async-0.1.22";
-    version = "0.1.22";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-0.1.22.tgz";
-      name = "async-0.1.22.tgz";
-      sha1 = "0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."0.1.x" =
-    self.by-version."async"."0.1.22";
-  by-spec."async"."0.2.9" =
-    self.by-version."async"."0.2.9";
-  by-version."async"."0.2.9" = self.buildNodePackage {
-    name = "async-0.2.9";
-    version = "0.2.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-0.2.9.tgz";
-      name = "async-0.2.9.tgz";
-      sha1 = "df63060fbf3d33286a76aaf6d55a2986d9ff8619";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."0.2.x" =
-    self.by-version."async"."0.2.10";
-  by-version."async"."0.2.10" = self.buildNodePackage {
-    name = "async-0.2.10";
-    version = "0.2.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
-      name = "async-0.2.10.tgz";
-      sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."0.9.0" =
-    self.by-version."async"."0.9.0";
-  by-version."async"."0.9.0" = self.buildNodePackage {
-    name = "async-0.9.0";
-    version = "0.9.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-0.9.0.tgz";
-      name = "async-0.9.0.tgz";
-      sha1 = "ac3613b1da9bed1b47510bb4651b8931e47146c7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."0.9.x" =
-    self.by-version."async"."0.9.2";
-  by-version."async"."0.9.2" = self.buildNodePackage {
-    name = "async-0.9.2";
-    version = "0.9.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
-      name = "async-0.9.2.tgz";
-      sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."1.4.0" =
-    self.by-version."async"."1.4.0";
-  by-version."async"."1.4.0" = self.buildNodePackage {
-    name = "async-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-1.4.0.tgz";
-      name = "async-1.4.0.tgz";
-      sha1 = "35f86f83c59e0421d099cd9a91d8278fb578c00d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."1.4.2" =
-    self.by-version."async"."1.4.2";
-  by-version."async"."1.4.2" = self.buildNodePackage {
-    name = "async-1.4.2";
-    version = "1.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-1.4.2.tgz";
-      name = "async-1.4.2.tgz";
-      sha1 = "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab";
-    };
-    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 = "https://registry.npmjs.org/async/-/async-1.5.2.tgz";
-      name = "async-1.5.2.tgz";
-      sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."1.x" =
-    self.by-version."async"."1.5.2";
-  by-spec."async"."2.0.0-rc.4" =
-    self.by-version."async"."2.0.0-rc.4";
-  by-version."async"."2.0.0-rc.4" = self.buildNodePackage {
-    name = "async-2.0.0-rc.4";
-    version = "2.0.0-rc.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-2.0.0-rc.4.tgz";
-      name = "async-2.0.0-rc.4.tgz";
-      sha1 = "9b7f60724c17962a973f787419e0ebc5571dbad8";
-    };
-    deps = {
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async".">=0.2.9" =
-    self.by-version."async"."1.5.2";
-  by-spec."async".">=0.9.0 <1.0.0-0" =
-    self.by-version."async"."0.9.2";
-  by-spec."async"."^0.9.0" =
-    self.by-version."async"."0.9.2";
-  by-spec."async"."^1.3.0" =
-    self.by-version."async"."1.5.2";
-  by-spec."async"."^1.4.0" =
-    self.by-version."async"."1.5.2";
-  by-spec."async"."^1.4.2" =
-    self.by-version."async"."1.5.2";
-  by-spec."async"."^1.5.0" =
-    self.by-version."async"."1.5.2";
-  by-spec."async"."^1.5.2" =
-    self.by-version."async"."1.5.2";
-  by-spec."async"."~0.1.22" =
-    self.by-version."async"."0.1.22";
-  by-spec."async"."~0.2.10" =
-    self.by-version."async"."0.2.10";
-  by-spec."async"."~0.2.6" =
-    self.by-version."async"."0.2.10";
-  by-spec."async"."~0.2.7" =
-    self.by-version."async"."0.2.10";
-  by-spec."async"."~0.2.9" =
-    self.by-version."async"."0.2.10";
-  by-spec."async"."~0.9" =
-    self.by-version."async"."0.9.2";
-  by-spec."async"."~0.9.0" =
-    self.by-version."async"."0.9.2";
-  by-spec."async"."~1.0.0" =
-    self.by-version."async"."1.0.0";
-  by-version."async"."1.0.0" = self.buildNodePackage {
-    name = "async-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-1.0.0.tgz";
-      name = "async-1.0.0.tgz";
-      sha1 = "f8fc04ca3a13784ade9e1641af98578cfbd647a9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."~1.2.1" =
-    self.by-version."async"."1.2.1";
-  by-version."async"."1.2.1" = self.buildNodePackage {
-    name = "async-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async/-/async-1.2.1.tgz";
-      name = "async-1.2.1.tgz";
-      sha1 = "a4816a17cd5ff516dfa2c7698a453369b9790de0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async"."~1.4.2" =
-    self.by-version."async"."1.4.2";
-  by-spec."async"."~1.5.2" =
-    self.by-version."async"."1.5.2";
-  by-spec."async-each"."^1.0.0" =
-    self.by-version."async-each"."1.0.0";
-  by-version."async-each"."1.0.0" = self.buildNodePackage {
-    name = "async-each-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async-each/-/async-each-1.0.0.tgz";
-      name = "async-each-1.0.0.tgz";
-      sha1 = "b5319226c29d99277df63c8aee04093aa5f1d39f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."async-some"."~1.0.2" =
-    self.by-version."async-some"."1.0.2";
-  by-version."async-some"."1.0.2" = self.buildNodePackage {
-    name = "async-some-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/async-some/-/async-some-1.0.2.tgz";
-      name = "async-some-1.0.2.tgz";
-      sha1 = "4d8a81620d5958791b5b98f802d3207776e95509";
-    };
-    deps = {
-      "dezalgo-1.0.3" = self.by-version."dezalgo"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aws-sdk"."*" =
-    self.by-version."aws-sdk"."2.3.19";
-  by-version."aws-sdk"."2.3.19" = self.buildNodePackage {
-    name = "aws-sdk-2.3.19";
-    version = "2.3.19";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.3.19.tgz";
-      name = "aws-sdk-2.3.19.tgz";
-      sha1 = "d040df16b1880fdf231a8d48139c8956191fc00e";
-    };
-    deps = {
-      "sax-1.1.5" = self.by-version."sax"."1.1.5";
-      "xml2js-0.4.15" = self.by-version."xml2js"."0.4.15";
-      "xmlbuilder-2.6.2" = self.by-version."xmlbuilder"."2.6.2";
-      "jmespath-0.15.0" = self.by-version."jmespath"."0.15.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "aws-sdk" = self.by-version."aws-sdk"."2.3.19";
-  by-spec."aws-sdk"."2.0.5" =
-    self.by-version."aws-sdk"."2.0.5";
-  by-version."aws-sdk"."2.0.5" = self.buildNodePackage {
-    name = "aws-sdk-2.0.5";
-    version = "2.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.0.5.tgz";
-      name = "aws-sdk-2.0.5.tgz";
-      sha1 = "f3ebb1898d0632b7b6672e8d77728cbbb69f98c6";
-    };
-    deps = {
-      "aws-sdk-apis-3.1.10" = self.by-version."aws-sdk-apis"."3.1.10";
-      "xml2js-0.2.6" = self.by-version."xml2js"."0.2.6";
-      "xmlbuilder-0.4.2" = self.by-version."xmlbuilder"."0.4.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aws-sdk"."2.x" =
-    self.by-version."aws-sdk"."2.3.19";
-  by-spec."aws-sdk".">=1.2.0 <2" =
-    self.by-version."aws-sdk"."1.18.0";
-  by-version."aws-sdk"."1.18.0" = self.buildNodePackage {
-    name = "aws-sdk-1.18.0";
-    version = "1.18.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-1.18.0.tgz";
-      name = "aws-sdk-1.18.0.tgz";
-      sha1 = "00f35b2d27ac91b1f0d3ef2084c98cf1d1f0adc3";
-    };
-    deps = {
-      "xml2js-0.2.4" = self.by-version."xml2js"."0.2.4";
-      "xmlbuilder-0.4.2" = self.by-version."xmlbuilder"."0.4.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aws-sdk".">=2.0.0 >=2.2.43 <3.0.0" =
-    self.by-version."aws-sdk"."2.3.19";
-  by-spec."aws-sdk"."^2.2.43" =
-    self.by-version."aws-sdk"."2.3.19";
-  by-spec."aws-sdk-apis"."3.x" =
-    self.by-version."aws-sdk-apis"."3.1.10";
-  by-version."aws-sdk-apis"."3.1.10" = self.buildNodePackage {
-    name = "aws-sdk-apis-3.1.10";
-    version = "3.1.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aws-sdk-apis/-/aws-sdk-apis-3.1.10.tgz";
-      name = "aws-sdk-apis-3.1.10.tgz";
-      sha1 = "4eed97f590a16cf080fd1b8d8cfdf2472de8ab0e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aws-sign"."~0.2.0" =
-    self.by-version."aws-sign"."0.2.0";
-  by-version."aws-sign"."0.2.0" = self.buildNodePackage {
-    name = "aws-sign-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz";
-      name = "aws-sign-0.2.0.tgz";
-      sha1 = "c55013856c8194ec854a0cbec90aab5a04ce3ac5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aws-sign"."~0.3.0" =
-    self.by-version."aws-sign"."0.3.0";
-  by-version."aws-sign"."0.3.0" = self.buildNodePackage {
-    name = "aws-sign-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aws-sign/-/aws-sign-0.3.0.tgz";
-      name = "aws-sign-0.3.0.tgz";
-      sha1 = "3d81ca69b474b1e16518728b51c24ff0bbedc6e9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."aws-sign2"."~0.5.0" =
-    self.by-version."aws-sign2"."0.5.0";
-  by-version."aws-sign2"."0.5.0" = self.buildNodePackage {
-    name = "aws-sign2-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz";
-      name = "aws-sign2-0.5.0.tgz";
-      sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63";
-    };
-    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 = "https://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.4.1";
-  by-version."aws4"."1.4.1" = self.buildNodePackage {
-    name = "aws4-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz";
-      name = "aws4-1.4.1.tgz";
-      sha1 = "fde7d5292466d230e5ee0f4e038d9dfaab08fc61";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."babel-runtime"."^6.3.19" =
-    self.by-version."babel-runtime"."6.9.2";
-  by-version."babel-runtime"."6.9.2" = self.buildNodePackage {
-    name = "babel-runtime-6.9.2";
-    version = "6.9.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.9.2.tgz";
-      name = "babel-runtime-6.9.2.tgz";
-      sha1 = "d7fe391bc2cc29b8087c1d9b39878912e9fcfd59";
-    };
-    deps = {
-      "core-js-2.4.0" = self.by-version."core-js"."2.4.0";
-      "regenerator-runtime-0.9.5" = self.by-version."regenerator-runtime"."0.9.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."backbone"."*" =
-    self.by-version."backbone"."1.3.3";
-  by-version."backbone"."1.3.3" = self.buildNodePackage {
-    name = "backbone-1.3.3";
-    version = "1.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/backbone/-/backbone-1.3.3.tgz";
-      name = "backbone-1.3.3.tgz";
-      sha1 = "4cc80ea7cb1631ac474889ce40f2f8bc683b2999";
-    };
-    deps = {
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "backbone" = self.by-version."backbone"."1.3.3";
-  by-spec."backo2"."1.0.2" =
-    self.by-version."backo2"."1.0.2";
-  by-version."backo2"."1.0.2" = self.buildNodePackage {
-    name = "backo2-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz";
-      name = "backo2-1.0.2.tgz";
-      sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."backoff"."^2.4.0" =
-    self.by-version."backoff"."2.5.0";
-  by-version."backoff"."2.5.0" = self.buildNodePackage {
-    name = "backoff-2.5.0";
-    version = "2.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz";
-      name = "backoff-2.5.0.tgz";
-      sha1 = "f616eda9d3e4b66b8ca7fca79f695722c5f8e26f";
-    };
-    deps = {
-      "precond-0.2.3" = self.by-version."precond"."0.2.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."backoff"."~2.3.0" =
-    self.by-version."backoff"."2.3.0";
-  by-version."backoff"."2.3.0" = self.buildNodePackage {
-    name = "backoff-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/backoff/-/backoff-2.3.0.tgz";
-      name = "backoff-2.3.0.tgz";
-      sha1 = "ee7c7e38093f92e472859db635e7652454fc21ea";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."balanced-match"."^0.4.1" =
-    self.by-version."balanced-match"."0.4.1";
-  by-version."balanced-match"."0.4.1" = self.buildNodePackage {
-    name = "balanced-match-0.4.1";
-    version = "0.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz";
-      name = "balanced-match-0.4.1.tgz";
-      sha1 = "19053e2e0748eadb379da6c09d455cf5e1039335";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base-converter"."1.1.2" =
-    self.by-version."base-converter"."1.1.2";
-  by-version."base-converter"."1.1.2" = self.buildNodePackage {
-    name = "base-converter-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base-converter/-/base-converter-1.1.2.tgz";
-      name = "base-converter-1.1.2.tgz";
-      sha1 = "3abd417c6277c28bc3dedb6ac1af16d4b720615a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base62"."^1.1.0" =
-    self.by-version."base62"."1.1.1";
-  by-version."base62"."1.1.1" = self.buildNodePackage {
-    name = "base62-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base62/-/base62-1.1.1.tgz";
-      name = "base62-1.1.1.tgz";
-      sha1 = "974e82c11bd5e00816b508a7ed9c7b9086c9db6b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base64-arraybuffer"."0.1.2" =
-    self.by-version."base64-arraybuffer"."0.1.2";
-  by-version."base64-arraybuffer"."0.1.2" = self.buildNodePackage {
-    name = "base64-arraybuffer-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz";
-      name = "base64-arraybuffer-0.1.2.tgz";
-      sha1 = "474df4a9f2da24e05df3158c3b1db3c3cd46a154";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base64-js"."0.0.8" =
-    self.by-version."base64-js"."0.0.8";
-  by-version."base64-js"."0.0.8" = self.buildNodePackage {
-    name = "base64-js-0.0.8";
-    version = "0.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz";
-      name = "base64-js-0.0.8.tgz";
-      sha1 = "1101e9544f4a76b1bc3b26d452ca96d7a35e7978";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base64-js"."^1.0.2" =
-    self.by-version."base64-js"."1.1.2";
-  by-version."base64-js"."1.1.2" = self.buildNodePackage {
-    name = "base64-js-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base64-js/-/base64-js-1.1.2.tgz";
-      name = "base64-js-1.1.2.tgz";
-      sha1 = "d6400cac1c4c660976d90d07a04351d89395f5e8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base64-url"."1.2.1" =
-    self.by-version."base64-url"."1.2.1";
-  by-version."base64-url"."1.2.1" = self.buildNodePackage {
-    name = "base64-url-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz";
-      name = "base64-url-1.2.1.tgz";
-      sha1 = "199fd661702a0e7b7dcae6e0698bb089c52f6d78";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base64-url"."1.2.2" =
-    self.by-version."base64-url"."1.2.2";
-  by-version."base64-url"."1.2.2" = self.buildNodePackage {
-    name = "base64-url-1.2.2";
-    version = "1.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base64-url/-/base64-url-1.2.2.tgz";
-      name = "base64-url-1.2.2.tgz";
-      sha1 = "90af26ef8b0b67bc801b05eccf943345649008b3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base64-url"."^1.2.1" =
-    self.by-version."base64-url"."1.2.2";
-  by-spec."base64id"."0.1.0" =
-    self.by-version."base64id"."0.1.0";
-  by-version."base64id"."0.1.0" = self.buildNodePackage {
-    name = "base64id-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz";
-      name = "base64id-0.1.0.tgz";
-      sha1 = "02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base64url"."~0.0.4" =
-    self.by-version."base64url"."0.0.6";
-  by-version."base64url"."0.0.6" = self.buildNodePackage {
-    name = "base64url-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base64url/-/base64url-0.0.6.tgz";
-      name = "base64url-0.0.6.tgz";
-      sha1 = "9597b36b330db1c42477322ea87ea8027499b82b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."base64url"."~1.0.4" =
-    self.by-version."base64url"."1.0.6";
-  by-version."base64url"."1.0.6" = self.buildNodePackage {
-    name = "base64url-1.0.6";
-    version = "1.0.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/base64url/-/base64url-1.0.6.tgz";
-      name = "base64url-1.0.6.tgz";
-      sha1 = "d64d375d68a7c640d912e2358d170dca5bb54681";
-    };
-    deps = {
-      "concat-stream-1.4.10" = self.by-version."concat-stream"."1.4.10";
-      "meow-2.0.0" = self.by-version."meow"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."basic-auth"."1.0.0" =
-    self.by-version."basic-auth"."1.0.0";
-  by-version."basic-auth"."1.0.0" = self.buildNodePackage {
-    name = "basic-auth-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz";
-      name = "basic-auth-1.0.0.tgz";
-      sha1 = "111b2d9ff8e4e6d136b8c84ea5e096cb87351637";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."basic-auth"."1.0.3" =
-    self.by-version."basic-auth"."1.0.3";
-  by-version."basic-auth"."1.0.3" = self.buildNodePackage {
-    name = "basic-auth-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.3.tgz";
-      name = "basic-auth-1.0.3.tgz";
-      sha1 = "41f55523e589405038ee3567958c62a5ed70551a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."basic-auth"."^1.0.0" =
-    self.by-version."basic-auth"."1.0.4";
-  by-version."basic-auth"."1.0.4" = self.buildNodePackage {
-    name = "basic-auth-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz";
-      name = "basic-auth-1.0.4.tgz";
-      sha1 = "030935b01de7c9b94a824b29f3fccb750d3a5290";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."basic-auth"."~1.0.3" =
-    self.by-version."basic-auth"."1.0.4";
-  by-spec."basic-auth-connect"."1.0.0" =
-    self.by-version."basic-auth-connect"."1.0.0";
-  by-version."basic-auth-connect"."1.0.0" = self.buildNodePackage {
-    name = "basic-auth-connect-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz";
-      name = "basic-auth-connect-1.0.0.tgz";
-      sha1 = "fdb0b43962ca7b40456a7c2bb48fe173da2d2122";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."batbelt"."0.0.2" =
-    self.by-version."batbelt"."0.0.2";
-  by-version."batbelt"."0.0.2" = self.buildNodePackage {
-    name = "batbelt-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/batbelt/-/batbelt-0.0.2.tgz";
-      name = "batbelt-0.0.2.tgz";
-      sha1 = "2285bf5438b03502e5c5a3cdaf3ad68bf0ad4a65";
-    };
-    deps = {
-      "hashish-0.0.4" = self.by-version."hashish"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."batch"."0.5.0" =
-    self.by-version."batch"."0.5.0";
-  by-version."batch"."0.5.0" = self.buildNodePackage {
-    name = "batch-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz";
-      name = "batch-0.5.0.tgz";
-      sha1 = "fd2e05a7a5d696b4db9314013e285d8ff3557ec3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."batch"."0.5.3" =
-    self.by-version."batch"."0.5.3";
-  by-version."batch"."0.5.3" = self.buildNodePackage {
-    name = "batch-0.5.3";
-    version = "0.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz";
-      name = "batch-0.5.3.tgz";
-      sha1 = "3f3414f380321743bfc1042f9a83ff1d5824d464";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."batch"."^0.5.3" =
-    self.by-version."batch"."0.5.3";
-  by-spec."bcrypt"."*" =
-    self.by-version."bcrypt"."0.8.7";
-  by-version."bcrypt"."0.8.7" = self.buildNodePackage {
-    name = "bcrypt-0.8.7";
-    version = "0.8.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.7.tgz";
-      name = "bcrypt-0.8.7.tgz";
-      sha1 = "bc3875a9afd0a7b2cd231a6a7f218a5ce156b093";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bcrypt" = self.by-version."bcrypt"."0.8.7";
-  by-spec."bcrypt"."0.8.5" =
-    self.by-version."bcrypt"."0.8.5";
-  by-version."bcrypt"."0.8.5" = self.buildNodePackage {
-    name = "bcrypt-0.8.5";
-    version = "0.8.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.5.tgz";
-      name = "bcrypt-0.8.5.tgz";
-      sha1 = "8e5b81b4db80e944f440005979ca8d58a961861d";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.0.5" = self.by-version."nan"."2.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bcrypt".">=0.5.0" =
-    self.by-version."bcrypt"."0.8.7";
-  by-spec."bcryptjs"."2.3.0" =
-    self.by-version."bcryptjs"."2.3.0";
-  by-version."bcryptjs"."2.3.0" = self.buildNodePackage {
-    name = "bcryptjs-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.3.0.tgz";
-      name = "bcryptjs-2.3.0.tgz";
-      sha1 = "5826900cfef7abaf3425c72e4d464de509b8c2ec";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."beeper"."^1.0.0" =
-    self.by-version."beeper"."1.1.0";
-  by-version."beeper"."1.1.0" = self.buildNodePackage {
-    name = "beeper-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/beeper/-/beeper-1.1.0.tgz";
-      name = "beeper-1.1.0.tgz";
-      sha1 = "9ee6fc1ce7f54feaace7ce73588b056037866a2c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."benchmark"."1.0.0" =
-    self.by-version."benchmark"."1.0.0";
-  by-version."benchmark"."1.0.0" = self.buildNodePackage {
-    name = "benchmark-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz";
-      name = "benchmark-1.0.0.tgz";
-      sha1 = "2f1e2fa4c359f11122aa183082218e957e390c73";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bencode"."^0.10.0" =
-    self.by-version."bencode"."0.10.0";
-  by-version."bencode"."0.10.0" = self.buildNodePackage {
-    name = "bencode-0.10.0";
-    version = "0.10.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bencode/-/bencode-0.10.0.tgz";
-      name = "bencode-0.10.0.tgz";
-      sha1 = "717b36fc61c4e9cb3755f0a9f90996ee5b46f0d0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bencode"."^0.6.0" =
-    self.by-version."bencode"."0.6.0";
-  by-version."bencode"."0.6.0" = self.buildNodePackage {
-    name = "bencode-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bencode/-/bencode-0.6.0.tgz";
-      name = "bencode-0.6.0.tgz";
-      sha1 = "04d6190e1d7467c56a969e1a94d1668076eac050";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bencode"."^0.7.0" =
-    self.by-version."bencode"."0.7.0";
-  by-version."bencode"."0.7.0" = self.buildNodePackage {
-    name = "bencode-0.7.0";
-    version = "0.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bencode/-/bencode-0.7.0.tgz";
-      name = "bencode-0.7.0.tgz";
-      sha1 = "811ed647c0118945e41bb4bbbdea9a2c78a17083";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bencode"."^0.8.0" =
-    self.by-version."bencode"."0.8.0";
-  by-version."bencode"."0.8.0" = self.buildNodePackage {
-    name = "bencode-0.8.0";
-    version = "0.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bencode/-/bencode-0.8.0.tgz";
-      name = "bencode-0.8.0.tgz";
-      sha1 = "3143448e82b0fadc745633ecc2a5f8fa87932f19";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bencode"."^0.9.0" =
-    self.by-version."bencode"."0.9.0";
-  by-version."bencode"."0.9.0" = self.buildNodePackage {
-    name = "bencode-0.9.0";
-    version = "0.9.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bencode/-/bencode-0.9.0.tgz";
-      name = "bencode-0.9.0.tgz";
-      sha1 = "6bd263e8e7b5362212e0541c2dbf75b330592bfe";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."better-assert"."~1.0.0" =
-    self.by-version."better-assert"."1.0.2";
-  by-version."better-assert"."1.0.2" = self.buildNodePackage {
-    name = "better-assert-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz";
-      name = "better-assert-1.0.2.tgz";
-      sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
-    };
-    deps = {
-      "callsite-1.0.0" = self.by-version."callsite"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."biased-opener"."~0.2.2" =
-    self.by-version."biased-opener"."0.2.8";
-  by-version."biased-opener"."0.2.8" = self.buildNodePackage {
-    name = "biased-opener-0.2.8";
-    version = "0.2.8";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/biased-opener/-/biased-opener-0.2.8.tgz";
-      name = "biased-opener-0.2.8.tgz";
-      sha1 = "159a49b9a9714c1fb102f2e0ed1906fab6a450f4";
-    };
-    deps = {
-      "browser-launcher2-0.4.6" = self.by-version."browser-launcher2"."0.4.6";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "x-default-browser-0.3.1" = self.by-version."x-default-browser"."0.3.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."big-integer"."^1.6.7" =
-    self.by-version."big-integer"."1.6.15";
-  by-version."big-integer"."1.6.15" = self.buildNodePackage {
-    name = "big-integer-1.6.15";
-    version = "1.6.15";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/big-integer/-/big-integer-1.6.15.tgz";
-      name = "big-integer-1.6.15.tgz";
-      sha1 = "33d27d3b7388dfcc4b86d3130c10740cec01fb9e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."big.js"."^3.1.3" =
-    self.by-version."big.js"."3.1.3";
-  by-version."big.js"."3.1.3" = self.buildNodePackage {
-    name = "big.js-3.1.3";
-    version = "3.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz";
-      name = "big.js-3.1.3.tgz";
-      sha1 = "4cada2193652eb3ca9ec8e55c9015669c9806978";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bigi"."^1.1.0" =
-    self.by-version."bigi"."1.4.1";
-  by-version."bigi"."1.4.1" = self.buildNodePackage {
-    name = "bigi-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bigi/-/bigi-1.4.1.tgz";
-      name = "bigi-1.4.1.tgz";
-      sha1 = "726e8ab08d1fe1dfb8aa6bb6309bffecf93a21b7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bignumber.js"."^1.3.0" =
-    self.by-version."bignumber.js"."1.5.0";
-  by-version."bignumber.js"."1.5.0" = self.buildNodePackage {
-    name = "bignumber.js-1.5.0";
-    version = "1.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-1.5.0.tgz";
-      name = "bignumber.js-1.5.0.tgz";
-      sha1 = "ff41453ac7b19ee15cda7977e179ff1b0d11956d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."binary-extensions"."^1.0.0" =
-    self.by-version."binary-extensions"."1.4.1";
-  by-version."binary-extensions"."1.4.1" = self.buildNodePackage {
-    name = "binary-extensions-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.1.tgz";
-      name = "binary-extensions-1.4.1.tgz";
-      sha1 = "be94c78b44d9f9c336d0de3088545d5efa8511a8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."binaryheap".">= 0.0.3" =
-    self.by-version."binaryheap"."0.0.3";
-  by-version."binaryheap"."0.0.3" = self.buildNodePackage {
-    name = "binaryheap-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/binaryheap/-/binaryheap-0.0.3.tgz";
-      name = "binaryheap-0.0.3.tgz";
-      sha1 = "0d6136c84e9f1a5a90c0b97178c3e00df59820d6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bindings"."*" =
-    self.by-version."bindings"."1.2.1";
-  by-version."bindings"."1.2.1" = self.buildNodePackage {
-    name = "bindings-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz";
-      name = "bindings-1.2.1.tgz";
-      sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bindings"."1.2.1" =
-    self.by-version."bindings"."1.2.1";
-  by-spec."bindings"."1.2.x" =
-    self.by-version."bindings"."1.2.1";
-  by-spec."bindings"."^1.2.1" =
-    self.by-version."bindings"."1.2.1";
-  by-spec."bindings"."~1.2.0" =
-    self.by-version."bindings"."1.2.1";
-  by-spec."bindings"."~1.2.1" =
-    self.by-version."bindings"."1.2.1";
-  by-spec."bip-pod".">=0.4.14" =
-    self.by-version."bip-pod"."0.4.21";
-  by-version."bip-pod"."0.4.21" = self.buildNodePackage {
-    name = "bip-pod-0.4.21";
-    version = "0.4.21";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod/-/bip-pod-0.4.21.tgz";
-      name = "bip-pod-0.4.21.tgz";
-      sha1 = "a7ff8f243fea3d7265756b7ea99f795fe8eb364e";
-    };
-    deps = {
-      "JSONPath-0.10.0" = self.by-version."JSONPath"."0.10.0";
-      "cron-1.1.0" = self.by-version."cron"."1.1.0";
-      "dns-0.2.2" = self.by-version."dns"."0.2.2";
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-      "ipaddr.js-0.1.9" = self.by-version."ipaddr.js"."0.1.9";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "moment-2.13.0" = self.by-version."moment"."2.13.0";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "passport-0.3.2" = self.by-version."passport"."0.3.2";
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "tldtools-0.0.24" = self.by-version."tldtools"."0.0.24";
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-      "validator-1.5.1" = self.by-version."validator"."1.5.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-alchemy"."*" =
-    self.by-version."bip-pod-alchemy"."0.3.3";
-  by-version."bip-pod-alchemy"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-alchemy-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-alchemy/-/bip-pod-alchemy-0.3.3.tgz";
-      name = "bip-pod-alchemy-0.3.3.tgz";
-      sha1 = "408ab1d2e776790528e3d8de52ae0375610067aa";
-    };
-    deps = {
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-alchemy" = self.by-version."bip-pod-alchemy"."0.3.3";
-  by-spec."bip-pod-chain"."*" =
-    self.by-version."bip-pod-chain"."0.3.3";
-  by-version."bip-pod-chain"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-chain-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-chain/-/bip-pod-chain-0.3.3.tgz";
-      name = "bip-pod-chain-0.3.3.tgz";
-      sha1 = "91c707e90af87bee3cbeed7376fc2aa5f13a6e92";
-    };
-    deps = {
-      "chain-node-3.1.2" = self.by-version."chain-node"."3.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-chain" = self.by-version."bip-pod-chain"."0.3.3";
-  by-spec."bip-pod-circonus"."*" =
-    self.by-version."bip-pod-circonus"."0.3.2";
-  by-version."bip-pod-circonus"."0.3.2" = self.buildNodePackage {
-    name = "bip-pod-circonus-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-circonus/-/bip-pod-circonus-0.3.2.tgz";
-      name = "bip-pod-circonus-0.3.2.tgz";
-      sha1 = "5c14d13f73a184323d7209558caba794e2e6ca46";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-circonus" = self.by-version."bip-pod-circonus"."0.3.2";
-  by-spec."bip-pod-coindesk"."*" =
-    self.by-version."bip-pod-coindesk"."0.3.3";
-  by-version."bip-pod-coindesk"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-coindesk-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-coindesk/-/bip-pod-coindesk-0.3.3.tgz";
-      name = "bip-pod-coindesk-0.3.3.tgz";
-      sha1 = "ec03674c79bbb84cbeec940af91aff28aa1505e2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-coindesk" = self.by-version."bip-pod-coindesk"."0.3.3";
-  by-spec."bip-pod-craigslist"."*" =
-    self.by-version."bip-pod-craigslist"."0.3.3";
-  by-version."bip-pod-craigslist"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-craigslist-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-craigslist/-/bip-pod-craigslist-0.3.3.tgz";
-      name = "bip-pod-craigslist-0.3.3.tgz";
-      sha1 = "e92becd2ad4ba05cd4895a2734ca270b7a850b4f";
-    };
-    deps = {
-      "node-craigslist-0.1.9" = self.by-version."node-craigslist"."0.1.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-craigslist" = self.by-version."bip-pod-craigslist"."0.3.3";
-  by-spec."bip-pod-crypto"."*" =
-    self.by-version."bip-pod-crypto"."0.3.3";
-  by-version."bip-pod-crypto"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-crypto-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-crypto/-/bip-pod-crypto-0.3.3.tgz";
-      name = "bip-pod-crypto-0.3.3.tgz";
-      sha1 = "b2e7e41af687ab4b4100c669039c816bc1ba887e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-crypto" = self.by-version."bip-pod-crypto"."0.3.3";
-  by-spec."bip-pod-crypto".">=0.0.1" =
-    self.by-version."bip-pod-crypto"."0.3.3";
-  by-spec."bip-pod-dropbox"."*" =
-    self.by-version."bip-pod-dropbox"."0.3.10";
-  by-version."bip-pod-dropbox"."0.3.10" = self.buildNodePackage {
-    name = "bip-pod-dropbox-0.3.10";
-    version = "0.3.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-dropbox/-/bip-pod-dropbox-0.3.10.tgz";
-      name = "bip-pod-dropbox-0.3.10.tgz";
-      sha1 = "d8b907772d28635b426958bc72d1e45d2d483760";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "passport-dropbox-2.0.0" = self.by-version."passport-dropbox"."2.0.0";
-      "dropbox-0.9.2" = self.by-version."dropbox"."0.9.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-dropbox" = self.by-version."bip-pod-dropbox"."0.3.10";
-  by-spec."bip-pod-email".">=0.0.1" =
-    self.by-version."bip-pod-email"."0.3.13";
-  by-version."bip-pod-email"."0.3.13" = self.buildNodePackage {
-    name = "bip-pod-email-0.3.13";
-    version = "0.3.13";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-email/-/bip-pod-email-0.3.13.tgz";
-      name = "bip-pod-email-0.3.13.tgz";
-      sha1 = "aa7dde292d2d967ccfc41d337d18c6422adfbcf3";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "nodemailer-0.7.1" = self.by-version."nodemailer"."0.7.1";
-      "ejs-0.7.1" = self.by-version."ejs"."0.7.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-embedly"."*" =
-    self.by-version."bip-pod-embedly"."0.3.3";
-  by-version."bip-pod-embedly"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-embedly-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-embedly/-/bip-pod-embedly-0.3.3.tgz";
-      name = "bip-pod-embedly-0.3.3.tgz";
-      sha1 = "b28dbec6f95a3ce868476f8ace7129b5675e84bb";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "embedly-2.0.1" = self.by-version."embedly"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-embedly" = self.by-version."bip-pod-embedly"."0.3.3";
-  by-spec."bip-pod-evernote"."*" =
-    self.by-version."bip-pod-evernote"."0.3.5";
-  by-version."bip-pod-evernote"."0.3.5" = self.buildNodePackage {
-    name = "bip-pod-evernote-0.3.5";
-    version = "0.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-evernote/-/bip-pod-evernote-0.3.5.tgz";
-      name = "bip-pod-evernote-0.3.5.tgz";
-      sha1 = "81cc6d8d9c339410f97cb3eff8d82036b8f8d3ab";
-    };
-    deps = {
-      "evernote-1.25.82" = self.by-version."evernote"."1.25.82";
-      "passport-evernote-0.1.1" = self.by-version."passport-evernote"."0.1.1";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-      "xml2json-0.5.1" = self.by-version."xml2json"."0.5.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-evernote" = self.by-version."bip-pod-evernote"."0.3.5";
-  by-spec."bip-pod-facebook"."*" =
-    self.by-version."bip-pod-facebook"."0.3.10";
-  by-version."bip-pod-facebook"."0.3.10" = self.buildNodePackage {
-    name = "bip-pod-facebook-0.3.10";
-    version = "0.3.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-facebook/-/bip-pod-facebook-0.3.10.tgz";
-      name = "bip-pod-facebook-0.3.10.tgz";
-      sha1 = "688fa22e8a20c4d2a884f62d2f08a802a658c56c";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "async-0.1.18" = self.by-version."async"."0.1.18";
-      "fb-1.1.1" = self.by-version."fb"."1.1.1";
-      "passport-facebook-2.1.1" = self.by-version."passport-facebook"."2.1.1";
-      "form-data-0.2.0" = self.by-version."form-data"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-facebook" = self.by-version."bip-pod-facebook"."0.3.10";
-  by-spec."bip-pod-flickr"."*" =
-    self.by-version."bip-pod-flickr"."0.3.6";
-  by-version."bip-pod-flickr"."0.3.6" = self.buildNodePackage {
-    name = "bip-pod-flickr-0.3.6";
-    version = "0.3.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-flickr/-/bip-pod-flickr-0.3.6.tgz";
-      name = "bip-pod-flickr-0.3.6.tgz";
-      sha1 = "32978fb94d7bb06be3714cb682f4461631308243";
-    };
-    deps = {
-      "flickrapi-0.4.2" = self.by-version."flickrapi"."0.4.2";
-      "form-data-1.0.0-rc4" = self.by-version."form-data"."1.0.0-rc4";
-      "passport-flickr-0.2.0" = self.by-version."passport-flickr"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-flickr" = self.by-version."bip-pod-flickr"."0.3.6";
-  by-spec."bip-pod-flow".">=0.0.1" =
-    self.by-version."bip-pod-flow"."0.3.21";
-  by-version."bip-pod-flow"."0.3.21" = self.buildNodePackage {
-    name = "bip-pod-flow-0.3.21";
-    version = "0.3.21";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-flow/-/bip-pod-flow-0.3.21.tgz";
-      name = "bip-pod-flow-0.3.21.tgz";
-      sha1 = "38a7a60dabd27b2b90dd177317a84329b9a7676f";
-    };
-    deps = {
-      "generate-schema-2.1.1" = self.by-version."generate-schema"."2.1.1";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "q-1.0.1" = self.by-version."q"."1.0.1";
-      "safe-regex-0.0.1" = self.by-version."safe-regex"."0.0.1";
-      "xml2json-0.9.1" = self.by-version."xml2json"."0.9.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-github"."*" =
-    self.by-version."bip-pod-github"."0.3.6";
-  by-version."bip-pod-github"."0.3.6" = self.buildNodePackage {
-    name = "bip-pod-github-0.3.6";
-    version = "0.3.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-github/-/bip-pod-github-0.3.6.tgz";
-      name = "bip-pod-github-0.3.6.tgz";
-      sha1 = "2b61c3adfd4fb98b11c22c4d1c9e562813725c2f";
-    };
-    deps = {
-      "passport-github-1.1.0" = self.by-version."passport-github"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-github" = self.by-version."bip-pod-github"."0.3.6";
-  by-spec."bip-pod-gmail"."*" =
-    self.by-version."bip-pod-gmail"."0.3.11";
-  by-version."bip-pod-gmail"."0.3.11" = self.buildNodePackage {
-    name = "bip-pod-gmail-0.3.11";
-    version = "0.3.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-gmail/-/bip-pod-gmail-0.3.11.tgz";
-      name = "bip-pod-gmail-0.3.11.tgz";
-      sha1 = "8fe14274ce632805cb4dd2f5a10d5ef718a1e77c";
-    };
-    deps = {
-      "googleapis-1.1.5" = self.by-version."googleapis"."1.1.5";
-      "passport-google-oauth-1.0.0" = self.by-version."passport-google-oauth"."1.0.0";
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-gmail" = self.by-version."bip-pod-gmail"."0.3.11";
-  by-spec."bip-pod-google"."*" =
-    self.by-version."bip-pod-google"."0.3.3";
-  by-version."bip-pod-google"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-google-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-google/-/bip-pod-google-0.3.3.tgz";
-      name = "bip-pod-google-0.3.3.tgz";
-      sha1 = "3551cf86b53101a05865f7b104f8b79bd18840a4";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-google-oauth-1.0.0" = self.by-version."passport-google-oauth"."1.0.0";
-      "googleapis-0.8.0" = self.by-version."googleapis"."0.8.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-google" = self.by-version."bip-pod-google"."0.3.3";
-  by-spec."bip-pod-google-drive"."*" =
-    self.by-version."bip-pod-google-drive"."0.3.7";
-  by-version."bip-pod-google-drive"."0.3.7" = self.buildNodePackage {
-    name = "bip-pod-google-drive-0.3.7";
-    version = "0.3.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-google-drive/-/bip-pod-google-drive-0.3.7.tgz";
-      name = "bip-pod-google-drive-0.3.7.tgz";
-      sha1 = "9d5ff3c5cd9d95995e5ce63e6a1519121c2085ce";
-    };
-    deps = {
-      "googleapis-1.1.5" = self.by-version."googleapis"."1.1.5";
-      "passport-google-oauth-1.0.0" = self.by-version."passport-google-oauth"."1.0.0";
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "edit-google-spreadsheet-0.2.21" = self.by-version."edit-google-spreadsheet"."0.2.21";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-google-drive" = self.by-version."bip-pod-google-drive"."0.3.7";
-  by-spec."bip-pod-html".">=0.0.1" =
-    self.by-version."bip-pod-html"."0.3.7";
-  by-version."bip-pod-html"."0.3.7" = self.buildNodePackage {
-    name = "bip-pod-html-0.3.7";
-    version = "0.3.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-html/-/bip-pod-html-0.3.7.tgz";
-      name = "bip-pod-html-0.3.7.tgz";
-      sha1 = "3e22e5c87a85e3204f94f9d859bdecf5484e2716";
-    };
-    deps = {
-      "favitest-1.0.7" = self.by-version."favitest"."1.0.7";
-      "jsdom-3.1.2" = self.by-version."jsdom"."3.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-http".">=0.0.1" =
-    self.by-version."bip-pod-http"."0.3.10";
-  by-version."bip-pod-http"."0.3.10" = self.buildNodePackage {
-    name = "bip-pod-http-0.3.10";
-    version = "0.3.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-http/-/bip-pod-http-0.3.10.tgz";
-      name = "bip-pod-http-0.3.10.tgz";
-      sha1 = "c679c5192847db6cb6d93ed38b0800db819cc3be";
-    };
-    deps = {
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-imgur"."*" =
-    self.by-version."bip-pod-imgur"."0.3.1";
-  by-version."bip-pod-imgur"."0.3.1" = self.buildNodePackage {
-    name = "bip-pod-imgur-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-imgur/-/bip-pod-imgur-0.3.1.tgz";
-      name = "bip-pod-imgur-0.3.1.tgz";
-      sha1 = "b5d297900e46eb331d7af1c5608b82db65be243d";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "passport-imgur-0.0.3" = self.by-version."passport-imgur"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-imgur" = self.by-version."bip-pod-imgur"."0.3.1";
-  by-spec."bip-pod-instagram"."*" =
-    self.by-version."bip-pod-instagram"."0.3.4";
-  by-version."bip-pod-instagram"."0.3.4" = self.buildNodePackage {
-    name = "bip-pod-instagram-0.3.4";
-    version = "0.3.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-instagram/-/bip-pod-instagram-0.3.4.tgz";
-      name = "bip-pod-instagram-0.3.4.tgz";
-      sha1 = "5211db13706f69d4bfafd1a8aa8aed16dacb4470";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-instagram-1.0.0" = self.by-version."passport-instagram"."1.0.0";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-instagram" = self.by-version."bip-pod-instagram"."0.3.4";
-  by-spec."bip-pod-kato"."*" =
-    self.by-version."bip-pod-kato"."0.3.2";
-  by-version."bip-pod-kato"."0.3.2" = self.buildNodePackage {
-    name = "bip-pod-kato-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-kato/-/bip-pod-kato-0.3.2.tgz";
-      name = "bip-pod-kato-0.3.2.tgz";
-      sha1 = "1805eabaa437a2e99c5b6a5e224da89dc9c506e6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-kato" = self.by-version."bip-pod-kato"."0.3.2";
-  by-spec."bip-pod-keenio"."*" =
-    self.by-version."bip-pod-keenio"."0.3.5";
-  by-version."bip-pod-keenio"."0.3.5" = self.buildNodePackage {
-    name = "bip-pod-keenio-0.3.5";
-    version = "0.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-keenio/-/bip-pod-keenio-0.3.5.tgz";
-      name = "bip-pod-keenio-0.3.5.tgz";
-      sha1 = "762ea8d08d6d662af6e6978741dac4cfd762b24c";
-    };
-    deps = {
-      "keen-js-3.4.1" = self.by-version."keen-js"."3.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-keenio" = self.by-version."bip-pod-keenio"."0.3.5";
-  by-spec."bip-pod-mailchimp"."*" =
-    self.by-version."bip-pod-mailchimp"."0.3.7";
-  by-version."bip-pod-mailchimp"."0.3.7" = self.buildNodePackage {
-    name = "bip-pod-mailchimp-0.3.7";
-    version = "0.3.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-mailchimp/-/bip-pod-mailchimp-0.3.7.tgz";
-      name = "bip-pod-mailchimp-0.3.7.tgz";
-      sha1 = "5d477e491c289301f198138e444859259a953194";
-    };
-    deps = {
-      "passport-mailchimp-1.0.0" = self.by-version."passport-mailchimp"."1.0.0";
-      "mailchimp-1.2.0" = self.by-version."mailchimp"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-mailchimp" = self.by-version."bip-pod-mailchimp"."0.3.7";
-  by-spec."bip-pod-mailgun"."*" =
-    self.by-version."bip-pod-mailgun"."0.3.3";
-  by-version."bip-pod-mailgun"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-mailgun-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-mailgun/-/bip-pod-mailgun-0.3.3.tgz";
-      name = "bip-pod-mailgun-0.3.3.tgz";
-      sha1 = "0ceac6a71c2b805771338e505451b526951f39a9";
-    };
-    deps = {
-      "mailgun-js-0.6.9" = self.by-version."mailgun-js"."0.6.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-mailgun" = self.by-version."bip-pod-mailgun"."0.3.3";
-  by-spec."bip-pod-math".">=0.0.1" =
-    self.by-version."bip-pod-math"."0.3.9";
-  by-version."bip-pod-math"."0.3.9" = self.buildNodePackage {
-    name = "bip-pod-math-0.3.9";
-    version = "0.3.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-math/-/bip-pod-math-0.3.9.tgz";
-      name = "bip-pod-math-0.3.9.tgz";
-      sha1 = "d8be80cf29e6c134786b114ba403ca89c1f22f5c";
-    };
-    deps = {
-      "mathjs-0.19.0" = self.by-version."mathjs"."0.19.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-mixcloud"."*" =
-    self.by-version."bip-pod-mixcloud"."0.3.1";
-  by-version."bip-pod-mixcloud"."0.3.1" = self.buildNodePackage {
-    name = "bip-pod-mixcloud-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-mixcloud/-/bip-pod-mixcloud-0.3.1.tgz";
-      name = "bip-pod-mixcloud-0.3.1.tgz";
-      sha1 = "becc444edef870491704a6865ff26b8f476bfcfe";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-mixcloud-0.0.2" = self.by-version."passport-mixcloud"."0.0.2";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-mixcloud" = self.by-version."bip-pod-mixcloud"."0.3.1";
-  by-spec."bip-pod-mongodb"."*" =
-    self.by-version."bip-pod-mongodb"."0.3.4";
-  by-version."bip-pod-mongodb"."0.3.4" = self.buildNodePackage {
-    name = "bip-pod-mongodb-0.3.4";
-    version = "0.3.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-mongodb/-/bip-pod-mongodb-0.3.4.tgz";
-      name = "bip-pod-mongodb-0.3.4.tgz";
-      sha1 = "4df550d5d461b77796f17f0c5feadb6eb3c46e66";
-    };
-    deps = {
-      "mongodb-2.0.55" = self.by-version."mongodb"."2.0.55";
-      "assert-1.4.1" = self.by-version."assert"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-mongodb" = self.by-version."bip-pod-mongodb"."0.3.4";
-  by-spec."bip-pod-numerous"."*" =
-    self.by-version."bip-pod-numerous"."0.3.1";
-  by-version."bip-pod-numerous"."0.3.1" = self.buildNodePackage {
-    name = "bip-pod-numerous-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-numerous/-/bip-pod-numerous-0.3.1.tgz";
-      name = "bip-pod-numerous-0.3.1.tgz";
-      sha1 = "c4ab3790cc1ec424bd16dd0826c3239be34b049c";
-    };
-    deps = {
-      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-numerous" = self.by-version."bip-pod-numerous"."0.3.1";
-  by-spec."bip-pod-pushbullet"."*" =
-    self.by-version."bip-pod-pushbullet"."0.3.4";
-  by-version."bip-pod-pushbullet"."0.3.4" = self.buildNodePackage {
-    name = "bip-pod-pushbullet-0.3.4";
-    version = "0.3.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-pushbullet/-/bip-pod-pushbullet-0.3.4.tgz";
-      name = "bip-pod-pushbullet-0.3.4.tgz";
-      sha1 = "e0cd03c6029b346768987c769a28a86f23a9379f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-pushbullet" = self.by-version."bip-pod-pushbullet"."0.3.4";
-  by-spec."bip-pod-pusher"."*" =
-    self.by-version."bip-pod-pusher"."0.3.2";
-  by-version."bip-pod-pusher"."0.3.2" = self.buildNodePackage {
-    name = "bip-pod-pusher-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-pusher/-/bip-pod-pusher-0.3.2.tgz";
-      name = "bip-pod-pusher-0.3.2.tgz";
-      sha1 = "8cc71c54d9b0f9bd0c39069f8007020be1fdf26f";
-    };
-    deps = {
-      "pusher-1.3.0" = self.by-version."pusher"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-pusher" = self.by-version."bip-pod-pusher"."0.3.2";
-  by-spec."bip-pod-soundcloud"."*" =
-    self.by-version."bip-pod-soundcloud"."0.3.3";
-  by-version."bip-pod-soundcloud"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-soundcloud-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-soundcloud/-/bip-pod-soundcloud-0.3.3.tgz";
-      name = "bip-pod-soundcloud-0.3.3.tgz";
-      sha1 = "ab75df5bac1588d185957075422bfae24d9a4a13";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-soundcloud-0.2.0" = self.by-version."passport-soundcloud"."0.2.0";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-soundcloud" = self.by-version."bip-pod-soundcloud"."0.3.3";
-  by-spec."bip-pod-statuscake"."*" =
-    self.by-version."bip-pod-statuscake"."0.3.2";
-  by-version."bip-pod-statuscake"."0.3.2" = self.buildNodePackage {
-    name = "bip-pod-statuscake-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-statuscake/-/bip-pod-statuscake-0.3.2.tgz";
-      name = "bip-pod-statuscake-0.3.2.tgz";
-      sha1 = "728b05d5ea6d4a16d60cfba0caae6a6b5b2b5851";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-statuscake" = self.by-version."bip-pod-statuscake"."0.3.2";
-  by-spec."bip-pod-syndication".">=0.4.5" =
-    self.by-version."bip-pod-syndication"."0.4.7";
-  by-version."bip-pod-syndication"."0.4.7" = self.buildNodePackage {
-    name = "bip-pod-syndication-0.4.7";
-    version = "0.4.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-syndication/-/bip-pod-syndication-0.4.7.tgz";
-      name = "bip-pod-syndication-0.4.7.tgz";
-      sha1 = "4c2ff80f808b74df8453c1213cbe8132d99f98e2";
-    };
-    deps = {
-      "ejs-2.4.2" = self.by-version."ejs"."2.4.2";
-      "favitest-1.0.7" = self.by-version."favitest"."1.0.7";
-      "feedparser-1.1.4" = self.by-version."feedparser"."1.1.4";
-      "htmlparser2-3.9.0" = self.by-version."htmlparser2"."3.9.0";
-      "imagemagick-0.1.3" = self.by-version."imagemagick"."0.1.3";
-      "moment-2.13.0" = self.by-version."moment"."2.13.0";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "rss-1.2.1" = self.by-version."rss"."1.2.1";
-      "send-0.9.3" = self.by-version."send"."0.9.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-templater".">=0.0.1" =
-    self.by-version."bip-pod-templater"."0.3.3";
-  by-version."bip-pod-templater"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-templater-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-templater/-/bip-pod-templater-0.3.3.tgz";
-      name = "bip-pod-templater-0.3.3.tgz";
-      sha1 = "7a3f033867568c1513beaa4d525ebe1a29cbb479";
-    };
-    deps = {
-      "html-md-3.0.2" = self.by-version."html-md"."3.0.2";
-      "marked-0.3.5" = self.by-version."marked"."0.3.5";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-time".">=0.0.1" =
-    self.by-version."bip-pod-time"."0.3.6";
-  by-version."bip-pod-time"."0.3.6" = self.buildNodePackage {
-    name = "bip-pod-time-0.3.6";
-    version = "0.3.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-time/-/bip-pod-time-0.3.6.tgz";
-      name = "bip-pod-time-0.3.6.tgz";
-      sha1 = "3e5f0c8dc35fa60eec75d39e06e962aa1b2859bf";
-    };
-    deps = {
-      "moment-2.5.1" = self.by-version."moment"."2.5.1";
-      "moment-timezone-0.5.4" = self.by-version."moment-timezone"."0.5.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bip-pod-todoist"."*" =
-    self.by-version."bip-pod-todoist"."0.3.3";
-  by-version."bip-pod-todoist"."0.3.3" = self.buildNodePackage {
-    name = "bip-pod-todoist-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-todoist/-/bip-pod-todoist-0.3.3.tgz";
-      name = "bip-pod-todoist-0.3.3.tgz";
-      sha1 = "0ed1585f576dcaf302bbad22eb8ba6cb01db1631";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-todoist" = self.by-version."bip-pod-todoist"."0.3.3";
-  by-spec."bip-pod-trello"."*" =
-    self.by-version."bip-pod-trello"."0.3.5";
-  by-version."bip-pod-trello"."0.3.5" = self.buildNodePackage {
-    name = "bip-pod-trello-0.3.5";
-    version = "0.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-trello/-/bip-pod-trello-0.3.5.tgz";
-      name = "bip-pod-trello-0.3.5.tgz";
-      sha1 = "fa64d3454c7bcb840b8c10e97d5770eb8781fa51";
-    };
-    deps = {
-      "passport-trello-0.1.5" = self.by-version."passport-trello"."0.1.5";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-trello" = self.by-version."bip-pod-trello"."0.3.5";
-  by-spec."bip-pod-twilio"."*" =
-    self.by-version."bip-pod-twilio"."0.3.6";
-  by-version."bip-pod-twilio"."0.3.6" = self.buildNodePackage {
-    name = "bip-pod-twilio-0.3.6";
-    version = "0.3.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-twilio/-/bip-pod-twilio-0.3.6.tgz";
-      name = "bip-pod-twilio-0.3.6.tgz";
-      sha1 = "e1afd32ec11784157f33a1f45005ae152e07072c";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "twilio-2.9.1" = self.by-version."twilio"."2.9.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-twilio" = self.by-version."bip-pod-twilio"."0.3.6";
-  by-spec."bip-pod-twitter"."*" =
-    self.by-version."bip-pod-twitter"."0.3.13";
-  by-version."bip-pod-twitter"."0.3.13" = self.buildNodePackage {
-    name = "bip-pod-twitter-0.3.13";
-    version = "0.3.13";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-twitter/-/bip-pod-twitter-0.3.13.tgz";
-      name = "bip-pod-twitter-0.3.13.tgz";
-      sha1 = "5365851183d7353172d0ebf8dfb46c6d868fb003";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "ntwitter-0.5.0" = self.by-version."ntwitter"."0.5.0";
-      "passport-twitter-1.0.4" = self.by-version."passport-twitter"."1.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-twitter" = self.by-version."bip-pod-twitter"."0.3.13";
-  by-spec."bip-pod-witai"."*" =
-    self.by-version."bip-pod-witai"."0.3.1";
-  by-version."bip-pod-witai"."0.3.1" = self.buildNodePackage {
-    name = "bip-pod-witai-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-witai/-/bip-pod-witai-0.3.1.tgz";
-      name = "bip-pod-witai-0.3.1.tgz";
-      sha1 = "e98cce9202b765c252424fac0c25982e0d57eb27";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-witai" = self.by-version."bip-pod-witai"."0.3.1";
-  by-spec."bip-pod-wordpress"."*" =
-    self.by-version."bip-pod-wordpress"."0.3.1";
-  by-version."bip-pod-wordpress"."0.3.1" = self.buildNodePackage {
-    name = "bip-pod-wordpress-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-wordpress/-/bip-pod-wordpress-0.3.1.tgz";
-      name = "bip-pod-wordpress-0.3.1.tgz";
-      sha1 = "e5b2335a4459892d7aae4363456a946ca398bf4e";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "passport-wordpress-0.0.4" = self.by-version."passport-wordpress"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-wordpress" = self.by-version."bip-pod-wordpress"."0.3.1";
-  by-spec."bip-pod-zoho"."*" =
-    self.by-version."bip-pod-zoho"."0.3.2";
-  by-version."bip-pod-zoho"."0.3.2" = self.buildNodePackage {
-    name = "bip-pod-zoho-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bip-pod-zoho/-/bip-pod-zoho-0.3.2.tgz";
-      name = "bip-pod-zoho-0.3.2.tgz";
-      sha1 = "1ddb2aebaec1d65674fce7263f3a2e2390de5cea";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "xml2json-0.9.1" = self.by-version."xml2json"."0.9.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bip-pod-zoho" = self.by-version."bip-pod-zoho"."0.3.2";
-  by-spec."bipio"."*" =
-    self.by-version."bipio"."0.4.64";
-  by-version."bipio"."0.4.64" = self.buildNodePackage {
-    name = "bipio-0.4.64";
-    version = "0.4.64";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bipio/-/bipio-0.4.64.tgz";
-      name = "bipio-0.4.64.tgz";
-      sha1 = "e9aac42865e1cb37c9fda18c059cab4961e9bf18";
-    };
-    deps = {
-      "JSONPath-0.10.0" = self.by-version."JSONPath"."0.10.0";
-      "amqp-0.2.6" = self.by-version."amqp"."0.2.6";
-      "async-0.1.18" = self.by-version."async"."0.1.18";
-      "base-converter-1.1.2" = self.by-version."base-converter"."1.1.2";
-      "bcrypt-0.8.7" = self.by-version."bcrypt"."0.8.7";
-      "bip-pod-0.4.21" = self.by-version."bip-pod"."0.4.21";
-      "bip-pod-crypto-0.3.3" = self.by-version."bip-pod-crypto"."0.3.3";
-      "bip-pod-email-0.3.13" = self.by-version."bip-pod-email"."0.3.13";
-      "bip-pod-flow-0.3.21" = self.by-version."bip-pod-flow"."0.3.21";
-      "bip-pod-html-0.3.7" = self.by-version."bip-pod-html"."0.3.7";
-      "bip-pod-http-0.3.10" = self.by-version."bip-pod-http"."0.3.10";
-      "bip-pod-math-0.3.9" = self.by-version."bip-pod-math"."0.3.9";
-      "bip-pod-syndication-0.4.7" = self.by-version."bip-pod-syndication"."0.4.7";
-      "bip-pod-templater-0.3.3" = self.by-version."bip-pod-templater"."0.3.3";
-      "bip-pod-time-0.3.6" = self.by-version."bip-pod-time"."0.3.6";
-      "body-parser-1.13.3" = self.by-version."body-parser"."1.13.3";
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-      "commander-2.9.0" = self.by-version."commander"."2.9.0";
-      "config-0.4.36" = self.by-version."config"."0.4.36";
-      "connect-2.30.2" = self.by-version."connect"."2.30.2";
-      "connect-mongo-0.8.2" = self.by-version."connect-mongo"."0.8.2";
-      "cookie-parser-1.4.3" = self.by-version."cookie-parser"."1.4.3";
-      "cron-1.1.0" = self.by-version."cron"."1.1.0";
-      "dateformat-1.0.7-1.2.3" = self.by-version."dateformat"."1.0.7-1.2.3";
-      "datejs-0.0.2" = self.by-version."datejs"."0.0.2";
-      "errorhandler-1.4.3" = self.by-version."errorhandler"."1.4.3";
-      "express-4.13.4" = self.by-version."express"."4.13.4";
-      "express-session-1.13.0" = self.by-version."express-session"."1.13.0";
-      "extend-2.0.1" = self.by-version."extend"."2.0.1";
-      "favitest-1.0.7" = self.by-version."favitest"."1.0.7";
-      "html-md-3.0.2" = self.by-version."html-md"."3.0.2";
-      "htmlencode-0.0.4" = self.by-version."htmlencode"."0.0.4";
-      "htmlparser2-3.9.0" = self.by-version."htmlparser2"."3.9.0";
-      "imagemagick-0.1.3" = self.by-version."imagemagick"."0.1.3";
-      "inquirer-1.0.3" = self.by-version."inquirer"."1.0.3";
-      "ipaddr.js-1.1.1" = self.by-version."ipaddr.js"."1.1.1";
-      "json-middleware-1.0.2" = self.by-version."json-middleware"."1.0.2";
-      "jsonwebtoken-7.0.0" = self.by-version."jsonwebtoken"."7.0.0";
-      "ldapjs-0.7.1" = self.by-version."ldapjs"."0.7.1";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "marked-0.3.5" = self.by-version."marked"."0.3.5";
-      "method-override-1.0.2" = self.by-version."method-override"."1.0.2";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "moment-2.13.0" = self.by-version."moment"."2.13.0";
-      "moment-timezone-0.5.4" = self.by-version."moment-timezone"."0.5.4";
-      "mongoose-4.2.3" = self.by-version."mongoose"."4.2.3";
-      "multer-0.1.8" = self.by-version."multer"."0.1.8";
-      "node-fs-0.1.7" = self.by-version."node-fs"."0.1.7";
-      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
-      "passport-0.3.2" = self.by-version."passport"."0.3.2";
-      "pkgcloud-1.3.0" = self.by-version."pkgcloud"."1.3.0";
-      "posix-getopt-1.1.0" = self.by-version."posix-getopt"."1.1.0";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "rrecur-2.0.0" = self.by-version."rrecur"."2.0.0";
-      "sleep-3.0.1" = self.by-version."sleep"."3.0.1";
-      "sprintf-0.1.5" = self.by-version."sprintf"."0.1.5";
-      "ssl-root-cas-1.1.10" = self.by-version."ssl-root-cas"."1.1.10";
-      "sugar-1.4.1" = self.by-version."sugar"."1.4.1";
-      "sync-exec-0.6.2" = self.by-version."sync-exec"."0.6.2";
-      "temp-0.8.3" = self.by-version."temp"."0.8.3";
-      "time-0.11.4" = self.by-version."time"."0.11.4";
-      "tldtools-0.0.24" = self.by-version."tldtools"."0.0.24";
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-      "validator-1.5.1" = self.by-version."validator"."1.5.1";
-      "winston-1.0.0" = self.by-version."winston"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bipio" = self.by-version."bipio"."0.4.64";
-  by-spec."bitcoinjs-lib"."1.2.0" =
-    self.by-version."bitcoinjs-lib"."1.2.0";
-  by-version."bitcoinjs-lib"."1.2.0" = self.buildNodePackage {
-    name = "bitcoinjs-lib-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-1.2.0.tgz";
-      name = "bitcoinjs-lib-1.2.0.tgz";
-      sha1 = "731ce2f24b6065f8d9af18757516eed882ad1619";
-    };
-    deps = {
-      "bigi-1.4.1" = self.by-version."bigi"."1.4.1";
-      "bs58check-1.0.3" = self.by-version."bs58check"."1.0.3";
-      "crypto-browserify-3.11.0" = self.by-version."crypto-browserify"."3.11.0";
-      "ecurve-1.0.0" = self.by-version."ecurve"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bitfield"."^0.1.0" =
-    self.by-version."bitfield"."0.1.0";
-  by-version."bitfield"."0.1.0" = self.buildNodePackage {
-    name = "bitfield-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bitfield/-/bitfield-0.1.0.tgz";
-      name = "bitfield-0.1.0.tgz";
-      sha1 = "b05d8b5f0d09f2df35a9db3b3a62d3808c46c457";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bittorrent-dht"."^3.0.0" =
-    self.by-version."bittorrent-dht"."3.2.6";
-  by-version."bittorrent-dht"."3.2.6" = self.buildNodePackage {
-    name = "bittorrent-dht-3.2.6";
-    version = "3.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-3.2.6.tgz";
-      name = "bittorrent-dht-3.2.6.tgz";
-      sha1 = "8d6f64f002525951536ca403ddd040c03009b7d5";
-    };
-    deps = {
-      "addr-to-ip-port-1.4.2" = self.by-version."addr-to-ip-port"."1.4.2";
-      "bencode-0.7.0" = self.by-version."bencode"."0.7.0";
-      "buffer-equal-0.0.1" = self.by-version."buffer-equal"."0.0.1";
-      "compact2string-1.4.0" = self.by-version."compact2string"."1.4.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "is-ip-1.0.0" = self.by-version."is-ip"."1.0.0";
-      "k-bucket-0.5.0" = self.by-version."k-bucket"."0.5.0";
-      "network-address-1.1.0" = self.by-version."network-address"."1.1.0";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "run-parallel-1.1.6" = self.by-version."run-parallel"."1.1.6";
-      "simple-get-1.4.3" = self.by-version."simple-get"."1.4.3";
-      "string2compact-1.2.2" = self.by-version."string2compact"."1.2.2";
-      "thunky-0.1.0" = self.by-version."thunky"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bittorrent-dht"."^6.0.0" =
-    self.by-version."bittorrent-dht"."6.4.2";
-  by-version."bittorrent-dht"."6.4.2" = self.buildNodePackage {
-    name = "bittorrent-dht-6.4.2";
-    version = "6.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-6.4.2.tgz";
-      name = "bittorrent-dht-6.4.2.tgz";
-      sha1 = "8b40f8cee6bea87f2b34fd2ae0bd367a8b1247a6";
-    };
-    deps = {
-      "bencode-0.7.0" = self.by-version."bencode"."0.7.0";
-      "buffer-equals-1.0.3" = self.by-version."buffer-equals"."1.0.3";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "k-bucket-0.6.0" = self.by-version."k-bucket"."0.6.0";
-      "k-rpc-3.7.0" = self.by-version."k-rpc"."3.7.0";
-      "lru-2.0.1" = self.by-version."lru"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bittorrent-tracker"."^2.6.0" =
-    self.by-version."bittorrent-tracker"."2.12.1";
-  by-version."bittorrent-tracker"."2.12.1" = self.buildNodePackage {
-    name = "bittorrent-tracker-2.12.1";
-    version = "2.12.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-2.12.1.tgz";
-      name = "bittorrent-tracker-2.12.1.tgz";
-      sha1 = "562f0e43c6340d003b08c5dad3d4bff0eb3fd64d";
-    };
-    deps = {
-      "bencode-0.6.0" = self.by-version."bencode"."0.6.0";
-      "bn.js-1.3.0" = self.by-version."bn.js"."1.3.0";
-      "buffer-equal-0.0.1" = self.by-version."buffer-equal"."0.0.1";
-      "compact2string-1.4.0" = self.by-version."compact2string"."1.4.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "extend.js-0.0.2" = self.by-version."extend.js"."0.0.2";
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "ip-0.3.3" = self.by-version."ip"."0.3.3";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "portfinder-0.3.0" = self.by-version."portfinder"."0.3.0";
-      "run-series-1.1.4" = self.by-version."run-series"."1.1.4";
-      "simple-get-1.4.3" = self.by-version."simple-get"."1.4.3";
-      "string2compact-1.2.2" = self.by-version."string2compact"."1.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bittorrent-tracker"."^7.0.0" =
-    self.by-version."bittorrent-tracker"."7.7.0";
-  by-version."bittorrent-tracker"."7.7.0" = self.buildNodePackage {
-    name = "bittorrent-tracker-7.7.0";
-    version = "7.7.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-7.7.0.tgz";
-      name = "bittorrent-tracker-7.7.0.tgz";
-      sha1 = "ffd2eabc141d36ed5c1817df7e992f91fd7fc65c";
-    };
-    deps = {
-      "bencode-0.8.0" = self.by-version."bencode"."0.8.0";
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "compact2string-1.4.0" = self.by-version."compact2string"."1.4.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "ip-1.1.3" = self.by-version."ip"."1.1.3";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "random-iterate-1.0.1" = self.by-version."random-iterate"."1.0.1";
-      "run-parallel-1.1.6" = self.by-version."run-parallel"."1.1.6";
-      "run-series-1.1.4" = self.by-version."run-series"."1.1.4";
-      "simple-get-2.2.0" = self.by-version."simple-get"."2.2.0";
-      "simple-peer-6.0.4" = self.by-version."simple-peer"."6.0.4";
-      "simple-websocket-4.1.0" = self.by-version."simple-websocket"."4.1.0";
-      "string2compact-1.2.2" = self.by-version."string2compact"."1.2.2";
-      "uniq-1.0.1" = self.by-version."uniq"."1.0.1";
-      "ws-1.1.0" = self.by-version."ws"."1.1.0";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bl"."^0.9.0" =
-    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 = "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz";
-      name = "bl-0.9.5.tgz";
-      sha1 = "c06b797af085ea00bc527afc8efcf11de2232054";
-    };
-    deps = {
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bl"."^0.9.1" =
-    self.by-version."bl"."0.9.5";
-  by-spec."bl"."^1.0.0" =
-    self.by-version."bl"."1.1.2";
-  by-version."bl"."1.1.2" = self.buildNodePackage {
-    name = "bl-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz";
-      name = "bl-1.1.2.tgz";
-      sha1 = "fdca871a99713aa00d19e3bbba41c44787a65398";
-    };
-    deps = {
-      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bl"."~0.8.1" =
-    self.by-version."bl"."0.8.2";
-  by-version."bl"."0.8.2" = self.buildNodePackage {
-    name = "bl-0.8.2";
-    version = "0.8.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz";
-      name = "bl-0.8.2.tgz";
-      sha1 = "c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e";
-    };
-    deps = {
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bl"."~0.9.0" =
-    self.by-version."bl"."0.9.5";
-  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 = "https://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."bl"."~1.1.2" =
-    self.by-version."bl"."1.1.2";
-  by-spec."blob"."0.0.2" =
-    self.by-version."blob"."0.0.2";
-  by-version."blob"."0.0.2" = self.buildNodePackage {
-    name = "blob-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/blob/-/blob-0.0.2.tgz";
-      name = "blob-0.0.2.tgz";
-      sha1 = "b89562bd6994af95ba1e812155536333aa23cf24";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."blob"."0.0.4" =
-    self.by-version."blob"."0.0.4";
-  by-version."blob"."0.0.4" = self.buildNodePackage {
-    name = "blob-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz";
-      name = "blob-0.0.4.tgz";
-      sha1 = "bcf13052ca54463f30f9fc7e95b9a47630a94921";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."blob-to-buffer"."^1.2.6" =
-    self.by-version."blob-to-buffer"."1.2.6";
-  by-version."blob-to-buffer"."1.2.6" = self.buildNodePackage {
-    name = "blob-to-buffer-1.2.6";
-    version = "1.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/blob-to-buffer/-/blob-to-buffer-1.2.6.tgz";
-      name = "blob-to-buffer-1.2.6.tgz";
-      sha1 = "089ac264c686b73ead6c539a484a8003bfbb2033";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."block-stream"."*" =
-    self.by-version."block-stream"."0.0.9";
-  by-version."block-stream"."0.0.9" = self.buildNodePackage {
-    name = "block-stream-0.0.9";
-    version = "0.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz";
-      name = "block-stream-0.0.9.tgz";
-      sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."block-stream"."0.0.9" =
-    self.by-version."block-stream"."0.0.9";
-  by-spec."bluebird"."2.10.2" =
-    self.by-version."bluebird"."2.10.2";
-  by-version."bluebird"."2.10.2" = self.buildNodePackage {
-    name = "bluebird-2.10.2";
-    version = "2.10.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz";
-      name = "bluebird-2.10.2.tgz";
-      sha1 = "024a5517295308857f14f91f1106fc3b555f446b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bluebird"."2.9.26" =
-    self.by-version."bluebird"."2.9.26";
-  by-version."bluebird"."2.9.26" = self.buildNodePackage {
-    name = "bluebird-2.9.26";
-    version = "2.9.26";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bluebird/-/bluebird-2.9.26.tgz";
-      name = "bluebird-2.9.26.tgz";
-      sha1 = "362772ea4d09f556a4b9f3b64c2fd136e87e3a55";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bluebird".">= 2.0" =
-    self.by-version."bluebird"."3.4.0";
-  by-version."bluebird"."3.4.0" = self.buildNodePackage {
-    name = "bluebird-3.4.0";
-    version = "3.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bluebird/-/bluebird-3.4.0.tgz";
-      name = "bluebird-3.4.0.tgz";
-      sha1 = "28b847935a8bb56d7ff1c7eba3631b09d5a49b24";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bluebird".">= 2.3.2 < 3" =
-    self.by-version."bluebird"."2.10.2";
-  by-spec."bluebird"."^2.9.27" =
-    self.by-version."bluebird"."2.10.2";
-  by-spec."bluebird"."^2.9.30" =
-    self.by-version."bluebird"."2.10.2";
-  by-spec."bluebird"."^3.0.5" =
-    self.by-version."bluebird"."3.4.0";
-  by-spec."bluebird"."^3.1.1" =
-    self.by-version."bluebird"."3.4.0";
-  by-spec."bluebird"."~3.2.2" =
-    self.by-version."bluebird"."3.2.2";
-  by-version."bluebird"."3.2.2" = self.buildNodePackage {
-    name = "bluebird-3.2.2";
-    version = "3.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bluebird/-/bluebird-3.2.2.tgz";
-      name = "bluebird-3.2.2.tgz";
-      sha1 = "164347d3fcab21eca9db849b4b856bec96041051";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."blueimp-md5"."~2.1.0" =
-    self.by-version."blueimp-md5"."2.1.0";
-  by-version."blueimp-md5"."2.1.0" = self.buildNodePackage {
-    name = "blueimp-md5-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.1.0.tgz";
-      name = "blueimp-md5-2.1.0.tgz";
-      sha1 = "88f76137be7f374cfc83b0db60891f57a5bb91d0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bn.js"."^1.0.0" =
-    self.by-version."bn.js"."1.3.0";
-  by-version."bn.js"."1.3.0" = self.buildNodePackage {
-    name = "bn.js-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bn.js/-/bn.js-1.3.0.tgz";
-      name = "bn.js-1.3.0.tgz";
-      sha1 = "0db4cbf96f8f23b742f5bcb9d1aa7a9994a05e83";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bn.js"."^4.0.0" =
-    self.by-version."bn.js"."4.11.4";
-  by-version."bn.js"."4.11.4" = self.buildNodePackage {
-    name = "bn.js-4.11.4";
-    version = "4.11.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.4.tgz";
-      name = "bn.js-4.11.4.tgz";
-      sha1 = "59f0735fa52ff7f00e2cdd1ad207b7c8603d374d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bn.js"."^4.1.0" =
-    self.by-version."bn.js"."4.11.4";
-  by-spec."bn.js"."^4.1.1" =
-    self.by-version."bn.js"."4.11.4";
-  by-spec."bn.js"."^4.4.0" =
-    self.by-version."bn.js"."4.11.4";
-  by-spec."bncode"."^0.2.3" =
-    self.by-version."bncode"."0.2.3";
-  by-version."bncode"."0.2.3" = self.buildNodePackage {
-    name = "bncode-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bncode/-/bncode-0.2.3.tgz";
-      name = "bncode-0.2.3.tgz";
-      sha1 = "37f851dc8e47188a83fbc0f6fa4775cacc9a3296";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bncode"."^0.5.2" =
-    self.by-version."bncode"."0.5.3";
-  by-version."bncode"."0.5.3" = self.buildNodePackage {
-    name = "bncode-0.5.3";
-    version = "0.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bncode/-/bncode-0.5.3.tgz";
-      name = "bncode-0.5.3.tgz";
-      sha1 = "e16661697452d436bf9886238cc791b08d66a61a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."body-parser"."1.15.0" =
-    self.by-version."body-parser"."1.15.0";
-  by-version."body-parser"."1.15.0" = self.buildNodePackage {
-    name = "body-parser-1.15.0";
-    version = "1.15.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/body-parser/-/body-parser-1.15.0.tgz";
-      name = "body-parser-1.15.0.tgz";
-      sha1 = "8168abaeaf9e77e300f7b3aef4df4b46e9b21b35";
-    };
-    deps = {
-      "bytes-2.2.0" = self.by-version."bytes"."2.2.0";
-      "content-type-1.0.2" = self.by-version."content-type"."1.0.2";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "http-errors-1.4.0" = self.by-version."http-errors"."1.4.0";
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "qs-6.1.0" = self.by-version."qs"."6.1.0";
-      "raw-body-2.1.6" = self.by-version."raw-body"."2.1.6";
-      "type-is-1.6.13" = self.by-version."type-is"."1.6.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."body-parser"."1.5.0" =
-    self.by-version."body-parser"."1.5.0";
-  by-version."body-parser"."1.5.0" = self.buildNodePackage {
-    name = "body-parser-1.5.0";
-    version = "1.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/body-parser/-/body-parser-1.5.0.tgz";
-      name = "body-parser-1.5.0.tgz";
-      sha1 = "c6fce2483c9eeb49ab349ff25a92d336d91055b9";
-    };
-    deps = {
-      "bytes-1.0.0" = self.by-version."bytes"."1.0.0";
-      "depd-0.4.2" = self.by-version."depd"."0.4.2";
-      "iconv-lite-0.4.4" = self.by-version."iconv-lite"."0.4.4";
-      "media-typer-0.2.0" = self.by-version."media-typer"."0.2.0";
-      "qs-0.6.6" = self.by-version."qs"."0.6.6";
-      "raw-body-1.3.0" = self.by-version."raw-body"."1.3.0";
-      "type-is-1.3.2" = self.by-version."type-is"."1.3.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."body-parser".">=1.9.2 <2.0.0-0" =
-    self.by-version."body-parser"."1.15.1";
-  by-version."body-parser"."1.15.1" = self.buildNodePackage {
-    name = "body-parser-1.15.1";
-    version = "1.15.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/body-parser/-/body-parser-1.15.1.tgz";
-      name = "body-parser-1.15.1.tgz";
-      sha1 = "9bceef0669b8f8b943f0ad8ce5d95716bd740fd2";
-    };
-    deps = {
-      "bytes-2.3.0" = self.by-version."bytes"."2.3.0";
-      "content-type-1.0.2" = self.by-version."content-type"."1.0.2";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "http-errors-1.4.0" = self.by-version."http-errors"."1.4.0";
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "qs-6.1.0" = self.by-version."qs"."6.1.0";
-      "raw-body-2.1.6" = self.by-version."raw-body"."2.1.6";
-      "type-is-1.6.13" = self.by-version."type-is"."1.6.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."body-parser"."^1.12.2" =
-    self.by-version."body-parser"."1.15.1";
-  by-spec."body-parser"."^1.12.4" =
-    self.by-version."body-parser"."1.15.1";
-  by-spec."body-parser"."~1.13.2" =
-    self.by-version."body-parser"."1.13.3";
-  by-version."body-parser"."1.13.3" = self.buildNodePackage {
-    name = "body-parser-1.13.3";
-    version = "1.13.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz";
-      name = "body-parser-1.13.3.tgz";
-      sha1 = "c08cf330c3358e151016a05746f13f029c97fa97";
-    };
-    deps = {
-      "bytes-2.1.0" = self.by-version."bytes"."2.1.0";
-      "content-type-1.0.2" = self.by-version."content-type"."1.0.2";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.0.1" = self.by-version."depd"."1.0.1";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-      "iconv-lite-0.4.11" = self.by-version."iconv-lite"."0.4.11";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "qs-4.0.0" = self.by-version."qs"."4.0.0";
-      "raw-body-2.1.6" = self.by-version."raw-body"."2.1.6";
-      "type-is-1.6.13" = self.by-version."type-is"."1.6.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."body-parser"."~1.13.3" =
-    self.by-version."body-parser"."1.13.3";
-  by-spec."body-parser"."~1.14.2" =
-    self.by-version."body-parser"."1.14.2";
-  by-version."body-parser"."1.14.2" = self.buildNodePackage {
-    name = "body-parser-1.14.2";
-    version = "1.14.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz";
-      name = "body-parser-1.14.2.tgz";
-      sha1 = "1015cb1fe2c443858259581db53332f8d0cf50f9";
-    };
-    deps = {
-      "bytes-2.2.0" = self.by-version."bytes"."2.2.0";
-      "content-type-1.0.2" = self.by-version."content-type"."1.0.2";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "qs-5.2.0" = self.by-version."qs"."5.2.0";
-      "raw-body-2.1.6" = self.by-version."raw-body"."2.1.6";
-      "type-is-1.6.13" = self.by-version."type-is"."1.6.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bonjour"."^3.3.1" =
-    self.by-version."bonjour"."3.5.0";
-  by-version."bonjour"."3.5.0" = self.buildNodePackage {
-    name = "bonjour-3.5.0";
-    version = "3.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz";
-      name = "bonjour-3.5.0.tgz";
-      sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
-    };
-    deps = {
-      "array-flatten-2.1.0" = self.by-version."array-flatten"."2.1.0";
-      "deep-equal-1.0.1" = self.by-version."deep-equal"."1.0.1";
-      "dns-equal-1.0.0" = self.by-version."dns-equal"."1.0.0";
-      "dns-txt-2.0.2" = self.by-version."dns-txt"."2.0.2";
-      "multicast-dns-6.0.1" = self.by-version."multicast-dns"."6.0.1";
-      "multicast-dns-service-types-1.1.0" = self.by-version."multicast-dns-service-types"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."boolbase"."~1.0.0" =
-    self.by-version."boolbase"."1.0.0";
-  by-version."boolbase"."1.0.0" = self.buildNodePackage {
-    name = "boolbase-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz";
-      name = "boolbase-1.0.0.tgz";
-      sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."boom"."0.3.x" =
-    self.by-version."boom"."0.3.8";
-  by-version."boom"."0.3.8" = self.buildNodePackage {
-    name = "boom-0.3.8";
-    version = "0.3.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz";
-      name = "boom-0.3.8.tgz";
-      sha1 = "c8cdb041435912741628c044ecc732d1d17c09ea";
-    };
-    deps = {
-      "hoek-0.7.6" = self.by-version."hoek"."0.7.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."boom"."0.4.x" =
-    self.by-version."boom"."0.4.2";
-  by-version."boom"."0.4.2" = self.buildNodePackage {
-    name = "boom-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz";
-      name = "boom-0.4.2.tgz";
-      sha1 = "7a636e9ded4efcefb19cef4947a3c67dfaee911b";
-    };
-    deps = {
-      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."boom"."2.x.x" =
-    self.by-version."boom"."2.10.1";
-  by-version."boom"."2.10.1" = self.buildNodePackage {
-    name = "boom-2.10.1";
-    version = "2.10.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://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 = [ ];
-  };
-  by-spec."bower"."*" =
-    self.by-version."bower"."1.7.9";
-  by-version."bower"."1.7.9" = self.buildNodePackage {
-    name = "bower-1.7.9";
-    version = "1.7.9";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bower/-/bower-1.7.9.tgz";
-      name = "bower-1.7.9.tgz";
-      sha1 = "b7296c2393e0d75edaa6ca39648132dd255812b0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "bower" = self.by-version."bower"."1.7.9";
-  by-spec."bower".">=1.2.8 <2" =
-    self.by-version."bower"."1.7.9";
-  by-spec."bower-endpoint-parser"."0.2.1" =
-    self.by-version."bower-endpoint-parser"."0.2.1";
-  by-version."bower-endpoint-parser"."0.2.1" = self.buildNodePackage {
-    name = "bower-endpoint-parser-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bower-endpoint-parser/-/bower-endpoint-parser-0.2.1.tgz";
-      name = "bower-endpoint-parser-0.2.1.tgz";
-      sha1 = "8c4010a2900cdab07ea5d38f0bd03e9bbccef90f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  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 = "https://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 = [ ];
-  };
-  by-spec."bower-logger"."0.2.1" =
-    self.by-version."bower-logger"."0.2.1";
-  by-version."bower-logger"."0.2.1" = self.buildNodePackage {
-    name = "bower-logger-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bower-logger/-/bower-logger-0.2.1.tgz";
-      name = "bower-logger-0.2.1.tgz";
-      sha1 = "0c1817c48063a88d96cc3d516c55e57fff5d9ecb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bower2nix"."*" =
-    self.by-version."bower2nix"."3.1.1";
-  by-version."bower2nix"."3.1.1" = self.buildNodePackage {
-    name = "bower2nix-3.1.1";
-    version = "3.1.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bower2nix/-/bower2nix-3.1.1.tgz";
-      name = "bower2nix-3.1.1.tgz";
-      sha1 = "wfzj1k6jkfnk1bkgbmpni59mdab8zk3p";
-    };
-    deps = {
-      "argparse-1.0.4" = self.by-version."argparse"."1.0.4";
-      "bower-1.7.9" = self.by-version."bower"."1.7.9";
-      "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";
-      "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"."3.0.1";
-  by-spec."bplist-creator"."0.0.4" =
-    self.by-version."bplist-creator"."0.0.4";
-  by-version."bplist-creator"."0.0.4" = self.buildNodePackage {
-    name = "bplist-creator-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.4.tgz";
-      name = "bplist-creator-0.0.4.tgz";
-      sha1 = "4ac0496782e127a85c1d2026a4f5eb22a7aff991";
-    };
-    deps = {
-      "stream-buffers-0.2.6" = self.by-version."stream-buffers"."0.2.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bplist-creator"."^0.0.6" =
-    self.by-version."bplist-creator"."0.0.6";
-  by-version."bplist-creator"."0.0.6" = self.buildNodePackage {
-    name = "bplist-creator-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.6.tgz";
-      name = "bplist-creator-0.0.6.tgz";
-      sha1 = "fef069bee85975b2ddcc2264aaa7c50dc17a3c7e";
-    };
-    deps = {
-      "stream-buffers-2.2.0" = self.by-version."stream-buffers"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bplist-parser"."0.0.6" =
-    self.by-version."bplist-parser"."0.0.6";
-  by-version."bplist-parser"."0.0.6" = self.buildNodePackage {
-    name = "bplist-parser-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz";
-      name = "bplist-parser-0.0.6.tgz";
-      sha1 = "38da3471817df9d44ab3892e27707bbbd75a11b9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bplist-parser"."^0.1.0" =
-    self.by-version."bplist-parser"."0.1.1";
-  by-version."bplist-parser"."0.1.1" = self.buildNodePackage {
-    name = "bplist-parser-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz";
-      name = "bplist-parser-0.1.1.tgz";
-      sha1 = "d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6";
-    };
-    deps = {
-      "big-integer-1.6.15" = self.by-version."big-integer"."1.6.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bplist-parser"."^0.1.1" =
-    self.by-version."bplist-parser"."0.1.1";
-  by-spec."brace-expansion"."^1.0.0" =
-    self.by-version."brace-expansion"."1.1.4";
-  by-version."brace-expansion"."1.1.4" = self.buildNodePackage {
-    name = "brace-expansion-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz";
-      name = "brace-expansion-1.1.4.tgz";
-      sha1 = "464a204c77f482c085c2a36c456bbfbafb67a127";
-    };
-    deps = {
-      "balanced-match-0.4.1" = self.by-version."balanced-match"."0.4.1";
-      "concat-map-0.0.1" = self.by-version."concat-map"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."braces"."^0.1.2" =
-    self.by-version."braces"."0.1.5";
-  by-version."braces"."0.1.5" = self.buildNodePackage {
-    name = "braces-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz";
-      name = "braces-0.1.5.tgz";
-      sha1 = "c085711085291d8b75fdd74eab0f8597280711e6";
-    };
-    deps = {
-      "expand-range-0.1.1" = self.by-version."expand-range"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."braces"."^1.8.2" =
-    self.by-version."braces"."1.8.5";
-  by-version."braces"."1.8.5" = self.buildNodePackage {
-    name = "braces-1.8.5";
-    version = "1.8.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz";
-      name = "braces-1.8.5.tgz";
-      sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7";
-    };
-    deps = {
-      "expand-range-1.8.2" = self.by-version."expand-range"."1.8.2";
-      "preserve-0.2.0" = self.by-version."preserve"."0.2.0";
-      "repeat-element-1.1.2" = self.by-version."repeat-element"."1.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."breakable"."~1.0.0" =
-    self.by-version."breakable"."1.0.0";
-  by-version."breakable"."1.0.0" = self.buildNodePackage {
-    name = "breakable-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz";
-      name = "breakable-1.0.0.tgz";
-      sha1 = "784a797915a38ead27bad456b5572cb4bbaa78c1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."broadway"."0.2.x" =
-    self.by-version."broadway"."0.2.10";
-  by-version."broadway"."0.2.10" = self.buildNodePackage {
-    name = "broadway-0.2.10";
-    version = "0.2.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/broadway/-/broadway-0.2.10.tgz";
-      name = "broadway-0.2.10.tgz";
-      sha1 = "0f58532be140426e9000e49a93e242a0d1263238";
-    };
-    deps = {
-      "cliff-0.1.8" = self.by-version."cliff"."0.1.8";
-      "eventemitter2-0.4.14" = self.by-version."eventemitter2"."0.4.14";
-      "nconf-0.6.9" = self.by-version."nconf"."0.6.9";
-      "winston-0.7.2" = self.by-version."winston"."0.7.2";
-      "utile-0.2.1" = self.by-version."utile"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."broadway"."~0.3.2" =
-    self.by-version."broadway"."0.3.6";
-  by-version."broadway"."0.3.6" = self.buildNodePackage {
-    name = "broadway-0.3.6";
-    version = "0.3.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz";
-      name = "broadway-0.3.6.tgz";
-      sha1 = "7dbef068b954b7907925fd544963b578a902ba7a";
-    };
-    deps = {
-      "cliff-0.1.9" = self.by-version."cliff"."0.1.9";
-      "eventemitter2-0.4.14" = self.by-version."eventemitter2"."0.4.14";
-      "nconf-0.6.9" = self.by-version."nconf"."0.6.9";
-      "winston-0.8.0" = self.by-version."winston"."0.8.0";
-      "utile-0.2.1" = self.by-version."utile"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."broadway"."~0.3.6" =
-    self.by-version."broadway"."0.3.6";
-  by-spec."brorand"."^1.0.1" =
-    self.by-version."brorand"."1.0.5";
-  by-version."brorand"."1.0.5" = self.buildNodePackage {
-    name = "brorand-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/brorand/-/brorand-1.0.5.tgz";
-      name = "brorand-1.0.5.tgz";
-      sha1 = "07b54ca30286abd1718a0e2a830803efdc9bfa04";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browser-launcher2"."~0.4.6" =
-    self.by-version."browser-launcher2"."0.4.6";
-  by-version."browser-launcher2"."0.4.6" = self.buildNodePackage {
-    name = "browser-launcher2-0.4.6";
-    version = "0.4.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browser-launcher2/-/browser-launcher2-0.4.6.tgz";
-      name = "browser-launcher2-0.4.6.tgz";
-      sha1 = "51598408a13f4c9c5b20eba44554b2c0b0ae4074";
-    };
-    deps = {
-      "headless-0.1.7" = self.by-version."headless"."0.1.7";
-      "lodash-2.4.2" = self.by-version."lodash"."2.4.2";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "osenv-0.1.3" = self.by-version."osenv"."0.1.3";
-      "plist-1.2.0" = self.by-version."plist"."1.2.0";
-      "win-detect-browsers-1.0.2" = self.by-version."win-detect-browsers"."1.0.2";
-      "uid-0.0.2" = self.by-version."uid"."0.0.2";
-      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browser-pack"."^4.0.3" =
-    self.by-version."browser-pack"."4.0.4";
-  by-version."browser-pack"."4.0.4" = self.buildNodePackage {
-    name = "browser-pack-4.0.4";
-    version = "4.0.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browser-pack/-/browser-pack-4.0.4.tgz";
-      name = "browser-pack-4.0.4.tgz";
-      sha1 = "8dae95a20ca43b3fea201faa6cfaa84ff4a0d484";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "combine-source-map-0.3.0" = self.by-version."combine-source-map"."0.3.0";
-      "concat-stream-1.4.10" = self.by-version."concat-stream"."1.4.10";
-      "defined-1.0.0" = self.by-version."defined"."1.0.0";
-      "through2-0.5.1" = self.by-version."through2"."0.5.1";
-      "umd-3.0.1" = self.by-version."umd"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browser-pack"."^6.0.1" =
-    self.by-version."browser-pack"."6.0.1";
-  by-version."browser-pack"."6.0.1" = self.buildNodePackage {
-    name = "browser-pack-6.0.1";
-    version = "6.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.1.tgz";
-      name = "browser-pack-6.0.1.tgz";
-      sha1 = "779887c792eaa1f64a46a22c8f1051cdcd96755f";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "combine-source-map-0.7.2" = self.by-version."combine-source-map"."0.7.2";
-      "defined-1.0.0" = self.by-version."defined"."1.0.0";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "umd-3.0.1" = self.by-version."umd"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browser-request".">= 0.3.1 < 0.4.0" =
-    self.by-version."browser-request"."0.3.3";
-  by-version."browser-request"."0.3.3" = self.buildNodePackage {
-    name = "browser-request-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz";
-      name = "browser-request-0.3.3.tgz";
-      sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browser-request"."^0.3.3" =
-    self.by-version."browser-request"."0.3.3";
-  by-spec."browser-resolve"."^1.11.0" =
-    self.by-version."browser-resolve"."1.11.2";
-  by-version."browser-resolve"."1.11.2" = self.buildNodePackage {
-    name = "browser-resolve-1.11.2";
-    version = "1.11.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz";
-      name = "browser-resolve-1.11.2.tgz";
-      sha1 = "8ff09b0a2c421718a1051c260b32e48f442938ce";
-    };
-    deps = {
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browser-resolve"."^1.7.0" =
-    self.by-version."browser-resolve"."1.11.2";
-  by-spec."browser-resolve"."^1.7.1" =
-    self.by-version."browser-resolve"."1.11.2";
-  by-spec."browserchannel"."*" =
-    self.by-version."browserchannel"."2.0.0";
-  by-version."browserchannel"."2.0.0" = self.buildNodePackage {
-    name = "browserchannel-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserchannel/-/browserchannel-2.0.0.tgz";
-      name = "browserchannel-2.0.0.tgz";
-      sha1 = "0f211b3cad9995e8729b2bacd46b53c027c0ea63";
-    };
-    deps = {
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "connect-2.30.2" = self.by-version."connect"."2.30.2";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "ascii-json-0.2.0" = self.by-version."ascii-json"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "browserchannel" = self.by-version."browserchannel"."2.0.0";
-  by-spec."browserify"."*" =
-    self.by-version."browserify"."13.0.1";
-  by-version."browserify"."13.0.1" = self.buildNodePackage {
-    name = "browserify-13.0.1";
-    version = "13.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify/-/browserify-13.0.1.tgz";
-      name = "browserify-13.0.1.tgz";
-      sha1 = "d37179cbb222179ecf730ec7e625e998677902d4";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "assert-1.3.0" = self.by-version."assert"."1.3.0";
-      "browser-pack-6.0.1" = self.by-version."browser-pack"."6.0.1";
-      "browser-resolve-1.11.2" = self.by-version."browser-resolve"."1.11.2";
-      "browserify-zlib-0.1.4" = self.by-version."browserify-zlib"."0.1.4";
-      "buffer-4.6.0" = self.by-version."buffer"."4.6.0";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "console-browserify-1.1.0" = self.by-version."console-browserify"."1.1.0";
-      "constants-browserify-1.0.0" = self.by-version."constants-browserify"."1.0.0";
-      "crypto-browserify-3.11.0" = self.by-version."crypto-browserify"."3.11.0";
-      "defined-1.0.0" = self.by-version."defined"."1.0.0";
-      "deps-sort-2.0.0" = self.by-version."deps-sort"."2.0.0";
-      "domain-browser-1.1.7" = self.by-version."domain-browser"."1.1.7";
-      "duplexer2-0.1.4" = self.by-version."duplexer2"."0.1.4";
-      "events-1.1.0" = self.by-version."events"."1.1.0";
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-      "has-1.0.1" = self.by-version."has"."1.0.1";
-      "htmlescape-1.1.1" = self.by-version."htmlescape"."1.1.1";
-      "https-browserify-0.0.1" = self.by-version."https-browserify"."0.0.1";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "insert-module-globals-7.0.1" = self.by-version."insert-module-globals"."7.0.1";
-      "labeled-stream-splicer-2.0.0" = self.by-version."labeled-stream-splicer"."2.0.0";
-      "module-deps-4.0.7" = self.by-version."module-deps"."4.0.7";
-      "os-browserify-0.1.2" = self.by-version."os-browserify"."0.1.2";
-      "parents-1.0.1" = self.by-version."parents"."1.0.1";
-      "path-browserify-0.0.0" = self.by-version."path-browserify"."0.0.0";
-      "process-0.11.4" = self.by-version."process"."0.11.4";
-      "punycode-1.4.1" = self.by-version."punycode"."1.4.1";
-      "querystring-es3-0.2.1" = self.by-version."querystring-es3"."0.2.1";
-      "read-only-stream-2.0.0" = self.by-version."read-only-stream"."2.0.0";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-      "shasum-1.0.2" = self.by-version."shasum"."1.0.2";
-      "shell-quote-1.6.0" = self.by-version."shell-quote"."1.6.0";
-      "stream-browserify-2.0.1" = self.by-version."stream-browserify"."2.0.1";
-      "stream-http-2.3.0" = self.by-version."stream-http"."2.3.0";
-      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
-      "subarg-1.0.0" = self.by-version."subarg"."1.0.0";
-      "syntax-error-1.1.6" = self.by-version."syntax-error"."1.1.6";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "timers-browserify-1.4.2" = self.by-version."timers-browserify"."1.4.2";
-      "tty-browserify-0.0.0" = self.by-version."tty-browserify"."0.0.0";
-      "url-0.11.0" = self.by-version."url"."0.11.0";
-      "util-0.10.3" = self.by-version."util"."0.10.3";
-      "vm-browserify-0.0.4" = self.by-version."vm-browserify"."0.0.4";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "browserify" = self.by-version."browserify"."13.0.1";
-  by-spec."browserify"."10.1.3" =
-    self.by-version."browserify"."10.1.3";
-  by-version."browserify"."10.1.3" = self.buildNodePackage {
-    name = "browserify-10.1.3";
-    version = "10.1.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify/-/browserify-10.1.3.tgz";
-      name = "browserify-10.1.3.tgz";
-      sha1 = "6605dcffbb918c6a69d9c60201d2397ef7ce20ff";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "assert-1.3.0" = self.by-version."assert"."1.3.0";
-      "browser-pack-4.0.4" = self.by-version."browser-pack"."4.0.4";
-      "browser-resolve-1.11.2" = self.by-version."browser-resolve"."1.11.2";
-      "browserify-zlib-0.1.4" = self.by-version."browserify-zlib"."0.1.4";
-      "buffer-3.6.0" = self.by-version."buffer"."3.6.0";
-      "builtins-0.0.7" = self.by-version."builtins"."0.0.7";
-      "commondir-0.0.1" = self.by-version."commondir"."0.0.1";
-      "concat-stream-1.4.10" = self.by-version."concat-stream"."1.4.10";
-      "console-browserify-1.1.0" = self.by-version."console-browserify"."1.1.0";
-      "constants-browserify-0.0.1" = self.by-version."constants-browserify"."0.0.1";
-      "crypto-browserify-3.11.0" = self.by-version."crypto-browserify"."3.11.0";
-      "deep-equal-1.0.1" = self.by-version."deep-equal"."1.0.1";
-      "defined-1.0.0" = self.by-version."defined"."1.0.0";
-      "deps-sort-1.3.9" = self.by-version."deps-sort"."1.3.9";
-      "domain-browser-1.1.7" = self.by-version."domain-browser"."1.1.7";
-      "duplexer2-0.0.2" = self.by-version."duplexer2"."0.0.2";
-      "events-1.0.2" = self.by-version."events"."1.0.2";
-      "glob-4.5.3" = self.by-version."glob"."4.5.3";
-      "has-1.0.1" = self.by-version."has"."1.0.1";
-      "htmlescape-1.1.1" = self.by-version."htmlescape"."1.1.1";
-      "http-browserify-1.7.0" = self.by-version."http-browserify"."1.7.0";
-      "https-browserify-0.0.1" = self.by-version."https-browserify"."0.0.1";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "insert-module-globals-6.6.3" = self.by-version."insert-module-globals"."6.6.3";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "labeled-stream-splicer-1.0.2" = self.by-version."labeled-stream-splicer"."1.0.2";
-      "module-deps-3.9.1" = self.by-version."module-deps"."3.9.1";
-      "os-browserify-0.1.2" = self.by-version."os-browserify"."0.1.2";
-      "parents-1.0.1" = self.by-version."parents"."1.0.1";
-      "path-browserify-0.0.0" = self.by-version."path-browserify"."0.0.0";
-      "process-0.11.4" = self.by-version."process"."0.11.4";
-      "punycode-1.4.1" = self.by-version."punycode"."1.4.1";
-      "querystring-es3-0.2.1" = self.by-version."querystring-es3"."0.2.1";
-      "read-only-stream-1.1.1" = self.by-version."read-only-stream"."1.1.1";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-      "shallow-copy-0.0.1" = self.by-version."shallow-copy"."0.0.1";
-      "shasum-1.0.2" = self.by-version."shasum"."1.0.2";
-      "shell-quote-0.0.1" = self.by-version."shell-quote"."0.0.1";
-      "stream-browserify-1.0.0" = self.by-version."stream-browserify"."1.0.0";
-      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
-      "subarg-1.0.0" = self.by-version."subarg"."1.0.0";
-      "syntax-error-1.1.6" = self.by-version."syntax-error"."1.1.6";
-      "through2-1.1.1" = self.by-version."through2"."1.1.1";
-      "timers-browserify-1.4.2" = self.by-version."timers-browserify"."1.4.2";
-      "tty-browserify-0.0.0" = self.by-version."tty-browserify"."0.0.0";
-      "url-0.10.3" = self.by-version."url"."0.10.3";
-      "util-0.10.3" = self.by-version."util"."0.10.3";
-      "vm-browserify-0.0.4" = self.by-version."vm-browserify"."0.0.4";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-aes"."^1.0.0" =
-    self.by-version."browserify-aes"."1.0.6";
-  by-version."browserify-aes"."1.0.6" = self.buildNodePackage {
-    name = "browserify-aes-1.0.6";
-    version = "1.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz";
-      name = "browserify-aes-1.0.6.tgz";
-      sha1 = "5e7725dbdef1fd5930d4ebab48567ce451c48a0a";
-    };
-    deps = {
-      "buffer-xor-1.0.3" = self.by-version."buffer-xor"."1.0.3";
-      "cipher-base-1.0.2" = self.by-version."cipher-base"."1.0.2";
-      "create-hash-1.1.2" = self.by-version."create-hash"."1.1.2";
-      "evp_bytestokey-1.0.0" = self.by-version."evp_bytestokey"."1.0.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-aes"."^1.0.4" =
-    self.by-version."browserify-aes"."1.0.6";
-  by-spec."browserify-cipher"."^1.0.0" =
-    self.by-version."browserify-cipher"."1.0.0";
-  by-version."browserify-cipher"."1.0.0" = self.buildNodePackage {
-    name = "browserify-cipher-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz";
-      name = "browserify-cipher-1.0.0.tgz";
-      sha1 = "9988244874bf5ed4e28da95666dcd66ac8fc363a";
-    };
-    deps = {
-      "browserify-aes-1.0.6" = self.by-version."browserify-aes"."1.0.6";
-      "browserify-des-1.0.0" = self.by-version."browserify-des"."1.0.0";
-      "evp_bytestokey-1.0.0" = self.by-version."evp_bytestokey"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-des"."^1.0.0" =
-    self.by-version."browserify-des"."1.0.0";
-  by-version."browserify-des"."1.0.0" = self.buildNodePackage {
-    name = "browserify-des-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz";
-      name = "browserify-des-1.0.0.tgz";
-      sha1 = "daa277717470922ed2fe18594118a175439721dd";
-    };
-    deps = {
-      "cipher-base-1.0.2" = self.by-version."cipher-base"."1.0.2";
-      "des.js-1.0.0" = self.by-version."des.js"."1.0.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-rsa"."^4.0.0" =
-    self.by-version."browserify-rsa"."4.0.1";
-  by-version."browserify-rsa"."4.0.1" = self.buildNodePackage {
-    name = "browserify-rsa-4.0.1";
-    version = "4.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
-      name = "browserify-rsa-4.0.1.tgz";
-      sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
-    };
-    deps = {
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "randombytes-2.0.3" = self.by-version."randombytes"."2.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-sign"."^4.0.0" =
-    self.by-version."browserify-sign"."4.0.0";
-  by-version."browserify-sign"."4.0.0" = self.buildNodePackage {
-    name = "browserify-sign-4.0.0";
-    version = "4.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz";
-      name = "browserify-sign-4.0.0.tgz";
-      sha1 = "10773910c3c206d5420a46aad8694f820b85968f";
-    };
-    deps = {
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "browserify-rsa-4.0.1" = self.by-version."browserify-rsa"."4.0.1";
-      "create-hash-1.1.2" = self.by-version."create-hash"."1.1.2";
-      "create-hmac-1.1.4" = self.by-version."create-hmac"."1.1.4";
-      "elliptic-6.2.8" = self.by-version."elliptic"."6.2.8";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "parse-asn1-5.0.0" = self.by-version."parse-asn1"."5.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-transform-tools"."~1.5.1" =
-    self.by-version."browserify-transform-tools"."1.5.3";
-  by-version."browserify-transform-tools"."1.5.3" = self.buildNodePackage {
-    name = "browserify-transform-tools-1.5.3";
-    version = "1.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify-transform-tools/-/browserify-transform-tools-1.5.3.tgz";
-      name = "browserify-transform-tools-1.5.3.tgz";
-      sha1 = "509c9c652fb6b07bf0d21efceebb1d826f80754b";
-    };
-    deps = {
-      "falafel-1.2.0" = self.by-version."falafel"."1.2.0";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-versionify"."1.0.3" =
-    self.by-version."browserify-versionify"."1.0.3";
-  by-version."browserify-versionify"."1.0.3" = self.buildNodePackage {
-    name = "browserify-versionify-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify-versionify/-/browserify-versionify-1.0.3.tgz";
-      name = "browserify-versionify-1.0.3.tgz";
-      sha1 = "927eaaf85f16fe8d8d59eb1c6da76b488c01406c";
-    };
-    deps = {
-      "find-root-0.1.2" = self.by-version."find-root"."0.1.2";
-      "through2-0.6.3" = self.by-version."through2"."0.6.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-zlib"."^0.1.4" =
-    self.by-version."browserify-zlib"."0.1.4";
-  by-version."browserify-zlib"."0.1.4" = self.buildNodePackage {
-    name = "browserify-zlib-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz";
-      name = "browserify-zlib-0.1.4.tgz";
-      sha1 = "bb35f8a519f600e0fa6b8485241c979d0141fb2d";
-    };
-    deps = {
-      "pako-0.2.8" = self.by-version."pako"."0.2.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."browserify-zlib"."~0.1.2" =
-    self.by-version."browserify-zlib"."0.1.4";
-  by-spec."browserify-zlib"."~0.1.4" =
-    self.by-version."browserify-zlib"."0.1.4";
-  by-spec."bs58"."^2.0.0" =
-    self.by-version."bs58"."2.0.1";
-  by-version."bs58"."2.0.1" = self.buildNodePackage {
-    name = "bs58-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz";
-      name = "bs58-2.0.1.tgz";
-      sha1 = "55908d58f1982aba2008fa1bed8f91998a29bf8d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bs58check"."1.0.3" =
-    self.by-version."bs58check"."1.0.3";
-  by-version."bs58check"."1.0.3" = self.buildNodePackage {
-    name = "bs58check-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bs58check/-/bs58check-1.0.3.tgz";
-      name = "bs58check-1.0.3.tgz";
-      sha1 = "3e4dc6dde96e60b9db321ea7372fd4fd0523559e";
-    };
-    deps = {
-      "bs58-2.0.1" = self.by-version."bs58"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bson"."0.1.8" =
-    self.by-version."bson"."0.1.8";
-  by-version."bson"."0.1.8" = self.buildNodePackage {
-    name = "bson-0.1.8";
-    version = "0.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bson/-/bson-0.1.8.tgz";
-      name = "bson-0.1.8.tgz";
-      sha1 = "cf34fdcff081a189b589b4b3e5e9309cd6506c81";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bson"."0.2.2" =
-    self.by-version."bson"."0.2.2";
-  by-version."bson"."0.2.2" = self.buildNodePackage {
-    name = "bson-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bson/-/bson-0.2.2.tgz";
-      name = "bson-0.2.2.tgz";
-      sha1 = "3dbf984acb9d33a6878b46e6fb7afbd611856a60";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bson"."~0.4.18" =
-    self.by-version."bson"."0.4.23";
-  by-version."bson"."0.4.23" = self.buildNodePackage {
-    name = "bson-0.4.23";
-    version = "0.4.23";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bson/-/bson-0.4.23.tgz";
-      name = "bson-0.4.23.tgz";
-      sha1 = "e65a2e3c7507ffade4109bc7575a76e50f8da915";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bson"."~0.4.19" =
-    self.by-version."bson"."0.4.23";
-  by-spec."bson"."~0.4.20" =
-    self.by-version."bson"."0.4.23";
-  by-spec."bson"."~0.4.23" =
-    self.by-version."bson"."0.4.23";
-  by-spec."buffer"."^3.0.0" =
-    self.by-version."buffer"."3.6.0";
-  by-version."buffer"."3.6.0" = self.buildNodePackage {
-    name = "buffer-3.6.0";
-    version = "3.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz";
-      name = "buffer-3.6.0.tgz";
-      sha1 = "a72c936f77b96bf52f5f7e7b467180628551defb";
-    };
-    deps = {
-      "base64-js-0.0.8" = self.by-version."base64-js"."0.0.8";
-      "ieee754-1.1.6" = self.by-version."ieee754"."1.1.6";
-      "isarray-1.0.0" = self.by-version."isarray"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer"."^4.1.0" =
-    self.by-version."buffer"."4.6.0";
-  by-version."buffer"."4.6.0" = self.buildNodePackage {
-    name = "buffer-4.6.0";
-    version = "4.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer/-/buffer-4.6.0.tgz";
-      name = "buffer-4.6.0.tgz";
-      sha1 = "fe50a7de503ebaad1b568d05967207be4024c348";
-    };
-    deps = {
-      "base64-js-1.1.2" = self.by-version."base64-js"."1.1.2";
-      "ieee754-1.1.6" = self.by-version."ieee754"."1.1.6";
-      "isarray-1.0.0" = self.by-version."isarray"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer"."^4.3.0" =
-    self.by-version."buffer"."4.6.0";
-  by-spec."buffer-crc32"."0.1.1" =
-    self.by-version."buffer-crc32"."0.1.1";
-  by-version."buffer-crc32"."0.1.1" = self.buildNodePackage {
-    name = "buffer-crc32-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.1.1.tgz";
-      name = "buffer-crc32-0.1.1.tgz";
-      sha1 = "7e110dc9953908ab7c32acdc70c9f945b1cbc526";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-crc32"."0.2.1" =
-    self.by-version."buffer-crc32"."0.2.1";
-  by-version."buffer-crc32"."0.2.1" = self.buildNodePackage {
-    name = "buffer-crc32-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz";
-      name = "buffer-crc32-0.2.1.tgz";
-      sha1 = "be3e5382fc02b6d6324956ac1af98aa98b08534c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-crc32"."0.2.3" =
-    self.by-version."buffer-crc32"."0.2.3";
-  by-version."buffer-crc32"."0.2.3" = self.buildNodePackage {
-    name = "buffer-crc32-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz";
-      name = "buffer-crc32-0.2.3.tgz";
-      sha1 = "bb54519e95d107cbd2400e76d0cab1467336d921";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-crc32"."~0.2.1" =
-    self.by-version."buffer-crc32"."0.2.5";
-  by-version."buffer-crc32"."0.2.5" = self.buildNodePackage {
-    name = "buffer-crc32-0.2.5";
-    version = "0.2.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.5.tgz";
-      name = "buffer-crc32-0.2.5.tgz";
-      sha1 = "db003ac2671e62ebd6ece78ea2c2e1b405736e91";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-equal"."0.0.1" =
-    self.by-version."buffer-equal"."0.0.1";
-  by-version."buffer-equal"."0.0.1" = self.buildNodePackage {
-    name = "buffer-equal-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz";
-      name = "buffer-equal-0.0.1.tgz";
-      sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-equal-constant-time"."^1.0.1" =
-    self.by-version."buffer-equal-constant-time"."1.0.1";
-  by-version."buffer-equal-constant-time"."1.0.1" = self.buildNodePackage {
-    name = "buffer-equal-constant-time-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz";
-      name = "buffer-equal-constant-time-1.0.1.tgz";
-      sha1 = "f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-equals"."^1.0.3" =
-    self.by-version."buffer-equals"."1.0.3";
-  by-version."buffer-equals"."1.0.3" = self.buildNodePackage {
-    name = "buffer-equals-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.3.tgz";
-      name = "buffer-equals-1.0.3.tgz";
-      sha1 = "9e9b8c160a5ceaf68f12ee5a8d2f4ba91c5453e0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-indexof"."^1.0.0" =
-    self.by-version."buffer-indexof"."1.0.0";
-  by-version."buffer-indexof"."1.0.0" = self.buildNodePackage {
-    name = "buffer-indexof-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.0.0.tgz";
-      name = "buffer-indexof-1.0.0.tgz";
-      sha1 = "0f23779be8134b56251bb91f7fe4850a2e7be6ff";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-shims"."^1.0.0" =
-    self.by-version."buffer-shims"."1.0.0";
-  by-version."buffer-shims"."1.0.0" = self.buildNodePackage {
-    name = "buffer-shims-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz";
-      name = "buffer-shims-1.0.0.tgz";
-      sha1 = "9978ce317388c649ad8793028c3477ef044a8b51";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffer-xor"."^1.0.2" =
-    self.by-version."buffer-xor"."1.0.3";
-  by-version."buffer-xor"."1.0.3" = self.buildNodePackage {
-    name = "buffer-xor-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz";
-      name = "buffer-xor-1.0.3.tgz";
-      sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffercursor".">= 0.0.12" =
-    self.by-version."buffercursor"."0.0.12";
-  by-version."buffercursor"."0.0.12" = self.buildNodePackage {
-    name = "buffercursor-0.0.12";
-    version = "0.0.12";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffercursor/-/buffercursor-0.0.12.tgz";
-      name = "buffercursor-0.0.12.tgz";
-      sha1 = "78a9a7f4343ae7d820a8999acc80de591e25a779";
-    };
-    deps = {
-      "verror-1.6.1" = self.by-version."verror"."1.6.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buffertools"."*" =
-    self.by-version."buffertools"."2.1.4";
-  by-version."buffertools"."2.1.4" = self.buildNodePackage {
-    name = "buffertools-2.1.4";
-    version = "2.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buffertools/-/buffertools-2.1.4.tgz";
-      name = "buffertools-2.1.4.tgz";
-      sha1 = "62d4e1584c0090a0c7d3587f25934a84b8b38de4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "buffertools" = self.by-version."buffertools"."2.1.4";
-  by-spec."bufferutil"."1.2.x" =
-    self.by-version."bufferutil"."1.2.1";
-  by-version."bufferutil"."1.2.1" = self.buildNodePackage {
-    name = "bufferutil-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bufferutil/-/bufferutil-1.2.1.tgz";
-      name = "bufferutil-1.2.1.tgz";
-      sha1 = "37be5d36e1e06492221e68d474b1ac58e510cbd7";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bufferview"."~1" =
-    self.by-version."bufferview"."1.0.1";
-  by-version."bufferview"."1.0.1" = self.buildNodePackage {
-    name = "bufferview-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bufferview/-/bufferview-1.0.1.tgz";
-      name = "bufferview-1.0.1.tgz";
-      sha1 = "7afd74a45f937fa422a1d338c08bbfdc76cd725d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buildmail"."3.7.0" =
-    self.by-version."buildmail"."3.7.0";
-  by-version."buildmail"."3.7.0" = self.buildNodePackage {
-    name = "buildmail-3.7.0";
-    version = "3.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buildmail/-/buildmail-3.7.0.tgz";
-      name = "buildmail-3.7.0.tgz";
-      sha1 = "5f40b77c1c3c1ceb1490c1181284437de3045342";
-    };
-    deps = {
-      "addressparser-1.0.1" = self.by-version."addressparser"."1.0.1";
-      "libbase64-0.1.0" = self.by-version."libbase64"."0.1.0";
-      "libmime-2.0.3" = self.by-version."libmime"."2.0.3";
-      "libqp-1.1.0" = self.by-version."libqp"."1.1.0";
-      "nodemailer-fetch-1.4.0" = self.by-version."nodemailer-fetch"."1.4.0";
-      "nodemailer-shared-1.0.5" = self.by-version."nodemailer-shared"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."buildmail"."^2.0.0" =
-    self.by-version."buildmail"."2.0.0";
-  by-version."buildmail"."2.0.0" = self.buildNodePackage {
-    name = "buildmail-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/buildmail/-/buildmail-2.0.0.tgz";
-      name = "buildmail-2.0.0.tgz";
-      sha1 = "f0b7b0a59e9a4a1b5066bbfa051d248f3832eece";
-    };
-    deps = {
-      "addressparser-0.3.2" = self.by-version."addressparser"."0.3.2";
-      "libbase64-0.1.0" = self.by-version."libbase64"."0.1.0";
-      "libmime-1.2.0" = self.by-version."libmime"."1.2.0";
-      "libqp-1.1.0" = self.by-version."libqp"."1.1.0";
-      "needle-0.10.0" = self.by-version."needle"."0.10.0";
-    };
-    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 = "https://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."builtin-status-codes"."^2.0.0" =
-    self.by-version."builtin-status-codes"."2.0.0";
-  by-version."builtin-status-codes"."2.0.0" = self.buildNodePackage {
-    name = "builtin-status-codes-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-2.0.0.tgz";
-      name = "builtin-status-codes-2.0.0.tgz";
-      sha1 = "6f22003baacf003ccd287afe6872151fddc58579";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."builtins"."0.0.7" =
-    self.by-version."builtins"."0.0.7";
-  by-version."builtins"."0.0.7" = self.buildNodePackage {
-    name = "builtins-0.0.7";
-    version = "0.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz";
-      name = "builtins-0.0.7.tgz";
-      sha1 = "355219cd6cf18dbe7c01cc7fd2dce765cfdc549a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."builtins"."~0.0.3" =
-    self.by-version."builtins"."0.0.7";
-  by-spec."bunyan"."0.22.1" =
-    self.by-version."bunyan"."0.22.1";
-  by-version."bunyan"."0.22.1" = self.buildNodePackage {
-    name = "bunyan-0.22.1";
-    version = "0.22.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bunyan/-/bunyan-0.22.1.tgz";
-      name = "bunyan-0.22.1.tgz";
-      sha1 = "020c383bed625af5c6c8834dd8c4aca0dd0f765c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "mv-0.0.5" = self.by-version."mv"."0.0.5";
-      "dtrace-provider-0.2.8" = self.by-version."dtrace-provider"."0.2.8";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bunyan"."1.5.1" =
-    self.by-version."bunyan"."1.5.1";
-  by-version."bunyan"."1.5.1" = self.buildNodePackage {
-    name = "bunyan-1.5.1";
-    version = "1.5.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bunyan/-/bunyan-1.5.1.tgz";
-      name = "bunyan-1.5.1.tgz";
-      sha1 = "5f6e7d44c43b952f56b0f41309e3ab12391b4e2d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "dtrace-provider-0.6.0" = self.by-version."dtrace-provider"."0.6.0";
-      "mv-2.1.1" = self.by-version."mv"."2.1.1";
-      "safe-json-stringify-1.0.3" = self.by-version."safe-json-stringify"."1.0.3";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bunyan".">=0.22.1 <2.0.0-0" =
-    self.by-version."bunyan"."1.8.1";
-  by-version."bunyan"."1.8.1" = self.buildNodePackage {
-    name = "bunyan-1.8.1";
-    version = "1.8.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bunyan/-/bunyan-1.8.1.tgz";
-      name = "bunyan-1.8.1.tgz";
-      sha1 = "68c6a4a502d5620bc9f72d6736810c1b1898097f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "dtrace-provider-0.6.0" = self.by-version."dtrace-provider"."0.6.0";
-      "mv-2.1.1" = self.by-version."mv"."2.1.1";
-      "safe-json-stringify-1.0.3" = self.by-version."safe-json-stringify"."1.0.3";
-      "moment-2.13.0" = self.by-version."moment"."2.13.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bunyan"."^1.4.0" =
-    self.by-version."bunyan"."1.8.1";
-  by-spec."bunyan"."~1.0.0" =
-    self.by-version."bunyan"."1.0.1";
-  by-version."bunyan"."1.0.1" = self.buildNodePackage {
-    name = "bunyan-1.0.1";
-    version = "1.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bunyan/-/bunyan-1.0.1.tgz";
-      name = "bunyan-1.0.1.tgz";
-      sha1 = "9916a8c1832020c2d095656d923da5963db05466";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "mv-2.1.1" = self.by-version."mv"."2.1.1";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."busboy"."*" =
-    self.by-version."busboy"."0.2.13";
-  by-version."busboy"."0.2.13" = self.buildNodePackage {
-    name = "busboy-0.2.13";
-    version = "0.2.13";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/busboy/-/busboy-0.2.13.tgz";
-      name = "busboy-0.2.13.tgz";
-      sha1 = "90fc4f6a3967d815616fc976bfa8e56aed0c58b6";
-    };
-    deps = {
-      "dicer-0.2.5" = self.by-version."dicer"."0.2.5";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."busboy"."~0.2.9" =
-    self.by-version."busboy"."0.2.13";
-  by-spec."bytebuffer"."~3 >=3.5" =
-    self.by-version."bytebuffer"."3.5.5";
-  by-version."bytebuffer"."3.5.5" = self.buildNodePackage {
-    name = "bytebuffer-3.5.5";
-    version = "3.5.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytebuffer/-/bytebuffer-3.5.5.tgz";
-      name = "bytebuffer-3.5.5.tgz";
-      sha1 = "7a6faf1a13514b083f1fcf9541c4c9bfbe7e7fd3";
-    };
-    deps = {
-      "long-2.4.0" = self.by-version."long"."2.4.0";
-      "bufferview-1.0.1" = self.by-version."bufferview"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."0.1.0" =
-    self.by-version."bytes"."0.1.0";
-  by-version."bytes"."0.1.0" = self.buildNodePackage {
-    name = "bytes-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz";
-      name = "bytes-0.1.0.tgz";
-      sha1 = "c574812228126d6369d1576925a8579db3f8e5a2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."0.2.0" =
-    self.by-version."bytes"."0.2.0";
-  by-version."bytes"."0.2.0" = self.buildNodePackage {
-    name = "bytes-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz";
-      name = "bytes-0.2.0.tgz";
-      sha1 = "aad33ec14e3dc2ca74e8e7d451f9ba053ad4f7a0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."0.2.1" =
-    self.by-version."bytes"."0.2.1";
-  by-version."bytes"."0.2.1" = self.buildNodePackage {
-    name = "bytes-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz";
-      name = "bytes-0.2.1.tgz";
-      sha1 = "555b08abcb063f8975905302523e4cd4ffdfdf31";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."0.3.0" =
-    self.by-version."bytes"."0.3.0";
-  by-version."bytes"."0.3.0" = self.buildNodePackage {
-    name = "bytes-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytes/-/bytes-0.3.0.tgz";
-      name = "bytes-0.3.0.tgz";
-      sha1 = "78e2e0e28c7f9c7b988ea8aee0db4d5fa9941935";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."1" =
-    self.by-version."bytes"."1.0.0";
-  by-version."bytes"."1.0.0" = self.buildNodePackage {
-    name = "bytes-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz";
-      name = "bytes-1.0.0.tgz";
-      sha1 = "3569ede8ba34315fab99c3e92cb04c7220de1fa8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."1.0.0" =
-    self.by-version."bytes"."1.0.0";
-  by-spec."bytes"."2.1.0" =
-    self.by-version."bytes"."2.1.0";
-  by-version."bytes"."2.1.0" = self.buildNodePackage {
-    name = "bytes-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz";
-      name = "bytes-2.1.0.tgz";
-      sha1 = "ac93c410e2ffc9cc7cf4b464b38289067f5e47b4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."2.2.0" =
-    self.by-version."bytes"."2.2.0";
-  by-version."bytes"."2.2.0" = self.buildNodePackage {
-    name = "bytes-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz";
-      name = "bytes-2.2.0.tgz";
-      sha1 = "fd35464a403f6f9117c2de3609ecff9cae000588";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."2.3.0" =
-    self.by-version."bytes"."2.3.0";
-  by-version."bytes"."2.3.0" = self.buildNodePackage {
-    name = "bytes-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz";
-      name = "bytes-2.3.0.tgz";
-      sha1 = "d5b680a165b6201739acb611542aabc2d8ceb070";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytes"."~0.2.0" =
-    self.by-version."bytes"."0.2.1";
-  by-spec."bytes"."~0.3.0" =
-    self.by-version."bytes"."0.3.0";
-  by-spec."bytewise"."~1.1.0" =
-    self.by-version."bytewise"."1.1.0";
-  by-version."bytewise"."1.1.0" = self.buildNodePackage {
-    name = "bytewise-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz";
-      name = "bytewise-1.1.0.tgz";
-      sha1 = "1d13cbff717ae7158094aa881b35d081b387253e";
-    };
-    deps = {
-      "bytewise-core-1.2.3" = self.by-version."bytewise-core"."1.2.3";
-      "typewise-1.0.3" = self.by-version."typewise"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."bytewise-core"."^1.2.2" =
-    self.by-version."bytewise-core"."1.2.3";
-  by-version."bytewise-core"."1.2.3" = self.buildNodePackage {
-    name = "bytewise-core-1.2.3";
-    version = "1.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz";
-      name = "bytewise-core-1.2.3.tgz";
-      sha1 = "3fb410c7e91558eb1ab22a82834577aa6bd61d42";
-    };
-    deps = {
-      "typewise-core-1.2.0" = self.by-version."typewise-core"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."caller"."~0.0.1" =
-    self.by-version."caller"."0.0.1";
-  by-version."caller"."0.0.1" = self.buildNodePackage {
-    name = "caller-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/caller/-/caller-0.0.1.tgz";
-      name = "caller-0.0.1.tgz";
-      sha1 = "f37a1d6ea10e829d94721ae29a90bb4fb52ab767";
-    };
-    deps = {
-      "tape-2.3.3" = self.by-version."tape"."2.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."caller-path"."^0.1.0" =
-    self.by-version."caller-path"."0.1.0";
-  by-version."caller-path"."0.1.0" = self.buildNodePackage {
-    name = "caller-path-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz";
-      name = "caller-path-0.1.0.tgz";
-      sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
-    };
-    deps = {
-      "callsites-0.2.0" = self.by-version."callsites"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."callsite"."1.0.0" =
-    self.by-version."callsite"."1.0.0";
-  by-version."callsite"."1.0.0" = self.buildNodePackage {
-    name = "callsite-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz";
-      name = "callsite-1.0.0.tgz";
-      sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."callsites"."^0.2.0" =
-    self.by-version."callsites"."0.2.0";
-  by-version."callsites"."0.2.0" = self.buildNodePackage {
-    name = "callsites-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz";
-      name = "callsites-0.2.0.tgz";
-      sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."camelcase"."^1.0.1" =
-    self.by-version."camelcase"."1.2.1";
-  by-version."camelcase"."1.2.1" = self.buildNodePackage {
-    name = "camelcase-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
-      name = "camelcase-1.2.1.tgz";
-      sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."camelcase"."^1.0.2" =
-    self.by-version."camelcase"."1.2.1";
-  by-spec."camelcase"."^1.2.1" =
-    self.by-version."camelcase"."1.2.1";
-  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 = "https://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"."^2.0.1" =
-    self.by-version."camelcase"."2.1.1";
-  by-spec."camelcase"."^2.1.1" =
-    self.by-version."camelcase"."2.1.1";
-  by-spec."camelcase"."^3.0.0" =
-    self.by-version."camelcase"."3.0.0";
-  by-version."camelcase"."3.0.0" = self.buildNodePackage {
-    name = "camelcase-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz";
-      name = "camelcase-3.0.0.tgz";
-      sha1 = "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."camelcase-keys"."^1.0.0" =
-    self.by-version."camelcase-keys"."1.0.0";
-  by-version."camelcase-keys"."1.0.0" = self.buildNodePackage {
-    name = "camelcase-keys-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz";
-      name = "camelcase-keys-1.0.0.tgz";
-      sha1 = "bd1a11bf9b31a1ce493493a930de1a0baf4ad7ec";
-    };
-    deps = {
-      "camelcase-1.2.1" = self.by-version."camelcase"."1.2.1";
-      "map-obj-1.0.1" = self.by-version."map-obj"."1.0.1";
-    };
-    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 = "https://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 = "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz";
-      name = "caseless-0.11.0.tgz";
-      sha1 = "715b96ea9841593cc33067923f5ec60ebda4f7d7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."caseless"."~0.6.0" =
-    self.by-version."caseless"."0.6.0";
-  by-version."caseless"."0.6.0" = self.buildNodePackage {
-    name = "caseless-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz";
-      name = "caseless-0.6.0.tgz";
-      sha1 = "8167c1ab8397fb5bb95f96d28e5a81c50f247ac4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."caseless"."~0.8.0" =
-    self.by-version."caseless"."0.8.0";
-  by-version."caseless"."0.8.0" = self.buildNodePackage {
-    name = "caseless-0.8.0";
-    version = "0.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz";
-      name = "caseless-0.8.0.tgz";
-      sha1 = "5bca2881d41437f54b2407ebe34888c7b9ad4f7d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."caseless"."~0.9.0" =
-    self.by-version."caseless"."0.9.0";
-  by-version."caseless"."0.9.0" = self.buildNodePackage {
-    name = "caseless-0.9.0";
-    version = "0.9.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz";
-      name = "caseless-0.9.0.tgz";
-      sha1 = "b7b65ce6bf1413886539cfd533f0b30effa9cf88";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."castnow"."*" =
-    self.by-version."castnow"."0.4.17";
-  by-version."castnow"."0.4.17" = self.buildNodePackage {
-    name = "castnow-0.4.17";
-    version = "0.4.17";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/castnow/-/castnow-0.4.17.tgz";
-      name = "castnow-0.4.17.tgz";
-      sha1 = "7d9ce3c5605b5aa74ae5348c826443374d5863a8";
-    };
-    deps = {
-      "array-loop-1.0.0" = self.by-version."array-loop"."1.0.0";
-      "castv2-client-1.1.1" = self.by-version."castv2-client"."1.1.1";
-      "chalk-1.0.0" = self.by-version."chalk"."1.0.0";
-      "chromecast-player-0.2.3" = self.by-version."chromecast-player"."0.2.3";
-      "debounced-seeker-1.0.0" = self.by-version."debounced-seeker"."1.0.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "fs-extended-0.2.1" = self.by-version."fs-extended"."0.2.1";
-      "got-1.2.2" = self.by-version."got"."1.2.2";
-      "internal-ip-1.2.0" = self.by-version."internal-ip"."1.2.0";
-      "keypress-0.2.1" = self.by-version."keypress"."0.2.1";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "peerflix-0.34.0" = self.by-version."peerflix"."0.34.0";
-      "playerui-1.2.0" = self.by-version."playerui"."1.2.0";
-      "query-string-1.0.1" = self.by-version."query-string"."1.0.1";
-      "range-parser-1.2.0" = self.by-version."range-parser"."1.2.0";
-      "read-torrent-1.3.0" = self.by-version."read-torrent"."1.3.0";
-      "router-0.6.2" = self.by-version."router"."0.6.2";
-      "srt2vtt-1.3.1" = self.by-version."srt2vtt"."1.3.1";
-      "stream-transcoder-0.0.5" = self.by-version."stream-transcoder"."0.0.5";
-      "xml2js-0.4.16" = self.by-version."xml2js"."0.4.16";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "castnow" = self.by-version."castnow"."0.4.17";
-  by-spec."castv2"."~0.1.4" =
-    self.by-version."castv2"."0.1.6";
-  by-version."castv2"."0.1.6" = self.buildNodePackage {
-    name = "castv2-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/castv2/-/castv2-0.1.6.tgz";
-      name = "castv2-0.1.6.tgz";
-      sha1 = "4465c75684dbac6ad21c93761aa86557da9e0015";
-    };
-    deps = {
-      "debug-1.0.4" = self.by-version."debug"."1.0.4";
-      "protobufjs-3.8.2" = self.by-version."protobufjs"."3.8.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."castv2-client"."^1.1.0" =
-    self.by-version."castv2-client"."1.1.1";
-  by-version."castv2-client"."1.1.1" = self.buildNodePackage {
-    name = "castv2-client-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/castv2-client/-/castv2-client-1.1.1.tgz";
-      name = "castv2-client-1.1.1.tgz";
-      sha1 = "3014b89b830b424f72c17708beb2a1c4e7b1fc88";
-    };
-    deps = {
-      "debug-1.0.4" = self.by-version."debug"."1.0.4";
-      "castv2-0.1.6" = self.by-version."castv2"."0.1.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."center-align"."^0.1.1" =
-    self.by-version."center-align"."0.1.3";
-  by-version."center-align"."0.1.3" = self.buildNodePackage {
-    name = "center-align-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
-      name = "center-align-0.1.3.tgz";
-      sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
-    };
-    deps = {
-      "align-text-0.1.4" = self.by-version."align-text"."0.1.4";
-      "lazy-cache-1.0.4" = self.by-version."lazy-cache"."1.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chai"."*" =
-    self.by-version."chai"."3.5.0";
-  by-version."chai"."3.5.0" = self.buildNodePackage {
-    name = "chai-3.5.0";
-    version = "3.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz";
-      name = "chai-3.5.0.tgz";
-      sha1 = "4d02637b067fe958bdbfdd3a40ec56fef7373247";
-    };
-    deps = {
-      "assertion-error-1.0.2" = self.by-version."assertion-error"."1.0.2";
-      "deep-eql-0.1.3" = self.by-version."deep-eql"."0.1.3";
-      "type-detect-1.0.0" = self.by-version."type-detect"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "chai" = self.by-version."chai"."3.5.0";
-  by-spec."chain-node".">=0.0.17" =
-    self.by-version."chain-node"."3.1.2";
-  by-version."chain-node"."3.1.2" = self.buildNodePackage {
-    name = "chain-node-3.1.2";
-    version = "3.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chain-node/-/chain-node-3.1.2.tgz";
-      name = "chain-node-3.1.2.tgz";
-      sha1 = "75cb8d02e06732027eed3bebe145d92c93a6fc9b";
-    };
-    deps = {
-      "request-2.36.0" = self.by-version."request"."2.36.0";
-      "bitcoinjs-lib-1.2.0" = self.by-version."bitcoinjs-lib"."1.2.0";
-      "bigi-1.4.1" = self.by-version."bigi"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chalk"."1.0.0" =
-    self.by-version."chalk"."1.0.0";
-  by-version."chalk"."1.0.0" = self.buildNodePackage {
-    name = "chalk-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz";
-      name = "chalk-1.0.0.tgz";
-      sha1 = "b3cf4ed0ff5397c99c75b8f679db2f52831f96dc";
-    };
-    deps = {
-      "ansi-styles-2.2.1" = self.by-version."ansi-styles"."2.2.1";
-      "escape-string-regexp-1.0.5" = self.by-version."escape-string-regexp"."1.0.5";
-      "has-ansi-1.0.3" = self.by-version."has-ansi"."1.0.3";
-      "strip-ansi-2.0.1" = self.by-version."strip-ansi"."2.0.1";
-      "supports-color-1.3.1" = self.by-version."supports-color"."1.3.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chalk"."^0.5.1" =
-    self.by-version."chalk"."0.5.1";
-  by-version."chalk"."0.5.1" = self.buildNodePackage {
-    name = "chalk-0.5.1";
-    version = "0.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz";
-      name = "chalk-0.5.1.tgz";
-      sha1 = "663b3a648b68b55d04690d49167aa837858f2174";
-    };
-    deps = {
-      "ansi-styles-1.1.0" = self.by-version."ansi-styles"."1.1.0";
-      "escape-string-regexp-1.0.5" = self.by-version."escape-string-regexp"."1.0.5";
-      "has-ansi-0.1.0" = self.by-version."has-ansi"."0.1.0";
-      "strip-ansi-0.3.0" = self.by-version."strip-ansi"."0.3.0";
-      "supports-color-0.2.0" = self.by-version."supports-color"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chalk"."^1.0.0" =
-    self.by-version."chalk"."1.1.3";
-  by-version."chalk"."1.1.3" = self.buildNodePackage {
-    name = "chalk-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
-      name = "chalk-1.1.3.tgz";
-      sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
-    };
-    deps = {
-      "ansi-styles-2.2.1" = self.by-version."ansi-styles"."2.2.1";
-      "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.3";
-  by-spec."chalk"."^1.1.3" =
-    self.by-version."chalk"."1.1.3";
-  by-spec."chalk"."~1.1.1" =
-    self.by-version."chalk"."1.1.3";
-  by-spec."char-spinner"."~1.0.1" =
-    self.by-version."char-spinner"."1.0.1";
-  by-version."char-spinner"."1.0.1" = self.buildNodePackage {
-    name = "char-spinner-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz";
-      name = "char-spinner-1.0.1.tgz";
-      sha1 = "e6ea67bd247e107112983b7ab0479ed362800081";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."character-parser"."1.2.1" =
-    self.by-version."character-parser"."1.2.1";
-  by-version."character-parser"."1.2.1" = self.buildNodePackage {
-    name = "character-parser-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz";
-      name = "character-parser-1.2.1.tgz";
-      sha1 = "c0dde4ab182713b919b970959a123ecc1a30fcd6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cheerio"."0.19.0" =
-    self.by-version."cheerio"."0.19.0";
-  by-version."cheerio"."0.19.0" = self.buildNodePackage {
-    name = "cheerio-0.19.0";
-    version = "0.19.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz";
-      name = "cheerio-0.19.0.tgz";
-      sha1 = "772e7015f2ee29965096d71ea4175b75ab354925";
-    };
-    deps = {
-      "css-select-1.0.0" = self.by-version."css-select"."1.0.0";
-      "entities-1.1.1" = self.by-version."entities"."1.1.1";
-      "htmlparser2-3.8.3" = self.by-version."htmlparser2"."3.8.3";
-      "dom-serializer-0.1.0" = self.by-version."dom-serializer"."0.1.0";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cheerio"."^0.17.0" =
-    self.by-version."cheerio"."0.17.0";
-  by-version."cheerio"."0.17.0" = self.buildNodePackage {
-    name = "cheerio-0.17.0";
-    version = "0.17.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cheerio/-/cheerio-0.17.0.tgz";
-      name = "cheerio-0.17.0.tgz";
-      sha1 = "fa5ae42cc60121133d296d0b46d983215f7268ea";
-    };
-    deps = {
-      "CSSselect-0.4.1" = self.by-version."CSSselect"."0.4.1";
-      "entities-1.1.1" = self.by-version."entities"."1.1.1";
-      "htmlparser2-3.7.3" = self.by-version."htmlparser2"."3.7.3";
-      "dom-serializer-0.0.1" = self.by-version."dom-serializer"."0.0.1";
-      "lodash-2.4.2" = self.by-version."lodash"."2.4.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chmodr"."~1.0.2" =
-    self.by-version."chmodr"."1.0.2";
-  by-version."chmodr"."1.0.2" = self.buildNodePackage {
-    name = "chmodr-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chmodr/-/chmodr-1.0.2.tgz";
-      name = "chmodr-1.0.2.tgz";
-      sha1 = "04662b932d0f02ec66deaa2b0ea42811968e3eb9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chokidar"."^1.0.1" =
-    self.by-version."chokidar"."1.5.2";
-  by-version."chokidar"."1.5.2" = self.buildNodePackage {
-    name = "chokidar-1.5.2";
-    version = "1.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chokidar/-/chokidar-1.5.2.tgz";
-      name = "chokidar-1.5.2.tgz";
-      sha1 = "293e728640cc93dd8277424334b3c6d4ad3a348a";
-    };
-    deps = {
-      "anymatch-1.3.0" = self.by-version."anymatch"."1.3.0";
-      "async-each-1.0.0" = self.by-version."async-each"."1.0.0";
-      "glob-parent-2.0.0" = self.by-version."glob-parent"."2.0.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "is-binary-path-1.0.1" = self.by-version."is-binary-path"."1.0.1";
-      "is-glob-2.0.1" = self.by-version."is-glob"."2.0.1";
-      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
-      "readdirp-2.0.0" = self.by-version."readdirp"."2.0.0";
-    };
-    optionalDependencies = {
-      "fsevents-1.0.12" = self.by-version."fsevents"."1.0.12";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chokidar"."^1.4.1" =
-    self.by-version."chokidar"."1.5.2";
-  by-spec."chokidar"."^1.4.3" =
-    self.by-version."chokidar"."1.5.2";
-  by-spec."chownr"."0" =
-    self.by-version."chownr"."0.0.2";
-  by-version."chownr"."0.0.2" = self.buildNodePackage {
-    name = "chownr-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chownr/-/chownr-0.0.2.tgz";
-      name = "chownr-0.0.2.tgz";
-      sha1 = "2f9aebf746f90808ce00607b72ba73b41604c485";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chownr"."^1.0.1" =
-    self.by-version."chownr"."1.0.1";
-  by-version."chownr"."1.0.1" = self.buildNodePackage {
-    name = "chownr-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz";
-      name = "chownr-1.0.1.tgz";
-      sha1 = "e2a75042a9551908bebd25b8523d5f9769d79181";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chownr"."~1.0.1" =
-    self.by-version."chownr"."1.0.1";
-  by-spec."chromecast-player"."^0.2.3" =
-    self.by-version."chromecast-player"."0.2.3";
-  by-version."chromecast-player"."0.2.3" = self.buildNodePackage {
-    name = "chromecast-player-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chromecast-player/-/chromecast-player-0.2.3.tgz";
-      name = "chromecast-player-0.2.3.tgz";
-      sha1 = "fe9ce69911c88096d681e4242c1902ad30787216";
-    };
-    deps = {
-      "castv2-client-1.1.1" = self.by-version."castv2-client"."1.1.1";
-      "chromecast-scanner-0.5.0" = self.by-version."chromecast-scanner"."0.5.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "mutate.js-0.2.0" = self.by-version."mutate.js"."0.2.0";
-      "promiscuous-0.6.0" = self.by-version."promiscuous"."0.6.0";
-      "time-line-1.0.1" = self.by-version."time-line"."1.0.1";
-      "ware-1.3.0" = self.by-version."ware"."1.3.0";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."chromecast-scanner"."^0.5.0" =
-    self.by-version."chromecast-scanner"."0.5.0";
-  by-version."chromecast-scanner"."0.5.0" = self.buildNodePackage {
-    name = "chromecast-scanner-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/chromecast-scanner/-/chromecast-scanner-0.5.0.tgz";
-      name = "chromecast-scanner-0.5.0.tgz";
-      sha1 = "01296a3e5d130cce34974eb509cbbc7d6f78dd3d";
-    };
-    deps = {
-      "array-find-0.1.1" = self.by-version."array-find"."0.1.1";
-      "multicast-dns-4.0.1" = self.by-version."multicast-dns"."4.0.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cint"."^8.2.1" =
-    self.by-version."cint"."8.2.1";
-  by-version."cint"."8.2.1" = self.buildNodePackage {
-    name = "cint-8.2.1";
-    version = "8.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cint/-/cint-8.2.1.tgz";
-      name = "cint-8.2.1.tgz";
-      sha1 = "70386b1b48e2773d0d63166a55aff94ef4456a12";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cipher-base"."^1.0.0" =
-    self.by-version."cipher-base"."1.0.2";
-  by-version."cipher-base"."1.0.2" = self.buildNodePackage {
-    name = "cipher-base-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.2.tgz";
-      name = "cipher-base-1.0.2.tgz";
-      sha1 = "54ac1d1ebdf6a1bcd3559e6f369d72697f2cab8f";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cipher-base"."^1.0.1" =
-    self.by-version."cipher-base"."1.0.2";
-  by-spec."clap"."^1.0.9" =
-    self.by-version."clap"."1.1.1";
-  by-version."clap"."1.1.1" = self.buildNodePackage {
-    name = "clap-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/clap/-/clap-1.1.1.tgz";
-      name = "clap-1.1.1.tgz";
-      sha1 = "a8a93e0bfb7581ac199c4f001a5525a724ce696d";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."clean-css"."^3.1.9" =
-    self.by-version."clean-css"."3.4.17";
-  by-version."clean-css"."3.4.17" = self.buildNodePackage {
-    name = "clean-css-3.4.17";
-    version = "3.4.17";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/clean-css/-/clean-css-3.4.17.tgz";
-      name = "clean-css-3.4.17.tgz";
-      sha1 = "199c3926b224761b9fc890d2354c9ce0db678669";
-    };
-    deps = {
-      "commander-2.8.1" = self.by-version."commander"."2.8.1";
-      "source-map-0.4.4" = self.by-version."source-map"."0.4.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."clean-css"."~3.4.2" =
-    self.by-version."clean-css"."3.4.17";
-  by-spec."cli"."0.6.x" =
-    self.by-version."cli"."0.6.6";
-  by-version."cli"."0.6.6" = self.buildNodePackage {
-    name = "cli-0.6.6";
-    version = "0.6.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz";
-      name = "cli-0.6.6.tgz";
-      sha1 = "02ad44a380abf27adac5e6f0cdd7b043d74c53e3";
-    };
-    deps = {
-      "glob-3.2.11" = self.by-version."glob"."3.2.11";
-      "exit-0.1.2" = self.by-version."exit"."0.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cli-cursor"."^1.0.1" =
-    self.by-version."cli-cursor"."1.0.2";
-  by-version."cli-cursor"."1.0.2" = self.buildNodePackage {
-    name = "cli-cursor-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz";
-      name = "cli-cursor-1.0.2.tgz";
-      sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
-    };
-    deps = {
-      "restore-cursor-1.0.1" = self.by-version."restore-cursor"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cli-table"."^0.3.1" =
-    self.by-version."cli-table"."0.3.1";
-  by-version."cli-table"."0.3.1" = self.buildNodePackage {
-    name = "cli-table-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz";
-      name = "cli-table-0.3.1.tgz";
-      sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
-    };
-    deps = {
-      "colors-1.0.3" = self.by-version."colors"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cli-width"."^1.0.1" =
-    self.by-version."cli-width"."1.1.1";
-  by-version."cli-width"."1.1.1" = self.buildNodePackage {
-    name = "cli-width-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz";
-      name = "cli-width-1.1.1.tgz";
-      sha1 = "a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cli-width"."^2.0.0" =
-    self.by-version."cli-width"."2.1.0";
-  by-version."cli-width"."2.1.0" = self.buildNodePackage {
-    name = "cli-width-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz";
-      name = "cli-width-2.1.0.tgz";
-      sha1 = "b234ca209b29ef66fc518d9b98d5847b00edf00a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cliff"."0.1.8" =
-    self.by-version."cliff"."0.1.8";
-  by-version."cliff"."0.1.8" = self.buildNodePackage {
-    name = "cliff-0.1.8";
-    version = "0.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cliff/-/cliff-0.1.8.tgz";
-      name = "cliff-0.1.8.tgz";
-      sha1 = "43ca8ad9fe3943489693ab62dce0cae22509d272";
-    };
-    deps = {
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "winston-0.6.2" = self.by-version."winston"."0.6.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cliff"."0.1.9" =
-    self.by-version."cliff"."0.1.9";
-  by-version."cliff"."0.1.9" = self.buildNodePackage {
-    name = "cliff-0.1.9";
-    version = "0.1.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz";
-      name = "cliff-0.1.9.tgz";
-      sha1 = "a211e09c6a3de3ba1af27d049d301250d18812bc";
-    };
-    deps = {
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "winston-0.8.3" = self.by-version."winston"."0.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cliff"."~0.1.9" =
-    self.by-version."cliff"."0.1.10";
-  by-version."cliff"."0.1.10" = self.buildNodePackage {
-    name = "cliff-0.1.10";
-    version = "0.1.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz";
-      name = "cliff-0.1.10.tgz";
-      sha1 = "53be33ea9f59bec85609ee300ac4207603e52013";
-    };
-    deps = {
-      "colors-1.0.3" = self.by-version."colors"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "winston-0.8.3" = self.by-version."winston"."0.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cliui"."^2.1.0" =
-    self.by-version."cliui"."2.1.0";
-  by-version."cliui"."2.1.0" = self.buildNodePackage {
-    name = "cliui-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
-      name = "cliui-2.1.0.tgz";
-      sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
-    };
-    deps = {
-      "center-align-0.1.3" = self.by-version."center-align"."0.1.3";
-      "right-align-0.1.3" = self.by-version."right-align"."0.1.3";
-      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cliui"."^3.0.3" =
-    self.by-version."cliui"."3.2.0";
-  by-version."cliui"."3.2.0" = self.buildNodePackage {
-    name = "cliui-3.2.0";
-    version = "3.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz";
-      name = "cliui-3.2.0.tgz";
-      sha1 = "120601537a916d29940f934da3b48d585a39213d";
-    };
-    deps = {
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "wrap-ansi-2.0.0" = self.by-version."wrap-ansi"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cliui"."^3.2.0" =
-    self.by-version."cliui"."3.2.0";
-  by-spec."clivas"."^0.1.4" =
-    self.by-version."clivas"."0.1.4";
-  by-version."clivas"."0.1.4" = self.buildNodePackage {
-    name = "clivas-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/clivas/-/clivas-0.1.4.tgz";
-      name = "clivas-0.1.4.tgz";
-      sha1 = "e1c1e481d1273d57f1752132b0e4410a0d88235a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."clone"."0.1.5" =
-    self.by-version."clone"."0.1.5";
-  by-version."clone"."0.1.5" = self.buildNodePackage {
-    name = "clone-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/clone/-/clone-0.1.5.tgz";
-      name = "clone-0.1.5.tgz";
-      sha1 = "46f29143d0766d663dbd7f80b7520a15783d2042";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."clone"."0.1.6" =
-    self.by-version."clone"."0.1.6";
-  by-version."clone"."0.1.6" = self.buildNodePackage {
-    name = "clone-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/clone/-/clone-0.1.6.tgz";
-      name = "clone-0.1.6.tgz";
-      sha1 = "4af2296d4a23a64168c2f5fb0a2aa65e80517000";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."clone"."1.0.2" =
-    self.by-version."clone"."1.0.2";
-  by-version."clone"."1.0.2" = self.buildNodePackage {
-    name = "clone-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz";
-      name = "clone-1.0.2.tgz";
-      sha1 = "260b7a99ebb1edfe247538175f783243cb19d149";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."clone".">=0.1.0" =
-    self.by-version."clone"."1.0.2";
-  by-spec."clone"."^0.2.0" =
-    self.by-version."clone"."0.2.0";
-  by-version."clone"."0.2.0" = self.buildNodePackage {
-    name = "clone-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz";
-      name = "clone-0.2.0.tgz";
-      sha1 = "c6126a90ad4f72dbf5acdb243cc37724fe93fc1f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."clone"."^1.0.0" =
-    self.by-version."clone"."1.0.2";
-  by-spec."clone"."^1.0.2" =
-    self.by-version."clone"."1.0.2";
-  by-spec."clone"."~1.0.2" =
-    self.by-version."clone"."1.0.2";
-  by-spec."clone-stats"."^0.0.1" =
-    self.by-version."clone-stats"."0.0.1";
-  by-version."clone-stats"."0.0.1" = self.buildNodePackage {
-    name = "clone-stats-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz";
-      name = "clone-stats-0.0.1.tgz";
-      sha1 = "b88f94a82cf38b8791d58046ea4029ad88ca99d1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cmd-shim"."~2.0.2" =
-    self.by-version."cmd-shim"."2.0.2";
-  by-version."cmd-shim"."2.0.2" = self.buildNodePackage {
-    name = "cmd-shim-2.0.2";
-    version = "2.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz";
-      name = "cmd-shim-2.0.2.tgz";
-      sha1 = "6fcbda99483a8fd15d7d30a196ca69d688a2efdb";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cmdln"."3.2.1" =
-    self.by-version."cmdln"."3.2.1";
-  by-version."cmdln"."3.2.1" = self.buildNodePackage {
-    name = "cmdln-3.2.1";
-    version = "3.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cmdln/-/cmdln-3.2.1.tgz";
-      name = "cmdln-3.2.1.tgz";
-      sha1 = "8d21967625b25ee35fca8e8453ccf10fccd04e45";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-      "extsprintf-1.3.0" = self.by-version."extsprintf"."1.3.0";
-      "verror-1.6.1" = self.by-version."verror"."1.6.1";
-      "dashdash-1.14.0" = self.by-version."dashdash"."1.14.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."co"."3.1.0" =
-    self.by-version."co"."3.1.0";
-  by-version."co"."3.1.0" = self.buildNodePackage {
-    name = "co-3.1.0";
-    version = "3.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/co/-/co-3.1.0.tgz";
-      name = "co-3.1.0.tgz";
-      sha1 = "4ea54ea5a08938153185e15210c68d9092bc1b78";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."co"."~3.0.6" =
-    self.by-version."co"."3.0.6";
-  by-version."co"."3.0.6" = self.buildNodePackage {
-    name = "co-3.0.6";
-    version = "3.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/co/-/co-3.0.6.tgz";
-      name = "co-3.0.6.tgz";
-      sha1 = "1445f226c5eb956138e68c9ac30167ea7d2e6bda";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."coa"."~1.0.1" =
-    self.by-version."coa"."1.0.1";
-  by-version."coa"."1.0.1" = self.buildNodePackage {
-    name = "coa-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz";
-      name = "coa-1.0.1.tgz";
-      sha1 = "7f959346cfc8719e3f7233cd6852854a7c67d8a3";
-    };
-    deps = {
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."code-point-at"."^1.0.0" =
-    self.by-version."code-point-at"."1.0.0";
-  by-version."code-point-at"."1.0.0" = self.buildNodePackage {
-    name = "code-point-at-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.0.tgz";
-      name = "code-point-at-1.0.0.tgz";
-      sha1 = "f69b192d3f7d91e382e4b71bddb77878619ab0c6";
-    };
-    deps = {
-      "number-is-nan-1.0.0" = self.by-version."number-is-nan"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."codepage"."~1.4.0" =
-    self.by-version."codepage"."1.4.0";
-  by-version."codepage"."1.4.0" = self.buildNodePackage {
-    name = "codepage-1.4.0";
-    version = "1.4.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/codepage/-/codepage-1.4.0.tgz";
-      name = "codepage-1.4.0.tgz";
-      sha1 = "ffd5b603ae6a8ebb63559d5fb89a57d12b943837";
-    };
-    deps = {
-      "voc-0.5.0" = self.by-version."voc"."0.5.0";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "exit-on-epipe-0.0.1" = self.by-version."exit-on-epipe"."0.0.1";
-      "commander-2.9.0" = self.by-version."commander"."2.9.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."coffee-script"."*" =
-    self.by-version."coffee-script"."1.10.0";
-  by-version."coffee-script"."1.10.0" = self.buildNodePackage {
-    name = "coffee-script-1.10.0";
-    version = "1.10.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz";
-      name = "coffee-script-1.10.0.tgz";
-      sha1 = "12938bcf9be1948fa006f92e0c4c9e81705108c0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "coffee-script" = self.by-version."coffee-script"."1.10.0";
-  by-spec."coffee-script"."1.6.3" =
-    self.by-version."coffee-script"."1.6.3";
-  by-version."coffee-script"."1.6.3" = self.buildNodePackage {
-    name = "coffee-script-1.6.3";
-    version = "1.6.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz";
-      name = "coffee-script-1.6.3.tgz";
-      sha1 = "6355d32cf1b04cdff6b484e5e711782b2f0c39be";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."coffee-script".">= 0.0.1" =
-    self.by-version."coffee-script"."1.10.0";
-  by-spec."coffee-script".">=1.2.0" =
-    self.by-version."coffee-script"."1.10.0";
-  by-spec."coffee-script".">=1.6.2 <2.0.0" =
-    self.by-version."coffee-script"."1.10.0";
-  by-spec."coffee-script"."^1.9.2" =
-    self.by-version."coffee-script"."1.10.0";
-  by-spec."coffee-script"."~1.10.0" =
-    self.by-version."coffee-script"."1.10.0";
-  by-spec."coffee-script"."~1.3.3" =
-    self.by-version."coffee-script"."1.3.3";
-  by-version."coffee-script"."1.3.3" = self.buildNodePackage {
-    name = "coffee-script-1.3.3";
-    version = "1.3.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz";
-      name = "coffee-script-1.3.3.tgz";
-      sha1 = "150d6b4cb522894369efed6a2101c20bc7f4a4f4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."color"."~0.11.1" =
-    self.by-version."color"."0.11.1";
-  by-version."color"."0.11.1" = self.buildNodePackage {
-    name = "color-0.11.1";
-    version = "0.11.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/color/-/color-0.11.1.tgz";
-      name = "color-0.11.1.tgz";
-      sha1 = "19e357ce1872e191e8a91702b4ee1b0ed844187a";
-    };
-    deps = {
-      "color-convert-0.5.3" = self.by-version."color-convert"."0.5.3";
-      "color-string-0.3.0" = self.by-version."color-string"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."color-convert"."^0.5.3" =
-    self.by-version."color-convert"."0.5.3";
-  by-version."color-convert"."0.5.3" = self.buildNodePackage {
-    name = "color-convert-0.5.3";
-    version = "0.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz";
-      name = "color-convert-0.5.3.tgz";
-      sha1 = "bdb6c69ce660fadffe0b0007cc447e1b9f7282bd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."color-name"."^1.0.0" =
-    self.by-version."color-name"."1.1.1";
-  by-version."color-name"."1.1.1" = self.buildNodePackage {
-    name = "color-name-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz";
-      name = "color-name-1.1.1.tgz";
-      sha1 = "4b1415304cf50028ea81643643bd82ea05803689";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."color-string"."^0.3.0" =
-    self.by-version."color-string"."0.3.0";
-  by-version."color-string"."0.3.0" = self.buildNodePackage {
-    name = "color-string-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz";
-      name = "color-string-0.3.0.tgz";
-      sha1 = "27d46fb67025c5c2fa25993bfbf579e47841b991";
-    };
-    deps = {
-      "color-name-1.1.1" = self.by-version."color-name"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."colors"."0.5.x" =
-    self.by-version."colors"."0.5.1";
-  by-version."colors"."0.5.1" = self.buildNodePackage {
-    name = "colors-0.5.1";
-    version = "0.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz";
-      name = "colors-0.5.1.tgz";
-      sha1 = "7d0023eaeb154e8ee9fce75dcb923d0ed1667774";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."colors"."0.6.x" =
-    self.by-version."colors"."0.6.2";
-  by-version."colors"."0.6.2" = self.buildNodePackage {
-    name = "colors-0.6.2";
-    version = "0.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz";
-      name = "colors-0.6.2.tgz";
-      sha1 = "2423fe6678ac0c5dae8852e5d0e5be08c997abcc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."colors"."0.x.x" =
-    self.by-version."colors"."0.6.2";
-  by-spec."colors"."1.0.3" =
-    self.by-version."colors"."1.0.3";
-  by-version."colors"."1.0.3" = self.buildNodePackage {
-    name = "colors-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz";
-      name = "colors-1.0.3.tgz";
-      sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."colors"."1.0.x" =
-    self.by-version."colors"."1.0.3";
-  by-spec."colors"."1.1.2" =
-    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 = "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz";
-      name = "colors-1.1.2.tgz";
-      sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."colors"."^1.0.3" =
-    self.by-version."colors"."1.1.2";
-  by-spec."colors"."^1.1.0" =
-    self.by-version."colors"."1.1.2";
-  by-spec."colors"."^1.1.2" =
-    self.by-version."colors"."1.1.2";
-  by-spec."colors"."~0.6.2" =
-    self.by-version."colors"."0.6.2";
-  by-spec."colors"."~1.0.3" =
-    self.by-version."colors"."1.0.3";
-  by-spec."colors"."~1.1.2" =
-    self.by-version."colors"."1.1.2";
-  by-spec."colour"."*" =
-    self.by-version."colour"."0.7.1";
-  by-version."colour"."0.7.1" = self.buildNodePackage {
-    name = "colour-0.7.1";
-    version = "0.7.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz";
-      name = "colour-0.7.1.tgz";
-      sha1 = "9cb169917ec5d12c0736d3e8685746df1cadf778";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."columnify"."~1.5.4" =
-    self.by-version."columnify"."1.5.4";
-  by-version."columnify"."1.5.4" = self.buildNodePackage {
-    name = "columnify-1.5.4";
-    version = "1.5.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz";
-      name = "columnify-1.5.4.tgz";
-      sha1 = "4737ddf1c7b69a8a7c340570782e947eec8e78bb";
-    };
-    deps = {
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "wcwidth-1.0.1" = self.by-version."wcwidth"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."combine-source-map"."~0.3.0" =
-    self.by-version."combine-source-map"."0.3.0";
-  by-version."combine-source-map"."0.3.0" = self.buildNodePackage {
-    name = "combine-source-map-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.3.0.tgz";
-      name = "combine-source-map-0.3.0.tgz";
-      sha1 = "d9e74f593d9cd43807312cb5d846d451efaa9eb7";
-    };
-    deps = {
-      "inline-source-map-0.3.1" = self.by-version."inline-source-map"."0.3.1";
-      "convert-source-map-0.3.5" = self.by-version."convert-source-map"."0.3.5";
-      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."combine-source-map"."~0.6.1" =
-    self.by-version."combine-source-map"."0.6.1";
-  by-version."combine-source-map"."0.6.1" = self.buildNodePackage {
-    name = "combine-source-map-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.6.1.tgz";
-      name = "combine-source-map-0.6.1.tgz";
-      sha1 = "9b4a09c316033d768e0f11e029fa2730e079ad96";
-    };
-    deps = {
-      "convert-source-map-1.1.3" = self.by-version."convert-source-map"."1.1.3";
-      "inline-source-map-0.5.0" = self.by-version."inline-source-map"."0.5.0";
-      "lodash.memoize-3.0.4" = self.by-version."lodash.memoize"."3.0.4";
-      "source-map-0.4.4" = self.by-version."source-map"."0.4.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."combine-source-map"."~0.7.1" =
-    self.by-version."combine-source-map"."0.7.2";
-  by-version."combine-source-map"."0.7.2" = self.buildNodePackage {
-    name = "combine-source-map-0.7.2";
-    version = "0.7.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz";
-      name = "combine-source-map-0.7.2.tgz";
-      sha1 = "0870312856b307a87cc4ac486f3a9a62aeccc09e";
-    };
-    deps = {
-      "convert-source-map-1.1.3" = self.by-version."convert-source-map"."1.1.3";
-      "inline-source-map-0.6.2" = self.by-version."inline-source-map"."0.6.2";
-      "lodash.memoize-3.0.4" = self.by-version."lodash.memoize"."3.0.4";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-    };
-    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 = "https://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"."~0.0.4" =
-    self.by-version."combined-stream"."0.0.7";
-  by-version."combined-stream"."0.0.7" = self.buildNodePackage {
-    name = "combined-stream-0.0.7";
-    version = "0.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz";
-      name = "combined-stream-0.0.7.tgz";
-      sha1 = "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f";
-    };
-    deps = {
-      "delayed-stream-0.0.5" = self.by-version."delayed-stream"."0.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."combined-stream"."~0.0.5" =
-    self.by-version."combined-stream"."0.0.7";
-  by-spec."combined-stream"."~1.0.1" =
-    self.by-version."combined-stream"."1.0.5";
-  by-spec."combined-stream"."~1.0.5" =
-    self.by-version."combined-stream"."1.0.5";
-  by-spec."commander"."*" =
-    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 = "https://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-spec."commander"."0.6.1" =
-    self.by-version."commander"."0.6.1";
-  by-version."commander"."0.6.1" = self.buildNodePackage {
-    name = "commander-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz";
-      name = "commander-0.6.1.tgz";
-      sha1 = "fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commander"."1.3.2" =
-    self.by-version."commander"."1.3.2";
-  by-version."commander"."1.3.2" = self.buildNodePackage {
-    name = "commander-1.3.2";
-    version = "1.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz";
-      name = "commander-1.3.2.tgz";
-      sha1 = "8a8f30ec670a6fdd64af52f1914b907d79ead5b5";
-    };
-    deps = {
-      "keypress-0.1.0" = self.by-version."keypress"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commander"."2.0.0" =
-    self.by-version."commander"."2.0.0";
-  by-version."commander"."2.0.0" = self.buildNodePackage {
-    name = "commander-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz";
-      name = "commander-2.0.0.tgz";
-      sha1 = "d1b86f901f8b64bd941bdeadaf924530393be928";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commander"."2.3.0" =
-    self.by-version."commander"."2.3.0";
-  by-version."commander"."2.3.0" = self.buildNodePackage {
-    name = "commander-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz";
-      name = "commander-2.3.0.tgz";
-      sha1 = "fd430e889832ec353b9acd1de217c11cb3eef873";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commander"."2.6.0" =
-    self.by-version."commander"."2.6.0";
-  by-version."commander"."2.6.0" = self.buildNodePackage {
-    name = "commander-2.6.0";
-    version = "2.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz";
-      name = "commander-2.6.0.tgz";
-      sha1 = "9df7e52fb2a0cb0fb89058ee80c3104225f37e1d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commander"."2.8.x" =
-    self.by-version."commander"."2.8.1";
-  by-version."commander"."2.8.1" = self.buildNodePackage {
-    name = "commander-2.8.1";
-    version = "2.8.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz";
-      name = "commander-2.8.1.tgz";
-      sha1 = "06be367febfda0c330aa1e2a072d3dc9762425d4";
-    };
-    deps = {
-      "graceful-readlink-1.0.1" = self.by-version."graceful-readlink"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commander".">=2.0.0" =
-    self.by-version."commander"."2.9.0";
-  by-spec."commander".">=2.3.0 <3.0.0-0" =
-    self.by-version."commander"."2.9.0";
-  by-spec."commander"."^2.5.0" =
-    self.by-version."commander"."2.9.0";
-  by-spec."commander"."^2.8.1" =
-    self.by-version."commander"."2.9.0";
-  by-spec."commander"."^2.9.0" =
-    self.by-version."commander"."2.9.0";
-  by-spec."commander"."~0.6.1" =
-    self.by-version."commander"."0.6.1";
-  by-spec."commander"."~2.0.0" =
-    self.by-version."commander"."2.0.0";
-  by-spec."commander"."~2.1.0" =
-    self.by-version."commander"."2.1.0";
-  by-version."commander"."2.1.0" = self.buildNodePackage {
-    name = "commander-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz";
-      name = "commander-2.1.0.tgz";
-      sha1 = "d121bbae860d9992a3d517ba96f56588e47c6781";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commander"."~2.6.0" =
-    self.by-version."commander"."2.6.0";
-  by-spec."commander"."~2.9.0" =
-    self.by-version."commander"."2.9.0";
-  by-spec."commist"."^1.0.0" =
-    self.by-version."commist"."1.0.0";
-  by-version."commist"."1.0.0" = self.buildNodePackage {
-    name = "commist-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commist/-/commist-1.0.0.tgz";
-      name = "commist-1.0.0.tgz";
-      sha1 = "c0c352501cf6f52e9124e3ef89c9806e2022ebef";
-    };
-    deps = {
-      "leven-1.0.2" = self.by-version."leven"."1.0.2";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commondir"."0.0.1" =
-    self.by-version."commondir"."0.0.1";
-  by-version."commondir"."0.0.1" = self.buildNodePackage {
-    name = "commondir-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commondir/-/commondir-0.0.1.tgz";
-      name = "commondir-0.0.1.tgz";
-      sha1 = "89f00fdcd51b519c578733fec563e6a6da7f5be2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commoner"."^0.10.0" =
-    self.by-version."commoner"."0.10.4";
-  by-version."commoner"."0.10.4" = self.buildNodePackage {
-    name = "commoner-0.10.4";
-    version = "0.10.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/commoner/-/commoner-0.10.4.tgz";
-      name = "commoner-0.10.4.tgz";
-      sha1 = "98f3333dd3ad399596bb2d384a783bb7213d68f8";
-    };
-    deps = {
-      "commander-2.9.0" = self.by-version."commander"."2.9.0";
-      "detective-4.3.1" = self.by-version."detective"."4.3.1";
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "private-0.1.6" = self.by-version."private"."0.1.6";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-      "recast-0.10.43" = self.by-version."recast"."0.10.43";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."commoner"."^0.10.1" =
-    self.by-version."commoner"."0.10.4";
-  by-spec."commoner"."~0.10.3" =
-    self.by-version."commoner"."0.10.4";
-  by-spec."compact2string"."^1.2.0" =
-    self.by-version."compact2string"."1.4.0";
-  by-version."compact2string"."1.4.0" = self.buildNodePackage {
-    name = "compact2string-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/compact2string/-/compact2string-1.4.0.tgz";
-      name = "compact2string-1.4.0.tgz";
-      sha1 = "a99cd96ea000525684b269683ae2222d6eea7b49";
-    };
-    deps = {
-      "ipaddr.js-1.1.1" = self.by-version."ipaddr.js"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."component-bind"."1.0.0" =
-    self.by-version."component-bind"."1.0.0";
-  by-version."component-bind"."1.0.0" = self.buildNodePackage {
-    name = "component-bind-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz";
-      name = "component-bind-1.0.0.tgz";
-      sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."component-emitter"."1.1.2" =
-    self.by-version."component-emitter"."1.1.2";
-  by-version."component-emitter"."1.1.2" = self.buildNodePackage {
-    name = "component-emitter-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz";
-      name = "component-emitter-1.1.2.tgz";
-      sha1 = "296594f2753daa63996d2af08d15a95116c9aec3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."component-emitter"."1.2.0" =
-    self.by-version."component-emitter"."1.2.0";
-  by-version."component-emitter"."1.2.0" = self.buildNodePackage {
-    name = "component-emitter-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz";
-      name = "component-emitter-1.2.0.tgz";
-      sha1 = "ccd113a86388d06482d03de3fc7df98526ba8efe";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."component-emitter"."^1.1.3" =
-    self.by-version."component-emitter"."1.2.1";
-  by-version."component-emitter"."1.2.1" = self.buildNodePackage {
-    name = "component-emitter-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz";
-      name = "component-emitter-1.2.1.tgz";
-      sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."component-emitter"."~1.2.0" =
-    self.by-version."component-emitter"."1.2.1";
-  by-spec."component-inherit"."0.0.3" =
-    self.by-version."component-inherit"."0.0.3";
-  by-version."component-inherit"."0.0.3" = self.buildNodePackage {
-    name = "component-inherit-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz";
-      name = "component-inherit-0.0.3.tgz";
-      sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."compress-commons"."~0.2.0" =
-    self.by-version."compress-commons"."0.2.9";
-  by-version."compress-commons"."0.2.9" = self.buildNodePackage {
-    name = "compress-commons-0.2.9";
-    version = "0.2.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/compress-commons/-/compress-commons-0.2.9.tgz";
-      name = "compress-commons-0.2.9.tgz";
-      sha1 = "422d927430c01abd06cd455b6dfc04cb4cf8003c";
-    };
-    deps = {
-      "buffer-crc32-0.2.5" = self.by-version."buffer-crc32"."0.2.5";
-      "crc32-stream-0.3.4" = self.by-version."crc32-stream"."0.3.4";
-      "node-int64-0.3.3" = self.by-version."node-int64"."0.3.3";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."compressible"."1.0.0" =
-    self.by-version."compressible"."1.0.0";
-  by-version."compressible"."1.0.0" = self.buildNodePackage {
-    name = "compressible-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/compressible/-/compressible-1.0.0.tgz";
-      name = "compressible-1.0.0.tgz";
-      sha1 = "f83e49c1cb61421753545125a8011d68b492427d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."compressible"."~2.0.5" =
-    self.by-version."compressible"."2.0.8";
-  by-version."compressible"."2.0.8" = self.buildNodePackage {
-    name = "compressible-2.0.8";
-    version = "2.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/compressible/-/compressible-2.0.8.tgz";
-      name = "compressible-2.0.8.tgz";
-      sha1 = "7162e6c46d3b9d200ffb45cb4e4a0f7832732503";
-    };
-    deps = {
-      "mime-db-1.23.0" = self.by-version."mime-db"."1.23.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."compressible"."~2.0.8" =
-    self.by-version."compressible"."2.0.8";
-  by-spec."compression"."1.0.0" =
-    self.by-version."compression"."1.0.0";
-  by-version."compression"."1.0.0" = self.buildNodePackage {
-    name = "compression-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/compression/-/compression-1.0.0.tgz";
-      name = "compression-1.0.0.tgz";
-      sha1 = "8aeb85d48db5145d38bc8b181b6352d8eab26020";
-    };
-    deps = {
-      "bytes-0.2.1" = self.by-version."bytes"."0.2.1";
-      "negotiator-0.3.0" = self.by-version."negotiator"."0.3.0";
-      "compressible-1.0.0" = self.by-version."compressible"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."compression".">=1.2.0 <2.0.0-0" =
-    self.by-version."compression"."1.6.2";
-  by-version."compression"."1.6.2" = self.buildNodePackage {
-    name = "compression-1.6.2";
-    version = "1.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz";
-      name = "compression-1.6.2.tgz";
-      sha1 = "cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3";
-    };
-    deps = {
-      "accepts-1.3.3" = self.by-version."accepts"."1.3.3";
-      "bytes-2.3.0" = self.by-version."bytes"."2.3.0";
-      "compressible-2.0.8" = self.by-version."compressible"."2.0.8";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-      "vary-1.1.0" = self.by-version."vary"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."compression"."^1.6.0" =
-    self.by-version."compression"."1.6.2";
-  by-spec."compression"."~1.5.2" =
-    self.by-version."compression"."1.5.2";
-  by-version."compression"."1.5.2" = self.buildNodePackage {
-    name = "compression-1.5.2";
-    version = "1.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz";
-      name = "compression-1.5.2.tgz";
-      sha1 = "b03b8d86e6f8ad29683cba8df91ddc6ffc77b395";
-    };
-    deps = {
-      "accepts-1.2.13" = self.by-version."accepts"."1.2.13";
-      "bytes-2.1.0" = self.by-version."bytes"."2.1.0";
-      "compressible-2.0.8" = self.by-version."compressible"."2.0.8";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-      "vary-1.0.1" = self.by-version."vary"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."concat-map"."0.0.1" =
-    self.by-version."concat-map"."0.0.1";
-  by-version."concat-map"."0.0.1" = self.buildNodePackage {
-    name = "concat-map-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
-      name = "concat-map-0.0.1.tgz";
-      sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."concat-stream"."*" =
-    self.by-version."concat-stream"."1.5.1";
-  by-version."concat-stream"."1.5.1" = self.buildNodePackage {
-    name = "concat-stream-1.5.1";
-    version = "1.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz";
-      name = "concat-stream-1.5.1.tgz";
-      sha1 = "f3b80acf9e1f48e3875c0688b41b6c31602eea1c";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "typedarray-0.0.6" = self.by-version."typedarray"."0.0.6";
-      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."concat-stream"."1.5.0" =
-    self.by-version."concat-stream"."1.5.0";
-  by-version."concat-stream"."1.5.0" = self.buildNodePackage {
-    name = "concat-stream-1.5.0";
-    version = "1.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz";
-      name = "concat-stream-1.5.0.tgz";
-      sha1 = "53f7d43c51c5e43f81c8fdd03321c631be68d611";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "typedarray-0.0.6" = self.by-version."typedarray"."0.0.6";
-      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."concat-stream"."^1.4.1" =
-    self.by-version."concat-stream"."1.5.1";
-  by-spec."concat-stream"."^1.4.6" =
-    self.by-version."concat-stream"."1.5.1";
-  by-spec."concat-stream"."^1.4.7" =
-    self.by-version."concat-stream"."1.5.1";
-  by-spec."concat-stream"."^1.5.1" =
-    self.by-version."concat-stream"."1.5.1";
-  by-spec."concat-stream"."~1.4.1" =
-    self.by-version."concat-stream"."1.4.10";
-  by-version."concat-stream"."1.4.10" = self.buildNodePackage {
-    name = "concat-stream-1.4.10";
-    version = "1.4.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.10.tgz";
-      name = "concat-stream-1.4.10.tgz";
-      sha1 = "acc3bbf5602cb8cc980c6ac840fa7d8603e3ef36";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "typedarray-0.0.6" = self.by-version."typedarray"."0.0.6";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."concat-stream"."~1.4.5" =
-    self.by-version."concat-stream"."1.4.10";
-  by-spec."concat-stream"."~1.4.7" =
-    self.by-version."concat-stream"."1.4.10";
-  by-spec."concat-stream"."~1.5.0" =
-    self.by-version."concat-stream"."1.5.1";
-  by-spec."concat-stream"."~1.5.1" =
-    self.by-version."concat-stream"."1.5.1";
-  by-spec."config"."0.4.15" =
-    self.by-version."config"."0.4.15";
-  by-version."config"."0.4.15" = self.buildNodePackage {
-    name = "config-0.4.15";
-    version = "0.4.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/config/-/config-0.4.15.tgz";
-      name = "config-0.4.15.tgz";
-      sha1 = "d43ddf58b8df5637fdd1314fc816ccae7bfbcd18";
-    };
-    deps = {
-      "js-yaml-0.3.7" = self.by-version."js-yaml"."0.3.7";
-      "coffee-script-1.10.0" = self.by-version."coffee-script"."1.10.0";
-      "vows-0.8.1" = self.by-version."vows"."0.8.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."config"."0.4.36" =
-    self.by-version."config"."0.4.36";
-  by-version."config"."0.4.36" = self.buildNodePackage {
-    name = "config-0.4.36";
-    version = "0.4.36";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/config/-/config-0.4.36.tgz";
-      name = "config-0.4.36.tgz";
-      sha1 = "02af1237f519c00f1e3aac22f9a034148fc3e786";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."config-chain"."~1.1.1" =
-    self.by-version."config-chain"."1.1.10";
-  by-version."config-chain"."1.1.10" = self.buildNodePackage {
-    name = "config-chain-1.1.10";
-    version = "1.1.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.10.tgz";
-      name = "config-chain-1.1.10.tgz";
-      sha1 = "7fc383de0fcc84d711cb465bd176579cad612346";
-    };
-    deps = {
-      "proto-list-1.2.4" = self.by-version."proto-list"."1.2.4";
-      "ini-1.3.4" = self.by-version."ini"."1.3.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."config-chain"."~1.1.10" =
-    self.by-version."config-chain"."1.1.10";
-  by-spec."config-chain"."~1.1.8" =
-    self.by-version."config-chain"."1.1.10";
-  by-spec."configstore"."^1.0.0" =
-    self.by-version."configstore"."1.4.0";
-  by-version."configstore"."1.4.0" = self.buildNodePackage {
-    name = "configstore-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz";
-      name = "configstore-1.4.0.tgz";
-      sha1 = "c35781d0501d268c25c54b8b17f6240e8a4fb021";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "os-tmpdir-1.0.1" = self.by-version."os-tmpdir"."1.0.1";
-      "osenv-0.1.3" = self.by-version."osenv"."0.1.3";
-      "uuid-2.0.2" = self.by-version."uuid"."2.0.2";
-      "write-file-atomic-1.1.4" = self.by-version."write-file-atomic"."1.1.4";
-      "xdg-basedir-2.0.0" = self.by-version."xdg-basedir"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."1.x" =
-    self.by-version."connect"."1.9.2";
-  by-version."connect"."1.9.2" = self.buildNodePackage {
-    name = "connect-1.9.2";
-    version = "1.9.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz";
-      name = "connect-1.9.2.tgz";
-      sha1 = "42880a22e9438ae59a8add74e437f58ae8e52807";
-    };
-    deps = {
-      "qs-6.2.0" = self.by-version."qs"."6.2.0";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "formidable-1.0.17" = self.by-version."formidable"."1.0.17";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."2.11.0" =
-    self.by-version."connect"."2.11.0";
-  by-version."connect"."2.11.0" = self.buildNodePackage {
-    name = "connect-2.11.0";
-    version = "2.11.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect/-/connect-2.11.0.tgz";
-      name = "connect-2.11.0.tgz";
-      sha1 = "9991ce09ff9b85d9ead27f9d41d0b2a2df2f9284";
-    };
-    deps = {
-      "qs-0.6.5" = self.by-version."qs"."0.6.5";
-      "cookie-signature-1.0.1" = self.by-version."cookie-signature"."1.0.1";
-      "buffer-crc32-0.2.1" = self.by-version."buffer-crc32"."0.2.1";
-      "cookie-0.1.0" = self.by-version."cookie"."0.1.0";
-      "send-0.1.4" = self.by-version."send"."0.1.4";
-      "bytes-0.2.1" = self.by-version."bytes"."0.2.1";
-      "fresh-0.2.0" = self.by-version."fresh"."0.2.0";
-      "pause-0.0.1" = self.by-version."pause"."0.0.1";
-      "uid2-0.0.3" = self.by-version."uid2"."0.0.3";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "methods-0.0.1" = self.by-version."methods"."0.0.1";
-      "raw-body-0.0.3" = self.by-version."raw-body"."0.0.3";
-      "negotiator-0.3.0" = self.by-version."negotiator"."0.3.0";
-      "multiparty-2.2.0" = self.by-version."multiparty"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."2.14.5" =
-    self.by-version."connect"."2.14.5";
-  by-version."connect"."2.14.5" = self.buildNodePackage {
-    name = "connect-2.14.5";
-    version = "2.14.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect/-/connect-2.14.5.tgz";
-      name = "connect-2.14.5.tgz";
-      sha1 = "73217513152c152ebe049c499fa09211b8c476f4";
-    };
-    deps = {
-      "basic-auth-connect-1.0.0" = self.by-version."basic-auth-connect"."1.0.0";
-      "cookie-parser-1.0.1" = self.by-version."cookie-parser"."1.0.1";
-      "cookie-signature-1.0.3" = self.by-version."cookie-signature"."1.0.3";
-      "compression-1.0.0" = self.by-version."compression"."1.0.0";
-      "connect-timeout-1.0.0" = self.by-version."connect-timeout"."1.0.0";
-      "csurf-1.1.0" = self.by-version."csurf"."1.1.0";
-      "errorhandler-1.0.0" = self.by-version."errorhandler"."1.0.0";
-      "express-session-1.0.2" = self.by-version."express-session"."1.0.2";
-      "fresh-0.2.2" = self.by-version."fresh"."0.2.2";
-      "method-override-1.0.0" = self.by-version."method-override"."1.0.0";
-      "morgan-1.0.0" = self.by-version."morgan"."1.0.0";
-      "qs-0.6.6" = self.by-version."qs"."0.6.6";
-      "raw-body-1.1.4" = self.by-version."raw-body"."1.1.4";
-      "response-time-1.0.0" = self.by-version."response-time"."1.0.0";
-      "setimmediate-1.0.1" = self.by-version."setimmediate"."1.0.1";
-      "serve-index-1.0.1" = self.by-version."serve-index"."1.0.1";
-      "serve-static-1.1.0" = self.by-version."serve-static"."1.1.0";
-      "static-favicon-1.0.2" = self.by-version."static-favicon"."1.0.2";
-      "vhost-1.0.0" = self.by-version."vhost"."1.0.0";
-      "bytes-0.3.0" = self.by-version."bytes"."0.3.0";
-      "pause-0.0.1" = self.by-version."pause"."0.0.1";
-      "debug-0.8.1" = self.by-version."debug"."0.8.1";
-      "multiparty-2.2.0" = self.by-version."multiparty"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."2.3.x" =
-    self.by-version."connect"."2.3.9";
-  by-version."connect"."2.3.9" = self.buildNodePackage {
-    name = "connect-2.3.9";
-    version = "2.3.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect/-/connect-2.3.9.tgz";
-      name = "connect-2.3.9.tgz";
-      sha1 = "4d26ddc485c32e5a1cf1b35854823b4720d25a52";
-    };
-    deps = {
-      "qs-0.4.2" = self.by-version."qs"."0.4.2";
-      "formidable-1.0.11" = self.by-version."formidable"."1.0.11";
-      "crc-0.2.0" = self.by-version."crc"."0.2.0";
-      "cookie-0.0.4" = self.by-version."cookie"."0.0.4";
-      "bytes-0.1.0" = self.by-version."bytes"."0.1.0";
-      "send-0.0.3" = self.by-version."send"."0.0.3";
-      "fresh-0.1.0" = self.by-version."fresh"."0.1.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."2.30.2" =
-    self.by-version."connect"."2.30.2";
-  by-version."connect"."2.30.2" = self.buildNodePackage {
-    name = "connect-2.30.2";
-    version = "2.30.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz";
-      name = "connect-2.30.2.tgz";
-      sha1 = "8da9bcbe8a054d3d318d74dfec903b5c39a1b609";
-    };
-    deps = {
-      "basic-auth-connect-1.0.0" = self.by-version."basic-auth-connect"."1.0.0";
-      "body-parser-1.13.3" = self.by-version."body-parser"."1.13.3";
-      "bytes-2.1.0" = self.by-version."bytes"."2.1.0";
-      "cookie-0.1.3" = self.by-version."cookie"."0.1.3";
-      "cookie-parser-1.3.5" = self.by-version."cookie-parser"."1.3.5";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-      "compression-1.5.2" = self.by-version."compression"."1.5.2";
-      "connect-timeout-1.6.2" = self.by-version."connect-timeout"."1.6.2";
-      "content-type-1.0.2" = self.by-version."content-type"."1.0.2";
-      "csurf-1.8.3" = self.by-version."csurf"."1.8.3";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.0.1" = self.by-version."depd"."1.0.1";
-      "errorhandler-1.4.3" = self.by-version."errorhandler"."1.4.3";
-      "express-session-1.11.3" = self.by-version."express-session"."1.11.3";
-      "finalhandler-0.4.0" = self.by-version."finalhandler"."0.4.0";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-      "method-override-2.3.6" = self.by-version."method-override"."2.3.6";
-      "morgan-1.6.1" = self.by-version."morgan"."1.6.1";
-      "multiparty-3.3.2" = self.by-version."multiparty"."3.3.2";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "pause-0.1.0" = self.by-version."pause"."0.1.0";
-      "qs-4.0.0" = self.by-version."qs"."4.0.0";
-      "response-time-2.3.1" = self.by-version."response-time"."2.3.1";
-      "serve-favicon-2.3.0" = self.by-version."serve-favicon"."2.3.0";
-      "serve-index-1.7.3" = self.by-version."serve-index"."1.7.3";
-      "serve-static-1.10.3" = self.by-version."serve-static"."1.10.3";
-      "type-is-1.6.13" = self.by-version."type-is"."1.6.13";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-      "vhost-3.0.2" = self.by-version."vhost"."3.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."2.7.6" =
-    self.by-version."connect"."2.7.6";
-  by-version."connect"."2.7.6" = self.buildNodePackage {
-    name = "connect-2.7.6";
-    version = "2.7.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect/-/connect-2.7.6.tgz";
-      name = "connect-2.7.6.tgz";
-      sha1 = "b83b68fa6f245c5020e2395472cc8322b0060738";
-    };
-    deps = {
-      "qs-0.5.1" = self.by-version."qs"."0.5.1";
-      "formidable-1.0.11" = self.by-version."formidable"."1.0.11";
-      "cookie-signature-1.0.1" = self.by-version."cookie-signature"."1.0.1";
-      "buffer-crc32-0.1.1" = self.by-version."buffer-crc32"."0.1.1";
-      "cookie-0.0.5" = self.by-version."cookie"."0.0.5";
-      "send-0.1.0" = self.by-version."send"."0.1.0";
-      "bytes-0.2.0" = self.by-version."bytes"."0.2.0";
-      "fresh-0.1.0" = self.by-version."fresh"."0.1.0";
-      "pause-0.0.1" = self.by-version."pause"."0.0.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."3.0.2" =
-    self.by-version."connect"."3.0.2";
-  by-version."connect"."3.0.2" = self.buildNodePackage {
-    name = "connect-3.0.2";
-    version = "3.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect/-/connect-3.0.2.tgz";
-      name = "connect-3.0.2.tgz";
-      sha1 = "1f90b4672fe009fa2876df860442d30db18609a2";
-    };
-    deps = {
-      "debug-1.0.3" = self.by-version."debug"."1.0.3";
-      "finalhandler-0.0.2" = self.by-version."finalhandler"."0.0.2";
-      "parseurl-1.1.3" = self.by-version."parseurl"."1.1.3";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."^3.3.5" =
-    self.by-version."connect"."3.4.1";
-  by-version."connect"."3.4.1" = self.buildNodePackage {
-    name = "connect-3.4.1";
-    version = "3.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect/-/connect-3.4.1.tgz";
-      name = "connect-3.4.1.tgz";
-      sha1 = "a21361d3f4099ef761cda6dc4a973bb1ebb0a34d";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "finalhandler-0.4.1" = self.by-version."finalhandler"."0.4.1";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect"."~2" =
-    self.by-version."connect"."2.30.2";
-  by-spec."connect-busboy"."~0.0.2" =
-    self.by-version."connect-busboy"."0.0.2";
-  by-version."connect-busboy"."0.0.2" = self.buildNodePackage {
-    name = "connect-busboy-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-busboy/-/connect-busboy-0.0.2.tgz";
-      name = "connect-busboy-0.0.2.tgz";
-      sha1 = "ac5c9c96672171885e576c66b2bfd95d3bb11097";
-    };
-    deps = {
-      "busboy-0.2.13" = self.by-version."busboy"."0.2.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect-flash"."*" =
-    self.by-version."connect-flash"."0.1.1";
-  by-version."connect-flash"."0.1.1" = self.buildNodePackage {
-    name = "connect-flash-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz";
-      name = "connect-flash-0.1.1.tgz";
-      sha1 = "d8630f26d95a7f851f9956b1e8cc6732f3b6aa30";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "connect-flash" = self.by-version."connect-flash"."0.1.1";
-  by-spec."connect-flash"."0.1.0" =
-    self.by-version."connect-flash"."0.1.0";
-  by-version."connect-flash"."0.1.0" = self.buildNodePackage {
-    name = "connect-flash-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.0.tgz";
-      name = "connect-flash-0.1.0.tgz";
-      sha1 = "82b381d61a12b651437df1c259c1f1c841239b88";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect-jade-static"."*" =
-    self.by-version."connect-jade-static"."0.2.2";
-  by-version."connect-jade-static"."0.2.2" = self.buildNodePackage {
-    name = "connect-jade-static-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-jade-static/-/connect-jade-static-0.2.2.tgz";
-      name = "connect-jade-static-0.2.2.tgz";
-      sha1 = "c1812f6245ee38a6db0e278c4043b53464099f84";
-    };
-    deps = {
-      "jade-1.11.0" = self.by-version."jade"."1.11.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "connect-jade-static" = self.by-version."connect-jade-static"."0.2.2";
-  by-spec."connect-mongo"."*" =
-    self.by-version."connect-mongo"."1.2.0";
-  by-version."connect-mongo"."1.2.0" = self.buildNodePackage {
-    name = "connect-mongo-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-mongo/-/connect-mongo-1.2.0.tgz";
-      name = "connect-mongo-1.2.0.tgz";
-      sha1 = "280e9617ccdb9d2984814fb1a2279dac89cfe99b";
-    };
-    deps = {
-      "bluebird-3.4.0" = self.by-version."bluebird"."3.4.0";
-      "mongodb-2.1.21" = self.by-version."mongodb"."2.1.21";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "connect-mongo" = self.by-version."connect-mongo"."1.2.0";
-  by-spec."connect-mongo"."0.8.2" =
-    self.by-version."connect-mongo"."0.8.2";
-  by-version."connect-mongo"."0.8.2" = self.buildNodePackage {
-    name = "connect-mongo-0.8.2";
-    version = "0.8.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-mongo/-/connect-mongo-0.8.2.tgz";
-      name = "connect-mongo-0.8.2.tgz";
-      sha1 = "c92878eec0c5a5a6625b79a0c214f37f861fc6e0";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-      "mongodb-2.0.55" = self.by-version."mongodb"."2.0.55";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect-multiparty"."^1.2.5" =
-    self.by-version."connect-multiparty"."1.2.5";
-  by-version."connect-multiparty"."1.2.5" = self.buildNodePackage {
-    name = "connect-multiparty-1.2.5";
-    version = "1.2.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-multiparty/-/connect-multiparty-1.2.5.tgz";
-      name = "connect-multiparty-1.2.5.tgz";
-      sha1 = "2fabecfdc1a8a774ba19484dce660c818a8555e7";
-    };
-    deps = {
-      "multiparty-3.3.2" = self.by-version."multiparty"."3.3.2";
-      "on-finished-2.1.1" = self.by-version."on-finished"."2.1.1";
-      "qs-2.2.5" = self.by-version."qs"."2.2.5";
-      "type-is-1.5.7" = self.by-version."type-is"."1.5.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect-timeout"."1.0.0" =
-    self.by-version."connect-timeout"."1.0.0";
-  by-version."connect-timeout"."1.0.0" = self.buildNodePackage {
-    name = "connect-timeout-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.0.0.tgz";
-      name = "connect-timeout-1.0.0.tgz";
-      sha1 = "12054799f90bb9566f8b274efe7842d6465d10bb";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."connect-timeout"."~1.6.2" =
-    self.by-version."connect-timeout"."1.6.2";
-  by-version."connect-timeout"."1.6.2" = self.buildNodePackage {
-    name = "connect-timeout-1.6.2";
-    version = "1.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz";
-      name = "connect-timeout-1.6.2.tgz";
-      sha1 = "de9a5ec61e33a12b6edaab7b5f062e98c599b88e";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."console-browserify"."1.1.x" =
-    self.by-version."console-browserify"."1.1.0";
-  by-version."console-browserify"."1.1.0" = self.buildNodePackage {
-    name = "console-browserify-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz";
-      name = "console-browserify-1.1.0.tgz";
-      sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
-    };
-    deps = {
-      "date-now-0.1.4" = self.by-version."date-now"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."console-browserify"."^1.1.0" =
-    self.by-version."console-browserify"."1.1.0";
-  by-spec."constantinople"."~3.0.1" =
-    self.by-version."constantinople"."3.0.2";
-  by-version."constantinople"."3.0.2" = self.buildNodePackage {
-    name = "constantinople-3.0.2";
-    version = "3.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz";
-      name = "constantinople-3.0.2.tgz";
-      sha1 = "4b945d9937907bcd98ee575122c3817516544141";
-    };
-    deps = {
-      "acorn-2.7.0" = self.by-version."acorn"."2.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."constants-browserify"."^1.0.0" =
-    self.by-version."constants-browserify"."1.0.0";
-  by-version."constants-browserify"."1.0.0" = self.buildNodePackage {
-    name = "constants-browserify-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz";
-      name = "constants-browserify-1.0.0.tgz";
-      sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."constants-browserify"."~0.0.1" =
-    self.by-version."constants-browserify"."0.0.1";
-  by-version."constants-browserify"."0.0.1" = self.buildNodePackage {
-    name = "constants-browserify-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz";
-      name = "constants-browserify-0.0.1.tgz";
-      sha1 = "92577db527ba6c4cf0a4568d84bc031f441e21f2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."constants-browserify"."~1.0.0" =
-    self.by-version."constants-browserify"."1.0.0";
-  by-spec."consume-http-header"."^1.0.0" =
-    self.by-version."consume-http-header"."1.0.0";
-  by-version."consume-http-header"."1.0.0" = self.buildNodePackage {
-    name = "consume-http-header-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/consume-http-header/-/consume-http-header-1.0.0.tgz";
-      name = "consume-http-header-1.0.0.tgz";
-      sha1 = "95976d74f7f1b38dfb13fd9b3b68b91a0240556f";
-    };
-    deps = {
-      "consume-until-1.0.0" = self.by-version."consume-until"."1.0.0";
-      "http-headers-3.0.1" = self.by-version."http-headers"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."consume-until"."^1.0.0" =
-    self.by-version."consume-until"."1.0.0";
-  by-version."consume-until"."1.0.0" = self.buildNodePackage {
-    name = "consume-until-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/consume-until/-/consume-until-1.0.0.tgz";
-      name = "consume-until-1.0.0.tgz";
-      sha1 = "75b91fa9f16663e51f98e863af995b9164068c1a";
-    };
-    deps = {
-      "buffer-indexof-1.0.0" = self.by-version."buffer-indexof"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."content-disposition"."0.5.0" =
-    self.by-version."content-disposition"."0.5.0";
-  by-version."content-disposition"."0.5.0" = self.buildNodePackage {
-    name = "content-disposition-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz";
-      name = "content-disposition-0.5.0.tgz";
-      sha1 = "4284fe6ae0630874639e44e80a418c2934135e9e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."content-disposition"."0.5.1" =
-    self.by-version."content-disposition"."0.5.1";
-  by-version."content-disposition"."0.5.1" = self.buildNodePackage {
-    name = "content-disposition-0.5.1";
-    version = "0.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz";
-      name = "content-disposition-0.5.1.tgz";
-      sha1 = "87476c6a67c8daa87e32e87616df883ba7fb071b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."content-type"."~1.0.1" =
-    self.by-version."content-type"."1.0.2";
-  by-version."content-type"."1.0.2" = self.buildNodePackage {
-    name = "content-type-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz";
-      name = "content-type-1.0.2.tgz";
-      sha1 = "b7d113aee7a8dd27bd21133c4dc2529df1721eed";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."contextify".">= 0.1.9 < 0.2.0" =
-    self.by-version."contextify"."0.1.15";
-  by-version."contextify"."0.1.15" = self.buildNodePackage {
-    name = "contextify-0.1.15";
-    version = "0.1.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/contextify/-/contextify-0.1.15.tgz";
-      name = "contextify-0.1.15.tgz";
-      sha1 = "3d34681d14a5ccbbe609c9ee11eda206b8cf266f";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."contextify"."~0.1.5" =
-    self.by-version."contextify"."0.1.15";
-  by-spec."convert-source-map"."^1.1.1" =
-    self.by-version."convert-source-map"."1.2.0";
-  by-version."convert-source-map"."1.2.0" = self.buildNodePackage {
-    name = "convert-source-map-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.2.0.tgz";
-      name = "convert-source-map-1.2.0.tgz";
-      sha1 = "44c08c2506f10fb3ca6fd888d5a3444cf8d6a669";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."convert-source-map"."~0.3.0" =
-    self.by-version."convert-source-map"."0.3.5";
-  by-version."convert-source-map"."0.3.5" = self.buildNodePackage {
-    name = "convert-source-map-0.3.5";
-    version = "0.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz";
-      name = "convert-source-map-0.3.5.tgz";
-      sha1 = "f1d802950af7dd2631a1febe0596550c86ab3190";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."convert-source-map"."~1.1.0" =
-    self.by-version."convert-source-map"."1.1.3";
-  by-version."convert-source-map"."1.1.3" = self.buildNodePackage {
-    name = "convert-source-map-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz";
-      name = "convert-source-map-1.1.3.tgz";
-      sha1 = "4829c877e9fe49b3161f3bf3673888e204699860";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie"."0.0.4" =
-    self.by-version."cookie"."0.0.4";
-  by-version."cookie"."0.0.4" = self.buildNodePackage {
-    name = "cookie-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz";
-      name = "cookie-0.0.4.tgz";
-      sha1 = "5456bd47aee2666eac976ea80a6105940483fe98";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie"."0.0.5" =
-    self.by-version."cookie"."0.0.5";
-  by-version."cookie"."0.0.5" = self.buildNodePackage {
-    name = "cookie-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie/-/cookie-0.0.5.tgz";
-      name = "cookie-0.0.5.tgz";
-      sha1 = "f9acf9db57eb7568c9fcc596256b7bb22e307c81";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie"."0.1.0" =
-    self.by-version."cookie"."0.1.0";
-  by-version."cookie"."0.1.0" = self.buildNodePackage {
-    name = "cookie-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz";
-      name = "cookie-0.1.0.tgz";
-      sha1 = "90eb469ddce905c866de687efc43131d8801f9d0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie"."0.1.2" =
-    self.by-version."cookie"."0.1.2";
-  by-version."cookie"."0.1.2" = self.buildNodePackage {
-    name = "cookie-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz";
-      name = "cookie-0.1.2.tgz";
-      sha1 = "72fec3d24e48a3432073d90c12642005061004b1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie"."0.1.3" =
-    self.by-version."cookie"."0.1.3";
-  by-version."cookie"."0.1.3" = self.buildNodePackage {
-    name = "cookie-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz";
-      name = "cookie-0.1.3.tgz";
-      sha1 = "e734a5c1417fce472d5aef82c381cabb64d1a435";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie"."0.1.5" =
-    self.by-version."cookie"."0.1.5";
-  by-version."cookie"."0.1.5" = self.buildNodePackage {
-    name = "cookie-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz";
-      name = "cookie-0.1.5.tgz";
-      sha1 = "6ab9948a4b1ae21952cd2588530a4722d4044d7c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie"."0.2.3" =
-    self.by-version."cookie"."0.2.3";
-  by-version."cookie"."0.2.3" = self.buildNodePackage {
-    name = "cookie-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie/-/cookie-0.2.3.tgz";
-      name = "cookie-0.2.3.tgz";
-      sha1 = "1a59536af68537a21178a01346f87cb059d2ae5c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie"."0.3.1" =
-    self.by-version."cookie"."0.3.1";
-  by-version."cookie"."0.3.1" = self.buildNodePackage {
-    name = "cookie-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz";
-      name = "cookie-0.3.1.tgz";
-      sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-jar"."~0.2.0" =
-    self.by-version."cookie-jar"."0.2.0";
-  by-version."cookie-jar"."0.2.0" = self.buildNodePackage {
-    name = "cookie-jar-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz";
-      name = "cookie-jar-0.2.0.tgz";
-      sha1 = "64ecc06ac978db795e4b5290cbe48ba3781400fa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-jar"."~0.3.0" =
-    self.by-version."cookie-jar"."0.3.0";
-  by-version."cookie-jar"."0.3.0" = self.buildNodePackage {
-    name = "cookie-jar-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.3.0.tgz";
-      name = "cookie-jar-0.3.0.tgz";
-      sha1 = "bc9a27d4e2b97e186cd57c9e2063cb99fa68cccc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-parser"."1.0.1" =
-    self.by-version."cookie-parser"."1.0.1";
-  by-version."cookie-parser"."1.0.1" = self.buildNodePackage {
-    name = "cookie-parser-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.0.1.tgz";
-      name = "cookie-parser-1.0.1.tgz";
-      sha1 = "17bd622c9717cd0858a912a9fef4c0362360a7b0";
-    };
-    deps = {
-      "cookie-0.1.0" = self.by-version."cookie"."0.1.0";
-      "cookie-signature-1.0.3" = self.by-version."cookie-signature"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-parser"."^1.0.1" =
-    self.by-version."cookie-parser"."1.4.3";
-  by-version."cookie-parser"."1.4.3" = self.buildNodePackage {
-    name = "cookie-parser-1.4.3";
-    version = "1.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz";
-      name = "cookie-parser-1.4.3.tgz";
-      sha1 = "0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5";
-    };
-    deps = {
-      "cookie-0.3.1" = self.by-version."cookie"."0.3.1";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-parser"."~1.3.5" =
-    self.by-version."cookie-parser"."1.3.5";
-  by-version."cookie-parser"."1.3.5" = self.buildNodePackage {
-    name = "cookie-parser-1.3.5";
-    version = "1.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz";
-      name = "cookie-parser-1.3.5.tgz";
-      sha1 = "9d755570fb5d17890771227a02314d9be7cf8356";
-    };
-    deps = {
-      "cookie-0.1.3" = self.by-version."cookie"."0.1.3";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-parser"."~1.4.1" =
-    self.by-version."cookie-parser"."1.4.3";
-  by-spec."cookie-signature"."1.0.1" =
-    self.by-version."cookie-signature"."1.0.1";
-  by-version."cookie-signature"."1.0.1" = self.buildNodePackage {
-    name = "cookie-signature-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz";
-      name = "cookie-signature-1.0.1.tgz";
-      sha1 = "44e072148af01e6e8e24afbf12690d68ae698ecb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-signature"."1.0.3" =
-    self.by-version."cookie-signature"."1.0.3";
-  by-version."cookie-signature"."1.0.3" = self.buildNodePackage {
-    name = "cookie-signature-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz";
-      name = "cookie-signature-1.0.3.tgz";
-      sha1 = "91cd997cc51fb641595738c69cda020328f50ff9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-signature"."1.0.4" =
-    self.by-version."cookie-signature"."1.0.4";
-  by-version."cookie-signature"."1.0.4" = self.buildNodePackage {
-    name = "cookie-signature-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.4.tgz";
-      name = "cookie-signature-1.0.4.tgz";
-      sha1 = "0edd22286e3a111b9a2a70db363e925e867f6aca";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-signature"."1.0.6" =
-    self.by-version."cookie-signature"."1.0.6";
-  by-version."cookie-signature"."1.0.6" = self.buildNodePackage {
-    name = "cookie-signature-1.0.6";
-    version = "1.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
-      name = "cookie-signature-1.0.6.tgz";
-      sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookie-signature"."^1.0.5" =
-    self.by-version."cookie-signature"."1.0.6";
-  by-spec."cookiejar"."2.0.1" =
-    self.by-version."cookiejar"."2.0.1";
-  by-version."cookiejar"."2.0.1" = self.buildNodePackage {
-    name = "cookiejar-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.1.tgz";
-      name = "cookiejar-2.0.1.tgz";
-      sha1 = "3d12752f6adf68a892f332433492bd5812bb668f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookiejar"."2.0.6" =
-    self.by-version."cookiejar"."2.0.6";
-  by-version."cookiejar"."2.0.6" = self.buildNodePackage {
-    name = "cookiejar-2.0.6";
-    version = "2.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.6.tgz";
-      name = "cookiejar-2.0.6.tgz";
-      sha1 = "0abf356ad00d1c5a219d88d44518046dd026acfe";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookies"."0.1.x" =
-    self.by-version."cookies"."0.1.6";
-  by-version."cookies"."0.1.6" = self.buildNodePackage {
-    name = "cookies-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookies/-/cookies-0.1.6.tgz";
-      name = "cookies-0.1.6.tgz";
-      sha1 = "2129588b8b1e382ffba990d9f9cf9ddf2c142846";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookies".">= 0.2.2" =
-    self.by-version."cookies"."0.6.1";
-  by-version."cookies"."0.6.1" = self.buildNodePackage {
-    name = "cookies-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cookies/-/cookies-0.6.1.tgz";
-      name = "cookies-0.6.1.tgz";
-      sha1 = "ef693b1bc6f01f567d46e2f504e9c15fb70cba90";
-    };
-    deps = {
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "keygrip-1.0.1" = self.by-version."keygrip"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cookies".">=0.5.0 <1.0.0-0" =
-    self.by-version."cookies"."0.6.1";
-  by-spec."cordova"."*" =
-    self.by-version."cordova"."6.2.1-nightly.2016.6.10.486bdab5";
-  by-version."cordova"."6.2.1-nightly.2016.6.10.486bdab5" = self.buildNodePackage {
-    name = "cordova-6.2.1-nightly.2016.6.10.486bdab5";
-    version = "6.2.1-nightly.2016.6.10.486bdab5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cordova/-/cordova-6.2.1-nightly.2016.6.10.486bdab5.tgz";
-      name = "cordova-6.2.1-nightly.2016.6.10.486bdab5.tgz";
-      sha1 = "4601f890bb77e8788cf64ba1f561eac4b2cbb702";
-    };
-    deps = {
-      "cordova-lib-6.2.1-nightly.2016.6.10.d28eed63" = self.by-version."cordova-lib"."6.2.1-nightly.2016.6.10.d28eed63";
-      "cordova-common-1.3.0" = self.by-version."cordova-common"."1.3.0";
-      "q-1.0.1" = self.by-version."q"."1.0.1";
-      "nopt-3.0.1" = self.by-version."nopt"."3.0.1";
-      "underscore-1.7.0" = self.by-version."underscore"."1.7.0";
-      "update-notifier-0.5.0" = self.by-version."update-notifier"."0.5.0";
-      "insight-0.8.2" = self.by-version."insight"."0.8.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "cordova" = self.by-version."cordova"."6.2.1-nightly.2016.6.10.486bdab5";
-  by-spec."cordova-app-hello-world"."3.10.0" =
-    self.by-version."cordova-app-hello-world"."3.10.0";
-  by-version."cordova-app-hello-world"."3.10.0" = self.buildNodePackage {
-    name = "cordova-app-hello-world-3.10.0";
-    version = "3.10.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-3.10.0.tgz";
-      name = "cordova-app-hello-world-3.10.0.tgz";
-      sha1 = "e3825fc6ca950090a6a37437fcfb88c1622fd80e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cordova-common"."1.3.x" =
-    self.by-version."cordova-common"."1.3.0";
-  by-version."cordova-common"."1.3.0" = self.buildNodePackage {
-    name = "cordova-common-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cordova-common/-/cordova-common-1.3.0.tgz";
-      name = "cordova-common-1.3.0.tgz";
-      sha1 = "f75161f6aa7cef5486fd5d69a3b0a1f628334491";
-    };
-    deps = {
-      "ansi-0.3.1" = self.by-version."ansi"."0.3.1";
-      "bplist-parser-0.1.1" = self.by-version."bplist-parser"."0.1.1";
-      "cordova-registry-mapper-1.1.15" = self.by-version."cordova-registry-mapper"."1.1.15";
-      "elementtree-0.1.6" = self.by-version."elementtree"."0.1.6";
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
-      "osenv-0.1.3" = self.by-version."osenv"."0.1.3";
-      "plist-1.2.0" = self.by-version."plist"."1.2.0";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "shelljs-0.5.3" = self.by-version."shelljs"."0.5.3";
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-      "unorm-1.4.1" = self.by-version."unorm"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cordova-common"."^1.3.0" =
-    self.by-version."cordova-common"."1.3.0";
-  by-spec."cordova-fetch"."1.0.0" =
-    self.by-version."cordova-fetch"."1.0.0";
-  by-version."cordova-fetch"."1.0.0" = self.buildNodePackage {
-    name = "cordova-fetch-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.0.tgz";
-      name = "cordova-fetch-1.0.0.tgz";
-      sha1 = "54b1044f2ccc39169131b50f35e7ce24159264e6";
-    };
-    deps = {
-      "cordova-common-1.3.0" = self.by-version."cordova-common"."1.3.0";
-      "dependency-ls-1.0.0" = self.by-version."dependency-ls"."1.0.0";
-      "is-url-1.2.1" = self.by-version."is-url"."1.2.1";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-      "shelljs-0.7.0" = self.by-version."shelljs"."0.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cordova-js"."4.1.4" =
-    self.by-version."cordova-js"."4.1.4";
-  by-version."cordova-js"."4.1.4" = self.buildNodePackage {
-    name = "cordova-js-4.1.4";
-    version = "4.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cordova-js/-/cordova-js-4.1.4.tgz";
-      name = "cordova-js-4.1.4.tgz";
-      sha1 = "33c67efcc751a4b36d91301c2e5bd409003daf13";
-    };
-    deps = {
-      "browserify-10.1.3" = self.by-version."browserify"."10.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cordova-lib"."6.2.1-nightly.2016.6.10.d28eed63" =
-    self.by-version."cordova-lib"."6.2.1-nightly.2016.6.10.d28eed63";
-  by-version."cordova-lib"."6.2.1-nightly.2016.6.10.d28eed63" = self.buildNodePackage {
-    name = "cordova-lib-6.2.1-nightly.2016.6.10.d28eed63";
-    version = "6.2.1-nightly.2016.6.10.d28eed63";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cordova-lib/-/cordova-lib-6.2.1-nightly.2016.6.10.d28eed63.tgz";
-      name = "cordova-lib-6.2.1-nightly.2016.6.10.d28eed63.tgz";
-      sha1 = "e1601b52037ce34243465f18d2ba00d34596e97c";
-    };
-    deps = {
-      "aliasify-1.9.0" = self.by-version."aliasify"."1.9.0";
-      "cordova-app-hello-world-3.10.0" = self.by-version."cordova-app-hello-world"."3.10.0";
-      "cordova-common-1.3.0" = self.by-version."cordova-common"."1.3.0";
-      "cordova-fetch-1.0.0" = self.by-version."cordova-fetch"."1.0.0";
-      "cordova-js-4.1.4" = self.by-version."cordova-js"."4.1.4";
-      "cordova-registry-mapper-1.1.15" = self.by-version."cordova-registry-mapper"."1.1.15";
-      "cordova-serve-1.0.0" = self.by-version."cordova-serve"."1.0.0";
-      "dep-graph-1.1.0" = self.by-version."dep-graph"."1.1.0";
-      "elementtree-0.1.6" = self.by-version."elementtree"."0.1.6";
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-      "init-package-json-1.9.4" = self.by-version."init-package-json"."1.9.4";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "npm-2.15.6" = self.by-version."npm"."2.15.6";
-      "opener-1.4.1" = self.by-version."opener"."1.4.1";
-      "plist-1.2.0" = self.by-version."plist"."1.2.0";
-      "properties-parser-0.2.3" = self.by-version."properties-parser"."0.2.3";
-      "q-1.0.1" = self.by-version."q"."1.0.1";
-      "request-2.47.0" = self.by-version."request"."2.47.0";
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-      "shelljs-0.3.0" = self.by-version."shelljs"."0.3.0";
-      "tar-1.0.2" = self.by-version."tar"."1.0.2";
-      "underscore-1.7.0" = self.by-version."underscore"."1.7.0";
-      "unorm-1.3.3" = self.by-version."unorm"."1.3.3";
-      "valid-identifier-0.0.1" = self.by-version."valid-identifier"."0.0.1";
-      "xcode-0.8.8" = self.by-version."xcode"."0.8.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cordova-registry-mapper"."1.x" =
-    self.by-version."cordova-registry-mapper"."1.1.15";
-  by-version."cordova-registry-mapper"."1.1.15" = self.buildNodePackage {
-    name = "cordova-registry-mapper-1.1.15";
-    version = "1.1.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz";
-      name = "cordova-registry-mapper-1.1.15.tgz";
-      sha1 = "e244b9185b8175473bff6079324905115f83dc7c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cordova-registry-mapper"."^1.1.8" =
-    self.by-version."cordova-registry-mapper"."1.1.15";
-  by-spec."cordova-serve"."^1.0.0" =
-    self.by-version."cordova-serve"."1.0.0";
-  by-version."cordova-serve"."1.0.0" = self.buildNodePackage {
-    name = "cordova-serve-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cordova-serve/-/cordova-serve-1.0.0.tgz";
-      name = "cordova-serve-1.0.0.tgz";
-      sha1 = "7fa1c40183d2b82adb792f9cb9e0d554a23eed85";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "compression-1.6.2" = self.by-version."compression"."1.6.2";
-      "express-4.13.4" = self.by-version."express"."4.13.4";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."core-decorators"."^0.12.3" =
-    self.by-version."core-decorators"."0.12.3";
-  by-version."core-decorators"."0.12.3" = self.buildNodePackage {
-    name = "core-decorators-0.12.3";
-    version = "0.12.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/core-decorators/-/core-decorators-0.12.3.tgz";
-      name = "core-decorators-0.12.3.tgz";
-      sha1 = "6b3f83378e680d48b0c08da4489899b7532dcb43";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."core-js"."^1.0.0" =
-    self.by-version."core-js"."1.2.6";
-  by-version."core-js"."1.2.6" = self.buildNodePackage {
-    name = "core-js-1.2.6";
-    version = "1.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz";
-      name = "core-js-1.2.6.tgz";
-      sha1 = "e2351f6cae764f8c34e5d839acb6a60cef8b4a45";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."core-js"."^2.1.0" =
-    self.by-version."core-js"."2.4.0";
-  by-version."core-js"."2.4.0" = self.buildNodePackage {
-    name = "core-js-2.4.0";
-    version = "2.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/core-js/-/core-js-2.4.0.tgz";
-      name = "core-js-2.4.0.tgz";
-      sha1 = "df408ab46d01aff91c01c3e7971935d422c54f81";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."core-js"."^2.4.0" =
-    self.by-version."core-js"."2.4.0";
-  by-spec."core-js"."~0.8.4" =
-    self.by-version."core-js"."0.8.4";
-  by-version."core-js"."0.8.4" = self.buildNodePackage {
-    name = "core-js-0.8.4";
-    version = "0.8.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/core-js/-/core-js-0.8.4.tgz";
-      name = "core-js-0.8.4.tgz";
-      sha1 = "c22665f1e0d1b9c3c5e1b08dabd1f108695e4fcf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."core-util-is"."1.0.2" =
-    self.by-version."core-util-is"."1.0.2";
-  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 = "https://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-spec."core-util-is"."~1.0.0" =
-    self.by-version."core-util-is"."1.0.2";
-  by-spec."cors"."2.7.1" =
-    self.by-version."cors"."2.7.1";
-  by-version."cors"."2.7.1" = self.buildNodePackage {
-    name = "cors-2.7.1";
-    version = "2.7.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cors/-/cors-2.7.1.tgz";
-      name = "cors-2.7.1.tgz";
-      sha1 = "3c2e50a58af9ef8c89bee21226b099be1f02739b";
-    };
-    deps = {
-      "vary-1.1.0" = self.by-version."vary"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cors"."^2.4.2" =
-    self.by-version."cors"."2.7.1";
-  by-spec."couch-login"."~0.1.15" =
-    self.by-version."couch-login"."0.1.20";
-  by-version."couch-login"."0.1.20" = self.buildNodePackage {
-    name = "couch-login-0.1.20";
-    version = "0.1.20";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/couch-login/-/couch-login-0.1.20.tgz";
-      name = "couch-login-0.1.20.tgz";
-      sha1 = "007c70ef80089dbae6f59eeeec37480799b39595";
-    };
-    deps = {
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."coveralls"."*" =
-    self.by-version."coveralls"."2.11.9";
-  by-version."coveralls"."2.11.9" = self.buildNodePackage {
-    name = "coveralls-2.11.9";
-    version = "2.11.9";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/coveralls/-/coveralls-2.11.9.tgz";
-      name = "coveralls-2.11.9.tgz";
-      sha1 = "f9ff01a1adbf22a129e35a8d62345a52a781b395";
-    };
-    deps = {
-      "js-yaml-3.0.1" = self.by-version."js-yaml"."3.0.1";
-      "lcov-parse-0.0.6" = self.by-version."lcov-parse"."0.0.6";
-      "log-driver-1.2.4" = self.by-version."log-driver"."1.2.4";
-      "request-2.67.0" = self.by-version."request"."2.67.0";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "coveralls" = self.by-version."coveralls"."2.11.9";
-  by-spec."crc"."0.2.0" =
-    self.by-version."crc"."0.2.0";
-  by-version."crc"."0.2.0" = self.buildNodePackage {
-    name = "crc-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crc/-/crc-0.2.0.tgz";
-      name = "crc-0.2.0.tgz";
-      sha1 = "f4486b9bf0a12df83c3fca14e31e030fdabd9454";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."crc"."3.0.0" =
-    self.by-version."crc"."3.0.0";
-  by-version."crc"."3.0.0" = self.buildNodePackage {
-    name = "crc-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crc/-/crc-3.0.0.tgz";
-      name = "crc-3.0.0.tgz";
-      sha1 = "d11e97ec44a844e5eb15a74fa2c7875d0aac4b22";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."crc"."3.3.0" =
-    self.by-version."crc"."3.3.0";
-  by-version."crc"."3.3.0" = self.buildNodePackage {
-    name = "crc-3.3.0";
-    version = "3.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz";
-      name = "crc-3.3.0.tgz";
-      sha1 = "fa622e1bc388bf257309082d6b65200ce67090ba";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."crc"."3.4.0" =
-    self.by-version."crc"."3.4.0";
-  by-version."crc"."3.4.0" = self.buildNodePackage {
-    name = "crc-3.4.0";
-    version = "3.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crc/-/crc-3.4.0.tgz";
-      name = "crc-3.4.0.tgz";
-      sha1 = "4258e351613a74ef1153dfcb05e820c3e9715d7f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."crc32-stream"."~0.3.1" =
-    self.by-version."crc32-stream"."0.3.4";
-  by-version."crc32-stream"."0.3.4" = self.buildNodePackage {
-    name = "crc32-stream-0.3.4";
-    version = "0.3.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.4.tgz";
-      name = "crc32-stream-0.3.4.tgz";
-      sha1 = "73bc25b45fac1db6632231a7bfce8927e9f06552";
-    };
-    deps = {
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "buffer-crc32-0.2.5" = self.by-version."buffer-crc32"."0.2.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."create-ecdh"."^4.0.0" =
-    self.by-version."create-ecdh"."4.0.0";
-  by-version."create-ecdh"."4.0.0" = self.buildNodePackage {
-    name = "create-ecdh-4.0.0";
-    version = "4.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz";
-      name = "create-ecdh-4.0.0.tgz";
-      sha1 = "888c723596cdf7612f6498233eebd7a35301737d";
-    };
-    deps = {
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "elliptic-6.2.8" = self.by-version."elliptic"."6.2.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."create-hash"."^1.1.0" =
-    self.by-version."create-hash"."1.1.2";
-  by-version."create-hash"."1.1.2" = self.buildNodePackage {
-    name = "create-hash-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz";
-      name = "create-hash-1.1.2.tgz";
-      sha1 = "51210062d7bb7479f6c65bb41a92208b1d61abad";
-    };
-    deps = {
-      "cipher-base-1.0.2" = self.by-version."cipher-base"."1.0.2";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "ripemd160-1.0.1" = self.by-version."ripemd160"."1.0.1";
-      "sha.js-2.4.5" = self.by-version."sha.js"."2.4.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."create-hash"."^1.1.1" =
-    self.by-version."create-hash"."1.1.2";
-  by-spec."create-hmac"."^1.1.0" =
-    self.by-version."create-hmac"."1.1.4";
-  by-version."create-hmac"."1.1.4" = self.buildNodePackage {
-    name = "create-hmac-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz";
-      name = "create-hmac-1.1.4.tgz";
-      sha1 = "d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170";
-    };
-    deps = {
-      "create-hash-1.1.2" = self.by-version."create-hash"."1.1.2";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."create-hmac"."^1.1.2" =
-    self.by-version."create-hmac"."1.1.4";
-  by-spec."cron"."1.1.0" =
-    self.by-version."cron"."1.1.0";
-  by-version."cron"."1.1.0" = self.buildNodePackage {
-    name = "cron-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cron/-/cron-1.1.0.tgz";
-      name = "cron-1.1.0.tgz";
-      sha1 = "61e868c6f18f98e8bcb88bcd7ab9fb8fae909453";
-    };
-    deps = {
-      "moment-timezone-0.3.1" = self.by-version."moment-timezone"."0.3.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cron".">=1.0.1" =
-    self.by-version."cron"."1.1.0";
-  by-spec."cron"."^1.0.4" =
-    self.by-version."cron"."1.1.0";
-  by-spec."crossroads"."~0.12.2" =
-    self.by-version."crossroads"."0.12.2";
-  by-version."crossroads"."0.12.2" = self.buildNodePackage {
-    name = "crossroads-0.12.2";
-    version = "0.12.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crossroads/-/crossroads-0.12.2.tgz";
-      name = "crossroads-0.12.2.tgz";
-      sha1 = "b1d5f9c1d98af3bdd61f1bda6a86dd1aee4ff8f2";
-    };
-    deps = {
-      "signals-1.0.0" = self.by-version."signals"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."crypt3".">=0.1.5 <1.0.0-0" =
-    self.by-version."crypt3"."0.2.0";
-  by-version."crypt3"."0.2.0" = self.buildNodePackage {
-    name = "crypt3-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crypt3/-/crypt3-0.2.0.tgz";
-      name = "crypt3-0.2.0.tgz";
-      sha1 = "4bd28e0770fad421fc807745c1ef3010905b2332";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."crypt3".">=0.1.6 <1.0.0-0" =
-    self.by-version."crypt3"."0.2.0";
-  by-spec."cryptiles"."0.1.x" =
-    self.by-version."cryptiles"."0.1.3";
-  by-version."cryptiles"."0.1.3" = self.buildNodePackage {
-    name = "cryptiles-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz";
-      name = "cryptiles-0.1.3.tgz";
-      sha1 = "1a556734f06d24ba34862ae9cb9e709a3afbff1c";
-    };
-    deps = {
-      "boom-0.3.8" = self.by-version."boom"."0.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cryptiles"."0.2.x" =
-    self.by-version."cryptiles"."0.2.2";
-  by-version."cryptiles"."0.2.2" = self.buildNodePackage {
-    name = "cryptiles-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz";
-      name = "cryptiles-0.2.2.tgz";
-      sha1 = "ed91ff1f17ad13d3748288594f8a48a0d26f325c";
-    };
-    deps = {
-      "boom-0.4.2" = self.by-version."boom"."0.4.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cryptiles"."2.x.x" =
-    self.by-version."cryptiles"."2.0.5";
-  by-version."cryptiles"."2.0.5" = self.buildNodePackage {
-    name = "cryptiles-2.0.5";
-    version = "2.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://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."crypto"."0.0.3" =
-    self.by-version."crypto"."0.0.3";
-  by-version."crypto"."0.0.3" = self.buildNodePackage {
-    name = "crypto-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crypto/-/crypto-0.0.3.tgz";
-      name = "crypto-0.0.3.tgz";
-      sha1 = "470a81b86be4c5ee17acc8207a1f5315ae20dbb0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."crypto-browserify"."^3.0.0" =
-    self.by-version."crypto-browserify"."3.11.0";
-  by-version."crypto-browserify"."3.11.0" = self.buildNodePackage {
-    name = "crypto-browserify-3.11.0";
-    version = "3.11.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz";
-      name = "crypto-browserify-3.11.0.tgz";
-      sha1 = "3652a0906ab9b2a7e0c3ce66a408e957a2485522";
-    };
-    deps = {
-      "browserify-cipher-1.0.0" = self.by-version."browserify-cipher"."1.0.0";
-      "browserify-sign-4.0.0" = self.by-version."browserify-sign"."4.0.0";
-      "create-ecdh-4.0.0" = self.by-version."create-ecdh"."4.0.0";
-      "create-hash-1.1.2" = self.by-version."create-hash"."1.1.2";
-      "create-hmac-1.1.4" = self.by-version."create-hmac"."1.1.4";
-      "diffie-hellman-5.0.2" = self.by-version."diffie-hellman"."5.0.2";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "pbkdf2-3.0.4" = self.by-version."pbkdf2"."3.0.4";
-      "public-encrypt-4.0.0" = self.by-version."public-encrypt"."4.0.0";
-      "randombytes-2.0.3" = self.by-version."randombytes"."2.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."crypto-browserify"."^3.11.0" =
-    self.by-version."crypto-browserify"."3.11.0";
-  by-spec."crypto-browserify"."^3.2.6" =
-    self.by-version."crypto-browserify"."3.11.0";
-  by-spec."csrf"."~3.0.0" =
-    self.by-version."csrf"."3.0.3";
-  by-version."csrf"."3.0.3" = self.buildNodePackage {
-    name = "csrf-3.0.3";
-    version = "3.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/csrf/-/csrf-3.0.3.tgz";
-      name = "csrf-3.0.3.tgz";
-      sha1 = "69d13220de95762808bb120f7533a994fc4293b5";
-    };
-    deps = {
-      "base64-url-1.2.2" = self.by-version."base64-url"."1.2.2";
-      "rndm-1.2.0" = self.by-version."rndm"."1.2.0";
-      "tsscmp-1.0.5" = self.by-version."tsscmp"."1.0.5";
-      "uid-safe-2.1.1" = self.by-version."uid-safe"."2.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."css"."~1.0.8" =
-    self.by-version."css"."1.0.8";
-  by-version."css"."1.0.8" = self.buildNodePackage {
-    name = "css-1.0.8";
-    version = "1.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/css/-/css-1.0.8.tgz";
-      name = "css-1.0.8.tgz";
-      sha1 = "9386811ca82bccc9ee7fb5a732b1e2a317c8a3e7";
-    };
-    deps = {
-      "css-parse-1.0.4" = self.by-version."css-parse"."1.0.4";
-      "css-stringify-1.0.5" = self.by-version."css-stringify"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."css-parse"."1.0.4" =
-    self.by-version."css-parse"."1.0.4";
-  by-version."css-parse"."1.0.4" = self.buildNodePackage {
-    name = "css-parse-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz";
-      name = "css-parse-1.0.4.tgz";
-      sha1 = "38b0503fbf9da9f54e9c1dbda60e145c77117bdd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."css-parse"."1.7.x" =
-    self.by-version."css-parse"."1.7.0";
-  by-version."css-parse"."1.7.0" = self.buildNodePackage {
-    name = "css-parse-1.7.0";
-    version = "1.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz";
-      name = "css-parse-1.7.0.tgz";
-      sha1 = "321f6cf73782a6ff751111390fc05e2c657d8c9b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."css-select"."~1.0.0" =
-    self.by-version."css-select"."1.0.0";
-  by-version."css-select"."1.0.0" = self.buildNodePackage {
-    name = "css-select-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz";
-      name = "css-select-1.0.0.tgz";
-      sha1 = "b1121ca51848dd264e2244d058cee254deeb44b0";
-    };
-    deps = {
-      "css-what-1.0.0" = self.by-version."css-what"."1.0.0";
-      "domutils-1.4.3" = self.by-version."domutils"."1.4.3";
-      "boolbase-1.0.0" = self.by-version."boolbase"."1.0.0";
-      "nth-check-1.0.1" = self.by-version."nth-check"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."css-stringify"."1.0.5" =
-    self.by-version."css-stringify"."1.0.5";
-  by-version."css-stringify"."1.0.5" = self.buildNodePackage {
-    name = "css-stringify-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz";
-      name = "css-stringify-1.0.5.tgz";
-      sha1 = "b0d042946db2953bb9d292900a6cb5f6d0122031";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."css-what"."1.0" =
-    self.by-version."css-what"."1.0.0";
-  by-version."css-what"."1.0.0" = self.buildNodePackage {
-    name = "css-what-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz";
-      name = "css-what-1.0.0.tgz";
-      sha1 = "d7cc2df45180666f99d2b14462639469e00f736c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."csso"."~2.0.0" =
-    self.by-version."csso"."2.0.0";
-  by-version."csso"."2.0.0" = self.buildNodePackage {
-    name = "csso-2.0.0";
-    version = "2.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz";
-      name = "csso-2.0.0.tgz";
-      sha1 = "178b43a44621221c27756086f531e02f42900ee8";
-    };
-    deps = {
-      "clap-1.1.1" = self.by-version."clap"."1.1.1";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cssom"."0.3.x" =
-    self.by-version."cssom"."0.3.1";
-  by-version."cssom"."0.3.1" = self.buildNodePackage {
-    name = "cssom-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cssom/-/cssom-0.3.1.tgz";
-      name = "cssom-0.3.1.tgz";
-      sha1 = "c9e37ef2490e64f6d1baa10fda852257082c25d3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cssom".">= 0.3.0 < 0.4.0" =
-    self.by-version."cssom"."0.3.1";
-  by-spec."cssom"."~0.3.0" =
-    self.by-version."cssom"."0.3.1";
-  by-spec."cssstyle".">= 0.2.21 < 0.3.0" =
-    self.by-version."cssstyle"."0.2.36";
-  by-version."cssstyle"."0.2.36" = self.buildNodePackage {
-    name = "cssstyle-0.2.36";
-    version = "0.2.36";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.36.tgz";
-      name = "cssstyle-0.2.36.tgz";
-      sha1 = "5cfed6b1a4526b58d77673d51b3520856fb6af3e";
-    };
-    deps = {
-      "cssom-0.3.1" = self.by-version."cssom"."0.3.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cssstyle"."~0.2.9" =
-    self.by-version."cssstyle"."0.2.36";
-  by-spec."csurf"."1.1.0" =
-    self.by-version."csurf"."1.1.0";
-  by-version."csurf"."1.1.0" = self.buildNodePackage {
-    name = "csurf-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/csurf/-/csurf-1.1.0.tgz";
-      name = "csurf-1.1.0.tgz";
-      sha1 = "5dd459df40df43b9eb828284d6d03132f42cb8b2";
-    };
-    deps = {
-      "uid2-0.0.3" = self.by-version."uid2"."0.0.3";
-      "scmp-0.0.3" = self.by-version."scmp"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."csurf"."~1.8.3" =
-    self.by-version."csurf"."1.8.3";
-  by-version."csurf"."1.8.3" = self.buildNodePackage {
-    name = "csurf-1.8.3";
-    version = "1.8.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz";
-      name = "csurf-1.8.3.tgz";
-      sha1 = "23f2a13bf1d8fce1d0c996588394442cba86a56a";
-    };
-    deps = {
-      "cookie-0.1.3" = self.by-version."cookie"."0.1.3";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-      "csrf-3.0.3" = self.by-version."csrf"."3.0.3";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."csv"."^0.4.0" =
-    self.by-version."csv"."0.4.6";
-  by-version."csv"."0.4.6" = self.buildNodePackage {
-    name = "csv-0.4.6";
-    version = "0.4.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/csv/-/csv-0.4.6.tgz";
-      name = "csv-0.4.6.tgz";
-      sha1 = "8dbae7ddfdbaae62c1ea987c3e0f8a9ac737b73d";
-    };
-    deps = {
-      "csv-generate-0.0.6" = self.by-version."csv-generate"."0.0.6";
-      "csv-parse-1.1.1" = self.by-version."csv-parse"."1.1.1";
-      "stream-transform-0.1.1" = self.by-version."stream-transform"."0.1.1";
-      "csv-stringify-0.0.8" = self.by-version."csv-stringify"."0.0.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."csv-generate"."^0.0.6" =
-    self.by-version."csv-generate"."0.0.6";
-  by-version."csv-generate"."0.0.6" = self.buildNodePackage {
-    name = "csv-generate-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/csv-generate/-/csv-generate-0.0.6.tgz";
-      name = "csv-generate-0.0.6.tgz";
-      sha1 = "97e4e63ae46b21912cd9475bc31469d26f5ade66";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."csv-parse"."^1.0.0" =
-    self.by-version."csv-parse"."1.1.1";
-  by-version."csv-parse"."1.1.1" = self.buildNodePackage {
-    name = "csv-parse-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/csv-parse/-/csv-parse-1.1.1.tgz";
-      name = "csv-parse-1.1.1.tgz";
-      sha1 = "01f9013753c4d6b8d82ccf66c6770c52d3fc438f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."csv-stringify"."^0.0.8" =
-    self.by-version."csv-stringify"."0.0.8";
-  by-version."csv-stringify"."0.0.8" = self.buildNodePackage {
-    name = "csv-stringify-0.0.8";
-    version = "0.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/csv-stringify/-/csv-stringify-0.0.8.tgz";
-      name = "csv-stringify-0.0.8.tgz";
-      sha1 = "52cc3b3dfc197758c55ad325a95be85071f9e51b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ctype"."0.5.3" =
-    self.by-version."ctype"."0.5.3";
-  by-version."ctype"."0.5.3" = self.buildNodePackage {
-    name = "ctype-0.5.3";
-    version = "0.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz";
-      name = "ctype-0.5.3.tgz";
-      sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."currently-unhandled"."^0.4.1" =
-    self.by-version."currently-unhandled"."0.4.1";
-  by-version."currently-unhandled"."0.4.1" = self.buildNodePackage {
-    name = "currently-unhandled-0.4.1";
-    version = "0.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz";
-      name = "currently-unhandled-0.4.1.tgz";
-      sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
-    };
-    deps = {
-      "array-find-index-1.0.1" = self.by-version."array-find-index"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."custom-event"."~1.0.0" =
-    self.by-version."custom-event"."1.0.0";
-  by-version."custom-event"."1.0.0" = self.buildNodePackage {
-    name = "custom-event-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/custom-event/-/custom-event-1.0.0.tgz";
-      name = "custom-event-1.0.0.tgz";
-      sha1 = "2e4628be19dc4b214b5c02630c5971e811618062";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cycle"."1.0.x" =
-    self.by-version."cycle"."1.0.3";
-  by-version."cycle"."1.0.3" = self.buildNodePackage {
-    name = "cycle-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
-      name = "cycle-1.0.3.tgz";
-      sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."cyclist"."~0.1.0" =
-    self.by-version."cyclist"."0.1.1";
-  by-version."cyclist"."0.1.1" = self.buildNodePackage {
-    name = "cyclist-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/cyclist/-/cyclist-0.1.1.tgz";
-      name = "cyclist-0.1.1.tgz";
-      sha1 = "1bcfa56b081448cdb5e12bfc1bfad34b47fba8f3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."d"."^0.1.1" =
-    self.by-version."d"."0.1.1";
-  by-version."d"."0.1.1" = self.buildNodePackage {
-    name = "d-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/d/-/d-0.1.1.tgz";
-      name = "d-0.1.1.tgz";
-      sha1 = "da184c535d18d8ee7ba2aa229b914009fae11309";
-    };
-    deps = {
-      "es5-ext-0.10.11" = self.by-version."es5-ext"."0.10.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."d"."~0.1.1" =
-    self.by-version."d"."0.1.1";
-  by-spec."dashdash"."1.10.1" =
-    self.by-version."dashdash"."1.10.1";
-  by-version."dashdash"."1.10.1" = self.buildNodePackage {
-    name = "dashdash-1.10.1";
-    version = "1.10.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dashdash/-/dashdash-1.10.1.tgz";
-      name = "dashdash-1.10.1.tgz";
-      sha1 = "0abf1af89a8f5129a81f18c2b35b21df22622f60";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dashdash"."1.7.3" =
-    self.by-version."dashdash"."1.7.3";
-  by-version."dashdash"."1.7.3" = self.buildNodePackage {
-    name = "dashdash-1.7.3";
-    version = "1.7.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dashdash/-/dashdash-1.7.3.tgz";
-      name = "dashdash-1.7.3.tgz";
-      sha1 = "bf533fedaa455ed8fee11519ebfb9ad66170dcdf";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dashdash".">=1.10.1 <2.0.0" =
-    self.by-version."dashdash"."1.14.0";
-  by-version."dashdash"."1.14.0" = self.buildNodePackage {
-    name = "dashdash-1.14.0";
-    version = "1.14.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz";
-      name = "dashdash-1.14.0.tgz";
-      sha1 = "29e486c5418bf0f356034a993d51686a33e84141";
-    };
-    deps = {
-      "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dashdash"."^1.12.0" =
-    self.by-version."dashdash"."1.14.0";
-  by-spec."dashdash"."^1.7.1" =
-    self.by-version."dashdash"."1.14.0";
-  by-spec."data-uri-to-buffer"."0" =
-    self.by-version."data-uri-to-buffer"."0.0.4";
-  by-version."data-uri-to-buffer"."0.0.4" = self.buildNodePackage {
-    name = "data-uri-to-buffer-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz";
-      name = "data-uri-to-buffer-0.0.4.tgz";
-      sha1 = "46e13ab9da8e309745c8d01ce547213ebdb2fe3f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."date-now"."^0.1.4" =
-    self.by-version."date-now"."0.1.4";
-  by-version."date-now"."0.1.4" = self.buildNodePackage {
-    name = "date-now-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz";
-      name = "date-now-0.1.4.tgz";
-      sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dateformat"."1.0.2-1.2.3" =
-    self.by-version."dateformat"."1.0.2-1.2.3";
-  by-version."dateformat"."1.0.2-1.2.3" = self.buildNodePackage {
-    name = "dateformat-1.0.2-1.2.3";
-    version = "1.0.2-1.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz";
-      name = "dateformat-1.0.2-1.2.3.tgz";
-      sha1 = "b0220c02de98617433b72851cf47de3df2cdbee9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dateformat"."1.0.7-1.2.3" =
-    self.by-version."dateformat"."1.0.7-1.2.3";
-  by-version."dateformat"."1.0.7-1.2.3" = self.buildNodePackage {
-    name = "dateformat-1.0.7-1.2.3";
-    version = "1.0.7-1.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dateformat/-/dateformat-1.0.7-1.2.3.tgz";
-      name = "dateformat-1.0.7-1.2.3.tgz";
-      sha1 = "ebb561bb7214ee57a8dc2687adab1d555de9419c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dateformat"."^1.0.11" =
-    self.by-version."dateformat"."1.0.12";
-  by-version."dateformat"."1.0.12" = self.buildNodePackage {
-    name = "dateformat-1.0.12";
-    version = "1.0.12";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz";
-      name = "dateformat-1.0.12.tgz";
-      sha1 = "9f124b67594c937ff706932e4a642cca8dbbfee9";
-    };
-    deps = {
-      "get-stdin-4.0.1" = self.by-version."get-stdin"."4.0.1";
-      "meow-3.7.0" = self.by-version."meow"."3.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dateformat"."^1.0.6" =
-    self.by-version."dateformat"."1.0.12";
-  by-spec."dateformat"."~1.0.12" =
-    self.by-version."dateformat"."1.0.12";
-  by-spec."datejs".">=0.0.2" =
-    self.by-version."datejs"."0.0.2";
-  by-version."datejs"."0.0.2" = self.buildNodePackage {
-    name = "datejs-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/datejs/-/datejs-0.0.2.tgz";
-      name = "datejs-0.0.2.tgz";
-      sha1 = "242cf2e1c7338d9502a5ae4196fd69e234211f4a";
-    };
-    deps = {
-      "vows-0.8.1" = self.by-version."vows"."0.8.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debounced-seeker"."^1.0.0" =
-    self.by-version."debounced-seeker"."1.0.0";
-  by-version."debounced-seeker"."1.0.0" = self.buildNodePackage {
-    name = "debounced-seeker-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debounced-seeker/-/debounced-seeker-1.0.0.tgz";
-      name = "debounced-seeker-1.0.0.tgz";
-      sha1 = "e74befcd1a62ae7a5e5fbfbfa6f5d2bacd962bdd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."*" =
-    self.by-version."debug"."2.2.0";
-  by-version."debug"."2.2.0" = self.buildNodePackage {
-    name = "debug-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://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."debug"."0.5.0" =
-    self.by-version."debug"."0.5.0";
-  by-version."debug"."0.5.0" = self.buildNodePackage {
-    name = "debug-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-0.5.0.tgz";
-      name = "debug-0.5.0.tgz";
-      sha1 = "9d48c946fb7d7d59807ffe07822f515fd76d7a9e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."0.6.0" =
-    self.by-version."debug"."0.6.0";
-  by-version."debug"."0.6.0" = self.buildNodePackage {
-    name = "debug-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-0.6.0.tgz";
-      name = "debug-0.6.0.tgz";
-      sha1 = "ce9d5d025d5294b3f0748a494bebaf3c9fd8734f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."0.7.4" =
-    self.by-version."debug"."0.7.4";
-  by-version."debug"."0.7.4" = self.buildNodePackage {
-    name = "debug-0.7.4";
-    version = "0.7.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz";
-      name = "debug-0.7.4.tgz";
-      sha1 = "06e1ea8082c2cb14e39806e22e2f6f757f92af39";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."0.8.0" =
-    self.by-version."debug"."0.8.0";
-  by-version."debug"."0.8.0" = self.buildNodePackage {
-    name = "debug-0.8.0";
-    version = "0.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-0.8.0.tgz";
-      name = "debug-0.8.0.tgz";
-      sha1 = "0541ea91f0e503fdf0c5eed418a32550234967f0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."1.0.2" =
-    self.by-version."debug"."1.0.2";
-  by-version."debug"."1.0.2" = self.buildNodePackage {
-    name = "debug-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-1.0.2.tgz";
-      name = "debug-1.0.2.tgz";
-      sha1 = "3849591c10cce648476c3c7c2e2e3416db5963c4";
-    };
-    deps = {
-      "ms-0.6.2" = self.by-version."ms"."0.6.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."1.0.3" =
-    self.by-version."debug"."1.0.3";
-  by-version."debug"."1.0.3" = self.buildNodePackage {
-    name = "debug-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-1.0.3.tgz";
-      name = "debug-1.0.3.tgz";
-      sha1 = "fc8c6b2d6002804b4081c0208e0f6460ba1fa3e4";
-    };
-    deps = {
-      "ms-0.6.2" = self.by-version."ms"."0.6.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."2" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug"."2.2.0" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug"."2.x.x" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug".">= 0.7.0" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug".">= 0.7.3 < 1" =
-    self.by-version."debug"."0.8.1";
-  by-version."debug"."0.8.1" = self.buildNodePackage {
-    name = "debug-0.8.1";
-    version = "0.8.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz";
-      name = "debug-0.8.1.tgz";
-      sha1 = "20ff4d26f5e422cb68a1bacbbb61039ad8c1c130";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."^1.0.2" =
-    self.by-version."debug"."1.0.4";
-  by-version."debug"."1.0.4" = self.buildNodePackage {
-    name = "debug-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz";
-      name = "debug-1.0.4.tgz";
-      sha1 = "5b9c256bd54b6ec02283176fa8a0ede6d154cbf8";
-    };
-    deps = {
-      "ms-0.6.2" = self.by-version."ms"."0.6.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."^2.0.0" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug"."^2.1.0" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug"."^2.1.1" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug"."^2.1.2" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug"."^2.1.3" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug"."^2.2.0" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debug"."~1.0.1" =
-    self.by-version."debug"."1.0.4";
-  by-spec."debug"."~2.0.0" =
-    self.by-version."debug"."2.0.0";
-  by-version."debug"."2.0.0" = self.buildNodePackage {
-    name = "debug-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-2.0.0.tgz";
-      name = "debug-2.0.0.tgz";
-      sha1 = "89bd9df6732b51256bc6705342bba02ed12131ef";
-    };
-    deps = {
-      "ms-0.6.2" = self.by-version."ms"."0.6.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."~2.1.1" =
-    self.by-version."debug"."2.1.3";
-  by-version."debug"."2.1.3" = self.buildNodePackage {
-    name = "debug-2.1.3";
-    version = "2.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz";
-      name = "debug-2.1.3.tgz";
-      sha1 = "ce8ab1b5ee8fbee2bfa3b633cab93d366b63418e";
-    };
-    deps = {
-      "ms-0.7.0" = self.by-version."ms"."0.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debug"."~2.2.0" =
-    self.by-version."debug"."2.2.0";
-  by-spec."debuglog"."*" =
-    self.by-version."debuglog"."1.0.1";
-  by-version."debuglog"."1.0.1" = self.buildNodePackage {
-    name = "debuglog-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz";
-      name = "debuglog-1.0.1.tgz";
-      sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."debuglog"."^1.0.1" =
-    self.by-version."debuglog"."1.0.1";
-  by-spec."decamelize"."^1.0.0" =
-    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 = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
-      name = "decamelize-1.2.0.tgz";
-      sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."decamelize"."^1.1.1" =
-    self.by-version."decamelize"."1.2.0";
-  by-spec."decamelize"."^1.1.2" =
-    self.by-version."decamelize"."1.2.0";
-  by-spec."deep-eql"."^0.1.3" =
-    self.by-version."deep-eql"."0.1.3";
-  by-version."deep-eql"."0.1.3" = self.buildNodePackage {
-    name = "deep-eql-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz";
-      name = "deep-eql-0.1.3.tgz";
-      sha1 = "ef558acab8de25206cd713906d74e56930eb69f2";
-    };
-    deps = {
-      "type-detect-0.1.1" = self.by-version."type-detect"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."deep-equal"."*" =
-    self.by-version."deep-equal"."1.0.1";
-  by-version."deep-equal"."1.0.1" = self.buildNodePackage {
-    name = "deep-equal-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz";
-      name = "deep-equal-1.0.1.tgz";
-      sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."deep-equal"."^1.0.0" =
-    self.by-version."deep-equal"."1.0.1";
-  by-spec."deep-equal"."^1.0.1" =
-    self.by-version."deep-equal"."1.0.1";
-  by-spec."deep-equal"."~0.1.0" =
-    self.by-version."deep-equal"."0.1.2";
-  by-version."deep-equal"."0.1.2" = self.buildNodePackage {
-    name = "deep-equal-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz";
-      name = "deep-equal-0.1.2.tgz";
-      sha1 = "b246c2b80a570a47c11be1d9bd1070ec878b87ce";
-    };
-    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 = "https://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.2.5" =
-    self.by-version."deep-extend"."0.2.11";
-  by-version."deep-extend"."0.2.11" = self.buildNodePackage {
-    name = "deep-extend-0.2.11";
-    version = "0.2.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz";
-      name = "deep-extend-0.2.11.tgz";
-      sha1 = "7a16ba69729132340506170494bc83f7076fe08f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."deep-extend"."~0.4.0" =
-    self.by-version."deep-extend"."0.4.1";
-  by-spec."deep-is"."~0.1.3" =
-    self.by-version."deep-is"."0.1.3";
-  by-version."deep-is"."0.1.3" = self.buildNodePackage {
-    name = "deep-is-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
-      name = "deep-is-0.1.3.tgz";
-      sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."deepmerge"."*" =
-    self.by-version."deepmerge"."0.2.10";
-  by-version."deepmerge"."0.2.10" = self.buildNodePackage {
-    name = "deepmerge-0.2.10";
-    version = "0.2.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deepmerge/-/deepmerge-0.2.10.tgz";
-      name = "deepmerge-0.2.10.tgz";
-      sha1 = "8906bf9e525a4fbf1b203b2afcb4640249821219";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "deepmerge" = self.by-version."deepmerge"."0.2.10";
-  by-spec."default-browser-id"."^1.0.4" =
-    self.by-version."default-browser-id"."1.0.4";
-  by-version."default-browser-id"."1.0.4" = self.buildNodePackage {
-    name = "default-browser-id-1.0.4";
-    version = "1.0.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/default-browser-id/-/default-browser-id-1.0.4.tgz";
-      name = "default-browser-id-1.0.4.tgz";
-      sha1 = "e59d09a5d157b828b876c26816e61c3d2a2c203a";
-    };
-    deps = {
-      "bplist-parser-0.1.1" = self.by-version."bplist-parser"."0.1.1";
-      "meow-3.7.0" = self.by-version."meow"."3.7.0";
-      "untildify-2.1.0" = self.by-version."untildify"."2.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."defaultable"."~0.7.2" =
-    self.by-version."defaultable"."0.7.2";
-  by-version."defaultable"."0.7.2" = self.buildNodePackage {
-    name = "defaultable-0.7.2";
-    version = "0.7.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/defaultable/-/defaultable-0.7.2.tgz";
-      name = "defaultable-0.7.2.tgz";
-      sha1 = "7c1564ca14f9eca4c4127a539790777d44085bd7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."defaults"."^1.0.0" =
-    self.by-version."defaults"."1.0.3";
-  by-version."defaults"."1.0.3" = self.buildNodePackage {
-    name = "defaults-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz";
-      name = "defaults-1.0.3.tgz";
-      sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
-    };
-    deps = {
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."defaults"."^1.0.3" =
-    self.by-version."defaults"."1.0.3";
-  by-spec."deferred-leveldown"."~0.2.0" =
-    self.by-version."deferred-leveldown"."0.2.0";
-  by-version."deferred-leveldown"."0.2.0" = self.buildNodePackage {
-    name = "deferred-leveldown-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz";
-      name = "deferred-leveldown-0.2.0.tgz";
-      sha1 = "2cef1f111e1c57870d8bbb8af2650e587cd2f5b4";
-    };
-    deps = {
-      "abstract-leveldown-0.12.4" = self.by-version."abstract-leveldown"."0.12.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."defined"."^1.0.0" =
-    self.by-version."defined"."1.0.0";
-  by-version."defined"."1.0.0" = self.buildNodePackage {
-    name = "defined-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz";
-      name = "defined-1.0.0.tgz";
-      sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."defined"."~0.0.0" =
-    self.by-version."defined"."0.0.0";
-  by-version."defined"."0.0.0" = self.buildNodePackage {
-    name = "defined-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz";
-      name = "defined-0.0.0.tgz";
-      sha1 = "f35eea7d705e933baf13b2f03b3f83d921403b3e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."defs"."~1.1.0" =
-    self.by-version."defs"."1.1.1";
-  by-version."defs"."1.1.1" = self.buildNodePackage {
-    name = "defs-1.1.1";
-    version = "1.1.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz";
-      name = "defs-1.1.1.tgz";
-      sha1 = "b22609f2c7a11ba7a3db116805c139b1caffa9d2";
-    };
-    deps = {
-      "alter-0.2.0" = self.by-version."alter"."0.2.0";
-      "ast-traverse-0.1.1" = self.by-version."ast-traverse"."0.1.1";
-      "breakable-1.0.0" = self.by-version."breakable"."1.0.0";
-      "esprima-fb-15001.1001.0-dev-harmony-fb" = self.by-version."esprima-fb"."15001.1001.0-dev-harmony-fb";
-      "simple-fmt-0.1.0" = self.by-version."simple-fmt"."0.1.0";
-      "simple-is-0.2.0" = self.by-version."simple-is"."0.2.0";
-      "stringmap-0.2.2" = self.by-version."stringmap"."0.2.2";
-      "stringset-0.2.1" = self.by-version."stringset"."0.2.1";
-      "tryor-0.1.2" = self.by-version."tryor"."0.1.2";
-      "yargs-3.27.0" = self.by-version."yargs"."3.27.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."degenerator"."~1.0.0" =
-    self.by-version."degenerator"."1.0.2";
-  by-version."degenerator"."1.0.2" = self.buildNodePackage {
-    name = "degenerator-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/degenerator/-/degenerator-1.0.2.tgz";
-      name = "degenerator-1.0.2.tgz";
-      sha1 = "c22222c8115cb22f3bfeee0a7b55843f1677caaa";
-    };
-    deps = {
-      "esprima-2.3.0" = self.by-version."esprima"."2.3.0";
-      "escodegen-1.3.3" = self.by-version."escodegen"."1.3.3";
-      "ast-types-0.3.38" = self.by-version."ast-types"."0.3.38";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."del"."^2.0.2" =
-    self.by-version."del"."2.2.0";
-  by-version."del"."2.2.0" = self.buildNodePackage {
-    name = "del-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/del/-/del-2.2.0.tgz";
-      name = "del-2.2.0.tgz";
-      sha1 = "9a50f04bf37325e283b4f44e985336c252456bd5";
-    };
-    deps = {
-      "globby-4.1.0" = self.by-version."globby"."4.1.0";
-      "is-path-cwd-1.0.0" = self.by-version."is-path-cwd"."1.0.0";
-      "is-path-in-cwd-1.0.0" = self.by-version."is-path-in-cwd"."1.0.0";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "pify-2.3.0" = self.by-version."pify"."2.3.0";
-      "pinkie-promise-2.0.1" = self.by-version."pinkie-promise"."2.0.1";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."delayed-stream"."0.0.5" =
-    self.by-version."delayed-stream"."0.0.5";
-  by-version."delayed-stream"."0.0.5" = self.buildNodePackage {
-    name = "delayed-stream-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
-      name = "delayed-stream-0.0.5.tgz";
-      sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f";
-    };
-    deps = {
-    };
-    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 = "https://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."delegates"."^1.0.0" =
-    self.by-version."delegates"."1.0.0";
-  by-version."delegates"."1.0.0" = self.buildNodePackage {
-    name = "delegates-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
-      name = "delegates-1.0.0.tgz";
-      sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dep-graph"."1.1.0" =
-    self.by-version."dep-graph"."1.1.0";
-  by-version."dep-graph"."1.1.0" = self.buildNodePackage {
-    name = "dep-graph-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz";
-      name = "dep-graph-1.1.0.tgz";
-      sha1 = "fade86a92799a813e9b42511cdf3dfa6cc8dbefe";
-    };
-    deps = {
-      "underscore-1.2.1" = self.by-version."underscore"."1.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."depd"."0.3.0" =
-    self.by-version."depd"."0.3.0";
-  by-version."depd"."0.3.0" = self.buildNodePackage {
-    name = "depd-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/depd/-/depd-0.3.0.tgz";
-      name = "depd-0.3.0.tgz";
-      sha1 = "11c9bc28e425325fbd8b38940beff69fa5326883";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."depd"."0.4.2" =
-    self.by-version."depd"."0.4.2";
-  by-version."depd"."0.4.2" = self.buildNodePackage {
-    name = "depd-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/depd/-/depd-0.4.2.tgz";
-      name = "depd-0.4.2.tgz";
-      sha1 = "a4bc8a0e4801770a66363daa6d35138f3e3b54dd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."depd"."0.4.5" =
-    self.by-version."depd"."0.4.5";
-  by-version."depd"."0.4.5" = self.buildNodePackage {
-    name = "depd-0.4.5";
-    version = "0.4.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/depd/-/depd-0.4.5.tgz";
-      name = "depd-0.4.5.tgz";
-      sha1 = "1a664b53388b4a6573e8ae67b5f767c693ca97f1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."depd".">= 0.4.0" =
-    self.by-version."depd"."1.1.0";
-  by-version."depd"."1.1.0" = self.buildNodePackage {
-    name = "depd-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz";
-      name = "depd-1.1.0.tgz";
-      sha1 = "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."depd"."~1.0.1" =
-    self.by-version."depd"."1.0.1";
-  by-version."depd"."1.0.1" = self.buildNodePackage {
-    name = "depd-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz";
-      name = "depd-1.0.1.tgz";
-      sha1 = "80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."depd"."~1.1.0" =
-    self.by-version."depd"."1.1.0";
-  by-spec."dependency-ls"."^1.0.0" =
-    self.by-version."dependency-ls"."1.0.0";
-  by-version."dependency-ls"."1.0.0" = self.buildNodePackage {
-    name = "dependency-ls-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dependency-ls/-/dependency-ls-1.0.0.tgz";
-      name = "dependency-ls-1.0.0.tgz";
-      sha1 = "311dc9fa9a840bee4c6ca33954556e5cf09cb5c9";
-    };
-    deps = {
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."deprecate"."^0.1.0" =
-    self.by-version."deprecate"."0.1.0";
-  by-version."deprecate"."0.1.0" = self.buildNodePackage {
-    name = "deprecate-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deprecate/-/deprecate-0.1.0.tgz";
-      name = "deprecate-0.1.0.tgz";
-      sha1 = "c49058612dc6c8e5145eafe4839b8c2c7d041c14";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."deprecated"."^0.0.1" =
-    self.by-version."deprecated"."0.0.1";
-  by-version."deprecated"."0.0.1" = self.buildNodePackage {
-    name = "deprecated-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz";
-      name = "deprecated-0.0.1.tgz";
-      sha1 = "f9c9af5464afa1e7a971458a8bdef2aa94d5bb19";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."deps-sort"."^1.3.7" =
-    self.by-version."deps-sort"."1.3.9";
-  by-version."deps-sort"."1.3.9" = self.buildNodePackage {
-    name = "deps-sort-1.3.9";
-    version = "1.3.9";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deps-sort/-/deps-sort-1.3.9.tgz";
-      name = "deps-sort-1.3.9.tgz";
-      sha1 = "29dfff53e17b36aecae7530adbbbf622c2ed1a71";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "shasum-1.0.2" = self.by-version."shasum"."1.0.2";
-      "subarg-1.0.0" = self.by-version."subarg"."1.0.0";
-      "through2-1.1.1" = self.by-version."through2"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."deps-sort"."^2.0.0" =
-    self.by-version."deps-sort"."2.0.0";
-  by-version."deps-sort"."2.0.0" = self.buildNodePackage {
-    name = "deps-sort-2.0.0";
-    version = "2.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz";
-      name = "deps-sort-2.0.0.tgz";
-      sha1 = "091724902e84658260eb910748cccd1af6e21fb5";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "shasum-1.0.2" = self.by-version."shasum"."1.0.2";
-      "subarg-1.0.0" = self.by-version."subarg"."1.0.0";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."des.js"."^1.0.0" =
-    self.by-version."des.js"."1.0.0";
-  by-version."des.js"."1.0.0" = self.buildNodePackage {
-    name = "des.js-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz";
-      name = "des.js-1.0.0.tgz";
-      sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "minimalistic-assert-1.0.0" = self.by-version."minimalistic-assert"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."destroy"."1.0.3" =
-    self.by-version."destroy"."1.0.3";
-  by-version."destroy"."1.0.3" = self.buildNodePackage {
-    name = "destroy-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz";
-      name = "destroy-1.0.3.tgz";
-      sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."destroy"."~1.0.4" =
-    self.by-version."destroy"."1.0.4";
-  by-version."destroy"."1.0.4" = self.buildNodePackage {
-    name = "destroy-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
-      name = "destroy-1.0.4.tgz";
-      sha1 = "978857442c44749e4206613e37946205826abd80";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."detective"."^4.0.0" =
-    self.by-version."detective"."4.3.1";
-  by-version."detective"."4.3.1" = self.buildNodePackage {
-    name = "detective-4.3.1";
-    version = "4.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/detective/-/detective-4.3.1.tgz";
-      name = "detective-4.3.1.tgz";
-      sha1 = "9fb06dd1ee8f0ea4dbcc607cda39d9ce1d4f726f";
-    };
-    deps = {
-      "acorn-1.2.2" = self.by-version."acorn"."1.2.2";
-      "defined-1.0.0" = self.by-version."defined"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."detective"."^4.3.1" =
-    self.by-version."detective"."4.3.1";
-  by-spec."dezalgo"."^1.0.0" =
-    self.by-version."dezalgo"."1.0.3";
-  by-version."dezalgo"."1.0.3" = self.buildNodePackage {
-    name = "dezalgo-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz";
-      name = "dezalgo-1.0.3.tgz";
-      sha1 = "7f742de066fc748bc8db820569dddce49bf0d456";
-    };
-    deps = {
-      "asap-2.0.4" = self.by-version."asap"."2.0.4";
-      "wrappy-1.0.2" = self.by-version."wrappy"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dezalgo"."^1.0.1" =
-    self.by-version."dezalgo"."1.0.3";
-  by-spec."dezalgo"."^1.0.2" =
-    self.by-version."dezalgo"."1.0.3";
-  by-spec."dezalgo"."~1.0.3" =
-    self.by-version."dezalgo"."1.0.3";
-  by-spec."di"."^0.0.1" =
-    self.by-version."di"."0.0.1";
-  by-version."di"."0.0.1" = self.buildNodePackage {
-    name = "di-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/di/-/di-0.0.1.tgz";
-      name = "di-0.0.1.tgz";
-      sha1 = "806649326ceaa7caa3306d75d985ea2748ba913c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dicer"."0.2.5" =
-    self.by-version."dicer"."0.2.5";
-  by-version."dicer"."0.2.5" = self.buildNodePackage {
-    name = "dicer-0.2.5";
-    version = "0.2.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz";
-      name = "dicer-0.2.5.tgz";
-      sha1 = "5996c086bb33218c812c090bddc09cd12facb70f";
-    };
-    deps = {
-      "streamsearch-0.1.2" = self.by-version."streamsearch"."0.1.2";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    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 = "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz";
-      name = "diff-1.4.0.tgz";
-      sha1 = "7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."diff"."2.1.0" =
-    self.by-version."diff"."2.1.0";
-  by-version."diff"."2.1.0" = self.buildNodePackage {
-    name = "diff-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/diff/-/diff-2.1.0.tgz";
-      name = "diff-2.1.0.tgz";
-      sha1 = "39b5aa97f0d1600b428ad0a91dc8efcc9b29e288";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."diff"."2.2.*" =
-    self.by-version."diff"."2.2.3";
-  by-version."diff"."2.2.3" = self.buildNodePackage {
-    name = "diff-2.2.3";
-    version = "2.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz";
-      name = "diff-2.2.3.tgz";
-      sha1 = "60eafd0d28ee906e4e8ff0a52c1229521033bf99";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."diff"."~1.0.7" =
-    self.by-version."diff"."1.0.8";
-  by-version."diff"."1.0.8" = self.buildNodePackage {
-    name = "diff-1.0.8";
-    version = "1.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/diff/-/diff-1.0.8.tgz";
-      name = "diff-1.0.8.tgz";
-      sha1 = "343276308ec991b7bc82267ed55bc1411f971666";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."diff"."~1.0.8" =
-    self.by-version."diff"."1.0.8";
-  by-spec."diff2html"."~1.2.0" =
-    self.by-version."diff2html"."1.2.0";
-  by-version."diff2html"."1.2.0" = self.buildNodePackage {
-    name = "diff2html-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/diff2html/-/diff2html-1.2.0.tgz";
-      name = "diff2html-1.2.0.tgz";
-      sha1 = "8b54af41c180befd9cb1caa130a3d76081ae4a07";
-    };
-    deps = {
-      "diff-2.2.3" = self.by-version."diff"."2.2.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."diffie-hellman"."^5.0.0" =
-    self.by-version."diffie-hellman"."5.0.2";
-  by-version."diffie-hellman"."5.0.2" = self.buildNodePackage {
-    name = "diffie-hellman-5.0.2";
-    version = "5.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz";
-      name = "diffie-hellman-5.0.2.tgz";
-      sha1 = "b5835739270cfe26acf632099fded2a07f209e5e";
-    };
-    deps = {
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "miller-rabin-4.0.0" = self.by-version."miller-rabin"."4.0.0";
-      "randombytes-2.0.3" = self.by-version."randombytes"."2.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."directmail"."~0.1.7" =
-    self.by-version."directmail"."0.1.8";
-  by-version."directmail"."0.1.8" = self.buildNodePackage {
-    name = "directmail-0.1.8";
-    version = "0.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/directmail/-/directmail-0.1.8.tgz";
-      name = "directmail-0.1.8.tgz";
-      sha1 = "e4852c8a0c5519bef4904fcd96d760822f42a446";
-    };
-    deps = {
-      "simplesmtp-0.3.35" = self.by-version."simplesmtp"."0.3.35";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."director"."1.2.7" =
-    self.by-version."director"."1.2.7";
-  by-version."director"."1.2.7" = self.buildNodePackage {
-    name = "director-1.2.7";
-    version = "1.2.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/director/-/director-1.2.7.tgz";
-      name = "director-1.2.7.tgz";
-      sha1 = "bfd3741075fd7fb1a5b2e13658c5f4bec77736f3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dkim-signer"."~0.1.1" =
-    self.by-version."dkim-signer"."0.1.2";
-  by-version."dkim-signer"."0.1.2" = self.buildNodePackage {
-    name = "dkim-signer-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dkim-signer/-/dkim-signer-0.1.2.tgz";
-      name = "dkim-signer-0.1.2.tgz";
-      sha1 = "2ff5d61c87d8fbff5a8b131cffc5ec3ba1c25553";
-    };
-    deps = {
-      "punycode-1.2.4" = self.by-version."punycode"."1.2.4";
-      "mimelib-0.2.19" = self.by-version."mimelib"."0.2.19";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dns"."^0.2.2" =
-    self.by-version."dns"."0.2.2";
-  by-version."dns"."0.2.2" = self.buildNodePackage {
-    name = "dns-0.2.2";
-    version = "0.2.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dns/-/dns-0.2.2.tgz";
-      name = "dns-0.2.2.tgz";
-      sha1 = "a8477ca26b835842c3125204d8cbcdd6af98c9ec";
-    };
-    deps = {
-      "winston-0.7.3" = self.by-version."winston"."0.7.3";
-      "hbo-dnsd-0.9.8" = self.by-version."hbo-dnsd"."0.9.8";
-      "native-dns-0.6.1" = self.by-version."native-dns"."0.6.1";
-      "node-options-0.0.6" = self.by-version."node-options"."0.0.6";
-      "tomahawk-0.1.6" = self.by-version."tomahawk"."0.1.6";
-      "tomahawk-plugin-kv-memory-store-0.0.3" = self.by-version."tomahawk-plugin-kv-memory-store"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dns-equal"."^1.0.0" =
-    self.by-version."dns-equal"."1.0.0";
-  by-version."dns-equal"."1.0.0" = self.buildNodePackage {
-    name = "dns-equal-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz";
-      name = "dns-equal-1.0.0.tgz";
-      sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dns-packet"."^1.0.1" =
-    self.by-version."dns-packet"."1.1.0";
-  by-version."dns-packet"."1.1.0" = self.buildNodePackage {
-    name = "dns-packet-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.1.0.tgz";
-      name = "dns-packet-1.1.0.tgz";
-      sha1 = "c11ce43bd9977aa789af72de06b6e4ad6e84730d";
-    };
-    deps = {
-      "ip-1.1.3" = self.by-version."ip"."1.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dns-txt"."^2.0.2" =
-    self.by-version."dns-txt"."2.0.2";
-  by-version."dns-txt"."2.0.2" = self.buildNodePackage {
-    name = "dns-txt-2.0.2";
-    version = "2.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz";
-      name = "dns-txt-2.0.2.tgz";
-      sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
-    };
-    deps = {
-      "buffer-indexof-1.0.0" = self.by-version."buffer-indexof"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."docker-parse-image"."^3.0.1" =
-    self.by-version."docker-parse-image"."3.0.1";
-  by-version."docker-parse-image"."3.0.1" = self.buildNodePackage {
-    name = "docker-parse-image-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/docker-parse-image/-/docker-parse-image-3.0.1.tgz";
-      name = "docker-parse-image-3.0.1.tgz";
-      sha1 = "33dc69291eac3414f84871f2d59d77b6f6948be4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."docker-registry-server"."*" =
-    self.by-version."docker-registry-server"."2.2.0";
-  by-version."docker-registry-server"."2.2.0" = self.buildNodePackage {
-    name = "docker-registry-server-2.2.0";
-    version = "2.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/docker-registry-server/-/docker-registry-server-2.2.0.tgz";
-      name = "docker-registry-server-2.2.0.tgz";
-      sha1 = "5b98836cd7f0348f7f472f7f5a42dd3cab231731";
-    };
-    deps = {
-      "JSONStream-0.8.4" = self.by-version."JSONStream"."0.8.4";
-      "basic-auth-1.0.4" = self.by-version."basic-auth"."1.0.4";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-      "cors-2.7.1" = self.by-version."cors"."2.7.1";
-      "docker-parse-image-3.0.1" = self.by-version."docker-parse-image"."3.0.1";
-      "end-of-stream-1.1.0" = self.by-version."end-of-stream"."1.1.0";
-      "from2-1.3.0" = self.by-version."from2"."1.3.0";
-      "fs-blob-store-5.2.1" = self.by-version."fs-blob-store"."5.2.1";
-      "level-0.18.0" = self.by-version."level"."0.18.0";
-      "level-sublevel-6.5.4" = self.by-version."level-sublevel"."6.5.4";
-      "leveldown-0.10.6" = self.by-version."leveldown"."0.10.6";
-      "levelup-0.18.6" = self.by-version."levelup"."0.18.6";
-      "lexicographic-integer-1.1.0" = self.by-version."lexicographic-integer"."1.1.0";
-      "memdown-0.10.2" = self.by-version."memdown"."0.10.2";
-      "minimist-0.2.0" = self.by-version."minimist"."0.2.0";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "ndjson-1.4.3" = self.by-version."ndjson"."1.4.3";
-      "pump-1.0.1" = self.by-version."pump"."1.0.1";
-      "pumpify-1.3.4" = self.by-version."pumpify"."1.3.4";
-      "relative-date-1.1.3" = self.by-version."relative-date"."1.1.3";
-      "root-2.0.0" = self.by-version."root"."2.0.0";
-      "sorted-union-stream-1.0.2" = self.by-version."sorted-union-stream"."1.0.2";
-      "split2-0.2.1" = self.by-version."split2"."0.2.1";
-      "stream-collector-1.0.1" = self.by-version."stream-collector"."1.0.1";
-      "tar-stream-1.5.2" = self.by-version."tar-stream"."1.5.2";
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-      "thunky-0.1.0" = self.by-version."thunky"."0.1.0";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "docker-registry-server" = self.by-version."docker-registry-server"."2.2.0";
-  by-spec."doctrine"."^1.2.2" =
-    self.by-version."doctrine"."1.2.2";
-  by-version."doctrine"."1.2.2" = self.buildNodePackage {
-    name = "doctrine-1.2.2";
-    version = "1.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/doctrine/-/doctrine-1.2.2.tgz";
-      name = "doctrine-1.2.2.tgz";
-      sha1 = "9e9867210149548b95ec51469dae4caad312308e";
-    };
-    deps = {
-      "esutils-1.1.6" = self.by-version."esutils"."1.1.6";
-      "isarray-1.0.0" = self.by-version."isarray"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dom-serialize"."^2.2.0" =
-    self.by-version."dom-serialize"."2.2.1";
-  by-version."dom-serialize"."2.2.1" = self.buildNodePackage {
-    name = "dom-serialize-2.2.1";
-    version = "2.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz";
-      name = "dom-serialize-2.2.1.tgz";
-      sha1 = "562ae8999f44be5ea3076f5419dcd59eb43ac95b";
-    };
-    deps = {
-      "custom-event-1.0.0" = self.by-version."custom-event"."1.0.0";
-      "ent-2.2.0" = self.by-version."ent"."2.2.0";
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-      "void-elements-2.0.1" = self.by-version."void-elements"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dom-serializer"."0" =
-    self.by-version."dom-serializer"."0.1.0";
-  by-version."dom-serializer"."0.1.0" = self.buildNodePackage {
-    name = "dom-serializer-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz";
-      name = "dom-serializer-0.1.0.tgz";
-      sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
-    };
-    deps = {
-      "domelementtype-1.1.3" = self.by-version."domelementtype"."1.1.3";
-      "entities-1.1.1" = self.by-version."entities"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dom-serializer"."~0.0.0" =
-    self.by-version."dom-serializer"."0.0.1";
-  by-version."dom-serializer"."0.0.1" = self.buildNodePackage {
-    name = "dom-serializer-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.0.1.tgz";
-      name = "dom-serializer-0.0.1.tgz";
-      sha1 = "9589827f1e32d22c37c829adabd59b3247af8eaf";
-    };
-    deps = {
-      "domelementtype-1.1.3" = self.by-version."domelementtype"."1.1.3";
-      "entities-1.1.1" = self.by-version."entities"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dom-serializer"."~0.1.0" =
-    self.by-version."dom-serializer"."0.1.0";
-  by-spec."domain-browser"."^1.1.1" =
-    self.by-version."domain-browser"."1.1.7";
-  by-version."domain-browser"."1.1.7" = self.buildNodePackage {
-    name = "domain-browser-1.1.7";
-    version = "1.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz";
-      name = "domain-browser-1.1.7.tgz";
-      sha1 = "867aa4b093faa05f1de08c06f4d7b21fdf8698bc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domain-browser"."~1.1.0" =
-    self.by-version."domain-browser"."1.1.7";
-  by-spec."domelementtype"."1" =
-    self.by-version."domelementtype"."1.3.0";
-  by-version."domelementtype"."1.3.0" = self.buildNodePackage {
-    name = "domelementtype-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz";
-      name = "domelementtype-1.3.0.tgz";
-      sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domelementtype"."^1.3.0" =
-    self.by-version."domelementtype"."1.3.0";
-  by-spec."domelementtype"."~1.1.1" =
-    self.by-version."domelementtype"."1.1.3";
-  by-version."domelementtype"."1.1.3" = self.buildNodePackage {
-    name = "domelementtype-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz";
-      name = "domelementtype-1.1.3.tgz";
-      sha1 = "bd28773e2642881aec51544924299c5cd822185b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domhandler"."2.2" =
-    self.by-version."domhandler"."2.2.1";
-  by-version."domhandler"."2.2.1" = self.buildNodePackage {
-    name = "domhandler-2.2.1";
-    version = "2.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domhandler/-/domhandler-2.2.1.tgz";
-      name = "domhandler-2.2.1.tgz";
-      sha1 = "59df9dcd227e808b365ae73e1f6684ac3d946fc2";
-    };
-    deps = {
-      "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domhandler"."2.3" =
-    self.by-version."domhandler"."2.3.0";
-  by-version."domhandler"."2.3.0" = self.buildNodePackage {
-    name = "domhandler-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz";
-      name = "domhandler-2.3.0.tgz";
-      sha1 = "2de59a0822d5027fabff6f032c2b25a2a8abe738";
-    };
-    deps = {
-      "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domhandler"."^2.3.0" =
-    self.by-version."domhandler"."2.3.0";
-  by-spec."domino"."~1.0.19" =
-    self.by-version."domino"."1.0.25";
-  by-version."domino"."1.0.25" = self.buildNodePackage {
-    name = "domino-1.0.25";
-    version = "1.0.25";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domino/-/domino-1.0.25.tgz";
-      name = "domino-1.0.25.tgz";
-      sha1 = "adcd6da0505ba5103cba64a0cb38e2bb9e3a052d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domready"."0.3.0" =
-    self.by-version."domready"."0.3.0";
-  by-version."domready"."0.3.0" = self.buildNodePackage {
-    name = "domready-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domready/-/domready-0.3.0.tgz";
-      name = "domready-0.3.0.tgz";
-      sha1 = "b3740facbd09163018152d12aec239383e102175";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domutils"."1.4" =
-    self.by-version."domutils"."1.4.3";
-  by-version."domutils"."1.4.3" = self.buildNodePackage {
-    name = "domutils-1.4.3";
-    version = "1.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz";
-      name = "domutils-1.4.3.tgz";
-      sha1 = "0865513796c6b306031850e175516baf80b72a6f";
-    };
-    deps = {
-      "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domutils"."1.5" =
-    self.by-version."domutils"."1.5.1";
-  by-version."domutils"."1.5.1" = self.buildNodePackage {
-    name = "domutils-1.5.1";
-    version = "1.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz";
-      name = "domutils-1.5.1.tgz";
-      sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
-    };
-    deps = {
-      "dom-serializer-0.1.0" = self.by-version."dom-serializer"."0.1.0";
-      "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."domutils"."^1.5.1" =
-    self.by-version."domutils"."1.5.1";
-  by-spec."double-ended-queue"."^2.1.0-0" =
-    self.by-version."double-ended-queue"."2.1.0-0";
-  by-version."double-ended-queue"."2.1.0-0" = self.buildNodePackage {
-    name = "double-ended-queue-2.1.0-0";
-    version = "2.1.0-0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz";
-      name = "double-ended-queue-2.1.0-0.tgz";
-      sha1 = "103d3527fd31528f40188130c841efdd78264e5c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dropbox"."=0.9.2" =
-    self.by-version."dropbox"."0.9.2";
-  by-version."dropbox"."0.9.2" = self.buildNodePackage {
-    name = "dropbox-0.9.2";
-    version = "0.9.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dropbox/-/dropbox-0.9.2.tgz";
-      name = "dropbox-0.9.2.tgz";
-      sha1 = "b516a0483d136c16dd52acf729687e87578425cb";
-    };
-    deps = {
-      "open-0.0.5" = self.by-version."open"."0.0.5";
-      "xhr2-0.1.3" = self.by-version."xhr2"."0.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dtrace-provider"."0.2.8" =
-    self.by-version."dtrace-provider"."0.2.8";
-  by-version."dtrace-provider"."0.2.8" = self.buildNodePackage {
-    name = "dtrace-provider-0.2.8";
-    version = "0.2.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.2.8.tgz";
-      name = "dtrace-provider-0.2.8.tgz";
-      sha1 = "e243f19219aa95fbf0d8f2ffb07f5bd64e94fe20";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dtrace-provider"."^0.6.0" =
-    self.by-version."dtrace-provider"."0.6.0";
-  by-version."dtrace-provider"."0.6.0" = self.buildNodePackage {
-    name = "dtrace-provider-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz";
-      name = "dtrace-provider-0.6.0.tgz";
-      sha1 = "0b078d5517937d873101452d9146737557b75e51";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."dtrace-provider"."~0.6" =
-    self.by-version."dtrace-provider"."0.6.0";
-  by-spec."duplexer"."~0.1.1" =
-    self.by-version."duplexer"."0.1.1";
-  by-version."duplexer"."0.1.1" = self.buildNodePackage {
-    name = "duplexer-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz";
-      name = "duplexer-0.1.1.tgz";
-      sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."duplexer2"."0.0.2" =
-    self.by-version."duplexer2"."0.0.2";
-  by-version."duplexer2"."0.0.2" = self.buildNodePackage {
-    name = "duplexer2-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz";
-      name = "duplexer2-0.0.2.tgz";
-      sha1 = "c614dcf67e2fb14995a91711e5a617e8a60a31db";
-    };
-    deps = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."duplexer2"."^0.1.2" =
-    self.by-version."duplexer2"."0.1.4";
-  by-version."duplexer2"."0.1.4" = self.buildNodePackage {
-    name = "duplexer2-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz";
-      name = "duplexer2-0.1.4.tgz";
-      sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
-    };
-    deps = {
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."duplexer2"."~0.0.2" =
-    self.by-version."duplexer2"."0.0.2";
-  by-spec."duplexer2"."~0.1.0" =
-    self.by-version."duplexer2"."0.1.4";
-  by-spec."duplexer2"."~0.1.2" =
-    self.by-version."duplexer2"."0.1.4";
-  by-spec."duplexify"."^3.1.2" =
-    self.by-version."duplexify"."3.4.3";
-  by-version."duplexify"."3.4.3" = self.buildNodePackage {
-    name = "duplexify-3.4.3";
-    version = "3.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://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.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."duplexify"."^3.2.0" =
-    self.by-version."duplexify"."3.4.3";
-  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 = "https://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."ecc-jsbn"."~0.1.1" =
-    self.by-version."ecc-jsbn"."0.1.1";
-  by-spec."ecdsa-sig-formatter"."^1.0.0" =
-    self.by-version."ecdsa-sig-formatter"."1.0.5";
-  by-version."ecdsa-sig-formatter"."1.0.5" = self.buildNodePackage {
-    name = "ecdsa-sig-formatter-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.5.tgz";
-      name = "ecdsa-sig-formatter-1.0.5.tgz";
-      sha1 = "0d0f32b638611f6b8f36ffd305a3e512ea5444e6";
-    };
-    deps = {
-      "base64-url-1.2.2" = self.by-version."base64-url"."1.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ecurve"."1.0.0" =
-    self.by-version."ecurve"."1.0.0";
-  by-version."ecurve"."1.0.0" = self.buildNodePackage {
-    name = "ecurve-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ecurve/-/ecurve-1.0.0.tgz";
-      name = "ecurve-1.0.0.tgz";
-      sha1 = "32cfd5ce5f421e9351206a33d4e3cfd36f3465a4";
-    };
-    deps = {
-      "bigi-1.4.1" = self.by-version."bigi"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."edit-google-spreadsheet".">=0.0.1" =
-    self.by-version."edit-google-spreadsheet"."0.2.21";
-  by-version."edit-google-spreadsheet"."0.2.21" = self.buildNodePackage {
-    name = "edit-google-spreadsheet-0.2.21";
-    version = "0.2.21";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/edit-google-spreadsheet/-/edit-google-spreadsheet-0.2.21.tgz";
-      name = "edit-google-spreadsheet-0.2.21.tgz";
-      sha1 = "36a249bb2773c5642b8cba70c31bfb19b421eadc";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "colors-1.1.2" = self.by-version."colors"."1.1.2";
-      "google-auth-library-0.9.8" = self.by-version."google-auth-library"."0.9.8";
-      "google-oauth-jwt-0.1.7" = self.by-version."google-oauth-jwt"."0.1.7";
-      "googleclientlogin-0.2.8" = self.by-version."googleclientlogin"."0.2.8";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "xml2js-0.4.16" = self.by-version."xml2js"."0.4.16";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."editor"."~1.0.0" =
-    self.by-version."editor"."1.0.0";
-  by-version."editor"."1.0.0" = self.buildNodePackage {
-    name = "editor-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz";
-      name = "editor-1.0.0.tgz";
-      sha1 = "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ee-first"."1.0.3" =
-    self.by-version."ee-first"."1.0.3";
-  by-version."ee-first"."1.0.3" = self.buildNodePackage {
-    name = "ee-first-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ee-first/-/ee-first-1.0.3.tgz";
-      name = "ee-first-1.0.3.tgz";
-      sha1 = "6c98c4089abecb5a7b85c1ac449aa603d3b3dabe";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ee-first"."1.0.5" =
-    self.by-version."ee-first"."1.0.5";
-  by-version."ee-first"."1.0.5" = self.buildNodePackage {
-    name = "ee-first-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz";
-      name = "ee-first-1.0.5.tgz";
-      sha1 = "8c9b212898d8cd9f1a9436650ce7be202c9e9ff0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ee-first"."1.1.0" =
-    self.by-version."ee-first"."1.1.0";
-  by-version."ee-first"."1.1.0" = self.buildNodePackage {
-    name = "ee-first-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz";
-      name = "ee-first-1.1.0.tgz";
-      sha1 = "6a0d7c6221e490feefd92ec3f441c9ce8cd097f4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ee-first"."1.1.1" =
-    self.by-version."ee-first"."1.1.1";
-  by-version."ee-first"."1.1.1" = self.buildNodePackage {
-    name = "ee-first-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
-      name = "ee-first-1.1.1.tgz";
-      sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ejs"."0.7.1" =
-    self.by-version."ejs"."0.7.1";
-  by-version."ejs"."0.7.1" = self.buildNodePackage {
-    name = "ejs-0.7.1";
-    version = "0.7.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ejs/-/ejs-0.7.1.tgz";
-      name = "ejs-0.7.1.tgz";
-      sha1 = "6dab41cbdee572986db328a2a8d22040f20fba7c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ejs"."0.8.3" =
-    self.by-version."ejs"."0.8.3";
-  by-version."ejs"."0.8.3" = self.buildNodePackage {
-    name = "ejs-0.8.3";
-    version = "0.8.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ejs/-/ejs-0.8.3.tgz";
-      name = "ejs-0.8.3.tgz";
-      sha1 = "db8aac47ff80a7df82b4c82c126fe8970870626f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ejs".">=0.7.1" =
-    self.by-version."ejs"."2.4.2";
-  by-version."ejs"."2.4.2" = self.buildNodePackage {
-    name = "ejs-2.4.2";
-    version = "2.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ejs/-/ejs-2.4.2.tgz";
-      name = "ejs-2.4.2.tgz";
-      sha1 = "7057eb4812958fb731841cd9ca353343efe597b1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."elementtree"."0.1.6" =
-    self.by-version."elementtree"."0.1.6";
-  by-version."elementtree"."0.1.6" = self.buildNodePackage {
-    name = "elementtree-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz";
-      name = "elementtree-0.1.6.tgz";
-      sha1 = "2ac4c46ea30516c8c4cbdb5e3ac7418e592de20c";
-    };
-    deps = {
-      "sax-0.3.5" = self.by-version."sax"."0.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."elementtree"."^0.1.6" =
-    self.by-version."elementtree"."0.1.6";
-  by-spec."elliptic"."^6.0.0" =
-    self.by-version."elliptic"."6.2.8";
-  by-version."elliptic"."6.2.8" = self.buildNodePackage {
-    name = "elliptic-6.2.8";
-    version = "6.2.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/elliptic/-/elliptic-6.2.8.tgz";
-      name = "elliptic-6.2.8.tgz";
-      sha1 = "44a25b3d1550bebb74d0b6d22d89940206b51739";
-    };
-    deps = {
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "brorand-1.0.5" = self.by-version."brorand"."1.0.5";
-      "hash.js-1.0.3" = self.by-version."hash.js"."1.0.3";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."embedly".">=1.0.2" =
-    self.by-version."embedly"."2.0.1";
-  by-version."embedly"."2.0.1" = self.buildNodePackage {
-    name = "embedly-2.0.1";
-    version = "2.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/embedly/-/embedly-2.0.1.tgz";
-      name = "embedly-2.0.1.tgz";
-      sha1 = "90db472fc54001299c518ffe5468fef93526f301";
-    };
-    deps = {
-      "batbelt-0.0.2" = self.by-version."batbelt"."0.0.2";
-      "superagent-1.8.3" = self.by-version."superagent"."1.8.3";
-      "sprintf-0.1.1" = self.by-version."sprintf"."0.1.1";
-      "hashish-0.0.4" = self.by-version."hashish"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."emitter"."http://github.com/component/emitter/archive/1.0.1.tar.gz" =
-    self.by-version."emitter"."1.0.1";
-  by-version."emitter"."1.0.1" = self.buildNodePackage {
-    name = "emitter-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "http://github.com/component/emitter/archive/1.0.1.tar.gz";
-      name = "emitter-1.0.1.tgz";
-      sha256 = "0eae744826723877457f7a7ac7f31d68a5a060673b3a883f6a8e325bf48f313d";
-    };
-    deps = {
-      "indexof-0.0.1" = self.by-version."indexof"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."emojis-list"."^2.0.0" =
-    self.by-version."emojis-list"."2.0.1";
-  by-version."emojis-list"."2.0.1" = self.buildNodePackage {
-    name = "emojis-list-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/emojis-list/-/emojis-list-2.0.1.tgz";
-      name = "emojis-list-2.0.1.tgz";
-      sha1 = "a174d9d0838eb36af3d0590bb6d3e8dcd94f4fbd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."encodeurl"."~1.0.1" =
-    self.by-version."encodeurl"."1.0.1";
-  by-version."encodeurl"."1.0.1" = self.buildNodePackage {
-    name = "encodeurl-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz";
-      name = "encodeurl-1.0.1.tgz";
-      sha1 = "79e3d58655346909fe6f0f45a5de68103b294d20";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."encoding"."^0.1.11" =
-    self.by-version."encoding"."0.1.12";
-  by-version."encoding"."0.1.12" = self.buildNodePackage {
-    name = "encoding-0.1.12";
-    version = "0.1.12";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz";
-      name = "encoding-0.1.12.tgz";
-      sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
-    };
-    deps = {
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."encoding"."~0.1.7" =
-    self.by-version."encoding"."0.1.12";
-  by-spec."end-of-stream"."1.0.0" =
-    self.by-version."end-of-stream"."1.0.0";
-  by-version."end-of-stream"."1.0.0" = self.buildNodePackage {
-    name = "end-of-stream-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz";
-      name = "end-of-stream-1.0.0.tgz";
-      sha1 = "d4596e702734a93e40e9af864319eabd99ff2f0e";
-    };
-    deps = {
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."end-of-stream"."^0.1.4" =
-    self.by-version."end-of-stream"."0.1.5";
-  by-version."end-of-stream"."0.1.5" = self.buildNodePackage {
-    name = "end-of-stream-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz";
-      name = "end-of-stream-0.1.5.tgz";
-      sha1 = "8e177206c3c80837d85632e8b9359dfe8b2f6eaf";
-    };
-    deps = {
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."end-of-stream"."^1.0.0" =
-    self.by-version."end-of-stream"."1.1.0";
-  by-version."end-of-stream"."1.1.0" = self.buildNodePackage {
-    name = "end-of-stream-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz";
-      name = "end-of-stream-1.1.0.tgz";
-      sha1 = "e9353258baa9108965efc41cb0ef8ade2f3cfb07";
-    };
-    deps = {
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."end-of-stream"."^1.1.0" =
-    self.by-version."end-of-stream"."1.1.0";
-  by-spec."end-of-stream"."~0.1.5" =
-    self.by-version."end-of-stream"."0.1.5";
-  by-spec."end-of-stream"."~1.0.0" =
-    self.by-version."end-of-stream"."1.0.0";
-  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 = "https://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."engine.io"."1.3.1" =
-    self.by-version."engine.io"."1.3.1";
-  by-version."engine.io"."1.3.1" = self.buildNodePackage {
-    name = "engine.io-1.3.1";
-    version = "1.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/engine.io/-/engine.io-1.3.1.tgz";
-      name = "engine.io-1.3.1.tgz";
-      sha1 = "2d968308fffae5d17f5209b6775246e90d8a705e";
-    };
-    deps = {
-      "debug-0.6.0" = self.by-version."debug"."0.6.0";
-      "ws-0.4.31" = self.by-version."ws"."0.4.31";
-      "engine.io-parser-1.0.6" = self.by-version."engine.io-parser"."1.0.6";
-      "base64id-0.1.0" = self.by-version."base64id"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."engine.io"."1.6.9" =
-    self.by-version."engine.io"."1.6.9";
-  by-version."engine.io"."1.6.9" = self.buildNodePackage {
-    name = "engine.io-1.6.9";
-    version = "1.6.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/engine.io/-/engine.io-1.6.9.tgz";
-      name = "engine.io-1.6.9.tgz";
-      sha1 = "1fe2fe827adb5d6f296e1002403edfa046bb6975";
-    };
-    deps = {
-      "base64id-0.1.0" = self.by-version."base64id"."0.1.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "ws-1.0.1" = self.by-version."ws"."1.0.1";
-      "engine.io-parser-1.2.4" = self.by-version."engine.io-parser"."1.2.4";
-      "accepts-1.1.4" = self.by-version."accepts"."1.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."engine.io-client"."1.3.1" =
-    self.by-version."engine.io-client"."1.3.1";
-  by-version."engine.io-client"."1.3.1" = self.buildNodePackage {
-    name = "engine.io-client-1.3.1";
-    version = "1.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.3.1.tgz";
-      name = "engine.io-client-1.3.1.tgz";
-      sha1 = "1c5a65d5c5af6d04b44c22c3dbcd95c39ed1c989";
-    };
-    deps = {
-      "has-cors-1.0.3" = self.by-version."has-cors"."1.0.3";
-      "ws-0.4.31" = self.by-version."ws"."0.4.31";
-      "xmlhttprequest-1.5.0" = self.by-version."xmlhttprequest"."1.5.0";
-      "component-emitter-1.1.2" = self.by-version."component-emitter"."1.1.2";
-      "indexof-0.0.1" = self.by-version."indexof"."0.0.1";
-      "engine.io-parser-1.0.6" = self.by-version."engine.io-parser"."1.0.6";
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-      "parseuri-0.0.2" = self.by-version."parseuri"."0.0.2";
-      "parsejson-0.0.1" = self.by-version."parsejson"."0.0.1";
-      "parseqs-0.0.2" = self.by-version."parseqs"."0.0.2";
-      "component-inherit-0.0.3" = self.by-version."component-inherit"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."engine.io-client"."1.6.9" =
-    self.by-version."engine.io-client"."1.6.9";
-  by-version."engine.io-client"."1.6.9" = self.buildNodePackage {
-    name = "engine.io-client-1.6.9";
-    version = "1.6.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz";
-      name = "engine.io-client-1.6.9.tgz";
-      sha1 = "1d6ad48048a5083c95096943b29d36efdb212401";
-    };
-    deps = {
-      "has-cors-1.1.0" = self.by-version."has-cors"."1.1.0";
-      "ws-1.0.1" = self.by-version."ws"."1.0.1";
-      "xmlhttprequest-ssl-1.5.1" = self.by-version."xmlhttprequest-ssl"."1.5.1";
-      "component-emitter-1.1.2" = self.by-version."component-emitter"."1.1.2";
-      "indexof-0.0.1" = self.by-version."indexof"."0.0.1";
-      "engine.io-parser-1.2.4" = self.by-version."engine.io-parser"."1.2.4";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "parseuri-0.0.4" = self.by-version."parseuri"."0.0.4";
-      "parsejson-0.0.1" = self.by-version."parsejson"."0.0.1";
-      "parseqs-0.0.2" = self.by-version."parseqs"."0.0.2";
-      "component-inherit-0.0.3" = self.by-version."component-inherit"."0.0.3";
-      "yeast-0.1.2" = self.by-version."yeast"."0.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."engine.io-parser"."1.0.6" =
-    self.by-version."engine.io-parser"."1.0.6";
-  by-version."engine.io-parser"."1.0.6" = self.buildNodePackage {
-    name = "engine.io-parser-1.0.6";
-    version = "1.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.6.tgz";
-      name = "engine.io-parser-1.0.6.tgz";
-      sha1 = "d38813143a411cb3b914132ab05bf99e6f7a248e";
-    };
-    deps = {
-      "base64-arraybuffer-0.1.2" = self.by-version."base64-arraybuffer"."0.1.2";
-      "after-0.8.1" = self.by-version."after"."0.8.1";
-      "arraybuffer.slice-0.0.6" = self.by-version."arraybuffer.slice"."0.0.6";
-      "blob-0.0.2" = self.by-version."blob"."0.0.2";
-      "utf8-2.0.0" = self.by-version."utf8"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."engine.io-parser"."1.2.4" =
-    self.by-version."engine.io-parser"."1.2.4";
-  by-version."engine.io-parser"."1.2.4" = self.buildNodePackage {
-    name = "engine.io-parser-1.2.4";
-    version = "1.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz";
-      name = "engine.io-parser-1.2.4.tgz";
-      sha1 = "e0897b0bf14e792d4cd2a5950553919c56948c42";
-    };
-    deps = {
-      "after-0.8.1" = self.by-version."after"."0.8.1";
-      "arraybuffer.slice-0.0.6" = self.by-version."arraybuffer.slice"."0.0.6";
-      "base64-arraybuffer-0.1.2" = self.by-version."base64-arraybuffer"."0.1.2";
-      "blob-0.0.4" = self.by-version."blob"."0.0.4";
-      "has-binary-0.1.6" = self.by-version."has-binary"."0.1.6";
-      "utf8-2.1.0" = self.by-version."utf8"."2.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."enhanced-resolve"."^0.9.1" =
-    self.by-version."enhanced-resolve"."0.9.1";
-  by-version."enhanced-resolve"."0.9.1" = self.buildNodePackage {
-    name = "enhanced-resolve-0.9.1";
-    version = "0.9.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz";
-      name = "enhanced-resolve-0.9.1.tgz";
-      sha1 = "4d6e689b3725f86090927ccc86cd9f1635b89e2e";
-    };
-    deps = {
-      "tapable-0.1.10" = self.by-version."tapable"."0.1.10";
-      "memory-fs-0.2.0" = self.by-version."memory-fs"."0.2.0";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."enhanced-resolve"."^2.2.0" =
-    self.by-version."enhanced-resolve"."2.2.2";
-  by-version."enhanced-resolve"."2.2.2" = self.buildNodePackage {
-    name = "enhanced-resolve-2.2.2";
-    version = "2.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-2.2.2.tgz";
-      name = "enhanced-resolve-2.2.2.tgz";
-      sha1 = "4da494d591183308bd46a95f5b40e255dc9d4a16";
-    };
-    deps = {
-      "tapable-0.2.4" = self.by-version."tapable"."0.2.4";
-      "memory-fs-0.3.0" = self.by-version."memory-fs"."0.3.0";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ent"."~2.2.0" =
-    self.by-version."ent"."2.2.0";
-  by-version."ent"."2.2.0" = self.buildNodePackage {
-    name = "ent-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz";
-      name = "ent-2.2.0.tgz";
-      sha1 = "e964219325a21d05f44466a2f686ed6ce5f5dd1d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."entities"."1.0" =
-    self.by-version."entities"."1.0.0";
-  by-version."entities"."1.0.0" = self.buildNodePackage {
-    name = "entities-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz";
-      name = "entities-1.0.0.tgz";
-      sha1 = "b2987aa3821347fcde642b24fdfc9e4fb712bf26";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."entities"."^1.1.1" =
-    self.by-version."entities"."1.1.1";
-  by-version."entities"."1.1.1" = self.buildNodePackage {
-    name = "entities-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz";
-      name = "entities-1.1.1.tgz";
-      sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."entities"."~1.1.1" =
-    self.by-version."entities"."1.1.1";
-  by-spec."errno"."^0.1.1" =
-    self.by-version."errno"."0.1.4";
-  by-version."errno"."0.1.4" = self.buildNodePackage {
-    name = "errno-0.1.4";
-    version = "0.1.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz";
-      name = "errno-0.1.4.tgz";
-      sha1 = "b896e23a9e5e8ba33871fc996abd3635fc9a1c7d";
-    };
-    deps = {
-      "prr-0.0.0" = self.by-version."prr"."0.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."errno"."^0.1.3" =
-    self.by-version."errno"."0.1.4";
-  by-spec."errno"."~0.1.1" =
-    self.by-version."errno"."0.1.4";
-  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 = "https://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-spec."errorhandler"."1.0.0" =
-    self.by-version."errorhandler"."1.0.0";
-  by-version."errorhandler"."1.0.0" = self.buildNodePackage {
-    name = "errorhandler-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/errorhandler/-/errorhandler-1.0.0.tgz";
-      name = "errorhandler-1.0.0.tgz";
-      sha1 = "d74b37e8dc38c99afb3f5a79edcebaea022d042a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."errorhandler"."1.1.1" =
-    self.by-version."errorhandler"."1.1.1";
-  by-version."errorhandler"."1.1.1" = self.buildNodePackage {
-    name = "errorhandler-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/errorhandler/-/errorhandler-1.1.1.tgz";
-      name = "errorhandler-1.1.1.tgz";
-      sha1 = "18defd436d8ca2efe0a2d886c5c4d6ee6d76d691";
-    };
-    deps = {
-      "accepts-1.0.7" = self.by-version."accepts"."1.0.7";
-      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."errorhandler"."^1.1.1" =
-    self.by-version."errorhandler"."1.4.3";
-  by-version."errorhandler"."1.4.3" = self.buildNodePackage {
-    name = "errorhandler-1.4.3";
-    version = "1.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz";
-      name = "errorhandler-1.4.3.tgz";
-      sha1 = "b7b70ed8f359e9db88092f2d20c0f831420ad83f";
-    };
-    deps = {
-      "accepts-1.3.3" = self.by-version."accepts"."1.3.3";
-      "escape-html-1.0.3" = self.by-version."escape-html"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."errorhandler"."~1.4.2" =
-    self.by-version."errorhandler"."1.4.3";
-  by-spec."errs"."0.3.x" =
-    self.by-version."errs"."0.3.2";
-  by-version."errs"."0.3.2" = self.buildNodePackage {
-    name = "errs-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/errs/-/errs-0.3.2.tgz";
-      name = "errs-0.3.2.tgz";
-      sha1 = "798099b2dbd37ca2bc749e538a7c1307d0b50499";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es5-ext"."^0.10.7" =
-    self.by-version."es5-ext"."0.10.11";
-  by-version."es5-ext"."0.10.11" = self.buildNodePackage {
-    name = "es5-ext-0.10.11";
-    version = "0.10.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.11.tgz";
-      name = "es5-ext-0.10.11.tgz";
-      sha1 = "8184c3e705a820948c2dbe043849379b1dbd0c45";
-    };
-    deps = {
-      "es6-iterator-2.0.0" = self.by-version."es6-iterator"."2.0.0";
-      "es6-symbol-3.0.2" = self.by-version."es6-symbol"."3.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es5-ext"."^0.10.8" =
-    self.by-version."es5-ext"."0.10.11";
-  by-spec."es5-ext"."~0.10.10" =
-    self.by-version."es5-ext"."0.10.11";
-  by-spec."es5-ext"."~0.10.11" =
-    self.by-version."es5-ext"."0.10.11";
-  by-spec."es5-ext"."~0.10.2" =
-    self.by-version."es5-ext"."0.10.11";
-  by-spec."es5-ext"."~0.10.7" =
-    self.by-version."es5-ext"."0.10.11";
-  by-spec."es6-collections"."^0.5.6" =
-    self.by-version."es6-collections"."0.5.6";
-  by-version."es6-collections"."0.5.6" = self.buildNodePackage {
-    name = "es6-collections-0.5.6";
-    version = "0.5.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-collections/-/es6-collections-0.5.6.tgz";
-      name = "es6-collections-0.5.6.tgz";
-      sha1 = "5552e800ad12c1820cda2bd4a79ae7dbb03d89a2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-iterator"."2" =
-    self.by-version."es6-iterator"."2.0.0";
-  by-version."es6-iterator"."2.0.0" = self.buildNodePackage {
-    name = "es6-iterator-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz";
-      name = "es6-iterator-2.0.0.tgz";
-      sha1 = "bd968567d61635e33c0b80727613c9cb4b096bac";
-    };
-    deps = {
-      "d-0.1.1" = self.by-version."d"."0.1.1";
-      "es5-ext-0.10.11" = self.by-version."es5-ext"."0.10.11";
-      "es6-symbol-3.1.0" = self.by-version."es6-symbol"."3.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-map"."^0.1.3" =
-    self.by-version."es6-map"."0.1.4";
-  by-version."es6-map"."0.1.4" = self.buildNodePackage {
-    name = "es6-map-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.4.tgz";
-      name = "es6-map-0.1.4.tgz";
-      sha1 = "a34b147be224773a4d7da8072794cefa3632b897";
-    };
-    deps = {
-      "d-0.1.1" = self.by-version."d"."0.1.1";
-      "es5-ext-0.10.11" = self.by-version."es5-ext"."0.10.11";
-      "es6-iterator-2.0.0" = self.by-version."es6-iterator"."2.0.0";
-      "es6-set-0.1.4" = self.by-version."es6-set"."0.1.4";
-      "es6-symbol-3.1.0" = self.by-version."es6-symbol"."3.1.0";
-      "event-emitter-0.3.4" = self.by-version."event-emitter"."0.3.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-promise"."2.1.1" =
-    self.by-version."es6-promise"."2.1.1";
-  by-version."es6-promise"."2.1.1" = self.buildNodePackage {
-    name = "es6-promise-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-promise/-/es6-promise-2.1.1.tgz";
-      name = "es6-promise-2.1.1.tgz";
-      sha1 = "03e8f3c7297928e5478d6ab1d0643251507bdedd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-promise"."3.0.2" =
-    self.by-version."es6-promise"."3.0.2";
-  by-version."es6-promise"."3.0.2" = self.buildNodePackage {
-    name = "es6-promise-3.0.2";
-    version = "3.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz";
-      name = "es6-promise-3.0.2.tgz";
-      sha1 = "010d5858423a5f118979665f46486a95c6ee2bb6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-promise"."^2.0.0" =
-    self.by-version."es6-promise"."2.3.0";
-  by-version."es6-promise"."2.3.0" = self.buildNodePackage {
-    name = "es6-promise-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz";
-      name = "es6-promise-2.3.0.tgz";
-      sha1 = "96edb9f2fdb01995822b263dd8aadab6748181bc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-promise"."^3.0.2" =
-    self.by-version."es6-promise"."3.2.1";
-  by-version."es6-promise"."3.2.1" = self.buildNodePackage {
-    name = "es6-promise-3.2.1";
-    version = "3.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz";
-      name = "es6-promise-3.2.1.tgz";
-      sha1 = "ec56233868032909207170c39448e24449dd1fc4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-set"."~0.1.3" =
-    self.by-version."es6-set"."0.1.4";
-  by-version."es6-set"."0.1.4" = self.buildNodePackage {
-    name = "es6-set-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz";
-      name = "es6-set-0.1.4.tgz";
-      sha1 = "9516b6761c2964b92ff479456233a247dc707ce8";
-    };
-    deps = {
-      "d-0.1.1" = self.by-version."d"."0.1.1";
-      "es5-ext-0.10.11" = self.by-version."es5-ext"."0.10.11";
-      "es6-iterator-2.0.0" = self.by-version."es6-iterator"."2.0.0";
-      "es6-symbol-3.1.0" = self.by-version."es6-symbol"."3.1.0";
-      "event-emitter-0.3.4" = self.by-version."event-emitter"."0.3.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-shim"."0.21.x" =
-    self.by-version."es6-shim"."0.21.1";
-  by-version."es6-shim"."0.21.1" = self.buildNodePackage {
-    name = "es6-shim-0.21.1";
-    version = "0.21.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-shim/-/es6-shim-0.21.1.tgz";
-      name = "es6-shim-0.21.1.tgz";
-      sha1 = "6621bce72e1ac80a6e1f002abd4e789f12489fd2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-shim".">=0.10.0 <1.0.0-0" =
-    self.by-version."es6-shim"."0.35.1";
-  by-version."es6-shim"."0.35.1" = self.buildNodePackage {
-    name = "es6-shim-0.35.1";
-    version = "0.35.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.1.tgz";
-      name = "es6-shim-0.35.1.tgz";
-      sha1 = "a23524009005b031ab4a352ac196dfdfd1144ab7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-symbol"."3" =
-    self.by-version."es6-symbol"."3.1.0";
-  by-version."es6-symbol"."3.1.0" = self.buildNodePackage {
-    name = "es6-symbol-3.1.0";
-    version = "3.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz";
-      name = "es6-symbol-3.1.0.tgz";
-      sha1 = "94481c655e7a7cad82eba832d97d5433496d7ffa";
-    };
-    deps = {
-      "d-0.1.1" = self.by-version."d"."0.1.1";
-      "es5-ext-0.10.11" = self.by-version."es5-ext"."0.10.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-symbol"."^3.0.2" =
-    self.by-version."es6-symbol"."3.1.0";
-  by-spec."es6-symbol"."~3.0.2" =
-    self.by-version."es6-symbol"."3.0.2";
-  by-version."es6-symbol"."3.0.2" = self.buildNodePackage {
-    name = "es6-symbol-3.0.2";
-    version = "3.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.0.2.tgz";
-      name = "es6-symbol-3.0.2.tgz";
-      sha1 = "1e928878c6f5e63541625b4bb4df4af07d154219";
-    };
-    deps = {
-      "d-0.1.1" = self.by-version."d"."0.1.1";
-      "es5-ext-0.10.11" = self.by-version."es5-ext"."0.10.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."es6-symbol"."~3.1.0" =
-    self.by-version."es6-symbol"."3.1.0";
-  by-spec."es6-weak-map"."^2.0.1" =
-    self.by-version."es6-weak-map"."2.0.1";
-  by-version."es6-weak-map"."2.0.1" = self.buildNodePackage {
-    name = "es6-weak-map-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz";
-      name = "es6-weak-map-2.0.1.tgz";
-      sha1 = "0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81";
-    };
-    deps = {
-      "d-0.1.1" = self.by-version."d"."0.1.1";
-      "es5-ext-0.10.11" = self.by-version."es5-ext"."0.10.11";
-      "es6-iterator-2.0.0" = self.by-version."es6-iterator"."2.0.0";
-      "es6-symbol-3.1.0" = self.by-version."es6-symbol"."3.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."escape-html"."*" =
-    self.by-version."escape-html"."1.0.3";
-  by-version."escape-html"."1.0.3" = self.buildNodePackage {
-    name = "escape-html-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
-      name = "escape-html-1.0.3.tgz";
-      sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "escape-html" = self.by-version."escape-html"."1.0.3";
-  by-spec."escape-html"."1.0.1" =
-    self.by-version."escape-html"."1.0.1";
-  by-version."escape-html"."1.0.1" = self.buildNodePackage {
-    name = "escape-html-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz";
-      name = "escape-html-1.0.1.tgz";
-      sha1 = "181a286ead397a39a92857cfb1d43052e356bff0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."escape-html"."1.0.2" =
-    self.by-version."escape-html"."1.0.2";
-  by-version."escape-html"."1.0.2" = self.buildNodePackage {
-    name = "escape-html-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz";
-      name = "escape-html-1.0.2.tgz";
-      sha1 = "d77d32fa98e38c2f41ae85e9278e0e0e6ba1022c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."escape-html"."~1.0.3" =
-    self.by-version."escape-html"."1.0.3";
-  by-spec."escape-regexp-component"."^1.0.2" =
-    self.by-version."escape-regexp-component"."1.0.2";
-  by-version."escape-regexp-component"."1.0.2" = self.buildNodePackage {
-    name = "escape-regexp-component-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz";
-      name = "escape-regexp-component-1.0.2.tgz";
-      sha1 = "9c63b6d0b25ff2a88c3adbd18c5b61acc3b9faa2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."escape-string-regexp"."1.0.2" =
-    self.by-version."escape-string-regexp"."1.0.2";
-  by-version."escape-string-regexp"."1.0.2" = self.buildNodePackage {
-    name = "escape-string-regexp-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz";
-      name = "escape-string-regexp-1.0.2.tgz";
-      sha1 = "4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."escape-string-regexp"."^1.0.0" =
-    self.by-version."escape-string-regexp"."1.0.5";
-  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 = "https://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."escape-string-regexp"."^1.0.2" =
-    self.by-version."escape-string-regexp"."1.0.5";
-  by-spec."escape-string-regexp"."^1.0.5" =
-    self.by-version."escape-string-regexp"."1.0.5";
-  by-spec."escodegen"."1.8.x" =
-    self.by-version."escodegen"."1.8.0";
-  by-version."escodegen"."1.8.0" = self.buildNodePackage {
-    name = "escodegen-1.8.0";
-    version = "1.8.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/escodegen/-/escodegen-1.8.0.tgz";
-      name = "escodegen-1.8.0.tgz";
-      sha1 = "b246aae829ce73d59e2c55727359edd1c130a81b";
-    };
-    deps = {
-      "estraverse-1.9.3" = self.by-version."estraverse"."1.9.3";
-      "esutils-2.0.2" = self.by-version."esutils"."2.0.2";
-      "esprima-2.7.2" = self.by-version."esprima"."2.7.2";
-      "optionator-0.8.1" = self.by-version."optionator"."0.8.1";
-    };
-    optionalDependencies = {
-      "source-map-0.2.0" = self.by-version."source-map"."0.2.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."escodegen"."^1.6.1" =
-    self.by-version."escodegen"."1.8.0";
-  by-spec."escodegen"."^1.8.0" =
-    self.by-version."escodegen"."1.8.0";
-  by-spec."escodegen"."~1.3.1" =
-    self.by-version."escodegen"."1.3.3";
-  by-version."escodegen"."1.3.3" = self.buildNodePackage {
-    name = "escodegen-1.3.3";
-    version = "1.3.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz";
-      name = "escodegen-1.3.3.tgz";
-      sha1 = "f024016f5a88e046fd12005055e939802e6c5f23";
-    };
-    deps = {
-      "esutils-1.0.0" = self.by-version."esutils"."1.0.0";
-      "estraverse-1.5.1" = self.by-version."estraverse"."1.5.1";
-      "esprima-1.1.1" = self.by-version."esprima"."1.1.1";
-    };
-    optionalDependencies = {
-      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."escope"."^3.6.0" =
-    self.by-version."escope"."3.6.0";
-  by-version."escope"."3.6.0" = self.buildNodePackage {
-    name = "escope-3.6.0";
-    version = "3.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz";
-      name = "escope-3.6.0.tgz";
-      sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3";
-    };
-    deps = {
-      "es6-map-0.1.4" = self.by-version."es6-map"."0.1.4";
-      "es6-weak-map-2.0.1" = self.by-version."es6-weak-map"."2.0.1";
-      "esrecurse-4.1.0" = self.by-version."esrecurse"."4.1.0";
-      "estraverse-4.2.0" = self.by-version."estraverse"."4.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."eslint"."*" =
-    self.by-version."eslint"."2.12.0";
-  by-version."eslint"."2.12.0" = self.buildNodePackage {
-    name = "eslint-2.12.0";
-    version = "2.12.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-2.12.0.tgz";
-      name = "eslint-2.12.0.tgz";
-      sha1 = "96d36a3c7ff89fa9655cf3bc24ea7a10296762a6";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "doctrine-1.2.2" = self.by-version."doctrine"."1.2.2";
-      "es6-map-0.1.4" = self.by-version."es6-map"."0.1.4";
-      "escope-3.6.0" = self.by-version."escope"."3.6.0";
-      "espree-3.1.4" = self.by-version."espree"."3.1.4";
-      "estraverse-4.2.0" = self.by-version."estraverse"."4.2.0";
-      "esutils-2.0.2" = self.by-version."esutils"."2.0.2";
-      "file-entry-cache-1.2.4" = self.by-version."file-entry-cache"."1.2.4";
-      "glob-7.0.3" = self.by-version."glob"."7.0.3";
-      "globals-9.8.0" = self.by-version."globals"."9.8.0";
-      "ignore-3.1.2" = self.by-version."ignore"."3.1.2";
-      "imurmurhash-0.1.4" = self.by-version."imurmurhash"."0.1.4";
-      "inquirer-0.12.0" = self.by-version."inquirer"."0.12.0";
-      "is-my-json-valid-2.13.1" = self.by-version."is-my-json-valid"."2.13.1";
-      "is-resolvable-1.0.0" = self.by-version."is-resolvable"."1.0.0";
-      "js-yaml-3.6.1" = self.by-version."js-yaml"."3.6.1";
-      "json-stable-stringify-1.0.1" = self.by-version."json-stable-stringify"."1.0.1";
-      "levn-0.3.0" = self.by-version."levn"."0.3.0";
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "optionator-0.8.1" = self.by-version."optionator"."0.8.1";
-      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
-      "path-is-inside-1.0.1" = self.by-version."path-is-inside"."1.0.1";
-      "pluralize-1.2.1" = self.by-version."pluralize"."1.2.1";
-      "progress-1.1.8" = self.by-version."progress"."1.1.8";
-      "require-uncached-1.0.2" = self.by-version."require-uncached"."1.0.2";
-      "shelljs-0.6.0" = self.by-version."shelljs"."0.6.0";
-      "strip-json-comments-1.0.4" = self.by-version."strip-json-comments"."1.0.4";
-      "table-3.7.8" = self.by-version."table"."3.7.8";
-      "text-table-0.2.0" = self.by-version."text-table"."0.2.0";
-      "user-home-2.0.0" = self.by-version."user-home"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "eslint" = self.by-version."eslint"."2.12.0";
-  by-spec."eslint".">0.7.3" =
-    self.by-version."eslint"."2.12.0";
-  by-spec."espree"."3.1.4" =
-    self.by-version."espree"."3.1.4";
-  by-version."espree"."3.1.4" = self.buildNodePackage {
-    name = "espree-3.1.4";
-    version = "3.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/espree/-/espree-3.1.4.tgz";
-      name = "espree-3.1.4.tgz";
-      sha1 = "0726d7ac83af97a7c8498da9b363a3609d2a68a1";
-    };
-    deps = {
-      "acorn-3.2.0" = self.by-version."acorn"."3.2.0";
-      "acorn-jsx-3.0.1" = self.by-version."acorn-jsx"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esprima"."2.7.x" =
-    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 = "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz";
-      name = "esprima-2.7.2.tgz";
-      sha1 = "f43be543609984eae44c933ac63352a6af35f339";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esprima"."^2.6.0" =
-    self.by-version."esprima"."2.7.2";
-  by-spec."esprima"."^2.7" =
-    self.by-version."esprima"."2.7.2";
-  by-spec."esprima"."^2.7.1" =
-    self.by-version."esprima"."2.7.2";
-  by-spec."esprima"."~ 1.0.2" =
-    self.by-version."esprima"."1.0.4";
-  by-version."esprima"."1.0.4" = self.buildNodePackage {
-    name = "esprima-1.0.4";
-    version = "1.0.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz";
-      name = "esprima-1.0.4.tgz";
-      sha1 = "9f557e08fc3b4d26ece9dd34f8fbf476b62585ad";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esprima"."~1.1.1" =
-    self.by-version."esprima"."1.1.1";
-  by-version."esprima"."1.1.1" = self.buildNodePackage {
-    name = "esprima-1.1.1";
-    version = "1.1.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz";
-      name = "esprima-1.1.1.tgz";
-      sha1 = "5b6f1547f4d102e670e140c509be6771d6aeb549";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esprima"."~2.3.0" =
-    self.by-version."esprima"."2.3.0";
-  by-version."esprima"."2.3.0" = self.buildNodePackage {
-    name = "esprima-2.3.0";
-    version = "2.3.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esprima/-/esprima-2.3.0.tgz";
-      name = "esprima-2.3.0.tgz";
-      sha1 = "d26debd7545fcf8916a80668236310e14da6b345";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esprima-fb"."^15001.1.0-dev-harmony-fb" =
-    self.by-version."esprima-fb"."15001.1.0-dev-harmony-fb";
-  by-version."esprima-fb"."15001.1.0-dev-harmony-fb" = self.buildNodePackage {
-    name = "esprima-fb-15001.1.0-dev-harmony-fb";
-    version = "15001.1.0-dev-harmony-fb";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz";
-      name = "esprima-fb-15001.1.0-dev-harmony-fb.tgz";
-      sha1 = "30a947303c6b8d5e955bee2b99b1d233206a6901";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esprima-fb"."~15001.1001.0-dev-harmony-fb" =
-    self.by-version."esprima-fb"."15001.1001.0-dev-harmony-fb";
-  by-version."esprima-fb"."15001.1001.0-dev-harmony-fb" = self.buildNodePackage {
-    name = "esprima-fb-15001.1001.0-dev-harmony-fb";
-    version = "15001.1001.0-dev-harmony-fb";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz";
-      name = "esprima-fb-15001.1001.0-dev-harmony-fb.tgz";
-      sha1 = "43beb57ec26e8cf237d3dd8b33e42533577f2659";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esrecurse"."^4.1.0" =
-    self.by-version."esrecurse"."4.1.0";
-  by-version."esrecurse"."4.1.0" = self.buildNodePackage {
-    name = "esrecurse-4.1.0";
-    version = "4.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz";
-      name = "esrecurse-4.1.0.tgz";
-      sha1 = "4713b6536adf7f2ac4f327d559e7756bff648220";
-    };
-    deps = {
-      "estraverse-4.1.1" = self.by-version."estraverse"."4.1.1";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."estraverse"."^1.9.1" =
-    self.by-version."estraverse"."1.9.3";
-  by-version."estraverse"."1.9.3" = self.buildNodePackage {
-    name = "estraverse-1.9.3";
-    version = "1.9.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz";
-      name = "estraverse-1.9.3.tgz";
-      sha1 = "af67f2dc922582415950926091a4005d29c9bb44";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."estraverse"."^4.1.1" =
-    self.by-version."estraverse"."4.2.0";
-  by-version."estraverse"."4.2.0" = self.buildNodePackage {
-    name = "estraverse-4.2.0";
-    version = "4.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz";
-      name = "estraverse-4.2.0.tgz";
-      sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."estraverse"."^4.2.0" =
-    self.by-version."estraverse"."4.2.0";
-  by-spec."estraverse"."~1.5.0" =
-    self.by-version."estraverse"."1.5.1";
-  by-version."estraverse"."1.5.1" = self.buildNodePackage {
-    name = "estraverse-1.5.1";
-    version = "1.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz";
-      name = "estraverse-1.5.1.tgz";
-      sha1 = "867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."estraverse"."~4.1.0" =
-    self.by-version."estraverse"."4.1.1";
-  by-version."estraverse"."4.1.1" = self.buildNodePackage {
-    name = "estraverse-4.1.1";
-    version = "4.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz";
-      name = "estraverse-4.1.1.tgz";
-      sha1 = "f6caca728933a850ef90661d0e17982ba47111a2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esutils"."^1.1.6" =
-    self.by-version."esutils"."1.1.6";
-  by-version."esutils"."1.1.6" = self.buildNodePackage {
-    name = "esutils-1.1.6";
-    version = "1.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz";
-      name = "esutils-1.1.6.tgz";
-      sha1 = "c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esutils"."^2.0.2" =
-    self.by-version."esutils"."2.0.2";
-  by-version."esutils"."2.0.2" = self.buildNodePackage {
-    name = "esutils-2.0.2";
-    version = "2.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz";
-      name = "esutils-2.0.2.tgz";
-      sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."esutils"."~1.0.0" =
-    self.by-version."esutils"."1.0.0";
-  by-version."esutils"."1.0.0" = self.buildNodePackage {
-    name = "esutils-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz";
-      name = "esutils-1.0.0.tgz";
-      sha1 = "8151d358e20c8acc7fb745e7472c0025fe496570";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."etag"."~1.4.0" =
-    self.by-version."etag"."1.4.0";
-  by-version."etag"."1.4.0" = self.buildNodePackage {
-    name = "etag-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/etag/-/etag-1.4.0.tgz";
-      name = "etag-1.4.0.tgz";
-      sha1 = "3050991615857707c04119d075ba2088e0701225";
-    };
-    deps = {
-      "crc-3.0.0" = self.by-version."crc"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."etag"."~1.7.0" =
-    self.by-version."etag"."1.7.0";
-  by-version."etag"."1.7.0" = self.buildNodePackage {
-    name = "etag-1.7.0";
-    version = "1.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz";
-      name = "etag-1.7.0.tgz";
-      sha1 = "03d30b5f67dd6e632d2945d30d6652731a34d5d8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."eve"."~0.4.2" =
-    self.by-version."eve"."0.4.2";
-  by-version."eve"."0.4.2" = self.buildNodePackage {
-    name = "eve-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/eve/-/eve-0.4.2.tgz";
-      name = "eve-0.4.2.tgz";
-      sha1 = "7eea0afc0e4efb7c9365615315a3576833ead2ae";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."event-emitter"."~0.3.4" =
-    self.by-version."event-emitter"."0.3.4";
-  by-version."event-emitter"."0.3.4" = self.buildNodePackage {
-    name = "event-emitter-0.3.4";
-    version = "0.3.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz";
-      name = "event-emitter-0.3.4.tgz";
-      sha1 = "8d63ddfb4cfe1fae3b32ca265c4c720222080bb5";
-    };
-    deps = {
-      "es5-ext-0.10.11" = self.by-version."es5-ext"."0.10.11";
-      "d-0.1.1" = self.by-version."d"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."event-stream"."~0.5" =
-    self.by-version."event-stream"."0.5.3";
-  by-version."event-stream"."0.5.3" = self.buildNodePackage {
-    name = "event-stream-0.5.3";
-    version = "0.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz";
-      name = "event-stream-0.5.3.tgz";
-      sha1 = "b77b9309f7107addfeab63f0c0eafd8db0bd8c1c";
-    };
-    deps = {
-      "optimist-0.2.8" = self.by-version."optimist"."0.2.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."event-stream"."~3.3.0" =
-    self.by-version."event-stream"."3.3.2";
-  by-version."event-stream"."3.3.2" = self.buildNodePackage {
-    name = "event-stream-3.3.2";
-    version = "3.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/event-stream/-/event-stream-3.3.2.tgz";
-      name = "event-stream-3.3.2.tgz";
-      sha1 = "3cc310feb1f28d2f62b2a085d736a9ef566378b8";
-    };
-    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.3.3" = self.by-version."split"."0.3.3";
-      "stream-combiner-0.0.4" = self.by-version."stream-combiner"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."eventemitter2"."0.4.14" =
-    self.by-version."eventemitter2"."0.4.14";
-  by-version."eventemitter2"."0.4.14" = self.buildNodePackage {
-    name = "eventemitter2-0.4.14";
-    version = "0.4.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz";
-      name = "eventemitter2-0.4.14.tgz";
-      sha1 = "8f61b75cde012b2e9eb284d4545583b5643b61ab";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."eventemitter2"."0.4.x" =
-    self.by-version."eventemitter2"."0.4.14";
-  by-spec."eventemitter2"."~0.4.13" =
-    self.by-version."eventemitter2"."0.4.14";
-  by-spec."eventemitter2"."~0.4.14" =
-    self.by-version."eventemitter2"."0.4.14";
-  by-spec."eventemitter3"."*" =
-    self.by-version."eventemitter3"."1.2.0";
-  by-version."eventemitter3"."1.2.0" = self.buildNodePackage {
-    name = "eventemitter3-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz";
-      name = "eventemitter3-1.2.0.tgz";
-      sha1 = "1c86991d816ad1e504750e73874224ecf3bec508";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."eventemitter3"."1.x.x" =
-    self.by-version."eventemitter3"."1.2.0";
-  by-spec."events"."^1.0.0" =
-    self.by-version."events"."1.1.0";
-  by-version."events"."1.1.0" = self.buildNodePackage {
-    name = "events-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/events/-/events-1.1.0.tgz";
-      name = "events-1.1.0.tgz";
-      sha1 = "4b389fc200f910742ebff3abb2efe33690f45429";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."events"."~1.0.0" =
-    self.by-version."events"."1.0.2";
-  by-version."events"."1.0.2" = self.buildNodePackage {
-    name = "events-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/events/-/events-1.0.2.tgz";
-      name = "events-1.0.2.tgz";
-      sha1 = "75849dcfe93d10fb057c30055afdbd51d06a8e24";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."events"."~1.1.0" =
-    self.by-version."events"."1.1.0";
-  by-spec."events.node".">= 0.4.0" =
-    self.by-version."events.node"."0.4.9";
-  by-version."events.node"."0.4.9" = self.buildNodePackage {
-    name = "events.node-0.4.9";
-    version = "0.4.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/events.node/-/events.node-0.4.9.tgz";
-      name = "events.node-0.4.9.tgz";
-      sha1 = "82998ea749501145fd2da7cf8ecbe6420fac02a4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."evernote"."^1.25.3" =
-    self.by-version."evernote"."1.25.82";
-  by-version."evernote"."1.25.82" = self.buildNodePackage {
-    name = "evernote-1.25.82";
-    version = "1.25.82";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/evernote/-/evernote-1.25.82.tgz";
-      name = "evernote-1.25.82.tgz";
-      sha1 = "79f3f74767c655c5bb42b2ac341913e81c50fa54";
-    };
-    deps = {
-      "oauth-0.9.14" = self.by-version."oauth"."0.9.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."everyauth"."0.4.5" =
-    self.by-version."everyauth"."0.4.5";
-  by-version."everyauth"."0.4.5" = self.buildNodePackage {
-    name = "everyauth-0.4.5";
-    version = "0.4.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/everyauth/-/everyauth-0.4.5.tgz";
-      name = "everyauth-0.4.5.tgz";
-      sha1 = "282d358439d91c30fb4aa2320dc362edac7dd189";
-    };
-    deps = {
-      "oauth-0.9.14" = self.by-version."oauth"."0.9.14";
-      "request-2.9.203" = self.by-version."request"."2.9.203";
-      "connect-2.3.9" = self.by-version."connect"."2.3.9";
-      "openid-2.0.1" = self.by-version."openid"."2.0.1";
-      "xml2js-0.4.16" = self.by-version."xml2js"."0.4.16";
-      "node-swt-0.1.1" = self.by-version."node-swt"."0.1.1";
-      "node-wsfederation-0.1.1" = self.by-version."node-wsfederation"."0.1.1";
-      "debug-0.5.0" = self.by-version."debug"."0.5.0";
-      "express-3.21.2" = self.by-version."express"."3.21.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."evp_bytestokey"."^1.0.0" =
-    self.by-version."evp_bytestokey"."1.0.0";
-  by-version."evp_bytestokey"."1.0.0" = self.buildNodePackage {
-    name = "evp_bytestokey-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz";
-      name = "evp_bytestokey-1.0.0.tgz";
-      sha1 = "497b66ad9fef65cd7c08a6180824ba1476b66e53";
-    };
-    deps = {
-      "create-hash-1.1.2" = self.by-version."create-hash"."1.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."exit"."0.1.2" =
-    self.by-version."exit"."0.1.2";
-  by-version."exit"."0.1.2" = self.buildNodePackage {
-    name = "exit-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz";
-      name = "exit-0.1.2.tgz";
-      sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."exit"."0.1.x" =
-    self.by-version."exit"."0.1.2";
-  by-spec."exit"."~0.1.1" =
-    self.by-version."exit"."0.1.2";
-  by-spec."exit-hook"."^1.0.0" =
-    self.by-version."exit-hook"."1.1.1";
-  by-version."exit-hook"."1.1.1" = self.buildNodePackage {
-    name = "exit-hook-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz";
-      name = "exit-hook-1.1.1.tgz";
-      sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."exit-on-epipe"."*" =
-    self.by-version."exit-on-epipe"."0.0.1";
-  by-version."exit-on-epipe"."0.0.1" = self.buildNodePackage {
-    name = "exit-on-epipe-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-0.0.1.tgz";
-      name = "exit-on-epipe-0.0.1.tgz";
-      sha1 = "ea41650007098c8444519a5d48958170c4ad929b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."expand-braces"."^0.1.1" =
-    self.by-version."expand-braces"."0.1.2";
-  by-version."expand-braces"."0.1.2" = self.buildNodePackage {
-    name = "expand-braces-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz";
-      name = "expand-braces-0.1.2.tgz";
-      sha1 = "488b1d1d2451cb3d3a6b192cfc030f44c5855fea";
-    };
-    deps = {
-      "array-slice-0.2.3" = self.by-version."array-slice"."0.2.3";
-      "array-unique-0.2.1" = self.by-version."array-unique"."0.2.1";
-      "braces-0.1.5" = self.by-version."braces"."0.1.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."expand-brackets"."^0.1.4" =
-    self.by-version."expand-brackets"."0.1.5";
-  by-version."expand-brackets"."0.1.5" = self.buildNodePackage {
-    name = "expand-brackets-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz";
-      name = "expand-brackets-0.1.5.tgz";
-      sha1 = "df07284e342a807cd733ac5af72411e581d1177b";
-    };
-    deps = {
-      "is-posix-bracket-0.1.1" = self.by-version."is-posix-bracket"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."expand-range"."^0.1.0" =
-    self.by-version."expand-range"."0.1.1";
-  by-version."expand-range"."0.1.1" = self.buildNodePackage {
-    name = "expand-range-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz";
-      name = "expand-range-0.1.1.tgz";
-      sha1 = "4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044";
-    };
-    deps = {
-      "is-number-0.1.1" = self.by-version."is-number"."0.1.1";
-      "repeat-string-0.2.2" = self.by-version."repeat-string"."0.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."expand-range"."^1.8.1" =
-    self.by-version."expand-range"."1.8.2";
-  by-version."expand-range"."1.8.2" = self.buildNodePackage {
-    name = "expand-range-1.8.2";
-    version = "1.8.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz";
-      name = "expand-range-1.8.2.tgz";
-      sha1 = "a299effd335fe2721ebae8e257ec79644fc85337";
-    };
-    deps = {
-      "fill-range-2.2.3" = self.by-version."fill-range"."2.2.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express"."*" =
-    self.by-version."express"."5.0.0-alpha.2";
-  by-version."express"."5.0.0-alpha.2" = self.buildNodePackage {
-    name = "express-5.0.0-alpha.2";
-    version = "5.0.0-alpha.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express/-/express-5.0.0-alpha.2.tgz";
-      name = "express-5.0.0-alpha.2.tgz";
-      sha1 = "fd54177f657b6a4c4540727702edd1cbaa3a6ac5";
-    };
-    deps = {
-      "accepts-1.2.13" = self.by-version."accepts"."1.2.13";
-      "array-flatten-1.1.0" = self.by-version."array-flatten"."1.1.0";
-      "content-disposition-0.5.0" = self.by-version."content-disposition"."0.5.0";
-      "content-type-1.0.2" = self.by-version."content-type"."1.0.2";
-      "cookie-0.1.3" = self.by-version."cookie"."0.1.3";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.0.1" = self.by-version."depd"."1.0.1";
-      "escape-html-1.0.2" = self.by-version."escape-html"."1.0.2";
-      "etag-1.7.0" = self.by-version."etag"."1.7.0";
-      "finalhandler-0.4.0" = self.by-version."finalhandler"."0.4.0";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "merge-descriptors-1.0.0" = self.by-version."merge-descriptors"."1.0.0";
-      "methods-1.1.2" = self.by-version."methods"."1.1.2";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
-      "path-to-regexp-0.1.6" = self.by-version."path-to-regexp"."0.1.6";
-      "proxy-addr-1.0.10" = self.by-version."proxy-addr"."1.0.10";
-      "qs-4.0.0" = self.by-version."qs"."4.0.0";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-      "router-1.1.4" = self.by-version."router"."1.1.4";
-      "send-0.13.0" = self.by-version."send"."0.13.0";
-      "serve-static-1.10.3" = self.by-version."serve-static"."1.10.3";
-      "type-is-1.6.13" = self.by-version."type-is"."1.6.13";
-      "vary-1.0.1" = self.by-version."vary"."1.0.1";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "express" = self.by-version."express"."5.0.0-alpha.2";
-  by-spec."express"."2.5.11" =
-    self.by-version."express"."2.5.11";
-  by-version."express"."2.5.11" = self.buildNodePackage {
-    name = "express-2.5.11";
-    version = "2.5.11";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express/-/express-2.5.11.tgz";
-      name = "express-2.5.11.tgz";
-      sha1 = "4ce8ea1f3635e69e49f0ebb497b6a4b0a51ce6f0";
-    };
-    deps = {
-      "connect-1.9.2" = self.by-version."connect"."1.9.2";
-      "mime-1.2.4" = self.by-version."mime"."1.2.4";
-      "qs-0.4.2" = self.by-version."qs"."0.4.2";
-      "mkdirp-0.3.0" = self.by-version."mkdirp"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express"."3.2.0" =
-    self.by-version."express"."3.2.0";
-  by-version."express"."3.2.0" = self.buildNodePackage {
-    name = "express-3.2.0";
-    version = "3.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express/-/express-3.2.0.tgz";
-      name = "express-3.2.0.tgz";
-      sha1 = "7b66d6c66b038038eedf452804222b3077374ae0";
-    };
-    deps = {
-      "connect-2.7.6" = self.by-version."connect"."2.7.6";
-      "commander-0.6.1" = self.by-version."commander"."0.6.1";
-      "range-parser-0.0.4" = self.by-version."range-parser"."0.0.4";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "cookie-0.0.5" = self.by-version."cookie"."0.0.5";
-      "buffer-crc32-0.2.5" = self.by-version."buffer-crc32"."0.2.5";
-      "fresh-0.1.0" = self.by-version."fresh"."0.1.0";
-      "methods-0.0.1" = self.by-version."methods"."0.0.1";
-      "send-0.1.0" = self.by-version."send"."0.1.0";
-      "cookie-signature-1.0.1" = self.by-version."cookie-signature"."1.0.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express"."3.4.4" =
-    self.by-version."express"."3.4.4";
-  by-version."express"."3.4.4" = self.buildNodePackage {
-    name = "express-3.4.4";
-    version = "3.4.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express/-/express-3.4.4.tgz";
-      name = "express-3.4.4.tgz";
-      sha1 = "0b63ae626c96b71b78d13dfce079c10351635a86";
-    };
-    deps = {
-      "connect-2.11.0" = self.by-version."connect"."2.11.0";
-      "commander-1.3.2" = self.by-version."commander"."1.3.2";
-      "range-parser-0.0.4" = self.by-version."range-parser"."0.0.4";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "cookie-0.1.0" = self.by-version."cookie"."0.1.0";
-      "buffer-crc32-0.2.1" = self.by-version."buffer-crc32"."0.2.1";
-      "fresh-0.2.0" = self.by-version."fresh"."0.2.0";
-      "methods-0.1.0" = self.by-version."methods"."0.1.0";
-      "send-0.1.4" = self.by-version."send"."0.1.4";
-      "cookie-signature-1.0.1" = self.by-version."cookie-signature"."1.0.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express"."3.x" =
-    self.by-version."express"."3.21.2";
-  by-version."express"."3.21.2" = self.buildNodePackage {
-    name = "express-3.21.2";
-    version = "3.21.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express/-/express-3.21.2.tgz";
-      name = "express-3.21.2.tgz";
-      sha1 = "0c2903ee5c54e63d65a96170764703550665a3de";
-    };
-    deps = {
-      "basic-auth-1.0.4" = self.by-version."basic-auth"."1.0.4";
-      "connect-2.30.2" = self.by-version."connect"."2.30.2";
-      "content-disposition-0.5.0" = self.by-version."content-disposition"."0.5.0";
-      "content-type-1.0.2" = self.by-version."content-type"."1.0.2";
-      "commander-2.6.0" = self.by-version."commander"."2.6.0";
-      "cookie-0.1.3" = self.by-version."cookie"."0.1.3";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.0.1" = self.by-version."depd"."1.0.1";
-      "escape-html-1.0.2" = self.by-version."escape-html"."1.0.2";
-      "etag-1.7.0" = self.by-version."etag"."1.7.0";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "merge-descriptors-1.0.0" = self.by-version."merge-descriptors"."1.0.0";
-      "methods-1.1.2" = self.by-version."methods"."1.1.2";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "proxy-addr-1.0.10" = self.by-version."proxy-addr"."1.0.10";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-      "send-0.13.0" = self.by-version."send"."0.13.0";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-      "vary-1.0.1" = self.by-version."vary"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express"."4.13.4" =
-    self.by-version."express"."4.13.4";
-  by-version."express"."4.13.4" = self.buildNodePackage {
-    name = "express-4.13.4";
-    version = "4.13.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express/-/express-4.13.4.tgz";
-      name = "express-4.13.4.tgz";
-      sha1 = "3c0b76f3c77590c8345739061ec0bd3ba067ec24";
-    };
-    deps = {
-      "accepts-1.2.13" = self.by-version."accepts"."1.2.13";
-      "array-flatten-1.1.1" = self.by-version."array-flatten"."1.1.1";
-      "content-disposition-0.5.1" = self.by-version."content-disposition"."0.5.1";
-      "content-type-1.0.2" = self.by-version."content-type"."1.0.2";
-      "cookie-0.1.5" = self.by-version."cookie"."0.1.5";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "escape-html-1.0.3" = self.by-version."escape-html"."1.0.3";
-      "etag-1.7.0" = self.by-version."etag"."1.7.0";
-      "finalhandler-0.4.1" = self.by-version."finalhandler"."0.4.1";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "merge-descriptors-1.0.1" = self.by-version."merge-descriptors"."1.0.1";
-      "methods-1.1.2" = self.by-version."methods"."1.1.2";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "path-to-regexp-0.1.7" = self.by-version."path-to-regexp"."0.1.7";
-      "proxy-addr-1.0.10" = self.by-version."proxy-addr"."1.0.10";
-      "qs-4.0.0" = self.by-version."qs"."4.0.0";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-      "send-0.13.1" = self.by-version."send"."0.13.1";
-      "serve-static-1.10.3" = self.by-version."serve-static"."1.10.3";
-      "type-is-1.6.13" = self.by-version."type-is"."1.6.13";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-      "vary-1.0.1" = self.by-version."vary"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express"."4.6.1" =
-    self.by-version."express"."4.6.1";
-  by-version."express"."4.6.1" = self.buildNodePackage {
-    name = "express-4.6.1";
-    version = "4.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express/-/express-4.6.1.tgz";
-      name = "express-4.6.1.tgz";
-      sha1 = "c806e51755cb453ba17fac2f343caff6af885df4";
-    };
-    deps = {
-      "accepts-1.0.7" = self.by-version."accepts"."1.0.7";
-      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
-      "debug-1.0.3" = self.by-version."debug"."1.0.3";
-      "depd-0.3.0" = self.by-version."depd"."0.3.0";
-      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
-      "finalhandler-0.0.3" = self.by-version."finalhandler"."0.0.3";
-      "media-typer-0.2.0" = self.by-version."media-typer"."0.2.0";
-      "methods-1.1.0" = self.by-version."methods"."1.1.0";
-      "parseurl-1.1.3" = self.by-version."parseurl"."1.1.3";
-      "path-to-regexp-0.1.3" = self.by-version."path-to-regexp"."0.1.3";
-      "proxy-addr-1.0.1" = self.by-version."proxy-addr"."1.0.1";
-      "range-parser-1.0.0" = self.by-version."range-parser"."1.0.0";
-      "send-0.6.0" = self.by-version."send"."0.6.0";
-      "serve-static-1.3.2" = self.by-version."serve-static"."1.3.2";
-      "type-is-1.3.2" = self.by-version."type-is"."1.3.2";
-      "vary-0.1.0" = self.by-version."vary"."0.1.0";
-      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
-      "fresh-0.2.2" = self.by-version."fresh"."0.2.2";
-      "cookie-signature-1.0.4" = self.by-version."cookie-signature"."1.0.4";
-      "merge-descriptors-0.0.2" = self.by-version."merge-descriptors"."0.0.2";
-      "qs-0.6.6" = self.by-version."qs"."0.6.6";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express".">=3.0.0" =
-    self.by-version."express"."4.13.4";
-  by-spec."express".">=4.0.0" =
-    self.by-version."express"."4.13.4";
-  by-spec."express".">=5.0.0-0 <6.0.0-0" =
-    self.by-version."express"."5.0.0-alpha.2";
-  by-spec."express"."^4.12.2" =
-    self.by-version."express"."4.13.4";
-  by-spec."express"."^4.12.3" =
-    self.by-version."express"."4.13.4";
-  by-spec."express"."^4.13.3" =
-    self.by-version."express"."4.13.4";
-  by-spec."express"."~3.5.1" =
-    self.by-version."express"."3.5.3";
-  by-version."express"."3.5.3" = self.buildNodePackage {
-    name = "express-3.5.3";
-    version = "3.5.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express/-/express-3.5.3.tgz";
-      name = "express-3.5.3.tgz";
-      sha1 = "af440e1ddad078934ec78241420b40bbc56dc2ad";
-    };
-    deps = {
-      "connect-2.14.5" = self.by-version."connect"."2.14.5";
-      "commander-1.3.2" = self.by-version."commander"."1.3.2";
-      "range-parser-1.0.0" = self.by-version."range-parser"."1.0.0";
-      "mkdirp-0.4.0" = self.by-version."mkdirp"."0.4.0";
-      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
-      "buffer-crc32-0.2.1" = self.by-version."buffer-crc32"."0.2.1";
-      "fresh-0.2.2" = self.by-version."fresh"."0.2.2";
-      "methods-0.1.0" = self.by-version."methods"."0.1.0";
-      "send-0.3.0" = self.by-version."send"."0.3.0";
-      "cookie-signature-1.0.3" = self.by-version."cookie-signature"."1.0.3";
-      "merge-descriptors-0.0.2" = self.by-version."merge-descriptors"."0.0.2";
-      "debug-0.8.1" = self.by-version."debug"."0.8.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express"."~4.13.3" =
-    self.by-version."express"."4.13.4";
-  by-spec."express"."~4.13.4" =
-    self.by-version."express"."4.13.4";
-  by-spec."express-form"."*" =
-    self.by-version."express-form"."0.12.5";
-  by-version."express-form"."0.12.5" = self.buildNodePackage {
-    name = "express-form-0.12.5";
-    version = "0.12.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express-form/-/express-form-0.12.5.tgz";
-      name = "express-form-0.12.5.tgz";
-      sha1 = "09ac0849ad33ffd6f1980dbad91ca24bbe53c125";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "object-additions-0.5.1" = self.by-version."object-additions"."0.5.1";
-      "validator-2.1.0" = self.by-version."validator"."2.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."express"."4.13.4"];
-    os = [ ];
-    cpu = [ ];
-  };
-  "express-form" = self.by-version."express-form"."0.12.5";
-  by-spec."express-handlebars"."~2.0.1" =
-    self.by-version."express-handlebars"."2.0.1";
-  by-version."express-handlebars"."2.0.1" = self.buildNodePackage {
-    name = "express-handlebars-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express-handlebars/-/express-handlebars-2.0.1.tgz";
-      name = "express-handlebars-2.0.1.tgz";
-      sha1 = "975661ffebd6e79463230ba4c8e0ca5cd0522fb1";
-    };
-    deps = {
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-      "graceful-fs-3.0.8" = self.by-version."graceful-fs"."3.0.8";
-      "handlebars-3.0.3" = self.by-version."handlebars"."3.0.3";
-      "object.assign-1.1.1" = self.by-version."object.assign"."1.1.1";
-      "promise-6.1.0" = self.by-version."promise"."6.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express-json5".">=0.1.0 <1.0.0-0" =
-    self.by-version."express-json5"."0.1.0";
-  by-version."express-json5"."0.1.0" = self.buildNodePackage {
-    name = "express-json5-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express-json5/-/express-json5-0.1.0.tgz";
-      name = "express-json5-0.1.0.tgz";
-      sha1 = "114a514bd734b319e018a1bde337923cc455b836";
-    };
-    deps = {
-      "raw-body-1.3.4" = self.by-version."raw-body"."1.3.4";
-      "jju-1.3.0" = self.by-version."jju"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express-partials"."0.0.6" =
-    self.by-version."express-partials"."0.0.6";
-  by-version."express-partials"."0.0.6" = self.buildNodePackage {
-    name = "express-partials-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express-partials/-/express-partials-0.0.6.tgz";
-      name = "express-partials-0.0.6.tgz";
-      sha1 = "b2664f15c636d5248e60fdbe29131c4440552eda";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express-session"."1.0.2" =
-    self.by-version."express-session"."1.0.2";
-  by-version."express-session"."1.0.2" = self.buildNodePackage {
-    name = "express-session-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express-session/-/express-session-1.0.2.tgz";
-      name = "express-session-1.0.2.tgz";
-      sha1 = "004478c742561774411ceb79733155a56b6d49eb";
-    };
-    deps = {
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-      "cookie-0.1.0" = self.by-version."cookie"."0.1.0";
-      "cookie-signature-1.0.3" = self.by-version."cookie-signature"."1.0.3";
-      "uid2-0.0.3" = self.by-version."uid2"."0.0.3";
-      "buffer-crc32-0.2.1" = self.by-version."buffer-crc32"."0.2.1";
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express-session"."^1.0.4" =
-    self.by-version."express-session"."1.13.0";
-  by-version."express-session"."1.13.0" = self.buildNodePackage {
-    name = "express-session-1.13.0";
-    version = "1.13.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express-session/-/express-session-1.13.0.tgz";
-      name = "express-session-1.13.0.tgz";
-      sha1 = "8ac3b5c0188b48382851d88207b8e7746efb4011";
-    };
-    deps = {
-      "cookie-0.2.3" = self.by-version."cookie"."0.2.3";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-      "crc-3.4.0" = self.by-version."crc"."3.4.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "uid-safe-2.0.0" = self.by-version."uid-safe"."2.0.0";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express-session"."~1.11.3" =
-    self.by-version."express-session"."1.11.3";
-  by-version."express-session"."1.11.3" = self.buildNodePackage {
-    name = "express-session-1.11.3";
-    version = "1.11.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz";
-      name = "express-session-1.11.3.tgz";
-      sha1 = "5cc98f3f5ff84ed835f91cbf0aabd0c7107400af";
-    };
-    deps = {
-      "cookie-0.1.3" = self.by-version."cookie"."0.1.3";
-      "cookie-signature-1.0.6" = self.by-version."cookie-signature"."1.0.6";
-      "crc-3.3.0" = self.by-version."crc"."3.3.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.0.1" = self.by-version."depd"."1.0.1";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "uid-safe-2.0.0" = self.by-version."uid-safe"."2.0.0";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."express-session"."~1.13.0" =
-    self.by-version."express-session"."1.13.0";
-  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 = "https://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 = "https://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"."*" =
-    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 = "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz";
-      name = "extend-3.0.0.tgz";
-      sha1 = "5a474353b9f3353ddd8176dfd37b91c83a46f1d4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "extend" = self.by-version."extend"."3.0.0";
-  by-spec."extend"."3" =
-    self.by-version."extend"."3.0.0";
-  by-spec."extend"."3.0.0" =
-    self.by-version."extend"."3.0.0";
-  by-spec."extend".">=1.1.3" =
-    self.by-version."extend"."3.0.0";
-  by-spec."extend"."^1.2.1" =
-    self.by-version."extend"."1.3.0";
-  by-version."extend"."1.3.0" = self.buildNodePackage {
-    name = "extend-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extend/-/extend-1.3.0.tgz";
-      name = "extend-1.3.0.tgz";
-      sha1 = "d1516fb0ff5624d2ebf9123ea1dac5a1994004f8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extend"."^1.3.0" =
-    self.by-version."extend"."1.3.0";
-  by-spec."extend"."^2.0.0" =
-    self.by-version."extend"."2.0.1";
-  by-version."extend"."2.0.1" = self.buildNodePackage {
-    name = "extend-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz";
-      name = "extend-2.0.1.tgz";
-      sha1 = "1ee8010689e7395ff9448241c98652bc759a8260";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extend"."^2.0.1" =
-    self.by-version."extend"."2.0.1";
-  by-spec."extend"."^3.0.0" =
-    self.by-version."extend"."3.0.0";
-  by-spec."extend"."~1.2.1" =
-    self.by-version."extend"."1.2.1";
-  by-version."extend"."1.2.1" = self.buildNodePackage {
-    name = "extend-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz";
-      name = "extend-1.2.1.tgz";
-      sha1 = "a0f5fd6cfc83a5fe49ef698d60ec8a624dd4576c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extend"."~3.0.0" =
-    self.by-version."extend"."3.0.0";
-  by-spec."extend-shallow"."^2.0.1" =
-    self.by-version."extend-shallow"."2.0.1";
-  by-version."extend-shallow"."2.0.1" = self.buildNodePackage {
-    name = "extend-shallow-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
-      name = "extend-shallow-2.0.1.tgz";
-      sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
-    };
-    deps = {
-      "is-extendable-0.1.1" = self.by-version."is-extendable"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extend.js"."0.0.2" =
-    self.by-version."extend.js"."0.0.2";
-  by-version."extend.js"."0.0.2" = self.buildNodePackage {
-    name = "extend.js-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extend.js/-/extend.js-0.0.2.tgz";
-      name = "extend.js-0.0.2.tgz";
-      sha1 = "0f9c7a81a1f208b703eb0c3131fe5716ac6ecd15";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extglob"."^0.3.1" =
-    self.by-version."extglob"."0.3.2";
-  by-version."extglob"."0.3.2" = self.buildNodePackage {
-    name = "extglob-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz";
-      name = "extglob-0.3.2.tgz";
-      sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1";
-    };
-    deps = {
-      "is-extglob-1.0.0" = self.by-version."is-extglob"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extract-opts"."^2.2.0" =
-    self.by-version."extract-opts"."2.2.0";
-  by-version."extract-opts"."2.2.0" = self.buildNodePackage {
-    name = "extract-opts-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extract-opts/-/extract-opts-2.2.0.tgz";
-      name = "extract-opts-2.2.0.tgz";
-      sha1 = "1fa28eba7352c6db480f885ceb71a46810be6d7d";
-    };
-    deps = {
-      "typechecker-2.0.8" = self.by-version."typechecker"."2.0.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extract-zip"."~1.5.0" =
-    self.by-version."extract-zip"."1.5.0";
-  by-version."extract-zip"."1.5.0" = self.buildNodePackage {
-    name = "extract-zip-1.5.0";
-    version = "1.5.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz";
-      name = "extract-zip-1.5.0.tgz";
-      sha1 = "92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4";
-    };
-    deps = {
-      "concat-stream-1.5.0" = self.by-version."concat-stream"."1.5.0";
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
-      "yauzl-2.4.1" = self.by-version."yauzl"."2.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extsprintf"."1.0.0" =
-    self.by-version."extsprintf"."1.0.0";
-  by-version."extsprintf"."1.0.0" = self.buildNodePackage {
-    name = "extsprintf-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.0.tgz";
-      name = "extsprintf-1.0.0.tgz";
-      sha1 = "4d58b815ace5bebfc4ebf03cf98b0a7604a99b86";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extsprintf"."1.0.2" =
-    self.by-version."extsprintf"."1.0.2";
-  by-version."extsprintf"."1.0.2" = self.buildNodePackage {
-    name = "extsprintf-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz";
-      name = "extsprintf-1.0.2.tgz";
-      sha1 = "e1080e0658e300b06294990cc70e1502235fd550";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extsprintf"."1.2.0" =
-    self.by-version."extsprintf"."1.2.0";
-  by-version."extsprintf"."1.2.0" = self.buildNodePackage {
-    name = "extsprintf-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz";
-      name = "extsprintf-1.2.0.tgz";
-      sha1 = "5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."extsprintf"."^1.2.0" =
-    self.by-version."extsprintf"."1.3.0";
-  by-version."extsprintf"."1.3.0" = self.buildNodePackage {
-    name = "extsprintf-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
-      name = "extsprintf-1.3.0.tgz";
-      sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."eyes"."0.1.x" =
-    self.by-version."eyes"."0.1.8";
-  by-version."eyes"."0.1.8" = self.buildNodePackage {
-    name = "eyes-0.1.8";
-    version = "0.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz";
-      name = "eyes-0.1.8.tgz";
-      sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."eyes"."~0.1.6" =
-    self.by-version."eyes"."0.1.8";
-  by-spec."eyes"."~0.1.8" =
-    self.by-version."eyes"."0.1.8";
-  by-spec."falafel"."^1.0.1" =
-    self.by-version."falafel"."1.2.0";
-  by-version."falafel"."1.2.0" = self.buildNodePackage {
-    name = "falafel-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz";
-      name = "falafel-1.2.0.tgz";
-      sha1 = "c18d24ef5091174a497f318cd24b026a25cddab4";
-    };
-    deps = {
-      "acorn-1.2.2" = self.by-version."acorn"."1.2.2";
-      "foreach-2.0.5" = self.by-version."foreach"."2.0.5";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "object-keys-1.0.9" = self.by-version."object-keys"."1.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fancy-log"."^1.1.0" =
-    self.by-version."fancy-log"."1.2.0";
-  by-version."fancy-log"."1.2.0" = self.buildNodePackage {
-    name = "fancy-log-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz";
-      name = "fancy-log-1.2.0.tgz";
-      sha1 = "d5a51b53e9ab22ca07d558f2b67ae55fdb5fcbd8";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "time-stamp-1.0.1" = self.by-version."time-stamp"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fast-diff"."^1.0.1" =
-    self.by-version."fast-diff"."1.0.1";
-  by-version."fast-diff"."1.0.1" = self.buildNodePackage {
-    name = "fast-diff-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fast-diff/-/fast-diff-1.0.1.tgz";
-      name = "fast-diff-1.0.1.tgz";
-      sha1 = "76532d5b8e49f6770fd464658628f9ed47eb5ac8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fast-json-patch"."0.5.x" =
-    self.by-version."fast-json-patch"."0.5.7";
-  by-version."fast-json-patch"."0.5.7" = self.buildNodePackage {
-    name = "fast-json-patch-0.5.7";
-    version = "0.5.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-0.5.7.tgz";
-      name = "fast-json-patch-0.5.7.tgz";
-      sha1 = "b5a8f49d259624596ef98b872f3fda895b4d8665";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fast-levenshtein"."^1.1.0" =
-    self.by-version."fast-levenshtein"."1.1.3";
-  by-version."fast-levenshtein"."1.1.3" = self.buildNodePackage {
-    name = "fast-levenshtein-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.3.tgz";
-      name = "fast-levenshtein-1.1.3.tgz";
-      sha1 = "2ae7b32abc1e612da48a4e13849b888a2f61e7e9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."favitest"."^1.0.3" =
-    self.by-version."favitest"."1.0.7";
-  by-version."favitest"."1.0.7" = self.buildNodePackage {
-    name = "favitest-1.0.7";
-    version = "1.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/favitest/-/favitest-1.0.7.tgz";
-      name = "favitest-1.0.7.tgz";
-      sha1 = "efa1ee02866f6e2f0f619a889a6c993269a0b603";
-    };
-    deps = {
-      "htmlparser2-3.9.0" = self.by-version."htmlparser2"."3.9.0";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "tldtools-0.0.19" = self.by-version."tldtools"."0.0.19";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."favitest"."^1.0.7" =
-    self.by-version."favitest"."1.0.7";
-  by-spec."faye-websocket"."*" =
-    self.by-version."faye-websocket"."0.11.0";
-  by-version."faye-websocket"."0.11.0" = self.buildNodePackage {
-    name = "faye-websocket-0.11.0";
-    version = "0.11.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.0.tgz";
-      name = "faye-websocket-0.11.0.tgz";
-      sha1 = "d9ccf0e789e7db725d74bc4877d23aa42972ac50";
-    };
-    deps = {
-      "websocket-driver-0.6.5" = self.by-version."websocket-driver"."0.6.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "faye-websocket" = self.by-version."faye-websocket"."0.11.0";
-  by-spec."faye-websocket"."^0.10.0" =
-    self.by-version."faye-websocket"."0.10.0";
-  by-version."faye-websocket"."0.10.0" = self.buildNodePackage {
-    name = "faye-websocket-0.10.0";
-    version = "0.10.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz";
-      name = "faye-websocket-0.10.0.tgz";
-      sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
-    };
-    deps = {
-      "websocket-driver-0.6.5" = self.by-version."websocket-driver"."0.6.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fb".">=0.0.9" =
-    self.by-version."fb"."1.1.1";
-  by-version."fb"."1.1.1" = self.buildNodePackage {
-    name = "fb-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fb/-/fb-1.1.1.tgz";
-      name = "fb-1.1.1.tgz";
-      sha1 = "b3f036689e55098d6f88a6dee6551d0316fd6b57";
-    };
-    deps = {
-      "babel-runtime-6.9.2" = self.by-version."babel-runtime"."6.9.2";
-      "core-decorators-0.12.3" = self.by-version."core-decorators"."0.12.3";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fbjs"."^0.8.0" =
-    self.by-version."fbjs"."0.8.3";
-  by-version."fbjs"."0.8.3" = self.buildNodePackage {
-    name = "fbjs-0.8.3";
-    version = "0.8.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fbjs/-/fbjs-0.8.3.tgz";
-      name = "fbjs-0.8.3.tgz";
-      sha1 = "d98a77d387fda2c33bc3d5588fce31f3553cb1c8";
-    };
-    deps = {
-      "core-js-1.2.6" = self.by-version."core-js"."1.2.6";
-      "immutable-3.8.1" = self.by-version."immutable"."3.8.1";
-      "isomorphic-fetch-2.2.1" = self.by-version."isomorphic-fetch"."2.2.1";
-      "loose-envify-1.2.0" = self.by-version."loose-envify"."1.2.0";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "promise-7.1.1" = self.by-version."promise"."7.1.1";
-      "ua-parser-js-0.7.10" = self.by-version."ua-parser-js"."0.7.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fd-slicer"."~1.0.1" =
-    self.by-version."fd-slicer"."1.0.1";
-  by-version."fd-slicer"."1.0.1" = self.buildNodePackage {
-    name = "fd-slicer-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz";
-      name = "fd-slicer-1.0.1.tgz";
-      sha1 = "8b5bcbd9ec327c5041bf9ab023fd6750f1177e65";
-    };
-    deps = {
-      "pend-1.2.0" = self.by-version."pend"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."feedparser"."1.1.3" =
-    self.by-version."feedparser"."1.1.3";
-  by-version."feedparser"."1.1.3" = self.buildNodePackage {
-    name = "feedparser-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/feedparser/-/feedparser-1.1.3.tgz";
-      name = "feedparser-1.1.3.tgz";
-      sha1 = "0b725f6b4cbe4b26d518baec0d010ad020156c8b";
-    };
-    deps = {
-      "sax-0.6.1" = self.by-version."sax"."0.6.1";
-      "addressparser-0.1.3" = self.by-version."addressparser"."0.1.3";
-      "array-indexofobject-0.0.1" = self.by-version."array-indexofobject"."0.0.1";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."feedparser".">=0.16.2" =
-    self.by-version."feedparser"."1.1.4";
-  by-version."feedparser"."1.1.4" = self.buildNodePackage {
-    name = "feedparser-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/feedparser/-/feedparser-1.1.4.tgz";
-      name = "feedparser-1.1.4.tgz";
-      sha1 = "17845be84ad3fcd986daee12fe421f8b54df0def";
-    };
-    deps = {
-      "sax-0.6.1" = self.by-version."sax"."0.6.1";
-      "addressparser-0.1.3" = self.by-version."addressparser"."0.1.3";
-      "array-indexofobject-0.0.1" = self.by-version."array-indexofobject"."0.0.1";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fields"."0.1.24" =
-    self.by-version."fields"."0.1.24";
-  by-version."fields"."0.1.24" = self.buildNodePackage {
-    name = "fields-0.1.24";
-    version = "0.1.24";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fields/-/fields-0.1.24.tgz";
-      name = "fields-0.1.24.tgz";
-      sha1 = "bed93b1c2521f4705fe764f4209267fdfd89f5d3";
-    };
-    deps = {
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "keypress-0.2.1" = self.by-version."keypress"."0.2.1";
-      "sprintf-0.1.5" = self.by-version."sprintf"."0.1.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fifo"."^0.1.4" =
-    self.by-version."fifo"."0.1.4";
-  by-version."fifo"."0.1.4" = self.buildNodePackage {
-    name = "fifo-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fifo/-/fifo-0.1.4.tgz";
-      name = "fifo-0.1.4.tgz";
-      sha1 = "bf42d87c0ad07b00d0949d12388f6289606ece34";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."figures"."^1.0.1" =
-    self.by-version."figures"."1.7.0";
-  by-version."figures"."1.7.0" = self.buildNodePackage {
-    name = "figures-1.7.0";
-    version = "1.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz";
-      name = "figures-1.7.0.tgz";
-      sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
-    };
-    deps = {
-      "escape-string-regexp-1.0.5" = self.by-version."escape-string-regexp"."1.0.5";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."figures"."^1.3.5" =
-    self.by-version."figures"."1.7.0";
-  by-spec."file-entry-cache"."^1.1.1" =
-    self.by-version."file-entry-cache"."1.2.4";
-  by-version."file-entry-cache"."1.2.4" = self.buildNodePackage {
-    name = "file-entry-cache-1.2.4";
-    version = "1.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.2.4.tgz";
-      name = "file-entry-cache-1.2.4.tgz";
-      sha1 = "9a586072c69365a7ef7ec72a7c2b9046de091e9c";
-    };
-    deps = {
-      "flat-cache-1.0.10" = self.by-version."flat-cache"."1.0.10";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."file-uri-to-path"."0" =
-    self.by-version."file-uri-to-path"."0.0.2";
-  by-version."file-uri-to-path"."0.0.2" = self.buildNodePackage {
-    name = "file-uri-to-path-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-0.0.2.tgz";
-      name = "file-uri-to-path-0.0.2.tgz";
-      sha1 = "37cdd1b5b905404b3f05e1b23645be694ff70f82";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."filed"."0.1.x" =
-    self.by-version."filed"."0.1.0";
-  by-version."filed"."0.1.0" = self.buildNodePackage {
-    name = "filed-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/filed/-/filed-0.1.0.tgz";
-      name = "filed-0.1.0.tgz";
-      sha1 = "b0f626472a2366dc1194537a4eea7e7a89f3c735";
-    };
-    deps = {
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."filename-regex"."^2.0.0" =
-    self.by-version."filename-regex"."2.0.0";
-  by-version."filename-regex"."2.0.0" = self.buildNodePackage {
-    name = "filename-regex-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz";
-      name = "filename-regex-2.0.0.tgz";
-      sha1 = "996e3e80479b98b9897f15a8a58b3d084e926775";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fileset"."0.2.x" =
-    self.by-version."fileset"."0.2.1";
-  by-version."fileset"."0.2.1" = self.buildNodePackage {
-    name = "fileset-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fileset/-/fileset-0.2.1.tgz";
-      name = "fileset-0.2.1.tgz";
-      sha1 = "588ef8973c6623b2a76df465105696b96aac8067";
-    };
-    deps = {
-      "minimatch-2.0.10" = self.by-version."minimatch"."2.0.10";
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fill-range"."^2.1.0" =
-    self.by-version."fill-range"."2.2.3";
-  by-version."fill-range"."2.2.3" = self.buildNodePackage {
-    name = "fill-range-2.2.3";
-    version = "2.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz";
-      name = "fill-range-2.2.3.tgz";
-      sha1 = "50b77dfd7e469bc7492470963699fe7a8485a723";
-    };
-    deps = {
-      "is-number-2.1.0" = self.by-version."is-number"."2.1.0";
-      "isobject-2.1.0" = self.by-version."isobject"."2.1.0";
-      "randomatic-1.1.5" = self.by-version."randomatic"."1.1.5";
-      "repeat-element-1.1.2" = self.by-version."repeat-element"."1.1.2";
-      "repeat-string-1.5.4" = self.by-version."repeat-string"."1.5.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."finalhandler"."0.0.2" =
-    self.by-version."finalhandler"."0.0.2";
-  by-version."finalhandler"."0.0.2" = self.buildNodePackage {
-    name = "finalhandler-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.0.2.tgz";
-      name = "finalhandler-0.0.2.tgz";
-      sha1 = "0603d875ee87d567a266692815cc8ad44fcceeda";
-    };
-    deps = {
-      "debug-1.0.2" = self.by-version."debug"."1.0.2";
-      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."finalhandler"."0.0.3" =
-    self.by-version."finalhandler"."0.0.3";
-  by-version."finalhandler"."0.0.3" = self.buildNodePackage {
-    name = "finalhandler-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.0.3.tgz";
-      name = "finalhandler-0.0.3.tgz";
-      sha1 = "5a86b7bc4dca3d1275eb0532c81ee81d747504df";
-    };
-    deps = {
-      "debug-1.0.3" = self.by-version."debug"."1.0.3";
-      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."finalhandler"."0.4.0" =
-    self.by-version."finalhandler"."0.4.0";
-  by-version."finalhandler"."0.4.0" = self.buildNodePackage {
-    name = "finalhandler-0.4.0";
-    version = "0.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz";
-      name = "finalhandler-0.4.0.tgz";
-      sha1 = "965a52d9e8d05d2b857548541fb89b53a2497d9b";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "escape-html-1.0.2" = self.by-version."escape-html"."1.0.2";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "unpipe-1.0.0" = self.by-version."unpipe"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."finalhandler"."0.4.1" =
-    self.by-version."finalhandler"."0.4.1";
-  by-version."finalhandler"."0.4.1" = self.buildNodePackage {
-    name = "finalhandler-0.4.1";
-    version = "0.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz";
-      name = "finalhandler-0.4.1.tgz";
-      sha1 = "85a17c6c59a94717d262d61230d4b0ebe3d4a14d";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "escape-html-1.0.3" = self.by-version."escape-html"."1.0.3";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "unpipe-1.0.0" = self.by-version."unpipe"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."find-index"."^0.1.1" =
-    self.by-version."find-index"."0.1.1";
-  by-version."find-index"."0.1.1" = self.buildNodePackage {
-    name = "find-index-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz";
-      name = "find-index-0.1.1.tgz";
-      sha1 = "675d358b2ca3892d795a1ab47232f8b6e2e0dde4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."find-root"."^0.1.1" =
-    self.by-version."find-root"."0.1.2";
-  by-version."find-root"."0.1.2" = self.buildNodePackage {
-    name = "find-root-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/find-root/-/find-root-0.1.2.tgz";
-      name = "find-root-0.1.2.tgz";
-      sha1 = "98d2267cff1916ccaf2743b3a0eea81d79d7dcd1";
-    };
-    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 = "https://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.1" = self.by-version."pinkie-promise"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."find-up"."^1.1.0" =
-    self.by-version."find-up"."1.1.2";
-  by-spec."findit".">=1.1.0 <2.0.0" =
-    self.by-version."findit"."1.2.0";
-  by-version."findit"."1.2.0" = self.buildNodePackage {
-    name = "findit-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/findit/-/findit-1.2.0.tgz";
-      name = "findit-1.2.0.tgz";
-      sha1 = "f571a3a840749ae8b0cbf4bf43ced7659eec3ce8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."findup-sync"."^0.3.0" =
-    self.by-version."findup-sync"."0.3.0";
-  by-version."findup-sync"."0.3.0" = self.buildNodePackage {
-    name = "findup-sync-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz";
-      name = "findup-sync-0.3.0.tgz";
-      sha1 = "37930aa5d816b777c03445e1966cc6790a4c0b16";
-    };
-    deps = {
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."findup-sync"."~0.1.2" =
-    self.by-version."findup-sync"."0.1.3";
-  by-version."findup-sync"."0.1.3" = self.buildNodePackage {
-    name = "findup-sync-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz";
-      name = "findup-sync-0.1.3.tgz";
-      sha1 = "7f3e7a97b82392c653bf06589bd85190e93c3683";
-    };
-    deps = {
-      "glob-3.2.11" = self.by-version."glob"."3.2.11";
-      "lodash-2.4.2" = self.by-version."lodash"."2.4.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."findup-sync"."~0.3.0" =
-    self.by-version."findup-sync"."0.3.0";
-  by-spec."finished"."1.2.2" =
-    self.by-version."finished"."1.2.2";
-  by-version."finished"."1.2.2" = self.buildNodePackage {
-    name = "finished-1.2.2";
-    version = "1.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/finished/-/finished-1.2.2.tgz";
-      name = "finished-1.2.2.tgz";
-      sha1 = "41608eafadfd65683b46a1220bc4b1ec3daedcd8";
-    };
-    deps = {
-      "ee-first-1.0.3" = self.by-version."ee-first"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."finished"."~1.2.2" =
-    self.by-version."finished"."1.2.2";
-  by-spec."first-chunk-stream"."^1.0.0" =
-    self.by-version."first-chunk-stream"."1.0.0";
-  by-version."first-chunk-stream"."1.0.0" = self.buildNodePackage {
-    name = "first-chunk-stream-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz";
-      name = "first-chunk-stream-1.0.0.tgz";
-      sha1 = "59bfb50cd905f60d7c394cd3d9acaab4e6ad934e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."flagged-respawn"."^0.3.2" =
-    self.by-version."flagged-respawn"."0.3.2";
-  by-version."flagged-respawn"."0.3.2" = self.buildNodePackage {
-    name = "flagged-respawn-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz";
-      name = "flagged-respawn-0.3.2.tgz";
-      sha1 = "ff191eddcd7088a675b2610fffc976be9b8074b5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."flat-cache"."^1.0.9" =
-    self.by-version."flat-cache"."1.0.10";
-  by-version."flat-cache"."1.0.10" = self.buildNodePackage {
-    name = "flat-cache-1.0.10";
-    version = "1.0.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/flat-cache/-/flat-cache-1.0.10.tgz";
-      name = "flat-cache-1.0.10.tgz";
-      sha1 = "73d6df4a28502160a05e059544a6aeeae8b0047a";
-    };
-    deps = {
-      "del-2.2.0" = self.by-version."del"."2.2.0";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "read-json-sync-1.1.1" = self.by-version."read-json-sync"."1.1.1";
-      "write-0.2.1" = self.by-version."write"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."flatiron"."*" =
-    self.by-version."flatiron"."0.4.3";
-  by-version."flatiron"."0.4.3" = self.buildNodePackage {
-    name = "flatiron-0.4.3";
-    version = "0.4.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz";
-      name = "flatiron-0.4.3.tgz";
-      sha1 = "248cf79a3da7d7dc379e2a11c92a2719cbb540f6";
-    };
-    deps = {
-      "broadway-0.3.6" = self.by-version."broadway"."0.3.6";
-      "optimist-0.6.0" = self.by-version."optimist"."0.6.0";
-      "prompt-0.2.14" = self.by-version."prompt"."0.2.14";
-      "director-1.2.7" = self.by-version."director"."1.2.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "flatiron" = self.by-version."flatiron"."0.4.3";
-  by-spec."flatiron"."~0.4.2" =
-    self.by-version."flatiron"."0.4.3";
-  by-spec."flatten"."0.0.1" =
-    self.by-version."flatten"."0.0.1";
-  by-version."flatten"."0.0.1" = self.buildNodePackage {
-    name = "flatten-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/flatten/-/flatten-0.0.1.tgz";
-      name = "flatten-0.0.1.tgz";
-      sha1 = "554440766da0a0d603999f433453f6c2fc6a75c1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."flickrapi".">=0.3.12" =
-    self.by-version."flickrapi"."0.4.2";
-  by-version."flickrapi"."0.4.2" = self.buildNodePackage {
-    name = "flickrapi-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/flickrapi/-/flickrapi-0.4.2.tgz";
-      name = "flickrapi-0.4.2.tgz";
-      sha1 = "b9866a8a9e725920d278e3b936aa6cc0a31bcb58";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "glob-3.2.11" = self.by-version."glob"."3.2.11";
-      "open-0.0.5" = self.by-version."open"."0.0.5";
-      "progress-1.1.4" = self.by-version."progress"."1.1.4";
-      "prompt-0.2.14" = self.by-version."prompt"."0.2.14";
-      "request-2.26.0" = self.by-version."request"."2.26.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fluent-ffmpeg"."^2.0.0-rc3" =
-    self.by-version."fluent-ffmpeg"."2.1.0";
-  by-version."fluent-ffmpeg"."2.1.0" = self.buildNodePackage {
-    name = "fluent-ffmpeg-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.0.tgz";
-      name = "fluent-ffmpeg-2.1.0.tgz";
-      sha1 = "e6ab85e75ba8e49119a3900cd9df10d39831d392";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."flushwritable"."^1.0.0" =
-    self.by-version."flushwritable"."1.0.0";
-  by-version."flushwritable"."1.0.0" = self.buildNodePackage {
-    name = "flushwritable-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/flushwritable/-/flushwritable-1.0.0.tgz";
-      name = "flushwritable-1.0.0.tgz";
-      sha1 = "3e328d8fde412ad47e738e3be750b4d290043498";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."follow-redirects"."0.0.3" =
-    self.by-version."follow-redirects"."0.0.3";
-  by-version."follow-redirects"."0.0.3" = self.buildNodePackage {
-    name = "follow-redirects-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.3.tgz";
-      name = "follow-redirects-0.0.3.tgz";
-      sha1 = "6ce67a24db1fe13f226c1171a72a7ef2b17b8f65";
-    };
-    deps = {
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."follow-redirects"."0.0.7" =
-    self.by-version."follow-redirects"."0.0.7";
-  by-version."follow-redirects"."0.0.7" = self.buildNodePackage {
-    name = "follow-redirects-0.0.7";
-    version = "0.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz";
-      name = "follow-redirects-0.0.7.tgz";
-      sha1 = "34b90bab2a911aa347571da90f22bd36ecd8a919";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "stream-consume-0.1.0" = self.by-version."stream-consume"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."for-in"."^0.1.5" =
-    self.by-version."for-in"."0.1.5";
-  by-version."for-in"."0.1.5" = self.buildNodePackage {
-    name = "for-in-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/for-in/-/for-in-0.1.5.tgz";
-      name = "for-in-0.1.5.tgz";
-      sha1 = "007374e2b6d5c67420a1479bdb75a04872b738c4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."for-own"."^0.1.3" =
-    self.by-version."for-own"."0.1.4";
-  by-version."for-own"."0.1.4" = self.buildNodePackage {
-    name = "for-own-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz";
-      name = "for-own-0.1.4.tgz";
-      sha1 = "0149b41a39088c7515f51ebe1c1386d45f935072";
-    };
-    deps = {
-      "for-in-0.1.5" = self.by-version."for-in"."0.1.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."foreach"."^2.0.5" =
-    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 = "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz";
-      name = "foreach-2.0.5.tgz";
-      sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."foreachasync"."^3.0.0" =
-    self.by-version."foreachasync"."3.0.0";
-  by-version."foreachasync"."3.0.0" = self.buildNodePackage {
-    name = "foreachasync-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz";
-      name = "foreachasync-3.0.0.tgz";
-      sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."forever"."*" =
-    self.by-version."forever"."0.15.2";
-  by-version."forever"."0.15.2" = self.buildNodePackage {
-    name = "forever-0.15.2";
-    version = "0.15.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/forever/-/forever-0.15.2.tgz";
-      name = "forever-0.15.2.tgz";
-      sha1 = "fbf21a791ac76bc1a9149a322bc177f338cf5cf9";
-    };
-    deps = {
-      "cliff-0.1.10" = self.by-version."cliff"."0.1.10";
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "flatiron-0.4.3" = self.by-version."flatiron"."0.4.3";
-      "forever-monitor-1.6.0" = self.by-version."forever-monitor"."1.6.0";
-      "nconf-0.6.9" = self.by-version."nconf"."0.6.9";
-      "nssocket-0.5.3" = self.by-version."nssocket"."0.5.3";
-      "object-assign-3.0.0" = self.by-version."object-assign"."3.0.0";
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
-      "prettyjson-1.1.3" = self.by-version."prettyjson"."1.1.3";
-      "shush-1.0.0" = self.by-version."shush"."1.0.0";
-      "timespan-2.3.0" = self.by-version."timespan"."2.3.0";
-      "utile-0.2.1" = self.by-version."utile"."0.2.1";
-      "winston-0.8.3" = self.by-version."winston"."0.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "forever" = self.by-version."forever"."0.15.2";
-  by-spec."forever-agent"."~0.2.0" =
-    self.by-version."forever-agent"."0.2.0";
-  by-version."forever-agent"."0.2.0" = self.buildNodePackage {
-    name = "forever-agent-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz";
-      name = "forever-agent-0.2.0.tgz";
-      sha1 = "e1c25c7ad44e09c38f233876c76fcc24ff843b1f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."forever-agent"."~0.5.0" =
-    self.by-version."forever-agent"."0.5.2";
-  by-version."forever-agent"."0.5.2" = self.buildNodePackage {
-    name = "forever-agent-0.5.2";
-    version = "0.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz";
-      name = "forever-agent-0.5.2.tgz";
-      sha1 = "6d0e09c4921f94a27f63d3b49c5feff1ea4c5130";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."forever-agent"."~0.6.0" =
-    self.by-version."forever-agent"."0.6.1";
-  by-version."forever-agent"."0.6.1" = self.buildNodePackage {
-    name = "forever-agent-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
-      name = "forever-agent-0.6.1.tgz";
-      sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."forever-agent"."~0.6.1" =
-    self.by-version."forever-agent"."0.6.1";
-  by-spec."forever-monitor"."*" =
-    self.by-version."forever-monitor"."1.7.0";
-  by-version."forever-monitor"."1.7.0" = self.buildNodePackage {
-    name = "forever-monitor-1.7.0";
-    version = "1.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.7.0.tgz";
-      name = "forever-monitor-1.7.0.tgz";
-      sha1 = "4f3f4d42c78cbf7c795139964f85f2d9167eb192";
-    };
-    deps = {
-      "broadway-0.3.6" = self.by-version."broadway"."0.3.6";
-      "chokidar-1.5.2" = self.by-version."chokidar"."1.5.2";
-      "minimatch-2.0.10" = self.by-version."minimatch"."2.0.10";
-      "ps-tree-0.0.3" = self.by-version."ps-tree"."0.0.3";
-      "utile-0.2.1" = self.by-version."utile"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "forever-monitor" = self.by-version."forever-monitor"."1.7.0";
-  by-spec."forever-monitor"."~1.1.0" =
-    self.by-version."forever-monitor"."1.1.0";
-  by-version."forever-monitor"."1.1.0" = self.buildNodePackage {
-    name = "forever-monitor-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.1.0.tgz";
-      name = "forever-monitor-1.1.0.tgz";
-      sha1 = "439ce036f999601cff551aea7f5151001a869ef9";
-    };
-    deps = {
-      "broadway-0.2.10" = self.by-version."broadway"."0.2.10";
-      "minimatch-0.0.5" = self.by-version."minimatch"."0.0.5";
-      "pkginfo-0.4.0" = self.by-version."pkginfo"."0.4.0";
-      "ps-tree-0.0.3" = self.by-version."ps-tree"."0.0.3";
-      "watch-0.5.1" = self.by-version."watch"."0.5.1";
-      "utile-0.1.7" = self.by-version."utile"."0.1.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."forever-monitor"."~1.6.0" =
-    self.by-version."forever-monitor"."1.6.0";
-  by-version."forever-monitor"."1.6.0" = self.buildNodePackage {
-    name = "forever-monitor-1.6.0";
-    version = "1.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.6.0.tgz";
-      name = "forever-monitor-1.6.0.tgz";
-      sha1 = "3de1afd3e49f25712987281a252c02cb2463ad40";
-    };
-    deps = {
-      "broadway-0.3.6" = self.by-version."broadway"."0.3.6";
-      "chokidar-1.5.2" = self.by-version."chokidar"."1.5.2";
-      "minimatch-2.0.10" = self.by-version."minimatch"."2.0.10";
-      "ps-tree-0.0.3" = self.by-version."ps-tree"."0.0.3";
-      "utile-0.2.1" = self.by-version."utile"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."form-data"."0.1.3" =
-    self.by-version."form-data"."0.1.3";
-  by-version."form-data"."0.1.3" = self.buildNodePackage {
-    name = "form-data-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/form-data/-/form-data-0.1.3.tgz";
-      name = "form-data-0.1.3.tgz";
-      sha1 = "4ee4346e6eb5362e8344a02075bd8dbd8c7373ea";
-    };
-    deps = {
-      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."form-data"."1.0.0-rc3" =
-    self.by-version."form-data"."1.0.0-rc3";
-  by-version."form-data"."1.0.0-rc3" = self.buildNodePackage {
-    name = "form-data-1.0.0-rc3";
-    version = "1.0.0-rc3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz";
-      name = "form-data-1.0.0-rc3.tgz";
-      sha1 = "d35bc62e7fbc2937ae78f948aaa0d38d90607577";
-    };
-    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.11" = self.by-version."mime-types"."2.1.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."form-data".">=0.1.2" =
-    self.by-version."form-data"."0.2.0";
-  by-version."form-data"."0.2.0" = self.buildNodePackage {
-    name = "form-data-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz";
-      name = "form-data-0.2.0.tgz";
-      sha1 = "26f8bc26da6440e299cbdcfb69035c4f77a6e466";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
-      "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."form-data"."^0.1.2" =
-    self.by-version."form-data"."0.1.4";
-  by-version."form-data"."0.1.4" = self.buildNodePackage {
-    name = "form-data-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz";
-      name = "form-data-0.1.4.tgz";
-      sha1 = "91abd788aba9702b1aabfa8bc01031a2ac9e3b12";
-    };
-    deps = {
-      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."form-data"."^1.0.0-rc1" =
-    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 = "https://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.11" = self.by-version."mime-types"."2.1.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."form-data"."~0.0.3" =
-    self.by-version."form-data"."0.0.10";
-  by-version."form-data"."0.0.10" = self.buildNodePackage {
-    name = "form-data-0.0.10";
-    version = "0.0.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz";
-      name = "form-data-0.0.10.tgz";
-      sha1 = "db345a5378d86aeeb1ed5d553b869ac192d2f5ed";
-    };
-    deps = {
-      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."form-data"."~0.1.0" =
-    self.by-version."form-data"."0.1.4";
-  by-spec."form-data"."~0.2.0" =
-    self.by-version."form-data"."0.2.0";
-  by-spec."form-data"."~1.0.0-rc1" =
-    self.by-version."form-data"."1.0.0-rc4";
-  by-spec."form-data"."~1.0.0-rc3" =
-    self.by-version."form-data"."1.0.0-rc4";
-  by-spec."formatio"."1.1.1" =
-    self.by-version."formatio"."1.1.1";
-  by-version."formatio"."1.1.1" = self.buildNodePackage {
-    name = "formatio-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz";
-      name = "formatio-1.1.1.tgz";
-      sha1 = "5ed3ccd636551097383465d996199100e86161e9";
-    };
-    deps = {
-      "samsam-1.1.3" = self.by-version."samsam"."1.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."formidable"."1.0.11" =
-    self.by-version."formidable"."1.0.11";
-  by-version."formidable"."1.0.11" = self.buildNodePackage {
-    name = "formidable-1.0.11";
-    version = "1.0.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz";
-      name = "formidable-1.0.11.tgz";
-      sha1 = "68f63325a035e644b6f7bb3d11243b9761de1b30";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."formidable"."1.0.14" =
-    self.by-version."formidable"."1.0.14";
-  by-version."formidable"."1.0.14" = self.buildNodePackage {
-    name = "formidable-1.0.14";
-    version = "1.0.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz";
-      name = "formidable-1.0.14.tgz";
-      sha1 = "2b3f4c411cbb5fdd695c44843e2a23514a43231a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."formidable"."1.0.x" =
-    self.by-version."formidable"."1.0.17";
-  by-version."formidable"."1.0.17" = self.buildNodePackage {
-    name = "formidable-1.0.17";
-    version = "1.0.17";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz";
-      name = "formidable-1.0.17.tgz";
-      sha1 = "ef5491490f9433b705faa77249c99029ae348559";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."formidable"."^1.0.14" =
-    self.by-version."formidable"."1.0.17";
-  by-spec."formidable"."~1.0.14" =
-    self.by-version."formidable"."1.0.17";
-  by-spec."forwarded"."~0.1.0" =
-    self.by-version."forwarded"."0.1.0";
-  by-version."forwarded"."0.1.0" = self.buildNodePackage {
-    name = "forwarded-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz";
-      name = "forwarded-0.1.0.tgz";
-      sha1 = "19ef9874c4ae1c297bcf078fde63a09b66a84363";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fresh"."0.1.0" =
-    self.by-version."fresh"."0.1.0";
-  by-version."fresh"."0.1.0" = self.buildNodePackage {
-    name = "fresh-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz";
-      name = "fresh-0.1.0.tgz";
-      sha1 = "03e4b0178424e4c2d5d19a54d8814cdc97934850";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fresh"."0.2.0" =
-    self.by-version."fresh"."0.2.0";
-  by-version."fresh"."0.2.0" = self.buildNodePackage {
-    name = "fresh-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz";
-      name = "fresh-0.2.0.tgz";
-      sha1 = "bfd9402cf3df12c4a4c310c79f99a3dde13d34a7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fresh"."0.2.2" =
-    self.by-version."fresh"."0.2.2";
-  by-version."fresh"."0.2.2" = self.buildNodePackage {
-    name = "fresh-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz";
-      name = "fresh-0.2.2.tgz";
-      sha1 = "9731dcf5678c7faeb44fb903c4f72df55187fa77";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fresh"."0.2.4" =
-    self.by-version."fresh"."0.2.4";
-  by-version."fresh"."0.2.4" = self.buildNodePackage {
-    name = "fresh-0.2.4";
-    version = "0.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz";
-      name = "fresh-0.2.4.tgz";
-      sha1 = "3582499206c9723714190edd74b4604feb4a614c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fresh"."0.3.0" =
-    self.by-version."fresh"."0.3.0";
-  by-version."fresh"."0.3.0" = self.buildNodePackage {
-    name = "fresh-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz";
-      name = "fresh-0.3.0.tgz";
-      sha1 = "651f838e22424e7566de161d8358caa199f83d4f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fresh"."~0.2.1" =
-    self.by-version."fresh"."0.2.4";
-  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 = "https://registry.npmjs.org/from/-/from-0.1.3.tgz";
-      name = "from-0.1.3.tgz";
-      sha1 = "ef63ac2062ac32acf7862e0d40b44b896f22f3bc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."from2"."^1.1.0" =
-    self.by-version."from2"."1.3.0";
-  by-version."from2"."1.3.0" = self.buildNodePackage {
-    name = "from2-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz";
-      name = "from2-1.3.0.tgz";
-      sha1 = "88413baaa5f9a597cfde9221d86986cd3c061dfd";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-access"."^1.0.0" =
-    self.by-version."fs-access"."1.0.0";
-  by-version."fs-access"."1.0.0" = self.buildNodePackage {
-    name = "fs-access-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-access/-/fs-access-1.0.0.tgz";
-      name = "fs-access-1.0.0.tgz";
-      sha1 = "e96872b1f415ae302bdda4ef05309eb4bde1934c";
-    };
-    deps = {
-      "null-check-1.0.0" = self.by-version."null-check"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-blob-store"."^5.0.0" =
-    self.by-version."fs-blob-store"."5.2.1";
-  by-version."fs-blob-store"."5.2.1" = self.buildNodePackage {
-    name = "fs-blob-store-5.2.1";
-    version = "5.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-blob-store/-/fs-blob-store-5.2.1.tgz";
-      name = "fs-blob-store-5.2.1.tgz";
-      sha1 = "2a7db7ef59a5ec548cce8564066508224c9b0457";
-    };
-    deps = {
-      "duplexify-3.4.3" = self.by-version."duplexify"."3.4.3";
-      "end-of-stream-1.1.0" = self.by-version."end-of-stream"."1.1.0";
-      "lru-cache-2.7.3" = self.by-version."lru-cache"."2.7.3";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-chunk-store"."^1.3.0" =
-    self.by-version."fs-chunk-store"."1.6.2";
-  by-version."fs-chunk-store"."1.6.2" = self.buildNodePackage {
-    name = "fs-chunk-store-1.6.2";
-    version = "1.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-1.6.2.tgz";
-      name = "fs-chunk-store-1.6.2.tgz";
-      sha1 = "0a72e4c2e42885008c8bf0660204ebebc8cb62cc";
-    };
-    deps = {
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "random-access-file-1.2.0" = self.by-version."random-access-file"."1.2.0";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "run-parallel-1.1.6" = self.by-version."run-parallel"."1.1.6";
-      "thunky-0.1.0" = self.by-version."thunky"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-ext"."*" =
-    self.by-version."fs-ext"."0.5.0";
-  by-version."fs-ext"."0.5.0" = self.buildNodePackage {
-    name = "fs-ext-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-ext/-/fs-ext-0.5.0.tgz";
-      name = "fs-ext-0.5.0.tgz";
-      sha1 = "9c1f9a20b8e7e012e0a914b5e19132724f44f69e";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-ext".">=0.4.1 <1.0.0-0" =
-    self.by-version."fs-ext"."0.5.0";
-  by-spec."fs-extended"."^0.2.0" =
-    self.by-version."fs-extended"."0.2.1";
-  by-version."fs-extended"."0.2.1" = self.buildNodePackage {
-    name = "fs-extended-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-extended/-/fs-extended-0.2.1.tgz";
-      name = "fs-extended-0.2.1.tgz";
-      sha1 = "3910358127e9c72c8296c30142c7763b5f5e2d3a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-extra"."0.26.7" =
-    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 = "https://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.4" = self.by-version."graceful-fs"."4.1.4";
-      "jsonfile-2.3.1" = self.by-version."jsonfile"."2.3.1";
-      "klaw-1.3.0" = self.by-version."klaw"."1.3.0";
-      "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 = [ ];
-  };
-  by-spec."fs-extra"."~0.26.4" =
-    self.by-version."fs-extra"."0.26.7";
-  by-spec."fs-extra"."~0.26.5" =
-    self.by-version."fs-extra"."0.26.7";
-  by-spec."fs-extra"."~0.6.1" =
-    self.by-version."fs-extra"."0.6.4";
-  by-version."fs-extra"."0.6.4" = self.buildNodePackage {
-    name = "fs-extra-0.6.4";
-    version = "0.6.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-extra/-/fs-extra-0.6.4.tgz";
-      name = "fs-extra-0.6.4.tgz";
-      sha1 = "f46f0c75b7841f8d200b3348cd4d691d5a099d15";
-    };
-    deps = {
-      "ncp-0.4.2" = self.by-version."ncp"."0.4.2";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "jsonfile-1.0.1" = self.by-version."jsonfile"."1.0.1";
-      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-extra"."~0.7.0" =
-    self.by-version."fs-extra"."0.7.1";
-  by-version."fs-extra"."0.7.1" = self.buildNodePackage {
-    name = "fs-extra-0.7.1";
-    version = "0.7.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-extra/-/fs-extra-0.7.1.tgz";
-      name = "fs-extra-0.7.1.tgz";
-      sha1 = "516505a3be70c1bead91df000ceb9955ab1b5f8b";
-    };
-    deps = {
-      "ncp-0.4.2" = self.by-version."ncp"."0.4.2";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "jsonfile-1.1.1" = self.by-version."jsonfile"."1.1.1";
-      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-vacuum"."~1.2.9" =
-    self.by-version."fs-vacuum"."1.2.9";
-  by-version."fs-vacuum"."1.2.9" = self.buildNodePackage {
-    name = "fs-vacuum-1.2.9";
-    version = "1.2.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.9.tgz";
-      name = "fs-vacuum-1.2.9.tgz";
-      sha1 = "4f90193ab8ea02890995bcd4e804659a5d366b2d";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "path-is-inside-1.0.1" = self.by-version."path-is-inside"."1.0.1";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs-walk"."*" =
-    self.by-version."fs-walk"."0.0.1";
-  by-version."fs-walk"."0.0.1" = self.buildNodePackage {
-    name = "fs-walk-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-walk/-/fs-walk-0.0.1.tgz";
-      name = "fs-walk-0.0.1.tgz";
-      sha1 = "f7fc91c3ae1eead07c998bc5d0dd41f2dbebd335";
-    };
-    deps = {
-      "async-2.0.0-rc.6" = self.by-version."async"."2.0.0-rc.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "fs-walk" = self.by-version."fs-walk"."0.0.1";
-  by-spec."fs-write-stream-atomic"."~1.0.8" =
-    self.by-version."fs-write-stream-atomic"."1.0.8";
-  by-version."fs-write-stream-atomic"."1.0.8" = self.buildNodePackage {
-    name = "fs-write-stream-atomic-1.0.8";
-    version = "1.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.8.tgz";
-      name = "fs-write-stream-atomic-1.0.8.tgz";
-      sha1 = "e49aaddf288f87d46ff9e882f216a13abc40778b";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "iferr-0.1.5" = self.by-version."iferr"."0.1.5";
-      "imurmurhash-0.1.4" = self.by-version."imurmurhash"."0.1.4";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs.extra".">=1.2.0 <2.0.0" =
-    self.by-version."fs.extra"."1.3.2";
-  by-version."fs.extra"."1.3.2" = self.buildNodePackage {
-    name = "fs.extra-1.3.2";
-    version = "1.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs.extra/-/fs.extra-1.3.2.tgz";
-      name = "fs.extra-1.3.2.tgz";
-      sha1 = "dd023f93013bee24531f1b33514c37b20fd93349";
-    };
-    deps = {
-      "fs-extra-0.6.4" = self.by-version."fs-extra"."0.6.4";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "walk-2.3.9" = self.by-version."walk"."2.3.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fs.notify"."0.0.4" =
-    self.by-version."fs.notify"."0.0.4";
-  by-version."fs.notify"."0.0.4" = self.buildNodePackage {
-    name = "fs.notify-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fs.notify/-/fs.notify-0.0.4.tgz";
-      name = "fs.notify-0.0.4.tgz";
-      sha1 = "63284d45a34b52ce60088a6ddbec5b776d3c013d";
-    };
-    deps = {
-      "async-0.1.22" = self.by-version."async"."0.1.22";
-      "retry-0.6.1" = self.by-version."retry"."0.6.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fsevents"."^1.0.0" =
-    self.by-version."fsevents"."1.0.12";
-  by-version."fsevents"."1.0.12" = self.buildNodePackage {
-    name = "fsevents-1.0.12";
-    version = "1.0.12";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fsevents/-/fsevents-1.0.12.tgz";
-      name = "fsevents-1.0.12.tgz";
-      sha1 = "7929e211c0b31f37f2f0fc346f315e403d7ed33b";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-      "node-pre-gyp-0.6.28" = self.by-version."node-pre-gyp"."0.6.28";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ "darwin" ];
-    cpu = [ ];
-  };
-  by-spec."fstream"."^1.0.0" =
-    self.by-version."fstream"."1.0.9";
-  by-version."fstream"."1.0.9" = self.buildNodePackage {
-    name = "fstream-1.0.9";
-    version = "1.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fstream/-/fstream-1.0.9.tgz";
-      name = "fstream-1.0.9.tgz";
-      sha1 = "5d9c2f0270e475fa8eb9db60e26975a3ae8d2abc";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fstream"."^1.0.2" =
-    self.by-version."fstream"."1.0.9";
-  by-spec."fstream"."~0.1.8" =
-    self.by-version."fstream"."0.1.31";
-  by-version."fstream"."0.1.31" = self.buildNodePackage {
-    name = "fstream-0.1.31";
-    version = "0.1.31";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz";
-      name = "fstream-0.1.31.tgz";
-      sha1 = "7337f058fbbbbefa8c9f561a28cab0849202c988";
-    };
-    deps = {
-      "graceful-fs-3.0.8" = self.by-version."graceful-fs"."3.0.8";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fstream"."~1.0.8" =
-    self.by-version."fstream"."1.0.9";
-  by-spec."fstream-ignore"."^1.0.0" =
-    self.by-version."fstream-ignore"."1.0.5";
-  by-version."fstream-ignore"."1.0.5" = self.buildNodePackage {
-    name = "fstream-ignore-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz";
-      name = "fstream-ignore-1.0.5.tgz";
-      sha1 = "9c31dae34767018fe1d249b24dada67d092da105";
-    };
-    deps = {
-      "fstream-1.0.9" = self.by-version."fstream"."1.0.9";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fstream-ignore"."~1.0.3" =
-    self.by-version."fstream-ignore"."1.0.5";
-  by-spec."fstream-npm"."~1.0.7" =
-    self.by-version."fstream-npm"."1.0.7";
-  by-version."fstream-npm"."1.0.7" = self.buildNodePackage {
-    name = "fstream-npm-1.0.7";
-    version = "1.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fstream-npm/-/fstream-npm-1.0.7.tgz";
-      name = "fstream-npm-1.0.7.tgz";
-      sha1 = "7ed0d1ac13d7686dd9e1bf6ceb8be273bf6d2f86";
-    };
-    deps = {
-      "fstream-ignore-1.0.5" = self.by-version."fstream-ignore"."1.0.5";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."fstream-npm"."~1.1.0" =
-    self.by-version."fstream-npm"."1.1.0";
-  by-version."fstream-npm"."1.1.0" = self.buildNodePackage {
-    name = "fstream-npm-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/fstream-npm/-/fstream-npm-1.1.0.tgz";
-      name = "fstream-npm-1.1.0.tgz";
-      sha1 = "80e09743485eaa70d57e89d1ff8fafa366cdefea";
-    };
-    deps = {
-      "fstream-ignore-1.0.5" = self.by-version."fstream-ignore"."1.0.5";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ftp"."~0.3.5" =
-    self.by-version."ftp"."0.3.10";
-  by-version."ftp"."0.3.10" = self.buildNodePackage {
-    name = "ftp-0.3.10";
-    version = "0.3.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz";
-      name = "ftp-0.3.10.tgz";
-      sha1 = "9197d861ad8142f3e63d5a83bfe4c59f7330885d";
-    };
-    deps = {
-      "xregexp-2.0.0" = self.by-version."xregexp"."2.0.0";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."function-bind"."^1.0.2" =
-    self.by-version."function-bind"."1.1.0";
-  by-version."function-bind"."1.1.0" = self.buildNodePackage {
-    name = "function-bind-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz";
-      name = "function-bind-1.1.0.tgz";
-      sha1 = "16176714c801798e4e8f2cf7f7529467bb4a5771";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gapitoken"."^0.1.3" =
-    self.by-version."gapitoken"."0.1.5";
-  by-version."gapitoken"."0.1.5" = self.buildNodePackage {
-    name = "gapitoken-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gapitoken/-/gapitoken-0.1.5.tgz";
-      name = "gapitoken-0.1.5.tgz";
-      sha1 = "3577fcfb5426be3a7b8ebada92671229d8cc81ce";
-    };
-    deps = {
-      "jws-3.0.0" = self.by-version."jws"."3.0.0";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gapitoken"."~0.1.2" =
-    self.by-version."gapitoken"."0.1.5";
-  by-spec."gauge"."~1.2.5" =
-    self.by-version."gauge"."1.2.7";
-  by-version."gauge"."1.2.7" = self.buildNodePackage {
-    name = "gauge-1.2.7";
-    version = "1.2.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz";
-      name = "gauge-1.2.7.tgz";
-      sha1 = "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93";
-    };
-    deps = {
-      "ansi-0.3.1" = self.by-version."ansi"."0.3.1";
-      "has-unicode-2.0.0" = self.by-version."has-unicode"."2.0.0";
-      "lodash.pad-4.4.0" = self.by-version."lodash.pad"."4.4.0";
-      "lodash.padend-4.5.0" = self.by-version."lodash.padend"."4.5.0";
-      "lodash.padstart-4.5.0" = self.by-version."lodash.padstart"."4.5.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gauge"."~2.5.0" =
-    self.by-version."gauge"."2.5.0";
-  by-version."gauge"."2.5.0" = self.buildNodePackage {
-    name = "gauge-2.5.0";
-    version = "2.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gauge/-/gauge-2.5.0.tgz";
-      name = "gauge-2.5.0.tgz";
-      sha1 = "15094f34e20bfce7b3e6ff439818e28027aa2440";
-    };
-    deps = {
-      "aproba-1.0.3" = self.by-version."aproba"."1.0.3";
-      "has-color-0.1.7" = self.by-version."has-color"."0.1.7";
-      "has-unicode-2.0.0" = self.by-version."has-unicode"."2.0.0";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "signal-exit-2.1.2" = self.by-version."signal-exit"."2.1.2";
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "wide-align-1.1.0" = self.by-version."wide-align"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gaze"."^0.5.1" =
-    self.by-version."gaze"."0.5.2";
-  by-version."gaze"."0.5.2" = self.buildNodePackage {
-    name = "gaze-0.5.2";
-    version = "0.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz";
-      name = "gaze-0.5.2.tgz";
-      sha1 = "40b709537d24d1d45767db5a908689dfe69ac44f";
-    };
-    deps = {
-      "globule-0.1.0" = self.by-version."globule"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gcloud"."^0.10.0" =
-    self.by-version."gcloud"."0.10.0";
-  by-version."gcloud"."0.10.0" = self.buildNodePackage {
-    name = "gcloud-0.10.0";
-    version = "0.10.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gcloud/-/gcloud-0.10.0.tgz";
-      name = "gcloud-0.10.0.tgz";
-      sha1 = "855a26b3531dc7b0791513fffb89fc65921f43ee";
-    };
-    deps = {
-      "duplexify-3.4.3" = self.by-version."duplexify"."3.4.3";
-      "extend-1.3.0" = self.by-version."extend"."1.3.0";
-      "gapitoken-0.1.5" = self.by-version."gapitoken"."0.1.5";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "protobufjs-3.8.2" = self.by-version."protobufjs"."3.8.2";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "stream-events-1.0.1" = self.by-version."stream-events"."1.0.1";
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gelf-stream"."~0.2.4" =
-    self.by-version."gelf-stream"."0.2.4";
-  by-version."gelf-stream"."0.2.4" = self.buildNodePackage {
-    name = "gelf-stream-0.2.4";
-    version = "0.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gelf-stream/-/gelf-stream-0.2.4.tgz";
-      name = "gelf-stream-0.2.4.tgz";
-      sha1 = "a418c8c2e39b85b7932a3e8523f6022d6852e013";
-    };
-    deps = {
-      "gelfling-0.2.0" = self.by-version."gelfling"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gelfling"."~0.2.0" =
-    self.by-version."gelfling"."0.2.0";
-  by-version."gelfling"."0.2.0" = self.buildNodePackage {
-    name = "gelfling-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gelfling/-/gelfling-0.2.0.tgz";
-      name = "gelfling-0.2.0.tgz";
-      sha1 = "23a13c366883adae32ecfd252a566be302b88dc3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."generate-function"."^2.0.0" =
-    self.by-version."generate-function"."2.0.0";
-  by-version."generate-function"."2.0.0" = self.buildNodePackage {
-    name = "generate-function-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz";
-      name = "generate-function-2.0.0.tgz";
-      sha1 = "6858fe7c0969b7d4e9093337647ac79f60dfbe74";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."generate-object-property"."^1.1.0" =
-    self.by-version."generate-object-property"."1.2.0";
-  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 = "https://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."generate-schema"."^2.1.1" =
-    self.by-version."generate-schema"."2.1.1";
-  by-version."generate-schema"."2.1.1" = self.buildNodePackage {
-    name = "generate-schema-2.1.1";
-    version = "2.1.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/generate-schema/-/generate-schema-2.1.1.tgz";
-      name = "generate-schema-2.1.1.tgz";
-      sha1 = "d93e50e08460c02d58cada55317e9f4f588a7d42";
-    };
-    deps = {
-      "type-of-is-3.4.0" = self.by-version."type-of-is"."3.4.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."get-browser-rtc"."^1.0.0" =
-    self.by-version."get-browser-rtc"."1.0.2";
-  by-version."get-browser-rtc"."1.0.2" = self.buildNodePackage {
-    name = "get-browser-rtc-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.0.2.tgz";
-      name = "get-browser-rtc-1.0.2.tgz";
-      sha1 = "bbcd40c8451a7ed4ef5c373b8169a409dd1d11d9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."get-stdin"."^4.0.1" =
-    self.by-version."get-stdin"."4.0.1";
-  by-version."get-stdin"."4.0.1" = self.buildNodePackage {
-    name = "get-stdin-4.0.1";
-    version = "4.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz";
-      name = "get-stdin-4.0.1.tgz";
-      sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."get-stdin"."^5.0.1" =
-    self.by-version."get-stdin"."5.0.1";
-  by-version."get-stdin"."5.0.1" = self.buildNodePackage {
-    name = "get-stdin-5.0.1";
-    version = "5.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz";
-      name = "get-stdin-5.0.1.tgz";
-      sha1 = "122e161591e21ff4c52530305693f20e6393a398";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."get-uri"."~0.1.0" =
-    self.by-version."get-uri"."0.1.4";
-  by-version."get-uri"."0.1.4" = self.buildNodePackage {
-    name = "get-uri-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/get-uri/-/get-uri-0.1.4.tgz";
-      name = "get-uri-0.1.4.tgz";
-      sha1 = "35f8a7954c129fb132ff2ddf5ed81a57cb8a9e54";
-    };
-    deps = {
-      "data-uri-to-buffer-0.0.4" = self.by-version."data-uri-to-buffer"."0.0.4";
-      "ftp-0.3.10" = self.by-version."ftp"."0.3.10";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-      "file-uri-to-path-0.0.2" = self.by-version."file-uri-to-path"."0.0.2";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."getmac"."~1.0.7" =
-    self.by-version."getmac"."1.0.7";
-  by-version."getmac"."1.0.7" = self.buildNodePackage {
-    name = "getmac-1.0.7";
-    version = "1.0.7";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/getmac/-/getmac-1.0.7.tgz";
-      name = "getmac-1.0.7.tgz";
-      sha1 = "94460f9778698d2e159a03da6c165689f22cdd67";
-    };
-    deps = {
-      "extract-opts-2.2.0" = self.by-version."extract-opts"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."getobject"."~0.1.0" =
-    self.by-version."getobject"."0.1.0";
-  by-version."getobject"."0.1.0" = self.buildNodePackage {
-    name = "getobject-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz";
-      name = "getobject-0.1.0.tgz";
-      sha1 = "047a449789fa160d018f5486ed91320b6ec7885c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."getpass"."^0.1.1" =
-    self.by-version."getpass"."0.1.6";
-  by-version."getpass"."0.1.6" = self.buildNodePackage {
-    name = "getpass-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz";
-      name = "getpass-0.1.6.tgz";
-      sha1 = "283ffd9fc1256840875311c1b60e8c40187110e6";
-    };
-    deps = {
-      "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."git-run"."*" =
-    self.by-version."git-run"."0.5.1";
-  by-version."git-run"."0.5.1" = self.buildNodePackage {
-    name = "git-run-0.5.1";
-    version = "0.5.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/git-run/-/git-run-0.5.1.tgz";
-      name = "git-run-0.5.1.tgz";
-      sha1 = "7d9cb28a9e8e1076d005b94baa6ec5c6316fe1e9";
-    };
-    deps = {
-      "minilog-2.0.8" = self.by-version."minilog"."2.0.8";
-      "tabtab-0.0.2" = self.by-version."tabtab"."0.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "git-run" = self.by-version."git-run"."0.5.1";
-  by-spec."github"."^0.2.4" =
-    self.by-version."github"."0.2.4";
-  by-version."github"."0.2.4" = self.buildNodePackage {
-    name = "github-0.2.4";
-    version = "0.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/github/-/github-0.2.4.tgz";
-      name = "github-0.2.4.tgz";
-      sha1 = "24fa7f0e13fa11b946af91134c51982a91ce538b";
-    };
-    deps = {
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."github-url-from-git"."~1.4.0" =
-    self.by-version."github-url-from-git"."1.4.0";
-  by-version."github-url-from-git"."1.4.0" = self.buildNodePackage {
-    name = "github-url-from-git-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.4.0.tgz";
-      name = "github-url-from-git-1.4.0.tgz";
-      sha1 = "285e6b520819001bde128674704379e4ff03e0de";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."github-url-from-username-repo"."~1.0.2" =
-    self.by-version."github-url-from-username-repo"."1.0.2";
-  by-version."github-url-from-username-repo"."1.0.2" = self.buildNodePackage {
-    name = "github-url-from-username-repo-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/github-url-from-username-repo/-/github-url-from-username-repo-1.0.2.tgz";
-      name = "github-url-from-username-repo-1.0.2.tgz";
-      sha1 = "7dd79330d2abe69c10c2cef79714c97215791dfa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob"."3" =
-    self.by-version."glob"."3.2.11";
-  by-version."glob"."3.2.11" = self.buildNodePackage {
-    name = "glob-3.2.11";
-    version = "3.2.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz";
-      name = "glob-3.2.11.tgz";
-      sha1 = "4a973f635b9190f715d10987d5c00fd2815ebe3d";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "minimatch-0.3.0" = self.by-version."minimatch"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob"."3 || 4" =
-    self.by-version."glob"."4.5.3";
-  by-version."glob"."4.5.3" = self.buildNodePackage {
-    name = "glob-4.5.3";
-    version = "4.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz";
-      name = "glob-4.5.3.tgz";
-      sha1 = "c6cb73d3226c1efef04de3c56d012f03377ee15f";
-    };
-    deps = {
-      "inflight-1.0.5" = self.by-version."inflight"."1.0.5";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "minimatch-2.0.10" = self.by-version."minimatch"."2.0.10";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob"."3.2.11" =
-    self.by-version."glob"."3.2.11";
-  by-spec."glob"."3.2.x" =
-    self.by-version."glob"."3.2.11";
-  by-spec."glob"."5.x" =
-    self.by-version."glob"."5.0.15";
-  by-version."glob"."5.0.15" = self.buildNodePackage {
-    name = "glob-5.0.15";
-    version = "5.0.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz";
-      name = "glob-5.0.15.tgz";
-      sha1 = "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1";
-    };
-    deps = {
-      "inflight-1.0.5" = self.by-version."inflight"."1.0.5";
-      "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."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 = "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz";
-      name = "glob-6.0.4.tgz";
-      sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22";
-    };
-    deps = {
-      "inflight-1.0.5" = self.by-version."inflight"."1.0.5";
-      "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."glob"."7.0.x" =
-    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 = "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz";
-      name = "glob-7.0.3.tgz";
-      sha1 = "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58";
-    };
-    deps = {
-      "inflight-1.0.5" = self.by-version."inflight"."1.0.5";
-      "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."glob"."^4.0.5" =
-    self.by-version."glob"."4.5.3";
-  by-spec."glob"."^4.3.1" =
-    self.by-version."glob"."4.5.3";
-  by-spec."glob"."^5.0.0" =
-    self.by-version."glob"."5.0.15";
-  by-spec."glob"."^5.0.13" =
-    self.by-version."glob"."5.0.15";
-  by-spec."glob"."^5.0.14" =
-    self.by-version."glob"."5.0.15";
-  by-spec."glob"."^5.0.15" =
-    self.by-version."glob"."5.0.15";
-  by-spec."glob"."^5.0.3" =
-    self.by-version."glob"."5.0.15";
-  by-spec."glob"."^5.0.5" =
-    self.by-version."glob"."5.0.15";
-  by-spec."glob"."^6.0.0" =
-    self.by-version."glob"."6.0.4";
-  by-spec."glob"."^6.0.1" =
-    self.by-version."glob"."6.0.4";
-  by-spec."glob"."^7.0.0" =
-    self.by-version."glob"."7.0.3";
-  by-spec."glob"."^7.0.3" =
-    self.by-version."glob"."7.0.3";
-  by-spec."glob"."~ 3.2.1" =
-    self.by-version."glob"."3.2.11";
-  by-spec."glob"."~3.1.21" =
-    self.by-version."glob"."3.1.21";
-  by-version."glob"."3.1.21" = self.buildNodePackage {
-    name = "glob-3.1.21";
-    version = "3.1.21";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz";
-      name = "glob-3.1.21.tgz";
-      sha1 = "d29e0a055dea5138f4d07ed40e8982e83c2066cd";
-    };
-    deps = {
-      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
-      "graceful-fs-1.2.3" = self.by-version."graceful-fs"."1.2.3";
-      "inherits-1.0.2" = self.by-version."inherits"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob"."~3.2.6" =
-    self.by-version."glob"."3.2.11";
-  by-spec."glob"."~3.2.9" =
-    self.by-version."glob"."3.2.11";
-  by-spec."glob"."~4.0.6" =
-    self.by-version."glob"."4.0.6";
-  by-version."glob"."4.0.6" = self.buildNodePackage {
-    name = "glob-4.0.6";
-    version = "4.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob/-/glob-4.0.6.tgz";
-      name = "glob-4.0.6.tgz";
-      sha1 = "695c50bdd4e2fb5c5d370b091f388d3707e291a7";
-    };
-    deps = {
-      "graceful-fs-3.0.8" = self.by-version."graceful-fs"."3.0.8";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob"."~4.3.0" =
-    self.by-version."glob"."4.3.5";
-  by-version."glob"."4.3.5" = self.buildNodePackage {
-    name = "glob-4.3.5";
-    version = "4.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz";
-      name = "glob-4.3.5.tgz";
-      sha1 = "80fbb08ca540f238acce5d11d1e9bc41e75173d3";
-    };
-    deps = {
-      "inflight-1.0.5" = self.by-version."inflight"."1.0.5";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "minimatch-2.0.10" = self.by-version."minimatch"."2.0.10";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob"."~5.0.0" =
-    self.by-version."glob"."5.0.15";
-  by-spec."glob"."~7.0.0" =
-    self.by-version."glob"."7.0.3";
-  by-spec."glob"."~7.0.3" =
-    self.by-version."glob"."7.0.3";
-  by-spec."glob-base"."^0.3.0" =
-    self.by-version."glob-base"."0.3.0";
-  by-version."glob-base"."0.3.0" = self.buildNodePackage {
-    name = "glob-base-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz";
-      name = "glob-base-0.3.0.tgz";
-      sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4";
-    };
-    deps = {
-      "glob-parent-2.0.0" = self.by-version."glob-parent"."2.0.0";
-      "is-glob-2.0.1" = self.by-version."is-glob"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob-parent"."^2.0.0" =
-    self.by-version."glob-parent"."2.0.0";
-  by-version."glob-parent"."2.0.0" = self.buildNodePackage {
-    name = "glob-parent-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz";
-      name = "glob-parent-2.0.0.tgz";
-      sha1 = "81383d72db054fcccf5336daa902f182f6edbb28";
-    };
-    deps = {
-      "is-glob-2.0.1" = self.by-version."is-glob"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob-stream"."^3.1.5" =
-    self.by-version."glob-stream"."3.1.18";
-  by-version."glob-stream"."3.1.18" = self.buildNodePackage {
-    name = "glob-stream-3.1.18";
-    version = "3.1.18";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz";
-      name = "glob-stream-3.1.18.tgz";
-      sha1 = "9170a5f12b790306fdfe598f313f8f7954fd143b";
-    };
-    deps = {
-      "glob-4.5.3" = self.by-version."glob"."4.5.3";
-      "minimatch-2.0.10" = self.by-version."minimatch"."2.0.10";
-      "ordered-read-streams-0.1.0" = self.by-version."ordered-read-streams"."0.1.0";
-      "glob2base-0.0.12" = self.by-version."glob2base"."0.0.12";
-      "unique-stream-1.0.0" = self.by-version."unique-stream"."1.0.0";
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob-stream"."^5.3.2" =
-    self.by-version."glob-stream"."5.3.2";
-  by-version."glob-stream"."5.3.2" = self.buildNodePackage {
-    name = "glob-stream-5.3.2";
-    version = "5.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.2.tgz";
-      name = "glob-stream-5.3.2.tgz";
-      sha1 = "cdfdaf7c3243cd53430a84dc934fa39d8c5da1a5";
-    };
-    deps = {
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-      "glob-parent-2.0.0" = self.by-version."glob-parent"."2.0.0";
-      "micromatch-2.3.8" = self.by-version."micromatch"."2.3.8";
-      "ordered-read-streams-0.3.0" = self.by-version."ordered-read-streams"."0.3.0";
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-      "to-absolute-glob-0.1.1" = self.by-version."to-absolute-glob"."0.1.1";
-      "unique-stream-2.2.1" = self.by-version."unique-stream"."2.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob-watcher"."^0.0.6" =
-    self.by-version."glob-watcher"."0.0.6";
-  by-version."glob-watcher"."0.0.6" = self.buildNodePackage {
-    name = "glob-watcher-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz";
-      name = "glob-watcher-0.0.6.tgz";
-      sha1 = "b95b4a8df74b39c83298b0c05c978b4d9a3b710b";
-    };
-    deps = {
-      "gaze-0.5.2" = self.by-version."gaze"."0.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glob2base"."^0.0.12" =
-    self.by-version."glob2base"."0.0.12";
-  by-version."glob2base"."0.0.12" = self.buildNodePackage {
-    name = "glob2base-0.0.12";
-    version = "0.0.12";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz";
-      name = "glob2base-0.0.12.tgz";
-      sha1 = "9d419b3e28f12e83a362164a277055922c9c0d56";
-    };
-    deps = {
-      "find-index-0.1.1" = self.by-version."find-index"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."global"."https://github.com/component/global/archive/v2.0.1.tar.gz" =
-    self.by-version."global"."2.0.1";
-  by-version."global"."2.0.1" = self.buildNodePackage {
-    name = "global-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://github.com/component/global/archive/v2.0.1.tar.gz";
-      name = "global-2.0.1.tgz";
-      sha256 = "42be02b7148745447f6ba21137c972ca82d2cad92d30d63bd4fc310623901785";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."globals"."^9.2.0" =
-    self.by-version."globals"."9.8.0";
-  by-version."globals"."9.8.0" = self.buildNodePackage {
-    name = "globals-9.8.0";
-    version = "9.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/globals/-/globals-9.8.0.tgz";
-      name = "globals-9.8.0.tgz";
-      sha1 = "a436ecf6214e5f73f110a400305325330a7cfd50";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."globby"."^4.0.0" =
-    self.by-version."globby"."4.1.0";
-  by-version."globby"."4.1.0" = self.buildNodePackage {
-    name = "globby-4.1.0";
-    version = "4.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz";
-      name = "globby-4.1.0.tgz";
-      sha1 = "080f54549ec1b82a6c60e631fc82e1211dbe95f8";
-    };
-    deps = {
-      "array-union-1.0.1" = self.by-version."array-union"."1.0.1";
-      "arrify-1.0.1" = self.by-version."arrify"."1.0.1";
-      "glob-6.0.4" = self.by-version."glob"."6.0.4";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "pify-2.3.0" = self.by-version."pify"."2.3.0";
-      "pinkie-promise-2.0.1" = self.by-version."pinkie-promise"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."globule"."~0.1.0" =
-    self.by-version."globule"."0.1.0";
-  by-version."globule"."0.1.0" = self.buildNodePackage {
-    name = "globule-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz";
-      name = "globule-0.1.0.tgz";
-      sha1 = "d9c8edde1da79d125a151b79533b978676346ae5";
-    };
-    deps = {
-      "lodash-1.0.2" = self.by-version."lodash"."1.0.2";
-      "glob-3.1.21" = self.by-version."glob"."3.1.21";
-      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."glogg"."^1.0.0" =
-    self.by-version."glogg"."1.0.0";
-  by-version."glogg"."1.0.0" = self.buildNodePackage {
-    name = "glogg-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz";
-      name = "glogg-1.0.0.tgz";
-      sha1 = "7fe0f199f57ac906cf512feead8f90ee4a284fc5";
-    };
-    deps = {
-      "sparkles-1.0.0" = self.by-version."sparkles"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."google-auth-library"."^0.9.6" =
-    self.by-version."google-auth-library"."0.9.8";
-  by-version."google-auth-library"."0.9.8" = self.buildNodePackage {
-    name = "google-auth-library-0.9.8";
-    version = "0.9.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-0.9.8.tgz";
-      name = "google-auth-library-0.9.8.tgz";
-      sha1 = "667acb8cc2242d8da83f7d308d76ac434ef53679";
-    };
-    deps = {
-      "async-1.4.2" = self.by-version."async"."1.4.2";
-      "gtoken-1.2.1" = self.by-version."gtoken"."1.2.1";
-      "lodash.noop-3.0.1" = self.by-version."lodash.noop"."3.0.1";
-      "jws-3.0.0" = self.by-version."jws"."3.0.0";
-      "request-2.60.0" = self.by-version."request"."2.60.0";
-      "string-template-0.2.1" = self.by-version."string-template"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."google-oauth-jwt"."~0.1.4" =
-    self.by-version."google-oauth-jwt"."0.1.7";
-  by-version."google-oauth-jwt"."0.1.7" = self.buildNodePackage {
-    name = "google-oauth-jwt-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/google-oauth-jwt/-/google-oauth-jwt-0.1.7.tgz";
-      name = "google-oauth-jwt-0.1.7.tgz";
-      sha1 = "3ebb79848aba2602aecc0b482244253df8238033";
-    };
-    deps = {
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."google-p12-pem"."^0.1.0" =
-    self.by-version."google-p12-pem"."0.1.0";
-  by-version."google-p12-pem"."0.1.0" = self.buildNodePackage {
-    name = "google-p12-pem-0.1.0";
-    version = "0.1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-0.1.0.tgz";
-      name = "google-p12-pem-0.1.0.tgz";
-      sha1 = "fb2523bf84ff74676e84c72b4def50961e617d1c";
-    };
-    deps = {
-      "node-forge-0.6.39" = self.by-version."node-forge"."0.6.39";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."googleapis"."0.8.0" =
-    self.by-version."googleapis"."0.8.0";
-  by-version."googleapis"."0.8.0" = self.buildNodePackage {
-    name = "googleapis-0.8.0";
-    version = "0.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/googleapis/-/googleapis-0.8.0.tgz";
-      name = "googleapis-0.8.0.tgz";
-      sha1 = "b7bdf177ee839f1bab5cf5e65cb4d0d74f27a86b";
-    };
-    deps = {
-      "request-2.34.0" = self.by-version."request"."2.34.0";
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "gapitoken-0.1.5" = self.by-version."gapitoken"."0.1.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."googleapis"."^1.0.20" =
-    self.by-version."googleapis"."1.1.5";
-  by-version."googleapis"."1.1.5" = self.buildNodePackage {
-    name = "googleapis-1.1.5";
-    version = "1.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/googleapis/-/googleapis-1.1.5.tgz";
-      name = "googleapis-1.1.5.tgz";
-      sha1 = "e10150ac9e8b25fb51799f10ed946c5b9f8064aa";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "gapitoken-0.1.5" = self.by-version."gapitoken"."0.1.5";
-      "request-2.51.0" = self.by-version."request"."2.51.0";
-      "string-template-0.2.1" = self.by-version."string-template"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."googleclientlogin"."~0.2.8" =
-    self.by-version."googleclientlogin"."0.2.8";
-  by-version."googleclientlogin"."0.2.8" = self.buildNodePackage {
-    name = "googleclientlogin-0.2.8";
-    version = "0.2.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/googleclientlogin/-/googleclientlogin-0.2.8.tgz";
-      name = "googleclientlogin-0.2.8.tgz";
-      sha1 = "953ba87bbe8feda8f7e70f9f7721b29a503f8df0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."got"."^1.2.2" =
-    self.by-version."got"."1.2.2";
-  by-version."got"."1.2.2" = self.buildNodePackage {
-    name = "got-1.2.2";
-    version = "1.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/got/-/got-1.2.2.tgz";
-      name = "got-1.2.2.tgz";
-      sha1 = "d9430ba32f6a30218243884418767340aafc0400";
-    };
-    deps = {
-      "object-assign-1.0.0" = self.by-version."object-assign"."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 = "https://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.1.0" = self.by-version."is-stream"."1.1.0";
-      "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.4" = self.by-version."prepend-http"."1.0.4";
-      "read-all-stream-2.2.0" = self.by-version."read-all-stream"."2.2.0";
-      "statuses-1.3.0" = self.by-version."statuses"."1.3.0";
-      "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 = "https://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.1.0" = self.by-version."is-stream"."1.1.0";
-      "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.4" = self.by-version."prepend-http"."1.0.4";
-      "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-spec."graceful-fs"."^3.0.0" =
-    self.by-version."graceful-fs"."3.0.8";
-  by-version."graceful-fs"."3.0.8" = self.buildNodePackage {
-    name = "graceful-fs-3.0.8";
-    version = "3.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://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"."^3.0.2" =
-    self.by-version."graceful-fs"."3.0.8";
-  by-spec."graceful-fs"."^4.0.0" =
-    self.by-version."graceful-fs"."4.1.4";
-  by-version."graceful-fs"."4.1.4" = self.buildNodePackage {
-    name = "graceful-fs-4.1.4";
-    version = "4.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz";
-      name = "graceful-fs-4.1.4.tgz";
-      sha1 = "ef089d2880f033b011823ce5c8fae798da775dbd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."graceful-fs"."^4.1.2" =
-    self.by-version."graceful-fs"."4.1.4";
-  by-spec."graceful-fs"."~1" =
-    self.by-version."graceful-fs"."1.2.3";
-  by-version."graceful-fs"."1.2.3" = self.buildNodePackage {
-    name = "graceful-fs-1.2.3";
-    version = "1.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz";
-      name = "graceful-fs-1.2.3.tgz";
-      sha1 = "15a4806a57547cb2d2dbf27f42e89a8c3451b364";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."graceful-fs"."~1.2.0" =
-    self.by-version."graceful-fs"."1.2.3";
-  by-spec."graceful-fs"."~2.0.0" =
-    self.by-version."graceful-fs"."2.0.3";
-  by-version."graceful-fs"."2.0.3" = self.buildNodePackage {
-    name = "graceful-fs-2.0.3";
-    version = "2.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz";
-      name = "graceful-fs-2.0.3.tgz";
-      sha1 = "7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."graceful-fs"."~3.0.2" =
-    self.by-version."graceful-fs"."3.0.8";
-  by-spec."graceful-fs"."~4.1.4" =
-    self.by-version."graceful-fs"."4.1.4";
-  by-spec."graceful-readlink".">= 1.0.0" =
-    self.by-version."graceful-readlink"."1.0.1";
-  by-version."graceful-readlink"."1.0.1" = self.buildNodePackage {
-    name = "graceful-readlink-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
-      name = "graceful-readlink-1.0.1.tgz";
-      sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gridfs-stream"."*" =
-    self.by-version."gridfs-stream"."1.1.1";
-  by-version."gridfs-stream"."1.1.1" = self.buildNodePackage {
-    name = "gridfs-stream-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gridfs-stream/-/gridfs-stream-1.1.1.tgz";
-      name = "gridfs-stream-1.1.1.tgz";
-      sha1 = "3dd3a100ec2021a181282f6eb46709636074df89";
-    };
-    deps = {
-      "flushwritable-1.0.0" = self.by-version."flushwritable"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "gridfs-stream" = self.by-version."gridfs-stream"."1.1.1";
-  by-spec."growl"."1.9.2" =
-    self.by-version."growl"."1.9.2";
-  by-version."growl"."1.9.2" = self.buildNodePackage {
-    name = "growl-1.9.2";
-    version = "1.9.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz";
-      name = "growl-1.9.2.tgz";
-      sha1 = "0ea7743715db8d8de2c5ede1775e1b45ac85c02f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt".">=0.4.0" =
-    self.by-version."grunt"."1.0.1";
-  by-version."grunt"."1.0.1" = self.buildNodePackage {
-    name = "grunt-1.0.1";
-    version = "1.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz";
-      name = "grunt-1.0.1.tgz";
-      sha1 = "e8778764e944b18f32bb0f10b9078475c9dfb56b";
-    };
-    deps = {
-      "coffee-script-1.10.0" = self.by-version."coffee-script"."1.10.0";
-      "dateformat-1.0.12" = self.by-version."dateformat"."1.0.12";
-      "eventemitter2-0.4.14" = self.by-version."eventemitter2"."0.4.14";
-      "exit-0.1.2" = self.by-version."exit"."0.1.2";
-      "findup-sync-0.3.0" = self.by-version."findup-sync"."0.3.0";
-      "glob-7.0.3" = self.by-version."glob"."7.0.3";
-      "grunt-cli-1.2.0" = self.by-version."grunt-cli"."1.2.0";
-      "grunt-known-options-1.1.0" = self.by-version."grunt-known-options"."1.1.0";
-      "grunt-legacy-log-1.0.0" = self.by-version."grunt-legacy-log"."1.0.0";
-      "grunt-legacy-util-1.0.0" = self.by-version."grunt-legacy-util"."1.0.0";
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-      "js-yaml-3.5.5" = self.by-version."js-yaml"."3.5.5";
-      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
-      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt".">=0.4.x" =
-    self.by-version."grunt"."1.0.1";
-  by-spec."grunt"."~0.4" =
-    self.by-version."grunt"."0.4.5";
-  by-version."grunt"."0.4.5" = self.buildNodePackage {
-    name = "grunt-0.4.5";
-    version = "0.4.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz";
-      name = "grunt-0.4.5.tgz";
-      sha1 = "56937cd5194324adff6d207631832a9d6ba4e7f0";
-    };
-    deps = {
-      "async-0.1.22" = self.by-version."async"."0.1.22";
-      "coffee-script-1.3.3" = self.by-version."coffee-script"."1.3.3";
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "dateformat-1.0.2-1.2.3" = self.by-version."dateformat"."1.0.2-1.2.3";
-      "eventemitter2-0.4.14" = self.by-version."eventemitter2"."0.4.14";
-      "findup-sync-0.1.3" = self.by-version."findup-sync"."0.1.3";
-      "glob-3.1.21" = self.by-version."glob"."3.1.21";
-      "hooker-0.2.3" = self.by-version."hooker"."0.2.3";
-      "iconv-lite-0.2.11" = self.by-version."iconv-lite"."0.2.11";
-      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
-      "nopt-1.0.10" = self.by-version."nopt"."1.0.10";
-      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
-      "lodash-0.9.2" = self.by-version."lodash"."0.9.2";
-      "underscore.string-2.2.1" = self.by-version."underscore.string"."2.2.1";
-      "which-1.0.9" = self.by-version."which"."1.0.9";
-      "js-yaml-2.0.5" = self.by-version."js-yaml"."2.0.5";
-      "exit-0.1.2" = self.by-version."exit"."0.1.2";
-      "getobject-0.1.0" = self.by-version."getobject"."0.1.0";
-      "grunt-legacy-util-0.2.0" = self.by-version."grunt-legacy-util"."0.2.0";
-      "grunt-legacy-log-0.1.3" = self.by-version."grunt-legacy-log"."0.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt-cli"."*" =
-    self.by-version."grunt-cli"."1.2.0";
-  by-version."grunt-cli"."1.2.0" = self.buildNodePackage {
-    name = "grunt-cli-1.2.0";
-    version = "1.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz";
-      name = "grunt-cli-1.2.0.tgz";
-      sha1 = "562b119ebb069ddb464ace2845501be97b35b6a8";
-    };
-    deps = {
-      "findup-sync-0.3.0" = self.by-version."findup-sync"."0.3.0";
-      "grunt-known-options-1.1.0" = self.by-version."grunt-known-options"."1.1.0";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-cli" = self.by-version."grunt-cli"."1.2.0";
-  by-spec."grunt-cli"."~1.2.0" =
-    self.by-version."grunt-cli"."1.2.0";
-  by-spec."grunt-contrib-cssmin"."*" =
-    self.by-version."grunt-contrib-cssmin"."1.0.1";
-  by-version."grunt-contrib-cssmin"."1.0.1" = self.buildNodePackage {
-    name = "grunt-contrib-cssmin-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.1.tgz";
-      name = "grunt-contrib-cssmin-1.0.1.tgz";
-      sha1 = "f6d45244cc87efdcc521f6918eafd921efd8c8da";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "clean-css-3.4.17" = self.by-version."clean-css"."3.4.17";
-      "maxmin-1.1.0" = self.by-version."maxmin"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-contrib-cssmin" = self.by-version."grunt-contrib-cssmin"."1.0.1";
-  by-spec."grunt-contrib-eslint"."*" =
-    self.by-version."grunt-contrib-eslint"."0.0.5";
-  by-version."grunt-contrib-eslint"."0.0.5" = self.buildNodePackage {
-    name = "grunt-contrib-eslint-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-contrib-eslint/-/grunt-contrib-eslint-0.0.5.tgz";
-      name = "grunt-contrib-eslint-0.0.5.tgz";
-      sha1 = "6f2096e43262b49d5eaf13b1532dfca00ac9c9b0";
-    };
-    deps = {
-      "eslint-2.12.0" = self.by-version."eslint"."2.12.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."grunt"."1.0.1"];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-contrib-eslint" = self.by-version."grunt-contrib-eslint"."0.0.5";
-  by-spec."grunt-contrib-jshint"."*" =
-    self.by-version."grunt-contrib-jshint"."1.0.0";
-  by-version."grunt-contrib-jshint"."1.0.0" = self.buildNodePackage {
-    name = "grunt-contrib-jshint-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.0.0.tgz";
-      name = "grunt-contrib-jshint-1.0.0.tgz";
-      sha1 = "30f405a51de656bfa6eb029b9a464b9fe02a402a";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "hooker-0.2.3" = self.by-version."hooker"."0.2.3";
-      "jshint-2.9.2" = self.by-version."jshint"."2.9.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."grunt"."1.0.1"];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-contrib-jshint" = self.by-version."grunt-contrib-jshint"."1.0.0";
-  by-spec."grunt-contrib-less"."*" =
-    self.by-version."grunt-contrib-less"."1.3.0";
-  by-version."grunt-contrib-less"."1.3.0" = self.buildNodePackage {
-    name = "grunt-contrib-less-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.3.0.tgz";
-      name = "grunt-contrib-less-1.3.0.tgz";
-      sha1 = "518ef7c86dc60e159e65108aa75db93a9c8ff5d4";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "less-2.6.1" = self.by-version."less"."2.6.1";
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-contrib-less" = self.by-version."grunt-contrib-less"."1.3.0";
-  by-spec."grunt-contrib-requirejs"."*" =
-    self.by-version."grunt-contrib-requirejs"."1.0.0";
-  by-version."grunt-contrib-requirejs"."1.0.0" = self.buildNodePackage {
-    name = "grunt-contrib-requirejs-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-1.0.0.tgz";
-      name = "grunt-contrib-requirejs-1.0.0.tgz";
-      sha1 = "ec1670cafc32713902ee53569454715b2e3cbad5";
-    };
-    deps = {
-      "requirejs-2.2.0" = self.by-version."requirejs"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-contrib-requirejs" = self.by-version."grunt-contrib-requirejs"."1.0.0";
-  by-spec."grunt-contrib-uglify"."*" =
-    self.by-version."grunt-contrib-uglify"."1.0.1";
-  by-version."grunt-contrib-uglify"."1.0.1" = self.buildNodePackage {
-    name = "grunt-contrib-uglify-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-1.0.1.tgz";
-      name = "grunt-contrib-uglify-1.0.1.tgz";
-      sha1 = "ad68411b963b99661211f76f466bdeded4fb07ac";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-      "maxmin-1.1.0" = self.by-version."maxmin"."1.1.0";
-      "uglify-js-2.6.2" = self.by-version."uglify-js"."2.6.2";
-      "uri-path-1.0.0" = self.by-version."uri-path"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-contrib-uglify" = self.by-version."grunt-contrib-uglify"."1.0.1";
-  by-spec."grunt-karma"."*" =
-    self.by-version."grunt-karma"."2.0.0";
-  by-version."grunt-karma"."2.0.0" = self.buildNodePackage {
-    name = "grunt-karma-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-karma/-/grunt-karma-2.0.0.tgz";
-      name = "grunt-karma-2.0.0.tgz";
-      sha1 = "753583d115dfdc055fe57e58f96d6b3c7e612118";
-    };
-    deps = {
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."grunt"."1.0.1"
-      self.by-version."karma"."0.13.22"];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-karma" = self.by-version."grunt-karma"."2.0.0";
-  by-spec."grunt-known-options"."~1.1.0" =
-    self.by-version."grunt-known-options"."1.1.0";
-  by-version."grunt-known-options"."1.1.0" = self.buildNodePackage {
-    name = "grunt-known-options-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz";
-      name = "grunt-known-options-1.1.0.tgz";
-      sha1 = "a4274eeb32fa765da5a7a3b1712617ce3b144149";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt-legacy-log"."~0.1.0" =
-    self.by-version."grunt-legacy-log"."0.1.3";
-  by-version."grunt-legacy-log"."0.1.3" = self.buildNodePackage {
-    name = "grunt-legacy-log-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz";
-      name = "grunt-legacy-log-0.1.3.tgz";
-      sha1 = "ec29426e803021af59029f87d2f9cd7335a05531";
-    };
-    deps = {
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "grunt-legacy-log-utils-0.1.1" = self.by-version."grunt-legacy-log-utils"."0.1.1";
-      "hooker-0.2.3" = self.by-version."hooker"."0.2.3";
-      "lodash-2.4.2" = self.by-version."lodash"."2.4.2";
-      "underscore.string-2.3.3" = self.by-version."underscore.string"."2.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt-legacy-log"."~1.0.0" =
-    self.by-version."grunt-legacy-log"."1.0.0";
-  by-version."grunt-legacy-log"."1.0.0" = self.buildNodePackage {
-    name = "grunt-legacy-log-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz";
-      name = "grunt-legacy-log-1.0.0.tgz";
-      sha1 = "fb86f1809847bc07dc47843f9ecd6cacb62df2d5";
-    };
-    deps = {
-      "colors-1.1.2" = self.by-version."colors"."1.1.2";
-      "grunt-legacy-log-utils-1.0.0" = self.by-version."grunt-legacy-log-utils"."1.0.0";
-      "hooker-0.2.3" = self.by-version."hooker"."0.2.3";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "underscore.string-3.2.3" = self.by-version."underscore.string"."3.2.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt-legacy-log-utils"."~0.1.1" =
-    self.by-version."grunt-legacy-log-utils"."0.1.1";
-  by-version."grunt-legacy-log-utils"."0.1.1" = self.buildNodePackage {
-    name = "grunt-legacy-log-utils-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz";
-      name = "grunt-legacy-log-utils-0.1.1.tgz";
-      sha1 = "c0706b9dd9064e116f36f23fe4e6b048672c0f7e";
-    };
-    deps = {
-      "lodash-2.4.2" = self.by-version."lodash"."2.4.2";
-      "underscore.string-2.3.3" = self.by-version."underscore.string"."2.3.3";
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt-legacy-log-utils"."~1.0.0" =
-    self.by-version."grunt-legacy-log-utils"."1.0.0";
-  by-version."grunt-legacy-log-utils"."1.0.0" = self.buildNodePackage {
-    name = "grunt-legacy-log-utils-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz";
-      name = "grunt-legacy-log-utils-1.0.0.tgz";
-      sha1 = "a7b8e2d0fb35b5a50f4af986fc112749ebc96f3d";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "lodash-4.3.0" = self.by-version."lodash"."4.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt-legacy-util"."~0.2.0" =
-    self.by-version."grunt-legacy-util"."0.2.0";
-  by-version."grunt-legacy-util"."0.2.0" = self.buildNodePackage {
-    name = "grunt-legacy-util-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz";
-      name = "grunt-legacy-util-0.2.0.tgz";
-      sha1 = "93324884dbf7e37a9ff7c026dff451d94a9e554b";
-    };
-    deps = {
-      "hooker-0.2.3" = self.by-version."hooker"."0.2.3";
-      "async-0.1.22" = self.by-version."async"."0.1.22";
-      "lodash-0.9.2" = self.by-version."lodash"."0.9.2";
-      "exit-0.1.2" = self.by-version."exit"."0.1.2";
-      "underscore.string-2.2.1" = self.by-version."underscore.string"."2.2.1";
-      "getobject-0.1.0" = self.by-version."getobject"."0.1.0";
-      "which-1.0.9" = self.by-version."which"."1.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt-legacy-util"."~1.0.0" =
-    self.by-version."grunt-legacy-util"."1.0.0";
-  by-version."grunt-legacy-util"."1.0.0" = self.buildNodePackage {
-    name = "grunt-legacy-util-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz";
-      name = "grunt-legacy-util-1.0.0.tgz";
-      sha1 = "386aa78dc6ed50986c2b18957265b1b48abb9b86";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "exit-0.1.2" = self.by-version."exit"."0.1.2";
-      "getobject-0.1.0" = self.by-version."getobject"."0.1.0";
-      "hooker-0.2.3" = self.by-version."hooker"."0.2.3";
-      "lodash-4.3.0" = self.by-version."lodash"."4.3.0";
-      "underscore.string-3.2.3" = self.by-version."underscore.string"."3.2.3";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."grunt-sed"."*" =
-    self.by-version."grunt-sed"."0.1.1";
-  by-version."grunt-sed"."0.1.1" = self.buildNodePackage {
-    name = "grunt-sed-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-sed/-/grunt-sed-0.1.1.tgz";
-      name = "grunt-sed-0.1.1.tgz";
-      sha1 = "2613d486909319b3f8f4bd75dafb46a642ec3f82";
-    };
-    deps = {
-      "replace-0.2.10" = self.by-version."replace"."0.2.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."grunt"."0.4.5"];
-    os = [ ];
-    cpu = [ ];
-  };
-  "grunt-sed" = self.by-version."grunt-sed"."0.1.1";
-  by-spec."gtoken"."^1.1.0" =
-    self.by-version."gtoken"."1.2.1";
-  by-version."gtoken"."1.2.1" = self.buildNodePackage {
-    name = "gtoken-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gtoken/-/gtoken-1.2.1.tgz";
-      name = "gtoken-1.2.1.tgz";
-      sha1 = "90153a547c2fc1cd24a4d3d2ab3b5aba0a26897a";
-    };
-    deps = {
-      "google-p12-pem-0.1.0" = self.by-version."google-p12-pem"."0.1.0";
-      "jws-3.1.3" = self.by-version."jws"."3.1.3";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."guifi-earth"."https://github.com/jmendeth/guifi-earth/tarball/f3ee96835fd4fb0e3e12fadbd2cb782770d64854 " =
-    self.by-version."guifi-earth"."0.2.1";
-  by-version."guifi-earth"."0.2.1" = self.buildNodePackage {
-    name = "guifi-earth-0.2.1";
-    version = "0.2.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://github.com/jmendeth/guifi-earth/tarball/f3ee96835fd4fb0e3e12fadbd2cb782770d64854";
-      name = "guifi-earth-0.2.1.tgz";
-      sha256 = "a51a5beef55c14c68630275d51cf66c44a4462d1b20c0f08aef6d88a62ca077c";
-    };
-    deps = {
-      "coffee-script-1.10.0" = self.by-version."coffee-script"."1.10.0";
-      "jade-1.11.0" = self.by-version."jade"."1.11.0";
-      "q-2.0.3" = self.by-version."q"."2.0.3";
-      "xml2js-0.4.16" = self.by-version."xml2js"."0.4.16";
-      "msgpack-1.0.2" = self.by-version."msgpack"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "guifi-earth" = self.by-version."guifi-earth"."0.2.1";
-  by-spec."gulp"."*" =
-    self.by-version."gulp"."3.9.1";
-  by-version."gulp"."3.9.1" = self.buildNodePackage {
-    name = "gulp-3.9.1";
-    version = "3.9.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz";
-      name = "gulp-3.9.1.tgz";
-      sha1 = "571ce45928dd40af6514fc4011866016c13845b4";
-    };
-    deps = {
-      "archy-1.0.0" = self.by-version."archy"."1.0.0";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "deprecated-0.0.1" = self.by-version."deprecated"."0.0.1";
-      "gulp-util-3.0.7" = self.by-version."gulp-util"."3.0.7";
-      "interpret-1.0.1" = self.by-version."interpret"."1.0.1";
-      "liftoff-2.2.1" = self.by-version."liftoff"."2.2.1";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "orchestrator-0.3.7" = self.by-version."orchestrator"."0.3.7";
-      "pretty-hrtime-1.0.2" = self.by-version."pretty-hrtime"."1.0.2";
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-      "tildify-1.2.0" = self.by-version."tildify"."1.2.0";
-      "v8flags-2.0.11" = self.by-version."v8flags"."2.0.11";
-      "vinyl-fs-0.3.14" = self.by-version."vinyl-fs"."0.3.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "gulp" = self.by-version."gulp"."3.9.1";
-  by-spec."gulp-sourcemaps"."^1.5.2" =
-    self.by-version."gulp-sourcemaps"."1.6.0";
-  by-version."gulp-sourcemaps"."1.6.0" = self.buildNodePackage {
-    name = "gulp-sourcemaps-1.6.0";
-    version = "1.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz";
-      name = "gulp-sourcemaps-1.6.0.tgz";
-      sha1 = "b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c";
-    };
-    deps = {
-      "convert-source-map-1.2.0" = self.by-version."convert-source-map"."1.2.0";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "strip-bom-2.0.0" = self.by-version."strip-bom"."2.0.0";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "vinyl-1.1.1" = self.by-version."vinyl"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gulp-util"."^3.0.0" =
-    self.by-version."gulp-util"."3.0.7";
-  by-version."gulp-util"."3.0.7" = self.buildNodePackage {
-    name = "gulp-util-3.0.7";
-    version = "3.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz";
-      name = "gulp-util-3.0.7.tgz";
-      sha1 = "78925c4b8f8b49005ac01a011c557e6218941cbb";
-    };
-    deps = {
-      "array-differ-1.0.0" = self.by-version."array-differ"."1.0.0";
-      "array-uniq-1.0.2" = self.by-version."array-uniq"."1.0.2";
-      "beeper-1.1.0" = self.by-version."beeper"."1.1.0";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "dateformat-1.0.12" = self.by-version."dateformat"."1.0.12";
-      "fancy-log-1.2.0" = self.by-version."fancy-log"."1.2.0";
-      "gulplog-1.0.0" = self.by-version."gulplog"."1.0.0";
-      "has-gulplog-0.1.0" = self.by-version."has-gulplog"."0.1.0";
-      "lodash._reescape-3.0.0" = self.by-version."lodash._reescape"."3.0.0";
-      "lodash._reevaluate-3.0.0" = self.by-version."lodash._reevaluate"."3.0.0";
-      "lodash._reinterpolate-3.0.0" = self.by-version."lodash._reinterpolate"."3.0.0";
-      "lodash.template-3.6.2" = self.by-version."lodash.template"."3.6.2";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "multipipe-0.1.2" = self.by-version."multipipe"."0.1.2";
-      "object-assign-3.0.0" = self.by-version."object-assign"."3.0.0";
-      "replace-ext-0.0.1" = self.by-version."replace-ext"."0.0.1";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "vinyl-0.5.3" = self.by-version."vinyl"."0.5.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gulplog"."^1.0.0" =
-    self.by-version."gulplog"."1.0.0";
-  by-version."gulplog"."1.0.0" = self.buildNodePackage {
-    name = "gulplog-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz";
-      name = "gulplog-1.0.0.tgz";
-      sha1 = "e28c4d45d05ecbbed818363ce8f9c5926229ffe5";
-    };
-    deps = {
-      "glogg-1.0.0" = self.by-version."glogg"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gzip-size"."^1.0.0" =
-    self.by-version."gzip-size"."1.0.0";
-  by-version."gzip-size"."1.0.0" = self.buildNodePackage {
-    name = "gzip-size-1.0.0";
-    version = "1.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz";
-      name = "gzip-size-1.0.0.tgz";
-      sha1 = "66cf8b101047227b95bace6ea1da0c177ed5c22f";
-    };
-    deps = {
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "browserify-zlib-0.1.4" = self.by-version."browserify-zlib"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."gzippo"."*" =
-    self.by-version."gzippo"."0.2.0";
-  by-version."gzippo"."0.2.0" = self.buildNodePackage {
-    name = "gzippo-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/gzippo/-/gzippo-0.2.0.tgz";
-      name = "gzippo-0.2.0.tgz";
-      sha1 = "ffc594c482190c56531ed2d4a5864d0b0b7d2733";
-    };
-    deps = {
-      "send-0.14.1" = self.by-version."send"."0.14.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "gzippo" = self.by-version."gzippo"."0.2.0";
-  by-spec."handlebars"."2.x" =
-    self.by-version."handlebars"."2.0.0";
-  by-version."handlebars"."2.0.0" = self.buildNodePackage {
-    name = "handlebars-2.0.0";
-    version = "2.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/handlebars/-/handlebars-2.0.0.tgz";
-      name = "handlebars-2.0.0.tgz";
-      sha1 = "6e9d7f8514a3467fa5e9f82cc158ecfc1d5ac76f";
-    };
-    deps = {
-      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
-    };
-    optionalDependencies = {
-      "uglify-js-2.3.6" = self.by-version."uglify-js"."2.3.6";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."handlebars"."^3.0.0" =
-    self.by-version."handlebars"."3.0.3";
-  by-version."handlebars"."3.0.3" = self.buildNodePackage {
-    name = "handlebars-3.0.3";
-    version = "3.0.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/handlebars/-/handlebars-3.0.3.tgz";
-      name = "handlebars-3.0.3.tgz";
-      sha1 = "0e09651a2f0fb3c949160583710d551f92e6d2ad";
-    };
-    deps = {
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
-    };
-    optionalDependencies = {
-      "uglify-js-2.3.6" = self.by-version."uglify-js"."2.3.6";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."handlebars"."^4.0.1" =
-    self.by-version."handlebars"."4.0.5";
-  by-version."handlebars"."4.0.5" = self.buildNodePackage {
-    name = "handlebars-4.0.5";
-    version = "4.0.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz";
-      name = "handlebars-4.0.5.tgz";
-      sha1 = "92c6ed6bb164110c50d4d8d0fbddc70806c6f8e7";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-      "source-map-0.4.4" = self.by-version."source-map"."0.4.4";
-    };
-    optionalDependencies = {
-      "uglify-js-2.6.2" = self.by-version."uglify-js"."2.6.2";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."handlebars"."^4.0.3" =
-    self.by-version."handlebars"."4.0.5";
-  by-spec."har-validator"."^1.4.0" =
-    self.by-version."har-validator"."1.8.0";
-  by-version."har-validator"."1.8.0" = self.buildNodePackage {
-    name = "har-validator-1.8.0";
-    version = "1.8.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz";
-      name = "har-validator-1.8.0.tgz";
-      sha1 = "d83842b0eb4c435960aeb108a067a3aa94c0eeb2";
-    };
-    deps = {
-      "bluebird-2.10.2" = self.by-version."bluebird"."2.10.2";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "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";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."har-validator"."^1.6.1" =
-    self.by-version."har-validator"."1.8.0";
-  by-spec."har-validator"."~2.0.2" =
-    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 = "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz";
-      name = "har-validator-2.0.6.tgz";
-      sha1 = "cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "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.1" = self.by-version."pinkie-promise"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."har-validator"."~2.0.6" =
-    self.by-version."har-validator"."2.0.6";
-  by-spec."harmony-reflect"."^1.4.2" =
-    self.by-version."harmony-reflect"."1.4.6";
-  by-version."harmony-reflect"."1.4.6" = self.buildNodePackage {
-    name = "harmony-reflect-1.4.6";
-    version = "1.4.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.4.6.tgz";
-      name = "harmony-reflect-1.4.6.tgz";
-      sha1 = "f67afe588486b138aef4184e5885af962a9b2531";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has"."^1.0.0" =
-    self.by-version."has"."1.0.1";
-  by-version."has"."1.0.1" = self.buildNodePackage {
-    name = "has-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has/-/has-1.0.1.tgz";
-      name = "has-1.0.1.tgz";
-      sha1 = "8461733f538b0837c9361e39a9ab9e9704dc2f28";
-    };
-    deps = {
-      "function-bind-1.1.0" = self.by-version."function-bind"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-ansi"."^0.1.0" =
-    self.by-version."has-ansi"."0.1.0";
-  by-version."has-ansi"."0.1.0" = self.buildNodePackage {
-    name = "has-ansi-0.1.0";
-    version = "0.1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz";
-      name = "has-ansi-0.1.0.tgz";
-      sha1 = "84f265aae8c0e6a88a12d7022894b7568894c62e";
-    };
-    deps = {
-      "ansi-regex-0.2.1" = self.by-version."ansi-regex"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-ansi"."^1.0.3" =
-    self.by-version."has-ansi"."1.0.3";
-  by-version."has-ansi"."1.0.3" = self.buildNodePackage {
-    name = "has-ansi-1.0.3";
-    version = "1.0.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz";
-      name = "has-ansi-1.0.3.tgz";
-      sha1 = "c0b5b1615d9e382b0ff67169d967b425e48ca538";
-    };
-    deps = {
-      "ansi-regex-1.1.1" = self.by-version."ansi-regex"."1.1.1";
-      "get-stdin-4.0.1" = self.by-version."get-stdin"."4.0.1";
-    };
-    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 = "https://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."has-binary"."0.1.6" =
-    self.by-version."has-binary"."0.1.6";
-  by-version."has-binary"."0.1.6" = self.buildNodePackage {
-    name = "has-binary-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz";
-      name = "has-binary-0.1.6.tgz";
-      sha1 = "25326f39cfa4f616ad8787894e3af2cfbc7b6e10";
-    };
-    deps = {
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-binary"."0.1.7" =
-    self.by-version."has-binary"."0.1.7";
-  by-version."has-binary"."0.1.7" = self.buildNodePackage {
-    name = "has-binary-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz";
-      name = "has-binary-0.1.7.tgz";
-      sha1 = "68e61eb16210c9545a0a5cce06a873912fe1e68c";
-    };
-    deps = {
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-binary-data"."0.1.1" =
-    self.by-version."has-binary-data"."0.1.1";
-  by-version."has-binary-data"."0.1.1" = self.buildNodePackage {
-    name = "has-binary-data-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-binary-data/-/has-binary-data-0.1.1.tgz";
-      name = "has-binary-data-0.1.1.tgz";
-      sha1 = "e10749fb87828a52df96f4086587eb4a03966439";
-    };
-    deps = {
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-color"."^0.1.7" =
-    self.by-version."has-color"."0.1.7";
-  by-version."has-color"."0.1.7" = self.buildNodePackage {
-    name = "has-color-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz";
-      name = "has-color-0.1.7.tgz";
-      sha1 = "67144a5260c34fc3cca677d041daf52fe7b78b2f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-cors"."1.0.3" =
-    self.by-version."has-cors"."1.0.3";
-  by-version."has-cors"."1.0.3" = self.buildNodePackage {
-    name = "has-cors-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-cors/-/has-cors-1.0.3.tgz";
-      name = "has-cors-1.0.3.tgz";
-      sha1 = "502acb9b3104dac33dd2630eaf2f888b0baf4cb3";
-    };
-    deps = {
-      "global-2.0.1" = self.by-version."global"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-cors"."1.1.0" =
-    self.by-version."has-cors"."1.1.0";
-  by-version."has-cors"."1.1.0" = self.buildNodePackage {
-    name = "has-cors-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz";
-      name = "has-cors-1.1.0.tgz";
-      sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-flag"."^1.0.0" =
-    self.by-version."has-flag"."1.0.0";
-  by-version."has-flag"."1.0.0" = self.buildNodePackage {
-    name = "has-flag-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz";
-      name = "has-flag-1.0.0.tgz";
-      sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-gulplog"."^0.1.0" =
-    self.by-version."has-gulplog"."0.1.0";
-  by-version."has-gulplog"."0.1.0" = self.buildNodePackage {
-    name = "has-gulplog-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz";
-      name = "has-gulplog-0.1.0.tgz";
-      sha1 = "6414c82913697da51590397dafb12f22967811ce";
-    };
-    deps = {
-      "sparkles-1.0.0" = self.by-version."sparkles"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-unicode"."^2.0.0" =
-    self.by-version."has-unicode"."2.0.0";
-  by-version."has-unicode"."2.0.0" = self.buildNodePackage {
-    name = "has-unicode-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz";
-      name = "has-unicode-2.0.0.tgz";
-      sha1 = "a3cd96c307ba41d559c5a2ee408c12a11c4c2ec3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."has-unicode"."~2.0.0" =
-    self.by-version."has-unicode"."2.0.0";
-  by-spec."hash.js"."^1.0.0" =
-    self.by-version."hash.js"."1.0.3";
-  by-version."hash.js"."1.0.3" = self.buildNodePackage {
-    name = "hash.js-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz";
-      name = "hash.js-1.0.3.tgz";
-      sha1 = "1332ff00156c0a0ffdd8236013d07b77a0451573";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hasha"."^2.2.0" =
-    self.by-version."hasha"."2.2.0";
-  by-version."hasha"."2.2.0" = self.buildNodePackage {
-    name = "hasha-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz";
-      name = "hasha-2.2.0.tgz";
-      sha1 = "78d7cbfc1e6d66303fe79837365984517b2f6ee1";
-    };
-    deps = {
-      "is-stream-1.1.0" = self.by-version."is-stream"."1.1.0";
-      "pinkie-promise-2.0.1" = self.by-version."pinkie-promise"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hasher"."~1.2.0" =
-    self.by-version."hasher"."1.2.0";
-  by-version."hasher"."1.2.0" = self.buildNodePackage {
-    name = "hasher-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hasher/-/hasher-1.2.0.tgz";
-      name = "hasher-1.2.0.tgz";
-      sha1 = "8b5341c3496124b0724ac8555fbb8ca363ebbb73";
-    };
-    deps = {
-      "signals-1.0.0" = self.by-version."signals"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hashish"."*" =
-    self.by-version."hashish"."0.0.4";
-  by-version."hashish"."0.0.4" = self.buildNodePackage {
-    name = "hashish-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz";
-      name = "hashish-0.0.4.tgz";
-      sha1 = "6d60bc6ffaf711b6afd60e426d077988014e6554";
-    };
-    deps = {
-      "traverse-0.6.6" = self.by-version."traverse"."0.6.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hashish"."0.0.4" =
-    self.by-version."hashish"."0.0.4";
-  by-spec."hat"."*" =
-    self.by-version."hat"."0.0.3";
-  by-version."hat"."0.0.3" = self.buildNodePackage {
-    name = "hat-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz";
-      name = "hat-0.0.3.tgz";
-      sha1 = "bb014a9e64b3788aed8005917413d4ff3d502d8a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hat"."0.0.3" =
-    self.by-version."hat"."0.0.3";
-  by-spec."hat"."^0.0.3" =
-    self.by-version."hat"."0.0.3";
-  by-spec."hawk"."1.1.1" =
-    self.by-version."hawk"."1.1.1";
-  by-version."hawk"."1.1.1" = self.buildNodePackage {
-    name = "hawk-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz";
-      name = "hawk-1.1.1.tgz";
-      sha1 = "87cd491f9b46e4e2aeaca335416766885d2d1ed9";
-    };
-    deps = {
-      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
-      "boom-0.4.2" = self.by-version."boom"."0.4.2";
-      "cryptiles-0.2.2" = self.by-version."cryptiles"."0.2.2";
-      "sntp-0.2.4" = self.by-version."sntp"."0.2.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hawk"."~0.10.2" =
-    self.by-version."hawk"."0.10.2";
-  by-version."hawk"."0.10.2" = self.buildNodePackage {
-    name = "hawk-0.10.2";
-    version = "0.10.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz";
-      name = "hawk-0.10.2.tgz";
-      sha1 = "9b361dee95a931640e6d504e05609a8fc3ac45d2";
-    };
-    deps = {
-      "hoek-0.7.6" = self.by-version."hoek"."0.7.6";
-      "boom-0.3.8" = self.by-version."boom"."0.3.8";
-      "cryptiles-0.1.3" = self.by-version."cryptiles"."0.1.3";
-      "sntp-0.1.4" = self.by-version."sntp"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hawk"."~1.0.0" =
-    self.by-version."hawk"."1.0.0";
-  by-version."hawk"."1.0.0" = self.buildNodePackage {
-    name = "hawk-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz";
-      name = "hawk-1.0.0.tgz";
-      sha1 = "b90bb169807285411da7ffcb8dd2598502d3b52d";
-    };
-    deps = {
-      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
-      "boom-0.4.2" = self.by-version."boom"."0.4.2";
-      "cryptiles-0.2.2" = self.by-version."cryptiles"."0.2.2";
-      "sntp-0.2.4" = self.by-version."sntp"."0.2.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hawk"."~2.3.0" =
-    self.by-version."hawk"."2.3.1";
-  by-version."hawk"."2.3.1" = self.buildNodePackage {
-    name = "hawk-2.3.1";
-    version = "2.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz";
-      name = "hawk-2.3.1.tgz";
-      sha1 = "1e731ce39447fa1d0f6d707f7bceebec0fd1ec1f";
-    };
-    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-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 = "https://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-spec."hawk"."~3.1.3" =
-    self.by-version."hawk"."3.1.3";
-  by-spec."hbo-dnsd"."0.9.8" =
-    self.by-version."hbo-dnsd"."0.9.8";
-  by-version."hbo-dnsd"."0.9.8" = self.buildNodePackage {
-    name = "hbo-dnsd-0.9.8";
-    version = "0.9.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hbo-dnsd/-/hbo-dnsd-0.9.8.tgz";
-      name = "hbo-dnsd-0.9.8.tgz";
-      sha1 = "ab964f34cf13b40ea7d412f125d576716c551ef2";
-    };
-    deps = {
-      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
-      "defaultable-0.7.2" = self.by-version."defaultable"."0.7.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."he"."~0.3.6" =
-    self.by-version."he"."0.3.6";
-  by-version."he"."0.3.6" = self.buildNodePackage {
-    name = "he-0.3.6";
-    version = "0.3.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/he/-/he-0.3.6.tgz";
-      name = "he-0.3.6.tgz";
-      sha1 = "9d7bc446e77963933301dd602d5731cb861135e0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."headless"."^0.1.7" =
-    self.by-version."headless"."0.1.7";
-  by-version."headless"."0.1.7" = self.buildNodePackage {
-    name = "headless-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/headless/-/headless-0.1.7.tgz";
-      name = "headless-0.1.7.tgz";
-      sha1 = "6e62fae668947f88184d5c156ede7c5695a7e9c8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."help-me"."^0.1.0" =
-    self.by-version."help-me"."0.1.0";
-  by-version."help-me"."0.1.0" = self.buildNodePackage {
-    name = "help-me-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/help-me/-/help-me-0.1.0.tgz";
-      name = "help-me-0.1.0.tgz";
-      sha1 = "0fb3a40537ad5265b6b49413022c60d35b49539a";
-    };
-    deps = {
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "pump-1.0.1" = self.by-version."pump"."1.0.1";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."highlight.js"."8.x" =
-    self.by-version."highlight.js"."8.9.1";
-  by-version."highlight.js"."8.9.1" = self.buildNodePackage {
-    name = "highlight.js-8.9.1";
-    version = "8.9.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/highlight.js/-/highlight.js-8.9.1.tgz";
-      name = "highlight.js-8.9.1.tgz";
-      sha1 = "b8a9c5493212a9392f0222b649c9611497ebfb88";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hipache"."*" =
-    self.by-version."hipache"."0.3.1";
-  by-version."hipache"."0.3.1" = self.buildNodePackage {
-    name = "hipache-0.3.1";
-    version = "0.3.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hipache/-/hipache-0.3.1.tgz";
-      name = "hipache-0.3.1.tgz";
-      sha1 = "e21764eafe6429ec8dc9377b55e1ca86799704d5";
-    };
-    deps = {
-      "http-proxy-1.0.2" = self.by-version."http-proxy"."1.0.2";
-      "redis-0.10.3" = self.by-version."redis"."0.10.3";
-      "lru-cache-2.5.2" = self.by-version."lru-cache"."2.5.2";
-      "minimist-0.0.8" = self.by-version."minimist"."0.0.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "hipache" = self.by-version."hipache"."0.3.1";
-  by-spec."hiredis"."*" =
-    self.by-version."hiredis"."0.4.1";
-  by-version."hiredis"."0.4.1" = self.buildNodePackage {
-    name = "hiredis-0.4.1";
-    version = "0.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hiredis/-/hiredis-0.4.1.tgz";
-      name = "hiredis-0.4.1.tgz";
-      sha1 = "aab4dcfd0fc4cbdb219d268005f2335a3c639e8f";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hoek"."0.7.x" =
-    self.by-version."hoek"."0.7.6";
-  by-version."hoek"."0.7.6" = self.buildNodePackage {
-    name = "hoek-0.7.6";
-    version = "0.7.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz";
-      name = "hoek-0.7.6.tgz";
-      sha1 = "60fbd904557541cd2b8795abf308a1b3770e155a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hoek"."0.9.x" =
-    self.by-version."hoek"."0.9.1";
-  by-version."hoek"."0.9.1" = self.buildNodePackage {
-    name = "hoek-0.9.1";
-    version = "0.9.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz";
-      name = "hoek-0.9.1.tgz";
-      sha1 = "3d322462badf07716ea7eb85baf88079cddce505";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hoek"."2.x.x" =
-    self.by-version."hoek"."2.16.3";
-  by-version."hoek"."2.16.3" = self.buildNodePackage {
-    name = "hoek-2.16.3";
-    version = "2.16.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://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.14.0" =
-    self.by-version."hoek"."2.16.3";
-  by-spec."hooker"."^0.2.3" =
-    self.by-version."hooker"."0.2.3";
-  by-version."hooker"."0.2.3" = self.buildNodePackage {
-    name = "hooker-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz";
-      name = "hooker-0.2.3.tgz";
-      sha1 = "b834f723cc4a242aa65963459df6d984c5d3d959";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hooker"."~0.2.3" =
-    self.by-version."hooker"."0.2.3";
-  by-spec."hooks"."0.2.1" =
-    self.by-version."hooks"."0.2.1";
-  by-version."hooks"."0.2.1" = self.buildNodePackage {
-    name = "hooks-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hooks/-/hooks-0.2.1.tgz";
-      name = "hooks-0.2.1.tgz";
-      sha1 = "0f591b1b344bdcb3df59773f62fbbaf85bf4028b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hooks-fixed"."1.1.0" =
-    self.by-version."hooks-fixed"."1.1.0";
-  by-version."hooks-fixed"."1.1.0" = self.buildNodePackage {
-    name = "hooks-fixed-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-1.1.0.tgz";
-      name = "hooks-fixed-1.1.0.tgz";
-      sha1 = "0e8c15336708e6611185fe390b44687dd5230dbb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hosted-git-info"."^2.1.4" =
-    self.by-version."hosted-git-info"."2.1.5";
-  by-version."hosted-git-info"."2.1.5" = self.buildNodePackage {
-    name = "hosted-git-info-2.1.5";
-    version = "2.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz";
-      name = "hosted-git-info-2.1.5.tgz";
-      sha1 = "0ba81d90da2e25ab34a332e6ec77936e1598118b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."hosted-git-info"."~2.1.4" =
-    self.by-version."hosted-git-info"."2.1.5";
-  by-spec."hosted-git-info"."~2.1.5" =
-    self.by-version."hosted-git-info"."2.1.5";
-  by-spec."html-md"."^3.0.2" =
-    self.by-version."html-md"."3.0.2";
-  by-version."html-md"."3.0.2" = self.buildNodePackage {
-    name = "html-md-3.0.2";
-    version = "3.0.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/html-md/-/html-md-3.0.2.tgz";
-      name = "html-md-3.0.2.tgz";
-      sha1 = "becac66f3c7d27aa99409d0a17f1131f16fe510f";
-    };
-    deps = {
-      "commander-2.0.0" = self.by-version."commander"."2.0.0";
-      "fs-extra-0.7.1" = self.by-version."fs-extra"."0.7.1";
-      "jsdom-0.8.11" = self.by-version."jsdom"."0.8.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."html5"."~1.0.5" =
-    self.by-version."html5"."1.0.5";
-  by-version."html5"."1.0.5" = self.buildNodePackage {
-    name = "html5-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/html5/-/html5-1.0.5.tgz";
-      name = "html5-1.0.5.tgz";
-      sha1 = "c9e6ce4e07a70521904bee1b318a4c48feab5848";
-    };
-    deps = {
-      "opts-1.2.2" = self.by-version."opts"."1.2.2";
-      "html5-entities-1.0.0" = self.by-version."html5-entities"."1.0.0";
-    };
-    optionalDependencies = {
-      "jsdom-0.11.1" = self.by-version."jsdom"."0.11.1";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."html5-entities"."^1.0.0" =
-    self.by-version."html5-entities"."1.0.0";
-  by-version."html5-entities"."1.0.0" = self.buildNodePackage {
-    name = "html5-entities-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/html5-entities/-/html5-entities-1.0.0.tgz";
-      name = "html5-entities-1.0.0.tgz";
-      sha1 = "e568fd84d8efb52c806b16c98b92dad548ebe370";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."htmlencode".">=0.0.1" =
-    self.by-version."htmlencode"."0.0.4";
-  by-version."htmlencode"."0.0.4" = self.buildNodePackage {
-    name = "htmlencode-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz";
-      name = "htmlencode-0.0.4.tgz";
-      sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."htmlescape"."^1.1.0" =
-    self.by-version."htmlescape"."1.1.1";
-  by-version."htmlescape"."1.1.1" = self.buildNodePackage {
-    name = "htmlescape-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz";
-      name = "htmlescape-1.1.1.tgz";
-      sha1 = "3a03edc2214bca3b66424a3e7959349509cb0351";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."htmlparser2"."3.8.x" =
-    self.by-version."htmlparser2"."3.8.3";
-  by-version."htmlparser2"."3.8.3" = self.buildNodePackage {
-    name = "htmlparser2-3.8.3";
-    version = "3.8.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz";
-      name = "htmlparser2-3.8.3.tgz";
-      sha1 = "996c28b191516a8be86501a7d79757e5c70c1068";
-    };
-    deps = {
-      "domhandler-2.3.0" = self.by-version."domhandler"."2.3.0";
-      "domutils-1.5.1" = self.by-version."domutils"."1.5.1";
-      "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "entities-1.0.0" = self.by-version."entities"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."htmlparser2".">= 3.1.5 <4" =
-    self.by-version."htmlparser2"."3.9.0";
-  by-version."htmlparser2"."3.9.0" = self.buildNodePackage {
-    name = "htmlparser2-3.9.0";
-    version = "3.9.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.0.tgz";
-      name = "htmlparser2-3.9.0.tgz";
-      sha1 = "1bd6ba4d3358bbd31f93e13fb952961cf4d31b3f";
-    };
-    deps = {
-      "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0";
-      "domhandler-2.3.0" = self.by-version."domhandler"."2.3.0";
-      "domutils-1.5.1" = self.by-version."domutils"."1.5.1";
-      "entities-1.1.1" = self.by-version."entities"."1.1.1";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."htmlparser2".">= 3.7.3 < 4.0.0" =
-    self.by-version."htmlparser2"."3.9.0";
-  by-spec."htmlparser2".">=3.4.0" =
-    self.by-version."htmlparser2"."3.9.0";
-  by-spec."htmlparser2"."^3.8.2" =
-    self.by-version."htmlparser2"."3.9.0";
-  by-spec."htmlparser2"."^3.9.0" =
-    self.by-version."htmlparser2"."3.9.0";
-  by-spec."htmlparser2"."~3.7.2" =
-    self.by-version."htmlparser2"."3.7.3";
-  by-version."htmlparser2"."3.7.3" = self.buildNodePackage {
-    name = "htmlparser2-3.7.3";
-    version = "3.7.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.7.3.tgz";
-      name = "htmlparser2-3.7.3.tgz";
-      sha1 = "6a64c77637c08c6f30ec2a8157a53333be7cb05e";
-    };
-    deps = {
-      "domhandler-2.2.1" = self.by-version."domhandler"."2.2.1";
-      "domutils-1.5.1" = self.by-version."domutils"."1.5.1";
-      "domelementtype-1.3.0" = self.by-version."domelementtype"."1.3.0";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "entities-1.0.0" = self.by-version."entities"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."htmlparser2"."~3.8.1" =
-    self.by-version."htmlparser2"."3.8.3";
-  by-spec."http-auth"."2.0.7" =
-    self.by-version."http-auth"."2.0.7";
-  by-version."http-auth"."2.0.7" = self.buildNodePackage {
-    name = "http-auth-2.0.7";
-    version = "2.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-auth/-/http-auth-2.0.7.tgz";
-      name = "http-auth-2.0.7.tgz";
-      sha1 = "aa1a61a4d6baae9d64436c6f0ef0f4de85c430e3";
-    };
-    deps = {
-      "coffee-script-1.6.3" = self.by-version."coffee-script"."1.6.3";
-      "node-uuid-1.4.1" = self.by-version."node-uuid"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-browserify"."^1.3.2" =
-    self.by-version."http-browserify"."1.7.0";
-  by-version."http-browserify"."1.7.0" = self.buildNodePackage {
-    name = "http-browserify-1.7.0";
-    version = "1.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz";
-      name = "http-browserify-1.7.0.tgz";
-      sha1 = "33795ade72df88acfbfd36773cefeda764735b20";
-    };
-    deps = {
-      "Base64-0.2.1" = self.by-version."Base64"."0.2.1";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-browserify"."^1.4.0" =
-    self.by-version."http-browserify"."1.7.0";
-  by-spec."http-errors".">=1.2.0" =
-    self.by-version."http-errors"."1.5.0";
-  by-version."http-errors"."1.5.0" = self.buildNodePackage {
-    name = "http-errors-1.5.0";
-    version = "1.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz";
-      name = "http-errors-1.5.0.tgz";
-      sha1 = "b1cb3d8260fd8e2386cad3189045943372d48211";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "setprototypeof-1.0.1" = self.by-version."setprototypeof"."1.0.1";
-      "statuses-1.3.0" = self.by-version."statuses"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-errors"."~1.3.1" =
-    self.by-version."http-errors"."1.3.1";
-  by-version."http-errors"."1.3.1" = self.buildNodePackage {
-    name = "http-errors-1.3.1";
-    version = "1.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz";
-      name = "http-errors-1.3.1.tgz";
-      sha1 = "197e22cdebd4198585e8694ef6786197b91ed942";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "statuses-1.3.0" = self.by-version."statuses"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-errors"."~1.4.0" =
-    self.by-version."http-errors"."1.4.0";
-  by-version."http-errors"."1.4.0" = self.buildNodePackage {
-    name = "http-errors-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-errors/-/http-errors-1.4.0.tgz";
-      name = "http-errors-1.4.0.tgz";
-      sha1 = "6c0242dea6b3df7afda153c71089b31c6e82aabf";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "statuses-1.3.0" = self.by-version."statuses"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-errors"."~1.5.0" =
-    self.by-version."http-errors"."1.5.0";
-  by-spec."http-headers"."^3.0.1" =
-    self.by-version."http-headers"."3.0.1";
-  by-version."http-headers"."3.0.1" = self.buildNodePackage {
-    name = "http-headers-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-headers/-/http-headers-3.0.1.tgz";
-      name = "http-headers-3.0.1.tgz";
-      sha1 = "1cbc691c45cdf6d6c1dc63bf368b2505f56ef839";
-    };
-    deps = {
-      "next-line-1.1.0" = self.by-version."next-line"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-proxy"."1.0.2" =
-    self.by-version."http-proxy"."1.0.2";
-  by-version."http-proxy"."1.0.2" = self.buildNodePackage {
-    name = "http-proxy-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.0.2.tgz";
-      name = "http-proxy-1.0.2.tgz";
-      sha1 = "08060ff2edb2189e57aa3a152d3ac63ed1af7254";
-    };
-    deps = {
-      "eventemitter3-1.2.0" = self.by-version."eventemitter3"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-proxy"."^1.13.0" =
-    self.by-version."http-proxy"."1.13.3";
-  by-version."http-proxy"."1.13.3" = self.buildNodePackage {
-    name = "http-proxy-1.13.3";
-    version = "1.13.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.13.3.tgz";
-      name = "http-proxy-1.13.3.tgz";
-      sha1 = "d5ec0e25da0c4b2edaeaa9476672640deda59623";
-    };
-    deps = {
-      "eventemitter3-1.2.0" = self.by-version."eventemitter3"."1.2.0";
-      "requires-port-1.0.0" = self.by-version."requires-port"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-proxy-agent"."0" =
-    self.by-version."http-proxy-agent"."0.2.7";
-  by-version."http-proxy-agent"."0.2.7" = self.buildNodePackage {
-    name = "http-proxy-agent-0.2.7";
-    version = "0.2.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-0.2.7.tgz";
-      name = "http-proxy-agent-0.2.7.tgz";
-      sha1 = "e17fda65f0902d952ce7921e62c7ff8862655a5e";
-    };
-    deps = {
-      "agent-base-1.0.2" = self.by-version."agent-base"."1.0.2";
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-signature".">=1.0.2 <2.0.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 = "https://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.8.3" = self.by-version."sshpk"."1.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-signature"."^0.11.0" =
-    self.by-version."http-signature"."0.11.0";
-  by-version."http-signature"."0.11.0" = self.buildNodePackage {
-    name = "http-signature-0.11.0";
-    version = "0.11.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz";
-      name = "http-signature-0.11.0.tgz";
-      sha1 = "1796cf67a001ad5cd6849dca0991485f09089fe6";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-      "asn1-0.1.11" = self.by-version."asn1"."0.1.11";
-      "ctype-0.5.3" = self.by-version."ctype"."0.5.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-signature"."~0.10.0" =
-    self.by-version."http-signature"."0.10.1";
-  by-version."http-signature"."0.10.1" = self.buildNodePackage {
-    name = "http-signature-0.10.1";
-    version = "0.10.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz";
-      name = "http-signature-0.10.1.tgz";
-      sha1 = "4fbdac132559aa8323121e540779c0a012b27e66";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-      "asn1-0.1.11" = self.by-version."asn1"."0.1.11";
-      "ctype-0.5.3" = self.by-version."ctype"."0.5.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."http-signature"."~0.11.0" =
-    self.by-version."http-signature"."0.11.0";
-  by-spec."http-signature"."~1.1.0" =
-    self.by-version."http-signature"."1.1.1";
-  by-spec."https-browserify"."0.0.1" =
-    self.by-version."https-browserify"."0.0.1";
-  by-version."https-browserify"."0.0.1" = self.buildNodePackage {
-    name = "https-browserify-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz";
-      name = "https-browserify-0.0.1.tgz";
-      sha1 = "3f91365cabe60b77ed0ebba24b454e3e09d95a82";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."https-browserify"."~0.0.0" =
-    self.by-version."https-browserify"."0.0.1";
-  by-spec."https-proxy-agent"."0" =
-    self.by-version."https-proxy-agent"."0.3.6";
-  by-version."https-proxy-agent"."0.3.6" = self.buildNodePackage {
-    name = "https-proxy-agent-0.3.6";
-    version = "0.3.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-0.3.6.tgz";
-      name = "https-proxy-agent-0.3.6.tgz";
-      sha1 = "713fa38e5d353f50eb14a342febe29033ed1619b";
-    };
-    deps = {
-      "agent-base-1.0.2" = self.by-version."agent-base"."1.0.2";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."https-proxy-agent"."^1.0.0" =
-    self.by-version."https-proxy-agent"."1.0.0";
-  by-version."https-proxy-agent"."1.0.0" = self.buildNodePackage {
-    name = "https-proxy-agent-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz";
-      name = "https-proxy-agent-1.0.0.tgz";
-      sha1 = "35f7da6c48ce4ddbfa264891ac593ee5ff8671e6";
-    };
-    deps = {
-      "agent-base-2.0.1" = self.by-version."agent-base"."2.0.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."humanize"."0.0.9" =
-    self.by-version."humanize"."0.0.9";
-  by-version."humanize"."0.0.9" = self.buildNodePackage {
-    name = "humanize-0.0.9";
-    version = "0.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/humanize/-/humanize-0.0.9.tgz";
-      name = "humanize-0.0.9.tgz";
-      sha1 = "1994ffaecdfe9c441ed2bdac7452b7bb4c9e41a4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."i"."0.3.x" =
-    self.by-version."i"."0.3.5";
-  by-version."i"."0.3.5" = self.buildNodePackage {
-    name = "i-0.3.5";
-    version = "0.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/i/-/i-0.3.5.tgz";
-      name = "i-0.3.5.tgz";
-      sha1 = "1d2b854158ec8169113c6cb7f6b6801e99e211d5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."i18next"."*" =
-    self.by-version."i18next"."3.1.0";
-  by-version."i18next"."3.1.0" = self.buildNodePackage {
-    name = "i18next-3.1.0";
-    version = "3.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/i18next/-/i18next-3.1.0.tgz";
-      name = "i18next-3.1.0.tgz";
-      sha1 = "3481d8e4c760f1316738db7ba3fd35bc648c0a45";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "i18next" = self.by-version."i18next"."3.1.0";
-  by-spec."i18next"."1.10.6" =
-    self.by-version."i18next"."1.10.6";
-  by-version."i18next"."1.10.6" = self.buildNodePackage {
-    name = "i18next-1.10.6";
-    version = "1.10.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/i18next/-/i18next-1.10.6.tgz";
-      name = "i18next-1.10.6.tgz";
-      sha1 = "fddd8b491502c48967a62963bc722ff897cddea0";
-    };
-    deps = {
-      "cookies-0.6.1" = self.by-version."cookies"."0.6.1";
-      "i18next-client-1.10.3" = self.by-version."i18next-client"."1.10.3";
-      "json5-0.2.0" = self.by-version."json5"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."i18next-client"."1.10.3" =
-    self.by-version."i18next-client"."1.10.3";
-  by-version."i18next-client"."1.10.3" = self.buildNodePackage {
-    name = "i18next-client-1.10.3";
-    version = "1.10.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/i18next-client/-/i18next-client-1.10.3.tgz";
-      name = "i18next-client-1.10.3.tgz";
-      sha1 = "76d0353557ed90d1e7a87754d5004d3f7801fde9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."iconv-lite"."0.4.11" =
-    self.by-version."iconv-lite"."0.4.11";
-  by-version."iconv-lite"."0.4.11" = self.buildNodePackage {
-    name = "iconv-lite-0.4.11";
-    version = "0.4.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz";
-      name = "iconv-lite-0.4.11.tgz";
-      sha1 = "2ecb42fd294744922209a2e7c404dac8793d8ade";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."iconv-lite"."0.4.13" =
-    self.by-version."iconv-lite"."0.4.13";
-  by-version."iconv-lite"."0.4.13" = self.buildNodePackage {
-    name = "iconv-lite-0.4.13";
-    version = "0.4.13";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz";
-      name = "iconv-lite-0.4.13.tgz";
-      sha1 = "1f88aba4ab0b1508e8312acc39345f36e992e2f2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."iconv-lite"."0.4.4" =
-    self.by-version."iconv-lite"."0.4.4";
-  by-version."iconv-lite"."0.4.4" = self.buildNodePackage {
-    name = "iconv-lite-0.4.4";
-    version = "0.4.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz";
-      name = "iconv-lite-0.4.4.tgz";
-      sha1 = "e95f2e41db0735fc21652f7827a5ee32e63c83a8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."iconv-lite"."0.4.8" =
-    self.by-version."iconv-lite"."0.4.8";
-  by-version."iconv-lite"."0.4.8" = self.buildNodePackage {
-    name = "iconv-lite-0.4.8";
-    version = "0.4.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.8.tgz";
-      name = "iconv-lite-0.4.8.tgz";
-      sha1 = "c6019a7595f2cefca702eab694a010bcd9298d20";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."iconv-lite"."^0.4.13" =
-    self.by-version."iconv-lite"."0.4.13";
-  by-spec."iconv-lite"."^0.4.4" =
-    self.by-version."iconv-lite"."0.4.13";
-  by-spec."iconv-lite"."^0.4.5" =
-    self.by-version."iconv-lite"."0.4.13";
-  by-spec."iconv-lite"."~0.2.11" =
-    self.by-version."iconv-lite"."0.2.11";
-  by-version."iconv-lite"."0.2.11" = self.buildNodePackage {
-    name = "iconv-lite-0.2.11";
-    version = "0.2.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz";
-      name = "iconv-lite-0.2.11.tgz";
-      sha1 = "1ce60a3a57864a292d1321ff4609ca4bb965adc8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."iconv-lite"."~0.4.13" =
-    self.by-version."iconv-lite"."0.4.13";
-  by-spec."ieee754"."^1.1.4" =
-    self.by-version."ieee754"."1.1.6";
-  by-version."ieee754"."1.1.6" = self.buildNodePackage {
-    name = "ieee754-1.1.6";
-    version = "1.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz";
-      name = "ieee754-1.1.6.tgz";
-      sha1 = "2e1013219c6d6712973ec54d981ec19e5579de97";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."iferr"."^0.1.5" =
-    self.by-version."iferr"."0.1.5";
-  by-version."iferr"."0.1.5" = self.buildNodePackage {
-    name = "iferr-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz";
-      name = "iferr-0.1.5.tgz";
-      sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."iferr"."~0.1.5" =
-    self.by-version."iferr"."0.1.5";
-  by-spec."ignore"."^3.1.2" =
-    self.by-version."ignore"."3.1.2";
-  by-version."ignore"."3.1.2" = self.buildNodePackage {
-    name = "ignore-3.1.2";
-    version = "3.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ignore/-/ignore-3.1.2.tgz";
-      name = "ignore-3.1.2.tgz";
-      sha1 = "dd17765e9233b4019762ba82b892202b0980161b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ignore-by-default"."^1.0.0" =
-    self.by-version."ignore-by-default"."1.0.1";
-  by-version."ignore-by-default"."1.0.1" = self.buildNodePackage {
-    name = "ignore-by-default-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
-      name = "ignore-by-default-1.0.1.tgz";
-      sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."image-size"."~0.4.0" =
-    self.by-version."image-size"."0.4.0";
-  by-version."image-size"."0.4.0" = self.buildNodePackage {
-    name = "image-size-0.4.0";
-    version = "0.4.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz";
-      name = "image-size-0.4.0.tgz";
-      sha1 = "d4b4e1f61952e4cbc1cea9a6b0c915fecb707510";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."image-size"."~0.5.0" =
-    self.by-version."image-size"."0.5.0";
-  by-version."image-size"."0.5.0" = self.buildNodePackage {
-    name = "image-size-0.5.0";
-    version = "0.5.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/image-size/-/image-size-0.5.0.tgz";
-      name = "image-size-0.5.0.tgz";
-      sha1 = "be7aed1c37b5ac3d9ba1d66a24b4c47ff8397651";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."imagemagick".">=0.1.3" =
-    self.by-version."imagemagick"."0.1.3";
-  by-version."imagemagick"."0.1.3" = self.buildNodePackage {
-    name = "imagemagick-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/imagemagick/-/imagemagick-0.1.3.tgz";
-      name = "imagemagick-0.1.3.tgz";
-      sha1 = "7483cea093b4d9f2e2f396857adc8821b537c56a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."imap"."^0.8.17" =
-    self.by-version."imap"."0.8.17";
-  by-version."imap"."0.8.17" = self.buildNodePackage {
-    name = "imap-0.8.17";
-    version = "0.8.17";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/imap/-/imap-0.8.17.tgz";
-      name = "imap-0.8.17.tgz";
-      sha1 = "e70ff1d1def0456af8bf1d96164d36176662172a";
-    };
-    deps = {
-      "utf7-1.0.0" = self.by-version."utf7"."1.0.0";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."immediate-chunk-store"."^1.0.5" =
-    self.by-version."immediate-chunk-store"."1.0.8";
-  by-version."immediate-chunk-store"."1.0.8" = self.buildNodePackage {
-    name = "immediate-chunk-store-1.0.8";
-    version = "1.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/immediate-chunk-store/-/immediate-chunk-store-1.0.8.tgz";
-      name = "immediate-chunk-store-1.0.8.tgz";
-      sha1 = "0ecdad0c546332672d7b5b511b26bb18ce56e73f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."immutable"."^3.7.6" =
-    self.by-version."immutable"."3.8.1";
-  by-version."immutable"."3.8.1" = self.buildNodePackage {
-    name = "immutable-3.8.1";
-    version = "3.8.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz";
-      name = "immutable-3.8.1.tgz";
-      sha1 = "200807f11ab0f72710ea485542de088075f68cd2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."imurmurhash"."*" =
-    self.by-version."imurmurhash"."0.1.4";
-  by-version."imurmurhash"."0.1.4" = self.buildNodePackage {
-    name = "imurmurhash-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
-      name = "imurmurhash-0.1.4.tgz";
-      sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."imurmurhash"."^0.1.4" =
-    self.by-version."imurmurhash"."0.1.4";
-  by-spec."indent-string"."^1.1.0" =
-    self.by-version."indent-string"."1.2.2";
-  by-version."indent-string"."1.2.2" = self.buildNodePackage {
-    name = "indent-string-1.2.2";
-    version = "1.2.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/indent-string/-/indent-string-1.2.2.tgz";
-      name = "indent-string-1.2.2.tgz";
-      sha1 = "db99bcc583eb6abbb1e48dcbb1999a986041cb6b";
-    };
-    deps = {
-      "get-stdin-4.0.1" = self.by-version."get-stdin"."4.0.1";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "repeating-1.1.3" = self.by-version."repeating"."1.1.3";
-    };
-    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 = "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz";
-      name = "indent-string-2.1.0.tgz";
-      sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
-    };
-    deps = {
-      "repeating-2.0.1" = self.by-version."repeating"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."indexof"."0.0.1" =
-    self.by-version."indexof"."0.0.1";
-  by-version."indexof"."0.0.1" = self.buildNodePackage {
-    name = "indexof-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz";
-      name = "indexof-0.0.1.tgz";
-      sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
-    };
-    deps = {
-    };
-    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 = "https://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-spec."inflection"."~1.3.0" =
-    self.by-version."inflection"."1.3.8";
-  by-version."inflection"."1.3.8" = self.buildNodePackage {
-    name = "inflection-1.3.8";
-    version = "1.3.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz";
-      name = "inflection-1.3.8.tgz";
-      sha1 = "cbd160da9f75b14c3cc63578d4f396784bf3014e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inflection"."~1.5.3" =
-    self.by-version."inflection"."1.5.3";
-  by-version."inflection"."1.5.3" = self.buildNodePackage {
-    name = "inflection-1.5.3";
-    version = "1.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inflection/-/inflection-1.5.3.tgz";
-      name = "inflection-1.5.3.tgz";
-      sha1 = "192a6d80f666d11b10012311d7f330ee40dbc01e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inflight"."^1.0.4" =
-    self.by-version."inflight"."1.0.5";
-  by-version."inflight"."1.0.5" = self.buildNodePackage {
-    name = "inflight-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz";
-      name = "inflight-1.0.5.tgz";
-      sha1 = "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a";
-    };
-    deps = {
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "wrappy-1.0.2" = self.by-version."wrappy"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inflight"."~1.0.4" =
-    self.by-version."inflight"."1.0.5";
-  by-spec."inflight"."~1.0.5" =
-    self.by-version."inflight"."1.0.5";
-  by-spec."inherits"."1" =
-    self.by-version."inherits"."1.0.2";
-  by-version."inherits"."1.0.2" = self.buildNodePackage {
-    name = "inherits-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz";
-      name = "inherits-1.0.2.tgz";
-      sha1 = "ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inherits"."1.x" =
-    self.by-version."inherits"."1.0.2";
-  by-spec."inherits"."2" =
-    self.by-version."inherits"."2.0.1";
-  by-version."inherits"."2.0.1" = self.buildNodePackage {
-    name = "inherits-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
-      name = "inherits-2.0.1.tgz";
-      sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inherits"."2.0.1" =
-    self.by-version."inherits"."2.0.1";
-  by-spec."inherits"."^2.0.1" =
-    self.by-version."inherits"."2.0.1";
-  by-spec."inherits"."~1.0.0" =
-    self.by-version."inherits"."1.0.2";
-  by-spec."inherits"."~2.0.0" =
-    self.by-version."inherits"."2.0.1";
-  by-spec."inherits"."~2.0.1" =
-    self.by-version."inherits"."2.0.1";
-  by-spec."ini"."1.x.x" =
-    self.by-version."ini"."1.3.4";
-  by-version."ini"."1.3.4" = self.buildNodePackage {
-    name = "ini-1.3.4";
-    version = "1.3.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz";
-      name = "ini-1.3.4.tgz";
-      sha1 = "0537cb79daf59b59a1a517dff706c86ec039162e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ini"."^1.2.0" =
-    self.by-version."ini"."1.3.4";
-  by-spec."ini"."^1.3.0" =
-    self.by-version."ini"."1.3.4";
-  by-spec."ini"."^1.3.4" =
-    self.by-version."ini"."1.3.4";
-  by-spec."ini"."~1.1.0" =
-    self.by-version."ini"."1.1.0";
-  by-version."ini"."1.1.0" = self.buildNodePackage {
-    name = "ini-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz";
-      name = "ini-1.1.0.tgz";
-      sha1 = "4e808c2ce144c6c1788918e034d6797bc6cf6281";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ini"."~1.3.0" =
-    self.by-version."ini"."1.3.4";
-  by-spec."ini"."~1.3.4" =
-    self.by-version."ini"."1.3.4";
-  by-spec."init-package-json"."^1.2.0" =
-    self.by-version."init-package-json"."1.9.4";
-  by-version."init-package-json"."1.9.4" = self.buildNodePackage {
-    name = "init-package-json-1.9.4";
-    version = "1.9.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz";
-      name = "init-package-json-1.9.4.tgz";
-      sha1 = "b4053d0b40f0cf842a41966937cb3dc0f534e856";
-    };
-    deps = {
-      "glob-6.0.4" = self.by-version."glob"."6.0.4";
-      "npm-package-arg-4.1.1" = self.by-version."npm-package-arg"."4.1.1";
-      "promzard-0.3.0" = self.by-version."promzard"."0.3.0";
-      "read-1.0.7" = self.by-version."read"."1.0.7";
-      "read-package-json-2.0.4" = self.by-version."read-package-json"."2.0.4";
-      "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";
-      "validate-npm-package-name-2.2.2" = self.by-version."validate-npm-package-name"."2.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."init-package-json"."~1.9.3" =
-    self.by-version."init-package-json"."1.9.4";
-  by-spec."init-package-json"."~1.9.4" =
-    self.by-version."init-package-json"."1.9.4";
-  by-spec."inline-source-map"."~0.3.0" =
-    self.by-version."inline-source-map"."0.3.1";
-  by-version."inline-source-map"."0.3.1" = self.buildNodePackage {
-    name = "inline-source-map-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.3.1.tgz";
-      name = "inline-source-map-0.3.1.tgz";
-      sha1 = "a528b514e689fce90db3089e870d92f527acb5eb";
-    };
-    deps = {
-      "source-map-0.3.0" = self.by-version."source-map"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inline-source-map"."~0.5.0" =
-    self.by-version."inline-source-map"."0.5.0";
-  by-version."inline-source-map"."0.5.0" = self.buildNodePackage {
-    name = "inline-source-map-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.5.0.tgz";
-      name = "inline-source-map-0.5.0.tgz";
-      sha1 = "4a4c5dd8e4fb5e9b3cda60c822dfadcaee66e0af";
-    };
-    deps = {
-      "source-map-0.4.4" = self.by-version."source-map"."0.4.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inline-source-map"."~0.6.0" =
-    self.by-version."inline-source-map"."0.6.2";
-  by-version."inline-source-map"."0.6.2" = self.buildNodePackage {
-    name = "inline-source-map-0.6.2";
-    version = "0.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz";
-      name = "inline-source-map-0.6.2.tgz";
-      sha1 = "f9393471c18a79d1724f863fa38b586370ade2a5";
-    };
-    deps = {
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inquirer".">=0.2.4" =
-    self.by-version."inquirer"."1.0.3";
-  by-version."inquirer"."1.0.3" = self.buildNodePackage {
-    name = "inquirer-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inquirer/-/inquirer-1.0.3.tgz";
-      name = "inquirer-1.0.3.tgz";
-      sha1 = "ebe3a0948571bcc46ccccbe2f9bcec251e984bd0";
-    };
-    deps = {
-      "ansi-escapes-1.4.0" = self.by-version."ansi-escapes"."1.4.0";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "cli-cursor-1.0.2" = self.by-version."cli-cursor"."1.0.2";
-      "cli-width-2.1.0" = self.by-version."cli-width"."2.1.0";
-      "figures-1.7.0" = self.by-version."figures"."1.7.0";
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-      "mute-stream-0.0.6" = self.by-version."mute-stream"."0.0.6";
-      "pinkie-promise-2.0.1" = self.by-version."pinkie-promise"."2.0.1";
-      "run-async-2.2.0" = self.by-version."run-async"."2.2.0";
-      "rx-4.1.0" = self.by-version."rx"."4.1.0";
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inquirer"."^0.10.0" =
-    self.by-version."inquirer"."0.10.1";
-  by-version."inquirer"."0.10.1" = self.buildNodePackage {
-    name = "inquirer-0.10.1";
-    version = "0.10.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inquirer/-/inquirer-0.10.1.tgz";
-      name = "inquirer-0.10.1.tgz";
-      sha1 = "ea25e4ce69ca145e05c99e46dcfec05e4012594a";
-    };
-    deps = {
-      "ansi-escapes-1.4.0" = self.by-version."ansi-escapes"."1.4.0";
-      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "cli-cursor-1.0.2" = self.by-version."cli-cursor"."1.0.2";
-      "cli-width-1.1.1" = self.by-version."cli-width"."1.1.1";
-      "figures-1.7.0" = self.by-version."figures"."1.7.0";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "readline2-1.0.1" = self.by-version."readline2"."1.0.1";
-      "run-async-0.1.0" = self.by-version."run-async"."0.1.0";
-      "rx-lite-3.1.2" = self.by-version."rx-lite"."3.1.2";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inquirer"."^0.12.0" =
-    self.by-version."inquirer"."0.12.0";
-  by-version."inquirer"."0.12.0" = self.buildNodePackage {
-    name = "inquirer-0.12.0";
-    version = "0.12.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz";
-      name = "inquirer-0.12.0.tgz";
-      sha1 = "1ef2bfd63504df0bc75785fff8c2c41df12f077e";
-    };
-    deps = {
-      "ansi-escapes-1.4.0" = self.by-version."ansi-escapes"."1.4.0";
-      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "cli-cursor-1.0.2" = self.by-version."cli-cursor"."1.0.2";
-      "cli-width-2.1.0" = self.by-version."cli-width"."2.1.0";
-      "figures-1.7.0" = self.by-version."figures"."1.7.0";
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-      "readline2-1.0.1" = self.by-version."readline2"."1.0.1";
-      "run-async-0.1.0" = self.by-version."run-async"."0.1.0";
-      "rx-lite-3.1.2" = self.by-version."rx-lite"."3.1.2";
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."inquirer"."^0.8.0" =
-    self.by-version."inquirer"."0.8.5";
-  by-version."inquirer"."0.8.5" = self.buildNodePackage {
-    name = "inquirer-0.8.5";
-    version = "0.8.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/inquirer/-/inquirer-0.8.5.tgz";
-      name = "inquirer-0.8.5.tgz";
-      sha1 = "dbd740cf6ca3b731296a63ce6f6d961851f336df";
-    };
-    deps = {
-      "ansi-regex-1.1.1" = self.by-version."ansi-regex"."1.1.1";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "cli-width-1.1.1" = self.by-version."cli-width"."1.1.1";
-      "figures-1.7.0" = self.by-version."figures"."1.7.0";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "readline2-0.1.1" = self.by-version."readline2"."0.1.1";
-      "rx-2.5.3" = self.by-version."rx"."2.5.3";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."insert-module-globals"."^6.4.1" =
-    self.by-version."insert-module-globals"."6.6.3";
-  by-version."insert-module-globals"."6.6.3" = self.buildNodePackage {
-    name = "insert-module-globals-6.6.3";
-    version = "6.6.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-6.6.3.tgz";
-      name = "insert-module-globals-6.6.3.tgz";
-      sha1 = "20638e29a30f9ed1ca2e3a825fbc2cba5246ddfc";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "combine-source-map-0.6.1" = self.by-version."combine-source-map"."0.6.1";
-      "concat-stream-1.4.10" = self.by-version."concat-stream"."1.4.10";
-      "is-buffer-1.1.3" = self.by-version."is-buffer"."1.1.3";
-      "lexical-scope-1.2.0" = self.by-version."lexical-scope"."1.2.0";
-      "process-0.11.4" = self.by-version."process"."0.11.4";
-      "through2-1.1.1" = self.by-version."through2"."1.1.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."insert-module-globals"."^7.0.0" =
-    self.by-version."insert-module-globals"."7.0.1";
-  by-version."insert-module-globals"."7.0.1" = self.buildNodePackage {
-    name = "insert-module-globals-7.0.1";
-    version = "7.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz";
-      name = "insert-module-globals-7.0.1.tgz";
-      sha1 = "c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "combine-source-map-0.7.2" = self.by-version."combine-source-map"."0.7.2";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "is-buffer-1.1.3" = self.by-version."is-buffer"."1.1.3";
-      "lexical-scope-1.2.0" = self.by-version."lexical-scope"."1.2.0";
-      "process-0.11.4" = self.by-version."process"."0.11.4";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."insight"."~0.8.2" =
-    self.by-version."insight"."0.8.2";
-  by-version."insight"."0.8.2" = self.buildNodePackage {
-    name = "insight-0.8.2";
-    version = "0.8.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/insight/-/insight-0.8.2.tgz";
-      name = "insight-0.8.2.tgz";
-      sha1 = "18c2acf1b6055491278fc7529f1f21d32e1f0eda";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "configstore-1.4.0" = self.by-version."configstore"."1.4.0";
-      "inquirer-0.10.1" = self.by-version."inquirer"."0.10.1";
-      "lodash.debounce-3.1.1" = self.by-version."lodash.debounce"."3.1.1";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "os-name-1.0.3" = self.by-version."os-name"."1.0.3";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."internal-ip"."^1.0.0" =
-    self.by-version."internal-ip"."1.2.0";
-  by-version."internal-ip"."1.2.0" = self.buildNodePackage {
-    name = "internal-ip-1.2.0";
-    version = "1.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz";
-      name = "internal-ip-1.2.0.tgz";
-      sha1 = "ae9fbf93b984878785d50a8de1b356956058cf5c";
-    };
-    deps = {
-      "meow-3.7.0" = self.by-version."meow"."3.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."internal-ip"."^1.2.0" =
-    self.by-version."internal-ip"."1.2.0";
-  by-spec."interpret"."^1.0.0" =
-    self.by-version."interpret"."1.0.1";
-  by-version."interpret"."1.0.1" = self.buildNodePackage {
-    name = "interpret-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz";
-      name = "interpret-1.0.1.tgz";
-      sha1 = "d579fb7f693b858004947af39fa0db49f795602c";
-    };
-    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 = "https://registry.npmjs.org/intersect/-/intersect-1.0.1.tgz";
-      name = "intersect-1.0.1.tgz";
-      sha1 = "332650e10854d8c0ac58c192bdc27a8bf7e7a30c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."invert-kv"."^1.0.0" =
-    self.by-version."invert-kv"."1.0.0";
-  by-version."invert-kv"."1.0.0" = self.buildNodePackage {
-    name = "invert-kv-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz";
-      name = "invert-kv-1.0.0.tgz";
-      sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ip"."0.3.x" =
-    self.by-version."ip"."0.3.3";
-  by-version."ip"."0.3.3" = self.buildNodePackage {
-    name = "ip-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ip/-/ip-0.3.3.tgz";
-      name = "ip-0.3.3.tgz";
-      sha1 = "8ee8309e92f0b040d287f72efaca1a21702d3fb4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ip"."^0.3.0" =
-    self.by-version."ip"."0.3.3";
-  by-spec."ip"."^1.0.1" =
-    self.by-version."ip"."1.1.3";
-  by-version."ip"."1.1.3" = self.buildNodePackage {
-    name = "ip-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ip/-/ip-1.1.3.tgz";
-      name = "ip-1.1.3.tgz";
-      sha1 = "12b16294a38925486d618a1103506e4eb4f8b296";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ip"."^1.1.0" =
-    self.by-version."ip"."1.1.3";
-  by-spec."ip"."^1.1.2" =
-    self.by-version."ip"."1.1.3";
-  by-spec."ip-regex"."^1.0.0" =
-    self.by-version."ip-regex"."1.0.3";
-  by-version."ip-regex"."1.0.3" = self.buildNodePackage {
-    name = "ip-regex-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz";
-      name = "ip-regex-1.0.3.tgz";
-      sha1 = "dc589076f659f419c222039a33316f1c7387effd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ip-set"."^1.0.0" =
-    self.by-version."ip-set"."1.0.0";
-  by-version."ip-set"."1.0.0" = self.buildNodePackage {
-    name = "ip-set-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ip-set/-/ip-set-1.0.0.tgz";
-      name = "ip-set-1.0.0.tgz";
-      sha1 = "54782fb5ae37ab6e697a2b49e07748d9e069dda6";
-    };
-    deps = {
-      "ip-0.3.3" = self.by-version."ip"."0.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ipaddr.js"."0.1.2" =
-    self.by-version."ipaddr.js"."0.1.2";
-  by-version."ipaddr.js"."0.1.2" = self.buildNodePackage {
-    name = "ipaddr.js-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.2.tgz";
-      name = "ipaddr.js-0.1.2.tgz";
-      sha1 = "6a1fd3d854f5002965c34d7bbcd9b4a8d4b0467e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ipaddr.js"."1.0.5" =
-    self.by-version."ipaddr.js"."1.0.5";
-  by-version."ipaddr.js"."1.0.5" = self.buildNodePackage {
-    name = "ipaddr.js-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz";
-      name = "ipaddr.js-1.0.5.tgz";
-      sha1 = "5fa78cf301b825c78abc3042d812723049ea23c7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ipaddr.js".">= 0.1.1" =
-    self.by-version."ipaddr.js"."1.1.1";
-  by-version."ipaddr.js"."1.1.1" = self.buildNodePackage {
-    name = "ipaddr.js-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.1.1.tgz";
-      name = "ipaddr.js-1.1.1.tgz";
-      sha1 = "c791d95f52b29c1247d5df80ada39b8a73647230";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ipaddr.js".">= 0.1.5" =
-    self.by-version."ipaddr.js"."1.1.1";
-  by-spec."ipaddr.js".">=0.1.2" =
-    self.by-version."ipaddr.js"."1.1.1";
-  by-spec."ipaddr.js"."^0.1.5" =
-    self.by-version."ipaddr.js"."0.1.9";
-  by-version."ipaddr.js"."0.1.9" = self.buildNodePackage {
-    name = "ipaddr.js-0.1.9";
-    version = "0.1.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.9.tgz";
-      name = "ipaddr.js-0.1.9.tgz";
-      sha1 = "a9c78ccc12dc9010f296ab9aef2f61f432d69efa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ipaddr.js"."^1.0.1" =
-    self.by-version."ipaddr.js"."1.1.1";
-  by-spec."ironhorse"."*" =
-    self.by-version."ironhorse"."0.0.11";
-  by-version."ironhorse"."0.0.11" = self.buildNodePackage {
-    name = "ironhorse-0.0.11";
-    version = "0.0.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ironhorse/-/ironhorse-0.0.11.tgz";
-      name = "ironhorse-0.0.11.tgz";
-      sha1 = "e28ea9c4f23d1fd17008f97df5f2a24f7bb928d2";
-    };
-    deps = {
-      "underscore-1.5.2" = self.by-version."underscore"."1.5.2";
-      "winston-2.2.0" = self.by-version."winston"."2.2.0";
-      "nconf-0.8.4" = self.by-version."nconf"."0.8.4";
-      "fs-walk-0.0.1" = self.by-version."fs-walk"."0.0.1";
-      "async-2.0.0-rc.6" = self.by-version."async"."2.0.0-rc.6";
-      "express-5.0.0-alpha.2" = self.by-version."express"."5.0.0-alpha.2";
-      "jade-1.11.0" = self.by-version."jade"."1.11.0";
-      "passport-0.3.2" = self.by-version."passport"."0.3.2";
-      "passport-http-0.3.0" = self.by-version."passport-http"."0.3.0";
-      "js-yaml-3.6.1" = self.by-version."js-yaml"."3.6.1";
-      "mongoose-4.4.20" = self.by-version."mongoose"."4.4.20";
-      "gridfs-stream-1.1.1" = self.by-version."gridfs-stream"."1.1.1";
-      "temp-0.8.3" = self.by-version."temp"."0.8.3";
-      "kue-0.11.0" = self.by-version."kue"."0.11.0";
-      "redis-2.6.1" = self.by-version."redis"."2.6.1";
-      "hiredis-0.4.1" = self.by-version."hiredis"."0.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "ironhorse" = self.by-version."ironhorse"."0.0.11";
-  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 = "https://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-binary-path"."^1.0.0" =
-    self.by-version."is-binary-path"."1.0.1";
-  by-version."is-binary-path"."1.0.1" = self.buildNodePackage {
-    name = "is-binary-path-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
-      name = "is-binary-path-1.0.1.tgz";
-      sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
-    };
-    deps = {
-      "binary-extensions-1.4.1" = self.by-version."binary-extensions"."1.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-buffer"."^1.0.2" =
-    self.by-version."is-buffer"."1.1.3";
-  by-version."is-buffer"."1.1.3" = self.buildNodePackage {
-    name = "is-buffer-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.3.tgz";
-      name = "is-buffer-1.1.3.tgz";
-      sha1 = "db897fc3f7aca2d50de94b6c8c2896a4771627af";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-buffer"."^1.1.0" =
-    self.by-version."is-buffer"."1.1.3";
-  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 = "https://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-spec."is-dotfile"."^1.0.0" =
-    self.by-version."is-dotfile"."1.0.2";
-  by-version."is-dotfile"."1.0.2" = self.buildNodePackage {
-    name = "is-dotfile-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz";
-      name = "is-dotfile-1.0.2.tgz";
-      sha1 = "2c132383f39199f8edc268ca01b9b007d205cc4d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-equal-shallow"."^0.1.3" =
-    self.by-version."is-equal-shallow"."0.1.3";
-  by-version."is-equal-shallow"."0.1.3" = self.buildNodePackage {
-    name = "is-equal-shallow-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz";
-      name = "is-equal-shallow-0.1.3.tgz";
-      sha1 = "2238098fc221de0bcfa5d9eac4c45d638aa1c534";
-    };
-    deps = {
-      "is-primitive-2.0.0" = self.by-version."is-primitive"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-extendable"."^0.1.0" =
-    self.by-version."is-extendable"."0.1.1";
-  by-version."is-extendable"."0.1.1" = self.buildNodePackage {
-    name = "is-extendable-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
-      name = "is-extendable-0.1.1.tgz";
-      sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-extendable"."^0.1.1" =
-    self.by-version."is-extendable"."0.1.1";
-  by-spec."is-extglob"."^1.0.0" =
-    self.by-version."is-extglob"."1.0.0";
-  by-version."is-extglob"."1.0.0" = self.buildNodePackage {
-    name = "is-extglob-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz";
-      name = "is-extglob-1.0.0.tgz";
-      sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-finite"."^1.0.0" =
-    self.by-version."is-finite"."1.0.1";
-  by-version."is-finite"."1.0.1" = self.buildNodePackage {
-    name = "is-finite-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://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-fullwidth-code-point"."^1.0.0" =
-    self.by-version."is-fullwidth-code-point"."1.0.0";
-  by-version."is-fullwidth-code-point"."1.0.0" = self.buildNodePackage {
-    name = "is-fullwidth-code-point-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-      name = "is-fullwidth-code-point-1.0.0.tgz";
-      sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
-    };
-    deps = {
-      "number-is-nan-1.0.0" = self.by-version."number-is-nan"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-glob"."^2.0.0" =
-    self.by-version."is-glob"."2.0.1";
-  by-version."is-glob"."2.0.1" = self.buildNodePackage {
-    name = "is-glob-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz";
-      name = "is-glob-2.0.1.tgz";
-      sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863";
-    };
-    deps = {
-      "is-extglob-1.0.0" = self.by-version."is-extglob"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-glob"."^2.0.1" =
-    self.by-version."is-glob"."2.0.1";
-  by-spec."is-ip"."^1.0.0" =
-    self.by-version."is-ip"."1.0.0";
-  by-version."is-ip"."1.0.0" = self.buildNodePackage {
-    name = "is-ip-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-ip/-/is-ip-1.0.0.tgz";
-      name = "is-ip-1.0.0.tgz";
-      sha1 = "2bb6959f797ccd6f9fdc812758bcbc87c4c59074";
-    };
-    deps = {
-      "ip-regex-1.0.3" = self.by-version."ip-regex"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-my-json-valid"."^2.10.0" =
-    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 = "https://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-my-json-valid"."^2.12.0" =
-    self.by-version."is-my-json-valid"."2.13.1";
-  by-spec."is-my-json-valid"."^2.12.4" =
-    self.by-version."is-my-json-valid"."2.13.1";
-  by-spec."is-npm"."^1.0.0" =
-    self.by-version."is-npm"."1.0.0";
-  by-version."is-npm"."1.0.0" = self.buildNodePackage {
-    name = "is-npm-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz";
-      name = "is-npm-1.0.0.tgz";
-      sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-number"."^0.1.1" =
-    self.by-version."is-number"."0.1.1";
-  by-version."is-number"."0.1.1" = self.buildNodePackage {
-    name = "is-number-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz";
-      name = "is-number-0.1.1.tgz";
-      sha1 = "69a7af116963d47206ec9bd9b48a14216f1e3806";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-number"."^2.0.2" =
-    self.by-version."is-number"."2.1.0";
-  by-version."is-number"."2.1.0" = self.buildNodePackage {
-    name = "is-number-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz";
-      name = "is-number-2.1.0.tgz";
-      sha1 = "01fcbbb393463a548f2f466cce16dece49db908f";
-    };
-    deps = {
-      "kind-of-3.0.3" = self.by-version."kind-of"."3.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-number"."^2.1.0" =
-    self.by-version."is-number"."2.1.0";
-  by-spec."is-path-cwd"."^1.0.0" =
-    self.by-version."is-path-cwd"."1.0.0";
-  by-version."is-path-cwd"."1.0.0" = self.buildNodePackage {
-    name = "is-path-cwd-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz";
-      name = "is-path-cwd-1.0.0.tgz";
-      sha1 = "d225ec23132e89edd38fda767472e62e65f1106d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-path-in-cwd"."^1.0.0" =
-    self.by-version."is-path-in-cwd"."1.0.0";
-  by-version."is-path-in-cwd"."1.0.0" = self.buildNodePackage {
-    name = "is-path-in-cwd-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz";
-      name = "is-path-in-cwd-1.0.0.tgz";
-      sha1 = "6477582b8214d602346094567003be8a9eac04dc";
-    };
-    deps = {
-      "is-path-inside-1.0.0" = self.by-version."is-path-inside"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-path-inside"."^1.0.0" =
-    self.by-version."is-path-inside"."1.0.0";
-  by-version."is-path-inside"."1.0.0" = self.buildNodePackage {
-    name = "is-path-inside-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz";
-      name = "is-path-inside-1.0.0.tgz";
-      sha1 = "fc06e5a1683fbda13de667aff717bbc10a48f37f";
-    };
-    deps = {
-      "path-is-inside-1.0.1" = self.by-version."path-is-inside"."1.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 = "https://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-posix-bracket"."^0.1.0" =
-    self.by-version."is-posix-bracket"."0.1.1";
-  by-version."is-posix-bracket"."0.1.1" = self.buildNodePackage {
-    name = "is-posix-bracket-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz";
-      name = "is-posix-bracket-0.1.1.tgz";
-      sha1 = "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-primitive"."^2.0.0" =
-    self.by-version."is-primitive"."2.0.0";
-  by-version."is-primitive"."2.0.0" = self.buildNodePackage {
-    name = "is-primitive-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz";
-      name = "is-primitive-2.0.0.tgz";
-      sha1 = "207bab91638499c07b2adf240a41a87210034575";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-promise"."^2.0.0" =
-    self.by-version."is-promise"."2.1.0";
-  by-version."is-promise"."2.1.0" = self.buildNodePackage {
-    name = "is-promise-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz";
-      name = "is-promise-2.1.0.tgz";
-      sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-promise"."^2.1.0" =
-    self.by-version."is-promise"."2.1.0";
-  by-spec."is-promise"."~1" =
-    self.by-version."is-promise"."1.0.1";
-  by-version."is-promise"."1.0.1" = self.buildNodePackage {
-    name = "is-promise-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz";
-      name = "is-promise-1.0.1.tgz";
-      sha1 = "31573761c057e33c2e91aab9e96da08cefbe76e5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-property"."^1.0.0" =
-    self.by-version."is-property"."1.0.2";
-  by-version."is-property"."1.0.2" = self.buildNodePackage {
-    name = "is-property-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz";
-      name = "is-property-1.0.2.tgz";
-      sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
-    };
-    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 = "https://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-resolvable"."^1.0.0" =
-    self.by-version."is-resolvable"."1.0.0";
-  by-version."is-resolvable"."1.0.0" = self.buildNodePackage {
-    name = "is-resolvable-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz";
-      name = "is-resolvable-1.0.0.tgz";
-      sha1 = "8df57c61ea2e3c501408d100fb013cf8d6e0cc62";
-    };
-    deps = {
-      "tryit-1.0.2" = self.by-version."tryit"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-stream"."^1.0.0" =
-    self.by-version."is-stream"."1.1.0";
-  by-version."is-stream"."1.1.0" = self.buildNodePackage {
-    name = "is-stream-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
-      name = "is-stream-1.1.0.tgz";
-      sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-stream"."^1.0.1" =
-    self.by-version."is-stream"."1.1.0";
-  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 = "https://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-spec."is-url"."^1.2.1" =
-    self.by-version."is-url"."1.2.1";
-  by-version."is-url"."1.2.1" = self.buildNodePackage {
-    name = "is-url-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-url/-/is-url-1.2.1.tgz";
-      name = "is-url-1.2.1.tgz";
-      sha1 = "bc92ffd29b23d5f2180e253b916bce6fda711873";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."is-utf8"."0.2.1" =
-    self.by-version."is-utf8"."0.2.1";
-  by-version."is-utf8"."0.2.1" = self.buildNodePackage {
-    name = "is-utf8-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://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."is-utf8"."^0.2.0" =
-    self.by-version."is-utf8"."0.2.1";
-  by-spec."is-valid-glob"."^0.3.0" =
-    self.by-version."is-valid-glob"."0.3.0";
-  by-version."is-valid-glob"."0.3.0" = self.buildNodePackage {
-    name = "is-valid-glob-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz";
-      name = "is-valid-glob-0.3.0.tgz";
-      sha1 = "d4b55c69f51886f9b65c70d6c2622d37e29f48fe";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."isarray"."0.0.1" =
-    self.by-version."isarray"."0.0.1";
-  by-version."isarray"."0.0.1" = self.buildNodePackage {
-    name = "isarray-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
-      name = "isarray-0.0.1.tgz";
-      sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
-    };
-    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 = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
-      name = "isarray-1.0.0.tgz";
-      sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."isarray"."^1.0.0" =
-    self.by-version."isarray"."1.0.0";
-  by-spec."isarray"."~0.0.1" =
-    self.by-version."isarray"."0.0.1";
-  by-spec."isarray"."~1.0.0" =
-    self.by-version."isarray"."1.0.0";
-  by-spec."isbinaryfile"."^3.0.0" =
-    self.by-version."isbinaryfile"."3.0.0";
-  by-version."isbinaryfile"."3.0.0" = self.buildNodePackage {
-    name = "isbinaryfile-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.0.tgz";
-      name = "isbinaryfile-3.0.0.tgz";
-      sha1 = "e9382ebe16aa0f7c874848008d928020e42175f7";
-    };
-    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 = "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz";
-      name = "isemail-1.2.0.tgz";
-      sha1 = "be03df8cc3e29de4d2c5df6501263f1fa4595e9a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."isexe"."^1.1.1" =
-    self.by-version."isexe"."1.1.2";
-  by-version."isexe"."1.1.2" = self.buildNodePackage {
-    name = "isexe-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz";
-      name = "isexe-1.1.2.tgz";
-      sha1 = "36f3e22e60750920f5e7241a476a8c6a42275ad0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."isobject"."^2.0.0" =
-    self.by-version."isobject"."2.1.0";
-  by-version."isobject"."2.1.0" = self.buildNodePackage {
-    name = "isobject-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
-      name = "isobject-2.1.0.tgz";
-      sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
-    };
-    deps = {
-      "isarray-1.0.0" = self.by-version."isarray"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."isomorphic-fetch"."^2.1.1" =
-    self.by-version."isomorphic-fetch"."2.2.1";
-  by-version."isomorphic-fetch"."2.2.1" = self.buildNodePackage {
-    name = "isomorphic-fetch-2.2.1";
-    version = "2.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz";
-      name = "isomorphic-fetch-2.2.1.tgz";
-      sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
-    };
-    deps = {
-      "node-fetch-1.5.3" = self.by-version."node-fetch"."1.5.3";
-      "whatwg-fetch-1.0.0" = self.by-version."whatwg-fetch"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."isstream"."0.1.x" =
-    self.by-version."isstream"."0.1.2";
-  by-version."isstream"."0.1.2" = self.buildNodePackage {
-    name = "isstream-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
-      name = "isstream-0.1.2.tgz";
-      sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."isstream"."~0.1.1" =
-    self.by-version."isstream"."0.1.2";
-  by-spec."isstream"."~0.1.2" =
-    self.by-version."isstream"."0.1.2";
-  by-spec."istanbul"."*" =
-    self.by-version."istanbul"."1.0.0-alpha.2";
-  by-version."istanbul"."1.0.0-alpha.2" = self.buildNodePackage {
-    name = "istanbul-1.0.0-alpha.2";
-    version = "1.0.0-alpha.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/istanbul/-/istanbul-1.0.0-alpha.2.tgz";
-      name = "istanbul-1.0.0-alpha.2.tgz";
-      sha1 = "06096bc08e98baad744aae46962d8df9fac63d08";
-    };
-    deps = {
-      "istanbul-api-1.0.0-aplha.1" = self.by-version."istanbul-api"."1.0.0-aplha.1";
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "js-yaml-3.6.1" = self.by-version."js-yaml"."3.6.1";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-      "wordwrap-1.0.0" = self.by-version."wordwrap"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "istanbul" = self.by-version."istanbul"."1.0.0-alpha.2";
-  by-spec."istanbul"."^0.4.0" =
-    self.by-version."istanbul"."0.4.3";
-  by-version."istanbul"."0.4.3" = self.buildNodePackage {
-    name = "istanbul-0.4.3";
-    version = "0.4.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/istanbul/-/istanbul-0.4.3.tgz";
-      name = "istanbul-0.4.3.tgz";
-      sha1 = "5b714ee0ae493ac5ef204b99f3872bceef73d53a";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "escodegen-1.8.0" = self.by-version."escodegen"."1.8.0";
-      "esprima-2.7.2" = self.by-version."esprima"."2.7.2";
-      "fileset-0.2.1" = self.by-version."fileset"."0.2.1";
-      "handlebars-4.0.5" = self.by-version."handlebars"."4.0.5";
-      "js-yaml-3.6.1" = self.by-version."js-yaml"."3.6.1";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-      "supports-color-3.1.2" = self.by-version."supports-color"."3.1.2";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-      "wordwrap-1.0.0" = self.by-version."wordwrap"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."istanbul"."^0.4.1" =
-    self.by-version."istanbul"."0.4.3";
-  by-spec."istanbul-api"."^1.0.0-alpha" =
-    self.by-version."istanbul-api"."1.0.0-aplha.1";
-  by-version."istanbul-api"."1.0.0-aplha.1" = self.buildNodePackage {
-    name = "istanbul-api-1.0.0-aplha.1";
-    version = "1.0.0-aplha.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.0.0-aplha.1.tgz";
-      name = "istanbul-api-1.0.0-aplha.1.tgz";
-      sha1 = "3fa47f44acd58d52c6764218f5f7ef453fc50f5c";
-    };
-    deps = {
-      "istanbul-lib-coverage-1.0.0-alpha.4" = self.by-version."istanbul-lib-coverage"."1.0.0-alpha.4";
-      "istanbul-lib-instrument-1.0.0-alpha.6" = self.by-version."istanbul-lib-instrument"."1.0.0-alpha.6";
-      "istanbul-lib-report-1.0.0-alpha.3" = self.by-version."istanbul-lib-report"."1.0.0-alpha.3";
-      "istanbul-lib-hook-1.0.0-alpha.4" = self.by-version."istanbul-lib-hook"."1.0.0-alpha.4";
-      "istanbul-reports-1.0.0-alpha.4" = self.by-version."istanbul-reports"."1.0.0-alpha.4";
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "fileset-0.2.1" = self.by-version."fileset"."0.2.1";
-      "js-yaml-3.6.1" = self.by-version."js-yaml"."3.6.1";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."istanbul-lib-coverage"."^1.0.0-alpha" =
-    self.by-version."istanbul-lib-coverage"."1.0.0-alpha.4";
-  by-version."istanbul-lib-coverage"."1.0.0-alpha.4" = self.buildNodePackage {
-    name = "istanbul-lib-coverage-1.0.0-alpha.4";
-    version = "1.0.0-alpha.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.0-alpha.4.tgz";
-      name = "istanbul-lib-coverage-1.0.0-alpha.4.tgz";
-      sha1 = "626f7fd9cf809b6e3bf7ed42a809f8e0b64ae976";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."istanbul-lib-hook"."^1.0.0-alpha" =
-    self.by-version."istanbul-lib-hook"."1.0.0-alpha.4";
-  by-version."istanbul-lib-hook"."1.0.0-alpha.4" = self.buildNodePackage {
-    name = "istanbul-lib-hook-1.0.0-alpha.4";
-    version = "1.0.0-alpha.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0-alpha.4.tgz";
-      name = "istanbul-lib-hook-1.0.0-alpha.4.tgz";
-      sha1 = "8c5bb9f6fbd8526e0ae6cf639af28266906b938f";
-    };
-    deps = {
-      "append-transform-0.3.0" = self.by-version."append-transform"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."istanbul-lib-instrument"."^1.0.0-alpha" =
-    self.by-version."istanbul-lib-instrument"."1.0.0-alpha.6";
-  by-version."istanbul-lib-instrument"."1.0.0-alpha.6" = self.buildNodePackage {
-    name = "istanbul-lib-instrument-1.0.0-alpha.6";
-    version = "1.0.0-alpha.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.0.0-alpha.6.tgz";
-      name = "istanbul-lib-instrument-1.0.0-alpha.6.tgz";
-      sha1 = "5529ca5534d6a98fe038c3c3de7a97ed130df385";
-    };
-    deps = {
-      "escodegen-1.8.0" = self.by-version."escodegen"."1.8.0";
-      "esprima-2.7.2" = self.by-version."esprima"."2.7.2";
-      "istanbul-lib-coverage-1.0.0-alpha.4" = self.by-version."istanbul-lib-coverage"."1.0.0-alpha.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."istanbul-lib-report"."^1.0.0-alpha" =
-    self.by-version."istanbul-lib-report"."1.0.0-alpha.3";
-  by-version."istanbul-lib-report"."1.0.0-alpha.3" = self.buildNodePackage {
-    name = "istanbul-lib-report-1.0.0-alpha.3";
-    version = "1.0.0-alpha.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.0.0-alpha.3.tgz";
-      name = "istanbul-lib-report-1.0.0-alpha.3.tgz";
-      sha1 = "32d5f6ec7f33ca3a602209e278b2e6ff143498af";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "istanbul-lib-coverage-1.0.0-alpha.4" = self.by-version."istanbul-lib-coverage"."1.0.0-alpha.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "path-parse-1.0.5" = self.by-version."path-parse"."1.0.5";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "supports-color-3.1.2" = self.by-version."supports-color"."3.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."istanbul-reports"."^1.0.0-alpha" =
-    self.by-version."istanbul-reports"."1.0.0-alpha.4";
-  by-version."istanbul-reports"."1.0.0-alpha.4" = self.buildNodePackage {
-    name = "istanbul-reports-1.0.0-alpha.4";
-    version = "1.0.0-alpha.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.0.0-alpha.4.tgz";
-      name = "istanbul-reports-1.0.0-alpha.4.tgz";
-      sha1 = "5086d417b4bb97bf6870f3fb5cb55b7e703361b8";
-    };
-    deps = {
-      "handlebars-4.0.5" = self.by-version."handlebars"."4.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jade"."*" =
-    self.by-version."jade"."1.11.0";
-  by-version."jade"."1.11.0" = self.buildNodePackage {
-    name = "jade-1.11.0";
-    version = "1.11.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz";
-      name = "jade-1.11.0.tgz";
-      sha1 = "9c80e538c12d3fb95c8d9bb9559fa0cc040405fd";
-    };
-    deps = {
-      "character-parser-1.2.1" = self.by-version."character-parser"."1.2.1";
-      "clean-css-3.4.17" = self.by-version."clean-css"."3.4.17";
-      "commander-2.6.0" = self.by-version."commander"."2.6.0";
-      "constantinople-3.0.2" = self.by-version."constantinople"."3.0.2";
-      "jstransformer-0.0.2" = self.by-version."jstransformer"."0.0.2";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "transformers-2.1.0" = self.by-version."transformers"."2.1.0";
-      "uglify-js-2.6.2" = self.by-version."uglify-js"."2.6.2";
-      "void-elements-2.0.1" = self.by-version."void-elements"."2.0.1";
-      "with-4.0.3" = self.by-version."with"."4.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "jade" = self.by-version."jade"."1.11.0";
-  by-spec."jade"."0.26.3" =
-    self.by-version."jade"."0.26.3";
-  by-version."jade"."0.26.3" = self.buildNodePackage {
-    name = "jade-0.26.3";
-    version = "0.26.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz";
-      name = "jade-0.26.3.tgz";
-      sha1 = "8f10d7977d8d79f2f6ff862a81b0513ccb25686c";
-    };
-    deps = {
-      "commander-0.6.1" = self.by-version."commander"."0.6.1";
-      "mkdirp-0.3.0" = self.by-version."mkdirp"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jade"."0.27.0" =
-    self.by-version."jade"."0.27.0";
-  by-version."jade"."0.27.0" = self.buildNodePackage {
-    name = "jade-0.27.0";
-    version = "0.27.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jade/-/jade-0.27.0.tgz";
-      name = "jade-0.27.0.tgz";
-      sha1 = "dc5ebed10d04a5e0eaf49ef0009bec473d1a6b31";
-    };
-    deps = {
-      "commander-0.6.1" = self.by-version."commander"."0.6.1";
-      "mkdirp-0.3.0" = self.by-version."mkdirp"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jade".">= 0.0.1" =
-    self.by-version."jade"."1.11.0";
-  by-spec."jade"."^1.11.0" =
-    self.by-version."jade"."1.11.0";
-  by-spec."jayschema"."*" =
-    self.by-version."jayschema"."0.3.1";
-  by-version."jayschema"."0.3.1" = self.buildNodePackage {
-    name = "jayschema-0.3.1";
-    version = "0.3.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jayschema/-/jayschema-0.3.1.tgz";
-      name = "jayschema-0.3.1.tgz";
-      sha1 = "76f4769f9b172ef7d5dcde4875b49cb736179b58";
-    };
-    deps = {
-      "when-3.4.6" = self.by-version."when"."3.4.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "jayschema" = self.by-version."jayschema"."0.3.1";
-  by-spec."jfs"."*" =
-    self.by-version."jfs"."0.2.6";
-  by-version."jfs"."0.2.6" = self.buildNodePackage {
-    name = "jfs-0.2.6";
-    version = "0.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jfs/-/jfs-0.2.6.tgz";
-      name = "jfs-0.2.6.tgz";
-      sha1 = "851b728ee5cff449855cf9ad554f4a5e14ab6912";
-    };
-    deps = {
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "async-1.2.1" = self.by-version."async"."1.2.1";
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "jfs" = self.by-version."jfs"."0.2.6";
-  by-spec."jju"."1.x" =
-    self.by-version."jju"."1.3.0";
-  by-version."jju"."1.3.0" = self.buildNodePackage {
-    name = "jju-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz";
-      name = "jju-1.3.0.tgz";
-      sha1 = "dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jju"."^1.1.0" =
-    self.by-version."jju"."1.3.0";
-  by-spec."jmespath"."0.15.0" =
-    self.by-version."jmespath"."0.15.0";
-  by-version."jmespath"."0.15.0" = self.buildNodePackage {
-    name = "jmespath-0.15.0";
-    version = "0.15.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz";
-      name = "jmespath-0.15.0.tgz";
-      sha1 = "a3f222a9aae9f966f5d27c796510e28091764217";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  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 = "https://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."jodid25519"."^1.0.0" =
-    self.by-version."jodid25519"."1.0.2";
-  by-spec."joi"."^6.4.3" =
-    self.by-version."joi"."6.10.1";
-  by-version."joi"."6.10.1" = self.buildNodePackage {
-    name = "joi-6.10.1";
-    version = "6.10.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz";
-      name = "joi-6.10.1.tgz";
-      sha1 = "4d50c318079122000fe5f16af1ff8e1917b77e06";
-    };
-    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.13.0" = self.by-version."moment"."2.13.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."joi"."~6.10.1" =
-    self.by-version."joi"."6.10.1";
-  by-spec."js-tokens"."^1.0.1" =
-    self.by-version."js-tokens"."1.0.3";
-  by-version."js-tokens"."1.0.3" = self.buildNodePackage {
-    name = "js-tokens-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz";
-      name = "js-tokens-1.0.3.tgz";
-      sha1 = "14e56eb68c8f1a92c43d59f5014ec29dc20f2ae1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."js-yaml"."*" =
-    self.by-version."js-yaml"."3.6.1";
-  by-version."js-yaml"."3.6.1" = self.buildNodePackage {
-    name = "js-yaml-3.6.1";
-    version = "3.6.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz";
-      name = "js-yaml-3.6.1.tgz";
-      sha1 = "6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30";
-    };
-    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 = [ ];
-  };
-  "js-yaml" = self.by-version."js-yaml"."3.6.1";
-  by-spec."js-yaml"."0.3.x" =
-    self.by-version."js-yaml"."0.3.7";
-  by-version."js-yaml"."0.3.7" = self.buildNodePackage {
-    name = "js-yaml-0.3.7";
-    version = "0.3.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-0.3.7.tgz";
-      name = "js-yaml-0.3.7.tgz";
-      sha1 = "d739d8ee86461e54b354d6a7d7d1f2ad9a167f62";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."js-yaml"."2.1.0" =
-    self.by-version."js-yaml"."2.1.0";
-  by-version."js-yaml"."2.1.0" = self.buildNodePackage {
-    name = "js-yaml-2.1.0";
-    version = "2.1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-2.1.0.tgz";
-      name = "js-yaml-2.1.0.tgz";
-      sha1 = "a55a6e4706b01d06326259a6f4bfc42e6ae38b1f";
-    };
-    deps = {
-      "argparse-0.1.16" = self.by-version."argparse"."0.1.16";
-      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."js-yaml"."3.0.1" =
-    self.by-version."js-yaml"."3.0.1";
-  by-version."js-yaml"."3.0.1" = self.buildNodePackage {
-    name = "js-yaml-3.0.1";
-    version = "3.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.0.1.tgz";
-      name = "js-yaml-3.0.1.tgz";
-      sha1 = "76405fea5bce30fc8f405d48c6dca7f0a32c6afe";
-    };
-    deps = {
-      "argparse-0.1.16" = self.by-version."argparse"."0.1.16";
-      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."js-yaml"."3.x" =
-    self.by-version."js-yaml"."3.6.1";
-  by-spec."js-yaml"."3.x >=3.2" =
-    self.by-version."js-yaml"."3.6.1";
-  by-spec."js-yaml".">=3.0.1 <4.0.0-0" =
-    self.by-version."js-yaml"."3.6.1";
-  by-spec."js-yaml"."^3.5.1" =
-    self.by-version."js-yaml"."3.6.1";
-  by-spec."js-yaml"."~2.0.5" =
-    self.by-version."js-yaml"."2.0.5";
-  by-version."js-yaml"."2.0.5" = self.buildNodePackage {
-    name = "js-yaml-2.0.5";
-    version = "2.0.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz";
-      name = "js-yaml-2.0.5.tgz";
-      sha1 = "a25ae6509999e97df278c6719da11bd0687743a8";
-    };
-    deps = {
-      "argparse-0.1.16" = self.by-version."argparse"."0.1.16";
-      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."js-yaml"."~3.5.2" =
-    self.by-version."js-yaml"."3.5.5";
-  by-version."js-yaml"."3.5.5" = self.buildNodePackage {
-    name = "js-yaml-3.5.5";
-    version = "3.5.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://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."js-yaml"."~3.6.0" =
-    self.by-version."js-yaml"."3.6.1";
-  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 = "https://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."jsdom"."3.1.2" =
-    self.by-version."jsdom"."3.1.2";
-  by-version."jsdom"."3.1.2" = self.buildNodePackage {
-    name = "jsdom-3.1.2";
-    version = "3.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsdom/-/jsdom-3.1.2.tgz";
-      name = "jsdom-3.1.2.tgz";
-      sha1 = "88e5fe2d3b45b628a153011e2aa0ead7f395b19c";
-    };
-    deps = {
-      "browser-request-0.3.3" = self.by-version."browser-request"."0.3.3";
-      "contextify-0.1.15" = self.by-version."contextify"."0.1.15";
-      "cssom-0.3.1" = self.by-version."cssom"."0.3.1";
-      "cssstyle-0.2.36" = self.by-version."cssstyle"."0.2.36";
-      "htmlparser2-3.9.0" = self.by-version."htmlparser2"."3.9.0";
-      "nwmatcher-1.3.7" = self.by-version."nwmatcher"."1.3.7";
-      "parse5-1.5.1" = self.by-version."parse5"."1.5.1";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "xml-name-validator-1.0.0" = self.by-version."xml-name-validator"."1.0.0";
-      "xmlhttprequest-1.8.0" = self.by-version."xmlhttprequest"."1.8.0";
-      "acorn-globals-1.0.9" = self.by-version."acorn-globals"."1.0.9";
-      "acorn-0.11.0" = self.by-version."acorn"."0.11.0";
-      "escodegen-1.8.0" = self.by-version."escodegen"."1.8.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsdom"."^0.11.0" =
-    self.by-version."jsdom"."0.11.1";
-  by-version."jsdom"."0.11.1" = self.buildNodePackage {
-    name = "jsdom-0.11.1";
-    version = "0.11.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsdom/-/jsdom-0.11.1.tgz";
-      name = "jsdom-0.11.1.tgz";
-      sha1 = "f1a79756ebc2116932caef8c6bfde7022dacdbfb";
-    };
-    deps = {
-      "htmlparser2-3.9.0" = self.by-version."htmlparser2"."3.9.0";
-      "nwmatcher-1.3.7" = self.by-version."nwmatcher"."1.3.7";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "xmlhttprequest-1.8.0" = self.by-version."xmlhttprequest"."1.8.0";
-      "cssom-0.3.1" = self.by-version."cssom"."0.3.1";
-      "cssstyle-0.2.36" = self.by-version."cssstyle"."0.2.36";
-      "contextify-0.1.15" = self.by-version."contextify"."0.1.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsdom"."~0.8.6" =
-    self.by-version."jsdom"."0.8.11";
-  by-version."jsdom"."0.8.11" = self.buildNodePackage {
-    name = "jsdom-0.8.11";
-    version = "0.8.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsdom/-/jsdom-0.8.11.tgz";
-      name = "jsdom-0.8.11.tgz";
-      sha1 = "2a065f72863ac491137d19bd762ce9be1955527b";
-    };
-    deps = {
-      "htmlparser2-3.9.0" = self.by-version."htmlparser2"."3.9.0";
-      "nwmatcher-1.3.7" = self.by-version."nwmatcher"."1.3.7";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "xmlhttprequest-1.8.0" = self.by-version."xmlhttprequest"."1.8.0";
-      "cssom-0.3.1" = self.by-version."cssom"."0.3.1";
-      "cssstyle-0.2.36" = self.by-version."cssstyle"."0.2.36";
-      "contextify-0.1.15" = self.by-version."contextify"."0.1.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsesc"."0.4.3" =
-    self.by-version."jsesc"."0.4.3";
-  by-version."jsesc"."0.4.3" = self.buildNodePackage {
-    name = "jsesc-0.4.3";
-    version = "0.4.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsesc/-/jsesc-0.4.3.tgz";
-      name = "jsesc-0.4.3.tgz";
-      sha1 = "a9c7f90afd5a1bf2ee64df6c416dab61672d2ae9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsesc"."~0.4.3" =
-    self.by-version."jsesc"."0.4.3";
-  by-spec."jshint"."*" =
-    self.by-version."jshint"."2.9.2";
-  by-version."jshint"."2.9.2" = self.buildNodePackage {
-    name = "jshint-2.9.2";
-    version = "2.9.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jshint/-/jshint-2.9.2.tgz";
-      name = "jshint-2.9.2.tgz";
-      sha1 = "0b12d75f8eafb0823b7bf8efbb265b3262401619";
-    };
-    deps = {
-      "cli-0.6.6" = self.by-version."cli"."0.6.6";
-      "console-browserify-1.1.0" = self.by-version."console-browserify"."1.1.0";
-      "exit-0.1.2" = self.by-version."exit"."0.1.2";
-      "htmlparser2-3.8.3" = self.by-version."htmlparser2"."3.8.3";
-      "minimatch-2.0.10" = self.by-version."minimatch"."2.0.10";
-      "shelljs-0.3.0" = self.by-version."shelljs"."0.3.0";
-      "strip-json-comments-1.0.4" = self.by-version."strip-json-comments"."1.0.4";
-      "lodash-3.7.0" = self.by-version."lodash"."3.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "jshint" = self.by-version."jshint"."2.9.2";
-  by-spec."jshint"."~2.9.1" =
-    self.by-version."jshint"."2.9.2";
-  by-spec."json"."*" =
-    self.by-version."json"."9.0.4";
-  by-version."json"."9.0.4" = self.buildNodePackage {
-    name = "json-9.0.4";
-    version = "9.0.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json/-/json-9.0.4.tgz";
-      name = "json-9.0.4.tgz";
-      sha1 = "d0dbf2404c128572a935ecafadfc782ec81112ce";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "json" = self.by-version."json"."9.0.4";
-  by-spec."json-middleware"."^1.0.2" =
-    self.by-version."json-middleware"."1.0.2";
-  by-version."json-middleware"."1.0.2" = self.buildNodePackage {
-    name = "json-middleware-1.0.2";
-    version = "1.0.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json-middleware/-/json-middleware-1.0.2.tgz";
-      name = "json-middleware-1.0.2.tgz";
-      sha1 = "bc55c6d43231df6846df6ba880f72454e2a32596";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json-parse-helpfulerror"."^1.0.2" =
-    self.by-version."json-parse-helpfulerror"."1.0.3";
-  by-version."json-parse-helpfulerror"."1.0.3" = self.buildNodePackage {
-    name = "json-parse-helpfulerror-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz";
-      name = "json-parse-helpfulerror-1.0.3.tgz";
-      sha1 = "13f14ce02eed4e981297b64eb9e3b932e2dd13dc";
-    };
-    deps = {
-      "jju-1.3.0" = self.by-version."jju"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json-parse-helpfulerror"."^1.0.3" =
-    self.by-version."json-parse-helpfulerror"."1.0.3";
-  by-spec."json-schema"."0.2.2" =
-    self.by-version."json-schema"."0.2.2";
-  by-version."json-schema"."0.2.2" = self.buildNodePackage {
-    name = "json-schema-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz";
-      name = "json-schema-0.2.2.tgz";
-      sha1 = "50354f19f603917c695f70b85afa77c3b0f23506";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json-stable-stringify"."^1.0.0" =
-    self.by-version."json-stable-stringify"."1.0.1";
-  by-version."json-stable-stringify"."1.0.1" = self.buildNodePackage {
-    name = "json-stable-stringify-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
-      name = "json-stable-stringify-1.0.1.tgz";
-      sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
-    };
-    deps = {
-      "jsonify-0.0.0" = self.by-version."jsonify"."0.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json-stable-stringify"."~0.0.0" =
-    self.by-version."json-stable-stringify"."0.0.1";
-  by-version."json-stable-stringify"."0.0.1" = self.buildNodePackage {
-    name = "json-stable-stringify-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz";
-      name = "json-stable-stringify-0.0.1.tgz";
-      sha1 = "611c23e814db375527df851193db59dd2af27f45";
-    };
-    deps = {
-      "jsonify-0.0.0" = self.by-version."jsonify"."0.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json-stringify-safe"."~3.0.0" =
-    self.by-version."json-stringify-safe"."3.0.0";
-  by-version."json-stringify-safe"."3.0.0" = self.buildNodePackage {
-    name = "json-stringify-safe-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz";
-      name = "json-stringify-safe-3.0.0.tgz";
-      sha1 = "9db7b0e530c7f289c5e8c8432af191c2ff75a5b3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json-stringify-safe"."~5.0.0" =
-    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 = "https://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."json-stringify-safe"."~5.0.1" =
-    self.by-version."json-stringify-safe"."5.0.1";
-  by-spec."json3"."3.2.6" =
-    self.by-version."json3"."3.2.6";
-  by-version."json3"."3.2.6" = self.buildNodePackage {
-    name = "json3-3.2.6";
-    version = "3.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz";
-      name = "json3-3.2.6.tgz";
-      sha1 = "f6efc93c06a04de9aec53053df2559bb19e2038b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json3"."3.3.2" =
-    self.by-version."json3"."3.3.2";
-  by-version."json3"."3.3.2" = self.buildNodePackage {
-    name = "json3-3.3.2";
-    version = "3.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz";
-      name = "json3-3.3.2.tgz";
-      sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json3"."^3.3.2" =
-    self.by-version."json3"."3.3.2";
-  by-spec."json5"."^0.2.0" =
-    self.by-version."json5"."0.2.0";
-  by-version."json5"."0.2.0" = self.buildNodePackage {
-    name = "json5-0.2.0";
-    version = "0.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json5/-/json5-0.2.0.tgz";
-      name = "json5-0.2.0.tgz";
-      sha1 = "b6d7035c70c4570f883c7edc759de3ae03db3343";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."json5"."^0.5.0" =
-    self.by-version."json5"."0.5.0";
-  by-version."json5"."0.5.0" = self.buildNodePackage {
-    name = "json5-0.5.0";
-    version = "0.5.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/json5/-/json5-0.5.0.tgz";
-      name = "json5-0.5.0.tgz";
-      sha1 = "9b20715b026cbe3778fd769edccd822d8332a5b2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsonfile"."^2.1.0" =
-    self.by-version."jsonfile"."2.3.1";
-  by-version."jsonfile"."2.3.1" = self.buildNodePackage {
-    name = "jsonfile-2.3.1";
-    version = "2.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsonfile/-/jsonfile-2.3.1.tgz";
-      name = "jsonfile-2.3.1.tgz";
-      sha1 = "28bcb29c596b5b7aafd34e662a329ba62cd842fc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsonfile"."~1.0.1" =
-    self.by-version."jsonfile"."1.0.1";
-  by-version."jsonfile"."1.0.1" = self.buildNodePackage {
-    name = "jsonfile-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsonfile/-/jsonfile-1.0.1.tgz";
-      name = "jsonfile-1.0.1.tgz";
-      sha1 = "ea5efe40b83690b98667614a7392fc60e842c0dd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsonfile"."~1.1.0" =
-    self.by-version."jsonfile"."1.1.1";
-  by-version."jsonfile"."1.1.1" = self.buildNodePackage {
-    name = "jsonfile-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsonfile/-/jsonfile-1.1.1.tgz";
-      name = "jsonfile-1.1.1.tgz";
-      sha1 = "da4fd6ad77f1a255203ea63c7bc32dc31ef64433";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsonify"."~0.0.0" =
-    self.by-version."jsonify"."0.0.0";
-  by-version."jsonify"."0.0.0" = self.buildNodePackage {
-    name = "jsonify-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
-      name = "jsonify-0.0.0.tgz";
-      sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsonparse"."0.0.5" =
-    self.by-version."jsonparse"."0.0.5";
-  by-version."jsonparse"."0.0.5" = self.buildNodePackage {
-    name = "jsonparse-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz";
-      name = "jsonparse-0.0.5.tgz";
-      sha1 = "330542ad3f0a654665b778f3eb2d9a9fa507ac64";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsonparse"."^1.1.0" =
-    self.by-version."jsonparse"."1.2.0";
-  by-version."jsonparse"."1.2.0" = self.buildNodePackage {
-    name = "jsonparse-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsonparse/-/jsonparse-1.2.0.tgz";
-      name = "jsonparse-1.2.0.tgz";
-      sha1 = "5c0c5685107160e72fe7489bddea0b44c2bc67bd";
-    };
-    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 = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz";
-      name = "jsonpointer-2.0.0.tgz";
-      sha1 = "3af1dd20fe85463910d469a385e33017d2a030d9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsontool"."*" =
-    self.by-version."jsontool"."7.0.2";
-  by-version."jsontool"."7.0.2" = self.buildNodePackage {
-    name = "jsontool-7.0.2";
-    version = "7.0.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsontool/-/jsontool-7.0.2.tgz";
-      name = "jsontool-7.0.2.tgz";
-      sha1 = "e29d3d1b0766ba4e179a18a96578b904dca43207";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "jsontool" = self.by-version."jsontool"."7.0.2";
-  by-spec."jsonwebtoken"."5.4.x" =
-    self.by-version."jsonwebtoken"."5.4.1";
-  by-version."jsonwebtoken"."5.4.1" = self.buildNodePackage {
-    name = "jsonwebtoken-5.4.1";
-    version = "5.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-5.4.1.tgz";
-      name = "jsonwebtoken-5.4.1.tgz";
-      sha1 = "2055c639195ffe56314fa6a51df02468186a9695";
-    };
-    deps = {
-      "jws-3.1.3" = self.by-version."jws"."3.1.3";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsonwebtoken".">=1.0.0" =
-    self.by-version."jsonwebtoken"."7.0.0";
-  by-version."jsonwebtoken"."7.0.0" = self.buildNodePackage {
-    name = "jsonwebtoken-7.0.0";
-    version = "7.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.0.0.tgz";
-      name = "jsonwebtoken-7.0.0.tgz";
-      sha1 = "0e1eb109cffe631db7dc0ec8c3face3b57f8f5c3";
-    };
-    deps = {
-      "joi-6.10.1" = self.by-version."joi"."6.10.1";
-      "jws-3.1.3" = self.by-version."jws"."3.1.3";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jsprim"."0.3.0" =
-    self.by-version."jsprim"."0.3.0";
-  by-version."jsprim"."0.3.0" = self.buildNodePackage {
-    name = "jsprim-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jsprim/-/jsprim-0.3.0.tgz";
-      name = "jsprim-0.3.0.tgz";
-      sha1 = "cd13466ea2480dbd8396a570d47d31dda476f8b1";
-    };
-    deps = {
-      "extsprintf-1.0.0" = self.by-version."extsprintf"."1.0.0";
-      "json-schema-0.2.2" = self.by-version."json-schema"."0.2.2";
-      "verror-1.3.3" = self.by-version."verror"."1.3.3";
-    };
-    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 = "https://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."jstransform"."^11.0.0" =
-    self.by-version."jstransform"."11.0.3";
-  by-version."jstransform"."11.0.3" = self.buildNodePackage {
-    name = "jstransform-11.0.3";
-    version = "11.0.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz";
-      name = "jstransform-11.0.3.tgz";
-      sha1 = "09a78993e0ae4d4ef4487f6155a91f6190cb4223";
-    };
-    deps = {
-      "base62-1.1.1" = self.by-version."base62"."1.1.1";
-      "commoner-0.10.4" = self.by-version."commoner"."0.10.4";
-      "esprima-fb-15001.1.0-dev-harmony-fb" = self.by-version."esprima-fb"."15001.1.0-dev-harmony-fb";
-      "object-assign-2.1.1" = self.by-version."object-assign"."2.1.1";
-      "source-map-0.4.4" = self.by-version."source-map"."0.4.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jstransformer"."0.0.2" =
-    self.by-version."jstransformer"."0.0.2";
-  by-version."jstransformer"."0.0.2" = self.buildNodePackage {
-    name = "jstransformer-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz";
-      name = "jstransformer-0.0.2.tgz";
-      sha1 = "7aae29a903d196cfa0973d885d3e47947ecd76ab";
-    };
-    deps = {
-      "is-promise-2.1.0" = self.by-version."is-promise"."2.1.0";
-      "promise-6.1.0" = self.by-version."promise"."6.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jwa"."^1.1.2" =
-    self.by-version."jwa"."1.1.3";
-  by-version."jwa"."1.1.3" = self.buildNodePackage {
-    name = "jwa-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jwa/-/jwa-1.1.3.tgz";
-      name = "jwa-1.1.3.tgz";
-      sha1 = "fa9f2f005ff0c630e7c41526a31f37f79733cd6d";
-    };
-    deps = {
-      "base64url-1.0.6" = self.by-version."base64url"."1.0.6";
-      "buffer-equal-constant-time-1.0.1" = self.by-version."buffer-equal-constant-time"."1.0.1";
-      "ecdsa-sig-formatter-1.0.5" = self.by-version."ecdsa-sig-formatter"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jwa"."~1.0.0" =
-    self.by-version."jwa"."1.0.2";
-  by-version."jwa"."1.0.2" = self.buildNodePackage {
-    name = "jwa-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jwa/-/jwa-1.0.2.tgz";
-      name = "jwa-1.0.2.tgz";
-      sha1 = "fd79609f1e772e299dce8ddb76d00659dd83511f";
-    };
-    deps = {
-      "base64url-0.0.6" = self.by-version."base64url"."0.0.6";
-      "buffer-equal-constant-time-1.0.1" = self.by-version."buffer-equal-constant-time"."1.0.1";
-      "ecdsa-sig-formatter-1.0.5" = self.by-version."ecdsa-sig-formatter"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jws"."^3.0.0" =
-    self.by-version."jws"."3.1.3";
-  by-version."jws"."3.1.3" = self.buildNodePackage {
-    name = "jws-3.1.3";
-    version = "3.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jws/-/jws-3.1.3.tgz";
-      name = "jws-3.1.3.tgz";
-      sha1 = "b88f1b4581a2c5ee8813c06b3fdf90ea9b5c7e6c";
-    };
-    deps = {
-      "base64url-1.0.6" = self.by-version."base64url"."1.0.6";
-      "jwa-1.1.3" = self.by-version."jwa"."1.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jws"."~3.0.0" =
-    self.by-version."jws"."3.0.0";
-  by-version."jws"."3.0.0" = self.buildNodePackage {
-    name = "jws-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jws/-/jws-3.0.0.tgz";
-      name = "jws-3.0.0.tgz";
-      sha1 = "da5f267897dd4e9cf8137979db33fc54a3c05418";
-    };
-    deps = {
-      "jwa-1.0.2" = self.by-version."jwa"."1.0.2";
-      "base64url-1.0.6" = self.by-version."base64url"."1.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."jwt-simple"."0.1.x" =
-    self.by-version."jwt-simple"."0.1.0";
-  by-version."jwt-simple"."0.1.0" = self.buildNodePackage {
-    name = "jwt-simple-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/jwt-simple/-/jwt-simple-0.1.0.tgz";
-      name = "jwt-simple-0.1.0.tgz";
-      sha1 = "546b34aab02e3cd49c43a4279498b34d940041e3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."k-bucket"."^0.5.0" =
-    self.by-version."k-bucket"."0.5.0";
-  by-version."k-bucket"."0.5.0" = self.buildNodePackage {
-    name = "k-bucket-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/k-bucket/-/k-bucket-0.5.0.tgz";
-      name = "k-bucket-0.5.0.tgz";
-      sha1 = "31d462d86cdb2e8d245528acfe5e71382f552e1d";
-    };
-    deps = {
-      "buffer-equal-0.0.1" = self.by-version."buffer-equal"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."k-bucket"."^0.6.0" =
-    self.by-version."k-bucket"."0.6.0";
-  by-version."k-bucket"."0.6.0" = self.buildNodePackage {
-    name = "k-bucket-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/k-bucket/-/k-bucket-0.6.0.tgz";
-      name = "k-bucket-0.6.0.tgz";
-      sha1 = "afc532545f69d466293e887b00d5fc73377c3abb";
-    };
-    deps = {
-      "buffer-equal-0.0.1" = self.by-version."buffer-equal"."0.0.1";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."k-bucket"."^2.0.0" =
-    self.by-version."k-bucket"."2.0.1";
-  by-version."k-bucket"."2.0.1" = self.buildNodePackage {
-    name = "k-bucket-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/k-bucket/-/k-bucket-2.0.1.tgz";
-      name = "k-bucket-2.0.1.tgz";
-      sha1 = "58cccb244f563326ba893bf5c06a35f644846daa";
-    };
-    deps = {
-      "buffer-equal-0.0.1" = self.by-version."buffer-equal"."0.0.1";
-      "randombytes-2.0.3" = self.by-version."randombytes"."2.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."k-rpc"."^3.6.0" =
-    self.by-version."k-rpc"."3.7.0";
-  by-version."k-rpc"."3.7.0" = self.buildNodePackage {
-    name = "k-rpc-3.7.0";
-    version = "3.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/k-rpc/-/k-rpc-3.7.0.tgz";
-      name = "k-rpc-3.7.0.tgz";
-      sha1 = "641f99b2825be34b6e7984f22b7962dc1a906c23";
-    };
-    deps = {
-      "buffer-equals-1.0.3" = self.by-version."buffer-equals"."1.0.3";
-      "k-bucket-2.0.1" = self.by-version."k-bucket"."2.0.1";
-      "k-rpc-socket-1.5.2" = self.by-version."k-rpc-socket"."1.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."k-rpc-socket"."^1.5.0" =
-    self.by-version."k-rpc-socket"."1.5.2";
-  by-version."k-rpc-socket"."1.5.2" = self.buildNodePackage {
-    name = "k-rpc-socket-1.5.2";
-    version = "1.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.5.2.tgz";
-      name = "k-rpc-socket-1.5.2.tgz";
-      sha1 = "16fe671041f270241fbaf3b007debb7312a95d40";
-    };
-    deps = {
-      "bencode-0.10.0" = self.by-version."bencode"."0.10.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."kareem"."1.0.1" =
-    self.by-version."kareem"."1.0.1";
-  by-version."kareem"."1.0.1" = self.buildNodePackage {
-    name = "kareem-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/kareem/-/kareem-1.0.1.tgz";
-      name = "kareem-1.0.1.tgz";
-      sha1 = "7805d215bb53214ec3af969a1d0b1f17e3e7b95c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."karma"."*" =
-    self.by-version."karma"."0.13.22";
-  by-version."karma"."0.13.22" = self.buildNodePackage {
-    name = "karma-0.13.22";
-    version = "0.13.22";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-0.13.22.tgz";
-      name = "karma-0.13.22.tgz";
-      sha1 = "07750b1bd063d7e7e7b91bcd2e6354d8f2aa8744";
-    };
-    deps = {
-      "batch-0.5.3" = self.by-version."batch"."0.5.3";
-      "bluebird-2.10.2" = self.by-version."bluebird"."2.10.2";
-      "body-parser-1.15.1" = self.by-version."body-parser"."1.15.1";
-      "chokidar-1.5.2" = self.by-version."chokidar"."1.5.2";
-      "colors-1.1.2" = self.by-version."colors"."1.1.2";
-      "connect-3.4.1" = self.by-version."connect"."3.4.1";
-      "core-js-2.4.0" = self.by-version."core-js"."2.4.0";
-      "di-0.0.1" = self.by-version."di"."0.0.1";
-      "dom-serialize-2.2.1" = self.by-version."dom-serialize"."2.2.1";
-      "expand-braces-0.1.2" = self.by-version."expand-braces"."0.1.2";
-      "glob-7.0.3" = self.by-version."glob"."7.0.3";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "http-proxy-1.13.3" = self.by-version."http-proxy"."1.13.3";
-      "isbinaryfile-3.0.0" = self.by-version."isbinaryfile"."3.0.0";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "log4js-0.6.36" = self.by-version."log4js"."0.6.36";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "socket.io-1.4.6" = self.by-version."socket.io"."1.4.6";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-      "useragent-2.1.9" = self.by-version."useragent"."2.1.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "karma" = self.by-version."karma"."0.13.22";
-  by-spec."karma".">=0.9" =
-    self.by-version."karma"."0.13.22";
-  by-spec."karma"."^0.13.0 || >= 0.14.0-rc.0" =
-    self.by-version."karma"."0.13.22";
-  by-spec."karma-chrome-launcher"."*" =
-    self.by-version."karma-chrome-launcher"."1.0.1";
-  by-version."karma-chrome-launcher"."1.0.1" = self.buildNodePackage {
-    name = "karma-chrome-launcher-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-1.0.1.tgz";
-      name = "karma-chrome-launcher-1.0.1.tgz";
-      sha1 = "be5ae7c4264f9a0a2e22e3d984beb325ad92c8cb";
-    };
-    deps = {
-      "fs-access-1.0.0" = self.by-version."fs-access"."1.0.0";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "karma-chrome-launcher" = self.by-version."karma-chrome-launcher"."1.0.1";
-  by-spec."karma-coverage"."*" =
-    self.by-version."karma-coverage"."1.0.0";
-  by-version."karma-coverage"."1.0.0" = self.buildNodePackage {
-    name = "karma-coverage-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.0.0.tgz";
-      name = "karma-coverage-1.0.0.tgz";
-      sha1 = "679a1152310f96ef91c32f5fe357d6c5b78f1f1d";
-    };
-    deps = {
-      "istanbul-0.4.3" = self.by-version."istanbul"."0.4.3";
-      "dateformat-1.0.12" = self.by-version."dateformat"."1.0.12";
-      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "karma-coverage" = self.by-version."karma-coverage"."1.0.0";
-  by-spec."karma-junit-reporter"."*" =
-    self.by-version."karma-junit-reporter"."2.0.0";
-  by-version."karma-junit-reporter"."2.0.0" = self.buildNodePackage {
-    name = "karma-junit-reporter-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.0.tgz";
-      name = "karma-junit-reporter-2.0.0.tgz";
-      sha1 = "f84629e0e1ef28dd2977c96f346c33d5bf93e159";
-    };
-    deps = {
-      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
-      "xmlbuilder-3.1.0" = self.by-version."xmlbuilder"."3.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."karma"."0.13.22"];
-    os = [ ];
-    cpu = [ ];
-  };
-  "karma-junit-reporter" = self.by-version."karma-junit-reporter"."2.0.0";
-  by-spec."karma-mocha"."*" =
-    self.by-version."karma-mocha"."1.0.1";
-  by-version."karma-mocha"."1.0.1" = self.buildNodePackage {
-    name = "karma-mocha-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.0.1.tgz";
-      name = "karma-mocha-1.0.1.tgz";
-      sha1 = "98519f19115cd1a3455d8a95e14049a878fd0670";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."mocha"."2.5.3"];
-    os = [ ];
-    cpu = [ ];
-  };
-  "karma-mocha" = self.by-version."karma-mocha"."1.0.1";
-  by-spec."karma-requirejs"."*" =
-    self.by-version."karma-requirejs"."1.0.0";
-  by-version."karma-requirejs"."1.0.0" = self.buildNodePackage {
-    name = "karma-requirejs-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.0.0.tgz";
-      name = "karma-requirejs-1.0.0.tgz";
-      sha1 = "183b9ac456a9e958564b75b458baedfdba78cd6d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."karma"."0.13.22"
-      self.by-version."requirejs"."2.2.0"];
-    os = [ ];
-    cpu = [ ];
-  };
-  "karma-requirejs" = self.by-version."karma-requirejs"."1.0.0";
-  by-spec."karma-sauce-launcher"."*" =
-    self.by-version."karma-sauce-launcher"."1.0.0";
-  by-version."karma-sauce-launcher"."1.0.0" = self.buildNodePackage {
-    name = "karma-sauce-launcher-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-1.0.0.tgz";
-      name = "karma-sauce-launcher-1.0.0.tgz";
-      sha1 = "569bf356f7c143a337bba5dcbf5787de0d9a640c";
-    };
-    deps = {
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-      "sauce-connect-launcher-0.13.0" = self.by-version."sauce-connect-launcher"."0.13.0";
-      "saucelabs-1.2.0" = self.by-version."saucelabs"."1.2.0";
-      "wd-0.3.12" = self.by-version."wd"."0.3.12";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "karma-sauce-launcher" = self.by-version."karma-sauce-launcher"."1.0.0";
-  by-spec."keen-js"."^3.2.4" =
-    self.by-version."keen-js"."3.4.1";
-  by-version."keen-js"."3.4.1" = self.buildNodePackage {
-    name = "keen-js-3.4.1";
-    version = "3.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/keen-js/-/keen-js-3.4.1.tgz";
-      name = "keen-js-3.4.1.tgz";
-      sha1 = "822a5b1e211d1f47caae576a42926efec0cad05b";
-    };
-    deps = {
-      "JSON2-0.1.0" = self.by-version."JSON2"."0.1.0";
-      "browserify-versionify-1.0.3" = self.by-version."browserify-versionify"."1.0.3";
-      "component-emitter-1.2.1" = self.by-version."component-emitter"."1.2.1";
-      "domready-0.3.0" = self.by-version."domready"."0.3.0";
-      "json3-3.3.2" = self.by-version."json3"."3.3.2";
-      "spin.js-2.3.2" = self.by-version."spin.js"."2.3.2";
-      "superagent-1.8.3" = self.by-version."superagent"."1.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."keen.io"."~0.1.3" =
-    self.by-version."keen.io"."0.1.3";
-  by-version."keen.io"."0.1.3" = self.buildNodePackage {
-    name = "keen.io-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/keen.io/-/keen.io-0.1.3.tgz";
-      name = "keen.io-0.1.3.tgz";
-      sha1 = "5056f5c989ab14ccf62fc20ed7598115ae7d09e3";
-    };
-    deps = {
-      "superagent-0.21.0" = self.by-version."superagent"."0.21.0";
-      "underscore-1.5.2" = self.by-version."underscore"."1.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."keep-alive-agent"."^0.0.1" =
-    self.by-version."keep-alive-agent"."0.0.1";
-  by-version."keep-alive-agent"."0.0.1" = self.buildNodePackage {
-    name = "keep-alive-agent-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/keep-alive-agent/-/keep-alive-agent-0.0.1.tgz";
-      name = "keep-alive-agent-0.0.1.tgz";
-      sha1 = "44847ca394ce8d6b521ae85816bd64509942b385";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."kerberos"."0.0.3" =
-    self.by-version."kerberos"."0.0.3";
-  by-version."kerberos"."0.0.3" = self.buildNodePackage {
-    name = "kerberos-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/kerberos/-/kerberos-0.0.3.tgz";
-      name = "kerberos-0.0.3.tgz";
-      sha1 = "4285d92a0748db2784062f5adcec9f5956cb818a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."kerberos"."~0.0" =
-    self.by-version."kerberos"."0.0.21";
-  by-version."kerberos"."0.0.21" = self.buildNodePackage {
-    name = "kerberos-0.0.21";
-    version = "0.0.21";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/kerberos/-/kerberos-0.0.21.tgz";
-      name = "kerberos-0.0.21.tgz";
-      sha1 = "414f7f947d45afff10406018f233bf471a1d1195";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."kew"."~0.1.7" =
-    self.by-version."kew"."0.1.7";
-  by-version."kew"."0.1.7" = self.buildNodePackage {
-    name = "kew-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/kew/-/kew-0.1.7.tgz";
-      name = "kew-0.1.7.tgz";
-      sha1 = "0a32a817ff1a9b3b12b8c9bacf4bc4d679af8e72";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."kew"."~0.7.0" =
-    self.by-version."kew"."0.7.0";
-  by-version."kew"."0.7.0" = self.buildNodePackage {
-    name = "kew-0.7.0";
-    version = "0.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz";
-      name = "kew-0.7.0.tgz";
-      sha1 = "79d93d2d33363d6fdd2970b335d9141ad591d79b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."keygrip"."0.2.x" =
-    self.by-version."keygrip"."0.2.4";
-  by-version."keygrip"."0.2.4" = self.buildNodePackage {
-    name = "keygrip-0.2.4";
-    version = "0.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/keygrip/-/keygrip-0.2.4.tgz";
-      name = "keygrip-0.2.4.tgz";
-      sha1 = "9dd1b2e485a1162c9d4e6f787de87fc50f87bc58";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."keygrip"."~1.0.0" =
-    self.by-version."keygrip"."1.0.1";
-  by-version."keygrip"."1.0.1" = self.buildNodePackage {
-    name = "keygrip-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/keygrip/-/keygrip-1.0.1.tgz";
-      name = "keygrip-1.0.1.tgz";
-      sha1 = "b02fa4816eef21a8c4b35ca9e52921ffc89a30e9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."keypress"."0.1.x" =
-    self.by-version."keypress"."0.1.0";
-  by-version."keypress"."0.1.0" = self.buildNodePackage {
-    name = "keypress-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz";
-      name = "keypress-0.1.0.tgz";
-      sha1 = "4a3188d4291b66b4f65edb99f806aa9ae293592a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."keypress"."^0.2.1" =
-    self.by-version."keypress"."0.2.1";
-  by-version."keypress"."0.2.1" = self.buildNodePackage {
-    name = "keypress-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz";
-      name = "keypress-0.2.1.tgz";
-      sha1 = "1e80454250018dbad4c3fe94497d6e67b6269c77";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."keypress"."~0.2.1" =
-    self.by-version."keypress"."0.2.1";
-  by-spec."kind-of"."^3.0.2" =
-    self.by-version."kind-of"."3.0.3";
-  by-version."kind-of"."3.0.3" = self.buildNodePackage {
-    name = "kind-of-3.0.3";
-    version = "3.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/kind-of/-/kind-of-3.0.3.tgz";
-      name = "kind-of-3.0.3.tgz";
-      sha1 = "c61608747d815b0362556db3276362a7a38aded3";
-    };
-    deps = {
-      "is-buffer-1.1.3" = self.by-version."is-buffer"."1.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."klaw"."^1.0.0" =
-    self.by-version."klaw"."1.3.0";
-  by-version."klaw"."1.3.0" = self.buildNodePackage {
-    name = "klaw-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/klaw/-/klaw-1.3.0.tgz";
-      name = "klaw-1.3.0.tgz";
-      sha1 = "8857bfbc1d824badf13d3d0241d8bbe46fb12f73";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."knockout"."~3.4.0" =
-    self.by-version."knockout"."3.4.0";
-  by-version."knockout"."3.4.0" = self.buildNodePackage {
-    name = "knockout-3.4.0";
-    version = "3.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/knockout/-/knockout-3.4.0.tgz";
-      name = "knockout-3.4.0.tgz";
-      sha1 = "59d7261815a11eb7c1a3f3c7077ca898a44caadb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."knox"."*" =
-    self.by-version."knox"."0.9.2";
-  by-version."knox"."0.9.2" = self.buildNodePackage {
-    name = "knox-0.9.2";
-    version = "0.9.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz";
-      name = "knox-0.9.2.tgz";
-      sha1 = "3736593669e24f024fdaf723b6a1dc4afd839a71";
-    };
-    deps = {
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "xml2js-0.4.16" = self.by-version."xml2js"."0.4.16";
-      "debug-1.0.4" = self.by-version."debug"."1.0.4";
-      "stream-counter-1.0.0" = self.by-version."stream-counter"."1.0.0";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "knox" = self.by-version."knox"."0.9.2";
-  by-spec."kue"."*" =
-    self.by-version."kue"."0.11.0";
-  by-version."kue"."0.11.0" = self.buildNodePackage {
-    name = "kue-0.11.0";
-    version = "0.11.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/kue/-/kue-0.11.0.tgz";
-      name = "kue-0.11.0.tgz";
-      sha1 = "54f2769b09a09ebeff0906db3896a92ed8a73332";
-    };
-    deps = {
-      "body-parser-1.15.1" = self.by-version."body-parser"."1.15.1";
-      "express-4.13.4" = self.by-version."express"."4.13.4";
-      "jade-1.11.0" = self.by-version."jade"."1.11.0";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "lodash-deep-1.6.0" = self.by-version."lodash-deep"."1.6.0";
-      "nib-1.1.0" = self.by-version."nib"."1.1.0";
-      "node-redis-warlock-0.1.4" = self.by-version."node-redis-warlock"."0.1.4";
-      "redis-2.4.2" = self.by-version."redis"."2.4.2";
-      "reds-0.2.5" = self.by-version."reds"."0.2.5";
-      "stylus-0.52.4" = self.by-version."stylus"."0.52.4";
-      "yargs-3.32.0" = self.by-version."yargs"."3.32.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "kue" = self.by-version."kue"."0.11.0";
-  by-spec."labeled-stream-splicer"."^1.0.0" =
-    self.by-version."labeled-stream-splicer"."1.0.2";
-  by-version."labeled-stream-splicer"."1.0.2" = self.buildNodePackage {
-    name = "labeled-stream-splicer-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-1.0.2.tgz";
-      name = "labeled-stream-splicer-1.0.2.tgz";
-      sha1 = "4615331537784981e8fd264e1f3a434c4e0ddd65";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "stream-splicer-1.3.2" = self.by-version."stream-splicer"."1.3.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."labeled-stream-splicer"."^2.0.0" =
-    self.by-version."labeled-stream-splicer"."2.0.0";
-  by-version."labeled-stream-splicer"."2.0.0" = self.buildNodePackage {
-    name = "labeled-stream-splicer-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz";
-      name = "labeled-stream-splicer-2.0.0.tgz";
-      sha1 = "a52e1d138024c00b86b1c0c91f677918b8ae0a59";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "stream-splicer-2.0.0" = self.by-version."stream-splicer"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."latest-version"."^1.0.0" =
-    self.by-version."latest-version"."1.0.1";
-  by-version."latest-version"."1.0.1" = self.buildNodePackage {
-    name = "latest-version-1.0.1";
-    version = "1.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://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"."~1.0.11" =
-    self.by-version."lazy"."1.0.11";
-  by-version."lazy"."1.0.11" = self.buildNodePackage {
-    name = "lazy-1.0.11";
-    version = "1.0.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz";
-      name = "lazy-1.0.11.tgz";
-      sha1 = "daa068206282542c088288e975c297c1ae77b690";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lazy-cache"."^1.0.3" =
-    self.by-version."lazy-cache"."1.0.4";
-  by-version."lazy-cache"."1.0.4" = self.buildNodePackage {
-    name = "lazy-cache-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
-      name = "lazy-cache-1.0.4.tgz";
-      sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lazystream"."^1.0.0" =
-    self.by-version."lazystream"."1.0.0";
-  by-version."lazystream"."1.0.0" = self.buildNodePackage {
-    name = "lazystream-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz";
-      name = "lazystream-1.0.0.tgz";
-      sha1 = "f6995fe0f820392f61396be89462407bb77168e4";
-    };
-    deps = {
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lazystream"."~0.1.0" =
-    self.by-version."lazystream"."0.1.0";
-  by-version."lazystream"."0.1.0" = self.buildNodePackage {
-    name = "lazystream-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lazystream/-/lazystream-0.1.0.tgz";
-      name = "lazystream-0.1.0.tgz";
-      sha1 = "1b25d63c772a4c20f0a5ed0a9d77f484b6e16920";
-    };
-    deps = {
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lcid"."^1.0.0" =
-    self.by-version."lcid"."1.0.0";
-  by-version."lcid"."1.0.0" = self.buildNodePackage {
-    name = "lcid-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz";
-      name = "lcid-1.0.0.tgz";
-      sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
-    };
-    deps = {
-      "invert-kv-1.0.0" = self.by-version."invert-kv"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lcov-parse"."0.0.6" =
-    self.by-version."lcov-parse"."0.0.6";
-  by-version."lcov-parse"."0.0.6" = self.buildNodePackage {
-    name = "lcov-parse-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.6.tgz";
-      name = "lcov-parse-0.0.6.tgz";
-      sha1 = "819e5da8bf0791f9d3f39eea5ed1868187f11175";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lcov-result-merger"."*" =
-    self.by-version."lcov-result-merger"."1.2.0";
-  by-version."lcov-result-merger"."1.2.0" = self.buildNodePackage {
-    name = "lcov-result-merger-1.2.0";
-    version = "1.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lcov-result-merger/-/lcov-result-merger-1.2.0.tgz";
-      name = "lcov-result-merger-1.2.0.tgz";
-      sha1 = "5de1e6426f885929b77357f014de5fee1dad0553";
-    };
-    deps = {
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "vinyl-1.1.1" = self.by-version."vinyl"."1.1.1";
-      "vinyl-fs-2.4.3" = self.by-version."vinyl-fs"."2.4.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "lcov-result-merger" = self.by-version."lcov-result-merger"."1.2.0";
-  by-spec."ldapjs"."^0.7.1" =
-    self.by-version."ldapjs"."0.7.1";
-  by-version."ldapjs"."0.7.1" = self.buildNodePackage {
-    name = "ldapjs-0.7.1";
-    version = "0.7.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ldapjs/-/ldapjs-0.7.1.tgz";
-      name = "ldapjs-0.7.1.tgz";
-      sha1 = "684798a687640bab1afbd802cf532f30492dfb56";
-    };
-    deps = {
-      "asn1-0.2.1" = self.by-version."asn1"."0.2.1";
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-      "bunyan-0.22.1" = self.by-version."bunyan"."0.22.1";
-      "nopt-2.1.1" = self.by-version."nopt"."2.1.1";
-      "pooling-0.4.6" = self.by-version."pooling"."0.4.6";
-    };
-    optionalDependencies = {
-      "dtrace-provider-0.2.8" = self.by-version."dtrace-provider"."0.2.8";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."less"."*" =
-    self.by-version."less"."2.7.1";
-  by-version."less"."2.7.1" = self.buildNodePackage {
-    name = "less-2.7.1";
-    version = "2.7.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/less/-/less-2.7.1.tgz";
-      name = "less-2.7.1.tgz";
-      sha1 = "6cbfea22b3b830304e9a5fb371d54fa480c9d7cf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "errno-0.1.4" = self.by-version."errno"."0.1.4";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "image-size-0.5.0" = self.by-version."image-size"."0.5.0";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "promise-7.1.1" = self.by-version."promise"."7.1.1";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "less" = self.by-version."less"."2.7.1";
-  by-spec."less"."~2.6.0" =
-    self.by-version."less"."2.6.1";
-  by-version."less"."2.6.1" = self.buildNodePackage {
-    name = "less-2.6.1";
-    version = "2.6.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/less/-/less-2.6.1.tgz";
-      name = "less-2.6.1.tgz";
-      sha1 = "658e01ec9ac3149959c6b6dfbcfbc0a170afda7a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "errno-0.1.4" = self.by-version."errno"."0.1.4";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "image-size-0.4.0" = self.by-version."image-size"."0.4.0";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "promise-7.1.1" = self.by-version."promise"."7.1.1";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."level"."^0.18.0" =
-    self.by-version."level"."0.18.0";
-  by-version."level"."0.18.0" = self.buildNodePackage {
-    name = "level-0.18.0";
-    version = "0.18.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/level/-/level-0.18.0.tgz";
-      name = "level-0.18.0.tgz";
-      sha1 = "e1a3f4cad65fc02e25070a47d63d7b527361c1cf";
-    };
-    deps = {
-      "leveldown-0.10.6" = self.by-version."leveldown"."0.10.6";
-      "level-packager-0.18.0" = self.by-version."level-packager"."0.18.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."level-packager"."~0.18.0" =
-    self.by-version."level-packager"."0.18.0";
-  by-version."level-packager"."0.18.0" = self.buildNodePackage {
-    name = "level-packager-0.18.0";
-    version = "0.18.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/level-packager/-/level-packager-0.18.0.tgz";
-      name = "level-packager-0.18.0.tgz";
-      sha1 = "c076b087646f1d7dedcc3442f58800dd0a0b45f5";
-    };
-    deps = {
-      "levelup-0.18.6" = self.by-version."levelup"."0.18.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."level-sublevel"."^6.3.15" =
-    self.by-version."level-sublevel"."6.5.4";
-  by-version."level-sublevel"."6.5.4" = self.buildNodePackage {
-    name = "level-sublevel-6.5.4";
-    version = "6.5.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.5.4.tgz";
-      name = "level-sublevel-6.5.4.tgz";
-      sha1 = "92e6534e7ac3fa35c8bdb121b8a8094a8d1c0826";
-    };
-    deps = {
-      "pull-stream-2.21.0" = self.by-version."pull-stream"."2.21.0";
-      "ltgt-2.1.2" = self.by-version."ltgt"."2.1.2";
-      "levelup-0.19.1" = self.by-version."levelup"."0.19.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-      "bytewise-1.1.0" = self.by-version."bytewise"."1.1.0";
-      "typewiselite-1.0.0" = self.by-version."typewiselite"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."leveldown"."^0.10.2" =
-    self.by-version."leveldown"."0.10.6";
-  by-version."leveldown"."0.10.6" = self.buildNodePackage {
-    name = "leveldown-0.10.6";
-    version = "0.10.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/leveldown/-/leveldown-0.10.6.tgz";
-      name = "leveldown-0.10.6.tgz";
-      sha1 = "a1bb751c95263ff60f41bde0f973ff8c1e98bbe9";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.1.0" = self.by-version."nan"."2.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."leveldown"."~0.10.0" =
-    self.by-version."leveldown"."0.10.6";
-  by-spec."levelup"."^0.18.5" =
-    self.by-version."levelup"."0.18.6";
-  by-version."levelup"."0.18.6" = self.buildNodePackage {
-    name = "levelup-0.18.6";
-    version = "0.18.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz";
-      name = "levelup-0.18.6.tgz";
-      sha1 = "e6a01cb089616c8ecc0291c2a9bd3f0c44e3e5eb";
-    };
-    deps = {
-      "bl-0.8.2" = self.by-version."bl"."0.8.2";
-      "deferred-leveldown-0.2.0" = self.by-version."deferred-leveldown"."0.2.0";
-      "errno-0.1.4" = self.by-version."errno"."0.1.4";
-      "prr-0.0.0" = self.by-version."prr"."0.0.0";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "semver-2.3.2" = self.by-version."semver"."2.3.2";
-      "xtend-3.0.0" = self.by-version."xtend"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."levelup"."~0.18.0" =
-    self.by-version."levelup"."0.18.6";
-  by-spec."levelup"."~0.19.0" =
-    self.by-version."levelup"."0.19.1";
-  by-version."levelup"."0.19.1" = self.buildNodePackage {
-    name = "levelup-0.19.1";
-    version = "0.19.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/levelup/-/levelup-0.19.1.tgz";
-      name = "levelup-0.19.1.tgz";
-      sha1 = "f3a6a7205272c4b5f35e412ff004a03a0aedf50b";
-    };
-    deps = {
-      "bl-0.8.2" = self.by-version."bl"."0.8.2";
-      "deferred-leveldown-0.2.0" = self.by-version."deferred-leveldown"."0.2.0";
-      "errno-0.1.4" = self.by-version."errno"."0.1.4";
-      "prr-0.0.0" = self.by-version."prr"."0.0.0";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "xtend-3.0.0" = self.by-version."xtend"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."leven"."^1.0.0" =
-    self.by-version."leven"."1.0.2";
-  by-version."leven"."1.0.2" = self.buildNodePackage {
-    name = "leven-1.0.2";
-    version = "1.0.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz";
-      name = "leven-1.0.2.tgz";
-      sha1 = "9144b6eebca5f1d0680169f1a6770dcea60b75c3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."levn"."^0.3.0" =
-    self.by-version."levn"."0.3.0";
-  by-version."levn"."0.3.0" = self.buildNodePackage {
-    name = "levn-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
-      name = "levn-0.3.0.tgz";
-      sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
-    };
-    deps = {
-      "prelude-ls-1.1.2" = self.by-version."prelude-ls"."1.1.2";
-      "type-check-0.3.2" = self.by-version."type-check"."0.3.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."levn"."~0.3.0" =
-    self.by-version."levn"."0.3.0";
-  by-spec."lexical-scope"."^1.2.0" =
-    self.by-version."lexical-scope"."1.2.0";
-  by-version."lexical-scope"."1.2.0" = self.buildNodePackage {
-    name = "lexical-scope-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz";
-      name = "lexical-scope-1.2.0.tgz";
-      sha1 = "fcea5edc704a4b3a8796cdca419c3a0afaf22df4";
-    };
-    deps = {
-      "astw-2.0.0" = self.by-version."astw"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lexicographic-integer"."^1.1.0" =
-    self.by-version."lexicographic-integer"."1.1.0";
-  by-version."lexicographic-integer"."1.1.0" = self.buildNodePackage {
-    name = "lexicographic-integer-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lexicographic-integer/-/lexicographic-integer-1.1.0.tgz";
-      name = "lexicographic-integer-1.1.0.tgz";
-      sha1 = "52ca6d998a572e6322b515f5b80e396c6043e9b8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."libbase64"."0.1.0" =
-    self.by-version."libbase64"."0.1.0";
-  by-version."libbase64"."0.1.0" = self.buildNodePackage {
-    name = "libbase64-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz";
-      name = "libbase64-0.1.0.tgz";
-      sha1 = "62351a839563ac5ff5bd26f12f60e9830bb751e6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."libbase64"."^0.1.0" =
-    self.by-version."libbase64"."0.1.0";
-  by-spec."libmime"."2.0.3" =
-    self.by-version."libmime"."2.0.3";
-  by-version."libmime"."2.0.3" = self.buildNodePackage {
-    name = "libmime-2.0.3";
-    version = "2.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/libmime/-/libmime-2.0.3.tgz";
-      name = "libmime-2.0.3.tgz";
-      sha1 = "55751aa832d31492363df3dd810580dfd59d080c";
-    };
-    deps = {
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-      "libbase64-0.1.0" = self.by-version."libbase64"."0.1.0";
-      "libqp-1.1.0" = self.by-version."libqp"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."libmime"."^1.2.0" =
-    self.by-version."libmime"."1.2.0";
-  by-version."libmime"."1.2.0" = self.buildNodePackage {
-    name = "libmime-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/libmime/-/libmime-1.2.0.tgz";
-      name = "libmime-1.2.0.tgz";
-      sha1 = "8d84b4f3b225b3704410236ef494906436ba742b";
-    };
-    deps = {
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-      "libbase64-0.1.0" = self.by-version."libbase64"."0.1.0";
-      "libqp-1.1.0" = self.by-version."libqp"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."libqp"."1.1.0" =
-    self.by-version."libqp"."1.1.0";
-  by-version."libqp"."1.1.0" = self.buildNodePackage {
-    name = "libqp-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz";
-      name = "libqp-1.1.0.tgz";
-      sha1 = "f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."libqp"."^1.1.0" =
-    self.by-version."libqp"."1.1.0";
-  by-spec."libxmljs"."^0.17.1" =
-    self.by-version."libxmljs"."0.17.1";
-  by-version."libxmljs"."0.17.1" = self.buildNodePackage {
-    name = "libxmljs-0.17.1";
-    version = "0.17.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/libxmljs/-/libxmljs-0.17.1.tgz";
-      name = "libxmljs-0.17.1.tgz";
-      sha1 = "1f77e529b5bd1c0e49936726daed95577092ee8a";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.0.7" = self.by-version."nan"."2.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."liftoff"."^2.1.0" =
-    self.by-version."liftoff"."2.2.1";
-  by-version."liftoff"."2.2.1" = self.buildNodePackage {
-    name = "liftoff-2.2.1";
-    version = "2.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/liftoff/-/liftoff-2.2.1.tgz";
-      name = "liftoff-2.2.1.tgz";
-      sha1 = "8dfef848d3f441921c4a311fc3203ae9c34c41a7";
-    };
-    deps = {
-      "extend-2.0.1" = self.by-version."extend"."2.0.1";
-      "findup-sync-0.3.0" = self.by-version."findup-sync"."0.3.0";
-      "flagged-respawn-0.3.2" = self.by-version."flagged-respawn"."0.3.2";
-      "rechoir-0.6.2" = self.by-version."rechoir"."0.6.2";
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."linkify-it"."~1.2.0" =
-    self.by-version."linkify-it"."1.2.4";
-  by-version."linkify-it"."1.2.4" = self.buildNodePackage {
-    name = "linkify-it-1.2.4";
-    version = "1.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/linkify-it/-/linkify-it-1.2.4.tgz";
-      name = "linkify-it-1.2.4.tgz";
-      sha1 = "0773526c317c8fd13bd534ee1d180ff88abf881a";
-    };
-    deps = {
-      "uc.micro-1.0.1" = self.by-version."uc.micro"."1.0.1";
-    };
-    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 = "https://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.4" = self.by-version."graceful-fs"."4.1.4";
-      "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.1" = self.by-version."pinkie-promise"."2.0.1";
-      "strip-bom-2.0.0" = self.by-version."strip-bom"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."load-json-file"."^1.1.0" =
-    self.by-version."load-json-file"."1.1.0";
-  by-spec."loader-runner"."^2.1.0" =
-    self.by-version."loader-runner"."2.1.1";
-  by-version."loader-runner"."2.1.1" = self.buildNodePackage {
-    name = "loader-runner-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/loader-runner/-/loader-runner-2.1.1.tgz";
-      name = "loader-runner-2.1.1.tgz";
-      sha1 = "60a30f2a7c8eae79f0805b5848fee134f8ade519";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."loader-utils"."^0.2.11" =
-    self.by-version."loader-utils"."0.2.15";
-  by-version."loader-utils"."0.2.15" = self.buildNodePackage {
-    name = "loader-utils-0.2.15";
-    version = "0.2.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.15.tgz";
-      name = "loader-utils-0.2.15.tgz";
-      sha1 = "c7df3342a9d4e2103dddc97d4060daccc246d6ac";
-    };
-    deps = {
-      "big.js-3.1.3" = self.by-version."big.js"."3.1.3";
-      "emojis-list-2.0.1" = self.by-version."emojis-list"."2.0.1";
-      "json5-0.5.0" = self.by-version."json5"."0.5.0";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lockfile"."~1.0.1" =
-    self.by-version."lockfile"."1.0.1";
-  by-version."lockfile"."1.0.1" = self.buildNodePackage {
-    name = "lockfile-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lockfile/-/lockfile-1.0.1.tgz";
-      name = "lockfile-1.0.1.tgz";
-      sha1 = "9d353ecfe3f54d150bb57f89d51746935a39c4f5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."*" =
-    self.by-version."lodash"."4.13.1";
-  by-version."lodash"."4.13.1" = self.buildNodePackage {
-    name = "lodash-4.13.1";
-    version = "4.13.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz";
-      name = "lodash-4.13.1.tgz";
-      sha1 = "83e4b10913f48496d4d16fec4a560af2ee744b68";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."3.10.1" =
-    self.by-version."lodash"."3.10.1";
-  by-version."lodash"."3.10.1" = self.buildNodePackage {
-    name = "lodash-3.10.1";
-    version = "3.10.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz";
-      name = "lodash-3.10.1.tgz";
-      sha1 = "5bf45e8e49ba4189e17d482789dfd15bd140b7b6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."3.7.x" =
-    self.by-version."lodash"."3.7.0";
-  by-version."lodash"."3.7.0" = self.buildNodePackage {
-    name = "lodash-3.7.0";
-    version = "3.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz";
-      name = "lodash-3.7.0.tgz";
-      sha1 = "3678bd8ab995057c07ade836ed2ef087da811d45";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash".">= 4.0.0 < 5.0.0" =
-    self.by-version."lodash"."4.13.1";
-  by-spec."lodash".">=2.4.1" =
-    self.by-version."lodash"."4.13.1";
-  by-spec."lodash"."^2.4.1" =
-    self.by-version."lodash"."2.4.2";
-  by-version."lodash"."2.4.2" = self.buildNodePackage {
-    name = "lodash-2.4.2";
-    version = "2.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz";
-      name = "lodash-2.4.2.tgz";
-      sha1 = "fadd834b9683073da179b3eae6d9c0d15053f73e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."^3.10.1" =
-    self.by-version."lodash"."3.10.1";
-  by-spec."lodash"."^3.2.0" =
-    self.by-version."lodash"."3.10.1";
-  by-spec."lodash"."^3.3.1" =
-    self.by-version."lodash"."3.10.1";
-  by-spec."lodash"."^3.5.0" =
-    self.by-version."lodash"."3.10.1";
-  by-spec."lodash"."^3.8.0" =
-    self.by-version."lodash"."3.10.1";
-  by-spec."lodash"."^4.0.0" =
-    self.by-version."lodash"."4.13.1";
-  by-spec."lodash"."^4.0.1" =
-    self.by-version."lodash"."4.13.1";
-  by-spec."lodash"."^4.2.0" =
-    self.by-version."lodash"."4.13.1";
-  by-spec."lodash"."^4.3.0" =
-    self.by-version."lodash"."4.13.1";
-  by-spec."lodash"."^4.8.0" =
-    self.by-version."lodash"."4.13.1";
-  by-spec."lodash"."^4.8.2" =
-    self.by-version."lodash"."4.13.1";
-  by-spec."lodash"."~0.9.2" =
-    self.by-version."lodash"."0.9.2";
-  by-version."lodash"."0.9.2" = self.buildNodePackage {
-    name = "lodash-0.9.2";
-    version = "0.9.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz";
-      name = "lodash-0.9.2.tgz";
-      sha1 = "8f3499c5245d346d682e5b0d3b40767e09f1a92c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."~1.0.1" =
-    self.by-version."lodash"."1.0.2";
-  by-version."lodash"."1.0.2" = self.buildNodePackage {
-    name = "lodash-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz";
-      name = "lodash-1.0.2.tgz";
-      sha1 = "8f57560c83b59fc270bd3d561b690043430e2551";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."~2.4.1" =
-    self.by-version."lodash"."2.4.2";
-  by-spec."lodash"."~3.10.1" =
-    self.by-version."lodash"."3.10.1";
-  by-spec."lodash"."~3.2.0" =
-    self.by-version."lodash"."3.2.0";
-  by-version."lodash"."3.2.0" = self.buildNodePackage {
-    name = "lodash-3.2.0";
-    version = "3.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-3.2.0.tgz";
-      name = "lodash-3.2.0.tgz";
-      sha1 = "4bf50a3243f9aeb0bac41a55d3d5990675a462fb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."~3.5.0" =
-    self.by-version."lodash"."3.5.0";
-  by-version."lodash"."3.5.0" = self.buildNodePackage {
-    name = "lodash-3.5.0";
-    version = "3.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-3.5.0.tgz";
-      name = "lodash-3.5.0.tgz";
-      sha1 = "19bb3f4d51278f0b8c818ed145c74ecf9fe40e6d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."~3.9.3" =
-    self.by-version."lodash"."3.9.3";
-  by-version."lodash"."3.9.3" = self.buildNodePackage {
-    name = "lodash-3.9.3";
-    version = "3.9.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz";
-      name = "lodash-3.9.3.tgz";
-      sha1 = "0159e86832feffc6d61d852b12a953b99496bd32";
-    };
-    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 = "https://registry.npmjs.org/lodash/-/lodash-4.2.1.tgz";
-      name = "lodash-4.2.1.tgz";
-      sha1 = "171fdcfbbc30d689c544cd18c0529f56de6c1aa9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash"."~4.3.0" =
-    self.by-version."lodash"."4.3.0";
-  by-version."lodash"."4.3.0" = self.buildNodePackage {
-    name = "lodash-4.3.0";
-    version = "4.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz";
-      name = "lodash-4.3.0.tgz";
-      sha1 = "efd9c4a6ec53f3b05412429915c3e4824e4d25a4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash-deep"."^1.1.0" =
-    self.by-version."lodash-deep"."1.6.0";
-  by-version."lodash-deep"."1.6.0" = self.buildNodePackage {
-    name = "lodash-deep-1.6.0";
-    version = "1.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash-deep/-/lodash-deep-1.6.0.tgz";
-      name = "lodash-deep-1.6.0.tgz";
-      sha1 = "a7ce672759472b91d12b193c69d8a24a02d8428d";
-    };
-    deps = {
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._baseassign"."^3.0.0" =
-    self.by-version."lodash._baseassign"."3.2.0";
-  by-version."lodash._baseassign"."3.2.0" = self.buildNodePackage {
-    name = "lodash._baseassign-3.2.0";
-    version = "3.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz";
-      name = "lodash._baseassign-3.2.0.tgz";
-      sha1 = "8c38a099500f215ad09e59f1722fd0c52bfe0a4e";
-    };
-    deps = {
-      "lodash._basecopy-3.0.1" = self.by-version."lodash._basecopy"."3.0.1";
-      "lodash.keys-3.1.2" = self.by-version."lodash.keys"."3.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._baseclone"."~4.5.0" =
-    self.by-version."lodash._baseclone"."4.5.7";
-  by-version."lodash._baseclone"."4.5.7" = self.buildNodePackage {
-    name = "lodash._baseclone-4.5.7";
-    version = "4.5.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz";
-      name = "lodash._baseclone-4.5.7.tgz";
-      sha1 = "ce42ade08384ef5d62fa77c30f61a46e686f8434";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._basecopy"."^3.0.0" =
-    self.by-version."lodash._basecopy"."3.0.1";
-  by-version."lodash._basecopy"."3.0.1" = self.buildNodePackage {
-    name = "lodash._basecopy-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz";
-      name = "lodash._basecopy-3.0.1.tgz";
-      sha1 = "8da0e6a876cf344c0ad8a54882111dd3c5c7ca36";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._basedifference"."~4.5.0" =
-    self.by-version."lodash._basedifference"."4.5.0";
-  by-version."lodash._basedifference"."4.5.0" = self.buildNodePackage {
-    name = "lodash._basedifference-4.5.0";
-    version = "4.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-4.5.0.tgz";
-      name = "lodash._basedifference-4.5.0.tgz";
-      sha1 = "56ea7d601367bfa46cd7de115dc3daeb18837938";
-    };
-    deps = {
-      "lodash._root-3.0.1" = self.by-version."lodash._root"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._baseflatten"."~4.2.0" =
-    self.by-version."lodash._baseflatten"."4.2.1";
-  by-version."lodash._baseflatten"."4.2.1" = self.buildNodePackage {
-    name = "lodash._baseflatten-4.2.1";
-    version = "4.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-4.2.1.tgz";
-      name = "lodash._baseflatten-4.2.1.tgz";
-      sha1 = "54acad5e6ef53532a5b8269c0ad725470cfd9208";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._baseindexof"."*" =
-    self.by-version."lodash._baseindexof"."3.1.0";
-  by-version."lodash._baseindexof"."3.1.0" = self.buildNodePackage {
-    name = "lodash._baseindexof-3.1.0";
-    version = "3.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz";
-      name = "lodash._baseindexof-3.1.0.tgz";
-      sha1 = "fe52b53a1c6761e42618d654e4a25789ed61822c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._baseslice"."~4.0.0" =
-    self.by-version."lodash._baseslice"."4.0.0";
-  by-version."lodash._baseslice"."4.0.0" = self.buildNodePackage {
-    name = "lodash._baseslice-4.0.0";
-    version = "4.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz";
-      name = "lodash._baseslice-4.0.0.tgz";
-      sha1 = "f5ce1df982948ecaff63f223853415b7b9763704";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._basetostring"."^3.0.0" =
-    self.by-version."lodash._basetostring"."3.0.1";
-  by-version."lodash._basetostring"."3.0.1" = self.buildNodePackage {
-    name = "lodash._basetostring-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz";
-      name = "lodash._basetostring-3.0.1.tgz";
-      sha1 = "d1861d877f824a52f669832dcaf3ee15566a07d5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._basetostring"."~4.12.0" =
-    self.by-version."lodash._basetostring"."4.12.0";
-  by-version."lodash._basetostring"."4.12.0" = self.buildNodePackage {
-    name = "lodash._basetostring-4.12.0";
-    version = "4.12.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz";
-      name = "lodash._basetostring-4.12.0.tgz";
-      sha1 = "9327c9dc5158866b7fa4b9d42f4638e5766dd9df";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._baseuniq"."~4.6.0" =
-    self.by-version."lodash._baseuniq"."4.6.0";
-  by-version."lodash._baseuniq"."4.6.0" = self.buildNodePackage {
-    name = "lodash._baseuniq-4.6.0";
-    version = "4.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz";
-      name = "lodash._baseuniq-4.6.0.tgz";
-      sha1 = "0ebb44e456814af7905c6212fa2c9b2d51b841e8";
-    };
-    deps = {
-      "lodash._createset-4.0.3" = self.by-version."lodash._createset"."4.0.3";
-      "lodash._root-3.0.1" = self.by-version."lodash._root"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._basevalues"."^3.0.0" =
-    self.by-version."lodash._basevalues"."3.0.0";
-  by-version."lodash._basevalues"."3.0.0" = self.buildNodePackage {
-    name = "lodash._basevalues-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz";
-      name = "lodash._basevalues-3.0.0.tgz";
-      sha1 = "5b775762802bde3d3297503e26300820fdf661b7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._bindcallback"."*" =
-    self.by-version."lodash._bindcallback"."3.0.1";
-  by-version."lodash._bindcallback"."3.0.1" = self.buildNodePackage {
-    name = "lodash._bindcallback-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz";
-      name = "lodash._bindcallback-3.0.1.tgz";
-      sha1 = "e531c27644cf8b57a99e17ed95b35c748789392e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._bindcallback"."^3.0.0" =
-    self.by-version."lodash._bindcallback"."3.0.1";
-  by-spec."lodash._cacheindexof"."*" =
-    self.by-version."lodash._cacheindexof"."3.0.2";
-  by-version."lodash._cacheindexof"."3.0.2" = self.buildNodePackage {
-    name = "lodash._cacheindexof-3.0.2";
-    version = "3.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz";
-      name = "lodash._cacheindexof-3.0.2.tgz";
-      sha1 = "3dc69ac82498d2ee5e3ce56091bafd2adc7bde92";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._createassigner"."^3.0.0" =
-    self.by-version."lodash._createassigner"."3.1.1";
-  by-version."lodash._createassigner"."3.1.1" = self.buildNodePackage {
-    name = "lodash._createassigner-3.1.1";
-    version = "3.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz";
-      name = "lodash._createassigner-3.1.1.tgz";
-      sha1 = "838a5bae2fdaca63ac22dee8e19fa4e6d6970b11";
-    };
-    deps = {
-      "lodash._bindcallback-3.0.1" = self.by-version."lodash._bindcallback"."3.0.1";
-      "lodash._isiterateecall-3.0.9" = self.by-version."lodash._isiterateecall"."3.0.9";
-      "lodash.restparam-3.6.1" = self.by-version."lodash.restparam"."3.6.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._createcache"."*" =
-    self.by-version."lodash._createcache"."3.1.2";
-  by-version."lodash._createcache"."3.1.2" = self.buildNodePackage {
-    name = "lodash._createcache-3.1.2";
-    version = "3.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz";
-      name = "lodash._createcache-3.1.2.tgz";
-      sha1 = "56d6a064017625e79ebca6b8018e17440bdcf093";
-    };
-    deps = {
-      "lodash._getnative-3.9.1" = self.by-version."lodash._getnative"."3.9.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._createset"."~4.0.0" =
-    self.by-version."lodash._createset"."4.0.3";
-  by-version."lodash._createset"."4.0.3" = self.buildNodePackage {
-    name = "lodash._createset-4.0.3";
-    version = "4.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz";
-      name = "lodash._createset-4.0.3.tgz";
-      sha1 = "0f4659fbb09d75194fa9e2b88a6644d363c9fe26";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._getnative"."*" =
-    self.by-version."lodash._getnative"."3.9.1";
-  by-version."lodash._getnative"."3.9.1" = self.buildNodePackage {
-    name = "lodash._getnative-3.9.1";
-    version = "3.9.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz";
-      name = "lodash._getnative-3.9.1.tgz";
-      sha1 = "570bc7dede46d61cdcde687d65d3eecbaa3aaff5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._getnative"."^3.0.0" =
-    self.by-version."lodash._getnative"."3.9.1";
-  by-spec."lodash._isiterateecall"."^3.0.0" =
-    self.by-version."lodash._isiterateecall"."3.0.9";
-  by-version."lodash._isiterateecall"."3.0.9" = self.buildNodePackage {
-    name = "lodash._isiterateecall-3.0.9";
-    version = "3.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz";
-      name = "lodash._isiterateecall-3.0.9.tgz";
-      sha1 = "5203ad7ba425fae842460e696db9cf3e6aac057c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._reescape"."^3.0.0" =
-    self.by-version."lodash._reescape"."3.0.0";
-  by-version."lodash._reescape"."3.0.0" = self.buildNodePackage {
-    name = "lodash._reescape-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz";
-      name = "lodash._reescape-3.0.0.tgz";
-      sha1 = "2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._reevaluate"."^3.0.0" =
-    self.by-version."lodash._reevaluate"."3.0.0";
-  by-version."lodash._reevaluate"."3.0.0" = self.buildNodePackage {
-    name = "lodash._reevaluate-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz";
-      name = "lodash._reevaluate-3.0.0.tgz";
-      sha1 = "58bc74c40664953ae0b124d806996daca431e2ed";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._reinterpolate"."^3.0.0" =
-    self.by-version."lodash._reinterpolate"."3.0.0";
-  by-version."lodash._reinterpolate"."3.0.0" = self.buildNodePackage {
-    name = "lodash._reinterpolate-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz";
-      name = "lodash._reinterpolate-3.0.0.tgz";
-      sha1 = "0ccf2d89166af03b3663c796538b75ac6e114d9d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._root"."^3.0.0" =
-    self.by-version."lodash._root"."3.0.1";
-  by-version."lodash._root"."3.0.1" = self.buildNodePackage {
-    name = "lodash._root-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz";
-      name = "lodash._root-3.0.1.tgz";
-      sha1 = "fba1c4524c19ee9a5f8136b4609f017cf4ded692";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash._root"."~3.0.0" =
-    self.by-version."lodash._root"."3.0.1";
-  by-spec."lodash.assign"."4.0.1" =
-    self.by-version."lodash.assign"."4.0.1";
-  by-version."lodash.assign"."4.0.1" = self.buildNodePackage {
-    name = "lodash.assign-4.0.1";
-    version = "4.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.0.1.tgz";
-      name = "lodash.assign-4.0.1.tgz";
-      sha1 = "8e7ff0206897a99dca32fc8123309f5c4c2c731e";
-    };
-    deps = {
-      "lodash.keys-4.0.7" = self.by-version."lodash.keys"."4.0.7";
-      "lodash.rest-4.0.3" = self.by-version."lodash.rest"."4.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.assign"."^3.0.0" =
-    self.by-version."lodash.assign"."3.2.0";
-  by-version."lodash.assign"."3.2.0" = self.buildNodePackage {
-    name = "lodash.assign-3.2.0";
-    version = "3.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz";
-      name = "lodash.assign-3.2.0.tgz";
-      sha1 = "3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa";
-    };
-    deps = {
-      "lodash._baseassign-3.2.0" = self.by-version."lodash._baseassign"."3.2.0";
-      "lodash._createassigner-3.1.1" = self.by-version."lodash._createassigner"."3.1.1";
-      "lodash.keys-3.1.2" = self.by-version."lodash.keys"."3.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.assign"."^4.0.0" =
-    self.by-version."lodash.assign"."4.0.9";
-  by-version."lodash.assign"."4.0.9" = self.buildNodePackage {
-    name = "lodash.assign-4.0.9";
-    version = "4.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.0.9.tgz";
-      name = "lodash.assign-4.0.9.tgz";
-      sha1 = "0a0731d93590ddd9ba4589fad65aaf6ee09217e3";
-    };
-    deps = {
-      "lodash.keys-4.0.7" = self.by-version."lodash.keys"."4.0.7";
-      "lodash.rest-4.0.3" = self.by-version."lodash.rest"."4.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.assign"."^4.0.3" =
-    self.by-version."lodash.assign"."4.0.9";
-  by-spec."lodash.assign"."^4.0.6" =
-    self.by-version."lodash.assign"."4.0.9";
-  by-spec."lodash.clonedeep"."~4.3.2" =
-    self.by-version."lodash.clonedeep"."4.3.2";
-  by-version."lodash.clonedeep"."4.3.2" = self.buildNodePackage {
-    name = "lodash.clonedeep-4.3.2";
-    version = "4.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.2.tgz";
-      name = "lodash.clonedeep-4.3.2.tgz";
-      sha1 = "d0112c02c76b5223833aebc6a4b6e334f0d057de";
-    };
-    deps = {
-      "lodash._baseclone-4.5.7" = self.by-version."lodash._baseclone"."4.5.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.debounce"."^3.0.1" =
-    self.by-version."lodash.debounce"."3.1.1";
-  by-version."lodash.debounce"."3.1.1" = self.buildNodePackage {
-    name = "lodash.debounce-3.1.1";
-    version = "3.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz";
-      name = "lodash.debounce-3.1.1.tgz";
-      sha1 = "812211c378a94cc29d5aa4e3346cf0bfce3a7df5";
-    };
-    deps = {
-      "lodash._getnative-3.9.1" = self.by-version."lodash._getnative"."3.9.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.defaults"."^3.1.2" =
-    self.by-version."lodash.defaults"."3.1.2";
-  by-version."lodash.defaults"."3.1.2" = self.buildNodePackage {
-    name = "lodash.defaults-3.1.2";
-    version = "3.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz";
-      name = "lodash.defaults-3.1.2.tgz";
-      sha1 = "c7308b18dbf8bc9372d701a73493c61192bd2e2c";
-    };
-    deps = {
-      "lodash.assign-3.2.0" = self.by-version."lodash.assign"."3.2.0";
-      "lodash.restparam-3.6.1" = self.by-version."lodash.restparam"."3.6.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.escape"."^3.0.0" =
-    self.by-version."lodash.escape"."3.2.0";
-  by-version."lodash.escape"."3.2.0" = self.buildNodePackage {
-    name = "lodash.escape-3.2.0";
-    version = "3.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz";
-      name = "lodash.escape-3.2.0.tgz";
-      sha1 = "995ee0dc18c1b48cc92effae71a10aab5b487698";
-    };
-    deps = {
-      "lodash._root-3.0.1" = self.by-version."lodash._root"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.isarguments"."^3.0.0" =
-    self.by-version."lodash.isarguments"."3.0.8";
-  by-version."lodash.isarguments"."3.0.8" = self.buildNodePackage {
-    name = "lodash.isarguments-3.0.8";
-    version = "3.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.8.tgz";
-      name = "lodash.isarguments-3.0.8.tgz";
-      sha1 = "5bf8da887f01f2a9e49c0a175cdaeb318a0e43dc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.isarray"."^3.0.0" =
-    self.by-version."lodash.isarray"."3.0.4";
-  by-version."lodash.isarray"."3.0.4" = self.buildNodePackage {
-    name = "lodash.isarray-3.0.4";
-    version = "3.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz";
-      name = "lodash.isarray-3.0.4.tgz";
-      sha1 = "79e4eb88c36a8122af86f844aa9bcd851b5fbb55";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.isequal"."^4.0.0" =
-    self.by-version."lodash.isequal"."4.2.0";
-  by-version."lodash.isequal"."4.2.0" = self.buildNodePackage {
-    name = "lodash.isequal-4.2.0";
-    version = "4.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.2.0.tgz";
-      name = "lodash.isequal-4.2.0.tgz";
-      sha1 = "43f5518f59e37463d3944e846b3a413180b0f46a";
-    };
-    deps = {
-      "lodash._root-3.0.1" = self.by-version."lodash._root"."3.0.1";
-      "lodash.keys-4.0.7" = self.by-version."lodash.keys"."4.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.keys"."^3.0.0" =
-    self.by-version."lodash.keys"."3.1.2";
-  by-version."lodash.keys"."3.1.2" = self.buildNodePackage {
-    name = "lodash.keys-3.1.2";
-    version = "3.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz";
-      name = "lodash.keys-3.1.2.tgz";
-      sha1 = "4dbc0472b156be50a0b286855d1bd0b0c656098a";
-    };
-    deps = {
-      "lodash._getnative-3.9.1" = self.by-version."lodash._getnative"."3.9.1";
-      "lodash.isarguments-3.0.8" = self.by-version."lodash.isarguments"."3.0.8";
-      "lodash.isarray-3.0.4" = self.by-version."lodash.isarray"."3.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.keys"."^4.0.0" =
-    self.by-version."lodash.keys"."4.0.7";
-  by-version."lodash.keys"."4.0.7" = self.buildNodePackage {
-    name = "lodash.keys-4.0.7";
-    version = "4.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.7.tgz";
-      name = "lodash.keys-4.0.7.tgz";
-      sha1 = "30e1b3bd98e54d6a0611991812685b6bc47cb63b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.memoize"."~3.0.3" =
-    self.by-version."lodash.memoize"."3.0.4";
-  by-version."lodash.memoize"."3.0.4" = self.buildNodePackage {
-    name = "lodash.memoize-3.0.4";
-    version = "3.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz";
-      name = "lodash.memoize-3.0.4.tgz";
-      sha1 = "2dcbd2c287cbc0a55cc42328bd0c736150d53e3f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.noop"."~3.0.0" =
-    self.by-version."lodash.noop"."3.0.1";
-  by-version."lodash.noop"."3.0.1" = self.buildNodePackage {
-    name = "lodash.noop-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.noop/-/lodash.noop-3.0.1.tgz";
-      name = "lodash.noop-3.0.1.tgz";
-      sha1 = "38188f4d650a3a474258439b96ec45b32617133c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.pad"."^4.1.0" =
-    self.by-version."lodash.pad"."4.4.0";
-  by-version."lodash.pad"."4.4.0" = self.buildNodePackage {
-    name = "lodash.pad-4.4.0";
-    version = "4.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.4.0.tgz";
-      name = "lodash.pad-4.4.0.tgz";
-      sha1 = "faa38df26c0a69ec5086a82246c958e150dcb1ab";
-    };
-    deps = {
-      "lodash._baseslice-4.0.0" = self.by-version."lodash._baseslice"."4.0.0";
-      "lodash._basetostring-4.12.0" = self.by-version."lodash._basetostring"."4.12.0";
-      "lodash.tostring-4.1.3" = self.by-version."lodash.tostring"."4.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.padend"."^4.1.0" =
-    self.by-version."lodash.padend"."4.5.0";
-  by-version."lodash.padend"."4.5.0" = self.buildNodePackage {
-    name = "lodash.padend-4.5.0";
-    version = "4.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.5.0.tgz";
-      name = "lodash.padend-4.5.0.tgz";
-      sha1 = "a289e9377ee2e6de8ba7f11f3a8eb326070b7619";
-    };
-    deps = {
-      "lodash._baseslice-4.0.0" = self.by-version."lodash._baseslice"."4.0.0";
-      "lodash._basetostring-4.12.0" = self.by-version."lodash._basetostring"."4.12.0";
-      "lodash.tostring-4.1.3" = self.by-version."lodash.tostring"."4.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.padstart"."^4.1.0" =
-    self.by-version."lodash.padstart"."4.5.0";
-  by-version."lodash.padstart"."4.5.0" = self.buildNodePackage {
-    name = "lodash.padstart-4.5.0";
-    version = "4.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.5.0.tgz";
-      name = "lodash.padstart-4.5.0.tgz";
-      sha1 = "3ea190f6734841c3364d279d11e056726b60a79a";
-    };
-    deps = {
-      "lodash._baseslice-4.0.0" = self.by-version."lodash._baseslice"."4.0.0";
-      "lodash._basetostring-4.12.0" = self.by-version."lodash._basetostring"."4.12.0";
-      "lodash.tostring-4.1.3" = self.by-version."lodash.tostring"."4.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.rest"."^4.0.0" =
-    self.by-version."lodash.rest"."4.0.3";
-  by-version."lodash.rest"."4.0.3" = self.buildNodePackage {
-    name = "lodash.rest-4.0.3";
-    version = "4.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.3.tgz";
-      name = "lodash.rest-4.0.3.tgz";
-      sha1 = "4c1c32c40028087250fabf70d42e0151548f48c5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.restparam"."*" =
-    self.by-version."lodash.restparam"."3.6.1";
-  by-version."lodash.restparam"."3.6.1" = self.buildNodePackage {
-    name = "lodash.restparam-3.6.1";
-    version = "3.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz";
-      name = "lodash.restparam-3.6.1.tgz";
-      sha1 = "936a4e309ef330a7645ed4145986c85ae5b20805";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.restparam"."^3.0.0" =
-    self.by-version."lodash.restparam"."3.6.1";
-  by-spec."lodash.template"."^3.0.0" =
-    self.by-version."lodash.template"."3.6.2";
-  by-version."lodash.template"."3.6.2" = self.buildNodePackage {
-    name = "lodash.template-3.6.2";
-    version = "3.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz";
-      name = "lodash.template-3.6.2.tgz";
-      sha1 = "f8cdecc6169a255be9098ae8b0c53d378931d14f";
-    };
-    deps = {
-      "lodash._basecopy-3.0.1" = self.by-version."lodash._basecopy"."3.0.1";
-      "lodash._basetostring-3.0.1" = self.by-version."lodash._basetostring"."3.0.1";
-      "lodash._basevalues-3.0.0" = self.by-version."lodash._basevalues"."3.0.0";
-      "lodash._isiterateecall-3.0.9" = self.by-version."lodash._isiterateecall"."3.0.9";
-      "lodash._reinterpolate-3.0.0" = self.by-version."lodash._reinterpolate"."3.0.0";
-      "lodash.escape-3.2.0" = self.by-version."lodash.escape"."3.2.0";
-      "lodash.keys-3.1.2" = self.by-version."lodash.keys"."3.1.2";
-      "lodash.restparam-3.6.1" = self.by-version."lodash.restparam"."3.6.1";
-      "lodash.templatesettings-3.1.1" = self.by-version."lodash.templatesettings"."3.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.templatesettings"."^3.0.0" =
-    self.by-version."lodash.templatesettings"."3.1.1";
-  by-version."lodash.templatesettings"."3.1.1" = self.buildNodePackage {
-    name = "lodash.templatesettings-3.1.1";
-    version = "3.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz";
-      name = "lodash.templatesettings-3.1.1.tgz";
-      sha1 = "fb307844753b66b9f1afa54e262c745307dba8e5";
-    };
-    deps = {
-      "lodash._reinterpolate-3.0.0" = self.by-version."lodash._reinterpolate"."3.0.0";
-      "lodash.escape-3.2.0" = self.by-version."lodash.escape"."3.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.tostring"."^4.0.0" =
-    self.by-version."lodash.tostring"."4.1.3";
-  by-version."lodash.tostring"."4.1.3" = self.buildNodePackage {
-    name = "lodash.tostring-4.1.3";
-    version = "4.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz";
-      name = "lodash.tostring-4.1.3.tgz";
-      sha1 = "5697f62973f30105a76c2deb3e2d1669f04fd825";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.union"."~4.4.0" =
-    self.by-version."lodash.union"."4.4.0";
-  by-version."lodash.union"."4.4.0" = self.buildNodePackage {
-    name = "lodash.union-4.4.0";
-    version = "4.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.union/-/lodash.union-4.4.0.tgz";
-      name = "lodash.union-4.4.0.tgz";
-      sha1 = "22be23b4c84b49d0436e573949ad1d4a48c7fa38";
-    };
-    deps = {
-      "lodash._baseflatten-4.2.1" = self.by-version."lodash._baseflatten"."4.2.1";
-      "lodash._baseuniq-4.6.0" = self.by-version."lodash._baseuniq"."4.6.0";
-      "lodash.rest-4.0.3" = self.by-version."lodash.rest"."4.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.uniq"."~4.3.0" =
-    self.by-version."lodash.uniq"."4.3.0";
-  by-version."lodash.uniq"."4.3.0" = self.buildNodePackage {
-    name = "lodash.uniq-4.3.0";
-    version = "4.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.3.0.tgz";
-      name = "lodash.uniq-4.3.0.tgz";
-      sha1 = "dcad810876841447d8f3ec662323c86a6d938227";
-    };
-    deps = {
-      "lodash._baseuniq-4.6.0" = self.by-version."lodash._baseuniq"."4.6.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lodash.without"."~4.2.0" =
-    self.by-version."lodash.without"."4.2.0";
-  by-version."lodash.without"."4.2.0" = self.buildNodePackage {
-    name = "lodash.without-4.2.0";
-    version = "4.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lodash.without/-/lodash.without-4.2.0.tgz";
-      name = "lodash.without-4.2.0.tgz";
-      sha1 = "f89ec9a8ee2d7ec14f8a9cad72a3f5ee12c5a4a6";
-    };
-    deps = {
-      "lodash._basedifference-4.5.0" = self.by-version."lodash._basedifference"."4.5.0";
-      "lodash.rest-4.0.3" = self.by-version."lodash.rest"."4.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."log-driver"."1.2.4" =
-    self.by-version."log-driver"."1.2.4";
-  by-version."log-driver"."1.2.4" = self.buildNodePackage {
-    name = "log-driver-1.2.4";
-    version = "1.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/log-driver/-/log-driver-1.2.4.tgz";
-      name = "log-driver-1.2.4.tgz";
-      sha1 = "2d62d7faef45d8a71341961a04b0761eca99cfa3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."log4js"."^0.6.31" =
-    self.by-version."log4js"."0.6.36";
-  by-version."log4js"."0.6.36" = self.buildNodePackage {
-    name = "log4js-0.6.36";
-    version = "0.6.36";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/log4js/-/log4js-0.6.36.tgz";
-      name = "log4js-0.6.36.tgz";
-      sha1 = "4ba7497a209a6d775676ab5efbc4237433858012";
-    };
-    deps = {
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lolex"."1.3.2" =
-    self.by-version."lolex"."1.3.2";
-  by-version."lolex"."1.3.2" = self.buildNodePackage {
-    name = "lolex-1.3.2";
-    version = "1.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz";
-      name = "lolex-1.3.2.tgz";
-      sha1 = "7c3da62ffcb30f0f5a80a2566ca24e45d8a01f31";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."long"."~2 >=2.2.3" =
-    self.by-version."long"."2.4.0";
-  by-version."long"."2.4.0" = self.buildNodePackage {
-    name = "long-2.4.0";
-    version = "2.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/long/-/long-2.4.0.tgz";
-      name = "long-2.4.0.tgz";
-      sha1 = "9fa180bb1d9500cdc29c4156766a1995e1f4524f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."longest"."^1.0.1" =
-    self.by-version."longest"."1.0.1";
-  by-version."longest"."1.0.1" = self.buildNodePackage {
-    name = "longest-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
-      name = "longest-1.0.1.tgz";
-      sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."longjohn"."0.2.9" =
-    self.by-version."longjohn"."0.2.9";
-  by-version."longjohn"."0.2.9" = self.buildNodePackage {
-    name = "longjohn-0.2.9";
-    version = "0.2.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/longjohn/-/longjohn-0.2.9.tgz";
-      name = "longjohn-0.2.9.tgz";
-      sha1 = "db1bf175fcfffcfce099132d1470f52f41a31519";
-    };
-    deps = {
-      "source-map-support-0.3.2" = self.by-version."source-map-support"."0.3.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."loose-envify"."^1.0.0" =
-    self.by-version."loose-envify"."1.2.0";
-  by-version."loose-envify"."1.2.0" = self.buildNodePackage {
-    name = "loose-envify-1.2.0";
-    version = "1.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.2.0.tgz";
-      name = "loose-envify-1.2.0.tgz";
-      sha1 = "69a65aad3de542cf4ee0f4fe74e8e33c709ccb0f";
-    };
-    deps = {
-      "js-tokens-1.0.3" = self.by-version."js-tokens"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."loose-envify"."^1.1.0" =
-    self.by-version."loose-envify"."1.2.0";
-  by-spec."loud-rejection"."^1.0.0" =
-    self.by-version."loud-rejection"."1.4.1";
-  by-version."loud-rejection"."1.4.1" = self.buildNodePackage {
-    name = "loud-rejection-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.4.1.tgz";
-      name = "loud-rejection-1.4.1.tgz";
-      sha1 = "13f58c75b1430e65141cd075ace9a2ee575b236c";
-    };
-    deps = {
-      "currently-unhandled-0.4.1" = self.by-version."currently-unhandled"."0.4.1";
-      "signal-exit-2.1.2" = self.by-version."signal-exit"."2.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lowercase-keys"."^1.0.0" =
-    self.by-version."lowercase-keys"."1.0.0";
-  by-version."lowercase-keys"."1.0.0" = self.buildNodePackage {
-    name = "lowercase-keys-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz";
-      name = "lowercase-keys-1.0.0.tgz";
-      sha1 = "4e3366b39e7f5457e35f1324bdf6f88d0bfc7306";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lru"."^2.0.0" =
-    self.by-version."lru"."2.0.1";
-  by-version."lru"."2.0.1" = self.buildNodePackage {
-    name = "lru-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lru/-/lru-2.0.1.tgz";
-      name = "lru-2.0.1.tgz";
-      sha1 = "f979871e162e3f5ca254be46844c53d4c5364544";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lru-cache"."2" =
-    self.by-version."lru-cache"."2.7.3";
-  by-version."lru-cache"."2.7.3" = self.buildNodePackage {
-    name = "lru-cache-2.7.3";
-    version = "2.7.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://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"."2.2.0" =
-    self.by-version."lru-cache"."2.2.0";
-  by-version."lru-cache"."2.2.0" = self.buildNodePackage {
-    name = "lru-cache-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.0.tgz";
-      name = "lru-cache-2.2.0.tgz";
-      sha1 = "ec2bba603f4c5bb3e7a1bf62ce1c1dbc1d474e08";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lru-cache"."2.2.x" =
-    self.by-version."lru-cache"."2.2.4";
-  by-version."lru-cache"."2.2.4" = self.buildNodePackage {
-    name = "lru-cache-2.2.4";
-    version = "2.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz";
-      name = "lru-cache-2.2.4.tgz";
-      sha1 = "6c658619becf14031d0d0b594b16042ce4dc063d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lru-cache"."2.5.x" =
-    self.by-version."lru-cache"."2.5.2";
-  by-version."lru-cache"."2.5.2" = self.buildNodePackage {
-    name = "lru-cache-2.5.2";
-    version = "2.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz";
-      name = "lru-cache-2.5.2.tgz";
-      sha1 = "1fddad938aae1263ce138680be1b3f591c0ab41c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lru-cache"."^2.5.0" =
-    self.by-version."lru-cache"."2.7.3";
-  by-spec."lru-cache"."~1.0.2" =
-    self.by-version."lru-cache"."1.0.6";
-  by-version."lru-cache"."1.0.6" = self.buildNodePackage {
-    name = "lru-cache-1.0.6";
-    version = "1.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.6.tgz";
-      name = "lru-cache-1.0.6.tgz";
-      sha1 = "aa50f97047422ac72543bda177a9c9d018d98452";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."lru-cache"."~2.5.0" =
-    self.by-version."lru-cache"."2.5.2";
-  by-spec."lru-cache"."~4.0.1" =
-    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 = "https://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-spec."lsmod"."~0.0.3" =
-    self.by-version."lsmod"."0.0.3";
-  by-version."lsmod"."0.0.3" = self.buildNodePackage {
-    name = "lsmod-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lsmod/-/lsmod-0.0.3.tgz";
-      name = "lsmod-0.0.3.tgz";
-      sha1 = "17e13d4e1ae91750ea5653548cd89e7147ad0244";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ltgt"."~1.0.2" =
-    self.by-version."ltgt"."1.0.2";
-  by-version."ltgt"."1.0.2" = self.buildNodePackage {
-    name = "ltgt-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ltgt/-/ltgt-1.0.2.tgz";
-      name = "ltgt-1.0.2.tgz";
-      sha1 = "e6817eb29ad204fc0c9e96ef8b0fee98ef6b9aa3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ltgt"."~2.1.1" =
-    self.by-version."ltgt"."2.1.2";
-  by-version."ltgt"."2.1.2" = self.buildNodePackage {
-    name = "ltgt-2.1.2";
-    version = "2.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ltgt/-/ltgt-2.1.2.tgz";
-      name = "ltgt-2.1.2.tgz";
-      sha1 = "e7472324fee690afc0d5ecf900403ce5788a311d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ltx"."*" =
-    self.by-version."ltx"."2.4.1";
-  by-version."ltx"."2.4.1" = self.buildNodePackage {
-    name = "ltx-2.4.1";
-    version = "2.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ltx/-/ltx-2.4.1.tgz";
-      name = "ltx-2.4.1.tgz";
-      sha1 = "6a5cb23fd508b5e4833acdc910d4ea037e9dbefe";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "ltx" = self.by-version."ltx"."2.4.1";
-  by-spec."ltx"."^0.9.0" =
-    self.by-version."ltx"."0.9.1";
-  by-version."ltx"."0.9.1" = self.buildNodePackage {
-    name = "ltx-0.9.1";
-    version = "0.9.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ltx/-/ltx-0.9.1.tgz";
-      name = "ltx-0.9.1.tgz";
-      sha1 = "56393ba7798c2cd18fce781a4ed7d83deb6daae6";
-    };
-    deps = {
-      "sax-0.6.1" = self.by-version."sax"."0.6.1";
-      "node-expat-2.3.13" = self.by-version."node-expat"."2.3.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ltx"."^2.2.0" =
-    self.by-version."ltx"."2.4.1";
-  by-spec."ltx"."~0.9.0" =
-    self.by-version."ltx"."0.9.1";
-  by-spec."lunr".">=0.5.2 <1.0.0-0" =
-    self.by-version."lunr"."0.7.1";
-  by-version."lunr"."0.7.1" = self.buildNodePackage {
-    name = "lunr-0.7.1";
-    version = "0.7.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/lunr/-/lunr-0.7.1.tgz";
-      name = "lunr-0.7.1.tgz";
-      sha1 = "b5a2cff99555b7893f5f1a4a17af3f638373c4bb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."magnet-uri"."^2.0.1" =
-    self.by-version."magnet-uri"."2.0.1";
-  by-version."magnet-uri"."2.0.1" = self.buildNodePackage {
-    name = "magnet-uri-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-2.0.1.tgz";
-      name = "magnet-uri-2.0.1.tgz";
-      sha1 = "d331d3dfcd3836565ade0fc3ca315e39217bb209";
-    };
-    deps = {
-      "thirty-two-0.0.2" = self.by-version."thirty-two"."0.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."magnet-uri"."^4.0.0" =
-    self.by-version."magnet-uri"."4.2.3";
-  by-version."magnet-uri"."4.2.3" = self.buildNodePackage {
-    name = "magnet-uri-4.2.3";
-    version = "4.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-4.2.3.tgz";
-      name = "magnet-uri-4.2.3.tgz";
-      sha1 = "79cc6d65a00bb5b7ef5c25ae60ebbb5d9a7681a8";
-    };
-    deps = {
-      "flatten-0.0.1" = self.by-version."flatten"."0.0.1";
-      "thirty-two-0.0.2" = self.by-version."thirty-two"."0.0.2";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."magnet-uri"."^5.1.3" =
-    self.by-version."magnet-uri"."5.1.3";
-  by-version."magnet-uri"."5.1.3" = self.buildNodePackage {
-    name = "magnet-uri-5.1.3";
-    version = "5.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-5.1.3.tgz";
-      name = "magnet-uri-5.1.3.tgz";
-      sha1 = "02dee3b07b639363afa991f44a3fe2bb06d6342d";
-    };
-    deps = {
-      "thirty-two-1.0.1" = self.by-version."thirty-two"."1.0.1";
-      "uniq-1.0.1" = self.by-version."uniq"."1.0.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."magnet-uri"."~2.0.0" =
-    self.by-version."magnet-uri"."2.0.1";
-  by-spec."mailchimp".">=1.1.0" =
-    self.by-version."mailchimp"."1.2.0";
-  by-version."mailchimp"."1.2.0" = self.buildNodePackage {
-    name = "mailchimp-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mailchimp/-/mailchimp-1.2.0.tgz";
-      name = "mailchimp-1.2.0.tgz";
-      sha1 = "cbabf992120e5f7225ca9484a4393844a58272b4";
-    };
-    deps = {
-      "qs-6.2.0" = self.by-version."qs"."6.2.0";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mailcomposer".">= 0.1.27" =
-    self.by-version."mailcomposer"."3.9.0";
-  by-version."mailcomposer"."3.9.0" = self.buildNodePackage {
-    name = "mailcomposer-3.9.0";
-    version = "3.9.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mailcomposer/-/mailcomposer-3.9.0.tgz";
-      name = "mailcomposer-3.9.0.tgz";
-      sha1 = "1b2781d349732f3f2ae419e1e187dcd5d9702712";
-    };
-    deps = {
-      "buildmail-3.7.0" = self.by-version."buildmail"."3.7.0";
-      "libmime-2.0.3" = self.by-version."libmime"."2.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mailcomposer"."^2.1.0" =
-    self.by-version."mailcomposer"."2.1.0";
-  by-version."mailcomposer"."2.1.0" = self.buildNodePackage {
-    name = "mailcomposer-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mailcomposer/-/mailcomposer-2.1.0.tgz";
-      name = "mailcomposer-2.1.0.tgz";
-      sha1 = "a6531822899614fee899c92226d81e2b9cbb183d";
-    };
-    deps = {
-      "buildmail-2.0.0" = self.by-version."buildmail"."2.0.0";
-      "libmime-1.2.0" = self.by-version."libmime"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mailcomposer"."~0.2.10" =
-    self.by-version."mailcomposer"."0.2.12";
-  by-version."mailcomposer"."0.2.12" = self.buildNodePackage {
-    name = "mailcomposer-0.2.12";
-    version = "0.2.12";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.12.tgz";
-      name = "mailcomposer-0.2.12.tgz";
-      sha1 = "4d02a604616adcb45fb36d37513f4c1bd0b75681";
-    };
-    deps = {
-      "mimelib-0.2.19" = self.by-version."mimelib"."0.2.19";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "he-0.3.6" = self.by-version."he"."0.3.6";
-      "follow-redirects-0.0.3" = self.by-version."follow-redirects"."0.0.3";
-      "dkim-signer-0.1.2" = self.by-version."dkim-signer"."0.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mailgun-js"."^0.6.7" =
-    self.by-version."mailgun-js"."0.6.9";
-  by-version."mailgun-js"."0.6.9" = self.buildNodePackage {
-    name = "mailgun-js-0.6.9";
-    version = "0.6.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.6.9.tgz";
-      name = "mailgun-js-0.6.9.tgz";
-      sha1 = "1bdc22b636a249b6870e920695b8338370b2cf98";
-    };
-    deps = {
-      "form-data-0.2.0" = self.by-version."form-data"."0.2.0";
-      "inflection-1.5.3" = self.by-version."inflection"."1.5.3";
-      "path-proxy-1.0.0" = self.by-version."path-proxy"."1.0.0";
-      "proxy-agent-1.1.1" = self.by-version."proxy-agent"."1.1.1";
-      "q-1.1.2" = self.by-version."q"."1.1.2";
-      "scmp-1.0.0" = self.by-version."scmp"."1.0.0";
-      "debug-2.1.3" = self.by-version."debug"."2.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mailparser"."^0.6.0" =
-    self.by-version."mailparser"."0.6.0";
-  by-version."mailparser"."0.6.0" = self.buildNodePackage {
-    name = "mailparser-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mailparser/-/mailparser-0.6.0.tgz";
-      name = "mailparser-0.6.0.tgz";
-      sha1 = "6fb84c3012d34acccf97a27e778d0288ebb20248";
-    };
-    deps = {
-      "mimelib-0.2.19" = self.by-version."mimelib"."0.2.19";
-      "encoding-0.1.12" = self.by-version."encoding"."0.1.12";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "uue-3.0.0" = self.by-version."uue"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."map-obj"."^1.0.0" =
-    self.by-version."map-obj"."1.0.1";
-  by-version."map-obj"."1.0.1" = self.buildNodePackage {
-    name = "map-obj-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://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 = "https://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-spec."markdown-it"."4.x" =
-    self.by-version."markdown-it"."4.4.0";
-  by-version."markdown-it"."4.4.0" = self.buildNodePackage {
-    name = "markdown-it-4.4.0";
-    version = "4.4.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/markdown-it/-/markdown-it-4.4.0.tgz";
-      name = "markdown-it-4.4.0.tgz";
-      sha1 = "3df373dbea587a9a7fef3e56311b68908f75c414";
-    };
-    deps = {
-      "argparse-1.0.7" = self.by-version."argparse"."1.0.7";
-      "entities-1.1.1" = self.by-version."entities"."1.1.1";
-      "linkify-it-1.2.4" = self.by-version."linkify-it"."1.2.4";
-      "mdurl-1.0.1" = self.by-version."mdurl"."1.0.1";
-      "uc.micro-1.0.1" = self.by-version."uc.micro"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."marked"."*" =
-    self.by-version."marked"."0.3.5";
-  by-version."marked"."0.3.5" = self.buildNodePackage {
-    name = "marked-0.3.5";
-    version = "0.3.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz";
-      name = "marked-0.3.5.tgz";
-      sha1 = "4113a15ac5d7bca158a5aae07224587b9fa15b94";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "marked" = self.by-version."marked"."0.3.5";
-  by-spec."marked".">=0.2.9" =
-    self.by-version."marked"."0.3.5";
-  by-spec."marked"."^0.3.2" =
-    self.by-version."marked"."0.3.5";
-  by-spec."mathjs"."~0.19.0" =
-    self.by-version."mathjs"."0.19.0";
-  by-version."mathjs"."0.19.0" = self.buildNodePackage {
-    name = "mathjs-0.19.0";
-    version = "0.19.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mathjs/-/mathjs-0.19.0.tgz";
-      name = "mathjs-0.19.0.tgz";
-      sha1 = "35f7bdfcca1431dac5438cbf095eefce4e1aae78";
-    };
-    deps = {
-      "bignumber.js-1.5.0" = self.by-version."bignumber.js"."1.5.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."maxmin"."^1.1.0" =
-    self.by-version."maxmin"."1.1.0";
-  by-version."maxmin"."1.1.0" = self.buildNodePackage {
-    name = "maxmin-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz";
-      name = "maxmin-1.1.0.tgz";
-      sha1 = "71365e84a99dd8f8b3f7d5fde2f00d1e7f73be61";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "figures-1.7.0" = self.by-version."figures"."1.7.0";
-      "gzip-size-1.0.0" = self.by-version."gzip-size"."1.0.0";
-      "pretty-bytes-1.0.4" = self.by-version."pretty-bytes"."1.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mdns-js"."*" =
-    self.by-version."mdns-js"."0.5.0";
-  by-version."mdns-js"."0.5.0" = self.buildNodePackage {
-    name = "mdns-js-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mdns-js/-/mdns-js-0.5.0.tgz";
-      name = "mdns-js-0.5.0.tgz";
-      sha1 = "4c8abb6ba7cabdc892d39228c3faa2556e09cf87";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "mdns-js-packet-0.2.0" = self.by-version."mdns-js-packet"."0.2.0";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mdns-js-packet"."~0.2.0" =
-    self.by-version."mdns-js-packet"."0.2.0";
-  by-version."mdns-js-packet"."0.2.0" = self.buildNodePackage {
-    name = "mdns-js-packet-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mdns-js-packet/-/mdns-js-packet-0.2.0.tgz";
-      name = "mdns-js-packet-0.2.0.tgz";
-      sha1 = "642409e8183c7561cc60615bbd1420ec2fad7616";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "qap-3.1.3" = self.by-version."qap"."3.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mdurl"."~1.0.0" =
-    self.by-version."mdurl"."1.0.1";
-  by-version."mdurl"."1.0.1" = self.buildNodePackage {
-    name = "mdurl-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz";
-      name = "mdurl-1.0.1.tgz";
-      sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."meat"."*" =
-    self.by-version."meat"."0.3.4";
-  by-version."meat"."0.3.4" = self.buildNodePackage {
-    name = "meat-0.3.4";
-    version = "0.3.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/meat/-/meat-0.3.4.tgz";
-      name = "meat-0.3.4.tgz";
-      sha1 = "e2b6b721014096e30de9c97114e1dd6696135d13";
-    };
-    deps = {
-      "express-2.5.11" = self.by-version."express"."2.5.11";
-      "jade-0.27.0" = self.by-version."jade"."0.27.0";
-      "open-0.0.2" = self.by-version."open"."0.0.2";
-      "winston-0.6.2" = self.by-version."winston"."0.6.2";
-      "mkdirp-0.3.0" = self.by-version."mkdirp"."0.3.0";
-      "node.extend-1.0.0" = self.by-version."node.extend"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "meat" = self.by-version."meat"."0.3.4";
-  by-spec."media-typer"."0.2.0" =
-    self.by-version."media-typer"."0.2.0";
-  by-version."media-typer"."0.2.0" = self.buildNodePackage {
-    name = "media-typer-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/media-typer/-/media-typer-0.2.0.tgz";
-      name = "media-typer-0.2.0.tgz";
-      sha1 = "d8a065213adfeaa2e76321a2b6dda36ff6335984";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."media-typer"."0.3.0" =
-    self.by-version."media-typer"."0.3.0";
-  by-version."media-typer"."0.3.0" = self.buildNodePackage {
-    name = "media-typer-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
-      name = "media-typer-0.3.0.tgz";
-      sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."memdown"."^0.10.2" =
-    self.by-version."memdown"."0.10.2";
-  by-version."memdown"."0.10.2" = self.buildNodePackage {
-    name = "memdown-0.10.2";
-    version = "0.10.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/memdown/-/memdown-0.10.2.tgz";
-      name = "memdown-0.10.2.tgz";
-      sha1 = "a15ed0b6a8f216848d80a75c0fe8dd0bad89b608";
-    };
-    deps = {
-      "abstract-leveldown-0.12.4" = self.by-version."abstract-leveldown"."0.12.4";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "ltgt-1.0.2" = self.by-version."ltgt"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."memory-fs"."^0.2.0" =
-    self.by-version."memory-fs"."0.2.0";
-  by-version."memory-fs"."0.2.0" = self.buildNodePackage {
-    name = "memory-fs-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz";
-      name = "memory-fs-0.2.0.tgz";
-      sha1 = "f2bb25368bc121e391c2520de92969caee0a0290";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."memory-fs"."^0.3.0" =
-    self.by-version."memory-fs"."0.3.0";
-  by-version."memory-fs"."0.3.0" = self.buildNodePackage {
-    name = "memory-fs-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz";
-      name = "memory-fs-0.3.0.tgz";
-      sha1 = "7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20";
-    };
-    deps = {
-      "errno-0.1.4" = self.by-version."errno"."0.1.4";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."memory-fs"."~0.3.0" =
-    self.by-version."memory-fs"."0.3.0";
-  by-spec."meow"."^3.1.0" =
-    self.by-version."meow"."3.7.0";
-  by-version."meow"."3.7.0" = self.buildNodePackage {
-    name = "meow-3.7.0";
-    version = "3.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://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.4.1" = self.by-version."loud-rejection"."1.4.1";
-      "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.1.0" = self.by-version."object-assign"."4.1.0";
-      "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."meow"."^3.3.0" =
-    self.by-version."meow"."3.7.0";
-  by-spec."meow"."~2.0.0" =
-    self.by-version."meow"."2.0.0";
-  by-version."meow"."2.0.0" = self.buildNodePackage {
-    name = "meow-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/meow/-/meow-2.0.0.tgz";
-      name = "meow-2.0.0.tgz";
-      sha1 = "8f530a8ecf5d40d3f4b4df93c3472900fba2a8f1";
-    };
-    deps = {
-      "camelcase-keys-1.0.0" = self.by-version."camelcase-keys"."1.0.0";
-      "indent-string-1.2.2" = self.by-version."indent-string"."1.2.2";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "object-assign-1.0.0" = self.by-version."object-assign"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."merge-descriptors"."0.0.2" =
-    self.by-version."merge-descriptors"."0.0.2";
-  by-version."merge-descriptors"."0.0.2" = self.buildNodePackage {
-    name = "merge-descriptors-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz";
-      name = "merge-descriptors-0.0.2.tgz";
-      sha1 = "c36a52a781437513c57275f39dd9d317514ac8c7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."merge-descriptors"."1.0.0" =
-    self.by-version."merge-descriptors"."1.0.0";
-  by-version."merge-descriptors"."1.0.0" = self.buildNodePackage {
-    name = "merge-descriptors-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz";
-      name = "merge-descriptors-1.0.0.tgz";
-      sha1 = "2169cf7538e1b0cc87fb88e1502d8474bbf79864";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."merge-descriptors"."1.0.1" =
-    self.by-version."merge-descriptors"."1.0.1";
-  by-version."merge-descriptors"."1.0.1" = self.buildNodePackage {
-    name = "merge-descriptors-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
-      name = "merge-descriptors-1.0.1.tgz";
-      sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."merge-stream"."^1.0.0" =
-    self.by-version."merge-stream"."1.0.0";
-  by-version."merge-stream"."1.0.0" = self.buildNodePackage {
-    name = "merge-stream-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.0.tgz";
-      name = "merge-stream-1.0.0.tgz";
-      sha1 = "9cfd156fef35421e2b5403ce11dc6eb1962b026e";
-    };
-    deps = {
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."method-override"."1.0.0" =
-    self.by-version."method-override"."1.0.0";
-  by-version."method-override"."1.0.0" = self.buildNodePackage {
-    name = "method-override-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/method-override/-/method-override-1.0.0.tgz";
-      name = "method-override-1.0.0.tgz";
-      sha1 = "9e5bfbd80f3b9e043801dd3fe60bbab0f15b5f61";
-    };
-    deps = {
-      "methods-1.1.2" = self.by-version."methods"."1.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."method-override"."^1.0.0" =
-    self.by-version."method-override"."1.0.2";
-  by-version."method-override"."1.0.2" = self.buildNodePackage {
-    name = "method-override-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/method-override/-/method-override-1.0.2.tgz";
-      name = "method-override-1.0.2.tgz";
-      sha1 = "d6f80275db23a23380028c9215b97470be01d689";
-    };
-    deps = {
-      "methods-1.0.0" = self.by-version."methods"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."method-override"."~2.3.5" =
-    self.by-version."method-override"."2.3.6";
-  by-version."method-override"."2.3.6" = self.buildNodePackage {
-    name = "method-override-2.3.6";
-    version = "2.3.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/method-override/-/method-override-2.3.6.tgz";
-      name = "method-override-2.3.6.tgz";
-      sha1 = "209261cc588d45d9d5a022ff20d7d5eb8e92179e";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "methods-1.1.2" = self.by-version."methods"."1.1.2";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "vary-1.1.0" = self.by-version."vary"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."methods"."*" =
-    self.by-version."methods"."1.1.2";
-  by-version."methods"."1.1.2" = self.buildNodePackage {
-    name = "methods-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
-      name = "methods-1.1.2.tgz";
-      sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."methods"."0.0.1" =
-    self.by-version."methods"."0.0.1";
-  by-version."methods"."0.0.1" = self.buildNodePackage {
-    name = "methods-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/methods/-/methods-0.0.1.tgz";
-      name = "methods-0.0.1.tgz";
-      sha1 = "277c90f8bef39709645a8371c51c3b6c648e068c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."methods"."0.1.0" =
-    self.by-version."methods"."0.1.0";
-  by-version."methods"."0.1.0" = self.buildNodePackage {
-    name = "methods-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz";
-      name = "methods-0.1.0.tgz";
-      sha1 = "335d429eefd21b7bacf2e9c922a8d2bd14a30e4f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."methods"."1.0.0" =
-    self.by-version."methods"."1.0.0";
-  by-version."methods"."1.0.0" = self.buildNodePackage {
-    name = "methods-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/methods/-/methods-1.0.0.tgz";
-      name = "methods-1.0.0.tgz";
-      sha1 = "9a73d86375dfcef26ef61ca3e4b8a2e2538a80e3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."methods"."1.0.1" =
-    self.by-version."methods"."1.0.1";
-  by-version."methods"."1.0.1" = self.buildNodePackage {
-    name = "methods-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/methods/-/methods-1.0.1.tgz";
-      name = "methods-1.0.1.tgz";
-      sha1 = "75bc91943dffd7da037cf3eeb0ed73a0037cd14b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."methods"."1.1.0" =
-    self.by-version."methods"."1.1.0";
-  by-version."methods"."1.1.0" = self.buildNodePackage {
-    name = "methods-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/methods/-/methods-1.1.0.tgz";
-      name = "methods-1.1.0.tgz";
-      sha1 = "5dca4ee12df52ff3b056145986a8f01cbc86436f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."methods"."~1.1.1" =
-    self.by-version."methods"."1.1.2";
-  by-spec."methods"."~1.1.2" =
-    self.by-version."methods"."1.1.2";
-  by-spec."microee"."0.0.2" =
-    self.by-version."microee"."0.0.2";
-  by-version."microee"."0.0.2" = self.buildNodePackage {
-    name = "microee-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/microee/-/microee-0.0.2.tgz";
-      name = "microee-0.0.2.tgz";
-      sha1 = "72e80d477075e5e799470f5defea96d1dd121587";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."micromatch"."^2.1.5" =
-    self.by-version."micromatch"."2.3.8";
-  by-version."micromatch"."2.3.8" = self.buildNodePackage {
-    name = "micromatch-2.3.8";
-    version = "2.3.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/micromatch/-/micromatch-2.3.8.tgz";
-      name = "micromatch-2.3.8.tgz";
-      sha1 = "94fbf8f37ed9edeca06bf1c8f7b743fb5f6f5854";
-    };
-    deps = {
-      "arr-diff-2.0.0" = self.by-version."arr-diff"."2.0.0";
-      "array-unique-0.2.1" = self.by-version."array-unique"."0.2.1";
-      "braces-1.8.5" = self.by-version."braces"."1.8.5";
-      "expand-brackets-0.1.5" = self.by-version."expand-brackets"."0.1.5";
-      "extglob-0.3.2" = self.by-version."extglob"."0.3.2";
-      "filename-regex-2.0.0" = self.by-version."filename-regex"."2.0.0";
-      "is-extglob-1.0.0" = self.by-version."is-extglob"."1.0.0";
-      "is-glob-2.0.1" = self.by-version."is-glob"."2.0.1";
-      "kind-of-3.0.3" = self.by-version."kind-of"."3.0.3";
-      "normalize-path-2.0.1" = self.by-version."normalize-path"."2.0.1";
-      "object.omit-2.0.0" = self.by-version."object.omit"."2.0.0";
-      "parse-glob-3.0.4" = self.by-version."parse-glob"."3.0.4";
-      "regex-cache-0.4.3" = self.by-version."regex-cache"."0.4.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."micromatch"."^2.3.7" =
-    self.by-version."micromatch"."2.3.8";
-  by-spec."miller-rabin"."^4.0.0" =
-    self.by-version."miller-rabin"."4.0.0";
-  by-version."miller-rabin"."4.0.0" = self.buildNodePackage {
-    name = "miller-rabin-4.0.0";
-    version = "4.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz";
-      name = "miller-rabin-4.0.0.tgz";
-      sha1 = "4a62fb1d42933c05583982f4c716f6fb9e6c6d3d";
-    };
-    deps = {
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "brorand-1.0.5" = self.by-version."brorand"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime"."*" =
-    self.by-version."mime"."1.3.4";
-  by-version."mime"."1.3.4" = self.buildNodePackage {
-    name = "mime-1.3.4";
-    version = "1.3.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz";
-      name = "mime-1.3.4.tgz";
-      sha1 = "115f9e3b6b3daf2959983cb38f149a2d40eb5d53";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime"."1.2.11" =
-    self.by-version."mime"."1.2.11";
-  by-version."mime"."1.2.11" = self.buildNodePackage {
-    name = "mime-1.2.11";
-    version = "1.2.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz";
-      name = "mime-1.2.11.tgz";
-      sha1 = "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime"."1.2.4" =
-    self.by-version."mime"."1.2.4";
-  by-version."mime"."1.2.4" = self.buildNodePackage {
-    name = "mime-1.2.4";
-    version = "1.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz";
-      name = "mime-1.2.4.tgz";
-      sha1 = "11b5fdaf29c2509255176b80ad520294f5de92b7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime"."1.2.6" =
-    self.by-version."mime"."1.2.6";
-  by-version."mime"."1.2.6" = self.buildNodePackage {
-    name = "mime-1.2.6";
-    version = "1.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime/-/mime-1.2.6.tgz";
-      name = "mime-1.2.6.tgz";
-      sha1 = "b1f86c768c025fa87b48075f1709f28aeaf20365";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime"."1.2.x" =
-    self.by-version."mime"."1.2.11";
-  by-spec."mime"."1.3.4" =
-    self.by-version."mime"."1.3.4";
-  by-spec."mime".">= 0.0.1" =
-    self.by-version."mime"."1.3.4";
-  by-spec."mime".">= 1.2.6" =
-    self.by-version."mime"."1.3.4";
-  by-spec."mime".">=1.2.11" =
-    self.by-version."mime"."1.3.4";
-  by-spec."mime"."^1.2.11" =
-    self.by-version."mime"."1.3.4";
-  by-spec."mime"."^1.3.4" =
-    self.by-version."mime"."1.3.4";
-  by-spec."mime"."~1.2.11" =
-    self.by-version."mime"."1.2.11";
-  by-spec."mime"."~1.2.2" =
-    self.by-version."mime"."1.2.11";
-  by-spec."mime"."~1.2.7" =
-    self.by-version."mime"."1.2.11";
-  by-spec."mime"."~1.2.9" =
-    self.by-version."mime"."1.2.11";
-  by-spec."mime-db".">= 1.23.0 < 2" =
-    self.by-version."mime-db"."1.23.0";
-  by-version."mime-db"."1.23.0" = self.buildNodePackage {
-    name = "mime-db-1.23.0";
-    version = "1.23.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz";
-      name = "mime-db-1.23.0.tgz";
-      sha1 = "a31b4070adaea27d732ea333740a64d0ec9a6659";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime-db"."~1.12.0" =
-    self.by-version."mime-db"."1.12.0";
-  by-version."mime-db"."1.12.0" = self.buildNodePackage {
-    name = "mime-db-1.12.0";
-    version = "1.12.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz";
-      name = "mime-db-1.12.0.tgz";
-      sha1 = "3d0c63180f458eb10d325aaa37d7c58ae312e9d7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime-db"."~1.23.0" =
-    self.by-version."mime-db"."1.23.0";
-  by-spec."mime-types"."^2.1.10" =
-    self.by-version."mime-types"."2.1.11";
-  by-version."mime-types"."2.1.11" = self.buildNodePackage {
-    name = "mime-types-2.1.11";
-    version = "2.1.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz";
-      name = "mime-types-2.1.11.tgz";
-      sha1 = "c259c471bda808a85d6cd193b430a5fae4473b3c";
-    };
-    deps = {
-      "mime-db-1.23.0" = self.by-version."mime-db"."1.23.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime-types"."^2.1.3" =
-    self.by-version."mime-types"."2.1.11";
-  by-spec."mime-types"."^2.1.7" =
-    self.by-version."mime-types"."2.1.11";
-  by-spec."mime-types"."~1.0.0" =
-    self.by-version."mime-types"."1.0.2";
-  by-version."mime-types"."1.0.2" = self.buildNodePackage {
-    name = "mime-types-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz";
-      name = "mime-types-1.0.2.tgz";
-      sha1 = "995ae1392ab8affcbfcb2641dd054e943c0d5dce";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime-types"."~1.0.1" =
-    self.by-version."mime-types"."1.0.2";
-  by-spec."mime-types"."~2.0.1" =
-    self.by-version."mime-types"."2.0.14";
-  by-version."mime-types"."2.0.14" = self.buildNodePackage {
-    name = "mime-types-2.0.14";
-    version = "2.0.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz";
-      name = "mime-types-2.0.14.tgz";
-      sha1 = "310e159db23e077f8bb22b748dabfa4957140aa6";
-    };
-    deps = {
-      "mime-db-1.12.0" = self.by-version."mime-db"."1.12.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mime-types"."~2.0.3" =
-    self.by-version."mime-types"."2.0.14";
-  by-spec."mime-types"."~2.0.4" =
-    self.by-version."mime-types"."2.0.14";
-  by-spec."mime-types"."~2.0.9" =
-    self.by-version."mime-types"."2.0.14";
-  by-spec."mime-types"."~2.1.11" =
-    self.by-version."mime-types"."2.1.11";
-  by-spec."mime-types"."~2.1.2" =
-    self.by-version."mime-types"."2.1.11";
-  by-spec."mime-types"."~2.1.6" =
-    self.by-version."mime-types"."2.1.11";
-  by-spec."mime-types"."~2.1.7" =
-    self.by-version."mime-types"."2.1.11";
-  by-spec."mime-types"."~2.1.9" =
-    self.by-version."mime-types"."2.1.11";
-  by-spec."mimelib"."^0.2.19" =
-    self.by-version."mimelib"."0.2.19";
-  by-version."mimelib"."0.2.19" = self.buildNodePackage {
-    name = "mimelib-0.2.19";
-    version = "0.2.19";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mimelib/-/mimelib-0.2.19.tgz";
-      name = "mimelib-0.2.19.tgz";
-      sha1 = "37ec90a6ac7d00954851d0b2c31618f0a49da0ee";
-    };
-    deps = {
-      "encoding-0.1.12" = self.by-version."encoding"."0.1.12";
-      "addressparser-0.3.2" = self.by-version."addressparser"."0.3.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mimelib"."~0.2.15" =
-    self.by-version."mimelib"."0.2.19";
-  by-spec."minilog"."~2.0.2" =
-    self.by-version."minilog"."2.0.8";
-  by-version."minilog"."2.0.8" = self.buildNodePackage {
-    name = "minilog-2.0.8";
-    version = "2.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minilog/-/minilog-2.0.8.tgz";
-      name = "minilog-2.0.8.tgz";
-      sha1 = "21ffdc429be2b50cb361df990a40a7731288e935";
-    };
-    deps = {
-      "microee-0.0.2" = self.by-version."microee"."0.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimalistic-assert"."^1.0.0" =
-    self.by-version."minimalistic-assert"."1.0.0";
-  by-version."minimalistic-assert"."1.0.0" = self.buildNodePackage {
-    name = "minimalistic-assert-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz";
-      name = "minimalistic-assert-1.0.0.tgz";
-      sha1 = "702be2dda6b37f4836bcb3f5db56641b64a1d3d3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimatch"."0.0.x" =
-    self.by-version."minimatch"."0.0.5";
-  by-version."minimatch"."0.0.5" = self.buildNodePackage {
-    name = "minimatch-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimatch/-/minimatch-0.0.5.tgz";
-      name = "minimatch-0.0.5.tgz";
-      sha1 = "96bb490bbd3ba6836bbfac111adf75301b1584de";
-    };
-    deps = {
-      "lru-cache-1.0.6" = self.by-version."lru-cache"."1.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimatch"."0.2" =
-    self.by-version."minimatch"."0.2.14";
-  by-version."minimatch"."0.2.14" = self.buildNodePackage {
-    name = "minimatch-0.2.14";
-    version = "0.2.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz";
-      name = "minimatch-0.2.14.tgz";
-      sha1 = "c74e780574f63c6f9a090e90efbe6ef53a6a756a";
-    };
-    deps = {
-      "lru-cache-2.7.3" = self.by-version."lru-cache"."2.7.3";
-      "sigmund-1.0.1" = self.by-version."sigmund"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimatch"."0.3" =
-    self.by-version."minimatch"."0.3.0";
-  by-version."minimatch"."0.3.0" = self.buildNodePackage {
-    name = "minimatch-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz";
-      name = "minimatch-0.3.0.tgz";
-      sha1 = "275d8edaac4f1bb3326472089e7949c8394699dd";
-    };
-    deps = {
-      "lru-cache-2.7.3" = self.by-version."lru-cache"."2.7.3";
-      "sigmund-1.0.1" = self.by-version."sigmund"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimatch"."1" =
-    self.by-version."minimatch"."1.0.0";
-  by-version."minimatch"."1.0.0" = self.buildNodePackage {
-    name = "minimatch-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz";
-      name = "minimatch-1.0.0.tgz";
-      sha1 = "e0dd2120b49e1b724ce8d714c520822a9438576d";
-    };
-    deps = {
-      "lru-cache-2.7.3" = self.by-version."lru-cache"."2.7.3";
-      "sigmund-1.0.1" = self.by-version."sigmund"."1.0.1";
-    };
-    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 = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz";
-      name = "minimatch-3.0.0.tgz";
-      sha1 = "5236157a51e4f004c177fb3c527ff7dd78f0ef83";
-    };
-    deps = {
-      "brace-expansion-1.1.4" = self.by-version."brace-expansion"."1.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimatch"."2.0.x" =
-    self.by-version."minimatch"."2.0.10";
-  by-version."minimatch"."2.0.10" = self.buildNodePackage {
-    name = "minimatch-2.0.10";
-    version = "2.0.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz";
-      name = "minimatch-2.0.10.tgz";
-      sha1 = "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7";
-    };
-    deps = {
-      "brace-expansion-1.1.4" = self.by-version."brace-expansion"."1.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimatch"."2.x" =
-    self.by-version."minimatch"."2.0.10";
-  by-spec."minimatch".">=0.2.14 <2.0.0-0" =
-    self.by-version."minimatch"."1.0.0";
-  by-spec."minimatch"."^1.0.0" =
-    self.by-version."minimatch"."1.0.0";
-  by-spec."minimatch"."^2.0.1" =
-    self.by-version."minimatch"."2.0.10";
-  by-spec."minimatch"."^2.0.10" =
-    self.by-version."minimatch"."2.0.10";
-  by-spec."minimatch"."^3.0.0" =
-    self.by-version."minimatch"."3.0.0";
-  by-spec."minimatch"."~0.2.11" =
-    self.by-version."minimatch"."0.2.14";
-  by-spec."minimatch"."~0.2.12" =
-    self.by-version."minimatch"."0.2.14";
-  by-spec."minimatch"."~0.2.9" =
-    self.by-version."minimatch"."0.2.14";
-  by-spec."minimatch"."~2.0.0" =
-    self.by-version."minimatch"."2.0.10";
-  by-spec."minimatch"."~3.0.0" =
-    self.by-version."minimatch"."3.0.0";
-  by-spec."minimist"."0.0.8" =
-    self.by-version."minimist"."0.0.8";
-  by-version."minimist"."0.0.8" = self.buildNodePackage {
-    name = "minimist-0.0.8";
-    version = "0.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
-      name = "minimist-0.0.8.tgz";
-      sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimist"."1.2.0" =
-    self.by-version."minimist"."1.2.0";
-  by-version."minimist"."1.2.0" = self.buildNodePackage {
-    name = "minimist-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://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"."^0.2.0" =
-    self.by-version."minimist"."0.2.0";
-  by-version."minimist"."0.2.0" = self.buildNodePackage {
-    name = "minimist-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz";
-      name = "minimist-0.2.0.tgz";
-      sha1 = "4dffe525dae2b864c66c2e23c6271d7afdecefce";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimist"."^1.1.0" =
-    self.by-version."minimist"."1.2.0";
-  by-spec."minimist"."^1.1.1" =
-    self.by-version."minimist"."1.2.0";
-  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."minimist"."~0.0.1" =
-    self.by-version."minimist"."0.0.10";
-  by-version."minimist"."0.0.10" = self.buildNodePackage {
-    name = "minimist-0.0.10";
-    version = "0.0.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz";
-      name = "minimist-0.0.10.tgz";
-      sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."minimist"."~0.0.7" =
-    self.by-version."minimist"."0.0.10";
-  by-spec."ministyle"."~0.1.3" =
-    self.by-version."ministyle"."0.1.4";
-  by-version."ministyle"."0.1.4" = self.buildNodePackage {
-    name = "ministyle-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ministyle/-/ministyle-0.1.4.tgz";
-      name = "ministyle-0.1.4.tgz";
-      sha1 = "b10481eb16aa8f7b6cd983817393a44da0e5a0cd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."miniwrite"."~0.1.3" =
-    self.by-version."miniwrite"."0.1.4";
-  by-version."miniwrite"."0.1.4" = self.buildNodePackage {
-    name = "miniwrite-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/miniwrite/-/miniwrite-0.1.4.tgz";
-      name = "miniwrite-0.1.4.tgz";
-      sha1 = "72f02385c0ac37d542efe27dc6764b31908725ce";
-    };
-    deps = {
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mkdirp"."*" =
-    self.by-version."mkdirp"."0.5.1";
-  by-version."mkdirp"."0.5.1" = self.buildNodePackage {
-    name = "mkdirp-0.5.1";
-    version = "0.5.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://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 = [ ];
-  };
-  "mkdirp" = self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp"."0.0.x" =
-    self.by-version."mkdirp"."0.0.7";
-  by-version."mkdirp"."0.0.7" = self.buildNodePackage {
-    name = "mkdirp-0.0.7";
-    version = "0.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.0.7.tgz";
-      name = "mkdirp-0.0.7.tgz";
-      sha1 = "d89b4f0e4c3e5e5ca54235931675e094fe1a5072";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mkdirp"."0.3.0" =
-    self.by-version."mkdirp"."0.3.0";
-  by-version."mkdirp"."0.3.0" = self.buildNodePackage {
-    name = "mkdirp-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz";
-      name = "mkdirp-0.3.0.tgz";
-      sha1 = "1bbf5ab1ba827af23575143490426455f481fe1e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mkdirp"."0.3.5" =
-    self.by-version."mkdirp"."0.3.5";
-  by-version."mkdirp"."0.3.5" = self.buildNodePackage {
-    name = "mkdirp-0.3.5";
-    version = "0.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
-      name = "mkdirp-0.3.5.tgz";
-      sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mkdirp"."0.3.x" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."0.4.0" =
-    self.by-version."mkdirp"."0.4.0";
-  by-version."mkdirp"."0.4.0" = self.buildNodePackage {
-    name = "mkdirp-0.4.0";
-    version = "0.4.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.4.0.tgz";
-      name = "mkdirp-0.4.0.tgz";
-      sha1 = "291ac2a2d43a19c478662577b5be846fe83b5923";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mkdirp"."0.5" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp"."0.5.0" =
-    self.by-version."mkdirp"."0.5.0";
-  by-version."mkdirp"."0.5.0" = self.buildNodePackage {
-    name = "mkdirp-0.5.0";
-    version = "0.5.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz";
-      name = "mkdirp-0.5.0.tgz";
-      sha1 = "1d73076a6df986cd9344e15e71fcc05a4c9abf12";
-    };
-    deps = {
-      "minimist-0.0.8" = self.by-version."minimist"."0.0.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mkdirp"."0.5.1" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp"."0.5.x" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp"."0.x.x" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp".">=0.3.5" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp".">=0.3.5 <1.0.0-0" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp".">=0.5 0" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp"."^0.3.5" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."^0.5.0" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp"."^0.5.1" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp"."~0.3.3" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."~0.3.4" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."~0.3.5" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."~0.5.0" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mkdirp"."~0.5.1" =
-    self.by-version."mkdirp"."0.5.1";
-  by-spec."mocha"."*" =
-    self.by-version."mocha"."2.5.3";
-  by-version."mocha"."2.5.3" = self.buildNodePackage {
-    name = "mocha-2.5.3";
-    version = "2.5.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz";
-      name = "mocha-2.5.3.tgz";
-      sha1 = "161be5bdeb496771eb9b35745050b622b5aefc58";
-    };
-    deps = {
-      "commander-2.3.0" = self.by-version."commander"."2.3.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "diff-1.4.0" = self.by-version."diff"."1.4.0";
-      "escape-string-regexp-1.0.2" = self.by-version."escape-string-regexp"."1.0.2";
-      "glob-3.2.11" = self.by-version."glob"."3.2.11";
-      "growl-1.9.2" = self.by-version."growl"."1.9.2";
-      "jade-0.26.3" = self.by-version."jade"."0.26.3";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "supports-color-1.2.0" = self.by-version."supports-color"."1.2.0";
-      "to-iso-string-0.0.2" = self.by-version."to-iso-string"."0.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "mocha" = self.by-version."mocha"."2.5.3";
-  by-spec."mocha-phantomjs"."*" =
-    self.by-version."mocha-phantomjs"."4.0.2";
-  by-version."mocha-phantomjs"."4.0.2" = self.buildNodePackage {
-    name = "mocha-phantomjs-4.0.2";
-    version = "4.0.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mocha-phantomjs/-/mocha-phantomjs-4.0.2.tgz";
-      name = "mocha-phantomjs-4.0.2.tgz";
-      sha1 = "808e43e01f3250201660c52cf441e6992d89dd9b";
-    };
-    deps = {
-      "phantomjs-1.9.7-15" = self.by-version."phantomjs"."1.9.7-15";
-      "mocha-phantomjs-core-1.3.1" = self.by-version."mocha-phantomjs-core"."1.3.1";
-      "commander-2.9.0" = self.by-version."commander"."2.9.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "mocha-phantomjs" = self.by-version."mocha-phantomjs"."4.0.2";
-  by-spec."mocha-phantomjs-core"."^1.1.0" =
-    self.by-version."mocha-phantomjs-core"."1.3.1";
-  by-version."mocha-phantomjs-core"."1.3.1" = self.buildNodePackage {
-    name = "mocha-phantomjs-core-1.3.1";
-    version = "1.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mocha-phantomjs-core/-/mocha-phantomjs-core-1.3.1.tgz";
-      name = "mocha-phantomjs-core-1.3.1.tgz";
-      sha1 = "586538c8d71fa8de90c41a46acc0481c1fb83e18";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mocha-unfunk-reporter"."*" =
-    self.by-version."mocha-unfunk-reporter"."0.4.0";
-  by-version."mocha-unfunk-reporter"."0.4.0" = self.buildNodePackage {
-    name = "mocha-unfunk-reporter-0.4.0";
-    version = "0.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mocha-unfunk-reporter/-/mocha-unfunk-reporter-0.4.0.tgz";
-      name = "mocha-unfunk-reporter-0.4.0.tgz";
-      sha1 = "59eda97aec6ae6e26d7af4173490a65b7b082d20";
-    };
-    deps = {
-      "jsesc-0.4.3" = self.by-version."jsesc"."0.4.3";
-      "unfunk-diff-0.0.2" = self.by-version."unfunk-diff"."0.0.2";
-      "miniwrite-0.1.4" = self.by-version."miniwrite"."0.1.4";
-      "ministyle-0.1.4" = self.by-version."ministyle"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "mocha-unfunk-reporter" = self.by-version."mocha-unfunk-reporter"."0.4.0";
-  by-spec."module-deps"."^3.7.11" =
-    self.by-version."module-deps"."3.9.1";
-  by-version."module-deps"."3.9.1" = self.buildNodePackage {
-    name = "module-deps-3.9.1";
-    version = "3.9.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/module-deps/-/module-deps-3.9.1.tgz";
-      name = "module-deps-3.9.1.tgz";
-      sha1 = "ea75caf9199090d25b0d5512b5acacb96e7f87f3";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "browser-resolve-1.11.2" = self.by-version."browser-resolve"."1.11.2";
-      "concat-stream-1.4.10" = self.by-version."concat-stream"."1.4.10";
-      "defined-1.0.0" = self.by-version."defined"."1.0.0";
-      "detective-4.3.1" = self.by-version."detective"."4.3.1";
-      "duplexer2-0.0.2" = self.by-version."duplexer2"."0.0.2";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "parents-1.0.1" = self.by-version."parents"."1.0.1";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-      "stream-combiner2-1.0.2" = self.by-version."stream-combiner2"."1.0.2";
-      "subarg-1.0.0" = self.by-version."subarg"."1.0.0";
-      "through2-1.1.1" = self.by-version."through2"."1.1.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."module-deps"."^4.0.2" =
-    self.by-version."module-deps"."4.0.7";
-  by-version."module-deps"."4.0.7" = self.buildNodePackage {
-    name = "module-deps-4.0.7";
-    version = "4.0.7";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/module-deps/-/module-deps-4.0.7.tgz";
-      name = "module-deps-4.0.7.tgz";
-      sha1 = "edfeb3937be7359bc14a6672c22ef124887f6ed2";
-    };
-    deps = {
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "browser-resolve-1.11.2" = self.by-version."browser-resolve"."1.11.2";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "defined-1.0.0" = self.by-version."defined"."1.0.0";
-      "detective-4.3.1" = self.by-version."detective"."4.3.1";
-      "duplexer2-0.1.4" = self.by-version."duplexer2"."0.1.4";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "parents-1.0.1" = self.by-version."parents"."1.0.1";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-      "stream-combiner2-1.1.1" = self.by-version."stream-combiner2"."1.1.1";
-      "subarg-1.0.0" = self.by-version."subarg"."1.0.0";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."moment"."2.1.0" =
-    self.by-version."moment"."2.1.0";
-  by-version."moment"."2.1.0" = self.buildNodePackage {
-    name = "moment-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/moment/-/moment-2.1.0.tgz";
-      name = "moment-2.1.0.tgz";
-      sha1 = "1fd7b1134029a953c6ea371dbaee37598ac03567";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."moment"."2.10.6" =
-    self.by-version."moment"."2.10.6";
-  by-version."moment"."2.10.6" = self.buildNodePackage {
-    name = "moment-2.10.6";
-    version = "2.10.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/moment/-/moment-2.10.6.tgz";
-      name = "moment-2.10.6.tgz";
-      sha1 = "6cb21967c79cba7b0ca5e66644f173662b3efa77";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."moment"."2.x.x" =
-    self.by-version."moment"."2.13.0";
-  by-version."moment"."2.13.0" = self.buildNodePackage {
-    name = "moment-2.13.0";
-    version = "2.13.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/moment/-/moment-2.13.0.tgz";
-      name = "moment-2.13.0.tgz";
-      sha1 = "24162d99521e6d40f99ae6939e806d2139eaac52";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."moment".">= 2.6.0" =
-    self.by-version."moment"."2.13.0";
-  by-spec."moment".">=2.4.0" =
-    self.by-version."moment"."2.13.0";
-  by-spec."moment".">=2.5.0" =
-    self.by-version."moment"."2.13.0";
-  by-spec."moment"."^2.10.6" =
-    self.by-version."moment"."2.13.0";
-  by-spec."moment"."^2.8.4" =
-    self.by-version."moment"."2.13.0";
-  by-spec."moment"."~2.11.2" =
-    self.by-version."moment"."2.11.2";
-  by-version."moment"."2.11.2" = self.buildNodePackage {
-    name = "moment-2.11.2";
-    version = "2.11.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/moment/-/moment-2.11.2.tgz";
-      name = "moment-2.11.2.tgz";
-      sha1 = "87968e5f95ac038c2e42ac959c75819cd3f52901";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."moment"."~2.5.0" =
-    self.by-version."moment"."2.5.1";
-  by-version."moment"."2.5.1" = self.buildNodePackage {
-    name = "moment-2.5.1";
-    version = "2.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/moment/-/moment-2.5.1.tgz";
-      name = "moment-2.5.1.tgz";
-      sha1 = "7146a3900533064ca799d5e792f4e480ee0e82bc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."moment"."~2.5.1" =
-    self.by-version."moment"."2.5.1";
-  by-spec."moment-timezone".">=0.0.3" =
-    self.by-version."moment-timezone"."0.5.4";
-  by-version."moment-timezone"."0.5.4" = self.buildNodePackage {
-    name = "moment-timezone-0.5.4";
-    version = "0.5.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.4.tgz";
-      name = "moment-timezone-0.5.4.tgz";
-      sha1 = "b6188b8f08557ea9ffb0d42899f5b171e1858e93";
-    };
-    deps = {
-      "moment-2.13.0" = self.by-version."moment"."2.13.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."moment-timezone".">=0.3.0" =
-    self.by-version."moment-timezone"."0.5.4";
-  by-spec."moment-timezone"."~0.3.0" =
-    self.by-version."moment-timezone"."0.3.1";
-  by-version."moment-timezone"."0.3.1" = self.buildNodePackage {
-    name = "moment-timezone-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.3.1.tgz";
-      name = "moment-timezone-0.3.1.tgz";
-      sha1 = "3ef47856b02d53b718a10a5ec2023aa299e07bf5";
-    };
-    deps = {
-      "moment-2.13.0" = self.by-version."moment"."2.13.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb"."1.2.14" =
-    self.by-version."mongodb"."1.2.14";
-  by-version."mongodb"."1.2.14" = self.buildNodePackage {
-    name = "mongodb-1.2.14";
-    version = "1.2.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb/-/mongodb-1.2.14.tgz";
-      name = "mongodb-1.2.14.tgz";
-      sha1 = "269665552066437308d0942036646e6795c3a9a3";
-    };
-    deps = {
-      "bson-0.1.8" = self.by-version."bson"."0.1.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb"."1.3.19" =
-    self.by-version."mongodb"."1.3.19";
-  by-version."mongodb"."1.3.19" = self.buildNodePackage {
-    name = "mongodb-1.3.19";
-    version = "1.3.19";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb/-/mongodb-1.3.19.tgz";
-      name = "mongodb-1.3.19.tgz";
-      sha1 = "f229db24098f019d86d135aaf8a1ab5f2658b1d4";
-    };
-    deps = {
-      "bson-0.2.2" = self.by-version."bson"."0.2.2";
-    };
-    optionalDependencies = {
-      "kerberos-0.0.3" = self.by-version."kerberos"."0.0.3";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb"."2.0.46" =
-    self.by-version."mongodb"."2.0.46";
-  by-version."mongodb"."2.0.46" = self.buildNodePackage {
-    name = "mongodb-2.0.46";
-    version = "2.0.46";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb/-/mongodb-2.0.46.tgz";
-      name = "mongodb-2.0.46.tgz";
-      sha1 = "b1b857465e45e259b1e0e033698341a64cb93559";
-    };
-    deps = {
-      "mongodb-core-1.2.19" = self.by-version."mongodb-core"."1.2.19";
-      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
-      "es6-promise-2.1.1" = self.by-version."es6-promise"."2.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb"."2.1.18" =
-    self.by-version."mongodb"."2.1.18";
-  by-version."mongodb"."2.1.18" = self.buildNodePackage {
-    name = "mongodb-2.1.18";
-    version = "2.1.18";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb/-/mongodb-2.1.18.tgz";
-      name = "mongodb-2.1.18.tgz";
-      sha1 = "28d40b515b2be4d5a69ffdd4c535f0df432e4097";
-    };
-    deps = {
-      "es6-promise-3.0.2" = self.by-version."es6-promise"."3.0.2";
-      "mongodb-core-1.3.18" = self.by-version."mongodb-core"."1.3.18";
-      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb".">= 1.2.0 <2.1.0" =
-    self.by-version."mongodb"."2.0.55";
-  by-version."mongodb"."2.0.55" = self.buildNodePackage {
-    name = "mongodb-2.0.55";
-    version = "2.0.55";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb/-/mongodb-2.0.55.tgz";
-      name = "mongodb-2.0.55.tgz";
-      sha1 = "a09dd77259f6bba69f7dd592a011c11aa5761097";
-    };
-    deps = {
-      "mongodb-core-1.2.31" = self.by-version."mongodb-core"."1.2.31";
-      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
-      "es6-promise-2.1.1" = self.by-version."es6-promise"."2.1.1";
-      "kerberos-0.0.21" = self.by-version."kerberos"."0.0.21";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb".">= 1.2.0 <2.2.0" =
-    self.by-version."mongodb"."2.1.21";
-  by-version."mongodb"."2.1.21" = self.buildNodePackage {
-    name = "mongodb-2.1.21";
-    version = "2.1.21";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb/-/mongodb-2.1.21.tgz";
-      name = "mongodb-2.1.21.tgz";
-      sha1 = "764709dbcceb5825b4eb31f95395f965fd442272";
-    };
-    deps = {
-      "es6-promise-3.0.2" = self.by-version."es6-promise"."3.0.2";
-      "mongodb-core-1.3.21" = self.by-version."mongodb-core"."1.3.21";
-      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb"."~2.0" =
-    self.by-version."mongodb"."2.0.55";
-  by-spec."mongodb-core"."1.2.19" =
-    self.by-version."mongodb-core"."1.2.19";
-  by-version."mongodb-core"."1.2.19" = self.buildNodePackage {
-    name = "mongodb-core-1.2.19";
-    version = "1.2.19";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.2.19.tgz";
-      name = "mongodb-core-1.2.19.tgz";
-      sha1 = "fcb35f6b6abc5c3de1f1a4a5db526b9e306f3eb7";
-    };
-    deps = {
-      "bson-0.4.23" = self.by-version."bson"."0.4.23";
-    };
-    optionalDependencies = {
-      "kerberos-0.0.21" = self.by-version."kerberos"."0.0.21";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb-core"."1.2.31" =
-    self.by-version."mongodb-core"."1.2.31";
-  by-version."mongodb-core"."1.2.31" = self.buildNodePackage {
-    name = "mongodb-core-1.2.31";
-    version = "1.2.31";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.2.31.tgz";
-      name = "mongodb-core-1.2.31.tgz";
-      sha1 = "f1e6405f03d40846fdb838a702507affa3cb2c39";
-    };
-    deps = {
-      "bson-0.4.23" = self.by-version."bson"."0.4.23";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."kerberos"."0.0.21"];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb-core"."1.3.18" =
-    self.by-version."mongodb-core"."1.3.18";
-  by-version."mongodb-core"."1.3.18" = self.buildNodePackage {
-    name = "mongodb-core-1.3.18";
-    version = "1.3.18";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.3.18.tgz";
-      name = "mongodb-core-1.3.18.tgz";
-      sha1 = "90684b3b7c7356d65ae356391d30b0f248804c7a";
-    };
-    deps = {
-      "bson-0.4.23" = self.by-version."bson"."0.4.23";
-      "require_optional-1.0.0" = self.by-version."require_optional"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongodb-core"."1.3.21" =
-    self.by-version."mongodb-core"."1.3.21";
-  by-version."mongodb-core"."1.3.21" = self.buildNodePackage {
-    name = "mongodb-core-1.3.21";
-    version = "1.3.21";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.3.21.tgz";
-      name = "mongodb-core-1.3.21.tgz";
-      sha1 = "fe129e7bee2b3b26c1409de02ab60d03f6291cca";
-    };
-    deps = {
-      "bson-0.4.23" = self.by-version."bson"."0.4.23";
-      "require_optional-1.0.0" = self.by-version."require_optional"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongoose"."*" =
-    self.by-version."mongoose"."4.4.20";
-  by-version."mongoose"."4.4.20" = self.buildNodePackage {
-    name = "mongoose-4.4.20";
-    version = "4.4.20";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongoose/-/mongoose-4.4.20.tgz";
-      name = "mongoose-4.4.20.tgz";
-      sha1 = "e974ffb6ae8c50f409801a8497a98e9f3b51f2dd";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "bson-0.4.23" = self.by-version."bson"."0.4.23";
-      "hooks-fixed-1.1.0" = self.by-version."hooks-fixed"."1.1.0";
-      "kareem-1.0.1" = self.by-version."kareem"."1.0.1";
-      "mongodb-2.1.18" = self.by-version."mongodb"."2.1.18";
-      "mpath-0.2.1" = self.by-version."mpath"."0.2.1";
-      "mpromise-0.5.5" = self.by-version."mpromise"."0.5.5";
-      "mquery-1.11.0" = self.by-version."mquery"."1.11.0";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-      "muri-1.1.0" = self.by-version."muri"."1.1.0";
-      "regexp-clone-0.0.1" = self.by-version."regexp-clone"."0.0.1";
-      "sliced-1.0.1" = self.by-version."sliced"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongoose"."3.6.7" =
-    self.by-version."mongoose"."3.6.7";
-  by-version."mongoose"."3.6.7" = self.buildNodePackage {
-    name = "mongoose-3.6.7";
-    version = "3.6.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongoose/-/mongoose-3.6.7.tgz";
-      name = "mongoose-3.6.7.tgz";
-      sha1 = "aa6c9f4dfb740c7721dbe734fbb97714e5ab0ebc";
-    };
-    deps = {
-      "hooks-0.2.1" = self.by-version."hooks"."0.2.1";
-      "mongodb-1.2.14" = self.by-version."mongodb"."1.2.14";
-      "ms-0.1.0" = self.by-version."ms"."0.1.0";
-      "sliced-0.0.3" = self.by-version."sliced"."0.0.3";
-      "muri-0.3.1" = self.by-version."muri"."0.3.1";
-      "mpromise-0.2.1" = self.by-version."mpromise"."0.2.1";
-      "mpath-0.1.1" = self.by-version."mpath"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongoose"."3.6.x" =
-    self.by-version."mongoose"."3.6.20";
-  by-version."mongoose"."3.6.20" = self.buildNodePackage {
-    name = "mongoose-3.6.20";
-    version = "3.6.20";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongoose/-/mongoose-3.6.20.tgz";
-      name = "mongoose-3.6.20.tgz";
-      sha1 = "47263843e6b812ea207eec104c40a36c8d215f53";
-    };
-    deps = {
-      "hooks-0.2.1" = self.by-version."hooks"."0.2.1";
-      "mongodb-1.3.19" = self.by-version."mongodb"."1.3.19";
-      "ms-0.1.0" = self.by-version."ms"."0.1.0";
-      "sliced-0.0.5" = self.by-version."sliced"."0.0.5";
-      "muri-0.3.1" = self.by-version."muri"."0.3.1";
-      "mpromise-0.2.1" = self.by-version."mpromise"."0.2.1";
-      "mpath-0.1.1" = self.by-version."mpath"."0.1.1";
-      "regexp-clone-0.0.1" = self.by-version."regexp-clone"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "mongoose" = self.by-version."mongoose"."3.6.20";
-  by-spec."mongoose"."4.2.3" =
-    self.by-version."mongoose"."4.2.3";
-  by-version."mongoose"."4.2.3" = self.buildNodePackage {
-    name = "mongoose-4.2.3";
-    version = "4.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongoose/-/mongoose-4.2.3.tgz";
-      name = "mongoose-4.2.3.tgz";
-      sha1 = "a6781998d11f7d0f18d496ee035d76bf9f6b99ed";
-    };
-    deps = {
-      "async-0.9.0" = self.by-version."async"."0.9.0";
-      "bson-0.4.23" = self.by-version."bson"."0.4.23";
-      "hooks-fixed-1.1.0" = self.by-version."hooks-fixed"."1.1.0";
-      "kareem-1.0.1" = self.by-version."kareem"."1.0.1";
-      "mongodb-2.0.46" = self.by-version."mongodb"."2.0.46";
-      "mpath-0.1.1" = self.by-version."mpath"."0.1.1";
-      "mpromise-0.5.4" = self.by-version."mpromise"."0.5.4";
-      "mquery-1.6.3" = self.by-version."mquery"."1.6.3";
-      "ms-0.1.0" = self.by-version."ms"."0.1.0";
-      "muri-1.0.0" = self.by-version."muri"."1.0.0";
-      "regexp-clone-0.0.1" = self.by-version."regexp-clone"."0.0.1";
-      "sliced-0.0.5" = self.by-version."sliced"."0.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongoose-lifecycle"."1.0.0" =
-    self.by-version."mongoose-lifecycle"."1.0.0";
-  by-version."mongoose-lifecycle"."1.0.0" = self.buildNodePackage {
-    name = "mongoose-lifecycle-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongoose-lifecycle/-/mongoose-lifecycle-1.0.0.tgz";
-      name = "mongoose-lifecycle-1.0.0.tgz";
-      sha1 = "3bac3f3924a845d147784fc6558dee900b0151e2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mongoose-schema-extend"."*" =
-    self.by-version."mongoose-schema-extend"."0.2.2";
-  by-version."mongoose-schema-extend"."0.2.2" = self.buildNodePackage {
-    name = "mongoose-schema-extend-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mongoose-schema-extend/-/mongoose-schema-extend-0.2.2.tgz";
-      name = "mongoose-schema-extend-0.2.2.tgz";
-      sha1 = "f63dd313c422a3871f5569e36b0d28ca1a224631";
-    };
-    deps = {
-      "harmony-reflect-1.4.6" = self.by-version."harmony-reflect"."1.4.6";
-      "owl-deepcopy-0.0.4" = self.by-version."owl-deepcopy"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "mongoose-schema-extend" = self.by-version."mongoose-schema-extend"."0.2.2";
-  by-spec."morgan"."1.0.0" =
-    self.by-version."morgan"."1.0.0";
-  by-version."morgan"."1.0.0" = self.buildNodePackage {
-    name = "morgan-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/morgan/-/morgan-1.0.0.tgz";
-      name = "morgan-1.0.0.tgz";
-      sha1 = "83cf74b9f2d841901f1a9a6b8fa7a468d2e47a8d";
-    };
-    deps = {
-      "bytes-0.2.1" = self.by-version."bytes"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."morgan"."1.2.0" =
-    self.by-version."morgan"."1.2.0";
-  by-version."morgan"."1.2.0" = self.buildNodePackage {
-    name = "morgan-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/morgan/-/morgan-1.2.0.tgz";
-      name = "morgan-1.2.0.tgz";
-      sha1 = "8dc17a57599598f80cd7a7e1e3b54e72c689910d";
-    };
-    deps = {
-      "basic-auth-1.0.0" = self.by-version."basic-auth"."1.0.0";
-      "bytes-1.0.0" = self.by-version."bytes"."1.0.0";
-      "depd-0.4.2" = self.by-version."depd"."0.4.2";
-      "finished-1.2.2" = self.by-version."finished"."1.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."morgan"."~1.6.1" =
-    self.by-version."morgan"."1.6.1";
-  by-version."morgan"."1.6.1" = self.buildNodePackage {
-    name = "morgan-1.6.1";
-    version = "1.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz";
-      name = "morgan-1.6.1.tgz";
-      sha1 = "5fd818398c6819cba28a7cd6664f292fe1c0bbf2";
-    };
-    deps = {
-      "basic-auth-1.0.4" = self.by-version."basic-auth"."1.0.4";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.0.1" = self.by-version."depd"."1.0.1";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mpath"."0.1.1" =
-    self.by-version."mpath"."0.1.1";
-  by-version."mpath"."0.1.1" = self.buildNodePackage {
-    name = "mpath-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mpath/-/mpath-0.1.1.tgz";
-      name = "mpath-0.1.1.tgz";
-      sha1 = "23da852b7c232ee097f4759d29c0ee9cd22d5e46";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mpath"."0.2.1" =
-    self.by-version."mpath"."0.2.1";
-  by-version."mpath"."0.2.1" = self.buildNodePackage {
-    name = "mpath-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mpath/-/mpath-0.2.1.tgz";
-      name = "mpath-0.2.1.tgz";
-      sha1 = "3a4e829359801de96309c27a6b2e102e89f9e96e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mpromise"."0.2.1" =
-    self.by-version."mpromise"."0.2.1";
-  by-version."mpromise"."0.2.1" = self.buildNodePackage {
-    name = "mpromise-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mpromise/-/mpromise-0.2.1.tgz";
-      name = "mpromise-0.2.1.tgz";
-      sha1 = "fbbdc28cb0207e49b8a4eb1a4c0cea6c2de794c8";
-    };
-    deps = {
-      "sliced-0.0.4" = self.by-version."sliced"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mpromise"."0.5.4" =
-    self.by-version."mpromise"."0.5.4";
-  by-version."mpromise"."0.5.4" = self.buildNodePackage {
-    name = "mpromise-0.5.4";
-    version = "0.5.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mpromise/-/mpromise-0.5.4.tgz";
-      name = "mpromise-0.5.4.tgz";
-      sha1 = "b610613ec6de37419f944b35f0783b4de9f5dc75";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mpromise"."0.5.5" =
-    self.by-version."mpromise"."0.5.5";
-  by-version."mpromise"."0.5.5" = self.buildNodePackage {
-    name = "mpromise-0.5.5";
-    version = "0.5.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mpromise/-/mpromise-0.5.5.tgz";
-      name = "mpromise-0.5.5.tgz";
-      sha1 = "f5b24259d763acc2257b0a0c8c6d866fd51732e6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mqtt"."1.7.4" =
-    self.by-version."mqtt"."1.7.4";
-  by-version."mqtt"."1.7.4" = self.buildNodePackage {
-    name = "mqtt-1.7.4";
-    version = "1.7.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mqtt/-/mqtt-1.7.4.tgz";
-      name = "mqtt-1.7.4.tgz";
-      sha1 = "bda47e1f6f0cfbd8b861bcfd60012ac39b563f16";
-    };
-    deps = {
-      "commist-1.0.0" = self.by-version."commist"."1.0.0";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "end-of-stream-1.1.0" = self.by-version."end-of-stream"."1.1.0";
-      "help-me-0.1.0" = self.by-version."help-me"."0.1.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "mqtt-connection-2.1.1" = self.by-version."mqtt-connection"."2.1.1";
-      "mqtt-packet-3.4.7" = self.by-version."mqtt-packet"."3.4.7";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "reinterval-1.0.2" = self.by-version."reinterval"."1.0.2";
-      "websocket-stream-3.2.1" = self.by-version."websocket-stream"."3.2.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mqtt-connection"."^2.0.0" =
-    self.by-version."mqtt-connection"."2.1.1";
-  by-version."mqtt-connection"."2.1.1" = self.buildNodePackage {
-    name = "mqtt-connection-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mqtt-connection/-/mqtt-connection-2.1.1.tgz";
-      name = "mqtt-connection-2.1.1.tgz";
-      sha1 = "7b2e985a74e196619430bebd35da162c34c4e56a";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "mqtt-packet-3.4.7" = self.by-version."mqtt-packet"."3.4.7";
-      "reduplexer-1.1.0" = self.by-version."reduplexer"."1.1.0";
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mqtt-packet"."^3.0.0" =
-    self.by-version."mqtt-packet"."3.4.7";
-  by-version."mqtt-packet"."3.4.7" = self.buildNodePackage {
-    name = "mqtt-packet-3.4.7";
-    version = "3.4.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-3.4.7.tgz";
-      name = "mqtt-packet-3.4.7.tgz";
-      sha1 = "be8c267be7f0bf6a2a2d4f6de28307b6e0940e5f";
-    };
-    deps = {
-      "bl-0.9.5" = self.by-version."bl"."0.9.5";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mqtt-packet"."^3.2.0" =
-    self.by-version."mqtt-packet"."3.4.7";
-  by-spec."mquery"."1.11.0" =
-    self.by-version."mquery"."1.11.0";
-  by-version."mquery"."1.11.0" = self.buildNodePackage {
-    name = "mquery-1.11.0";
-    version = "1.11.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mquery/-/mquery-1.11.0.tgz";
-      name = "mquery-1.11.0.tgz";
-      sha1 = "e0c65dedb1037edbf6cfb88262e777fee23551d9";
-    };
-    deps = {
-      "bluebird-2.10.2" = self.by-version."bluebird"."2.10.2";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "regexp-clone-0.0.1" = self.by-version."regexp-clone"."0.0.1";
-      "sliced-0.0.5" = self.by-version."sliced"."0.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mquery"."1.6.3" =
-    self.by-version."mquery"."1.6.3";
-  by-version."mquery"."1.6.3" = self.buildNodePackage {
-    name = "mquery-1.6.3";
-    version = "1.6.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mquery/-/mquery-1.6.3.tgz";
-      name = "mquery-1.6.3.tgz";
-      sha1 = "7c02bfb7e49c8012cece1556c5e65fef61f3c8e5";
-    };
-    deps = {
-      "bluebird-2.9.26" = self.by-version."bluebird"."2.9.26";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "regexp-clone-0.0.1" = self.by-version."regexp-clone"."0.0.1";
-      "sliced-0.0.5" = self.by-version."sliced"."0.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ms"."0.1.0" =
-    self.by-version."ms"."0.1.0";
-  by-version."ms"."0.1.0" = self.buildNodePackage {
-    name = "ms-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ms/-/ms-0.1.0.tgz";
-      name = "ms-0.1.0.tgz";
-      sha1 = "f21fac490daf1d7667fd180fe9077389cc9442b2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ms"."0.6.2" =
-    self.by-version."ms"."0.6.2";
-  by-version."ms"."0.6.2" = self.buildNodePackage {
-    name = "ms-0.6.2";
-    version = "0.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz";
-      name = "ms-0.6.2.tgz";
-      sha1 = "d89c2124c6fdc1353d65a8b77bf1aac4b193708c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ms"."0.7.0" =
-    self.by-version."ms"."0.7.0";
-  by-version."ms"."0.7.0" = self.buildNodePackage {
-    name = "ms-0.7.0";
-    version = "0.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz";
-      name = "ms-0.7.0.tgz";
-      sha1 = "865be94c2e7397ad8a57da6a633a6e2f30798b83";
-    };
-    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 = "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz";
-      name = "ms-0.7.1.tgz";
-      sha1 = "9cd13c03adbff25b65effde7ce864ee952017098";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ms"."^0.7.1" =
-    self.by-version."ms"."0.7.1";
-  by-spec."msgpack".">= 0.0.1" =
-    self.by-version."msgpack"."1.0.2";
-  by-version."msgpack"."1.0.2" = self.buildNodePackage {
-    name = "msgpack-1.0.2";
-    version = "1.0.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/msgpack/-/msgpack-1.0.2.tgz";
-      name = "msgpack-1.0.2.tgz";
-      sha1 = "923e2c5cffa65c8418e9b228d1124793969c429c";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."multer"."0.1.8" =
-    self.by-version."multer"."0.1.8";
-  by-version."multer"."0.1.8" = self.buildNodePackage {
-    name = "multer-0.1.8";
-    version = "0.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multer/-/multer-0.1.8.tgz";
-      name = "multer-0.1.8.tgz";
-      sha1 = "551b8a6015093701bcacc964916b1ae06578f37b";
-    };
-    deps = {
-      "busboy-0.2.13" = self.by-version."busboy"."0.2.13";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "qs-1.2.2" = self.by-version."qs"."1.2.2";
-      "type-is-1.5.7" = self.by-version."type-is"."1.5.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."multicast-dns"."^4.0.0" =
-    self.by-version."multicast-dns"."4.0.1";
-  by-version."multicast-dns"."4.0.1" = self.buildNodePackage {
-    name = "multicast-dns-4.0.1";
-    version = "4.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-4.0.1.tgz";
-      name = "multicast-dns-4.0.1.tgz";
-      sha1 = "abf022fc866727055a9e0c2bc98097f5ebad97a2";
-    };
-    deps = {
-      "thunky-0.1.0" = self.by-version."thunky"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."multicast-dns"."^6.0.1" =
-    self.by-version."multicast-dns"."6.0.1";
-  by-version."multicast-dns"."6.0.1" = self.buildNodePackage {
-    name = "multicast-dns-6.0.1";
-    version = "6.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.0.1.tgz";
-      name = "multicast-dns-6.0.1.tgz";
-      sha1 = "069da64a0b695e156ef47c86a94e69e1a17ff2c2";
-    };
-    deps = {
-      "dns-packet-1.1.0" = self.by-version."dns-packet"."1.1.0";
-      "thunky-0.1.0" = self.by-version."thunky"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."multicast-dns-service-types"."^1.1.0" =
-    self.by-version."multicast-dns-service-types"."1.1.0";
-  by-version."multicast-dns-service-types"."1.1.0" = self.buildNodePackage {
-    name = "multicast-dns-service-types-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
-      name = "multicast-dns-service-types-1.1.0.tgz";
-      sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."multiparty"."2.2.0" =
-    self.by-version."multiparty"."2.2.0";
-  by-version."multiparty"."2.2.0" = self.buildNodePackage {
-    name = "multiparty-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz";
-      name = "multiparty-2.2.0.tgz";
-      sha1 = "a567c2af000ad22dc8f2a653d91978ae1f5316f4";
-    };
-    deps = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "stream-counter-0.2.0" = self.by-version."stream-counter"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."multiparty"."3.3.2" =
-    self.by-version."multiparty"."3.3.2";
-  by-version."multiparty"."3.3.2" = self.buildNodePackage {
-    name = "multiparty-3.3.2";
-    version = "3.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz";
-      name = "multiparty-3.3.2.tgz";
-      sha1 = "35de6804dc19643e5249f3d3e3bdc6c8ce301d3f";
-    };
-    deps = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "stream-counter-0.2.0" = self.by-version."stream-counter"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."multiparty"."~3.3.2" =
-    self.by-version."multiparty"."3.3.2";
-  by-spec."multipipe"."^0.1.2" =
-    self.by-version."multipipe"."0.1.2";
-  by-version."multipipe"."0.1.2" = self.buildNodePackage {
-    name = "multipipe-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz";
-      name = "multipipe-0.1.2.tgz";
-      sha1 = "2a8f2ddf70eed564dff2d57f1e1a137d9f05078b";
-    };
-    deps = {
-      "duplexer2-0.0.2" = self.by-version."duplexer2"."0.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."muri"."0.3.1" =
-    self.by-version."muri"."0.3.1";
-  by-version."muri"."0.3.1" = self.buildNodePackage {
-    name = "muri-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/muri/-/muri-0.3.1.tgz";
-      name = "muri-0.3.1.tgz";
-      sha1 = "861889c5c857f1a43700bee85d50731f61727c9a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."muri"."1.0.0" =
-    self.by-version."muri"."1.0.0";
-  by-version."muri"."1.0.0" = self.buildNodePackage {
-    name = "muri-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/muri/-/muri-1.0.0.tgz";
-      name = "muri-1.0.0.tgz";
-      sha1 = "de3bf6bd71d67eae71d76689b950d2de118695c6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."muri"."1.1.0" =
-    self.by-version."muri"."1.1.0";
-  by-version."muri"."1.1.0" = self.buildNodePackage {
-    name = "muri-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/muri/-/muri-1.1.0.tgz";
-      name = "muri-1.1.0.tgz";
-      sha1 = "a3a6d74e68a880f433a249a74969cbb665cc0add";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."murl"."0.4.x" =
-    self.by-version."murl"."0.4.1";
-  by-version."murl"."0.4.1" = self.buildNodePackage {
-    name = "murl-0.4.1";
-    version = "0.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/murl/-/murl-0.4.1.tgz";
-      name = "murl-0.4.1.tgz";
-      sha1 = "489fbcc7f1b2b77e689c84120a51339c3849c939";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mustache"."2.2.1" =
-    self.by-version."mustache"."2.2.1";
-  by-version."mustache"."2.2.1" = self.buildNodePackage {
-    name = "mustache-2.2.1";
-    version = "2.2.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mustache/-/mustache-2.2.1.tgz";
-      name = "mustache-2.2.1.tgz";
-      sha1 = "2c40ca21c278f53150682bcf9090e41a3339b876";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mutate.js"."^0.2.0" =
-    self.by-version."mutate.js"."0.2.0";
-  by-version."mutate.js"."0.2.0" = self.buildNodePackage {
-    name = "mutate.js-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mutate.js/-/mutate.js-0.2.0.tgz";
-      name = "mutate.js-0.2.0.tgz";
-      sha1 = "2e5cb1ac64c937dae28296e8f42af5eafd9bc7ef";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mute-stream"."0.0.4" =
-    self.by-version."mute-stream"."0.0.4";
-  by-version."mute-stream"."0.0.4" = self.buildNodePackage {
-    name = "mute-stream-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz";
-      name = "mute-stream-0.0.4.tgz";
-      sha1 = "a9219960a6d5d5d046597aee51252c6655f7177e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mute-stream"."0.0.5" =
-    self.by-version."mute-stream"."0.0.5";
-  by-version."mute-stream"."0.0.5" = self.buildNodePackage {
-    name = "mute-stream-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz";
-      name = "mute-stream-0.0.5.tgz";
-      sha1 = "8fbfabb0a98a253d3184331f9e8deb7372fac6c0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mute-stream"."0.0.6" =
-    self.by-version."mute-stream"."0.0.6";
-  by-version."mute-stream"."0.0.6" = self.buildNodePackage {
-    name = "mute-stream-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz";
-      name = "mute-stream-0.0.6.tgz";
-      sha1 = "48962b19e169fd1dfc240b3f1e7317627bbc47db";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mute-stream"."~0.0.4" =
-    self.by-version."mute-stream"."0.0.6";
-  by-spec."mv"."0.0.5" =
-    self.by-version."mv"."0.0.5";
-  by-version."mv"."0.0.5" = self.buildNodePackage {
-    name = "mv-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mv/-/mv-0.0.5.tgz";
-      name = "mv-0.0.5.tgz";
-      sha1 = "15eac759479884df1131d6de56bce20b654f5391";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."mv"."~2" =
-    self.by-version."mv"."2.1.1";
-  by-version."mv"."2.1.1" = self.buildNodePackage {
-    name = "mv-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz";
-      name = "mv-2.1.1.tgz";
-      sha1 = "ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2";
-    };
-    deps = {
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "ncp-2.0.0" = self.by-version."ncp"."2.0.0";
-      "rimraf-2.4.5" = self.by-version."rimraf"."2.4.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."2" =
-    self.by-version."nan"."2.3.5";
-  by-version."nan"."2.3.5" = self.buildNodePackage {
-    name = "nan-2.3.5";
-    version = "2.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz";
-      name = "nan-2.3.5.tgz";
-      sha1 = "822a0dc266290ce4cd3a12282ca3e7e364668a08";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."2.0.5" =
-    self.by-version."nan"."2.0.5";
-  by-version."nan"."2.0.5" = self.buildNodePackage {
-    name = "nan-2.0.5";
-    version = "2.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-2.0.5.tgz";
-      name = "nan-2.0.5.tgz";
-      sha1 = "365888014be1fd178db0cbfa258edf7b0cb1c408";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."2.0.7" =
-    self.by-version."nan"."2.0.7";
-  by-version."nan"."2.0.7" = self.buildNodePackage {
-    name = "nan-2.0.7";
-    version = "2.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-2.0.7.tgz";
-      name = "nan-2.0.7.tgz";
-      sha1 = "c726ce45dbd863b46234e4dfe5bf02d0cb309cd8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."2.2.0" =
-    self.by-version."nan"."2.2.0";
-  by-version."nan"."2.2.0" = self.buildNodePackage {
-    name = "nan-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-2.2.0.tgz";
-      name = "nan-2.2.0.tgz";
-      sha1 = "779c07135629503cf6a7b7e6aab33049b3c3853c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."2.3.*" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."2.3.5" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."2.3.x" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan".">=2.0.0" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."^2.0" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."^2.0.5" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."^2.0.8" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."^2.0.9" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."^2.1.0" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."^2.2.0" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."^2.3.0" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."^2.3.2" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."~0.3.0" =
-    self.by-version."nan"."0.3.2";
-  by-version."nan"."0.3.2" = self.buildNodePackage {
-    name = "nan-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-0.3.2.tgz";
-      name = "nan-0.3.2.tgz";
-      sha1 = "0df1935cab15369075ef160ad2894107aa14dc2d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."~1.0.0" =
-    self.by-version."nan"."1.0.0";
-  by-version."nan"."1.0.0" = self.buildNodePackage {
-    name = "nan-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz";
-      name = "nan-1.0.0.tgz";
-      sha1 = "ae24f8850818d662fcab5acf7f3b95bfaa2ccf38";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."~1.8.4" =
-    self.by-version."nan"."1.8.4";
-  by-version."nan"."1.8.4" = self.buildNodePackage {
-    name = "nan-1.8.4";
-    version = "1.8.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz";
-      name = "nan-1.8.4.tgz";
-      sha1 = "3c76b5382eab33e44b758d2813ca9d92e9342f34";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."~2.0.0" =
-    self.by-version."nan"."2.0.9";
-  by-version."nan"."2.0.9" = self.buildNodePackage {
-    name = "nan-2.0.9";
-    version = "2.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz";
-      name = "nan-2.0.9.tgz";
-      sha1 = "d02a770f46778842cceb94e17cab31ffc7234a05";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."~2.1.0" =
-    self.by-version."nan"."2.1.0";
-  by-version."nan"."2.1.0" = self.buildNodePackage {
-    name = "nan-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz";
-      name = "nan-2.1.0.tgz";
-      sha1 = "020a7ccedc63fdee85f85967d5607849e74abbe8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nan"."~2.3" =
-    self.by-version."nan"."2.3.5";
-  by-spec."nan"."~2.3.3" =
-    self.by-version."nan"."2.3.5";
-  by-spec."native-dns"."0.6.1" =
-    self.by-version."native-dns"."0.6.1";
-  by-version."native-dns"."0.6.1" = self.buildNodePackage {
-    name = "native-dns-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/native-dns/-/native-dns-0.6.1.tgz";
-      name = "native-dns-0.6.1.tgz";
-      sha1 = "f7d2a3c5464bb6f09d9167e35a7350bd7ffe9b82";
-    };
-    deps = {
-      "ipaddr.js-1.1.1" = self.by-version."ipaddr.js"."1.1.1";
-      "native-dns-cache-0.0.2" = self.by-version."native-dns-cache"."0.0.2";
-      "native-dns-packet-0.1.1" = self.by-version."native-dns-packet"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."native-dns-cache".">= 0.0.1" =
-    self.by-version."native-dns-cache"."0.0.2";
-  by-version."native-dns-cache"."0.0.2" = self.buildNodePackage {
-    name = "native-dns-cache-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/native-dns-cache/-/native-dns-cache-0.0.2.tgz";
-      name = "native-dns-cache-0.0.2.tgz";
-      sha1 = "ce0998f7fdf6c7990970a33190624b0e98ee959b";
-    };
-    deps = {
-      "binaryheap-0.0.3" = self.by-version."binaryheap"."0.0.3";
-      "native-dns-packet-0.1.1" = self.by-version."native-dns-packet"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."native-dns-packet".">= 0.0.1" =
-    self.by-version."native-dns-packet"."0.1.1";
-  by-version."native-dns-packet"."0.1.1" = self.buildNodePackage {
-    name = "native-dns-packet-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/native-dns-packet/-/native-dns-packet-0.1.1.tgz";
-      name = "native-dns-packet-0.1.1.tgz";
-      sha1 = "97da90570b8438a00194701ce24d011fd3cc109a";
-    };
-    deps = {
-      "buffercursor-0.0.12" = self.by-version."buffercursor"."0.0.12";
-      "ipaddr.js-1.1.1" = self.by-version."ipaddr.js"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."native-dns-packet".">= 0.0.4" =
-    self.by-version."native-dns-packet"."0.1.1";
-  by-spec."natural"."^0.2.0" =
-    self.by-version."natural"."0.2.1";
-  by-version."natural"."0.2.1" = self.buildNodePackage {
-    name = "natural-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/natural/-/natural-0.2.1.tgz";
-      name = "natural-0.2.1.tgz";
-      sha1 = "1eb5156a9d90b4591949e20e94ebc77bb2339eda";
-    };
-    deps = {
-      "sylvester-0.0.21" = self.by-version."sylvester"."0.0.21";
-      "apparatus-0.0.9" = self.by-version."apparatus"."0.0.9";
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nconf"."*" =
-    self.by-version."nconf"."0.8.4";
-  by-version."nconf"."0.8.4" = self.buildNodePackage {
-    name = "nconf-0.8.4";
-    version = "0.8.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nconf/-/nconf-0.8.4.tgz";
-      name = "nconf-0.8.4.tgz";
-      sha1 = "9502234f7ad6238cab7f92d7c068c20434d3ff93";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "ini-1.3.4" = self.by-version."ini"."1.3.4";
-      "secure-keys-1.0.0" = self.by-version."secure-keys"."1.0.0";
-      "yargs-3.32.0" = self.by-version."yargs"."3.32.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "nconf" = self.by-version."nconf"."0.8.4";
-  by-spec."nconf"."0.6.9" =
-    self.by-version."nconf"."0.6.9";
-  by-version."nconf"."0.6.9" = self.buildNodePackage {
-    name = "nconf-0.6.9";
-    version = "0.6.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz";
-      name = "nconf-0.6.9.tgz";
-      sha1 = "9570ef15ed6f9ae6b2b3c8d5e71b66d3193cd661";
-    };
-    deps = {
-      "async-0.2.9" = self.by-version."async"."0.2.9";
-      "ini-1.3.4" = self.by-version."ini"."1.3.4";
-      "optimist-0.6.0" = self.by-version."optimist"."0.6.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nconf"."~0.6.9" =
-    self.by-version."nconf"."0.6.9";
-  by-spec."ncp"."0.2.x" =
-    self.by-version."ncp"."0.2.7";
-  by-version."ncp"."0.2.7" = self.buildNodePackage {
-    name = "ncp-0.2.7";
-    version = "0.2.7";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ncp/-/ncp-0.2.7.tgz";
-      name = "ncp-0.2.7.tgz";
-      sha1 = "46fac2b7dda2560a4cb7e628677bd5f64eac5be1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ncp"."0.4.2" =
-    self.by-version."ncp"."0.4.2";
-  by-version."ncp"."0.4.2" = self.buildNodePackage {
-    name = "ncp-0.4.2";
-    version = "0.4.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz";
-      name = "ncp-0.4.2.tgz";
-      sha1 = "abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ncp"."0.4.x" =
-    self.by-version."ncp"."0.4.2";
-  by-spec."ncp"."~0.4.2" =
-    self.by-version."ncp"."0.4.2";
-  by-spec."ncp"."~2.0.0" =
-    self.by-version."ncp"."2.0.0";
-  by-version."ncp"."2.0.0" = self.buildNodePackage {
-    name = "ncp-2.0.0";
-    version = "2.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz";
-      name = "ncp-2.0.0.tgz";
-      sha1 = "195a21d6c46e361d2fb1281ba38b91e9df7bdbb3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ndjson"."^1.2.3" =
-    self.by-version."ndjson"."1.4.3";
-  by-version."ndjson"."1.4.3" = self.buildNodePackage {
-    name = "ndjson-1.4.3";
-    version = "1.4.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ndjson/-/ndjson-1.4.3.tgz";
-      name = "ndjson-1.4.3.tgz";
-      sha1 = "7aa026fe3ab38a7da1a2b4ad07b1008e733eb239";
-    };
-    deps = {
-      "split2-0.2.1" = self.by-version."split2"."0.2.1";
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."needle"."^0.10.0" =
-    self.by-version."needle"."0.10.0";
-  by-version."needle"."0.10.0" = self.buildNodePackage {
-    name = "needle-0.10.0";
-    version = "0.10.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/needle/-/needle-0.10.0.tgz";
-      name = "needle-0.10.0.tgz";
-      sha1 = "16a24d63f2a61152eb74cce1d12af85c507577d4";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."needle"."^0.11.0" =
-    self.by-version."needle"."0.11.0";
-  by-version."needle"."0.11.0" = self.buildNodePackage {
-    name = "needle-0.11.0";
-    version = "0.11.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/needle/-/needle-0.11.0.tgz";
-      name = "needle-0.11.0.tgz";
-      sha1 = "02a71b008eaf7d55ae89fb9fd7685b7b88d7bc29";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."negotiator"."0.3.0" =
-    self.by-version."negotiator"."0.3.0";
-  by-version."negotiator"."0.3.0" = self.buildNodePackage {
-    name = "negotiator-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz";
-      name = "negotiator-0.3.0.tgz";
-      sha1 = "706d692efeddf574d57ea9fb1ab89a4fa7ee8f60";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."negotiator"."0.4.2" =
-    self.by-version."negotiator"."0.4.2";
-  by-version."negotiator"."0.4.2" = self.buildNodePackage {
-    name = "negotiator-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/negotiator/-/negotiator-0.4.2.tgz";
-      name = "negotiator-0.4.2.tgz";
-      sha1 = "8c43ea7e4c40ddfe40c3c0234c4ef77500b8fd37";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."negotiator"."0.4.7" =
-    self.by-version."negotiator"."0.4.7";
-  by-version."negotiator"."0.4.7" = self.buildNodePackage {
-    name = "negotiator-0.4.7";
-    version = "0.4.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz";
-      name = "negotiator-0.4.7.tgz";
-      sha1 = "a4160f7177ec806738631d0d3052325da42abdc8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."negotiator"."0.4.9" =
-    self.by-version."negotiator"."0.4.9";
-  by-version."negotiator"."0.4.9" = self.buildNodePackage {
-    name = "negotiator-0.4.9";
-    version = "0.4.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz";
-      name = "negotiator-0.4.9.tgz";
-      sha1 = "92e46b6db53c7e421ed64a2bc94f08be7630df3f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."negotiator"."0.5.3" =
-    self.by-version."negotiator"."0.5.3";
-  by-version."negotiator"."0.5.3" = self.buildNodePackage {
-    name = "negotiator-0.5.3";
-    version = "0.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz";
-      name = "negotiator-0.5.3.tgz";
-      sha1 = "269d5c476810ec92edbe7b6c2f28316384f9a7e8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."negotiator"."0.6.1" =
-    self.by-version."negotiator"."0.6.1";
-  by-version."negotiator"."0.6.1" = self.buildNodePackage {
-    name = "negotiator-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz";
-      name = "negotiator-0.6.1.tgz";
-      sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."negotiator"."^0.5.1" =
-    self.by-version."negotiator"."0.5.3";
-  by-spec."nested-error-stacks"."^1.0.0" =
-    self.by-version."nested-error-stacks"."1.0.2";
-  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 = "https://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."net-ping"."1.1.7" =
-    self.by-version."net-ping"."1.1.7";
-  by-version."net-ping"."1.1.7" = self.buildNodePackage {
-    name = "net-ping-1.1.7";
-    version = "1.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/net-ping/-/net-ping-1.1.7.tgz";
-      name = "net-ping-1.1.7.tgz";
-      sha1 = "49f5bca55a30a3726d69253557f231135a637075";
-    };
-    deps = {
-      "raw-socket-1.5.0" = self.by-version."raw-socket"."1.5.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."netmask"."~1.0.4" =
-    self.by-version."netmask"."1.0.6";
-  by-version."netmask"."1.0.6" = self.buildNodePackage {
-    name = "netmask-1.0.6";
-    version = "1.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz";
-      name = "netmask-1.0.6.tgz";
-      sha1 = "20297e89d86f6f6400f250d9f4f6b4c1945fcd35";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."network-address"."0.0.5" =
-    self.by-version."network-address"."0.0.5";
-  by-version."network-address"."0.0.5" = self.buildNodePackage {
-    name = "network-address-0.0.5";
-    version = "0.0.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/network-address/-/network-address-0.0.5.tgz";
-      name = "network-address-0.0.5.tgz";
-      sha1 = "a400225438cacb67cd6108e8e826d5920a705dcc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."network-address"."0.0.x" =
-    self.by-version."network-address"."0.0.5";
-  by-spec."network-address"."^1.0.0" =
-    self.by-version."network-address"."1.1.0";
-  by-version."network-address"."1.1.0" = self.buildNodePackage {
-    name = "network-address-1.1.0";
-    version = "1.1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/network-address/-/network-address-1.1.0.tgz";
-      name = "network-address-1.1.0.tgz";
-      sha1 = "74d577b0dea652284659079fc8d7010b72f01092";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."next-line"."^1.0.0" =
-    self.by-version."next-line"."1.1.0";
-  by-version."next-line"."1.1.0" = self.buildNodePackage {
-    name = "next-line-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/next-line/-/next-line-1.1.0.tgz";
-      name = "next-line-1.1.0.tgz";
-      sha1 = "fcae57853052b6a9bae8208e40dd7d3c2d304603";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nib"."*" =
-    self.by-version."nib"."1.1.0";
-  by-version."nib"."1.1.0" = self.buildNodePackage {
-    name = "nib-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nib/-/nib-1.1.0.tgz";
-      name = "nib-1.1.0.tgz";
-      sha1 = "527c19662a10a2b565fe85e9b309d622aa7557d3";
-    };
-    deps = {
-      "stylus-0.49.3" = self.by-version."stylus"."0.49.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "nib" = self.by-version."nib"."1.1.0";
-  by-spec."nib"."~1.1.0" =
-    self.by-version."nib"."1.1.0";
-  by-spec."nijs"."*" =
-    self.by-version."nijs"."0.0.23";
-  by-version."nijs"."0.0.23" = self.buildNodePackage {
-    name = "nijs-0.0.23";
-    version = "0.0.23";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nijs/-/nijs-0.0.23.tgz";
-      name = "nijs-0.0.23.tgz";
-      sha1 = "dbf8f4a0acafbe3b8d9b71c24cbd1d851de6c31a";
-    };
-    deps = {
-      "optparse-1.0.5" = self.by-version."optparse"."1.0.5";
-      "slasp-0.0.4" = self.by-version."slasp"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "nijs" = self.by-version."nijs"."0.0.23";
-  by-spec."node-alias"."^1.0.3" =
-    self.by-version."node-alias"."1.0.4";
-  by-version."node-alias"."1.0.4" = self.buildNodePackage {
-    name = "node-alias-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-alias/-/node-alias-1.0.4.tgz";
-      name = "node-alias-1.0.4.tgz";
-      sha1 = "1f1b916b56b9ea241c0135f97ced6940f556f292";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-appc"."0.2.31" =
-    self.by-version."node-appc"."0.2.31";
-  by-version."node-appc"."0.2.31" = self.buildNodePackage {
-    name = "node-appc-0.2.31";
-    version = "0.2.31";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-appc/-/node-appc-0.2.31.tgz";
-      name = "node-appc-0.2.31.tgz";
-      sha1 = "8d8d0052fd8b8ce4bc44f06883009f7c950bc8c2";
-    };
-    deps = {
-      "adm-zip-0.4.7" = self.by-version."adm-zip"."0.4.7";
-      "async-1.4.2" = self.by-version."async"."1.4.2";
-      "colors-1.1.2" = self.by-version."colors"."1.1.2";
-      "diff-2.1.0" = self.by-version."diff"."2.1.0";
-      "node-uuid-1.4.3" = self.by-version."node-uuid"."1.4.3";
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-      "request-2.61.0" = self.by-version."request"."2.61.0";
-      "semver-5.0.1" = self.by-version."semver"."5.0.1";
-      "sprintf-0.1.5" = self.by-version."sprintf"."0.1.5";
-      "temp-0.8.3" = self.by-version."temp"."0.8.3";
-      "wrench-1.5.8" = self.by-version."wrench"."1.5.8";
-      "uglify-js-2.4.24" = self.by-version."uglify-js"."2.4.24";
-      "xmldom-0.1.19" = self.by-version."xmldom"."0.1.19";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-craigslist"."^0.1.7" =
-    self.by-version."node-craigslist"."0.1.9";
-  by-version."node-craigslist"."0.1.9" = self.buildNodePackage {
-    name = "node-craigslist-0.1.9";
-    version = "0.1.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-craigslist/-/node-craigslist-0.1.9.tgz";
-      name = "node-craigslist-0.1.9.tgz";
-      sha1 = "d33d9d18337e6d1002f3a417d66a6b8b33dcbe98";
-    };
-    deps = {
-      "cheerio-0.17.0" = self.by-version."cheerio"."0.17.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-expat"."*" =
-    self.by-version."node-expat"."2.3.13";
-  by-version."node-expat"."2.3.13" = self.buildNodePackage {
-    name = "node-expat-2.3.13";
-    version = "2.3.13";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-expat/-/node-expat-2.3.13.tgz";
-      name = "node-expat-2.3.13.tgz";
-      sha1 = "e32494308d14f451e2b8efa4464f52e1e8a59532";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-expat" = self.by-version."node-expat"."2.3.13";
-  by-spec."node-expat"."^2.3.0" =
-    self.by-version."node-expat"."2.3.13";
-  by-spec."node-expat"."^2.3.9" =
-    self.by-version."node-expat"."2.3.13";
-  by-spec."node-expat"."~2.3.0" =
-    self.by-version."node-expat"."2.3.13";
-  by-spec."node-expat"."~2.3.7" =
-    self.by-version."node-expat"."2.3.13";
-  by-spec."node-expat"."~2.3.8" =
-    self.by-version."node-expat"."2.3.13";
-  by-spec."node-fetch"."^1.0.1" =
-    self.by-version."node-fetch"."1.5.3";
-  by-version."node-fetch"."1.5.3" = self.buildNodePackage {
-    name = "node-fetch-1.5.3";
-    version = "1.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.5.3.tgz";
-      name = "node-fetch-1.5.3.tgz";
-      sha1 = "f28d8b95ca8d45b433745dd319361e36402baef0";
-    };
-    deps = {
-      "encoding-0.1.12" = self.by-version."encoding"."0.1.12";
-      "is-stream-1.1.0" = self.by-version."is-stream"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-forge"."^0.6.33" =
-    self.by-version."node-forge"."0.6.39";
-  by-version."node-forge"."0.6.39" = self.buildNodePackage {
-    name = "node-forge-0.6.39";
-    version = "0.6.39";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-forge/-/node-forge-0.6.39.tgz";
-      name = "node-forge-0.6.39.tgz";
-      sha1 = "2184e89dba9b44b3aa54cd4bf1e7334f247cf9ce";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-fs"."^0.1.7" =
-    self.by-version."node-fs"."0.1.7";
-  by-version."node-fs"."0.1.7" = self.buildNodePackage {
-    name = "node-fs-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-fs/-/node-fs-0.1.7.tgz";
-      name = "node-fs-0.1.7.tgz";
-      sha1 = "32323cccb46c9fbf0fc11812d45021cc31d325bb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ "linux" "darwin" "freebsd" "win32" "smartos" "sunos" ];
-    cpu = [ ];
-  };
-  by-spec."node-gyp"."*" =
-    self.by-version."node-gyp"."3.3.1";
-  by-version."node-gyp"."3.3.1" = self.buildNodePackage {
-    name = "node-gyp-3.3.1";
-    version = "3.3.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-3.3.1.tgz";
-      name = "node-gyp-3.3.1.tgz";
-      sha1 = "80f7b6d7c2f9c0495ba42c518a670c99bdf6e4a0";
-    };
-    deps = {
-      "fstream-1.0.9" = self.by-version."fstream"."1.0.9";
-      "glob-4.5.3" = self.by-version."glob"."4.5.3";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "npmlog-2.0.4" = self.by-version."npmlog"."2.0.4";
-      "osenv-0.1.3" = self.by-version."osenv"."0.1.3";
-      "path-array-1.0.1" = self.by-version."path-array"."1.0.1";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "tar-2.2.1" = self.by-version."tar"."2.2.1";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-gyp" = self.by-version."node-gyp"."3.3.1";
-  by-spec."node-gyp"."~3.3.1" =
-    self.by-version."node-gyp"."3.3.1";
-  by-spec."node-inspector"."*" =
-    self.by-version."node-inspector"."0.12.8";
-  by-version."node-inspector"."0.12.8" = self.buildNodePackage {
-    name = "node-inspector-0.12.8";
-    version = "0.12.8";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-inspector/-/node-inspector-0.12.8.tgz";
-      name = "node-inspector-0.12.8.tgz";
-      sha1 = "a59c3dc47cb08d15a2e526be3a1da7d64e5c227f";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "biased-opener-0.2.8" = self.by-version."biased-opener"."0.2.8";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "express-4.13.4" = self.by-version."express"."4.13.4";
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-      "path-is-absolute-1.0.0" = self.by-version."path-is-absolute"."1.0.0";
-      "rc-1.1.6" = self.by-version."rc"."1.1.6";
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-      "serve-favicon-2.3.0" = self.by-version."serve-favicon"."2.3.0";
-      "strong-data-uri-1.0.4" = self.by-version."strong-data-uri"."1.0.4";
-      "v8-debug-0.7.7" = self.by-version."v8-debug"."0.7.7";
-      "v8-profiler-5.6.5" = self.by-version."v8-profiler"."5.6.5";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-      "ws-1.1.0" = self.by-version."ws"."1.1.0";
-      "yargs-3.32.0" = self.by-version."yargs"."3.32.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-inspector" = self.by-version."node-inspector"."0.12.8";
-  by-spec."node-int64"."~0.3.0" =
-    self.by-version."node-int64"."0.3.3";
-  by-version."node-int64"."0.3.3" = self.buildNodePackage {
-    name = "node-int64-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-int64/-/node-int64-0.3.3.tgz";
-      name = "node-int64-0.3.3.tgz";
-      sha1 = "2d6e6b2ece5de8588b43d88d1bc41b26cd1fa84d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-libs-browser"."^1.0.0" =
-    self.by-version."node-libs-browser"."1.0.0";
-  by-version."node-libs-browser"."1.0.0" = self.buildNodePackage {
-    name = "node-libs-browser-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-1.0.0.tgz";
-      name = "node-libs-browser-1.0.0.tgz";
-      sha1 = "ff8ad6c2cfa78043bdd0091ec07f0aaa581620fc";
-    };
-    deps = {
-      "assert-1.4.1" = self.by-version."assert"."1.4.1";
-      "browserify-zlib-0.1.4" = self.by-version."browserify-zlib"."0.1.4";
-      "buffer-4.6.0" = self.by-version."buffer"."4.6.0";
-      "console-browserify-1.1.0" = self.by-version."console-browserify"."1.1.0";
-      "constants-browserify-1.0.0" = self.by-version."constants-browserify"."1.0.0";
-      "crypto-browserify-3.11.0" = self.by-version."crypto-browserify"."3.11.0";
-      "domain-browser-1.1.7" = self.by-version."domain-browser"."1.1.7";
-      "events-1.1.0" = self.by-version."events"."1.1.0";
-      "http-browserify-1.7.0" = self.by-version."http-browserify"."1.7.0";
-      "https-browserify-0.0.1" = self.by-version."https-browserify"."0.0.1";
-      "os-browserify-0.2.1" = self.by-version."os-browserify"."0.2.1";
-      "path-browserify-0.0.0" = self.by-version."path-browserify"."0.0.0";
-      "process-0.11.4" = self.by-version."process"."0.11.4";
-      "punycode-1.4.1" = self.by-version."punycode"."1.4.1";
-      "querystring-es3-0.2.1" = self.by-version."querystring-es3"."0.2.1";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "stream-browserify-2.0.1" = self.by-version."stream-browserify"."2.0.1";
-      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
-      "timers-browserify-1.4.2" = self.by-version."timers-browserify"."1.4.2";
-      "tty-browserify-0.0.0" = self.by-version."tty-browserify"."0.0.0";
-      "url-0.11.0" = self.by-version."url"."0.11.0";
-      "util-0.10.3" = self.by-version."util"."0.10.3";
-      "vm-browserify-0.0.4" = self.by-version."vm-browserify"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-options"."0.0.6" =
-    self.by-version."node-options"."0.0.6";
-  by-version."node-options"."0.0.6" = self.buildNodePackage {
-    name = "node-options-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-options/-/node-options-0.0.6.tgz";
-      name = "node-options-0.0.6.tgz";
-      sha1 = "98721bd14fc4969a619e4d87666449f1f92477ed";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-pre-gyp"."0.6.x" =
-    self.by-version."node-pre-gyp"."0.6.28";
-  by-version."node-pre-gyp"."0.6.28" = self.buildNodePackage {
-    name = "node-pre-gyp-0.6.28";
-    version = "0.6.28";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.28.tgz";
-      name = "node-pre-gyp-0.6.28.tgz";
-      sha1 = "e440f5faff5480735b4fd0509ff33f9da93d7c20";
-    };
-    deps = {
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "npmlog-2.0.4" = self.by-version."npmlog"."2.0.4";
-      "rc-1.1.6" = self.by-version."rc"."1.1.6";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "tar-2.2.1" = self.by-version."tar"."2.2.1";
-      "tar-pack-3.1.3" = self.by-version."tar-pack"."3.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-pre-gyp"."^0.6.25" =
-    self.by-version."node-pre-gyp"."0.6.28";
-  by-spec."node-pre-gyp"."^0.6.5" =
-    self.by-version."node-pre-gyp"."0.6.28";
-  by-spec."node-pre-gyp-github"."^1.1.0" =
-    self.by-version."node-pre-gyp-github"."1.3.1";
-  by-version."node-pre-gyp-github"."1.3.1" = self.buildNodePackage {
-    name = "node-pre-gyp-github-1.3.1";
-    version = "1.3.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-pre-gyp-github/-/node-pre-gyp-github-1.3.1.tgz";
-      name = "node-pre-gyp-github-1.3.1.tgz";
-      sha1 = "c6965303995b5b083eca64a1aa35fd2b511dcbb3";
-    };
-    deps = {
-      "github-0.2.4" = self.by-version."github"."0.2.4";
-      "commander-2.9.0" = self.by-version."commander"."2.9.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-protobuf"."*" =
-    self.by-version."node-protobuf"."1.2.14";
-  by-version."node-protobuf"."1.2.14" = self.buildNodePackage {
-    name = "node-protobuf-1.2.14";
-    version = "1.2.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-protobuf/-/node-protobuf-1.2.14.tgz";
-      name = "node-protobuf-1.2.14.tgz";
-      sha1 = "99fced0cd2e6daeba48c664f99b13d1df930d0a0";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-protobuf" = self.by-version."node-protobuf"."1.2.14";
-  by-spec."node-red"."*" =
-    self.by-version."node-red"."0.13.4";
-  by-version."node-red"."0.13.4" = self.buildNodePackage {
-    name = "node-red-0.13.4";
-    version = "0.13.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-0.13.4.tgz";
-      name = "node-red-0.13.4.tgz";
-      sha1 = "128a7e52129132d8fc5f0f7dc0ddd22b3de14bf1";
-    };
-    deps = {
-      "basic-auth-1.0.3" = self.by-version."basic-auth"."1.0.3";
-      "bcryptjs-2.3.0" = self.by-version."bcryptjs"."2.3.0";
-      "body-parser-1.15.0" = self.by-version."body-parser"."1.15.0";
-      "cheerio-0.19.0" = self.by-version."cheerio"."0.19.0";
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-      "cors-2.7.1" = self.by-version."cors"."2.7.1";
-      "cron-1.1.0" = self.by-version."cron"."1.1.0";
-      "express-4.13.4" = self.by-version."express"."4.13.4";
-      "follow-redirects-0.0.7" = self.by-version."follow-redirects"."0.0.7";
-      "fs-extra-0.26.7" = self.by-version."fs-extra"."0.26.7";
-      "fs.notify-0.0.4" = self.by-version."fs.notify"."0.0.4";
-      "i18next-1.10.6" = self.by-version."i18next"."1.10.6";
-      "is-utf8-0.2.1" = self.by-version."is-utf8"."0.2.1";
-      "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0";
-      "mqtt-1.7.4" = self.by-version."mqtt"."1.7.4";
-      "mustache-2.2.1" = self.by-version."mustache"."2.2.1";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "oauth2orize-1.2.2" = self.by-version."oauth2orize"."1.2.2";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-      "passport-0.3.2" = self.by-version."passport"."0.3.2";
-      "passport-http-bearer-1.0.1" = self.by-version."passport-http-bearer"."1.0.1";
-      "passport-oauth2-client-password-0.1.2" = self.by-version."passport-oauth2-client-password"."0.1.2";
-      "raw-body-2.1.6" = self.by-version."raw-body"."2.1.6";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "sentiment-1.0.6" = self.by-version."sentiment"."1.0.6";
-      "uglify-js-2.6.2" = self.by-version."uglify-js"."2.6.2";
-      "when-3.7.7" = self.by-version."when"."3.7.7";
-      "ws-0.8.1" = self.by-version."ws"."0.8.1";
-      "xml2js-0.4.16" = self.by-version."xml2js"."0.4.16";
-      "node-red-node-feedparser-0.1.5" = self.by-version."node-red-node-feedparser"."0.1.5";
-      "node-red-node-email-0.1.8" = self.by-version."node-red-node-email"."0.1.8";
-      "node-red-node-twitter-0.1.6" = self.by-version."node-red-node-twitter"."0.1.6";
-      "node-red-node-rbe-0.1.5" = self.by-version."node-red-node-rbe"."0.1.5";
-    };
-    optionalDependencies = {
-      "node-red-node-serialport-0.1.2" = self.by-version."node-red-node-serialport"."0.1.2";
-      "bcrypt-0.8.5" = self.by-version."bcrypt"."0.8.5";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-red" = self.by-version."node-red"."0.13.4";
-  by-spec."node-red-node-email"."0.1.*" =
-    self.by-version."node-red-node-email"."0.1.8";
-  by-version."node-red-node-email"."0.1.8" = self.buildNodePackage {
-    name = "node-red-node-email-0.1.8";
-    version = "0.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-red-node-email/-/node-red-node-email-0.1.8.tgz";
-      name = "node-red-node-email-0.1.8.tgz";
-      sha1 = "685313d1edda41e97cfcb2c3149f426bef19f935";
-    };
-    deps = {
-      "nodemailer-1.11.0" = self.by-version."nodemailer"."1.11.0";
-      "poplib-0.1.7" = self.by-version."poplib"."0.1.7";
-      "mailparser-0.6.0" = self.by-version."mailparser"."0.6.0";
-      "imap-0.8.17" = self.by-version."imap"."0.8.17";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-red-node-feedparser"."0.1.*" =
-    self.by-version."node-red-node-feedparser"."0.1.5";
-  by-version."node-red-node-feedparser"."0.1.5" = self.buildNodePackage {
-    name = "node-red-node-feedparser-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-red-node-feedparser/-/node-red-node-feedparser-0.1.5.tgz";
-      name = "node-red-node-feedparser-0.1.5.tgz";
-      sha1 = "88f2b68b3c00d2cd95498436baf9ed13b552b8d0";
-    };
-    deps = {
-      "feedparser-1.1.3" = self.by-version."feedparser"."1.1.3";
-      "request-2.65.0" = self.by-version."request"."2.65.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-red-node-rbe"."0.1.*" =
-    self.by-version."node-red-node-rbe"."0.1.5";
-  by-version."node-red-node-rbe"."0.1.5" = self.buildNodePackage {
-    name = "node-red-node-rbe-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.1.5.tgz";
-      name = "node-red-node-rbe-0.1.5.tgz";
-      sha1 = "9df9b13b8828c9396319a54ad7c0fbb1a4005e9d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-red-node-serialport"."0.1.*" =
-    self.by-version."node-red-node-serialport"."0.1.2";
-  by-version."node-red-node-serialport"."0.1.2" = self.buildNodePackage {
-    name = "node-red-node-serialport-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-red-node-serialport/-/node-red-node-serialport-0.1.2.tgz";
-      name = "node-red-node-serialport-0.1.2.tgz";
-      sha1 = "50ee3de46ef9b709fd110b22d9f7283955fa4b9b";
-    };
-    deps = {
-      "serialport-2.0.6" = self.by-version."serialport"."2.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-red-node-twitter"."0.1.*" =
-    self.by-version."node-red-node-twitter"."0.1.6";
-  by-version."node-red-node-twitter"."0.1.6" = self.buildNodePackage {
-    name = "node-red-node-twitter-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-red-node-twitter/-/node-red-node-twitter-0.1.6.tgz";
-      name = "node-red-node-twitter-0.1.6.tgz";
-      sha1 = "ee1c65767db0325f316987bf155543864995e618";
-    };
-    deps = {
-      "twitter-ng-0.6.2" = self.by-version."twitter-ng"."0.6.2";
-      "oauth-0.9.14" = self.by-version."oauth"."0.9.14";
-      "request-2.67.0" = self.by-version."request"."2.67.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-redis-scripty"."0.0.5" =
-    self.by-version."node-redis-scripty"."0.0.5";
-  by-version."node-redis-scripty"."0.0.5" = self.buildNodePackage {
-    name = "node-redis-scripty-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-redis-scripty/-/node-redis-scripty-0.0.5.tgz";
-      name = "node-redis-scripty-0.0.5.tgz";
-      sha1 = "4bf2d365ab6dab202cc08b7ac63f8f55aadc9625";
-    };
-    deps = {
-      "lru-cache-2.7.3" = self.by-version."lru-cache"."2.7.3";
-      "extend-1.3.0" = self.by-version."extend"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-redis-warlock"."~0.1.2" =
-    self.by-version."node-redis-warlock"."0.1.4";
-  by-version."node-redis-warlock"."0.1.4" = self.buildNodePackage {
-    name = "node-redis-warlock-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-redis-warlock/-/node-redis-warlock-0.1.4.tgz";
-      name = "node-redis-warlock-0.1.4.tgz";
-      sha1 = "a9050d0d257ff3498b6e51a097f15ed5e297479e";
-    };
-    deps = {
-      "node-redis-scripty-0.0.5" = self.by-version."node-redis-scripty"."0.0.5";
-      "uuid-2.0.2" = self.by-version."uuid"."2.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-stringprep"."*" =
-    self.by-version."node-stringprep"."0.8.0";
-  by-version."node-stringprep"."0.8.0" = self.buildNodePackage {
-    name = "node-stringprep-0.8.0";
-    version = "0.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-stringprep/-/node-stringprep-0.8.0.tgz";
-      name = "node-stringprep-0.8.0.tgz";
-      sha1 = "e4a39e48ea4486ec454bc08dca51dd1aa4686417";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-stringprep" = self.by-version."node-stringprep"."0.8.0";
-  by-spec."node-stringprep"."^0.7.0" =
-    self.by-version."node-stringprep"."0.7.3";
-  by-version."node-stringprep"."0.7.3" = self.buildNodePackage {
-    name = "node-stringprep-0.7.3";
-    version = "0.7.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-stringprep/-/node-stringprep-0.7.3.tgz";
-      name = "node-stringprep-0.7.3.tgz";
-      sha1 = "78b93d29660b6eddec501f2b2fa3f5e2e09dc6fd";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "nan-1.8.4" = self.by-version."nan"."1.8.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-stringprep"."~0.7.0" =
-    self.by-version."node-stringprep"."0.7.3";
-  by-spec."node-swt".">=0.1.1" =
-    self.by-version."node-swt"."0.1.1";
-  by-version."node-swt"."0.1.1" = self.buildNodePackage {
-    name = "node-swt-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-swt/-/node-swt-0.1.1.tgz";
-      name = "node-swt-0.1.1.tgz";
-      sha1 = "af0903825784be553b93dbae57d99d59060585dd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-txstatsd"."~0.1.5" =
-    self.by-version."node-txstatsd"."0.1.6";
-  by-version."node-txstatsd"."0.1.6" = self.buildNodePackage {
-    name = "node-txstatsd-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-txstatsd/-/node-txstatsd-0.1.6.tgz";
-      name = "node-txstatsd-0.1.6.tgz";
-      sha1 = "924d22e5348c40156c2eb5ac29a5bb5609ca2a04";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-uptime"."https://github.com/fzaninotto/uptime/tarball/1c65756575f90f563a752e2a22892ba2981c79b7" =
-    self.by-version."node-uptime"."3.2.0";
-  by-version."node-uptime"."3.2.0" = self.buildNodePackage {
-    name = "node-uptime-3.2.0";
-    version = "3.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://github.com/fzaninotto/uptime/tarball/1c65756575f90f563a752e2a22892ba2981c79b7";
-      name = "node-uptime-3.2.0.tgz";
-      sha256 = "46424d7f9553ce7313cc09995ab11d237dd02257c29f260cfb38d2799e7c7746";
-    };
-    deps = {
-      "mongoose-3.6.7" = self.by-version."mongoose"."3.6.7";
-      "mongoose-lifecycle-1.0.0" = self.by-version."mongoose-lifecycle"."1.0.0";
-      "express-3.2.0" = self.by-version."express"."3.2.0";
-      "express-partials-0.0.6" = self.by-version."express-partials"."0.0.6";
-      "connect-flash-0.1.0" = self.by-version."connect-flash"."0.1.0";
-      "ejs-0.8.3" = self.by-version."ejs"."0.8.3";
-      "config-0.4.15" = self.by-version."config"."0.4.15";
-      "async-0.1.22" = self.by-version."async"."0.1.22";
-      "socket.io-0.9.14" = self.by-version."socket.io"."0.9.14";
-      "semver-1.1.0" = self.by-version."semver"."1.1.0";
-      "moment-2.1.0" = self.by-version."moment"."2.1.0";
-      "nodemailer-0.3.35" = self.by-version."nodemailer"."0.3.35";
-      "net-ping-1.1.7" = self.by-version."net-ping"."1.1.7";
-      "js-yaml-2.1.0" = self.by-version."js-yaml"."2.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-uptime" = self.by-version."node-uptime"."3.2.0";
-  by-spec."node-uuid"."*" =
-    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 = "https://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 = [ ];
-  };
-  "node-uuid" = self.by-version."node-uuid"."1.4.7";
-  by-spec."node-uuid"."1.3.3" =
-    self.by-version."node-uuid"."1.3.3";
-  by-version."node-uuid"."1.3.3" = self.buildNodePackage {
-    name = "node-uuid-1.3.3";
-    version = "1.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.3.3.tgz";
-      name = "node-uuid-1.3.3.tgz";
-      sha1 = "d3db4d7b56810d9e4032342766282af07391729b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-uuid"."1.4.1" =
-    self.by-version."node-uuid"."1.4.1";
-  by-version."node-uuid"."1.4.1" = self.buildNodePackage {
-    name = "node-uuid-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz";
-      name = "node-uuid-1.4.1.tgz";
-      sha1 = "39aef510e5889a3dca9c895b506c73aae1bac048";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-uuid"."1.4.3" =
-    self.by-version."node-uuid"."1.4.3";
-  by-version."node-uuid"."1.4.3" = self.buildNodePackage {
-    name = "node-uuid-1.4.3";
-    version = "1.4.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz";
-      name = "node-uuid-1.4.3.tgz";
-      sha1 = "319bb7a56e7cb63f00b5c0cd7851cd4b4ddf1df9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-uuid"."1.4.7" =
-    self.by-version."node-uuid"."1.4.7";
-  by-spec."node-uuid"."^1.3.3" =
-    self.by-version."node-uuid"."1.4.7";
-  by-spec."node-uuid"."^1.4.1" =
-    self.by-version."node-uuid"."1.4.7";
-  by-spec."node-uuid"."^1.4.7" =
-    self.by-version."node-uuid"."1.4.7";
-  by-spec."node-uuid"."~1.4.0" =
-    self.by-version."node-uuid"."1.4.7";
-  by-spec."node-uuid"."~1.4.1" =
-    self.by-version."node-uuid"."1.4.7";
-  by-spec."node-uuid"."~1.4.3" =
-    self.by-version."node-uuid"."1.4.7";
-  by-spec."node-uuid"."~1.4.7" =
-    self.by-version."node-uuid"."1.4.7";
-  by-spec."node-wsfederation".">=0.1.1" =
-    self.by-version."node-wsfederation"."0.1.1";
-  by-version."node-wsfederation"."0.1.1" = self.buildNodePackage {
-    name = "node-wsfederation-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-wsfederation/-/node-wsfederation-0.1.1.tgz";
-      name = "node-wsfederation-0.1.1.tgz";
-      sha1 = "9abf1dd3b20a3ab0a38f899c882c218d734e8a7b";
-    };
-    deps = {
-      "xml2js-0.4.16" = self.by-version."xml2js"."0.4.16";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-xmpp-client"."*" =
-    self.by-version."node-xmpp-client"."3.0.1";
-  by-version."node-xmpp-client"."3.0.1" = self.buildNodePackage {
-    name = "node-xmpp-client-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-client/-/node-xmpp-client-3.0.1.tgz";
-      name = "node-xmpp-client-3.0.1.tgz";
-      sha1 = "75c8f097d658d8ecc7b846cea531030c817616cc";
-    };
-    deps = {
-      "browser-request-0.3.3" = self.by-version."browser-request"."0.3.3";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "faye-websocket-0.10.0" = self.by-version."faye-websocket"."0.10.0";
-      "istanbul-0.4.3" = self.by-version."istanbul"."0.4.3";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-      "node-xmpp-core-5.0.2" = self.by-version."node-xmpp-core"."5.0.2";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-xmpp-client" = self.by-version."node-xmpp-client"."3.0.1";
-  by-spec."node-xmpp-component"."*" =
-    self.by-version."node-xmpp-component"."2.0.2";
-  by-version."node-xmpp-component"."2.0.2" = self.buildNodePackage {
-    name = "node-xmpp-component-2.0.2";
-    version = "2.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-component/-/node-xmpp-component-2.0.2.tgz";
-      name = "node-xmpp-component-2.0.2.tgz";
-      sha1 = "74588fd2b7cecff9f7b8df691ea664d4f1ae522b";
-    };
-    deps = {
-      "node-xmpp-core-5.0.2" = self.by-version."node-xmpp-core"."5.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-xmpp-component" = self.by-version."node-xmpp-component"."2.0.2";
-  by-spec."node-xmpp-core"."*" =
-    self.by-version."node-xmpp-core"."5.0.2";
-  by-version."node-xmpp-core"."5.0.2" = self.buildNodePackage {
-    name = "node-xmpp-core-5.0.2";
-    version = "5.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-core/-/node-xmpp-core-5.0.2.tgz";
-      name = "node-xmpp-core-5.0.2.tgz";
-      sha1 = "17603b38753e7d97a9bc866ceabc637fcd5a7b8b";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "lodash.assign-4.0.9" = self.by-version."lodash.assign"."4.0.9";
-      "ltx-2.4.1" = self.by-version."ltx"."2.4.1";
-      "node-xmpp-jid-2.3.0" = self.by-version."node-xmpp-jid"."2.3.0";
-      "node-xmpp-stanza-1.1.0" = self.by-version."node-xmpp-stanza"."1.1.0";
-      "reconnect-core-0.0.1" = self.by-version."reconnect-core"."0.0.1";
-      "node-xmpp-tls-connect-1.0.1" = self.by-version."node-xmpp-tls-connect"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-xmpp-core" = self.by-version."node-xmpp-core"."5.0.2";
-  by-spec."node-xmpp-core"."^5.0.0" =
-    self.by-version."node-xmpp-core"."5.0.2";
-  by-spec."node-xmpp-core"."^5.0.1" =
-    self.by-version."node-xmpp-core"."5.0.2";
-  by-spec."node-xmpp-core"."~1.0.0-alpha14" =
-    self.by-version."node-xmpp-core"."1.0.0";
-  by-version."node-xmpp-core"."1.0.0" = self.buildNodePackage {
-    name = "node-xmpp-core-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-core/-/node-xmpp-core-1.0.0.tgz";
-      name = "node-xmpp-core-1.0.0.tgz";
-      sha1 = "6c96e7f5ce044fcc93ffb2cc45cb100e09af149f";
-    };
-    deps = {
-      "node-stringprep-0.7.3" = self.by-version."node-stringprep"."0.7.3";
-      "reconnect-core-0.0.1" = self.by-version."reconnect-core"."0.0.1";
-      "tls-connect-0.2.2" = self.by-version."tls-connect"."0.2.2";
-      "ltx-0.9.1" = self.by-version."ltx"."0.9.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-xmpp-jid"."^2.3.0" =
-    self.by-version."node-xmpp-jid"."2.3.0";
-  by-version."node-xmpp-jid"."2.3.0" = self.buildNodePackage {
-    name = "node-xmpp-jid-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-jid/-/node-xmpp-jid-2.3.0.tgz";
-      name = "node-xmpp-jid-2.3.0.tgz";
-      sha1 = "60a3c950582a0cdcfda074494357a85178f38878";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-xmpp-joap"."*" =
-    self.by-version."node-xmpp-joap"."0.0.19";
-  by-version."node-xmpp-joap"."0.0.19" = self.buildNodePackage {
-    name = "node-xmpp-joap-0.0.19";
-    version = "0.0.19";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-joap/-/node-xmpp-joap-0.0.19.tgz";
-      name = "node-xmpp-joap-0.0.19.tgz";
-      sha1 = "d026cef86639f9db67e0d7451f38bb2337ed1511";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "ltx-0.9.1" = self.by-version."ltx"."0.9.1";
-      "node-expat-2.3.13" = self.by-version."node-expat"."2.3.13";
-      "node-stringprep-0.7.3" = self.by-version."node-stringprep"."0.7.3";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "node-xmpp-core-1.0.0" = self.by-version."node-xmpp-core"."1.0.0";
-      "toobusy-js-0.4.3" = self.by-version."toobusy-js"."0.4.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-xmpp-joap" = self.by-version."node-xmpp-joap"."0.0.19";
-  by-spec."node-xmpp-server"."*" =
-    self.by-version."node-xmpp-server"."2.1.3";
-  by-version."node-xmpp-server"."2.1.3" = self.buildNodePackage {
-    name = "node-xmpp-server-2.1.3";
-    version = "2.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-server/-/node-xmpp-server-2.1.3.tgz";
-      name = "node-xmpp-server-2.1.3.tgz";
-      sha1 = "2759cc2ac50e66f0a94618756e92e32da12b3df5";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "es6-collections-0.5.6" = self.by-version."es6-collections"."0.5.6";
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "node-xmpp-core-5.0.2" = self.by-version."node-xmpp-core"."5.0.2";
-      "ws-1.1.0" = self.by-version."ws"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-xmpp-server" = self.by-version."node-xmpp-server"."2.1.3";
-  by-spec."node-xmpp-serviceadmin"."*" =
-    self.by-version."node-xmpp-serviceadmin"."0.2.0";
-  by-version."node-xmpp-serviceadmin"."0.2.0" = self.buildNodePackage {
-    name = "node-xmpp-serviceadmin-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-serviceadmin/-/node-xmpp-serviceadmin-0.2.0.tgz";
-      name = "node-xmpp-serviceadmin-0.2.0.tgz";
-      sha1 = "35f8b07cf6d96c27fe292f1b0cb9ac73f69e6315";
-    };
-    deps = {
-      "node-xmpp-core-1.0.0" = self.by-version."node-xmpp-core"."1.0.0";
-      "node-stringprep-0.7.3" = self.by-version."node-stringprep"."0.7.3";
-      "ltx-0.9.1" = self.by-version."ltx"."0.9.1";
-      "node-expat-2.3.13" = self.by-version."node-expat"."2.3.13";
-      "coffee-script-1.10.0" = self.by-version."coffee-script"."1.10.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "node-xmpp-serviceadmin" = self.by-version."node-xmpp-serviceadmin"."0.2.0";
-  by-spec."node-xmpp-stanza"."^1.1.0" =
-    self.by-version."node-xmpp-stanza"."1.1.0";
-  by-version."node-xmpp-stanza"."1.1.0" = self.buildNodePackage {
-    name = "node-xmpp-stanza-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-stanza/-/node-xmpp-stanza-1.1.0.tgz";
-      name = "node-xmpp-stanza-1.1.0.tgz";
-      sha1 = "26bb749065fe00787004f8c3b7c0b28494d46554";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "ltx-2.4.1" = self.by-version."ltx"."2.4.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node-xmpp-tls-connect"."^1.0.1" =
-    self.by-version."node-xmpp-tls-connect"."1.0.1";
-  by-version."node-xmpp-tls-connect"."1.0.1" = self.buildNodePackage {
-    name = "node-xmpp-tls-connect-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-xmpp-tls-connect/-/node-xmpp-tls-connect-1.0.1.tgz";
-      name = "node-xmpp-tls-connect-1.0.1.tgz";
-      sha1 = "91ace43ac26b138861b2be478df9df19d61dc5c3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."node.extend"."1.0.0" =
-    self.by-version."node.extend"."1.0.0";
-  by-version."node.extend"."1.0.0" = self.buildNodePackage {
-    name = "node.extend-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node.extend/-/node.extend-1.0.0.tgz";
-      name = "node.extend-1.0.0.tgz";
-      sha1 = "ab83960c477280d01ba5554a0d8fd3acfe39336e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemailer"."0.3.35" =
-    self.by-version."nodemailer"."0.3.35";
-  by-version."nodemailer"."0.3.35" = self.buildNodePackage {
-    name = "nodemailer-0.3.35";
-    version = "0.3.35";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemailer/-/nodemailer-0.3.35.tgz";
-      name = "nodemailer-0.3.35.tgz";
-      sha1 = "4d38cdc0ad230bdf88cc27d1256ef49fcb422e19";
-    };
-    deps = {
-      "mailcomposer-3.9.0" = self.by-version."mailcomposer"."3.9.0";
-      "simplesmtp-0.3.35" = self.by-version."simplesmtp"."0.3.35";
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemailer"."0.7.1" =
-    self.by-version."nodemailer"."0.7.1";
-  by-version."nodemailer"."0.7.1" = self.buildNodePackage {
-    name = "nodemailer-0.7.1";
-    version = "0.7.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemailer/-/nodemailer-0.7.1.tgz";
-      name = "nodemailer-0.7.1.tgz";
-      sha1 = "1ec819e243622300a00abe746cb5d3389c0f316c";
-    };
-    deps = {
-      "mailcomposer-0.2.12" = self.by-version."mailcomposer"."0.2.12";
-      "simplesmtp-0.3.35" = self.by-version."simplesmtp"."0.3.35";
-      "directmail-0.1.8" = self.by-version."directmail"."0.1.8";
-      "he-0.3.6" = self.by-version."he"."0.3.6";
-      "public-address-0.1.1" = self.by-version."public-address"."0.1.1";
-      "aws-sdk-2.0.5" = self.by-version."aws-sdk"."2.0.5";
-    };
-    optionalDependencies = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemailer"."^1.11.0" =
-    self.by-version."nodemailer"."1.11.0";
-  by-version."nodemailer"."1.11.0" = self.buildNodePackage {
-    name = "nodemailer-1.11.0";
-    version = "1.11.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemailer/-/nodemailer-1.11.0.tgz";
-      name = "nodemailer-1.11.0.tgz";
-      sha1 = "4e69cb39b03015b1d1ef0c78a815412b9e976f79";
-    };
-    deps = {
-      "libmime-1.2.0" = self.by-version."libmime"."1.2.0";
-      "mailcomposer-2.1.0" = self.by-version."mailcomposer"."2.1.0";
-      "needle-0.11.0" = self.by-version."needle"."0.11.0";
-      "nodemailer-direct-transport-1.1.0" = self.by-version."nodemailer-direct-transport"."1.1.0";
-      "nodemailer-smtp-transport-1.1.0" = self.by-version."nodemailer-smtp-transport"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemailer-direct-transport"."^1.1.0" =
-    self.by-version."nodemailer-direct-transport"."1.1.0";
-  by-version."nodemailer-direct-transport"."1.1.0" = self.buildNodePackage {
-    name = "nodemailer-direct-transport-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-1.1.0.tgz";
-      name = "nodemailer-direct-transport-1.1.0.tgz";
-      sha1 = "a2f78708ee6f16ea0573fc82949d138ff172f624";
-    };
-    deps = {
-      "smtp-connection-1.3.8" = self.by-version."smtp-connection"."1.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemailer-fetch"."1.4.0" =
-    self.by-version."nodemailer-fetch"."1.4.0";
-  by-version."nodemailer-fetch"."1.4.0" = self.buildNodePackage {
-    name = "nodemailer-fetch-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.4.0.tgz";
-      name = "nodemailer-fetch-1.4.0.tgz";
-      sha1 = "08a6174f755aba6ad9d88133355a70c1dee4e698";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemailer-shared"."1.0.5" =
-    self.by-version."nodemailer-shared"."1.0.5";
-  by-version."nodemailer-shared"."1.0.5" = self.buildNodePackage {
-    name = "nodemailer-shared-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.0.5.tgz";
-      name = "nodemailer-shared-1.0.5.tgz";
-      sha1 = "6de64484d47944422bb5f0886fffd908ada4ce5e";
-    };
-    deps = {
-      "nodemailer-fetch-1.4.0" = self.by-version."nodemailer-fetch"."1.4.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemailer-smtp-transport"."^1.1.0" =
-    self.by-version."nodemailer-smtp-transport"."1.1.0";
-  by-version."nodemailer-smtp-transport"."1.1.0" = self.buildNodePackage {
-    name = "nodemailer-smtp-transport-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-1.1.0.tgz";
-      name = "nodemailer-smtp-transport-1.1.0.tgz";
-      sha1 = "e6c37f31885ab3080e7ded3cf528c4ad7e691398";
-    };
-    deps = {
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-      "nodemailer-wellknown-0.1.10" = self.by-version."nodemailer-wellknown"."0.1.10";
-      "smtp-connection-1.3.8" = self.by-version."smtp-connection"."1.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemailer-wellknown"."^0.1.7" =
-    self.by-version."nodemailer-wellknown"."0.1.10";
-  by-version."nodemailer-wellknown"."0.1.10" = self.buildNodePackage {
-    name = "nodemailer-wellknown-0.1.10";
-    version = "0.1.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz";
-      name = "nodemailer-wellknown-0.1.10.tgz";
-      sha1 = "586db8101db30cb4438eb546737a41aad0cf13d5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nodemon"."*" =
-    self.by-version."nodemon"."1.9.2";
-  by-version."nodemon"."1.9.2" = self.buildNodePackage {
-    name = "nodemon-1.9.2";
-    version = "1.9.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nodemon/-/nodemon-1.9.2.tgz";
-      name = "nodemon-1.9.2.tgz";
-      sha1 = "21b3cd157d5483833b473372c98e1795a4d55970";
-    };
-    deps = {
-      "chokidar-1.5.2" = self.by-version."chokidar"."1.5.2";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "es6-promise-3.2.1" = self.by-version."es6-promise"."3.2.1";
-      "ignore-by-default-1.0.1" = self.by-version."ignore-by-default"."1.0.1";
-      "lodash.defaults-3.1.2" = self.by-version."lodash.defaults"."3.1.2";
-      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
-      "ps-tree-1.1.0" = self.by-version."ps-tree"."1.1.0";
-      "touch-1.0.0" = self.by-version."touch"."1.0.0";
-      "undefsafe-0.0.3" = self.by-version."undefsafe"."0.0.3";
-      "update-notifier-0.5.0" = self.by-version."update-notifier"."0.5.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "nodemon" = self.by-version."nodemon"."1.9.2";
-  by-spec."nomnom"."1.6.x" =
-    self.by-version."nomnom"."1.6.2";
-  by-version."nomnom"."1.6.2" = self.buildNodePackage {
-    name = "nomnom-1.6.2";
-    version = "1.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz";
-      name = "nomnom-1.6.2.tgz";
-      sha1 = "84a66a260174408fc5b77a18f888eccc44fb6971";
-    };
-    deps = {
-      "colors-0.5.1" = self.by-version."colors"."0.5.1";
-      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nopt"."2" =
-    self.by-version."nopt"."2.2.1";
-  by-version."nopt"."2.2.1" = self.buildNodePackage {
-    name = "nopt-2.2.1";
-    version = "2.2.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz";
-      name = "nopt-2.2.1.tgz";
-      sha1 = "2aa09b7d1768487b3b89a9c5aa52335bff0baea7";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nopt"."2 || 3" =
-    self.by-version."nopt"."3.0.6";
-  by-version."nopt"."3.0.6" = self.buildNodePackage {
-    name = "nopt-3.0.6";
-    version = "3.0.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
-      name = "nopt-3.0.6.tgz";
-      sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nopt"."2.0.0" =
-    self.by-version."nopt"."2.0.0";
-  by-version."nopt"."2.0.0" = self.buildNodePackage {
-    name = "nopt-2.0.0";
-    version = "2.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz";
-      name = "nopt-2.0.0.tgz";
-      sha1 = "ca7416f20a5e3f9c3b86180f96295fa3d0b52e0d";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nopt"."2.1.1" =
-    self.by-version."nopt"."2.1.1";
-  by-version."nopt"."2.1.1" = self.buildNodePackage {
-    name = "nopt-2.1.1";
-    version = "2.1.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nopt/-/nopt-2.1.1.tgz";
-      name = "nopt-2.1.1.tgz";
-      sha1 = "91eb7c4b017e7c00adcad1fd6d63944d0fdb75c1";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nopt"."3.0.1" =
-    self.by-version."nopt"."3.0.1";
-  by-version."nopt"."3.0.1" = self.buildNodePackage {
-    name = "nopt-3.0.1";
-    version = "3.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz";
-      name = "nopt-3.0.1.tgz";
-      sha1 = "bce5c42446a3291f47622a370abbf158fbbacbfd";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nopt"."3.0.6" =
-    self.by-version."nopt"."3.0.6";
-  by-spec."nopt"."3.x" =
-    self.by-version."nopt"."3.0.6";
-  by-spec."nopt"."^3.0.6" =
-    self.by-version."nopt"."3.0.6";
-  by-spec."nopt"."~1.0.10" =
-    self.by-version."nopt"."1.0.10";
-  by-version."nopt"."1.0.10" = self.buildNodePackage {
-    name = "nopt-1.0.10";
-    version = "1.0.10";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz";
-      name = "nopt-1.0.10.tgz";
-      sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nopt"."~3.0.1" =
-    self.by-version."nopt"."3.0.6";
-  by-spec."nopt"."~3.0.6" =
-    self.by-version."nopt"."3.0.6";
-  by-spec."normalize-git-url"."~3.0.2" =
-    self.by-version."normalize-git-url"."3.0.2";
-  by-version."normalize-git-url"."3.0.2" = self.buildNodePackage {
-    name = "normalize-git-url-3.0.2";
-    version = "3.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/normalize-git-url/-/normalize-git-url-3.0.2.tgz";
-      name = "normalize-git-url-3.0.2.tgz";
-      sha1 = "8e5f14be0bdaedb73e07200310aa416c27350fc4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."normalize-package-data"."^2.0.0" =
-    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 = "https://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.5" = self.by-version."hosted-git-info"."2.1.5";
-      "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.2" =
-    self.by-version."normalize-package-data"."2.3.5";
-  by-spec."normalize-package-data"."^2.3.4" =
-    self.by-version."normalize-package-data"."2.3.5";
-  by-spec."normalize-package-data"."~1.0.1 || ^2.0.0" =
-    self.by-version."normalize-package-data"."2.3.5";
-  by-spec."normalize-package-data"."~2.3.5" =
-    self.by-version."normalize-package-data"."2.3.5";
-  by-spec."normalize-path"."^2.0.1" =
-    self.by-version."normalize-path"."2.0.1";
-  by-version."normalize-path"."2.0.1" = self.buildNodePackage {
-    name = "normalize-path-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz";
-      name = "normalize-path-2.0.1.tgz";
-      sha1 = "47886ac1662760d4261b7d979d241709d3ce3f7a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm"."*" =
-    self.by-version."npm"."3.9.6";
-  by-version."npm"."3.9.6" = self.buildNodePackage {
-    name = "npm-3.9.6";
-    version = "3.9.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-3.9.6.tgz";
-      name = "npm-3.9.6.tgz";
-      sha1 = "0ef1d272a069ad95bdca8b2dfe6fcd82f4b461d7";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-      "ansicolors-0.3.2" = self.by-version."ansicolors"."0.3.2";
-      "ansistyles-0.1.3" = self.by-version."ansistyles"."0.1.3";
-      "aproba-1.0.3" = self.by-version."aproba"."1.0.3";
-      "archy-1.0.0" = self.by-version."archy"."1.0.0";
-      "chownr-1.0.1" = self.by-version."chownr"."1.0.1";
-      "cmd-shim-2.0.2" = self.by-version."cmd-shim"."2.0.2";
-      "columnify-1.5.4" = self.by-version."columnify"."1.5.4";
-      "config-chain-1.1.10" = self.by-version."config-chain"."1.1.10";
-      "dezalgo-1.0.3" = self.by-version."dezalgo"."1.0.3";
-      "editor-1.0.0" = self.by-version."editor"."1.0.0";
-      "fs-vacuum-1.2.9" = self.by-version."fs-vacuum"."1.2.9";
-      "fs-write-stream-atomic-1.0.8" = self.by-version."fs-write-stream-atomic"."1.0.8";
-      "fstream-1.0.9" = self.by-version."fstream"."1.0.9";
-      "fstream-npm-1.1.0" = self.by-version."fstream-npm"."1.1.0";
-      "glob-7.0.3" = self.by-version."glob"."7.0.3";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "has-unicode-2.0.0" = self.by-version."has-unicode"."2.0.0";
-      "hosted-git-info-2.1.5" = self.by-version."hosted-git-info"."2.1.5";
-      "iferr-0.1.5" = self.by-version."iferr"."0.1.5";
-      "inflight-1.0.5" = self.by-version."inflight"."1.0.5";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "ini-1.3.4" = self.by-version."ini"."1.3.4";
-      "init-package-json-1.9.4" = self.by-version."init-package-json"."1.9.4";
-      "lockfile-1.0.1" = self.by-version."lockfile"."1.0.1";
-      "lodash._baseuniq-4.6.0" = self.by-version."lodash._baseuniq"."4.6.0";
-      "lodash.clonedeep-4.3.2" = self.by-version."lodash.clonedeep"."4.3.2";
-      "lodash.union-4.4.0" = self.by-version."lodash.union"."4.4.0";
-      "lodash.uniq-4.3.0" = self.by-version."lodash.uniq"."4.3.0";
-      "lodash.without-4.2.0" = self.by-version."lodash.without"."4.2.0";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "node-gyp-3.3.1" = self.by-version."node-gyp"."3.3.1";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "normalize-git-url-3.0.2" = self.by-version."normalize-git-url"."3.0.2";
-      "normalize-package-data-2.3.5" = self.by-version."normalize-package-data"."2.3.5";
-      "npm-cache-filename-1.0.2" = self.by-version."npm-cache-filename"."1.0.2";
-      "npm-install-checks-3.0.0" = self.by-version."npm-install-checks"."3.0.0";
-      "npm-package-arg-4.1.1" = self.by-version."npm-package-arg"."4.1.1";
-      "npm-registry-client-7.1.1" = self.by-version."npm-registry-client"."7.1.1";
-      "npm-user-validate-0.1.3" = self.by-version."npm-user-validate"."0.1.3";
-      "npmlog-2.0.4" = self.by-version."npmlog"."2.0.4";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "opener-1.4.1" = self.by-version."opener"."1.4.1";
-      "osenv-0.1.3" = self.by-version."osenv"."0.1.3";
-      "path-is-inside-1.0.1" = self.by-version."path-is-inside"."1.0.1";
-      "read-1.0.7" = self.by-version."read"."1.0.7";
-      "read-cmd-shim-1.0.1" = self.by-version."read-cmd-shim"."1.0.1";
-      "read-installed-4.0.3" = self.by-version."read-installed"."4.0.3";
-      "read-package-json-2.0.4" = self.by-version."read-package-json"."2.0.4";
-      "read-package-tree-5.1.4" = self.by-version."read-package-tree"."5.1.4";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "realize-package-specifier-3.0.3" = self.by-version."realize-package-specifier"."3.0.3";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "retry-0.9.0" = self.by-version."retry"."0.9.0";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "sha-2.0.1" = self.by-version."sha"."2.0.1";
-      "slide-1.1.6" = self.by-version."slide"."1.1.6";
-      "sorted-object-2.0.0" = self.by-version."sorted-object"."2.0.0";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "tar-2.2.1" = self.by-version."tar"."2.2.1";
-      "text-table-0.2.0" = self.by-version."text-table"."0.2.0";
-      "uid-number-0.0.6" = self.by-version."uid-number"."0.0.6";
-      "umask-1.1.0" = self.by-version."umask"."1.1.0";
-      "unique-filename-1.1.0" = self.by-version."unique-filename"."1.1.0";
-      "unpipe-1.0.0" = self.by-version."unpipe"."1.0.0";
-      "validate-npm-package-name-2.2.2" = self.by-version."validate-npm-package-name"."2.2.2";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-      "wrappy-1.0.2" = self.by-version."wrappy"."1.0.2";
-      "write-file-atomic-1.1.4" = self.by-version."write-file-atomic"."1.1.4";
-      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
-      "debuglog-1.0.1" = self.by-version."debuglog"."1.0.1";
-      "imurmurhash-0.1.4" = self.by-version."imurmurhash"."0.1.4";
-      "lodash._baseindexof-3.1.0" = self.by-version."lodash._baseindexof"."3.1.0";
-      "lodash._bindcallback-3.0.1" = self.by-version."lodash._bindcallback"."3.0.1";
-      "lodash._cacheindexof-3.0.2" = self.by-version."lodash._cacheindexof"."3.0.2";
-      "lodash._createcache-3.1.2" = self.by-version."lodash._createcache"."3.1.2";
-      "lodash._getnative-3.9.1" = self.by-version."lodash._getnative"."3.9.1";
-      "lodash.restparam-3.6.1" = self.by-version."lodash.restparam"."3.6.1";
-      "readdir-scoped-modules-1.0.2" = self.by-version."readdir-scoped-modules"."1.0.2";
-      "validate-npm-package-license-3.0.1" = self.by-version."validate-npm-package-license"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "npm" = self.by-version."npm"."3.9.6";
-  by-spec."npm"."^2.10.x" =
-    self.by-version."npm"."2.15.6";
-  by-version."npm"."2.15.6" = self.buildNodePackage {
-    name = "npm-2.15.6";
-    version = "2.15.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-2.15.6.tgz";
-      name = "npm-2.15.6.tgz";
-      sha1 = "d6216caf7a275fbe66bbc9505b8d288f9da1051e";
-    };
-    deps = {
-      "abbrev-1.0.7" = self.by-version."abbrev"."1.0.7";
-      "ansi-0.3.1" = self.by-version."ansi"."0.3.1";
-      "ansicolors-0.3.2" = self.by-version."ansicolors"."0.3.2";
-      "ansistyles-0.1.3" = self.by-version."ansistyles"."0.1.3";
-      "archy-1.0.0" = self.by-version."archy"."1.0.0";
-      "async-some-1.0.2" = self.by-version."async-some"."1.0.2";
-      "block-stream-0.0.9" = self.by-version."block-stream"."0.0.9";
-      "char-spinner-1.0.1" = self.by-version."char-spinner"."1.0.1";
-      "chmodr-1.0.2" = self.by-version."chmodr"."1.0.2";
-      "chownr-1.0.1" = self.by-version."chownr"."1.0.1";
-      "cmd-shim-2.0.2" = self.by-version."cmd-shim"."2.0.2";
-      "columnify-1.5.4" = self.by-version."columnify"."1.5.4";
-      "config-chain-1.1.10" = self.by-version."config-chain"."1.1.10";
-      "dezalgo-1.0.3" = self.by-version."dezalgo"."1.0.3";
-      "editor-1.0.0" = self.by-version."editor"."1.0.0";
-      "fs-vacuum-1.2.9" = self.by-version."fs-vacuum"."1.2.9";
-      "fs-write-stream-atomic-1.0.8" = self.by-version."fs-write-stream-atomic"."1.0.8";
-      "fstream-1.0.9" = self.by-version."fstream"."1.0.9";
-      "fstream-npm-1.0.7" = self.by-version."fstream-npm"."1.0.7";
-      "github-url-from-git-1.4.0" = self.by-version."github-url-from-git"."1.4.0";
-      "github-url-from-username-repo-1.0.2" = self.by-version."github-url-from-username-repo"."1.0.2";
-      "glob-7.0.3" = self.by-version."glob"."7.0.3";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "hosted-git-info-2.1.5" = self.by-version."hosted-git-info"."2.1.5";
-      "inflight-1.0.5" = self.by-version."inflight"."1.0.5";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "ini-1.3.4" = self.by-version."ini"."1.3.4";
-      "init-package-json-1.9.4" = self.by-version."init-package-json"."1.9.4";
-      "lockfile-1.0.1" = self.by-version."lockfile"."1.0.1";
-      "lru-cache-4.0.1" = self.by-version."lru-cache"."4.0.1";
-      "minimatch-3.0.0" = self.by-version."minimatch"."3.0.0";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "node-gyp-3.3.1" = self.by-version."node-gyp"."3.3.1";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "normalize-git-url-3.0.2" = self.by-version."normalize-git-url"."3.0.2";
-      "normalize-package-data-2.3.5" = self.by-version."normalize-package-data"."2.3.5";
-      "npm-cache-filename-1.0.2" = self.by-version."npm-cache-filename"."1.0.2";
-      "npm-install-checks-1.0.7" = self.by-version."npm-install-checks"."1.0.7";
-      "npm-package-arg-4.1.1" = self.by-version."npm-package-arg"."4.1.1";
-      "npm-registry-client-7.1.1" = self.by-version."npm-registry-client"."7.1.1";
-      "npm-user-validate-0.1.3" = self.by-version."npm-user-validate"."0.1.3";
-      "npmlog-2.0.4" = self.by-version."npmlog"."2.0.4";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "opener-1.4.1" = self.by-version."opener"."1.4.1";
-      "osenv-0.1.3" = self.by-version."osenv"."0.1.3";
-      "path-is-inside-1.0.1" = self.by-version."path-is-inside"."1.0.1";
-      "read-1.0.7" = self.by-version."read"."1.0.7";
-      "read-installed-4.0.3" = self.by-version."read-installed"."4.0.3";
-      "read-package-json-2.0.4" = self.by-version."read-package-json"."2.0.4";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "realize-package-specifier-3.0.3" = self.by-version."realize-package-specifier"."3.0.3";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "retry-0.9.0" = self.by-version."retry"."0.9.0";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "sha-2.0.1" = self.by-version."sha"."2.0.1";
-      "slide-1.1.6" = self.by-version."slide"."1.1.6";
-      "sorted-object-2.0.0" = self.by-version."sorted-object"."2.0.0";
-      "spdx-license-ids-1.2.1" = self.by-version."spdx-license-ids"."1.2.1";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "tar-2.2.1" = self.by-version."tar"."2.2.1";
-      "text-table-0.2.0" = self.by-version."text-table"."0.2.0";
-      "uid-number-0.0.6" = self.by-version."uid-number"."0.0.6";
-      "umask-1.1.0" = self.by-version."umask"."1.1.0";
-      "validate-npm-package-license-3.0.1" = self.by-version."validate-npm-package-license"."3.0.1";
-      "validate-npm-package-name-2.2.2" = self.by-version."validate-npm-package-name"."2.2.2";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-      "wrappy-1.0.2" = self.by-version."wrappy"."1.0.2";
-      "write-file-atomic-1.1.4" = self.by-version."write-file-atomic"."1.1.4";
-      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
-      "imurmurhash-0.1.4" = self.by-version."imurmurhash"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm"."^3" =
-    self.by-version."npm"."3.9.6";
-  by-spec."npm"."^3.5.1" =
-    self.by-version."npm"."3.9.6";
-  by-spec."npm-cache-filename"."~1.0.2" =
-    self.by-version."npm-cache-filename"."1.0.2";
-  by-version."npm-cache-filename"."1.0.2" = self.buildNodePackage {
-    name = "npm-cache-filename-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz";
-      name = "npm-cache-filename-1.0.2.tgz";
-      sha1 = "ded306c5b0bfc870a9e9faf823bc5f283e05ae11";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm-check-updates"."*" =
-    self.by-version."npm-check-updates"."2.6.7";
-  by-version."npm-check-updates"."2.6.7" = self.buildNodePackage {
-    name = "npm-check-updates-2.6.7";
-    version = "2.6.7";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-2.6.7.tgz";
-      name = "npm-check-updates-2.6.7.tgz";
-      sha1 = "fe1aac606ce71e69ce060c16854dd6cff2cd7c22";
-    };
-    deps = {
-      "bluebird-3.4.0" = self.by-version."bluebird"."3.4.0";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "cint-8.2.1" = self.by-version."cint"."8.2.1";
-      "cli-table-0.3.1" = self.by-version."cli-table"."0.3.1";
-      "commander-2.9.0" = self.by-version."commander"."2.9.0";
-      "fast-diff-1.0.1" = self.by-version."fast-diff"."1.0.1";
-      "find-up-1.1.2" = self.by-version."find-up"."1.1.2";
-      "get-stdin-5.0.1" = self.by-version."get-stdin"."5.0.1";
-      "json-parse-helpfulerror-1.0.3" = self.by-version."json-parse-helpfulerror"."1.0.3";
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "node-alias-1.0.4" = self.by-version."node-alias"."1.0.4";
-      "npm-3.9.6" = self.by-version."npm"."3.9.6";
-      "npmi-2.0.1" = self.by-version."npmi"."2.0.1";
-      "require-dir-0.3.0" = self.by-version."require-dir"."0.3.0";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "semver-utils-1.1.1" = self.by-version."semver-utils"."1.1.1";
-      "spawn-please-0.1.0" = self.by-version."spawn-please"."0.1.0";
-      "update-notifier-0.5.0" = self.by-version."update-notifier"."0.5.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "npm-check-updates" = self.by-version."npm-check-updates"."2.6.7";
-  by-spec."npm-install-checks"."~1.0.7" =
-    self.by-version."npm-install-checks"."1.0.7";
-  by-version."npm-install-checks"."1.0.7" = self.buildNodePackage {
-    name = "npm-install-checks-1.0.7";
-    version = "1.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-1.0.7.tgz";
-      name = "npm-install-checks-1.0.7.tgz";
-      sha1 = "6d91aeda0ac96801f1ed7aadee116a6c0a086a57";
-    };
-    deps = {
-      "npmlog-2.0.4" = self.by-version."npmlog"."2.0.4";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm-install-checks"."~3.0.0" =
-    self.by-version."npm-install-checks"."3.0.0";
-  by-version."npm-install-checks"."3.0.0" = self.buildNodePackage {
-    name = "npm-install-checks-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz";
-      name = "npm-install-checks-3.0.0.tgz";
-      sha1 = "d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7";
-    };
-    deps = {
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm-package-arg"."^3.0.0 || ^4.0.0" =
-    self.by-version."npm-package-arg"."4.1.1";
-  by-version."npm-package-arg"."4.1.1" = self.buildNodePackage {
-    name = "npm-package-arg-4.1.1";
-    version = "4.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.1.1.tgz";
-      name = "npm-package-arg-4.1.1.tgz";
-      sha1 = "86d9dca985b4c5e5d59772dfd5de6919998a495a";
-    };
-    deps = {
-      "hosted-git-info-2.1.5" = self.by-version."hosted-git-info"."2.1.5";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm-package-arg"."^4.0.0" =
-    self.by-version."npm-package-arg"."4.1.1";
-  by-spec."npm-package-arg"."^4.1.1" =
-    self.by-version."npm-package-arg"."4.1.1";
-  by-spec."npm-package-arg"."~4.1.0" =
-    self.by-version."npm-package-arg"."4.1.1";
-  by-spec."npm-package-arg"."~4.1.1" =
-    self.by-version."npm-package-arg"."4.1.1";
-  by-spec."npm-registry-client"."0.2.27" =
-    self.by-version."npm-registry-client"."0.2.27";
-  by-version."npm-registry-client"."0.2.27" = self.buildNodePackage {
-    name = "npm-registry-client-0.2.27";
-    version = "0.2.27";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-0.2.27.tgz";
-      name = "npm-registry-client-0.2.27.tgz";
-      sha1 = "8f338189d32769267886a07ad7b7fd2267446adf";
-    };
-    deps = {
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "graceful-fs-2.0.3" = self.by-version."graceful-fs"."2.0.3";
-      "semver-2.0.11" = self.by-version."semver"."2.0.11";
-      "slide-1.1.6" = self.by-version."slide"."1.1.6";
-      "chownr-0.0.2" = self.by-version."chownr"."0.0.2";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "retry-0.6.0" = self.by-version."retry"."0.6.0";
-      "couch-login-0.1.20" = self.by-version."couch-login"."0.1.20";
-    };
-    optionalDependencies = {
-      "npmlog-3.0.0" = self.by-version."npmlog"."3.0.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm-registry-client"."~7.0.9" =
-    self.by-version."npm-registry-client"."7.0.9";
-  by-version."npm-registry-client"."7.0.9" = self.buildNodePackage {
-    name = "npm-registry-client-7.0.9";
-    version = "7.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.0.9.tgz";
-      name = "npm-registry-client-7.0.9.tgz";
-      sha1 = "1baf86ee5285c4e6d38d4556208ded56049231bb";
-    };
-    deps = {
-      "chownr-1.0.1" = self.by-version."chownr"."1.0.1";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "normalize-package-data-2.3.5" = self.by-version."normalize-package-data"."2.3.5";
-      "npm-package-arg-4.1.1" = self.by-version."npm-package-arg"."4.1.1";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "retry-0.8.0" = self.by-version."retry"."0.8.0";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "slide-1.1.6" = self.by-version."slide"."1.1.6";
-    };
-    optionalDependencies = {
-      "npmlog-2.0.4" = self.by-version."npmlog"."2.0.4";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm-registry-client"."~7.1.0" =
-    self.by-version."npm-registry-client"."7.1.1";
-  by-version."npm-registry-client"."7.1.1" = self.buildNodePackage {
-    name = "npm-registry-client-7.1.1";
-    version = "7.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.1.tgz";
-      name = "npm-registry-client-7.1.1.tgz";
-      sha1 = "d402c000996904132258bc48c9b81362025091df";
-    };
-    deps = {
-      "chownr-1.0.1" = self.by-version."chownr"."1.0.1";
-      "concat-stream-1.5.1" = self.by-version."concat-stream"."1.5.1";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "normalize-package-data-2.3.5" = self.by-version."normalize-package-data"."2.3.5";
-      "npm-package-arg-4.1.1" = self.by-version."npm-package-arg"."4.1.1";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "retry-0.8.0" = self.by-version."retry"."0.8.0";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "slide-1.1.6" = self.by-version."slide"."1.1.6";
-    };
-    optionalDependencies = {
-      "npmlog-3.0.0" = self.by-version."npmlog"."3.0.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm-user-validate"."~0.1.2" =
-    self.by-version."npm-user-validate"."0.1.3";
-  by-version."npm-user-validate"."0.1.3" = self.buildNodePackage {
-    name = "npm-user-validate-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.3.tgz";
-      name = "npm-user-validate-0.1.3.tgz";
-      sha1 = "68a90b5a097374891a7b35f491d4285b8ac3b9f7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npm2nix"."git://github.com/NixOS/npm2nix.git#5.12.0" =
-    self.by-version."npm2nix"."5.12.0";
-  by-version."npm2nix"."5.12.0" = self.buildNodePackage {
-    name = "npm2nix-5.12.0";
-    version = "5.12.0";
-    bin = true;
-    src = fetchgit {
-      url = "git://github.com/NixOS/npm2nix.git";
-      rev = "0c06be7d278a7f64fc853a5fd42d2031d14496d5";
-      sha256 = "e1b252cd883fd8c5c4618b157d03b3fb869fa6aad4170ef51e34681069d50bf5";
-    };
-    deps = {
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-      "argparse-0.1.15" = self.by-version."argparse"."0.1.15";
-      "npm-registry-client-0.2.27" = self.by-version."npm-registry-client"."0.2.27";
-      "npmconf-0.1.1" = self.by-version."npmconf"."0.1.1";
-      "tar-0.1.17" = self.by-version."tar"."0.1.17";
-      "temp-0.6.0" = self.by-version."temp"."0.6.0";
-      "fs.extra-1.3.2" = self.by-version."fs.extra"."1.3.2";
-      "findit-1.2.0" = self.by-version."findit"."1.2.0";
-      "coffee-script-1.10.0" = self.by-version."coffee-script"."1.10.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "npm2nix" = self.by-version."npm2nix"."5.12.0";
-  by-spec."npmconf"."0.0.24" =
-    self.by-version."npmconf"."0.0.24";
-  by-version."npmconf"."0.0.24" = self.buildNodePackage {
-    name = "npmconf-0.0.24";
-    version = "0.0.24";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npmconf/-/npmconf-0.0.24.tgz";
-      name = "npmconf-0.0.24.tgz";
-      sha1 = "b78875b088ccc3c0afa3eceb3ce3244b1b52390c";
-    };
-    deps = {
-      "config-chain-1.1.10" = self.by-version."config-chain"."1.1.10";
-      "inherits-1.0.2" = self.by-version."inherits"."1.0.2";
-      "once-1.1.1" = self.by-version."once"."1.1.1";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "osenv-0.0.3" = self.by-version."osenv"."0.0.3";
-      "nopt-2.2.1" = self.by-version."nopt"."2.2.1";
-      "semver-1.1.4" = self.by-version."semver"."1.1.4";
-      "ini-1.1.0" = self.by-version."ini"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npmconf"."0.1.1" =
-    self.by-version."npmconf"."0.1.1";
-  by-version."npmconf"."0.1.1" = self.buildNodePackage {
-    name = "npmconf-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npmconf/-/npmconf-0.1.1.tgz";
-      name = "npmconf-0.1.1.tgz";
-      sha1 = "7a254182591ca22d77b2faecc0d17e0f9bdf25a1";
-    };
-    deps = {
-      "config-chain-1.1.10" = self.by-version."config-chain"."1.1.10";
-      "inherits-1.0.2" = self.by-version."inherits"."1.0.2";
-      "once-1.1.1" = self.by-version."once"."1.1.1";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "osenv-0.0.3" = self.by-version."osenv"."0.0.3";
-      "nopt-2.2.1" = self.by-version."nopt"."2.2.1";
-      "semver-2.3.2" = self.by-version."semver"."2.3.2";
-      "ini-1.1.0" = self.by-version."ini"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npmconf"."~0.1.2" =
-    self.by-version."npmconf"."0.1.16";
-  by-version."npmconf"."0.1.16" = self.buildNodePackage {
-    name = "npmconf-0.1.16";
-    version = "0.1.16";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npmconf/-/npmconf-0.1.16.tgz";
-      name = "npmconf-0.1.16.tgz";
-      sha1 = "0bdca78b8551419686b3a98004f06f0819edcd2a";
-    };
-    deps = {
-      "config-chain-1.1.10" = self.by-version."config-chain"."1.1.10";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "osenv-0.0.3" = self.by-version."osenv"."0.0.3";
-      "nopt-2.2.1" = self.by-version."nopt"."2.2.1";
-      "semver-2.3.2" = self.by-version."semver"."2.3.2";
-      "ini-1.1.0" = self.by-version."ini"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npmconf"."~2.1.2" =
-    self.by-version."npmconf"."2.1.2";
-  by-version."npmconf"."2.1.2" = self.buildNodePackage {
-    name = "npmconf-2.1.2";
-    version = "2.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npmconf/-/npmconf-2.1.2.tgz";
-      name = "npmconf-2.1.2.tgz";
-      sha1 = "66606a4a736f1e77a059aa071a79c94ab781853a";
-    };
-    deps = {
-      "config-chain-1.1.10" = self.by-version."config-chain"."1.1.10";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "ini-1.3.4" = self.by-version."ini"."1.3.4";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "nopt-3.0.6" = self.by-version."nopt"."3.0.6";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "osenv-0.1.3" = self.by-version."osenv"."0.1.3";
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-      "uid-number-0.0.5" = self.by-version."uid-number"."0.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npmi"."^2.0.1-alpha" =
-    self.by-version."npmi"."2.0.1";
-  by-version."npmi"."2.0.1" = self.buildNodePackage {
-    name = "npmi-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npmi/-/npmi-2.0.1.tgz";
-      name = "npmi-2.0.1.tgz";
-      sha1 = "32607657e1bd47ca857ab4e9d98f0a0cff96bcea";
-    };
-    deps = {
-      "npm-3.9.6" = self.by-version."npm"."3.9.6";
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npmlog"."*" =
-    self.by-version."npmlog"."3.0.0";
-  by-version."npmlog"."3.0.0" = self.buildNodePackage {
-    name = "npmlog-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npmlog/-/npmlog-3.0.0.tgz";
-      name = "npmlog-3.0.0.tgz";
-      sha1 = "5b75a32bffcfd6ebf046487a302182224cd17c9b";
-    };
-    deps = {
-      "ansi-0.3.1" = self.by-version."ansi"."0.3.1";
-      "are-we-there-yet-1.1.2" = self.by-version."are-we-there-yet"."1.1.2";
-      "gauge-2.5.0" = self.by-version."gauge"."2.5.0";
-      "set-blocking-2.0.0" = self.by-version."set-blocking"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npmlog"."0 || 1 || 2" =
-    self.by-version."npmlog"."2.0.4";
-  by-version."npmlog"."2.0.4" = self.buildNodePackage {
-    name = "npmlog-2.0.4";
-    version = "2.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz";
-      name = "npmlog-2.0.4.tgz";
-      sha1 = "98b52530f2514ca90d09ec5b22c8846722375692";
-    };
-    deps = {
-      "ansi-0.3.1" = self.by-version."ansi"."0.3.1";
-      "are-we-there-yet-1.1.2" = self.by-version."are-we-there-yet"."1.1.2";
-      "gauge-1.2.7" = self.by-version."gauge"."1.2.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."npmlog"."0.1 || 1 || 2" =
-    self.by-version."npmlog"."2.0.4";
-  by-spec."npmlog"."~2.0.0" =
-    self.by-version."npmlog"."2.0.4";
-  by-spec."npmlog"."~2.0.0 || ~3.0.0" =
-    self.by-version."npmlog"."3.0.0";
-  by-spec."npmlog"."~2.0.3" =
-    self.by-version."npmlog"."2.0.4";
-  by-spec."nssocket"."~0.5.1" =
-    self.by-version."nssocket"."0.5.3";
-  by-version."nssocket"."0.5.3" = self.buildNodePackage {
-    name = "nssocket-0.5.3";
-    version = "0.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz";
-      name = "nssocket-0.5.3.tgz";
-      sha1 = "883ca2ec605f5ed64a4d5190b2625401928f8f8d";
-    };
-    deps = {
-      "eventemitter2-0.4.14" = self.by-version."eventemitter2"."0.4.14";
-      "lazy-1.0.11" = self.by-version."lazy"."1.0.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nth-check"."~1.0.0" =
-    self.by-version."nth-check"."1.0.1";
-  by-version."nth-check"."1.0.1" = self.buildNodePackage {
-    name = "nth-check-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz";
-      name = "nth-check-1.0.1.tgz";
-      sha1 = "9929acdf628fc2c41098deab82ac580cf149aae4";
-    };
-    deps = {
-      "boolbase-1.0.0" = self.by-version."boolbase"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ntwitter".">=0.5.0" =
-    self.by-version."ntwitter"."0.5.0";
-  by-version."ntwitter"."0.5.0" = self.buildNodePackage {
-    name = "ntwitter-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ntwitter/-/ntwitter-0.5.0.tgz";
-      name = "ntwitter-0.5.0.tgz";
-      sha1 = "30c40105f82432fa8956a4f7655de932af631534";
-    };
-    deps = {
-      "oauth-0.9.14" = self.by-version."oauth"."0.9.14";
-      "cookies-0.1.6" = self.by-version."cookies"."0.1.6";
-      "keygrip-0.2.4" = self.by-version."keygrip"."0.2.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."null-check"."^1.0.0" =
-    self.by-version."null-check"."1.0.0";
-  by-version."null-check"."1.0.0" = self.buildNodePackage {
-    name = "null-check-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz";
-      name = "null-check-1.0.0.tgz";
-      sha1 = "977dffd7176012b9ec30d2a39db5cf72a0439edd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  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 = "https://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."numeral"."^1.5.3" =
-    self.by-version."numeral"."1.5.3";
-  by-version."numeral"."1.5.3" = self.buildNodePackage {
-    name = "numeral-1.5.3";
-    version = "1.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/numeral/-/numeral-1.5.3.tgz";
-      name = "numeral-1.5.3.tgz";
-      sha1 = "a4c3eba68239580509f818267c77243bce43ff62";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nwmatcher".">= 1.3.4 < 2.0.0" =
-    self.by-version."nwmatcher"."1.3.7";
-  by-version."nwmatcher"."1.3.7" = self.buildNodePackage {
-    name = "nwmatcher-1.3.7";
-    version = "1.3.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.7.tgz";
-      name = "nwmatcher-1.3.7.tgz";
-      sha1 = "fec04ddfb1b07ff37b1e11a02b9c3c274cc131e0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."nwmatcher"."~1.3.1" =
-    self.by-version."nwmatcher"."1.3.7";
-  by-spec."nwmatcher"."~1.3.2" =
-    self.by-version."nwmatcher"."1.3.7";
-  by-spec."oauth"."*" =
-    self.by-version."oauth"."0.9.14";
-  by-version."oauth"."0.9.14" = self.buildNodePackage {
-    name = "oauth-0.9.14";
-    version = "0.9.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://github.com/ciaranj/node-oauth/tarball/master";
-      name = "oauth-0.9.14.tgz";
-      sha256 = "abd0d7be4fb10804e5a38ee66a4db5fc36d2ed045be52e7c8b7e19e4c9e16bd8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."oauth"."0.9.14" =
-    self.by-version."oauth"."0.9.14";
-  by-spec."oauth"."0.9.x" =
-    self.by-version."oauth"."0.9.14";
-  by-spec."oauth".">=0.8.4" =
-    self.by-version."oauth"."0.9.14";
-  by-spec."oauth".">=0.9.9" =
-    self.by-version."oauth"."0.9.14";
-  by-spec."oauth"."https://github.com/ciaranj/node-oauth/tarball/master" =
-    self.by-version."oauth"."0.9.14";
-  by-spec."oauth-sign"."~0.2.0" =
-    self.by-version."oauth-sign"."0.2.0";
-  by-version."oauth-sign"."0.2.0" = self.buildNodePackage {
-    name = "oauth-sign-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz";
-      name = "oauth-sign-0.2.0.tgz";
-      sha1 = "a0e6a1715daed062f322b622b7fe5afd1035b6e2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."oauth-sign"."~0.3.0" =
-    self.by-version."oauth-sign"."0.3.0";
-  by-version."oauth-sign"."0.3.0" = self.buildNodePackage {
-    name = "oauth-sign-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz";
-      name = "oauth-sign-0.3.0.tgz";
-      sha1 = "cb540f93bb2b22a7d5941691a288d60e8ea9386e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."oauth-sign"."~0.4.0" =
-    self.by-version."oauth-sign"."0.4.0";
-  by-version."oauth-sign"."0.4.0" = self.buildNodePackage {
-    name = "oauth-sign-0.4.0";
-    version = "0.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz";
-      name = "oauth-sign-0.4.0.tgz";
-      sha1 = "f22956f31ea7151a821e5f2fb32c113cad8b9f69";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."oauth-sign"."~0.5.0" =
-    self.by-version."oauth-sign"."0.5.0";
-  by-version."oauth-sign"."0.5.0" = self.buildNodePackage {
-    name = "oauth-sign-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz";
-      name = "oauth-sign-0.5.0.tgz";
-      sha1 = "d767f5169325620eab2e087ef0c472e773db6461";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."oauth-sign"."~0.6.0" =
-    self.by-version."oauth-sign"."0.6.0";
-  by-version."oauth-sign"."0.6.0" = self.buildNodePackage {
-    name = "oauth-sign-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz";
-      name = "oauth-sign-0.6.0.tgz";
-      sha1 = "7dbeae44f6ca454e1f168451d630746735813ce3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."oauth-sign"."~0.8.0" =
-    self.by-version."oauth-sign"."0.8.2";
-  by-version."oauth-sign"."0.8.2" = self.buildNodePackage {
-    name = "oauth-sign-0.8.2";
-    version = "0.8.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz";
-      name = "oauth-sign-0.8.2.tgz";
-      sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."oauth-sign"."~0.8.1" =
-    self.by-version."oauth-sign"."0.8.2";
-  by-spec."oauth2orize"."1.2.2" =
-    self.by-version."oauth2orize"."1.2.2";
-  by-version."oauth2orize"."1.2.2" = self.buildNodePackage {
-    name = "oauth2orize-1.2.2";
-    version = "1.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.2.2.tgz";
-      name = "oauth2orize-1.2.2.tgz";
-      sha1 = "59611975c90b2105de61f7710abfd6f8a5a86be7";
-    };
-    deps = {
-      "uid2-0.0.3" = self.by-version."uid2"."0.0.3";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."object-additions"."^0.5.1" =
-    self.by-version."object-additions"."0.5.1";
-  by-version."object-additions"."0.5.1" = self.buildNodePackage {
-    name = "object-additions-0.5.1";
-    version = "0.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/object-additions/-/object-additions-0.5.1.tgz";
-      name = "object-additions-0.5.1.tgz";
-      sha1 = "ac624e0995e696c94cc69b41f316462b16a3bda4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."object-assign"."^1.0.0" =
-    self.by-version."object-assign"."1.0.0";
-  by-version."object-assign"."1.0.0" = self.buildNodePackage {
-    name = "object-assign-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/object-assign/-/object-assign-1.0.0.tgz";
-      name = "object-assign-1.0.0.tgz";
-      sha1 = "e65dc8766d3b47b4b8307465c8311da030b070a6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."object-assign"."^2.0.0" =
-    self.by-version."object-assign"."2.1.1";
-  by-version."object-assign"."2.1.1" = self.buildNodePackage {
-    name = "object-assign-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://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 = "https://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.0" =
-    self.by-version."object-assign"."4.1.0";
-  by-version."object-assign"."4.1.0" = self.buildNodePackage {
-    name = "object-assign-4.1.0";
-    version = "4.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz";
-      name = "object-assign-4.1.0.tgz";
-      sha1 = "7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."object-assign"."^4.0.1" =
-    self.by-version."object-assign"."4.1.0";
-  by-spec."object-assign"."^4.1.0" =
-    self.by-version."object-assign"."4.1.0";
-  by-spec."object-component"."0.0.3" =
-    self.by-version."object-component"."0.0.3";
-  by-version."object-component"."0.0.3" = self.buildNodePackage {
-    name = "object-component-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz";
-      name = "object-component-0.0.3.tgz";
-      sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."object-keys"."^1.0.6" =
-    self.by-version."object-keys"."1.0.9";
-  by-version."object-keys"."1.0.9" = self.buildNodePackage {
-    name = "object-keys-1.0.9";
-    version = "1.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/object-keys/-/object-keys-1.0.9.tgz";
-      name = "object-keys-1.0.9.tgz";
-      sha1 = "cabb1202d9a7af29b50edface8094bb46da5ea21";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."object-keys"."~1.0.1" =
-    self.by-version."object-keys"."1.0.9";
-  by-spec."object.assign"."^1.1.1" =
-    self.by-version."object.assign"."1.1.1";
-  by-version."object.assign"."1.1.1" = self.buildNodePackage {
-    name = "object.assign-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/object.assign/-/object.assign-1.1.1.tgz";
-      name = "object.assign-1.1.1.tgz";
-      sha1 = "f229674273f94fcb230d02c1958a8b94ec9ef95c";
-    };
-    deps = {
-      "object-keys-1.0.9" = self.by-version."object-keys"."1.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."object.omit"."^2.0.0" =
-    self.by-version."object.omit"."2.0.0";
-  by-version."object.omit"."2.0.0" = self.buildNodePackage {
-    name = "object.omit-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz";
-      name = "object.omit-2.0.0.tgz";
-      sha1 = "868597333d54e60662940bb458605dd6ae12fe94";
-    };
-    deps = {
-      "for-own-0.1.4" = self.by-version."for-own"."0.1.4";
-      "is-extendable-0.1.1" = self.by-version."is-extendable"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."octicons"."~3.4.1" =
-    self.by-version."octicons"."3.4.1";
-  by-version."octicons"."3.4.1" = self.buildNodePackage {
-    name = "octicons-3.4.1";
-    version = "3.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/octicons/-/octicons-3.4.1.tgz";
-      name = "octicons-3.4.1.tgz";
-      sha1 = "042c3e433a0176212da3f2e61a4867e7b95557b1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."on-finished"."2.1.0" =
-    self.by-version."on-finished"."2.1.0";
-  by-version."on-finished"."2.1.0" = self.buildNodePackage {
-    name = "on-finished-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz";
-      name = "on-finished-2.1.0.tgz";
-      sha1 = "0c539f09291e8ffadde0c8a25850fb2cedc7022d";
-    };
-    deps = {
-      "ee-first-1.0.5" = self.by-version."ee-first"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."on-finished"."~2.1.0" =
-    self.by-version."on-finished"."2.1.1";
-  by-version."on-finished"."2.1.1" = self.buildNodePackage {
-    name = "on-finished-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/on-finished/-/on-finished-2.1.1.tgz";
-      name = "on-finished-2.1.1.tgz";
-      sha1 = "f82ca1c9e3a4f3286b1b9938610e5b8636bd3cb2";
-    };
-    deps = {
-      "ee-first-1.1.0" = self.by-version."ee-first"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."on-finished"."~2.3.0" =
-    self.by-version."on-finished"."2.3.0";
-  by-version."on-finished"."2.3.0" = self.buildNodePackage {
-    name = "on-finished-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
-      name = "on-finished-2.3.0.tgz";
-      sha1 = "20f1336481b083cd75337992a16971aa2d906947";
-    };
-    deps = {
-      "ee-first-1.1.1" = self.by-version."ee-first"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."on-headers"."1.0.1" =
-    self.by-version."on-headers"."1.0.1";
-  by-version."on-headers"."1.0.1" = self.buildNodePackage {
-    name = "on-headers-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz";
-      name = "on-headers-1.0.1.tgz";
-      sha1 = "928f5d0f470d49342651ea6794b0857c100693f7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."on-headers"."~1.0.0" =
-    self.by-version."on-headers"."1.0.1";
-  by-spec."on-headers"."~1.0.1" =
-    self.by-version."on-headers"."1.0.1";
-  by-spec."once"."1.3.0" =
-    self.by-version."once"."1.3.0";
-  by-version."once"."1.3.0" = self.buildNodePackage {
-    name = "once-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/once/-/once-1.3.0.tgz";
-      name = "once-1.3.0.tgz";
-      sha1 = "151af86bfc1f08c4b9f07d06ab250ffcbeb56581";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."once"."1.x" =
-    self.by-version."once"."1.3.3";
-  by-version."once"."1.3.3" = self.buildNodePackage {
-    name = "once-1.3.3";
-    version = "1.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/once/-/once-1.3.3.tgz";
-      name = "once-1.3.3.tgz";
-      sha1 = "b2e261557ce4c314ec8304f3fa82663e4297ca20";
-    };
-    deps = {
-      "wrappy-1.0.2" = self.by-version."wrappy"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."once"."^1.1.1" =
-    self.by-version."once"."1.3.3";
-  by-spec."once"."^1.3.0" =
-    self.by-version."once"."1.3.3";
-  by-spec."once"."^1.3.1" =
-    self.by-version."once"."1.3.3";
-  by-spec."once"."^1.3.3" =
-    self.by-version."once"."1.3.3";
-  by-spec."once"."~1.1.1" =
-    self.by-version."once"."1.1.1";
-  by-version."once"."1.1.1" = self.buildNodePackage {
-    name = "once-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/once/-/once-1.1.1.tgz";
-      name = "once-1.1.1.tgz";
-      sha1 = "9db574933ccb08c3a7614d154032c09ea6f339e7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."once"."~1.2.0" =
-    self.by-version."once"."1.2.0";
-  by-version."once"."1.2.0" = self.buildNodePackage {
-    name = "once-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/once/-/once-1.2.0.tgz";
-      name = "once-1.2.0.tgz";
-      sha1 = "de1905c636af874a8fba862d9aabddd1f920461c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."once"."~1.3.0" =
-    self.by-version."once"."1.3.3";
-  by-spec."once"."~1.3.3" =
-    self.by-version."once"."1.3.3";
-  by-spec."onetime"."^1.0.0" =
-    self.by-version."onetime"."1.1.0";
-  by-version."onetime"."1.1.0" = self.buildNodePackage {
-    name = "onetime-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz";
-      name = "onetime-1.1.0.tgz";
-      sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."open"."0.0.2" =
-    self.by-version."open"."0.0.2";
-  by-version."open"."0.0.2" = self.buildNodePackage {
-    name = "open-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/open/-/open-0.0.2.tgz";
-      name = "open-0.0.2.tgz";
-      sha1 = "0a620ba2574464742f51e69f8ba8eccfd97b5dfc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."open"."0.0.5" =
-    self.by-version."open"."0.0.5";
-  by-version."open"."0.0.5" = self.buildNodePackage {
-    name = "open-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/open/-/open-0.0.5.tgz";
-      name = "open-0.0.5.tgz";
-      sha1 = "42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."open"."0.0.x" =
-    self.by-version."open"."0.0.5";
-  by-spec."open".">= 0.0.3" =
-    self.by-version."open"."0.0.5";
-  by-spec."open"."~0.0.5" =
-    self.by-version."open"."0.0.5";
-  by-spec."opener"."1.4.1" =
-    self.by-version."opener"."1.4.1";
-  by-version."opener"."1.4.1" = self.buildNodePackage {
-    name = "opener-1.4.1";
-    version = "1.4.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz";
-      name = "opener-1.4.1.tgz";
-      sha1 = "897590acd1aed3311b703b58bccb4d43f56f2895";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."opener"."~1.4.1" =
-    self.by-version."opener"."1.4.1";
-  by-spec."openid".">=0.2.0" =
-    self.by-version."openid"."2.0.1";
-  by-version."openid"."2.0.1" = self.buildNodePackage {
-    name = "openid-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/openid/-/openid-2.0.1.tgz";
-      name = "openid-2.0.1.tgz";
-      sha1 = "6e17c07e806f5e645733d50798ee54aa2b3a9df4";
-    };
-    deps = {
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."optimist"."*" =
-    self.by-version."optimist"."0.6.1";
-  by-version."optimist"."0.6.1" = self.buildNodePackage {
-    name = "optimist-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz";
-      name = "optimist-0.6.1.tgz";
-      sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
-    };
-    deps = {
-      "wordwrap-0.0.3" = self.by-version."wordwrap"."0.0.3";
-      "minimist-0.0.10" = self.by-version."minimist"."0.0.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "optimist" = self.by-version."optimist"."0.6.1";
-  by-spec."optimist"."0.2" =
-    self.by-version."optimist"."0.2.8";
-  by-version."optimist"."0.2.8" = self.buildNodePackage {
-    name = "optimist-0.2.8";
-    version = "0.2.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz";
-      name = "optimist-0.2.8.tgz";
-      sha1 = "e981ab7e268b457948593b55674c099a815cac31";
-    };
-    deps = {
-      "wordwrap-0.0.3" = self.by-version."wordwrap"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."optimist"."0.6.0" =
-    self.by-version."optimist"."0.6.0";
-  by-version."optimist"."0.6.0" = self.buildNodePackage {
-    name = "optimist-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz";
-      name = "optimist-0.6.0.tgz";
-      sha1 = "69424826f3405f79f142e6fc3d9ae58d4dbb9200";
-    };
-    deps = {
-      "wordwrap-0.0.3" = self.by-version."wordwrap"."0.0.3";
-      "minimist-0.0.10" = self.by-version."minimist"."0.0.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."optimist"."0.6.1" =
-    self.by-version."optimist"."0.6.1";
-  by-spec."optimist"."^0.6.1" =
-    self.by-version."optimist"."0.6.1";
-  by-spec."optimist"."~0.3" =
-    self.by-version."optimist"."0.3.7";
-  by-version."optimist"."0.3.7" = self.buildNodePackage {
-    name = "optimist-0.3.7";
-    version = "0.3.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz";
-      name = "optimist-0.3.7.tgz";
-      sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
-    };
-    deps = {
-      "wordwrap-0.0.3" = self.by-version."wordwrap"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."optimist"."~0.3.4" =
-    self.by-version."optimist"."0.3.7";
-  by-spec."optimist"."~0.3.5" =
-    self.by-version."optimist"."0.3.7";
-  by-spec."optimist"."~0.6.0" =
-    self.by-version."optimist"."0.6.1";
-  by-spec."optimist"."~0.6.1" =
-    self.by-version."optimist"."0.6.1";
-  by-spec."optionator"."^0.8.1" =
-    self.by-version."optionator"."0.8.1";
-  by-version."optionator"."0.8.1" = self.buildNodePackage {
-    name = "optionator-0.8.1";
-    version = "0.8.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/optionator/-/optionator-0.8.1.tgz";
-      name = "optionator-0.8.1.tgz";
-      sha1 = "e31b4932cdd5fb862a8b0d10bc63d3ee1ec7d78b";
-    };
-    deps = {
-      "prelude-ls-1.1.2" = self.by-version."prelude-ls"."1.1.2";
-      "deep-is-0.1.3" = self.by-version."deep-is"."0.1.3";
-      "wordwrap-1.0.0" = self.by-version."wordwrap"."1.0.0";
-      "type-check-0.3.2" = self.by-version."type-check"."0.3.2";
-      "levn-0.3.0" = self.by-version."levn"."0.3.0";
-      "fast-levenshtein-1.1.3" = self.by-version."fast-levenshtein"."1.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."options".">=0.0.5" =
-    self.by-version."options"."0.0.6";
-  by-version."options"."0.0.6" = self.buildNodePackage {
-    name = "options-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/options/-/options-0.0.6.tgz";
-      name = "options-0.0.6.tgz";
-      sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."optjs"."*" =
-    self.by-version."optjs"."3.2.2";
-  by-version."optjs"."3.2.2" = self.buildNodePackage {
-    name = "optjs-3.2.2";
-    version = "3.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz";
-      name = "optjs-3.2.2.tgz";
-      sha1 = "69a6ce89c442a44403141ad2f9b370bd5bb6f4ee";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."optparse"."*" =
-    self.by-version."optparse"."1.0.5";
-  by-version."optparse"."1.0.5" = self.buildNodePackage {
-    name = "optparse-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/optparse/-/optparse-1.0.5.tgz";
-      name = "optparse-1.0.5.tgz";
-      sha1 = "75e75a96506611eb1c65ba89018ff08a981e2c16";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "optparse" = self.by-version."optparse"."1.0.5";
-  by-spec."optparse".">= 1.0.3" =
-    self.by-version."optparse"."1.0.5";
-  by-spec."opts"."^1.2.1" =
-    self.by-version."opts"."1.2.2";
-  by-version."opts"."1.2.2" = self.buildNodePackage {
-    name = "opts-1.2.2";
-    version = "1.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/opts/-/opts-1.2.2.tgz";
-      name = "opts-1.2.2.tgz";
-      sha1 = "81782b93014a1cd88d56c226643fd4282473853d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."orchestrator"."^0.3.0" =
-    self.by-version."orchestrator"."0.3.7";
-  by-version."orchestrator"."0.3.7" = self.buildNodePackage {
-    name = "orchestrator-0.3.7";
-    version = "0.3.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.7.tgz";
-      name = "orchestrator-0.3.7.tgz";
-      sha1 = "c45064e22c5a2a7b99734f409a95ffedc7d3c3df";
-    };
-    deps = {
-      "end-of-stream-0.1.5" = self.by-version."end-of-stream"."0.1.5";
-      "sequencify-0.0.7" = self.by-version."sequencify"."0.0.7";
-      "stream-consume-0.1.0" = self.by-version."stream-consume"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ordered-read-streams"."^0.1.0" =
-    self.by-version."ordered-read-streams"."0.1.0";
-  by-version."ordered-read-streams"."0.1.0" = self.buildNodePackage {
-    name = "ordered-read-streams-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz";
-      name = "ordered-read-streams-0.1.0.tgz";
-      sha1 = "fd565a9af8eb4473ba69b6ed8a34352cb552f126";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ordered-read-streams"."^0.3.0" =
-    self.by-version."ordered-read-streams"."0.3.0";
-  by-version."ordered-read-streams"."0.3.0" = self.buildNodePackage {
-    name = "ordered-read-streams-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz";
-      name = "ordered-read-streams-0.3.0.tgz";
-      sha1 = "7137e69b3298bb342247a1bbee3881c80e2fd78b";
-    };
-    deps = {
-      "is-stream-1.1.0" = self.by-version."is-stream"."1.1.0";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."os-browserify"."~0.1.1" =
-    self.by-version."os-browserify"."0.1.2";
-  by-version."os-browserify"."0.1.2" = self.buildNodePackage {
-    name = "os-browserify-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz";
-      name = "os-browserify-0.1.2.tgz";
-      sha1 = "49ca0293e0b19590a5f5de10c7f265a617d8fe54";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."os-browserify"."~0.2.0" =
-    self.by-version."os-browserify"."0.2.1";
-  by-version."os-browserify"."0.2.1" = self.buildNodePackage {
-    name = "os-browserify-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz";
-      name = "os-browserify-0.2.1.tgz";
-      sha1 = "63fc4ccee5d2d7763d26bbf8601078e6c2e0044f";
-    };
-    deps = {
-    };
-    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 = "https://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-homedir"."~1.0.1" =
-    self.by-version."os-homedir"."1.0.1";
-  by-spec."os-locale"."^1.4.0" =
-    self.by-version."os-locale"."1.4.0";
-  by-version."os-locale"."1.4.0" = self.buildNodePackage {
-    name = "os-locale-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz";
-      name = "os-locale-1.4.0.tgz";
-      sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
-    };
-    deps = {
-      "lcid-1.0.0" = self.by-version."lcid"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."os-name"."^1.0.0" =
-    self.by-version."os-name"."1.0.3";
-  by-version."os-name"."1.0.3" = self.buildNodePackage {
-    name = "os-name-1.0.3";
-    version = "1.0.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz";
-      name = "os-name-1.0.3.tgz";
-      sha1 = "1b379f64835af7c5a7f498b357cb95215c159edf";
-    };
-    deps = {
-      "osx-release-1.1.0" = self.by-version."osx-release"."1.1.0";
-      "win-release-1.1.1" = self.by-version."win-release"."1.1.1";
-    };
-    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 = "https://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-spec."os-tmpdir"."~1.0.1" =
-    self.by-version."os-tmpdir"."1.0.1";
-  by-spec."osenv"."0" =
-    self.by-version."osenv"."0.1.3";
-  by-version."osenv"."0.1.3" = self.buildNodePackage {
-    name = "osenv-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://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-spec."osenv"."0.0.3" =
-    self.by-version."osenv"."0.0.3";
-  by-version."osenv"."0.0.3" = self.buildNodePackage {
-    name = "osenv-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/osenv/-/osenv-0.0.3.tgz";
-      name = "osenv-0.0.3.tgz";
-      sha1 = "cd6ad8ddb290915ad9e22765576025d411f29cb6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."osenv"."^0.1.0" =
-    self.by-version."osenv"."0.1.3";
-  by-spec."osenv"."^0.1.3" =
-    self.by-version."osenv"."0.1.3";
-  by-spec."osenv"."~0.1.3" =
-    self.by-version."osenv"."0.1.3";
-  by-spec."osx-release"."^1.0.0" =
-    self.by-version."osx-release"."1.1.0";
-  by-version."osx-release"."1.1.0" = self.buildNodePackage {
-    name = "osx-release-1.1.0";
-    version = "1.1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz";
-      name = "osx-release-1.1.0.tgz";
-      sha1 = "f217911a28136949af1bf9308b241e2737d3cd6c";
-    };
-    deps = {
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."owl-deepcopy"."*" =
-    self.by-version."owl-deepcopy"."0.0.4";
-  by-version."owl-deepcopy"."0.0.4" = self.buildNodePackage {
-    name = "owl-deepcopy-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/owl-deepcopy/-/owl-deepcopy-0.0.4.tgz";
-      name = "owl-deepcopy-0.0.4.tgz";
-      sha1 = "665f3aeafab74302d98ecaeeb7b3e764ae21f369";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "owl-deepcopy" = self.by-version."owl-deepcopy"."0.0.4";
-  by-spec."owl-deepcopy"."~0.0.1" =
-    self.by-version."owl-deepcopy"."0.0.4";
-  by-spec."pac-proxy-agent"."0" =
-    self.by-version."pac-proxy-agent"."0.2.0";
-  by-version."pac-proxy-agent"."0.2.0" = self.buildNodePackage {
-    name = "pac-proxy-agent-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-0.2.0.tgz";
-      name = "pac-proxy-agent-0.2.0.tgz";
-      sha1 = "ad902909d92f4fe7cc2e5f59f5bf5061bcfa71b2";
-    };
-    deps = {
-      "agent-base-1.0.2" = self.by-version."agent-base"."1.0.2";
-      "extend-1.2.1" = self.by-version."extend"."1.2.1";
-      "pac-resolver-1.2.6" = self.by-version."pac-resolver"."1.2.6";
-      "proxy-agent-1.1.1" = self.by-version."proxy-agent"."1.1.1";
-      "get-uri-0.1.4" = self.by-version."get-uri"."0.1.4";
-      "stream-to-array-1.0.0" = self.by-version."stream-to-array"."1.0.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pac-resolver"."~1.2.1" =
-    self.by-version."pac-resolver"."1.2.6";
-  by-version."pac-resolver"."1.2.6" = self.buildNodePackage {
-    name = "pac-resolver-1.2.6";
-    version = "1.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-1.2.6.tgz";
-      name = "pac-resolver-1.2.6.tgz";
-      sha1 = "ed03af0c5b5933505bdd3f07f75175466d5e7cfb";
-    };
-    deps = {
-      "co-3.0.6" = self.by-version."co"."3.0.6";
-      "netmask-1.0.6" = self.by-version."netmask"."1.0.6";
-      "degenerator-1.0.2" = self.by-version."degenerator"."1.0.2";
-      "regenerator-0.8.46" = self.by-version."regenerator"."0.8.46";
-      "thunkify-2.1.2" = self.by-version."thunkify"."2.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."package-json"."^1.0.0" =
-    self.by-version."package-json"."1.2.0";
-  by-version."package-json"."1.2.0" = self.buildNodePackage {
-    name = "package-json-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://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.1.0" = self.by-version."registry-url"."3.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pad"."0.0.5" =
-    self.by-version."pad"."0.0.5";
-  by-version."pad"."0.0.5" = self.buildNodePackage {
-    name = "pad-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pad/-/pad-0.0.5.tgz";
-      name = "pad-0.0.5.tgz";
-      sha1 = "2219ab4db2ac74549a676164bc475d68cb87de05";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pako"."~0.2.0" =
-    self.by-version."pako"."0.2.8";
-  by-version."pako"."0.2.8" = self.buildNodePackage {
-    name = "pako-0.2.8";
-    version = "0.2.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz";
-      name = "pako-0.2.8.tgz";
-      sha1 = "15ad772915362913f20de4a8a164b4aacc6165d6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parents"."^1.0.0" =
-    self.by-version."parents"."1.0.1";
-  by-version."parents"."1.0.1" = self.buildNodePackage {
-    name = "parents-1.0.1";
-    version = "1.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz";
-      name = "parents-1.0.1.tgz";
-      sha1 = "fedd4d2bf193a77745fe71e371d73c3307d9c751";
-    };
-    deps = {
-      "path-platform-0.11.15" = self.by-version."path-platform"."0.11.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parents"."^1.0.1" =
-    self.by-version."parents"."1.0.1";
-  by-spec."parse-asn1"."^5.0.0" =
-    self.by-version."parse-asn1"."5.0.0";
-  by-version."parse-asn1"."5.0.0" = self.buildNodePackage {
-    name = "parse-asn1-5.0.0";
-    version = "5.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz";
-      name = "parse-asn1-5.0.0.tgz";
-      sha1 = "35060f6d5015d37628c770f4e091a0b5a278bc23";
-    };
-    deps = {
-      "asn1.js-4.6.2" = self.by-version."asn1.js"."4.6.2";
-      "browserify-aes-1.0.6" = self.by-version."browserify-aes"."1.0.6";
-      "create-hash-1.1.2" = self.by-version."create-hash"."1.1.2";
-      "evp_bytestokey-1.0.0" = self.by-version."evp_bytestokey"."1.0.0";
-      "pbkdf2-3.0.4" = self.by-version."pbkdf2"."3.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parse-glob"."^3.0.4" =
-    self.by-version."parse-glob"."3.0.4";
-  by-version."parse-glob"."3.0.4" = self.buildNodePackage {
-    name = "parse-glob-3.0.4";
-    version = "3.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz";
-      name = "parse-glob-3.0.4.tgz";
-      sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c";
-    };
-    deps = {
-      "glob-base-0.3.0" = self.by-version."glob-base"."0.3.0";
-      "is-dotfile-1.0.2" = self.by-version."is-dotfile"."1.0.2";
-      "is-extglob-1.0.0" = self.by-version."is-extglob"."1.0.0";
-      "is-glob-2.0.1" = self.by-version."is-glob"."2.0.1";
-    };
-    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 = "https://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."parse-torrent"."^4.0.0" =
-    self.by-version."parse-torrent"."4.1.0";
-  by-version."parse-torrent"."4.1.0" = self.buildNodePackage {
-    name = "parse-torrent-4.1.0";
-    version = "4.1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parse-torrent/-/parse-torrent-4.1.0.tgz";
-      name = "parse-torrent-4.1.0.tgz";
-      sha1 = "a814bd8505e8b58e88eb8ff3e2daff5d19a711b7";
-    };
-    deps = {
-      "magnet-uri-4.2.3" = self.by-version."magnet-uri"."4.2.3";
-      "parse-torrent-file-2.1.4" = self.by-version."parse-torrent-file"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parse-torrent"."^5.4.0" =
-    self.by-version."parse-torrent"."5.7.3";
-  by-version."parse-torrent"."5.7.3" = self.buildNodePackage {
-    name = "parse-torrent-5.7.3";
-    version = "5.7.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parse-torrent/-/parse-torrent-5.7.3.tgz";
-      name = "parse-torrent-5.7.3.tgz";
-      sha1 = "8e7159acc2a3206cafba63ca6b418f1e4e64df34";
-    };
-    deps = {
-      "blob-to-buffer-1.2.6" = self.by-version."blob-to-buffer"."1.2.6";
-      "get-stdin-5.0.1" = self.by-version."get-stdin"."5.0.1";
-      "magnet-uri-5.1.3" = self.by-version."magnet-uri"."5.1.3";
-      "parse-torrent-file-3.3.8" = self.by-version."parse-torrent-file"."3.3.8";
-      "simple-get-2.2.0" = self.by-version."simple-get"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parse-torrent-file"."^2.0.0" =
-    self.by-version."parse-torrent-file"."2.1.4";
-  by-version."parse-torrent-file"."2.1.4" = self.buildNodePackage {
-    name = "parse-torrent-file-2.1.4";
-    version = "2.1.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parse-torrent-file/-/parse-torrent-file-2.1.4.tgz";
-      name = "parse-torrent-file-2.1.4.tgz";
-      sha1 = "32d4b6afde631420e5f415919a222b774b575707";
-    };
-    deps = {
-      "bencode-0.7.0" = self.by-version."bencode"."0.7.0";
-      "simple-sha1-2.0.8" = self.by-version."simple-sha1"."2.0.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parse-torrent-file"."^3.0.0" =
-    self.by-version."parse-torrent-file"."3.3.8";
-  by-version."parse-torrent-file"."3.3.8" = self.buildNodePackage {
-    name = "parse-torrent-file-3.3.8";
-    version = "3.3.8";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parse-torrent-file/-/parse-torrent-file-3.3.8.tgz";
-      name = "parse-torrent-file-3.3.8.tgz";
-      sha1 = "917fbceb794edadca66056130637fd38b9ffac13";
-    };
-    deps = {
-      "bencode-0.9.0" = self.by-version."bencode"."0.9.0";
-      "simple-sha1-2.0.8" = self.by-version."simple-sha1"."2.0.8";
-      "uniq-1.0.1" = self.by-version."uniq"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parse5".">= 1.3.1 < 2.0.0" =
-    self.by-version."parse5"."1.5.1";
-  by-version."parse5"."1.5.1" = self.buildNodePackage {
-    name = "parse5-1.5.1";
-    version = "1.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz";
-      name = "parse5-1.5.1.tgz";
-      sha1 = "9b7f3b0de32be78dc2401b17573ccaf0f6f59d94";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parsejson"."0.0.1" =
-    self.by-version."parsejson"."0.0.1";
-  by-version."parsejson"."0.0.1" = self.buildNodePackage {
-    name = "parsejson-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz";
-      name = "parsejson-0.0.1.tgz";
-      sha1 = "9b10c6c0d825ab589e685153826de0a3ba278bcc";
-    };
-    deps = {
-      "better-assert-1.0.2" = self.by-version."better-assert"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parseqs"."0.0.2" =
-    self.by-version."parseqs"."0.0.2";
-  by-version."parseqs"."0.0.2" = self.buildNodePackage {
-    name = "parseqs-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz";
-      name = "parseqs-0.0.2.tgz";
-      sha1 = "9dfe70b2cddac388bde4f35b1f240fa58adbe6c7";
-    };
-    deps = {
-      "better-assert-1.0.2" = self.by-version."better-assert"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parseuri"."0.0.2" =
-    self.by-version."parseuri"."0.0.2";
-  by-version."parseuri"."0.0.2" = self.buildNodePackage {
-    name = "parseuri-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parseuri/-/parseuri-0.0.2.tgz";
-      name = "parseuri-0.0.2.tgz";
-      sha1 = "db41878f2d6964718be870b3140973d8093be156";
-    };
-    deps = {
-      "better-assert-1.0.2" = self.by-version."better-assert"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parseuri"."0.0.4" =
-    self.by-version."parseuri"."0.0.4";
-  by-version."parseuri"."0.0.4" = self.buildNodePackage {
-    name = "parseuri-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz";
-      name = "parseuri-0.0.4.tgz";
-      sha1 = "806582a39887e1ea18dd5e2fe0e01902268e9350";
-    };
-    deps = {
-      "better-assert-1.0.2" = self.by-version."better-assert"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parseurl"."1.0.1" =
-    self.by-version."parseurl"."1.0.1";
-  by-version."parseurl"."1.0.1" = self.buildNodePackage {
-    name = "parseurl-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz";
-      name = "parseurl-1.0.1.tgz";
-      sha1 = "2e57dce6efdd37c3518701030944c22bf388b7b4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parseurl"."~1.1.3" =
-    self.by-version."parseurl"."1.1.3";
-  by-version."parseurl"."1.1.3" = self.buildNodePackage {
-    name = "parseurl-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parseurl/-/parseurl-1.1.3.tgz";
-      name = "parseurl-1.1.3.tgz";
-      sha1 = "1f005738ac71b417bc2d0845cbdfa2a8b63ea639";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parseurl"."~1.3.0" =
-    self.by-version."parseurl"."1.3.1";
-  by-version."parseurl"."1.3.1" = self.buildNodePackage {
-    name = "parseurl-1.3.1";
-    version = "1.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz";
-      name = "parseurl-1.3.1.tgz";
-      sha1 = "c8ab8c9223ba34888aa64a297b28853bec18da56";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."parseurl"."~1.3.1" =
-    self.by-version."parseurl"."1.3.1";
-  by-spec."parsoid"."0.4.1" =
-    self.by-version."parsoid"."0.4.1";
-  by-version."parsoid"."0.4.1" = self.buildNodePackage {
-    name = "parsoid-0.4.1";
-    version = "0.4.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/parsoid/-/parsoid-0.4.1.tgz";
-      name = "parsoid-0.4.1.tgz";
-      sha1 = "141f2fe215b06d74fd0bad4d5a46b105cd0eb3e7";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "body-parser-1.13.3" = self.by-version."body-parser"."1.13.3";
-      "bunyan-1.0.1" = self.by-version."bunyan"."1.0.1";
-      "compression-1.5.2" = self.by-version."compression"."1.5.2";
-      "connect-busboy-0.0.2" = self.by-version."connect-busboy"."0.0.2";
-      "core-js-0.8.4" = self.by-version."core-js"."0.8.4";
-      "diff-1.0.8" = self.by-version."diff"."1.0.8";
-      "domino-1.0.25" = self.by-version."domino"."1.0.25";
-      "entities-1.1.1" = self.by-version."entities"."1.1.1";
-      "express-4.13.4" = self.by-version."express"."4.13.4";
-      "express-handlebars-2.0.1" = self.by-version."express-handlebars"."2.0.1";
-      "gelf-stream-0.2.4" = self.by-version."gelf-stream"."0.2.4";
-      "html5-1.0.5" = self.by-version."html5"."1.0.5";
-      "node-txstatsd-0.1.6" = self.by-version."node-txstatsd"."0.1.6";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "pegjs-0.8.0" = self.by-version."pegjs"."0.8.0";
-      "prfun-2.0.0" = self.by-version."prfun"."2.0.0";
-      "request-2.40.0" = self.by-version."request"."2.40.0";
-      "serve-favicon-2.3.0" = self.by-version."serve-favicon"."2.3.0";
-      "simplediff-0.1.1" = self.by-version."simplediff"."0.1.1";
-      "yargs-1.3.3" = self.by-version."yargs"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "parsoid" = self.by-version."parsoid"."0.4.1";
-  by-spec."passport"."*" =
-    self.by-version."passport"."0.3.2";
-  by-version."passport"."0.3.2" = self.buildNodePackage {
-    name = "passport-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport/-/passport-0.3.2.tgz";
-      name = "passport-0.3.2.tgz";
-      sha1 = "9dd009f915e8fe095b0124a01b8f82da07510102";
-    };
-    deps = {
-      "passport-strategy-1.0.0" = self.by-version."passport-strategy"."1.0.0";
-      "pause-0.0.1" = self.by-version."pause"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "passport" = self.by-version."passport"."0.3.2";
-  by-spec."passport"."0.3.2" =
-    self.by-version."passport"."0.3.2";
-  by-spec."passport".">=0.1.15" =
-    self.by-version."passport"."0.3.2";
-  by-spec."passport"."~0.1.1" =
-    self.by-version."passport"."0.1.18";
-  by-version."passport"."0.1.18" = self.buildNodePackage {
-    name = "passport-0.1.18";
-    version = "0.1.18";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport/-/passport-0.1.18.tgz";
-      name = "passport-0.1.18.tgz";
-      sha1 = "c8264479dcb6414cadbb66752d12b37e0b6525a1";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "pause-0.0.1" = self.by-version."pause"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport"."~0.3.2" =
-    self.by-version."passport"."0.3.2";
-  by-spec."passport-dropbox".">=0.1.2" =
-    self.by-version."passport-dropbox"."2.0.0";
-  by-version."passport-dropbox"."2.0.0" = self.buildNodePackage {
-    name = "passport-dropbox-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-dropbox/-/passport-dropbox-2.0.0.tgz";
-      name = "passport-dropbox-2.0.0.tgz";
-      sha1 = "7efe6ced152a4f4db4e4db385743c2764eba963b";
-    };
-    deps = {
-      "passport-oauth1-1.1.0" = self.by-version."passport-oauth1"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-evernote"."^0.1.1" =
-    self.by-version."passport-evernote"."0.1.1";
-  by-version."passport-evernote"."0.1.1" = self.buildNodePackage {
-    name = "passport-evernote-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-evernote/-/passport-evernote-0.1.1.tgz";
-      name = "passport-evernote-0.1.1.tgz";
-      sha1 = "10e097affa7e7520358d9ea26f34f1cce176adc2";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-oauth-0.1.15" = self.by-version."passport-oauth"."0.1.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-facebook".">=0.1.5" =
-    self.by-version."passport-facebook"."2.1.1";
-  by-version."passport-facebook"."2.1.1" = self.buildNodePackage {
-    name = "passport-facebook-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-facebook/-/passport-facebook-2.1.1.tgz";
-      name = "passport-facebook-2.1.1.tgz";
-      sha1 = "c39d0b52ae4d59163245a4e21a7b9b6321303311";
-    };
-    deps = {
-      "passport-oauth2-1.3.0" = self.by-version."passport-oauth2"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-flickr".">=0.1.1" =
-    self.by-version."passport-flickr"."0.2.0";
-  by-version."passport-flickr"."0.2.0" = self.buildNodePackage {
-    name = "passport-flickr-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-flickr/-/passport-flickr-0.2.0.tgz";
-      name = "passport-flickr-0.2.0.tgz";
-      sha1 = "9f3a77eac4b48a9e2109df12e544114b42960c5c";
-    };
-    deps = {
-      "passport-oauth-1.0.0" = self.by-version."passport-oauth"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-github".">=0.1.5" =
-    self.by-version."passport-github"."1.1.0";
-  by-version."passport-github"."1.1.0" = self.buildNodePackage {
-    name = "passport-github-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-github/-/passport-github-1.1.0.tgz";
-      name = "passport-github-1.1.0.tgz";
-      sha1 = "8ce1e3fcd61ad7578eb1df595839e4aea12355d4";
-    };
-    deps = {
-      "passport-oauth2-1.3.0" = self.by-version."passport-oauth2"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-google-oauth".">=0.1.5" =
-    self.by-version."passport-google-oauth"."1.0.0";
-  by-version."passport-google-oauth"."1.0.0" = self.buildNodePackage {
-    name = "passport-google-oauth-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-google-oauth/-/passport-google-oauth-1.0.0.tgz";
-      name = "passport-google-oauth-1.0.0.tgz";
-      sha1 = "65f50633192ad0627a18b08960077109d84eb76d";
-    };
-    deps = {
-      "passport-google-oauth1-1.0.0" = self.by-version."passport-google-oauth1"."1.0.0";
-      "passport-google-oauth20-1.0.0" = self.by-version."passport-google-oauth20"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-google-oauth1"."1.x.x" =
-    self.by-version."passport-google-oauth1"."1.0.0";
-  by-version."passport-google-oauth1"."1.0.0" = self.buildNodePackage {
-    name = "passport-google-oauth1-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-google-oauth1/-/passport-google-oauth1-1.0.0.tgz";
-      name = "passport-google-oauth1-1.0.0.tgz";
-      sha1 = "af74a803df51ec646f66a44d82282be6f108e0cc";
-    };
-    deps = {
-      "passport-oauth1-1.1.0" = self.by-version."passport-oauth1"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-google-oauth20"."1.x.x" =
-    self.by-version."passport-google-oauth20"."1.0.0";
-  by-version."passport-google-oauth20"."1.0.0" = self.buildNodePackage {
-    name = "passport-google-oauth20-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-1.0.0.tgz";
-      name = "passport-google-oauth20-1.0.0.tgz";
-      sha1 = "3b960e8a1d70d1dbe794615c827c68c40392a5d0";
-    };
-    deps = {
-      "passport-oauth2-1.3.0" = self.by-version."passport-oauth2"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-http"."*" =
-    self.by-version."passport-http"."0.3.0";
-  by-version."passport-http"."0.3.0" = self.buildNodePackage {
-    name = "passport-http-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-http/-/passport-http-0.3.0.tgz";
-      name = "passport-http-0.3.0.tgz";
-      sha1 = "8ee53d4380be9c60df2151925029826f77115603";
-    };
-    deps = {
-      "passport-strategy-1.0.0" = self.by-version."passport-strategy"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "passport-http" = self.by-version."passport-http"."0.3.0";
-  by-spec."passport-http-bearer"."1.0.1" =
-    self.by-version."passport-http-bearer"."1.0.1";
-  by-version."passport-http-bearer"."1.0.1" = self.buildNodePackage {
-    name = "passport-http-bearer-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz";
-      name = "passport-http-bearer-1.0.1.tgz";
-      sha1 = "147469ea3669e2a84c6167ef99dbb77e1f0098a8";
-    };
-    deps = {
-      "passport-strategy-1.0.0" = self.by-version."passport-strategy"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-imgur".">=0.0.1" =
-    self.by-version."passport-imgur"."0.0.3";
-  by-version."passport-imgur"."0.0.3" = self.buildNodePackage {
-    name = "passport-imgur-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-imgur/-/passport-imgur-0.0.3.tgz";
-      name = "passport-imgur-0.0.3.tgz";
-      sha1 = "c27fca66db4745b4061b59b80c81262fd3bbe17f";
-    };
-    deps = {
-      "passport-oauth-1.0.0" = self.by-version."passport-oauth"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-instagram".">=0.1.2" =
-    self.by-version."passport-instagram"."1.0.0";
-  by-version."passport-instagram"."1.0.0" = self.buildNodePackage {
-    name = "passport-instagram-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-instagram/-/passport-instagram-1.0.0.tgz";
-      name = "passport-instagram-1.0.0.tgz";
-      sha1 = "eaa2b42d11473bcfda5190f26234cf485f645656";
-    };
-    deps = {
-      "passport-oauth2-1.3.0" = self.by-version."passport-oauth2"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-local"."*" =
-    self.by-version."passport-local"."1.0.0";
-  by-version."passport-local"."1.0.0" = self.buildNodePackage {
-    name = "passport-local-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz";
-      name = "passport-local-1.0.0.tgz";
-      sha1 = "1fe63268c92e75606626437e3b906662c15ba6ee";
-    };
-    deps = {
-      "passport-strategy-1.0.0" = self.by-version."passport-strategy"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "passport-local" = self.by-version."passport-local"."1.0.0";
-  by-spec."passport-local"."~1.0.0" =
-    self.by-version."passport-local"."1.0.0";
-  by-spec."passport-mailchimp".">=0.0.1" =
-    self.by-version."passport-mailchimp"."1.0.0";
-  by-version."passport-mailchimp"."1.0.0" = self.buildNodePackage {
-    name = "passport-mailchimp-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-mailchimp/-/passport-mailchimp-1.0.0.tgz";
-      name = "passport-mailchimp-1.0.0.tgz";
-      sha1 = "34c5ec1186fd7ef265153d1258406b96d8d64e74";
-    };
-    deps = {
-      "passport-oauth2-1.3.0" = self.by-version."passport-oauth2"."1.3.0";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-mixcloud".">=0.0.1" =
-    self.by-version."passport-mixcloud"."0.0.2";
-  by-version."passport-mixcloud"."0.0.2" = self.buildNodePackage {
-    name = "passport-mixcloud-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-mixcloud/-/passport-mixcloud-0.0.2.tgz";
-      name = "passport-mixcloud-0.0.2.tgz";
-      sha1 = "b216bcb0cbc605ec5dac87e65387d456768346c1";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-oauth-0.1.15" = self.by-version."passport-oauth"."0.1.15";
-      "passport-mixcloud-0.0.2" = self.by-version."passport-mixcloud"."0.0.2";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-oauth"."0.1.x" =
-    self.by-version."passport-oauth"."0.1.15";
-  by-version."passport-oauth"."0.1.15" = self.buildNodePackage {
-    name = "passport-oauth-0.1.15";
-    version = "0.1.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-oauth/-/passport-oauth-0.1.15.tgz";
-      name = "passport-oauth-0.1.15.tgz";
-      sha1 = "fb74e0afe84614bfa256c5fc716cc56bbfc8cec0";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-0.1.18" = self.by-version."passport"."0.1.18";
-      "oauth-0.9.14" = self.by-version."oauth"."0.9.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-oauth"."1.x.x" =
-    self.by-version."passport-oauth"."1.0.0";
-  by-version."passport-oauth"."1.0.0" = self.buildNodePackage {
-    name = "passport-oauth-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-oauth/-/passport-oauth-1.0.0.tgz";
-      name = "passport-oauth-1.0.0.tgz";
-      sha1 = "90aff63387540f02089af28cdad39ea7f80d77df";
-    };
-    deps = {
-      "passport-oauth1-1.1.0" = self.by-version."passport-oauth1"."1.1.0";
-      "passport-oauth2-1.3.0" = self.by-version."passport-oauth2"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-oauth".">= 0.1.0" =
-    self.by-version."passport-oauth"."1.0.0";
-  by-spec."passport-oauth"."~0.1.1" =
-    self.by-version."passport-oauth"."0.1.15";
-  by-spec."passport-oauth1"."1.x.x" =
-    self.by-version."passport-oauth1"."1.1.0";
-  by-version."passport-oauth1"."1.1.0" = self.buildNodePackage {
-    name = "passport-oauth1-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.1.0.tgz";
-      name = "passport-oauth1-1.1.0.tgz";
-      sha1 = "a7de988a211f9cf4687377130ea74df32730c918";
-    };
-    deps = {
-      "passport-strategy-1.0.0" = self.by-version."passport-strategy"."1.0.0";
-      "oauth-0.9.14" = self.by-version."oauth"."0.9.14";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-oauth1"."^1.0.1" =
-    self.by-version."passport-oauth1"."1.1.0";
-  by-spec."passport-oauth2"."1.x.x" =
-    self.by-version."passport-oauth2"."1.3.0";
-  by-version."passport-oauth2"."1.3.0" = self.buildNodePackage {
-    name = "passport-oauth2-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.3.0.tgz";
-      name = "passport-oauth2-1.3.0.tgz";
-      sha1 = "d72b4bd62eeb807a4089ff3071a22c26c382dc0c";
-    };
-    deps = {
-      "passport-strategy-1.0.0" = self.by-version."passport-strategy"."1.0.0";
-      "oauth-0.9.14" = self.by-version."oauth"."0.9.14";
-      "uid2-0.0.3" = self.by-version."uid2"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-oauth2"."^1.1.2" =
-    self.by-version."passport-oauth2"."1.3.0";
-  by-spec."passport-oauth2-client-password"."0.1.2" =
-    self.by-version."passport-oauth2-client-password"."0.1.2";
-  by-version."passport-oauth2-client-password"."0.1.2" = self.buildNodePackage {
-    name = "passport-oauth2-client-password-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz";
-      name = "passport-oauth2-client-password-0.1.2.tgz";
-      sha1 = "4f378b678b92d16dbbd233a6c706520093e561ba";
-    };
-    deps = {
-      "passport-strategy-1.0.0" = self.by-version."passport-strategy"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-soundcloud".">=0.1.2" =
-    self.by-version."passport-soundcloud"."0.2.0";
-  by-version."passport-soundcloud"."0.2.0" = self.buildNodePackage {
-    name = "passport-soundcloud-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-soundcloud/-/passport-soundcloud-0.2.0.tgz";
-      name = "passport-soundcloud-0.2.0.tgz";
-      sha1 = "80a025c7d3d70bf258f2b7da65950613bdb28258";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-oauth-1.0.0" = self.by-version."passport-oauth"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-strategy"."1.x.x" =
-    self.by-version."passport-strategy"."1.0.0";
-  by-version."passport-strategy"."1.0.0" = self.buildNodePackage {
-    name = "passport-strategy-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz";
-      name = "passport-strategy-1.0.0.tgz";
-      sha1 = "b5539aa8fc225a3d1ad179476ddf236b440f52e4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-trello"."~0.1.4" =
-    self.by-version."passport-trello"."0.1.5";
-  by-version."passport-trello"."0.1.5" = self.buildNodePackage {
-    name = "passport-trello-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-trello/-/passport-trello-0.1.5.tgz";
-      name = "passport-trello-0.1.5.tgz";
-      sha1 = "cc98ce493a4827a6335490acd2c0d995580fd039";
-    };
-    deps = {
-      "passport-oauth1-1.1.0" = self.by-version."passport-oauth1"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-twitter".">=0.1.4" =
-    self.by-version."passport-twitter"."1.0.4";
-  by-version."passport-twitter"."1.0.4" = self.buildNodePackage {
-    name = "passport-twitter-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-twitter/-/passport-twitter-1.0.4.tgz";
-      name = "passport-twitter-1.0.4.tgz";
-      sha1 = "01a799e1f760bf2de49f2ba5fba32282f18932d7";
-    };
-    deps = {
-      "passport-oauth1-1.1.0" = self.by-version."passport-oauth1"."1.1.0";
-      "xtraverse-0.1.0" = self.by-version."xtraverse"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."passport-wordpress".">=0.0.1" =
-    self.by-version."passport-wordpress"."0.0.4";
-  by-version."passport-wordpress"."0.0.4" = self.buildNodePackage {
-    name = "passport-wordpress-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/passport-wordpress/-/passport-wordpress-0.0.4.tgz";
-      name = "passport-wordpress-0.0.4.tgz";
-      sha1 = "553b54812f9711171951f34d15ce4e001a98f1b0";
-    };
-    deps = {
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "passport-oauth-1.0.0" = self.by-version."passport-oauth"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-array"."^1.0.0" =
-    self.by-version."path-array"."1.0.1";
-  by-version."path-array"."1.0.1" = self.buildNodePackage {
-    name = "path-array-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz";
-      name = "path-array-1.0.1.tgz";
-      sha1 = "7e2f0f35f07a2015122b868b7eac0eb2c4fec271";
-    };
-    deps = {
-      "array-index-1.0.0" = self.by-version."array-index"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-browserify"."0.0.0" =
-    self.by-version."path-browserify"."0.0.0";
-  by-version."path-browserify"."0.0.0" = self.buildNodePackage {
-    name = "path-browserify-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz";
-      name = "path-browserify-0.0.0.tgz";
-      sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-browserify"."~0.0.0" =
-    self.by-version."path-browserify"."0.0.0";
-  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 = "https://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.1" = self.by-version."pinkie-promise"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-is-absolute"."1.0.0" =
-    self.by-version."path-is-absolute"."1.0.0";
-  by-version."path-is-absolute"."1.0.0" = self.buildNodePackage {
-    name = "path-is-absolute-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz";
-      name = "path-is-absolute-1.0.0.tgz";
-      sha1 = "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-is-absolute"."^1.0.0" =
-    self.by-version."path-is-absolute"."1.0.0";
-  by-spec."path-is-absolute"."~1.0.0" =
-    self.by-version."path-is-absolute"."1.0.0";
-  by-spec."path-is-inside"."^1.0.1" =
-    self.by-version."path-is-inside"."1.0.1";
-  by-version."path-is-inside"."1.0.1" = self.buildNodePackage {
-    name = "path-is-inside-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz";
-      name = "path-is-inside-1.0.1.tgz";
-      sha1 = "98d8f1d030bf04bd7aeee4a1ba5485d40318fd89";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-is-inside"."~1.0.0" =
-    self.by-version."path-is-inside"."1.0.1";
-  by-spec."path-is-inside"."~1.0.1" =
-    self.by-version."path-is-inside"."1.0.1";
-  by-spec."path-parse"."^1.0.5" =
-    self.by-version."path-parse"."1.0.5";
-  by-version."path-parse"."1.0.5" = self.buildNodePackage {
-    name = "path-parse-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz";
-      name = "path-parse-1.0.5.tgz";
-      sha1 = "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-platform"."~0.11.15" =
-    self.by-version."path-platform"."0.11.15";
-  by-version."path-platform"."0.11.15" = self.buildNodePackage {
-    name = "path-platform-0.11.15";
-    version = "0.11.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz";
-      name = "path-platform-0.11.15.tgz";
-      sha1 = "e864217f74c36850f0852b78dc7bf7d4a5721bf2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-proxy"."~1.0" =
-    self.by-version."path-proxy"."1.0.0";
-  by-version."path-proxy"."1.0.0" = self.buildNodePackage {
-    name = "path-proxy-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz";
-      name = "path-proxy-1.0.0.tgz";
-      sha1 = "18e8a36859fc9d2f1a53b48dee138543c020de5e";
-    };
-    deps = {
-      "inflection-1.3.8" = self.by-version."inflection"."1.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-to-regexp"."0.1.3" =
-    self.by-version."path-to-regexp"."0.1.3";
-  by-version."path-to-regexp"."0.1.3" = self.buildNodePackage {
-    name = "path-to-regexp-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz";
-      name = "path-to-regexp-0.1.3.tgz";
-      sha1 = "21b9ab82274279de25b156ea08fd12ca51b8aecb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-to-regexp"."0.1.6" =
-    self.by-version."path-to-regexp"."0.1.6";
-  by-version."path-to-regexp"."0.1.6" = self.buildNodePackage {
-    name = "path-to-regexp-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.6.tgz";
-      name = "path-to-regexp-0.1.6.tgz";
-      sha1 = "f01fd5734047b6bfbc5f208c6135a33d7af09c36";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."path-to-regexp"."0.1.7" =
-    self.by-version."path-to-regexp"."0.1.7";
-  by-version."path-to-regexp"."0.1.7" = self.buildNodePackage {
-    name = "path-to-regexp-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
-      name = "path-to-regexp-0.1.7.tgz";
-      sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
-    };
-    deps = {
-    };
-    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 = "https://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.4" = self.by-version."graceful-fs"."4.1.4";
-      "pify-2.3.0" = self.by-version."pify"."2.3.0";
-      "pinkie-promise-2.0.1" = self.by-version."pinkie-promise"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pause"."0.0.1" =
-    self.by-version."pause"."0.0.1";
-  by-version."pause"."0.0.1" = self.buildNodePackage {
-    name = "pause-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz";
-      name = "pause-0.0.1.tgz";
-      sha1 = "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pause"."0.1.0" =
-    self.by-version."pause"."0.1.0";
-  by-version."pause"."0.1.0" = self.buildNodePackage {
-    name = "pause-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz";
-      name = "pause-0.1.0.tgz";
-      sha1 = "ebc8a4a8619ff0b8a81ac1513c3434ff469fdb74";
-    };
-    deps = {
-    };
-    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 = "https://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."pbkdf2"."^3.0.3" =
-    self.by-version."pbkdf2"."3.0.4";
-  by-version."pbkdf2"."3.0.4" = self.buildNodePackage {
-    name = "pbkdf2-3.0.4";
-    version = "3.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.4.tgz";
-      name = "pbkdf2-3.0.4.tgz";
-      sha1 = "12c8bfaf920543786a85150b03f68d5f1aa982fc";
-    };
-    deps = {
-      "create-hmac-1.1.4" = self.by-version."create-hmac"."1.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."peer-wire-protocol"."^0.7.0" =
-    self.by-version."peer-wire-protocol"."0.7.0";
-  by-version."peer-wire-protocol"."0.7.0" = self.buildNodePackage {
-    name = "peer-wire-protocol-0.7.0";
-    version = "0.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/peer-wire-protocol/-/peer-wire-protocol-0.7.0.tgz";
-      name = "peer-wire-protocol-0.7.0.tgz";
-      sha1 = "6c015abf24b4877ed9eca3822b22d996078011da";
-    };
-    deps = {
-      "bitfield-0.1.0" = self.by-version."bitfield"."0.1.0";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "bncode-0.2.3" = self.by-version."bncode"."0.2.3";
-      "speedometer-0.1.4" = self.by-version."speedometer"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."peer-wire-swarm"."^0.12.0" =
-    self.by-version."peer-wire-swarm"."0.12.1";
-  by-version."peer-wire-swarm"."0.12.1" = self.buildNodePackage {
-    name = "peer-wire-swarm-0.12.1";
-    version = "0.12.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/peer-wire-swarm/-/peer-wire-swarm-0.12.1.tgz";
-      name = "peer-wire-swarm-0.12.1.tgz";
-      sha1 = "51b75da99c335c64c9ba9ef99fe27a4a5951ff42";
-    };
-    deps = {
-      "fifo-0.1.4" = self.by-version."fifo"."0.1.4";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "peer-wire-protocol-0.7.0" = self.by-version."peer-wire-protocol"."0.7.0";
-      "speedometer-0.1.4" = self.by-version."speedometer"."0.1.4";
-      "utp-0.0.7" = self.by-version."utp"."0.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."peer-wire-swarm"."^0.9.2" =
-    self.by-version."peer-wire-swarm"."0.9.2";
-  by-version."peer-wire-swarm"."0.9.2" = self.buildNodePackage {
-    name = "peer-wire-swarm-0.9.2";
-    version = "0.9.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/peer-wire-swarm/-/peer-wire-swarm-0.9.2.tgz";
-      name = "peer-wire-swarm-0.9.2.tgz";
-      sha1 = "092848005607d8ca94e69f9bc9ebe52956ec3048";
-    };
-    deps = {
-      "peer-wire-protocol-0.7.0" = self.by-version."peer-wire-protocol"."0.7.0";
-      "fifo-0.1.4" = self.by-version."fifo"."0.1.4";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "speedometer-0.1.4" = self.by-version."speedometer"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."peerflix"."*" =
-    self.by-version."peerflix"."0.35.0";
-  by-version."peerflix"."0.35.0" = self.buildNodePackage {
-    name = "peerflix-0.35.0";
-    version = "0.35.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/peerflix/-/peerflix-0.35.0.tgz";
-      name = "peerflix-0.35.0.tgz";
-      sha1 = "022246d6bfe4175aa10340d253e3d8c92df7b926";
-    };
-    deps = {
-      "clivas-0.1.4" = self.by-version."clivas"."0.1.4";
-      "inquirer-0.8.5" = self.by-version."inquirer"."0.8.5";
-      "keypress-0.2.1" = self.by-version."keypress"."0.2.1";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "network-address-0.0.5" = self.by-version."network-address"."0.0.5";
-      "numeral-1.5.3" = self.by-version."numeral"."1.5.3";
-      "open-0.0.5" = self.by-version."open"."0.0.5";
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-      "parse-torrent-5.7.3" = self.by-version."parse-torrent"."5.7.3";
-      "pump-0.3.5" = self.by-version."pump"."0.3.5";
-      "range-parser-1.2.0" = self.by-version."range-parser"."1.2.0";
-      "rc-0.4.0" = self.by-version."rc"."0.4.0";
-      "torrent-stream-1.0.3" = self.by-version."torrent-stream"."1.0.3";
-      "windows-no-runnable-0.0.6" = self.by-version."windows-no-runnable"."0.0.6";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-      "airplayer-2.0.0" = self.by-version."airplayer"."2.0.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "peerflix" = self.by-version."peerflix"."0.35.0";
-  by-spec."peerflix"."^0.34.0" =
-    self.by-version."peerflix"."0.34.0";
-  by-version."peerflix"."0.34.0" = self.buildNodePackage {
-    name = "peerflix-0.34.0";
-    version = "0.34.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/peerflix/-/peerflix-0.34.0.tgz";
-      name = "peerflix-0.34.0.tgz";
-      sha1 = "748f7e401284bf8f2c620264d229223304199dbe";
-    };
-    deps = {
-      "clivas-0.1.4" = self.by-version."clivas"."0.1.4";
-      "inquirer-0.8.5" = self.by-version."inquirer"."0.8.5";
-      "keypress-0.2.1" = self.by-version."keypress"."0.2.1";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "network-address-0.0.5" = self.by-version."network-address"."0.0.5";
-      "numeral-1.5.3" = self.by-version."numeral"."1.5.3";
-      "open-0.0.5" = self.by-version."open"."0.0.5";
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-      "parse-torrent-5.7.3" = self.by-version."parse-torrent"."5.7.3";
-      "pump-0.3.5" = self.by-version."pump"."0.3.5";
-      "range-parser-1.2.0" = self.by-version."range-parser"."1.2.0";
-      "rc-0.4.0" = self.by-version."rc"."0.4.0";
-      "torrent-stream-1.0.3" = self.by-version."torrent-stream"."1.0.3";
-      "windows-no-runnable-0.0.6" = self.by-version."windows-no-runnable"."0.0.6";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-      "airplay-js-0.2.16" = self.by-version."airplay-js"."0.2.16";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."peerflix-server"."*" =
-    self.by-version."peerflix-server"."0.0.29";
-  by-version."peerflix-server"."0.0.29" = self.buildNodePackage {
-    name = "peerflix-server-0.0.29";
-    version = "0.0.29";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/peerflix-server/-/peerflix-server-0.0.29.tgz";
-      name = "peerflix-server-0.0.29.tgz";
-      sha1 = "db21c35c6c1bde4a54dd1f215dc466ab55962751";
-    };
-    deps = {
-      "connect-multiparty-1.2.5" = self.by-version."connect-multiparty"."1.2.5";
-      "express-3.5.3" = self.by-version."express"."3.5.3";
-      "lodash-2.4.2" = self.by-version."lodash"."2.4.2";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "pump-1.0.1" = self.by-version."pump"."1.0.1";
-      "range-parser-1.2.0" = self.by-version."range-parser"."1.2.0";
-      "read-torrent-1.3.0" = self.by-version."read-torrent"."1.3.0";
-      "socket.io-0.9.17" = self.by-version."socket.io"."0.9.17";
-      "torrent-stream-0.18.1" = self.by-version."torrent-stream"."0.18.1";
-    };
-    optionalDependencies = {
-      "fluent-ffmpeg-2.1.0" = self.by-version."fluent-ffmpeg"."2.1.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "peerflix-server" = self.by-version."peerflix-server"."0.0.29";
-  by-spec."pegjs"."0.9.0" =
-    self.by-version."pegjs"."0.9.0";
-  by-version."pegjs"."0.9.0" = self.buildNodePackage {
-    name = "pegjs-0.9.0";
-    version = "0.9.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pegjs/-/pegjs-0.9.0.tgz";
-      name = "pegjs-0.9.0.tgz";
-      sha1 = "f6aefa2e3ce56169208e52179dfe41f89141a369";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pegjs"."git+https://github.com/tstarling/pegjs.git#fork" =
-    self.by-version."pegjs"."0.8.0";
-  by-version."pegjs"."0.8.0" = self.buildNodePackage {
-    name = "pegjs-0.8.0";
-    version = "0.8.0";
-    bin = true;
-    src = fetchgit {
-      url = "https://github.com/tstarling/pegjs.git";
-      rev = "9162b1e114e41992dd0fdafa24d2574a0b8a836a";
-      sha256 = "d0dac8e9de14c4e7c05da55248dd3a422b915a96d668aa14f92747cfdbdb40aa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pend"."~1.2.0" =
-    self.by-version."pend"."1.2.0";
-  by-version."pend"."1.2.0" = self.buildNodePackage {
-    name = "pend-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz";
-      name = "pend-1.2.0.tgz";
-      sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."phantomjs"."*" =
-    self.by-version."phantomjs"."2.1.7";
-  by-version."phantomjs"."2.1.7" = self.buildNodePackage {
-    name = "phantomjs-2.1.7";
-    version = "2.1.7";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/phantomjs/-/phantomjs-2.1.7.tgz";
-      name = "phantomjs-2.1.7.tgz";
-      sha1 = "c6910f67935c37285b6114329fc2f27d5f3e3134";
-    };
-    deps = {
-      "extract-zip-1.5.0" = self.by-version."extract-zip"."1.5.0";
-      "fs-extra-0.26.7" = self.by-version."fs-extra"."0.26.7";
-      "hasha-2.2.0" = self.by-version."hasha"."2.2.0";
-      "kew-0.7.0" = self.by-version."kew"."0.7.0";
-      "progress-1.1.8" = self.by-version."progress"."1.1.8";
-      "request-2.67.0" = self.by-version."request"."2.67.0";
-      "request-progress-2.0.1" = self.by-version."request-progress"."2.0.1";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "phantomjs" = self.by-version."phantomjs"."2.1.7";
-  by-spec."phantomjs"."1.9.7-15" =
-    self.by-version."phantomjs"."1.9.7-15";
-  by-version."phantomjs"."1.9.7-15" = self.buildNodePackage {
-    name = "phantomjs-1.9.7-15";
-    version = "1.9.7-15";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.7-15.tgz";
-      name = "phantomjs-1.9.7-15.tgz";
-      sha1 = "0b3a7ce630486a83be91ff4e832eee20e971115b";
-    };
-    deps = {
-      "adm-zip-0.2.1" = self.by-version."adm-zip"."0.2.1";
-      "kew-0.1.7" = self.by-version."kew"."0.1.7";
-      "ncp-0.4.2" = self.by-version."ncp"."0.4.2";
-      "npmconf-0.0.24" = self.by-version."npmconf"."0.0.24";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "progress-1.1.8" = self.by-version."progress"."1.1.8";
-      "request-2.36.0" = self.by-version."request"."2.36.0";
-      "request-progress-0.3.1" = self.by-version."request-progress"."0.3.1";
-      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
-      "which-1.0.9" = self.by-version."which"."1.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."phantomjs"."~1.9.10" =
-    self.by-version."phantomjs"."1.9.20";
-  by-version."phantomjs"."1.9.20" = self.buildNodePackage {
-    name = "phantomjs-1.9.20";
-    version = "1.9.20";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.20.tgz";
-      name = "phantomjs-1.9.20.tgz";
-      sha1 = "4424aca20e14d255c0b0889af6f6b8973da10e0d";
-    };
-    deps = {
-      "extract-zip-1.5.0" = self.by-version."extract-zip"."1.5.0";
-      "fs-extra-0.26.7" = self.by-version."fs-extra"."0.26.7";
-      "hasha-2.2.0" = self.by-version."hasha"."2.2.0";
-      "kew-0.7.0" = self.by-version."kew"."0.7.0";
-      "progress-1.1.8" = self.by-version."progress"."1.1.8";
-      "request-2.67.0" = self.by-version."request"."2.67.0";
-      "request-progress-2.0.1" = self.by-version."request-progress"."2.0.1";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-    };
-    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 = "https://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 = "https://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.1";
-  by-version."pinkie-promise"."2.0.1" = self.buildNodePackage {
-    name = "pinkie-promise-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
-      name = "pinkie-promise-2.0.1.tgz";
-      sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
-    };
-    deps = {
-      "pinkie-2.0.4" = self.by-version."pinkie"."2.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pkg-conf"."^1.1.2" =
-    self.by-version."pkg-conf"."1.1.3";
-  by-version."pkg-conf"."1.1.3" = self.buildNodePackage {
-    name = "pkg-conf-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz";
-      name = "pkg-conf-1.1.3.tgz";
-      sha1 = "378e56d6fd13e88bfb6f4a25df7a83faabddba5b";
-    };
-    deps = {
-      "find-up-1.1.2" = self.by-version."find-up"."1.1.2";
-      "load-json-file-1.1.0" = self.by-version."load-json-file"."1.1.0";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "symbol-0.2.3" = self.by-version."symbol"."0.2.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pkgcloud".">=1.1.0" =
-    self.by-version."pkgcloud"."1.3.0";
-  by-version."pkgcloud"."1.3.0" = self.buildNodePackage {
-    name = "pkgcloud-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pkgcloud/-/pkgcloud-1.3.0.tgz";
-      name = "pkgcloud-1.3.0.tgz";
-      sha1 = "d7e44892e5ddd24dcc6c10bee2bcefb7526a5ed6";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "aws-sdk-2.3.19" = self.by-version."aws-sdk"."2.3.19";
-      "errs-0.3.2" = self.by-version."errs"."0.3.2";
-      "eventemitter2-0.4.14" = self.by-version."eventemitter2"."0.4.14";
-      "fast-json-patch-0.5.7" = self.by-version."fast-json-patch"."0.5.7";
-      "filed-0.1.0" = self.by-version."filed"."0.1.0";
-      "gcloud-0.10.0" = self.by-version."gcloud"."0.10.0";
-      "ip-0.3.3" = self.by-version."ip"."0.3.3";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "qs-1.2.2" = self.by-version."qs"."1.2.2";
-      "request-2.40.0" = self.by-version."request"."2.40.0";
-      "s3-upload-stream-1.0.7" = self.by-version."s3-upload-stream"."1.0.7";
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-      "underscore-1.6.0" = self.by-version."underscore"."1.6.0";
-      "url-join-0.0.1" = self.by-version."url-join"."0.0.1";
-      "xml2js-0.1.14" = self.by-version."xml2js"."0.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pkginfo"."0.2.x" =
-    self.by-version."pkginfo"."0.2.3";
-  by-version."pkginfo"."0.2.3" = self.buildNodePackage {
-    name = "pkginfo-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz";
-      name = "pkginfo-0.2.3.tgz";
-      sha1 = "7239c42a5ef6c30b8f328439d9b9ff71042490f8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pkginfo"."0.3.x" =
-    self.by-version."pkginfo"."0.3.1";
-  by-version."pkginfo"."0.3.1" = self.buildNodePackage {
-    name = "pkginfo-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz";
-      name = "pkginfo-0.3.1.tgz";
-      sha1 = "5b29f6a81f70717142e09e765bbeab97b4f81e21";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pkginfo"."0.x.x" =
-    self.by-version."pkginfo"."0.4.0";
-  by-version."pkginfo"."0.4.0" = self.buildNodePackage {
-    name = "pkginfo-0.4.0";
-    version = "0.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.0.tgz";
-      name = "pkginfo-0.4.0.tgz";
-      sha1 = "349dbb7ffd38081fcadc0853df687f0c7744cd65";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pkginfo"."^0.3.0" =
-    self.by-version."pkginfo"."0.3.1";
-  by-spec."playerui"."^1.2.0" =
-    self.by-version."playerui"."1.2.0";
-  by-version."playerui"."1.2.0" = self.buildNodePackage {
-    name = "playerui-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/playerui/-/playerui-1.2.0.tgz";
-      name = "playerui-1.2.0.tgz";
-      sha1 = "2d59c8cb736e189cb2398cd809469ca47077f812";
-    };
-    deps = {
-      "chalk-0.5.1" = self.by-version."chalk"."0.5.1";
-      "pad-0.0.5" = self.by-version."pad"."0.0.5";
-      "single-line-log-0.4.1" = self.by-version."single-line-log"."0.4.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."plist"."*" =
-    self.by-version."plist"."1.2.0";
-  by-version."plist"."1.2.0" = self.buildNodePackage {
-    name = "plist-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/plist/-/plist-1.2.0.tgz";
-      name = "plist-1.2.0.tgz";
-      sha1 = "084b5093ddc92506e259f874b8d9b1afb8c79593";
-    };
-    deps = {
-      "base64-js-0.0.8" = self.by-version."base64-js"."0.0.8";
-      "xmlbuilder-4.0.0" = self.by-version."xmlbuilder"."4.0.0";
-      "xmldom-0.1.22" = self.by-version."xmldom"."0.1.22";
-      "util-deprecate-1.0.2" = self.by-version."util-deprecate"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."plist"."1.2.0" =
-    self.by-version."plist"."1.2.0";
-  by-spec."plist"."^1.0.1" =
-    self.by-version."plist"."1.2.0";
-  by-spec."plist"."^1.2.0" =
-    self.by-version."plist"."1.2.0";
-  by-spec."plist-native"."*" =
-    self.by-version."plist-native"."0.4.2";
-  by-version."plist-native"."0.4.2" = self.buildNodePackage {
-    name = "plist-native-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/plist-native/-/plist-native-0.4.2.tgz";
-      name = "plist-native-0.4.2.tgz";
-      sha1 = "5fa25c9c4ce9b01144de02564e8aa984ebbc8901";
-    };
-    deps = {
-      "libxmljs-0.17.1" = self.by-version."libxmljs"."0.17.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "plist-native" = self.by-version."plist-native"."0.4.2";
-  by-spec."pluralize"."^1.2.1" =
-    self.by-version."pluralize"."1.2.1";
-  by-version."pluralize"."1.2.1" = self.buildNodePackage {
-    name = "pluralize-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz";
-      name = "pluralize-1.2.1.tgz";
-      sha1 = "d1a21483fd22bb41e58a12fa3421823140897c45";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."policyfile"."0.0.4" =
-    self.by-version."policyfile"."0.0.4";
-  by-version."policyfile"."0.0.4" = self.buildNodePackage {
-    name = "policyfile-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz";
-      name = "policyfile-0.0.4.tgz";
-      sha1 = "d6b82ead98ae79ebe228e2daf5903311ec982e4d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pooling"."0.4.6" =
-    self.by-version."pooling"."0.4.6";
-  by-version."pooling"."0.4.6" = self.buildNodePackage {
-    name = "pooling-0.4.6";
-    version = "0.4.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pooling/-/pooling-0.4.6.tgz";
-      name = "pooling-0.4.6.tgz";
-      sha1 = "76a317371ea8a363b4858fa4799e60245f30e664";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-      "bunyan-0.22.1" = self.by-version."bunyan"."0.22.1";
-      "once-1.3.0" = self.by-version."once"."1.3.0";
-      "vasync-1.4.0" = self.by-version."vasync"."1.4.0";
-    };
-    optionalDependencies = {
-      "dtrace-provider-0.2.8" = self.by-version."dtrace-provider"."0.2.8";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pop-iterate"."^1.0.1" =
-    self.by-version."pop-iterate"."1.0.1";
-  by-version."pop-iterate"."1.0.1" = self.buildNodePackage {
-    name = "pop-iterate-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pop-iterate/-/pop-iterate-1.0.1.tgz";
-      name = "pop-iterate-1.0.1.tgz";
-      sha1 = "ceacfdab4abf353d7a0f2aaa2c1fc7b3f9413ba3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."poplib"."^0.1.7" =
-    self.by-version."poplib"."0.1.7";
-  by-version."poplib"."0.1.7" = self.buildNodePackage {
-    name = "poplib-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/poplib/-/poplib-0.1.7.tgz";
-      name = "poplib-0.1.7.tgz";
-      sha1 = "2f4b58b5592972350cd97f482aba68f8e05574bc";
-    };
-    deps = {
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."portfinder"."^0.3.0" =
-    self.by-version."portfinder"."0.3.0";
-  by-version."portfinder"."0.3.0" = self.buildNodePackage {
-    name = "portfinder-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/portfinder/-/portfinder-0.3.0.tgz";
-      name = "portfinder-0.3.0.tgz";
-      sha1 = "f9f2c96894440c5b5113b84e0ad1013042b7c2a0";
-    };
-    deps = {
-      "mkdirp-0.0.7" = self.by-version."mkdirp"."0.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."posix"."*" =
-    self.by-version."posix"."4.0.2";
-  by-version."posix"."4.0.2" = self.buildNodePackage {
-    name = "posix-4.0.2";
-    version = "4.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/posix/-/posix-4.0.2.tgz";
-      name = "posix-4.0.2.tgz";
-      sha1 = "8ea7533a54ae5dee4866532094ca5d68248bbe7f";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "posix" = self.by-version."posix"."4.0.2";
-  by-spec."posix-getopt"."1.1.0" =
-    self.by-version."posix-getopt"."1.1.0";
-  by-version."posix-getopt"."1.1.0" = self.buildNodePackage {
-    name = "posix-getopt-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/posix-getopt/-/posix-getopt-1.1.0.tgz";
-      name = "posix-getopt-1.1.0.tgz";
-      sha1 = "8e258aca8f34d6906c159a32b0388360197e5698";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."precond"."0.2" =
-    self.by-version."precond"."0.2.3";
-  by-version."precond"."0.2.3" = self.buildNodePackage {
-    name = "precond-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz";
-      name = "precond-0.2.3.tgz";
-      sha1 = "aa9591bcaa24923f1e0f4849d240f47efc1075ac";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."prelude-ls"."~1.1.2" =
-    self.by-version."prelude-ls"."1.1.2";
-  by-version."prelude-ls"."1.1.2" = self.buildNodePackage {
-    name = "prelude-ls-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
-      name = "prelude-ls-1.1.2.tgz";
-      sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."prepend-http"."^1.0.0" =
-    self.by-version."prepend-http"."1.0.4";
-  by-version."prepend-http"."1.0.4" = self.buildNodePackage {
-    name = "prepend-http-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz";
-      name = "prepend-http-1.0.4.tgz";
-      sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."preserve"."^0.2.0" =
-    self.by-version."preserve"."0.2.0";
-  by-version."preserve"."0.2.0" = self.buildNodePackage {
-    name = "preserve-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz";
-      name = "preserve-0.2.0.tgz";
-      sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pretty-bytes"."^1.0.0" =
-    self.by-version."pretty-bytes"."1.0.4";
-  by-version."pretty-bytes"."1.0.4" = self.buildNodePackage {
-    name = "pretty-bytes-1.0.4";
-    version = "1.0.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz";
-      name = "pretty-bytes-1.0.4.tgz";
-      sha1 = "0a22e8210609ad35542f8c8d5d2159aff0751c84";
-    };
-    deps = {
-      "get-stdin-4.0.1" = self.by-version."get-stdin"."4.0.1";
-      "meow-3.7.0" = self.by-version."meow"."3.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pretty-hrtime"."^1.0.0" =
-    self.by-version."pretty-hrtime"."1.0.2";
-  by-version."pretty-hrtime"."1.0.2" = self.buildNodePackage {
-    name = "pretty-hrtime-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.2.tgz";
-      name = "pretty-hrtime-1.0.2.tgz";
-      sha1 = "70ca96f4d0628a443b918758f79416a9a7bc9fa8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."prettyjson"."^1.1.2" =
-    self.by-version."prettyjson"."1.1.3";
-  by-version."prettyjson"."1.1.3" = self.buildNodePackage {
-    name = "prettyjson-1.1.3";
-    version = "1.1.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/prettyjson/-/prettyjson-1.1.3.tgz";
-      name = "prettyjson-1.1.3.tgz";
-      sha1 = "d0787f732c9c3a566f4165fa4f1176fd67e6b263";
-    };
-    deps = {
-      "colors-1.1.2" = self.by-version."colors"."1.1.2";
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."prfun"."~2.0.0" =
-    self.by-version."prfun"."2.0.0";
-  by-version."prfun"."2.0.0" = self.buildNodePackage {
-    name = "prfun-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/prfun/-/prfun-2.0.0.tgz";
-      name = "prfun-2.0.0.tgz";
-      sha1 = "f8d8217fac9f0853299a103e9e1fd9cb15238c9a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "es6-shim-0.35.1" = self.by-version."es6-shim"."0.35.1";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."private"."^0.1.6" =
-    self.by-version."private"."0.1.6";
-  by-version."private"."0.1.6" = self.buildNodePackage {
-    name = "private-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/private/-/private-0.1.6.tgz";
-      name = "private-0.1.6.tgz";
-      sha1 = "55c6a976d0f9bafb9924851350fe47b9b5fbb7c1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."private"."~0.1.2" =
-    self.by-version."private"."0.1.6";
-  by-spec."private"."~0.1.5" =
-    self.by-version."private"."0.1.6";
-  by-spec."process"."~0.11.0" =
-    self.by-version."process"."0.11.4";
-  by-version."process"."0.11.4" = self.buildNodePackage {
-    name = "process-0.11.4";
-    version = "0.11.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/process/-/process-0.11.4.tgz";
-      name = "process-0.11.4.tgz";
-      sha1 = "a6e6d49f0833d36571c0b9492c0f4b90bac96cd3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."process-nextick-args"."~1.0.6" =
-    self.by-version."process-nextick-args"."1.0.7";
-  by-version."process-nextick-args"."1.0.7" = self.buildNodePackage {
-    name = "process-nextick-args-1.0.7";
-    version = "1.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
-      name = "process-nextick-args-1.0.7.tgz";
-      sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."progress"."1.1.4" =
-    self.by-version."progress"."1.1.4";
-  by-version."progress"."1.1.4" = self.buildNodePackage {
-    name = "progress-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/progress/-/progress-1.1.4.tgz";
-      name = "progress-1.1.4.tgz";
-      sha1 = "789f57691b88b826a439bc52dc9620245d60255b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."progress"."^1.1.5" =
-    self.by-version."progress"."1.1.8";
-  by-version."progress"."1.1.8" = self.buildNodePackage {
-    name = "progress-1.1.8";
-    version = "1.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz";
-      name = "progress-1.1.8.tgz";
-      sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."progress"."^1.1.8" =
-    self.by-version."progress"."1.1.8";
-  by-spec."progress"."~1.1.8" =
-    self.by-version."progress"."1.1.8";
-  by-spec."promiscuous"."^0.6.0" =
-    self.by-version."promiscuous"."0.6.0";
-  by-version."promiscuous"."0.6.0" = self.buildNodePackage {
-    name = "promiscuous-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/promiscuous/-/promiscuous-0.6.0.tgz";
-      name = "promiscuous-0.6.0.tgz";
-      sha1 = "54014cd3d62cafe831e3354990c05ff5b78c8892";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."promise"."^6.0.0" =
-    self.by-version."promise"."6.1.0";
-  by-version."promise"."6.1.0" = self.buildNodePackage {
-    name = "promise-6.1.0";
-    version = "6.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz";
-      name = "promise-6.1.0.tgz";
-      sha1 = "2ce729f6b94b45c26891ad0602c5c90e04c6eef6";
-    };
-    deps = {
-      "asap-1.0.0" = self.by-version."asap"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."promise"."^6.0.1" =
-    self.by-version."promise"."6.1.0";
-  by-spec."promise"."^7.1.1" =
-    self.by-version."promise"."7.1.1";
-  by-version."promise"."7.1.1" = self.buildNodePackage {
-    name = "promise-7.1.1";
-    version = "7.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz";
-      name = "promise-7.1.1.tgz";
-      sha1 = "489654c692616b8aa55b0724fa809bb7db49c5bf";
-    };
-    deps = {
-      "asap-2.0.4" = self.by-version."asap"."2.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."promise"."~2.0" =
-    self.by-version."promise"."2.0.0";
-  by-version."promise"."2.0.0" = self.buildNodePackage {
-    name = "promise-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz";
-      name = "promise-2.0.0.tgz";
-      sha1 = "46648aa9d605af5d2e70c3024bf59436da02b80e";
-    };
-    deps = {
-      "is-promise-1.0.1" = self.by-version."is-promise"."1.0.1";
-    };
-    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 = "https://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 = [ ];
-  };
-  by-spec."prompt"."0.2.14" =
-    self.by-version."prompt"."0.2.14";
-  by-version."prompt"."0.2.14" = self.buildNodePackage {
-    name = "prompt-0.2.14";
-    version = "0.2.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz";
-      name = "prompt-0.2.14.tgz";
-      sha1 = "57754f64f543fd7b0845707c818ece618f05ffdc";
-    };
-    deps = {
-      "pkginfo-0.4.0" = self.by-version."pkginfo"."0.4.0";
-      "read-1.0.7" = self.by-version."read"."1.0.7";
-      "revalidator-0.1.8" = self.by-version."revalidator"."0.1.8";
-      "utile-0.2.1" = self.by-version."utile"."0.2.1";
-      "winston-0.8.3" = self.by-version."winston"."0.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."prompt"."0.2.x" =
-    self.by-version."prompt"."0.2.14";
-  by-spec."promzard"."^0.3.0" =
-    self.by-version."promzard"."0.3.0";
-  by-version."promzard"."0.3.0" = self.buildNodePackage {
-    name = "promzard-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz";
-      name = "promzard-0.3.0.tgz";
-      sha1 = "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee";
-    };
-    deps = {
-      "read-1.0.7" = self.by-version."read"."1.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."properties-parser"."0.2.3" =
-    self.by-version."properties-parser"."0.2.3";
-  by-version."properties-parser"."0.2.3" = self.buildNodePackage {
-    name = "properties-parser-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/properties-parser/-/properties-parser-0.2.3.tgz";
-      name = "properties-parser-0.2.3.tgz";
-      sha1 = "f7591255f707abbff227c7b56b637dbb0373a10f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."protein"."0.5.x" =
-    self.by-version."protein"."0.5.0";
-  by-version."protein"."0.5.0" = self.buildNodePackage {
-    name = "protein-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/protein/-/protein-0.5.0.tgz";
-      name = "protein-0.5.0.tgz";
-      sha1 = "80ab4e919749351263ef14500d684e57c4202840";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."proto-list"."~1.2.1" =
-    self.by-version."proto-list"."1.2.4";
-  by-version."proto-list"."1.2.4" = self.buildNodePackage {
-    name = "proto-list-1.2.4";
-    version = "1.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz";
-      name = "proto-list-1.2.4.tgz";
-      sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."protobufjs"."^3.2.2" =
-    self.by-version."protobufjs"."3.8.2";
-  by-version."protobufjs"."3.8.2" = self.buildNodePackage {
-    name = "protobufjs-3.8.2";
-    version = "3.8.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/protobufjs/-/protobufjs-3.8.2.tgz";
-      name = "protobufjs-3.8.2.tgz";
-      sha1 = "bc826e34c3af4697e8d0af7a669e4d612aedcd17";
-    };
-    deps = {
-      "bytebuffer-3.5.5" = self.by-version."bytebuffer"."3.5.5";
-      "ascli-0.3.0" = self.by-version."ascli"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."protobufjs"."^3.4.0" =
-    self.by-version."protobufjs"."3.8.2";
-  by-spec."proxy-addr"."1.0.1" =
-    self.by-version."proxy-addr"."1.0.1";
-  by-version."proxy-addr"."1.0.1" = self.buildNodePackage {
-    name = "proxy-addr-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.1.tgz";
-      name = "proxy-addr-1.0.1.tgz";
-      sha1 = "c7c566d5eb4e3fad67eeb9c77c5558ccc39b88a8";
-    };
-    deps = {
-      "ipaddr.js-0.1.2" = self.by-version."ipaddr.js"."0.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."proxy-addr"."~1.0.10" =
-    self.by-version."proxy-addr"."1.0.10";
-  by-version."proxy-addr"."1.0.10" = self.buildNodePackage {
-    name = "proxy-addr-1.0.10";
-    version = "1.0.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz";
-      name = "proxy-addr-1.0.10.tgz";
-      sha1 = "0d40a82f801fc355567d2ecb65efe3f077f121c5";
-    };
-    deps = {
-      "forwarded-0.1.0" = self.by-version."forwarded"."0.1.0";
-      "ipaddr.js-1.0.5" = self.by-version."ipaddr.js"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."proxy-addr"."~1.0.8" =
-    self.by-version."proxy-addr"."1.0.10";
-  by-spec."proxy-agent"."1" =
-    self.by-version."proxy-agent"."1.1.1";
-  by-version."proxy-agent"."1.1.1" = self.buildNodePackage {
-    name = "proxy-agent-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/proxy-agent/-/proxy-agent-1.1.1.tgz";
-      name = "proxy-agent-1.1.1.tgz";
-      sha1 = "fcb1eef5e58965c995f938f029d729fc81858b95";
-    };
-    deps = {
-      "lru-cache-2.5.2" = self.by-version."lru-cache"."2.5.2";
-      "pac-proxy-agent-0.2.0" = self.by-version."pac-proxy-agent"."0.2.0";
-      "http-proxy-agent-0.2.7" = self.by-version."http-proxy-agent"."0.2.7";
-      "https-proxy-agent-0.3.6" = self.by-version."https-proxy-agent"."0.3.6";
-      "socks-proxy-agent-1.0.2" = self.by-version."socks-proxy-agent"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."proxy-agent"."~1.1.0" =
-    self.by-version."proxy-agent"."1.1.1";
-  by-spec."prr"."~0.0.0" =
-    self.by-version."prr"."0.0.0";
-  by-version."prr"."0.0.0" = self.buildNodePackage {
-    name = "prr-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz";
-      name = "prr-0.0.0.tgz";
-      sha1 = "1a84b85908325501411853d0081ee3fa86e2926a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ps-tree"."0.0.x" =
-    self.by-version."ps-tree"."0.0.3";
-  by-version."ps-tree"."0.0.3" = self.buildNodePackage {
-    name = "ps-tree-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz";
-      name = "ps-tree-0.0.3.tgz";
-      sha1 = "dbf8d752a7fe22fa7d58635689499610e9276ddc";
-    };
-    deps = {
-      "event-stream-0.5.3" = self.by-version."event-stream"."0.5.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ps-tree"."^1.0.1" =
-    self.by-version."ps-tree"."1.1.0";
-  by-version."ps-tree"."1.1.0" = self.buildNodePackage {
-    name = "ps-tree-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz";
-      name = "ps-tree-1.1.0.tgz";
-      sha1 = "b421b24140d6203f1ed3c76996b4427b08e8c014";
-    };
-    deps = {
-      "event-stream-3.3.2" = self.by-version."event-stream"."3.3.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  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 = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
-      name = "pseudomap-1.0.2.tgz";
-      sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."public-address"."~0.1.1" =
-    self.by-version."public-address"."0.1.1";
-  by-version."public-address"."0.1.1" = self.buildNodePackage {
-    name = "public-address-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/public-address/-/public-address-0.1.1.tgz";
-      name = "public-address-0.1.1.tgz";
-      sha1 = "58bdea323c88287b6914159312454b804ca9eeaf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."public-encrypt"."^4.0.0" =
-    self.by-version."public-encrypt"."4.0.0";
-  by-version."public-encrypt"."4.0.0" = self.buildNodePackage {
-    name = "public-encrypt-4.0.0";
-    version = "4.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz";
-      name = "public-encrypt-4.0.0.tgz";
-      sha1 = "39f699f3a46560dd5ebacbca693caf7c65c18cc6";
-    };
-    deps = {
-      "bn.js-4.11.4" = self.by-version."bn.js"."4.11.4";
-      "browserify-rsa-4.0.1" = self.by-version."browserify-rsa"."4.0.1";
-      "create-hash-1.1.2" = self.by-version."create-hash"."1.1.2";
-      "parse-asn1-5.0.0" = self.by-version."parse-asn1"."5.0.0";
-      "randombytes-2.0.3" = self.by-version."randombytes"."2.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pull-core"."~1.0.0" =
-    self.by-version."pull-core"."1.0.0";
-  by-version."pull-core"."1.0.0" = self.buildNodePackage {
-    name = "pull-core-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pull-core/-/pull-core-1.0.0.tgz";
-      name = "pull-core-1.0.0.tgz";
-      sha1 = "e0eb93918dfa70963ed09e36f63daa15b76b38a4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pull-stream"."~2.21.0" =
-    self.by-version."pull-stream"."2.21.0";
-  by-version."pull-stream"."2.21.0" = self.buildNodePackage {
-    name = "pull-stream-2.21.0";
-    version = "2.21.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pull-stream/-/pull-stream-2.21.0.tgz";
-      name = "pull-stream-2.21.0.tgz";
-      sha1 = "5b04e0bb35ffe64744fa9bb68465a84f9e1fe5d1";
-    };
-    deps = {
-      "pull-core-1.0.0" = self.by-version."pull-core"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pump"."^0.3.1" =
-    self.by-version."pump"."0.3.5";
-  by-version."pump"."0.3.5" = self.buildNodePackage {
-    name = "pump-0.3.5";
-    version = "0.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pump/-/pump-0.3.5.tgz";
-      name = "pump-0.3.5.tgz";
-      sha1 = "ae5ff8c1f93ed87adc6530a97565b126f585454b";
-    };
-    deps = {
-      "once-1.2.0" = self.by-version."once"."1.2.0";
-      "end-of-stream-1.0.0" = self.by-version."end-of-stream"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pump"."^1.0.0" =
-    self.by-version."pump"."1.0.1";
-  by-version."pump"."1.0.1" = self.buildNodePackage {
-    name = "pump-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pump/-/pump-1.0.1.tgz";
-      name = "pump-1.0.1.tgz";
-      sha1 = "f1f1409fb9bd1085bbdb576b43b84ec4b5eadc1a";
-    };
-    deps = {
-      "end-of-stream-1.1.0" = self.by-version."end-of-stream"."1.1.0";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pumpify"."^1.3.3" =
-    self.by-version."pumpify"."1.3.4";
-  by-version."pumpify"."1.3.4" = self.buildNodePackage {
-    name = "pumpify-1.3.4";
-    version = "1.3.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pumpify/-/pumpify-1.3.4.tgz";
-      name = "pumpify-1.3.4.tgz";
-      sha1 = "33418bdaf200b8fd55276c39eefb1bb842e4a606";
-    };
-    deps = {
-      "duplexify-3.4.3" = self.by-version."duplexify"."3.4.3";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "pump-1.0.1" = self.by-version."pump"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."punycode"."1.3.2" =
-    self.by-version."punycode"."1.3.2";
-  by-version."punycode"."1.3.2" = self.buildNodePackage {
-    name = "punycode-1.3.2";
-    version = "1.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz";
-      name = "punycode-1.3.2.tgz";
-      sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."punycode"."^1.2.4" =
-    self.by-version."punycode"."1.4.1";
-  by-version."punycode"."1.4.1" = self.buildNodePackage {
-    name = "punycode-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
-      name = "punycode-1.4.1.tgz";
-      sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."punycode"."^1.3.2" =
-    self.by-version."punycode"."1.4.1";
-  by-spec."punycode"."~1.2.4" =
-    self.by-version."punycode"."1.2.4";
-  by-version."punycode"."1.2.4" = self.buildNodePackage {
-    name = "punycode-1.2.4";
-    version = "1.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/punycode/-/punycode-1.2.4.tgz";
-      name = "punycode-1.2.4.tgz";
-      sha1 = "54008ac972aec74175def9cba6df7fa9d3918740";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."pure"."*" =
-    self.by-version."pure"."2.67.0";
-  by-version."pure"."2.67.0" = self.buildNodePackage {
-    name = "pure-2.67.0";
-    version = "2.67.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pure/-/pure-2.67.0.tgz";
-      name = "pure-2.67.0.tgz";
-      sha1 = "23c1503cf6e9eb8a08ba29c81fe9c8c372970710";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "pure" = self.by-version."pure"."2.67.0";
-  by-spec."pusher"."^1.0.0" =
-    self.by-version."pusher"."1.3.0";
-  by-version."pusher"."1.3.0" = self.buildNodePackage {
-    name = "pusher-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pusher/-/pusher-1.3.0.tgz";
-      name = "pusher-1.3.0.tgz";
-      sha1 = "f5e949571ed0d59aebdd41286cd1e1433bd96f11";
-    };
-    deps = {
-      "request-2.67.0" = self.by-version."request"."2.67.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."q"."0.9.7" =
-    self.by-version."q"."0.9.7";
-  by-version."q"."0.9.7" = self.buildNodePackage {
-    name = "q-0.9.7";
-    version = "0.9.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/q/-/q-0.9.7.tgz";
-      name = "q-0.9.7.tgz";
-      sha1 = "4de2e6cb3b29088c9e4cbc03bf9d42fb96ce2f75";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."q"."1.0.1" =
-    self.by-version."q"."1.0.1";
-  by-version."q"."1.0.1" = self.buildNodePackage {
-    name = "q-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/q/-/q-1.0.1.tgz";
-      name = "q-1.0.1.tgz";
-      sha1 = "11872aeedee89268110b10a718448ffb10112a14";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."q"."1.4.1" =
-    self.by-version."q"."1.4.1";
-  by-version."q"."1.4.1" = self.buildNodePackage {
-    name = "q-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/q/-/q-1.4.1.tgz";
-      name = "q-1.4.1.tgz";
-      sha1 = "55705bcd93c5f3673530c2c2cbc0c2b3addc286e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."q".">= 0.0.1" =
-    self.by-version."q"."2.0.3";
-  by-version."q"."2.0.3" = self.buildNodePackage {
-    name = "q-2.0.3";
-    version = "2.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/q/-/q-2.0.3.tgz";
-      name = "q-2.0.3.tgz";
-      sha1 = "75b8db0255a1a5af82f58c3f3aaa1efec7d0d134";
-    };
-    deps = {
-      "asap-2.0.4" = self.by-version."asap"."2.0.4";
-      "pop-iterate-1.0.1" = self.by-version."pop-iterate"."1.0.1";
-      "weak-map-1.0.5" = self.by-version."weak-map"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."q"."^1.0.1" =
-    self.by-version."q"."1.4.1";
-  by-spec."q"."^1.1.2" =
-    self.by-version."q"."1.4.1";
-  by-spec."q"."^1.4.1" =
-    self.by-version."q"."1.4.1";
-  by-spec."q"."~1.0.1" =
-    self.by-version."q"."1.0.1";
-  by-spec."q"."~1.1.2" =
-    self.by-version."q"."1.1.2";
-  by-version."q"."1.1.2" = self.buildNodePackage {
-    name = "q-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/q/-/q-1.1.2.tgz";
-      name = "q-1.1.2.tgz";
-      sha1 = "6357e291206701d99f197ab84e57e8ad196f2a89";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."q"."~1.4.1" =
-    self.by-version."q"."1.4.1";
-  by-spec."qap"."^3.1.2" =
-    self.by-version."qap"."3.1.3";
-  by-version."qap"."3.1.3" = self.buildNodePackage {
-    name = "qap-3.1.3";
-    version = "3.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qap/-/qap-3.1.3.tgz";
-      name = "qap-3.1.3.tgz";
-      sha1 = "394288bf07c8fe16cf36bb2e40a3bb947ed24963";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."0.4.2" =
-    self.by-version."qs"."0.4.2";
-  by-version."qs"."0.4.2" = self.buildNodePackage {
-    name = "qs-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz";
-      name = "qs-0.4.2.tgz";
-      sha1 = "3cac4c861e371a8c9c4770ac23cda8de639b8e5f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."0.4.x" =
-    self.by-version."qs"."0.4.2";
-  by-spec."qs"."0.5.1" =
-    self.by-version."qs"."0.5.1";
-  by-version."qs"."0.5.1" = self.buildNodePackage {
-    name = "qs-0.5.1";
-    version = "0.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-0.5.1.tgz";
-      name = "qs-0.5.1.tgz";
-      sha1 = "9f6bf5d9ac6c76384e95d36d15b48980e5e4add0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."0.6.5" =
-    self.by-version."qs"."0.6.5";
-  by-version."qs"."0.6.5" = self.buildNodePackage {
-    name = "qs-0.6.5";
-    version = "0.6.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-0.6.5.tgz";
-      name = "qs-0.6.5.tgz";
-      sha1 = "294b268e4b0d4250f6dde19b3b8b34935dff14ef";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."0.6.6" =
-    self.by-version."qs"."0.6.6";
-  by-version."qs"."0.6.6" = self.buildNodePackage {
-    name = "qs-0.6.6";
-    version = "0.6.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz";
-      name = "qs-0.6.6.tgz";
-      sha1 = "6e015098ff51968b8a3c819001d5f2c89bc4b107";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."1.2.0" =
-    self.by-version."qs"."1.2.0";
-  by-version."qs"."1.2.0" = self.buildNodePackage {
-    name = "qs-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-1.2.0.tgz";
-      name = "qs-1.2.0.tgz";
-      sha1 = "ed079be28682147e6fd9a34cc2b0c1e0ec6453ee";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."1.2.x" =
-    self.by-version."qs"."1.2.2";
-  by-version."qs"."1.2.2" = self.buildNodePackage {
-    name = "qs-1.2.2";
-    version = "1.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz";
-      name = "qs-1.2.2.tgz";
-      sha1 = "19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."2.3.3" =
-    self.by-version."qs"."2.3.3";
-  by-version."qs"."2.3.3" = self.buildNodePackage {
-    name = "qs-2.3.3";
-    version = "2.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz";
-      name = "qs-2.3.3.tgz";
-      sha1 = "e9e85adbe75da0bbe4c8e0476a086290f863b404";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."4.0.0" =
-    self.by-version."qs"."4.0.0";
-  by-version."qs"."4.0.0" = self.buildNodePackage {
-    name = "qs-4.0.0";
-    version = "4.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz";
-      name = "qs-4.0.0.tgz";
-      sha1 = "c31d9b74ec27df75e543a86c78728ed8d4623607";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."5.2.0" =
-    self.by-version."qs"."5.2.0";
-  by-version."qs"."5.2.0" = self.buildNodePackage {
-    name = "qs-5.2.0";
-    version = "5.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz";
-      name = "qs-5.2.0.tgz";
-      sha1 = "a9f31142af468cb72b25b30136ba2456834916be";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."6.1.0" =
-    self.by-version."qs"."6.1.0";
-  by-version."qs"."6.1.0" = self.buildNodePackage {
-    name = "qs-6.1.0";
-    version = "6.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz";
-      name = "qs-6.1.0.tgz";
-      sha1 = "ec1d1626b24278d99f0fdf4549e524e24eceeb26";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs".">= 0.4.0" =
-    self.by-version."qs"."6.2.0";
-  by-version."qs"."6.2.0" = self.buildNodePackage {
-    name = "qs-6.2.0";
-    version = "6.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz";
-      name = "qs-6.2.0.tgz";
-      sha1 = "3b7848c03c2dece69a9522b0fae8c4126d745f3b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."^3.1.0" =
-    self.by-version."qs"."3.1.0";
-  by-version."qs"."3.1.0" = self.buildNodePackage {
-    name = "qs-3.1.0";
-    version = "3.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-3.1.0.tgz";
-      name = "qs-3.1.0.tgz";
-      sha1 = "d0e9ae745233a12dc43fb4f3055bba446261153c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."^6.2.0" =
-    self.by-version."qs"."6.2.0";
-  by-spec."qs"."~0.5.4" =
-    self.by-version."qs"."0.5.6";
-  by-version."qs"."0.5.6" = self.buildNodePackage {
-    name = "qs-0.5.6";
-    version = "0.5.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz";
-      name = "qs-0.5.6.tgz";
-      sha1 = "31b1ad058567651c526921506b9a8793911a0384";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."~0.6.0" =
-    self.by-version."qs"."0.6.6";
-  by-spec."qs"."~1.0.0" =
-    self.by-version."qs"."1.0.2";
-  by-version."qs"."1.0.2" = self.buildNodePackage {
-    name = "qs-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-1.0.2.tgz";
-      name = "qs-1.0.2.tgz";
-      sha1 = "50a93e2b5af6691c31bcea5dae78ee6ea1903768";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."~1.2.2" =
-    self.by-version."qs"."1.2.2";
-  by-spec."qs"."~2.2.4" =
-    self.by-version."qs"."2.2.5";
-  by-version."qs"."2.2.5" = self.buildNodePackage {
-    name = "qs-2.2.5";
-    version = "2.2.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-2.2.5.tgz";
-      name = "qs-2.2.5.tgz";
-      sha1 = "1088abaf9dcc0ae5ae45b709e6c6b5888b23923c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."~2.3.1" =
-    self.by-version."qs"."2.3.3";
-  by-spec."qs"."~2.4.0" =
-    self.by-version."qs"."2.4.2";
-  by-version."qs"."2.4.2" = self.buildNodePackage {
-    name = "qs-2.4.2";
-    version = "2.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-2.4.2.tgz";
-      name = "qs-2.4.2.tgz";
-      sha1 = "f7ce788e5777df0b5010da7f7c4e73ba32470f5a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."~4.0.0" =
-    self.by-version."qs"."4.0.0";
-  by-spec."qs"."~5.1.0" =
-    self.by-version."qs"."5.1.0";
-  by-version."qs"."5.1.0" = self.buildNodePackage {
-    name = "qs-5.1.0";
-    version = "5.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz";
-      name = "qs-5.1.0.tgz";
-      sha1 = "4d932e5c7ea411cca76a312d39a606200fd50cd9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."qs"."~5.2.0" =
-    self.by-version."qs"."5.2.0";
-  by-spec."qs"."~6.1.0" =
-    self.by-version."qs"."6.1.0";
-  by-spec."query-string"."^1.0.0" =
-    self.by-version."query-string"."1.0.1";
-  by-version."query-string"."1.0.1" = self.buildNodePackage {
-    name = "query-string-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/query-string/-/query-string-1.0.1.tgz";
-      name = "query-string-1.0.1.tgz";
-      sha1 = "63ac953352499ad670a9681a75680f6bf3dd1faf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."querystring"."0.2.0" =
-    self.by-version."querystring"."0.2.0";
-  by-version."querystring"."0.2.0" = self.buildNodePackage {
-    name = "querystring-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz";
-      name = "querystring-0.2.0.tgz";
-      sha1 = "b209849203bb25df820da756e747005878521620";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."querystring-es3"."~0.2.0" =
-    self.by-version."querystring-es3"."0.2.1";
-  by-version."querystring-es3"."0.2.1" = self.buildNodePackage {
-    name = "querystring-es3-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz";
-      name = "querystring-es3-0.2.1.tgz";
-      sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rai"."~0.1.11" =
-    self.by-version."rai"."0.1.12";
-  by-version."rai"."0.1.12" = self.buildNodePackage {
-    name = "rai-0.1.12";
-    version = "0.1.12";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rai/-/rai-0.1.12.tgz";
-      name = "rai-0.1.12.tgz";
-      sha1 = "8ccfd014d0f9608630dd73c19b8e4b057754a6a6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."random-access-file"."^0.3.1" =
-    self.by-version."random-access-file"."0.3.2";
-  by-version."random-access-file"."0.3.2" = self.buildNodePackage {
-    name = "random-access-file-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/random-access-file/-/random-access-file-0.3.2.tgz";
-      name = "random-access-file-0.3.2.tgz";
-      sha1 = "cbca246e131db7b68a1c6bb6328dd4d0997100a0";
-    };
-    deps = {
-      "thunky-0.1.0" = self.by-version."thunky"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."random-access-file"."^1.0.1" =
-    self.by-version."random-access-file"."1.2.0";
-  by-version."random-access-file"."1.2.0" = self.buildNodePackage {
-    name = "random-access-file-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/random-access-file/-/random-access-file-1.2.0.tgz";
-      name = "random-access-file-1.2.0.tgz";
-      sha1 = "c7aa8b20ae3e9e6db3ff316d791beee5a1514f29";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "thunky-0.1.0" = self.by-version."thunky"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."random-bytes"."~1.0.0" =
-    self.by-version."random-bytes"."1.0.0";
-  by-version."random-bytes"."1.0.0" = self.buildNodePackage {
-    name = "random-bytes-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz";
-      name = "random-bytes-1.0.0.tgz";
-      sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."random-iterate"."^1.0.1" =
-    self.by-version."random-iterate"."1.0.1";
-  by-version."random-iterate"."1.0.1" = self.buildNodePackage {
-    name = "random-iterate-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/random-iterate/-/random-iterate-1.0.1.tgz";
-      name = "random-iterate-1.0.1.tgz";
-      sha1 = "f7d97d92dee6665ec5f6da08c7f963cad4b2ac99";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."randomatic"."^1.1.3" =
-    self.by-version."randomatic"."1.1.5";
-  by-version."randomatic"."1.1.5" = self.buildNodePackage {
-    name = "randomatic-1.1.5";
-    version = "1.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz";
-      name = "randomatic-1.1.5.tgz";
-      sha1 = "5e9ef5f2d573c67bd2b8124ae90b5156e457840b";
-    };
-    deps = {
-      "is-number-2.1.0" = self.by-version."is-number"."2.1.0";
-      "kind-of-3.0.3" = self.by-version."kind-of"."3.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."randombytes"."^2.0.0" =
-    self.by-version."randombytes"."2.0.3";
-  by-version."randombytes"."2.0.3" = self.buildNodePackage {
-    name = "randombytes-2.0.3";
-    version = "2.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz";
-      name = "randombytes-2.0.3.tgz";
-      sha1 = "674c99760901c3c4112771a31e521dc349cc09ec";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."randombytes"."^2.0.1" =
-    self.by-version."randombytes"."2.0.3";
-  by-spec."randombytes"."^2.0.3" =
-    self.by-version."randombytes"."2.0.3";
-  by-spec."range-parser"."0.0.4" =
-    self.by-version."range-parser"."0.0.4";
-  by-version."range-parser"."0.0.4" = self.buildNodePackage {
-    name = "range-parser-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz";
-      name = "range-parser-0.0.4.tgz";
-      sha1 = "c0427ffef51c10acba0782a46c9602e744ff620b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."range-parser"."1.0.0" =
-    self.by-version."range-parser"."1.0.0";
-  by-version."range-parser"."1.0.0" = self.buildNodePackage {
-    name = "range-parser-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz";
-      name = "range-parser-1.0.0.tgz";
-      sha1 = "a4b264cfe0be5ce36abe3765ac9c2a248746dbc0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."range-parser"."^1.0.0" =
-    self.by-version."range-parser"."1.2.0";
-  by-version."range-parser"."1.2.0" = self.buildNodePackage {
-    name = "range-parser-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz";
-      name = "range-parser-1.2.0.tgz";
-      sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."range-parser"."^1.0.2" =
-    self.by-version."range-parser"."1.2.0";
-  by-spec."range-parser"."^1.0.3" =
-    self.by-version."range-parser"."1.2.0";
-  by-spec."range-parser"."~1.0.0" =
-    self.by-version."range-parser"."1.0.3";
-  by-version."range-parser"."1.0.3" = self.buildNodePackage {
-    name = "range-parser-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz";
-      name = "range-parser-1.0.3.tgz";
-      sha1 = "6872823535c692e2c2a0103826afd82c2e0ff175";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."range-parser"."~1.0.2" =
-    self.by-version."range-parser"."1.0.3";
-  by-spec."range-parser"."~1.0.3" =
-    self.by-version."range-parser"."1.0.3";
-  by-spec."range-parser"."~1.2.0" =
-    self.by-version."range-parser"."1.2.0";
-  by-spec."raven"."~0.10.0" =
-    self.by-version."raven"."0.10.0";
-  by-version."raven"."0.10.0" = self.buildNodePackage {
-    name = "raven-0.10.0";
-    version = "0.10.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/raven/-/raven-0.10.0.tgz";
-      name = "raven-0.10.0.tgz";
-      sha1 = "2144346322955bd9e1519ac66081c63b178b452f";
-    };
-    deps = {
-      "cookie-0.1.0" = self.by-version."cookie"."0.1.0";
-      "lsmod-0.0.3" = self.by-version."lsmod"."0.0.3";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "stack-trace-0.0.7" = self.by-version."stack-trace"."0.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."raw-body"."0.0.3" =
-    self.by-version."raw-body"."0.0.3";
-  by-version."raw-body"."0.0.3" = self.buildNodePackage {
-    name = "raw-body-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/raw-body/-/raw-body-0.0.3.tgz";
-      name = "raw-body-0.0.3.tgz";
-      sha1 = "0cb3eb22ced1ca607d32dd8fd94a6eb383f3eb8a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."raw-body"."1.1.4" =
-    self.by-version."raw-body"."1.1.4";
-  by-version."raw-body"."1.1.4" = self.buildNodePackage {
-    name = "raw-body-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/raw-body/-/raw-body-1.1.4.tgz";
-      name = "raw-body-1.1.4.tgz";
-      sha1 = "f0b5624388d031f63da07f870c86cb9ccadcb67d";
-    };
-    deps = {
-      "bytes-0.3.0" = self.by-version."bytes"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."raw-body"."1.3.0" =
-    self.by-version."raw-body"."1.3.0";
-  by-version."raw-body"."1.3.0" = self.buildNodePackage {
-    name = "raw-body-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz";
-      name = "raw-body-1.3.0.tgz";
-      sha1 = "978230a156a5548f42eef14de22d0f4f610083d1";
-    };
-    deps = {
-      "bytes-1.0.0" = self.by-version."bytes"."1.0.0";
-      "iconv-lite-0.4.4" = self.by-version."iconv-lite"."0.4.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."raw-body"."1.x" =
-    self.by-version."raw-body"."1.3.4";
-  by-version."raw-body"."1.3.4" = self.buildNodePackage {
-    name = "raw-body-1.3.4";
-    version = "1.3.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/raw-body/-/raw-body-1.3.4.tgz";
-      name = "raw-body-1.3.4.tgz";
-      sha1 = "ccc7ddfc46b72861cdd5bb433c840b70b6f27f54";
-    };
-    deps = {
-      "bytes-1.0.0" = self.by-version."bytes"."1.0.0";
-      "iconv-lite-0.4.8" = self.by-version."iconv-lite"."0.4.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."raw-body"."2.1.6" =
-    self.by-version."raw-body"."2.1.6";
-  by-version."raw-body"."2.1.6" = self.buildNodePackage {
-    name = "raw-body-2.1.6";
-    version = "2.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz";
-      name = "raw-body-2.1.6.tgz";
-      sha1 = "9c050737fe07ced6d94a4fd09c61b6ad874d310f";
-    };
-    deps = {
-      "bytes-2.3.0" = self.by-version."bytes"."2.3.0";
-      "iconv-lite-0.4.13" = self.by-version."iconv-lite"."0.4.13";
-      "unpipe-1.0.0" = self.by-version."unpipe"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."raw-body"."~2.1.2" =
-    self.by-version."raw-body"."2.1.6";
-  by-spec."raw-body"."~2.1.5" =
-    self.by-version."raw-body"."2.1.6";
-  by-spec."raw-body"."~2.1.6" =
-    self.by-version."raw-body"."2.1.6";
-  by-spec."raw-socket"."*" =
-    self.by-version."raw-socket"."1.5.0";
-  by-version."raw-socket"."1.5.0" = self.buildNodePackage {
-    name = "raw-socket-1.5.0";
-    version = "1.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/raw-socket/-/raw-socket-1.5.0.tgz";
-      name = "raw-socket-1.5.0.tgz";
-      sha1 = "7a0fba1aef118609011a1205e830e626ca522ae9";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rc"."^0.4.0" =
-    self.by-version."rc"."0.4.0";
-  by-version."rc"."0.4.0" = self.buildNodePackage {
-    name = "rc-0.4.0";
-    version = "0.4.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rc/-/rc-0.4.0.tgz";
-      name = "rc-0.4.0.tgz";
-      sha1 = "ce24a2029ad94c3a40d09604a87227027d7210d3";
-    };
-    deps = {
-      "minimist-0.0.10" = self.by-version."minimist"."0.0.10";
-      "deep-extend-0.2.11" = self.by-version."deep-extend"."0.2.11";
-      "strip-json-comments-0.1.3" = self.by-version."strip-json-comments"."0.1.3";
-      "ini-1.1.0" = self.by-version."ini"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rc"."^1.0.1" =
-    self.by-version."rc"."1.1.6";
-  by-version."rc"."1.1.6" = self.buildNodePackage {
-    name = "rc-1.1.6";
-    version = "1.1.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://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-spec."rc"."~1.1.0" =
-    self.by-version."rc"."1.1.6";
-  by-spec."rc"."~1.1.6" =
-    self.by-version."rc"."1.1.6";
-  by-spec."re-emitter"."^1.0.0" =
-    self.by-version."re-emitter"."1.1.3";
-  by-version."re-emitter"."1.1.3" = self.buildNodePackage {
-    name = "re-emitter-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/re-emitter/-/re-emitter-1.1.3.tgz";
-      name = "re-emitter-1.1.3.tgz";
-      sha1 = "fa9e319ffdeeeb35b27296ef0f3d374dac2f52a7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."react"."*" =
-    self.by-version."react"."15.1.0";
-  by-version."react"."15.1.0" = self.buildNodePackage {
-    name = "react-15.1.0";
-    version = "15.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/react/-/react-15.1.0.tgz";
-      name = "react-15.1.0.tgz";
-      sha1 = "5f7a9f085a00509898efd2b24cb12ea1dfaf8b40";
-    };
-    deps = {
-      "fbjs-0.8.3" = self.by-version."fbjs"."0.8.3";
-      "loose-envify-1.2.0" = self.by-version."loose-envify"."1.2.0";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "react" = self.by-version."react"."15.1.0";
-  by-spec."react-tools"."*" =
-    self.by-version."react-tools"."0.14.0-alpha3";
-  by-version."react-tools"."0.14.0-alpha3" = self.buildNodePackage {
-    name = "react-tools-0.14.0-alpha3";
-    version = "0.14.0-alpha3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/react-tools/-/react-tools-0.14.0-alpha3.tgz";
-      name = "react-tools-0.14.0-alpha3.tgz";
-      sha1 = "e22664c10faee3200b1fa2b5c2b3bb7bfd72c8fd";
-    };
-    deps = {
-      "commoner-0.10.4" = self.by-version."commoner"."0.10.4";
-      "jstransform-11.0.3" = self.by-version."jstransform"."11.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "react-tools" = self.by-version."react-tools"."0.14.0-alpha3";
-  by-spec."read"."1" =
-    self.by-version."read"."1.0.7";
-  by-version."read"."1.0.7" = self.buildNodePackage {
-    name = "read-1.0.7";
-    version = "1.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read/-/read-1.0.7.tgz";
-      name = "read-1.0.7.tgz";
-      sha1 = "b3da19bd052431a97671d44a42634adf710b40c4";
-    };
-    deps = {
-      "mute-stream-0.0.6" = self.by-version."mute-stream"."0.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read"."1.0.x" =
-    self.by-version."read"."1.0.7";
-  by-spec."read"."~1.0.1" =
-    self.by-version."read"."1.0.7";
-  by-spec."read"."~1.0.7" =
-    self.by-version."read"."1.0.7";
-  by-spec."read-all-stream"."^2.0.0" =
-    self.by-version."read-all-stream"."2.2.0";
-  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 = "https://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.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    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 = "https://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.1" = self.by-version."pinkie-promise"."2.0.1";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read-cmd-shim"."~1.0.1" =
-    self.by-version."read-cmd-shim"."1.0.1";
-  by-version."read-cmd-shim"."1.0.1" = self.buildNodePackage {
-    name = "read-cmd-shim-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz";
-      name = "read-cmd-shim-1.0.1.tgz";
-      sha1 = "2d5d157786a37c055d22077c32c53f8329e91c7b";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read-installed"."~4.0.3" =
-    self.by-version."read-installed"."4.0.3";
-  by-version."read-installed"."4.0.3" = self.buildNodePackage {
-    name = "read-installed-4.0.3";
-    version = "4.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz";
-      name = "read-installed-4.0.3.tgz";
-      sha1 = "ff9b8b67f187d1e4c29b9feb31f6b223acd19067";
-    };
-    deps = {
-      "debuglog-1.0.1" = self.by-version."debuglog"."1.0.1";
-      "read-package-json-2.0.4" = self.by-version."read-package-json"."2.0.4";
-      "readdir-scoped-modules-1.0.2" = self.by-version."readdir-scoped-modules"."1.0.2";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "slide-1.1.6" = self.by-version."slide"."1.1.6";
-      "util-extend-1.0.3" = self.by-version."util-extend"."1.0.3";
-    };
-    optionalDependencies = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read-json-sync"."^1.1.0" =
-    self.by-version."read-json-sync"."1.1.1";
-  by-version."read-json-sync"."1.1.1" = self.buildNodePackage {
-    name = "read-json-sync-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.1.tgz";
-      name = "read-json-sync-1.1.1.tgz";
-      sha1 = "43c669ae864aae308dfbbb2721a67e295ec8fff6";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read-only-stream"."^1.1.1" =
-    self.by-version."read-only-stream"."1.1.1";
-  by-version."read-only-stream"."1.1.1" = self.buildNodePackage {
-    name = "read-only-stream-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read-only-stream/-/read-only-stream-1.1.1.tgz";
-      name = "read-only-stream-1.1.1.tgz";
-      sha1 = "5da77c799ed1388d3ef88a18471bb5924f8a0ba1";
-    };
-    deps = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "readable-wrap-1.0.0" = self.by-version."readable-wrap"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read-only-stream"."^2.0.0" =
-    self.by-version."read-only-stream"."2.0.0";
-  by-version."read-only-stream"."2.0.0" = self.buildNodePackage {
-    name = "read-only-stream-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz";
-      name = "read-only-stream-2.0.0.tgz";
-      sha1 = "2724fd6a8113d73764ac288d4386270c1dbf17f0";
-    };
-    deps = {
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read-package-json"."1 || 2" =
-    self.by-version."read-package-json"."2.0.4";
-  by-version."read-package-json"."2.0.4" = self.buildNodePackage {
-    name = "read-package-json-2.0.4";
-    version = "2.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz";
-      name = "read-package-json-2.0.4.tgz";
-      sha1 = "61ed1b2256ea438d8008895090be84b8e799c853";
-    };
-    deps = {
-      "glob-6.0.4" = self.by-version."glob"."6.0.4";
-      "json-parse-helpfulerror-1.0.3" = self.by-version."json-parse-helpfulerror"."1.0.3";
-      "normalize-package-data-2.3.5" = self.by-version."normalize-package-data"."2.3.5";
-    };
-    optionalDependencies = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read-package-json"."^2.0.0" =
-    self.by-version."read-package-json"."2.0.4";
-  by-spec."read-package-json"."~2.0.4" =
-    self.by-version."read-package-json"."2.0.4";
-  by-spec."read-package-tree"."~5.1.4" =
-    self.by-version."read-package-tree"."5.1.4";
-  by-version."read-package-tree"."5.1.4" = self.buildNodePackage {
-    name = "read-package-tree-5.1.4";
-    version = "5.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.4.tgz";
-      name = "read-package-tree-5.1.4.tgz";
-      sha1 = "bb6e465f913d4259a9534c87b1d5c508fe8eb078";
-    };
-    deps = {
-      "debuglog-1.0.1" = self.by-version."debuglog"."1.0.1";
-      "dezalgo-1.0.3" = self.by-version."dezalgo"."1.0.3";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "read-package-json-2.0.4" = self.by-version."read-package-json"."2.0.4";
-      "readdir-scoped-modules-1.0.2" = self.by-version."readdir-scoped-modules"."1.0.2";
-    };
-    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 = "https://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 = "https://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."read-torrent"."^1.0.0" =
-    self.by-version."read-torrent"."1.3.0";
-  by-version."read-torrent"."1.3.0" = self.buildNodePackage {
-    name = "read-torrent-1.3.0";
-    version = "1.3.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/read-torrent/-/read-torrent-1.3.0.tgz";
-      name = "read-torrent-1.3.0.tgz";
-      sha1 = "4e0ef5bea6cb24d31843eb6fa8543ad0232ab9f4";
-    };
-    deps = {
-      "magnet-uri-2.0.1" = self.by-version."magnet-uri"."2.0.1";
-      "parse-torrent-4.1.0" = self.by-version."parse-torrent"."4.1.0";
-      "request-2.16.6" = self.by-version."request"."2.16.6";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."read-torrent"."^1.3.0" =
-    self.by-version."read-torrent"."1.3.0";
-  by-spec."readable-stream"."1 || 2" =
-    self.by-version."readable-stream"."2.1.4";
-  by-version."readable-stream"."2.1.4" = self.buildNodePackage {
-    name = "readable-stream-2.1.4";
-    version = "2.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.4.tgz";
-      name = "readable-stream-2.1.4.tgz";
-      sha1 = "70b9791c6fcb8480db44bd155a0f6bb58f172468";
-    };
-    deps = {
-      "buffer-shims-1.0.0" = self.by-version."buffer-shims"."1.0.0";
-      "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.7" = self.by-version."process-nextick-args"."1.0.7";
-      "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"."1.0.27-1" =
-    self.by-version."readable-stream"."1.0.27-1";
-  by-version."readable-stream"."1.0.27-1" = self.buildNodePackage {
-    name = "readable-stream-1.0.27-1";
-    version = "1.0.27-1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz";
-      name = "readable-stream-1.0.27-1.tgz";
-      sha1 = "6b67983c20357cefd07f0165001a16d710d91078";
-    };
-    deps = {
-      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."readable-stream"."1.0.31" =
-    self.by-version."readable-stream"."1.0.31";
-  by-version."readable-stream"."1.0.31" = self.buildNodePackage {
-    name = "readable-stream-1.0.31";
-    version = "1.0.31";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz";
-      name = "readable-stream-1.0.31.tgz";
-      sha1 = "8f2502e0bc9e3b0da1b94520aabb4e2603ecafae";
-    };
-    deps = {
-      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."readable-stream"."1.1" =
-    self.by-version."readable-stream"."1.1.14";
-  by-version."readable-stream"."1.1.14" = self.buildNodePackage {
-    name = "readable-stream-1.1.14";
-    version = "1.1.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
-      name = "readable-stream-1.1.14.tgz";
-      sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
-    };
-    deps = {
-      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."readable-stream"."1.1.x" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."2" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream".">=1.0.33-1 <1.1.0-0" =
-    self.by-version."readable-stream"."1.0.34";
-  by-version."readable-stream"."1.0.34" = self.buildNodePackage {
-    name = "readable-stream-1.0.34";
-    version = "1.0.34";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz";
-      name = "readable-stream-1.0.34.tgz";
-      sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
-    };
-    deps = {
-      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."readable-stream".">=1.1.13-1 <1.2.0-0" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream".">=2.0.0 <3.0.0" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."^1.0.2" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."^1.0.27-1" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."^1.0.31" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."^1.0.33" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."^1.1.13" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."^1.1.13-1" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."^2.0.0" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."^2.0.0 || ^1.1.13" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."^2.0.1" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."^2.0.2" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."^2.0.4" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."^2.0.5" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."^2.1.0" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."~1.0.17" =
-    self.by-version."readable-stream"."1.0.34";
-  by-spec."readable-stream"."~1.0.2" =
-    self.by-version."readable-stream"."1.0.34";
-  by-spec."readable-stream"."~1.0.24" =
-    self.by-version."readable-stream"."1.0.34";
-  by-spec."readable-stream"."~1.0.26" =
-    self.by-version."readable-stream"."1.0.34";
-  by-spec."readable-stream"."~1.0.26-2" =
-    self.by-version."readable-stream"."1.0.34";
-  by-spec."readable-stream"."~1.0.33" =
-    self.by-version."readable-stream"."1.0.34";
-  by-spec."readable-stream"."~1.1.0" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."~1.1.10" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."~1.1.8" =
-    self.by-version."readable-stream"."1.1.14";
-  by-spec."readable-stream"."~1.1.9" =
-    self.by-version."readable-stream"."1.1.14";
-  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 = "https://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.7" = self.by-version."process-nextick-args"."1.0.7";
-      "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.4" =
-    self.by-version."readable-stream"."2.0.6";
-  by-spec."readable-stream"."~2.0.5" =
-    self.by-version."readable-stream"."2.0.6";
-  by-spec."readable-stream"."~2.1.2" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-stream"."~2.1.3" =
-    self.by-version."readable-stream"."2.1.4";
-  by-spec."readable-wrap"."^1.0.0" =
-    self.by-version."readable-wrap"."1.0.0";
-  by-version."readable-wrap"."1.0.0" = self.buildNodePackage {
-    name = "readable-wrap-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readable-wrap/-/readable-wrap-1.0.0.tgz";
-      name = "readable-wrap-1.0.0.tgz";
-      sha1 = "3b5a211c631e12303a54991c806c17e7ae206bff";
-    };
-    deps = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."readdir-scoped-modules"."*" =
-    self.by-version."readdir-scoped-modules"."1.0.2";
-  by-version."readdir-scoped-modules"."1.0.2" = self.buildNodePackage {
-    name = "readdir-scoped-modules-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz";
-      name = "readdir-scoped-modules-1.0.2.tgz";
-      sha1 = "9fafa37d286be5d92cbaebdee030dc9b5f406747";
-    };
-    deps = {
-      "debuglog-1.0.1" = self.by-version."debuglog"."1.0.1";
-      "dezalgo-1.0.3" = self.by-version."dezalgo"."1.0.3";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."readdir-scoped-modules"."^1.0.0" =
-    self.by-version."readdir-scoped-modules"."1.0.2";
-  by-spec."readdirp"."^2.0.0" =
-    self.by-version."readdirp"."2.0.0";
-  by-version."readdirp"."2.0.0" = self.buildNodePackage {
-    name = "readdirp-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz";
-      name = "readdirp-2.0.0.tgz";
-      sha1 = "cc09ba5d12d8feb864bc75f6e2ebc137060cbd82";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "minimatch-2.0.10" = self.by-version."minimatch"."2.0.10";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."readline2"."^0.1.1" =
-    self.by-version."readline2"."0.1.1";
-  by-version."readline2"."0.1.1" = self.buildNodePackage {
-    name = "readline2-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz";
-      name = "readline2-0.1.1.tgz";
-      sha1 = "99443ba6e83b830ef3051bfd7dc241a82728d568";
-    };
-    deps = {
-      "mute-stream-0.0.4" = self.by-version."mute-stream"."0.0.4";
-      "strip-ansi-2.0.1" = self.by-version."strip-ansi"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."readline2"."^1.0.1" =
-    self.by-version."readline2"."1.0.1";
-  by-version."readline2"."1.0.1" = self.buildNodePackage {
-    name = "readline2-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz";
-      name = "readline2-1.0.1.tgz";
-      sha1 = "41059608ffc154757b715d9989d199ffbf372e35";
-    };
-    deps = {
-      "code-point-at-1.0.0" = self.by-version."code-point-at"."1.0.0";
-      "is-fullwidth-code-point-1.0.0" = self.by-version."is-fullwidth-code-point"."1.0.0";
-      "mute-stream-0.0.5" = self.by-version."mute-stream"."0.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."realize-package-specifier"."~3.0.1" =
-    self.by-version."realize-package-specifier"."3.0.3";
-  by-version."realize-package-specifier"."3.0.3" = self.buildNodePackage {
-    name = "realize-package-specifier-3.0.3";
-    version = "3.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/realize-package-specifier/-/realize-package-specifier-3.0.3.tgz";
-      name = "realize-package-specifier-3.0.3.tgz";
-      sha1 = "d0def882952b8de3f67eba5e91199661271f41f4";
-    };
-    deps = {
-      "dezalgo-1.0.3" = self.by-version."dezalgo"."1.0.3";
-      "npm-package-arg-4.1.1" = self.by-version."npm-package-arg"."4.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."realize-package-specifier"."~3.0.3" =
-    self.by-version."realize-package-specifier"."3.0.3";
-  by-spec."recast"."0.10.33" =
-    self.by-version."recast"."0.10.33";
-  by-version."recast"."0.10.33" = self.buildNodePackage {
-    name = "recast-0.10.33";
-    version = "0.10.33";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz";
-      name = "recast-0.10.33.tgz";
-      sha1 = "942808f7aa016f1fa7142c461d7e5704aaa8d697";
-    };
-    deps = {
-      "esprima-fb-15001.1001.0-dev-harmony-fb" = self.by-version."esprima-fb"."15001.1001.0-dev-harmony-fb";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-      "private-0.1.6" = self.by-version."private"."0.1.6";
-      "ast-types-0.8.12" = self.by-version."ast-types"."0.8.12";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."recast"."^0.10.0" =
-    self.by-version."recast"."0.10.43";
-  by-version."recast"."0.10.43" = self.buildNodePackage {
-    name = "recast-0.10.43";
-    version = "0.10.43";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/recast/-/recast-0.10.43.tgz";
-      name = "recast-0.10.43.tgz";
-      sha1 = "b95d50f6d60761a5f6252e15d80678168491ce7f";
-    };
-    deps = {
-      "esprima-fb-15001.1001.0-dev-harmony-fb" = self.by-version."esprima-fb"."15001.1001.0-dev-harmony-fb";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-      "private-0.1.6" = self.by-version."private"."0.1.6";
-      "ast-types-0.8.15" = self.by-version."ast-types"."0.8.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rechoir"."^0.6.0" =
-    self.by-version."rechoir"."0.6.2";
-  by-version."rechoir"."0.6.2" = self.buildNodePackage {
-    name = "rechoir-0.6.2";
-    version = "0.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
-      name = "rechoir-0.6.2.tgz";
-      sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
-    };
-    deps = {
-      "resolve-1.1.7" = self.by-version."resolve"."1.1.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rechoir"."^0.6.2" =
-    self.by-version."rechoir"."0.6.2";
-  by-spec."reconnect-core"."https://github.com/dodo/reconnect-core/tarball/merged" =
-    self.by-version."reconnect-core"."0.0.1";
-  by-version."reconnect-core"."0.0.1" = self.buildNodePackage {
-    name = "reconnect-core-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://github.com/dodo/reconnect-core/tarball/merged";
-      name = "reconnect-core-0.0.1.tgz";
-      sha256 = "431dd7a1578061815270e4ad59c6e8b40dff6b308244973e1c11049ccbf1629b";
-    };
-    deps = {
-      "backoff-2.3.0" = self.by-version."backoff"."2.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  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 = "https://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."redis"."*" =
-    self.by-version."redis"."2.6.1";
-  by-version."redis"."2.6.1" = self.buildNodePackage {
-    name = "redis-2.6.1";
-    version = "2.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/redis/-/redis-2.6.1.tgz";
-      name = "redis-2.6.1.tgz";
-      sha1 = "0c174e15b34ac6974195ad956d5a7177d6115d46";
-    };
-    deps = {
-      "double-ended-queue-2.1.0-0" = self.by-version."double-ended-queue"."2.1.0-0";
-      "redis-commands-1.2.0" = self.by-version."redis-commands"."1.2.0";
-      "redis-parser-2.0.2" = self.by-version."redis-parser"."2.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "redis" = self.by-version."redis"."2.6.1";
-  by-spec."redis"."0.10.x" =
-    self.by-version."redis"."0.10.3";
-  by-version."redis"."0.10.3" = self.buildNodePackage {
-    name = "redis-0.10.3";
-    version = "0.10.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/redis/-/redis-0.10.3.tgz";
-      name = "redis-0.10.3.tgz";
-      sha1 = "8927fe2110ee39617bcf3fd37b89d8e123911bb6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."redis"."0.7.3" =
-    self.by-version."redis"."0.7.3";
-  by-version."redis"."0.7.3" = self.buildNodePackage {
-    name = "redis-0.7.3";
-    version = "0.7.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/redis/-/redis-0.7.3.tgz";
-      name = "redis-0.7.3.tgz";
-      sha1 = "ee57b7a44d25ec1594e44365d8165fa7d1d4811a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."redis"."^0.12.1" =
-    self.by-version."redis"."0.12.1";
-  by-version."redis"."0.12.1" = self.buildNodePackage {
-    name = "redis-0.12.1";
-    version = "0.12.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz";
-      name = "redis-0.12.1.tgz";
-      sha1 = "64df76ad0fc8acebaebd2a0645e8a48fac49185e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."redis"."~2.4.2" =
-    self.by-version."redis"."2.4.2";
-  by-version."redis"."2.4.2" = self.buildNodePackage {
-    name = "redis-2.4.2";
-    version = "2.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/redis/-/redis-2.4.2.tgz";
-      name = "redis-2.4.2.tgz";
-      sha1 = "2f9160255a26a6cad2b79bf0847e067280a146ea";
-    };
-    deps = {
-      "double-ended-queue-2.1.0-0" = self.by-version."double-ended-queue"."2.1.0-0";
-      "redis-commands-1.2.0" = self.by-version."redis-commands"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."redis-commands"."^1.0.1" =
-    self.by-version."redis-commands"."1.2.0";
-  by-version."redis-commands"."1.2.0" = self.buildNodePackage {
-    name = "redis-commands-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.2.0.tgz";
-      name = "redis-commands-1.2.0.tgz";
-      sha1 = "4808e7a0fcb1d3609bec56eecc3532dacbab981c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."redis-commands"."^1.2.0" =
-    self.by-version."redis-commands"."1.2.0";
-  by-spec."redis-parser"."^2.0.0" =
-    self.by-version."redis-parser"."2.0.2";
-  by-version."redis-parser"."2.0.2" = self.buildNodePackage {
-    name = "redis-parser-2.0.2";
-    version = "2.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/redis-parser/-/redis-parser-2.0.2.tgz";
-      name = "redis-parser-2.0.2.tgz";
-      sha1 = "c3354d6afef91c90ab941533d8033eb7e7dc5b56";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."reds"."~0.2.5" =
-    self.by-version."reds"."0.2.5";
-  by-version."reds"."0.2.5" = self.buildNodePackage {
-    name = "reds-0.2.5";
-    version = "0.2.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/reds/-/reds-0.2.5.tgz";
-      name = "reds-0.2.5.tgz";
-      sha1 = "38a767f7663cd749036848697d82c74fd29bc01f";
-    };
-    deps = {
-      "natural-0.2.1" = self.by-version."natural"."0.2.1";
-      "redis-0.12.1" = self.by-version."redis"."0.12.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."reduce-component"."1.0.1" =
-    self.by-version."reduce-component"."1.0.1";
-  by-version."reduce-component"."1.0.1" = self.buildNodePackage {
-    name = "reduce-component-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz";
-      name = "reduce-component-1.0.1.tgz";
-      sha1 = "e0c93542c574521bea13df0f9488ed82ab77c5da";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."reduplexer"."^1.1.0" =
-    self.by-version."reduplexer"."1.1.0";
-  by-version."reduplexer"."1.1.0" = self.buildNodePackage {
-    name = "reduplexer-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/reduplexer/-/reduplexer-1.1.0.tgz";
-      name = "reduplexer-1.1.0.tgz";
-      sha1 = "7dfed18a679e749c1d7ad36de01acb515f08e140";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."regenerator"."~0.8.13" =
-    self.by-version."regenerator"."0.8.46";
-  by-version."regenerator"."0.8.46" = self.buildNodePackage {
-    name = "regenerator-0.8.46";
-    version = "0.8.46";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/regenerator/-/regenerator-0.8.46.tgz";
-      name = "regenerator-0.8.46.tgz";
-      sha1 = "154c327686361ed52cad69b2545efc53a3d07696";
-    };
-    deps = {
-      "commoner-0.10.4" = self.by-version."commoner"."0.10.4";
-      "defs-1.1.1" = self.by-version."defs"."1.1.1";
-      "esprima-fb-15001.1001.0-dev-harmony-fb" = self.by-version."esprima-fb"."15001.1001.0-dev-harmony-fb";
-      "private-0.1.6" = self.by-version."private"."0.1.6";
-      "recast-0.10.33" = self.by-version."recast"."0.10.33";
-      "regenerator-runtime-0.9.5" = self.by-version."regenerator-runtime"."0.9.5";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."regenerator-runtime"."^0.9.5" =
-    self.by-version."regenerator-runtime"."0.9.5";
-  by-version."regenerator-runtime"."0.9.5" = self.buildNodePackage {
-    name = "regenerator-runtime-0.9.5";
-    version = "0.9.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz";
-      name = "regenerator-runtime-0.9.5.tgz";
-      sha1 = "403d6d40a4bdff9c330dd9392dcbb2d9a8bba1fc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."regenerator-runtime"."~0.9.5" =
-    self.by-version."regenerator-runtime"."0.9.5";
-  by-spec."regex-cache"."^0.4.2" =
-    self.by-version."regex-cache"."0.4.3";
-  by-version."regex-cache"."0.4.3" = self.buildNodePackage {
-    name = "regex-cache-0.4.3";
-    version = "0.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz";
-      name = "regex-cache-0.4.3.tgz";
-      sha1 = "9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145";
-    };
-    deps = {
-      "is-equal-shallow-0.1.3" = self.by-version."is-equal-shallow"."0.1.3";
-      "is-primitive-2.0.0" = self.by-version."is-primitive"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."regexp-clone"."0.0.1" =
-    self.by-version."regexp-clone"."0.0.1";
-  by-version."regexp-clone"."0.0.1" = self.buildNodePackage {
-    name = "regexp-clone-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz";
-      name = "regexp-clone-0.0.1.tgz";
-      sha1 = "a7c2e09891fdbf38fbb10d376fb73003e68ac589";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."regexp-quote"."0.0.0" =
-    self.by-version."regexp-quote"."0.0.0";
-  by-version."regexp-quote"."0.0.0" = self.buildNodePackage {
-    name = "regexp-quote-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/regexp-quote/-/regexp-quote-0.0.0.tgz";
-      name = "regexp-quote-0.0.0.tgz";
-      sha1 = "1e0f4650c862dcbfed54fd42b148e9bb1721fcf2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."registry-url"."^3.0.0" =
-    self.by-version."registry-url"."3.1.0";
-  by-version."registry-url"."3.1.0" = self.buildNodePackage {
-    name = "registry-url-3.1.0";
-    version = "3.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz";
-      name = "registry-url-3.1.0.tgz";
-      sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
-    };
-    deps = {
-      "rc-1.1.6" = self.by-version."rc"."1.1.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."reinterval"."^1.0.1" =
-    self.by-version."reinterval"."1.0.2";
-  by-version."reinterval"."1.0.2" = self.buildNodePackage {
-    name = "reinterval-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/reinterval/-/reinterval-1.0.2.tgz";
-      name = "reinterval-1.0.2.tgz";
-      sha1 = "029056fb7637844bec872f36f2c07b0d7c112e6d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."relative-date"."^1.1.1" =
-    self.by-version."relative-date"."1.1.3";
-  by-version."relative-date"."1.1.3" = self.buildNodePackage {
-    name = "relative-date-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/relative-date/-/relative-date-1.1.3.tgz";
-      name = "relative-date-1.1.3.tgz";
-      sha1 = "120903040588ec7a4a399c6547fd01d0e3d2dc63";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."render-readme".">=0.2.1" =
-    self.by-version."render-readme"."1.3.1";
-  by-version."render-readme"."1.3.1" = self.buildNodePackage {
-    name = "render-readme-1.3.1";
-    version = "1.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/render-readme/-/render-readme-1.3.1.tgz";
-      name = "render-readme-1.3.1.tgz";
-      sha1 = "d2a98f9a87dd64fa73c6877ac5c45b0f6341a797";
-    };
-    deps = {
-      "markdown-it-4.4.0" = self.by-version."markdown-it"."4.4.0";
-      "sanitize-html-1.11.4" = self.by-version."sanitize-html"."1.11.4";
-      "js-yaml-3.6.1" = self.by-version."js-yaml"."3.6.1";
-      "highlight.js-8.9.1" = self.by-version."highlight.js"."8.9.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."repeat-element"."^1.1.2" =
-    self.by-version."repeat-element"."1.1.2";
-  by-version."repeat-element"."1.1.2" = self.buildNodePackage {
-    name = "repeat-element-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz";
-      name = "repeat-element-1.1.2.tgz";
-      sha1 = "ef089a178d1483baae4d93eb98b4f9e4e11d990a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."repeat-string"."^0.2.2" =
-    self.by-version."repeat-string"."0.2.2";
-  by-version."repeat-string"."0.2.2" = self.buildNodePackage {
-    name = "repeat-string-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz";
-      name = "repeat-string-0.2.2.tgz";
-      sha1 = "c7a8d3236068362059a7e4651fc6884e8b1fb4ae";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."repeat-string"."^1.5.2" =
-    self.by-version."repeat-string"."1.5.4";
-  by-version."repeat-string"."1.5.4" = self.buildNodePackage {
-    name = "repeat-string-1.5.4";
-    version = "1.5.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz";
-      name = "repeat-string-1.5.4.tgz";
-      sha1 = "64ec0c91e0f4b475f90d5b643651e3e6e5b6c2d5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."repeating"."^1.1.0" =
-    self.by-version."repeating"."1.1.3";
-  by-version."repeating"."1.1.3" = self.buildNodePackage {
-    name = "repeating-1.1.3";
-    version = "1.1.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz";
-      name = "repeating-1.1.3.tgz";
-      sha1 = "3d4114218877537494f97f77f9785fab810fa4ac";
-    };
-    deps = {
-      "is-finite-1.0.1" = self.by-version."is-finite"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."repeating"."^1.1.2" =
-    self.by-version."repeating"."1.1.3";
-  by-spec."repeating"."^2.0.0" =
-    self.by-version."repeating"."2.0.1";
-  by-version."repeating"."2.0.1" = self.buildNodePackage {
-    name = "repeating-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz";
-      name = "repeating-2.0.1.tgz";
-      sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
-    };
-    deps = {
-      "is-finite-1.0.1" = self.by-version."is-finite"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."replace"."~0.2.4" =
-    self.by-version."replace"."0.2.10";
-  by-version."replace"."0.2.10" = self.buildNodePackage {
-    name = "replace-0.2.10";
-    version = "0.2.10";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/replace/-/replace-0.2.10.tgz";
-      name = "replace-0.2.10.tgz";
-      sha1 = "1123397e995b3bfef9985fc63cddcf79a014fd64";
-    };
-    deps = {
-      "nomnom-1.6.2" = self.by-version."nomnom"."1.6.2";
-      "colors-0.5.1" = self.by-version."colors"."0.5.1";
-      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."replace-ext"."0.0.1" =
-    self.by-version."replace-ext"."0.0.1";
-  by-version."replace-ext"."0.0.1" = self.buildNodePackage {
-    name = "replace-ext-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz";
-      name = "replace-ext-0.0.1.tgz";
-      sha1 = "29bbd92078a739f0bcce2b4ee41e837953522924";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2" =
-    self.by-version."request"."2.72.0";
-  by-version."request"."2.72.0" = self.buildNodePackage {
-    name = "request-2.72.0";
-    version = "2.72.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.72.0.tgz";
-      name = "request-2.72.0.tgz";
-      sha1 = "0ce3a179512620b10441f14c82e21c12c0ddb4e1";
-    };
-    deps = {
-      "aws-sign2-0.6.0" = self.by-version."aws-sign2"."0.6.0";
-      "aws4-1.4.1" = self.by-version."aws4"."1.4.1";
-      "bl-1.1.2" = self.by-version."bl"."1.1.2";
-      "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.11" = self.by-version."mime-types"."2.1.11";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "oauth-sign-0.8.2" = self.by-version."oauth-sign"."0.8.2";
-      "qs-6.1.0" = self.by-version."qs"."6.1.0";
-      "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.3" = self.by-version."tunnel-agent"."0.4.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2 >=2.20.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."2 >=2.25.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."2.16.x" =
-    self.by-version."request"."2.16.6";
-  by-version."request"."2.16.6" = self.buildNodePackage {
-    name = "request-2.16.6";
-    version = "2.16.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.16.6.tgz";
-      name = "request-2.16.6.tgz";
-      sha1 = "872fe445ae72de266b37879d6ad7dc948fa01cad";
-    };
-    deps = {
-      "form-data-0.0.10" = self.by-version."form-data"."0.0.10";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "hawk-0.10.2" = self.by-version."hawk"."0.10.2";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "cookie-jar-0.2.0" = self.by-version."cookie-jar"."0.2.0";
-      "aws-sign-0.2.0" = self.by-version."aws-sign"."0.2.0";
-      "oauth-sign-0.2.0" = self.by-version."oauth-sign"."0.2.0";
-      "forever-agent-0.2.0" = self.by-version."forever-agent"."0.2.0";
-      "tunnel-agent-0.2.0" = self.by-version."tunnel-agent"."0.2.0";
-      "json-stringify-safe-3.0.0" = self.by-version."json-stringify-safe"."3.0.0";
-      "qs-0.5.6" = self.by-version."qs"."0.5.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.26.x" =
-    self.by-version."request"."2.26.0";
-  by-version."request"."2.26.0" = self.buildNodePackage {
-    name = "request-2.26.0";
-    version = "2.26.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.26.0.tgz";
-      name = "request-2.26.0.tgz";
-      sha1 = "79b03075cbac2e22ebe41aa7fca884e869c1c212";
-    };
-    deps = {
-      "qs-0.6.6" = self.by-version."qs"."0.6.6";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
-      "tunnel-agent-0.3.0" = self.by-version."tunnel-agent"."0.3.0";
-      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
-      "hawk-1.0.0" = self.by-version."hawk"."1.0.0";
-      "aws-sign-0.3.0" = self.by-version."aws-sign"."0.3.0";
-      "oauth-sign-0.3.0" = self.by-version."oauth-sign"."0.3.0";
-      "cookie-jar-0.3.0" = self.by-version."cookie-jar"."0.3.0";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.36.0" =
-    self.by-version."request"."2.36.0";
-  by-version."request"."2.36.0" = self.buildNodePackage {
-    name = "request-2.36.0";
-    version = "2.36.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.36.0.tgz";
-      name = "request-2.36.0.tgz";
-      sha1 = "28c6c04262c7b9ffdd21b9255374517ee6d943f5";
-    };
-    deps = {
-      "qs-0.6.6" = self.by-version."qs"."0.6.6";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-    };
-    optionalDependencies = {
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
-      "oauth-sign-0.3.0" = self.by-version."oauth-sign"."0.3.0";
-      "hawk-1.0.0" = self.by-version."hawk"."1.0.0";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.40.x" =
-    self.by-version."request"."2.40.0";
-  by-version."request"."2.40.0" = self.buildNodePackage {
-    name = "request-2.40.0";
-    version = "2.40.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.40.0.tgz";
-      name = "request-2.40.0.tgz";
-      sha1 = "4dd670f696f1e6e842e66b4b5e839301ab9beb67";
-    };
-    deps = {
-      "qs-1.0.2" = self.by-version."qs"."1.0.2";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-1.0.2" = self.by-version."mime-types"."1.0.2";
-      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-    };
-    optionalDependencies = {
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
-      "oauth-sign-0.3.0" = self.by-version."oauth-sign"."0.3.0";
-      "hawk-1.1.1" = self.by-version."hawk"."1.1.1";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.47.0" =
-    self.by-version."request"."2.47.0";
-  by-version."request"."2.47.0" = self.buildNodePackage {
-    name = "request-2.47.0";
-    version = "2.47.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.47.0.tgz";
-      name = "request-2.47.0.tgz";
-      sha1 = "09e9fd1a4fed6593a805ef8202b20f0c5ecb485f";
-    };
-    deps = {
-      "bl-0.9.5" = self.by-version."bl"."0.9.5";
-      "caseless-0.6.0" = self.by-version."caseless"."0.6.0";
-      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
-      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-1.0.2" = self.by-version."mime-types"."1.0.2";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "qs-2.3.3" = self.by-version."qs"."2.3.3";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
-      "oauth-sign-0.4.0" = self.by-version."oauth-sign"."0.4.0";
-      "hawk-1.1.1" = self.by-version."hawk"."1.1.1";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.55.x" =
-    self.by-version."request"."2.55.0";
-  by-version."request"."2.55.0" = self.buildNodePackage {
-    name = "request-2.55.0";
-    version = "2.55.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.55.0.tgz";
-      name = "request-2.55.0.tgz";
-      sha1 = "d75c1cdf679d76bb100f9bffe1fe551b5c24e93d";
-    };
-    deps = {
-      "bl-0.9.5" = self.by-version."bl"."0.9.5";
-      "caseless-0.9.0" = self.by-version."caseless"."0.9.0";
-      "forever-agent-0.6.1" = self.by-version."forever-agent"."0.6.1";
-      "form-data-0.2.0" = self.by-version."form-data"."0.2.0";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "qs-2.4.2" = self.by-version."qs"."2.4.2";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
-      "oauth-sign-0.6.0" = self.by-version."oauth-sign"."0.6.0";
-      "hawk-2.3.1" = self.by-version."hawk"."2.3.1";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "har-validator-1.8.0" = self.by-version."har-validator"."1.8.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.61.0" =
-    self.by-version."request"."2.61.0";
-  by-version."request"."2.61.0" = self.buildNodePackage {
-    name = "request-2.61.0";
-    version = "2.61.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.61.0.tgz";
-      name = "request-2.61.0.tgz";
-      sha1 = "6973cb2ac94885f02693f554eec64481d6013f9f";
-    };
-    deps = {
-      "bl-1.0.3" = self.by-version."bl"."1.0.3";
-      "caseless-0.11.0" = self.by-version."caseless"."0.11.0";
-      "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";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "qs-4.0.0" = self.by-version."qs"."4.0.0";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "http-signature-0.11.0" = self.by-version."http-signature"."0.11.0";
-      "oauth-sign-0.8.2" = self.by-version."oauth-sign"."0.8.2";
-      "hawk-3.1.3" = self.by-version."hawk"."3.1.3";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "har-validator-1.8.0" = self.by-version."har-validator"."1.8.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.62.0" =
-    self.by-version."request"."2.62.0";
-  by-version."request"."2.62.0" = self.buildNodePackage {
-    name = "request-2.62.0";
-    version = "2.62.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.62.0.tgz";
-      name = "request-2.62.0.tgz";
-      sha1 = "55c165f702a146f1e21e0725c0b75e1136487b0f";
-    };
-    deps = {
-      "bl-1.0.3" = self.by-version."bl"."1.0.3";
-      "caseless-0.11.0" = self.by-version."caseless"."0.11.0";
-      "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";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "qs-5.1.0" = self.by-version."qs"."5.1.0";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "http-signature-0.11.0" = self.by-version."http-signature"."0.11.0";
-      "oauth-sign-0.8.2" = self.by-version."oauth-sign"."0.8.2";
-      "hawk-3.1.3" = self.by-version."hawk"."3.1.3";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "har-validator-1.8.0" = self.by-version."har-validator"."1.8.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.65.0" =
-    self.by-version."request"."2.65.0";
-  by-version."request"."2.65.0" = self.buildNodePackage {
-    name = "request-2.65.0";
-    version = "2.65.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.65.0.tgz";
-      name = "request-2.65.0.tgz";
-      sha1 = "cc1a3bc72b96254734fc34296da322f9486ddeba";
-    };
-    deps = {
-      "bl-1.0.3" = self.by-version."bl"."1.0.3";
-      "caseless-0.11.0" = self.by-version."caseless"."0.11.0";
-      "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";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "qs-5.2.0" = self.by-version."qs"."5.2.0";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "http-signature-0.11.0" = self.by-version."http-signature"."0.11.0";
-      "oauth-sign-0.8.2" = self.by-version."oauth-sign"."0.8.2";
-      "hawk-3.1.3" = self.by-version."hawk"."3.1.3";
-      "aws-sign2-0.6.0" = self.by-version."aws-sign2"."0.6.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "har-validator-2.0.6" = self.by-version."har-validator"."2.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.67.0" =
-    self.by-version."request"."2.67.0";
-  by-version."request"."2.67.0" = self.buildNodePackage {
-    name = "request-2.67.0";
-    version = "2.67.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.67.0.tgz";
-      name = "request-2.67.0.tgz";
-      sha1 = "8af74780e2bf11ea0ae9aa965c11f11afd272742";
-    };
-    deps = {
-      "bl-1.0.3" = self.by-version."bl"."1.0.3";
-      "caseless-0.11.0" = self.by-version."caseless"."0.11.0";
-      "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";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "qs-5.2.0" = self.by-version."qs"."5.2.0";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "http-signature-1.1.1" = self.by-version."http-signature"."1.1.1";
-      "oauth-sign-0.8.2" = self.by-version."oauth-sign"."0.8.2";
-      "hawk-3.1.3" = self.by-version."hawk"."3.1.3";
-      "aws-sign2-0.6.0" = self.by-version."aws-sign2"."0.6.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "is-typedarray-1.0.0" = self.by-version."is-typedarray"."1.0.0";
-      "har-validator-2.0.6" = self.by-version."har-validator"."2.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.9.x" =
-    self.by-version."request"."2.9.203";
-  by-version."request"."2.9.203" = self.buildNodePackage {
-    name = "request-2.9.203";
-    version = "2.9.203";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.9.203.tgz";
-      name = "request-2.9.203.tgz";
-      sha1 = "6c1711a5407fb94a114219563e44145bcbf4723a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."2.x" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."=2.67.0" =
-    self.by-version."request"."2.67.0";
-  by-spec."request".">= 2.2.9" =
-    self.by-version."request"."2.72.0";
-  by-spec."request".">= 2.44.0 < 3.0.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request".">=2.2.9" =
-    self.by-version."request"."2.72.0";
-  by-spec."request".">=2.27.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request".">=2.29.1" =
-    self.by-version."request"."2.72.0";
-  by-spec."request".">=2.30.1" =
-    self.by-version."request"."2.72.0";
-  by-spec."request".">=2.31.0 <3.0.0-0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request".">=2.55" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.34.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.39.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.40.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.47.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.51.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.54.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.61.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.65.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.67.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."^2.72.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."~2" =
-    self.by-version."request"."2.72.0";
-  by-spec."request"."~2.16.2" =
-    self.by-version."request"."2.16.6";
-  by-spec."request"."~2.34.0" =
-    self.by-version."request"."2.34.0";
-  by-version."request"."2.34.0" = self.buildNodePackage {
-    name = "request-2.34.0";
-    version = "2.34.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.34.0.tgz";
-      name = "request-2.34.0.tgz";
-      sha1 = "b5d8b9526add4a2d4629f4d417124573996445ae";
-    };
-    deps = {
-      "qs-0.6.6" = self.by-version."qs"."0.6.6";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-    };
-    optionalDependencies = {
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
-      "tunnel-agent-0.3.0" = self.by-version."tunnel-agent"."0.3.0";
-      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
-      "oauth-sign-0.3.0" = self.by-version."oauth-sign"."0.3.0";
-      "hawk-1.0.0" = self.by-version."hawk"."1.0.0";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."~2.40.0" =
-    self.by-version."request"."2.40.0";
-  by-spec."request"."~2.51.0" =
-    self.by-version."request"."2.51.0";
-  by-version."request"."2.51.0" = self.buildNodePackage {
-    name = "request-2.51.0";
-    version = "2.51.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.51.0.tgz";
-      name = "request-2.51.0.tgz";
-      sha1 = "35d00bbecc012e55f907b1bd9e0dbd577bfef26e";
-    };
-    deps = {
-      "bl-0.9.5" = self.by-version."bl"."0.9.5";
-      "caseless-0.8.0" = self.by-version."caseless"."0.8.0";
-      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
-      "form-data-0.2.0" = self.by-version."form-data"."0.2.0";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-1.0.2" = self.by-version."mime-types"."1.0.2";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "qs-2.3.3" = self.by-version."qs"."2.3.3";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "http-signature-0.10.1" = self.by-version."http-signature"."0.10.1";
-      "oauth-sign-0.5.0" = self.by-version."oauth-sign"."0.5.0";
-      "hawk-1.1.1" = self.by-version."hawk"."1.1.1";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-      "combined-stream-0.0.7" = self.by-version."combined-stream"."0.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."~2.55.0" =
-    self.by-version."request"."2.55.0";
-  by-spec."request"."~2.60.0" =
-    self.by-version."request"."2.60.0";
-  by-version."request"."2.60.0" = self.buildNodePackage {
-    name = "request-2.60.0";
-    version = "2.60.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request/-/request-2.60.0.tgz";
-      name = "request-2.60.0.tgz";
-      sha1 = "498820957fcdded1d37749069610c85f61a29f2d";
-    };
-    deps = {
-      "bl-1.0.3" = self.by-version."bl"."1.0.3";
-      "caseless-0.11.0" = self.by-version."caseless"."0.11.0";
-      "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";
-      "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1";
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "qs-4.0.0" = self.by-version."qs"."4.0.0";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "tough-cookie-2.2.2" = self.by-version."tough-cookie"."2.2.2";
-      "http-signature-0.11.0" = self.by-version."http-signature"."0.11.0";
-      "oauth-sign-0.8.2" = self.by-version."oauth-sign"."0.8.2";
-      "hawk-3.1.3" = self.by-version."hawk"."3.1.3";
-      "aws-sign2-0.5.0" = self.by-version."aws-sign2"."0.5.0";
-      "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5";
-      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "har-validator-1.8.0" = self.by-version."har-validator"."1.8.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request"."~2.67.0" =
-    self.by-version."request"."2.67.0";
-  by-spec."request"."~2.72.0" =
-    self.by-version."request"."2.72.0";
-  by-spec."request-progress"."^0.3.1" =
-    self.by-version."request-progress"."0.3.1";
-  by-version."request-progress"."0.3.1" = self.buildNodePackage {
-    name = "request-progress-0.3.1";
-    version = "0.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz";
-      name = "request-progress-0.3.1.tgz";
-      sha1 = "0721c105d8a96ac6b2ce8b2c89ae2d5ecfcf6b3a";
-    };
-    deps = {
-      "throttleit-0.0.2" = self.by-version."throttleit"."0.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."request-progress"."~2.0.1" =
-    self.by-version."request-progress"."2.0.1";
-  by-version."request-progress"."2.0.1" = self.buildNodePackage {
-    name = "request-progress-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz";
-      name = "request-progress-2.0.1.tgz";
-      sha1 = "5d36bb57961c673aa5b788dbc8141fdf23b44e08";
-    };
-    deps = {
-      "throttleit-1.0.0" = self.by-version."throttleit"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."require-dir"."^0.3.0" =
-    self.by-version."require-dir"."0.3.0";
-  by-version."require-dir"."0.3.0" = self.buildNodePackage {
-    name = "require-dir-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/require-dir/-/require-dir-0.3.0.tgz";
-      name = "require-dir-0.3.0.tgz";
-      sha1 = "89f074a85638b07c20a4fb94c93b5db635a64781";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."require-main-filename"."^1.0.1" =
-    self.by-version."require-main-filename"."1.0.1";
-  by-version."require-main-filename"."1.0.1" = self.buildNodePackage {
-    name = "require-main-filename-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz";
-      name = "require-main-filename-1.0.1.tgz";
-      sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."require-uncached"."^1.0.2" =
-    self.by-version."require-uncached"."1.0.2";
-  by-version."require-uncached"."1.0.2" = self.buildNodePackage {
-    name = "require-uncached-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz";
-      name = "require-uncached-1.0.2.tgz";
-      sha1 = "67dad3b733089e77030124678a459589faf6a7ec";
-    };
-    deps = {
-      "caller-path-0.1.0" = self.by-version."caller-path"."0.1.0";
-      "resolve-from-1.0.1" = self.by-version."resolve-from"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."require_optional"."~1.0.0" =
-    self.by-version."require_optional"."1.0.0";
-  by-version."require_optional"."1.0.0" = self.buildNodePackage {
-    name = "require_optional-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/require_optional/-/require_optional-1.0.0.tgz";
-      name = "require_optional-1.0.0.tgz";
-      sha1 = "52a86137a849728eb60a55533617f8f914f59abf";
-    };
-    deps = {
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "resolve-from-2.0.0" = self.by-version."resolve-from"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."requirejs"."^2.1.0" =
-    self.by-version."requirejs"."2.2.0";
-  by-version."requirejs"."2.2.0" = self.buildNodePackage {
-    name = "requirejs-2.2.0";
-    version = "2.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/requirejs/-/requirejs-2.2.0.tgz";
-      name = "requirejs-2.2.0.tgz";
-      sha1 = "0f2b1538af2b8d0a4fffffde5d367aa9cd4cfe84";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."requires-port"."1.x.x" =
-    self.by-version."requires-port"."1.0.0";
-  by-version."requires-port"."1.0.0" = self.buildNodePackage {
-    name = "requires-port-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz";
-      name = "requires-port-1.0.0.tgz";
-      sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."resolve"."1.1.7" =
-    self.by-version."resolve"."1.1.7";
-  by-version."resolve"."1.1.7" = self.buildNodePackage {
-    name = "resolve-1.1.7";
-    version = "1.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz";
-      name = "resolve-1.1.7.tgz";
-      sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."resolve"."1.1.x" =
-    self.by-version."resolve"."1.1.7";
-  by-spec."resolve"."^1.1.3" =
-    self.by-version."resolve"."1.1.7";
-  by-spec."resolve"."^1.1.4" =
-    self.by-version."resolve"."1.1.7";
-  by-spec."resolve"."^1.1.6" =
-    self.by-version."resolve"."1.1.7";
-  by-spec."resolve"."~1.1.0" =
-    self.by-version."resolve"."1.1.7";
-  by-spec."resolve-from"."^1.0.0" =
-    self.by-version."resolve-from"."1.0.1";
-  by-version."resolve-from"."1.0.1" = self.buildNodePackage {
-    name = "resolve-from-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz";
-      name = "resolve-from-1.0.1.tgz";
-      sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."resolve-from"."^2.0.0" =
-    self.by-version."resolve-from"."2.0.0";
-  by-version."resolve-from"."2.0.0" = self.buildNodePackage {
-    name = "resolve-from-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz";
-      name = "resolve-from-2.0.0.tgz";
-      sha1 = "9480ab20e94ffa1d9e80a804c7ea147611966b57";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."response-time"."1.0.0" =
-    self.by-version."response-time"."1.0.0";
-  by-version."response-time"."1.0.0" = self.buildNodePackage {
-    name = "response-time-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/response-time/-/response-time-1.0.0.tgz";
-      name = "response-time-1.0.0.tgz";
-      sha1 = "c2bc8d08f3c359f97eae1d6da86eead175fabdc9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."response-time"."~2.3.1" =
-    self.by-version."response-time"."2.3.1";
-  by-version."response-time"."2.3.1" = self.buildNodePackage {
-    name = "response-time-2.3.1";
-    version = "2.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/response-time/-/response-time-2.3.1.tgz";
-      name = "response-time-2.3.1.tgz";
-      sha1 = "2bde19181de6c81ab95e3207a28d61d965b31797";
-    };
-    deps = {
-      "depd-1.0.1" = self.by-version."depd"."1.0.1";
-      "on-headers-1.0.1" = self.by-version."on-headers"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."restify"."4.0.3" =
-    self.by-version."restify"."4.0.3";
-  by-version."restify"."4.0.3" = self.buildNodePackage {
-    name = "restify-4.0.3";
-    version = "4.0.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/restify/-/restify-4.0.3.tgz";
-      name = "restify-4.0.3.tgz";
-      sha1 = "e1e5b7ad9d4f6aeacd20e28f44a045f26c146dbc";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-      "backoff-2.5.0" = self.by-version."backoff"."2.5.0";
-      "bunyan-1.8.1" = self.by-version."bunyan"."1.8.1";
-      "csv-0.4.6" = self.by-version."csv"."0.4.6";
-      "escape-regexp-component-1.0.2" = self.by-version."escape-regexp-component"."1.0.2";
-      "formidable-1.0.17" = self.by-version."formidable"."1.0.17";
-      "http-signature-0.11.0" = self.by-version."http-signature"."0.11.0";
-      "keep-alive-agent-0.0.1" = self.by-version."keep-alive-agent"."0.0.1";
-      "lru-cache-2.7.3" = self.by-version."lru-cache"."2.7.3";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "negotiator-0.5.3" = self.by-version."negotiator"."0.5.3";
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "qs-3.1.0" = self.by-version."qs"."3.1.0";
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-      "spdy-1.32.5" = self.by-version."spdy"."1.32.5";
-      "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3";
-      "vasync-1.6.3" = self.by-version."vasync"."1.6.3";
-      "verror-1.6.1" = self.by-version."verror"."1.6.1";
-    };
-    optionalDependencies = {
-      "dtrace-provider-0.6.0" = self.by-version."dtrace-provider"."0.6.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."restore-cursor"."^1.0.1" =
-    self.by-version."restore-cursor"."1.0.1";
-  by-version."restore-cursor"."1.0.1" = self.buildNodePackage {
-    name = "restore-cursor-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz";
-      name = "restore-cursor-1.0.1.tgz";
-      sha1 = "34661f46886327fed2991479152252df92daa541";
-    };
-    deps = {
-      "exit-hook-1.1.1" = self.by-version."exit-hook"."1.1.1";
-      "onetime-1.1.0" = self.by-version."onetime"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."resumer"."~0.0.0" =
-    self.by-version."resumer"."0.0.0";
-  by-version."resumer"."0.0.0" = self.buildNodePackage {
-    name = "resumer-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
-      name = "resumer-0.0.0.tgz";
-      sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
-    };
-    deps = {
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ret"."~0.1.6" =
-    self.by-version."ret"."0.1.11";
-  by-version."ret"."0.1.11" = self.buildNodePackage {
-    name = "ret-0.1.11";
-    version = "0.1.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ret/-/ret-0.1.11.tgz";
-      name = "ret-0.1.11.tgz";
-      sha1 = "281bbd5bd0e2a935181a503ec5ca60e3faa9c4a9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rethinkdb"."*" =
-    self.by-version."rethinkdb"."2.3.2";
-  by-version."rethinkdb"."2.3.2" = self.buildNodePackage {
-    name = "rethinkdb-2.3.2";
-    version = "2.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rethinkdb/-/rethinkdb-2.3.2.tgz";
-      name = "rethinkdb-2.3.2.tgz";
-      sha1 = "7486a35df430c193199928860d9f898d80d48892";
-    };
-    deps = {
-      "bluebird-2.10.2" = self.by-version."bluebird"."2.10.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "rethinkdb" = self.by-version."rethinkdb"."2.3.2";
-  by-spec."retry"."0.6.0" =
-    self.by-version."retry"."0.6.0";
-  by-version."retry"."0.6.0" = self.buildNodePackage {
-    name = "retry-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/retry/-/retry-0.6.0.tgz";
-      name = "retry-0.6.0.tgz";
-      sha1 = "1c010713279a6fd1e8def28af0c3ff1871caa537";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."retry"."^0.8.0" =
-    self.by-version."retry"."0.8.0";
-  by-version."retry"."0.8.0" = self.buildNodePackage {
-    name = "retry-0.8.0";
-    version = "0.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz";
-      name = "retry-0.8.0.tgz";
-      sha1 = "2367628dc0edb247b1eab649dc53ac8628ac2d5f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."retry"."~0.6.0" =
-    self.by-version."retry"."0.6.1";
-  by-version."retry"."0.6.1" = self.buildNodePackage {
-    name = "retry-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz";
-      name = "retry-0.6.1.tgz";
-      sha1 = "fdc90eed943fde11b893554b8cc63d0e899ba918";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."retry"."~0.9.0" =
-    self.by-version."retry"."0.9.0";
-  by-version."retry"."0.9.0" = self.buildNodePackage {
-    name = "retry-0.9.0";
-    version = "0.9.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/retry/-/retry-0.9.0.tgz";
-      name = "retry-0.9.0.tgz";
-      sha1 = "6f697e50a0e4ddc8c8f7fb547a9b60dead43678d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."revalidator"."0.1.x" =
-    self.by-version."revalidator"."0.1.8";
-  by-version."revalidator"."0.1.8" = self.buildNodePackage {
-    name = "revalidator-0.1.8";
-    version = "0.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz";
-      name = "revalidator-0.1.8.tgz";
-      sha1 = "fece61bfa0c1b52a206bd6b18198184bdd523a3b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."reverse-http"."^1.2.0" =
-    self.by-version."reverse-http"."1.2.0";
-  by-version."reverse-http"."1.2.0" = self.buildNodePackage {
-    name = "reverse-http-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/reverse-http/-/reverse-http-1.2.0.tgz";
-      name = "reverse-http-1.2.0.tgz";
-      sha1 = "d5bd826506425a3b3eacadf1e0e2c1ac3e289728";
-    };
-    deps = {
-      "consume-http-header-1.0.0" = self.by-version."consume-http-header"."1.0.0";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."right-align"."^0.1.1" =
-    self.by-version."right-align"."0.1.3";
-  by-version."right-align"."0.1.3" = self.buildNodePackage {
-    name = "right-align-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
-      name = "right-align-0.1.3.tgz";
-      sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
-    };
-    deps = {
-      "align-text-0.1.4" = self.by-version."align-text"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rimraf"."1.x.x" =
-    self.by-version."rimraf"."1.0.9";
-  by-version."rimraf"."1.0.9" = self.buildNodePackage {
-    name = "rimraf-1.0.9";
-    version = "1.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rimraf/-/rimraf-1.0.9.tgz";
-      name = "rimraf-1.0.9.tgz";
-      sha1 = "be4801ff76c2ba6f1c50c78e9700eb1d21f239f1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rimraf"."2" =
-    self.by-version."rimraf"."2.5.2";
-  by-version."rimraf"."2.5.2" = self.buildNodePackage {
-    name = "rimraf-2.5.2";
-    version = "2.5.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://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."rimraf"."2.4.3" =
-    self.by-version."rimraf"."2.4.3";
-  by-version."rimraf"."2.4.3" = self.buildNodePackage {
-    name = "rimraf-2.4.3";
-    version = "2.4.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz";
-      name = "rimraf-2.4.3.tgz";
-      sha1 = "e5b51c9437a4c582adb955e9f28cf8d945e272af";
-    };
-    deps = {
-      "glob-5.0.15" = self.by-version."glob"."5.0.15";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rimraf"."2.x.x" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf".">=2.2.6" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."^2.2.5" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."^2.2.8" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."^2.3.3" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."^2.4.2" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."^2.4.3" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."^2.5.2" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."~2" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."~2.1.4" =
-    self.by-version."rimraf"."2.1.4";
-  by-version."rimraf"."2.1.4" = self.buildNodePackage {
-    name = "rimraf-2.1.4";
-    version = "2.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz";
-      name = "rimraf-2.1.4.tgz";
-      sha1 = "5a6eb62eeda068f51ede50f29b3e5cd22f3d9bb2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "graceful-fs-1.2.3" = self.by-version."graceful-fs"."1.2.3";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rimraf"."~2.2.0" =
-    self.by-version."rimraf"."2.2.8";
-  by-version."rimraf"."2.2.8" = self.buildNodePackage {
-    name = "rimraf-2.2.8";
-    version = "2.2.8";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
-      name = "rimraf-2.2.8.tgz";
-      sha1 = "e439be2aaee327321952730f99a8929e4fc50582";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rimraf"."~2.2.2" =
-    self.by-version."rimraf"."2.2.8";
-  by-spec."rimraf"."~2.2.6" =
-    self.by-version."rimraf"."2.2.8";
-  by-spec."rimraf"."~2.2.8" =
-    self.by-version."rimraf"."2.2.8";
-  by-spec."rimraf"."~2.4.0" =
-    self.by-version."rimraf"."2.4.5";
-  by-version."rimraf"."2.4.5" = self.buildNodePackage {
-    name = "rimraf-2.4.5";
-    version = "2.4.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz";
-      name = "rimraf-2.4.5.tgz";
-      sha1 = "ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da";
-    };
-    deps = {
-      "glob-6.0.4" = self.by-version."glob"."6.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rimraf"."~2.5.0" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."~2.5.1" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."rimraf"."~2.5.2" =
-    self.by-version."rimraf"."2.5.2";
-  by-spec."ripemd160"."^1.0.0" =
-    self.by-version."ripemd160"."1.0.1";
-  by-version."ripemd160"."1.0.1" = self.buildNodePackage {
-    name = "ripemd160-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz";
-      name = "ripemd160-1.0.1.tgz";
-      sha1 = "93a4bbd4942bc574b69a8fa57c71de10ecca7d6e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rndm"."1.2.0" =
-    self.by-version."rndm"."1.2.0";
-  by-version."rndm"."1.2.0" = self.buildNodePackage {
-    name = "rndm-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz";
-      name = "rndm-1.2.0.tgz";
-      sha1 = "f33fe9cfb52bbfd520aa18323bc65db110a1b76c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rollup"."*" =
-    self.by-version."rollup"."0.31.2";
-  by-version."rollup"."0.31.2" = self.buildNodePackage {
-    name = "rollup-0.31.2";
-    version = "0.31.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-0.31.2.tgz";
-      name = "rollup-0.31.2.tgz";
-      sha1 = "b479fe0a5faf7c310b8cc963da4dd0eb0a6174d0";
-    };
-    deps = {
-      "source-map-support-0.4.0" = self.by-version."source-map-support"."0.4.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "rollup" = self.by-version."rollup"."0.31.2";
-  by-spec."root"."^2.0.0" =
-    self.by-version."root"."2.0.0";
-  by-version."root"."2.0.0" = self.buildNodePackage {
-    name = "root-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/root/-/root-2.0.0.tgz";
-      name = "root-2.0.0.tgz";
-      sha1 = "5cde3bc4ee9eb314c9dc64f97d9b9787df22e2f7";
-    };
-    deps = {
-      "murl-0.4.1" = self.by-version."murl"."0.4.1";
-      "protein-0.5.0" = self.by-version."protein"."0.5.0";
-      "network-address-0.0.5" = self.by-version."network-address"."0.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."router"."^0.6.2" =
-    self.by-version."router"."0.6.2";
-  by-version."router"."0.6.2" = self.buildNodePackage {
-    name = "router-0.6.2";
-    version = "0.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/router/-/router-0.6.2.tgz";
-      name = "router-0.6.2.tgz";
-      sha1 = "6f04063a2d04eba3303a1bbc6765eef63037cf3d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."router"."~1.1.2" =
-    self.by-version."router"."1.1.4";
-  by-version."router"."1.1.4" = self.buildNodePackage {
-    name = "router-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/router/-/router-1.1.4.tgz";
-      name = "router-1.1.4.tgz";
-      sha1 = "5d449dde9d6e0ad5c3f53369064baf7798834a97";
-    };
-    deps = {
-      "array-flatten-2.0.0" = self.by-version."array-flatten"."2.0.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "methods-1.1.2" = self.by-version."methods"."1.1.2";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "path-to-regexp-0.1.7" = self.by-version."path-to-regexp"."0.1.7";
-      "setprototypeof-1.0.0" = self.by-version."setprototypeof"."1.0.0";
-      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rrecur".">=2.0.0" =
-    self.by-version."rrecur"."2.0.0";
-  by-version."rrecur"."2.0.0" = self.buildNodePackage {
-    name = "rrecur-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rrecur/-/rrecur-2.0.0.tgz";
-      name = "rrecur-2.0.0.tgz";
-      sha1 = "d4bcce601cb0e15be6ee8489a54474a6af97811c";
-    };
-    deps = {
-      "rrule-2.0.1" = self.by-version."rrule"."2.0.1";
-      "moment-2.5.1" = self.by-version."moment"."2.5.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rrule"."~2.0.0" =
-    self.by-version."rrule"."2.0.1";
-  by-version."rrule"."2.0.1" = self.buildNodePackage {
-    name = "rrule-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rrule/-/rrule-2.0.1.tgz";
-      name = "rrule-2.0.1.tgz";
-      sha1 = "360fc68e4391896c4c329f85073d2f5e1f41310b";
-    };
-    deps = {
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rss".">=0.2.1" =
-    self.by-version."rss"."1.2.1";
-  by-version."rss"."1.2.1" = self.buildNodePackage {
-    name = "rss-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rss/-/rss-1.2.1.tgz";
-      name = "rss-1.2.1.tgz";
-      sha1 = "a52671ea35a73ef969b66026b8a2f0653261bc46";
-    };
-    deps = {
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "xml-1.0.1" = self.by-version."xml"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."run-async"."^0.1.0" =
-    self.by-version."run-async"."0.1.0";
-  by-version."run-async"."0.1.0" = self.buildNodePackage {
-    name = "run-async-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz";
-      name = "run-async-0.1.0.tgz";
-      sha1 = "c8ad4a5e110661e402a7d21b530e009f25f8e389";
-    };
-    deps = {
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."run-async"."^2.2.0" =
-    self.by-version."run-async"."2.2.0";
-  by-version."run-async"."2.2.0" = self.buildNodePackage {
-    name = "run-async-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/run-async/-/run-async-2.2.0.tgz";
-      name = "run-async-2.2.0.tgz";
-      sha1 = "8783abd83c7bb86f41ee0602fc82404b3bd6e8b9";
-    };
-    deps = {
-      "is-promise-2.1.0" = self.by-version."is-promise"."2.1.0";
-      "pinkie-promise-2.0.1" = self.by-version."pinkie-promise"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."run-parallel"."^1.0.0" =
-    self.by-version."run-parallel"."1.1.6";
-  by-version."run-parallel"."1.1.6" = self.buildNodePackage {
-    name = "run-parallel-1.1.6";
-    version = "1.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.6.tgz";
-      name = "run-parallel-1.1.6.tgz";
-      sha1 = "29003c9a2163e01e2d2dfc90575f2c6c1d61a039";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."run-parallel"."^1.1.2" =
-    self.by-version."run-parallel"."1.1.6";
-  by-spec."run-series"."^1.0.2" =
-    self.by-version."run-series"."1.1.4";
-  by-version."run-series"."1.1.4" = self.buildNodePackage {
-    name = "run-series-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/run-series/-/run-series-1.1.4.tgz";
-      name = "run-series-1.1.4.tgz";
-      sha1 = "89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rusha"."^0.8.1" =
-    self.by-version."rusha"."0.8.3";
-  by-version."rusha"."0.8.3" = self.buildNodePackage {
-    name = "rusha-0.8.3";
-    version = "0.8.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rusha/-/rusha-0.8.3.tgz";
-      name = "rusha-0.8.3.tgz";
-      sha1 = "63cafec9e626ae09565ab0c4ab2cbc1f2f69b71f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rx"."^2.4.3" =
-    self.by-version."rx"."2.5.3";
-  by-version."rx"."2.5.3" = self.buildNodePackage {
-    name = "rx-2.5.3";
-    version = "2.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz";
-      name = "rx-2.5.3.tgz";
-      sha1 = "21adc7d80f02002af50dae97fd9dbf248755f566";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rx"."^4.1.0" =
-    self.by-version."rx"."4.1.0";
-  by-version."rx"."4.1.0" = self.buildNodePackage {
-    name = "rx-4.1.0";
-    version = "4.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz";
-      name = "rx-4.1.0.tgz";
-      sha1 = "a5f13ff79ef3b740fe30aa803fb09f98805d4782";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."rx-lite"."^3.1.2" =
-    self.by-version."rx-lite"."3.1.2";
-  by-version."rx-lite"."3.1.2" = self.buildNodePackage {
-    name = "rx-lite-3.1.2";
-    version = "3.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz";
-      name = "rx-lite-3.1.2.tgz";
-      sha1 = "19ce502ca572665f3b647b10939f97fd1615f102";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."s3-upload-stream"."~1.0.7" =
-    self.by-version."s3-upload-stream"."1.0.7";
-  by-version."s3-upload-stream"."1.0.7" = self.buildNodePackage {
-    name = "s3-upload-stream-1.0.7";
-    version = "1.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/s3-upload-stream/-/s3-upload-stream-1.0.7.tgz";
-      name = "s3-upload-stream-1.0.7.tgz";
-      sha1 = "e3f80253141c569f105a62aa50ca9b45760e481d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [
-      self.by-version."aws-sdk"."2.3.19"];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."s3http"."*" =
-    self.by-version."s3http"."0.0.5";
-  by-version."s3http"."0.0.5" = self.buildNodePackage {
-    name = "s3http-0.0.5";
-    version = "0.0.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/s3http/-/s3http-0.0.5.tgz";
-      name = "s3http-0.0.5.tgz";
-      sha1 = "c8fa1fffb8258ce68adf75df73f90fbb6f23d198";
-    };
-    deps = {
-      "aws-sdk-1.18.0" = self.by-version."aws-sdk"."1.18.0";
-      "commander-2.0.0" = self.by-version."commander"."2.0.0";
-      "http-auth-2.0.7" = self.by-version."http-auth"."2.0.7";
-      "express-3.4.4" = self.by-version."express"."3.4.4";
-      "everyauth-0.4.5" = self.by-version."everyauth"."0.4.5";
-      "string-1.6.1" = self.by-version."string"."1.6.1";
-      "util-0.4.9" = self.by-version."util"."0.4.9";
-      "crypto-0.0.3" = self.by-version."crypto"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "s3http" = self.by-version."s3http"."0.0.5";
-  by-spec."safe-json-stringify"."~1" =
-    self.by-version."safe-json-stringify"."1.0.3";
-  by-version."safe-json-stringify"."1.0.3" = self.buildNodePackage {
-    name = "safe-json-stringify-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.3.tgz";
-      name = "safe-json-stringify-1.0.3.tgz";
-      sha1 = "3cb6717660a086d07cb5bd9b7a6875bcf67bd05e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."safe-regex"."0.0.1" =
-    self.by-version."safe-regex"."0.0.1";
-  by-version."safe-regex"."0.0.1" = self.buildNodePackage {
-    name = "safe-regex-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/safe-regex/-/safe-regex-0.0.1.tgz";
-      name = "safe-regex-0.0.1.tgz";
-      sha1 = "350ae32b49b7dc75d1cac3a18cb8b375a94ef15c";
-    };
-    deps = {
-      "ret-0.1.11" = self.by-version."ret"."0.1.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."samsam"."1.1.2" =
-    self.by-version."samsam"."1.1.2";
-  by-version."samsam"."1.1.2" = self.buildNodePackage {
-    name = "samsam-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz";
-      name = "samsam-1.1.2.tgz";
-      sha1 = "bec11fdc83a9fda063401210e40176c3024d1567";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."samsam"."~1.1" =
-    self.by-version."samsam"."1.1.3";
-  by-version."samsam"."1.1.3" = self.buildNodePackage {
-    name = "samsam-1.1.3";
-    version = "1.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/samsam/-/samsam-1.1.3.tgz";
-      name = "samsam-1.1.3.tgz";
-      sha1 = "9f5087419b4d091f232571e7fa52e90b0f552621";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sanitize-html"."1.x >=1.4" =
-    self.by-version."sanitize-html"."1.11.4";
-  by-version."sanitize-html"."1.11.4" = self.buildNodePackage {
-    name = "sanitize-html-1.11.4";
-    version = "1.11.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.11.4.tgz";
-      name = "sanitize-html-1.11.4.tgz";
-      sha1 = "286698b6debeb3f9c5206ecd14135d32a9f9c5b9";
-    };
-    deps = {
-      "htmlparser2-3.9.0" = self.by-version."htmlparser2"."3.9.0";
-      "regexp-quote-0.0.0" = self.by-version."regexp-quote"."0.0.0";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sauce-connect-launcher"."^0.13.0" =
-    self.by-version."sauce-connect-launcher"."0.13.0";
-  by-version."sauce-connect-launcher"."0.13.0" = self.buildNodePackage {
-    name = "sauce-connect-launcher-0.13.0";
-    version = "0.13.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-0.13.0.tgz";
-      name = "sauce-connect-launcher-0.13.0.tgz";
-      sha1 = "25d7df9da16a5ed1caa13df424cb57cb0b6d5a22";
-    };
-    deps = {
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-      "async-1.4.0" = self.by-version."async"."1.4.0";
-      "adm-zip-0.4.7" = self.by-version."adm-zip"."0.4.7";
-      "rimraf-2.4.3" = self.by-version."rimraf"."2.4.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."saucelabs"."^1.0.1" =
-    self.by-version."saucelabs"."1.2.0";
-  by-version."saucelabs"."1.2.0" = self.buildNodePackage {
-    name = "saucelabs-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/saucelabs/-/saucelabs-1.2.0.tgz";
-      name = "saucelabs-1.2.0.tgz";
-      sha1 = "5e80476b36da1b42d10f39707e9af2a53b03d88a";
-    };
-    deps = {
-      "https-proxy-agent-1.0.0" = self.by-version."https-proxy-agent"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sax"."0.3.5" =
-    self.by-version."sax"."0.3.5";
-  by-version."sax"."0.3.5" = self.buildNodePackage {
-    name = "sax-0.3.5";
-    version = "0.3.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sax/-/sax-0.3.5.tgz";
-      name = "sax-0.3.5.tgz";
-      sha1 = "88fcfc1f73c0c8bbd5b7c776b6d3f3501eed073d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sax"."0.4.2" =
-    self.by-version."sax"."0.4.2";
-  by-version."sax"."0.4.2" = self.buildNodePackage {
-    name = "sax-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sax/-/sax-0.4.2.tgz";
-      name = "sax-0.4.2.tgz";
-      sha1 = "39f3b601733d6bec97105b242a2a40fd6978ac3c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sax"."0.5.x" =
-    self.by-version."sax"."0.5.8";
-  by-version."sax"."0.5.8" = self.buildNodePackage {
-    name = "sax-0.5.8";
-    version = "0.5.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz";
-      name = "sax-0.5.8.tgz";
-      sha1 = "d472db228eb331c2506b0e8c15524adb939d12c1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sax"."0.6.x" =
-    self.by-version."sax"."0.6.1";
-  by-version."sax"."0.6.1" = self.buildNodePackage {
-    name = "sax-0.6.1";
-    version = "0.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz";
-      name = "sax-0.6.1.tgz";
-      sha1 = "563b19c7c1de892e09bfc4f2fc30e3c27f0952b9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sax"."1.1.5" =
-    self.by-version."sax"."1.1.5";
-  by-version."sax"."1.1.5" = self.buildNodePackage {
-    name = "sax-1.1.5";
-    version = "1.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sax/-/sax-1.1.5.tgz";
-      name = "sax-1.1.5.tgz";
-      sha1 = "1da50a8d00cdecd59405659f5ff85349fe773743";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sax".">=0.1.1" =
-    self.by-version."sax"."1.2.1";
-  by-version."sax"."1.2.1" = self.buildNodePackage {
-    name = "sax-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz";
-      name = "sax-1.2.1.tgz";
-      sha1 = "7b8e656190b228e81a66aea748480d828cd2d37a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sax".">=0.4.2" =
-    self.by-version."sax"."1.2.1";
-  by-spec."sax".">=0.6.0" =
-    self.by-version."sax"."1.2.1";
-  by-spec."sax"."~0.6.0" =
-    self.by-version."sax"."0.6.1";
-  by-spec."sax"."~1.2.1" =
-    self.by-version."sax"."1.2.1";
-  by-spec."scmp"."0.0.3" =
-    self.by-version."scmp"."0.0.3";
-  by-version."scmp"."0.0.3" = self.buildNodePackage {
-    name = "scmp-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz";
-      name = "scmp-0.0.3.tgz";
-      sha1 = "3648df2d7294641e7f78673ffc29681d9bad9073";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."scmp"."~0.0.3" =
-    self.by-version."scmp"."0.0.3";
-  by-spec."scmp"."~1.0.0" =
-    self.by-version."scmp"."1.0.0";
-  by-version."scmp"."1.0.0" = self.buildNodePackage {
-    name = "scmp-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/scmp/-/scmp-1.0.0.tgz";
-      name = "scmp-1.0.0.tgz";
-      sha1 = "a0b272c3fc7292f77115646f00618b0262514e04";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."secure-keys"."^1.0.0" =
-    self.by-version."secure-keys"."1.0.0";
-  by-version."secure-keys"."1.0.0" = self.buildNodePackage {
-    name = "secure-keys-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz";
-      name = "secure-keys-1.0.0.tgz";
-      sha1 = "f0c82d98a3b139a8776a8808050b824431087fca";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."selenium-webdriver"."*" =
-    self.by-version."selenium-webdriver"."2.53.2";
-  by-version."selenium-webdriver"."2.53.2" = self.buildNodePackage {
-    name = "selenium-webdriver-2.53.2";
-    version = "2.53.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.2.tgz";
-      name = "selenium-webdriver-2.53.2.tgz";
-      sha1 = "7d45f0b44c4d90d9c94b136e2dcaa0a70d54d67b";
-    };
-    deps = {
-      "adm-zip-0.4.4" = self.by-version."adm-zip"."0.4.4";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "tmp-0.0.24" = self.by-version."tmp"."0.0.24";
-      "ws-1.1.0" = self.by-version."ws"."1.1.0";
-      "xml2js-0.4.4" = self.by-version."xml2js"."0.4.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "selenium-webdriver" = self.by-version."selenium-webdriver"."2.53.2";
-  by-spec."semver"."*" =
-    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 = "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz";
-      name = "semver-5.1.0.tgz";
-      sha1 = "85f2cf8550465c4df000cf7d86f6b054106ab9e5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "semver" = self.by-version."semver"."5.1.0";
-  by-spec."semver"."1.1.0" =
-    self.by-version."semver"."1.1.0";
-  by-version."semver"."1.1.0" = self.buildNodePackage {
-    name = "semver-1.1.0";
-    version = "1.1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-1.1.0.tgz";
-      name = "semver-1.1.0.tgz";
-      sha1 = "da9b9c837e31550a7c928622bc2381de7dd7a53e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."semver"."2" =
-    self.by-version."semver"."2.3.2";
-  by-version."semver"."2.3.2" = self.buildNodePackage {
-    name = "semver-2.3.2";
-    version = "2.3.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz";
-      name = "semver-2.3.2.tgz";
-      sha1 = "b9848f25d6cf36333073ec9ef8856d42f1233e52";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."semver"."2 >=2.2.1 || 3.x || 4 || 5" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."2 || 3 || 4" =
-    self.by-version."semver"."4.3.6";
-  by-version."semver"."4.3.6" = self.buildNodePackage {
-    name = "semver-4.3.6";
-    version = "4.3.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://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"."2 || 3 || 4 || 5" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."2.x || 3.x || 4 || 5" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."4 || 5" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."5.0.1" =
-    self.by-version."semver"."5.0.1";
-  by-version."semver"."5.0.1" = self.buildNodePackage {
-    name = "semver-5.0.1";
-    version = "5.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-5.0.1.tgz";
-      name = "semver-5.0.1.tgz";
-      sha1 = "9fb3f4004f900d83c47968fe42f7583e05832cc9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."semver"."5.0.3" =
-    self.by-version."semver"."5.0.3";
-  by-version."semver"."5.0.3" = self.buildNodePackage {
-    name = "semver-5.0.3";
-    version = "5.0.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz";
-      name = "semver-5.0.3.tgz";
-      sha1 = "77466de589cd5d3c95f138aa78bc569a3cb5d27a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."semver"."5.1.0" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver".">=2.2.1 <5.0.0-0" =
-    self.by-version."semver"."4.3.6";
-  by-spec."semver".">=5.1.0 <6" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."^2.3.0 || 3.x || 4 || 5" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."^4.1.0" =
-    self.by-version."semver"."4.3.6";
-  by-spec."semver"."^4.3.3" =
-    self.by-version."semver"."4.3.6";
-  by-spec."semver"."^4.3.4" =
-    self.by-version."semver"."4.3.6";
-  by-spec."semver"."^4.3.x" =
-    self.by-version."semver"."4.3.6";
-  by-spec."semver"."^5.0.1" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."^5.0.3" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."^5.1.0" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver"."~1.1.0" =
-    self.by-version."semver"."1.1.4";
-  by-version."semver"."1.1.4" = self.buildNodePackage {
-    name = "semver-1.1.4";
-    version = "1.1.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-1.1.4.tgz";
-      name = "semver-1.1.4.tgz";
-      sha1 = "2e5a4e72bab03472cc97f72753b4508912ef5540";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."semver"."~2.0.5" =
-    self.by-version."semver"."2.0.11";
-  by-version."semver"."2.0.11" = self.buildNodePackage {
-    name = "semver-2.0.11";
-    version = "2.0.11";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-2.0.11.tgz";
-      name = "semver-2.0.11.tgz";
-      sha1 = "f51f07d03fa5af79beb537fc067a7e141786cced";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."semver"."~2.3.1" =
-    self.by-version."semver"."2.3.2";
-  by-spec."semver"."~4.3.0" =
-    self.by-version."semver"."4.3.6";
-  by-spec."semver"."~4.3.3" =
-    self.by-version."semver"."4.3.6";
-  by-spec."semver"."~5.0.1" =
-    self.by-version."semver"."5.0.3";
-  by-spec."semver"."~5.1.0" =
-    self.by-version."semver"."5.1.0";
-  by-spec."semver-diff"."^2.0.0" =
-    self.by-version."semver-diff"."2.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 = "https://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-spec."semver-utils"."^1.1.1" =
-    self.by-version."semver-utils"."1.1.1";
-  by-version."semver-utils"."1.1.1" = self.buildNodePackage {
-    name = "semver-utils-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/semver-utils/-/semver-utils-1.1.1.tgz";
-      name = "semver-utils-1.1.1.tgz";
-      sha1 = "27d92fec34d27cfa42707d3b40d025ae9855f2df";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."*" =
-    self.by-version."send"."0.14.1";
-  by-version."send"."0.14.1" = self.buildNodePackage {
-    name = "send-0.14.1";
-    version = "0.14.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.14.1.tgz";
-      name = "send-0.14.1.tgz";
-      sha1 = "a954984325392f51532a7760760e459598c89f7a";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "destroy-1.0.4" = self.by-version."destroy"."1.0.4";
-      "encodeurl-1.0.1" = self.by-version."encodeurl"."1.0.1";
-      "escape-html-1.0.3" = self.by-version."escape-html"."1.0.3";
-      "etag-1.7.0" = self.by-version."etag"."1.7.0";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "http-errors-1.5.0" = self.by-version."http-errors"."1.5.0";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "range-parser-1.2.0" = self.by-version."range-parser"."1.2.0";
-      "statuses-1.3.0" = self.by-version."statuses"."1.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."0.0.3" =
-    self.by-version."send"."0.0.3";
-  by-version."send"."0.0.3" = self.buildNodePackage {
-    name = "send-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.0.3.tgz";
-      name = "send-0.0.3.tgz";
-      sha1 = "4d5f843edf9d65dac31c8a5d2672c179ecb67184";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "mime-1.2.6" = self.by-version."mime"."1.2.6";
-      "fresh-0.1.0" = self.by-version."fresh"."0.1.0";
-      "range-parser-0.0.4" = self.by-version."range-parser"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."0.1.0" =
-    self.by-version."send"."0.1.0";
-  by-version."send"."0.1.0" = self.buildNodePackage {
-    name = "send-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.1.0.tgz";
-      name = "send-0.1.0.tgz";
-      sha1 = "cfb08ebd3cec9b7fc1a37d9ff9e875a971cf4640";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "mime-1.2.6" = self.by-version."mime"."1.2.6";
-      "fresh-0.1.0" = self.by-version."fresh"."0.1.0";
-      "range-parser-0.0.4" = self.by-version."range-parser"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."0.1.4" =
-    self.by-version."send"."0.1.4";
-  by-version."send"."0.1.4" = self.buildNodePackage {
-    name = "send-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.1.4.tgz";
-      name = "send-0.1.4.tgz";
-      sha1 = "be70d8d1be01de61821af13780b50345a4f71abd";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "fresh-0.2.0" = self.by-version."fresh"."0.2.0";
-      "range-parser-0.0.4" = self.by-version."range-parser"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."0.13.0" =
-    self.by-version."send"."0.13.0";
-  by-version."send"."0.13.0" = self.buildNodePackage {
-    name = "send-0.13.0";
-    version = "0.13.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.13.0.tgz";
-      name = "send-0.13.0.tgz";
-      sha1 = "518f921aeb0560aec7dcab2990b14cf6f3cce5de";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.0.1" = self.by-version."depd"."1.0.1";
-      "destroy-1.0.3" = self.by-version."destroy"."1.0.3";
-      "escape-html-1.0.2" = self.by-version."escape-html"."1.0.2";
-      "etag-1.7.0" = self.by-version."etag"."1.7.0";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-      "statuses-1.2.1" = self.by-version."statuses"."1.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."0.13.1" =
-    self.by-version."send"."0.13.1";
-  by-version."send"."0.13.1" = self.buildNodePackage {
-    name = "send-0.13.1";
-    version = "0.13.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.13.1.tgz";
-      name = "send-0.13.1.tgz";
-      sha1 = "a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "destroy-1.0.4" = self.by-version."destroy"."1.0.4";
-      "escape-html-1.0.3" = self.by-version."escape-html"."1.0.3";
-      "etag-1.7.0" = self.by-version."etag"."1.7.0";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-      "statuses-1.2.1" = self.by-version."statuses"."1.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."0.13.2" =
-    self.by-version."send"."0.13.2";
-  by-version."send"."0.13.2" = self.buildNodePackage {
-    name = "send-0.13.2";
-    version = "0.13.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.13.2.tgz";
-      name = "send-0.13.2.tgz";
-      sha1 = "765e7607c8055452bba6f0b052595350986036de";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "depd-1.1.0" = self.by-version."depd"."1.1.0";
-      "destroy-1.0.4" = self.by-version."destroy"."1.0.4";
-      "escape-html-1.0.3" = self.by-version."escape-html"."1.0.3";
-      "etag-1.7.0" = self.by-version."etag"."1.7.0";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-      "on-finished-2.3.0" = self.by-version."on-finished"."2.3.0";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-      "statuses-1.2.1" = self.by-version."statuses"."1.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."0.3.0" =
-    self.by-version."send"."0.3.0";
-  by-version."send"."0.3.0" = self.buildNodePackage {
-    name = "send-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.3.0.tgz";
-      name = "send-0.3.0.tgz";
-      sha1 = "9718324634806fc75bc4f8f5e51f57d9d66606e7";
-    };
-    deps = {
-      "buffer-crc32-0.2.1" = self.by-version."buffer-crc32"."0.2.1";
-      "debug-0.8.0" = self.by-version."debug"."0.8.0";
-      "fresh-0.2.4" = self.by-version."fresh"."0.2.4";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."0.6.0" =
-    self.by-version."send"."0.6.0";
-  by-version."send"."0.6.0" = self.buildNodePackage {
-    name = "send-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.6.0.tgz";
-      name = "send-0.6.0.tgz";
-      sha1 = "a59da9265db7c35141e1079cf1f368ee0d59b3ab";
-    };
-    deps = {
-      "debug-1.0.3" = self.by-version."debug"."1.0.3";
-      "depd-0.3.0" = self.by-version."depd"."0.3.0";
-      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
-      "finished-1.2.2" = self.by-version."finished"."1.2.2";
-      "fresh-0.2.2" = self.by-version."fresh"."0.2.2";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "ms-0.6.2" = self.by-version."ms"."0.6.2";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."send"."^0.9.2" =
-    self.by-version."send"."0.9.3";
-  by-version."send"."0.9.3" = self.buildNodePackage {
-    name = "send-0.9.3";
-    version = "0.9.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/send/-/send-0.9.3.tgz";
-      name = "send-0.9.3.tgz";
-      sha1 = "b43a7414cd089b7fbec9b755246f7c37b7b85cc0";
-    };
-    deps = {
-      "debug-2.0.0" = self.by-version."debug"."2.0.0";
-      "depd-0.4.5" = self.by-version."depd"."0.4.5";
-      "destroy-1.0.3" = self.by-version."destroy"."1.0.3";
-      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
-      "etag-1.4.0" = self.by-version."etag"."1.4.0";
-      "fresh-0.2.4" = self.by-version."fresh"."0.2.4";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "ms-0.6.2" = self.by-version."ms"."0.6.2";
-      "on-finished-2.1.0" = self.by-version."on-finished"."2.1.0";
-      "range-parser-1.0.3" = self.by-version."range-parser"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sentiment"."1.0.6" =
-    self.by-version."sentiment"."1.0.6";
-  by-version."sentiment"."1.0.6" = self.buildNodePackage {
-    name = "sentiment-1.0.6";
-    version = "1.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sentiment/-/sentiment-1.0.6.tgz";
-      name = "sentiment-1.0.6.tgz";
-      sha1 = "f6096c6271f020f490d58b54a8afd598db8acbb1";
-    };
-    deps = {
-      "lodash.assign-4.0.1" = self.by-version."lodash.assign"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sequencify"."~0.0.7" =
-    self.by-version."sequencify"."0.0.7";
-  by-version."sequencify"."0.0.7" = self.buildNodePackage {
-    name = "sequencify-0.0.7";
-    version = "0.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz";
-      name = "sequencify-0.0.7.tgz";
-      sha1 = "90cff19d02e07027fd767f5ead3e7b95d1e7380c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."serialport"."2.0.*" =
-    self.by-version."serialport"."2.0.6";
-  by-version."serialport"."2.0.6" = self.buildNodePackage {
-    name = "serialport-2.0.6";
-    version = "2.0.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/serialport/-/serialport-2.0.6.tgz";
-      name = "serialport-2.0.6.tgz";
-      sha1 = "c344e9449dcd3da0f2d0256c337d0ff384af1ea8";
-    };
-    deps = {
-      "async-0.9.0" = self.by-version."async"."0.9.0";
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "nan-2.0.9" = self.by-version."nan"."2.0.9";
-      "node-pre-gyp-0.6.28" = self.by-version."node-pre-gyp"."0.6.28";
-      "node-pre-gyp-github-1.3.1" = self.by-version."node-pre-gyp-github"."1.3.1";
-      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
-      "sf-0.1.7" = self.by-version."sf"."0.1.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."serve-favicon"."^2.1.1" =
-    self.by-version."serve-favicon"."2.3.0";
-  by-version."serve-favicon"."2.3.0" = self.buildNodePackage {
-    name = "serve-favicon-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.0.tgz";
-      name = "serve-favicon-2.3.0.tgz";
-      sha1 = "aed36cc6834069a6f189cc7222c6a1a811dc5b39";
-    };
-    deps = {
-      "etag-1.7.0" = self.by-version."etag"."1.7.0";
-      "fresh-0.3.0" = self.by-version."fresh"."0.3.0";
-      "ms-0.7.1" = self.by-version."ms"."0.7.1";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."serve-favicon"."~2.3.0" =
-    self.by-version."serve-favicon"."2.3.0";
-  by-spec."serve-index"."1.0.1" =
-    self.by-version."serve-index"."1.0.1";
-  by-version."serve-index"."1.0.1" = self.buildNodePackage {
-    name = "serve-index-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/serve-index/-/serve-index-1.0.1.tgz";
-      name = "serve-index-1.0.1.tgz";
-      sha1 = "2782ee8ede6cccaae54957962c4715e8ce1921a6";
-    };
-    deps = {
-      "batch-0.5.0" = self.by-version."batch"."0.5.0";
-      "negotiator-0.4.2" = self.by-version."negotiator"."0.4.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."serve-index"."~1.7.2" =
-    self.by-version."serve-index"."1.7.3";
-  by-version."serve-index"."1.7.3" = self.buildNodePackage {
-    name = "serve-index-1.7.3";
-    version = "1.7.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz";
-      name = "serve-index-1.7.3.tgz";
-      sha1 = "7a057fc6ee28dc63f64566e5fa57b111a86aecd2";
-    };
-    deps = {
-      "accepts-1.2.13" = self.by-version."accepts"."1.2.13";
-      "batch-0.5.3" = self.by-version."batch"."0.5.3";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "escape-html-1.0.3" = self.by-version."escape-html"."1.0.3";
-      "http-errors-1.3.1" = self.by-version."http-errors"."1.3.1";
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."serve-static"."1.1.0" =
-    self.by-version."serve-static"."1.1.0";
-  by-version."serve-static"."1.1.0" = self.buildNodePackage {
-    name = "serve-static-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/serve-static/-/serve-static-1.1.0.tgz";
-      name = "serve-static-1.1.0.tgz";
-      sha1 = "454dfa05bb3ddd4e701a8915b83a278aa91c5643";
-    };
-    deps = {
-      "parseurl-1.0.1" = self.by-version."parseurl"."1.0.1";
-      "send-0.3.0" = self.by-version."send"."0.3.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."serve-static"."~1.10.0" =
-    self.by-version."serve-static"."1.10.3";
-  by-version."serve-static"."1.10.3" = self.buildNodePackage {
-    name = "serve-static-1.10.3";
-    version = "1.10.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz";
-      name = "serve-static-1.10.3.tgz";
-      sha1 = "ce5a6ecd3101fed5ec09827dac22a9c29bfb0535";
-    };
-    deps = {
-      "escape-html-1.0.3" = self.by-version."escape-html"."1.0.3";
-      "parseurl-1.3.1" = self.by-version."parseurl"."1.3.1";
-      "send-0.13.2" = self.by-version."send"."0.13.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."serve-static"."~1.10.2" =
-    self.by-version."serve-static"."1.10.3";
-  by-spec."serve-static"."~1.3.2" =
-    self.by-version."serve-static"."1.3.2";
-  by-version."serve-static"."1.3.2" = self.buildNodePackage {
-    name = "serve-static-1.3.2";
-    version = "1.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/serve-static/-/serve-static-1.3.2.tgz";
-      name = "serve-static-1.3.2.tgz";
-      sha1 = "d904a6cbf55f511c78138f6f45ee6e69d9d105ca";
-    };
-    deps = {
-      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
-      "parseurl-1.1.3" = self.by-version."parseurl"."1.1.3";
-      "send-0.6.0" = self.by-version."send"."0.6.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."server-destroy"."^1.0.1" =
-    self.by-version."server-destroy"."1.0.1";
-  by-version."server-destroy"."1.0.1" = self.buildNodePackage {
-    name = "server-destroy-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz";
-      name = "server-destroy-1.0.1.tgz";
-      sha1 = "f13bf928e42b9c3e79383e61cc3998b5d14e6cdd";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."set-blocking"."^1.0.0" =
-    self.by-version."set-blocking"."1.0.0";
-  by-version."set-blocking"."1.0.0" = self.buildNodePackage {
-    name = "set-blocking-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/set-blocking/-/set-blocking-1.0.0.tgz";
-      name = "set-blocking-1.0.0.tgz";
-      sha1 = "cd5e5d938048df1ac92dfe92e1f16add656f5ec5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."set-blocking"."~2.0.0" =
-    self.by-version."set-blocking"."2.0.0";
-  by-version."set-blocking"."2.0.0" = self.buildNodePackage {
-    name = "set-blocking-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
-      name = "set-blocking-2.0.0.tgz";
-      sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."setimmediate"."1.0.1" =
-    self.by-version."setimmediate"."1.0.1";
-  by-version."setimmediate"."1.0.1" = self.buildNodePackage {
-    name = "setimmediate-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.1.tgz";
-      name = "setimmediate-1.0.1.tgz";
-      sha1 = "a9ca56ccbd6a4c3334855f060abcdece5c42ebb7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."setprototypeof"."1.0.0" =
-    self.by-version."setprototypeof"."1.0.0";
-  by-version."setprototypeof"."1.0.0" = self.buildNodePackage {
-    name = "setprototypeof-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.0.tgz";
-      name = "setprototypeof-1.0.0.tgz";
-      sha1 = "d5fafca01e1174d0079bd1bf881f09c8a339794c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."setprototypeof"."1.0.1" =
-    self.by-version."setprototypeof"."1.0.1";
-  by-version."setprototypeof"."1.0.1" = self.buildNodePackage {
-    name = "setprototypeof-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz";
-      name = "setprototypeof-1.0.1.tgz";
-      sha1 = "52009b27888c4dc48f591949c0a8275834c1ca7e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sf"."0.1.7" =
-    self.by-version."sf"."0.1.7";
-  by-version."sf"."0.1.7" = self.buildNodePackage {
-    name = "sf-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sf/-/sf-0.1.7.tgz";
-      name = "sf-0.1.7.tgz";
-      sha1 = "806ed032d7225c7fb6394b0bdbfe1ea936fe6d74";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sha"."~2.0.1" =
-    self.by-version."sha"."2.0.1";
-  by-version."sha"."2.0.1" = self.buildNodePackage {
-    name = "sha-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz";
-      name = "sha-2.0.1.tgz";
-      sha1 = "6030822fbd2c9823949f8f72ed6411ee5cf25aae";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sha.js"."^2.3.6" =
-    self.by-version."sha.js"."2.4.5";
-  by-version."sha.js"."2.4.5" = self.buildNodePackage {
-    name = "sha.js-2.4.5";
-    version = "2.4.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.5.tgz";
-      name = "sha.js-2.4.5.tgz";
-      sha1 = "27d171efcc82a118b99639ff581660242b506e7c";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sha.js"."~2.4.4" =
-    self.by-version."sha.js"."2.4.5";
-  by-spec."shallow-copy"."0.0.1" =
-    self.by-version."shallow-copy"."0.0.1";
-  by-version."shallow-copy"."0.0.1" = self.buildNodePackage {
-    name = "shallow-copy-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz";
-      name = "shallow-copy-0.0.1.tgz";
-      sha1 = "415f42702d73d810330292cc5ee86eae1a11a170";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."shasum"."^1.0.0" =
-    self.by-version."shasum"."1.0.2";
-  by-version."shasum"."1.0.2" = self.buildNodePackage {
-    name = "shasum-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz";
-      name = "shasum-1.0.2.tgz";
-      sha1 = "e7012310d8f417f4deb5712150e5678b87ae565f";
-    };
-    deps = {
-      "json-stable-stringify-0.0.1" = self.by-version."json-stable-stringify"."0.0.1";
-      "sha.js-2.4.5" = self.by-version."sha.js"."2.4.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."shell-quote"."^1.4.3" =
-    self.by-version."shell-quote"."1.6.0";
-  by-version."shell-quote"."1.6.0" = self.buildNodePackage {
-    name = "shell-quote-1.6.0";
-    version = "1.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.0.tgz";
-      name = "shell-quote-1.6.0.tgz";
-      sha1 = "c8906761e1730d1ef771c82df5423d595c1bb31d";
-    };
-    deps = {
-      "jsonify-0.0.0" = self.by-version."jsonify"."0.0.0";
-      "array-filter-0.0.1" = self.by-version."array-filter"."0.0.1";
-      "array-reduce-0.0.0" = self.by-version."array-reduce"."0.0.0";
-      "array-map-0.0.0" = self.by-version."array-map"."0.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."shell-quote"."~0.0.1" =
-    self.by-version."shell-quote"."0.0.1";
-  by-version."shell-quote"."0.0.1" = self.buildNodePackage {
-    name = "shell-quote-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz";
-      name = "shell-quote-0.0.1.tgz";
-      sha1 = "1a41196f3c0333c482323593d6886ecf153dd986";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."shelljs"."*" =
-    self.by-version."shelljs"."0.7.0";
-  by-version."shelljs"."0.7.0" = self.buildNodePackage {
-    name = "shelljs-0.7.0";
-    version = "0.7.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shelljs/-/shelljs-0.7.0.tgz";
-      name = "shelljs-0.7.0.tgz";
-      sha1 = "3f6f2e4965cec565f65ff3861d644f879281a576";
-    };
-    deps = {
-      "glob-7.0.3" = self.by-version."glob"."7.0.3";
-      "interpret-1.0.1" = self.by-version."interpret"."1.0.1";
-      "rechoir-0.6.2" = self.by-version."rechoir"."0.6.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "shelljs" = self.by-version."shelljs"."0.7.0";
-  by-spec."shelljs"."0.3.0" =
-    self.by-version."shelljs"."0.3.0";
-  by-version."shelljs"."0.3.0" = self.buildNodePackage {
-    name = "shelljs-0.3.0";
-    version = "0.3.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz";
-      name = "shelljs-0.3.0.tgz";
-      sha1 = "3596e6307a781544f591f37da618360f31db57b1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."shelljs"."0.3.x" =
-    self.by-version."shelljs"."0.3.0";
-  by-spec."shelljs"."^0.5.3" =
-    self.by-version."shelljs"."0.5.3";
-  by-version."shelljs"."0.5.3" = self.buildNodePackage {
-    name = "shelljs-0.5.3";
-    version = "0.5.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz";
-      name = "shelljs-0.5.3.tgz";
-      sha1 = "c54982b996c76ef0c1e6b59fbdc5825f5b713113";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."shelljs"."^0.6.0" =
-    self.by-version."shelljs"."0.6.0";
-  by-version."shelljs"."0.6.0" = self.buildNodePackage {
-    name = "shelljs-0.6.0";
-    version = "0.6.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shelljs/-/shelljs-0.6.0.tgz";
-      name = "shelljs-0.6.0.tgz";
-      sha1 = "ce1ed837b4b0e55b5ec3dab84251ab9dbdc0c7ec";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."shelljs"."^0.7.0" =
-    self.by-version."shelljs"."0.7.0";
-  by-spec."should"."*" =
-    self.by-version."should"."9.0.2";
-  by-version."should"."9.0.2" = self.buildNodePackage {
-    name = "should-9.0.2";
-    version = "9.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/should/-/should-9.0.2.tgz";
-      name = "should-9.0.2.tgz";
-      sha1 = "b550f691e71c66788e0e96e9f721d58be6920e5a";
-    };
-    deps = {
-      "should-equal-1.0.0" = self.by-version."should-equal"."1.0.0";
-      "should-format-1.0.0" = self.by-version."should-format"."1.0.0";
-      "should-type-1.0.2" = self.by-version."should-type"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "should" = self.by-version."should"."9.0.2";
-  by-spec."should-equal"."^1.0.0" =
-    self.by-version."should-equal"."1.0.0";
-  by-version."should-equal"."1.0.0" = self.buildNodePackage {
-    name = "should-equal-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/should-equal/-/should-equal-1.0.0.tgz";
-      name = "should-equal-1.0.0.tgz";
-      sha1 = "5268aa4fa27514f5f9032d6ef8ab70cef8fcadaf";
-    };
-    deps = {
-      "should-type-1.0.2" = self.by-version."should-type"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."should-format"."^1.0.0" =
-    self.by-version."should-format"."1.0.0";
-  by-version."should-format"."1.0.0" = self.buildNodePackage {
-    name = "should-format-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/should-format/-/should-format-1.0.0.tgz";
-      name = "should-format-1.0.0.tgz";
-      sha1 = "0a30cdab4a3bd1427bbccb8b738567bda7290d78";
-    };
-    deps = {
-      "should-type-1.0.2" = self.by-version."should-type"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."should-type"."^1.0.0" =
-    self.by-version."should-type"."1.0.2";
-  by-version."should-type"."1.0.2" = self.buildNodePackage {
-    name = "should-type-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/should-type/-/should-type-1.0.2.tgz";
-      name = "should-type-1.0.2.tgz";
-      sha1 = "ba4519fbe621b780527ef3af791261d41022cb8e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."shush"."^1.0.0" =
-    self.by-version."shush"."1.0.0";
-  by-version."shush"."1.0.0" = self.buildNodePackage {
-    name = "shush-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/shush/-/shush-1.0.0.tgz";
-      name = "shush-1.0.0.tgz";
-      sha1 = "c27415a9e458f2fed39b27cf8eb37c003782b431";
-    };
-    deps = {
-      "strip-json-comments-0.1.3" = self.by-version."strip-json-comments"."0.1.3";
-      "caller-0.0.1" = self.by-version."caller"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sigmund"."~1.0.0" =
-    self.by-version."sigmund"."1.0.1";
-  by-version."sigmund"."1.0.1" = self.buildNodePackage {
-    name = "sigmund-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://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 = "https://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."signals"."<2.0" =
-    self.by-version."signals"."1.0.0";
-  by-version."signals"."1.0.0" = self.buildNodePackage {
-    name = "signals-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/signals/-/signals-1.0.0.tgz";
-      name = "signals-1.0.0.tgz";
-      sha1 = "65f0c1599352b35372ecaae5a250e6107376ed69";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."signals".">0.7 <2.0" =
-    self.by-version."signals"."1.0.0";
-  by-spec."signals"."~1.0.0" =
-    self.by-version."signals"."1.0.0";
-  by-spec."simple-fmt"."~0.1.0" =
-    self.by-version."simple-fmt"."0.1.0";
-  by-version."simple-fmt"."0.1.0" = self.buildNodePackage {
-    name = "simple-fmt-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz";
-      name = "simple-fmt-0.1.0.tgz";
-      sha1 = "191bf566a59e6530482cb25ab53b4a8dc85c3a6b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simple-get"."^1.3.0" =
-    self.by-version."simple-get"."1.4.3";
-  by-version."simple-get"."1.4.3" = self.buildNodePackage {
-    name = "simple-get-1.4.3";
-    version = "1.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz";
-      name = "simple-get-1.4.3.tgz";
-      sha1 = "e9755eda407e96da40c5e5158c9ea37b33becbeb";
-    };
-    deps = {
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "unzip-response-1.0.0" = self.by-version."unzip-response"."1.0.0";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simple-get"."^1.3.1" =
-    self.by-version."simple-get"."1.4.3";
-  by-spec."simple-get"."^2.0.0" =
-    self.by-version."simple-get"."2.2.0";
-  by-version."simple-get"."2.2.0" = self.buildNodePackage {
-    name = "simple-get-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simple-get/-/simple-get-2.2.0.tgz";
-      name = "simple-get-2.2.0.tgz";
-      sha1 = "b19f51209f00455fe7aa4d781fac3b07c51782d8";
-    };
-    deps = {
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "unzip-response-1.0.0" = self.by-version."unzip-response"."1.0.0";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simple-is"."~0.2.0" =
-    self.by-version."simple-is"."0.2.0";
-  by-version."simple-is"."0.2.0" = self.buildNodePackage {
-    name = "simple-is-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz";
-      name = "simple-is-0.2.0.tgz";
-      sha1 = "2abb75aade39deb5cc815ce10e6191164850baf0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simple-peer"."^6.0.0" =
-    self.by-version."simple-peer"."6.0.4";
-  by-version."simple-peer"."6.0.4" = self.buildNodePackage {
-    name = "simple-peer-6.0.4";
-    version = "6.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simple-peer/-/simple-peer-6.0.4.tgz";
-      name = "simple-peer-6.0.4.tgz";
-      sha1 = "f0b72ae756cc3f87e3af964c23fe621e35785ac8";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "get-browser-rtc-1.0.2" = self.by-version."get-browser-rtc"."1.0.2";
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simple-plist"."0.1.4" =
-    self.by-version."simple-plist"."0.1.4";
-  by-version."simple-plist"."0.1.4" = self.buildNodePackage {
-    name = "simple-plist-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simple-plist/-/simple-plist-0.1.4.tgz";
-      name = "simple-plist-0.1.4.tgz";
-      sha1 = "10eb51b47e33c556eb8ec46d5ee64d64e717db5d";
-    };
-    deps = {
-      "plist-1.2.0" = self.by-version."plist"."1.2.0";
-      "bplist-parser-0.0.6" = self.by-version."bplist-parser"."0.0.6";
-      "bplist-creator-0.0.4" = self.by-version."bplist-creator"."0.0.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simple-sha1"."^2.0.0" =
-    self.by-version."simple-sha1"."2.0.8";
-  by-version."simple-sha1"."2.0.8" = self.buildNodePackage {
-    name = "simple-sha1-2.0.8";
-    version = "2.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simple-sha1/-/simple-sha1-2.0.8.tgz";
-      name = "simple-sha1-2.0.8.tgz";
-      sha1 = "dabb4b17b9f06a4bbf0174b3b4b3a2cdd8e2785f";
-    };
-    deps = {
-      "rusha-0.8.3" = self.by-version."rusha"."0.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simple-websocket"."^4.0.0" =
-    self.by-version."simple-websocket"."4.1.0";
-  by-version."simple-websocket"."4.1.0" = self.buildNodePackage {
-    name = "simple-websocket-4.1.0";
-    version = "4.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simple-websocket/-/simple-websocket-4.1.0.tgz";
-      name = "simple-websocket-4.1.0.tgz";
-      sha1 = "2b1e887e7737ae1452458ead0d0a79722901877f";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "ws-1.1.0" = self.by-version."ws"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simplediff"."~0.1.1" =
-    self.by-version."simplediff"."0.1.1";
-  by-version."simplediff"."0.1.1" = self.buildNodePackage {
-    name = "simplediff-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simplediff/-/simplediff-0.1.1.tgz";
-      name = "simplediff-0.1.1.tgz";
-      sha1 = "b0caeeb093223370033c6c3aa1130dc86c6a087c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simplesmtp".">= 0.1.22" =
-    self.by-version."simplesmtp"."0.3.35";
-  by-version."simplesmtp"."0.3.35" = self.buildNodePackage {
-    name = "simplesmtp-0.3.35";
-    version = "0.3.35";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.35.tgz";
-      name = "simplesmtp-0.3.35.tgz";
-      sha1 = "017b1eb8b26317ac36d2a2a8a932631880736a03";
-    };
-    deps = {
-      "rai-0.1.12" = self.by-version."rai"."0.1.12";
-      "xoauth2-0.1.8" = self.by-version."xoauth2"."0.1.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."simplesmtp"."~0.2 || ~0.3.30" =
-    self.by-version."simplesmtp"."0.3.35";
-  by-spec."simplesmtp"."~0.3.30" =
-    self.by-version."simplesmtp"."0.3.35";
-  by-spec."single-line-log"."^0.4.1" =
-    self.by-version."single-line-log"."0.4.1";
-  by-version."single-line-log"."0.4.1" = self.buildNodePackage {
-    name = "single-line-log-0.4.1";
-    version = "0.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/single-line-log/-/single-line-log-0.4.1.tgz";
-      name = "single-line-log-0.4.1.tgz";
-      sha1 = "87a55649f749d783ec0dcd804e8140d9873c7cee";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."single-line-log"."^1.0.1" =
-    self.by-version."single-line-log"."1.1.1";
-  by-version."single-line-log"."1.1.1" = self.buildNodePackage {
-    name = "single-line-log-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.1.tgz";
-      name = "single-line-log-1.1.1.tgz";
-      sha1 = "f87743dfdb5519b5fe1dda36edd68f35e3cb5de6";
-    };
-    deps = {
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sinon"."*" =
-    self.by-version."sinon"."2.0.0-pre";
-  by-version."sinon"."2.0.0-pre" = self.buildNodePackage {
-    name = "sinon-2.0.0-pre";
-    version = "2.0.0-pre";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sinon/-/sinon-2.0.0-pre.tgz";
-      name = "sinon-2.0.0-pre.tgz";
-      sha1 = "18293b00fb2f155c99e8e5b46e31f7eade32815d";
-    };
-    deps = {
-      "formatio-1.1.1" = self.by-version."formatio"."1.1.1";
-      "util-0.10.3" = self.by-version."util"."0.10.3";
-      "lolex-1.3.2" = self.by-version."lolex"."1.3.2";
-      "samsam-1.1.2" = self.by-version."samsam"."1.1.2";
-      "text-encoding-0.5.2" = self.by-version."text-encoding"."0.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "sinon" = self.by-version."sinon"."2.0.0-pre";
-  by-spec."sinopia"."*" =
-    self.by-version."sinopia"."1.4.0";
-  by-version."sinopia"."1.4.0" = self.buildNodePackage {
-    name = "sinopia-1.4.0";
-    version = "1.4.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sinopia/-/sinopia-1.4.0.tgz";
-      name = "sinopia-1.4.0.tgz";
-      sha1 = "36bf5209356facbf6cef18fa32274d116043ed24";
-    };
-    deps = {
-      "express-5.0.0-alpha.2" = self.by-version."express"."5.0.0-alpha.2";
-      "express-json5-0.1.0" = self.by-version."express-json5"."0.1.0";
-      "body-parser-1.15.1" = self.by-version."body-parser"."1.15.1";
-      "compression-1.6.2" = self.by-version."compression"."1.6.2";
-      "commander-2.9.0" = self.by-version."commander"."2.9.0";
-      "js-yaml-3.6.1" = self.by-version."js-yaml"."3.6.1";
-      "cookies-0.6.1" = self.by-version."cookies"."0.6.1";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "es6-shim-0.21.1" = self.by-version."es6-shim"."0.21.1";
-      "semver-4.3.6" = self.by-version."semver"."4.3.6";
-      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
-      "bunyan-1.8.1" = self.by-version."bunyan"."1.8.1";
-      "handlebars-2.0.0" = self.by-version."handlebars"."2.0.0";
-      "highlight.js-8.9.1" = self.by-version."highlight.js"."8.9.1";
-      "lunr-0.7.1" = self.by-version."lunr"."0.7.1";
-      "render-readme-1.3.1" = self.by-version."render-readme"."1.3.1";
-      "jju-1.3.0" = self.by-version."jju"."1.3.0";
-      "JSONStream-1.1.2" = self.by-version."JSONStream"."1.1.2";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "sinopia-htpasswd-0.4.5" = self.by-version."sinopia-htpasswd"."0.4.5";
-      "http-errors-1.5.0" = self.by-version."http-errors"."1.5.0";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-      "fs-ext-0.5.0" = self.by-version."fs-ext"."0.5.0";
-      "crypt3-0.2.0" = self.by-version."crypt3"."0.2.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "sinopia" = self.by-version."sinopia"."1.4.0";
-  by-spec."sinopia-htpasswd".">= 0.4.3" =
-    self.by-version."sinopia-htpasswd"."0.4.5";
-  by-version."sinopia-htpasswd"."0.4.5" = self.buildNodePackage {
-    name = "sinopia-htpasswd-0.4.5";
-    version = "0.4.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sinopia-htpasswd/-/sinopia-htpasswd-0.4.5.tgz";
-      name = "sinopia-htpasswd-0.4.5.tgz";
-      sha1 = "2af824ae20eccb8f902325b1a2c27dd6619805c9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "crypt3-0.2.0" = self.by-version."crypt3"."0.2.0";
-      "fs-ext-0.5.0" = self.by-version."fs-ext"."0.5.0";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."slasp"."*" =
-    self.by-version."slasp"."0.0.4";
-  by-version."slasp"."0.0.4" = self.buildNodePackage {
-    name = "slasp-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/slasp/-/slasp-0.0.4.tgz";
-      name = "slasp-0.0.4.tgz";
-      sha1 = "9adc26ee729a0f95095851a5489f87a5258d57a9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "slasp" = self.by-version."slasp"."0.0.4";
-  by-spec."slasp"."0.0.4" =
-    self.by-version."slasp"."0.0.4";
-  by-spec."sleep"."*" =
-    self.by-version."sleep"."3.0.1";
-  by-version."sleep"."3.0.1" = self.buildNodePackage {
-    name = "sleep-3.0.1";
-    version = "3.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sleep/-/sleep-3.0.1.tgz";
-      name = "sleep-3.0.1.tgz";
-      sha1 = "be4d17c579360e07e04ed8172ba2b10a69054df3";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "sleep" = self.by-version."sleep"."3.0.1";
-  by-spec."sleep".">=1.2.0" =
-    self.by-version."sleep"."3.0.1";
-  by-spec."slice-ansi"."0.0.4" =
-    self.by-version."slice-ansi"."0.0.4";
-  by-version."slice-ansi"."0.0.4" = self.buildNodePackage {
-    name = "slice-ansi-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz";
-      name = "slice-ansi-0.0.4.tgz";
-      sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sliced"."0.0.3" =
-    self.by-version."sliced"."0.0.3";
-  by-version."sliced"."0.0.3" = self.buildNodePackage {
-    name = "sliced-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sliced/-/sliced-0.0.3.tgz";
-      name = "sliced-0.0.3.tgz";
-      sha1 = "4f0bac2171eb17162c3ba6df81f5cf040f7c7e50";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sliced"."0.0.4" =
-    self.by-version."sliced"."0.0.4";
-  by-version."sliced"."0.0.4" = self.buildNodePackage {
-    name = "sliced-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sliced/-/sliced-0.0.4.tgz";
-      name = "sliced-0.0.4.tgz";
-      sha1 = "34f89a6db1f31fa525f5a570f5bcf877cf0955ee";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sliced"."0.0.5" =
-    self.by-version."sliced"."0.0.5";
-  by-version."sliced"."0.0.5" = self.buildNodePackage {
-    name = "sliced-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz";
-      name = "sliced-0.0.5.tgz";
-      sha1 = "5edc044ca4eb6f7816d50ba2fc63e25d8fe4707f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sliced"."1.0.1" =
-    self.by-version."sliced"."1.0.1";
-  by-version."sliced"."1.0.1" = self.buildNodePackage {
-    name = "sliced-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz";
-      name = "sliced-1.0.1.tgz";
-      sha1 = "0b3a662b5d04c3177b1926bea82b03f837a2ef41";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."slide"."^1.1.3" =
-    self.by-version."slide"."1.1.6";
-  by-version."slide"."1.1.6" = self.buildNodePackage {
-    name = "slide-1.1.6";
-    version = "1.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz";
-      name = "slide-1.1.6.tgz";
-      sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."slide"."^1.1.5" =
-    self.by-version."slide"."1.1.6";
-  by-spec."slide"."~1.1.3" =
-    self.by-version."slide"."1.1.6";
-  by-spec."slide"."~1.1.6" =
-    self.by-version."slide"."1.1.6";
-  by-spec."sloc"."*" =
-    self.by-version."sloc"."0.1.10";
-  by-version."sloc"."0.1.10" = self.buildNodePackage {
-    name = "sloc-0.1.10";
-    version = "0.1.10";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sloc/-/sloc-0.1.10.tgz";
-      name = "sloc-0.1.10.tgz";
-      sha1 = "f6bc04c3e93bec75a66668954ac39eea0e1d2f8a";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "cli-table-0.3.1" = self.by-version."cli-table"."0.3.1";
-      "commander-2.9.0" = self.by-version."commander"."2.9.0";
-      "readdirp-2.0.0" = self.by-version."readdirp"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "sloc" = self.by-version."sloc"."0.1.10";
-  by-spec."smart-buffer"."^1.0.4" =
-    self.by-version."smart-buffer"."1.0.11";
-  by-version."smart-buffer"."1.0.11" = self.buildNodePackage {
-    name = "smart-buffer-1.0.11";
-    version = "1.0.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.0.11.tgz";
-      name = "smart-buffer-1.0.11.tgz";
-      sha1 = "3050337098a8e4cdf0350fef63dd146049ff940a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."smartdc"."*" =
-    self.by-version."smartdc"."8.1.0";
-  by-version."smartdc"."8.1.0" = self.buildNodePackage {
-    name = "smartdc-8.1.0";
-    version = "8.1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/smartdc/-/smartdc-8.1.0.tgz";
-      name = "smartdc-8.1.0.tgz";
-      sha1 = "c8dba4694307a0070b84a67ced76da6de73f3585";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-      "lru-cache-2.2.0" = self.by-version."lru-cache"."2.2.0";
-      "nopt-2.0.0" = self.by-version."nopt"."2.0.0";
-      "restify-4.0.3" = self.by-version."restify"."4.0.3";
-      "bunyan-1.5.1" = self.by-version."bunyan"."1.5.1";
-      "clone-0.1.6" = self.by-version."clone"."0.1.6";
-      "smartdc-auth-2.3.1" = self.by-version."smartdc-auth"."2.3.1";
-      "cmdln-3.2.1" = self.by-version."cmdln"."3.2.1";
-      "dashdash-1.7.3" = self.by-version."dashdash"."1.7.3";
-      "vasync-1.6.2" = self.by-version."vasync"."1.6.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "smartdc" = self.by-version."smartdc"."8.1.0";
-  by-spec."smartdc-auth"."2.3.1" =
-    self.by-version."smartdc-auth"."2.3.1";
-  by-version."smartdc-auth"."2.3.1" = self.buildNodePackage {
-    name = "smartdc-auth-2.3.1";
-    version = "2.3.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/smartdc-auth/-/smartdc-auth-2.3.1.tgz";
-      name = "smartdc-auth-2.3.1.tgz";
-      sha1 = "96568a565e9d9feb03b93a50651eee14d23adf44";
-    };
-    deps = {
-      "assert-plus-0.1.2" = self.by-version."assert-plus"."0.1.2";
-      "bunyan-1.5.1" = self.by-version."bunyan"."1.5.1";
-      "clone-0.1.5" = self.by-version."clone"."0.1.5";
-      "dashdash-1.10.1" = self.by-version."dashdash"."1.10.1";
-      "http-signature-1.1.1" = self.by-version."http-signature"."1.1.1";
-      "once-1.3.0" = self.by-version."once"."1.3.0";
-      "sshpk-agent-1.2.1" = self.by-version."sshpk-agent"."1.2.1";
-      "sshpk-1.7.1" = self.by-version."sshpk"."1.7.1";
-      "vasync-1.4.3" = self.by-version."vasync"."1.4.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."smtp-connection"."^1.3.1" =
-    self.by-version."smtp-connection"."1.3.8";
-  by-version."smtp-connection"."1.3.8" = self.buildNodePackage {
-    name = "smtp-connection-1.3.8";
-    version = "1.3.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/smtp-connection/-/smtp-connection-1.3.8.tgz";
-      name = "smtp-connection-1.3.8.tgz";
-      sha1 = "55832c2160cfb3086e1dcd87fd1c19fa61b7f536";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."smtp-connection"."^1.3.7" =
-    self.by-version."smtp-connection"."1.3.8";
-  by-spec."snapsvg"."~0.4.0" =
-    self.by-version."snapsvg"."0.4.0";
-  by-version."snapsvg"."0.4.0" = self.buildNodePackage {
-    name = "snapsvg-0.4.0";
-    version = "0.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/snapsvg/-/snapsvg-0.4.0.tgz";
-      name = "snapsvg-0.4.0.tgz";
-      sha1 = "e0767014167825957de7e125c29b0fa89796ea03";
-    };
-    deps = {
-      "eve-0.4.2" = self.by-version."eve"."0.4.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sntp"."0.1.x" =
-    self.by-version."sntp"."0.1.4";
-  by-version."sntp"."0.1.4" = self.buildNodePackage {
-    name = "sntp-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz";
-      name = "sntp-0.1.4.tgz";
-      sha1 = "5ef481b951a7b29affdf4afd7f26838fc1120f84";
-    };
-    deps = {
-      "hoek-0.7.6" = self.by-version."hoek"."0.7.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sntp"."0.2.x" =
-    self.by-version."sntp"."0.2.4";
-  by-version."sntp"."0.2.4" = self.buildNodePackage {
-    name = "sntp-0.2.4";
-    version = "0.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz";
-      name = "sntp-0.2.4.tgz";
-      sha1 = "fb885f18b0f3aad189f824862536bceeec750900";
-    };
-    deps = {
-      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sntp"."1.x.x" =
-    self.by-version."sntp"."1.0.9";
-  by-version."sntp"."1.0.9" = self.buildNodePackage {
-    name = "sntp-1.0.9";
-    version = "1.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz";
-      name = "sntp-1.0.9.tgz";
-      sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
-    };
-    deps = {
-      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io"."0.9.14" =
-    self.by-version."socket.io"."0.9.14";
-  by-version."socket.io"."0.9.14" = self.buildNodePackage {
-    name = "socket.io-0.9.14";
-    version = "0.9.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-0.9.14.tgz";
-      name = "socket.io-0.9.14.tgz";
-      sha1 = "81af80ebf3ee8f7f6e71b1495db91f8fa53ff667";
-    };
-    deps = {
-      "socket.io-client-0.9.11" = self.by-version."socket.io-client"."0.9.11";
-      "policyfile-0.0.4" = self.by-version."policyfile"."0.0.4";
-      "base64id-0.1.0" = self.by-version."base64id"."0.1.0";
-    };
-    optionalDependencies = {
-      "redis-0.7.3" = self.by-version."redis"."0.7.3";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io"."1.0.6" =
-    self.by-version."socket.io"."1.0.6";
-  by-version."socket.io"."1.0.6" = self.buildNodePackage {
-    name = "socket.io-1.0.6";
-    version = "1.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-1.0.6.tgz";
-      name = "socket.io-1.0.6.tgz";
-      sha1 = "b566532888dae3ac9058a12f294015ebdfa8084a";
-    };
-    deps = {
-      "engine.io-1.3.1" = self.by-version."engine.io"."1.3.1";
-      "socket.io-parser-2.2.0" = self.by-version."socket.io-parser"."2.2.0";
-      "socket.io-client-1.0.6" = self.by-version."socket.io-client"."1.0.6";
-      "socket.io-adapter-0.2.0" = self.by-version."socket.io-adapter"."0.2.0";
-      "has-binary-data-0.1.1" = self.by-version."has-binary-data"."0.1.1";
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io"."^1.4.5" =
-    self.by-version."socket.io"."1.4.6";
-  by-version."socket.io"."1.4.6" = self.buildNodePackage {
-    name = "socket.io-1.4.6";
-    version = "1.4.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-1.4.6.tgz";
-      name = "socket.io-1.4.6.tgz";
-      sha1 = "0dddc2cb8fb9b66fc928604f13f6aa910254cc1c";
-    };
-    deps = {
-      "engine.io-1.6.9" = self.by-version."engine.io"."1.6.9";
-      "socket.io-parser-2.2.6" = self.by-version."socket.io-parser"."2.2.6";
-      "socket.io-client-1.4.6" = self.by-version."socket.io-client"."1.4.6";
-      "socket.io-adapter-0.4.0" = self.by-version."socket.io-adapter"."0.4.0";
-      "has-binary-0.1.7" = self.by-version."has-binary"."0.1.7";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io"."~0.9.17" =
-    self.by-version."socket.io"."0.9.17";
-  by-version."socket.io"."0.9.17" = self.buildNodePackage {
-    name = "socket.io-0.9.17";
-    version = "0.9.17";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-0.9.17.tgz";
-      name = "socket.io-0.9.17.tgz";
-      sha1 = "ca389268fb2cd5df4b59218490a08c907581c9ec";
-    };
-    deps = {
-      "socket.io-client-0.9.16" = self.by-version."socket.io-client"."0.9.16";
-      "policyfile-0.0.4" = self.by-version."policyfile"."0.0.4";
-      "base64id-0.1.0" = self.by-version."base64id"."0.1.0";
-    };
-    optionalDependencies = {
-      "redis-0.7.3" = self.by-version."redis"."0.7.3";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io"."~1.4.5" =
-    self.by-version."socket.io"."1.4.6";
-  by-spec."socket.io-adapter"."0.2.0" =
-    self.by-version."socket.io-adapter"."0.2.0";
-  by-version."socket.io-adapter"."0.2.0" = self.buildNodePackage {
-    name = "socket.io-adapter-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.2.0.tgz";
-      name = "socket.io-adapter-0.2.0.tgz";
-      sha1 = "bd39329b8961371787e24f345b074ec9cf000e33";
-    };
-    deps = {
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-      "socket.io-parser-2.1.2" = self.by-version."socket.io-parser"."2.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-adapter"."0.4.0" =
-    self.by-version."socket.io-adapter"."0.4.0";
-  by-version."socket.io-adapter"."0.4.0" = self.buildNodePackage {
-    name = "socket.io-adapter-0.4.0";
-    version = "0.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz";
-      name = "socket.io-adapter-0.4.0.tgz";
-      sha1 = "fb9f82ab1aa65290bf72c3657955b930a991a24f";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "socket.io-parser-2.2.2" = self.by-version."socket.io-parser"."2.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-client"."0.9.11" =
-    self.by-version."socket.io-client"."0.9.11";
-  by-version."socket.io-client"."0.9.11" = self.buildNodePackage {
-    name = "socket.io-client-0.9.11";
-    version = "0.9.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.11.tgz";
-      name = "socket.io-client-0.9.11.tgz";
-      sha1 = "94defc1b29e0d8a8fe958c1cf33300f68d8a19c7";
-    };
-    deps = {
-      "uglify-js-1.2.5" = self.by-version."uglify-js"."1.2.5";
-      "ws-0.4.32" = self.by-version."ws"."0.4.32";
-      "xmlhttprequest-1.4.2" = self.by-version."xmlhttprequest"."1.4.2";
-      "active-x-obfuscator-0.0.1" = self.by-version."active-x-obfuscator"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-client"."0.9.16" =
-    self.by-version."socket.io-client"."0.9.16";
-  by-version."socket.io-client"."0.9.16" = self.buildNodePackage {
-    name = "socket.io-client-0.9.16";
-    version = "0.9.16";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz";
-      name = "socket.io-client-0.9.16.tgz";
-      sha1 = "4da7515c5e773041d1b423970415bcc430f35fc6";
-    };
-    deps = {
-      "uglify-js-1.2.5" = self.by-version."uglify-js"."1.2.5";
-      "ws-0.4.32" = self.by-version."ws"."0.4.32";
-      "xmlhttprequest-1.4.2" = self.by-version."xmlhttprequest"."1.4.2";
-      "active-x-obfuscator-0.0.1" = self.by-version."active-x-obfuscator"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-client"."1.0.6" =
-    self.by-version."socket.io-client"."1.0.6";
-  by-version."socket.io-client"."1.0.6" = self.buildNodePackage {
-    name = "socket.io-client-1.0.6";
-    version = "1.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.6.tgz";
-      name = "socket.io-client-1.0.6.tgz";
-      sha1 = "c86cb3e507ab2f96da4500bd34fcf46a1e9dfe5e";
-    };
-    deps = {
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-      "engine.io-client-1.3.1" = self.by-version."engine.io-client"."1.3.1";
-      "component-bind-1.0.0" = self.by-version."component-bind"."1.0.0";
-      "component-emitter-1.1.2" = self.by-version."component-emitter"."1.1.2";
-      "object-component-0.0.3" = self.by-version."object-component"."0.0.3";
-      "socket.io-parser-2.2.0" = self.by-version."socket.io-parser"."2.2.0";
-      "has-binary-data-0.1.1" = self.by-version."has-binary-data"."0.1.1";
-      "indexof-0.0.1" = self.by-version."indexof"."0.0.1";
-      "parseuri-0.0.2" = self.by-version."parseuri"."0.0.2";
-      "to-array-0.1.3" = self.by-version."to-array"."0.1.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-client"."1.4.6" =
-    self.by-version."socket.io-client"."1.4.6";
-  by-version."socket.io-client"."1.4.6" = self.buildNodePackage {
-    name = "socket.io-client-1.4.6";
-    version = "1.4.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz";
-      name = "socket.io-client-1.4.6.tgz";
-      sha1 = "49b0ba537efd15b8297c84016e642e1c7c752c3d";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "engine.io-client-1.6.9" = self.by-version."engine.io-client"."1.6.9";
-      "component-bind-1.0.0" = self.by-version."component-bind"."1.0.0";
-      "component-emitter-1.2.0" = self.by-version."component-emitter"."1.2.0";
-      "object-component-0.0.3" = self.by-version."object-component"."0.0.3";
-      "socket.io-parser-2.2.6" = self.by-version."socket.io-parser"."2.2.6";
-      "has-binary-0.1.7" = self.by-version."has-binary"."0.1.7";
-      "indexof-0.0.1" = self.by-version."indexof"."0.0.1";
-      "parseuri-0.0.4" = self.by-version."parseuri"."0.0.4";
-      "to-array-0.1.4" = self.by-version."to-array"."0.1.4";
-      "backo2-1.0.2" = self.by-version."backo2"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-parser"."2.1.2" =
-    self.by-version."socket.io-parser"."2.1.2";
-  by-version."socket.io-parser"."2.1.2" = self.buildNodePackage {
-    name = "socket.io-parser-2.1.2";
-    version = "2.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.2.tgz";
-      name = "socket.io-parser-2.1.2.tgz";
-      sha1 = "876655b9edd555c5bdf7301cedf30a436c67b8b0";
-    };
-    deps = {
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-      "json3-3.2.6" = self.by-version."json3"."3.2.6";
-      "emitter-1.0.1" = self.by-version."emitter"."1.0.1";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-parser"."2.2.0" =
-    self.by-version."socket.io-parser"."2.2.0";
-  by-version."socket.io-parser"."2.2.0" = self.buildNodePackage {
-    name = "socket.io-parser-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.0.tgz";
-      name = "socket.io-parser-2.2.0.tgz";
-      sha1 = "2609601f59e6a7fab436a53be3d333fbbfcbd30a";
-    };
-    deps = {
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-      "json3-3.2.6" = self.by-version."json3"."3.2.6";
-      "emitter-1.0.1" = self.by-version."emitter"."1.0.1";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-parser"."2.2.2" =
-    self.by-version."socket.io-parser"."2.2.2";
-  by-version."socket.io-parser"."2.2.2" = self.buildNodePackage {
-    name = "socket.io-parser-2.2.2";
-    version = "2.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.2.tgz";
-      name = "socket.io-parser-2.2.2.tgz";
-      sha1 = "3d7af6b64497e956b7d9fe775f999716027f9417";
-    };
-    deps = {
-      "debug-0.7.4" = self.by-version."debug"."0.7.4";
-      "json3-3.2.6" = self.by-version."json3"."3.2.6";
-      "component-emitter-1.1.2" = self.by-version."component-emitter"."1.1.2";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "benchmark-1.0.0" = self.by-version."benchmark"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socket.io-parser"."2.2.6" =
-    self.by-version."socket.io-parser"."2.2.6";
-  by-version."socket.io-parser"."2.2.6" = self.buildNodePackage {
-    name = "socket.io-parser-2.2.6";
-    version = "2.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.6.tgz";
-      name = "socket.io-parser-2.2.6.tgz";
-      sha1 = "38dfd61df50dcf8ab1d9e2091322bf902ba28b99";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "json3-3.3.2" = self.by-version."json3"."3.3.2";
-      "component-emitter-1.1.2" = self.by-version."component-emitter"."1.1.2";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "benchmark-1.0.0" = self.by-version."benchmark"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sockjs"."*" =
-    self.by-version."sockjs"."0.3.17";
-  by-version."sockjs"."0.3.17" = self.buildNodePackage {
-    name = "sockjs-0.3.17";
-    version = "0.3.17";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.17.tgz";
-      name = "sockjs-0.3.17.tgz";
-      sha1 = "ef1b88f5d73e6278fad8e9476ac91064382f3b44";
-    };
-    deps = {
-      "faye-websocket-0.10.0" = self.by-version."faye-websocket"."0.10.0";
-      "uuid-2.0.2" = self.by-version."uuid"."2.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "sockjs" = self.by-version."sockjs"."0.3.17";
-  by-spec."socks"."~1.1.5" =
-    self.by-version."socks"."1.1.9";
-  by-version."socks"."1.1.9" = self.buildNodePackage {
-    name = "socks-1.1.9";
-    version = "1.1.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz";
-      name = "socks-1.1.9.tgz";
-      sha1 = "628d7e4d04912435445ac0b6e459376cb3e6d691";
-    };
-    deps = {
-      "ip-1.1.3" = self.by-version."ip"."1.1.3";
-      "smart-buffer-1.0.11" = self.by-version."smart-buffer"."1.0.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."socks-proxy-agent"."1" =
-    self.by-version."socks-proxy-agent"."1.0.2";
-  by-version."socks-proxy-agent"."1.0.2" = self.buildNodePackage {
-    name = "socks-proxy-agent-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-1.0.2.tgz";
-      name = "socks-proxy-agent-1.0.2.tgz";
-      sha1 = "67e06b447fe5637417fde5733cbfdfec9ffe117f";
-    };
-    deps = {
-      "agent-base-1.0.2" = self.by-version."agent-base"."1.0.2";
-      "extend-1.2.1" = self.by-version."extend"."1.2.1";
-      "socks-1.1.9" = self.by-version."socks"."1.1.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sort-keys"."^1.0.0" =
-    self.by-version."sort-keys"."1.1.2";
-  by-version."sort-keys"."1.1.2" = self.buildNodePackage {
-    name = "sort-keys-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz";
-      name = "sort-keys-1.1.2.tgz";
-      sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad";
-    };
-    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 = "https://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.2" = self.by-version."sort-keys"."1.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sorted-object"."~2.0.0" =
-    self.by-version."sorted-object"."2.0.0";
-  by-version."sorted-object"."2.0.0" = self.buildNodePackage {
-    name = "sorted-object-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.0.tgz";
-      name = "sorted-object-2.0.0.tgz";
-      sha1 = "1cfea981609047d8043807a490a9d99b317faf7f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sorted-union-stream"."^1.0.1" =
-    self.by-version."sorted-union-stream"."1.0.2";
-  by-version."sorted-union-stream"."1.0.2" = self.buildNodePackage {
-    name = "sorted-union-stream-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-1.0.2.tgz";
-      name = "sorted-union-stream-1.0.2.tgz";
-      sha1 = "558e7f57a5bf6baf6501baf2ae2c9076c4502006";
-    };
-    deps = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."source-list-map"."~0.1.0" =
-    self.by-version."source-list-map"."0.1.6";
-  by-version."source-list-map"."0.1.6" = self.buildNodePackage {
-    name = "source-list-map-0.1.6";
-    version = "0.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.6.tgz";
-      name = "source-list-map-0.1.6.tgz";
-      sha1 = "e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."source-map"."*" =
-    self.by-version."source-map"."0.5.6";
-  by-version."source-map"."0.5.6" = self.buildNodePackage {
-    name = "source-map-0.5.6";
-    version = "0.5.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz";
-      name = "source-map-0.5.6.tgz";
-      sha1 = "75ce38f52bf0733c5a7f0c118d81334a2bb5f412";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "source-map" = self.by-version."source-map"."0.5.6";
-  by-spec."source-map"."0.1.32" =
-    self.by-version."source-map"."0.1.32";
-  by-version."source-map"."0.1.32" = self.buildNodePackage {
-    name = "source-map-0.1.32";
-    version = "0.1.32";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz";
-      name = "source-map-0.1.32.tgz";
-      sha1 = "c8b6c167797ba4740a8ea33252162ff08591b266";
-    };
-    deps = {
-      "amdefine-1.0.0" = self.by-version."amdefine"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."source-map"."0.1.34" =
-    self.by-version."source-map"."0.1.34";
-  by-version."source-map"."0.1.34" = self.buildNodePackage {
-    name = "source-map-0.1.34";
-    version = "0.1.34";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz";
-      name = "source-map-0.1.34.tgz";
-      sha1 = "a7cfe89aec7b1682c3b198d0acfb47d7d090566b";
-    };
-    deps = {
-      "amdefine-1.0.0" = self.by-version."amdefine"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."source-map"."0.1.x" =
-    self.by-version."source-map"."0.1.43";
-  by-version."source-map"."0.1.43" = self.buildNodePackage {
-    name = "source-map-0.1.43";
-    version = "0.1.43";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz";
-      name = "source-map-0.1.43.tgz";
-      sha1 = "c24bc146ca517c1471f5dacbe2571b2b7f9e3346";
-    };
-    deps = {
-      "amdefine-1.0.0" = self.by-version."amdefine"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."source-map"."0.4.x" =
-    self.by-version."source-map"."0.4.4";
-  by-version."source-map"."0.4.4" = self.buildNodePackage {
-    name = "source-map-0.4.4";
-    version = "0.4.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz";
-      name = "source-map-0.4.4.tgz";
-      sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
-    };
-    deps = {
-      "amdefine-1.0.0" = self.by-version."amdefine"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."source-map"."^0.1.40" =
-    self.by-version."source-map"."0.1.43";
-  by-spec."source-map"."^0.4.2" =
-    self.by-version."source-map"."0.4.4";
-  by-spec."source-map"."^0.4.4" =
-    self.by-version."source-map"."0.4.4";
-  by-spec."source-map"."^0.5.1" =
-    self.by-version."source-map"."0.5.6";
-  by-spec."source-map"."^0.5.3" =
-    self.by-version."source-map"."0.5.6";
-  by-spec."source-map"."~0.1.31" =
-    self.by-version."source-map"."0.1.43";
-  by-spec."source-map"."~0.1.33" =
-    self.by-version."source-map"."0.1.43";
-  by-spec."source-map"."~0.1.7" =
-    self.by-version."source-map"."0.1.43";
-  by-spec."source-map"."~0.2.0" =
-    self.by-version."source-map"."0.2.0";
-  by-version."source-map"."0.2.0" = self.buildNodePackage {
-    name = "source-map-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz";
-      name = "source-map-0.2.0.tgz";
-      sha1 = "dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d";
-    };
-    deps = {
-      "amdefine-1.0.0" = self.by-version."amdefine"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."source-map"."~0.3.0" =
-    self.by-version."source-map"."0.3.0";
-  by-version."source-map"."0.3.0" = self.buildNodePackage {
-    name = "source-map-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map/-/source-map-0.3.0.tgz";
-      name = "source-map-0.3.0.tgz";
-      sha1 = "8586fb9a5a005e5b501e21cd18b6f21b457ad1f9";
-    };
-    deps = {
-      "amdefine-1.0.0" = self.by-version."amdefine"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."source-map"."~0.4.0" =
-    self.by-version."source-map"."0.4.4";
-  by-spec."source-map"."~0.4.2" =
-    self.by-version."source-map"."0.4.4";
-  by-spec."source-map"."~0.5.0" =
-    self.by-version."source-map"."0.5.6";
-  by-spec."source-map"."~0.5.1" =
-    self.by-version."source-map"."0.5.6";
-  by-spec."source-map"."~0.5.3" =
-    self.by-version."source-map"."0.5.6";
-  by-spec."source-map-support"."0.3.2" =
-    self.by-version."source-map-support"."0.3.2";
-  by-version."source-map-support"."0.3.2" = self.buildNodePackage {
-    name = "source-map-support-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.2.tgz";
-      name = "source-map-support-0.3.2.tgz";
-      sha1 = "737d5c901e0b78fdb53aca713d24f23ccbb10be1";
-    };
-    deps = {
-      "source-map-0.1.32" = self.by-version."source-map"."0.1.32";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-version."source-map-support"."0.4.0" = self.buildNodePackage {
-    name = "source-map-support-0.4.0";
-    version = "0.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.0.tgz";
-      name = "source-map-support-0.4.0.tgz";
-      sha1 = "cb92292bc05455ce48691de545ac2690bb1cc976";
-    };
-    deps = {
-      "source-map-0.1.32" = self.by-version."source-map"."0.1.32";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sparkles"."^1.0.0" =
-    self.by-version."sparkles"."1.0.0";
-  by-version."sparkles"."1.0.0" = self.buildNodePackage {
-    name = "sparkles-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz";
-      name = "sparkles-1.0.0.tgz";
-      sha1 = "1acbbfb592436d10bbe8f785b7cc6f82815012c3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."spawn-please"."^0.1.0" =
-    self.by-version."spawn-please"."0.1.0";
-  by-version."spawn-please"."0.1.0" = self.buildNodePackage {
-    name = "spawn-please-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/spawn-please/-/spawn-please-0.1.0.tgz";
-      name = "spawn-please-0.1.0.tgz";
-      sha1 = "d4113ad6582445d076d1099997f0b250d7ddbaac";
-    };
-    deps = {
-    };
-    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 = "https://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.1" = self.by-version."spdx-license-ids"."1.2.1";
-    };
-    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 = "https://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 = "https://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.1" = self.by-version."spdx-license-ids"."1.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."spdx-license-ids"."^1.0.0" =
-    self.by-version."spdx-license-ids"."1.2.1";
-  by-version."spdx-license-ids"."1.2.1" = self.buildNodePackage {
-    name = "spdx-license-ids-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.1.tgz";
-      name = "spdx-license-ids-1.2.1.tgz";
-      sha1 = "d07ea17a4d2fd9351f9d94e2ff9cec74180fe8f3";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."spdx-license-ids"."^1.0.2" =
-    self.by-version."spdx-license-ids"."1.2.1";
-  by-spec."spdx-license-ids"."~1.2.1" =
-    self.by-version."spdx-license-ids"."1.2.1";
-  by-spec."spdy"."^1.26.5" =
-    self.by-version."spdy"."1.32.5";
-  by-version."spdy"."1.32.5" = self.buildNodePackage {
-    name = "spdy-1.32.5";
-    version = "1.32.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/spdy/-/spdy-1.32.5.tgz";
-      name = "spdy-1.32.5.tgz";
-      sha1 = "70eff23cde4e97d52a445f65afddcc5695eb5edb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."speedometer"."^0.1.2" =
-    self.by-version."speedometer"."0.1.4";
-  by-version."speedometer"."0.1.4" = self.buildNodePackage {
-    name = "speedometer-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz";
-      name = "speedometer-0.1.4.tgz";
-      sha1 = "9876dbd2a169d3115402d48e6ea6329c8816a50d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."spin.js"."^2.0.1" =
-    self.by-version."spin.js"."2.3.2";
-  by-version."spin.js"."2.3.2" = self.buildNodePackage {
-    name = "spin.js-2.3.2";
-    version = "2.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/spin.js/-/spin.js-2.3.2.tgz";
-      name = "spin.js-2.3.2.tgz";
-      sha1 = "6caa56d520673450fd5cfbc6971e6d0772c37a1a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."split"."0.3" =
-    self.by-version."split"."0.3.3";
-  by-version."split"."0.3.3" = self.buildNodePackage {
-    name = "split-0.3.3";
-    version = "0.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/split/-/split-0.3.3.tgz";
-      name = "split-0.3.3.tgz";
-      sha1 = "cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f";
-    };
-    deps = {
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."split2"."^0.2.1" =
-    self.by-version."split2"."0.2.1";
-  by-version."split2"."0.2.1" = self.buildNodePackage {
-    name = "split2-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/split2/-/split2-0.2.1.tgz";
-      name = "split2-0.2.1.tgz";
-      sha1 = "02ddac9adc03ec0bb78c1282ec079ca6e85ae900";
-    };
-    deps = {
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sprintf"."0.1.1" =
-    self.by-version."sprintf"."0.1.1";
-  by-version."sprintf"."0.1.1" = self.buildNodePackage {
-    name = "sprintf-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sprintf/-/sprintf-0.1.1.tgz";
-      name = "sprintf-0.1.1.tgz";
-      sha1 = "e8925fc9894e1aa6899e9091c7f2a12130b70de5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sprintf"."0.1.5" =
-    self.by-version."sprintf"."0.1.5";
-  by-version."sprintf"."0.1.5" = self.buildNodePackage {
-    name = "sprintf-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sprintf/-/sprintf-0.1.5.tgz";
-      name = "sprintf-0.1.5.tgz";
-      sha1 = "8f83e39a9317c1a502cb7db8050e51c679f6edcf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sprintf".">=0.1.1" =
-    self.by-version."sprintf"."0.1.5";
-  by-spec."sprintf"."~0.1.4" =
-    self.by-version."sprintf"."0.1.5";
-  by-spec."sprintf-js"."~1.0.2" =
-    self.by-version."sprintf-js"."1.0.3";
-  by-version."sprintf-js"."1.0.3" = self.buildNodePackage {
-    name = "sprintf-js-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://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."srt2vtt"."^1.3.1" =
-    self.by-version."srt2vtt"."1.3.1";
-  by-version."srt2vtt"."1.3.1" = self.buildNodePackage {
-    name = "srt2vtt-1.3.1";
-    version = "1.3.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/srt2vtt/-/srt2vtt-1.3.1.tgz";
-      name = "srt2vtt-1.3.1.tgz";
-      sha1 = "c2b5047c2c297b693d3bab518765e4b7c24d8173";
-    };
-    deps = {
-      "codepage-1.4.0" = self.by-version."codepage"."1.4.0";
-      "utfx-1.0.1" = self.by-version."utfx"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sshpk"."1.7.1" =
-    self.by-version."sshpk"."1.7.1";
-  by-version."sshpk"."1.7.1" = self.buildNodePackage {
-    name = "sshpk-1.7.1";
-    version = "1.7.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sshpk/-/sshpk-1.7.1.tgz";
-      name = "sshpk-1.7.1.tgz";
-      sha1 = "565e386c42a77e6062fbd14c0472ff21cd53398c";
-    };
-    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.14.0" = self.by-version."dashdash"."1.14.0";
-    };
-    optionalDependencies = {
-      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
-      "tweetnacl-0.14.3" = self.by-version."tweetnacl"."0.14.3";
-      "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-spec."sshpk".">=1.7.0 <1.8" =
-    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 = "https://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.14.0" = self.by-version."dashdash"."1.14.0";
-    };
-    optionalDependencies = {
-      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
-      "tweetnacl-0.14.3" = self.by-version."tweetnacl"."0.14.3";
-      "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-spec."sshpk"."^1.7.0" =
-    self.by-version."sshpk"."1.8.3";
-  by-version."sshpk"."1.8.3" = self.buildNodePackage {
-    name = "sshpk-1.8.3";
-    version = "1.8.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz";
-      name = "sshpk-1.8.3.tgz";
-      sha1 = "890cc9d614dc5292e5cb1a543b03c9abaa5c374e";
-    };
-    deps = {
-      "asn1-0.2.3" = self.by-version."asn1"."0.2.3";
-      "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0";
-      "dashdash-1.14.0" = self.by-version."dashdash"."1.14.0";
-      "getpass-0.1.6" = self.by-version."getpass"."0.1.6";
-    };
-    optionalDependencies = {
-      "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0";
-      "tweetnacl-0.13.3" = self.by-version."tweetnacl"."0.13.3";
-      "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-spec."sshpk-agent"."1.2.1" =
-    self.by-version."sshpk-agent"."1.2.1";
-  by-version."sshpk-agent"."1.2.1" = self.buildNodePackage {
-    name = "sshpk-agent-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sshpk-agent/-/sshpk-agent-1.2.1.tgz";
-      name = "sshpk-agent-1.2.1.tgz";
-      sha1 = "62e143c18530fda103320b3403e8ad42786d9718";
-    };
-    deps = {
-      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
-      "sshpk-1.7.4" = self.by-version."sshpk"."1.7.4";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ssl-root-cas"."^1.1.7" =
-    self.by-version."ssl-root-cas"."1.1.10";
-  by-version."ssl-root-cas"."1.1.10" = self.buildNodePackage {
-    name = "ssl-root-cas-1.1.10";
-    version = "1.1.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ssl-root-cas/-/ssl-root-cas-1.1.10.tgz";
-      name = "ssl-root-cas-1.1.10.tgz";
-      sha1 = "00b238105568f60b1bb98621e52f94efb7b7acad";
-    };
-    deps = {
-      "es6-promise-2.3.0" = self.by-version."es6-promise"."2.3.0";
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stable"."~0.1.3" =
-    self.by-version."stable"."0.1.5";
-  by-version."stable"."0.1.5" = self.buildNodePackage {
-    name = "stable-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz";
-      name = "stable-0.1.5.tgz";
-      sha1 = "08232f60c732e9890784b5bed0734f8b32a887b9";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stack-trace"."0.0.7" =
-    self.by-version."stack-trace"."0.0.7";
-  by-version."stack-trace"."0.0.7" = self.buildNodePackage {
-    name = "stack-trace-0.0.7";
-    version = "0.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz";
-      name = "stack-trace-0.0.7.tgz";
-      sha1 = "c72e089744fc3659f508cdce3621af5634ec0fff";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stack-trace"."0.0.x" =
-    self.by-version."stack-trace"."0.0.9";
-  by-version."stack-trace"."0.0.9" = self.buildNodePackage {
-    name = "stack-trace-0.0.9";
-    version = "0.0.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz";
-      name = "stack-trace-0.0.9.tgz";
-      sha1 = "a8f6eaeca90674c333e7c43953f275b451510695";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."static-favicon"."1.0.2" =
-    self.by-version."static-favicon"."1.0.2";
-  by-version."static-favicon"."1.0.2" = self.buildNodePackage {
-    name = "static-favicon-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/static-favicon/-/static-favicon-1.0.2.tgz";
-      name = "static-favicon-1.0.2.tgz";
-      sha1 = "7c15920dda2bf33f414b0e60aebbd65cdd2a1d2f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."statuses"."1" =
-    self.by-version."statuses"."1.3.0";
-  by-version."statuses"."1.3.0" = self.buildNodePackage {
-    name = "statuses-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz";
-      name = "statuses-1.3.0.tgz";
-      sha1 = "8e55758cb20e7682c1f4fce8dcab30bf01d1e07a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."statuses".">= 1.2.1 < 2" =
-    self.by-version."statuses"."1.3.0";
-  by-spec."statuses".">= 1.3.0 < 2" =
-    self.by-version."statuses"."1.3.0";
-  by-spec."statuses"."^1.2.1" =
-    self.by-version."statuses"."1.3.0";
-  by-spec."statuses"."~1.2.1" =
-    self.by-version."statuses"."1.2.1";
-  by-version."statuses"."1.2.1" = self.buildNodePackage {
-    name = "statuses-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz";
-      name = "statuses-1.2.1.tgz";
-      sha1 = "dded45cc18256d51ed40aec142489d5c61026d28";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."statuses"."~1.3.0" =
-    self.by-version."statuses"."1.3.0";
-  by-spec."stream-browserify"."^1.0.0" =
-    self.by-version."stream-browserify"."1.0.0";
-  by-version."stream-browserify"."1.0.0" = self.buildNodePackage {
-    name = "stream-browserify-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz";
-      name = "stream-browserify-1.0.0.tgz";
-      sha1 = "bf9b4abfb42b274d751479e44e0ff2656b6f1193";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-browserify"."^2.0.0" =
-    self.by-version."stream-browserify"."2.0.1";
-  by-version."stream-browserify"."2.0.1" = self.buildNodePackage {
-    name = "stream-browserify-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz";
-      name = "stream-browserify-2.0.1.tgz";
-      sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-browserify"."^2.0.1" =
-    self.by-version."stream-browserify"."2.0.1";
-  by-spec."stream-buffers"."~0.2.3" =
-    self.by-version."stream-buffers"."0.2.6";
-  by-version."stream-buffers"."0.2.6" = self.buildNodePackage {
-    name = "stream-buffers-0.2.6";
-    version = "0.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz";
-      name = "stream-buffers-0.2.6.tgz";
-      sha1 = "181c08d5bb3690045f69401b9ae6a7a0cf3313fc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-buffers"."~2.2.0" =
-    self.by-version."stream-buffers"."2.2.0";
-  by-version."stream-buffers"."2.2.0" = self.buildNodePackage {
-    name = "stream-buffers-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz";
-      name = "stream-buffers-2.2.0.tgz";
-      sha1 = "91d5f5130d1cef96dcfa7f726945188741d09ee4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-collector"."^1.0.1" =
-    self.by-version."stream-collector"."1.0.1";
-  by-version."stream-collector"."1.0.1" = self.buildNodePackage {
-    name = "stream-collector-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-collector/-/stream-collector-1.0.1.tgz";
-      name = "stream-collector-1.0.1.tgz";
-      sha1 = "4d4e55f171356121b2c5f6559f944705ab28db15";
-    };
-    deps = {
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-combiner"."~0.0.4" =
-    self.by-version."stream-combiner"."0.0.4";
-  by-version."stream-combiner"."0.0.4" = self.buildNodePackage {
-    name = "stream-combiner-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz";
-      name = "stream-combiner-0.0.4.tgz";
-      sha1 = "4d5e433c185261dde623ca3f44c586bcf5c4ad14";
-    };
-    deps = {
-      "duplexer-0.1.1" = self.by-version."duplexer"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-combiner2"."^1.1.1" =
-    self.by-version."stream-combiner2"."1.1.1";
-  by-version."stream-combiner2"."1.1.1" = self.buildNodePackage {
-    name = "stream-combiner2-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz";
-      name = "stream-combiner2-1.1.1.tgz";
-      sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
-    };
-    deps = {
-      "duplexer2-0.1.4" = self.by-version."duplexer2"."0.1.4";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-combiner2"."~1.0.0" =
-    self.by-version."stream-combiner2"."1.0.2";
-  by-version."stream-combiner2"."1.0.2" = self.buildNodePackage {
-    name = "stream-combiner2-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.0.2.tgz";
-      name = "stream-combiner2-1.0.2.tgz";
-      sha1 = "ba72a6b50cbfabfa950fc8bc87604bd01eb60671";
-    };
-    deps = {
-      "duplexer2-0.0.2" = self.by-version."duplexer2"."0.0.2";
-      "through2-0.5.1" = self.by-version."through2"."0.5.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-consume"."^0.1.0" =
-    self.by-version."stream-consume"."0.1.0";
-  by-version."stream-consume"."0.1.0" = self.buildNodePackage {
-    name = "stream-consume-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz";
-      name = "stream-consume-0.1.0.tgz";
-      sha1 = "a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-consume"."~0.1.0" =
-    self.by-version."stream-consume"."0.1.0";
-  by-spec."stream-counter"."^1.0.0" =
-    self.by-version."stream-counter"."1.0.0";
-  by-version."stream-counter"."1.0.0" = self.buildNodePackage {
-    name = "stream-counter-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz";
-      name = "stream-counter-1.0.0.tgz";
-      sha1 = "91cf2569ce4dc5061febcd7acb26394a5a114751";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-counter"."~0.2.0" =
-    self.by-version."stream-counter"."0.2.0";
-  by-version."stream-counter"."0.2.0" = self.buildNodePackage {
-    name = "stream-counter-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz";
-      name = "stream-counter-0.2.0.tgz";
-      sha1 = "ded266556319c8b0e222812b9cf3b26fa7d947de";
-    };
-    deps = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-events"."^1.0.1" =
-    self.by-version."stream-events"."1.0.1";
-  by-version."stream-events"."1.0.1" = self.buildNodePackage {
-    name = "stream-events-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-events/-/stream-events-1.0.1.tgz";
-      name = "stream-events-1.0.1.tgz";
-      sha1 = "4fe7b2bbfcc53e6af31087e8c540483f412ce8c6";
-    };
-    deps = {
-      "stubs-1.1.2" = self.by-version."stubs"."1.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-http"."^2.0.0" =
-    self.by-version."stream-http"."2.3.0";
-  by-version."stream-http"."2.3.0" = self.buildNodePackage {
-    name = "stream-http-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-http/-/stream-http-2.3.0.tgz";
-      name = "stream-http-2.3.0.tgz";
-      sha1 = "d77de76f6211072119f8d2a49a118717b8feeaa3";
-    };
-    deps = {
-      "builtin-status-codes-2.0.0" = self.by-version."builtin-status-codes"."2.0.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "to-arraybuffer-1.0.1" = self.by-version."to-arraybuffer"."1.0.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-splicer"."^1.1.0" =
-    self.by-version."stream-splicer"."1.3.2";
-  by-version."stream-splicer"."1.3.2" = self.buildNodePackage {
-    name = "stream-splicer-1.3.2";
-    version = "1.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-splicer/-/stream-splicer-1.3.2.tgz";
-      name = "stream-splicer-1.3.2.tgz";
-      sha1 = "3c0441be15b9bf4e226275e6dc83964745546661";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "readable-wrap-1.0.0" = self.by-version."readable-wrap"."1.0.0";
-      "through2-1.1.1" = self.by-version."through2"."1.1.1";
-      "indexof-0.0.1" = self.by-version."indexof"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-splicer"."^2.0.0" =
-    self.by-version."stream-splicer"."2.0.0";
-  by-version."stream-splicer"."2.0.0" = self.buildNodePackage {
-    name = "stream-splicer-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz";
-      name = "stream-splicer-2.0.0.tgz";
-      sha1 = "1b63be438a133e4b671cc1935197600175910d83";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-to-array"."~1.0.0" =
-    self.by-version."stream-to-array"."1.0.0";
-  by-version."stream-to-array"."1.0.0" = self.buildNodePackage {
-    name = "stream-to-array-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-to-array/-/stream-to-array-1.0.0.tgz";
-      name = "stream-to-array-1.0.0.tgz";
-      sha1 = "94166bb29f3ea24f082d2f8cd3ebb2cc0d6eca2c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-transcoder"."0.0.5" =
-    self.by-version."stream-transcoder"."0.0.5";
-  by-version."stream-transcoder"."0.0.5" = self.buildNodePackage {
-    name = "stream-transcoder-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-transcoder/-/stream-transcoder-0.0.5.tgz";
-      name = "stream-transcoder-0.0.5.tgz";
-      sha1 = "68261be4efb48840239b5791af23ee3b8bd79808";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stream-transform"."^0.1.0" =
-    self.by-version."stream-transform"."0.1.1";
-  by-version."stream-transform"."0.1.1" = self.buildNodePackage {
-    name = "stream-transform-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.1.tgz";
-      name = "stream-transform-0.1.1.tgz";
-      sha1 = "0a54a2b81eea88da55a50df2441cb63edc101c71";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."streamsearch"."0.1.2" =
-    self.by-version."streamsearch"."0.1.2";
-  by-version."streamsearch"."0.1.2" = self.buildNodePackage {
-    name = "streamsearch-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz";
-      name = "streamsearch-0.1.2.tgz";
-      sha1 = "808b9d0e56fc273d809ba57338e929919a1a9f1a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."string"."1.6.1" =
-    self.by-version."string"."1.6.1";
-  by-version."string"."1.6.1" = self.buildNodePackage {
-    name = "string-1.6.1";
-    version = "1.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/string/-/string-1.6.1.tgz";
-      name = "string-1.6.1.tgz";
-      sha1 = "eabe0956da7a8291c6de7486f7b35e58d031cd55";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."string-length"."^1.0.0" =
-    self.by-version."string-length"."1.0.1";
-  by-version."string-length"."1.0.1" = self.buildNodePackage {
-    name = "string-length-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz";
-      name = "string-length-1.0.1.tgz";
-      sha1 = "56970fb1c38558e9e70b728bf3de269ac45adfac";
-    };
-    deps = {
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."string-template"."~0.2.0" =
-    self.by-version."string-template"."0.2.1";
-  by-version."string-template"."0.2.1" = self.buildNodePackage {
-    name = "string-template-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz";
-      name = "string-template-0.2.1.tgz";
-      sha1 = "42932e598a352d01fc22ec3367d9d84eec6c9add";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."string-width"."^1.0.1" =
-    self.by-version."string-width"."1.0.1";
-  by-version."string-width"."1.0.1" = self.buildNodePackage {
-    name = "string-width-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/string-width/-/string-width-1.0.1.tgz";
-      name = "string-width-1.0.1.tgz";
-      sha1 = "c92129b6f1d7f52acf9af424a26e3864a05ceb0a";
-    };
-    deps = {
-      "code-point-at-1.0.0" = self.by-version."code-point-at"."1.0.0";
-      "is-fullwidth-code-point-1.0.0" = self.by-version."is-fullwidth-code-point"."1.0.0";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."string.prototype.startswith"."^0.2.0" =
-    self.by-version."string.prototype.startswith"."0.2.0";
-  by-version."string.prototype.startswith"."0.2.0" = self.buildNodePackage {
-    name = "string.prototype.startswith-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/string.prototype.startswith/-/string.prototype.startswith-0.2.0.tgz";
-      name = "string.prototype.startswith-0.2.0.tgz";
-      sha1 = "da68982e353a4e9ac4a43b450a2045d1c445ae7b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."string2compact"."^1.1.1" =
-    self.by-version."string2compact"."1.2.2";
-  by-version."string2compact"."1.2.2" = self.buildNodePackage {
-    name = "string2compact-1.2.2";
-    version = "1.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/string2compact/-/string2compact-1.2.2.tgz";
-      name = "string2compact-1.2.2.tgz";
-      sha1 = "420b3a9ee1c46854919b4a2aeac65c43fa50597b";
-    };
-    deps = {
-      "addr-to-ip-port-1.4.2" = self.by-version."addr-to-ip-port"."1.4.2";
-      "ipaddr.js-1.1.1" = self.by-version."ipaddr.js"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."string_decoder"."~0.10.0" =
-    self.by-version."string_decoder"."0.10.31";
-  by-version."string_decoder"."0.10.31" = self.buildNodePackage {
-    name = "string_decoder-0.10.31";
-    version = "0.10.31";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
-      name = "string_decoder-0.10.31.tgz";
-      sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."string_decoder"."~0.10.25" =
-    self.by-version."string_decoder"."0.10.31";
-  by-spec."string_decoder"."~0.10.x" =
-    self.by-version."string_decoder"."0.10.31";
-  by-spec."stringmap"."~0.2.2" =
-    self.by-version."stringmap"."0.2.2";
-  by-version."stringmap"."0.2.2" = self.buildNodePackage {
-    name = "stringmap-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz";
-      name = "stringmap-0.2.2.tgz";
-      sha1 = "556c137b258f942b8776f5b2ef582aa069d7d1b1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stringset"."~0.2.1" =
-    self.by-version."stringset"."0.2.1";
-  by-version."stringset"."0.2.1" = self.buildNodePackage {
-    name = "stringset-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz";
-      name = "stringset-0.2.1.tgz";
-      sha1 = "ef259c4e349344377fcd1c913dd2e848c9c042b5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stringstream"."~0.0.4" =
-    self.by-version."stringstream"."0.0.5";
-  by-version."stringstream"."0.0.5" = self.buildNodePackage {
-    name = "stringstream-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://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"."^0.3.0" =
-    self.by-version."strip-ansi"."0.3.0";
-  by-version."strip-ansi"."0.3.0" = self.buildNodePackage {
-    name = "strip-ansi-0.3.0";
-    version = "0.3.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz";
-      name = "strip-ansi-0.3.0.tgz";
-      sha1 = "25f48ea22ca79187f3174a4db8759347bb126220";
-    };
-    deps = {
-      "ansi-regex-0.2.1" = self.by-version."ansi-regex"."0.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."strip-ansi"."^2.0.1" =
-    self.by-version."strip-ansi"."2.0.1";
-  by-version."strip-ansi"."2.0.1" = self.buildNodePackage {
-    name = "strip-ansi-2.0.1";
-    version = "2.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz";
-      name = "strip-ansi-2.0.1.tgz";
-      sha1 = "df62c1aa94ed2f114e1d0f21fd1d50482b79a60e";
-    };
-    deps = {
-      "ansi-regex-1.1.1" = self.by-version."ansi-regex"."1.1.1";
-    };
-    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 = "https://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-ansi"."^3.0.1" =
-    self.by-version."strip-ansi"."3.0.1";
-  by-spec."strip-ansi"."~3.0.1" =
-    self.by-version."strip-ansi"."3.0.1";
-  by-spec."strip-bom"."^1.0.0" =
-    self.by-version."strip-bom"."1.0.0";
-  by-version."strip-bom"."1.0.0" = self.buildNodePackage {
-    name = "strip-bom-1.0.0";
-    version = "1.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz";
-      name = "strip-bom-1.0.0.tgz";
-      sha1 = "85b8862f3844b5a6d5ec8467a93598173a36f794";
-    };
-    deps = {
-      "first-chunk-stream-1.0.0" = self.by-version."first-chunk-stream"."1.0.0";
-      "is-utf8-0.2.1" = self.by-version."is-utf8"."0.2.1";
-    };
-    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 = "https://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-bom-stream"."^1.0.0" =
-    self.by-version."strip-bom-stream"."1.0.0";
-  by-version."strip-bom-stream"."1.0.0" = self.buildNodePackage {
-    name = "strip-bom-stream-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz";
-      name = "strip-bom-stream-1.0.0.tgz";
-      sha1 = "e7144398577d51a6bed0fa1994fa05f43fd988ee";
-    };
-    deps = {
-      "first-chunk-stream-1.0.0" = self.by-version."first-chunk-stream"."1.0.0";
-      "strip-bom-2.0.0" = self.by-version."strip-bom"."2.0.0";
-    };
-    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 = "https://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"."0.1.x" =
-    self.by-version."strip-json-comments"."0.1.3";
-  by-version."strip-json-comments"."0.1.3" = self.buildNodePackage {
-    name = "strip-json-comments-0.1.3";
-    version = "0.1.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz";
-      name = "strip-json-comments-0.1.3.tgz";
-      sha1 = "164c64e370a8a3cc00c9e01b539e569823f0ee54";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."strip-json-comments"."1.0.x" =
-    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 = "https://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."strip-json-comments"."~0.1.1" =
-    self.by-version."strip-json-comments"."0.1.3";
-  by-spec."strip-json-comments"."~1.0.1" =
-    self.by-version."strip-json-comments"."1.0.4";
-  by-spec."strip-json-comments"."~1.0.4" =
-    self.by-version."strip-json-comments"."1.0.4";
-  by-spec."strong-data-uri"."^1.0.0" =
-    self.by-version."strong-data-uri"."1.0.4";
-  by-version."strong-data-uri"."1.0.4" = self.buildNodePackage {
-    name = "strong-data-uri-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/strong-data-uri/-/strong-data-uri-1.0.4.tgz";
-      name = "strong-data-uri-1.0.4.tgz";
-      sha1 = "136765ebaf8e0f4ad60c4b146779f062c29d18f0";
-    };
-    deps = {
-      "truncate-1.0.5" = self.by-version."truncate"."1.0.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stubs"."^1.1.0" =
-    self.by-version."stubs"."1.1.2";
-  by-version."stubs"."1.1.2" = self.buildNodePackage {
-    name = "stubs-1.1.2";
-    version = "1.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stubs/-/stubs-1.1.2.tgz";
-      name = "stubs-1.1.2.tgz";
-      sha1 = "945a08975016318762f8f7060731002ab2a0960c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stylus"."*" =
-    self.by-version."stylus"."0.54.5";
-  by-version."stylus"."0.54.5" = self.buildNodePackage {
-    name = "stylus-0.54.5";
-    version = "0.54.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz";
-      name = "stylus-0.54.5.tgz";
-      sha1 = "42b9560931ca7090ce8515a798ba9e6aa3d6dc79";
-    };
-    deps = {
-      "css-parse-1.7.0" = self.by-version."css-parse"."1.7.0";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "sax-0.5.8" = self.by-version."sax"."0.5.8";
-      "glob-7.0.3" = self.by-version."glob"."7.0.3";
-      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "stylus" = self.by-version."stylus"."0.54.5";
-  by-spec."stylus"."0.49.x" =
-    self.by-version."stylus"."0.49.3";
-  by-version."stylus"."0.49.3" = self.buildNodePackage {
-    name = "stylus-0.49.3";
-    version = "0.49.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stylus/-/stylus-0.49.3.tgz";
-      name = "stylus-0.49.3.tgz";
-      sha1 = "1fbdabe479ed460872c71a6252a67f95040ba511";
-    };
-    deps = {
-      "css-parse-1.7.0" = self.by-version."css-parse"."1.7.0";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "sax-0.5.8" = self.by-version."sax"."0.5.8";
-      "glob-3.2.11" = self.by-version."glob"."3.2.11";
-      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."stylus"."~0.52.4" =
-    self.by-version."stylus"."0.52.4";
-  by-version."stylus"."0.52.4" = self.buildNodePackage {
-    name = "stylus-0.52.4";
-    version = "0.52.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/stylus/-/stylus-0.52.4.tgz";
-      name = "stylus-0.52.4.tgz";
-      sha1 = "6551b5f0bfdcf29ee7f0fe0a59b7eb6ff26d2539";
-    };
-    deps = {
-      "css-parse-1.7.0" = self.by-version."css-parse"."1.7.0";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "sax-0.5.8" = self.by-version."sax"."0.5.8";
-      "glob-3.2.11" = self.by-version."glob"."3.2.11";
-      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."subarg"."^1.0.0" =
-    self.by-version."subarg"."1.0.0";
-  by-version."subarg"."1.0.0" = self.buildNodePackage {
-    name = "subarg-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz";
-      name = "subarg-1.0.0.tgz";
-      sha1 = "f62cf17581e996b48fc965699f54c06ae268b8d2";
-    };
-    deps = {
-      "minimist-1.2.0" = self.by-version."minimist"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sugar"."^1.4.1" =
-    self.by-version."sugar"."1.4.1";
-  by-version."sugar"."1.4.1" = self.buildNodePackage {
-    name = "sugar-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sugar/-/sugar-1.4.1.tgz";
-      name = "sugar-1.4.1.tgz";
-      sha1 = "1310d4dedc699e5a173183718541b0d7844a7598";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."superagent"."1.8.3" =
-    self.by-version."superagent"."1.8.3";
-  by-version."superagent"."1.8.3" = self.buildNodePackage {
-    name = "superagent-1.8.3";
-    version = "1.8.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/superagent/-/superagent-1.8.3.tgz";
-      name = "superagent-1.8.3.tgz";
-      sha1 = "2b7d70fcc870eda4f2a61e619dd54009b86547c3";
-    };
-    deps = {
-      "qs-2.3.3" = self.by-version."qs"."2.3.3";
-      "formidable-1.0.17" = self.by-version."formidable"."1.0.17";
-      "mime-1.3.4" = self.by-version."mime"."1.3.4";
-      "component-emitter-1.2.1" = self.by-version."component-emitter"."1.2.1";
-      "methods-1.1.2" = self.by-version."methods"."1.1.2";
-      "cookiejar-2.0.6" = self.by-version."cookiejar"."2.0.6";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "reduce-component-1.0.1" = self.by-version."reduce-component"."1.0.1";
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-      "form-data-1.0.0-rc3" = self.by-version."form-data"."1.0.0-rc3";
-      "readable-stream-1.0.27-1" = self.by-version."readable-stream"."1.0.27-1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."superagent"."^0.21.0" =
-    self.by-version."superagent"."0.21.0";
-  by-version."superagent"."0.21.0" = self.buildNodePackage {
-    name = "superagent-0.21.0";
-    version = "0.21.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/superagent/-/superagent-0.21.0.tgz";
-      name = "superagent-0.21.0.tgz";
-      sha1 = "fb15027984751ee7152200e6cd21cd6e19a5de87";
-    };
-    deps = {
-      "qs-1.2.0" = self.by-version."qs"."1.2.0";
-      "formidable-1.0.14" = self.by-version."formidable"."1.0.14";
-      "mime-1.2.11" = self.by-version."mime"."1.2.11";
-      "component-emitter-1.1.2" = self.by-version."component-emitter"."1.1.2";
-      "methods-1.0.1" = self.by-version."methods"."1.0.1";
-      "cookiejar-2.0.1" = self.by-version."cookiejar"."2.0.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "reduce-component-1.0.1" = self.by-version."reduce-component"."1.0.1";
-      "extend-1.2.1" = self.by-version."extend"."1.2.1";
-      "form-data-0.1.3" = self.by-version."form-data"."0.1.3";
-      "readable-stream-1.0.27-1" = self.by-version."readable-stream"."1.0.27-1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."superagent"."^1.8.3" =
-    self.by-version."superagent"."1.8.3";
-  by-spec."superagent"."~0.21.0" =
-    self.by-version."superagent"."0.21.0";
-  by-spec."supports-color"."1.2.0" =
-    self.by-version."supports-color"."1.2.0";
-  by-version."supports-color"."1.2.0" = self.buildNodePackage {
-    name = "supports-color-1.2.0";
-    version = "1.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz";
-      name = "supports-color-1.2.0.tgz";
-      sha1 = "ff1ed1e61169d06b3cf2d588e188b18d8847e17e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."supports-color"."^0.2.0" =
-    self.by-version."supports-color"."0.2.0";
-  by-version."supports-color"."0.2.0" = self.buildNodePackage {
-    name = "supports-color-0.2.0";
-    version = "0.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz";
-      name = "supports-color-0.2.0.tgz";
-      sha1 = "d92de2694eb3f67323973d7ae3d8b55b4c22190a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."supports-color"."^1.3.0" =
-    self.by-version."supports-color"."1.3.1";
-  by-version."supports-color"."1.3.1" = self.buildNodePackage {
-    name = "supports-color-1.3.1";
-    version = "1.3.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz";
-      name = "supports-color-1.3.1.tgz";
-      sha1 = "15758df09d8ff3b4acc307539fabe27095e1042d";
-    };
-    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 = "https://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."supports-color"."^3.1.0" =
-    self.by-version."supports-color"."3.1.2";
-  by-version."supports-color"."3.1.2" = self.buildNodePackage {
-    name = "supports-color-3.1.2";
-    version = "3.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz";
-      name = "supports-color-3.1.2.tgz";
-      sha1 = "72a262894d9d408b956ca05ff37b2ed8a6e2a2d5";
-    };
-    deps = {
-      "has-flag-1.0.0" = self.by-version."has-flag"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."supports-color"."^3.1.2" =
-    self.by-version."supports-color"."3.1.2";
-  by-spec."svgo"."*" =
-    self.by-version."svgo"."0.6.6";
-  by-version."svgo"."0.6.6" = self.buildNodePackage {
-    name = "svgo-0.6.6";
-    version = "0.6.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz";
-      name = "svgo-0.6.6.tgz";
-      sha1 = "b340889036f20f9b447543077d0f5573ed044c08";
-    };
-    deps = {
-      "sax-1.2.1" = self.by-version."sax"."1.2.1";
-      "coa-1.0.1" = self.by-version."coa"."1.0.1";
-      "js-yaml-3.6.1" = self.by-version."js-yaml"."3.6.1";
-      "colors-1.1.2" = self.by-version."colors"."1.1.2";
-      "whet.extend-0.9.9" = self.by-version."whet.extend"."0.9.9";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "csso-2.0.0" = self.by-version."csso"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "svgo" = self.by-version."svgo"."0.6.6";
-  by-spec."swig"."0.14.x" =
-    self.by-version."swig"."0.14.0";
-  by-version."swig"."0.14.0" = self.buildNodePackage {
-    name = "swig-0.14.0";
-    version = "0.14.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/swig/-/swig-0.14.0.tgz";
-      name = "swig-0.14.0.tgz";
-      sha1 = "544bfb3bd837608873eed6a72c672a28cb1f1b3f";
-    };
-    deps = {
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "swig" = self.by-version."swig"."0.14.0";
-  by-spec."sylvester".">= 0.0.12" =
-    self.by-version."sylvester"."0.0.21";
-  by-version."sylvester"."0.0.21" = self.buildNodePackage {
-    name = "sylvester-0.0.21";
-    version = "0.0.21";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sylvester/-/sylvester-0.0.21.tgz";
-      name = "sylvester-0.0.21.tgz";
-      sha1 = "2987b1ce2bd2f38b0dce2a34388884bfa4400ea7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sylvester".">= 0.0.8" =
-    self.by-version."sylvester"."0.0.21";
-  by-spec."symbol"."^0.2.1" =
-    self.by-version."symbol"."0.2.3";
-  by-version."symbol"."0.2.3" = self.buildNodePackage {
-    name = "symbol-0.2.3";
-    version = "0.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz";
-      name = "symbol-0.2.3.tgz";
-      sha1 = "3b9873b8a901e47c6efe21526a3ac372ef28bbc7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."sync-exec"."0.6.2" =
-    self.by-version."sync-exec"."0.6.2";
-  by-version."sync-exec"."0.6.2" = self.buildNodePackage {
-    name = "sync-exec-0.6.2";
-    version = "0.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz";
-      name = "sync-exec-0.6.2.tgz";
-      sha1 = "717d22cc53f0ce1def5594362f3a89a2ebb91105";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."syntax-error"."^1.1.1" =
-    self.by-version."syntax-error"."1.1.6";
-  by-version."syntax-error"."1.1.6" = self.buildNodePackage {
-    name = "syntax-error-1.1.6";
-    version = "1.1.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz";
-      name = "syntax-error-1.1.6.tgz";
-      sha1 = "b4549706d386cc1c1dc7c2423f18579b6cade710";
-    };
-    deps = {
-      "acorn-2.7.0" = self.by-version."acorn"."2.7.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."table"."^3.7.8" =
-    self.by-version."table"."3.7.8";
-  by-version."table"."3.7.8" = self.buildNodePackage {
-    name = "table-3.7.8";
-    version = "3.7.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/table/-/table-3.7.8.tgz";
-      name = "table-3.7.8.tgz";
-      sha1 = "b424433ef596851922b2fd77224a69a1951618eb";
-    };
-    deps = {
-      "bluebird-3.4.0" = self.by-version."bluebird"."3.4.0";
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-      "slice-ansi-0.0.4" = self.by-version."slice-ansi"."0.0.4";
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-      "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1";
-      "tv4-1.2.7" = self.by-version."tv4"."1.2.7";
-      "xregexp-3.1.1" = self.by-version."xregexp"."3.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tabtab"."git+https://github.com/mixu/node-tabtab.git" =
-    self.by-version."tabtab"."0.0.2";
-  by-version."tabtab"."0.0.2" = self.buildNodePackage {
-    name = "tabtab-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchgit {
-      url = "https://github.com/mixu/node-tabtab.git";
-      rev = "94af2b878b174527b6636aec88acd46979247755";
-      sha256 = "c824206b33da96cf5c01c21f1b133a0e3568e07ee4dcc9beefa8226864cd0272";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tapable"."^0.1.8" =
-    self.by-version."tapable"."0.1.10";
-  by-version."tapable"."0.1.10" = self.buildNodePackage {
-    name = "tapable-0.1.10";
-    version = "0.1.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz";
-      name = "tapable-0.1.10.tgz";
-      sha1 = "29c35707c2b70e50d07482b5d202e8ed446dafd4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tapable"."^0.2.3" =
-    self.by-version."tapable"."0.2.4";
-  by-version."tapable"."0.2.4" = self.buildNodePackage {
-    name = "tapable-0.2.4";
-    version = "0.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tapable/-/tapable-0.2.4.tgz";
-      name = "tapable-0.2.4.tgz";
-      sha1 = "a7814605089d4ba896c33c7e3566e13dcd194aa5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tapable"."~0.2.3" =
-    self.by-version."tapable"."0.2.4";
-  by-spec."tape"."~2.3.2" =
-    self.by-version."tape"."2.3.3";
-  by-version."tape"."2.3.3" = self.buildNodePackage {
-    name = "tape-2.3.3";
-    version = "2.3.3";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz";
-      name = "tape-2.3.3.tgz";
-      sha1 = "2e7ce0a31df09f8d6851664a71842e0ca5057af7";
-    };
-    deps = {
-      "jsonify-0.0.0" = self.by-version."jsonify"."0.0.0";
-      "deep-equal-0.1.2" = self.by-version."deep-equal"."0.1.2";
-      "defined-0.0.0" = self.by-version."defined"."0.0.0";
-      "through-2.3.8" = self.by-version."through"."2.3.8";
-      "resumer-0.0.0" = self.by-version."resumer"."0.0.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tar"."*" =
-    self.by-version."tar"."2.2.1";
-  by-version."tar"."2.2.1" = self.buildNodePackage {
-    name = "tar-2.2.1";
-    version = "2.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz";
-      name = "tar-2.2.1.tgz";
-      sha1 = "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1";
-    };
-    deps = {
-      "block-stream-0.0.9" = self.by-version."block-stream"."0.0.9";
-      "fstream-1.0.9" = self.by-version."fstream"."1.0.9";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "tar" = self.by-version."tar"."2.2.1";
-  by-spec."tar"."0.1.17" =
-    self.by-version."tar"."0.1.17";
-  by-version."tar"."0.1.17" = self.buildNodePackage {
-    name = "tar-0.1.17";
-    version = "0.1.17";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tar/-/tar-0.1.17.tgz";
-      name = "tar-0.1.17.tgz";
-      sha1 = "408c8a95deb8e78a65b59b1a51a333183a32badc";
-    };
-    deps = {
-      "inherits-1.0.2" = self.by-version."inherits"."1.0.2";
-      "block-stream-0.0.9" = self.by-version."block-stream"."0.0.9";
-      "fstream-0.1.31" = self.by-version."fstream"."0.1.31";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tar"."1.0.2" =
-    self.by-version."tar"."1.0.2";
-  by-version."tar"."1.0.2" = self.buildNodePackage {
-    name = "tar-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tar/-/tar-1.0.2.tgz";
-      name = "tar-1.0.2.tgz";
-      sha1 = "8b0f6740f9946259de26a3ed9c9a22890dff023f";
-    };
-    deps = {
-      "block-stream-0.0.9" = self.by-version."block-stream"."0.0.9";
-      "fstream-1.0.9" = self.by-version."fstream"."1.0.9";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tar"."^2.0.0" =
-    self.by-version."tar"."2.2.1";
-  by-spec."tar"."~2.2.0" =
-    self.by-version."tar"."2.2.1";
-  by-spec."tar"."~2.2.1" =
-    self.by-version."tar"."2.2.1";
-  by-spec."tar-pack"."~3.1.0" =
-    self.by-version."tar-pack"."3.1.3";
-  by-version."tar-pack"."3.1.3" = self.buildNodePackage {
-    name = "tar-pack-3.1.3";
-    version = "3.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.3.tgz";
-      name = "tar-pack-3.1.3.tgz";
-      sha1 = "611b7e62eb2f27aeda64554f7a7fb48900c7e157";
-    };
-    deps = {
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "fstream-1.0.9" = self.by-version."fstream"."1.0.9";
-      "fstream-ignore-1.0.5" = self.by-version."fstream-ignore"."1.0.5";
-      "once-1.3.3" = self.by-version."once"."1.3.3";
-      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "tar-2.2.1" = self.by-version."tar"."2.2.1";
-      "uid-number-0.0.6" = self.by-version."uid-number"."0.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tar-stream"."^1.0.0" =
-    self.by-version."tar-stream"."1.5.2";
-  by-version."tar-stream"."1.5.2" = self.buildNodePackage {
-    name = "tar-stream-1.5.2";
-    version = "1.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz";
-      name = "tar-stream-1.5.2.tgz";
-      sha1 = "fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf";
-    };
-    deps = {
-      "bl-1.1.2" = self.by-version."bl"."1.1.2";
-      "end-of-stream-1.1.0" = self.by-version."end-of-stream"."1.1.0";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tar-stream"."~1.1.0" =
-    self.by-version."tar-stream"."1.1.5";
-  by-version."tar-stream"."1.1.5" = self.buildNodePackage {
-    name = "tar-stream-1.1.5";
-    version = "1.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tar-stream/-/tar-stream-1.1.5.tgz";
-      name = "tar-stream-1.1.5.tgz";
-      sha1 = "be9218c130c20029e107b0f967fb23de0579d13c";
-    };
-    deps = {
-      "bl-0.9.5" = self.by-version."bl"."0.9.5";
-      "end-of-stream-1.1.0" = self.by-version."end-of-stream"."1.1.0";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."temp"."*" =
-    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 = "https://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 = [ ];
-  };
-  "temp" = self.by-version."temp"."0.8.3";
-  by-spec."temp"."0.6.0" =
-    self.by-version."temp"."0.6.0";
-  by-version."temp"."0.6.0" = self.buildNodePackage {
-    name = "temp-0.6.0";
-    version = "0.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/temp/-/temp-0.6.0.tgz";
-      name = "temp-0.6.0.tgz";
-      sha1 = "6b13df5cddf370f2e3a606ca40f202c419173f07";
-    };
-    deps = {
-      "rimraf-2.1.4" = self.by-version."rimraf"."2.1.4";
-      "osenv-0.0.3" = self.by-version."osenv"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."temp"."0.8.3" =
-    self.by-version."temp"."0.8.3";
-  by-spec."temp".">=0.5.0" =
-    self.by-version."temp"."0.8.3";
-  by-spec."temp"."^0.8.1" =
-    self.by-version."temp"."0.8.3";
-  by-spec."temp"."~0.8.3" =
-    self.by-version."temp"."0.8.3";
-  by-spec."tern"."*" =
-    self.by-version."tern"."0.18.0";
-  by-version."tern"."0.18.0" = self.buildNodePackage {
-    name = "tern-0.18.0";
-    version = "0.18.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tern/-/tern-0.18.0.tgz";
-      name = "tern-0.18.0.tgz";
-      sha1 = "c6177fe395c8ffc9c512f0ec7452a7d9c6220fa6";
-    };
-    deps = {
-      "acorn-2.7.0" = self.by-version."acorn"."2.7.0";
-      "enhanced-resolve-0.9.1" = self.by-version."enhanced-resolve"."0.9.1";
-      "glob-3.2.11" = self.by-version."glob"."3.2.11";
-      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
-      "typescript-1.0.1" = self.by-version."typescript"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "tern" = self.by-version."tern"."0.18.0";
-  by-spec."text-encoding"."0.5.2" =
-    self.by-version."text-encoding"."0.5.2";
-  by-version."text-encoding"."0.5.2" = self.buildNodePackage {
-    name = "text-encoding-0.5.2";
-    version = "0.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/text-encoding/-/text-encoding-0.5.2.tgz";
-      name = "text-encoding-0.5.2.tgz";
-      sha1 = "85b4660819f088777609465551690fea137d824a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."text-table"."~0.2.0" =
-    self.by-version."text-table"."0.2.0";
-  by-version."text-table"."0.2.0" = self.buildNodePackage {
-    name = "text-table-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
-      name = "text-table-0.2.0.tgz";
-      sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."thirty-two"."^0.0.2" =
-    self.by-version."thirty-two"."0.0.2";
-  by-version."thirty-two"."0.0.2" = self.buildNodePackage {
-    name = "thirty-two-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/thirty-two/-/thirty-two-0.0.2.tgz";
-      name = "thirty-two-0.0.2.tgz";
-      sha1 = "4253e29d8cb058f0480267c5698c0e4927e54b6a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."thirty-two"."^1.0.1" =
-    self.by-version."thirty-two"."1.0.1";
-  by-version."thirty-two"."1.0.1" = self.buildNodePackage {
-    name = "thirty-two-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.1.tgz";
-      name = "thirty-two-1.0.1.tgz";
-      sha1 = "fa500a927cfba6cfb4e767712b18106d395baf1d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."thirty-two"."~0.0.1" =
-    self.by-version."thirty-two"."0.0.2";
-  by-spec."throttleit"."^1.0.0" =
-    self.by-version."throttleit"."1.0.0";
-  by-version."throttleit"."1.0.0" = self.buildNodePackage {
-    name = "throttleit-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz";
-      name = "throttleit-1.0.0.tgz";
-      sha1 = "9e785836daf46743145a5984b6268d828528ac6c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."throttleit"."~0.0.2" =
-    self.by-version."throttleit"."0.0.2";
-  by-version."throttleit"."0.0.2" = self.buildNodePackage {
-    name = "throttleit-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz";
-      name = "throttleit-0.0.2.tgz";
-      sha1 = "cfedf88e60c00dd9697b61fdd2a8343a9b680eaf";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  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 = "https://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.2.7 <3" =
-    self.by-version."through"."2.3.8";
-  by-spec."through"."^2.3.6" =
-    self.by-version."through"."2.3.8";
-  by-spec."through"."^2.3.7" =
-    self.by-version."through"."2.3.8";
-  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."through"."~2.3.4" =
-    self.by-version."through"."2.3.8";
-  by-spec."through"."~2.3.8" =
-    self.by-version."through"."2.3.8";
-  by-spec."through2"."0.6.3" =
-    self.by-version."through2"."0.6.3";
-  by-version."through2"."0.6.3" = self.buildNodePackage {
-    name = "through2-0.6.3";
-    version = "0.6.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/through2/-/through2-0.6.3.tgz";
-      name = "through2-0.6.3.tgz";
-      sha1 = "795292fde9f254c2a368b38f9cc5d1bd4663afb6";
-    };
-    deps = {
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."through2"."0.6.x" =
-    self.by-version."through2"."0.6.5";
-  by-version."through2"."0.6.5" = self.buildNodePackage {
-    name = "through2-0.6.5";
-    version = "0.6.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz";
-      name = "through2-0.6.5.tgz";
-      sha1 = "41ab9c67b29d57209071410e1d7a7a968cd3ad48";
-    };
-    deps = {
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."through2"."^0.6.0" =
-    self.by-version."through2"."0.6.5";
-  by-spec."through2"."^0.6.1" =
-    self.by-version."through2"."0.6.5";
-  by-spec."through2"."^0.6.2" =
-    self.by-version."through2"."0.6.5";
-  by-spec."through2"."^0.6.3" =
-    self.by-version."through2"."0.6.5";
-  by-spec."through2"."^1.0.0" =
-    self.by-version."through2"."1.1.1";
-  by-version."through2"."1.1.1" = self.buildNodePackage {
-    name = "through2-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/through2/-/through2-1.1.1.tgz";
-      name = "through2-1.1.1.tgz";
-      sha1 = "0847cbc4449f3405574dbdccd9bb841b83ac3545";
-    };
-    deps = {
-      "readable-stream-1.1.14" = self.by-version."readable-stream"."1.1.14";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."through2"."^2.0.0" =
-    self.by-version."through2"."2.0.1";
-  by-version."through2"."2.0.1" = self.buildNodePackage {
-    name = "through2-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz";
-      name = "through2-2.0.1.tgz";
-      sha1 = "384e75314d49f32de12eebb8136b8eb6b5d59da9";
-    };
-    deps = {
-      "readable-stream-2.0.6" = self.by-version."readable-stream"."2.0.6";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."through2"."^2.0.1" =
-    self.by-version."through2"."2.0.1";
-  by-spec."through2"."~0.5.1" =
-    self.by-version."through2"."0.5.1";
-  by-version."through2"."0.5.1" = self.buildNodePackage {
-    name = "through2-0.5.1";
-    version = "0.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz";
-      name = "through2-0.5.1.tgz";
-      sha1 = "dfdd012eb9c700e2323fd334f38ac622ab372da7";
-    };
-    deps = {
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-      "xtend-3.0.0" = self.by-version."xtend"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."through2"."~0.6.1" =
-    self.by-version."through2"."0.6.5";
-  by-spec."through2"."~2.0.0" =
-    self.by-version."through2"."2.0.1";
-  by-spec."through2-filter"."^2.0.0" =
-    self.by-version."through2-filter"."2.0.0";
-  by-version."through2-filter"."2.0.0" = self.buildNodePackage {
-    name = "through2-filter-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz";
-      name = "through2-filter-2.0.0.tgz";
-      sha1 = "60bc55a0dacb76085db1f9dae99ab43f83d622ec";
-    };
-    deps = {
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."thunkify"."~2.1.1" =
-    self.by-version."thunkify"."2.1.2";
-  by-version."thunkify"."2.1.2" = self.buildNodePackage {
-    name = "thunkify-2.1.2";
-    version = "2.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz";
-      name = "thunkify-2.1.2.tgz";
-      sha1 = "faa0e9d230c51acc95ca13a361ac05ca7e04553d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."thunky"."^0.1.0" =
-    self.by-version."thunky"."0.1.0";
-  by-version."thunky"."0.1.0" = self.buildNodePackage {
-    name = "thunky-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz";
-      name = "thunky-0.1.0.tgz";
-      sha1 = "bf30146824e2b6e67b0f2d7a4ac8beb26908684e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."thunky"."~0.1.0" =
-    self.by-version."thunky"."0.1.0";
-  by-spec."tildify"."^1.0.0" =
-    self.by-version."tildify"."1.2.0";
-  by-version."tildify"."1.2.0" = self.buildNodePackage {
-    name = "tildify-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz";
-      name = "tildify-1.2.0.tgz";
-      sha1 = "dcec03f55dca9b7aa3e5b04f21817eb56e63588a";
-    };
-    deps = {
-      "os-homedir-1.0.1" = self.by-version."os-homedir"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."time".">=0.9.2" =
-    self.by-version."time"."0.11.4";
-  by-version."time"."0.11.4" = self.buildNodePackage {
-    name = "time-0.11.4";
-    version = "0.11.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/time/-/time-0.11.4.tgz";
-      name = "time-0.11.4.tgz";
-      sha1 = "ec3c8947d7fa488f3b1978b8110a68186f5d340f";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."time-line"."^1.0.1" =
-    self.by-version."time-line"."1.0.1";
-  by-version."time-line"."1.0.1" = self.buildNodePackage {
-    name = "time-line-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/time-line/-/time-line-1.0.1.tgz";
-      name = "time-line-1.0.1.tgz";
-      sha1 = "afb89542301c3b5010d118c66b5d63920f5e9a7a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."time-stamp"."^1.0.0" =
-    self.by-version."time-stamp"."1.0.1";
-  by-version."time-stamp"."1.0.1" = self.buildNodePackage {
-    name = "time-stamp-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz";
-      name = "time-stamp-1.0.1.tgz";
-      sha1 = "9f4bd23559c9365966f3302dbba2b07c6b99b151";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."timed-out"."^2.0.0" =
-    self.by-version."timed-out"."2.0.0";
-  by-version."timed-out"."2.0.0" = self.buildNodePackage {
-    name = "timed-out-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz";
-      name = "timed-out-2.0.0.tgz";
-      sha1 = "f38b0ae81d3747d628001f41dafc652ace671c0a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."timers-browserify"."^1.0.1" =
-    self.by-version."timers-browserify"."1.4.2";
-  by-version."timers-browserify"."1.4.2" = self.buildNodePackage {
-    name = "timers-browserify-1.4.2";
-    version = "1.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz";
-      name = "timers-browserify-1.4.2.tgz";
-      sha1 = "c9c58b575be8407375cb5e2462dacee74359f41d";
-    };
-    deps = {
-      "process-0.11.4" = self.by-version."process"."0.11.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."timespan"."~2.3.0" =
-    self.by-version."timespan"."2.3.0";
-  by-version."timespan"."2.3.0" = self.buildNodePackage {
-    name = "timespan-2.3.0";
-    version = "2.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz";
-      name = "timespan-2.3.0.tgz";
-      sha1 = "4902ce040bd13d845c8f59b27e9d59bad6f39929";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."timezone"."*" =
-    self.by-version."timezone"."1.0.4";
-  by-version."timezone"."1.0.4" = self.buildNodePackage {
-    name = "timezone-1.0.4";
-    version = "1.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/timezone/-/timezone-1.0.4.tgz";
-      name = "timezone-1.0.4.tgz";
-      sha1 = "c38edbad45c636228c1f33996ebc57e155f8b074";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "timezone" = self.by-version."timezone"."1.0.4";
-  by-spec."tinycolor"."0.x" =
-    self.by-version."tinycolor"."0.0.1";
-  by-spec."tinycolor"."0.0.x" =
-    self.by-version."tinycolor"."0.0.1";
-  by-version."tinycolor"."0.0.1" = self.buildNodePackage {
-    name = "tinycolor-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz";
-      name = "tinycolor-0.0.1.tgz";
-      sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."titanium"."*" =
-    self.by-version."titanium"."5.0.8";
-  by-version."titanium"."5.0.8" = self.buildNodePackage {
-    name = "titanium-5.0.8";
-    version = "5.0.8";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/titanium/-/titanium-5.0.8.tgz";
-      name = "titanium-5.0.8.tgz";
-      sha1 = "2c8e4db80880515feb1e3195645096057706d71b";
-    };
-    deps = {
-      "async-1.4.2" = self.by-version."async"."1.4.2";
-      "colors-1.1.2" = self.by-version."colors"."1.1.2";
-      "fields-0.1.24" = self.by-version."fields"."0.1.24";
-      "humanize-0.0.9" = self.by-version."humanize"."0.0.9";
-      "longjohn-0.2.9" = self.by-version."longjohn"."0.2.9";
-      "moment-2.10.6" = self.by-version."moment"."2.10.6";
-      "node-appc-0.2.31" = self.by-version."node-appc"."0.2.31";
-      "request-2.62.0" = self.by-version."request"."2.62.0";
-      "semver-5.0.3" = self.by-version."semver"."5.0.3";
-      "sprintf-0.1.5" = self.by-version."sprintf"."0.1.5";
-      "temp-0.8.3" = self.by-version."temp"."0.8.3";
-      "winston-1.0.2" = self.by-version."winston"."1.0.2";
-      "wrench-1.5.8" = self.by-version."wrench"."1.5.8";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "titanium" = self.by-version."titanium"."5.0.8";
-  by-spec."tldtools"."0.0.19" =
-    self.by-version."tldtools"."0.0.19";
-  by-version."tldtools"."0.0.19" = self.buildNodePackage {
-    name = "tldtools-0.0.19";
-    version = "0.0.19";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tldtools/-/tldtools-0.0.19.tgz";
-      name = "tldtools-0.0.19.tgz";
-      sha1 = "1df2277a43e291fd0a929c0e096a0a0917d75b1b";
-    };
-    deps = {
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tldtools".">=0.0.19" =
-    self.by-version."tldtools"."0.0.24";
-  by-version."tldtools"."0.0.24" = self.buildNodePackage {
-    name = "tldtools-0.0.24";
-    version = "0.0.24";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tldtools/-/tldtools-0.0.24.tgz";
-      name = "tldtools-0.0.24.tgz";
-      sha1 = "c9c793d04d7fbdccb90b1c02c019f7259375d612";
-    };
-    deps = {
-      "request-2.72.0" = self.by-version."request"."2.72.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tldtools".">=0.0.6" =
-    self.by-version."tldtools"."0.0.24";
-  by-spec."tls-connect"."^0.2.2" =
-    self.by-version."tls-connect"."0.2.2";
-  by-version."tls-connect"."0.2.2" = self.buildNodePackage {
-    name = "tls-connect-0.2.2";
-    version = "0.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tls-connect/-/tls-connect-0.2.2.tgz";
-      name = "tls-connect-0.2.2.tgz";
-      sha1 = "1d88d4f4cb829a0741b6acd05d1df73e0d566fd0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tmp"."0.0.24" =
-    self.by-version."tmp"."0.0.24";
-  by-version."tmp"."0.0.24" = self.buildNodePackage {
-    name = "tmp-0.0.24";
-    version = "0.0.24";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz";
-      name = "tmp-0.0.24.tgz";
-      sha1 = "d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tmp"."~0.0.20" =
-    self.by-version."tmp"."0.0.28";
-  by-version."tmp"."0.0.28" = self.buildNodePackage {
-    name = "tmp-0.0.28";
-    version = "0.0.28";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz";
-      name = "tmp-0.0.28.tgz";
-      sha1 = "172735b7f614ea7af39664fa84cf0de4e515d120";
-    };
-    deps = {
-      "os-tmpdir-1.0.1" = self.by-version."os-tmpdir"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."to-absolute-glob"."^0.1.1" =
-    self.by-version."to-absolute-glob"."0.1.1";
-  by-version."to-absolute-glob"."0.1.1" = self.buildNodePackage {
-    name = "to-absolute-glob-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz";
-      name = "to-absolute-glob-0.1.1.tgz";
-      sha1 = "1cdfa472a9ef50c239ee66999b662ca0eb39937f";
-    };
-    deps = {
-      "extend-shallow-2.0.1" = self.by-version."extend-shallow"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."to-array"."0.1.3" =
-    self.by-version."to-array"."0.1.3";
-  by-version."to-array"."0.1.3" = self.buildNodePackage {
-    name = "to-array-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/to-array/-/to-array-0.1.3.tgz";
-      name = "to-array-0.1.3.tgz";
-      sha1 = "d45dadc6363417f60f28474fea50ecddbb4f4991";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."to-array"."0.1.4" =
-    self.by-version."to-array"."0.1.4";
-  by-version."to-array"."0.1.4" = self.buildNodePackage {
-    name = "to-array-0.1.4";
-    version = "0.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz";
-      name = "to-array-0.1.4.tgz";
-      sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."to-arraybuffer"."^1.0.0" =
-    self.by-version."to-arraybuffer"."1.0.1";
-  by-version."to-arraybuffer"."1.0.1" = self.buildNodePackage {
-    name = "to-arraybuffer-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
-      name = "to-arraybuffer-1.0.1.tgz";
-      sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."to-iso-string"."0.0.2" =
-    self.by-version."to-iso-string"."0.0.2";
-  by-version."to-iso-string"."0.0.2" = self.buildNodePackage {
-    name = "to-iso-string-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz";
-      name = "to-iso-string-0.0.2.tgz";
-      sha1 = "4dc19e664dfccbe25bd8db508b00c6da158255d1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tomahawk"."0.1.6" =
-    self.by-version."tomahawk"."0.1.6";
-  by-version."tomahawk"."0.1.6" = self.buildNodePackage {
-    name = "tomahawk-0.1.6";
-    version = "0.1.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tomahawk/-/tomahawk-0.1.6.tgz";
-      name = "tomahawk-0.1.6.tgz";
-      sha1 = "9726580ec9f51c148cf2030c6255c110243d49a5";
-    };
-    deps = {
-      "body-parser-1.5.0" = self.by-version."body-parser"."1.5.0";
-      "connect-3.0.2" = self.by-version."connect"."3.0.2";
-      "errorhandler-1.1.1" = self.by-version."errorhandler"."1.1.1";
-      "express-4.6.1" = self.by-version."express"."4.6.1";
-      "morgan-1.2.0" = self.by-version."morgan"."1.2.0";
-      "node-options-0.0.6" = self.by-version."node-options"."0.0.6";
-      "socket.io-1.0.6" = self.by-version."socket.io"."1.0.6";
-      "winston-0.7.3" = self.by-version."winston"."0.7.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tomahawk-plugin-kv-memory-store"."0.0.3" =
-    self.by-version."tomahawk-plugin-kv-memory-store"."0.0.3";
-  by-version."tomahawk-plugin-kv-memory-store"."0.0.3" = self.buildNodePackage {
-    name = "tomahawk-plugin-kv-memory-store-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tomahawk-plugin-kv-memory-store/-/tomahawk-plugin-kv-memory-store-0.0.3.tgz";
-      name = "tomahawk-plugin-kv-memory-store-0.0.3.tgz";
-      sha1 = "120547598bd72ca72bd2eedb0ee03ae85c667b02";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."toobusy-js"."^0.4.2" =
-    self.by-version."toobusy-js"."0.4.3";
-  by-version."toobusy-js"."0.4.3" = self.buildNodePackage {
-    name = "toobusy-js-0.4.3";
-    version = "0.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/toobusy-js/-/toobusy-js-0.4.3.tgz";
-      name = "toobusy-js-0.4.3.tgz";
-      sha1 = "0db1a2ca73701b3f8c3b7df093801bfdad4ba5a7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  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 = "https://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."torrent-discovery"."^5.2.0" =
-    self.by-version."torrent-discovery"."5.4.0";
-  by-version."torrent-discovery"."5.4.0" = self.buildNodePackage {
-    name = "torrent-discovery-5.4.0";
-    version = "5.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-5.4.0.tgz";
-      name = "torrent-discovery-5.4.0.tgz";
-      sha1 = "2d17d82cf669ada7f9dfe75db4b31f7034b71e29";
-    };
-    deps = {
-      "bittorrent-dht-6.4.2" = self.by-version."bittorrent-dht"."6.4.2";
-      "bittorrent-tracker-7.7.0" = self.by-version."bittorrent-tracker"."7.7.0";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "re-emitter-1.1.3" = self.by-version."re-emitter"."1.1.3";
-      "run-parallel-1.1.6" = self.by-version."run-parallel"."1.1.6";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."torrent-piece"."^1.0.0" =
-    self.by-version."torrent-piece"."1.1.0";
-  by-version."torrent-piece"."1.1.0" = self.buildNodePackage {
-    name = "torrent-piece-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/torrent-piece/-/torrent-piece-1.1.0.tgz";
-      name = "torrent-piece-1.1.0.tgz";
-      sha1 = "dd3ae8dba3e58df5c9ed3457c055177849d82854";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."torrent-stream"."^0.18.1" =
-    self.by-version."torrent-stream"."0.18.1";
-  by-version."torrent-stream"."0.18.1" = self.buildNodePackage {
-    name = "torrent-stream-0.18.1";
-    version = "0.18.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/torrent-stream/-/torrent-stream-0.18.1.tgz";
-      name = "torrent-stream-0.18.1.tgz";
-      sha1 = "e2e8ca44d81f16fbe5646e0ebb05f5418fea9bf6";
-    };
-    deps = {
-      "bitfield-0.1.0" = self.by-version."bitfield"."0.1.0";
-      "bittorrent-dht-3.2.6" = self.by-version."bittorrent-dht"."3.2.6";
-      "bittorrent-tracker-2.12.1" = self.by-version."bittorrent-tracker"."2.12.1";
-      "bncode-0.5.3" = self.by-version."bncode"."0.5.3";
-      "compact2string-1.4.0" = self.by-version."compact2string"."1.4.0";
-      "end-of-stream-0.1.5" = self.by-version."end-of-stream"."0.1.5";
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "ip-0.3.3" = self.by-version."ip"."0.3.3";
-      "ip-set-1.0.0" = self.by-version."ip-set"."1.0.0";
-      "magnet-uri-2.0.1" = self.by-version."magnet-uri"."2.0.1";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "parse-torrent-4.1.0" = self.by-version."parse-torrent"."4.1.0";
-      "peer-wire-swarm-0.9.2" = self.by-version."peer-wire-swarm"."0.9.2";
-      "random-access-file-0.3.2" = self.by-version."random-access-file"."0.3.2";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "thunky-0.1.0" = self.by-version."thunky"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."torrent-stream"."^1.0.1" =
-    self.by-version."torrent-stream"."1.0.3";
-  by-version."torrent-stream"."1.0.3" = self.buildNodePackage {
-    name = "torrent-stream-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/torrent-stream/-/torrent-stream-1.0.3.tgz";
-      name = "torrent-stream-1.0.3.tgz";
-      sha1 = "d8c043b44c3c448c9397a3aec42d2df55887037b";
-    };
-    deps = {
-      "bitfield-0.1.0" = self.by-version."bitfield"."0.1.0";
-      "bncode-0.5.3" = self.by-version."bncode"."0.5.3";
-      "end-of-stream-0.1.5" = self.by-version."end-of-stream"."0.1.5";
-      "fs-chunk-store-1.6.2" = self.by-version."fs-chunk-store"."1.6.2";
-      "hat-0.0.3" = self.by-version."hat"."0.0.3";
-      "immediate-chunk-store-1.0.8" = self.by-version."immediate-chunk-store"."1.0.8";
-      "ip-set-1.0.0" = self.by-version."ip-set"."1.0.0";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "parse-torrent-4.1.0" = self.by-version."parse-torrent"."4.1.0";
-      "peer-wire-swarm-0.12.1" = self.by-version."peer-wire-swarm"."0.12.1";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "torrent-discovery-5.4.0" = self.by-version."torrent-discovery"."5.4.0";
-      "torrent-piece-1.1.0" = self.by-version."torrent-piece"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."touch"."1.0.0" =
-    self.by-version."touch"."1.0.0";
-  by-version."touch"."1.0.0" = self.buildNodePackage {
-    name = "touch-1.0.0";
-    version = "1.0.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz";
-      name = "touch-1.0.0.tgz";
-      sha1 = "449cbe2dbae5a8c8038e30d71fa0ff464947c4de";
-    };
-    deps = {
-      "nopt-1.0.10" = self.by-version."nopt"."1.0.10";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tough-cookie".">=0.12.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 = "https://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."tough-cookie"."^2.0.0" =
-    self.by-version."tough-cookie"."2.2.2";
-  by-spec."tough-cookie"."~2.2.0" =
-    self.by-version."tough-cookie"."2.2.2";
-  by-spec."transformers"."2.1.0" =
-    self.by-version."transformers"."2.1.0";
-  by-version."transformers"."2.1.0" = self.buildNodePackage {
-    name = "transformers-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz";
-      name = "transformers-2.1.0.tgz";
-      sha1 = "5d23cb35561dd85dc67fb8482309b47d53cce9a7";
-    };
-    deps = {
-      "promise-2.0.0" = self.by-version."promise"."2.0.0";
-      "css-1.0.8" = self.by-version."css"."1.0.8";
-      "uglify-js-2.2.5" = self.by-version."uglify-js"."2.2.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."traverse".">=0.2.4" =
-    self.by-version."traverse"."0.6.6";
-  by-version."traverse"."0.6.6" = self.buildNodePackage {
-    name = "traverse-0.6.6";
-    version = "0.6.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz";
-      name = "traverse-0.6.6.tgz";
-      sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137";
-    };
-    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 = "https://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."truncate"."~1.0.2" =
-    self.by-version."truncate"."1.0.5";
-  by-version."truncate"."1.0.5" = self.buildNodePackage {
-    name = "truncate-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/truncate/-/truncate-1.0.5.tgz";
-      name = "truncate-1.0.5.tgz";
-      sha1 = "c636c6c1f50eed7c927af06c1dbffab53c7abe28";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tryit"."^1.0.1" =
-    self.by-version."tryit"."1.0.2";
-  by-version."tryit"."1.0.2" = self.buildNodePackage {
-    name = "tryit-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tryit/-/tryit-1.0.2.tgz";
-      name = "tryit-1.0.2.tgz";
-      sha1 = "c196b0073e6b1c595d93c9c830855b7acc32a453";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tryor"."~0.1.2" =
-    self.by-version."tryor"."0.1.2";
-  by-version."tryor"."0.1.2" = self.buildNodePackage {
-    name = "tryor-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz";
-      name = "tryor-0.1.2.tgz";
-      sha1 = "8145e4ca7caff40acde3ccf946e8b8bb75b4172b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tsscmp"."1.0.5" =
-    self.by-version."tsscmp"."1.0.5";
-  by-version."tsscmp"."1.0.5" = self.buildNodePackage {
-    name = "tsscmp-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz";
-      name = "tsscmp-1.0.5.tgz";
-      sha1 = "7dc4a33af71581ab4337da91d85ca5427ebd9a97";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tty-browserify"."0.0.0" =
-    self.by-version."tty-browserify"."0.0.0";
-  by-version."tty-browserify"."0.0.0" = self.buildNodePackage {
-    name = "tty-browserify-0.0.0";
-    version = "0.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz";
-      name = "tty-browserify-0.0.0.tgz";
-      sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tty-browserify"."~0.0.0" =
-    self.by-version."tty-browserify"."0.0.0";
-  by-spec."tunnel-agent"."^0.4.0" =
-    self.by-version."tunnel-agent"."0.4.3";
-  by-version."tunnel-agent"."0.4.3" = self.buildNodePackage {
-    name = "tunnel-agent-0.4.3";
-    version = "0.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz";
-      name = "tunnel-agent-0.4.3.tgz";
-      sha1 = "6373db76909fe570e08d73583365ed828a74eeeb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tunnel-agent"."~0.2.0" =
-    self.by-version."tunnel-agent"."0.2.0";
-  by-version."tunnel-agent"."0.2.0" = self.buildNodePackage {
-    name = "tunnel-agent-0.2.0";
-    version = "0.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz";
-      name = "tunnel-agent-0.2.0.tgz";
-      sha1 = "6853c2afb1b2109e45629e492bde35f459ea69e8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tunnel-agent"."~0.3.0" =
-    self.by-version."tunnel-agent"."0.3.0";
-  by-version."tunnel-agent"."0.3.0" = self.buildNodePackage {
-    name = "tunnel-agent-0.3.0";
-    version = "0.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz";
-      name = "tunnel-agent-0.3.0.tgz";
-      sha1 = "ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tunnel-agent"."~0.4.0" =
-    self.by-version."tunnel-agent"."0.4.3";
-  by-spec."tunnel-agent"."~0.4.1" =
-    self.by-version."tunnel-agent"."0.4.3";
-  by-spec."tv4"."^1.2.7" =
-    self.by-version."tv4"."1.2.7";
-  by-version."tv4"."1.2.7" = self.buildNodePackage {
-    name = "tv4-1.2.7";
-    version = "1.2.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tv4/-/tv4-1.2.7.tgz";
-      name = "tv4-1.2.7.tgz";
-      sha1 = "bd29389afc73ade49ae5f48142b5d544bf68d120";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tweetnacl".">=0.13.0 <1.0.0" =
-    self.by-version."tweetnacl"."0.14.3";
-  by-version."tweetnacl"."0.14.3" = self.buildNodePackage {
-    name = "tweetnacl-0.14.3";
-    version = "0.14.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz";
-      name = "tweetnacl-0.14.3.tgz";
-      sha1 = "3da382f670f25ded78d7b3d1792119bca0b7132d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."tweetnacl"."~0.13.0" =
-    self.by-version."tweetnacl"."0.13.3";
-  by-version."tweetnacl"."0.13.3" = self.buildNodePackage {
-    name = "tweetnacl-0.13.3";
-    version = "0.13.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz";
-      name = "tweetnacl-0.13.3.tgz";
-      sha1 = "d628b56f3bcc3d5ae74ba9d4c1a704def5ab4b56";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."twilio".">=1.1.4" =
-    self.by-version."twilio"."2.9.1";
-  by-version."twilio"."2.9.1" = self.buildNodePackage {
-    name = "twilio-2.9.1";
-    version = "2.9.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/twilio/-/twilio-2.9.1.tgz";
-      name = "twilio-2.9.1.tgz";
-      sha1 = "043bfa240ccb33f5f76b771434c2421a0144bc85";
-    };
-    deps = {
-      "request-2.55.0" = self.by-version."request"."2.55.0";
-      "underscore-1.8.3" = self.by-version."underscore"."1.8.3";
-      "jsonwebtoken-5.4.1" = self.by-version."jsonwebtoken"."5.4.1";
-      "jwt-simple-0.1.0" = self.by-version."jwt-simple"."0.1.0";
-      "q-0.9.7" = self.by-version."q"."0.9.7";
-      "scmp-0.0.3" = self.by-version."scmp"."0.0.3";
-      "deprecate-0.1.0" = self.by-version."deprecate"."0.1.0";
-      "string.prototype.startswith-0.2.0" = self.by-version."string.prototype.startswith"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."twitter-ng"."0.6.2" =
-    self.by-version."twitter-ng"."0.6.2";
-  by-version."twitter-ng"."0.6.2" = self.buildNodePackage {
-    name = "twitter-ng-0.6.2";
-    version = "0.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/twitter-ng/-/twitter-ng-0.6.2.tgz";
-      name = "twitter-ng-0.6.2.tgz";
-      sha1 = "13707115dd04c9bd1f2c646da976589be4d64bc4";
-    };
-    deps = {
-      "oauth-0.9.14" = self.by-version."oauth"."0.9.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."type-check"."~0.3.2" =
-    self.by-version."type-check"."0.3.2";
-  by-version."type-check"."0.3.2" = self.buildNodePackage {
-    name = "type-check-0.3.2";
-    version = "0.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
-      name = "type-check-0.3.2.tgz";
-      sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
-    };
-    deps = {
-      "prelude-ls-1.1.2" = self.by-version."prelude-ls"."1.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."type-detect"."0.1.1" =
-    self.by-version."type-detect"."0.1.1";
-  by-version."type-detect"."0.1.1" = self.buildNodePackage {
-    name = "type-detect-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz";
-      name = "type-detect-0.1.1.tgz";
-      sha1 = "0ba5ec2a885640e470ea4e8505971900dac58822";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."type-detect"."^1.0.0" =
-    self.by-version."type-detect"."1.0.0";
-  by-version."type-detect"."1.0.0" = self.buildNodePackage {
-    name = "type-detect-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz";
-      name = "type-detect-1.0.0.tgz";
-      sha1 = "762217cc06db258ec48908a1298e8b95121e8ea2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."type-is"."~1.3.2" =
-    self.by-version."type-is"."1.3.2";
-  by-version."type-is"."1.3.2" = self.buildNodePackage {
-    name = "type-is-1.3.2";
-    version = "1.3.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/type-is/-/type-is-1.3.2.tgz";
-      name = "type-is-1.3.2.tgz";
-      sha1 = "4f2a5dc58775ca1630250afc7186f8b36309d1bb";
-    };
-    deps = {
-      "media-typer-0.2.0" = self.by-version."media-typer"."0.2.0";
-      "mime-types-1.0.2" = self.by-version."mime-types"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."type-is"."~1.5.2" =
-    self.by-version."type-is"."1.5.7";
-  by-version."type-is"."1.5.7" = self.buildNodePackage {
-    name = "type-is-1.5.7";
-    version = "1.5.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz";
-      name = "type-is-1.5.7.tgz";
-      sha1 = "b9368a593cc6ef7d0645e78b2f4c64cbecd05e90";
-    };
-    deps = {
-      "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0";
-      "mime-types-2.0.14" = self.by-version."mime-types"."2.0.14";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."type-is"."~1.6.10" =
-    self.by-version."type-is"."1.6.13";
-  by-version."type-is"."1.6.13" = self.buildNodePackage {
-    name = "type-is-1.6.13";
-    version = "1.6.13";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz";
-      name = "type-is-1.6.13.tgz";
-      sha1 = "6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08";
-    };
-    deps = {
-      "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0";
-      "mime-types-2.1.11" = self.by-version."mime-types"."2.1.11";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."type-is"."~1.6.11" =
-    self.by-version."type-is"."1.6.13";
-  by-spec."type-is"."~1.6.12" =
-    self.by-version."type-is"."1.6.13";
-  by-spec."type-is"."~1.6.4" =
-    self.by-version."type-is"."1.6.13";
-  by-spec."type-is"."~1.6.6" =
-    self.by-version."type-is"."1.6.13";
-  by-spec."type-of-is"."^3.4.0" =
-    self.by-version."type-of-is"."3.4.0";
-  by-version."type-of-is"."3.4.0" = self.buildNodePackage {
-    name = "type-of-is-3.4.0";
-    version = "3.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/type-of-is/-/type-of-is-3.4.0.tgz";
-      name = "type-of-is-3.4.0.tgz";
-      sha1 = "700dc096fbc9b86e4f79687beeb99e953d471508";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."typechecker"."~2.0.1" =
-    self.by-version."typechecker"."2.0.8";
-  by-version."typechecker"."2.0.8" = self.buildNodePackage {
-    name = "typechecker-2.0.8";
-    version = "2.0.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz";
-      name = "typechecker-2.0.8.tgz";
-      sha1 = "e83da84bb64c584ccb345838576c40b0337db82e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."typedarray"."~0.0.5" =
-    self.by-version."typedarray"."0.0.6";
-  by-version."typedarray"."0.0.6" = self.buildNodePackage {
-    name = "typedarray-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
-      name = "typedarray-0.0.6.tgz";
-      sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."typescript"."*" =
-    self.by-version."typescript"."1.9.0-dev.20160610-1.0";
-  by-version."typescript"."1.9.0-dev.20160610-1.0" = self.buildNodePackage {
-    name = "typescript-1.9.0-dev.20160610-1.0";
-    version = "1.9.0-dev.20160610-1.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-1.9.0-dev.20160610-1.0.tgz";
-      name = "typescript-1.9.0-dev.20160610-1.0.tgz";
-      sha1 = "768216dcc2528b9445b5cecaeb599b22ca8a3072";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "typescript" = self.by-version."typescript"."1.9.0-dev.20160610-1.0";
-  by-spec."typescript"."=1.0.1" =
-    self.by-version."typescript"."1.0.1";
-  by-version."typescript"."1.0.1" = self.buildNodePackage {
-    name = "typescript-1.0.1";
-    version = "1.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-1.0.1.tgz";
-      name = "typescript-1.0.1.tgz";
-      sha1 = "e8eacde3084a091d3fe29b60ac5862252662a25a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."typewise"."^1.0.3" =
-    self.by-version."typewise"."1.0.3";
-  by-version."typewise"."1.0.3" = self.buildNodePackage {
-    name = "typewise-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz";
-      name = "typewise-1.0.3.tgz";
-      sha1 = "1067936540af97937cc5dcf9922486e9fa284651";
-    };
-    deps = {
-      "typewise-core-1.2.0" = self.by-version."typewise-core"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."typewise-core"."^1.2" =
-    self.by-version."typewise-core"."1.2.0";
-  by-version."typewise-core"."1.2.0" = self.buildNodePackage {
-    name = "typewise-core-1.2.0";
-    version = "1.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz";
-      name = "typewise-core-1.2.0.tgz";
-      sha1 = "97eb91805c7f55d2f941748fa50d315d991ef195";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."typewise-core"."^1.2.0" =
-    self.by-version."typewise-core"."1.2.0";
-  by-spec."typewiselite"."~1.0.0" =
-    self.by-version."typewiselite"."1.0.0";
-  by-version."typewiselite"."1.0.0" = self.buildNodePackage {
-    name = "typewiselite-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz";
-      name = "typewiselite-1.0.0.tgz";
-      sha1 = "c8882fa1bb1092c06005a97f34ef5c8508e3664e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ua-parser-js"."^0.7.9" =
-    self.by-version."ua-parser-js"."0.7.10";
-  by-version."ua-parser-js"."0.7.10" = self.buildNodePackage {
-    name = "ua-parser-js-0.7.10";
-    version = "0.7.10";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.10.tgz";
-      name = "ua-parser-js-0.7.10.tgz";
-      sha1 = "917559ddcce07cbc09ece7d80495e4c268f4ef9f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uc.micro"."^1.0.0" =
-    self.by-version."uc.micro"."1.0.1";
-  by-version."uc.micro"."1.0.1" = self.buildNodePackage {
-    name = "uc.micro-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.1.tgz";
-      name = "uc.micro-1.0.1.tgz";
-      sha1 = "b4bca8b68246f45e8ead366a7e6cbd05e27d3293";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uc.micro"."^1.0.1" =
-    self.by-version."uc.micro"."1.0.1";
-  by-spec."uglify-js"."*" =
-    self.by-version."uglify-js"."2.6.2";
-  by-version."uglify-js"."2.6.2" = self.buildNodePackage {
-    name = "uglify-js-2.6.2";
-    version = "2.6.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.2.tgz";
-      name = "uglify-js-2.6.2.tgz";
-      sha1 = "f50be88a42cd396a6251dc52ab372f71cc12fef0";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-      "uglify-to-browserify-1.0.2" = self.by-version."uglify-to-browserify"."1.0.2";
-      "yargs-3.10.0" = self.by-version."yargs"."3.10.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "uglify-js" = self.by-version."uglify-js"."2.6.2";
-  by-spec."uglify-js"."1.2.5" =
-    self.by-version."uglify-js"."1.2.5";
-  by-version."uglify-js"."1.2.5" = self.buildNodePackage {
-    name = "uglify-js-1.2.5";
-    version = "1.2.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz";
-      name = "uglify-js-1.2.5.tgz";
-      sha1 = "b542c2c76f78efb34b200b20177634330ff702b6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uglify-js"."2.4.24" =
-    self.by-version."uglify-js"."2.4.24";
-  by-version."uglify-js"."2.4.24" = self.buildNodePackage {
-    name = "uglify-js-2.4.24";
-    version = "2.4.24";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz";
-      name = "uglify-js-2.4.24.tgz";
-      sha1 = "fad5755c1e1577658bb06ff9ab6e548c95bebd6e";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "source-map-0.1.34" = self.by-version."source-map"."0.1.34";
-      "uglify-to-browserify-1.0.2" = self.by-version."uglify-to-browserify"."1.0.2";
-      "yargs-3.5.4" = self.by-version."yargs"."3.5.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uglify-js"."2.6.2" =
-    self.by-version."uglify-js"."2.6.2";
-  by-spec."uglify-js"."^2.4.19" =
-    self.by-version."uglify-js"."2.6.2";
-  by-spec."uglify-js"."^2.6" =
-    self.by-version."uglify-js"."2.6.2";
-  by-spec."uglify-js"."~2.2.5" =
-    self.by-version."uglify-js"."2.2.5";
-  by-version."uglify-js"."2.2.5" = self.buildNodePackage {
-    name = "uglify-js-2.2.5";
-    version = "2.2.5";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz";
-      name = "uglify-js-2.2.5.tgz";
-      sha1 = "a6e02a70d839792b9780488b7b8b184c095c99c7";
-    };
-    deps = {
-      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
-      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uglify-js"."~2.3" =
-    self.by-version."uglify-js"."2.3.6";
-  by-version."uglify-js"."2.3.6" = self.buildNodePackage {
-    name = "uglify-js-2.3.6";
-    version = "2.3.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz";
-      name = "uglify-js-2.3.6.tgz";
-      sha1 = "fa0984770b428b7a9b2a8058f46355d14fef211a";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "source-map-0.1.43" = self.by-version."source-map"."0.1.43";
-      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uglify-js"."~2.6.0" =
-    self.by-version."uglify-js"."2.6.2";
-  by-spec."uglify-js"."~2.6.2" =
-    self.by-version."uglify-js"."2.6.2";
-  by-spec."uglify-to-browserify"."~1.0.0" =
-    self.by-version."uglify-to-browserify"."1.0.2";
-  by-version."uglify-to-browserify"."1.0.2" = self.buildNodePackage {
-    name = "uglify-to-browserify-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
-      name = "uglify-to-browserify-1.0.2.tgz";
-      sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uid"."0.0.2" =
-    self.by-version."uid"."0.0.2";
-  by-version."uid"."0.0.2" = self.buildNodePackage {
-    name = "uid-0.0.2";
-    version = "0.0.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uid/-/uid-0.0.2.tgz";
-      name = "uid-0.0.2.tgz";
-      sha1 = "5e4a5d4b78138b4f70f89fd3c76fc59aa9d2f103";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uid-number"."0.0.5" =
-    self.by-version."uid-number"."0.0.5";
-  by-version."uid-number"."0.0.5" = self.buildNodePackage {
-    name = "uid-number-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz";
-      name = "uid-number-0.0.5.tgz";
-      sha1 = "5a3db23ef5dbd55b81fce0ec9a2ac6fccdebb81e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uid-number"."0.0.6" =
-    self.by-version."uid-number"."0.0.6";
-  by-version."uid-number"."0.0.6" = self.buildNodePackage {
-    name = "uid-number-0.0.6";
-    version = "0.0.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz";
-      name = "uid-number-0.0.6.tgz";
-      sha1 = "0ea10e8035e8eb5b8e4449f06da1c730663baa81";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uid-number"."~0.0.6" =
-    self.by-version."uid-number"."0.0.6";
-  by-spec."uid-safe"."2.1.1" =
-    self.by-version."uid-safe"."2.1.1";
-  by-version."uid-safe"."2.1.1" = self.buildNodePackage {
-    name = "uid-safe-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.1.tgz";
-      name = "uid-safe-2.1.1.tgz";
-      sha1 = "3dbf9436b528be9f52882c05a6216c3763db3666";
-    };
-    deps = {
-      "base64-url-1.2.2" = self.by-version."base64-url"."1.2.2";
-      "random-bytes-1.0.0" = self.by-version."random-bytes"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uid-safe"."~2.0.0" =
-    self.by-version."uid-safe"."2.0.0";
-  by-version."uid-safe"."2.0.0" = self.buildNodePackage {
-    name = "uid-safe-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz";
-      name = "uid-safe-2.0.0.tgz";
-      sha1 = "a7f3c6ca64a1f6a5d04ec0ef3e4c3d5367317137";
-    };
-    deps = {
-      "base64-url-1.2.1" = self.by-version."base64-url"."1.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uid2"."0.0.3" =
-    self.by-version."uid2"."0.0.3";
-  by-version."uid2"."0.0.3" = self.buildNodePackage {
-    name = "uid2-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz";
-      name = "uid2-0.0.3.tgz";
-      sha1 = "483126e11774df2f71b8b639dcd799c376162b82";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uid2"."0.0.x" =
-    self.by-version."uid2"."0.0.3";
-  by-spec."uid2"."~0.0.2" =
-    self.by-version."uid2"."0.0.3";
-  by-spec."ultron"."1.0.x" =
-    self.by-version."ultron"."1.0.2";
-  by-version."ultron"."1.0.2" = self.buildNodePackage {
-    name = "ultron-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz";
-      name = "ultron-1.0.2.tgz";
-      sha1 = "ace116ab557cd197386a4e88f4685378c8b2e4fa";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."umask"."~1.1.0" =
-    self.by-version."umask"."1.1.0";
-  by-version."umask"."1.1.0" = self.buildNodePackage {
-    name = "umask-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz";
-      name = "umask-1.1.0.tgz";
-      sha1 = "f29cebf01df517912bb58ff9c4e50fde8e33320d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."umd"."^3.0.0" =
-    self.by-version."umd"."3.0.1";
-  by-version."umd"."3.0.1" = self.buildNodePackage {
-    name = "umd-3.0.1";
-    version = "3.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz";
-      name = "umd-3.0.1.tgz";
-      sha1 = "8ae556e11011f63c2596708a8837259f01b3d60e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."undefsafe"."0.0.3" =
-    self.by-version."undefsafe"."0.0.3";
-  by-version."undefsafe"."0.0.3" = self.buildNodePackage {
-    name = "undefsafe-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz";
-      name = "undefsafe-0.0.3.tgz";
-      sha1 = "ecca3a03e56b9af17385baac812ac83b994a962f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore"."*" =
-    self.by-version."underscore"."1.8.3";
-  by-version."underscore"."1.8.3" = self.buildNodePackage {
-    name = "underscore-1.8.3";
-    version = "1.8.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz";
-      name = "underscore-1.8.3.tgz";
-      sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "underscore" = self.by-version."underscore"."1.8.3";
-  by-spec."underscore"."1.2.1" =
-    self.by-version."underscore"."1.2.1";
-  by-version."underscore"."1.2.1" = self.buildNodePackage {
-    name = "underscore-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz";
-      name = "underscore-1.2.1.tgz";
-      sha1 = "fc5c6b0765673d92a2d4ac8b4dc0aa88702e2bd4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore"."1.6.x" =
-    self.by-version."underscore"."1.6.0";
-  by-version."underscore"."1.6.0" = self.buildNodePackage {
-    name = "underscore-1.6.0";
-    version = "1.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz";
-      name = "underscore-1.6.0.tgz";
-      sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore"."1.7.0" =
-    self.by-version."underscore"."1.7.0";
-  by-version."underscore"."1.7.0" = self.buildNodePackage {
-    name = "underscore-1.7.0";
-    version = "1.7.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz";
-      name = "underscore-1.7.0.tgz";
-      sha1 = "6bbaf0877500d36be34ecaa584e0db9fef035209";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore"."1.x" =
-    self.by-version."underscore"."1.8.3";
-  by-spec."underscore".">= 1.3.3" =
-    self.by-version."underscore"."1.8.3";
-  by-spec."underscore".">=1.1.7" =
-    self.by-version."underscore"."1.8.3";
-  by-spec."underscore".">=1.3.1" =
-    self.by-version."underscore"."1.8.3";
-  by-spec."underscore".">=1.5.2" =
-    self.by-version."underscore"."1.8.3";
-  by-spec."underscore".">=1.8.3" =
-    self.by-version."underscore"."1.8.3";
-  by-spec."underscore"."^1.7.0" =
-    self.by-version."underscore"."1.8.3";
-  by-spec."underscore"."^1.8.3" =
-    self.by-version."underscore"."1.8.3";
-  by-spec."underscore"."~1.4.3" =
-    self.by-version."underscore"."1.4.4";
-  by-version."underscore"."1.4.4" = self.buildNodePackage {
-    name = "underscore-1.4.4";
-    version = "1.4.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz";
-      name = "underscore-1.4.4.tgz";
-      sha1 = "61a6a32010622afa07963bf325203cf12239d604";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore"."~1.4.4" =
-    self.by-version."underscore"."1.4.4";
-  by-spec."underscore"."~1.5.2" =
-    self.by-version."underscore"."1.5.2";
-  by-version."underscore"."1.5.2" = self.buildNodePackage {
-    name = "underscore-1.5.2";
-    version = "1.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz";
-      name = "underscore-1.5.2.tgz";
-      sha1 = "1335c5e4f5e6d33bbb4b006ba8c86a00f556de08";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore"."~1.7.0" =
-    self.by-version."underscore"."1.7.0";
-  by-spec."underscore.string"."~2.2.1" =
-    self.by-version."underscore.string"."2.2.1";
-  by-version."underscore.string"."2.2.1" = self.buildNodePackage {
-    name = "underscore.string-2.2.1";
-    version = "2.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz";
-      name = "underscore.string-2.2.1.tgz";
-      sha1 = "d7c0fa2af5d5a1a67f4253daee98132e733f0f19";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore.string"."~2.3.1" =
-    self.by-version."underscore.string"."2.3.3";
-  by-version."underscore.string"."2.3.3" = self.buildNodePackage {
-    name = "underscore.string-2.3.3";
-    version = "2.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz";
-      name = "underscore.string-2.3.3.tgz";
-      sha1 = "71c08bf6b428b1133f37e78fa3a21c82f7329b0d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore.string"."~2.3.3" =
-    self.by-version."underscore.string"."2.3.3";
-  by-spec."underscore.string"."~2.4.0" =
-    self.by-version."underscore.string"."2.4.0";
-  by-version."underscore.string"."2.4.0" = self.buildNodePackage {
-    name = "underscore.string-2.4.0";
-    version = "2.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz";
-      name = "underscore.string-2.4.0.tgz";
-      sha1 = "8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore.string"."~3.0.3" =
-    self.by-version."underscore.string"."3.0.3";
-  by-version."underscore.string"."3.0.3" = self.buildNodePackage {
-    name = "underscore.string-3.0.3";
-    version = "3.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore.string/-/underscore.string-3.0.3.tgz";
-      name = "underscore.string-3.0.3.tgz";
-      sha1 = "4617b8c1a250cf6e5064fbbb363d0fa96cf14552";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."underscore.string"."~3.2.3" =
-    self.by-version."underscore.string"."3.2.3";
-  by-version."underscore.string"."3.2.3" = self.buildNodePackage {
-    name = "underscore.string-3.2.3";
-    version = "3.2.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz";
-      name = "underscore.string-3.2.3.tgz";
-      sha1 = "806992633665d5e5fcb4db1fb3a862eb68e9e6da";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unfunk-diff"."~0.0.1" =
-    self.by-version."unfunk-diff"."0.0.2";
-  by-version."unfunk-diff"."0.0.2" = self.buildNodePackage {
-    name = "unfunk-diff-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unfunk-diff/-/unfunk-diff-0.0.2.tgz";
-      name = "unfunk-diff-0.0.2.tgz";
-      sha1 = "8560d6b5cb3dcb1ed4d541e7fe59cea514697578";
-    };
-    deps = {
-      "diff-1.0.8" = self.by-version."diff"."1.0.8";
-      "jsesc-0.4.3" = self.by-version."jsesc"."0.4.3";
-      "ministyle-0.1.4" = self.by-version."ministyle"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ungit"."*" =
-    self.by-version."ungit"."0.10.1";
-  by-version."ungit"."0.10.1" = self.buildNodePackage {
-    name = "ungit-0.10.1";
-    version = "0.10.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-0.10.1.tgz";
-      name = "ungit-0.10.1.tgz";
-      sha1 = "46baa2bbdb767bbd0c4ecc64b1167052b06dab28";
-    };
-    deps = {
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "bluebird-3.2.2" = self.by-version."bluebird"."3.2.2";
-      "blueimp-md5-2.1.0" = self.by-version."blueimp-md5"."2.1.0";
-      "body-parser-1.14.2" = self.by-version."body-parser"."1.14.2";
-      "color-0.11.1" = self.by-version."color"."0.11.1";
-      "cookie-parser-1.4.3" = self.by-version."cookie-parser"."1.4.3";
-      "crossroads-0.12.2" = self.by-version."crossroads"."0.12.2";
-      "diff2html-1.2.0" = self.by-version."diff2html"."1.2.0";
-      "express-4.13.4" = self.by-version."express"."4.13.4";
-      "express-session-1.13.0" = self.by-version."express-session"."1.13.0";
-      "forever-monitor-1.1.0" = self.by-version."forever-monitor"."1.1.0";
-      "getmac-1.0.7" = self.by-version."getmac"."1.0.7";
-      "hasher-1.2.0" = self.by-version."hasher"."1.2.0";
-      "keen.io-0.1.3" = self.by-version."keen.io"."0.1.3";
-      "knockout-3.4.0" = self.by-version."knockout"."3.4.0";
-      "lodash-4.2.1" = self.by-version."lodash"."4.2.1";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "moment-2.11.2" = self.by-version."moment"."2.11.2";
-      "npm-registry-client-7.0.9" = self.by-version."npm-registry-client"."7.0.9";
-      "npmconf-2.1.2" = self.by-version."npmconf"."2.1.2";
-      "octicons-3.4.1" = self.by-version."octicons"."3.4.1";
-      "open-0.0.5" = self.by-version."open"."0.0.5";
-      "os-homedir-1.0.1" = self.by-version."os-homedir"."1.0.1";
-      "passport-0.3.2" = self.by-version."passport"."0.3.2";
-      "passport-local-1.0.0" = self.by-version."passport-local"."1.0.0";
-      "raven-0.10.0" = self.by-version."raven"."0.10.0";
-      "rc-1.1.6" = self.by-version."rc"."1.1.6";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-      "serve-static-1.10.3" = self.by-version."serve-static"."1.10.3";
-      "signals-1.0.0" = self.by-version."signals"."1.0.0";
-      "snapsvg-0.4.0" = self.by-version."snapsvg"."0.4.0";
-      "socket.io-1.4.6" = self.by-version."socket.io"."1.4.6";
-      "superagent-0.21.0" = self.by-version."superagent"."0.21.0";
-      "temp-0.8.3" = self.by-version."temp"."0.8.3";
-      "uuid-2.0.2" = self.by-version."uuid"."2.0.2";
-      "winston-2.1.1" = self.by-version."winston"."2.1.1";
-      "yargs-3.32.0" = self.by-version."yargs"."3.32.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "ungit" = self.by-version."ungit"."0.10.1";
-  by-spec."uniq"."^1.0.1" =
-    self.by-version."uniq"."1.0.1";
-  by-version."uniq"."1.0.1" = self.buildNodePackage {
-    name = "uniq-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz";
-      name = "uniq-1.0.1.tgz";
-      sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unique-filename"."~1.1.0" =
-    self.by-version."unique-filename"."1.1.0";
-  by-version."unique-filename"."1.1.0" = self.buildNodePackage {
-    name = "unique-filename-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz";
-      name = "unique-filename-1.1.0.tgz";
-      sha1 = "d05f2fe4032560871f30e93cbe735eea201514f3";
-    };
-    deps = {
-      "unique-slug-2.0.0" = self.by-version."unique-slug"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unique-slug"."^2.0.0" =
-    self.by-version."unique-slug"."2.0.0";
-  by-version."unique-slug"."2.0.0" = self.buildNodePackage {
-    name = "unique-slug-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz";
-      name = "unique-slug-2.0.0.tgz";
-      sha1 = "db6676e7c7cc0629878ff196097c78855ae9f4ab";
-    };
-    deps = {
-      "imurmurhash-0.1.4" = self.by-version."imurmurhash"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unique-stream"."^1.0.0" =
-    self.by-version."unique-stream"."1.0.0";
-  by-version."unique-stream"."1.0.0" = self.buildNodePackage {
-    name = "unique-stream-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz";
-      name = "unique-stream-1.0.0.tgz";
-      sha1 = "d59a4a75427447d9aa6c91e70263f8d26a4b104b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unique-stream"."^2.0.2" =
-    self.by-version."unique-stream"."2.2.1";
-  by-version."unique-stream"."2.2.1" = self.buildNodePackage {
-    name = "unique-stream-2.2.1";
-    version = "2.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz";
-      name = "unique-stream-2.2.1.tgz";
-      sha1 = "5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369";
-    };
-    deps = {
-      "json-stable-stringify-1.0.1" = self.by-version."json-stable-stringify"."1.0.1";
-      "through2-filter-2.0.0" = self.by-version."through2-filter"."2.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unorm"."1.3.3" =
-    self.by-version."unorm"."1.3.3";
-  by-version."unorm"."1.3.3" = self.buildNodePackage {
-    name = "unorm-1.3.3";
-    version = "1.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unorm/-/unorm-1.3.3.tgz";
-      name = "unorm-1.3.3.tgz";
-      sha1 = "16a8772671ebd6f7cde6f8c5e49bb60ac47dba93";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unorm"."^1.3.3" =
-    self.by-version."unorm"."1.4.1";
-  by-version."unorm"."1.4.1" = self.buildNodePackage {
-    name = "unorm-1.4.1";
-    version = "1.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz";
-      name = "unorm-1.4.1.tgz";
-      sha1 = "364200d5f13646ca8bcd44490271335614792300";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unpipe"."1.0.0" =
-    self.by-version."unpipe"."1.0.0";
-  by-version."unpipe"."1.0.0" = self.buildNodePackage {
-    name = "unpipe-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
-      name = "unpipe-1.0.0.tgz";
-      sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unpipe"."~1.0.0" =
-    self.by-version."unpipe"."1.0.0";
-  by-spec."untildify"."^2.0.0" =
-    self.by-version."untildify"."2.1.0";
-  by-version."untildify"."2.1.0" = self.buildNodePackage {
-    name = "untildify-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz";
-      name = "untildify-2.1.0.tgz";
-      sha1 = "17eb2807987f76952e9c0485fc311d06a826a2e0";
-    };
-    deps = {
-      "os-homedir-1.0.1" = self.by-version."os-homedir"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."unzip-response"."^1.0.0" =
-    self.by-version."unzip-response"."1.0.0";
-  by-version."unzip-response"."1.0.0" = self.buildNodePackage {
-    name = "unzip-response-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.0.tgz";
-      name = "unzip-response-1.0.0.tgz";
-      sha1 = "bfda54eeec658f00c2df4d4494b9dca0ca00f3e4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."update-notifier"."0.5.0" =
-    self.by-version."update-notifier"."0.5.0";
-  by-version."update-notifier"."0.5.0" = self.buildNodePackage {
-    name = "update-notifier-0.5.0";
-    version = "0.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz";
-      name = "update-notifier-0.5.0.tgz";
-      sha1 = "07b5dc2066b3627ab3b4f530130f7eddda07a4cc";
-    };
-    deps = {
-      "chalk-1.1.3" = self.by-version."chalk"."1.1.3";
-      "configstore-1.4.0" = self.by-version."configstore"."1.4.0";
-      "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";
-      "repeating-1.1.3" = self.by-version."repeating"."1.1.3";
-      "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."update-notifier"."^0.5.0" =
-    self.by-version."update-notifier"."0.5.0";
-  by-spec."uri-path"."^1.0.0" =
-    self.by-version."uri-path"."1.0.0";
-  by-version."uri-path"."1.0.0" = self.buildNodePackage {
-    name = "uri-path-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz";
-      name = "uri-path-1.0.0.tgz";
-      sha1 = "9747f018358933c31de0fccfd82d138e67262e32";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."url"."~0.10.1" =
-    self.by-version."url"."0.10.3";
-  by-version."url"."0.10.3" = self.buildNodePackage {
-    name = "url-0.10.3";
-    version = "0.10.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/url/-/url-0.10.3.tgz";
-      name = "url-0.10.3.tgz";
-      sha1 = "021e4d9c7705f21bbf37d03ceb58767402774c64";
-    };
-    deps = {
-      "punycode-1.3.2" = self.by-version."punycode"."1.3.2";
-      "querystring-0.2.0" = self.by-version."querystring"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."url"."~0.11.0" =
-    self.by-version."url"."0.11.0";
-  by-version."url"."0.11.0" = self.buildNodePackage {
-    name = "url-0.11.0";
-    version = "0.11.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz";
-      name = "url-0.11.0.tgz";
-      sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
-    };
-    deps = {
-      "punycode-1.3.2" = self.by-version."punycode"."1.3.2";
-      "querystring-0.2.0" = self.by-version."querystring"."0.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."url-join"."0.0.x" =
-    self.by-version."url-join"."0.0.1";
-  by-version."url-join"."0.0.1" = self.buildNodePackage {
-    name = "url-join-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz";
-      name = "url-join-0.0.1.tgz";
-      sha1 = "1db48ad422d3402469a87f7d97bdebfe4fb1e3c8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."user-home"."^1.1.1" =
-    self.by-version."user-home"."1.1.1";
-  by-version."user-home"."1.1.1" = self.buildNodePackage {
-    name = "user-home-1.1.1";
-    version = "1.1.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz";
-      name = "user-home-1.1.1.tgz";
-      sha1 = "2b5be23a32b63a7c9deb8d0f28d485724a3df190";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."user-home"."^2.0.0" =
-    self.by-version."user-home"."2.0.0";
-  by-version."user-home"."2.0.0" = self.buildNodePackage {
-    name = "user-home-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz";
-      name = "user-home-2.0.0.tgz";
-      sha1 = "9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f";
-    };
-    deps = {
-      "os-homedir-1.0.1" = self.by-version."os-homedir"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."useragent"."^2.1.6" =
-    self.by-version."useragent"."2.1.9";
-  by-version."useragent"."2.1.9" = self.buildNodePackage {
-    name = "useragent-2.1.9";
-    version = "2.1.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/useragent/-/useragent-2.1.9.tgz";
-      name = "useragent-2.1.9.tgz";
-      sha1 = "4dba2bc4dad1875777ab15de3ff8098b475000b7";
-    };
-    deps = {
-      "lru-cache-2.2.4" = self.by-version."lru-cache"."2.2.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utf-8-validate"."1.2.x" =
-    self.by-version."utf-8-validate"."1.2.1";
-  by-version."utf-8-validate"."1.2.1" = self.buildNodePackage {
-    name = "utf-8-validate-1.2.1";
-    version = "1.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-1.2.1.tgz";
-      name = "utf-8-validate-1.2.1.tgz";
-      sha1 = "44cb7c6eead73d6b40448f71f745904357b9f72c";
-    };
-    deps = {
-      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utf7"."1.0.0" =
-    self.by-version."utf7"."1.0.0";
-  by-version."utf7"."1.0.0" = self.buildNodePackage {
-    name = "utf7-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utf7/-/utf7-1.0.0.tgz";
-      name = "utf7-1.0.0.tgz";
-      sha1 = "70c895de9d85b8ee7ef5a1fa8e169241c46e72cc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utf8"."2.0.0" =
-    self.by-version."utf8"."2.0.0";
-  by-version."utf8"."2.0.0" = self.buildNodePackage {
-    name = "utf8-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utf8/-/utf8-2.0.0.tgz";
-      name = "utf8-2.0.0.tgz";
-      sha1 = "79ce59eced874809cab9a71fc7102c7d45d4118d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utf8"."2.1.0" =
-    self.by-version."utf8"."2.1.0";
-  by-version."utf8"."2.1.0" = self.buildNodePackage {
-    name = "utf8-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz";
-      name = "utf8-2.1.0.tgz";
-      sha1 = "0cfec5c8052d44a23e3aaa908104e8075f95dfd5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utfx"."~1.0.0" =
-    self.by-version."utfx"."1.0.1";
-  by-version."utfx"."1.0.1" = self.buildNodePackage {
-    name = "utfx-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utfx/-/utfx-1.0.1.tgz";
-      name = "utfx-1.0.1.tgz";
-      sha1 = "d52b2fd632a99eca8d9d4a39eece014a6a2b0048";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."util"."0.10.3" =
-    self.by-version."util"."0.10.3";
-  by-version."util"."0.10.3" = self.buildNodePackage {
-    name = "util-0.10.3";
-    version = "0.10.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz";
-      name = "util-0.10.3.tgz";
-      sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
-    };
-    deps = {
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."util"."0.4.9" =
-    self.by-version."util"."0.4.9";
-  by-version."util"."0.4.9" = self.buildNodePackage {
-    name = "util-0.4.9";
-    version = "0.4.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/util/-/util-0.4.9.tgz";
-      name = "util-0.4.9.tgz";
-      sha1 = "d95d5830d2328ec17dee3c80bfc50c33562b75a3";
-    };
-    deps = {
-      "events.node-0.4.9" = self.by-version."events.node"."0.4.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."util".">=0.10.3 <1" =
-    self.by-version."util"."0.10.3";
-  by-spec."util"."~0.10.1" =
-    self.by-version."util"."0.10.3";
-  by-spec."util"."~0.10.3" =
-    self.by-version."util"."0.10.3";
-  by-spec."util-deprecate"."1.0.2" =
-    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 = "https://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."util-deprecate"."~1.0.1" =
-    self.by-version."util-deprecate"."1.0.2";
-  by-spec."util-extend"."^1.0.1" =
-    self.by-version."util-extend"."1.0.3";
-  by-version."util-extend"."1.0.3" = self.buildNodePackage {
-    name = "util-extend-1.0.3";
-    version = "1.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz";
-      name = "util-extend-1.0.3.tgz";
-      sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utile"."0.1.x" =
-    self.by-version."utile"."0.1.7";
-  by-version."utile"."0.1.7" = self.buildNodePackage {
-    name = "utile-0.1.7";
-    version = "0.1.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utile/-/utile-0.1.7.tgz";
-      name = "utile-0.1.7.tgz";
-      sha1 = "55db180d54475339fd6dd9e2d14a4c0b52624b69";
-    };
-    deps = {
-      "async-0.1.22" = self.by-version."async"."0.1.22";
-      "deep-equal-1.0.1" = self.by-version."deep-equal"."1.0.1";
-      "i-0.3.5" = self.by-version."i"."0.3.5";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "ncp-0.2.7" = self.by-version."ncp"."0.2.7";
-      "rimraf-1.0.9" = self.by-version."rimraf"."1.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utile"."0.2.1" =
-    self.by-version."utile"."0.2.1";
-  by-version."utile"."0.2.1" = self.buildNodePackage {
-    name = "utile-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz";
-      name = "utile-0.2.1.tgz";
-      sha1 = "930c88e99098d6220834c356cbd9a770522d90d7";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "deep-equal-1.0.1" = self.by-version."deep-equal"."1.0.1";
-      "i-0.3.5" = self.by-version."i"."0.3.5";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "ncp-0.4.2" = self.by-version."ncp"."0.4.2";
-      "rimraf-2.5.2" = self.by-version."rimraf"."2.5.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utile"."0.2.x" =
-    self.by-version."utile"."0.2.1";
-  by-spec."utile"."~0.2.1" =
-    self.by-version."utile"."0.2.1";
-  by-spec."utils-merge"."1.0.0" =
-    self.by-version."utils-merge"."1.0.0";
-  by-version."utils-merge"."1.0.0" = self.buildNodePackage {
-    name = "utils-merge-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz";
-      name = "utils-merge-1.0.0.tgz";
-      sha1 = "0294fb922bb9375153541c4f7096231f287c8af8";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."utils-merge"."1.x.x" =
-    self.by-version."utils-merge"."1.0.0";
-  by-spec."utp"."0.0.7" =
-    self.by-version."utp"."0.0.7";
-  by-version."utp"."0.0.7" = self.buildNodePackage {
-    name = "utp-0.0.7";
-    version = "0.0.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/utp/-/utp-0.0.7.tgz";
-      name = "utp-0.0.7.tgz";
-      sha1 = "ae43eb7745f5fe63dcc2f277cb4164ad27087f30";
-    };
-    deps = {
-      "cyclist-0.1.1" = self.by-version."cyclist"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uue"."^3.0.0" =
-    self.by-version."uue"."3.0.0";
-  by-version."uue"."3.0.0" = self.buildNodePackage {
-    name = "uue-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uue/-/uue-3.0.0.tgz";
-      name = "uue-3.0.0.tgz";
-      sha1 = "07af69344defa9851b7b845c1c18110b8264e51e";
-    };
-    deps = {
-      "extend-3.0.0" = self.by-version."extend"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uuid"."^2.0.1" =
-    self.by-version."uuid"."2.0.2";
-  by-version."uuid"."2.0.2" = self.buildNodePackage {
-    name = "uuid-2.0.2";
-    version = "2.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/uuid/-/uuid-2.0.2.tgz";
-      name = "uuid-2.0.2.tgz";
-      sha1 = "48bd5698f0677e3c7901a1c46ef15b1643794726";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."uuid"."^2.0.2" =
-    self.by-version."uuid"."2.0.2";
-  by-spec."uuid"."~2.0.1" =
-    self.by-version."uuid"."2.0.2";
-  by-spec."v8-debug"."~0.7.1" =
-    self.by-version."v8-debug"."0.7.7";
-  by-version."v8-debug"."0.7.7" = self.buildNodePackage {
-    name = "v8-debug-0.7.7";
-    version = "0.7.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/v8-debug/-/v8-debug-0.7.7.tgz";
-      name = "v8-debug-0.7.7.tgz";
-      sha1 = "c0a14e7d2957209da2508f63a251ce3ffeeb4935";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-      "node-pre-gyp-0.6.28" = self.by-version."node-pre-gyp"."0.6.28";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."v8-profiler"."~5.6.0" =
-    self.by-version."v8-profiler"."5.6.5";
-  by-version."v8-profiler"."5.6.5" = self.buildNodePackage {
-    name = "v8-profiler-5.6.5";
-    version = "5.6.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/v8-profiler/-/v8-profiler-5.6.5.tgz";
-      name = "v8-profiler-5.6.5.tgz";
-      sha1 = "8b22e6ff3b76a1c75b1d53fd18d58e3f0a46f5be";
-    };
-    deps = {
-      "nan-2.3.5" = self.by-version."nan"."2.3.5";
-      "node-pre-gyp-0.6.28" = self.by-version."node-pre-gyp"."0.6.28";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."v8flags"."^2.0.2" =
-    self.by-version."v8flags"."2.0.11";
-  by-version."v8flags"."2.0.11" = self.buildNodePackage {
-    name = "v8flags-2.0.11";
-    version = "2.0.11";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/v8flags/-/v8flags-2.0.11.tgz";
-      name = "v8flags-2.0.11.tgz";
-      sha1 = "bca8f30f0d6d60612cc2c00641e6962d42ae6881";
-    };
-    deps = {
-      "user-home-1.1.1" = self.by-version."user-home"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vali-date"."^1.0.0" =
-    self.by-version."vali-date"."1.0.0";
-  by-version."vali-date"."1.0.0" = self.buildNodePackage {
-    name = "vali-date-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz";
-      name = "vali-date-1.0.0.tgz";
-      sha1 = "1b904a59609fb328ef078138420934f6b86709a6";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."valid-identifier"."0.0.1" =
-    self.by-version."valid-identifier"."0.0.1";
-  by-version."valid-identifier"."0.0.1" = self.buildNodePackage {
-    name = "valid-identifier-0.0.1";
-    version = "0.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz";
-      name = "valid-identifier-0.0.1.tgz";
-      sha1 = "ef1d7093a9d3287e3fce92df916f8616b23f90b4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."validate-npm-package-license"."*" =
-    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 = "https://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."validate-npm-package-license"."^3.0.1" =
-    self.by-version."validate-npm-package-license"."3.0.1";
-  by-spec."validate-npm-package-license"."~3.0.1" =
-    self.by-version."validate-npm-package-license"."3.0.1";
-  by-spec."validate-npm-package-name"."^2.0.1" =
-    self.by-version."validate-npm-package-name"."2.2.2";
-  by-version."validate-npm-package-name"."2.2.2" = self.buildNodePackage {
-    name = "validate-npm-package-name-2.2.2";
-    version = "2.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz";
-      name = "validate-npm-package-name-2.2.2.tgz";
-      sha1 = "f65695b22f7324442019a3c7fa39a6e7fd299085";
-    };
-    deps = {
-      "builtins-0.0.7" = self.by-version."builtins"."0.0.7";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."validate-npm-package-name"."~2.2.2" =
-    self.by-version."validate-npm-package-name"."2.2.2";
-  by-spec."validator"."1.5.1" =
-    self.by-version."validator"."1.5.1";
-  by-version."validator"."1.5.1" = self.buildNodePackage {
-    name = "validator-1.5.1";
-    version = "1.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/validator/-/validator-1.5.1.tgz";
-      name = "validator-1.5.1.tgz";
-      sha1 = "7ab356cbbcbbb000ab85c43b8cda12621b1344c0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."validator"."^2.1.0" =
-    self.by-version."validator"."2.1.0";
-  by-version."validator"."2.1.0" = self.buildNodePackage {
-    name = "validator-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/validator/-/validator-2.1.0.tgz";
-      name = "validator-2.1.0.tgz";
-      sha1 = "63276570def208adcf1c032c1f4e6a17d2bd8d8b";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vargs"."~0.1.0" =
-    self.by-version."vargs"."0.1.0";
-  by-version."vargs"."0.1.0" = self.buildNodePackage {
-    name = "vargs-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vargs/-/vargs-0.1.0.tgz";
-      name = "vargs-0.1.0.tgz";
-      sha1 = "6b6184da6520cc3204ce1b407cac26d92609ebff";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vary"."0.1.0" =
-    self.by-version."vary"."0.1.0";
-  by-version."vary"."0.1.0" = self.buildNodePackage {
-    name = "vary-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vary/-/vary-0.1.0.tgz";
-      name = "vary-0.1.0.tgz";
-      sha1 = "df0945899e93c0cc5bd18cc8321d9d21e74f6176";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vary"."^1" =
-    self.by-version."vary"."1.1.0";
-  by-version."vary"."1.1.0" = self.buildNodePackage {
-    name = "vary-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz";
-      name = "vary-1.1.0.tgz";
-      sha1 = "e1e5affbbd16ae768dd2674394b9ad3022653140";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vary"."~1.0.0" =
-    self.by-version."vary"."1.0.1";
-  by-version."vary"."1.0.1" = self.buildNodePackage {
-    name = "vary-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz";
-      name = "vary-1.0.1.tgz";
-      sha1 = "99e4981566a286118dfb2b817357df7993376d10";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vary"."~1.0.1" =
-    self.by-version."vary"."1.0.1";
-  by-spec."vary"."~1.1.0" =
-    self.by-version."vary"."1.1.0";
-  by-spec."vasync"."1.4.0" =
-    self.by-version."vasync"."1.4.0";
-  by-version."vasync"."1.4.0" = self.buildNodePackage {
-    name = "vasync-1.4.0";
-    version = "1.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vasync/-/vasync-1.4.0.tgz";
-      name = "vasync-1.4.0.tgz";
-      sha1 = "6ea5a63582358868d8743cbdd6ffadc9083b910f";
-    };
-    deps = {
-      "jsprim-0.3.0" = self.by-version."jsprim"."0.3.0";
-      "verror-1.1.0" = self.by-version."verror"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vasync"."1.4.3" =
-    self.by-version."vasync"."1.4.3";
-  by-version."vasync"."1.4.3" = self.buildNodePackage {
-    name = "vasync-1.4.3";
-    version = "1.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vasync/-/vasync-1.4.3.tgz";
-      name = "vasync-1.4.3.tgz";
-      sha1 = "c86d52e2b71613d29eedf159f3135dbe749cee37";
-    };
-    deps = {
-      "jsprim-0.3.0" = self.by-version."jsprim"."0.3.0";
-      "verror-1.1.0" = self.by-version."verror"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vasync"."1.6.2" =
-    self.by-version."vasync"."1.6.2";
-  by-version."vasync"."1.6.2" = self.buildNodePackage {
-    name = "vasync-1.6.2";
-    version = "1.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vasync/-/vasync-1.6.2.tgz";
-      name = "vasync-1.6.2.tgz";
-      sha1 = "568edcf40b2b5c35b1cc048cad085de4739703fb";
-    };
-    deps = {
-      "verror-1.1.0" = self.by-version."verror"."1.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vasync"."1.6.3" =
-    self.by-version."vasync"."1.6.3";
-  by-version."vasync"."1.6.3" = self.buildNodePackage {
-    name = "vasync-1.6.3";
-    version = "1.6.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vasync/-/vasync-1.6.3.tgz";
-      name = "vasync-1.6.3.tgz";
-      sha1 = "4a69d7052a47f4ce85503d7641df1cbf40432a94";
-    };
-    deps = {
-      "verror-1.6.0" = self.by-version."verror"."1.6.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."verror"."1.1.0" =
-    self.by-version."verror"."1.1.0";
-  by-version."verror"."1.1.0" = self.buildNodePackage {
-    name = "verror-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/verror/-/verror-1.1.0.tgz";
-      name = "verror-1.1.0.tgz";
-      sha1 = "2a4b4eb14a207051e75a6f94ee51315bf173a1b0";
-    };
-    deps = {
-      "extsprintf-1.0.0" = self.by-version."extsprintf"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."verror"."1.3.3" =
-    self.by-version."verror"."1.3.3";
-  by-version."verror"."1.3.3" = self.buildNodePackage {
-    name = "verror-1.3.3";
-    version = "1.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/verror/-/verror-1.3.3.tgz";
-      name = "verror-1.3.3.tgz";
-      sha1 = "8a6a4ac3a8c774b6f687fece49bdffd78552e2cd";
-    };
-    deps = {
-      "extsprintf-1.0.0" = self.by-version."extsprintf"."1.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."verror"."1.3.6" =
-    self.by-version."verror"."1.3.6";
-  by-version."verror"."1.3.6" = self.buildNodePackage {
-    name = "verror-1.3.6";
-    version = "1.3.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz";
-      name = "verror-1.3.6.tgz";
-      sha1 = "cff5df12946d297d2baaefaa2689e25be01c005c";
-    };
-    deps = {
-      "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."verror"."1.6.0" =
-    self.by-version."verror"."1.6.0";
-  by-version."verror"."1.6.0" = self.buildNodePackage {
-    name = "verror-1.6.0";
-    version = "1.6.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz";
-      name = "verror-1.6.0.tgz";
-      sha1 = "7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5";
-    };
-    deps = {
-      "extsprintf-1.2.0" = self.by-version."extsprintf"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."verror"."^1.4.0" =
-    self.by-version."verror"."1.6.1";
-  by-version."verror"."1.6.1" = self.buildNodePackage {
-    name = "verror-1.6.1";
-    version = "1.6.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/verror/-/verror-1.6.1.tgz";
-      name = "verror-1.6.1.tgz";
-      sha1 = "236402060648c219d1162c2451d1c341a0e1c9ce";
-    };
-    deps = {
-      "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2";
-      "extsprintf-1.2.0" = self.by-version."extsprintf"."1.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."verror"."^1.6.0" =
-    self.by-version."verror"."1.6.1";
-  by-spec."vhost"."1.0.0" =
-    self.by-version."vhost"."1.0.0";
-  by-version."vhost"."1.0.0" = self.buildNodePackage {
-    name = "vhost-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vhost/-/vhost-1.0.0.tgz";
-      name = "vhost-1.0.0.tgz";
-      sha1 = "654513f289a4f898aab745bbd633e40180c9c4c0";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vhost"."~3.0.1" =
-    self.by-version."vhost"."3.0.2";
-  by-version."vhost"."3.0.2" = self.buildNodePackage {
-    name = "vhost-3.0.2";
-    version = "3.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz";
-      name = "vhost-3.0.2.tgz";
-      sha1 = "2fb1decd4c466aa88b0f9341af33dc1aff2478d5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."view-helpers"."*" =
-    self.by-version."view-helpers"."0.1.5";
-  by-version."view-helpers"."0.1.5" = self.buildNodePackage {
-    name = "view-helpers-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/view-helpers/-/view-helpers-0.1.5.tgz";
-      name = "view-helpers-0.1.5.tgz";
-      sha1 = "175d220a6afeca8e3b497b003e2337bcc596f761";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "view-helpers" = self.by-version."view-helpers"."0.1.5";
-  by-spec."vinyl"."^0.4.0" =
-    self.by-version."vinyl"."0.4.6";
-  by-version."vinyl"."0.4.6" = self.buildNodePackage {
-    name = "vinyl-0.4.6";
-    version = "0.4.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz";
-      name = "vinyl-0.4.6.tgz";
-      sha1 = "2f356c87a550a255461f36bbeb2a5ba8bf784847";
-    };
-    deps = {
-      "clone-0.2.0" = self.by-version."clone"."0.2.0";
-      "clone-stats-0.0.1" = self.by-version."clone-stats"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vinyl"."^0.5.0" =
-    self.by-version."vinyl"."0.5.3";
-  by-version."vinyl"."0.5.3" = self.buildNodePackage {
-    name = "vinyl-0.5.3";
-    version = "0.5.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz";
-      name = "vinyl-0.5.3.tgz";
-      sha1 = "b0455b38fc5e0cf30d4325132e461970c2091cde";
-    };
-    deps = {
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-      "clone-stats-0.0.1" = self.by-version."clone-stats"."0.0.1";
-      "replace-ext-0.0.1" = self.by-version."replace-ext"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vinyl"."^1.0.0" =
-    self.by-version."vinyl"."1.1.1";
-  by-version."vinyl"."1.1.1" = self.buildNodePackage {
-    name = "vinyl-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vinyl/-/vinyl-1.1.1.tgz";
-      name = "vinyl-1.1.1.tgz";
-      sha1 = "7940887eef09381eb3626ac4c0f9ab53d4b7e450";
-    };
-    deps = {
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-      "clone-stats-0.0.1" = self.by-version."clone-stats"."0.0.1";
-      "replace-ext-0.0.1" = self.by-version."replace-ext"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vinyl"."^1.1.1" =
-    self.by-version."vinyl"."1.1.1";
-  by-spec."vinyl-fs"."^0.3.0" =
-    self.by-version."vinyl-fs"."0.3.14";
-  by-version."vinyl-fs"."0.3.14" = self.buildNodePackage {
-    name = "vinyl-fs-0.3.14";
-    version = "0.3.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz";
-      name = "vinyl-fs-0.3.14.tgz";
-      sha1 = "9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6";
-    };
-    deps = {
-      "defaults-1.0.3" = self.by-version."defaults"."1.0.3";
-      "glob-stream-3.1.18" = self.by-version."glob-stream"."3.1.18";
-      "glob-watcher-0.0.6" = self.by-version."glob-watcher"."0.0.6";
-      "graceful-fs-3.0.8" = self.by-version."graceful-fs"."3.0.8";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "strip-bom-1.0.0" = self.by-version."strip-bom"."1.0.0";
-      "through2-0.6.5" = self.by-version."through2"."0.6.5";
-      "vinyl-0.4.6" = self.by-version."vinyl"."0.4.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vinyl-fs"."^2.4.3" =
-    self.by-version."vinyl-fs"."2.4.3";
-  by-version."vinyl-fs"."2.4.3" = self.buildNodePackage {
-    name = "vinyl-fs-2.4.3";
-    version = "2.4.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.3.tgz";
-      name = "vinyl-fs-2.4.3.tgz";
-      sha1 = "3d97e562ebfdd4b66921dea70626b84bde9d2d07";
-    };
-    deps = {
-      "duplexify-3.4.3" = self.by-version."duplexify"."3.4.3";
-      "glob-stream-5.3.2" = self.by-version."glob-stream"."5.3.2";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "gulp-sourcemaps-1.6.0" = self.by-version."gulp-sourcemaps"."1.6.0";
-      "is-valid-glob-0.3.0" = self.by-version."is-valid-glob"."0.3.0";
-      "lazystream-1.0.0" = self.by-version."lazystream"."1.0.0";
-      "lodash.isequal-4.2.0" = self.by-version."lodash.isequal"."4.2.0";
-      "merge-stream-1.0.0" = self.by-version."merge-stream"."1.0.0";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "readable-stream-2.1.4" = self.by-version."readable-stream"."2.1.4";
-      "strip-bom-2.0.0" = self.by-version."strip-bom"."2.0.0";
-      "strip-bom-stream-1.0.0" = self.by-version."strip-bom-stream"."1.0.0";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "through2-filter-2.0.0" = self.by-version."through2-filter"."2.0.0";
-      "vali-date-1.0.0" = self.by-version."vali-date"."1.0.0";
-      "vinyl-1.1.1" = self.by-version."vinyl"."1.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vm-browserify"."0.0.4" =
-    self.by-version."vm-browserify"."0.0.4";
-  by-version."vm-browserify"."0.0.4" = self.buildNodePackage {
-    name = "vm-browserify-0.0.4";
-    version = "0.0.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz";
-      name = "vm-browserify-0.0.4.tgz";
-      sha1 = "5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73";
-    };
-    deps = {
-      "indexof-0.0.1" = self.by-version."indexof"."0.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vm-browserify"."~0.0.1" =
-    self.by-version."vm-browserify"."0.0.4";
-  by-spec."voc"."*" =
-    self.by-version."voc"."0.5.0";
-  by-version."voc"."0.5.0" = self.buildNodePackage {
-    name = "voc-0.5.0";
-    version = "0.5.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/voc/-/voc-0.5.0.tgz";
-      name = "voc-0.5.0.tgz";
-      sha1 = "be6ca7c76e4a57d930cc80f6b31fbd80ca86045c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."void-elements"."^2.0.0" =
-    self.by-version."void-elements"."2.0.1";
-  by-version."void-elements"."2.0.1" = self.buildNodePackage {
-    name = "void-elements-2.0.1";
-    version = "2.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz";
-      name = "void-elements-2.0.1.tgz";
-      sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."void-elements"."~2.0.1" =
-    self.by-version."void-elements"."2.0.1";
-  by-spec."vows".">=0.5.13" =
-    self.by-version."vows"."0.8.1";
-  by-version."vows"."0.8.1" = self.buildNodePackage {
-    name = "vows-0.8.1";
-    version = "0.8.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/vows/-/vows-0.8.1.tgz";
-      name = "vows-0.8.1.tgz";
-      sha1 = "e09e988ce594ca05a08d72abcca34e88db559131";
-    };
-    deps = {
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "diff-1.0.8" = self.by-version."diff"."1.0.8";
-      "glob-4.0.6" = self.by-version."glob"."4.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."vows".">=0.5.2" =
-    self.by-version."vows"."0.8.1";
-  by-spec."walk"."*" =
-    self.by-version."walk"."2.3.9";
-  by-version."walk"."2.3.9" = self.buildNodePackage {
-    name = "walk-2.3.9";
-    version = "2.3.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/walk/-/walk-2.3.9.tgz";
-      name = "walk-2.3.9.tgz";
-      sha1 = "31b4db6678f2ae01c39ea9fb8725a9031e558a7b";
-    };
-    deps = {
-      "foreachasync-3.0.0" = self.by-version."foreachasync"."3.0.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "walk" = self.by-version."walk"."2.3.9";
-  by-spec."walk"."^2.3.9" =
-    self.by-version."walk"."2.3.9";
-  by-spec."ware"."^1.2.0" =
-    self.by-version."ware"."1.3.0";
-  by-version."ware"."1.3.0" = self.buildNodePackage {
-    name = "ware-1.3.0";
-    version = "1.3.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz";
-      name = "ware-1.3.0.tgz";
-      sha1 = "d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4";
-    };
-    deps = {
-      "wrap-fn-0.1.5" = self.by-version."wrap-fn"."0.1.5";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."watch"."0.5.x" =
-    self.by-version."watch"."0.5.1";
-  by-version."watch"."0.5.1" = self.buildNodePackage {
-    name = "watch-0.5.1";
-    version = "0.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/watch/-/watch-0.5.1.tgz";
-      name = "watch-0.5.1.tgz";
-      sha1 = "50ea3a056358c98073e0bca59956de4afd20b213";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."watchpack"."^1.0.0" =
-    self.by-version."watchpack"."1.1.0";
-  by-version."watchpack"."1.1.0" = self.buildNodePackage {
-    name = "watchpack-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/watchpack/-/watchpack-1.1.0.tgz";
-      name = "watchpack-1.1.0.tgz";
-      sha1 = "42d44627464a2fadffc9308c0f7562cfde795f24";
-    };
-    deps = {
-      "async-2.0.0-rc.4" = self.by-version."async"."2.0.0-rc.4";
-      "chokidar-1.5.2" = self.by-version."chokidar"."1.5.2";
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wcwidth"."^1.0.0" =
-    self.by-version."wcwidth"."1.0.1";
-  by-version."wcwidth"."1.0.1" = self.buildNodePackage {
-    name = "wcwidth-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz";
-      name = "wcwidth-1.0.1.tgz";
-      sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
-    };
-    deps = {
-      "defaults-1.0.3" = self.by-version."defaults"."1.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wd"."^0.3.4" =
-    self.by-version."wd"."0.3.12";
-  by-version."wd"."0.3.12" = self.buildNodePackage {
-    name = "wd-0.3.12";
-    version = "0.3.12";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wd/-/wd-0.3.12.tgz";
-      name = "wd-0.3.12.tgz";
-      sha1 = "3fb4f1d759f8c85dde5393d17334ffe03e9bb329";
-    };
-    deps = {
-      "archiver-0.14.4" = self.by-version."archiver"."0.14.4";
-      "async-1.0.0" = self.by-version."async"."1.0.0";
-      "lodash-3.9.3" = self.by-version."lodash"."3.9.3";
-      "q-1.4.1" = self.by-version."q"."1.4.1";
-      "request-2.55.0" = self.by-version."request"."2.55.0";
-      "underscore.string-3.0.3" = self.by-version."underscore.string"."3.0.3";
-      "vargs-0.1.0" = self.by-version."vargs"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."weak-map"."^1.0.5" =
-    self.by-version."weak-map"."1.0.5";
-  by-version."weak-map"."1.0.5" = self.buildNodePackage {
-    name = "weak-map-1.0.5";
-    version = "1.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz";
-      name = "weak-map-1.0.5.tgz";
-      sha1 = "79691584d98607f5070bd3b70a40e6bb22e401eb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."webdrvr"."*" =
-    self.by-version."webdrvr"."2.43.0-1";
-  by-version."webdrvr"."2.43.0-1" = self.buildNodePackage {
-    name = "webdrvr-2.43.0-1";
-    version = "2.43.0-1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/webdrvr/-/webdrvr-2.43.0-1.tgz";
-      name = "webdrvr-2.43.0-1.tgz";
-      sha1 = "17c442b94c0a6a3a68293d6ea4deb408f8cb9225";
-    };
-    deps = {
-      "adm-zip-0.4.7" = self.by-version."adm-zip"."0.4.7";
-      "kew-0.1.7" = self.by-version."kew"."0.1.7";
-      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
-      "npmconf-0.1.16" = self.by-version."npmconf"."0.1.16";
-      "phantomjs-1.9.20" = self.by-version."phantomjs"."1.9.20";
-      "tmp-0.0.28" = self.by-version."tmp"."0.0.28";
-      "follow-redirects-0.0.3" = self.by-version."follow-redirects"."0.0.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "webdrvr" = self.by-version."webdrvr"."2.43.0-1";
-  by-spec."webpack"."*" =
-    self.by-version."webpack"."2.1.0-beta.13";
-  by-version."webpack"."2.1.0-beta.13" = self.buildNodePackage {
-    name = "webpack-2.1.0-beta.13";
-    version = "2.1.0-beta.13";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-2.1.0-beta.13.tgz";
-      name = "webpack-2.1.0-beta.13.tgz";
-      sha1 = "d4b82a42a7cd397580611121b4c451bfe9ec7fde";
-    };
-    deps = {
-      "acorn-3.2.0" = self.by-version."acorn"."3.2.0";
-      "async-1.5.2" = self.by-version."async"."1.5.2";
-      "clone-1.0.2" = self.by-version."clone"."1.0.2";
-      "enhanced-resolve-2.2.2" = self.by-version."enhanced-resolve"."2.2.2";
-      "interpret-1.0.1" = self.by-version."interpret"."1.0.1";
-      "loader-runner-2.1.1" = self.by-version."loader-runner"."2.1.1";
-      "loader-utils-0.2.15" = self.by-version."loader-utils"."0.2.15";
-      "memory-fs-0.3.0" = self.by-version."memory-fs"."0.3.0";
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-      "node-libs-browser-1.0.0" = self.by-version."node-libs-browser"."1.0.0";
-      "object-assign-4.1.0" = self.by-version."object-assign"."4.1.0";
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-      "supports-color-3.1.2" = self.by-version."supports-color"."3.1.2";
-      "tapable-0.2.4" = self.by-version."tapable"."0.2.4";
-      "uglify-js-2.6.2" = self.by-version."uglify-js"."2.6.2";
-      "watchpack-1.1.0" = self.by-version."watchpack"."1.1.0";
-      "webpack-sources-0.1.2" = self.by-version."webpack-sources"."0.1.2";
-      "yargs-4.7.1" = self.by-version."yargs"."4.7.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "webpack" = self.by-version."webpack"."2.1.0-beta.13";
-  by-spec."webpack-sources"."^0.1.0" =
-    self.by-version."webpack-sources"."0.1.2";
-  by-version."webpack-sources"."0.1.2" = self.buildNodePackage {
-    name = "webpack-sources-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.2.tgz";
-      name = "webpack-sources-0.1.2.tgz";
-      sha1 = "057a3f3255f8ba561b901d9150589aa103a57e65";
-    };
-    deps = {
-      "source-map-0.5.6" = self.by-version."source-map"."0.5.6";
-      "source-list-map-0.1.6" = self.by-version."source-list-map"."0.1.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."websocket-driver".">=0.5.1" =
-    self.by-version."websocket-driver"."0.6.5";
-  by-version."websocket-driver"."0.6.5" = self.buildNodePackage {
-    name = "websocket-driver-0.6.5";
-    version = "0.6.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz";
-      name = "websocket-driver-0.6.5.tgz";
-      sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
-    };
-    deps = {
-      "websocket-extensions-0.1.1" = self.by-version."websocket-extensions"."0.1.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."websocket-extensions".">=0.1.1" =
-    self.by-version."websocket-extensions"."0.1.1";
-  by-version."websocket-extensions"."0.1.1" = self.buildNodePackage {
-    name = "websocket-extensions-0.1.1";
-    version = "0.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz";
-      name = "websocket-extensions-0.1.1.tgz";
-      sha1 = "76899499c184b6ef754377c2dbb0cd6cb55d29e7";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."websocket-stream"."^3.0.1" =
-    self.by-version."websocket-stream"."3.2.1";
-  by-version."websocket-stream"."3.2.1" = self.buildNodePackage {
-    name = "websocket-stream-3.2.1";
-    version = "3.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/websocket-stream/-/websocket-stream-3.2.1.tgz";
-      name = "websocket-stream-3.2.1.tgz";
-      sha1 = "344629940eb8efd580fed0fde6d0617b44222335";
-    };
-    deps = {
-      "duplexify-3.4.3" = self.by-version."duplexify"."3.4.3";
-      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
-      "through2-2.0.1" = self.by-version."through2"."2.0.1";
-      "ws-1.1.0" = self.by-version."ws"."1.1.0";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."whatwg-fetch".">=0.10.0" =
-    self.by-version."whatwg-fetch"."1.0.0";
-  by-version."whatwg-fetch"."1.0.0" = self.buildNodePackage {
-    name = "whatwg-fetch-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz";
-      name = "whatwg-fetch-1.0.0.tgz";
-      sha1 = "01c2ac4df40e236aaa18480e3be74bd5c8eb798e";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."when"."3.7.7" =
-    self.by-version."when"."3.7.7";
-  by-version."when"."3.7.7" = self.buildNodePackage {
-    name = "when-3.7.7";
-    version = "3.7.7";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/when/-/when-3.7.7.tgz";
-      name = "when-3.7.7.tgz";
-      sha1 = "aba03fc3bb736d6c88b091d013d8a8e590d84718";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."when"."~3.4.6" =
-    self.by-version."when"."3.4.6";
-  by-version."when"."3.4.6" = self.buildNodePackage {
-    name = "when-3.4.6";
-    version = "3.4.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/when/-/when-3.4.6.tgz";
-      name = "when-3.4.6.tgz";
-      sha1 = "8fbcb7cc1439d2c3a68c431f1516e6dcce9ad28c";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."whet.extend"."~0.9.9" =
-    self.by-version."whet.extend"."0.9.9";
-  by-version."whet.extend"."0.9.9" = self.buildNodePackage {
-    name = "whet.extend-0.9.9";
-    version = "0.9.9";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz";
-      name = "whet.extend-0.9.9.tgz";
-      sha1 = "f877d5bf648c97e5aa542fadc16d6a259b9c11a1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."which"."1" =
-    self.by-version."which"."1.2.10";
-  by-version."which"."1.2.10" = self.buildNodePackage {
-    name = "which-1.2.10";
-    version = "1.2.10";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/which/-/which-1.2.10.tgz";
-      name = "which-1.2.10.tgz";
-      sha1 = "91cd9bd0751322411b659b40f054b21de957ab2d";
-    };
-    deps = {
-      "isexe-1.1.2" = self.by-version."isexe"."1.1.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."which"."^1.0.7" =
-    self.by-version."which"."1.2.10";
-  by-spec."which"."^1.1.1" =
-    self.by-version."which"."1.2.10";
-  by-spec."which"."^1.2.1" =
-    self.by-version."which"."1.2.10";
-  by-spec."which"."~1.0.5" =
-    self.by-version."which"."1.0.9";
-  by-version."which"."1.0.9" = self.buildNodePackage {
-    name = "which-1.0.9";
-    version = "1.0.9";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/which/-/which-1.0.9.tgz";
-      name = "which-1.0.9.tgz";
-      sha1 = "460c1da0f810103d0321a9b633af9e575e64486f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."which"."~1.2.1" =
-    self.by-version."which"."1.2.10";
-  by-spec."which"."~1.2.2" =
-    self.by-version."which"."1.2.10";
-  by-spec."which"."~1.2.8" =
-    self.by-version."which"."1.2.10";
-  by-spec."which"."~1.2.9" =
-    self.by-version."which"."1.2.10";
-  by-spec."wide-align"."^1.1.0" =
-    self.by-version."wide-align"."1.1.0";
-  by-version."wide-align"."1.1.0" = self.buildNodePackage {
-    name = "wide-align-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz";
-      name = "wide-align-1.1.0.tgz";
-      sha1 = "40edde802a71fea1f070da3e62dcda2e7add96ad";
-    };
-    deps = {
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."win-detect-browsers"."^1.0.1" =
-    self.by-version."win-detect-browsers"."1.0.2";
-  by-version."win-detect-browsers"."1.0.2" = self.buildNodePackage {
-    name = "win-detect-browsers-1.0.2";
-    version = "1.0.2";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/win-detect-browsers/-/win-detect-browsers-1.0.2.tgz";
-      name = "win-detect-browsers-1.0.2.tgz";
-      sha1 = "f45f10d141086c5d94ae14c03b2098440a7e71b0";
-    };
-    deps = {
-      "after-0.8.1" = self.by-version."after"."0.8.1";
-      "debug-2.2.0" = self.by-version."debug"."2.2.0";
-      "which-1.2.10" = self.by-version."which"."1.2.10";
-      "xtend-4.0.1" = self.by-version."xtend"."4.0.1";
-      "yargs-1.3.3" = self.by-version."yargs"."1.3.3";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."win-release"."^1.0.0" =
-    self.by-version."win-release"."1.1.1";
-  by-version."win-release"."1.1.1" = self.buildNodePackage {
-    name = "win-release-1.1.1";
-    version = "1.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz";
-      name = "win-release-1.1.1.tgz";
-      sha1 = "5fa55e02be7ca934edfc12665632e849b72e5209";
-    };
-    deps = {
-      "semver-5.1.0" = self.by-version."semver"."5.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."window-size"."0.1.0" =
-    self.by-version."window-size"."0.1.0";
-  by-version."window-size"."0.1.0" = self.buildNodePackage {
-    name = "window-size-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
-      name = "window-size-0.1.0.tgz";
-      sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."window-size"."^0.1.2" =
-    self.by-version."window-size"."0.1.4";
-  by-version."window-size"."0.1.4" = self.buildNodePackage {
-    name = "window-size-0.1.4";
-    version = "0.1.4";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz";
-      name = "window-size-0.1.4.tgz";
-      sha1 = "f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."window-size"."^0.1.4" =
-    self.by-version."window-size"."0.1.4";
-  by-spec."window-size"."^0.2.0" =
-    self.by-version."window-size"."0.2.0";
-  by-version."window-size"."0.2.0" = self.buildNodePackage {
-    name = "window-size-0.2.0";
-    version = "0.2.0";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz";
-      name = "window-size-0.2.0.tgz";
-      sha1 = "b4315bb4214a3d7058ebeee892e13fa24d98b075";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."windows-no-runnable"."~0.0.6" =
-    self.by-version."windows-no-runnable"."0.0.6";
-  by-version."windows-no-runnable"."0.0.6" = self.buildNodePackage {
-    name = "windows-no-runnable-0.0.6";
-    version = "0.0.6";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/windows-no-runnable/-/windows-no-runnable-0.0.6.tgz";
-      name = "windows-no-runnable-0.0.6.tgz";
-      sha1 = "91e5129088330a0fe248520cee12d1ad6bb4ddfb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."winston"."*" =
-    self.by-version."winston"."2.2.0";
-  by-version."winston"."2.2.0" = self.buildNodePackage {
-    name = "winston-2.2.0";
-    version = "2.2.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-2.2.0.tgz";
-      name = "winston-2.2.0.tgz";
-      sha1 = "2c853dd87ab552a8e8485d72cbbf9a2286f029b7";
-    };
-    deps = {
-      "async-1.0.0" = self.by-version."async"."1.0.0";
-      "colors-1.0.3" = self.by-version."colors"."1.0.3";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "winston" = self.by-version."winston"."2.2.0";
-  by-spec."winston"."0.6.2" =
-    self.by-version."winston"."0.6.2";
-  by-version."winston"."0.6.2" = self.buildNodePackage {
-    name = "winston-0.6.2";
-    version = "0.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-0.6.2.tgz";
-      name = "winston-0.6.2.tgz";
-      sha1 = "4144fe2586cdc19a612bf8c035590132c9064bd2";
-    };
-    deps = {
-      "async-0.1.22" = self.by-version."async"."0.1.22";
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
-      "request-2.9.203" = self.by-version."request"."2.9.203";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."winston"."0.6.x" =
-    self.by-version."winston"."0.6.2";
-  by-spec."winston"."0.7.2" =
-    self.by-version."winston"."0.7.2";
-  by-version."winston"."0.7.2" = self.buildNodePackage {
-    name = "winston-0.7.2";
-    version = "0.7.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-0.7.2.tgz";
-      name = "winston-0.7.2.tgz";
-      sha1 = "2570ae1aa1d8a9401e8d5a88362e1cf936550ceb";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-      "request-2.16.6" = self.by-version."request"."2.16.6";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."winston"."0.7.3" =
-    self.by-version."winston"."0.7.3";
-  by-version."winston"."0.7.3" = self.buildNodePackage {
-    name = "winston-0.7.3";
-    version = "0.7.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-0.7.3.tgz";
-      name = "winston-0.7.3.tgz";
-      sha1 = "7ae313ba73fcdc2ecb4aa2f9cd446e8298677266";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-      "request-2.16.6" = self.by-version."request"."2.16.6";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."winston"."0.8.0" =
-    self.by-version."winston"."0.8.0";
-  by-version."winston"."0.8.0" = self.buildNodePackage {
-    name = "winston-0.8.0";
-    version = "0.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz";
-      name = "winston-0.8.0.tgz";
-      sha1 = "61d0830fa699706212206b0a2b5ca69a93043668";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."winston"."0.8.x" =
-    self.by-version."winston"."0.8.3";
-  by-version."winston"."0.8.3" = self.buildNodePackage {
-    name = "winston-0.8.3";
-    version = "0.8.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz";
-      name = "winston-0.8.3.tgz";
-      sha1 = "64b6abf4cd01adcaefd5009393b1d8e8bec19db0";
-    };
-    deps = {
-      "async-0.2.10" = self.by-version."async"."0.2.10";
-      "colors-0.6.2" = self.by-version."colors"."0.6.2";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."winston"."1.0.0" =
-    self.by-version."winston"."1.0.0";
-  by-version."winston"."1.0.0" = self.buildNodePackage {
-    name = "winston-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-1.0.0.tgz";
-      name = "winston-1.0.0.tgz";
-      sha1 = "30e36e0041fc0a864b0029565719e4dc41d026a4";
-    };
-    deps = {
-      "async-0.9.2" = self.by-version."async"."0.9.2";
-      "colors-1.0.3" = self.by-version."colors"."1.0.3";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."winston"."1.0.x" =
-    self.by-version."winston"."1.0.2";
-  by-version."winston"."1.0.2" = self.buildNodePackage {
-    name = "winston-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-1.0.2.tgz";
-      name = "winston-1.0.2.tgz";
-      sha1 = "351c58e2323f8a4ca29a45195aa9aa3b4c35d76f";
-    };
-    deps = {
-      "async-1.0.0" = self.by-version."async"."1.0.0";
-      "colors-1.0.3" = self.by-version."colors"."1.0.3";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."winston"."~0.8.1" =
-    self.by-version."winston"."0.8.3";
-  by-spec."winston"."~2.1.1" =
-    self.by-version."winston"."2.1.1";
-  by-version."winston"."2.1.1" = self.buildNodePackage {
-    name = "winston-2.1.1";
-    version = "2.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz";
-      name = "winston-2.1.1.tgz";
-      sha1 = "3c9349d196207fd1bdff9d4bc43ef72510e3a12e";
-    };
-    deps = {
-      "async-1.0.0" = self.by-version."async"."1.0.0";
-      "colors-1.0.3" = self.by-version."colors"."1.0.3";
-      "cycle-1.0.3" = self.by-version."cycle"."1.0.3";
-      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
-      "isstream-0.1.2" = self.by-version."isstream"."0.1.2";
-      "pkginfo-0.3.1" = self.by-version."pkginfo"."0.3.1";
-      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."with"."~4.0.0" =
-    self.by-version."with"."4.0.3";
-  by-version."with"."4.0.3" = self.buildNodePackage {
-    name = "with-4.0.3";
-    version = "4.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/with/-/with-4.0.3.tgz";
-      name = "with-4.0.3.tgz";
-      sha1 = "eefd154e9e79d2c8d3417b647a8f14d9fecce14e";
-    };
-    deps = {
-      "acorn-1.2.2" = self.by-version."acorn"."1.2.2";
-      "acorn-globals-1.0.9" = self.by-version."acorn-globals"."1.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wordwrap"."0.0.2" =
-    self.by-version."wordwrap"."0.0.2";
-  by-version."wordwrap"."0.0.2" = self.buildNodePackage {
-    name = "wordwrap-0.0.2";
-    version = "0.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
-      name = "wordwrap-0.0.2.tgz";
-      sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wordwrap".">=0.0.1 <0.1.0" =
-    self.by-version."wordwrap"."0.0.3";
-  by-version."wordwrap"."0.0.3" = self.buildNodePackage {
-    name = "wordwrap-0.0.3";
-    version = "0.0.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz";
-      name = "wordwrap-0.0.3.tgz";
-      sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wordwrap"."^1.0.0" =
-    self.by-version."wordwrap"."1.0.0";
-  by-version."wordwrap"."1.0.0" = self.buildNodePackage {
-    name = "wordwrap-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
-      name = "wordwrap-1.0.0.tgz";
-      sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wordwrap"."~0.0.2" =
-    self.by-version."wordwrap"."0.0.3";
-  by-spec."wordwrap"."~1.0.0" =
-    self.by-version."wordwrap"."1.0.0";
-  by-spec."wrap-ansi"."^2.0.0" =
-    self.by-version."wrap-ansi"."2.0.0";
-  by-version."wrap-ansi"."2.0.0" = self.buildNodePackage {
-    name = "wrap-ansi-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.0.0.tgz";
-      name = "wrap-ansi-2.0.0.tgz";
-      sha1 = "7d30f8f873f9a5bbc3a64dabc8d177e071ae426f";
-    };
-    deps = {
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wrap-fn"."^0.1.0" =
-    self.by-version."wrap-fn"."0.1.5";
-  by-version."wrap-fn"."0.1.5" = self.buildNodePackage {
-    name = "wrap-fn-0.1.5";
-    version = "0.1.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz";
-      name = "wrap-fn-0.1.5.tgz";
-      sha1 = "f21b6e41016ff4a7e31720dbc63a09016bdf9845";
-    };
-    deps = {
-      "co-3.1.0" = self.by-version."co"."3.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wrappy"."1" =
-    self.by-version."wrappy"."1.0.2";
-  by-version."wrappy"."1.0.2" = self.buildNodePackage {
-    name = "wrappy-1.0.2";
-    version = "1.0.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
-      name = "wrappy-1.0.2.tgz";
-      sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."wrappy"."~1.0.1" =
-    self.by-version."wrappy"."1.0.2";
-  by-spec."wrench"."1.5.8" =
-    self.by-version."wrench"."1.5.8";
-  by-version."wrench"."1.5.8" = self.buildNodePackage {
-    name = "wrench-1.5.8";
-    version = "1.5.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wrench/-/wrench-1.5.8.tgz";
-      name = "wrench-1.5.8.tgz";
-      sha1 = "7a31c97f7869246d76c5cf2f5c977a1c4c8e5ab5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."write"."^0.2.1" =
-    self.by-version."write"."0.2.1";
-  by-version."write"."0.2.1" = self.buildNodePackage {
-    name = "write-0.2.1";
-    version = "0.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/write/-/write-0.2.1.tgz";
-      name = "write-0.2.1.tgz";
-      sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
-    };
-    deps = {
-      "mkdirp-0.5.1" = self.by-version."mkdirp"."0.5.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."write-file-atomic"."^1.1.2" =
-    self.by-version."write-file-atomic"."1.1.4";
-  by-version."write-file-atomic"."1.1.4" = self.buildNodePackage {
-    name = "write-file-atomic-1.1.4";
-    version = "1.1.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.1.4.tgz";
-      name = "write-file-atomic-1.1.4.tgz";
-      sha1 = "b1f52dc2e8dc0e3cb04d187a25f758a38a90ca3b";
-    };
-    deps = {
-      "graceful-fs-4.1.4" = self.by-version."graceful-fs"."4.1.4";
-      "imurmurhash-0.1.4" = self.by-version."imurmurhash"."0.1.4";
-      "slide-1.1.6" = self.by-version."slide"."1.1.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."write-file-atomic"."~1.1.4" =
-    self.by-version."write-file-atomic"."1.1.4";
-  by-spec."ws"."0.4.31" =
-    self.by-version."ws"."0.4.31";
-  by-version."ws"."0.4.31" = self.buildNodePackage {
-    name = "ws-0.4.31";
-    version = "0.4.31";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ws/-/ws-0.4.31.tgz";
-      name = "ws-0.4.31.tgz";
-      sha1 = "5a4849e7a9ccd1ed5a81aeb4847c9fedf3122927";
-    };
-    deps = {
-      "commander-0.6.1" = self.by-version."commander"."0.6.1";
-      "nan-0.3.2" = self.by-version."nan"."0.3.2";
-      "tinycolor-0.0.1" = self.by-version."tinycolor"."0.0.1";
-      "options-0.0.6" = self.by-version."options"."0.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ws"."0.4.x" =
-    self.by-version."ws"."0.4.32";
-  by-version."ws"."0.4.32" = self.buildNodePackage {
-    name = "ws-0.4.32";
-    version = "0.4.32";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ws/-/ws-0.4.32.tgz";
-      name = "ws-0.4.32.tgz";
-      sha1 = "787a6154414f3c99ed83c5772153b20feb0cec32";
-    };
-    deps = {
-      "commander-2.1.0" = self.by-version."commander"."2.1.0";
-      "nan-1.0.0" = self.by-version."nan"."1.0.0";
-      "tinycolor-0.0.1" = self.by-version."tinycolor"."0.0.1";
-      "options-0.0.6" = self.by-version."options"."0.0.6";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ws"."0.8.1" =
-    self.by-version."ws"."0.8.1";
-  by-spec."ws"."0.8.x" =
-    self.by-version."ws"."0.8.1";
-  by-version."ws"."0.8.1" = self.buildNodePackage {
-    name = "ws-0.8.1";
-    version = "0.8.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ws/-/ws-0.8.1.tgz";
-      name = "ws-0.8.1.tgz";
-      sha1 = "6b65273b99193c5f067a4cf5809598f777e3b759";
-    };
-    deps = {
-      "options-0.0.6" = self.by-version."options"."0.0.6";
-      "ultron-1.0.2" = self.by-version."ultron"."1.0.2";
-    };
-    optionalDependencies = {
-      "bufferutil-1.2.1" = self.by-version."bufferutil"."1.2.1";
-      "utf-8-validate-1.2.1" = self.by-version."utf-8-validate"."1.2.1";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ws"."1.0.1" =
-    self.by-version."ws"."1.0.1";
-  by-version."ws"."1.0.1" = self.buildNodePackage {
-    name = "ws-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ws/-/ws-1.0.1.tgz";
-      name = "ws-1.0.1.tgz";
-      sha1 = "7d0b2a2e58cddd819039c29c9de65045e1b310e9";
-    };
-    deps = {
-      "options-0.0.6" = self.by-version."options"."0.0.6";
-      "ultron-1.0.2" = self.by-version."ultron"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ws"."^1.0.0" =
-    self.by-version."ws"."1.1.0";
-  by-version."ws"."1.1.0" = self.buildNodePackage {
-    name = "ws-1.1.0";
-    version = "1.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ws/-/ws-1.1.0.tgz";
-      name = "ws-1.1.0.tgz";
-      sha1 = "c1d6fd1515d3ceff1f0ae2759bf5fd77030aad1d";
-    };
-    deps = {
-      "options-0.0.6" = self.by-version."options"."0.0.6";
-      "ultron-1.0.2" = self.by-version."ultron"."1.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."ws"."^1.0.1" =
-    self.by-version."ws"."1.1.0";
-  by-spec."wscat"."*" =
-    self.by-version."wscat"."1.0.1";
-  by-version."wscat"."1.0.1" = self.buildNodePackage {
-    name = "wscat-1.0.1";
-    version = "1.0.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wscat/-/wscat-1.0.1.tgz";
-      name = "wscat-1.0.1.tgz";
-      sha1 = "542b47c1c27334c64ececef9c2db02faf6212964";
-    };
-    deps = {
-      "commander-2.8.1" = self.by-version."commander"."2.8.1";
-      "tinycolor-0.0.1" = self.by-version."tinycolor"."0.0.1";
-      "ws-0.8.1" = self.by-version."ws"."0.8.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "wscat" = self.by-version."wscat"."1.0.1";
-  by-spec."wu"."*" =
-    self.by-version."wu"."2.1.0";
-  by-version."wu"."2.1.0" = self.buildNodePackage {
-    name = "wu-2.1.0";
-    version = "2.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/wu/-/wu-2.1.0.tgz";
-      name = "wu-2.1.0.tgz";
-      sha1 = "7e72e3fba23e0ff669ddd537e1c857d3d4b1614f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "wu" = self.by-version."wu"."2.1.0";
-  by-spec."x-default-browser"."~0.3.0" =
-    self.by-version."x-default-browser"."0.3.1";
-  by-version."x-default-browser"."0.3.1" = self.buildNodePackage {
-    name = "x-default-browser-0.3.1";
-    version = "0.3.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/x-default-browser/-/x-default-browser-0.3.1.tgz";
-      name = "x-default-browser-0.3.1.tgz";
-      sha1 = "7f6194154fd1786cf261e68b5488c47127a04977";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-      "default-browser-id-1.0.4" = self.by-version."default-browser-id"."1.0.4";
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."x509"."*" =
-    self.by-version."x509"."0.2.5";
-  by-version."x509"."0.2.5" = self.buildNodePackage {
-    name = "x509-0.2.5";
-    version = "0.2.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/x509/-/x509-0.2.5.tgz";
-      name = "x509-0.2.5.tgz";
-      sha1 = "2981c64dae023f2b21be08c0f2491a8e72bcbd78";
-    };
-    deps = {
-      "nan-2.2.0" = self.by-version."nan"."2.2.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  "x509" = self.by-version."x509"."0.2.5";
-  by-spec."xcode"."^0.8.5" =
-    self.by-version."xcode"."0.8.8";
-  by-version."xcode"."0.8.8" = self.buildNodePackage {
-    name = "xcode-0.8.8";
-    version = "0.8.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xcode/-/xcode-0.8.8.tgz";
-      name = "xcode-0.8.8.tgz";
-      sha1 = "1330877c4200f2094009e3bf144e6932596fcca0";
-    };
-    deps = {
-      "node-uuid-1.4.7" = self.by-version."node-uuid"."1.4.7";
-      "pegjs-0.9.0" = self.by-version."pegjs"."0.9.0";
-      "simple-plist-0.1.4" = self.by-version."simple-plist"."0.1.4";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xdg-basedir"."^2.0.0" =
-    self.by-version."xdg-basedir"."2.0.0";
-  by-version."xdg-basedir"."2.0.0" = self.buildNodePackage {
-    name = "xdg-basedir-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz";
-      name = "xdg-basedir-2.0.0.tgz";
-      sha1 = "edbc903cc385fc04523d966a335504b5504d1bd2";
-    };
-    deps = {
-      "os-homedir-1.0.1" = self.by-version."os-homedir"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xhr2".">= 0.0.5" =
-    self.by-version."xhr2"."0.1.3";
-  by-version."xhr2"."0.1.3" = self.buildNodePackage {
-    name = "xhr2-0.1.3";
-    version = "0.1.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xhr2/-/xhr2-0.1.3.tgz";
-      name = "xhr2-0.1.3.tgz";
-      sha1 = "cbfc4759a69b4a888e78cf4f20b051038757bd11";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml"."^1.0.0" =
-    self.by-version."xml"."1.0.1";
-  by-version."xml"."1.0.1" = self.buildNodePackage {
-    name = "xml-1.0.1";
-    version = "1.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz";
-      name = "xml-1.0.1.tgz";
-      sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml-name-validator"."^1.0.0" =
-    self.by-version."xml-name-validator"."1.0.0";
-  by-version."xml-name-validator"."1.0.0" = self.buildNodePackage {
-    name = "xml-name-validator-1.0.0";
-    version = "1.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-1.0.0.tgz";
-      name = "xml-name-validator-1.0.0.tgz";
-      sha1 = "dcf82ee092322951ef8cc1ba596c9cbfd14a83f1";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml2js"."0.1.x" =
-    self.by-version."xml2js"."0.1.14";
-  by-version."xml2js"."0.1.14" = self.buildNodePackage {
-    name = "xml2js-0.1.14";
-    version = "0.1.14";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml2js/-/xml2js-0.1.14.tgz";
-      name = "xml2js-0.1.14.tgz";
-      sha1 = "5274e67f5a64c5f92974cd85139e0332adc6b90c";
-    };
-    deps = {
-      "sax-1.2.1" = self.by-version."sax"."1.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml2js"."0.2.4" =
-    self.by-version."xml2js"."0.2.4";
-  by-version."xml2js"."0.2.4" = self.buildNodePackage {
-    name = "xml2js-0.2.4";
-    version = "0.2.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml2js/-/xml2js-0.2.4.tgz";
-      name = "xml2js-0.2.4.tgz";
-      sha1 = "9a5b577fa1e6cdf8923d5e1372f7a3188436e44d";
-    };
-    deps = {
-      "sax-1.2.1" = self.by-version."sax"."1.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml2js"."0.2.6" =
-    self.by-version."xml2js"."0.2.6";
-  by-version."xml2js"."0.2.6" = self.buildNodePackage {
-    name = "xml2js-0.2.6";
-    version = "0.2.6";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml2js/-/xml2js-0.2.6.tgz";
-      name = "xml2js-0.2.6.tgz";
-      sha1 = "d209c4e4dda1fc9c452141ef41c077f5adfdf6c4";
-    };
-    deps = {
-      "sax-0.4.2" = self.by-version."sax"."0.4.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml2js"."0.4.15" =
-    self.by-version."xml2js"."0.4.15";
-  by-version."xml2js"."0.4.15" = self.buildNodePackage {
-    name = "xml2js-0.4.15";
-    version = "0.4.15";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml2js/-/xml2js-0.4.15.tgz";
-      name = "xml2js-0.4.15.tgz";
-      sha1 = "95cd03ff2dd144ec28bc6273bf2b2890c581ad0c";
-    };
-    deps = {
-      "sax-1.2.1" = self.by-version."sax"."1.2.1";
-      "xmlbuilder-8.2.2" = self.by-version."xmlbuilder"."8.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml2js"."0.4.16" =
-    self.by-version."xml2js"."0.4.16";
-  by-version."xml2js"."0.4.16" = self.buildNodePackage {
-    name = "xml2js-0.4.16";
-    version = "0.4.16";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml2js/-/xml2js-0.4.16.tgz";
-      name = "xml2js-0.4.16.tgz";
-      sha1 = "f82fccd2f9540d7e0a9b5dac163e7471195c9db3";
-    };
-    deps = {
-      "sax-1.2.1" = self.by-version."sax"."1.2.1";
-      "xmlbuilder-4.2.1" = self.by-version."xmlbuilder"."4.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml2js"."0.4.4" =
-    self.by-version."xml2js"."0.4.4";
-  by-version."xml2js"."0.4.4" = self.buildNodePackage {
-    name = "xml2js-0.4.4";
-    version = "0.4.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz";
-      name = "xml2js-0.4.4.tgz";
-      sha1 = "3111010003008ae19240eba17497b57c729c555d";
-    };
-    deps = {
-      "sax-0.6.1" = self.by-version."sax"."0.6.1";
-      "xmlbuilder-8.2.2" = self.by-version."xmlbuilder"."8.2.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml2js".">= 0.0.1" =
-    self.by-version."xml2js"."0.4.16";
-  by-spec."xml2js".">=0.1.7" =
-    self.by-version."xml2js"."0.4.16";
-  by-spec."xml2js"."^0.4.15" =
-    self.by-version."xml2js"."0.4.16";
-  by-spec."xml2js"."^0.4.4" =
-    self.by-version."xml2js"."0.4.16";
-  by-spec."xml2json".">=0.3.2" =
-    self.by-version."xml2json"."0.9.1";
-  by-version."xml2json"."0.9.1" = self.buildNodePackage {
-    name = "xml2json-0.9.1";
-    version = "0.9.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml2json/-/xml2json-0.9.1.tgz";
-      name = "xml2json-0.9.1.tgz";
-      sha1 = "e0c25cc0adff3974024210ab66d7076f11bec161";
-    };
-    deps = {
-      "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
-      "joi-6.10.1" = self.by-version."joi"."6.10.1";
-      "node-expat-2.3.13" = self.by-version."node-expat"."2.3.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xml2json"."^0.5.1" =
-    self.by-version."xml2json"."0.5.1";
-  by-version."xml2json"."0.5.1" = self.buildNodePackage {
-    name = "xml2json-0.5.1";
-    version = "0.5.1";
-    bin = true;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xml2json/-/xml2json-0.5.1.tgz";
-      name = "xml2json-0.5.1.tgz";
-      sha1 = "4667011bf0b34e8ec9830cf83e9476659a94d9ba";
-    };
-    deps = {
-      "node-expat-2.3.13" = self.by-version."node-expat"."2.3.13";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlbuilder"."0.4.2" =
-    self.by-version."xmlbuilder"."0.4.2";
-  by-version."xmlbuilder"."0.4.2" = self.buildNodePackage {
-    name = "xmlbuilder-0.4.2";
-    version = "0.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.2.tgz";
-      name = "xmlbuilder-0.4.2.tgz";
-      sha1 = "1776d65f3fdbad470a08d8604cdeb1c4e540ff83";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlbuilder"."2.6.2" =
-    self.by-version."xmlbuilder"."2.6.2";
-  by-version."xmlbuilder"."2.6.2" = self.buildNodePackage {
-    name = "xmlbuilder-2.6.2";
-    version = "2.6.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.6.2.tgz";
-      name = "xmlbuilder-2.6.2.tgz";
-      sha1 = "f916f6d10d45dc171b1be2e6e673fb6e0cc35d0a";
-    };
-    deps = {
-      "lodash-3.5.0" = self.by-version."lodash"."3.5.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlbuilder"."3.1.0" =
-    self.by-version."xmlbuilder"."3.1.0";
-  by-version."xmlbuilder"."3.1.0" = self.buildNodePackage {
-    name = "xmlbuilder-3.1.0";
-    version = "3.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz";
-      name = "xmlbuilder-3.1.0.tgz";
-      sha1 = "2c86888f2d4eade850fa38ca7f7223f7209516e1";
-    };
-    deps = {
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlbuilder"."4.0.0" =
-    self.by-version."xmlbuilder"."4.0.0";
-  by-version."xmlbuilder"."4.0.0" = self.buildNodePackage {
-    name = "xmlbuilder-4.0.0";
-    version = "4.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz";
-      name = "xmlbuilder-4.0.0.tgz";
-      sha1 = "98b8f651ca30aa624036f127d11cc66dc7b907a3";
-    };
-    deps = {
-      "lodash-3.10.1" = self.by-version."lodash"."3.10.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlbuilder".">=1.0.0" =
-    self.by-version."xmlbuilder"."8.2.2";
-  by-version."xmlbuilder"."8.2.2" = self.buildNodePackage {
-    name = "xmlbuilder-8.2.2";
-    version = "8.2.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz";
-      name = "xmlbuilder-8.2.2.tgz";
-      sha1 = "69248673410b4ba42e1a6136551d2922335aa773";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlbuilder".">=2.4.6" =
-    self.by-version."xmlbuilder"."8.2.2";
-  by-spec."xmlbuilder"."^4.1.0" =
-    self.by-version."xmlbuilder"."4.2.1";
-  by-version."xmlbuilder"."4.2.1" = self.buildNodePackage {
-    name = "xmlbuilder-4.2.1";
-    version = "4.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz";
-      name = "xmlbuilder-4.2.1.tgz";
-      sha1 = "aa58a3041a066f90eaa16c2f5389ff19f3f461a5";
-    };
-    deps = {
-      "lodash-4.13.1" = self.by-version."lodash"."4.13.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmldom"."0.1.19" =
-    self.by-version."xmldom"."0.1.19";
-  by-version."xmldom"."0.1.19" = self.buildNodePackage {
-    name = "xmldom-0.1.19";
-    version = "0.1.19";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz";
-      name = "xmldom-0.1.19.tgz";
-      sha1 = "631fc07776efd84118bf25171b37ed4d075a0abc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmldom"."0.1.x" =
-    self.by-version."xmldom"."0.1.22";
-  by-version."xmldom"."0.1.22" = self.buildNodePackage {
-    name = "xmldom-0.1.22";
-    version = "0.1.22";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmldom/-/xmldom-0.1.22.tgz";
-      name = "xmldom-0.1.22.tgz";
-      sha1 = "10de4e5e964981f03c8cc72fadc08d14b6c3aa26";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlhttprequest"."1.4.2" =
-    self.by-version."xmlhttprequest"."1.4.2";
-  by-version."xmlhttprequest"."1.4.2" = self.buildNodePackage {
-    name = "xmlhttprequest-1.4.2";
-    version = "1.4.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz";
-      name = "xmlhttprequest-1.4.2.tgz";
-      sha1 = "01453a1d9bed1e8f172f6495bbf4c8c426321500";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlhttprequest".">= 1.6.0 < 2.0.0" =
-    self.by-version."xmlhttprequest"."1.8.0";
-  by-version."xmlhttprequest"."1.8.0" = self.buildNodePackage {
-    name = "xmlhttprequest-1.8.0";
-    version = "1.8.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz";
-      name = "xmlhttprequest-1.8.0.tgz";
-      sha1 = "67fe075c5c24fef39f9d65f5f7b7fe75171968fc";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlhttprequest".">=1.5.0" =
-    self.by-version."xmlhttprequest"."1.8.0";
-  by-spec."xmlhttprequest"."https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz" =
-    self.by-version."xmlhttprequest"."1.5.0";
-  by-version."xmlhttprequest"."1.5.0" = self.buildNodePackage {
-    name = "xmlhttprequest-1.5.0";
-    version = "1.5.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz";
-      name = "xmlhttprequest-1.5.0.tgz";
-      sha256 = "28dd0394d85befe8be4e9cd9f6803102780c62cbb09298cb174b52ff9777624f";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xmlhttprequest-ssl"."1.5.1" =
-    self.by-version."xmlhttprequest-ssl"."1.5.1";
-  by-version."xmlhttprequest-ssl"."1.5.1" = self.buildNodePackage {
-    name = "xmlhttprequest-ssl-1.5.1";
-    version = "1.5.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz";
-      name = "xmlhttprequest-ssl-1.5.1.tgz";
-      sha1 = "3b7741fea4a86675976e908d296d4445961faa67";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xoauth2"."~0.1.8" =
-    self.by-version."xoauth2"."0.1.8";
-  by-version."xoauth2"."0.1.8" = self.buildNodePackage {
-    name = "xoauth2-0.1.8";
-    version = "0.1.8";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xoauth2/-/xoauth2-0.1.8.tgz";
-      name = "xoauth2-0.1.8.tgz";
-      sha1 = "b916ff10ecfb54320f16f24a3e975120653ab0d2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xregexp"."2.0.0" =
-    self.by-version."xregexp"."2.0.0";
-  by-version."xregexp"."2.0.0" = self.buildNodePackage {
-    name = "xregexp-2.0.0";
-    version = "2.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz";
-      name = "xregexp-2.0.0.tgz";
-      sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xregexp"."^3.0.0" =
-    self.by-version."xregexp"."3.1.1";
-  by-version."xregexp"."3.1.1" = self.buildNodePackage {
-    name = "xregexp-3.1.1";
-    version = "3.1.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xregexp/-/xregexp-3.1.1.tgz";
-      name = "xregexp-3.1.1.tgz";
-      sha1 = "8ee18d75ef5c7cb3f9967f8d29414a6ca5b1a184";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xtend".">=4.0.0 <4.1.0-0" =
-    self.by-version."xtend"."4.0.1";
-  by-version."xtend"."4.0.1" = self.buildNodePackage {
-    name = "xtend-4.0.1";
-    version = "4.0.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz";
-      name = "xtend-4.0.1.tgz";
-      sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xtend"."^4.0.0" =
-    self.by-version."xtend"."4.0.1";
-  by-spec."xtend"."^4.0.1" =
-    self.by-version."xtend"."4.0.1";
-  by-spec."xtend"."~3.0.0" =
-    self.by-version."xtend"."3.0.0";
-  by-version."xtend"."3.0.0" = self.buildNodePackage {
-    name = "xtend-3.0.0";
-    version = "3.0.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz";
-      name = "xtend-3.0.0.tgz";
-      sha1 = "5cce7407baf642cba7becda568111c493f59665a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."xtend"."~4.0.0" =
-    self.by-version."xtend"."4.0.1";
-  by-spec."xtraverse"."0.1.x" =
-    self.by-version."xtraverse"."0.1.0";
-  by-version."xtraverse"."0.1.0" = self.buildNodePackage {
-    name = "xtraverse-0.1.0";
-    version = "0.1.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/xtraverse/-/xtraverse-0.1.0.tgz";
-      name = "xtraverse-0.1.0.tgz";
-      sha1 = "b741bad018ef78d8a9d2e83ade007b3f7959c732";
-    };
-    deps = {
-      "xmldom-0.1.22" = self.by-version."xmldom"."0.1.22";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."y18n"."^3.2.0" =
-    self.by-version."y18n"."3.2.1";
-  by-version."y18n"."3.2.1" = self.buildNodePackage {
-    name = "y18n-3.2.1";
-    version = "3.2.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz";
-      name = "y18n-3.2.1.tgz";
-      sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."y18n"."^3.2.1" =
-    self.by-version."y18n"."3.2.1";
-  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 = "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz";
-      name = "yallist-2.0.0.tgz";
-      sha1 = "306c543835f09ee1a4cb23b7bce9ab341c91cdd4";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yargs"."^1.3.3" =
-    self.by-version."yargs"."1.3.3";
-  by-version."yargs"."1.3.3" = self.buildNodePackage {
-    name = "yargs-1.3.3";
-    version = "1.3.3";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz";
-      name = "yargs-1.3.3.tgz";
-      sha1 = "054de8b61f22eefdb7207059eaef9d6b83fb931a";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yargs"."^3.19.0" =
-    self.by-version."yargs"."3.32.0";
-  by-version."yargs"."3.32.0" = self.buildNodePackage {
-    name = "yargs-3.32.0";
-    version = "3.32.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz";
-      name = "yargs-3.32.0.tgz";
-      sha1 = "03088e9ebf9e756b69751611d2a5ef591482c995";
-    };
-    deps = {
-      "camelcase-2.1.1" = self.by-version."camelcase"."2.1.1";
-      "cliui-3.2.0" = self.by-version."cliui"."3.2.0";
-      "decamelize-1.2.0" = self.by-version."decamelize"."1.2.0";
-      "os-locale-1.4.0" = self.by-version."os-locale"."1.4.0";
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-      "window-size-0.1.4" = self.by-version."window-size"."0.1.4";
-      "y18n-3.2.1" = self.by-version."y18n"."3.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yargs"."^3.31.0" =
-    self.by-version."yargs"."3.32.0";
-  by-spec."yargs"."^3.9.0" =
-    self.by-version."yargs"."3.32.0";
-  by-spec."yargs"."^4.7.1" =
-    self.by-version."yargs"."4.7.1";
-  by-version."yargs"."4.7.1" = self.buildNodePackage {
-    name = "yargs-4.7.1";
-    version = "4.7.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yargs/-/yargs-4.7.1.tgz";
-      name = "yargs-4.7.1.tgz";
-      sha1 = "e60432658a3387ff269c028eacde4a512e438dff";
-    };
-    deps = {
-      "camelcase-3.0.0" = self.by-version."camelcase"."3.0.0";
-      "cliui-3.2.0" = self.by-version."cliui"."3.2.0";
-      "decamelize-1.2.0" = self.by-version."decamelize"."1.2.0";
-      "lodash.assign-4.0.9" = self.by-version."lodash.assign"."4.0.9";
-      "os-locale-1.4.0" = self.by-version."os-locale"."1.4.0";
-      "pkg-conf-1.1.3" = self.by-version."pkg-conf"."1.1.3";
-      "read-pkg-up-1.0.1" = self.by-version."read-pkg-up"."1.0.1";
-      "require-main-filename-1.0.1" = self.by-version."require-main-filename"."1.0.1";
-      "set-blocking-1.0.0" = self.by-version."set-blocking"."1.0.0";
-      "string-width-1.0.1" = self.by-version."string-width"."1.0.1";
-      "window-size-0.2.0" = self.by-version."window-size"."0.2.0";
-      "y18n-3.2.1" = self.by-version."y18n"."3.2.1";
-      "yargs-parser-2.4.0" = self.by-version."yargs-parser"."2.4.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yargs"."~1.3.1" =
-    self.by-version."yargs"."1.3.3";
-  by-spec."yargs"."~3.10.0" =
-    self.by-version."yargs"."3.10.0";
-  by-version."yargs"."3.10.0" = self.buildNodePackage {
-    name = "yargs-3.10.0";
-    version = "3.10.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
-      name = "yargs-3.10.0.tgz";
-      sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
-    };
-    deps = {
-      "camelcase-1.2.1" = self.by-version."camelcase"."1.2.1";
-      "cliui-2.1.0" = self.by-version."cliui"."2.1.0";
-      "decamelize-1.2.0" = self.by-version."decamelize"."1.2.0";
-      "window-size-0.1.0" = self.by-version."window-size"."0.1.0";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yargs"."~3.27.0" =
-    self.by-version."yargs"."3.27.0";
-  by-version."yargs"."3.27.0" = self.buildNodePackage {
-    name = "yargs-3.27.0";
-    version = "3.27.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz";
-      name = "yargs-3.27.0.tgz";
-      sha1 = "21205469316e939131d59f2da0c6d7f98221ea40";
-    };
-    deps = {
-      "camelcase-1.2.1" = self.by-version."camelcase"."1.2.1";
-      "cliui-2.1.0" = self.by-version."cliui"."2.1.0";
-      "decamelize-1.2.0" = self.by-version."decamelize"."1.2.0";
-      "os-locale-1.4.0" = self.by-version."os-locale"."1.4.0";
-      "window-size-0.1.4" = self.by-version."window-size"."0.1.4";
-      "y18n-3.2.1" = self.by-version."y18n"."3.2.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yargs"."~3.32.0" =
-    self.by-version."yargs"."3.32.0";
-  by-spec."yargs"."~3.5.4" =
-    self.by-version."yargs"."3.5.4";
-  by-version."yargs"."3.5.4" = self.buildNodePackage {
-    name = "yargs-3.5.4";
-    version = "3.5.4";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz";
-      name = "yargs-3.5.4.tgz";
-      sha1 = "d8aff8f665e94c34bd259bdebd1bfaf0ddd35361";
-    };
-    deps = {
-      "camelcase-1.2.1" = self.by-version."camelcase"."1.2.1";
-      "decamelize-1.2.0" = self.by-version."decamelize"."1.2.0";
-      "window-size-0.1.0" = self.by-version."window-size"."0.1.0";
-      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yargs-parser"."^2.4.0" =
-    self.by-version."yargs-parser"."2.4.0";
-  by-version."yargs-parser"."2.4.0" = self.buildNodePackage {
-    name = "yargs-parser-2.4.0";
-    version = "2.4.0";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.0.tgz";
-      name = "yargs-parser-2.4.0.tgz";
-      sha1 = "1f367dc9c6cfa5660b6971230f3b277fc5e3adca";
-    };
-    deps = {
-      "camelcase-2.1.1" = self.by-version."camelcase"."2.1.1";
-      "lodash.assign-4.0.9" = self.by-version."lodash.assign"."4.0.9";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yauzl"."2.4.1" =
-    self.by-version."yauzl"."2.4.1";
-  by-version."yauzl"."2.4.1" = self.buildNodePackage {
-    name = "yauzl-2.4.1";
-    version = "2.4.1";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz";
-      name = "yauzl-2.4.1.tgz";
-      sha1 = "9528f442dab1b2284e58b4379bb194e22e0c4005";
-    };
-    deps = {
-      "fd-slicer-1.0.1" = self.by-version."fd-slicer"."1.0.1";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."yeast"."0.1.2" =
-    self.by-version."yeast"."0.1.2";
-  by-version."yeast"."0.1.2" = self.buildNodePackage {
-    name = "yeast-0.1.2";
-    version = "0.1.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz";
-      name = "yeast-0.1.2.tgz";
-      sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."zeparser"."0.0.5" =
-    self.by-version."zeparser"."0.0.5";
-  by-version."zeparser"."0.0.5" = self.buildNodePackage {
-    name = "zeparser-0.0.5";
-    version = "0.0.5";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz";
-      name = "zeparser-0.0.5.tgz";
-      sha1 = "03726561bc268f2e5444f54c665b7fd4a8c029e2";
-    };
-    deps = {
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-  by-spec."zip-stream"."~0.5.0" =
-    self.by-version."zip-stream"."0.5.2";
-  by-version."zip-stream"."0.5.2" = self.buildNodePackage {
-    name = "zip-stream-0.5.2";
-    version = "0.5.2";
-    bin = false;
-    src = fetchurl {
-      url = "https://registry.npmjs.org/zip-stream/-/zip-stream-0.5.2.tgz";
-      name = "zip-stream-0.5.2.tgz";
-      sha1 = "32dcbc506d0dab4d21372625bd7ebaac3c2fff56";
-    };
-    deps = {
-      "compress-commons-0.2.9" = self.by-version."compress-commons"."0.2.9";
-      "lodash-3.2.0" = self.by-version."lodash"."3.2.0";
-      "readable-stream-1.0.34" = self.by-version."readable-stream"."1.0.34";
-    };
-    optionalDependencies = {
-    };
-    peerDependencies = [];
-    os = [ ];
-    cpu = [ ];
-  };
-}
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
deleted file mode 100644
index 88d28bdcbc442..0000000000000
--- a/pkgs/top-level/node-packages.json
+++ /dev/null
@@ -1,192 +0,0 @@
-[
-  "async"
-, "almond"
-, "amdefine"
-, "ansi-remover"
-, "assert"
-, "aws-sdk"
-, "backbone"
-, "bcrypt"
-, "bip-pod-alchemy"
-, "bip-pod-chain"
-, "bip-pod-circonus"
-, "bip-pod-coindesk"
-, "bip-pod-craigslist"
-, "bip-pod-crypto"
-, "bip-pod-dropbox"
-, "bip-pod-embedly"
-, "bip-pod-evernote"
-, "bip-pod-facebook"
-, "bip-pod-flickr"
-, "bip-pod-github"
-, "bip-pod-github"
-, "bip-pod-github"
-, "bip-pod-gmail"
-, "bip-pod-google"
-, "bip-pod-google-drive"
-, "bip-pod-imgur"
-, "bip-pod-instagram"
-, "bip-pod-kato"
-, "bip-pod-keenio"
-, "bip-pod-mailchimp"
-, "bip-pod-mailgun"
-, "bip-pod-mixcloud"
-, "bip-pod-mongodb"
-, "bip-pod-numerous"
-, "bip-pod-pushbullet"
-, "bip-pod-pusher"
-, "bip-pod-soundcloud"
-, "bip-pod-statuscake"
-, "bip-pod-todoist"
-, "bip-pod-trello"
-, "bip-pod-trello"
-, "bip-pod-twilio"
-, "bip-pod-twitter"
-, "bip-pod-witai"
-, "bip-pod-wordpress"
-, "bip-pod-zoho"
-, "bipio"
-, "bower"
-, "bower2nix"
-, "browserchannel"
-, "browserify"
-, "buffertools"
-, "castnow"
-, "chai"
-, "coffee-script"
-, "connect-flash"
-, "connect-jade-static"
-, "connect-mongo"
-, "cordova"
-, "coveralls"
-, "deepmerge"
-, "docker-registry-server"
-, "escape-html"
-, "eslint"
-, "express"
-, "express-form"
-, "extend"
-, "faye-websocket"
-, "flatiron"
-, "forever"
-, "forever-monitor"
-, "fs-walk"
-, "git-run"
-, "gridfs-stream"
-, "grunt-cli"
-, "grunt-contrib-cssmin"
-, "grunt-contrib-eslint"
-, "grunt-contrib-jshint"
-, "grunt-contrib-less"
-, "grunt-contrib-requirejs"
-, "grunt-contrib-uglify"
-, "grunt-karma"
-, "grunt-sed"
-, "gulp"
-, "gzippo"
-, "hipache"
-, "i18next"
-, "ironhorse"
-, "istanbul"
-, "jade"
-, "jayschema"
-, "jfs"
-, "js-yaml"
-, "jshint"
-, "json"
-, "jsontool"
-, "karma"
-, "karma-chrome-launcher"
-, "karma-coverage"
-, "karma-junit-reporter"
-, "karma-mocha"
-, "karma-requirejs"
-, "karma-sauce-launcher"
-, "knox"
-, "kue"
-, "lcov-result-merger"
-, "less"
-, "ltx"
-, "marked"
-, "meat"
-, "mkdirp"
-, "mocha"
-, "mocha-phantomjs"
-, "mocha-unfunk-reporter"
-, "mongoose-schema-extend"
-, "nconf"
-, "nib"
-, "nijs"
-, "node-expat"
-, "node-gyp"
-, "node-inspector"
-, "node-protobuf"
-, "node-red"
-, "node-stringprep"
-, "node-uuid"
-, "node-xmpp-client"
-, "node-xmpp-component"
-, "node-xmpp-core"
-, "node-xmpp-joap"
-, "node-xmpp-server"
-, "node-xmpp-serviceadmin"
-, "nodemon"
-, "npm"
-, "npm-check-updates"
-, "optimist"
-, "optparse"
-, "owl-deepcopy"
-, { "parsoid": "0.4.1" }
-, "passport"
-, "passport-http"
-, "passport-local"
-, "peerflix"
-, "peerflix-server"
-, "phantomjs"
-, "plist-native"
-, "posix"
-, "pure"
-, "react"
-, "react-tools"
-, "redis"
-, "rethinkdb"
-, "rollup"
-, "s3http"
-, "selenium-webdriver"
-, "semver"
-, "shelljs"
-, "should"
-, "sinon"
-, "sinopia"
-, "slasp"
-, "sleep"
-, "sloc"
-, "smartdc"
-, "sockjs"
-, "source-map"
-, "stylus"
-, "svgo"
-, "tar"
-, "temp"
-, "tern"
-, "timezone"
-, "titanium"
-, "typescript"
-, "uglify-js"
-, "underscore"
-, "ungit"
-, "view-helpers"
-, "walk"
-, "webdrvr"
-, "webpack"
-, "winston"
-, "wscat"
-, "wu"
-, "x509"
-, "yarn"
-, { "guifi-earth": "https://github.com/jmendeth/guifi-earth/tarball/f3ee96835fd4fb0e3e12fadbd2cb782770d64854 " }
-, { "mongoose": "3.6.x" }
-, { "node-uptime": "https://github.com/fzaninotto/uptime/tarball/1c65756575f90f563a752e2a22892ba2981c79b7" }
-, { "npm2nix": "git://github.com/NixOS/npm2nix.git#5.12.0" }
-, { "swig": "0.14.x" }
-]
diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix
deleted file mode 100644
index d8eb668107be5..0000000000000
--- a/pkgs/top-level/node-packages.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-{
-  stdenv, pkgs, nodejs
-
-  # Self-reference
-, self
-
-  # Needed natives for installation
-, neededNatives ? [pkgs.python] ++ stdenv.lib.optionals stdenv.isLinux [ pkgs.utillinux ]
-
-  # Attribute set of generated packages
-, generated ? pkgs.callPackage ./node-packages-generated.nix { inherit self; }
-
-  # Attribute set of overrides
-, overrides ? {}
-, ...
-} @ args:
-
-with stdenv.lib;
-
-let
-  removeDeps = remove: deps: filterAttrs (n: d: all (r: r != d.pkgName) remove) deps;
-  replaceDep = replace: deps: mapAttrs (n: d: if d.pkgName == replace.pkgName then replace else d) deps;
-in rec {
-  overrides = {
-    phantomjs.buildInputs = [ pkgs.phantomjs ];
-    "node-expat".buildInputs = [ pkgs.expat ];
-    "node-stringprep".buildInputs = [ pkgs.icu pkgs.which ];
-    "node-protobuf".buildInputs = [ pkgs.protobuf ];
-
-    "tap-0.3.3".patchPhase = ''
-      substituteInPlace package.json --replace '"tap-consumer",' ""
-    '';
-    "node-uptime" = (p: {
-      # Net-ping is not really used
-      patchPhase = ''
-        ${self.json}/bin/json -I -f package.json -e 'delete this.dependencies["net-ping"]'
-      '';
-      deps = removeDeps ["net-ping"] p.deps;
-    });
-    bipio = (p: {
-      patchPhase = ''
-        substituteInPlace src/bootstrap.js --replace "memwatch = require('memwatch')," ""
-        ${self.json}/bin/json -I -f package.json -e 'this.scripts.install=""'
-        ${self.json}/bin/json -I -f package.json -e 'delete this.dependencies.sleep'
-        ${self.json}/bin/json -I -f package.json -e 'delete this.dependencies.memwatch'
-        ${self.json}/bin/json -I -f package.json -e 'delete this.dependencies["webkit-devtools-agent"]'
-      '';
-      deps = replaceDep self.sleep (removeDeps ["memwatch" "webkit-devtools-agent"] p.deps);
-    });
-    bip-pod.patchPhase = ''
-      substituteInPlace index.js --replace \
-        "__dirname + (literal ? '/' : '/../bip-pod-') + podName" \
-        "(literal ? __dirname + '/' : \"bip-pod-\") + podName"
-    '';
-    webdrvr.preBuild = ''
-      mkdir ../webdrvr
-      ln -s ${pkgs.fetchurl {
-        url = "https://selenium-release.storage.googleapis.com/2.43/selenium-server-standalone-2.43.1.jar";
-        sha1 = "ef1b5f8ae9c99332f99ba8794988a1d5b974d27b";
-      }} ../webdrvr/selenium-server-standalone-2.43.1.jar
-      ln -s ${pkgs.fetchurl {
-        url = "http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip";
-        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
-  buildNodePackage = {...} @ args:
-  let
-    pkg = makeOverridable (
-      pkgs.callPackage ../development/web/nodejs/build-node-package.nix {
-        inherit nodejs neededNatives;
-      }
-    ) (args // (optionalAttrs (isList args.src) {
-      # Backwards compatibility
-      src = head args.src;
-    }) // (optionalAttrs (attrByPath ["passthru" "names"] null args != null) {
-       pkgName = head args.passthru.names;
-    }));
-
-    override = overrides.${args.name} or overrides.${pkg.pkgName} or {};
-
-  in pkg.override override;
-
-  # Backwards compatibility
-  patchSource = fn: srcAttrs: fn srcAttrs;
-  patchLatest = patchSource pkgs.fetchurl;
-
-  /* Put manual packages below here (ideally eventually managed by npm2nix */
-} // (
-  if isAttrs generated then generated
-
-  # Backwards compatiblity
-  else pkgs.callPackage generated { inherit self; }
-)
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index bc5253328cfa6..65d3de2d9e2e4 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -54,10 +54,16 @@ let
 
     base64 = callPackage ../development/ocaml-modules/base64 { };
 
-    bap = callPackage ../development/ocaml-modules/bap { };
+    bap = callPackage ../development/ocaml-modules/bap {
+      inherit (janeStreet_0_9_0) core_kernel ppx_jane parsexp;
+    };
+
+    batteries = callPackage ../development/ocaml-modules/batteries { };
 
     bitstring = callPackage ../development/ocaml-modules/bitstring { };
 
+    bitv = callPackage ../development/ocaml-modules/bitv { };
+
     bolt = callPackage ../development/ocaml-modules/bolt { };
 
     bos = callPackage ../development/ocaml-modules/bos { };
@@ -98,7 +104,10 @@ let
     camlzip = callPackage ../development/ocaml-modules/camlzip { };
 
     camomile_0_8_2 = callPackage ../development/ocaml-modules/camomile/0.8.2.nix { };
-    camomile = callPackage ../development/ocaml-modules/camomile { };
+    camomile =
+      if lib.versionOlder "4.02" ocaml.version
+      then callPackage ../development/ocaml-modules/camomile { }
+      else callPackage ../development/ocaml-modules/camomile/0.8.5.nix { };
 
     camlimages_4_0 =
       if lib.versionOlder "4.02" ocaml.version
@@ -110,23 +119,29 @@ let
     camlimages_4_1 = callPackage ../development/ocaml-modules/camlimages/4.1.nix {
       giflib = pkgs.giflib_4_1;
     };
-    camlimages = camlimages_4_1;
+    camlimages =
+          if lib.versionOlder "4.06" ocaml.version
+          then callPackage ../development/ocaml-modules/camlimages { }
+          else camlimages_4_1;
 
     benchmark = callPackage ../development/ocaml-modules/benchmark { };
 
-    biniou = callPackage ../development/ocaml-modules/biniou { };
+    biniou =
+      if lib.versionOlder "4.02" ocaml.version
+      then callPackage ../development/ocaml-modules/biniou { }
+      else callPackage ../development/ocaml-modules/biniou/1.0.nix { };
 
     bin_prot_p4 = callPackage ../development/ocaml-modules/bin_prot { };
 
     ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
 
-    ocaml_cairo2 = callPackage ../development/ocaml-modules/ocaml-cairo2 { };
+    cairo2 = callPackage ../development/ocaml-modules/cairo2 { };
 
     cil = callPackage ../development/ocaml-modules/cil { };
 
-    cmdliner = callPackage ../development/ocaml-modules/cmdliner { };
+    cmdliner_0_9 = callPackage ../development/ocaml-modules/cmdliner/0.9.nix { };
 
-    cmdliner_1_0 = callPackage ../development/ocaml-modules/cmdliner/1.0.nix { };
+    cmdliner = callPackage ../development/ocaml-modules/cmdliner { };
 
     cohttp_p4 = callPackage ../development/ocaml-modules/cohttp/0.19.3.nix {
       lwt = lwt2;
@@ -137,6 +152,10 @@ let
       then callPackage ../development/ocaml-modules/cohttp { }
       else cohttp_p4;
 
+    cohttp-lwt = callPackage ../development/ocaml-modules/cohttp/lwt.nix { };
+
+    cohttp-lwt-unix = callPackage ../development/ocaml-modules/cohttp/lwt-unix.nix { };
+
     conduit_p4 = callPackage ../development/ocaml-modules/conduit/0.10.0.nix {
        lwt = lwt2;
     };
@@ -146,6 +165,10 @@ let
       then callPackage ../development/ocaml-modules/conduit { }
       else conduit_p4;
 
+    conduit-lwt = callPackage ../development/ocaml-modules/conduit/lwt.nix { };
+
+    conduit-lwt-unix = callPackage ../development/ocaml-modules/conduit/lwt-unix.nix { };
+
     config-file = callPackage ../development/ocaml-modules/config-file { };
 
     containers = callPackage ../development/ocaml-modules/containers { };
@@ -160,11 +183,21 @@ let
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
-    cstruct = callPackage ../development/ocaml-modules/cstruct {
+    cstruct =
+      if lib.versionAtLeast ocaml.version "4.2"
+      then callPackage ../development/ocaml-modules/cstruct {}
+      else callPackage ../development/ocaml-modules/cstruct/1.9.0.nix { lwt = ocaml_lwt; };
+
+    cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix {
       lwt = ocaml_lwt;
     };
 
-    csv = callPackage ../development/ocaml-modules/csv { };
+    cstruct-unix = callPackage ../development/ocaml-modules/cstruct/unix.nix {};
+
+    csv =
+      if lib.versionAtLeast ocaml.version "4.2"
+      then callPackage ../development/ocaml-modules/csv { }
+      else callPackage ../development/ocaml-modules/csv/1.5.nix { };
 
     curses = callPackage ../development/ocaml-modules/curses { };
 
@@ -174,15 +207,22 @@ let
 
     decompress =  callPackage ../development/ocaml-modules/decompress { };
 
+    digestif =  callPackage ../development/ocaml-modules/digestif { };
+
     dolmen =  callPackage ../development/ocaml-modules/dolmen { };
 
     dolog = callPackage ../development/ocaml-modules/dolog { };
 
+    dtoa = callPackage ../development/ocaml-modules/dtoa { };
+
     easy-format = callPackage ../development/ocaml-modules/easy-format { };
 
     eff = callPackage ../development/interpreters/eff { };
 
-    eliom = callPackage ../development/ocaml-modules/eliom { lwt = lwt2; };
+    eliom = callPackage ../development/ocaml-modules/eliom {
+      lwt = lwt2;
+      js_of_ocaml = js_of_ocaml_2;
+    };
 
     enumerate = callPackage ../development/ocaml-modules/enumerate { };
 
@@ -198,8 +238,14 @@ let
       lwt = ocaml_lwt;
     };
 
+    facile = callPackage ../development/ocaml-modules/facile { };
+
     faillib = callPackage ../development/ocaml-modules/faillib { };
 
+    faraday = callPackage ../development/ocaml-modules/faraday { };
+
+    farfadet = callPackage ../development/ocaml-modules/farfadet { };
+
     fieldslib_p4 = callPackage ../development/ocaml-modules/fieldslib { };
 
     fileutils = callPackage ../development/ocaml-modules/fileutils { };
@@ -266,11 +312,23 @@ let
     inifiles = callPackage ../development/ocaml-modules/inifiles { };
 
     jingoo = callPackage ../development/ocaml-modules/jingoo {
-      batteries = ocaml_batteries;
       pcre = ocaml_pcre;
     };
 
-    js_of_ocaml = callPackage ../development/tools/ocaml/js_of_ocaml { lwt = lwt2; };
+    js_of_ocaml =
+    if lib.versionOlder "4.02" ocaml.version
+    then callPackage ../development/tools/ocaml/js_of_ocaml/3.0.nix { }
+    else js_of_ocaml_2;
+
+    js_of_ocaml_2 = callPackage ../development/tools/ocaml/js_of_ocaml { lwt = lwt2; };
+
+    js_of_ocaml-camlp4 = callPackage ../development/tools/ocaml/js_of_ocaml/camlp4.nix {};
+
+    js_of_ocaml-compiler = callPackage ../development/tools/ocaml/js_of_ocaml/compiler.nix {};
+
+    js_of_ocaml-ocamlbuild = callPackage ../development/tools/ocaml/js_of_ocaml/ocamlbuild.nix {};
+
+    js_of_ocaml-ppx = callPackage ../development/tools/ocaml/js_of_ocaml/ppx.nix {};
 
     jsonm = callPackage ../development/ocaml-modules/jsonm { };
 
@@ -306,6 +364,8 @@ let
       lwt = ocaml_lwt;
     };
 
+    lru = callPackage ../development/ocaml-modules/lru { };
+
     lwt2 = callPackage ../development/ocaml-modules/lwt { };
 
     lwt3 = if lib.versionOlder "4.02" ocaml.version
@@ -320,13 +380,17 @@ let
       lwt = lwt3;
     };
 
+    lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl {
+      lwt = lwt3;
+    };
+
     macaque = callPackage ../development/ocaml-modules/macaque { };
 
     magic-mime = callPackage ../development/ocaml-modules/magic-mime { };
 
     magick = callPackage ../development/ocaml-modules/magick { };
 
-    markup = callPackage ../development/ocaml-modules/markup { lwt = lwt2; };
+    markup = callPackage ../development/ocaml-modules/markup { lwt = ocaml_lwt; };
 
     menhir = callPackage ../development/ocaml-modules/menhir { };
 
@@ -346,15 +410,15 @@ let
 
     mtime =  callPackage ../development/ocaml-modules/mtime { };
 
-    nocrypto =  callPackage ../development/ocaml-modules/nocrypto {
-      lwt = ocaml_lwt;
-    };
+    nocrypto =  callPackage ../development/ocaml-modules/nocrypto { };
 
     notty = callPackage ../development/ocaml-modules/notty {
       lwt = ocaml_lwt;
     };
 
-    ocaml_batteries = callPackage ../development/ocaml-modules/batteries { };
+    num = if lib.versionOlder "4.06" ocaml.version
+      then callPackage ../development/ocaml-modules/num {}
+      else null;
 
     comparelib = callPackage ../development/ocaml-modules/comparelib { };
 
@@ -374,7 +438,10 @@ let
 
     ocaml_data_notation = callPackage ../development/ocaml-modules/odn { };
 
-    ocaml_expat = callPackage ../development/ocaml-modules/expat { };
+    ocaml_expat =
+    if lib.versionAtLeast ocaml.version "4.02"
+    then callPackage ../development/ocaml-modules/expat { }
+    else callPackage ../development/ocaml-modules/expat/0.9.nix { };
 
     frontc = callPackage ../development/ocaml-modules/frontc { };
 
@@ -406,25 +473,20 @@ let
 
     pgocaml = callPackage ../development/ocaml-modules/pgocaml {};
 
-    ocaml_react = callPackage ../development/ocaml-modules/react { };
-    reactivedata = callPackage ../development/ocaml-modules/reactivedata {};
-
     ocamlscript = callPackage ../development/tools/ocaml/ocamlscript { };
 
     ocamlsdl= callPackage ../development/ocaml-modules/ocamlsdl { };
 
     ocaml_sqlite3 = callPackage ../development/ocaml-modules/sqlite3 { };
 
-    ocaml_ssl = callPackage ../development/ocaml-modules/ssl { };
-
     ocaml_text = callPackage ../development/ocaml-modules/ocaml-text { };
 
     ocf = callPackage ../development/ocaml-modules/ocf { };
 
     ocpBuild = callPackage ../development/tools/ocaml/ocp-build { };
 
-    ocpIndent = callPackage ../development/tools/ocaml/ocp-indent { cmdliner = cmdliner_1_0; };
-    ocpIndent_1_5_2 = callPackage ../development/tools/ocaml/ocp-indent/1.5.2.nix { };
+    ocpIndent = callPackage ../development/tools/ocaml/ocp-indent { };
+    ocpIndent_1_5_2 = callPackage ../development/tools/ocaml/ocp-indent/1.5.2.nix { cmdliner = cmdliner_0_9; };
 
     ocp-index = callPackage ../development/tools/ocaml/ocp-index { ocpIndent = ocpIndent_1_5_2; };
 
@@ -459,6 +521,8 @@ let
     piqi = callPackage ../development/ocaml-modules/piqi { };
     piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
 
+    psq = callPackage ../development/ocaml-modules/psq { };
+
     ptime = callPackage ../development/ocaml-modules/ptime { };
 
     re2_p4 = callPackage ../development/ocaml-modules/re2 { };
@@ -536,6 +600,10 @@ let
       then callPackage ../development/ocaml-modules/ppx_blob {}
       else null;
 
+    ppx_cstruct = callPackage ../development/ocaml-modules/cstruct/ppx.nix {};
+
+    ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {};
+
     ppx_deriving =
       if lib.versionAtLeast ocaml.version "4.02"
       then callPackage ../development/ocaml-modules/ppx_deriving {}
@@ -552,6 +620,8 @@ let
 
     ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
 
+    process = callPackage ../development/ocaml-modules/process { };
+
     ptmap = callPackage ../development/ocaml-modules/ptmap { };
 
     pycaml = callPackage ../development/ocaml-modules/pycaml { };
@@ -562,6 +632,10 @@ let
 
     re = callPackage ../development/ocaml-modules/re { };
 
+    react = callPackage ../development/ocaml-modules/react { };
+
+    reactivedata = callPackage ../development/ocaml-modules/reactivedata {};
+
     reason = callPackage ../development/compilers/reason { };
 
     rope = callPackage ../development/ocaml-modules/rope { };
@@ -574,6 +648,8 @@ let
 
     sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { };
 
+    ssl = callPackage ../development/ocaml-modules/ssl { };
+
     stog = callPackage ../applications/misc/stog { };
 
     stringext = callPackage ../development/ocaml-modules/stringext { };
@@ -594,12 +670,18 @@ let
 
     sawja = callPackage ../development/ocaml-modules/sawja { };
 
+    stdint = callPackage ../development/ocaml-modules/stdint { };
+
     uucd = callPackage ../development/ocaml-modules/uucd { };
     uucp = callPackage ../development/ocaml-modules/uucp { };
     uunf = callPackage ../development/ocaml-modules/uunf { };
 
-    uri = callPackage ../development/ocaml-modules/uri { };
-    uri_p4 = callPackage ../development/ocaml-modules/uri {
+    uri =
+      if lib.versionAtLeast ocaml.version "4.3"
+      then callPackage ../development/ocaml-modules/uri { }
+      else callPackage ../development/ocaml-modules/uri/legacy.nix { };
+
+    uri_p4 = callPackage ../development/ocaml-modules/uri/legacy.nix {
       legacyVersion = true;
     };
 
@@ -610,6 +692,10 @@ let
 
     vg = callPackage ../development/ocaml-modules/vg { };
 
+    wasm = callPackage ../development/ocaml-modules/wasm { };
+
+    wtf8 = callPackage ../development/ocaml-modules/wtf8 { };
+
     x509 = callPackage ../development/ocaml-modules/x509 { };
 
     xmlm = callPackage ../development/ocaml-modules/xmlm { };
@@ -631,10 +717,19 @@ let
     # Jane Street
 
     janePackage = callPackage ../development/ocaml-modules/janestreet/janePackage.nix {};
-
+    
     janeStreet = import ../development/ocaml-modules/janestreet {
-      inherit lib janePackage ocamlbuild ctypes cryptokit magic-mime;
-      inherit ocaml-migrate-parsetree octavius ounit ppx_deriving re zarith;
+      inherit lib janePackage ocaml ocamlbuild angstrom ctypes cryptokit;
+      inherit magic-mime num ocaml-migrate-parsetree octavius ounit;
+      inherit ppx_deriving re zarith;
+      inherit (pkgs) stdenv openssl;
+    };
+    
+    janeStreet_0_9_0 = import ../development/ocaml-modules/janestreet/old.nix {
+      janePackage = callPackage ../development/ocaml-modules/janestreet/janePackage.nix { defaultVersion = "0.9.0"; };
+      inherit lib ocaml ocamlbuild ctypes cryptokit;
+      inherit magic-mime num ocaml-migrate-parsetree octavius ounit;
+      inherit ppx_deriving re zarith;
       inherit (pkgs) stdenv openssl;
     };
 
@@ -874,8 +969,6 @@ let
 
     # Apps / from all-packages
 
-    wyrd = callPackage ../tools/misc/wyrd { };
-
     haxe = callPackage ../development/compilers/haxe { };
 
     ocamlnat = callPackage  ../development/ocaml-modules/ocamlnat { };
@@ -911,10 +1004,6 @@ let
 
     matita_130312 = callPackage ../applications/science/logic/matita/130312.nix { };
 
-    ott = callPackage ../applications/science/logic/ott {
-      camlp5 = camlp5_transitional;
-    };
-
   };
     in (ocamlPackages.janeStreet // ocamlPackages);
     in lib.fix' (lib.extends overrides packageSet);
@@ -943,7 +1032,9 @@ in rec
 
   ocamlPackages_4_05 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.05.nix { }) (self: super: { });
 
-  ocamlPackages_latest = ocamlPackages_4_05;
+  ocamlPackages_4_06 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.06.nix { }) (self: super: { });
+
+  ocamlPackages_latest = ocamlPackages_4_06;
 
-  ocamlPackages = ocamlPackages_4_02;
+  ocamlPackages = ocamlPackages_4_05;
 }
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index e7234018508ef..13554ff6ee686 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -25,12 +25,12 @@ let self = _self // overrides; _self = with self; {
 
 
   ack = buildPerlPackage rec {
-    name = "ack-2.16";
+    name = "ack-2.22";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "0ifbmbfvagfi76i7vjpggs2hrbqqisd14f5zizan6cbdn8dl5z2g";
+      sha256 = "0v0gdv1ja12ks4yp1nb93z1lh14s869dr4mfjb3nkgw6pkdl3i02";
     };
-    outputs = ["out" "doc"];
+    outputs = ["out" "man"];
     # use gnused so that the preCheck command passes
     buildInputs = stdenv.lib.optional stdenv.isDarwin gnused;
     propagatedBuildInputs = [ FileNext ];
@@ -119,14 +119,14 @@ let self = _self // overrides; _self = with self; {
   };
 
   AnyEvent = buildPerlPackage rec {
-    name = "AnyEvent-7.08";
+    name = "AnyEvent-7.14";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${name}.tar.gz";
-      sha256 = "16nnqzxy5baiar6gxnq5w296mmjgijcn1jq8rp867nksph03mxz8";
+      sha256 = "539358d225bad34b4a64f5217f8c2a707b15e3a28c74120c9dd2270c7cca7d2a";
     };
+    buildInputs = [ CanaryStability ];
     meta = {
-      maintainers = with maintainers; [ ];
-      platforms   = stdenv.lib.platforms.unix;
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -140,7 +140,7 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ AnyEvent ];
     doCheck = false; # does an DNS lookup
     meta = {
-      homepage = http://github.com/potyl/perl-AnyEvent-CacheDNS;
+      homepage = https://github.com/potyl/perl-AnyEvent-CacheDNS;
       description = "Simple DNS resolver with caching";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -152,14 +152,14 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${name}.tar.gz";
       sha256 = "2e3376d03bfa5f172f43d4c615ba496281c9ffe3093a828c539683e17e2fbbcb";
     };
-    propagatedBuildInputs = [ AnyEvent CommonSense ];
+    propagatedBuildInputs = [ AnyEvent commonsense ];
   };
 
   AnyEventI3 = buildPerlPackage rec {
-    name = "AnyEvent-I3-0.16";
+    name = "AnyEvent-I3-0.17";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MS/MSTPLBG/${name}.tar.gz";
-      sha256 = "1qwva5vmmn929l6k9wzhp4h80ad4qm4m1g2dyv4nlas624003hig";
+      sha256 = "5382c984c9f138395f29f0c00af81aa0c8f4b765582055c73ede4b13f04a6d63";
     };
     propagatedBuildInputs = [ AnyEvent JSONXS ];
     meta = {
@@ -168,19 +168,17 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  AnyEventRabbitMQ = buildPerlPackage {
-    name = "AnyEvent-RabbitMQ-1.15";
+  AnyEventRabbitMQ = buildPerlPackage rec {
+    name = "AnyEvent-RabbitMQ-1.19";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BO/BOBTFISH/AnyEvent-RabbitMQ-1.15.tar.gz;
-      sha256 = "fda292dfaae10f6d99aafc46831ce507153b58368e3eb2617bbb3f749605805a";
+      url = "mirror://cpan/authors/id/D/DL/DLAMBLEY/${name}.tar.gz";
+      sha256 = "a440ec2fa5a4018ad44739baaa9601cc460ad497282e89110ba8e3cf23312f0a";
     };
     buildInputs = [ TestException ];
     propagatedBuildInputs = [ AnyEvent DevelGlobalDestruction FileShareDir ListMoreUtils NetAMQP Readonly namespaceclean ];
     meta = {
       description = "An asynchronous and multi channel Perl AMQP client";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      maintainers = with maintainers; [ ];
-      platforms   = stdenv.lib.platforms.unix;
     };
   };
 
@@ -224,10 +222,15 @@ let self = _self // overrides; _self = with self; {
   };
 
   ApacheTest = buildPerlPackage {
-    name = "Apache-Test-1.38";
+    name = "Apache-Test-1.40";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PH/PHRED/Apache-Test-1.38.tar.gz;
-      sha256 = "321717f58636ed0aa85cba6d69fc01e2ccbc90ba71ec2dcc2134d8401af65145";
+      url = mirror://cpan/authors/id/S/SH/SHAY/Apache-Test-1.40.tar.gz;
+      sha256 = "0h5fsi0is6nhclsd3wwkkqx2hfgl3bpdazxycafm9sqxr3qkgx9w";
+    };
+    doCheck = false;
+    meta = {
+      description = "Test.pm wrapper with helpers for testing Apache";
+      license = stdenv.lib.licenses.asl20;
     };
   };
 
@@ -304,11 +307,11 @@ let self = _self // overrides; _self = with self; {
   };
 
   AppSqitch = buildPerlModule rec {
-    version = "0.9994";
+    version = "0.9996";
     name = "App-Sqitch-${version}";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DW/DWHEELER/${name}.tar.gz";
-      sha256 = "0in602z40s50fdlmws4g0a1pb8p7yn0wx8jgsacz26a4i1q7gpi4";
+      sha256 = "864edde554e7cd6578e8fe2a4c17ea8eda82da878cdfd00fd9fb3c53f696fc1e";
     };
     buildInputs = [
       CaptureTiny PathClass TestDeep TestDir TestException
@@ -370,7 +373,7 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ ParamsValidate ];
     doCheck = false;
     meta = {
-      homepage = http://metacpan.org/release/Attribute-Params-Validate;
+      homepage = https://metacpan.org/release/Attribute-Params-Validate;
       description = "Define validation through subroutine attributes";
       license = stdenv.lib.licenses.artistic2;
     };
@@ -386,6 +389,21 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestNoWarnings Moo TypeTiny ];
   };
 
+  ArrayFIFO = buildPerlPackage rec {
+    name = "Array-FIFO-0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBURKE/${name}.tar.gz";
+      sha256 = "8082b7ca456d02c7c862ba409cbd62a9cafdb8c5832f5d7fb1d37ba8698ee5b1";
+    };
+    buildInputs = [ TestSpec ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      homepage = https://github.com/dwburke/perl-Array-FIFO;
+      description = "A Simple limitable FIFO array, with sum and average methods";
+      license = stdenv.lib.licenses.artistic2;
+    };
+  };
+
   ListCompare = buildPerlPackage rec {
     name = "List-Compare-0.53";
     src = fetchurl {
@@ -544,6 +562,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  AuthenSimple = buildPerlPackage rec {
+    name = "Authen-Simple-0.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/${name}.tar.gz";
+      sha256 = "02cddab47f8bf1a1cbd4c9bf8d258f6d05111499c33f8315e7244812f72613aa";
+    };
+    propagatedBuildInputs = [ ClassAccessor ClassDataInheritable CryptPasswdMD5 ParamsValidate ];
+    meta = {
+      description = "Simple Authentication";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   autobox = buildPerlPackage rec {
     name = "autobox-2.84";
     src = fetchurl {
@@ -633,7 +664,7 @@ let self = _self // overrides; _self = with self; {
     };
     propagatedBuildInputs = [ BFlags IPCRun Opcodes ];
     meta = {
-      homepage = http://www.perl-compiler.org;
+      homepage = https://github.com/rurban/perl-compiler;
       description = "Perl compiler";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -663,7 +694,7 @@ let self = _self // overrides; _self = with self; {
     };
     propagatedBuildInputs = [ ModuleImplementation ModuleRuntime SubExporterProgressive ];
     meta = {
-      homepage = http://metacpan.org/release/B-Hooks-EndOfScope;
+      homepage = https://metacpan.org/release/B-Hooks-EndOfScope;
       description = "Execute code after a scope finished compilation";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -685,10 +716,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   bignum = buildPerlPackage rec {
-    name = "bignum-0.47";
+    name = "bignum-0.49";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/${name}.tar.gz";
-      sha256 = "b084eac6d676d2acc4d60deed58e6e31b2f572b7b0be1aec9b93be92bad8261a";
+      sha256 = "28685b271251927d327851e5951e38649524a4e50cb0d1d35d649e2b814f212d";
     };
     buildInputs = [ MathBigInt MathBigRat ];
     meta = {
@@ -723,13 +754,13 @@ let self = _self // overrides; _self = with self; {
   };
 
   boolean = buildPerlPackage rec {
-    name = "boolean-0.45";
+    name = "boolean-0.46";
     src = fetchurl {
       url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
-      sha256 = "18hrgldzwnhs0c0r8hxx6r05qvk9p7gwinjwcybixfs2h0n43ypj";
+      sha256 = "95c088085c3e83bf680fe6ce16d8264ec26310490f7d1680e416ea7a118f156a";
     };
     meta = {
-      homepage = https://github.com/ingydotnet/boolean-pm/tree;
+      homepage = https://github.com/ingydotnet/boolean-pm;
       description = "Boolean support for Perl";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -746,6 +777,21 @@ let self = _self // overrides; _self = with self; {
       # Fix out of memory error on Perl 5.19.4 and later.
       ../development/perl-modules/boost-geometry-utils-fix-oom.patch
     ];
+    perlPreHook = "export LD=$CC";
+  };
+
+  BSDResource = buildPerlPackage rec {
+    name = "BSD-Resource-1.2911";
+    src = fetchurl {
+      url = "https://cpan.metacpan.org/authors/id/J/JH/JHI/BSD-Resource-1.2911.tar.gz";
+      sha256 = "0g8c7825ng2m0yz5sy6838rvfdl8j3vm29524wjgf66ccfhgn74x";
+    };
+    buildInputs = [ TestPod TestPodCoverage ];
+    meta = {
+      maintainers = [ maintainers.limeytexan ];
+      description = "BSD process resource limit and priority functions";
+      license = stdenv.lib.licenses.artistic2;
+    };
   };
 
   BusinessHours = buildPerlPackage rec {
@@ -893,7 +939,6 @@ let self = _self // overrides; _self = with self; {
     meta = {
       homepage = http://gtk2-perl.sourceforge.net/;
       description = "Perl interface to the cairo 2D vector graphics library";
-      maintainers = with maintainers; [ nckx ];
       license = stdenv.lib.licenses.lgpl21Plus;
     };
   };
@@ -946,15 +991,15 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  Carp = buildPerlPackage {
-    name = "Carp-1.36";
+  Carp = buildPerlPackage rec {
+    name = "Carp-1.38";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Carp-1.36.tar.gz;
-      sha256 = "dcc789935126461c80df0653f98c1d8d0b936dcc3d04174287cb02767eca123c";
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "00bijwwc0ix27h2ma3lvsf3b56biar96bl9dikxgx7cmpcycxad5";
     };
-    meta = {
+    meta = with stdenv.lib; {
       description = "Alternative warn and die for modules";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      license = with licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -1222,7 +1267,7 @@ let self = _self // overrides; _self = with self; {
     };
     propagatedBuildInputs = [ CatalystRuntime DateTime Moose namespaceautoclean ];
     meta = {
-      homepage = http://metacpan.org/release/Catalyst-Plugin-AccessLog;
+      homepage = https://metacpan.org/release/Catalyst-Plugin-AccessLog;
       description = "Request logging from within Catalyst";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -1362,13 +1407,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  CatalystPluginHTMLWidget = buildPerlPackage {
+  CatalystPluginHTMLWidget = buildPerlPackage rec {
     name = "Catalyst-Plugin-HTML-Widget-1.1";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SR/SRI/Catalyst-Plugin-HTML-Widget-1.1.tar.gz;
-      sha256 = "1zzyfhmzlqvbwk2w930k3mqk8z1lzhrja9ynx9yfq5gmc8qqg95l";
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "b4a4873162f515ec7cead6272533fc347c34711d138cc4c5e46b63fa2b74feff";
+    };
+    propagatedBuildInputs = [ CatalystRuntime HTMLWidget ];
+    meta = {
+      description = "HTML Widget Catalyst Plugin";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      broken = true;
     };
-    propagatedBuildInputs = [CatalystRuntime HTMLWidget];
   };
 
   CatalystPluginLogHandler = buildPerlPackage rec {
@@ -1609,12 +1659,12 @@ let self = _self // overrides; _self = with self; {
   };
 
   CGI = buildPerlPackage rec {
-    name = "CGI-4.35";
+    name = "CGI-4.38";
     src = fetchurl {
       url = "mirror://cpan/authors/id/L/LE/LEEJO/${name}.tar.gz";
-      sha256 = "07gwnlc7vq58fjwmfsrv0hfyirqqdrpjhf89caq34rjrkz2wsd0b";
+      sha256 = "8c58f4a529bb92a914b22b7e64c5e31185c9854a4070a6dfad44fe5cc248e7d4";
     };
-    buildInputs = [ TestDeep TestWarn ];
+    buildInputs = [ TestDeep TestNoWarnings TestWarn ];
     propagatedBuildInputs = [ HTMLParser self."if" ];
     meta = {
       homepage = https://metacpan.org/module/CGI;
@@ -1782,18 +1832,7 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ClassAccessor];
   };
 
-  ClassAccessorFast = buildPerlPackage {
-    name = "Class-Accessor-Fast-0.34";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.34.tar.gz;
-      sha256 = "1z6fqg0yz8gay15r1iasslv8f1n1mzjkrhs47fvbj3rqz36y1cfd";
-    };
-    meta = {
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      maintainers = with maintainers; [ ];
-      platforms   = stdenv.lib.platforms.unix;
-    };
-  };
+  ClassAccessorFast = ClassAccessor;
 
   ClassAccessorGrouped = buildPerlPackage {
     name = "Class-Accessor-Grouped-0.10012";
@@ -1821,11 +1860,15 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ClassAutouse = buildPerlPackage {
-    name = "Class-Autouse-1.99_02";
+  ClassAutouse = buildPerlPackage rec {
+    name = "Class-Autouse-2.01";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADAMK/Class-Autouse-1.99_02.tar.gz;
-      sha256 = "1jkhczx2flxrz154ps90fj9wcchkpmnp5sapwc0l92rpn7jpsf08";
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
+      sha256 = "c05b3236c05719d819c20db0fdeb6d0954747e43d7a738294eed7fbcf36ecf1b";
+    };
+    meta = {
+      description = "Run-time load a class the first time you call a method in it";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -2048,30 +2091,30 @@ let self = _self // overrides; _self = with self; {
   };
 
   ClassLoad = buildPerlPackage rec {
-    name = "Class-Load-0.23";
+    name = "Class-Load-0.24";
     src = fetchurl {
       url = "mirror://cpan/authors/id/E/ET/ETHER/${name}.tar.gz";
-      sha256 = "13xjfh4fadq4pkq7fcj42b26544jl7gqdg2y3imnra9fwxwsbg7j";
+      sha256 = "0bb983da46c146534fc77a556d6e40d925142f2eb43103534025ee545265ca36";
     };
-    buildInputs = [ TestFatal TestRequires ];
+    buildInputs = [ TestFatal TestNeeds ];
     propagatedBuildInputs = [ DataOptList ModuleImplementation ModuleRuntime PackageStash TryTiny ];
     meta = {
-      homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
+      homepage = https://github.com/moose/Class-Load;
       description = "A working (require \"Class::Name\") and more";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
   ClassLoadXS = buildPerlPackage rec {
-    name = "Class-Load-XS-0.09";
+    name = "Class-Load-XS-0.10";
     src = fetchurl {
       url = "mirror://cpan/authors/id/E/ET/ETHER/${name}.tar.gz";
-      sha256 = "1aivalms81s3a2cj053ncgnmkpgl7vspna8ajlkqir7rdn8kpv5v";
+      sha256 = "5bc22cf536ebfd2564c5bdaf42f0d8a4cee3d1930fc8b44b7d4a42038622add1";
     };
-    buildInputs = [ ModuleImplementation TestFatal TestRequires ];
+    buildInputs = [ ModuleImplementation TestFatal TestNeeds ];
     propagatedBuildInputs = [ ClassLoad ];
     meta = {
-      homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
+      homepage = https://github.com/moose/Class-Load-XS;
       description = "XS implementation of parts of Class::Load";
       license = stdenv.lib.licenses.artistic2;
     };
@@ -2143,6 +2186,12 @@ let self = _self // overrides; _self = with self; {
       description = "Clipboard - Copy and Paste with any OS";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    propagatedBuildInputs = stdenv.lib.optional stdenv.isDarwin MacPasteboard;
+    # Disable test on darwin because MacPasteboard fails when not logged in interactively.
+    # Mac OS error -4960 (coreFoundationUnknownErr): The unknown error at lib/Clipboard/MacPasteboard.pm line 3.
+    # Mac-Pasteboard-0.009.readme: 'NOTE that Mac OS X appears to restrict pasteboard access to processes that are logged in interactively.
+    #     Ssh sessions and cron jobs can not create the requisite pasteboard handles, giving coreFoundationUnknownErr (-4960)'
+    doCheck = !stdenv.isDarwin;
   };
 
 
@@ -2158,7 +2207,10 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  CommonSense = buildPerlPackage rec {
+  # For backwards compatibility.
+  CommonSense = self.commonsense;
+
+  commonsense = buildPerlPackage rec {
     name = "common-sense-3.74";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${name}.tar.gz";
@@ -2166,6 +2218,8 @@ let self = _self // overrides; _self = with self; {
     };
     meta = {
       homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
+      description = "Implements some sane defaults for Perl programs";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -2267,15 +2321,16 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ConfigGrammar = buildPerlPackage {
-    name = "Config-Grammar-1.11";
+  ConfigGrammar = buildPerlPackage rec {
+    name = "Config-Grammar-1.12";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DS/DSCHWEI/Config-Grammar-1.11.tar.gz;
-      sha256 = "dd819f89b19c51e9fac6965360cd9db54436e1328968c802416ac34188ca65ee";
+      url = "mirror://cpan/authors/id/D/DS/DSCHWEI/${name}.tar.gz";
+      sha256 = "7a52a3657d96e6f1f529caaa09ec3bf7dd6a245b47875382c323902f6d9590b0";
     };
     meta = {
+      homepage = https://github.com/schweikert/Config-Grammar;
       description = "A grammar-based, user-friendly config parser";
-      license = "unknown";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -2294,6 +2349,21 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ConfigIniFiles = buildPerlPackage rec {
+    name = "Config-IniFiles-2.94";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/${name}.tar.gz";
+      sha256 = "d6d38a416da79de874c5f1825221f22e972ad500b6527d190cc6e9ebc45194b4";
+    };
+    buildInputs = [ ModuleBuild perl ];
+    propagatedBuildInputs = [ IOstringy ];
+    meta = {
+      description = "A module for reading .ini-style configuration files";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.limeytexan ];
+    };
+  };
+
   ConfigMerge = buildPerlPackage {
     name = "Config-Merge-1.04";
     src = fetchurl {
@@ -2374,13 +2444,21 @@ let self = _self // overrides; _self = with self; {
   };
 
   Connector = buildPerlPackage rec {
-    name = "Connector-1.16";
+    name = "Connector-1.22";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/${name}.tar.gz";
-      sha256 = "0rbx4n86y5sdkff37w8djw1ahxrg79bsfgbrph3kjhh4jzd20q09";
+      sha256 = "aa178d1865817ad2dea5c79645c8e6420ca2cfb951f20c98b5154307de219016";
+    };
+    buildInputs = [ ConfigMerge ConfigStd ConfigVersioned CryptSSLeay DBDSQLite DBI IOSocketSSL LWPProtocolhttps LWPUserAgent TemplateToolkit YAML ];
+    propagatedBuildInputs = [ LogLog4perl Moose ];
+    prePatch = ''
+      # Attempts to use network.
+      rm t/01-proxy-http.t
+    '';
+    meta = {
+      description = "A generic connection to a hierarchical-structured data set";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
-    buildInputs = [ Moose ConfigStd YAML PathClass DateTime Log4Perl
-      ConfigVersioned TemplateToolkit];
   };
 
   ConvertASN1 = buildPerlPackage rec {
@@ -2408,9 +2486,11 @@ let self = _self // overrides; _self = with self; {
   constant = buildPerlPackage rec {
     name = "constant-1.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/constant-1.33.tar.gz;
       sha256 = "015my616h5l2fswh52x4dp3n007gk5lax83ww9q6cmzb610mv5kr";
     };
+    propagatedBuildInputs = [ TestSimple13 ];
+    buildInputs = [ ExtUtilsMakeMaker ];
   };
 
   constantboolean = buildPerlPackage {
@@ -2483,6 +2563,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  CpanelJSONXS = buildPerlPackage rec {
+    name = "Cpanel-JSON-XS-4.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/${name}.tar.gz";
+      sha256 = "c8cfd32a8a9508ab7f280452428582c3e46d0bed4ea863c3ec27c34f6920de60";
+    };
+    meta = {
+      description = "CPanel fork of JSON::XS, fast and correct serializing";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   CPANChanges = buildPerlPackage rec {
     name = "CPAN-Changes-0.400002";
     src = fetchurl {
@@ -2574,7 +2666,7 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ ArchiveExtract LogMessage ModulePluggable ObjectAccessor PackageConstants ];
     doCheck = false;
     meta = {
-      homepage = http://github.com/jib/cpanplus-devel;
+      homepage = https://github.com/jib/cpanplus-devel;
       description = "Ameliorated interface to the CPAN";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -2650,10 +2742,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CryptJWT = buildPerlPackage rec {
-    name = "Crypt-JWT-0.018";
+    name = "Crypt-JWT-0.020";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MI/MIK/${name}.tar.gz";
-      sha256 = "90e78f7f0ced17e5c2080ad8c7008ce3badd05186e2ff20cf9c7232ed863cdaf";
+      sha256 = "0587fc11435aecbbdc19b33f774d05ff31f19750b26a3588af93f33e8000d464";
     };
     propagatedBuildInputs = [ CryptX JSONMaybeXS ];
     meta = {
@@ -2859,10 +2951,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CryptX = buildPerlPackage rec {
-    name = "CryptX-0.050";
+    name = "CryptX-0.057";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MI/MIK/${name}.tar.gz";
-      sha256 = "c1de040779d9f5482d0a2f17a9a5aa6b069c7c58c07fbe26ab62bc689a5c9161";
+      sha256 = "b85fffbc8ecc0b8f1f768926c6b31e755e6df15556462d101d45ef5c48f9d025";
     };
     propagatedBuildInputs = [ JSONMaybeXS ];
     meta = {
@@ -2919,19 +3011,27 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  DataDumper = buildPerlPackage {
-    name = "Data-Dumper-2.154";
+  DataDumper = buildPerlPackage rec {
+    name = "Data-Dumper-2.161";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SM/SMUELLER/Data-Dumper-2.154.tar.gz;
-      sha256 = "e30fcb6dea290cda85b67fc46d227a2ea890a8bd36c213557adec9c99ebd212f";
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/${name}.tar.gz";
+      sha256 = "3aa4ac1b042b3880438165fb2b2139d377564a8e9928ffe689ede5304ee90558";
+    };
+    outputs = [ "out" ];
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
   DataDumperConcise = buildPerlPackage rec {
-    name = "Data-Dumper-Concise-2.022";
+    name = "Data-Dumper-Concise-2.023";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Data/${name}.tar.gz";
-      sha256 = "0z7vxgk1f2kw2zpiimdsyf7jq9f4s5dhh3dlimq5yrirypnk03sc";
+      url = "mirror://cpan/authors/id/E/ET/ETHER/${name}.tar.gz";
+      sha256 = "a6c22f113caf31137590def1b7028a7e718eface3228272d0672c25e035d5853";
+    };
+    meta = {
+      description = "Less indentation and newlines plus sub deparsing";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -2955,10 +3055,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DataFormValidator = buildPerlPackage rec {
-    name = "Data-FormValidator-4.85";
+    name = "Data-FormValidator-4.88";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DF/DFARRELL/${name}.tar.gz";
-      sha256 = "809f15d05434ff5667c3967e71e86308fcfad8fce1057420bd2714300b2a5870";
+      sha256 = "c1a539f91c92cbcd8a8d83597ec9a7643fcd8ccf5a94e15382c3765289170066";
     };
     propagatedBuildInputs = [ DateCalc EmailValid FileMMagic ImageSize MIMETypes RegexpCommon ];
     meta = {
@@ -3033,7 +3133,7 @@ let self = _self // overrides; _self = with self; {
     };
     propagatedBuildInputs = [ ParamsUtil SubInstall ];
     meta = {
-      homepage = http://github.com/rjbs/data-optlist;
+      homepage = https://github.com/rjbs/data-optlist;
       description = "Parse and validate simple name/value option pairs";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -3133,12 +3233,25 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestRequires ];
     propagatedBuildInputs = [ Moose PathClass SubExporter namespaceclean ];
     meta = {
-      homepage = http://metacpan.org/release/Data-Stream-Bulk;
+      homepage = https://metacpan.org/release/Data-Stream-Bulk;
       description = "N at a time iteration API";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
+  DataStructureUtil = buildPerlPackage rec {
+    name = "Data-Structure-Util-0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDYA/${name}.tar.gz";
+      sha256 = "9cd42a13e65cb15f3a76296eb9a134da220168ec747c568d331a50ae7a2ddbc6";
+    };
+    buildInputs = [ TestPod ];
+    meta = {
+      description = "Change nature of data within a structure";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   DataTaxi = buildPerlPackage {
     name = "Data-Taxi-0.96";
     propagatedBuildInputs = [DebugShowStuff];
@@ -3201,7 +3314,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ Test2Suite ];
     propagatedBuildInputs = [ NetDomainTLD ];
     meta = {
-      homepage = http://metacpan.org/release/Data-Validate-Domain;
+      homepage = https://metacpan.org/release/Data-Validate-Domain;
       description = "Domain and host name validation";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.rycee ];
@@ -3217,7 +3330,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestRequires ];
     propagatedBuildInputs = [ NetAddrIP ];
     meta = {
-      homepage = http://metacpan.org/release/Data-Validate-IP;
+      homepage = https://metacpan.org/release/Data-Validate-IP;
       description = "IPv4 and IPv6 validation methods";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.rycee ];
@@ -3314,6 +3427,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  DateTimeCalendarJulian = buildPerlPackage rec {
+    name = "DateTime-Calendar-Julian-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PI/PIJLL/${name}.tar.gz";
+      sha256 = "03h0llkwsiw2d2ci1ah5x9sp8xrvnbgd471i5hnpgl5w32nnhndv";
+    };
+    propagatedBuildInputs = [ DateTime ];
+    meta = {
+      description = "Dates in the Julian calendar";
+      license = stdenv.lib.licenses.artistic2;
+    };
+  };
+
   DateTimeEventICal = buildPerlPackage rec {
     name = "DateTime-Event-ICal-0.13";
     src = fetchurl {
@@ -3483,7 +3609,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestFatal TestWarnings ];
     propagatedBuildInputs = [ DateTime DateTimeLocale DateTimeTimeZone PackageDeprecationManager ParamsValidate TryTiny ];
     meta = {
-      homepage = http://metacpan.org/release/DateTime-Format-Strptime;
+      homepage = https://metacpan.org/release/DateTime-Format-Strptime;
       description = "Parse and format strp and strf time patterns";
       license = stdenv.lib.licenses.artistic2;
     };
@@ -3525,7 +3651,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ DistCheckConflicts TestFatal TestRequires TestWarnings ];
     propagatedBuildInputs = [ DistCheckConflicts ListMoreUtils ParamsValidate ];
     meta = {
-      homepage = http://metacpan.org/release/DateTime-Locale;
+      homepage = https://metacpan.org/release/DateTime-Locale;
       description = "Localization support for DateTime.pm";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -3553,7 +3679,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestFatal TestRequires ];
     propagatedBuildInputs = [ ClassSingleton ListAllUtils ModuleRuntime ParamsValidate TryTiny ];
     meta = {
-      homepage = http://metacpan.org/release/DateTime-TimeZone;
+      homepage = https://metacpan.org/release/DateTime-TimeZone;
       description = "Time zone object base class and factory";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -3618,19 +3744,6 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ DataCompare FileFindRule ];
   };
 
-  DevelDProf = buildPerlPackage {
-    name = "Devel-DProf-20110802.00";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/F/FL/FLORA/Devel-DProf-20110802.00.tar.gz;
-      sha256 = "b9eec466ab77aa9f6ab48d33134694d1aa5a8cd221b1aa0a00d09c93ab69643c";
-    };
-    meta = {
-      homepage = http://search.cpan.org/dist/Devel-DProf;
-      description = "A DEPRECATED Perl code profiler";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-    };
-  };
-
   DevelPatchPerl = buildPerlPackage rec {
     name = "Devel-PatchPerl-1.38";
     src = fetchurl {
@@ -3728,11 +3841,50 @@ let self = _self // overrides; _self = with self; {
   };
 
   DBI = buildPerlPackage rec {
-    name = "DBI-1.636";
+    name = "DBI-${version}";
+    version = "1.6.36";
     src = fetchurl {
       url = "mirror://cpan/authors/id/T/TI/TIMB/${name}.tar.gz";
       sha256 = "8f7ddce97c04b4b7a000e65e5d05f679c964d62c8b02c94c1a7d815bb2dd676c";
     };
+    postInstall = stdenv.lib.optionalString (perl ? crossVersion) ''
+      mkdir -p $out/lib/perl5/site_perl/cross_perl/${perl.version}/DBI
+      cat > $out/lib/perl5/site_perl/cross_perl/${perl.version}/DBI.pm <<EOF
+      package DBI;
+      BEGIN {
+      our \$VERSION = "$version";
+      }
+      1;
+      EOF
+
+      autodir=$(echo $out/lib/perl5/site_perl/${perl.version}/*/auto/DBI)
+      cat > $out/lib/perl5/site_perl/cross_perl/${perl.version}/DBI/DBD.pm <<EOF
+      package DBI::DBD;
+      use Exporter ();
+      use vars qw (@ISA @EXPORT);
+      @ISA = qw(Exporter);
+      @EXPORT = qw(dbd_postamble);
+      sub dbd_postamble {
+          return '
+      # --- This section was generated by DBI::DBD::dbd_postamble()
+      DBI_INSTARCH_DIR=$autodir
+      DBI_DRIVER_XST=$autodir/Driver.xst
+
+      # The main dependency (technically correct but probably not used)
+      \$(BASEEXT).c: \$(BASEEXT).xsi
+
+      # This dependency is needed since MakeMaker uses the .xs.o rule
+      \$(BASEEXT)\$(OBJ_EXT): \$(BASEEXT).xsi
+
+      \$(BASEEXT).xsi: \$(DBI_DRIVER_XST) $autodir/Driver_xst.h
+      	\$(PERL) -p -e "s/~DRIVER~/\$(BASEEXT)/g" \$(DBI_DRIVER_XST) > \$(BASEEXT).xsi
+
+      # ---
+      ';
+      }
+      1;
+      EOF
+    '';
     meta = {
       homepage = http://dbi.perl.org/;
       description = "Database independent interface for Perl";
@@ -3742,15 +3894,12 @@ let self = _self // overrides; _self = with self; {
   };
 
   DBIxClass = buildPerlPackage rec {
-    # tests broken again
-    doCheck = false;
-    name = "DBIx-Class-0.082840";
+    name = "DBIx-Class-0.082841";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/${name}.tar.gz";
-      sha256 = "4049afd175e315ebcab945b19030aec40bcec46cc5611b0286a5a267ca7181ef";
+      sha256 = "d705f85825aced299020534349778537524526d64f524217ca362787f683c3bd";
     };
-    patches = [ ../development/perl-modules/dbiclassx-fix.patch ]; # Remove after next release
-    buildInputs = [ DBDSQLite PackageStash SQLTranslator TestDeep TestException TestWarn ];
+    buildInputs = [ DBDSQLite PackageStash TestDeep TestException TestWarn ];
     propagatedBuildInputs = [ ClassAccessorGrouped ClassC3Componentised ClassInspector ConfigAny ContextPreserve DBI DataDumperConcise DataPage DevelGlobalDestruction HashMerge MROCompat ModuleFind Moo PathClass SQLAbstract ScopeGuard SubName TryTiny namespaceclean ];
     meta = {
       homepage = http://www.dbix-class.org/;
@@ -3979,6 +4128,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  DevelNYTProf = buildPerlPackage rec {
+    name = "Devel-NYTProf-6.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMB/${name}.tar.gz";
+      sha256 = "c04c9f03663b7e4e9cc159f30bcdc0bab5652889c88c425ec157e831318d4891";
+    };
+    propagatedBuildInputs = [ FileWhich JSONMaybeXS TestDifferences ];
+    meta = {
+      homepage = https://github.com/timbunce/devel-nytprof;
+      description = "Powerful fast feature-rich Perl source code profiler";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   DevelPartialDump = buildPerlPackage {
     name = "Devel-PartialDump-0.15";
     src = fetchurl {
@@ -3999,7 +4162,7 @@ let self = _self // overrides; _self = with self; {
       sha256 = "e882ccd7f4cbab0d0cdad53897f3f3bf29bdcf47d2bdfde1ac07f1bc7d7ebd16";
     };
     meta = {
-      homepage = http://metacpan.org/release/Devel-StackTrace;
+      homepage = https://metacpan.org/release/Devel-StackTrace;
       description = "An object representing a stack trace";
       license = stdenv.lib.licenses.artistic2;
     };
@@ -4193,7 +4356,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ CaptureTiny DistZilla MooseAutobox perl ];
     propagatedBuildInputs = [ DistZilla DistZillaPluginMojibakeTests DistZillaPluginNoTabsTests DistZillaPluginTestCPANChanges DistZillaPluginTestCPANMetaJSON DistZillaPluginTestCompile DistZillaPluginTestDistManifest DistZillaPluginTestEOL DistZillaPluginTestKwalitee DistZillaPluginTestMinimumVersion DistZillaPluginTestPerlCritic DistZillaPluginTestPodLinkCheck DistZillaPluginTestPortability DistZillaPluginTestSynopsis DistZillaPluginTestUnusedVars DistZillaPluginTestVersion JSONPP ListMoreUtils Moose PodCoverageTrustPod TestCPANMeta TestPerlCritic TestVersion namespaceautoclean ];
     meta = {
-      homepage = http://metacpan.org/release/Dist-Zilla-PluginBundle-TestingMania/;
+      homepage = https://metacpan.org/release/Dist-Zilla-PluginBundle-TestingMania/;
       description = "Test your dist with every testing plugin conceivable";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4294,7 +4457,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ CPANChanges DistZilla ];
     propagatedBuildInputs = [ CPANChanges DataSection DistZilla Moose ];
     meta = {
-      homepage = http://metacpan.org/release/Dist-Zilla-Plugin-Test-CPAN-Changes/;
+      homepage = https://metacpan.org/release/Dist-Zilla-Plugin-Test-CPAN-Changes/;
       description = "Release tests for your changelog";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4339,7 +4502,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ CaptureTiny DistZilla MooseAutobox TestOutput ];
     propagatedBuildInputs = [ DistZilla Moose TestDistManifest ];
     meta = {
-      homepage = http://metacpan.org/release/Dist-Zilla-Plugin-Test-DistManifest/;
+      homepage = https://metacpan.org/release/Dist-Zilla-Plugin-Test-DistManifest/;
       description = "Release tests for the manifest";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4384,7 +4547,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ DistZilla MooseAutobox TestOutput ];
     propagatedBuildInputs = [ DistZilla Moose TestMinimumVersion ];
     meta = {
-      homepage = http://metacpan.org/release/Dist-Zilla-Plugin-Test-MinimumVersion/;
+      homepage = https://metacpan.org/release/Dist-Zilla-Plugin-Test-MinimumVersion/;
       description = "Release tests for minimum required versions";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4429,7 +4592,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ CaptureTiny DistZilla MooseAutobox TestOutput ];
     propagatedBuildInputs = [ DistZilla Moose TestPortabilityFiles ];
     meta = {
-      homepage = http://metacpan.org/release/Dist-Zilla-Plugin-Test-Portability/;
+      homepage = https://metacpan.org/release/Dist-Zilla-Plugin-Test-Portability/;
       description = "Release tests for portability";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4444,7 +4607,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ CaptureTiny DistZilla MooseAutobox TestOutput ];
     propagatedBuildInputs = [ DistZilla Moose TestSynopsis ];
     meta = {
-      homepage = http://metacpan.org/release/Dist-Zilla-Plugin-Test-Synopsis/;
+      homepage = https://metacpan.org/release/Dist-Zilla-Plugin-Test-Synopsis/;
       description = "Release tests for synopses";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4459,7 +4622,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ CaptureTiny DistZilla MooseAutobox TestOutput ];
     propagatedBuildInputs = [ DistZilla Moose TestVars namespaceautoclean ];
     meta = {
-      homepage = http://metacpan.org/release/Dist-Zilla-Plugin-Test-UnusedVars/;
+      homepage = https://metacpan.org/release/Dist-Zilla-Plugin-Test-UnusedVars/;
       description = "Release tests for unused variables";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4655,6 +4818,26 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  EmailOutlookMessage = buildPerlPackage rec {
+    name = "Email-Outlook-Message-${version}";
+    version = "0.918";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MV/MVZ/${name}.tar.gz";
+      sha256 = "1w1s858xzp3vbi91qa01qnmk4n78fmvl4a7axrx2r15vr3s2k2pv";
+    };
+    propagatedBuildInputs = [
+      Carp Encode EmailMIME EmailMIMEContentType EmailSender
+      EmailSimple GetoptLong IOString OLEStorage_Lite PodUsage
+    ];
+    buildInputs = [ TestMore IOAll ];
+    meta = with stdenv.lib; {
+      homepage = http://www.matijs.net/software/msgconv/;
+      description = "A .MSG to mbox converter";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ peterhoeg ];
+    };
+  };
+
   EmailSender = buildPerlPackage rec {
     name = "Email-Sender-1.300028";
     src = fetchurl {
@@ -4709,14 +4892,14 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  Encode = buildPerlPackage {
-    name = "Encode-2.78";
+  Encode = buildPerlPackage rec {
+    name = "Encode-2.97";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-2.78.tar.gz;
-      sha256 = "1fc8d5c0e75ef85beeac71d1fe4a3bfcb8207755a46b32f783a3a6682672762a";
+      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/${name}.tar.gz";
+      sha256 = "044d2fc743bdf5ce4509a0e717a7adb31d488dafae63fde794f57a9f47b2ecb7";
     };
     meta = {
-      description = "Unknown";
+      description = "Character encodings in Perl";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -4727,6 +4910,7 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/authors/id/J/JG/JGMYERS/${name}.tar.gz";
       sha256 = "834d893aa7db6ce3f158afbd0e432d6ed15a276e0940db0a74be13fd9c4bbbf1";
     };
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
     propagatedBuildInputs = [ ModuleBuild ];
     meta = {
       description = "An Encode::Encoding subclass that detects the encoding of data";
@@ -4840,7 +5024,7 @@ let self = _self // overrides; _self = with self; {
       sha256 = "2ae7f8734e2e4945510252152c3bea4be35f4aa58aad3db0504c38844b08a991";
     };
     buildInputs = [ CanaryStability ];
-    propagatedBuildInputs = [ CommonSense ];
+    propagatedBuildInputs = [ commonsense ];
     meta = {
       license = stdenv.lib.licenses.gpl1Plus;
     };
@@ -5001,6 +5185,19 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ PerlOSType ];
   };
 
+  ExtUtilsCChecker = buildPerlPackage rec {
+    name = "ExtUtils-CChecker-0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/${name}.tar.gz";
+      sha256 = "50bfe76870fc1510f56bae4fa2dce0165d9ac4af4e7320d6b8fda14dfea4be0b";
+    };
+    buildInputs = [ ModuleBuild TestFatal ];
+    meta = {
+      description = "Configure-time utilities for using C headers,";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   ExtUtilsConfig = buildPerlPackage {
     name = "ExtUtils-Config-0.007";
     src = fetchurl {
@@ -5027,6 +5224,7 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
       sha256 = "1a77hxf2pa8ia9na72rijv1yhpn2bjrdsybwk2dj2l938pl3xn0w";
     };
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
     propagatedBuildInputs = [ CaptureTiny ];
   };
 
@@ -5081,12 +5279,13 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ExtUtilsLibBuilder = buildPerlModule {
-    name = "ExtUtils-LibBuilder-0.04";
+  ExtUtilsLibBuilder = buildPerlModule rec {
+    name = "ExtUtils-LibBuilder-0.08";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AM/AMBS/ExtUtils/ExtUtils-LibBuilder-0.04.tar.gz;
-      sha256 = "0j4rhx3w6nbvmxqjg6q09gm10nnpkcmqmh29cgxsfc9k14d8bb6w";
+      url = "mirror://cpan/authors/id/A/AM/AMBS/${name}.tar.gz";
+      sha256 = "1lmmfcjxvsvhn4f3v2lyylgr8dzcf5j7mnd1pkq3jc75dph724f5";
     };
+    perlPreHook = "export LD=$CC";
     meta = {
       description = "A tool to build C libraries";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -5094,13 +5293,11 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExtUtilsMakeMaker = buildPerlPackage {
-    name = "ExtUtils-MakeMaker-6.98";
+    name = "ExtUtils-MakeMaker-7.32";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-6.98.tar.gz;
-      sha256 = "2eb023189e5fa6b9dcc66858b1fde953d1f1b86f971ec5ab42dd36c172da63ef";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.32.tar.gz;
+      sha256 = "9a269f52ab59b125eb80b968271d9f49da0975d43e51363dbfd1695000ed69de";
     };
-    propagatedBuildInputs =
-      [ ParseCPANMeta JSONPP JSONPPCompat5006 CPANMetaYAML FileCopyRecursive ];
     meta = {
       homepage = https://metacpan.org/release/ExtUtils-MakeMaker;
       description = "Create a module Makefile";
@@ -5117,21 +5314,22 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExtUtilsParseXS = buildPerlPackage rec {
-    name = "ExtUtils-ParseXS-3.24";
+    name = "ExtUtils-ParseXS-3.35";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SM/SMUELLER/${name}.tar.gz";
-      sha256 = "07ipa2ssflw3ais8gbjdk4l8z2k1p65nfjwkxm37g6zw1210pdih";
+      sha256 = "077fqiyabydm8j34wxzxwxskyidh8nmwq9gskaxai8kq298z1pj1";
     };
   };
 
   ExtUtilsPkgConfig = buildPerlPackage rec {
-    name = "ExtUtils-PkgConfig-1.15";
+    name = "ExtUtils-PkgConfig-1.16";
     src = fetchurl {
       url = "mirror://cpan/authors/id/X/XA/XAOC/${name}.tar.gz";
-      sha256 = "1cxh6w8vmyqmhl6afys2q6z6jkp1m6zvacpk70196zmk48p1kcv9";
+      sha256 = "bbeaced995d7d8d10cfc51a3a5a66da41ceb2bc04fedcab50e10e6300e801c6e";
     };
     propagatedBuildInputs = [ pkgs.pkgconfig ];
     meta = {
+      homepage = http://gtk2-perl.sourceforge.net;
       description = "Simplistic interface to pkg-config";
       license = stdenv.lib.licenses.lgpl21Plus;
     };
@@ -5176,10 +5374,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExtUtilsXSpp = buildPerlModule rec {
-    name = "ExtUtils-XSpp-0.1700";
+    name = "ExtUtils-XSpp-0.18";
     src = fetchurl {
       url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
-      sha256 = "1msp79bdjzi59vignfz1cxwk5a2cjiahblvi0ka60pi8nnn0alrm";
+      sha256 = "1zx84f93lkymqz7qa4d63gzlnhnkxm5i3gvsrwkvvqr9cxjasxli";
     };
     buildInputs = [ Spiffy TestBase TestDifferences ];
   };
@@ -5396,6 +5594,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  FileFnMatch = buildPerlPackage rec {
+    name = "File-FnMatch-0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MJ/MJP/File-FnMatch-0.02.tar.gz";
+      sha256 = "05p9m7kpmjv8bmmbs5chb5fqyshcgmskbbzq5c9qpskbx2w5894n";
+    };
+    buildInputs = [ ];
+    meta = {
+      maintainers = [ maintainers.limeytexan ];
+      description = "simple filename and pathname matching";
+      license = stdenv.lib.licenses.free; # Same as Perl
+    };
+  };
+
   FileHandleUnget = buildPerlPackage rec {
     name = "FileHandle-Unget-0.1628";
     src = fetchurl {
@@ -5435,11 +5647,24 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ CryptRijndael ];
   };
 
+  Filelchown = buildPerlPackage rec {
+    name = "File-lchown-0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/${name}.tar.gz";
+      sha256 = "a02fbf285406a8a4d9399284f032f2d55c56975154c2e1674bd109837b8096ec";
+    };
+    buildInputs = [ ExtUtilsCChecker ModuleBuild ];
+    meta = {
+      description = "Modify attributes of symlinks without dereferencing them";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   FileLibMagic = buildPerlPackage rec {
-    name = "File-LibMagic-1.15";
+    name = "File-LibMagic-1.16";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "2c7fb54912caf2c22d06b02d6a88edad970e0f8b017634dc30eec46e53763e84";
+      sha256 = "c8a695fac1454f52e18e2e1b624c0647cf117326014023dda69fa3e1a5f33d60";
     };
     buildInputs = [ TestFatal pkgs.file ];
     makeMakerFlags = "--lib=${pkgs.file}/lib";
@@ -5448,7 +5673,7 @@ let self = _self // overrides; _self = with self; {
         --replace "/usr/share/file/magic.mgc" "${pkgs.file}/share/misc/magic.mgc"
     '';
     meta = {
-      homepage = http://metacpan.org/release/File::LibMagic;
+      homepage = https://metacpan.org/release/File::LibMagic;
       description = "Determine MIME types of data or files using libmagic";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.rycee ];
@@ -5486,19 +5711,24 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  FileModified = buildPerlPackage {
-    name = "File-Modified-0.07";
+  FileModified = buildPerlPackage rec {
+    name = "File-Modified-0.10";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CO/CORION/File-Modified-0.07.tar.gz;
-      sha256 = "11zkg171fa5vdbyrbfcay134hhgyf4yaincjxwspwznrfmkpi49h";
+      url = "mirror://cpan/authors/id/N/NE/NEILB/${name}.tar.gz";
+      sha256 = "6b50b1aab6ec6998a017f6403c2735b3bc1e1cf46187bd134d7eb6df3fc45144";
+    };
+    meta = {
+      homepage = https://github.com/neilbowers/File-Modified;
+      description = "Checks intelligently if files have changed";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
   FileNext = buildPerlPackage rec {
-    name = "File-Next-1.12";
+    name = "File-Next-1.16";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "cc3afd8eaf6294aba93b8152a269cc36a9df707c6dc2c149aaa04dabd869e60a";
+      sha256 = "0nfp84p63a5xm6iwlckh3f6cy9bdpjw5fazplskhnb8k5ifg4rb9";
     };
   };
 
@@ -5570,7 +5800,7 @@ let self = _self // overrides; _self = with self; {
     };
     propagatedBuildInputs = [ FileShareDir ];
     meta = {
-      homepage = http://github.com/ingydotnet/file-share-pm/tree;
+      homepage = https://github.com/ingydotnet/file-share-pm/tree;
       description = "Extend File::ShareDir to Local Libraries";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ ];
@@ -5648,10 +5878,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FileSlurper = buildPerlPackage rec {
-    name = "File-Slurper-0.009";
+    name = "File-Slurper-0.011";
     src = fetchurl {
       url = "mirror://cpan/authors/id/L/LE/LEONT/${name}.tar.gz";
-      sha256 = "3eab340deff6ba5456e7d1156b9cfcc387e1243acfc156ff92b75b3f2e120b91";
+      sha256 = "f6494844b9759b3d1dd8fc4ffa790f8e6e493c4eb58e88831a51e085f2e76010";
     };
     buildInputs = [ TestWarnings ];
     meta = {
@@ -5713,10 +5943,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FilterSimple = buildPerlPackage {
-    name = "Filter-Simple-0.91";
+    name = "Filter-Simple-0.94";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SM/SMUELLER/Filter-Simple-0.91.tar.gz;
-      sha256 = "c75a4945e94ecfe97e1409f49df036700d2e072e288497e205c4d319a80f694d";
+      url = mirror://cpan/authors/id/S/SM/SMUELLER/Filter-Simple-0.94.tar.gz;
+      sha256 = "1lkrgsqaxf595ha1y29gxqqf4kf8cpm5yzr4gg7zngbq1nb0pz6g";
     };
     meta = {
       description = "Simplified source filtering";
@@ -5725,10 +5955,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FinanceQuote = buildPerlPackage rec {
-    name = "Finance-Quote-1.38";
+    name = "Finance-Quote-1.47";
     src = fetchurl {
       url = "mirror://cpan/authors/id/E/EC/ECOCODE/${name}.tar.gz";
-      sha256 = "0zhqb27y4vdxn476s2kwm9zl2f970yjcyyybnjm9b406krr2fm59";
+      sha256 = "0gzbq85738f299jaw4nj3ljnka380j2y6yspmyl71rgfypqjvbr7";
     };
     propagatedBuildInputs = [
       CGI CryptSSLeay HTMLTableExtract HTMLTree HTTPMessage LWP LWPProtocolHttps MozillaCA
@@ -5891,10 +6121,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   GetoptLongDescriptive = buildPerlPackage rec {
-    name = "Getopt-Long-Descriptive-0.100";
+    name = "Getopt-Long-Descriptive-0.101";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "1451e79310d1630de37690e3aba5c38ea5f01a486c5a43f0cd95bef2a02dffb6";
+      sha256 = "752e898ea6eb8706ceb836668ca645704f5dcbc3124b6d1b21d04007dbc46948";
     };
     buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
     propagatedBuildInputs = [ ParamsValidate SubExporter ];
@@ -5902,7 +6132,6 @@ let self = _self // overrides; _self = with self; {
       homepage = https://github.com/rjbs/Getopt-Long-Descriptive;
       description = "Getopt::Long, but simpler and more powerful";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -5914,14 +6143,14 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  GitPurePerl = buildPerlPackage {
-    name = "Git-PurePerl-0.51";
+  GitPurePerl = buildPerlPackage rec {
+    name = "Git-PurePerl-0.53";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BR/BROQ/Git-PurePerl-0.51.tar.gz;
-      sha256 = "3775f385ae566ea392ece0913a06ffec46441a1273c19ba9a6d990574ec34d00";
+      url = "mirror://cpan/authors/id/B/BR/BROQ/${name}.tar.gz";
+      sha256 = "987c74366cc4c37ee084050f985fa254359c89c12507f5b8bfc6607de538d5a8";
     };
     buildInputs = [ Testutf8 ];
-    propagatedBuildInputs = [ ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest Moose MooseXStrictConstructor MooseXTypesPathClass namespaceautoclean ];
+    propagatedBuildInputs = [ ArchiveExtract ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest Moose MooseXStrictConstructor MooseXTypesPathClass namespaceautoclean ];
     doCheck = false;
     meta = {
       description = "A Pure Perl interface to Git repositories";
@@ -5939,7 +6168,6 @@ let self = _self // overrides; _self = with self; {
     meta = {
       homepage = http://gtk2-perl.sourceforge.net/;
       description = "Perl wrappers for the GLib utility and Object libraries";
-      maintainers = with maintainers; [ nckx ];
       license = stdenv.lib.licenses.lgpl21Plus;
     };
   };
@@ -6121,6 +6349,22 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ DataUUID CryptCBC ];
   };
 
+  GSSAPI = buildPerlPackage rec {
+    name = "GSSAPI-0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGROLMS/${name}.tar.gz";
+      sha256 = "1mkhwxjjlhr58pd770i9gnf7zy7jj092iv6jfbnb8bvnc5xjr3vx";
+    };
+    buildInputs = [ TestPod ];
+    propagatedBuildInputs = [ pkgs.krb5Full.dev ];
+    meta = {
+      maintainers = [ maintainers.limeytexan ];
+      description = "Perl extension providing access to the GSSAPIv2 library";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+    makeMakerFlags = "--gssapiimpl ${pkgs.krb5Full.dev}";
+  };
+
   Gtk2 = buildPerlPackage rec {
     name = "Gtk2-1.2498";
     src = fetchurl {
@@ -6131,8 +6375,34 @@ let self = _self // overrides; _self = with self; {
     meta = {
       homepage = http://gtk2-perl.sourceforge.net/;
       description = "Perl interface to the 2.x series of the Gimp Toolkit library";
-      maintainers = with maintainers; [ nckx ];
       license = stdenv.lib.licenses.lgpl21Plus;
+      platforms   = stdenv.lib.platforms.linux;
+    };
+  };
+
+  Gtk2GladeXML = buildPerlPackage rec {
+    name = "Gtk2-GladeXML-1.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TS/TSCH/${name}.tar.gz";
+      sha256 = "50240a2bddbda807c8f8070de941823b7bf3d288a13be6d0d6563320b42c445a";
+    };
+    propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig Glib Gtk2 Pango pkgs.gnome2.libglade pkgs.gtk2 ];
+    meta = {
+      homepage = https://metacpan.org/pod/Gtk2::GladeXML;
+      description = "Create user interfaces directly from Glade XML files";
+      license = stdenv.lib.licenses.lgpl2Plus;
+    };
+  };
+
+  Gtk2TrayIcon = buildPerlPackage rec {
+    name = "Gtk2-TrayIcon-0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BORUP/${name}.tar.gz";
+      sha256 = "cbb7632b75d7f41554dfe8ee9063dbfd1d8522291077c65d0d82e9ceb5e94ae2";
+    };
+    propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig Glib Gtk2 Pango pkgs.gtk2 ];
+    meta = {
+      license = stdenv.lib.licenses.gpl2;
     };
   };
 
@@ -6439,7 +6709,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ CacheCache CGI ClassContainer ExceptionClass HTMLParser LogAny ParamsValidate ];
     meta = {
-      homepage = http://metacpan.org/release/HTML-Mason;
+      homepage = https://metacpan.org/release/HTML-Mason;
       description = "High-performance, dynamic web site authoring system";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -6460,11 +6730,11 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  HTMLParser = buildPerlPackage {
-    name = "HTML-Parser-3.71";
+  HTMLParser = buildPerlPackage rec {
+    name = "HTML-Parser-3.72";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-3.71.tar.gz;
-      sha256 = "00nqzdgl7c3jilx7mil19k5jwcw3as14pvkjgxi97zyk94vqp4dy";
+      url = "mirror://cpan/authors/id/G/GA/GAAS/${name}.tar.gz";
+      sha256 = "12v05ywlnsi9lc17z32k9jxx3sj1viy7y1wpl7n4az76v7hwfa7c";
     };
     propagatedBuildInputs = [ HTMLTagset ];
     meta = {
@@ -6680,6 +6950,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  HTTPDAV = buildPerlPackage rec {
+    name = "HTTP-DAV-0.44";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OP/OPERA/${name}.tar.gz";
+      sha256 = "1pp7xbfn6yr87cqy2m2kl2v5zgvmmikhl7wmaw6c5nksj4wi9xq1";
+    };
+    buildInputs = [ LWP XMLDOM ];
+    meta = {
+      description = "WebDAV client library.";
+    };
+  };
+
   HTTPHeaderParserXS = buildPerlPackage rec {
     name = "HTTP-HeaderParser-XS-0.20";
     src = fetchurl {
@@ -6713,14 +6995,16 @@ let self = _self // overrides; _self = with self; {
   };
 
   HTTPMessage = buildPerlPackage rec {
-    name = "HTTP-Message-6.11";
+    name = "HTTP-Message-6.14";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETHER/${name}.tar.gz";
-      sha256 = "e7b368077ae6a188d99920411d8f52a8e5acfb39574d4f5c24f46fd22533d81b";
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/${name}.tar.gz";
+      sha256 = "71aab9f10eb4b8ec6e8e3a85fc5acb46ba04db1c93eb99613b184078c5cf2ac9";
     };
+    buildInputs = [ TryTiny ];
     propagatedBuildInputs = [ EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
     meta = {
-      description = "HTTP style messages";
+      homepage = https://github.com/libwww-perl/HTTP-Message;
+      description = "HTTP style message (base class)";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -6747,6 +7031,22 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestMore ];
   };
 
+  HTTPProxy = buildPerlPackage rec {
+    name = "HTTP-Proxy-0.304";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/${name}.tar.gz";
+      sha256 = "b05290534ec73625c21a0565fc35170890dab163843d95331c292c23f504c69d";
+    };
+    buildInputs = [ HTMLParser ];
+    propagatedBuildInputs = [ HTTPDaemon HTTPDate HTTPMessage LWP ];
+    meta = {
+      description = "A pure Perl HTTP proxy";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+    # tests fail because they require network access
+    doCheck = false;
+  };
+
   HTTPRequestAsCGI = buildPerlPackage rec {
     name = "HTTP-Request-AsCGI-1.2";
     src = fetchurl {
@@ -6780,6 +7080,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  HTTPServerSimpleAuthen = buildPerlPackage rec {
+    name = "HTTP-Server-Simple-Authen-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/${name}.tar.gz";
+      sha256 = "2dddc8ab9dc8986980151e4ba836a6bbf091f45cf195be1768ebdb4a993ed59b";
+    };
+    propagatedBuildInputs = [ AuthenSimple HTTPServerSimple ];
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   HTTPServerSimpleMason = buildPerlPackage {
     name = "HTTP-Server-Simple-Mason-0.14";
     src = fetchurl {
@@ -6864,10 +7176,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Importer = buildPerlPackage rec {
-    name = "Importer-0.024";
+    name = "Importer-0.025";
     src = fetchurl {
       url = "mirror://cpan/authors/id/E/EX/EXODIST/${name}.tar.gz";
-      sha256 = "1d19760ceb366b664985ace9a7ee1b54a438b1e060a5bca6eff0c6a35b07a557";
+      sha256 = "0745138c487d74033d0cbeb36f06595036dc7e688f1a5dbec9cc2fa799e13946";
     };
     meta = {
       description = "Alternative but compatible interface to modules that export symbols";
@@ -6918,6 +7230,17 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  IOCapture = buildPerlPackage rec {
+    name = "IO-Capture-0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REYNOLDS/${name}.tar.gz";
+      sha256 = "c2c15a254ca74fb8c57d25d7b6cbcaff77a3b4fb5695423f1f80bb423abffea9";
+    };
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   IOCaptureOutput = buildPerlPackage rec {
     name = "IO-CaptureOutput-1.1104";
     src = fetchurl {
@@ -6998,12 +7321,14 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  IOPager = buildPerlPackage {
-    name = "IO-Pager-0.06";
+  IOPager = buildPerlPackage rec {
+    version = "0.39";
+    name = "IO-Pager-${version}";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-0.06.tgz;
-      sha256 = "0r3af4gyjpy0f7bhs7hy5s7900w0yhbckb2dl3a1x5wpv7hcbkjb";
+      url = "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-${version}.tgz";
+      sha256 = "0ksldcw0hydfy9k70i6q6fm1wgbc54kx0lbwlkrszsbd7q72dlfg";
     };
+    propagatedBuildInputs = [pkgs.utillinux.bin]; # `more` used in tests
   };
 
   IOPrompt = buildPerlPackage {
@@ -7042,10 +7367,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   IOSocketSSL = buildPerlPackage rec {
-    name = "IO-Socket-SSL-2.039";
+    name = "IO-Socket-SSL-2.050";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SU/SULLR/${name}.tar.gz";
-      sha256 = "c6379a76860c724a22b79ebe9e91d26bd8a04e3ce035bacfd15de3d9beaf83ac";
+      sha256 = "54e6716e40df8b1c168d8f54a0b8f215313739bd99dda17adb7c00fe94656692";
     };
     propagatedBuildInputs = [ NetSSLeay URI ];
     # Fix path to default certificate store.
@@ -7208,16 +7533,16 @@ let self = _self // overrides; _self = with self; {
 
   ImageExifTool = buildPerlPackage rec {
     name = "Image-ExifTool-${version}";
-    version = "10.55";
+    version = "10.80";
 
     src = fetchurl {
-      url = "http://www.sno.phy.queensu.ca/~phil/exiftool/${name}.tar.gz";
-      sha256 = "0z8zwjjfvyllnhsafhddbybywpgqv0pl1dbn1g034cs27yj836q2";
+      url = "https://www.sno.phy.queensu.ca/~phil/exiftool/${name}.tar.gz";
+      sha256 = "14rwr5wk2snqv4yva6fax1gfsdv88941n237m0wyzn3n0xh9dy5w";
     };
 
     meta = with stdenv.lib; {
       description = "ExifTool, a tool to read, write and edit EXIF meta information";
-      homepage = http://www.sno.phy.queensu.ca/~phil/exiftool/;
+      homepage = https://www.sno.phy.queensu.ca/~phil/exiftool/;
 
       longDescription = ''
         ExifTool is a platform-independent Perl library plus a command-line
@@ -7233,57 +7558,48 @@ let self = _self // overrides; _self = with self; {
 
       license = with licenses; [ gpl1Plus /* or */ artistic2 ];
 
-      maintainers = [ ];
+      maintainers = [ maintainers.kiloreux ];
       platforms = platforms.unix;
     };
   };
 
   Inline = buildPerlPackage rec {
-    name = "Inline-0.64";
-
+    name = "Inline-0.80";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETJ/${name}.tar.gz";
-      sha256 = "17n3gbc9jigpfwqfhgmxpvbgr9rkdrij8jayxqpzw611ixcxrplw";
+      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
+      sha256 = "7e2bd984b1ebd43e336b937896463f2c6cb682c956cbd2c311a464363d2ccef6";
     };
-
     buildInputs = [ TestWarn ];
     propagatedBuildInputs = [ ParseRecDescent ];
-
     meta = {
-      description = "Inline -- Write Perl subroutines in other programming languages";
-
+      homepage = https://github.com/ingydotnet/inline-pm;
+      description = "Write Perl Subroutines in Other Programming Languages";
       longDescription = ''
         The Inline module allows you to put source code from other
         programming languages directly "inline" in a Perl script or
         module. The code is automatically compiled as needed, and then loaded
         for immediate access from Perl.
       '';
-
-      license = stdenv.lib.licenses.artistic2;
-
-      maintainers = [ ];
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
   InlineC = buildPerlPackage rec {
-    name = "Inline-C-0.76";
-
+    name = "Inline-C-0.78";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
-      sha256 = "0dcs39zjiglif3ss8p8yl0jyqk7qvc9g1ad9wi4kq79k9lxp3s92";
+      url = "mirror://cpan/authors/id/T/TI/TINITA/${name}.tar.gz";
+      sha256 = "9a7804d85c01a386073d2176582b0262b6374c5c0341049da3ef84c6f53efbc7";
     };
-
+    buildInputs = [ FileCopyRecursive FileShareDirInstall TestWarn YAMLLibYAML ];
+    propagatedBuildInputs = [ Inline ParseRecDescent Pegex ];
     postPatch = ''
       # this test will fail with chroot builds
       rm -f t/08taint.t
       rm -f t/28autowrap.t
     '';
-
-    buildInputs = [ TestWarn FileCopyRecursive FileShareDirInstall IOAll Pegex YAMLLibYAML ];
-    propagatedBuildInputs = [ Inline ];
-
     meta = {
-      description = "Write Perl Subroutines in C";
+      homepage = https://github.com/ingydotnet/inline-c-pm;
+      description = "C Language Support for Inline";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -7348,6 +7664,13 @@ let self = _self // overrides; _self = with self; {
       url = mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-2.90.tar.gz;
       sha256 = "127yppvr17qik9pkd1vy901hs4l13kg6rhp76jdgcyask35v7nsd";
     };
+    preConfigure = ''
+      cp lib/JSON/backportPP.pm{,orig}
+      echo "1;" > lib/JSON/backportPP.pm
+    '';
+    postConfigure = ''
+      cp lib/JSON/backportPP.pm{orig,}
+    '';
     buildInputs = [ TestPod ];
     meta = {
       description = "JSON (JavaScript Object Notation) encoder/decoder";
@@ -7427,7 +7750,7 @@ let self = _self // overrides; _self = with self; {
       url = mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-2.34.tar.gz;
       sha256 = "1sh0i73skxp3rvd9w8phxqncw9m1r5ibnb9qxxm21bmrfwkxybx6";
     };
-    propagatedBuildInputs = [ CommonSense ];
+    propagatedBuildInputs = [ commonsense ];
     meta = {
       homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
       platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
@@ -7473,6 +7796,7 @@ let self = _self // overrides; _self = with self; {
       url = mirror://cpan/authors/id/I/IS/ISAAC/libapreq2-2.13.tar.gz;
       sha256 = "5731e6833b32d88e4a5c690e45ddf20fcf969ce3da666c5627d775e92da0cf6e";
     };
+    outputs = [ "out" ];
     buildInputs = [ ApacheTest ExtUtilsXSBuilder mod_perl2 pkgs.apacheHttpd pkgs.apr pkgs.aprutil ];
     propagatedBuildInputs = [ mod_perl2 ];
     makeMakerFlags = "--with-apache2-src=${pkgs.apacheHttpd.dev} --with-apache2-apxs=${pkgs.apacheHttpd.dev}/bin/apxs --with-apache2-httpd=${pkgs.apacheHttpd.out}/bin/httpd --with-apr-config=${pkgs.apr.dev}/bin/apr-1-config --with-apu-config=${pkgs.aprutil.dev}/bin/apu-1-config";
@@ -7510,11 +7834,11 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  libnet = buildPerlPackage rec {
-    name = "libnet-3.08";
+  libnet = buildPerlPackage {
+    name = "libnet-3.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHAY/${name}.tar.gz";
-      sha256 = "21ebae642b53336576c370989d238cbe74378944079aca6f97665158c9f1750b";
+      url = mirror://cpan/authors/id/S/SH/SHAY/libnet-3.11.tar.gz;
+      sha256 = "1lsj3a2vbryh85mbb6yddyb2zjv5vs88fdj5x3v7fp2ndr6ixarg";
     };
     meta = {
       description = "Collection of network protocol modules";
@@ -7580,7 +7904,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestNoWarnings ];
     propagatedBuildInputs = [ LinguaENFindNumber LinguaENInflect LinguaENInflectNumber LinguaENNumberIsOrdinal LinguaENTagger ];
     meta = {
-      homepage = http://metacpan.org/release/Lingua-EN-Inflect-Phrase;
+      homepage = https://metacpan.org/release/Lingua-EN-Inflect-Phrase;
       description = "Inflect short English Phrases";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -7595,7 +7919,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestFatal TryTiny ];
     propagatedBuildInputs = [ LinguaENFindNumber ];
     meta = {
-      homepage = http://metacpan.org/release/Lingua-EN-Number-IsOrdinal;
+      homepage = https://metacpan.org/release/Lingua-EN-Number-IsOrdinal;
       description = "Detect if English number is ordinal or cardinal";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -7665,7 +7989,7 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/modules/by-module/Linux/${name}.tar.gz";
       sha256 = "1l916p8xak6c51x4x1vrzd8wpi55bld74wf0p5w5m4vr80zjb7dw";
     };
-    propagatedBuildInputs = [ CommonSense ];
+    propagatedBuildInputs = [ commonsense ];
   };
 
   ListAllUtils = buildPerlPackage {
@@ -7715,7 +8039,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestLeakTrace ];
     propagatedBuildInputs = [ ExporterTiny ModuleImplementation ];
     meta = {
-      homepage = http://metacpan.org/release/List-SomeUtils;
+      homepage = https://metacpan.org/release/List-SomeUtils;
       description = "Provide the stuff missing in List::Util";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -7845,11 +8169,13 @@ let self = _self // overrides; _self = with self; {
   };
 
   LogAny = buildPerlPackage rec {
-    name = "Log-Any-1.045";
+    name = "Log-Any-1.705";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PR/PREACTION/${name}.tar.gz";
-      sha256 = "d95180c0c2d50d7d3a541e0c79d83ee6b4ad5787e1785b361fed450c2dec8400";
+      sha256 = "85c7c5189a8bfc2ffb6f879b4cd04dd77f94bc5abc3800b4330f42f43fb9a696";
     };
+    # Syslog test fails.
+    preCheck = "rm t/syslog.t";
     meta = {
       homepage = https://github.com/preaction/Log-Any;
       description = "Bringing loggers and listeners together";
@@ -7858,19 +8184,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  LogContextual = buildPerlPackage {
-    name = "Log-Contextual-0.006003";
+  LogContextual = buildPerlPackage rec {
+    name = "Log-Contextual-0.008001";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FR/FREW/Log-Contextual-0.006003.tar.gz;
-      sha256 = "0940s910n67arqvz7aji4z6vgzzl52aq3l3jg8vq4ygnkn7c9k21";
+      url = "mirror://cpan/authors/id/F/FR/FREW/${name}.tar.gz";
+      sha256 = "b93cbcfbb8796d51c836e3b00243cda5630808c152c14eee5f20ca09c9451993";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ DataDumperConcise ExporterDeclare Moo ];
     meta = {
+      homepage = https://github.com/frioux/Log-Contextual;
       description = "Simple logging interface with a contextual log";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      maintainers = with maintainers; [ ];
-      platforms   = stdenv.lib.platforms.unix;
     };
   };
 
@@ -7999,6 +8324,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  LWPAuthenOAuth = buildPerlPackage rec {
+    name = "LWP-Authen-OAuth-1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMBRODY/${name}.tar.gz";
+      sha256 = "e78e0bd7de8002cfb4760073258d555ef55b2c27c07a94b3d8a2166a17fd96bc";
+    };
+    propagatedBuildInputs = [ LWP URI ];
+    meta = {
+      description = "Generate signed OAuth requests";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   LWPMediaTypes = buildPerlPackage {
     name = "LWP-MediaTypes-6.02";
     src = fetchurl {
@@ -8045,18 +8383,7 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  LWPUserAgent = buildPerlPackage {
-    name = "LWP-UserAgent-6.05";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/libwww-perl-6.05.tar.gz;
-      sha256 = "08wgwyz7748pv5cyngxia0xl6nragfnhrp4p9s78xhgfyygpj9bv";
-    };
-    propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookies HTTPDaemon HTTPDate HTTPNegotiate HTTPMessage LWPMediaTypes NetHTTP URI WWWRobotRules ];
-    meta = {
-      description = "The World-Wide Web library for Perl";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-    };
-  };
+  LWPUserAgent = LWP;
 
   LWPUserAgentDetermined = buildPerlPackage {
     name = "LWP-UserAgent-Determined-1.06";
@@ -8102,6 +8429,20 @@ let self = _self // overrides; _self = with self; {
     inherit fetchurl buildPerlPackage stdenv DBDmysql;
   };
 
+  MacPasteboard = buildPerlPackage rec {
+    name = "Mac-Pasteboard-0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WY/WYANT/${name}.tar.gz";
+      sha256 = "85b1d5e9630973b997c3c1634e2df964d6a8d6cb57d9abe1f7093385cf26cf54";
+    };
+    meta = with stdenv.lib; {
+      description = "Manipulate Mac OS X pasteboards";
+      license = with licenses; [ artistic1 gpl1Plus ];
+      platforms = platforms.darwin;
+    };
+    buildInputs = [ pkgs.darwin.apple_sdk.frameworks.ApplicationServices ];
+  };
+
   MailMaildir = buildPerlPackage rec {
     version = "1.0.0";
     name = "Mail-Maildir-${version}";
@@ -8167,6 +8508,18 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ParseRecDescent];
   };
 
+  MailPOP3Client = buildPerlPackage rec {
+    name = "Mail-POP3Client-2.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SD/SDOWD/${name}.tar.gz";
+      sha256 = "1142d6247a93cb86b23ed8835553bb2d227ff8213ee2743e4155bb93f47acb59";
+    };
+    meta = {
+      description = "Perl 5 module to talk to a POP3 (RFC1939) server";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   MailRFC822Address = buildPerlPackage {
     name = "Mail-RFC822-Address-0.3";
     src = fetchurl {
@@ -8175,6 +8528,27 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  MailSendmail = buildPerlPackage rec {
+    name = "Mail-Sendmail-0.80";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Mail-Sendmail-0.80.tar.gz";
+      sha256 = "1r38qbkj7jwj8cqy1rnqzkk81psxi08b1aiq392817f3bk5ri2jv";
+    };
+    propagatedBuildInputs = [ DigestMD5 MIMEBase64 Socket TimeLocal ];
+    # The test suite simply loads the module and attempts to send an email to
+    # the module's author, the latter of which is a) more of an integration
+    # test, b) impossible to verify, and c) won't work from a sandbox. Replace
+    # it in its entirety with the following simple smoke test.
+    checkPhase = ''
+      perl -I blib/lib -MMail::Sendmail -e 'print "1..1\nok 1\n"'
+    '';
+    meta = {
+      maintainers = [ maintainers.limeytexan ];
+      description = "Simple platform independent mailer";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   MailSPF = buildPerlPackage rec {
     name = "Mail-SPF-v2.9.0";
     #src = /root/nixops/Mail-SPF-v2.9.0;
@@ -8187,7 +8561,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ ModuleBuild NetDNSResolverProgrammable ];
     propagatedBuildInputs = [ Error NetAddrIP NetDNS URI ];
 
-    buildPhase = "perl Build.PL --install_base=$out --install_path=\"sbin=$out/bin\"; ./Build build ";
+    buildPhase = "perl Build.PL --install_base=$out --install_path=\"sbin=$out/bin\" --install_path=\"lib=$out/lib/perl5/site_perl\"; ./Build build ";
 
     doCheck = false; # The main test performs network access
     meta = {
@@ -8274,6 +8648,7 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/modules/by-module/Math/${name}.tar.gz";
       sha256 = "0i9wzvig7ayijc9nvh5x5rryk1jrcj1hcvfmlcj449rnnxx24dav";
     };
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
     propagatedBuildInputs = [ ModuleBuildWithXSpp ExtUtilsXSpp ExtUtilsTypemapsDefault TestDeep ];
   };
 
@@ -8977,16 +9352,17 @@ let self = _self // overrides; _self = with self; {
   };
 
   Moo = buildPerlPackage rec {
-    name = "Moo-2.003000";
+    name = "Moo-2.003004";
     src = fetchurl {
       url = "mirror://cpan/authors/id/H/HA/HAARG/${name}.tar.gz";
-      sha256 = "ccab84b1377e52922026b24b2ed51d83c439757f2b0783fffa73ac22b4fb3dd2";
+      sha256 = "f8bbb625f8e963eabe05cff9048fdd72bdd26777404ff2c40bc690f558be91e1";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ ClassMethodModifiers DevelGlobalDestruction ModuleRuntime RoleTiny SubQuote ];
     meta = {
       description = "Minimalist Object Orientation (with Moose compatibility)";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -8998,6 +9374,9 @@ let self = _self // overrides; _self = with self; {
     };
     buildInputs = [ CPANMetaCheck CPANMetaRequirements DistCheckConflicts TestCleanNamespaces TestFatal TestRequires ModuleMetadata ];
     propagatedBuildInputs = [ ClassLoad ClassLoadXS DataOptList DevelGlobalDestruction DevelStackTrace DistCheckConflicts EvalClosure ListMoreUtils MROCompat ModuleRuntime ModuleRuntimeConflicts PackageDeprecationManager PackageStash PackageStashXS ParamsUtil SubExporter SubName TaskWeaken TryTiny ];
+    preConfigure = ''
+      export LD=$CC
+    '';
     meta = {
       homepage = http://moose.perl.org/;
       description = "A postmodern object system for Perl 5";
@@ -9067,7 +9446,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ Moose ];
     meta = {
-      homepage = http://metacpan.org/release/MooseX-ABC;
+      homepage = https://metacpan.org/release/MooseX-ABC;
       description = "Abstract base classes for Moose";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ ];
@@ -9373,7 +9752,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestMoose ];
     propagatedBuildInputs = [ BHooksEndOfScope Moose namespaceautoclean ];
     meta = {
-      homepage = http://metacpan.org/release/MooseX-MarkAsMethods/;
+      homepage = https://metacpan.org/release/MooseX-MarkAsMethods/;
       description = "Mark overload code symbols as methods";
       license = stdenv.lib.licenses.lgpl21;
     };
@@ -9456,7 +9835,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestFatal TestMoose ];
     propagatedBuildInputs = [ Moose ];
     meta = {
-      homepage = http://github.com/sartak/MooseX-Role-Parameterized/tree;
+      homepage = https://github.com/sartak/MooseX-Role-Parameterized/tree;
       description = "Roles with composition parameters";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -9471,7 +9850,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestCheckDeps TestNoWarnings ModuleMetadata];
     propagatedBuildInputs = [ aliased Moose namespaceautoclean namespaceclean ];
     meta = {
-      homepage = http://metacpan.org/release/MooseX-Role-WithOverloading;
+      homepage = https://metacpan.org/release/MooseX-Role-WithOverloading;
       description = "Roles which support overloading";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -9713,7 +10092,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ DateTime MooseXTypesDateTime TestFatal ];
     propagatedBuildInputs = [ DevelPartialDump Moose MooseXTypes SubExporter ];
     meta = {
-      homepage = http://metacpan.org/release/MooseX-Types-Structured;
+      homepage = https://metacpan.org/release/MooseX-Types-Structured;
       description = "MooseX::Types::Structured - Structured Type Constraints for Moose";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ ];
@@ -9739,15 +10118,17 @@ let self = _self // overrides; _self = with self; {
   };
 
   Mouse = buildPerlModule rec {
-    name = "Mouse-v2.4.5";
+    name = "Mouse-v2.4.10";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SY/SYOHEX/${name}.tar.gz";
-      sha256 = "1f4dps68f2w1fwqjfpr4kllbcbwd744v3h1r9rkpwc2fhvq3q8hl";
+      url = "mirror://cpan/authors/id/G/GF/GFUJI/${name}.tar.gz";
+      sha256 = "053d28c4v8kj7llwfwj5hjkvc1kcs6mvcn24yg7vxklgj6hxv5dr";
     };
     buildInputs = [
       ModuleBuildXSUtil TestException TestLeakTrace TestRequires TestOutput
       TestFatal
     ];
+    NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isi686 "-fno-stack-protector";
+    hardeningDisable = stdenv.lib.optional stdenv.isi686 "stackprotector";
   };
 
   MouseXNativeTraits = buildPerlPackage rec {
@@ -9813,8 +10194,8 @@ let self = _self // overrides; _self = with self; {
     # Build.PL in this package uses which to find pkg-config -- make it use path instead
     patchPhase = ''sed -ie 's/`which pkg-config`/"pkg-config"/' Build.PL'';
     doCheck = false; # The main test performs network access
+    nativeBuildInputs = [ pkgs.pkgconfig ];
     #buildInputs = [ TestMore TestPod ];
-    buildInputs = [ pkgs.pkgconfig ];
     propagatedBuildInputs = [ pkgs.libdiscid ];
   };
 
@@ -10077,6 +10458,7 @@ let self = _self // overrides; _self = with self; {
       sha256 = "8565aff76b3d09084642f3a83c654fb4ced8220e8e19d35c78b661519b4c1be6";
     };
     propagatedBuildInputs = [ URI ];
+    __darwinAllowLocalNetworking = true;
     meta = {
       homepage = https://github.com/libwww-perl/Net-HTTP;
       description = "Low-level HTTP connection (client)";
@@ -10193,15 +10575,7 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  NetSMTP = buildPerlPackage {
-    name = "Net-SMTP-1.25";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SH/SHAY/libnet-1.25.tar.gz;
-      sha256 = "01f3l4aj3ynl8syyrl122k4bmfds77yw5q36aafrgaq22fnb3b2a";
-    };
-    patchPhase = "chmod a-x Configure";
-    doCheck = false; # The test suite fails, because it requires network access.
-  };
+  NetSMTP = libnet;
 
   NetSMTPSSL = buildPerlPackage {
     name = "Net-SMTP-SSL-1.03";
@@ -10294,7 +10668,7 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ CryptSSLeay LWPUserAgent NetOAuth URI ];
     doCheck = false;
     meta = {
-      homepage = http://github.com/semifor/Net-Twitter-Lite;
+      homepage = https://github.com/semifor/Net-Twitter-Lite;
       description = "A perl interface to the Twitter API";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -10406,7 +10780,8 @@ let self = _self // overrides; _self = with self; {
       sha256 = "1q3lz168q081iwl9jg21fbzhp9la79gav9mv6nmh2jab83s2l3mj";
     };
 
-    buildInputs = with pkgs; [ mesa mesa_glu freeglut xorg.libX11 xorg.libXi xorg.libXmu xorg.libXext xdummy ];
+    # FIXME: try with libGL + libGLU instead of libGLU_combined
+    buildInputs = with pkgs; [ libGLU_combined libGLU freeglut xorg.libX11 xorg.libXi xorg.libXmu xorg.libXext xdummy ];
 
     patches = [ ../development/perl-modules/perl-opengl.patch ];
 
@@ -10473,7 +10848,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestFatal TestWarnings ];
     propagatedBuildInputs = [ PackageStash ParamsUtil SubInstall SubName namespaceautoclean ];
     meta = {
-      homepage = http://metacpan.org/release/Package-DeprecationManager;
+      homepage = https://metacpan.org/release/Package-DeprecationManager;
       description = "Manage deprecation warnings for your distribution";
       license = stdenv.lib.licenses.artistic2;
     };
@@ -10501,7 +10876,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ DistCheckConflicts TestFatal TestRequires ];
     propagatedBuildInputs = [ DistCheckConflicts ModuleImplementation ];
     meta = {
-      homepage = http://metacpan.org/release/Package-Stash;
+      homepage = https://metacpan.org/release/Package-Stash;
       description = "Routines for manipulating stashes";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -10515,7 +10890,7 @@ let self = _self // overrides; _self = with self; {
     };
     buildInputs = [ TestRequires TestFatal ];
     meta = {
-      homepage = http://metacpan.org/release/Package-Stash-XS;
+      homepage = https://metacpan.org/release/Package-Stash-XS;
       description = "Faster and more correct implementation of the Package::Stash API";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -10532,11 +10907,25 @@ let self = _self // overrides; _self = with self; {
     meta = {
       homepage = http://gtk2-perl.sourceforge.net/;
       description = "Layout and render international text";
-      maintainers = with maintainers; [ nckx ];
       license = stdenv.lib.licenses.lgpl21Plus;
     };
   };
 
+  ParallelForkManager = buildPerlPackage rec {
+    name = "Parallel-ForkManager-1.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YA/YANICK/${name}.tar.gz";
+      sha256 = "f1de2e9875eeb77d65f80338905dedd522f3913822502982f805aa71cde5a472";
+    };
+    buildInputs = [ TestWarn ];
+    meta = {
+      homepage = https://github.com/dluxhu/perl-parallel-forkmanager;
+      description = "A simple parallel processing fork manager";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.rycee ];
+    };
+  };
+
   ParallelPrefork = buildPerlPackage {
     name = "Parallel-Prefork-0.17";
     src = fetchurl {
@@ -10581,8 +10970,9 @@ let self = _self // overrides; _self = with self; {
     };
     buildInputs = [ ModuleBuild TestFatal TestRequires ];
     propagatedBuildInputs = [ ModuleImplementation ];
+    perlPreHook = "export LD=$CC";
     meta = {
-      homepage = http://metacpan.org/release/Params-Validate;
+      homepage = https://metacpan.org/release/Params-Validate;
       description = "Validate method/function parameters";
       license = stdenv.lib.licenses.artistic2;
     };
@@ -10632,15 +11022,18 @@ let self = _self // overrides; _self = with self; {
     meta = with stdenv.lib; {
       homepage = http://search.cpan.org/~jaybonci/Parse-DebControl;
       license = with licenses; [ artistic1 gpl1Plus ];
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
   ParseRecDescent = buildPerlPackage rec {
-    name = "Parse-RecDescent-1.967009";
+    name = "Parse-RecDescent-1.967015";
     src = fetchurl {
       url = "mirror://cpan/authors/id/J/JT/JTBRAUN/${name}.tar.gz";
-      sha256 = "11y6fpz4j6kdimyaz2a6ig0jz0x7csqslhxaipxnjqi5h85hy071";
+      sha256 = "1943336a4cb54f1788a733f0827c0c55db4310d5eae15e542639c9dd85656e37";
+    };
+    meta = {
+      description = "Generate Recursive-Descent Parsers";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -10709,7 +11102,7 @@ let self = _self // overrides; _self = with self; {
     # tests fail; look unfinished
     doCheck = false;
     meta = {
-      homepage = "http://ludovic.rousseau.free.fr/softwares/pcsc-perl/";
+      homepage = http://ludovic.rousseau.free.fr/softwares/pcsc-perl/;
       description = "Communicate with a smart card using PC/SC";
       license = stdenv.lib.licenses.gpl2Plus;
       maintainers = with maintainers; [ abbradar ];
@@ -10753,6 +11146,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  Perlosnames = buildPerlPackage rec {
+    name = "Perl-osnames-0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/${name}.tar.gz";
+      sha256 = "fb22a1ed59dc2311f7f1ffca5685d90c0600020467f624f57b4dd3dba5bc659b";
+    };
+    meta = {
+      homepage = https://metacpan.org/release/Perl-osnames;
+      description = "List possible $^O ($OSNAME) values, with description";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   PerlCritic = buildPerlModule rec {
     name = "Perl-Critic-1.130";
     src = fetchurl {
@@ -10884,6 +11290,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  PkgConfig = buildPerlPackage rec {
+    name = "PkgConfig-0.19026";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/${name}.tar.gz";
+      sha256 = "5cb6e934d29dd93e04c2fa779f4b7e51361edaf56957b47a232017a4bb7e922c";
+    };
+    meta = {
+      homepage = https://metacpan.org/pod/PkgConfig;
+      description = "Pure-Perl Core-Only replacement for pkg-config";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.limeytexan ];
+    };
+  };
+
   Plack = buildPerlPackage rec {
     name = "Plack-1.0039";
     src = fetchurl {
@@ -10992,7 +11412,8 @@ let self = _self // overrides; _self = with self; {
       url = "https://alioth.debian.org/frs/download.php/file/4142/po4a-0.47.tar.gz";
       sha256 = "5010e1b7df1115cbd475f46587fc05fefc97301f9bba0c2f15106005ca017507";
     };
-    propagatedBuildInputs = [ pkgs.docbook_xml_xslt TextWrapI18N LocaleGettext TermReadKey SGMLSpm ModuleBuild UnicodeLineBreak ModuleBuild ];
+    nativeBuildInputs = [ pkgs.docbook_xml_xslt pkgs.docbook_xsl pkgs.docbook_xsl_ns ];
+    propagatedBuildInputs = [ TextWrapI18N LocaleGettext TermReadKey SGMLSpm ModuleBuild UnicodeLineBreak ModuleBuild ];
     buildInputs = [ pkgs.gettext pkgs.libxslt pkgs.glibcLocales pkgs.docbook_xml_dtd_412 pkgs.docbook_sgml_dtd_41 pkgs.texlive.combined.scheme-basic pkgs.jade ];
     LC_ALL="en_US.UTF-8";
     SGML_CATALOG_FILES = "${pkgs.docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml";
@@ -11014,13 +11435,69 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  POE = buildPerlPackage rec {
+    name = "POE-1.367";
+    patches = [
+      ../development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
+      ../development/perl-modules/perl-POE-1.367-pod_no404s.patch
+    ];
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-1.367.tar.gz";
+      sha256 = "0b9s7yxaa2lgzyi56brgygycfjk7lz33d1ddvc1wvwwvm45p4wmp";
+    };
+    # N.B. removing TestPodLinkCheck from buildInputs because tests requiring
+    # this module don't disable themselves when "run_network_tests" is
+    # not present (see below).
+    buildInputs = [
+      Curses EmailMIME HTTPMessage IOTty LWPProtocolHttps POETestLoops
+      TermReadKey TestPod TestPodCoverage TestPodNo404s YAML
+    ];
+    propagatedBuildInputs = [ pkgs.cacert IOPipely ];
+    meta = {
+      maintainers = [ maintainers.limeytexan ];
+      description = "Portable multitasking and networking framework for any event loop";
+      license = stdenv.lib.licenses.artistic2;
+    };
+    preCheck = ''
+      set -x
+
+      : Makefile.PL touches the following file as a "marker" to indicate
+      : it should perform tests which use the network. Delete this file
+      : for sandbox builds.
+      rm -f run_network_tests
+
+      : Certs are required if not running in a sandbox.
+      export SSL_CERT_FILE=${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt
+
+      : The following flag enables extra tests not normally performed.
+      export RELEASE_TESTING=1
+
+      set +x
+    '';
+  };
+
+  POETestLoops = buildPerlPackage rec {
+    name = "POE-Test-Loops-1.360";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCAPUTO/${name}.tar.gz";
+      sha256 = "0yx4wsljfmdzsiv0ni98x6lw975cm82ahngbwqvzv60wx5pwkl5y";
+    };
+    buildInputs = [ ];
+    propagatedBuildInputs = [ ];
+    meta = {
+      maintainers = [ maintainers.limeytexan ];
+      description = "Reusable tests for POE::Loop authors";
+      license = stdenv.lib.licenses.artistic2;
+    };
+  };
+
   PPI = buildPerlPackage rec {
-    name = "PPI-1.224";
+    name = "PPI-1.236";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MI/MITHALDU/${name}.tar.gz";
-      sha256 = "8d0f9faaea68515fb5aa6323115dcf98ea6c1dec4441f3844d3b9633b6cc9d94";
+      sha256 = "c6674b349c0b7d9a6d668e789a5e5215477d88ed4c8203aa69a2a50085308aec";
     };
-    buildInputs = [ ClassInspector FileRemove TestDeep TestObject TestSubCalls TestWarn ];
+    buildInputs = [ ClassInspector FileRemove TestDeep TestObject TestSubCalls ];
     propagatedBuildInputs = [ Clone IOString ListMoreUtils ParamsUtil TaskWeaken ];
 
     # Remove test that fails due to unexpected shebang after
@@ -11083,6 +11560,21 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ProcFind = buildPerlPackage rec {
+    name = "Proc-Find-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/${name}.tar.gz";
+      sha256 = "07d715c2b8644dc6d5b5a36ffcd2f02da017bf86a00027387aa47c53e2347a81";
+    };
+    buildInputs = [ Perlosnames ];
+    propagatedBuildInputs = [ ProcProcessTable ];
+    meta = {
+      homepage = https://metacpan.org/release/Proc-Find;
+      description = "Find processes by name, PID, or some other attributes";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   ProcSafeExec = buildPerlPackage {
     name = "Proc-SafeExec-1.5";
     src = fetchurl {
@@ -11123,6 +11615,26 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ IPCSignal ];
   };
 
+  ProtocolWebSocket = buildPerlModule rec {
+    name = "Protocol-WebSocket-0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VT/VTI/${name}.tar.gz";
+      sha256 = "00ga7sjrqcbr46kwfbaa37lxqqbp9z5gymjckzps6ll2jf7k58mx";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+  };
+
+  ProtocolHTTP2 = buildPerlModule rec {
+    name = "Protocol-HTTP2-1.08";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CR/CRUX/${name}.tar.gz";
+      sha256 = "06y1djgzbn340hixav85728dvp8mj2mx2qf5fzkqxh145g5q860g";
+    };
+    buildInputs = [ ModuleBuildTiny TestLeakTrace  TestTCP ];
+    propagatedBuildInputs = [ AnyEvent NetSSLeay ];
+  };
+
   PSGI = buildPerlPackage rec {
     name = "PSGI-1.102";
     src = fetchurl {
@@ -11324,7 +11836,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ ModuleBuild ];
     propagatedBuildInputs = [ self."if" ];
     meta = {
-      homepage = http://github.com/timj/perl-Pod-LaTeX/tree/master;
+      homepage = https://github.com/timj/perl-Pod-LaTeX/tree/master;
       description = "Convert Pod data to formatted Latex";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -11669,10 +12181,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   RoleTiny = buildPerlPackage rec {
-    name = "Role-Tiny-2.000005";
+    name = "Role-Tiny-2.000006";
     src = fetchurl {
       url = "mirror://cpan/authors/id/H/HA/HAARG/${name}.tar.gz";
-      sha256 = "593a29b621e029bf0218d0154d5dfdf6ec502afc49adeeadae6afd0c70063115";
+      sha256 = "cc73418c904a0286ecd8915eac11f5be2a8d1e17ea9cb54c9116b0340cd3e382";
     };
     meta = {
       description = "Roles. Like a nouvelle cuisine portion size slice of Moose";
@@ -11750,6 +12262,16 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ ModuleBuild ];
   };
 
+  SCGI = buildPerlPackage rec {
+    name = "SCGI-0.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPERCODE/${name}.tar.gz";
+      sha256 = "196rj47mh4fq2vlnw595q391zja5v6qg7s3sy0vy8igfyid8rdsq";
+    };
+    preConfigure = "export HOME=$(mktemp -d)";
+    buildInputs = [ ModuleBuild ];
+  };
+
   ScopeGuard = buildPerlPackage {
     name = "Scope-Guard-0.20";
     src = fetchurl {
@@ -11762,11 +12284,11 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ScopeUpper = buildPerlPackage {
-    name = "Scope-Upper-0.24";
+  ScopeUpper = buildPerlPackage rec {
+    name = "Scope-Upper-0.29";
     src = fetchurl {
-      url = mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.24.tar.gz;
-      sha256 = "159jcwliyb7j80858pi052hkmhgy4cdbjha419kmhhqc9s1rhd5g";
+      url = "mirror://cpan/authors/id/V/VP/VPIT/${name}.tar.gz";
+      sha256 = "4b07360a243ce0ccaacfdfa98ae38ef2686aa908fcf4ef3d669105ac36759e0a";
     };
     meta = {
       homepage = http://search.cpan.org/dist/Scope-Upper/;
@@ -11799,13 +12321,13 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ServerStarter = buildPerlModule {
-    name = "Server-Starter-0.32";
+  ServerStarter = buildPerlModule rec {
+    name = "Server-Starter-0.33";
     src = fetchurl {
-      url = mirror://cpan/authors/id/K/KA/KAZUHO/Server-Starter-0.32.tar.gz;
-      sha256 = "a8ecc19f05f3c3b079e1c7f2c007a6df2b9a2912b9848a8fb51bd78c7b13ac1a";
+      url = "mirror://cpan/authors/id/K/KA/KAZUHO/${name}.tar.gz";
+      sha256 = "109cc1ede244f2edb7e020c507d4a1ff7a8074f22a8f7c30253fb00af1aba6f6";
     };
-    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    buildInputs = [ ModuleBuild TestRequires TestSharedFork TestTCP ];
     meta = {
       homepage = https://github.com/kazuho/p5-Server-Starter;
       description = "A superdaemon for hot-deploying server programs";
@@ -11836,11 +12358,15 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  SetObject = buildPerlPackage {
-    name = "Set-Object-1.34";
+  SetObject = buildPerlPackage rec {
+    name = "Set-Object-1.35";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RU/RURBAN/Set-Object-1.34.tar.gz;
-      sha256 = "1dipd6k572pzqjzbj9vagb2k347qcg29lsxzx9y214bhnw7fgvjp";
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/${name}.tar.gz";
+      sha256 = "189a4d7cc3e583faa8518a63a95cf4aa3a320f79b5c6f5e40970687244080ee7";
+    };
+    meta = {
+      description = "Unordered collections (sets) of Perl Objects";
+      license = stdenv.lib.licenses.artistic2;
     };
   };
 
@@ -11894,12 +12420,17 @@ let self = _self // overrides; _self = with self; {
   };
 
   Socket = buildPerlPackage {
-    name = "Socket-2.020";
+    name = "Socket-2.027";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PE/PEVANS/Socket-2.020.tar.gz;
-      sha256 = "9ad4174c45b4c31d5e0b8019ada1fc767093849e77f268f0d1831eeb891dfdd7";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Socket-2.027.tar.gz;
+      sha256 = "1a725fbqx6bjzjf63bgs5wvzd20kffz1f94pbmv1670p9m4i270l";
     };
+    postPatch = ''
+      # requires network access
+      rm t/getnameinfo.t t/getaddrinfo.t
+    '';
     meta = {
+      homepage = https://metacpan.org/pod/Socket;
       description = "Networking constants and support functions";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -11920,12 +12451,13 @@ let self = _self // overrides; _self = with self; {
   };
 
   SoftwareLicense = buildPerlPackage rec {
-    name = "Software-License-0.103012";
+    name = "Software-License-0.103013";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "47f9acb7f4eeed35e38c1bec37a71b61e651965233d67dadfae6390571517db1";
+      url = "mirror://cpan/authors/id/L/LE/LEONT/${name}.tar.gz";
+      sha256 = "2641d937390f43b08fa31c419713cd96a2f0bf160be04cab322631daf6810ff3";
     };
-    propagatedBuildInputs = [ DataSection TextTemplate TryTiny ];
+    buildInputs = [ TryTiny ];
+    propagatedBuildInputs = [ DataSection TextTemplate ];
     meta = {
       homepage = https://github.com/rjbs/Software-License;
       description = "Packages that provide templated software licenses";
@@ -11934,6 +12466,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  SortKey = buildPerlPackage rec {
+    name = "Sort-Key-1.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SALVA/${name}.tar.gz";
+      sha256 = "1kqs10s2plj6c96srk0j8d7xj8dxk1704r7mck8rqk09mg7lqspd";
+    };
+    buildInputs = [ TestMore ];
+    meta = {
+      description = "Sort arrays by one or multiple calculated keys";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   SortVersions = buildPerlPackage rec {
     name = "Sort-Versions-1.5";
     src = fetchurl {
@@ -11959,7 +12504,7 @@ let self = _self // overrides; _self = with self; {
     };
     propagatedBuildInputs = [ CryptRC4 DigestPerlMD5 IOstringy OLEStorage_Lite ];
     meta = {
-      homepage = http://github.com/runrig/spreadsheet-parseexcel/;
+      homepage = https://github.com/runrig/spreadsheet-parseexcel/;
       description = "Read information from an Excel file";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -11979,17 +12524,16 @@ let self = _self // overrides; _self = with self; {
   };
 
   SQLAbstract = buildPerlPackage rec {
-    name = "SQL-Abstract-1.81";
+    name = "SQL-Abstract-1.85";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/${name}.tar.gz";
-      sha256 = "5f4d5618ce2424d62bbfdb5228b382e8be0e0ccedbb273d6d850e25d07e64f9f";
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/${name}.tar.gz";
+      sha256 = "9f44afe031a0cc63a6ccabaa46ba7ec58ef4db940559cee7fbc2dfbbf37bccab";
     };
     buildInputs = [ TestDeep TestException TestWarn ];
-    propagatedBuildInputs = [ HashMerge MROCompat Moo ];
+    propagatedBuildInputs = [ HashMerge MROCompat Moo SubQuote ];
     meta = {
       description = "Generate SQL from Perl data structures";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -12294,6 +12838,9 @@ let self = _self // overrides; _self = with self; {
     meta = {
       maintainers = with maintainers; [ ];
       platforms   = stdenv.lib.platforms.unix;
+
+      # http://cpansearch.perl.org/src/ROSCH/String-ShellQuote-1.04/README
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -12473,6 +13020,21 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  SubInfo = buildPerlPackage rec {
+    name = "Sub-Info-0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/${name}.tar.gz";
+      sha256 = "ea3056d696bdeff21a99d340d5570887d39a8cc47bff23adfc82df6758cdd0ea";
+    };
+    buildInputs = [ TestSimple13 ];
+    propagatedBuildInputs = [ Importer ];
+    meta = {
+      description = "Tool for inspecting subroutines";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.rycee ];
+    };
+  };
+
   SubInstall = buildPerlPackage {
     name = "Sub-Install-0.927";
     src = fetchurl {
@@ -12511,10 +13073,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SubQuote = buildPerlPackage rec {
-    name = "Sub-Quote-2.003001";
+    name = "Sub-Quote-2.005000";
     src = fetchurl {
       url = "mirror://cpan/authors/id/H/HA/HAARG/${name}.tar.gz";
-      sha256 = "9d471d8e13e7ce4793d5a5ec04a60fface14dd53be78dd94d228871915cfd1f9";
+      sha256 = "44b145111bee7b0001818e77f7ce587153232dbc97351f4c5ed34522372b64ff";
     };
     buildInputs = [ TestFatal ];
     meta = {
@@ -12655,36 +13217,40 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  SysSyslog = buildPerlPackage {
-    name = "Sys-Syslog-0.34";
+  SysSyslog = buildPerlPackage rec {
+    name = "Sys-Syslog-0.35";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SAPER/Sys-Syslog-0.34.tar.gz;
-      sha256 = "09cnzk0fpj2i8asi4ba5wzs3i5pmbins87xpgmxcw4ipmn66s7ld";
+      url = "mirror://cpan/authors/id/S/SA/SAPER/${name}.tar.gz";
+      sha256 = "fe28e47b70b77aaae754385fe1470d174289e7b6908efa247d2e52486516fbb7";
     };
     meta = {
       description = "Perl interface to the UNIX syslog(3) calls";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.rycee ];
     };
   };
 
   SysVirt = buildPerlPackage rec {
-    name = "Sys-Virt-1.2.19";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DANBERR/${name}.tar.gz";
-      sha256 = "18v8x0514in0zpvq1rv78hmvhpij1xjh5xn0wa6wmg2swky54sp4";
+    version = "4.1.0";
+    name = "Sys-Virt-${version}";
+    src = assert version == pkgs.libvirt.version; pkgs.fetchgit {
+      url = git://libvirt.org/libvirt-perl.git;
+      rev = "v${version}";
+      sha256 = "0m0snv6gqh97nh1c31qvbm4sdzp49vixn7w3r69h6a5r71sn78x4";
     };
     propagatedBuildInputs = [XMLXPath];
-    buildInputs = [TestPodCoverage TimeHiRes TestPod pkgs.pkgconfig pkgs.libvirt];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = [TestPodCoverage TimeHiRes TestPod pkgs.libvirt];
     meta = {
       platforms = stdenv.lib.platforms.linux;
     };
   };
 
-  TAPParserSourceHandlerpgTAP = buildPerlModule {
-    name = "TAP-Parser-SourceHandler-pgTAP-3.30";
+  TAPParserSourceHandlerpgTAP = buildPerlModule rec {
+    name = "TAP-Parser-SourceHandler-pgTAP-3.33";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.30.tar.gz;
-      sha256 = "08gadqf898r23sx07sn13555cp9zkwp8igjlh1fza2ycfivpfl9f";
+      url = "mirror://cpan/authors/id/D/DW/DWHEELER/${name}.tar.gz";
+      sha256 = "15q46y2hbp2ij5n9ir76lmspqj3n8gb0z9l5ipb5g7q90l160m4k";
     };
     meta = {
       homepage = http://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP/;
@@ -12718,7 +13284,7 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ ModuleBuild perl ];
     propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify Inline InlineC ListMoreUtils Moo MooX PathTiny StringShellQuote TaskTestRunAllPlugins TemplateToolkit TestDataSplit TestDifferences TestPerlTidy TestRunPluginTrimDisplayedFilenames TestRunValgrind TestTrailingSpace YAMLLibYAML ];
     meta = {
-      homepage = http://metacpan.org/release/Task-FreecellSolver-Testing;
+      homepage = https://metacpan.org/release/Task-FreecellSolver-Testing;
       description = "Install the CPAN dependencies of the Freecell Solver test suite";
       license = stdenv.lib.licenses.mit;
     };
@@ -12915,11 +13481,11 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  TermProgressBar = buildPerlPackage {
-    name = "Term-ProgressBar-2.14";
+  TermProgressBar = buildPerlPackage rec {
+    name = "Term-ProgressBar-2.21";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SZ/SZABGAB/Term-ProgressBar-2.14.tar.gz;
-      sha256 = "18cj7mzbis9xk0v32g2700vq9b4p9v5msk02mglf244cj77bflf6";
+      url = "mirror://cpan/authors/id/M/MA/MANWAR/${name}.tar.gz";
+      sha256 = "66994f1a6ca94d8d92e3efac406142fb0d05033360c0acce2599862db9c30e44";
     };
     buildInputs = [ CaptureTiny TestException ];
     propagatedBuildInputs = [ ClassMethodMaker TermReadKey ];
@@ -12951,10 +13517,11 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ TermProgressBarQuiet ];
   };
 
-  TermReadKey = buildPerlPackage {
-    name = "TermReadKey-2.31";
+  TermReadKey = buildPerlPackage rec {
+    name = "TermReadKey-${version}";
+    version = "2.37";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.31.tar.gz;
+      url = "mirror://cpan/authors/id/J/JS/JSTOWE/${name}.tar.gz";
       sha256 = "1czarrdxgnxmmbaasjnq3sj14nf1cvzhm37padq6xvl7h7r2acb2";
     };
   };
@@ -12983,12 +13550,27 @@ let self = _self // overrides; _self = with self; {
     doCheck = false;
 
     meta = {
-      homepage = http://sourceforge.net/projects/perl-trg/;
+      homepage = https://sourceforge.net/projects/perl-trg/;
       description = "Perl extension for the GNU Readline/History Library";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
+  TermReadLineTTYtter = buildPerlPackage rec {
+    name = "Term-ReadLine-TTYtter-1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CK/CKAISER/Term-ReadLine-TTYtter-1.4.tar.gz";
+      sha256 = "14xcqhg1vrwgv65nd2z8xzn0wgb18i17pzkkh8m15cp1rqrk2dxc";
+    };
+
+    outputs = [ "out" ];
+
+    meta = {
+      description = "a modified version of T::RL::Perl with several new nonstandard features specific to TTYtter";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TermShellUI = buildPerlPackage rec {
     name = "Term-ShellUI-0.92";
     src = fetchurl {
@@ -13022,6 +13604,21 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TermTable = buildPerlPackage rec {
+    name = "Term-Table-0.012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/${name}.tar.gz";
+      sha256 = "4db6118fbf862bd32a8402e1ee28ce2044d0e0887ef29b726e917ab4258a063a";
+    };
+    buildInputs = [ TestSimple13 ];
+    propagatedBuildInputs = [ Importer ];
+    meta = {
+      description = "Format a header and rows into a table";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.rycee ];
+    };
+  };
+
   TermVT102 = buildPerlPackage {
     name = "Term-VT102-0.91";
     src = fetchurl {
@@ -13044,6 +13641,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TermAnimation = buildPerlPackage rec {
+    name = "Term-Animation-2.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KB/KBAUCOM/${name}.tar.gz";
+      sha256 = "7d5c3c2d4f9b657a8b1dce7f5e2cbbe02ada2e97c72f3a0304bf3c99d084b045";
+    };
+    propagatedBuildInputs = [ Curses ];
+    meta = {
+      description = "ASCII sprite animation framework";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Test = buildPerlPackage {
     name = "Test-1.26";
     src = fetchurl {
@@ -13056,12 +13666,12 @@ let self = _self // overrides; _self = with self; {
   };
 
   Test2Suite = buildPerlPackage rec {
-    name = "Test2-Suite-0.000061";
+    name = "Test2-Suite-0.000094";
     src = fetchurl {
       url = "mirror://cpan/authors/id/E/EX/EXODIST/${name}.tar.gz";
-      sha256 = "b2ef2a59c8864c79f6c6a64c65e12c93f881361e4d9eb54419fcb4785c08ea75";
+      sha256 = "7135ccb6af82bac39801234e1ce49eb8693dfe8f8e215c7de577c7ded65b6e5f";
     };
-    propagatedBuildInputs = [ Importer TestSimple13 ];
+    propagatedBuildInputs = [ Importer ModulePluggable ScopeGuard SubInfo TermTable TestSimple13 ];
     meta = {
       description = "Distribution with a rich set of tools built upon the Test2 framework";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -13173,6 +13783,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TestCompile = buildPerlPackage rec {
+    name = "Test-Compile-v1.3.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EG/EGILES/${name}.tar.gz";
+      sha256 = "77527e9477ac5260443c756367a7f7bc3d8f6c6ebbc561b0b2fb3f79303bad33";
+    };
+    buildInputs = [ ModuleBuild ];
+    propagatedBuildInputs = [ UNIVERSALrequire ];
+    meta = {
+      description = "Check whether Perl files compile correctly";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TestCPANMeta = buildPerlPackage {
     name = "Test-CPAN-Meta-0.23";
     src = fetchurl {
@@ -13258,7 +13882,7 @@ let self = _self // overrides; _self = with self; {
       sha256 = "0qfdn71562xzmgnhmkkdbpp3vj851ldl1zlmxvharxsr16gjh6s3";
     };
     meta = {
-      homepage = http://metacpan.org/release/Test-EOL;
+      homepage = https://metacpan.org/release/Test-EOL;
       description = "Check the correct line endings in your project";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ ];
@@ -13542,6 +14166,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TestNeeds = buildPerlPackage rec {
+    name = "Test-Needs-0.002005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/${name}.tar.gz";
+      sha256 = "5a4f33983586edacdbe00a3b429a9834190140190dab28d0f873c394eb7df399";
+    };
+    meta = {
+      description = "Skip tests when modules not available";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TestNoTabs = buildPerlPackage {
     name = "Test-NoTabs-1.3";
     src = fetchurl {
@@ -13646,6 +14282,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TestPodNo404s = buildPerlPackage rec {
+    name = "Test-Pod-No404s-0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-No404s-0.02.tar.gz";
+      sha256 = "0ycfghsyl9f31kxdppjwx2g5iajrqh3fyywz0x7d8ayndw2hdihi";
+    };
+    propagatedBuildInputs = [ LWPUserAgent ModuleBuildTiny URIFind TestPod ];
+    meta = {
+      homepage = http://search.cpan.org/dist/Test-Pod-No404s/;
+      description = "Checks POD for any http 404 links";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TestPortabilityFiles = buildPerlPackage {
     name = "Test-Portability-Files-0.06";
     src = fetchurl {
@@ -13850,16 +14500,17 @@ let self = _self // overrides; _self = with self; {
   TestSimple = null;
 
   TestSimple13 = buildPerlPackage rec {
-    name = "Test-Simple-1.302067";
+    name = "Test-Simple-1.302125";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EX/EXODIST/${name}.tar.gz";
-      sha256 = "4d43a1ed9cd43a5ad0e6cb206c0cd86d59f118ad6895220688d7bd918016b2a3";
+      url = mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302125.tar.gz;
+      sha256 = "8a3785a4fa60c4c5ae0c5cac2f3312242f2b36ca20e368d8a9ec22b4061aa317";
     };
     meta = {
       description = "Basic utilities for writing tests";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.rycee ];
     };
+    buildInputs = [ ExtUtilsMakeMaker ];
   };
 
   TestSpec = buildPerlPackage rec {
@@ -13979,7 +14630,7 @@ let self = _self // overrides; _self = with self; {
       sha256 = "8410438a2acf127bffcf1ab92205b747a615b487e80a48e8c3d0bb9fa0dbb2a8";
     };
     meta = {
-      homepage = http://github.com/audreyt/Test-use-ok/tree;
+      homepage = https://github.com/audreyt/Test-use-ok/tree;
       description = "Alternative to Test::More::use_ok";
       license = "unrestricted";
     };
@@ -14169,12 +14820,23 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextBibTeX = buildPerlModule rec {
-    name = "Text-BibTeX-0.72";
+    name = "Text-BibTeX-0.81";
     buildInputs = [ ConfigAutoConf ExtUtilsLibBuilder ];
     src = fetchurl {
       url = "mirror://cpan/authors/id/A/AM/AMBS/${name}.tar.gz";
-      sha256 = "0vfnj9ygdjympc8hsf38nc4a1lq45qbq7v6z6mrnfgr3k198b6gw";
-    };
+      sha256 = "0dig1zlglm8rwm8fhnz087lx6gixj9jx10kxn1fx3swdkfblhsmf";
+    };
+    perlPreHook = "export LD=$CC";
+    perlPostHook = stdenv.lib.optionalString stdenv.isDarwin ''
+      oldPath="$(pwd)/btparse/src/libbtparse.dylib"
+      newPath="$out/lib/libbtparse.dylib"
+
+      install_name_tool -id "$newPath" "$newPath"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/biblex"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/bibparse"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/dumpnames"
+      install_name_tool -change "$oldPath" "$newPath" "$out/lib/perl5/site_perl/5.24.3/darwin-2level/auto/Text/BibTeX/BibTeX.bundle"
+    '';
     meta = {
       description = "Interface to read and parse BibTeX files";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -14644,6 +15306,8 @@ let self = _self // overrides; _self = with self; {
     meta = {
       description = "Line wrapping module with support for multibyte, fullwidth, and combining characters and languages without whitespaces between words";
       license = with stdenv.lib.licenses; [ artistic1 gpl2 ];
+      # bogus use of glibc, pretty sure, think this is what we have glibcLocales for?
+      broken = stdenv.hostPlatform.libc != "glibc";
     };
   };
 
@@ -14951,7 +15615,7 @@ let self = _self // overrides; _self = with self; {
     };
     buildInputs = [ if_ ];
     meta = {
-      homepage = http://metacpan.org/release/Try-Tiny;
+      homepage = https://metacpan.org/release/Try-Tiny;
       description = "Minimal try/catch with proper preservation of $@";
       license = stdenv.lib.licenses.mit;
     };
@@ -14997,11 +15661,11 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  UNIVERSALrequire = buildPerlPackage {
-    name = "UNIVERSAL-require-0.17";
+  UNIVERSALrequire = buildPerlPackage rec {
+    name = "UNIVERSAL-require-0.18";
     src = fetchurl {
-      url = mirror://cpan/authors/id/N/NE/NEILB/UNIVERSAL-require-0.17.tar.gz;
-      sha256 = "5dc9f13f2d2bbdf852387e2a63c0753728c2bea9125dd628c313db3ef66ec4c3";
+      url = "mirror://cpan/authors/id/N/NE/NEILB/${name}.tar.gz";
+      sha256 = "b2a736a87967a143dab58c8a110501d5235bcdd2c8b2a3bfffcd3c0bd06b38ed";
     };
     meta = {
       description = "Require() modules from a variable";
@@ -15017,7 +15681,7 @@ let self = _self // overrides; _self = with self; {
     };
     buildInputs = [ ModuleBuild ];
     meta = {
-      homepage = http://metacpan.org/release/Unicode-CaseFold;
+      homepage = https://metacpan.org/release/Unicode-CaseFold;
       description = "Unicode case-folding for case-insensitive lookups";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -15035,10 +15699,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   UnicodeCollate = buildPerlPackage rec {
-    name = "Unicode-Collate-1.14";
+    name = "Unicode-Collate-1.25";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SA/SADAHIRO/${name}.tar.gz";
-      sha256 = "0ykncvhnwy8ync01ibv0524m0si9ya1ch2v8vx61s778nnrmp2k2";
+      sha256 = "1dpvck4saah8hqb9c82i25yimy9x2hkr1k3a2f1ly0k0ifhbiyyx";
     };
     meta = {
       description = "Unicode Collation Algorithm";
@@ -15063,10 +15727,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   UnicodeLineBreak = buildPerlPackage rec {
-    name = "Unicode-LineBreak-2015.07.16";
+    name = "Unicode-LineBreak-2017.004";
     src = fetchurl {
       url = "mirror://cpan/authors/id/N/NE/NEZUMI/${name}.tar.gz";
-      sha256 = "0fycsfc3jhnalad7zvx47f13dpxihdh9c8fy8w7psjlyd5svs6sb";
+      sha256 = "0xnb80na1ps1b5gmj3n70bk28brjzrn725kqv5q0gbb0rg2c6nv5";
     };
     propagatedBuildInputs = [ MIMECharset ];
     meta = {
@@ -15107,15 +15771,16 @@ let self = _self // overrides; _self = with self; {
   };
 
   URI = buildPerlPackage rec {
-    name = "URI-1.71";
+    name = "URI-1.73";
     src = fetchurl {
       url = "mirror://cpan/authors/id/E/ET/ETHER/${name}.tar.gz";
-      sha256 = "9c8eca0d7f39e74bbc14706293e653b699238eeb1a7690cc9c136fb8c2644115";
+      sha256 = "cca7ab4a6f63f3ccaacae0f2e1337e8edf84137e73f18548ec7d659f23efe413";
     };
+    buildInputs = [ TestNeeds ];
     meta = {
+      homepage = https://github.com/libwww-perl/URI;
       description = "Uniform Resource Identifiers (absolute and relative)";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -15222,10 +15887,15 @@ let self = _self // overrides; _self = with self; {
   };
 
   VariableMagic = buildPerlPackage rec {
-    name = "Variable-Magic-0.58";
+    name = "Variable-Magic-0.61";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Variable/${name}.tar.gz";
-      sha256 = "1yhh3zbawx68sw93xrnvfnqq5pb2pmbk20rckqxbwkq1n8c6lv83";
+      url = "mirror://cpan/authors/id/V/VP/VPIT/${name}.tar.gz";
+      sha256 = "b8afe92e54c72a2ed2ca1b08ce90518b855734f7d33c454d0f66f2c1ccf8a6d7";
+    };
+    meta = {
+      homepage = http://search.cpan.org/dist/Variable-Magic/;
+      description = "Associate user-defined magic to variables from Perl";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -15241,6 +15911,25 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  vidir = buildPerlPackage rec {
+    name = "vidir-0.040";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WO/WOLDRICH/App-${name}-woldrich.tar.gz";
+      sha256 = "0c97yx33pyhskbmwpqbwlkxr85awd6kg1baibvqkarhhvc8v7l0h";
+    };
+    # NB: This preInstall a workaround for a problem that is fixed in HEAD.
+    preInstall = ''
+      sed -i -e '/^use encoding/d' bin/vidir
+    '';
+    outputs = [ "out" ];
+    meta = {
+      maintainers = [ maintainers.chreekat ];
+      homepage = "http://search.cpan.org/~woldrich/App-vidir/bin/vidir";
+      description = "Edit a directory in $EDITOR";
+      license = with stdenv.lib.licenses; [ gpl1 ];
+    };
+  };
+
   VMEC2 = buildPerlModule rec {
     name = "VM-EC2-1.28";
     src = fetchurl {
@@ -15346,6 +16035,32 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  WWWYoutubeViewer = buildPerlPackage rec {
+    name = "WWW-YoutubeViewer-${version}";
+    version = "3.3.0";
+
+    src = fetchFromGitHub {
+      owner  = "trizen";
+      repo   = "youtube-viewer";
+      rev    = "${version}";
+      sha256 = "15xyrwv08fw8jmpydwzks26ipxnzliwddgyjcfqiaj0p7lwlhmx1";
+    };
+
+    propagatedBuildInputs = [
+      LWP
+      LWPProtocolHttps
+      DataDump
+      JSON
+    ];
+
+    meta = {
+      description = "A lightweight application for searching and streaming videos from YouTube";
+      homepage = https://github.com/trizen/youtube-viewer;
+      maintainers = with maintainers; [ woffs ];
+      license = with stdenv.lib.licenses; [ artistic2 ];
+    };
+  };
+
   Want = buildPerlPackage rec {
     name = "Want-0.29";
     src = fetchurl {
@@ -15389,7 +16104,7 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/authors/id/M/MB/MBARBON/${name}.tar.gz";
       sha256 = "1q4gvj4gdx4l8k4mkgiix24p9mdfy1miv7abidf0my3gy2gw5lka";
     };
-    propagatedBuildInputs = [ Wx OpenGL pkgs.mesa_glu ];
+    propagatedBuildInputs = [ Wx OpenGL pkgs.libGLU ];
     doCheck = false;
   };
 
@@ -15520,14 +16235,19 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLLibXML = buildPerlPackage rec {
-    name = "XML-LibXML-2.0122";
+    name = "XML-LibXML-2.0132";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/${name}.tar.gz";
-      sha256 = "0llgkgifcw7zz7r7f2jiqryi5axymmd3fwzp4aa5gk6j37w66xkn";
+      sha256 = "0xnl281hb590i287fxpl947f1s4zl9dnvc4ajvsqi89w23im453j";
     };
     SKIP_SAX_INSTALL = 1;
     buildInputs = [ pkgs.libxml2 ];
     propagatedBuildInputs = [ XMLSAX ];
+
+    # https://rt.cpan.org/Public/Bug/Display.html?id=122958
+    preCheck = ''
+      rm t/32xpc_variables.t
+    '';
   };
 
   XMLLibXMLSimple = buildPerlPackage {
@@ -15554,11 +16274,13 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLNamespaceSupport = buildPerlPackage {
-    name = "XML-NamespaceSupport-1.11";
+    name = "XML-NamespaceSupport-1.12";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.11.tar.gz;
-      sha256 = "1sklgcldl3w6gn706vx1cgz6pm4y5lfgsjxnfqyk20pilgq530bd";
+      url = mirror://cpan/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz;
+      sha256 = "1vz5pbi4lm5fhq2slrs2hlp6bnk29863abgjlcx43l4dky2rbsa7";
     };
+    propagatedBuildInputs = [ constant ];
+    buildInputs = [ ExtUtilsMakeMaker ];
   };
 
   XMLParser = buildPerlPackage {
@@ -15624,28 +16346,30 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLSAX = buildPerlPackage {
-    name = "XML-SAX-0.96";
+    name = "XML-SAX-1.00";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-0.96.tar.gz;
-      sha256 = "024fbjgg6s87j0y3yik55plzf7d6qpn7slwd03glcb54mw9zdglv";
+      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-1.00.tar.gz;
+      sha256 = "1qra9k3wszjxvsgbragl55z3qba4nri0ipmjaxfib4l6xxj6bsj5";
     };
-    propagatedBuildInputs = [XMLNamespaceSupport];
+    propagatedBuildInputs = [ XMLNamespaceSupport XMLSAXBase ];
     postInstall = ''
       perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
       '';
+    buildInputs = [ ExtUtilsMakeMaker ];
   };
 
   XMLSAXBase = buildPerlPackage {
-    name = "XML-SAX-Base-1.08";
+    name = "XML-SAX-Base-1.09";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-Base-1.08.tar.gz;
-      sha256 = "666270318b15f88b8427e585198abbc19bc2e6ccb36dc4c0a4f2d9807330219e";
+      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz;
+      sha256 = "66cb355ba4ef47c10ca738bd35999723644386ac853abbeb5132841f5e8a2ad0";
     };
     meta = {
       description = "Base class for SAX Drivers and Filters";
-      homepage = http://github.com/grantm/XML-SAX-Base;
+      homepage = https://github.com/grantm/XML-SAX-Base;
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    buildInputs = [ ExtUtilsMakeMaker TestSimple13 ];
   };
 
   XMLSAXWriter = buildPerlPackage {
@@ -15697,6 +16421,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  XMLTreePP = buildPerlPackage rec {
+    name = "XML-TreePP-0.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAWASAKI/${name}.tar.gz";
+      sha256 = "7fbe2d6430860059894aeeebf75d4cacf1bf8d7b75294eb87d8e1502f81bd760";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Pure Perl implementation for parsing/writing XML documents";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   XMLTwig = buildPerlPackage rec {
     name = "XML-Twig-3.49";
     src = fetchurl {
@@ -15792,11 +16529,14 @@ let self = _self // overrides; _self = with self; {
   };
 
   YAMLLibYAML = buildPerlPackage rec {
-    name = "YAML-LibYAML-0.59";
+    name = "YAML-LibYAML-0.69";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
-      sha256 = "0m4zr6gm5rzwvxwd2x7rklr659jl8gsa5bxc5h25904nbvpj9x4x";
+      url = "mirror://cpan/authors/id/T/TI/TINITA/${name}.tar.gz";
+      sha256 = "06msvj3vmjszl5zj1k7g47ll0kkds9gdb5sky0q27lh4zw1vlj33";
     };
+    preBuild = ''
+      sed -i 's/FULLPERL *= "/FULLPERL = /' LibYAML/Makefile
+    '';
   };
 
   WebServiceLinode = buildPerlModule rec {
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index c5e3ac0ac5548..c36cf6f921585 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -13,14 +13,97 @@ let
 
   apcu40 = assert !isPhp7; buildPecl {
     name = "apcu-4.0.7";
-
     sha256 = "1mhbz56mbnq7dryf2d64l84lj3fpr5ilmg2424glans3wcg772hp";
+    buildInputs = [ pkgs.pcre ];
   };
 
   apcu51 = assert isPhp7; buildPecl {
-    name = "apcu-5.1.2";
+    name = "apcu-5.1.8";
+    sha256 = "01dfbf0245d8cc0f51ba16467a60b5fad08e30b28df7846e0dd213da1143ecce";
+    buildInputs = [ pkgs.pcre ];
+    doCheck = true;
+    checkTarget = "test";
+    checkFlagsArray = ["REPORT_EXIT_STATUS=1" "NO_INTERACTION=1"];
+  };
+
+  ast = assert isPhp7; buildPecl {
+    name = "ast-0.1.5";
+
+    sha256 = "0vv2w5fkkw9n7qdmi5aq50416zxmvyzjym8kb6j1v8kd4xcsjjgw";
+  };
+
+  couchbase = buildPecl rec {
+    name = "couchbase-${version}";
+    version = "2.3.4";
+
+    buildInputs = [ pkgs.libcouchbase pkgs.zlib igbinary pcs ];
+
+    src = pkgs.fetchFromGitHub {
+      owner = "couchbase";
+      repo = "php-couchbase";
+      rev = "v${version}";
+      sha256 = "0rdlrl7vh4kbxxj9yxp54xpnnrxydpa9fab7dy4nas474j5vb2bp";
+    };
+
+    configureFlags = [ "--with-couchbase" ];
+
+    patches = [
+      (pkgs.writeText "php-couchbase.patch" ''
+        --- a/config.m4
+        +++ b/config.m4
+        @@ -9,7 +9,7 @@ if test "$PHP_COUCHBASE" != "no"; then
+             LIBCOUCHBASE_DIR=$PHP_COUCHBASE
+           else
+             AC_MSG_CHECKING(for libcouchbase in default path)
+        -    for i in /usr/local /usr; do
+        +    for i in ${pkgs.libcouchbase}; do
+               if test -r $i/include/libcouchbase/couchbase.h; then
+                 LIBCOUCHBASE_DIR=$i
+                 AC_MSG_RESULT(found in $i)
+        @@ -154,6 +154,8 @@ COUCHBASE_FILES=" \
+             igbinary_inc_path="$phpincludedir"
+           elif test -f "$phpincludedir/ext/igbinary/igbinary.h"; then
+             igbinary_inc_path="$phpincludedir"
+        +  elif test -f "${igbinary.dev}/include/ext/igbinary/igbinary.h"; then
+        +    igbinary_inc_path="${igbinary.dev}/include"
+           fi
+           if test "$igbinary_inc_path" = ""; then
+             AC_MSG_WARN([Cannot find igbinary.h])
+      '')
+    ];
+  };
+
+  php_excel = assert isPhp7; buildPecl rec {
+    name = "php_excel";
+    version = "1.0.2";
+    phpVersion = "php7";
+
+    buildInputs = [ pkgs.libxl ];
+
+    src = pkgs.fetchurl {
+      url = "https://github.com/iliaal/${name}/releases/download/Excel-1.0.2-PHP7/excel-${version}-${phpVersion}.tgz";
+      sha256 = "0dpvih9gpiyh1ml22zi7hi6kslkilzby00z1p8x248idylldzs2n";
+    };
+
+    configureFlags = [ "--with-excel" "--with-libxl-incdir=${pkgs.libxl}/include_c" "--with-libxl-libdir=${pkgs.libxl}/lib" ];
+  };
+
+  igbinary = buildPecl {
+    name = "igbinary-2.0.4";
+
+    configureFlags = [ "--enable-igbinary" ];
+
+    makeFlags = [ "phpincludedir=$(dev)/include" ];
+
+    outputs = [ "out" "dev" ];
+
+    sha256 = "0a55l4f0bgbf3f6sh34njd14niwagg829gfkvb8n5fs69xqab67d";
+  };
+
+  mailparse = assert isPhp7; buildPecl {
+    name = "mailparse-3.0.2";
 
-    sha256 = "0r5pfbjbmdj46h20jm3iqmy969qd27ajyf0phjhgykv6j0cqjlgd";
+    sha256 = "0fw447ralqihsjnn0fm2hkaj8343cvb90v0d1wfclgz49256y6nq";
   };
 
   imagick = buildPecl {
@@ -28,6 +111,7 @@ let
     sha256 = "0siyxpszjz6s095s2g2854bhprjq49rf22v6syjiwvndg1pc9fsh";
     configureFlags = "--with-imagick=${pkgs.imagemagick.dev}";
     nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = [ pkgs.pcre ];
   };
 
   # No support for PHP 7 yet
@@ -37,6 +121,8 @@ let
     sha256 = "04c35rj0cvq5ygn2jgmyvqcb0k8d03v4k642b6i37zgv7x15pbic";
 
     configureFlags = "--with-zlib-dir=${pkgs.zlib.dev}";
+
+    makeFlags = [ "CFLAGS=-fgnu89-inline" ];
   };
 
   memcached = if isPhp7 then memcachedPhp7 else memcached22;
@@ -51,7 +137,8 @@ let
       "--with-libmemcached-dir=${pkgs.libmemcached}"
     ];
 
-    buildInputs = with pkgs; [ pkgconfig cyrus_sasl zlib ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = with pkgs; [ cyrus_sasl zlib ];
   };
 
   # Not released yet
@@ -69,7 +156,14 @@ let
       "--with-libmemcached-dir=${pkgs.libmemcached}"
     ];
 
-    buildInputs = with pkgs; [ pkgconfig cyrus_sasl zlib ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = with pkgs; [ cyrus_sasl zlib ];
+  };
+
+  pcs = buildPecl rec {
+    name = "pcs-1.3.3";
+
+    sha256 = "0d4p1gpl8gkzdiv860qzxfz250ryf0wmjgyc8qcaaqgkdyh5jy5p";
   };
 
   # No support for PHP 7 yet (and probably never will be)
@@ -85,7 +179,7 @@ let
     buildInputs = [ pkgs.spidermonkey_1_8_5 ];
   };
 
-  xdebug = if isPhp7 then xdebug25 else xdebug23;
+  xdebug = if isPhp7 then xdebug26 else xdebug23;
 
   xdebug23 = assert !isPhp7; buildPecl {
     name = "xdebug-2.3.1";
@@ -96,15 +190,41 @@ let
     checkTarget = "test";
   };
 
-  xdebug25 = buildPecl {
-    name = "xdebug-2.5.0";
+  xdebug26 = assert isPhp7; buildPecl {
+    name = "xdebug-2.6.0";
 
-    sha256 = "03c9y25a3gc3kpav0cdgmhjixcaly6974hx7wgihi0wlchgavmlb";
+    sha256 = "1p6b54ypi5lq4ka3pyy2gswdf1d5vjb9y8lp9fqcp3zn7g04q9mm";
 
     doCheck = true;
     checkTarget = "test";
   };
 
+  yaml = if isPhp7 then yaml20 else yaml13;
+
+  yaml13 = assert !isPhp7; buildPecl {
+    name = "yaml-1.3.1";
+
+    sha256 = "1fbmgsgnd6l0d4vbjaca0x9mrfgl99yix5yf0q0pfcqzfdg4bj8q";
+
+    configureFlags = [
+      "--with-yaml=${pkgs.libyaml}"
+    ];
+
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+  };
+
+  yaml20 = assert isPhp7; buildPecl {
+    name = "yaml-2.0.2";
+
+    sha256 = "0f80zy79kyy4hn6iigpgfkwppwldjfj5g7s4gddklv3vskdb1by3";
+
+    configureFlags = [
+      "--with-yaml=${pkgs.libyaml}"
+    ];
+
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+  };
+
   # Since PHP 5.5 OPcache is integrated in the core and has to be enabled via --enable-opcache during compilation.
   zendopcache = assert isPhpOlder55; buildPecl {
     name = "zendopcache-7.0.3";
@@ -121,7 +241,7 @@ let
       "--with-zmq=${pkgs.zeromq}"
     ];
 
-    buildInputs = [ pkgs.pkgconfig ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
   };
 
   # No support for PHP 7 and probably never will be
@@ -174,75 +294,49 @@ let
     buildInputs = [ pkgs.geoip ];
   };
 
-  redis = if isPhp7 then redisPhp7 else redis22;
+  redis = if isPhp7 then redis31 else redis22;
 
   redis22 = assert !isPhp7; buildPecl {
     name = "redis-2.2.7";
     sha256 = "00n9dpk9ak0bl35sbcd3msr78sijrxdlb727nhg7f2g7swf37rcm";
   };
 
-  # Not released yet
-  redisPhp7 = assert isPhp7; buildPecl rec {
-    name = "redis-php7";
-
-    src = fetchgit {
-      url = "https://github.com/phpredis/phpredis";
-      rev = "4a37e47d0256581ce2f7a3b15b5bb932add09f36";
-      sha256 = "1qm2ifa0zf95l1g967iiabmja17srpwz73lfci7z13ffdw1ayhfd";
-    };
+  redis31 = assert isPhp7; buildPecl {
+    name = "redis-3.1.4";
+    sha256 = "0rgjdrqfif8pfn3ipk1v4gyjkkdcdrdk479qbpda89w25vaxzsxd";
   };
 
   v8 = assert isPhp7; buildPecl rec {
-    version = "0.1.0";
+    version = "0.1.9";
     name = "v8-${version}";
 
-    src = pkgs.fetchurl {
-      url = "https://github.com/pinepain/php-v8/archive/v${version}.tar.gz";
-      sha256 = "18smnxd34b486f5n8j0wk9z7r5x1w84v89mgf76z0bn7gxdxl0xj";
-    };
+    sha256 = "0bj77dfmld5wfwl4wgqnpa0i4f3mc1mpsp9dmrwqv050gs84m7h1";
 
-    buildInputs = [ pkgs.v8 ];
-    configureFlags = [ "--with-v8=${pkgs.v8}" ];
-
-    patches = [
-      (builtins.toFile "link-libv8_libbase.patch" ''
-        Index: php-v8/config.m4
-        ===================================================================
-        --- php-v8.orig/config.m4
-        +++ php-v8/config.m4
-        @@ -69,7 +69,7 @@ if test "$PHP_V8" != "no"; then
-               #static_link_extra="libv8_base.a libv8_libbase.a libv8_libplatform.a libv8_snapshot.a"
-               ;;
-             * )
-        -      static_link_extra="libv8_libplatform.a"
-        +      static_link_extra="libv8_libplatform.a libv8_libbase.a"
-               #static_link_extra="libv8_base.a libv8_libbase.a libv8_libplatform.a libv8_snapshot.a"
-               ;;
-           esac
-	''
-      )];
+    buildInputs = [ pkgs.v8_6_x ];
+    configureFlags = [ "--with-v8=${pkgs.v8_6_x}" ];
   };
 
   v8js = assert isPhp7; buildPecl rec {
-    version = "1.3.2";
+    version = "1.4.1";
     name = "v8js-${version}";
 
-    sha256 = "1x7gxi70zgj3vaxs89nfbnwlqcxrps1inlyfzz66pbzdbfwvc8z8";
+    sha256 = "0k5dc395gzva4l6n9mzvkhkjq914460cwk1grfandcqy73j6m89q";
 
-    buildInputs = [ pkgs.v8 ];
-    configureFlags = [ "--with-v8js=${pkgs.v8}" ];
+    buildInputs = [ pkgs.v8_6_x ];
+    configureFlags = [ "--with-v8js=${pkgs.v8_6_x}" ];
   };
 
   composer = pkgs.stdenv.mkDerivation rec {
     name = "composer-${version}";
-    version = "1.4.1";
+    version = "1.6.3";
 
     src = pkgs.fetchurl {
       url = "https://getcomposer.org/download/${version}/composer.phar";
-      sha256 = "1g2wsnjcx1ysbw1ps2xwyhgcl8kl3yfzxgwcnh5rigjk6k67glmb";
+      sha256 = "1dna9ng77nw002l7hq60b6vz0f1snmnsxj1l7cg4f877msxppjsj";
     };
 
-    phases = [ "installPhase" ];
+    unpackPhase = ":";
+
     buildInputs = [ pkgs.makeWrapper ];
 
     installPhase = ''
@@ -260,13 +354,100 @@ let
     };
   };
 
+  box = pkgs.stdenv.mkDerivation rec {
+    name = "box-${version}";
+    version = "2.7.5";
+
+    src = pkgs.fetchurl {
+      url = "https://github.com/box-project/box2/releases/download/${version}/box-${version}.phar";
+      sha256 = "1zmxdadrv0i2l8cz7xb38gnfmfyljpsaz2nnkjzqzksdmncbgd18";
+    };
+
+    phases = [ "installPhase" ];
+    buildInputs = [ pkgs.makeWrapper ];
+
+    installPhase = ''
+      mkdir -p $out/bin
+      install -D $src $out/libexec/box/box.phar
+      makeWrapper ${php}/bin/php $out/bin/box \
+        --add-flags "-d phar.readonly=0 $out/libexec/box/box.phar"
+    '';
+
+    meta = with pkgs.lib; {
+      description = "An application for building and managing Phars";
+      license = licenses.mit;
+      homepage = https://box-project.github.io/box2/;
+      maintainers = with maintainers; [ jtojnar ];
+    };
+  };
+
+  php-cs-fixer = pkgs.stdenv.mkDerivation rec {
+    name = "php-cs-fixer-${version}";
+    version = "2.10.4";
+
+    src = pkgs.fetchurl {
+      url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
+      sha256 = "00i90cbd6lkq3wssp8z2b0l2q8ahajxlrzdrqcf2jnjdhv2xms4a";
+    };
+
+    phases = [ "installPhase" ];
+    buildInputs = [ pkgs.makeWrapper ];
+
+    installPhase = ''
+      mkdir -p $out/bin
+      install -D $src $out/libexec/php-cs-fixer/php-cs-fixer.phar
+      makeWrapper ${php}/bin/php $out/bin/php-cs-fixer \
+        --add-flags "$out/libexec/php-cs-fixer/php-cs-fixer.phar"
+    '';
+
+    meta = with pkgs.lib; {
+      description = "A tool to automatically fix PHP coding standards issues";
+      license = licenses.mit;
+      homepage = http://cs.sensiolabs.org/;
+      maintainers = with maintainers; [ jtojnar ];
+    };
+  };
+
+  php-parallel-lint = pkgs.stdenv.mkDerivation rec {
+    name = "php-parallel-lint-${version}";
+    version = "1.0.0";
+
+    src = pkgs.fetchFromGitHub {
+      owner = "JakubOnderka";
+      repo = "PHP-Parallel-Lint";
+      rev = "v${version}";
+      sha256 = "16nv8yyk2z3l213dg067l6di4pigg5rd8yswr5xgd18jwbys2vnw";
+    };
+
+    buildInputs = [ pkgs.makeWrapper composer box ];
+
+    buildPhase = ''
+      composer dump-autoload
+      box build
+    '';
+
+    installPhase = ''
+      mkdir -p $out/bin
+      install -D parallel-lint.phar $out/libexec/php-parallel-lint/php-parallel-lint.phar
+      makeWrapper ${php}/bin/php $out/bin/php-parallel-lint \
+        --add-flags "$out/libexec/php-parallel-lint/php-parallel-lint.phar"
+    '';
+
+    meta = with pkgs.lib; {
+      description = "This tool check syntax of PHP files faster than serial check with fancier output";
+      license = licenses.bsd2;
+      homepage = https://github.com/JakubOnderka/PHP-Parallel-Lint;
+      maintainers = with maintainers; [ jtojnar ];
+    };
+  };
+
   phpcs = pkgs.stdenv.mkDerivation rec {
     name = "phpcs-${version}";
-    version = "2.6.0";
+    version = "3.2.3";
 
     src = pkgs.fetchurl {
       url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcs.phar";
-      sha256 = "02mlv44x508rnkzkwiyh7lg2ah7aqyxcq65q9ycj06czm0xdzs41";
+      sha256 = "193axz56j1kyq458q0y38m99bx31jjjldfg6bv71vgm6zh4rvvs1";
     };
 
     phases = [ "installPhase" ];
@@ -283,17 +464,17 @@ let
       description = "PHP coding standard tool";
       license = licenses.bsd3;
       homepage = https://squizlabs.github.io/PHP_CodeSniffer/;
-      maintainers = with maintainers; [ javaguirre ];
+      maintainers = with maintainers; [ javaguirre etu ];
     };
   };
 
   phpcbf = pkgs.stdenv.mkDerivation rec {
     name = "phpcbf-${version}";
-    version = "2.6.0";
+    version = "3.2.3";
 
     src = pkgs.fetchurl {
       url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcbf.phar";
-      sha256 = "1ijf52cgd85ypvw431nnmzij6156ryhfvmajpkr7plfw0iccqc5j";
+      sha256 = "00p0l01shxx1h6g26j2dbfrp9j7im541das4xps4wrsvc4h4da9l";
     };
 
     phases = [ "installPhase" ];
@@ -310,7 +491,7 @@ let
       description = "PHP coding standard beautifier and fixer";
       license = licenses.bsd3;
       homepage = https://squizlabs.github.io/PHP_CodeSniffer/;
-      maintainers = with maintainers; [ cmcdragonkai ];
+      maintainers = with maintainers; [ cmcdragonkai etu ];
     };
   };
 }; in self
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 5a817b7529256..a86c79da03d1a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -31,21 +31,44 @@ let
 
   callPackage = pkgs.newScope self;
 
+  namePrefix = python.libPrefix + "-";
+
   bootstrapped-pip = callPackage ../development/python-modules/bootstrapped-pip { };
 
-  mkPythonDerivation = makeOverridable( callPackage ../development/interpreters/python/mk-python-derivation.nix {
-  });
-  buildPythonPackage = makeOverridable (callPackage ../development/interpreters/python/build-python-package.nix {
-    inherit mkPythonDerivation;
+  # Derivations built with `buildPythonPackage` can already be overriden with `override`, `overrideAttrs`, and `overrideDerivation`.
+  # This function introduces `overridePythonAttrs` and it overrides the call to `buildPythonPackage`.
+  makeOverridablePythonPackage = f: origArgs:
+    let
+      ff = f origArgs;
+      overrideWith = newArgs: origArgs // (if pkgs.lib.isFunction newArgs then newArgs origArgs else newArgs);
+    in
+      if builtins.isAttrs ff then (ff // {
+        overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs);
+      })
+      else if builtins.isFunction ff then {
+        overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs);
+        __functor = self: ff;
+      }
+      else ff;
+
+  buildPythonPackage = makeOverridablePythonPackage ( makeOverridable (callPackage ../development/interpreters/python/build-python-package.nix {
     inherit bootstrapped-pip;
     flit = self.flit;
-  });
+    # We want Python libraries to be named like e.g. "python3.6-${name}"
+    inherit namePrefix;
+    inherit toPythonModule;
+  }));
 
-  buildPythonApplication = args: buildPythonPackage ({namePrefix="";} // args );
+  buildPythonApplication = makeOverridablePythonPackage ( makeOverridable (callPackage ../development/interpreters/python/build-python-package.nix {
+    inherit bootstrapped-pip;
+    flit = self.flit;
+    namePrefix = "";
+    toPythonModule = x: x; # Application does not provide modules.
+  }));
 
-  graphiteVersion = "0.9.15";
+  graphiteVersion = "1.0.2";
 
-  fetchPypi = {format ? "setuptools", ... } @attrs:
+  fetchPypi = makeOverridable( {format ? "setuptools", ... } @attrs:
     let
       fetchWheel = {pname, version, sha256, python ? "py2.py3", abi ? "none", platform ? "any"}:
       # Fetch a wheel. By default we fetch an universal wheel.
@@ -61,16 +84,55 @@ let
       fetcher = (if format == "wheel" then fetchWheel
         else if format == "setuptools" then fetchSource
         else throw "Unsupported kind ${kind}");
-    in fetcher (builtins.removeAttrs attrs ["format"]);
+    in fetcher (builtins.removeAttrs attrs ["format"]) );
+
+  # Check whether a derivation provides a Python module.
+  hasPythonModule = drv: drv?pythonModule && drv.pythonModule == python;
+
+  # Get list of required Python modules given a list of derivations.
+  requiredPythonModules = drvs: let
+    modules = filter hasPythonModule drvs;
+  in unique ([python] ++ modules ++ concatLists (catAttrs "requiredPythonModules" modules));
+
+  # Create a PYTHONPATH from a list of derivations. This function recurses into the items to find derivations
+  # providing Python modules.
+  makePythonPath = drvs: stdenv.lib.makeSearchPath python.sitePackages (requiredPythonModules drvs);
+
+  removePythonPrefix = name:
+    removePrefix namePrefix name;
+
+  # Convert derivation to a Python module.
+  toPythonModule = drv:
+    drv.overrideAttrs( oldAttrs: {
+      # Use passthru in order to prevent rebuilds when possible.
+      passthru = (oldAttrs.passthru or {})// {
+        pythonModule = python;
+        pythonPath = [ ]; # Deprecated, for compatibility.
+        requiredPythonModules = requiredPythonModules drv.propagatedBuildInputs;
+      };
+    });
+
+  # Convert a Python library to an application.
+  toPythonApplication = drv:
+    drv.overrideAttrs( oldAttrs: {
+      passthru = (oldAttrs.passthru or {}) // {
+        # Remove Python prefix from name so we have a "normal" name.
+        # While the prefix shows up in the store path, it won't be
+        # used by `nix-env`.
+        name = removePythonPrefix oldAttrs.name;
+        pythonModule = false;
+      };
+    });
 
-  # This should become part of stdenv!
-  sharedLibraryExtension = if stdenv.isDarwin then ".dylib" else ".so";
+  disabledIf = x: drv:
+    if x then throw "${removePythonPrefix (drv.pname or drv.name)} not supported for interpreter ${python.executable}" else drv;
 
 in {
 
-  inherit python bootstrapped-pip pythonAtLeast pythonOlder isPy26 isPy27 isPy33 isPy34 isPy35 isPy36 isPyPy isPy3k mkPythonDerivation buildPythonPackage buildPythonApplication;
+  inherit python bootstrapped-pip pythonAtLeast pythonOlder isPy26 isPy27 isPy33 isPy34 isPy35 isPy36 isPyPy isPy3k buildPythonPackage buildPythonApplication;
   inherit fetchPypi callPackage;
-  inherit sharedLibraryExtension;
+  inherit hasPythonModule requiredPythonModules makePythonPath disabledIf;
+  inherit toPythonModule toPythonApplication;
 
   # helpers
 
@@ -80,16 +142,25 @@ in {
 
   recursivePthLoader = callPackage ../development/python-modules/recursive-pth-loader { };
 
-  setuptools = callPackage ../development/python-modules/setuptools { };
+  setuptools = toPythonModule (callPackage ../development/python-modules/setuptools { });
 
-  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { pythonPackages = self; };
+  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit {
+    pythonPackages = self;
+    boost = pkgs.boost160;
+  };
 
   acoustics = callPackage ../development/python-modules/acoustics { };
 
-  "3to2" = callPackage ../development/python-modules/3to2 { };
+  py3to2 = callPackage ../development/python-modules/3to2 { };
+  # Left for backwards compatibility
+  "3to2" = self.py3to2;
+
+  absl-py = callPackage ../development/python-modules/absl-py { };
 
   aenum = callPackage ../development/python-modules/aenum { };
 
+  affinity = callPackage ../development/python-modules/affinity { };
+
   agate = callPackage ../development/python-modules/agate { };
 
   agate-dbf = callPackage ../development/python-modules/agate-dbf { };
@@ -100,10 +171,20 @@ in {
 
   agate-sql = callPackage ../development/python-modules/agate-sql { };
 
+  aioimaplib = callPackage ../development/python-modules/aioimaplib { };
+
+  aioamqp = callPackage ../development/python-modules/aioamqp { };
+
   ansicolor = callPackage ../development/python-modules/ansicolor { };
 
+  argon2_cffi = callPackage ../development/python-modules/argon2_cffi { };
+
+  asana = callPackage ../development/python-modules/asana { };
+
   asn1crypto = callPackage ../development/python-modules/asn1crypto { };
 
+  astral = callPackage ../development/python-modules/astral { };
+
   astropy = callPackage ../development/python-modules/astropy {  };
 
   augeas = callPackage ../development/python-modules/augeas {
@@ -112,30 +193,46 @@ in {
 
   automat = callPackage ../development/python-modules/automat { };
 
+  aws-xray-sdk = callPackage ../development/python-modules/aws-xray-sdk { };
+
   # packages defined elsewhere
 
+  backports_csv = callPackage ../development/python-modules/backports_csv {};
+
   bap = callPackage ../development/python-modules/bap {
-    bap = pkgs.ocamlPackages_4_02.bap;
+    bap = pkgs.ocamlPackages.bap;
   };
 
+  bash_kernel = callPackage ../development/python-modules/bash_kernel { };
+
+  bayespy = callPackage ../development/python-modules/bayespy { };
+
+  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
+
   bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
 
   blivet = callPackage ../development/python-modules/blivet { };
 
   breathe = callPackage ../development/python-modules/breathe { };
 
-  browsermob-proxy = callPackage ../development/python-modules/browsermob-proxy {};
+  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy {});
 
   bugseverywhere = callPackage ../applications/version-management/bugseverywhere {};
 
+  dendropy = callPackage ../development/python-modules/dendropy { };
+
   dbf = callPackage ../development/python-modules/dbf { };
 
   dbfread = callPackage ../development/python-modules/dbfread { };
 
   dkimpy = callPackage ../development/python-modules/dkimpy { };
 
+  diff_cover = callPackage ../development/python-modules/diff_cover { };
+
   emcee = callPackage ../development/python-modules/emcee { };
 
+  email_validator = callPackage ../development/python-modules/email-validator { };
+
   dbus-python = callPackage ../development/python-modules/dbus {
     dbus = pkgs.dbus;
   };
@@ -144,6 +241,14 @@ in {
 
   discordpy = callPackage ../development/python-modules/discordpy { };
 
+  distorm3 = callPackage ../development/python-modules/distorm3 { };
+
+  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
+
+  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
+
+  gssapi = callPackage ../development/python-modules/gssapi { };
+
   h5py = callPackage ../development/python-modules/h5py {
     hdf5 = pkgs.hdf5;
   };
@@ -152,12 +257,22 @@ in {
     hdf5 = pkgs.hdf5-mpi;
   };
 
+  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
+
+  habanero = callPackage ../development/python-modules/habanero { };
+
+  i3ipc = callPackage ../development/python-modules/i3ipc { };
+
   intelhex = callPackage ../development/python-modules/intelhex { };
 
+  lmtpd = callPackage ../development/python-modules/lmtpd { };
+
   mpi4py = callPackage ../development/python-modules/mpi4py {
     mpi = pkgs.openmpi;
   };
 
+  mwoauth = callPackage ../development/python-modules/mwoauth { };
+
   neuron = pkgs.neuron.override {
     inherit python;
   };
@@ -172,33 +287,47 @@ in {
   # version of nixpart.
   nixpart0 = callPackage ../tools/filesystems/nixpart/0.4 { };
 
-  nltk = callPackage ../development/python-modules/nltk.nix { };
+  nltk = callPackage ../development/python-modules/nltk { };
 
   ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
 
-  pitz = callPackage ../applications/misc/pitz { };
+  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
 
   plantuml = callPackage ../tools/misc/plantuml { };
 
   Pmw = callPackage ../development/python-modules/Pmw { };
 
-  pyaes = callPackage ../development/python-modules/pyaes.nix { };
+  py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
+
+  pyaes = callPackage ../development/python-modules/pyaes { };
+
+  pyamf = callPackage ../development/python-modules/pyamf { };
 
-  pyatspi = if isPy3k then callPackage ../development/python-modules/pyatspi { } else throw "pyatspi not supported for interpreter ${python.executable}";
+  pyatspi = disabledIf (!isPy3k) (callPackage ../development/python-modules/pyatspi { });
+
+  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
 
   pycairo = callPackage ../development/python-modules/pycairo { };
 
-  pycangjie = if isPy3k then callPackage ../development/python-modules/pycangjie { } else throw "pycangjie not supported for interpreter ${python.executable}";
+  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie { });
 
   pycrypto = callPackage ../development/python-modules/pycrypto { };
 
   pycryptodome = callPackage ../development/python-modules/pycryptodome { };
 
-  PyChromecast = callPackage ../development/python-modules/pychromecast {
-    protobuf = self.protobuf3_2;
-  };
+  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
+
+  PyChromecast = callPackage ../development/python-modules/pychromecast { };
+
+  pydbus = callPackage ../development/python-modules/pydbus { };
+
+  pydocstyle = callPackage ../development/python-modules/pydocstyle { };
+
+  pyexiv2 = disabledIf isPy3k (callPackage ../development/python-modules/pyexiv2 {});
 
-  pyexiv2 = if (!isPy3k) then callPackage ../development/python-modules/pyexiv2 {} else throw "pyexiv2 not supported for interpreter ${python.executable}";
+  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
+
+  pyfakefs = callPackage ../development/python-modules/pyfakefs {};
 
   pygame = callPackage ../development/python-modules/pygame { };
 
@@ -218,6 +347,15 @@ in {
     libglade = pkgs.gnome2.libglade;
   };
 
+  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
+
+  pykde4 = callPackage ../development/python-modules/pykde4/default.nix {
+    inherit (self) pyqt4;
+    callPackage = pkgs.callPackage;
+  };
+
+  pyparser = callPackage ../development/python-modules/pyparser { };
+
   pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
     pythonPackages = self;
   };
@@ -226,7 +364,9 @@ in {
     pythonPackages = self;
   };
 
-  pyscard = callPackage ../development/python-modules/pyscard { };
+  pysc2 = callPackage ../development/python-modules/pysc2 { };
+
+  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
 
   pyside = callPackage ../development/python-modules/pyside { };
 
@@ -240,30 +380,46 @@ in {
     slurm = pkgs.slurm;
   };
 
+  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
+
   python-sql = callPackage ../development/python-modules/python-sql { };
 
   python-stdnum = callPackage ../development/python-modules/python-stdnum { };
 
+  python-utils = callPackage ../development/python-modules/python-utils { };
+
   pytimeparse =  callPackage ../development/python-modules/pytimeparse { };
 
   PyWebDAV = callPackage ../development/python-modules/pywebdav { };
 
-  pyxml = if !isPy3k then callPackage ../development/python-modules/pyxml{ } else throw "pyxml not supported for interpreter ${python.executable}";
+  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml{ });
 
   relatorio = callPackage ../development/python-modules/relatorio { };
 
   pyzufall = callPackage ../development/python-modules/pyzufall { };
 
-  rhpl = if !isPy3k then callPackage ../development/python-modules/rhpl {} else throw "rhpl not supported for interpreter ${python.executable}";
+  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl {});
+
+  rx = callPackage ../development/python-modules/rx { };
+
+  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
+
+  serversyncstorage = callPackage ../development/python-modules/serversyncstorage {};
 
   simpleeval = callPackage ../development/python-modules/simpleeval { };
 
   sip = callPackage ../development/python-modules/sip { };
 
+  supervise_api = callPackage ../development/python-modules/supervise_api { };
+
+  syncserver = callPackage ../development/python-modules/syncserver {};
+
   tables = callPackage ../development/python-modules/tables {
     hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
   };
 
+  tokenserver = callPackage ../development/python-modules/tokenserver {};
+
   unifi = callPackage ../development/python-modules/unifi { };
 
   pyunbound = callPackage ../tools/networking/unbound/python.nix { };
@@ -284,243 +440,43 @@ in {
 
   adal = callPackage ../development/python-modules/adal { };
 
-  afew = callPackage ../development/python-modules/afew { };
+  aioconsole = callPackage ../development/python-modules/aioconsole { };
 
   aiodns = callPackage ../development/python-modules/aiodns { };
 
   aiofiles = callPackage ../development/python-modules/aiofiles { };
 
-  aiohttp = buildPythonPackage rec {
-    name = "aiohttp-${version}";
-    version = "1.1.6";
+  aiohttp = callPackage ../development/python-modules/aiohttp { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/aiohttp/${name}.tar.gz";
-      sha256 = "0742feb9759a5832aa4a30abf64e53055e139ed41e26f79b9558d08e05c74d60";
-    };
+  aiohttp-cors = callPackage ../development/python-modules/aiohttp/cors.nix { };
 
-    disabled = pythonOlder "3.4";
-
-    doCheck = false; # Too many tests fail.
+  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
 
-    buildInputs = with self; [ pytest gunicorn pytest-raisesregexp ];
-    propagatedBuildInputs = with self; [ async-timeout chardet multidict yarl ];
-
-    meta = {
-      description = "http client/server for asyncio";
-      license = with licenses; [ asl20 ];
-      homepage = https://github.com/KeepSafe/aiohttp/;
-    };
-  };
+  ajpy = callPackage ../development/python-modules/ajpy { };
 
   alabaster = callPackage ../development/python-modules/alabaster {};
 
   alembic = callPackage ../development/python-modules/alembic {};
 
+  allpairspy = callPackage ../development/python-modules/allpairspy { };
+
   ansicolors = callPackage ../development/python-modules/ansicolors {};
 
   aniso8601 = callPackage ../development/python-modules/aniso8601 {};
 
   asgiref = callPackage ../development/python-modules/asgiref { };
 
-  asgi_ipc = callPackage ../development/python-modules/asgi_ipc { };
-
-  asgi_redis = callPackage ../development/python-modules/asgi_redis { };
-
   python-editor = callPackage ../development/python-modules/python-editor { };
 
   python-gnupg = callPackage ../development/python-modules/python-gnupg {};
 
   python-uinput = callPackage ../development/python-modules/python-uinput {};
 
-  python-sybase = buildPythonPackage rec {
-    name = "python-sybase-${version}";
-    version = "0.40pre2";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "https://sourceforge.net/projects/python-sybase/files/python-sybase/${name}/${name}.tar.gz";
-      sha256 = "0pm88hyn18dy7ljam4mdx9qqgmgraf2zy2wl02g5vsjl4ncvq90j";
-    };
-
-    propagatedBuildInputs = [ pkgs.freetds ];
-
-    SYBASE = pkgs.freetds;
-    setupPyBuildFlags = [ "-DHAVE_FREETDS" "-UWANT_BULKCOPY" ];
+  python-sybase = callPackage ../development/python-modules/sybase {};
 
-    meta = {
-      description = "The Sybase module provides a Python interface to the Sybase relational database system";
-      homepage    = http://python-sybase.sourceforge.net;
-      license     = licenses.bsd3;
-      maintainers = with maintainers; [ veprbl ];
-      platforms   = platforms.unix;
-    };
-  };
+  alot = callPackage ../development/python-modules/alot {};
 
-  almir = let
-    sqlalchemy_0_8 = buildPythonPackage rec {
-      name = "SQLAlchemy-0.8.7";
-      disabled = isPy34 || isPy35;
-#       doCheck = !isPyPy;
-
-      src = pkgs.fetchurl {
-        url = "mirror://pypi/S/SQLAlchemy/${name}.tar.gz";
-        sha256 = "9edb47d137db42d57fd26673d6c841e189b1aeb9b566cca908962fcc8448c0bc";
-      };
-
-      preConfigure = optionalString isPy3k ''
-        python3 sa2to3.py --no-diffs -w lib test examples
-      '';
-
-      buildInputs = with self; [ nose mock ]
-        ++ stdenv.lib.optional doCheck pysqlite;
-
-      checkPhase = ''
-        ${python.executable} sqla_nose.py
-      '';
-
-      doCheck = false;
-
-      meta = {
-        homepage = http://www.sqlalchemy.org/;
-        description = "A Python SQL toolkit and Object Relational Mapper";
-      };
-    };
-  in buildPythonPackage rec {
-    name = "almir-0.1.8";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/almir/${name}.zip";
-      sha256 = "5dc0b8a5071f3ff46cd2d92608f567ba446e4c733c063b17d89703caeb9868fe";
-    };
-
-    buildInputs = with self; [
-      pkgs.which
-      self.coverage
-      self.mock
-      self.tissue
-      self.unittest2
-      self.webtest
-    ];
-
-    propagatedBuildInputs = with self; [
-      pkgs.makeWrapper
-      pkgs.bacula
-      self.colander
-      self.deform
-      self.deform_bootstrap
-      self.docutils
-      self.nose
-      self.mysql_connector_repackaged
-      self.pg8000
-      self.pyramid
-      self.pyramid_beaker
-      self.pyramid_exclog
-      self.pyramid_jinja2
-      self.pyramid_tm
-      self.pytz
-      sqlalchemy_0_8
-      self.transaction
-      self.waitress
-      self.webhelpers
-      self.psycopg2
-      (self.zope_sqlalchemy.override rec {propagatedBuildInputs = with self; [ sqlalchemy_0_8 transaction ];})
-    ];
-
-    postInstall = ''
-      ln -s ${pkgs.bacula}/bin/bconsole $out/bin
-    '';
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-      platforms = platforms.all;
-      # Two versions of sqlalchemy in closure
-      broken = true;
-    };
-  };
-
-
-  alot = buildPythonPackage rec {
-    rev = "0.5.1";
-    name = "alot-${rev}";
-
-    disabled = isPy3k;
-
-    src = pkgs.fetchFromGitHub {
-      owner = "pazz";
-      repo = "alot";
-      inherit rev;
-      sha256 = "0ipkhc5wllfq78lg47aiq4qih0yjq8ad9xkrbgc88xk8pk9166i8";
-    };
-
-    postPatch = ''
-      substituteInPlace alot/defaults/alot.rc.spec \
-        --replace "themes_dir = string(default=None)" \
-                  "themes_dir = string(default='$out/share/themes')"
-    '';
-
-    propagatedBuildInputs =
-      [ self.notmuch
-        self.urwid
-        self.urwidtrees
-        self.twisted
-        self.python_magic
-        self.configobj
-        self.pygpgme
-        self.mock
-      ];
-
-    postInstall = ''
-      mkdir -p $out/share
-      cp -r extra/themes $out/share
-      wrapProgram $out/bin/alot \
-        --prefix LD_LIBRARY_PATH : '${pkgs.lib.makeLibraryPath [ pkgs.notmuch pkgs.file pkgs.gpgme ]}'
-    '';
-
-    meta = {
-      homepage = https://github.com/pazz/alot;
-      description = "Terminal MUA using notmuch mail";
-      maintainers = with maintainers; [ garbas profpatsch ];
-    };
-  };
-
-  anyjson = buildPythonPackage rec {
-    name = "anyjson-0.3.3";
-
-    # The tests are written in a python2 syntax but anyjson is python3 valid
-    doCheck = !isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/anyjson/${name}.tar.gz";
-      sha256 = "37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba";
-    };
-
-    buildInputs = with self; [ self.nose ];
-
-    meta = {
-      homepage = http://pypi.python.org/pypi/anyjson/;
-      description = "Wrapper that selects the best available JSON implementation";
-    };
-  };
-
-  amqp_1 = buildPythonPackage rec {
-    name = "amqp-${version}";
-    version = "1.4.9";
-    disabled = pythonOlder "2.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/amqp/${name}.tar.gz";
-      sha256 = "06n6q0kxhjnbfz3vn8x9yz09lwmn1xi9d6wxp31h5jbks0b4vsid";
-    };
-
-    buildInputs = with self; [ mock coverage nose-cover3 unittest2 ];
-
-    meta = {
-      homepage = http://github.com/celery/py-amqp;
-      description = "Python client for the Advanced Message Queuing Procotol (AMQP). This is a fork of amqplib which is maintained by the Celery project";
-      license = licenses.lgpl21;
-    };
-  };
+  anyjson = callPackage ../development/python-modules/anyjson {};
 
   amqp = buildPythonPackage rec {
     name = "amqp-${version}";
@@ -536,57 +492,18 @@ in {
     propagatedBuildInputs = with self; [ vine ];
 
     meta = {
-      homepage = http://github.com/celery/py-amqp;
+      homepage = https://github.com/celery/py-amqp;
       description = "Python client for the Advanced Message Queuing Procotol (AMQP). This is a fork of amqplib which is maintained by the Celery project";
       license = licenses.lgpl21;
     };
   };
 
 
-  amqplib = buildPythonPackage rec {
-    name = "amqplib-0.6.1";
-
-    src = pkgs.fetchurl {
-      url = "http://py-amqplib.googlecode.com/files/${name}.tgz";
-      sha256 = "0f2618b74d95cd360a6d46a309a3fb1c37d881a237e269ac195a69a34e0e2f62";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      homepage = http://code.google.com/p/py-amqplib/;
-      description = "Python client for the Advanced Message Queuing Procotol (AMQP)";
-    };
-  };
-
-  ansible  = self.ansible2;
-  ansible2 = self.ansible_2_3;
-
-  ansible_2_1 = callPackage ../development/python-modules/ansible/2.1.nix {};
-  ansible_2_2 = callPackage ../development/python-modules/ansible/2.2.nix {};
-  ansible_2_3 = callPackage ../development/python-modules/ansible/2.3.nix {};
-
-  apipkg = buildPythonPackage rec {
-    name = "apipkg-1.4";
+  amqplib = callPackage ../development/python-modules/amqplib {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/apipkg/${name}.tar.gz";
-      sha256 = "2e38399dbe842891fe85392601aab8f40a8f4cc5a9053c326de35a1cc0297ac6";
-    };
+  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime {};
 
-    buildInputs = with self; [ pytest ];
-
-    checkPhase = ''
-      py.test
-    '';
-
-    meta = {
-      description = "Namespace control and lazy-import mechanism";
-      homepage = "http://bitbucket.org/hpk42/apipkg";
-      license = licenses.mit;
-    };
-  };
+  apipkg = callPackage ../development/python-modules/apipkg {};
 
   appdirs = callPackage ../development/python-modules/appdirs { };
 
@@ -615,49 +532,16 @@ in {
     };
 
     meta = {
-      description = "Disable App Nap on OS X";
+      description = "Disable App Nap on macOS";
       homepage    = https://pypi.python.org/pypi/appnope;
       platforms   = platforms.darwin;
       license     = licenses.bsd3;
     };
   };
 
-  apsw = buildPythonPackage rec {
-    name = "apsw-3.7.6.2-r1";
-    disabled = isPyPy;
+  apsw = callPackage ../development/python-modules/apsw {};
 
-    src = pkgs.fetchurl {
-      url = "http://apsw.googlecode.com/files/${name}.zip";
-      sha256 = "cb121b2bce052609570a2f6def914c0aa526ede07b7096dddb78624d77f013eb";
-    };
-
-    buildInputs = with self; [ pkgs.sqlite ];
-
-    # python: double free or corruption (fasttop): 0x0000000002fd4660 ***
-    doCheck = false;
-
-    meta = {
-      description = "A Python wrapper for the SQLite embedded relational database engine";
-      homepage = http://code.google.com/p/apsw/;
-    };
-  };
-
-  astor = buildPythonPackage rec {
-    name = "astor-${version}";
-    version = "0.5";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/astor/${name}.tar.gz";
-      sha256 = "1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa";
-    };
-
-    meta = with pkgs.stdenv.lib; {
-      description = "Library for reading, writing and rewriting python AST";
-      homepage = https://github.com/berkerpeksag/astor;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ nixy ];
-    };
-  };
+  astor = callPackage ../development/python-modules/astor {};
 
   asyncio = if (pythonAtLeast "3.3") then buildPythonPackage rec {
     name = "asyncio-${version}";
@@ -676,91 +560,23 @@ in {
     };
   } else null;
 
-  funcsigs = buildPythonPackage rec {
-    name = "funcsigs-1.0.2";
+  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/f/funcsigs/${name}.tar.gz";
-      sha256 = "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7";
-    };
-
-    buildInputs = with self; [
-      unittest2
-    ];
-
-    meta = with pkgs.stdenv.lib; {
-      description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+";
-      homepage = "https://github.com/aliles/funcsigs";
-      maintainers = with maintainers; [ garbas ];
-      license = licenses.asl20;
-    };
-  };
+  funcsigs = callPackage ../development/python-modules/funcsigs { };
 
   APScheduler = callPackage ../development/python-modules/APScheduler { };
 
-  args = buildPythonPackage rec {
-    name = "args-0.1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/args/${name}.tar.gz";
-      sha256 = "a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814";
-    };
-
-    meta = {
-      description = "Command Arguments for Humans";
-      homepage = "https://github.com/kennethreitz/args";
-    };
-  };
+  args = callPackage ../development/python-modules/args { };
 
   argcomplete = callPackage ../development/python-modules/argcomplete { };
 
-  area53 = buildPythonPackage (rec {
-    name = "Area53-0.94";
+  area53 = callPackage ../development/python-modules/area53 { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/A/Area53/${name}.tar.gz";
-      sha256 = "0v9b7f8b6v21y410anx5sr52k2ac8jrzdf19q6m6p0zsdsf9vr42";
-    };
+  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
 
-    # error: invalid command 'test'
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ self.boto ];
-
-  });
-
-  chai = buildPythonPackage rec {
-    name = "chai-${version}";
-    version = "1.1.1";
+  chai = callPackage ../development/python-modules/chai { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/chai/${name}.tar.gz";
-      sha256 = "016kf3irrclpkpvcm7q0gmkfibq7jgy30a9v73pp42bq9h9a32bl";
-    };
-
-    meta = {
-      description = "Mocking, stubbing and spying framework for python";
-    };
-  };
-
-  chainmap = buildPythonPackage rec {
-    name = "chainmap-1.0.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/chainmap/${name}.tar.gz";
-      sha256 = "09h5gq43w516fqswlca0nhmd2q3v8hxq15z4wqrznfwix6ya6pa0";
-    };
-
-    # Requires tox
-    doCheck = false;
-
-    meta = {
-      description = "Backport/clone of ChainMap";
-      homepage = "https://bitbucket.org/jeunice/chainmap";
-      license = licenses.psfl;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  chainmap = callPackage ../development/python-modules/chainmap { };
 
   arelle = callPackage ../development/python-modules/arelle {
     gui = true;
@@ -770,46 +586,15 @@ in {
     gui = false;
   };
 
+  deluge-client = callPackage ../development/python-modules/deluge-client { };
 
   arrow = callPackage ../development/python-modules/arrow { };
 
-  async = buildPythonPackage rec {
-    name = "async-0.6.1";
-    disabled = isPy3k;
-    meta.maintainers = with maintainers; [ mornfall ];
-
-    buildInputs = with self; [ pkgs.zlib ];
-    doCheck = false;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/async/${name}.tar.gz";
-      sha256 = "1lfmjm8apy9qpnpbq8g641fd01qxh9jlya5g2d6z60vf8p04rla1";
-    };
-  };
+  asynctest = callPackage ../development/python-modules/asynctest { };
 
   async-timeout = callPackage ../development/python-modules/async_timeout { };
 
- asn1ate = buildPythonPackage rec {
-  pname = "asn1ate";
-  date = "20160810";
-  name = "${pname}-unstable-${date}";
-
-  src = pkgs.fetchFromGitHub {
-    sha256 = "04pddr1mh2v9qq8fg60czwvjny5qwh4nyxszr3qc4bipiiv2xk9w";
-    rev = "c56104e8912400135509b584d84423ee05a5af6b";
-    owner = "kimgr";
-    repo = pname;
-  };
-
-  propagatedBuildInputs = with self; [ pyparsing ];
-
-  meta = with stdenv.lib; {
-    description = "Python library for translating ASN.1 into other forms";
-    license = licenses.bsd3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ leenaars ];
-  };
-};
+  asn1ate = callPackage ../development/python-modules/asn1ate { };
 
   atomiclong = buildPythonPackage rec {
     version = "0.1.1";
@@ -870,53 +655,20 @@ in {
     };
   });
 
-  attrs = buildPythonPackage (rec {
-    name = "attrs-${version}";
-    version = "16.2.0";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/attrs/${name}.tar.gz";
-      sha256 = "136f2ec0f94ec77ff2990830feee965d608cab1e8922370e3abdded383d52001";
-    };
-
-    # Mac OS X needs clang for testing
-    buildInputs = with self; [ pytest hypothesis zope_interface
-    pympler coverage ]
-     ++ optionals (stdenv.isDarwin) [ pkgs.clang ];
+  attrs = callPackage ../development/python-modules/attrs { };
 
-    checkPhase = ''
-      py.test
-    '';
-
-    meta = {
-      description = "Python attributes without boilerplate";
-      homepage = https://github.com/hynek/attrs;
-      license = licenses.mit;
-    };
-   });
-
-  audioread = buildPythonPackage rec {
-    name = "audioread-${version}";
-    version = "2.1.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/audioread/${name}.tar.gz";
-      sha256 = "ffb601de7a9e40850d4ec3256a3a6bbe8fa40466dafb5c65f41b08e4bb963f1e";
-    };
-
-    # No tests, need to disable or py3k breaks
-    doCheck = false;
-
-    meta = {
-      description = "Cross-platform audio decoding";
-      homepage = "https://github.com/sampsyo/audioread";
-      license = licenses.mit;
-    };
-  };
+  audioread = callPackage ../development/python-modules/audioread { };
 
   audiotools = buildPythonPackage rec {
     name = "audiotools-${version}";
     version = "3.1.1";
 
+    buildInputs = optionals stdenv.isDarwin (with pkgs.darwin.apple_sdk.frameworks; [
+      AudioToolbox
+      AudioUnit
+      CoreServices
+    ]);
+
     src = pkgs.fetchurl {
       url = "https://github.com/tuffy/python-audio-tools/archive/v${version}.tar.gz";
       sha256 = "0ymlxvqkqhzk4q088qwir3dq0zgwqlrrdfnq7f0iq97g05qshm2c";
@@ -929,28 +681,7 @@ in {
     };
   };
 
-  autopep8 = buildPythonPackage (rec {
-    name = "autopep8-1.0.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/autopep8/${name}.tar.gz";
-      sha256 = "17lydqm8y9a5qadp6iifxrb5mb0g9fr1vxn5qy1fjpyhazxaw8n1";
-    };
-
-    propagatedBuildInputs = with self; [ pep8 ];
-
-    # One test fails:
-    # FAIL: test_recursive_should_not_crash_on_unicode_filename (test.test_autopep8.CommandLineTests)
-    doCheck = false;
-
-    meta = {
-      description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
-      homepage = https://pypi.python.org/pypi/autopep8/;
-      license = licenses.mit;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  });
+  autopep8 = callPackage ../development/python-modules/autopep8 { };
 
   av = buildPythonPackage rec {
     name = "av-${version}";
@@ -1011,29 +742,7 @@ in {
 
   python-slugify = callPackage ../development/python-modules/python-slugify { };
 
-  awesome-slugify = buildPythonPackage rec {
-    name = "awesome-slugify-${version}";
-    version = "1.6.5";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/awesome-slugify/${name}.tar.gz";
-      sha256 = "0wgxrhr8s5vk2xmcz9s1z1aml4ppawmhkbggl9rp94c747xc7pmv";
-    };
-
-    propagatedBuildInputs = with self; [ unidecode regex ];
-
-    checkPhase = ''
-      ${python.interpreter} -m unittest discover
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/dimka665/awesome-slugify";
-      description = "Python flexible slugify function";
-      license = licenses.gpl3;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  awesome-slugify = callPackage ../development/python-modules/awesome-slugify {};
 
   noise = buildPythonPackage rec {
     name = "noise-${version}";
@@ -1052,91 +761,6 @@ in {
     };
   };
 
-  awscli =
-  let
-    colorama_3_7 = self.colorama.overrideAttrs (old: rec {
-      name = "${pname}-${version}";
-      pname = "colorama";
-      version = "0.3.7";
-      src = fetchPypi {
-        inherit pname version;
-        sha256 = "0avqkn6362v7k2kg3afb35g4sfdvixjgy890clip4q174p9whhz0";
-      };
-    });
-  in buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "awscli";
-    version = "1.11.108";
-    namePrefix = "";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "1wz76hkljc25zzfa2l5jv0mbr5vx6d9ixq4sq0p3zf3l45ql6mdf";
-    };
-
-    # No tests included
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [
-      botocore
-      bcdoc
-      s3transfer
-      six
-      colorama_3_7
-      docutils
-      rsa
-      pyyaml
-      pkgs.groff
-      pkgs.less
-    ];
-
-    postInstall = ''
-      mkdir -p $out/etc/bash_completion.d
-      echo "complete -C $out/bin/aws_completer aws" > $out/etc/bash_completion.d/awscli
-      mkdir -p $out/share/zsh/site-functions
-      mv $out/bin/aws_zsh_completer.sh $out/share/zsh/site-functions
-      rm $out/bin/aws.cmd
-    '';
-
-    meta = {
-      homepage = https://aws.amazon.com/cli/;
-      description = "Unified tool to manage your AWS services";
-      license = stdenv.lib.licenses.asl20;
-      maintainers = with maintainers; [ muflax ];
-    };
-  };
-
-  aws_shell = buildPythonPackage rec {
-    name = "aws-shell-${version}";
-    version = "0.1.1";
-    src = pkgs.fetchurl {
-        sha256 = "1pw9lrdjl24n6lrs6lnqpyiyic8bdxgvhyqvb2rx6kkbjrfhhgv5";
-        url = "mirror://pypi/a/aws-shell/aws-shell-${version}.tar.gz";
-      };
-
-    # Why does it propagate packages that are used for testing?
-    propagatedBuildInputs = with self; [
-      awscli prompt_toolkit boto3 configobj pygments
-    ];
-
-    #Checks are failing due to missing TTY, which won't exist.
-    doCheck = false;
-    preCheck = ''
-      mkdir -p check-phase
-      export HOME=$(pwd)/check-phase
-    '';
-
-    disabled = isPy35;
-
-
-    meta = {
-      homepage = https://github.com/awslabs/aws-shell;
-      description = "An integrated shell for working with the AWS CLI";
-      license = licenses.asl20;
-      maintainers = [ ];
-    };
-  };
-
   azure = buildPythonPackage rec {
     version = "0.11.0";
     name = "azure-${version}";
@@ -1366,62 +990,13 @@ in {
     };
   };
 
-  backports_abc = buildPythonPackage rec {
-    name = "backports_abc-${version}";
-    version = "0.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/backports_abc/${name}.tar.gz";
-      sha256 = "8b3e4092ba3d541c7a2f9b7d0d9c0275b21c6a01c53a61c731eba6686939d0a5";
-    };
-
-    checkPhase = ''
-      ${python.interpreter} -m unittest discover
-    '';
-
-    meta = {
-      homepage = https://github.com/cython/backports_abc;
-      license = licenses.psfl;
-      description = "A backport of recent additions to the 'collections.abc' module";
-    };
-  };
-
-  backports_functools_lru_cache = buildPythonPackage rec {
-    name = "backports.functools_lru_cache-${version}";
-    version = "1.3";
+  backports_abc = callPackage ../development/python-modules/backports_abc { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/backports_functools_lru_cache/${name}.tar.gz";
-      sha256 = "444a21bcec4ae177da554321f81a78dc879eaa8f6ea9920cb904830585d31e95";
-    };
-
-    buildInputs = with self; [ setuptools_scm ];
-    doCheck = false; # No proper test
-
-    meta = {
-      description = "Backport of functools.lru_cache";
-      homepage = https://github.com/jaraco/backports.functools_lru_cache;
-      license = licenses.mit;
-    };
-  };
-
-  backports_shutil_get_terminal_size = if !(pythonOlder "3.3") then null else buildPythonPackage rec {
-    name = "backports.shutil_get_terminal_size-${version}";
-    version = "1.0.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/backports.shutil_get_terminal_size/${name}.tar.gz";
-      sha256 = "713e7a8228ae80341c70586d1cc0a8caa5207346927e23d09dcbcaf18eadec80";
-    };
+  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
 
-    meta = {
-      description = "A backport of the get_terminal_size function from Python 3.3’s shutil.";
-      homepage = https://github.com/chrippa/backports.shutil_get_terminal_size;
-      license = with licenses; [ mit ];
-    };
-  };
+  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
 
-  backports_ssl_match_hostname_3_4_0_2 = self.buildPythonPackage rec {
+  backports_ssl_match_hostname_3_4_0_2 = if !(pythonOlder "3.5") then null else self.buildPythonPackage rec {
     name = "backports.ssl_match_hostname-3.4.0.2";
 
     src = pkgs.fetchurl {
@@ -1431,11 +1006,11 @@ in {
 
     meta = {
       description = "The Secure Sockets layer is only actually *secure*";
-      homepage = http://bitbucket.org/brandon/backports.ssl_match_hostname;
+      homepage = https://bitbucket.org/brandon/backports.ssl_match_hostname;
     };
   };
 
-  backports_ssl_match_hostname = self.buildPythonPackage rec {
+  backports_ssl_match_hostname = if !(pythonOlder "3.5") then null else self.buildPythonPackage rec {
     name = "backports.ssl_match_hostname-${version}";
     version = "3.5.0.1";
 
@@ -1446,27 +1021,15 @@ in {
 
     meta = {
       description = "The Secure Sockets layer is only actually *secure*";
-      homepage = http://bitbucket.org/brandon/backports.ssl_match_hostname;
+      homepage = https://bitbucket.org/brandon/backports.ssl_match_hostname;
     };
   };
 
-  backports_lzma = self.buildPythonPackage rec {
-    name = "backports.lzma-0.0.3";
-    disabled = isPy3k;
+  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/backports.lzma/${name}.tar.gz";
-      sha256 = "bac58aec8d39ac3d22250840fb24830d0e4a0ef05ad8f3f09172dc0cc80cdbca";
-    };
-
-    buildInputs = [ pkgs.lzma ];
+  backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
 
-    meta = {
-      describe = "Backport of Python 3.3's 'lzma' module for XZ/LZMA compressed files";
-      homepage = https://github.com/peterjc/backports.lzma;
-      license = licenses.bsd3;
-    };
-  };
+  backports_unittest-mock = callPackage ../development/python-modules/backports_unittest-mock {};
 
   babelfish = buildPythonPackage rec {
     version = "0.5.5";
@@ -1478,7 +1041,7 @@ in {
     };
 
     meta = {
-      homepage = http://pypi.python.org/pypi/babelfish;
+      homepage = https://pypi.python.org/pypi/babelfish;
       description = "A module to work with countries and languages";
       license = licenses.bsd3;
     };
@@ -1500,7 +1063,7 @@ in {
 
     meta = {
       description = "Get info about wireless interfaces using libiw";
-      homepage = http://github.com/enkore/basiciw;
+      homepage = https://github.com/enkore/basiciw;
       platforms = platforms.linux;
       license = licenses.gpl2;
     };
@@ -1547,45 +1110,7 @@ in {
     };
   };
 
-  beautifulsoup = buildPythonPackage (rec {
-    name = "beautifulsoup-3.2.1";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz";
-      sha256 = "1nshbcpdn0jpcj51x0spzjp519pkmqz0n0748j7dgpz70zlqbfpm";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      homepage = http://www.crummy.com/software/BeautifulSoup/;
-      license = "bsd";
-      description = "Undemanding HTML/XML parser";
-    };
-  });
-
-  beautifulsoup4 = buildPythonPackage (rec {
-    name = "beautifulsoup4-4.5.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/beautifulsoup4/${name}.tar.gz";
-      sha256 = "0glaw1vyxnbp03fni7h5496n6iib0n5iim4gax1n0ngscs9s075j";
-    };
-
-    buildInputs = [ self.nose ];
-    checkPhase = ''
-      nosetests build/
-    '';
-
-    meta = {
-      homepage = http://crummy.com/software/BeautifulSoup/bs4/;
-      description = "HTML and XML parser";
-      license = licenses.mit;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  });
+  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
 
   beaker = buildPythonPackage rec {
     name = "Beaker-${version}";
@@ -1620,11 +1145,11 @@ in {
   };
 
   betamax = buildPythonPackage rec {
-    name = "betamax-0.6.0";
+    name = "betamax-0.8.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/b/betamax/${name}.tar.gz";
-      sha256 = "0vw4d53jbbb2kdl7l891h8iyxklqcd6ldvgcyhw9hl40ljdhv1wz";
+      sha256 = "18f8v5gng3j773jlbbzx4rg1i4y2zw3m2l1zpmbvp8bh5a2q1i42";
     };
 
     propagatedBuildInputs = [ self.requests ];
@@ -1639,24 +1164,9 @@ in {
     };
   };
 
-  betamax-matchers = buildPythonPackage rec {
-    name = "betamax-matchers-${version}";
-    version = "0.3.0";
-
-    src = pkgs.fetchurl {
-       url = "mirror://pypi/b/betamax-matchers/${name}.tar.gz";
-      sha256 = "039kvqsdcvvlfxjc3n1x2xvjg6qkqbql0p7rc4z7bnxm9kcm88la";
-    };
-
-    buildInputs = with self; [ betamax requests_toolbelt ];
+  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
 
-    meta = with stdenv.lib; {
-      homepage = https://github.com/sigmavirus24/betamax_matchers;
-      description = "A group of experimental matchers for Betamax";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ pSub ];
-    };
-  };
+  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
 
   bibtexparser = callPackage ../development/python-modules/bibtexparser { };
 
@@ -1716,33 +1226,7 @@ in {
     };
   };
 
-  biopython = buildPythonPackage rec {
-    name = "biopython-${version}";
-    version = "1.68";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/biopython/${name}.tar.gz";
-      sha256 = "07qc7nz0k77y8hf8s18rscvibvm91zw0kkq7ylrhisf8vp8hkp6i";
-    };
-
-    propagatedBuildInputs = with self; [ numpy ];
-    # Checks try to write to $HOME, which does not work with nix
-    doCheck = false;
-    meta = {
-      description = "Python library for bioinformatics";
-
-      longDescription = ''
-        Biopython is a set of freely available tools for biological computation
-        written in Python by an international team of developers. It is a
-        distributed collaborative effort to develop Python libraries and
-        applications which address the needs of current and future work in
-        bioinformatics.
-      '';
-
-      homepage = http://biopython.org/wiki/Documentation;
-      maintainers = with maintainers; [ luispedro ];
-    };
-  };
+  biopython = callPackage ../development/python-modules/biopython { };
 
   bedup = buildPythonPackage rec {
     version = "0.10.1";
@@ -1777,9 +1261,14 @@ in {
     };
   };
 
+  blessed = callPackage ../development/python-modules/blessed {};
+
   # Build boost for this specific Python version
   # TODO: use separate output for libboost_python.so
-  boost = pkgs.boost.override {inherit python;};
+  boost = toPythonModule (pkgs.boost.override {
+    inherit (self) python numpy;
+    enablePython = true;
+  });
 
   buttersink = buildPythonPackage rec {
     name = "buttersink-0.6.8";
@@ -1804,30 +1293,17 @@ in {
       homepage = https://github.com/AmesCornish/buttersink/wiki;
       license = licenses.gpl3;
       platforms = platforms.linux;
-      maintainers = with maintainers; [ nckx ];
     };
 
     propagatedBuildInputs = with self; [ boto crcmod psutil ];
   };
 
-  cached-property = buildPythonPackage rec {
-    version = "1.3.0";
-    name = "cached-property-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/cached-property/${name}.tar.gz";
-      sha256 = "10dwi3s6f154ag9dvqy5jiwp31fs57lbxjcjgn4cwvi8qyqpi3j5";
-    };
-
-    buildInputs = with self; [ freezegun ];
+  cached-property = callPackage ../development/python-modules/cached-property { };
 
-    meta = {
-      description = "A decorator for caching properties in classes";
-      homepage = https://github.com/pydanny/cached-property;
-      license = licenses.bsd3;
-      platforms = platforms.unix;
-      maintainers = with maintainers; [ ericsagnes ];
-    };
+  caffe = pkgs.caffe.override {
+    python = self.python;
+    boost = self.boost;
+    numpy = self.numpy;
   };
 
   capstone = buildPythonPackage rec {
@@ -1858,31 +1334,21 @@ in {
     };
   };
 
-  cgroup-utils = buildPythonPackage rec {
-    version = "0.6";
-    name = "cgroup-utils-${version}";
+  cement = callPackage ../development/python-modules/cement {};
 
-    propagatedBuildInputs = with self; [ argparse ];
-    buildInputs = with self; [ pep8 nose ];
-    # Pep8 tests fail...
-    doCheck = false;
-
-    src = pkgs.fetchFromGitHub {
-      owner = "peo3";
-      repo = "cgroup-utils";
-      rev = "v${version}";
-      sha256 = "1ck0aijzrg9xf6hjdxnynkapnyxw0y385jb0q7wyq4jf77ayfszc";
-    };
+  cgroup-utils = callPackage ../development/python-modules/cgroup-utils {};
+    postPatch = ''
+      substituteInPlace setup.py --replace "argparse" ""
+    '';
 
-    meta = {
-      description = "Utility tools for control groups of Linux";
-      maintainers = with maintainers; [ layus ];
-      license = licenses.gpl2;
-    };
+  chainer = callPackage ../development/python-modules/chainer {
+    cudaSupport = pkgs.config.cudaSupport or false;
   };
 
   channels = callPackage ../development/python-modules/channels {};
 
+  cheroot = callPackage ../development/python-modules/cheroot {};
+
   circus = buildPythonPackage rec {
     name = "circus-0.11.1";
 
@@ -1916,24 +1382,7 @@ in {
     };
   };
 
-  colorlog = buildPythonPackage rec {
-    name = "colorlog-${version}";
-    version = "2.6.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/colorlog/${name}.tar.gz";
-      sha256 = "0djv6ky1yk28s1l093w8plg19kp88q4nyrm1vfxyq0s9j4pix29l";
-    };
-
-    # No tests included
-    doCheck = false;
-
-    meta = {
-      description = "Log formatting with colors";
-      homepage = https://github.com/borntyping/python-colorlog;
-      license = licenses.free; # BSD-like
-    };
-  };
+  colorlog = callPackage ../development/python-modules/colorlog { };
 
   colour = buildPythonPackage rec {
     name = "${pname}-${version}";
@@ -1972,33 +1421,21 @@ in {
 
   cram = callPackage ../development/python-modules/cram { };
 
-  csscompressor = callPackage ../development/python-modules/csscompressor.nix {};
+  csscompressor = callPackage ../development/python-modules/csscompressor {};
 
   csvkit =  callPackage ../development/python-modules/csvkit { };
 
-  cx_Freeze = buildPythonPackage rec {
-    name = "cx_freeze-${version}";
-    version = "4.3.4";
-
-    # build failures
-    disabled = isPyPy || isPy35;
+  cufflinks = callPackage ../development/python-modules/cufflinks { };
 
-    # timestamp need to come after 1980 for zipfiles and nix store is set to epoch
-    prePatch = ''
-      substituteInPlace cx_Freeze/freezer.py --replace "os.stat(module.file).st_mtime" "time.time()"
-    '';
+  cupy = callPackage ../development/python-modules/cupy {
+    cudatoolkit = pkgs.cudatoolkit8;
+    cudnn = pkgs.cudnn6_cudatoolkit8;
+    nccl = pkgs.nccl;
+  };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/cx_Freeze/cx_Freeze-${version}.tar.gz";
-      sha256 = "1qhv0gq3ggr06k8cvzphma29zfqdajkx2yfzbw89s4vy23xbpis0";
-    };
+  cx_Freeze = callPackage ../development/python-modules/cx_freeze {};
 
-    meta = {
-      description = "A set of scripts and modules for freezing Python scripts into executables";
-      homepage = "http://cx-freeze.sourceforge.net/";
-      license = licenses.psfl;
-    };
-  };
+  cx_oracle = callPackage ../development/python-modules/cx_oracle {};
 
   cvxopt = buildPythonPackage rec {
     name = "${pname}-${version}";
@@ -2024,32 +1461,14 @@ in {
     };
   };
 
-  cycler = buildPythonPackage rec {
-    name = "cycler-${version}";
-    version = "0.10.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/C/Cycler/${name}.tar.gz";
-      sha256 = "cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8";
-    };
-
-    buildInputs = with self; [ coverage nose ];
-    propagatedBuildInputs = with self; [ six ];
+  cycler = callPackage ../development/python-modules/cycler { };
 
-    checkPhase = ''
-      ${python.interpreter} run_tests.py
-    '';
+  dlib = buildPythonPackage rec {
+    inherit (pkgs.dlib) name src nativeBuildInputs meta;
 
-    # Tests were not included in release.
-    # https://github.com/matplotlib/cycler/issues/31
-    doCheck = false;
+    buildInputs = pkgs.dlib.buildInputs ++ [ self.boost ];
 
-    meta = {
-      description = "Composable style cycles";
-      homepage = http://github.com/matplotlib/cycler;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ fridh ];
-    };
+    checkInputs = with self; [ pytest ];
   };
 
   datadog = buildPythonPackage rec {
@@ -2111,6 +1530,7 @@ in {
     meta = {
       description = "A comic strip downloader and archiver";
       homepage = http://dosage.rocks/;
+      broken = true; # ctypes error
     };
   };
 
@@ -2156,23 +1576,9 @@ in {
 
   rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
 
-  proboscis = buildPythonPackage rec {
-    name = "proboscis-1.2.6.0";
+  proboscis = callPackage ../development/python-modules/proboscis {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/proboscis/proboscis-1.2.6.0.tar.gz";
-      sha256 = "b822b243a7c82030fce0de97bdc432345941306d2c24ef227ca561dd019cd238";
-    };
-
-    propagatedBuildInputs = with self; [ nose ];
-    doCheck = false;
-
-    meta = {
-      description = "A Python test framework that extends Python's built-in unittest module and Nose with features from TestNG";
-      homepage = https://github.com/rackspace/python-proboscis;
-      license = licenses.asl20;
-    };
-  };
+  py4j = callPackage ../development/python-modules/py4j { };
 
   pyechonest = self.buildPythonPackage rec {
     name = "pyechonest-8.0.2";
@@ -2208,27 +1614,7 @@ in {
     };
   };
 
-
-  binaryornot = buildPythonPackage rec {
-    name = "binaryornot-${version}";
-    version = "0.4.0";
-
-    src = pkgs.fetchurl {
-      url ="mirror://pypi/b/binaryornot/${name}.tar.gz";
-      sha256 = "1j4f51dxic39mdwf6alj7gd769wy6mhk916v031wjali51xkh3xb";
-    };
-
-    buildInputs = with self; [ hypothesis ];
-
-    propagatedBuildInputs = with self; [ chardet ];
-
-    meta = {
-      homepage = https://github.com/audreyr/binaryornot;
-      description = "Ultra-lightweight pure Python package to check if a file is binary or text";
-      license = licenses.bsd3;
-    };
-  };
-
+  binaryornot = callPackage ../development/python-modules/binaryornot { };
 
   bitbucket_api = buildPythonPackage rec {
     name = "bitbucket-api-0.4.4";
@@ -2273,80 +1659,14 @@ in {
     };
   };
 
+  bitstring = callPackage ../development/python-modules/bitstring { };
 
-  bitstring = buildPythonPackage rec {
-    name = "bitstring-3.1.2";
-
-    src = pkgs.fetchurl {
-      url = "https://python-bitstring.googlecode.com/files/${name}.zip";
-      sha256 = "1i1p3rkj4ad108f23xyib34r4rcy571gy65paml6fk77knh0k66p";
-    };
+  blaze = callPackage ../development/python-modules/blaze { };
 
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "Module for binary data manipulation";
-      homepage = https://code.google.com/p/python-bitstring/;
-      license = licenses.mit;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
-
-  blaze = buildPythonPackage rec {
-    name = "blaze-${version}";
-    version = "0.11.0";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/blaze/blaze/archive/${version}.tar.gz";
-      sha256 = "07zrrxkmdqk84xvdmp29859zcfzlpx5pz6g62l28nqp6n6a7yq9a";
-    };
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [
-      contextlib2
-      cytoolz
-      dask
-      datashape
-      flask
-      flask-cors
-      h5py
-      multipledispatch
-      numba
-      numpy
-      odo
-      pandas
-      psutil
-      pymongo
-      pyyaml
-      requests
-      sqlalchemy
-      tables
-      toolz
-    ];
-
-    # Failing test
-    # ERROR collecting blaze/tests/test_interactive.py
-    # E   networkx.exception.NetworkXNoPath: node <class 'list'> not
-    # reachable from <class 'dask.array.core.Array'>
-    doCheck = false;
-
-    checkPhase = ''
-      py.test blaze/tests
-    '';
-
-    meta = {
-      homepage = https://github.com/ContinuumIO/blaze;
-      description = "Allows Python users a familiar interface to query data living in other data storage systems";
-      license = licenses.bsdOriginal;
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
-
-  # Needed for FlexGet 1.2.337 and calibre 2.76.0
-  html5lib_0_9999999 = self.html5lib.override rec {
+  # Needed for bleach 1.5.0
+  html5lib_0_9999999 = self.html5lib.overridePythonAttrs rec {
     name = "html5lib-${version}";
+    disabled = isPy3k && pythonAtLeast "3.6";
     buildInputs = with self; [ nose flake8 ];
     propagatedBuildInputs = with self; [ six ];
     checkPhase = ''
@@ -2360,38 +1680,27 @@ in {
     };
   };
 
+  html5-parser = callPackage ../development/python-modules/html5-parser {};
+
   httpserver = callPackage ../development/python-modules/httpserver {};
 
-  bleach = buildPythonPackage rec {
+  bleach = callPackage ../development/python-modules/bleach { };
+
+  # needed for tensorflow-tensorboard
+  bleach_1_5_0 = self.bleach.overridePythonAttrs rec {
+    version = "1.5.0";
     pname = "bleach";
-    version = "2.0.0";
     name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
-      sha256 = "0c5w7hh70lqzca7ir71j891csvch1899r8q09zgswk1y00q22lmr";
-    };
+    propagatedBuildInputs = with self; [ six html5lib_0_9999999 ];
 
-    buildInputs = with self; [ pytest pytestrunner ];
-    propagatedBuildInputs = with self; [ six html5lib ];
+    preCheck = ''
+      sed -i 's,pytest==[0-9.]*,pytest,' setup.py
+    '';
 
-    meta = {
-      description = "An easy, HTML5, whitelisting HTML sanitizer";
-      longDescription = ''
-        Bleach is an HTML sanitizing library that escapes or strips markup and
-        attributes based on a white list. Bleach can also linkify text safely,
-        applying filters that Django's urlize filter cannot, and optionally
-        setting rel attributes, even on links already in the text.
-
-        Bleach is intended for sanitizing text from untrusted sources. If you
-        find yourself jumping through hoops to allow your site administrators
-        to do lots of things, you're probably outside the use cases. Either
-        trust those users, or don't.
-      '';
-      homepage = https://github.com/mozilla/bleach;
-      downloadPage = https://github.com/mozilla/bleach/releases;
-      license = licenses.asl20;
-      maintainers = with maintainers; [ prikhi ];
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0rdwb3piwwl30wfqg4ywm07276w7090xfq71lb5d6k5mk62pb3lp";
     };
   };
 
@@ -2412,51 +1721,9 @@ in {
     };
   };
 
+  blockdiag = callPackage ../development/python-modules/blockdiag { };
 
-  blockdiag = buildPythonPackage rec {
-    name = "blockdiag-${version}";
-    version = "1.5.3";
-
-    src = pkgs.fetchurl {
-      url = "https://bitbucket.org/blockdiag/blockdiag/get/${version}.tar.bz2";
-      sha256 = "0r0qbmv0ijnqidsgm2rqs162y9aixmnkmzgnzgk52hiy7ydm4k8f";
-    };
-
-    buildInputs = with self; [ pep8 nose unittest2 docutils ];
-
-    propagatedBuildInputs = with self; [ pillow webcolors funcparserlib ];
-
-    # One test fails:
-    #   ...
-    #   FAIL: test_auto_font_detection (blockdiag.tests.test_boot_params.TestBootParams)
-    doCheck = false;
-
-    meta = {
-      description = "Generate block-diagram image from spec-text file (similar to Graphviz)";
-      homepage = http://blockdiag.com/;
-      license = licenses.asl20;
-      platforms = platforms.unix;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
-
-
-  bpython = buildPythonPackage rec {
-     name = "bpython-0.12";
-     src = pkgs.fetchurl {
-       url = "http://www.bpython-interpreter.org/releases/bpython-0.12.tar.gz";
-       sha256 = "1ilf58qq7sazmcgg4f1wswbhcn2gb8qbbrpgm6gf0j2lbm60gabl";
-     };
-
-     propagatedBuildInputs = with self; [ pygments ];
-     doCheck = false;
-
-     meta = {
-       description = "UNKNOWN";
-       homepage = "UNKNOWN";
-       maintainers = with maintainers; [ domenkozar ];
-     };
-   };
+  bpython = callPackage ../development/python-modules/bpython {};
 
   bsddb3 = buildPythonPackage rec {
     name = "bsddb3-${version}";
@@ -2470,7 +1737,8 @@ in {
     buildInputs = [ pkgs.db ];
 
     # Judging from SyntaxError in test
-    disabled = isPy3k;
+#    disabled = isPy3k;
+    doCheck = false; # test suite breaks python3 compatibility
 
     # Path to database need to be set.
     # Somehow the setup.py flag is not propagated.
@@ -2487,54 +1755,9 @@ in {
     };
   };
 
-  bokeh = buildPythonPackage rec {
-    name = "bokeh-${version}";
-    version = "0.12.3";
+  bkcharts = callPackage ../development/python-modules/bkcharts { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/bokeh/${name}.tar.gz";
-      sha256 = "e138941b62f59bc48bc5b8d249e90c03fed31c1d5abe47ab2ce9e4c83202f73c";
-    };
-
-    disabled = isPyPy;
-
-    # Some test that uses tornado fails
-    doCheck = false;
-
-    buildInputs = with self; [ mock pytest ];
-
-    propagatedBuildInputs = with self; [
-      flask
-      jinja2
-      markupsafe
-      werkzeug
-      itsdangerous
-      dateutil
-      requests
-      six
-      pygments
-      pystache
-      markdown
-      pyyaml
-      pyzmq
-      tornado
-      colorama
-      ]
-      ++ optionals ( !isPy3k ) [ futures ]
-      ++ optionals ( isPy26 ) [ argparse ]
-      ++ optionals ( !isPy3k && !isPyPy ) [ websocket_client ]
-      ++ optionals ( !isPyPy ) [ numpy pandas greenlet ];
-
-    checkPhase = ''
-      ${python.interpreter} -m unittest discover -s bokeh/tests
-    '';
-
-    meta = {
-      description = "Statistical and novel interactive HTML plots for Python";
-      homepage = "http://github.com/bokeh/bokeh";
-      license = licenses.bsd3;
-    };
-  };
+  bokeh = callPackage ../development/python-modules/bokeh { };
 
   boto = buildPythonPackage rec {
     name = "boto-${version}";
@@ -2567,75 +1790,9 @@ in {
     };
   };
 
-  boto3 = buildPythonPackage rec {
-    name = "boto3-${version}";
-    version = "1.4.4";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "boto";
-      repo  = "boto3";
-      rev   = version;
-      sha256 = "1zngj38a2dmc02p3ha9crzv9k682f0zgyyfx1bgg8hwwrnggikwl";
-    };
-
-    propagatedBuildInputs = [ self.botocore self.jmespath self.s3transfer ] ++
-                            (if isPy3k then [] else [self.futures]);
-    buildInputs = [ self.docutils self.nose self.mock ];
-    checkPhase = ''
-      runHook preCheck
-      # This method is not in mock. It might have appeared in some versions.
-      sed -i 's/action.assert_called_once()/self.assertEqual(action.call_count, 1)/' \
-        tests/unit/resources/test_factory.py
-      nosetests -d tests/unit --verbose
-      runHook postCheck
-    '';
-
-    # Network access
-    doCheck = false;
-
-    meta = {
-      homepage = https://github.com/boto/boto3;
-      license = stdenv.lib.licenses.asl20;
-      description = "AWS SDK for Python";
-      longDescription = ''
-        Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for
-        Python, which allows Python developers to write software that makes use of
-        services like Amazon S3 and Amazon EC2.
-      '';
-    };
-  };
-
-  botocore = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "botocore";
-    version = "1.5.71";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "1fgg28halsy4g43wjpkbd6l0wqiwyzkd4zjrzbbyzw4dxbsf3xfm";
-    };
-
-    propagatedBuildInputs =
-      [ self.dateutil
-        self.requests
-        self.jmespath
-      ];
+  boto3 = callPackage ../development/python-modules/boto3 { };
 
-    buildInputs = with self; [ docutils mock nose ];
-
-    checkPhase = ''
-      nosetests -v
-    '';
-
-    # Network access
-    doCheck = false;
-
-    meta = {
-      homepage = https://github.com/boto/botocore;
-      license = "bsd";
-      description = "A low-level interface to a growing number of Amazon Web Services";
-    };
-  };
+  botocore = callPackage ../development/python-modules/botocore { };
 
   bottle = buildPythonPackage rec {
     version = "0.12.11";
@@ -2777,25 +1934,7 @@ in {
     };
   };
 
-  devpi-common = buildPythonPackage rec {
-    name = "devpi-common";
-    version = "3.0.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/devpi-common/devpi-common-${version}.tar.gz";
-      sha256 = "0l3a7iyk596x6pvzg7604lzzi012qszr804fqn6f517zcy1xz23j";
-    };
-
-    propagatedBuildInputs = [ self.requests self.py ];
-
-    meta = {
-      homepage = https://bitbucket.org/hpk42/devpi;
-      description = "Utilities jointly used by devpi-server and devpi-client";
-      license = licenses.mit;
-      maintainers = with maintainers; [ lewo makefu ];
-    };
-  };
-
+  devpi-common = callPackage ../development/python-modules/devpi-common { };
   # A patched version of buildout, useful for buildout based development on Nix
   zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
 
@@ -2812,14 +1951,14 @@ in {
    meta = {
       homepage = "http://www.buildout.org";
       description = "A software build and configuration system";
-      license = licenses.zpt21;
+      license = licenses.zpl21;
       maintainers = with maintainers; [ garbas ];
     };
   };
 
   bunch = buildPythonPackage (rec {
     name = "bunch-1.0.1";
-    meta.maintainers = with maintainers; [ mornfall ];
+    meta.maintainers = with maintainers; [ ];
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/b/bunch/${name}.tar.gz";
@@ -2828,59 +1967,13 @@ in {
     doCheck = false;
   });
 
+  can = callPackage ../development/python-modules/can {};
 
-  cairocffi = buildPythonPackage rec {
-    name = "cairocffi-0.7.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/cairocffi/${name}.tar.gz";
-      sha256 = "e42b4256d27bd960cbf3b91a6c55d602defcdbc2a73f7317849c80279feeb975";
-    };
-
-    LC_ALL = "en_US.UTF-8";
-
-    # checkPhase require at least one 'normal' font and one 'monospace',
-    # otherwise glyph tests fails
-    FONTCONFIG_FILE = pkgs.makeFontsConf {
-      fontDirectories = [ pkgs.freefont_ttf ];
-    };
-
-    buildInputs = with self; [ pytest pkgs.glibcLocales ];
-    propagatedBuildInputs = with self; [ pkgs.cairo cffi ];
-
-    checkPhase = ''
-      py.test $out/${python.sitePackages}
-    '';
-
-    # FIXME: make gdk_pixbuf dependency optional (as wel as xcfffi)
-    # Happens with 0.7.1 and 0.7.2
-    # OSError: dlopen() failed to load a library: gdk_pixbuf-2.0 / gdk_pixbuf-2.0-0
-
-    patches = [
-      # This patch from PR substituted upstream
-      (pkgs.fetchpatch {
-          url = "https://github.com/avnik/cairocffi/commit/2266882e263c5efc87350cf016d117b2ec6a1d59.patch";
-          sha256 = "0gb570z3ivf1b0ixsk526n3h29m8c5rhjsiyam7rr3x80dp65cdl";
-      })
-
-      ../development/python-modules/cairocffi/dlopen-paths.patch
-      ../development/python-modules/cairocffi/fix_test_scaled_font.patch
-    ];
+  canopen = callPackage ../development/python-modules/canopen {};
 
-    postPatch = ''
-      # Hardcode cairo library path
-      substituteInPlace cairocffi/__init__.py --subst-var-by cairo ${pkgs.cairo.out}
-      substituteInPlace cairocffi/__init__.py --subst-var-by glib ${pkgs.glib.out}
-      substituteInPlace cairocffi/__init__.py --subst-var-by gdk_pixbuf ${pkgs.gdk_pixbuf.out}
-    '';
-
-    meta = {
-      homepage = https://github.com/SimonSapin/cairocffi;
-      license = "bsd";
-      description = "cffi-based cairo bindings for Python";
-    };
-  };
+  canmatrix = callPackage ../development/python-modules/canmatrix {};
 
+  cairocffi = callPackage ../development/python-modules/cairocffi {};
 
   cairosvg = buildPythonPackage rec {
     version = "1.0.18";
@@ -2919,31 +2012,11 @@ in {
     doCheck = false; # depends on the network
 
     meta = {
-      homepage = http://pypi.python.org/pypi/carrot;
+      homepage = https://pypi.python.org/pypi/carrot;
       description = "AMQP Messaging Framework for Python";
     };
   };
 
-  github-cli = buildPythonPackage rec {
-    version = "1.0.0";
-    name = "github-cli-${version}";
-    src = pkgs.fetchFromGitHub {
-      owner = "jsmits";
-      repo = "github-cli";
-      rev = version;
-      sha256 = "16bwn42wqd76zs97v8p6mqk79p5i2mb06ljk67lf8gy6kvqc1x8y";
-    };
-
-    buildInputs = with self; [ nose pkgs.git ];
-    propagatedBuildInputs = with self; [ simplejson ];
-
-    # skipping test_issues_cli.py since it requires access to the github.com
-    patchPhase = "rm tests/test_issues_cli.py";
-    checkPhase = "nosetests tests/";
-
-    meta.maintainers = with maintainers; [ garbas ];
-  };
-
   case = buildPythonPackage rec {
     name = "case-${version}";
     version = "1.5.2";
@@ -2994,6 +2067,8 @@ in {
     };
   };
 
+  cccolutils = callPackage ../development/python-modules/cccolutils/default.nix {};
+
   CDDB = buildPythonPackage rec {
     name = "CDDB-1.4";
 
@@ -3011,25 +2086,36 @@ in {
     };
   };
 
-  celery = buildPythonPackage rec {
-    name = "celery-${version}";
-    version = "4.0.2";
+  cntk = buildPythonPackage rec {
+    inherit (pkgs.cntk) name version src meta;
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/celery/${name}.tar.gz";
-      sha256 = "0kgmbs3fl9879n48p4m79nxy9by2yhvxq1jdvlnqzzvkdb2sdmg3";
-    };
+    buildInputs = [ pkgs.cntk pkgs.swig pkgs.openmpi ];
+    propagatedBuildInputs = with self; [ numpy scipy enum34 protobuf pip ];
 
-    buildInputs = with self; [ pytest case ];
-    propagatedBuildInputs = with self; [ kombu billiard pytz anyjson amqp eventlet ];
+    CNTK_LIB_PATH = "${pkgs.cntk}/lib";
+    CNTK_COMPONENT_VERSION = pkgs.cntk.version;
 
-    meta = {
-      homepage = https://github.com/celery/celery/;
-      description = "Distributed task queue";
-      license = licenses.bsd3;
-    };
+    postPatch = ''
+      cd bindings/python
+      sed -i 's,"libmpi.so.12","${pkgs.openmpi}/lib/libmpi.so",g' cntk/train/distributed.py
+    '';
+
+    postInstall = ''
+      rm -rf $out/${python.sitePackages}/cntk/libs
+      ln -s ${pkgs.cntk}/lib $out/${python.sitePackages}/cntk/libs
+      # It's not installed for some reason.
+      cp cntk/cntk_py.py $out/${python.sitePackages}/cntk
+    '';
+
+    # Actual tests are broken.
+    checkPhase = ''
+      cd $NIX_BUILD_TOP
+      ${python.interpreter} -c "import cntk"
+    '';
   };
 
+  celery = callPackage ../development/python-modules/celery { pytest = self.pytest_32; };
+
   cerberus = buildPythonPackage rec {
     name = "Cerberus-${version}";
     version = "0.9.2";
@@ -3050,73 +2136,9 @@ in {
 
   characteristic = callPackage ../development/python-modules/characteristic { };
 
-  # This package is no longer actively maintained and can be removed if it becomes broken.
-  cgkit = buildPythonPackage rec {
-    version = "2.0.0";
-    name = "cgkit-${version}";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://sourceforge/project/cgkit/cgkit/cgkit-${version}/cgkit-${version}-py2k.tar.gz";
-      sha256 = "0vvllc42mdyma3c7yqhahs4bfxymm2kvmc4va7dxqr5x0rzh6rd6";
-    };
-
-    patches = [ ../development/python-modules/cgkit/scons-env.patch ];
-
-    buildInputs = with pkgs; [ scons boost mesa ];
-
-    preBuild = ''
-      cd supportlib
-      scons
-      cd -
-    '';
-
-    meta = {
-      homepage = http://cgkit.sourceforge.net;
-      description = "Python Computer Graphics Kit";
-      maintainers = with maintainers; [ expipiplus1 ];
-    };
-  };
-
-  cheetah = buildPythonPackage rec {
-    version = "2.4.4";
-    name = "cheetah-${version}";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/C/Cheetah/Cheetah-${version}.tar.gz";
-      sha256 = "be308229f0c1e5e5af4f27d7ee06d90bb19e6af3059794e5fd536a6f29a9b550";
-    };
-
-    propagatedBuildInputs = with self; [ self.markdown ];
-
-    meta = {
-      homepage = http://www.cheetahtemplate.org/;
-      description = "A template engine and code generation tool";
-    };
-  };
-
-
-  cherrypy = buildPythonPackage (rec {
-    name = "cherrypy-${version}";
-    version = "8.7.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/C/CherryPy/CherryPy-${version}.tar.gz";
-      sha256 = "cbf418bf46458a67eb841944f2d414c23bf59d090baf2a28704bd67243e6a79f";
-    };
-
-    # wsgiserver.ssl_pyopenssl is broken on py3k.
-    doCheck = !isPy3k;
-    buildInputs = with self; [ pytest setuptools_scm pytestrunner ];
-    propagatedBuildInputs = with self; [ six ];
-
-    meta = {
-      homepage = "http://www.cherrypy.org";
-      description = "A pythonic, object-oriented HTTP framework";
-    };
-  });
+  cheetah = callPackage ../development/python-modules/cheetah { };
 
+  cherrypy = callPackage ../development/python-modules/cherrypy {};
 
   cjson = buildPythonPackage rec {
     name = "python-cjson-${version}";
@@ -3136,6 +2158,8 @@ in {
     };
   };
 
+  cld2-cffi = callPackage ../development/python-modules/cld2-cffi {};
+
   clf = buildPythonPackage rec {
     name = "clf-${version}";
     version = "0.5.2";
@@ -3177,8 +2201,8 @@ in {
       py.test tests
     '';
 
-    # Python 3.5 str/bytes-like errors with reading files
-    doCheck = !isPy3k;
+    # https://github.com/pallets/click/issues/823
+    doCheck = false;
 
     meta = {
       homepage = http://click.pocoo.org/;
@@ -3188,7 +2212,6 @@ in {
         composable way, with as little code as necessary.
       '';
       license = licenses.bsd3;
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
@@ -3213,12 +2236,12 @@ in {
   };
 
   click-log = buildPythonPackage rec {
-    version = "0.1.3";
+    version = "0.2.1";
     name = "click-log-${version}";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/c/click-log/${name}.tar.gz";
-      sha256 = "0kdd1vminxpcfczxl2kkf285n0dr1gxh2cdbx1p6vkj7b7bci3gx";
+      sha256 = "1r1x85023cslb2pwldd089jjk573mk3w78cnashs77wrx7yz8fj9";
     };
 
     propagatedBuildInputs = with self; [ click ];
@@ -3231,67 +2254,11 @@ in {
     };
   };
 
-  click-threading = buildPythonPackage rec {
-    version = "0.4.2";
-    name = "click-threading-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/click-threading/${name}.tar.gz";
-      sha256 = "400b0bb63d9096b6bf2806efaf742a1cc8b6c88e0484f0afe7d7a7f0e9870609";
-    };
-
-    checkInputs = with self; [ pytest_29 ];
-    propagatedBuildInputs = with self; [ click ] ++ optional (!isPy3k) futures;
-
-    checkPhase = ''
-      py.test
-    '';
-
-    # Tests are broken on 3.x
-    doCheck = !isPy3k;
-
-    meta = {
-      homepage = https://github.com/click-contrib/click-threading/;
-      description = "Multithreaded Click apps made easy";
-      license = licenses.mit;
-      maintainers = with maintainers; [ ];
-    };
-  };
-
-  clepy = buildPythonPackage rec {
-    name = "clepy-0.3.20";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/clepy/${name}.tar.gz";
-      sha256 = "16vibfxms5z4ld8gbkra6dkhqm2cc3jnn0fwp7mw70nlwxnmm51c";
-    };
-
-    buildInputs = with self; [ self.mock self.nose self.decorator ];
-
-    meta = {
-      homepage = http://code.google.com/p/clepy/;
-      description = "Utilities created by the Cleveland Python users group";
-    };
-  };
-
+  click-plugins = callPackage ../development/python-modules/click-plugins {};
 
-  clientform = buildPythonPackage (rec {
-    name = "clientform-0.2.10";
-    disabled = isPy3k;
+  click-threading = callPackage ../development/python-modules/click-threading {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/C/ClientForm/ClientForm-0.2.10.tar.gz";
-      sha256 = "0dydh3i1sx7rrj6d0gj375wkjpiivm7jjlsimw6hmwv4ck7yf1wm";
-    };
-
-    meta = {
-      homepage = http://wwwsearch.sourceforge.net/ClientForm/;
-
-      license = "bsd";
-
-      description = "Python module for handling HTML forms on the client side";
-    };
-  });
+  cligj = callPackage ../development/python-modules/cligj { };
 
   /* There is a project called "closure-linter" on PyPI that is the
      same as this, but it does not appear to be owned by Google.
@@ -3358,7 +2325,7 @@ in {
     propagatedBuildInputs = with self; [ pyyaml ];
     meta = {
       description = "Utilities for consistent command line tools";
-      homepage = http://github.com/rca/cmdline;
+      homepage = https://github.com/rca/cmdline;
       license = licenses.asl20;
     };
   };
@@ -3388,36 +2355,17 @@ in {
 
   colorama = callPackage ../development/python-modules/colorama { };
 
-  CommonMark = buildPythonPackage rec {
-    name = "CommonMark-${version}";
-    version = "0.6.3";
+  colorlover = callPackage ../development/python-modules/colorlover { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/C/CommonMark/${name}.tar.gz";
-      sha256 = "ee5a88f23678794592efe3fc11033f17fc77b3296a85f5e1d5b715f8e110a773";
-    };
+  CommonMark = callPackage ../development/python-modules/commonmark { };
 
-    LC_ALL="en_US.UTF-8";
-
-    doCheck = false;
-
-    buildInputs = with self; [ flake8 pkgs.glibcLocales ];
-    propagatedBuildInputs = with self; [ future ];
-
-    meta = {
-      description = "Python parser for the CommonMark Markdown spec";
-      homepage = https://github.com/rolandshoemaker/CommonMark-py;
-      license = licenses.bsd3;
-    };
-  };
-
-  CommonMark_54 = self.CommonMark.override rec {
-    name = "CommonMark-0.5.4";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/C/CommonMark/${name}.tar.gz";
+  CommonMark_54 = self.CommonMark.overridePythonAttrs (oldAttrs: rec {
+    version = "0.5.4";
+    src = oldAttrs.src.override {
+      inherit version;
       sha256 = "34d73ec8085923c023930dfc0bcd1c4286e28a2a82de094bb72fabcc0281cbe5";
     };
-  };
+  });
 
 
   coilmq = buildPythonPackage (rec {
@@ -3444,21 +2392,7 @@ in {
   });
 
 
-  colander = buildPythonPackage rec {
-    name = "colander-1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/colander/${name}.tar.gz";
-      sha256 = "7389413266b9e680c9529c16d56284edf87e0d5de557948e75f41d65683c23b3";
-    };
-
-    propagatedBuildInputs = with self; [ self.translationstring self.iso8601 ];
-
-    meta = {
-      maintainers = with maintainers; [ garbas domenkozar ];
-      platforms = platforms.all;
-    };
-  };
+  colander = callPackage ../development/python-modules/colander { };
 
   # Backported version of the ConfigParser library of Python 3.3
   configparser = if isPy3k then null else buildPythonPackage rec {
@@ -3499,6 +2433,13 @@ in {
       sha256 = "11wcni2xmfmy001rj62q2pwf305vvngkrfm5c4zlwvgbvlsrvnnw";
     };
 
+    patches = [
+      (pkgs.fetchpatch {
+          url = "https://github.com/stefanofontanelli/ColanderAlchemy/commit/b45fe35f2936a5ccb705e9344075191e550af6c9.patch";
+          sha256 = "1kf278wjq49zd6fhpp55vdcawzdd107767shzfck522sv8gr6qvx";
+      })
+    ];
+
     buildInputs = with self; [ unittest2 ];
     propagatedBuildInputs = with self; [ colander sqlalchemy ];
 
@@ -3509,6 +2450,7 @@ in {
     };
   };
 
+  conda = callPackage ../development/python-modules/conda { };
 
   configobj = buildPythonPackage (rec {
     name = "configobj-5.0.6";
@@ -3525,66 +2467,18 @@ in {
 
     meta = {
       description = "Config file reading, writing and validation";
-      homepage = http://pypi.python.org/pypi/configobj;
+      homepage = https://pypi.python.org/pypi/configobj;
       license = licenses.bsd3;
       maintainers = with maintainers; [ garbas ];
     };
   });
 
 
-  configshell_fb = buildPythonPackage rec {
-    version = "1.1.fb10";
-    name = "configshell-fb-${version}";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/agrover/configshell-fb/archive/v${version}.tar.gz";
-      sha256 = "1dd87xvm98nk3jzybb041gjdahi2z9b53pwqhyxcfj4a91y82ndy";
-    };
-
-    propagatedBuildInputs = with self; [
-      pyparsing
-      urwid
-    ];
-
-    # Fails on python 3 due to a None value where a string is expected
-    doCheck = !isPy3k;
-
-    meta = {
-      description = "A Python library for building configuration shells";
-      homepage = "https://github.com/agrover/configshell-fb";
-      platforms = platforms.linux;
-    };
-  };
-
   confluent-kafka = callPackage ../development/python-modules/confluent-kafka {};
 
+  kafka-python = callPackage ../development/python-modules/kafka-python {};
 
-  construct = buildPythonPackage rec {
-    name = "construct-${version}";
-    version = "2.8.10";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "construct";
-      repo = "construct";
-      rev = "v${version}";
-      sha256 = "1xfmmc5pihn3ql9f7blrciy06y2bwczqvkbcpvh96dmgqwc3wys3";
-    };
-
-    propagatedBuildInputs = with self; [ six ];
-
-    # Tests fail with the following error on Python 3.5+
-    # TypeError: not all arguments converted during string formatting
-    doCheck = pythonOlder "3.5";
-
-    meta = {
-      description = "Powerful declarative parser (and builder) for binary data";
-      homepage = http://construct.readthedocs.org/;
-      license = licenses.mit;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
-
+  construct = callPackage ../development/python-modules/construct {};
 
   consul = buildPythonPackage (rec {
     name = "python-consul-0.7.0";
@@ -3600,7 +2494,7 @@ in {
     doCheck = false;
 
     meta = {
-      description = "Python client for Consul (http://www.consul.io/)";
+      description = "Python client for Consul (https://www.consul.io/)";
       homepage = https://github.com/cablehead/python-consul;
       license = licenses.mit;
       maintainers = with maintainers; [ desiderius ];
@@ -3618,15 +2512,7 @@ in {
   };
 
 
-  contextlib2 = buildPythonPackage rec {
-    name = "contextlib2-${version}";
-    version = "0.5.3";
-
-    src = pkgs.fetchurl rec {
-      url = "mirror://pypi/c/contextlib2/${name}.tar.gz";
-      sha256 = "01k2921labkbn28kw60jmqzvr4nxzfnx4vcsyjb3rir177qh1r9h";
-    };
-  };
+  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
 
   cookiecutter = buildPythonPackage rec {
     version = "1.4.0";
@@ -3671,24 +2557,7 @@ in {
 
   coveralls = callPackage ../development/python-modules/coveralls { };
 
-  coverage = buildPythonPackage rec {
-    name = "coverage-4.0.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/coverage/${name}.tar.gz";
-      sha256 = "0nrd817pzjw1haaz6gambgwf4jdjnh9kyxkgj6l8qgl6hdxga45w";
-    };
-
-    # TypeError: __call__() takes 1 positional argument but 2 were given
-    doCheck = !isPy3k;
-    buildInputs = with self; [ mock ];
-
-    meta = {
-      description = "Code coverage measurement for python";
-      homepage = http://nedbatchelder.com/code/coverage/;
-      license = licenses.bsd3;
-    };
-  };
+  coverage = callPackage ../development/python-modules/coverage { };
 
   covCore = buildPythonPackage rec {
     name = "cov-core-1.15.0";
@@ -3715,100 +2584,11 @@ in {
     };
   };
 
-  credstash = buildPythonPackage rec {
-    pname    = "credstash";
-    version = "1.13.2";
-    name = "${pname}-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
-      sha256 = "b6283e565e3e441e8f74efcca54ece9697db16ce2e930fb5b6f7c0ab929c377e";
-    };
-
-    propagatedBuildInputs = with self; [ cryptography boto3 pyyaml docutils ];
-
-    # No tests in archive
-    doCheck = false;
-
-    meta = {
-      description = "A utility for managing secrets in the cloud using AWS KMS and DynamoDB";
-      homepage = https://github.com/LuminalOSS/credstash;
-      license = licenses.asl20;
-    };
-  };
-
-  cython = buildPythonPackage rec {
-    name = "Cython-${version}";
-    version = "0.25.2";
+  credstash = callPackage ../development/python-modules/credstash { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/C/Cython/${name}.tar.gz";
-      sha256 = "01h3lrf6d98j07iakifi81qjszh6faa37ibx7ylva1vsqbwx2hgi";
-    };
-
-    # With Python 2.x on i686-linux or 32-bit ARM this test fails because the
-    # result is "3L" instead of "3", so let's fix it in-place.
-    #
-    # Upstream issue: https://github.com/cython/cython/issues/1548
-    postPatch = optionalString ((stdenv.isi686 || stdenv.isArm) && !isPy3k) ''
-      sed -i -e 's/\(>>> *\)\(verify_resolution_GH1533()\)/\1int(\2)/' \
-        tests/run/cpdef_enums.pyx
-    '';
-
-    buildInputs = with self; [ pkgs.glibcLocales pkgs.pkgconfig pkgs.gdb ];
-    # For testing
-    nativeBuildInputs = with self; [ numpy pkgs.ncurses ];
+  cython = callPackage ../development/python-modules/Cython { };
 
-    LC_ALL = "en_US.UTF-8";
-
-    # cython's testsuite is not working very well with libc++
-    # We are however optimistic about things outside of testsuite still working
-    checkPhase = ''
-      export HOME="$NIX_BUILD_TOP"
-      ${python.interpreter} runtests.py \
-        ${if stdenv.cc.isClang or false then ''--exclude="(cpdef_extern_func|libcpp_algo)"'' else ""}
-    '';
-
-    # Disable tests temporarily
-    # https://github.com/cython/cython/issues/1676
-    doCheck = false;
-
-    meta = {
-      description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
-      platforms = platforms.all;
-      homepage = http://cython.org;
-      license = licenses.asl20;
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
-
-  cytoolz = buildPythonPackage rec {
-    name = "cytoolz-${version}";
-    version = "0.8.2";
-
-    src = pkgs.fetchurl{
-      url = "mirror://pypi/c/cytoolz/cytoolz-${version}.tar.gz";
-      sha256 = "476a2ad176de5eaef80499b7b43d4f72ba6d23df33d349088dae315e9b31c552";
-    };
-
-    # Extension types
-    disabled = isPyPy;
-
-    buildInputs = with self; [ nose ];
-    propagatedBuildInputs = with self; [ toolz ];
-
-    # Disable failing test https://github.com/pytoolz/cytoolz/issues/97
-    checkPhase = ''
-      NOSE_EXCLUDE=test_curried_exceptions nosetests -v $out/${python.sitePackages}
-    '';
-
-    meta = {
-      homepage = "http://github.com/pytoolz/cytoolz/";
-      description = "Cython implementation of Toolz: High performance functional utilities";
-      license = "licenses.bsd3";
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
+  cytoolz = callPackage ../development/python-modules/cytoolz { };
 
   cryptacular = buildPythonPackage rec {
     name = "cryptacular-1.4.1";
@@ -3829,201 +2609,25 @@ in {
     };
   };
 
-  cryptography = buildPythonPackage rec {
-    # also bump cryptography_vectors
-    pname = "cryptography";
-    name = "${pname}${version}";
-    version = "1.8.1";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "323524312bb467565ebca7e50c8ae5e9674e544951d28a2904a50012a8828190";
-    };
-
-    buildInputs = [ pkgs.openssl self.cryptography_vectors ]
-               ++ optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.Security;
-    propagatedBuildInputs = with self; [
-      idna
-      asn1crypto
-      packaging
-      six
-    ] ++ optional (pythonOlder "3.4") enum34
-    ++ optional (pythonOlder "3.3") ipaddress
-    ++ optional (!isPyPy) cffi;
-
-    checkInputs = with self; [
-      pytest
-      pretend
-      iso8601
-      pytz
-      hypothesis
-    ];
-
-    # The test assumes that if we're on Sierra or higher, that we use `getentropy`, but for binary
-    # compatibility with pre-Sierra for binary caches, we hide that symbol so the library doesn't
-    # use it. This boils down to them checking compatibility with `getentropy` in two different places,
-    # so let's neuter the second test.
-    postPatch = ''
-      substituteInPlace ./tests/hazmat/backends/test_openssl.py --replace '"16.0"' '"99.0"'
-    '';
-
-    # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
-    # can do until nix 1.11's release
-    __impureHostDeps = [ "/usr/lib" ];
-  };
-
-  cryptography_vectors = buildPythonPackage rec {
-      # also bump cryptography
-    pname = "cryptography_vectors";
-    name = "${pname}${version}";
-    version = "1.8.1";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "2fd61facea08800ca98ac923f6d02f48a7ae6648025b29cdeb51987c1532add6";
-    };
-
-    # No tests included
-    doCheck = false;
-  };
-
-  oslo-vmware = buildPythonPackage rec {
-    name = "oslo.vmware-${version}";
-    version = "1.22.0";
+  cryptography = callPackage ../development/python-modules/cryptography { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.vmware/${name}.tar.gz";
-      sha256 = "1119q3x2y3hjz3p784byr13aqay75pbj4cb8v43gjq5piqlpp16x";
-    };
+  cryptography_vectors = callPackage ../development/python-modules/cryptography_vectors { };
 
-    propagatedBuildInputs = with self; [
-      pbr stevedore netaddr iso8601 six oslo-i18n oslo-utils Babel pyyaml eventlet
-      requests urllib3 oslo-concurrency suds-jurko
-    ];
-    buildInputs = with self; [
-      bandit oslosphinx coverage testtools testscenarios testrepository mock
+  curtsies = callPackage ../development/python-modules/curtsies { };
 
-    ];
-  };
+  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
 
-  barbicanclient = buildPythonPackage rec {
-    name = "barbicanclient-${version}";
-    version = "3.3.0";
+  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-barbicanclient/python-barbicanclient-${version}.tar.gz";
-      sha256 = "1kxnxiijvkkc8ahlfbkslpzxcbah7y5pi86hvkyac62xzda87inm";
-    };
+  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
 
-    propagatedBuildInputs = with self; [
-      pbr argparse requests six keystoneclient cliff oslo-i18n oslo-serialization
-      oslo-utils
-    ];
-    buildInputs = with self; [
-      oslosphinx oslotest requests-mock
-    ];
+  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
 
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
+  pyunifi = callPackage ../development/python-modules/pyunifi { };
 
+  tablib = callPackage ../development/python-modules/tablib { };
 
-  ironicclient = buildPythonPackage rec {
-    name = "ironicclient-${version}";
-    version = "0.9.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-ironicclient/python-ironicclient-${version}.tar.gz";
-      sha256 = "16kaixrmnx6a32mfv281w22h8lavjh0k9yiqikmwc986ydh85s4d";
-    };
-
-    propagatedBuildInputs = with self; [
-      six keystoneclient prettytable oslo-utils oslo-i18n lxml httplib2 cliff
-      dogpile_cache appdirs anyjson pbr openstackclient
-    ];
-    buildInputs = with self; [
-      httpretty
-    ];
-
-    meta = with stdenv.lib; {
-      description = "Python bindings for the Ironic API";
-      homepage = "http://www.openstack.org/";
-    };
-  };
-
-  novaclient = buildPythonPackage rec {
-    name = "novaclient-${version}";
-    version = "2.31.0";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/openstack/python-novaclient/archive/${version}.tar.gz";
-      sha256 = "0cd49yz9qhpv1srg6wwjnivyb3i8zjxda0h439158qv9w6bfqhdf";
-    };
-
-    PBR_VERSION = "${version}";
-
-    buildInputs = with self; [
-      pbr testtools testscenarios testrepository requests-mock fixtures ];
-    propagatedBuildInputs = with self; [
-      Babel argparse prettytable requests simplejson six iso8601
-      keystoneclient tempest-lib ];
-
-    # TODO: check if removing this test is really harmless
-    preCheck = ''
-      substituteInPlace novaclient/tests/unit/v2/test_servers.py --replace "test_get_password" "noop"
-    '';
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    meta = {
-      homepage = https://github.com/openstack/python-novaclient/;
-      description = "Client library and command line tool for the OpenStack Nova API";
-      license = stdenv.lib.licenses.asl20;
-      platforms = stdenv.lib.platforms.linux;
-    };
-  };
-
-  tablib = buildPythonPackage rec {
-    name = "tablib-${version}";
-    version = "0.10.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tablib/tablib-${version}.tar.gz";
-      sha256 = "14wc8bmz60g35r6gsyhdzfvgfqpd3gw9lfkq49z5bxciykbxmhj1";
-    };
-
-    buildInputs = with self; [ pytest ];
-
-    meta = with stdenv.lib; {
-      description = "Tablib: format-agnostic tabular dataset library";
-      homepage = "http://python-tablib.org";
-    };
-  };
-
-
-  cliff-tablib = buildPythonPackage rec {
-    name = "cliff-tablib-${version}";
-    version = "1.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/cliff-tablib/cliff-tablib-${version}.tar.gz";
-      sha256 = "0fa1qw41lwda5ac3z822qhzbilp51y6p1wlp0h76vrvqcqgxi3ja";
-    };
-
-    propagatedBuildInputs = with self; [
-      argparse pyyaml pbr six cmd2 tablib unicodecsv prettytable stevedore pyparsing cliff
-    ];
-    buildInputs = with self; [
-
-    ];
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/dreamhost/cliff-tablib";
-    };
-  };
+  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
 
   openant = buildPythonPackage rec {
     name = "openant-unstable-2017-02-11";
@@ -4056,60 +2660,20 @@ in {
     propagatedBuildInputs = with self; [ pyusb ];
   };
 
-  opencv = pkgs.opencv.override {
+  opencv = toPythonModule (pkgs.opencv.override {
     enablePython = true;
     pythonPackages = self;
-  };
+  });
 
-  opencv3 = pkgs.opencv3.override {
+  opencv3 = toPythonModule (pkgs.opencv3.override {
     enablePython = true;
     pythonPackages = self;
-  };
-
-  openstackclient = buildPythonPackage rec {
-    name = "openstackclient-${version}";
-    version = "1.7.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-openstackclient/python-openstackclient-${version}.tar.gz";
-      sha256 = "0h1jkrwx06l32k50zq5gs9iba132q2x2jjb3z5gkxxlcd3apk8y9";
-    };
-
-    propagatedBuildInputs = with self; [
-     pbr six Babel cliff os-client-config oslo-config oslo-i18n oslo-utils
-     glanceclient keystoneclient novaclient cinderclient neutronclient requests
-     stevedore cliff-tablib
-    ];
-    buildInputs = with self; [
-     requests-mock
-    ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = "http://wiki.openstack.org/OpenStackClient";
-    };
-  };
+  });
 
+  openidc-client = callPackage ../development/python-modules/openidc-client/default.nix {};
 
 
-  idna = buildPythonPackage rec {
-    pname = "idna";
-    version = "2.5";
-    name = "${pname}-${version}";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "3cb5ce08046c4e3a560fc02f138d0ac63e00f8ce5901a56b32ec8b7994082aab";
-    };
-
-    meta = {
-      homepage = "http://github.com/kjd/idna/";
-      description = "Internationalized Domain Names in Applications (IDNA)";
-      license = "licenses.bsd3";
-    };
-  };
+  idna = callPackage ../development/python-modules/idna { };
 
   mahotas = buildPythonPackage rec {
     name = "python-mahotas-${version}";
@@ -4141,27 +2705,7 @@ in {
     };
   };
 
-  MDP = buildPythonPackage rec {
-    version = "3.5";
-    name = "MDP-${version}";
-
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/source/M/MDP/${name}.tar.gz";
-      sha256 = "0aw1zxmyvx6gfmmnixbqmdaah28jl7rmqkzhxv53091asc23iw9k";
-    };
-
-    buildInputs = with self; [ pytest_29 ];
-    propagatedBuildInputs = with self; [ future numpy ];
-
-    doCheck = true;
-
-    meta = {
-      description = "Library for building complex data processing software by combining widely used machine learning algorithms";
-      homepage = http://mdp-toolkit.sourceforge.net;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ nico202 ];
-    };
-  };
+  MDP = callPackage ../development/python-modules/mdp {};
 
   minidb = buildPythonPackage rec {
     name = "minidb-2.0.1";
@@ -4179,6 +2723,8 @@ in {
     };
   };
 
+  miniupnpc = callPackage ../development/python-modules/miniupnpc {};
+
   mixpanel = buildPythonPackage rec {
     version = "4.0.2";
     name = "mixpanel-${version}";
@@ -4201,6 +2747,29 @@ in {
     };
   };
 
+  mpyq = callPackage ../development/python-modules/mpyq { };
+
+  mxnet = buildPythonPackage rec {
+    inherit (pkgs.mxnet) name version src meta;
+
+    buildInputs = [ pkgs.mxnet ];
+    propagatedBuildInputs = with self; [ requests numpy graphviz ];
+
+    LD_LIBRARY_PATH = makeLibraryPath [ pkgs.mxnet ];
+
+    doCheck = !isPy3k;
+
+    preConfigure = ''
+      cd python
+    '';
+
+    postInstall = ''
+      rm -rf $out/mxnet
+      ln -s ${pkgs.mxnet}/lib/libmxnet.so $out/${python.sitePackages}/mxnet
+    '';
+  };
+
+  portpicker = callPackage ../development/python-modules/portpicker { };
 
   pkginfo = buildPythonPackage rec {
     version = "1.3.2";
@@ -4267,7 +2836,7 @@ in {
 
     meta = {
       description = "What is detox?";
-      homepage = http://bitbucket.org/hpk42/detox;
+      homepage = https://bitbucket.org/hpk42/detox;
     };
   };
 
@@ -4288,32 +2857,11 @@ in {
     };
   };
 
-  bcrypt = callPackage ../development/python-modules/bcrypt.nix { };
+  bcrypt = callPackage ../development/python-modules/bcrypt { };
 
   cffi = callPackage ../development/python-modules/cffi { };
 
-  pycollada = buildPythonPackage rec {
-    name = "pycollada-0.4.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pycollada/${name}.tar.gz";
-      sha256 = "0i50lh98550pwr95zgzrgiqzsspm09wl52xlv83y5nrsz4mblylv";
-    };
-
-    buildInputs = with self; [ numpy ] ++ (if isPy3k then [dateutil] else [dateutil_1_5]);
-
-    # Some tests fail because they refer to test data files that don't exist
-    # (upstream packaging issue)
-    doCheck = false;
-
-    meta = {
-      description = "Python library for reading and writing collada documents";
-      homepage = http://pycollada.github.io/;
-      license = "BSD"; # they don't specify which BSD variant
-      platforms = with platforms; linux ++ darwin;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
+  pycollada = callPackage ../development/python-modules/pycollada { };
 
   pycontracts = buildPythonPackage rec {
     version = "1.7.9";
@@ -4356,49 +2904,9 @@ in {
     };
   };
 
-  pydub = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "pydub";
-    version = "0.16.7";
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/05/e0/8d2496c8ef1d7f2c8ff625be3849f550da42809b862879a8fb137c6baa11/${name}.tar.gz";
-      sha256 = "10rmbvsld5fni9wsvb7la8lblrglsnzd2l1159rcxqf6b8k441dx";
-    };
+  pydub = callPackage ../development/python-modules/pydub {};
 
-    meta = {
-      description = "Manipulate audio with a simple and easy high level interface.";
-      homepage    = "http://pydub.com/";
-      license     = licenses.mit;
-      platforms   = platforms.all;
-    };
-  };
-
-  pyjade = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "pyjade";
-    version = "4.0.0";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/${pname}/${name}.tar.gz";
-      sha256 = "1mycn5cc9cp4fb0i2vzgkkk6d0glnkbilggwb4i99i09vr0vg5cd";
-    };
-    buildInputs = with self; [ pyramid_mako nose django jinja2 tornado pyramid Mako ];
-    propagatedBuildInputs = with self; [ six ];
-    patchPhase = ''
-      sed -i 's/1.4.99/1.99/' setup.py
-    '';
-    checkPhase = ''
-      nosetests pyjade
-    '';
-    # No tests distributed. https://github.com/syrusakbary/pyjade/issues/262
-    doCheck = false;
-    meta = {
-      description = "Jade syntax template adapter for Django, Jinja2, Mako and Tornado templates";
-      homepage    = "http://github.com/syrusakbary/pyjade";
-      license     = licenses.mit;
-      maintainers = with maintainers; [ nand0p ];
-      platforms   = platforms.all;
-    };
-  };
+  pyjade = callPackage ../development/python-modules/pyjade {};
 
   PyLD = callPackage ../development/python-modules/PyLD { };
 
@@ -4439,15 +2947,9 @@ in {
     };
   };
 
-  pytest = self.pytest_30;
-
-  pytest_27 = callPackage ../development/python-modules/pytest/2_7.nix {};
+  pytest = self.pytest_34;
 
-  pytest_28 = callPackage ../development/python-modules/pytest/2_8.nix {};
-
-  pytest_29 = callPackage ../development/python-modules/pytest/2_9.nix {};
-
-  pytest_30 = callPackage ../development/python-modules/pytest{
+  pytest_34 = callPackage ../development/python-modules/pytest/default.nix{
     hypothesis = self.hypothesis.override {
       # hypothesis requires pytest that causes dependency cycle
       doCheck = false;
@@ -4455,10 +2957,21 @@ in {
     };
   };
 
+  # Needed for celery
+  pytest_32 = self.pytest_34.overrideAttrs( oldAttrs: rec {
+    version = "3.2.5";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "6d5bd4f7113b444c55a3bbb5c738a3dd80d43563d063fc42dcb0aaefbdd78b81";
+    };
+  });
+
   pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
 
   pytest-asyncio = callPackage ../development/python-modules/pytest-asyncio { };
 
+  pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
+
   pytestcache = buildPythonPackage rec {
     name = "pytest-cache-1.0";
     src = pkgs.fetchurl {
@@ -4494,6 +3007,9 @@ in {
 
     checkPhase = "make test";
 
+    # Requires pytest < 3.1
+    doCheck = false;
+
     meta = {
       license = licenses.mit;
       homepage = https://pypi.python.org/pypi/pytest-catchlog/;
@@ -4533,30 +3049,9 @@ in {
     };
   };
 
-  pytest-rerunfailures = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "pytest-rerunfailures";
-    version = "2.0.1";
+  pytest-forked = callPackage ../development/python-modules/pytest-forked { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/${pname}/${name}.tar.gz";
-      sha256 = "1zzxlswbny8dp3c1sbhpyms1xkknxb6qfji3y3azc7gc95324xsv";
-    };
-
-    buildInputs = with self; [ pytest ];
-
-    checkPhase = ''
-      py.test
-    '';
-
-    meta = {
-      description = "pytest plugin to re-run tests to eliminate flaky failures.";
-      homepage = https://github.com/pytest-dev/pytest-rerunfailures;
-      license = licenses.mpl20;
-      maintainers = with maintainers; [ jgeerds ];
-      platforms = platforms.all;
-    };
-  };
+  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
 
   pytest-flake8 = callPackage ../development/python-modules/pytest-flake8 { };
 
@@ -4583,27 +3078,11 @@ in {
     };
   };
 
-  pytest-mock = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "pytest-mock";
-    version = "1.6.0";
+  pytest-mock = callPackage ../development/python-modules/pytest-mock { };
 
-    buildInputs = with self; [ pytest setuptools_scm ];
-    propagatedBuildInputs = with self; [ mock ];
+  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
 
-    meta = {
-      description = "Thin-wrapper around the mock package for easier use with py.test.";
-      homepage    = "https://github.com/pytest-dev/pytest-mock";
-      license     = licenses.mit;
-      maintainers = with maintainers; [ nand0p ];
-      platforms   = platforms.all;
-    };
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "07qccww4bq9jxlc0fbhlspr13kcsixchsnl8vk4wdiyvsjy7r8c3";
-    };
-  };
+  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
 
   pytestpep8 = buildPythonPackage rec {
     name = "pytest-pep8";
@@ -4629,7 +3108,7 @@ in {
     };
   };
 
-  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257.nix { };
+  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
 
   pytest-raisesregexp = buildPythonPackage rec {
     name = "pytest-raisesregexp-${version}";
@@ -4655,44 +3134,9 @@ in {
     };
   };
 
-  pytestrunner = buildPythonPackage rec {
-    version = "2.6.2";
-    name = "pytest-runner-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pytest-runner/${name}.tar.gz";
-      sha256 = "e775a40ee4a3a1d45018b199c44cc20bbe7f3df2dc8882f61465bb4141c78cdb";
-    };
-
-    buildInputs = with self; [setuptools_scm pytest];
-
-    meta = {
-      description = "Invoke py.test as distutils command with dependency resolution";
-      homepage = https://bitbucket.org/pytest-dev/pytest-runner;
-      license = licenses.mit;
-    };
-
-    # Trying to run tests fails with # RuntimeError: dictionary changed size during iteration
-    doCheck = false;
-  };
-
-  pytestquickcheck = buildPythonPackage rec {
-    name = "pytest-quickcheck-0.8.2";
+  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pytest-quickcheck/pytest-quickcheck-0.8.2.tar.gz";
-      sha256 = "047w4zwdsnlzmsc5f3rapzbzd2frlvz9nnp8v4b48fjmqmxassh3";
-    };
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ pytestflakes pytestpep8 tox ];
-
-    meta = {
-      license = licenses.asl20;
-      homepage = "https://pypi.python.org/pypi/pytest-quickcheck";
-      description = "pytest plugin to generate random data inspired by QuickCheck";
-    };
-  };
+  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
 
   pytest-server-fixtures = buildPythonPackage rec {
     name = "${pname}-${version}";
@@ -4815,6 +3259,8 @@ in {
     };
   };
 
+  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
+
   tinycss = buildPythonPackage rec {
     name = "tinycss-${version}";
     version = "0.3";
@@ -4898,7 +3344,7 @@ in {
     meta = {
       description = "Darcsver, generate a version number from Darcs history";
 
-      homepage = http://pypi.python.org/pypi/darcsver;
+      homepage = https://pypi.python.org/pypi/darcsver;
 
       license = "BSD-style";
     };
@@ -4974,7 +3420,7 @@ in {
 
     buildInputs = with self; [ pytest docutils ];
     propagatedBuildInputs = with self; [
-      dask six boto3 s3fs tblib locket msgpack click cloudpickle tornado
+      dask six boto3 s3fs tblib locket msgpack-python click cloudpickle tornado
       psutil botocore zict lz4 sortedcollections sortedcontainers
     ] ++ (if !isPy3k then [ singledispatch ] else []);
 
@@ -5017,6 +3463,10 @@ in {
 
   libtmux = callPackage ../development/python-modules/libtmux { };
 
+  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+
+  linuxfd = callPackage ../development/python-modules/linuxfd { };
+
   locket = buildPythonPackage rec {
     name = "locket-${version}";
     version = "0.2.0";
@@ -5082,29 +3532,7 @@ in {
     };
   };
 
-  datashape = buildPythonPackage rec {
-    name = "datashape-${version}";
-    version = "0.5.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/D/DataShape/${name}.tar.gz";
-      sha256 = "2356ea690c3cf003c1468a243a9063144235de45b080b3652de4f3d44e57d783";
-    };
-
-    buildInputs = with self; [ pytest mock ];
-    propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ];
-
-    checkPhase = ''
-      py.test datashape/tests
-    '';
-
-    meta = {
-      homepage = https://github.com/ContinuumIO/datashape;
-      description = "A data description language";
-      license = licenses.bsd2;
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
+  datashape = callPackage ../development/python-modules/datashape { };
 
   requests-cache = buildPythonPackage (rec {
     name = "requests-cache-${version}";
@@ -5121,11 +3549,13 @@ in {
 
     meta = {
       description = "Persistent cache for requests library";
-      homepage = http://pypi.python.org/pypi/requests-cache;
+      homepage = https://pypi.python.org/pypi/requests-cache;
       license = licenses.bsd3;
     };
   });
 
+  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket {};
+
   howdoi = buildPythonPackage (rec {
     name = "howdoi-${version}";
     version = "1.1.7";
@@ -5139,39 +3569,11 @@ in {
 
     meta = {
       description = "Instant coding answers via the command line";
-      homepage = http://pypi.python.org/pypi/howdoi;
+      homepage = https://pypi.python.org/pypi/howdoi;
       license = licenses.mit;
     };
   });
 
-  nose-parameterized = buildPythonPackage (rec {
-    name = "nose-parameterized-${version}";
-    version = "0.5.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nose-parameterized/${name}.tar.gz";
-      sha256 = "a11c41b0cf8218e7cdc19ab7a1bdf5c141d161cd2350daee819473cc63cd0685";
-    };
-
-    # Tests require some python3-isms but code works without.
-    doCheck = isPy3k;
-
-    LC_ALL = "en_US.UTF-8";
-    buildInputs = with self; [ nose pkgs.glibcLocales ];
-    propagatedBuildInputs = with self; [ self.six ];
-
-    checkPhase = ''
-      nosetests -v
-    '';
-
-
-    meta = {
-      description = "Parameterized testing with any Python test framework";
-      homepage = http://pypi.python.org/pypi/nose-parameterized;
-      license = licenses.bsd3;
-    };
-  });
-
   neurotools = buildPythonPackage (rec {
     name = "NeuroTools-${version}";
     version = "0.3.1";
@@ -5219,42 +3621,19 @@ in {
 
     meta = {
       description = "Jalali datetime binding for python";
-      homepage = http://pypi.python.org/pypi/jdatetime;
+      homepage = https://pypi.python.org/pypi/jdatetime;
       license = licenses.psfl;
     };
   });
 
   daphne = callPackage ../development/python-modules/daphne { };
 
-  dateparser = buildPythonPackage rec {
-    name = "dateparser-${version}";
-    version = "0.3.2-pre-2016-01-21"; # Fix assert year 2016 == 2015
-
-    src = pkgs.fetchgit {
-      url = "https://github.com/scrapinghub/dateparser.git";
-      rev = "d20a63f1d1cee5b4bd19c9f745774cfa9f219549";
-      sha256 = "0na7b4hvf7vykrk48482gxiq5xny67rvs8ilamxcxw3y9gfgdjfd";
-    };
-
-    # Does not seem to work on Python 3 because of relative import.
-    # Upstream Travis configuration is wrong and tests only 2.7
-    disabled = isPy3k;
-
-    LC_ALL = "en_US.UTF-8";
-
-    buildInputs = with self; [ nose nose-parameterized mock pkgs.glibcLocales ];
-
-    propagatedBuildInputs = with self; [ six jdatetime pyyaml dateutil umalqurra pytz ];
-
-    meta = {
-      description = "Date parsing library designed to parse dates from HTML pages";
-      homepage = http://pypi.python.org/pypi/dateparser;
-      license = licenses.bsd3;
-      broken = true;
-    };
-  };
+  dateparser = callPackage ../development/python-modules/dateparser { };
 
-  dateutil = callPackage ../development/python-modules/dateutil { };
+  # Actual name of package
+  python-dateutil = callPackage ../development/python-modules/dateutil { };
+  # Alias that we should deprecate
+  dateutil = self.python-dateutil;
 
   # Buildbot 0.8.7p1 needs dateutil==1.5
   dateutil_1_5 = buildPythonPackage (rec {
@@ -5271,121 +3650,16 @@ in {
 
     meta = {
       description = "Powerful extensions to the standard datetime module";
-      homepage = http://pypi.python.org/pypi/python-dateutil;
+      homepage = https://pypi.python.org/pypi/python-dateutil;
       license = "BSD-style";
     };
   });
 
-  ddar = buildPythonPackage {
-    name = "ddar-1.0";
+  decorator = callPackage ../development/python-modules/decorator { };
 
-    src = pkgs.fetchurl {
-      url = "https://github.com/basak/ddar/archive/v1.0.tar.gz";
-      sha256 = "08lv7hrbhcv6hbl01sx8fgx3l8s2nn8rvcicdidafwm87bvi2nmr";
-    };
+  deform = callPackage ../development/python-modules/deform { };
 
-    preBuild = ''
-      make -f Makefile.prep synctus/ddar_pb2.py
-    '';
-
-    propagatedBuildInputs = with self; [ protobuf ];
-
-    meta = {
-      description = "Unix de-duplicating archiver";
-      license = licenses.gpl3;
-      homepage = https://github.com/basak/ddar;
-    };
-  };
-
-  decorator = buildPythonPackage rec {
-    name = "decorator-${version}";
-    version = "4.0.11";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/decorator/${name}.tar.gz";
-      sha256 = "953d6bf082b100f43229cf547f4f97f97e970f5ad645ee7601d55ff87afdfe76";
-    };
-
-    meta = {
-      homepage = http://pypi.python.org/pypi/decorator;
-      description = "Better living through Python with decorators";
-      license = licenses.mit;
-    };
-  };
-
-  deform = buildPythonPackage rec {
-    name = "deform-2.0a2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/deform/${name}.tar.gz";
-      sha256 = "3fa4d287c8da77a83556e4a5686de006ddd69da359272120b915dc8f5a70cabd";
-    };
-
-    buildInputs = with self; [] ++ optional isPy26 unittest2;
-
-    propagatedBuildInputs =
-      [ self.beautifulsoup4
-        self.peppercorn
-        self.colander
-        self.translationstring
-        self.chameleon
-        self.zope_deprecation
-        self.coverage
-        self.nose
-      ];
-
-    meta = {
-      maintainers = with maintainers; [ garbas domenkozar ];
-      platforms = platforms.all;
-    };
-  };
-
-  deform_bootstrap = buildPythonPackage rec {
-    name = "deform_bootstrap-0.2.9";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/deform_bootstrap/${name}.tar.gz";
-      sha256 = "1hgq3vqsfqdmlyahnlc40w13viawhpzqf4jzigsggdb41x545fda";
-    };
-
-    buildInputs = [ self.mock ];
-    propagatedBuildInputs = with self; [ deform pyramid ];
-
-    # demo is removed as it depends on deformdemo
-    patchPhase = ''
-      rm -rf deform_bootstrap/demo
-    '';
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-      platforms = platforms.all;
-    };
-  };
-
-
-  demjson = buildPythonPackage rec {
-    name = "demjson-1.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/demjson/${name}.tar.gz";
-      sha256 = "0abf7wqqq7rk1sycy47ayn5p93yy7gjq50cb2z69wmik1qqrr60x";
-    };
-
-    doCheck = false; # there are no tests
-
-    preFixup = ''
-      mkdir -p "$out/bin"
-      cp jsonlint "$out/bin/"
-    '';
-
-    meta = {
-      description = "Encoder/decoder and lint/validator for JSON (JavaScript Object Notation)";
-      homepage = http://deron.meranda.us/python/demjson/;
-      license = licenses.lgpl3Plus;
-      maintainers = with maintainers; [ bjornfor ];
-      platforms = platforms.all;
-    };
-  };
+  demjson = callPackage ../development/python-modules/demjson { };
 
   derpconf = self.buildPythonPackage rec {
     name = "derpconf-0.4.9";
@@ -5438,63 +3712,16 @@ in {
   };
 
 
-  dill = buildPythonPackage rec {
-    name = "dill-${version}";
-    version = "0.2.6";
+  dill = callPackage ../development/python-modules/dill { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/dill/${name}.zip";
-      sha256 = "6c1ccca68be483fa8c66e85a89ffc850206c26373aa77a97b83d8d0994e7f1fd";
-    };
+  discogs_client = callPackage ../development/python-modules/discogs_client { };
 
-    # TypeError: don't know how to make test from: {'byref': False, 'recurse': False, 'protocol': 3, 'fmode': 0}
-    doCheck = false;
+  dmenu-python = callPackage ../development/python-modules/dmenu { };
 
-    meta = {
-      description = "Serialize all of python (almost)";
-      homepage = http://www.cacr.caltech.edu/~mmckerns/dill.htm;
-      license = licenses.bsd3;
-    };
-  };
+  dnspython = callPackage ../development/python-modules/dnspython { };
+  dns = self.dnspython; # Alias for compatibility, 2017-12-10
 
-  discogs_client = buildPythonPackage rec {
-    name = "discogs-client-2.0.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/discogs-client/${name}.tar.gz";
-      sha256 = "0a3616a818dd9fa61a61c3d9731d176e9123130d1b1b97a6beee63b4c72306b7";
-    };
-
-    propagatedBuildInputs = with self; [ oauth2 requests ];
-
-    meta = {
-      description = "Official Python API client for Discogs";
-      license = licenses.bsd2;
-      homepage = "https://github.com/discogs/discogs_client";
-    };
-  };
-
-  dns = buildPythonPackage rec {
-    name = "dnspython-${version}";
-    version = "1.14.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/dnspython/${name}.zip";
-      sha256 = "1p1i46fyhxfic8mfh3gfckpn2pn7282xqabhihiqymrp4sa8ni91";
-    };
-
-    # needs networking for some tests
-    doCheck = false;
-
-    meta = {
-      description = "A DNS toolkit for Python 3.x";
-      homepage = http://www.dnspython.org;
-      # BSD-like, check http://www.dnspython.org/LICENSE for details
-      license = licenses.free;
-    };
-  };
-
-  docker = callPackage ../development/python-modules/docker.nix {};
+  docker = callPackage ../development/python-modules/docker {};
 
   dockerpty = buildPythonPackage rec {
     name = "dockerpty-0.4.1";
@@ -5620,7 +3847,7 @@ in {
     meta = {
       description = "Add flag to ignore unicode literal prefixes in doctests";
       license = with licenses; [ asl20 ];
-      homepage = http://github.com/gnublade/doctest-ignore-unicode;
+      homepage = https://github.com/gnublade/doctest-ignore-unicode;
     };
   };
 
@@ -5638,28 +3865,11 @@ in {
 
     meta = {
       description = "A 'dogpile' lock, typically used as a component of a larger caching solution";
-      homepage = http://bitbucket.org/zzzeek/dogpile.core;
+      homepage = https://bitbucket.org/zzzeek/dogpile.core;
       license = licenses.bsd3;
     };
   };
 
-  dotfiles = buildPythonPackage rec {
-    name = "dotfiles-0.6.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/dotfiles/${name}.tar.gz";
-      sha256 = "45ecfd7f2ed9d0f2a7ac632c9bd0ebdca758d8bbc2b6f11562579d525f0467b8";
-    };
-
-    doCheck = true;
-
-    meta = {
-      description = "Easily manage your dotfiles";
-      homepage = https://github.com/jbernard/dotfiles;
-      license = licenses.isc;
-    };
-  };
-
   dopy = buildPythonPackage rec {
     version = "2016-01-04";
     name = "dopy-${version}";
@@ -5682,70 +3892,21 @@ in {
     };
   };
 
-  dpkt = buildPythonPackage rec {
-    name = "dpkt-1.8";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "https://dpkt.googlecode.com/files/${name}.tar.gz";
-      sha256 = "01q5prynymaqyfsfi2296xncicdpid2hs3yyasim8iigvkwy4vf5";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "Fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols";
-      homepage = https://code.google.com/p/dpkt/;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ bjornfor ];
-      platforms = platforms.all;
-    };
-  };
-
-  urllib3 = let
-    disabled_tests = [
-      "test_headers" "test_headerdict" "test_can_validate_ip_san" "test_delayed_body_read_timeout"
-      "test_timeout_errors_cause_retries" "test_select_multiple_interrupts_with_event"
-    ];
-  in buildPythonPackage rec {
-    pname = "urllib3";
-    version = "1.20";
-    name = "${pname}-${version}";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "0bx76if7shzlyykmaj4fhjkir5bswc4fdx5r4q0lrn3q51p2pvwp";
-    };
-
-    NOSE_EXCLUDE=concatStringsSep "," disabled_tests;
-
-    checkPhase = ''
-      nosetests -v --cover-min-percentage 1
-    '';
-
-    doCheck = false;
-
-    buildInputs = with self; [ coverage tornado mock nose psutil pysocks ];
-
-    meta = {
-      description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
-      homepage = https://www.dropbox.com/developers/core/docs;
-      license = licenses.mit;
-    };
-  };
+  dpkt = callPackage ../development/python-modules/dpkt {};
 
+  urllib3 = callPackage ../development/python-modules/urllib3 {};
 
   dropbox = buildPythonPackage rec {
     name = "dropbox-${version}";
-    version = "3.37";
-    #doCheck = false; # python 2.7.9 does verify ssl certificates
+    version = "8.0.0";
+    doCheck = false; # Set DROPBOX_TOKEN environment variable to a valid token.
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/d/dropbox/${name}.tar.gz";
-      sha256 = "f65c12bd97f09e29a951bc7cb30a74e005fc4b2f8bb48778796be3f73866b173";
+      sha256 = "0bixx80zjq0286dwm4zhg8bdhc8pqlrqy4n2jg7i6m6a4gv4gak5";
     };
 
+    buildInputs = with self; [ pytestrunner ];
     propagatedBuildInputs = with self; [ requests urllib3 mock setuptools ];
 
     meta = {
@@ -5755,37 +3916,13 @@ in {
     };
   };
 
-  ds4drv = callPackage ../development/python-modules/ds4drv.nix {
+  ds4drv = callPackage ../development/python-modules/ds4drv {
     inherit (pkgs) fetchFromGitHub bluez;
   };
 
-  dyn = buildPythonPackage rec {
-    version = "1.5.0";
-    name = "dyn-${version}";
+  dyn = callPackage ../development/python-modules/dyn { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/dyn/${name}.tar.gz";
-      sha256 = "dc4b4b2a5d9d26f683230fd822641b39494df5fcbfa716281d126ea6425dd4c3";
-    };
-
-    buildInputs = with self; [
-      pytest
-      pytestcov
-      mock
-      pytestpep8
-      pytest_xdist
-      covCore
-      pkgs.glibcLocales
-    ];
-
-    LC_ALL="en_US.UTF-8";
-
-    meta = {
-      description = "Dynect dns lib";
-      homepage = "http://dyn.readthedocs.org/en/latest/intro.html";
-      license = licenses.bsd3;
-    };
-  };
+  easydict = callPackage ../development/python-modules/easydict { };
 
   EasyProcess = buildPythonPackage rec {
     name = "EasyProcess-0.2.3";
@@ -5806,13 +3943,13 @@ in {
     };
   };
 
-  eccodes = if (isPy27) then
-      (pkgs.eccodes.overrideAttrs (oldattrs: {
-    name = "${python.libPrefix}-" + oldattrs.name;
-  })).override {
-    enablePython = true;
-    pythonPackages = self;
-  } else throw "eccodes not supported for interpreter ${python.executable}";
+  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
+
+  eccodes = disabledIf (!isPy27)
+    (toPythonModule (pkgs.eccodes.override {
+      enablePython = true;
+      pythonPackages = self;
+    }));
 
   EditorConfig = buildPythonPackage rec {
     name = "EditorConfig-${version}";
@@ -5841,28 +3978,7 @@ in {
 
   edward = callPackage ../development/python-modules/edward { };
 
-  elasticsearch = buildPythonPackage (rec {
-    name = "elasticsearch-1.9.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/e/elasticsearch/${name}.tar.gz";
-      sha256 = "091s60ziwhyl9kjfm833i86rcpjx46v9h16jkgjgkk5441dln3gb";
-    };
-
-    # Check is disabled because running them destroy the content of the local cluster!
-    # https://github.com/elasticsearch/elasticsearch-py/tree/master/test_elasticsearch
-    doCheck = false;
-    propagatedBuildInputs = with self; [ urllib3 requests ];
-    buildInputs = with self; [ nosexcover mock ];
-
-    meta = {
-      description = "Official low-level client for Elasticsearch";
-      homepage = https://github.com/elasticsearch/elasticsearch-py;
-      license = licenses.asl20;
-      maintainers = with maintainers; [ desiderius ];
-    };
-  });
-
+  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
 
   elasticsearchdsl = buildPythonPackage (rec {
     name = "elasticsearch-dsl-0.0.9";
@@ -5886,19 +4002,9 @@ in {
     };
   });
 
-  entrypoints = buildPythonPackage rec {
-    pname = "entrypoints";
-    version = "0.2.2";
-    name = "${pname}-${version}";
-    format = "wheel";
+  elasticsearch-curator = callPackage ../development/python-modules/elasticsearch-curator { };
 
-    src = fetchPypi {
-      inherit pname version format;
-      sha256 = "0a0685962ee5ac303f470acbb659f0f97aef5b9deb6b85d059691c706ef6e45e";
-    };
-
-    propagatedBuildInputs = with self; [ configparser ];
-  };
+  entrypoints = callPackage ../development/python-modules/entrypoints { };
 
   enzyme = callPackage ../development/python-modules/enzyme {};
 
@@ -5948,63 +4054,9 @@ in {
     };
   };
 
-  evdev = buildPythonPackage rec {
-    version = "0.6.4";
-    name = "evdev-${version}";
-    disabled = isPy34;  # see http://bugs.python.org/issue21121
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/e/evdev/${name}.tar.gz";
-      sha256 = "1wkag91s8j0f45jx5n619z354n8pz8in9krn81hp7hlkhi6p8s2j";
-    };
-
-    buildInputs = with self; [ pkgs.linuxHeaders ];
-
-    patchPhase = "sed -e 's#/usr/include/linux/#${pkgs.linuxHeaders}/include/linux/#g' -i setup.py";
-
-    doCheck = false;
-
-    meta = {
-      description = "Provides bindings to the generic input event interface in Linux";
-      homepage = http://pythonhosted.org/evdev;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ goibhniu ];
-      platforms = platforms.linux;
-    };
-  };
-
-  eve = buildPythonPackage rec {
-    version = "0.6.1";
-    name = "Eve-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/E/Eve/${name}.tar.gz";
-      sha256 = "0wf1x8qixkld6liz5syqi8i9nrfrhq4lpmh0p9cy3jbkhk34km69";
-    };
-
-    propagatedBuildInputs = with self; [
-      cerberus
-      events
-      flask-pymongo
-      flask
-      itsdangerous
-      jinja2
-      markupsafe
-      pymongo_2_9_1
-      simplejson
-      werkzeug
-    ];
-
-    # tests call a running mongodb instance
-    doCheck = false;
-
-    meta = {
-      homepage = "http://python-eve.org/";
-      description = "Open source Python REST API framework designed for human beings";
-      license = licenses.bsd3;
-    };
-  };
+  evdev = callPackage ../development/python-modules/evdev {};
 
+  eve = callPackage ../development/python-modules/eve {};
 
   eventlib = buildPythonPackage rec {
     pname = "python-eventlib";
@@ -6022,6 +4074,8 @@ in {
 
     propagatedBuildInputs = with self; [ greenlet ];
 
+    doCheck = false;
+
     meta = {
       description = "Eventlib bindings for python";
       homepage    = "http://ag-projects.com/";
@@ -6102,6 +4156,7 @@ in {
     checkPhase = ''
       py.test testing
     '';
+    __darwinAllowLocalNetworking = true;
     meta = {
       description = "Rapid multi-Python deployment";
       license = licenses.gpl2;
@@ -6129,22 +4184,7 @@ in {
     };
   };
 
-  faker = buildPythonPackage rec {
-    name = "faker-0.0.4";
-    disabled = isPy3k;
-    src = pkgs.fetchurl {
-      url = mirror://pypi/F/Faker/Faker-0.0.4.tar.gz;
-      sha256 = "09q5jna3j8di0gw5yjx0dvlndkrk2x9vvqzwyfsvg3nlp8h38js1";
-    };
-    buildInputs = with self; [ nose ];
-    meta = {
-      description = "A Python library for generating fake user data";
-      homepage    = http://pypi.python.org/pypi/Faker;
-      license     = licenses.mit;
-      maintainers = with maintainers; [ lovek323 ];
-      platforms   = platforms.unix;
-    };
-  };
+  faker = callPackage ../development/python-modules/faker { };
 
   fake_factory = buildPythonPackage rec {
     name = "fake-factory-${version}";
@@ -6200,56 +4240,13 @@ in {
     buildInputs = with self; [ fudge_9 nose ];
   };
 
-  fedora_cert = buildPythonPackage rec {
-    name = "fedora-cert-0.5.9.2";
-    meta.maintainers = with maintainers; [ mornfall ];
-    format = "other";
-
-    src = pkgs.fetchurl {
-      url = "https://fedorahosted.org/releases/f/e/fedora-packager/fedora-packager-0.5.9.2.tar.bz2";
-      sha256 = "105swvzshgn3g6bjwk67xd8pslnhpxwa63mdsw6cl4c7cjp2blx9";
-    };
-
-    propagatedBuildInputs = with self; [ python_fedora pyopenssl ];
-    postInstall = "mv $out/bin/fedpkg $out/bin/fedora-cert-fedpkg";
-    doCheck = false;
-  };
-
-  fedpkg = buildPythonPackage (rec {
-    name = "fedpkg-1.14";
-    meta.maintainers = with maintainers; [ mornfall ];
-
-    src = pkgs.fetchurl {
-      url = "https://fedorahosted.org/releases/f/e/fedpkg/${name}.tar.bz2";
-      sha256 = "0rj60525f2sv34g5llafnkmpvbwrfbmfajxjc14ldwzymp8clc02";
-    };
-
-    patches = [ ../development/python-modules/fedpkg-buildfix.diff ];
-    propagatedBuildInputs = with self; [ rpkg offtrac urlgrabber fedora_cert ];
-  });
-
-  flit = buildPythonPackage rec {
-    pname = "flit";
-    version = "0.10";
-    name = "${pname}-${version}";
-
-    format = "wheel";
-
-    src = pkgs.fetchurl {
-      url = https://files.pythonhosted.org/packages/24/98/50a090112a04d9e29155c31a222637668b0a4dd778fefcd3132adc50e877/flit-0.10-py3-none-any.whl;
-      sha256 = "4566b2e1807abeb1fd7bfaa9b444447556f1720518edfb134b56a6a1272b0428";
-    };
+  faulthandler = if ! isPy3k
+    then callPackage ../development/python-modules/faulthandler {}
+    else throw "faulthandler is built into ${python.executable}";
 
-    disabled = !isPy3k;
-    propagatedBuildInputs = with self; [ docutils requests requests_download zipfile36];
+  fedpkg = callPackage ../development/python-modules/fedpkg { };
 
-    meta = {
-      description = "A simple packaging tool for simple packages";
-      homepage = https://github.com/takluyver/flit;
-      license = licenses.bsd3;
-      maintainer = maintainers.fridh;
-    };
-  };
+  flit = callPackage ../development/python-modules/flit { };
 
   Flootty = buildPythonPackage rec {
     name = "Flootty-3.2.0";
@@ -6290,6 +4287,10 @@ in {
     };
   };
 
+  fpdf = callPackage ../development/python-modules/fpdf { };
+
+  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
+
   frozendict = buildPythonPackage rec {
     name = "frozendict-0.5";
 
@@ -6305,24 +4306,7 @@ in {
     };
   };
 
-  ftputil = buildPythonPackage rec {
-    version = "3.3";
-    name = "ftputil-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/f/ftputil/${name}.tar.gz";
-      sha256 = "1714w0v6icw2xjx5m54yv2qgkq49qwxwllq4gdb7wkz25iiapr8b";
-    };
-
-    disabled = isPy3k;
-
-    meta = {
-      description = "High-level FTP client library (virtual file system and more)";
-      homepage    = https://pypi.python.org/pypi/ftputil;
-      platforms   = platforms.linux;
-      license     = licenses.bsd2; # "Modified BSD license, says pypi"
-    };
-  };
+  ftputil = callPackage ../development/python-modules/ftputil { };
 
   fudge = buildPythonPackage rec {
     name = "fudge-1.1.0";
@@ -6457,6 +4441,8 @@ in {
     };
   };
 
+  GeoIP = callPackage ../development/python-modules/GeoIP { };
+
   gmpy = buildPythonPackage rec {
     name = "gmpy-1.17";
     disabled = isPyPy;
@@ -6512,7 +4498,7 @@ in {
       validictory
       decorator
       mutagen
-      protobuf3_0
+      protobuf
       setuptools
       requests
       dateutil
@@ -6528,7 +4514,7 @@ in {
 
     meta = {
       description = "An unofficial API for Google Play Music";
-      homepage = http://pypi.python.org/pypi/gmusicapi/;
+      homepage = https://pypi.python.org/pypi/gmusicapi/;
       license = licenses.bsd3;
     };
   };
@@ -6565,6 +4551,8 @@ in {
     '';
   };
 
+  gpy = callPackage ../development/python-modules/gpy { };
+
   gitdb = buildPythonPackage rec {
     name = "gitdb-0.6.4";
 
@@ -6584,7 +4572,7 @@ in {
 
     meta = {
       description = "Git Object Database";
-      maintainers = with maintainers; [ mornfall ];
+      maintainers = with maintainers; [ ];
       homepage = https://github.com/gitpython-developers/gitdb;
       license = licenses.bsd3;
     };
@@ -6610,72 +4598,23 @@ in {
 
     meta = {
       description = "Python Git Library";
-      maintainers = with maintainers; [ mornfall ];
+      maintainers = with maintainers; [ ];
       homepage = https://github.com/gitpython-developers/GitPython;
       license = licenses.bsd3;
     };
   };
 
-  google-compute-engine = buildPythonPackage rec {
-    version = "2.3.0";
-    name    = "google-compute-engine-${version}";
-
-    src = pkgs.fetchurl {
-      url    = "mirror://pypi/g/google-compute-engine/google-compute-engine-${version}.tar.gz";
-      sha256 = "1pjj95b3l61h8xz5kjfcgnql066cr8bq5wl480a6dxd2inw8mynf";
-    };
-
-    propagatedBuildInputs = with self; [ boto ];
+  git-annex-adapter = callPackage ../development/python-modules/git-annex-adapter {
+    inherit (pkgs.gitAndTools) git-annex;
   };
 
-  googlecl = buildPythonPackage rec {
-    version = "0.9.14";
-    name    = "googlecl-${version}";
-    disabled = isPy3k;
+  google-cloud-sdk = callPackage ../tools/admin/google-cloud-sdk { };
+  google-cloud-sdk-gce = callPackage ../tools/admin/google-cloud-sdk { with-gce=true; };
 
-    src = pkgs.fetchurl {
-      url    = "https://googlecl.googlecode.com/files/${name}.tar.gz";
-      sha256 = "0nnf7xkr780wivr5xnchfcrahlzy9bi2dxcs1w1bh1014jql0iha";
-    };
+  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
 
-    meta = {
-      description = "Brings Google services to the command line";
-      homepage    = https://code.google.com/p/googlecl/;
-      license     = licenses.asl20;
-      maintainers = with maintainers; [ lovek323 ];
-      platforms   = platforms.unix;
-    };
-
-    propagatedBuildInputs = with self; [ gdata ];
-  };
-
-  gplaycli = buildPythonPackage rec {
-    version = "0.1.2";
-    name = "gplaycli-${version}";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "matlink";
-      repo = "gplaycli";
-      rev = "${version}";
-      sha256 = "0yc09inzs3aggj0gw4irlhlzw5q562fsp0sks352y6z0vx31hcp3";
-    };
-
-   disabled = ! isPy27;
-
-   propagatedBuildInputs = with self; [ pkgs.libffi pyasn1 clint ndg-httpsclient protobuf requests args ];
-
-   preBuild = ''
-     substituteInPlace setup.py --replace "/etc" "$out/etc"
-     substituteInPlace gplaycli/gplaycli.py --replace "/etc" "$out/etc"
-   '';
-
-    meta = {
-      homepage = https://github.com/matlink/gplaycli;
-      description = "Google Play Downloader via Command line";
-      license = licenses.agpl3Plus;
-      maintainers = with maintainers; [ ];
-    };
-  };
+  gpapi = callPackage ../development/python-modules/gpapi { };
+  gplaycli = callPackage ../development/python-modules/gplaycli { };
 
   gpsoauth = buildPythonPackage rec {
     version = "0.2.0";
@@ -6709,34 +4648,9 @@ in {
     };
   };
 
-  grip = buildPythonPackage rec {
-    version = "4.3.2";
-    name = "grip-${version}";
+  grip = callPackage ../development/python-modules/grip { };
 
-    src = pkgs.fetchFromGitHub {
-      owner = "joeyespo";
-      repo = "grip";
-      rev = "v${version}";
-      sha256 = "05a169sfaj280k7gibbc1rznjn43l5m6l1gpl6a5cmp5r8827khs";
-    };
-    buildInputs = with self; [ pytest responses ];
-
-    propagatedBuildInputs = with self; [ docopt flask markdown path-and-address pygments requests ];
-
-    checkPhase = ''
-      export PATH="$PATH:$out/bin"
-      py.test -xm "not assumption"
-    '';
-
-    meta = with stdenv.lib; {
-      description = "Preview GitHub Markdown files like Readme locally before committing them";
-      homepage = https://github.com/joeyespo/grip;
-      license = licenses.mit;
-      maintainers = with maintainers; [ koral ];
-    };
-  };
-
-  gst-python = callPackage ../development/libraries/gstreamer/python {
+  gst-python = callPackage ../development/python-modules/gst-python {
     gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
   };
 
@@ -6779,6 +4693,16 @@ in {
     };
   };
 
+  gurobipy = if stdenv.system == "x86_64-darwin"
+  then callPackage ../development/python-modules/gurobipy/darwin.nix {
+    inherit (pkgs.darwin) cctools insert_dylib;
+  }
+  else if stdenv.system == "x86_64-linux"
+  then callPackage ../development/python-modules/gurobipy/linux.nix {}
+  else throw "gurobipy not yet supported on ${stdenv.system}";
+
+  hbmqtt = callPackage ../development/python-modules/hbmqtt { };
+
   helper = buildPythonPackage rec {
     pname = "helper";
     version = "2.4.1";
@@ -6804,23 +4728,7 @@ in {
 
   };
 
-  hglib = buildPythonPackage rec {
-    version = "1.7";
-    name = "hglib-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-hglib/python-hglib-${version}.tar.gz";
-      sha256 = "0dc087d15b774cda82d3c8096fb0e514caeb2ddb60eed38e9056b16e279ba3c5";
-    };
-
-    meta = {
-      description = "Mercurial Python library";
-      homepage = "http://selenic.com/repo/python-hglib";
-      license = licenses.mit;
-      maintainers = with maintainers; [ dfoxfranke ];
-      platforms = platforms.all;
-    };
-  };
+  hglib = callPackage ../development/python-modules/hglib {};
 
   humanize = buildPythonPackage rec {
     version = "0.5.1";
@@ -6845,6 +4753,8 @@ in {
 
   };
 
+  hupper = callPackage ../development/python-modules/hupper {};
+
   hovercraft = buildPythonPackage rec {
     disabled = ! isPy3k;
     name = "hovercraft-${version}";
@@ -6908,7 +4818,7 @@ in {
   });
 
 
-  htmlmin = callPackage ../development/python-modules/htmlmin.nix {};
+  htmlmin = callPackage ../development/python-modules/htmlmin {};
 
   httpauth = buildPythonPackage rec {
     version = "0.3";
@@ -6929,6 +4839,10 @@ in {
     };
   };
 
+  idna-ssl = callPackage ../development/python-modules/idna-ssl/default.nix { };
+
+  ijson = callPackage ../development/python-modules/ijson/default.nix {};
+
   imagesize = buildPythonPackage rec {
     name = "imagesize-${version}";
     version = "0.7.0";
@@ -6946,6 +4860,30 @@ in {
 
   };
 
+  imbalanced-learn = buildPythonPackage rec {
+    name = "imbalanced-learn-${version}";
+    version = "0.3.2";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/i/imbalanced-learn/${name}.tar.gz";
+      sha256 = "0j76m0rrsvyqj9bimky9m7b609y5v6crf9apigww3xvcnchhj901";
+    };
+
+    preConfigure = ''
+      export HOME=$PWD
+    '';
+
+    propagatedBuildInputs = with self; [ scikitlearn ];
+    buildInputs = with self; [ nose pytest pandas ];
+
+    meta = {
+      description = "Library offering a number of re-sampling techniques commonly used in datasets showing strong between-class imbalance";
+      homepage = https://github.com/scikit-learn-contrib/imbalanced-learn;
+      license = with licenses; [ mit ];
+    };
+
+  };
+
   imread = buildPythonPackage rec {
     name = "python-imread-${version}";
     version = "0.6";
@@ -6955,13 +4893,13 @@ in {
       sha256 = "0i14bc67200zhzxc41g5dfp2m0pr1zaa2gv59p2va1xw0ji2dc0f";
     };
 
+    nativeBuildInputs = [ pkgs.pkgconfig ];
     buildInputs = with self; [
       nose
       pkgs.libjpeg
       pkgs.libpng
       pkgs.libtiff
       pkgs.libwebp
-      pkgs.pkgconfig
     ];
     propagatedBuildInputs = with self; [ numpy ];
 
@@ -6974,16 +4912,18 @@ in {
     };
   };
 
+  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
+
   ipfsapi = buildPythonPackage rec {
     name = "ipfsapi-${version}";
-    version = "0.4.5-pre";
+    version = "0.4.2.post1";
     disabled = isPy26 || isPy27;
 
     src = pkgs.fetchFromGitHub {
       owner = "ipfs";
       repo = "py-ipfs-api";
-      rev = "bcce00e4a9b674d062729d82bd49a9ffbf76486f";
-      sha256 = "0cdmzpk5wvi6fyfmmn96vynqkb1p59wjqjdijhm1ixf7bfl9r126";
+      rev = "0c485544a114f580c65e2ffbb5782efbf7fd9f61";
+      sha256 = "1v7f77cv95yv0v80gisdh71mj7jcq41xcfip6bqm57zfdbsa0xpn";
     };
 
     propagatedBuildInputs = with self; [ six requests ];
@@ -7054,92 +4994,25 @@ in {
     };
   };
 
-  jdcal = buildPythonPackage rec {
-    version = "1.0";
-    name = "jdcal-${version}";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "phn";
-      repo = "jdcal";
-      rev = "v${version}";
-      sha256 = "0jjgrrylraqzk3n97hay4gj00ky6vlvkfaapfgqlbcxyq30j24vq";
-    };
-
-    meta = {
-      description = "A module containing functions for converting between Julian dates and calendar dates";
-      homepage = "https://github.com/phn/jdcal";
-      license = licenses.bsd2;
-      maintainers = with maintainers; [ lihop ];
-      platforms = platforms.all;
-    };
-  };
-
-  internetarchive = let ver = "0.8.3"; in buildPythonPackage rec {
-    name = "internetarchive-${ver}";
+  JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi {};
 
-    src = pkgs.fetchurl {
-      url = "https://github.com/jjjake/internetarchive/archive/v${ver}.tar.gz";
-      sha256 = "0j3l13zvbx50j66l6pnf8y8y8m6gk1sc3yssvfd2scvmv4gnmm8n";
-    };
+  jdcal = callPackage ../development/python-modules/jdcal { };
 
-    # It is hardcoded to specific versions, I don't know why.
-    preConfigure = ''
-        sed 's/==/>=/' -i setup.py
-    '';
+  internetarchive = callPackage ../development/python-modules/internetarchive {};
 
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ six clint pyyaml docopt requests jsonpatch args ];
+  JPype1 = callPackage ../development/python-modules/JPype1 {};
 
-    meta = with stdenv.lib; {
-      description = "A python wrapper for the various Internet Archive APIs";
-      homepage = "https://github.com/jjjake/internetarchive";
-    };
-  };
+  josepy = callPackage ../development/python-modules/josepy {};
 
   jsbeautifier = callPackage ../development/python-modules/jsbeautifier {};
 
-  jug = buildPythonPackage rec {
-    version = "1.4.0";
-    name = "jug-${version}";
-    buildInputs = with self; [ nose numpy ];
-    propagatedBuildInputs = with self; [
-      bottle
-      pyyaml
-      redis
-      six
+  jug = callPackage ../development/python-modules/jug {};
 
-      pkgs.zlib
-    ];
+  jsmin = callPackage ../development/python-modules/jsmin { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/J/Jug/Jug-${version}.tar.gz";
-      sha256 = "0s9m34k8w59k32sjcg74qqdz8r492sxhsdmlhca1z7jazdk56dzb";
-    };
+  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
 
-    meta = {
-      description = "A Task-Based Parallelization Framework";
-      license = licenses.mit;
-      url = https://jug.readthedocs.io/;
-      maintainers = with maintainers; [ luispedro ];
-    };
-  };
-
-  jsonpatch = buildPythonPackage rec {
-    name = "jsonpatch-1.11";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/j/jsonpatch/${name}.tar.gz";
-      sha256 = "22d0bc0f5522a4a03dd9fb4c4cdf7c1f03256546c88be4c61e5ceabd22280e47";
-    };
-
-    propagatedBuildInputs = with self; [ jsonpointer ];
-
-    meta = {
-      description = "Library to apply JSON Patches according to RFC 6902";
-      homepage = "https://github.com/stefankoegl/python-json-patch";
-      license = stdenv.lib.licenses.bsd2; # "Modified BSD license, says pypi"
-    };
-  };
+  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
 
   jsonpointer = buildPythonPackage rec {
     name = "jsonpointer-1.9";
@@ -7177,6 +5050,8 @@ in {
     };
   };
 
+  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix {};
+
   jsonwatch = buildPythonPackage rec {
     name = "jsonwatch-0.2.0";
 
@@ -7205,34 +5080,7 @@ in {
     };
   };
 
-  ledger-autosync = buildPythonPackage rec {
-    name = "ledger-autosync-${version}";
-    version = "0.2.3";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/ledger-autosync/ledger-autosync-${version}.tar.gz";
-      sha256 = "f19fa66e656309825887171d84a462e64676b1cc36b62e4dd8679ff63926a469";
-    };
-
-    propagatedBuildInputs = with self; [ ofxclient ];
-
-    buildInputs = with self; [
-      mock
-      nose
-      # Used at runtime to translate ofx entries to the ledger
-      # format. In fact, user could use either ledger or hledger.
-      pkgs.which
-      pkgs.ledger ];
-
-    # Tests are disable since they require hledger and python-ledger
-    doCheck = false;
-
-    meta = {
-      homepage = https://gitlab.com/egh/ledger-autosync;
-      description = "ledger-autosync is a program to pull down transactions from your bank and create ledger transactions for them";
-      license = licenses.gpl3;
-      maintainers = with maintainers; [ lewo ];
-    };
-  };
+  latexcodec = callPackage ../development/python-modules/latexcodec {};
 
   libsexy = callPackage ../development/python-modules/libsexy {
     libsexy = pkgs.libsexy;
@@ -7253,9 +5101,11 @@ in {
 
     propagatedBuildInputs = with self; [ six pycrypto ];
 
+    doCheck = false;
+
     meta = {
       description = "libthumbor is the python extension to thumbor";
-      homepage = http://github.com/heynemann/libthumbor;
+      homepage = https://github.com/heynemann/libthumbor;
       license = licenses.mit;
     };
   };
@@ -7339,32 +5189,7 @@ in {
     };
   };
 
-  jupyter_console = buildPythonPackage rec {
-    version = "5.0.0";
-    name = "jupyter_console-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/j/jupyter_console/${name}.tar.gz";
-      sha256 = "7ddfc8cc49921b0ed852500928922e637f9188358c94b5c76339a5a8f9ac4c11";
-    };
-
-    buildInputs = with self; [ nose ];
-    propagatedBuildInputs = with self; [
-      jupyter_client
-      ipython
-      ipykernel
-    ];
-
-    # ValueError: underlying buffer has been detached
-    doCheck = false;
-
-    meta = {
-      description = "Jupyter terminal console";
-      homepage = "http://jupyter.org/";
-      license = licenses.bsd3;
-      platforms = platforms.all;
-    };
-  };
+  jupyter_console = callPackage ../development/python-modules/jupyter_console { };
 
   jupyterlab = buildPythonPackage rec {
     name = "jupyterlab-${version}";
@@ -7387,35 +5212,7 @@ in {
     };
   };
 
-  PyLTI = buildPythonPackage rec {
-    version = "0.4.1";
-    name = "PyLTI-${version}";
-
-    disabled = !isPy27;
-
-    # There is no need to fix mock. https://github.com/mitodl/pylti/pull/48
-    postPatch = ''
-      substituteInPlace setup.py --replace "mock==1.0.1" "mock"
-    '';
-
-    propagatedBuildInputs = with self; [ httplib2 oauth oauth2 semantic-version ];
-    buildInputs = with self; [
-      flask httpretty oauthlib pyflakes pytest_27 pytestcache pytestcov covCore
-      pytestflakes pytestpep8 sphinx mock
-    ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/P/PyLTI/${name}.tar.gz";
-      sha256 = "076llj10j85zw3zq2gygx2pcfqi9rgcld5m4vq1iai1fk15x60fz";
-    };
-
-    meta = {
-      description = "Implementation of IMS LTI interface that works with edX";
-      homepage = "https://github.com/mitodl/pylti";
-      license = licenses.bsdOriginal;
-      maintainers = with maintainers; [ layus ];
-    };
-  };
+  PyLTI = callPackage ../development/python-modules/pylti { };
 
   lmdb = buildPythonPackage rec {
     pname = "lmdb";
@@ -7471,6 +5268,8 @@ in {
     };
   };
 
+  luftdaten = callPackage ../development/python-modules/luftdaten { };
+
   m2r = callPackage ../development/python-modules/m2r { };
 
   mailchimp = buildPythonPackage rec {
@@ -7495,14 +5294,15 @@ in {
     };
   };
 
-  python-mapnik = buildPythonPackage {
-    name = "python-mapnik-git-2016-08-30";
+  python-mapnik = buildPythonPackage rec {
+    name = "python-mapnik-${version}";
+    version = "3.0.13";
 
     src = pkgs.fetchFromGitHub {
       owner = "mapnik";
       repo = "python-mapnik";
-      rev = "541fd962d4fc99d50ec472af6ddccfdbf98cff37";
-      sha256 = "1d93qjnzggdpbhnmxlmk5jh0zd2jnpfl4n4aip5ypd39ilqibhf3";
+      rev = "v${version}";
+      sha256 = "0biw9bfkbsgfyjihyvkj4abx9s9r3h81rk6dc1y32022rypsqhkp";
     };
 
     disabled = isPyPy;
@@ -7518,6 +5318,8 @@ in {
     };
   };
 
+  mt-940 = callPackage ../development/python-modules/mt-940 { };
+
   mwlib = let
     pyparsing = buildPythonPackage rec {
       name = "pyparsing-1.5.7";
@@ -7571,6 +5373,7 @@ in {
       description = "Library for parsing MediaWiki articles and converting them to different output formats";
       homepage = "http://pediapress.com/code/";
       license = licenses.bsd3;
+      broken = true; # Requires different versions of packages
     };
   };
 
@@ -7625,6 +5428,10 @@ in {
     };
   };
 
+  ncclient = callPackage ../development/python-modules/ncclient {};
+
+  logfury = callPackage ../development/python-modules/logfury { };
+
   ndg-httpsclient = buildPythonPackage rec {
     version = "0.4.2";
     name = "ndg-httpsclient-${version}";
@@ -7651,6 +5458,8 @@ in {
 
   netcdf4 = callPackage ../development/python-modules/netcdf4 { };
 
+  netdisco = callPackage ../development/python-modules/netdisco { };
+
   Nikola = callPackage ../development/python-modules/Nikola { };
 
   nxt-python = buildPythonPackage rec {
@@ -7680,43 +5489,9 @@ in {
     };
   };
 
-  odfpy = buildPythonPackage rec {
-    version = "0.9.6";
-    name = "odfpy-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/odfpy/${name}.tar.gz";
-      sha256 = "e458f969f1ccd7ed77d70a45fe69ad656ac61b39e36e4d32c42d4e3216030891";
-    };
-
-    buildInputs = with self; with pkgs; [ ];
-
-    propagatedBuildInputs = with self; [ ];
-
-    meta = {
-      description = "Python API and tools to manipulate OpenDocument files";
-      homepage = "https://joinup.ec.europa.eu/software/odfpy/home";
-      license = licenses.asl20;
-    };
-  };
+  odfpy = callPackage ../development/python-modules/odfpy { };
 
-  oger = buildPythonPackage rec {
-    name = "oger-${version}";
-    version = "1.1.3";
-    src = pkgs.fetchurl {
-      url = "http://organic.elis.ugent.be/sites/organic.elis.ugent.be/files/Oger-${version}.tar.gz";
-      sha256 = "1k02ys812lz0x0yymljp102amkm8bvfgqsrphnk235xbcrb0akg5";
-    };
-
-    propagatedBuildInputs = with self; [ MDP scipy numpy matplotlib ];
-
-    meta = {
-      homepage = http://organic.elis.ugent.be/organic/engine;
-      description = "Rapidly build, train, and evalue modular learning architectures";
-      maintainers = with maintainers; [ nico202 ];
-      license = licenses.lgpl3;
-    };
-  };
+  oset = callPackage ../development/python-modules/oset { };
 
   pamela = buildPythonPackage rec {
     name = "pamela-${version}";
@@ -7727,6 +5502,12 @@ in {
       sha256 = "0ssxbqsshrm8p642g3h6wsq20z1fsqhpdvqdm827gn6dlr38868y";
     };
 
+    postUnpack = ''
+      substituteInPlace $sourceRoot/pamela.py --replace \
+        'find_library("pam")' \
+        '"${getLib pkgs.pam}/lib/libpam.so"'
+    '';
+
     doCheck = false;
 
     meta = {
@@ -7739,53 +5520,11 @@ in {
   # These used to be here but were moved to all-packages, but I'll leave them around for a while.
   pants = pkgs.pants;
 
-  paperwork-backend = buildPythonPackage rec {
-    name = "paperwork-backend-${version}";
-    version = "1.2.0";
+  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
 
-    src = pkgs.fetchFromGitHub {
-      owner = "jflesch";
-      repo = "paperwork-backend";
-      rev = version;
-      sha256 = "1pzyy14f9wzh9vwn855k1z48a8mbs73j1dk8730kdlcdkmn3l1ms";
-    };
+  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
 
-    # Python 2.x is not supported.
-    disabled = !isPy3k && !isPyPy;
-
-    preCheck = "\"$out/bin/paperwork-shell\" chkdeps paperwork_backend";
-
-    propagatedBuildInputs = with self; [
-      pyenchant simplebayes pillow pycountry whoosh termcolor
-      python-Levenshtein pyinsane2 pygobject3 pyocr
-      pkgs.poppler_gi pkgs.gtk3
-      natsort
-    ];
-
-    meta = {
-      description = "Backend part of Paperwork (Python API, no UI)";
-      homepage = "https://github.com/jflesch/paperwork-backend";
-      license = licenses.gpl3Plus;
-    };
-  };
-
-  pathspec = buildPythonPackage rec {
-    pname   = "pathspec";
-    version = "0.5.2";
-    name    = "${pname}-${version}";
-
-    src = self.fetchPypi {
-      inherit pname version;
-      sha256 = "f9fdf4408f4adb30e9f507f61d3a41c968e9c6e6c519d4bbd2a189627b5e86f0";
-    };
-
-    meta = {
-      description = "Utility library for gitignore-style pattern matching of file paths";
-      homepage = "https://github.com/cpburnz/python-path-specification";
-      license = licenses.mpl20;
-      maintainers = with maintainers; [ copumpkin ];
-    };
-  };
+  pathspec = callPackage ../development/python-modules/pathspec { };
 
   pathtools = buildPythonPackage rec {
     name = "pathtools-${version}";
@@ -7798,7 +5537,7 @@ in {
 
     meta = {
       description = "Pattern matching and various utilities for file systems paths";
-      homepage = http://github.com/gorakhargosh/pathtools;
+      homepage = https://github.com/gorakhargosh/pathtools;
       license = licenses.mit;
       maintainers = with maintainers; [ goibhniu ];
     };
@@ -7828,23 +5567,7 @@ in {
     };
   };
 
-  passlib = buildPythonPackage rec {
-    version = "1.6.5";
-    name    = "passlib-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/passlib/passlib-${version}.tar.gz";
-      sha256 = "1z27wdxs5rj5xhhqfzvzn3yg682irkxw6dcs5jj7mcf97psk8gd8";
-    };
-
-    buildInputs = with self; [ nose ];
-    propagatedBuildInputs = with self; [ bcrypt ];
-
-    meta = {
-      description = "A password hashing library for Python";
-      homepage    = https://code.google.com/p/passlib/;
-    };
-  };
+  passlib = callPackage ../development/python-modules/passlib { };
 
   path-and-address = buildPythonPackage rec {
     version = "2.0.1";
@@ -7905,27 +5628,6 @@ in {
     };
   };
 
-  pew = buildPythonPackage rec {
-    name = "pew-0.1.14";
-    namePrefix = "";
-
-    disabled = pythonOlder "3.4"; # old versions require backported libraries
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pew/${name}.tar.gz";
-      sha256 = "0p188ah80l0rzbib2srahj2sswz8rcpqwbrbajyv2r5c1m5k6r4b";
-    };
-
-    propagatedBuildInputs = with self; [ virtualenv virtualenv-clone ];
-
-    meta = {
-      description = "Tools to manage multiple virtualenvs written in pure python, a virtualenvwrapper rewrite";
-      license = licenses.mit;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ berdario ];
-    };
-  };
-
   pex = buildPythonPackage rec {
     name = "pex-${version}";
     version = "1.2.7";
@@ -7953,49 +5655,18 @@ in {
 
   phpserialize = callPackage ../development/python-modules/phpserialize { };
 
-  pies = buildPythonPackage rec {
-    name = "pies-2.6.5";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pies/${name}.tar.gz";
-      sha256 = "d8d6ae4faa0a7da5d634ad8c6ca4bb22b70ad53bb7ecd91af23d490fcd2a88e8";
-    };
-
-    deps = if !isPy3k then [ self.pies2overrides self.enum34 ]
-           else if isPy33 then [ self.enum34 ]
-           else [];
-
-    propagatedBuildInputs = deps;
-
-    meta = {
-      description = "The simplest way to write one program that runs on both Python 2 and Python 3";
-      homepage = https://github.com/timothycrosley/pies;
-      license = licenses.mit;
-    };
-  };
-
-  pies2overrides = buildPythonPackage rec {
-    name = "pies2overrides-2.6.5";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pies2overrides/${name}.tar.gz";
-      sha256 = "2a91445afc7f692bdbabfbf00d3defb1d47ad7825eb568a6464359758ab35763";
-    };
+  plaster = callPackage ../development/python-modules/plaster {};
 
-    propagatedBuildInputs = with self; [ ipaddress ];
-
-    meta = {
-      description = "Defines override classes that should be included with pies only if running on Python2";
-      homepage = https://github.com/timothycrosley/pies;
-      license = licenses.mit;
-    };
-  };
+  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {};
 
   plotly = callPackage ../development/python-modules/plotly { };
 
+  plyfile = callPackage ../development/python-modules/plyfile { };
+
   podcastparser = callPackage ../development/python-modules/podcastparser { };
 
+  pomegranate = callPackage ../development/python-modules/pomegranate { };
+
   poppler-qt4 = buildPythonPackage rec {
     name = "poppler-qt4-${version}";
     version = "0.18.1";
@@ -8042,6 +5713,8 @@ in {
     };
   };
 
+  prov = callPackage ../development/python-modules/prov { };
+
   pudb = buildPythonPackage rec {
     name = "pudb-2016.2";
 
@@ -8062,6 +5735,10 @@ in {
     };
   };
 
+  pybtex = callPackage ../development/python-modules/pybtex {};
+
+  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils {};
+
   pycallgraph = buildPythonPackage rec {
     name = "pycallgraph-${version}";
     version = "1.0.1";
@@ -8087,6 +5764,8 @@ in {
 
   pycassa = callPackage ../development/python-modules/pycassa { };
 
+  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
+
   pybluez = buildPythonPackage rec {
     version = "unstable-20160819";
     pname = "pybluez";
@@ -8126,7 +5805,7 @@ in {
     doCheck = false;
 
     meta = {
-      homepage = http://github.com/saghul/pycares;
+      homepage = https://github.com/saghul/pycares;
       description = "Interface for c-ares";
       license = licenses.mit;
     };
@@ -8135,9 +5814,16 @@ in {
   pycuda = callPackage ../development/python-modules/pycuda rec {
     cudatoolkit = pkgs.cudatoolkit75;
     inherit (pkgs.stdenv) mkDerivation;
-    inherit pythonOlder;
   };
 
+  pydotplus = callPackage ../development/python-modules/pydotplus { };
+
+  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
+
+  pylama = callPackage ../development/python-modules/pylama { };
+
+  pyphen = callPackage ../development/python-modules/pyphen {};
+
   pypoppler = buildPythonPackage rec {
     name = "pypoppler-${version}";
     version = "0.12.2";
@@ -8148,7 +5834,8 @@ in {
     };
 
     NIX_CFLAGS_COMPILE="-I${pkgs.poppler.dev}/include/poppler/";
-    buildInputs = [ pkgs.pkgconfig pkgs.poppler.dev ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = [ pkgs.poppler.dev ];
     propagatedBuildInputs = with self; [ pycairo pygobject2 ];
 
     patches = [
@@ -8199,89 +5886,34 @@ in {
     };
   };
 
-  python-axolotl = buildPythonPackage rec {
-    name = "python-axolotl-${version}";
-    version = "0.1.35";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-axolotl/${name}.tar.gz";
-      sha256 = "0ch2d5wqfgxy22dkbxwzilq91wkqy9ficrjy39qhal8g8rdc4jr0";
-    };
-
-    propagatedBuildInputs = with self; [ python-axolotl-curve25519 protobuf3_0 pycrypto ];
-    # IV == 0 in tests is not supported by pycrytpodom (our pycrypto drop-in)
-    doCheck = !isPy3k;
-
-    meta = {
-      homepage = "https://github.com/tgalal/python-axolotl";
-      description = "Python port of libaxolotl-android";
-      maintainers = with maintainers; [ abbradar ];
-      license = licenses.gpl3;
-      platforms = platforms.all;
-    };
-  };
-
-  python-axolotl-curve25519 = buildPythonPackage rec {
-    name = "python-axolotl-curve25519-${version}";
-    version = "0.1";
+  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-axolotl-curve25519/${name}.tar.gz";
-      sha256 = "1h1rsdr7m8lvgxwrwng7qv0xxmyc9k0q7g9nbcr6ks2ipyjzcnf5";
-    };
+  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
 
-    meta = {
-      homepage = "https://github.com/tgalal/python-axolotl";
-      description = "Curve25519 with ed25519 signatures";
-      maintainers = with maintainers; [ abbradar ];
-      license = licenses.gpl3;
-      platforms = platforms.all;
-    };
-  };
-
-  pypolicyd-spf = buildPythonPackage rec {
-    name = "pypolicyd-spf-${version}";
-    majorVersion = "1.3";
-    version = "${majorVersion}.2";
-
-    src = pkgs.fetchurl {
-      url = "https://launchpad.net/pypolicyd-spf/${majorVersion}/${version}/+download/${name}.tar.gz";
-      sha256 = "0ri9bdwn1k8xlyfhrgzns7wjvp5h08dq5fnxcq6mphy94rmc8x3i";
-    };
-
-    propagatedBuildInputs = with self; [ pyspf pydns ipaddr ];
-
-    preBuild = ''
-      substituteInPlace setup.py --replace "'/etc'" "'$out/etc'"
-    '';
-
-    meta = {
-      homepage = "https://launchpad.net/pypolicyd-spf/";
-      description = "Postfix policy engine for Sender Policy Framework (SPF) checking";
-      maintainers = with maintainers; [ abbradar ];
-      license = licenses.asl20;
-      platforms = platforms.all;
-    };
-  };
+  pythonix = toPythonModule (callPackage ../development/python-modules/pythonix { });
 
   pyramid = buildPythonPackage rec {
-    name = "pyramid-1.7";
+    pname = "pyramid";
+    version = "1.9.1";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyramid/${name}.tar.gz";
-      sha256 = "161qacv7qqln3q02kcqll0q2mmaypm701hn1llwdwnkaywkb3xi6";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0dhbzc4q0vsnv3aihy728aczg56xs6h9s1rmvr096q4lb6yln3w4";
     };
 
-    buildInputs = with self; [
+    checkInputs = with self; [
       docutils
       virtualenv
       webtest
       zope_component
-      zope_interface
     ] ++ optional isPy26 unittest2;
 
     propagatedBuildInputs = with self; [
+      hupper
       PasteDeploy
+      plaster
+      plaster-pastedeploy
       repoze_lru
       repoze_sphinx_autointerface
       translationstring
@@ -8302,23 +5934,7 @@ in {
 
   };
 
-
-  pyramid_beaker = buildPythonPackage rec {
-    name = "pyramid_beaker-0.8";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyramid_beaker/${name}.tar.gz";
-      sha256 = "0hflx3qkcdml1mwpq53sz46s7jickpfn0zy0ns2c7j445j66bp3p";
-    };
-
-    propagatedBuildInputs = with self; [ beaker pyramid ];
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-      platforms = platforms.all;
-    };
-  };
-
+  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
 
   pyramid_chameleon = buildPythonPackage rec {
     name = "pyramid_chameleon-0.3";
@@ -8360,19 +5976,6 @@ in {
   };
 
 
-  pyramid_debugtoolbar = buildPythonPackage rec {
-    name = "pyramid_debugtoolbar-1.0.9";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyramid_debugtoolbar/${name}.tar.gz";
-      sha256 = "1vnzg1qnnyisv7znxg7pasayfyr3nz7rrs5nqr4fmdgwj9q2pyv0";
-    };
-
-    buildInputs = with self; [ ];
-    propagatedBuildInputs = with self; [ pyramid pyramid_mako ];
-  };
-
-
   pyramid_mako = buildPythonPackage rec {
     name = "pyramid_mako-0.3.1";
 
@@ -8403,22 +6006,6 @@ in {
   };
 
 
-  pyramid_tm = buildPythonPackage rec {
-    name = "pyramid_tm-0.10";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyramid_tm/${name}.tar.gz";
-      sha256 = "99528c54accf2bd5860d10634fe8972e8375b2d0f50ee08f208ed0484ffafc1d";
-    };
-
-    propagatedBuildInputs = with self; [ transaction pyramid ];
-    meta = {
-      maintainers = with maintainers; [ garbas domenkozar matejc ];
-      platforms = platforms.all;
-    };
-  };
-
-
   pyramid_multiauth = buildPythonPackage rec {
     name = "pyramid_multiauth-${version}";
     version = "0.8.0";
@@ -8445,62 +6032,17 @@ in {
       sha256 = "038ign7qlavlmvrhb2y8bygbxvy4j7bx2k1zg0i3wblg2ja50w7h";
     };
 
-    propagatedBuildInputs = with self; [ pyramid hawkauthlib tokenlib webtest ];
+    propagatedBuildInputs = with self; [ pyramid hawkauthlib tokenlib ];
+    buildInputs = with self; [ webtest ];
   };
 
   pyroute2 = callPackage ../development/python-modules/pyroute2 { };
 
-  pyspf = buildPythonPackage rec {
-    name = "pyspf-${version}";
-    version = "2.0.12";
-
-    src = pkgs.fetchurl {
-      url = "mirror://sourceforge/pymilter/pyspf/${name}/${name}.tar.gz";
-      sha256 = "18j1rmbmhih7q6y12grcj169q7sx1986qn4gmpla9y5gwfh1p8la";
-    };
-
-    meta = {
-      homepage = "http://bmsi.com/python/milter.html";
-      description = "Python API for Sendmail Milters (SPF)";
-      maintainers = with maintainers; [ abbradar ];
-      license = licenses.gpl2;
-      platforms = platforms.all;
-    };
-  };
+  pyspf = callPackage ../development/python-modules/pyspf { };
 
   pysrt = callPackage ../development/python-modules/pysrt { };
 
-  pytools = buildPythonPackage rec {
-    name = "pytools-${version}";
-    version = "2016.2.1";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "inducer";
-      repo = "pytools";
-      rev = "e357a9de14d0ff5131284f369d220d8b439a7906";
-      sha256 = "0g5w1cira1bl9f2ji11cbr9daj947nrfydydymjp4bbxbpl2jnaq";
-    };
-
-    buildInputs = with self; [
-      decorator
-      appdirs
-      six
-      numpy
-      pytest
-    ];
-
-    checkPhase = ''
-      py.test -k 'not test_persistent_dict'
-    '';
-
-    meta = {
-      homepage = https://github.com/inducer/pytools/;
-      description = "Miscellaneous Python lifesavers.";
-      license = licenses.mit;
-      maintainers = with maintainers; [ artuuge ];
-    };
-
-  };
+  pytools = callPackage ../development/python-modules/pytools { };
 
   pytun = buildPythonPackage rec {
     name = "pytun-${version}";
@@ -8525,22 +6067,11 @@ in {
     };
   };
 
-  raven = buildPythonPackage rec {
-    name = "raven-3.4.1";
+  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/raven/${name}.tar.gz";
-      sha256 = "c27e40ab3ccf37f30a9f77acb4917370d9341e25abda8e94b9bd48c7127f7d48";
-    };
+  junos-eznc = callPackage ../development/python-modules/junos-eznc {};
 
-    # way too many dependencies to run tests
-    # see https://github.com/getsentry/raven-python/blob/master/setup.py
-    doCheck = false;
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
+  raven = callPackage ../development/python-modules/raven { };
 
   rethinkdb = buildPythonPackage rec {
     name = "rethinkdb-${version}";
@@ -8604,31 +6135,7 @@ in {
     };
   };
 
-  joblib = buildPythonPackage rec {
-    pname = "joblib";
-    name = "${pname}-${version}";
-    version = "0.10.3";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
-      sha256 = "29b2965a9efbc90a5fe66a389ae35ac5b5b0c1feabfc7cab7fd5d19f429a071d";
-    };
-
-    buildInputs = with self; [ nose sphinx numpydoc ];
-
-    # Failing test on Python 3.x and Darwin
-    postPatch = '''' + optionalString (isPy3k || stdenv.isDarwin) ''
-      sed -i -e '70,84d' joblib/test/test_format_stack.py
-      # test_nested_parallel_warnings: ValueError: Non-zero return code: -9.
-      # Not sure why but it's nix-specific. Try removing for new joblib releases.
-      rm joblib/test/test_parallel.py
-    '';
-
-    meta = {
-      description = "Lightweight pipelining: using Python functions as pipeline jobs";
-      homepage = http://pythonhosted.org/joblib/;
-      license = licenses.bsd3;
-    };
-  };
+  joblib = callPackage ../development/python-modules/joblib { };
 
   safe = buildPythonPackage rec {
     version = "0.4";
@@ -8671,76 +6178,13 @@ in {
     doCheck = false;
   };
 
-  sarge = buildPythonPackage rec {
-    name = "sarge-${version}";
-    version = "0.1.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/sarge/${name}.tar.gz";
-      sha256 = "08s8896973bz1gg0pkr592w6g4p6v47bkfvws5i91p9xf8b35yar";
-    };
-
-    meta = {
-      homepage = "http://sarge.readthedocs.org/";
-      description = "A wrapper for subprocess which provides command pipeline functionality";
-      license = licenses.bsd3;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  sarge = callPackage ../development/python-modules/sarge { };
 
   subliminal = callPackage ../development/python-modules/subliminal {};
 
-  hyp = buildPythonPackage rec {
-    name = "hyp-server-${version}";
-    version = "1.2.0";
-    disabled = !isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/h/hyp-server/${name}.tar.gz";
-      sha256 = "1lafjdcn9nnq6xc3hhyizfwh6l69lc7rixn6dx65aq71c913jc15";
-    };
-
-    meta = {
-      description = "Hyperminimal https server";
-      homepage = https://github.com/rnhmjoj/hyp;
-      license = with licenses; [gpl3Plus mit];
-      maintainers = with maintainers; [ rnhmjoj ];
-      platforms = platforms.unix;
-    };
-  };
-
-  hypatia = buildPythonPackage rec {
-    name = "hypatia-0.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/h/hypatia/${name}.tar.gz";
-      sha256 = "fb4d394eeac4b06ff2259cada6174aebbe77edd243ffd1deda320cb327f98bd9";
-    };
-
-    buildInputs = with self; [ zope_interface zodb ];
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
-
-
-  zope_copy = buildPythonPackage rec {
-    name = "zope.copy-4.0.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.copy/${name}.zip";
-      sha256 = "eb2a95866df1377741876a3ee62d8600e80089e6246e1a235e86791b29534457";
-    };
-
-    buildInputs = with self; [ zope_interface zope_location zope_schema ];
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
+  hyperlink = callPackage ../development/python-modules/hyperlink {};
 
+  zope_copy = callPackage ../development/python-modules/zope_copy {};
 
   ssdeep = buildPythonPackage rec {
     name = "ssdeep-3.1.1";
@@ -8752,8 +6196,10 @@ in {
 
     buildInputs = with pkgs; [ ssdeep ];
     propagatedBuildInputs = with self; [ cffi six ];
+    meta.broken = true; # Tests fail, and no reverse-dependencies anyway
   };
 
+  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
 
   statsd = buildPythonPackage rec {
     name = "statsd-${version}";
@@ -8783,16 +6229,19 @@ in {
   };
 
   py3status = buildPythonPackage rec {
-    version = "3.0";
+    version = "3.7";
     name = "py3status-${version}";
     src = pkgs.fetchFromGitHub {
       owner = "ultrabug";
       repo = "py3status";
       rev = version;
-      sha256 = "1mnl0rfbnimcpp7q9hva0x9jfa58j4nc27r9kvaii8869kzssw48";
+      sha256 = "1khrvxjjcm1bsswgrdgvyrdrimxx92yhql4gmji6a0kpp59dp541";
     };
+    doCheck = false;
     propagatedBuildInputs = with self; [ requests ];
+    buildInputs = with pkgs; [ file ];
     prePatch = ''
+      sed -i -e "s|'file|'${pkgs.file}/bin/file|" py3status/parse_config.py
       sed -i -e "s|\[\"acpi\"|\[\"${pkgs.acpi}/bin/acpi\"|" py3status/modules/battery_level.py
       sed -i -e "s|notify-send|${pkgs.libnotify}/bin/notify-send|" py3status/modules/battery_level.py
       sed -i -e "s|/usr/bin/whoami|${pkgs.coreutils}/bin/whoami|" py3status/modules/external_script.py
@@ -8823,109 +6272,8 @@ in {
     };
   };
 
-  pyramid_zodbconn = buildPythonPackage rec {
-    name = "pyramid_zodbconn-0.7";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyramid_zodbconn/${name}.tar.gz";
-      sha256 = "56cfdb6b13dc87b1c51c7abc1557c63960d6b858e14a2d4c9693c3f7877f5f63";
-    };
-
-    # should be fixed in next release
-    doCheck = false;
-
-    buildInputs = with self; [ mock ];
-    propagatedBuildInputs = with self; [ pyramid zodb zodburi ZEO ];
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
-
-
-  pyramid_mailer = buildPythonPackage rec {
-    name = "pyramid_mailer-0.13";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyramid_mailer/${name}.tar.gz";
-      sha256 = "4debfad05ee65a05ba6f43e2af913e6e30db75ba42254e4aa0291500c4caa1fc";
-    };
-
-    buildInputs = with self; [ pyramid transaction ];
-    propagatedBuildInputs = with self; [ repoze_sendmail ];
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
-
-  pyrtlsdr = buildPythonPackage rec {
-    name = "pyrtlsdr-0.2.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyrtlsdr/${name}.zip";
-      sha256 = "cbb9086efe4320858c48f4856d09f7face191c4156510b1459ef4e5588935b6a";
-    };
-
-    postPatch = ''
-      sed "s|driver_files =.*|driver_files = ['${pkgs.rtl-sdr}/lib/librtlsdr.so']|" -i rtlsdr/librtlsdr.py
-    '';
-
-    meta = {
-      description = "Python wrapper for librtlsdr (a driver for Realtek RTL2832U based SDR's)";
-      homepage = https://github.com/roger-/pyrtlsdr;
-      license = licenses.gpl3;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
-
-
-  repoze_sendmail = buildPythonPackage rec {
-    name = "repoze.sendmail-4.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/repoze.sendmail/${name}.tar.gz";
-      sha256 = "51813730adc24728d5ce2609038f7bb81aa1632539d7a79045ef4aa6942eaba2";
-    };
-
-    buildInputs = with self; [ transaction ];
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
-
 
-  zodburi = buildPythonPackage rec {
-    name = "zodburi-2.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zodburi/${name}.tar.gz";
-      sha256 = "c04b9beca032bb7b968a3464417596ba4607a927c5e65929860962ddba1cccc0";
-    };
-
-    buildInputs = with self; [ zodb mock ZEO ];
-
-    meta = {
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
-
-  ZEO = self.buildPythonPackage rec {
-    name = "ZEO-4.0.0";
-
-    propagatedBuildInputs = with self; [ random2 zodb six transaction persistent zc_lockfile zconfig zdaemon zope_interface ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/Z/ZEO/${name}.tar.gz";
-      sha256 = "63555b6d2b5f98d215c4b5fdce004fb0475daa6efc8b70f39c77d646c12d7e51";
-    };
-
-    meta = {
-      homepage = https://pypi.python.org/pypi/ZEO;
-    };
-  };
+  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
 
   random2 = self.buildPythonPackage rec {
     name = "random2-1.0.1";
@@ -8938,53 +6286,7 @@ in {
     };
   };
 
-  scandir = self.buildPythonPackage rec {
-    name = "scandir-${version}";
-    version = "1.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/scandir/${name}.tar.gz";
-      sha256 = "0yjrgp0mxp3d8bjkq2m1ac2ys8n76wykksvgyjrnil9gr3fx7a5d";
-    };
-
-    meta = with stdenv.lib; {
-      description = "A better directory iterator and faster os.walk()";
-      homepage = "https://github.com/benhoyt/scandir";
-      license = licenses.gpl3;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
-
-  scfbuild = self.buildPythonPackage rec {
-    name = "scfbuild-${version}";
-    version = "1.0.3";
-
-    disabled = isPy3k;
-
-    src = pkgs.fetchFromGitHub {
-      owner = "eosrei";
-      repo = "scfbuild";
-      rev = "c179c8d279b7cc0a9a3536a713ac880ac6010318";
-      sha256 = "1bsi7k4kkj914pycp1g92050hjxscyvc9qflqb3cv5yz3c93cs46";
-    };
-
-    phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
-
-    propagatedBuildInputs = with self; [ pyyaml fonttools fontforge ];
-
-    installPhase = ''
-      mkdir -p $out/${python.sitePackages}
-      cp -r scfbuild $out/${python.sitePackages}
-      cp -r bin $out
-    '';
-
-    meta = with stdenv.lib; {
-      description = "SVGinOT color font builder";
-      homepage = "https://github.com/eosrei/scfbuild";
-      license = licenses.gpl3;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  scandir = callPackage ../development/python-modules/scandir { };
 
   schedule = buildPythonPackage rec {
     name = "schedule-0.3.2";
@@ -9003,40 +6305,13 @@ in {
     };
   };
 
-  svg-path = buildPythonPackage rec {
-    name = "svg.path-${version}";
-    version = "2.0b1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/svg.path/${name}.zip";
-      sha256 = "038x4wqkbvcs71x6n6kzr4kn99csyv8v4gqzssr8pqylqpxi56bm";
-    };
-
-    meta = {
-      description = "SVG path objects and parser";
-      homepage = https://github.com/regebro/svg.path;
-      license = licenses.cc0;
-      maintainers = with maintainers; [ goibhniu ];
-    };
-  };
+  schema = callPackage ../development/python-modules/schema {};
 
-  regex = buildPythonPackage rec {
-    name = "regex-${version}";
-    version = "2016.11.18";
+  stem = callPackage ../development/python-modules/stem { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/regex/${name}.tar.gz";
-      sha256 = "126ds2b355n3pgl7brshhscpxn14ycs0yznzl8k4akj4sps1i6c6";
-    };
+  svg-path = callPackage ../development/python-modules/svg-path { };
 
-    meta = {
-      description = "Alternative regular expression module, to replace re";
-      homepage = "https://bitbucket.org/mrabarnett/mrab-regex";
-      license = licenses.psfl;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  regex = callPackage ../development/python-modules/regex { };
 
   repoze_lru = buildPythonPackage rec {
     name = "repoze.lru-0.6";
@@ -9052,8 +6327,6 @@ in {
     };
   };
 
-
-
   repoze_sphinx_autointerface = buildPythonPackage rec {
     name = "repoze.sphinx.autointerface-0.7.1";
 
@@ -9071,30 +6344,6 @@ in {
   };
 
 
-  rtmidi = buildPythonPackage rec {
-    version = "0.3a";
-    name = "rtmidi-${version}";
-
-    src = pkgs.fetchurl {
-      url = "http://chrisarndt.de/projects/python-rtmidi/download/python-${name}.tar.bz2";
-      sha256 = "0d2if633m3kbiricd5hgn1csccd8xab6lnab1bq9prdr9ks9i8h6";
-    };
-
-    preConfigure = ''
-      sed -i "/use_setuptools/d" setup.py
-    '';
-
-    buildInputs = with self; [ pkgs.alsaLib pkgs.libjack2 ];
-
-    meta = {
-      description = "A Python wrapper for the RtMidi C++ library written with Cython";
-      homepage = http://trac.chrisarndt.de/code/wiki/python-rtmidi;
-      license = licenses.mit;
-      maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
-
   setuptools-git = buildPythonPackage rec {
     name = "setuptools-git-${version}";
     version = "1.1";
@@ -9133,7 +6382,7 @@ in {
 
     meta = {
       description = "Python API and shell utilities to monitor file system events";
-      homepage = http://github.com/gorakhargosh/watchdog;
+      homepage = https://github.com/gorakhargosh/watchdog;
       license = licenses.asl20;
       maintainers = with maintainers; [ goibhniu ];
     };
@@ -9157,18 +6406,6 @@ in {
 
   };
 
-  zope_tales = buildPythonPackage rec {
-    name = "zope.tales-4.0.2";
-
-    propagatedBuildInputs = with self; [ zope_interface six zope_testrunner ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.tales/${name}.zip";
-      sha256 = "c0485f09c3f23c7a0ceddabcb02d4a40ebecf8f8f36c87fa9a02c415f96c969e";
-    };
-  };
-
-
   zope_deprecation = buildPythonPackage rec {
     name = "zope.deprecation-4.1.2";
 
@@ -9197,7 +6434,7 @@ in {
 
     meta = {
       description = "Validate dicts against a schema";
-      homepage = http://github.com/sunlightlabs/validictory;
+      homepage = https://github.com/sunlightlabs/validictory;
       license = licenses.mit;
     };
   };
@@ -9255,6 +6492,8 @@ in {
     };
   });
 
+  descartes = callPackage ../development/python-modules/descartes { };
+
   distutils_extra = buildPythonPackage rec {
     name = "distutils-extra-${version}";
     version = "2.39";
@@ -9271,37 +6510,6 @@ in {
     };
   };
 
-  deluge = buildPythonPackage rec {
-    name = "deluge-${version}";
-    version = "1.3.13";
-
-    src = pkgs.fetchurl {
-      url = "http://download.deluge-torrent.org/source/${name}.tar.bz2";
-      sha256 = "1ig8kv22009f0ny6n77a4lcfddhdsxrdklpmhdqvis1wx8na5crp";
-    };
-
-    propagatedBuildInputs = with self; [
-      pyGtkGlade pkgs.libtorrentRasterbar twisted Mako chardet pyxdg self.pyopenssl service-identity
-    ];
-
-    nativeBuildInputs = [ pkgs.intltool ];
-
-    postInstall = ''
-       mkdir -p $out/share/applications
-       cp -R deluge/data/pixmaps $out/share/
-       cp -R deluge/data/icons $out/share/
-       cp deluge/data/share/applications/deluge.desktop $out/share/applications
-    '';
-
-    meta = {
-      homepage = http://deluge-torrent.org;
-      description = "Torrent client";
-      license = licenses.gpl3Plus;
-      maintainers = with maintainers; [ domenkozar ebzzry ];
-      platforms = platforms.all;
-    };
-  };
-
   pyxdg = buildPythonPackage rec {
     name = "pyxdg-0.25";
 
@@ -9321,21 +6529,9 @@ in {
     };
   };
 
-  chardet = buildPythonPackage rec {
-    name = "chardet-2.3.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/chardet/${name}.tar.gz";
-      sha256 = "e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa";
-    };
+  chardet = callPackage ../development/python-modules/chardet { };
 
-    meta = {
-      homepage = https://github.com/chardet/chardet;
-      description = "Universal encoding detector";
-      license = licenses.lgpl2;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
+  crayons = callPackage ../development/python-modules/crayons{ };
 
   django = self.django_1_11;
 
@@ -9343,10 +6539,7 @@ in {
     gdal = self.gdal;
   };
 
-  # TODO: Django 1.10 will be maintained until the end of the year. Therefore,
-  # it will be dropped before 17.09.
-  # https://github.com/NixOS/nixpkgs/issues/25375#issuecomment-298522597
-  django_1_10 = callPackage ../development/python-modules/django/1_10.nix {
+  django_2_0 = callPackage ../development/python-modules/django/2_0.nix {
     gdal = self.gdal;
   };
 
@@ -9439,18 +6632,37 @@ in {
     };
   };
 
-  django_guardian = callPackage ../development/python-modules/django_guardian.nix { };
+  django_extensions = callPackage ../development/python-modules/django-extensions { };
+
+  django_guardian = callPackage ../development/python-modules/django_guardian { };
+
+  django-ipware = callPackage ../development/python-modules/django-ipware { };
+
+  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
+
+  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
+
+  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
 
   django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
 
+  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
+
+  django-sites = callPackage ../development/python-modules/django-sites { };
+
+  django-sr = callPackage ../development/python-modules/django-sr { };
+
   django_tagging = callPackage ../development/python-modules/django_tagging { };
 
-  django_tagging_0_3 = self.django_tagging.overrideAttrs (attrs: rec {
-    name = "django-tagging-0.3.6";
+  django_tagging_0_4_3 = if
+       self.django != self.django_1_8
+  then throw "django_tagging_0_4_3 should be build with django_1_8"
+  else (callPackage ../development/python-modules/django_tagging {}).overrideAttrs (attrs: rec {
+    name = "django-tagging-0.4.3";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/d/django-tagging/${name}.tar.gz";
-      sha256 = "03zlbq13rydfh28wh0jk3x3cjk9x6jjmqnx1i3ngjmfwbxf8x6j1";
+      sha256 = "0617azpmp6jpg3d88v2ir97qrc9aqcs2s9gyvv9bgf2cp55khxhs";
     };
     propagatedBuildInputs = with self; [ django ];
   });
@@ -9481,6 +6693,8 @@ in {
   # See the Nixpkgs manual for examples on how to override the package set.
   django_hijack = callPackage ../development/python-modules/django-hijack { };
 
+  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
+
   django_nose = buildPythonPackage rec {
     name = "django-nose-${version}";
     version = "1.4.4";
@@ -9527,31 +6741,7 @@ in {
 
   django-raster = callPackage ../development/python-modules/django-raster { };
 
-  django_redis = buildPythonPackage rec {
-    name = "django-redis-${version}";
-    version = "4.2.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/django-redis/${name}.tar.gz";
-      sha256 = "9ad6b299458f7e6bfaefa8905f52560017369d82fb8fb0ed4b41adc048dbf11c";
-    };
-
-    doCheck = false;
-
-    buildInputs = [ self.mock ];
-
-    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_redis = callPackage ../development/python-modules/django_redis { };
 
   django_reversion = buildPythonPackage rec {
     name = "django-reversion-${version}";
@@ -9619,7 +6809,7 @@ in {
 
     meta = {
       description = "django-taggit is a reusable Django application for simple tagging";
-      homepage = http://github.com/alex/django-taggit/tree/master/;
+      homepage = https://github.com/alex/django-taggit/tree/master/;
       license = licenses.bsd2;
       maintainers = with maintainers; [ desiderius ];
     };
@@ -9645,52 +6835,11 @@ in {
     };
   };
 
-  django_pipeline = buildPythonPackage rec {
-    name = "django-pipeline-${version}";
-    version = "1.5.1";
+  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/django-pipeline/${name}.tar.gz";
-      sha256 = "1y49fa8jj7x9qjj5wzhns3zxwj0s73sggvkrv660cqw5qb7d8hha";
-    };
+  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
 
-    propagatedBuildInputs = with self; [ django futures ];
-
-    meta = with stdenv.lib; {
-      description = "Pipeline is an asset packaging library for Django";
-      homepage = https://github.com/cyberdelia/django-pipeline;
-      license = stdenv.lib.licenses.mit;
-    };
-  };
-
-  django_pipeline_1_3 = self.django_pipeline.overrideDerivation (super: rec {
-    name = "django-pipeline-1.3.27";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/django-pipeline/${name}.tar.gz";
-      sha256 = "0iva3cmnh5jw54c7w83nx9nqv523hjvkbjchzd2pb6vzilxf557k";
-    };
-  });
-
-
-  djblets = if (versionOlder self.django.version "1.6.11") ||
-               (versionAtLeast self.django.version "1.9")
-            then throw "djblets only suported for Django<1.8.999,>=1.6.11"
-            else buildPythonPackage rec {
-    name = "Djblets-0.9";
-
-    src = pkgs.fetchurl {
-      url = "http://downloads.reviewboard.org/releases/Djblets/0.9/${name}.tar.gz";
-      sha256 = "1rr5vjwiiw3kih4k9nawislf701l838dbk5xgizadvwp6lpbpdpl";
-    };
-
-    propagatedBuildInputs = with self; [
-      django feedparser django_pipeline_1_3 pillowfight pytz ];
-
-    meta = {
-      description = "A collection of useful extensions for Django";
-      homepage = https://github.com/djblets/djblets;
-    };
-  };
+  djmail = callPackage ../development/python-modules/djmail { };
 
   pillowfight = buildPythonPackage rec {
     name = "pillowfight-${version}";
@@ -9776,17 +6925,18 @@ in {
     };
   };
 
-  dulwich = callPackage ../development/python-modules/dulwich.nix {
+  dulwich = callPackage ../development/python-modules/dulwich {
     inherit (pkgs) git glibcLocales;
   };
 
   hg-git = buildPythonPackage rec {
     name = "hg-git-${version}";
-    version = "0.8.5";
+    version = "0.8.11";
+    disabled = isPy3k;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/h/hg-git/${name}.tar.gz";
-      sha256 = "10j7l1p2wx7s5nb6s35z1f3mcz2svz9ilcm26f3la9h9c76b7jpm";
+      sha256 = "08kw1sj3sq1q1571hwkc51w20ks9ysmlg93pcnmd6gr66bz02dyn";
     };
 
     propagatedBuildInputs = with self; [ dulwich ];
@@ -9795,21 +6945,32 @@ in {
       description = "Push and pull from a Git server using Mercurial";
       homepage = http://hg-git.github.com/;
       maintainers = with maintainers; [ koral ];
+      license = stdenv.lib.licenses.gpl2;
     };
   };
 
 
   docutils = buildPythonPackage rec {
     name = "docutils-${version}";
-    version = "0.13.1";
+    version = "0.14";
 
     src = pkgs.fetchurl {
       url = "mirror://sourceforge/docutils/${name}.tar.gz";
-      sha256 = "1gkma47i609jfs7dssxn4y9vsz06qi0l5q41nws0zgkpnrghz33i";
+      sha256 = "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji";
     };
 
-    # error: invalid command 'test'
-    doCheck = false;
+    checkPhase = if isPy3k then ''
+      ${python.interpreter} test3/alltests.py
+    '' else ''
+      ${python.interpreter} test/alltests.py
+    '';
+
+    # Create symlinks lacking a ".py" suffix, many programs depend on these names
+    postFixup = ''
+      (cd $out/bin && for f in *.py; do
+        ln -s $f $(echo $f | sed -e 's/\.py$//')
+      done)
+    '';
 
     meta = {
       description = "An open-source text processing system for processing plaintext documentation into useful formats, such as HTML or LaTeX";
@@ -9818,22 +6979,6 @@ in {
     };
   };
 
-  doxypy = buildPythonPackage rec {
-    name = "doxypy-0.4.2";
-
-    src = pkgs.fetchurl {
-      url = "http://code.foosel.org/files/${name}.tar.gz";
-      sha256 = "1afmb30zmy7942b53qa5vd3js883wwqqls35n8xfb3rnj0qnll8g";
-    };
-
-    meta = {
-      homepage = http://code.foosel.org/doxypy;
-      description = "An input filter for Doxygen";
-    };
-
-    doCheck = false;
-  };
-
 
   dtopt = buildPythonPackage rec {
     name = "dtopt-0.1";
@@ -9845,7 +6990,7 @@ in {
 
     meta = {
       description = "Add options to doctest examples while they are running";
-      homepage = http://pypi.python.org/pypi/dtopt;
+      homepage = https://pypi.python.org/pypi/dtopt;
     };
     # Test contain Python 2 print
     disabled = isPy3k;
@@ -9908,30 +7053,12 @@ in {
     propagatedBuildInputs = with self; [ ];
 
     meta = {
-      homepage = http://pypi.python.org/pypi/enum/;
+      homepage = https://pypi.python.org/pypi/enum/;
       description = "Robust enumerated type support in Python";
     };
   };
 
-  enum-compat = buildPythonPackage rec {
-    pname = "enum-compat";
-    version = "0.0.2";
-    name = "${pname}-${version}";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "14j1i963jic2vncbf9k5nq1vvv8pw2zsg7yvwhm7d9c6h7qyz74k";
-    };
-
-    propagatedBuildInputs = with self; [ enum34 ];
-
-    meta = {
-      homepage = "https://github.com/jstasiak/enum-compat";
-      description = "enum/enum34 compatibility package";
-      license = licenses.mit;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  enum-compat = callPackage ../development/python-modules/enum-compat { };
 
   enum34 = if pythonAtLeast "3.4" then null else buildPythonPackage rec {
     pname = "enum34";
@@ -10005,21 +7132,24 @@ in {
   };
 
   eventlet = buildPythonPackage rec {
-    name = "eventlet-0.17.4";
+    pname = "eventlet";
+    version = "0.20.0";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/e/eventlet/${name}.tar.gz";
-      sha256 = "0vam0qfm8p5jkpp2cv12r5bnpnv902ld7q074h7x5y5g9rqyj8c7";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "15bq5ybbigxnp5xwkps53zyhlg15lmcnq3ny2dppj0r0bylcs5rf";
     };
 
     buildInputs = with self; [ nose httplib2 pyopenssl  ];
 
     doCheck = false;  # too much transient errors to bother
 
-    propagatedBuildInputs = optionals (!isPyPy) [ self.greenlet ];
+    propagatedBuildInputs = optionals (!isPyPy) [ self.greenlet ] ++
+      (with self; [ enum-compat ]) ;
 
     meta = {
-      homepage = http://pypi.python.org/pypi/eventlet/;
+      homepage = https://pypi.python.org/pypi/eventlet/;
       description = "A concurrent networking library for Python";
     };
   };
@@ -10040,29 +7170,11 @@ in {
     };
   };
 
-  fastimport = buildPythonPackage rec {
-    name = "fastimport-${version}";
-    version = "0.9.4";
-
-    # Judging from SyntaxError
-    disabled = isPy3k;
+  fastimport = callPackage ../development/python-modules/fastimport { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/f/fastimport/${name}.tar.gz";
-      sha256 = "0k8x7552ypx9rc14vbsvg2lc6z0r8pv9laah28pdwyynbq10825d";
-    };
-
-    checkPhase = ''
-      ${python.interpreter} -m unittest discover
-    '';
+  fastrlock = callPackage ../development/python-modules/fastrlock {};
 
-    meta = {
-      homepage = https://launchpad.net/python-fastimport;
-      description = "VCS fastimport/fastexport parser";
-      maintainers = with maintainers; [ koral ];
-      license = licenses.gpl2Plus;
-    };
-  };
+  feedgen = callPackage ../development/python-modules/feedgen { };
 
   feedgenerator = callPackage ../development/python-modules/feedgenerator {
     inherit (pkgs) glibcLocales;
@@ -10104,7 +7216,7 @@ in {
     };
   };
 
-  docker_compose = callPackage ../development/python-modules/docker_compose.nix {};
+  docker_compose = callPackage ../development/python-modules/docker_compose {};
 
   fdroidserver = buildPythonPackage rec {
     version = "2016-05-31";
@@ -10180,12 +7292,20 @@ in {
     };
   };
 
+  filelock = callPackage ../development/python-modules/filelock {};
+
+  fiona = callPackage ../development/python-modules/fiona { gdal = pkgs.gdal; };
+
   flake8 = callPackage ../development/python-modules/flake8 { };
 
   flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
 
   flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
 
+  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
+
+  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
+
   flaky = buildPythonPackage rec {
     name = "flaky-${version}";
     version = "3.1.0";
@@ -10207,41 +7327,9 @@ in {
     };
   };
 
-  flask = buildPythonPackage {
-    name = "flask-0.12";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/Flask/Flask-0.12.tar.gz";
-      sha256 = "12yasybryp33rdchsqgckf15zj4pjfam7ly5spmn2sijpv6h7s4k";
-    };
+  flask = callPackage ../development/python-modules/flask { };
 
-    propagatedBuildInputs = with self; [ itsdangerous click werkzeug jinja2 ];
-
-    meta = {
-      homepage = http://flask.pocoo.org/;
-      description = "A microframework based on Werkzeug, Jinja 2, and good intentions";
-      license = licenses.bsd3;
-    };
-  };
-
-  flask_assets = buildPythonPackage rec {
-    name = "Flask-Assets-${version}";
-    version = "0.12";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/Flask-Assets/${name}.tar.gz";
-      sha256 = "0ivqsihk994rxw58vdgzrx4d77d7lpzjm4qxb38hjdgvi5xm4cb0";
-    };
-
-    propagatedBuildInputs = with self; [ flask webassets flask_script nose ];
-
-    meta = {
-      homepage = "http://github.com/miracle2k/flask-assets";
-      description = "Asset management for Flask, to compress and merge CSS and Javascript files";
-      license = licenses.bsd2;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  flask_assets = callPackage ../development/python-modules/flask-assets { };
 
   flask_cache = buildPythonPackage rec {
     name = "Flask-Cache-0.13.1";
@@ -10260,139 +7348,37 @@ in {
     };
   };
 
-  flask-compress = buildPythonPackage rec {
-    name = "Flask-Compress-${version}";
-    version = "1.3.2";
+  flask-common = callPackage ../development/python-modules/flask-common { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/Flask-Compress/${name}.tar.gz";
-      sha256 = "4fbb53e7f6ce8b1458a2c3d7a528564912f2641ab2f9f43819fc96ed7f770734";
-    };
+  flask-compress = callPackage ../development/python-modules/flask-compress { };
 
-    propagatedBuildInputs = with self; [ flask ];
+  flask-cors = callPackage ../development/python-modules/flask-cors { };
 
-    meta = {
-      description = "Compress responses in your Flask app with gzip";
-      homepage = "https://libwilliam.github.io/flask-compress/";
-      license = licenses.mit;
-    };
-  };
+  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
 
-  flask-cors = buildPythonPackage rec {
-    name = "Flask-Cors-${version}";
-    version = "2.1.2";
+  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/Flask-Cors/${name}.tar.gz";
-      sha256 = "0fd618a4f88ykqx4x55viz47cm9rl214q1b45a0b4mz5vhxffqpj";
-    };
+  flask_login = callPackage ../development/python-modules/flask-login { };
 
-    buildInputs = with self; [ nose ];
-    propagatedBuildInputs = with self; [ flask six ];
+  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
 
-    meta = {
-      description = "A Flask extension adding a decorator for CORS support";
-      homepage = https://github.com/corydolphin/flask-cors;
-      license = with licenses; [ mit ];
-    };
-  };
+  flask_mail = callPackage ../development/python-modules/flask-mail { };
 
-  flask_elastic = callPackage ../development/python-modules/flask-elastic.nix { };
-
-  flask_login = callPackage ../development/python-modules/flask-login.nix { };
-
-  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login.nix { };
+  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
 
   flask_migrate = callPackage ../development/python-modules/flask-migrate { };
 
-  flask_oauthlib = callPackage ../development/python-modules/flask-oauthlib.nix { };
-
-  flask_principal = buildPythonPackage rec {
-    name = "Flask-Principal-${version}";
-    version = "0.4.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/Flask-Principal/${name}.tar.gz";
-      sha256 = "0lwlr5smz8vfm5h9a9i7da3q1c24xqc6vm9jdywdpgxfbi5i7mpm";
-    };
-
-    propagatedBuildInputs = with self; [ flask blinker nose ];
-
-    meta = {
-      homepage = "http://packages.python.org/Flask-Principal/";
-      description = "Identity management for flask";
-      license = licenses.bsd2;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
-
-  flask-pymongo = buildPythonPackage rec {
-    name = "Flask-PyMongo-${version}";
-    version = "0.3.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/Flask-PyMongo/${name}.tar.gz";
-      sha256 = "0305qngvjrjyyabf8gxqgqvd9ffh00gr5yfrjf4nncr2my9svbyd";
-    };
-
-    propagatedBuildInputs = with self; [ flask pymongo_2_9_1 ];
-
-    meta = {
-      homepage = "http://flask-pymongo.readthedocs.org/";
-      description = "PyMongo support for Flask applications";
-      license = licenses.bsd2;
-    };
-  };
+  flask_oauthlib = callPackage ../development/python-modules/flask-oauthlib { };
 
-  flask-restful = buildPythonPackage rec {
-    name = "Flask-RESTful-${version}";
-    version = "0.3.5";
+  flask_principal = callPackage ../development/python-modules/flask-principal { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/Flask-RESTful/${name}.tar.gz";
-      sha256 = "cce4aeff959b571136b5af098bebe7d3deeca7eb1411c4e722ff2c5356ab4c42";
-    };
+  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
 
-    # TypeError: Only byte strings can be passed to C code
-    patchPhase = if isPy3k then ''
-      rm tests/test_crypto.py tests/test_paging.py
-    '' else null;
-    buildInputs = with self; [ nose mock blinker ];
-    propagatedBuildInputs = with self; [ flask six pytz aniso8601 pycrypto ];
-    PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
+  flask-restful = callPackage ../development/python-modules/flask-restful { };
 
-    meta = {
-      homepage = "http://flask-restful.readthedocs.io/";
-      description = "REST API building blocks for Flask";
-      license = licenses.bsd3;
-    };
-  };
+  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
 
-  flask-restplus = callPackage ../development/python-modules/flask-restplus/default.nix { };
-  # Exactly 0.8.6 is required by flexget
-  flask-restplus_0_8 = callPackage ../development/python-modules/flask-restplus/0.8.nix { };
-
-  flask_script = buildPythonPackage rec {
-    name = "Flask-Script-${version}";
-    version = "2.0.5";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/Flask-Script/${name}.tar.gz";
-      sha256 = "0zqh2yq8zk7m9b4xw1ryqmrljkdigfb3hk5155a3b5hkfnn6xxyf";
-    };
-
-    nativeBuildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ flask ];
-
-    meta = {
-      homepage = "http://github.com/smurfix/flask-script";
-      description = "Scripting support for Flask";
-      license = licenses.bsd3;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  flask_script = callPackage ../development/python-modules/flask-script { };
 
   flask_sqlalchemy = buildPythonPackage rec {
     name = "Flask-SQLAlchemy-${version}";
@@ -10412,9 +7398,9 @@ in {
     };
   };
 
-  flask_testing = callPackage ../development/python-modules/flask-testing.nix { };
+  flask_testing = callPackage ../development/python-modules/flask-testing { };
 
-  flask_wtf = callPackage ../development/python-modules/flask-wtf.nix { };
+  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
 
   wtforms = buildPythonPackage rec {
     version = "2.1";
@@ -10472,27 +7458,6 @@ in {
 
   pytorch = callPackage ../development/python-modules/pytorch { };
 
-  python_tvrage = buildPythonPackage (rec {
-    version = "0.4.1";
-    name = "tvrage-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-tvrage/python-tvrage-${version}.tar.gz";
-      sha256 = "f8a530376c5cf1bc573d1945a8504c3394b228c731a3eff5100c705997a72063";
-    };
-
-    # has mostly networking dependent tests
-    doCheck = false;
-    propagatedBuildInputs = with self; [ beautifulsoup ];
-
-    meta = {
-      homepage = https://github.com/ckreutzer/python-tvrage;
-      description = "Client interface for tvrage.com's XML-based api feeds";
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  });
-
   python2-pythondialog = buildPythonPackage rec {
     name = "python2-pythondialog-${version}";
     version = "3.3.0";
@@ -10504,7 +7469,7 @@ in {
     };
 
     patchPhase = ''
-      substituteInPlace dialog.py ":/bin:/usr/bin" ":$out/bin"
+      substituteInPlace dialog.py --replace ":/bin:/usr/bin" ":$out/bin"
     '';
 
     meta = with stdenv.lib; {
@@ -10525,70 +7490,11 @@ in {
     buildInputs = with self; [ nose ];
   };
 
-  ConfigArgParse = buildPythonPackage rec {
-    name = "ConfigArgParse-${version}";
-    version = "0.9.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/C/ConfigArgParse/ConfigArgParse-${version}.tar.gz";
-      sha256 = "0a984pvv7370yz7zbkl6s6i7yyl9myahx0m9jkjvg3hz5q8mf70l";
-    };
+  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
 
-    # no tests in tarball
-    doCheck = false;
-    propagatedBuildInputs = with self; [
+  jsonschema = callPackage ../development/python-modules/jsonschema { };
 
-    ];
-    buildInputs = with self; [
-
-    ];
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/zorro3/ConfigArgParse";
-    };
-  };
-
-  jsonschema = buildPythonPackage (rec {
-    version = "2.5.1";
-    name = "jsonschema-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/j/jsonschema/jsonschema-${version}.tar.gz";
-      sha256 = "0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn";
-    };
-
-    buildInputs = with self; [ nose mock vcversioner ];
-    propagatedBuildInputs = with self; [ functools32 ];
-
-    patchPhase = ''
-      substituteInPlace jsonschema/tests/test_jsonschema_test_suite.py --replace "python" "${python}/bin/${python.executable}"
-    '';
-
-    checkPhase = ''
-      nosetests
-    '';
-
-    meta = {
-      homepage = https://github.com/Julian/jsonschema;
-      description = "An implementation of JSON Schema validation for Python";
-      license = licenses.mit;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  });
-
-  vcversioner = buildPythonPackage rec {
-    name = "vcversioner-${version}";
-    version = "2.14.0.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/v/vcversioner/vcversioner-${version}.tar.gz";
-      sha256 = "11ivq1bm7v0yb4nsfbv9m7g7lyjn112gbvpjnjz8nv1fx633dm5c";
-    };
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/habnabit/vcversioner";
-    };
-  };
+  vcversioner = callPackage ../development/python-modules/vcversioner { };
 
   falcon = buildPythonPackage (rec {
     name = "falcon-1.0.0";
@@ -10646,12 +7552,14 @@ in {
     };
   });
 
+  fn = callPackage ../development/python-modules/fn { };
+
   folium = callPackage ../development/python-modules/folium { };
 
-  fontforge = pkgs.fontforge.override {
+  fontforge = toPythonModule (pkgs.fontforge.override {
     withPython = true;
     inherit python;
-  };
+  });
 
   fonttools = callPackage ../development/python-modules/fonttools { };
 
@@ -10739,24 +7647,7 @@ in {
     };
   };
 
-  fuse = buildPythonPackage (rec {
-    baseName = "fuse";
-    version = "0.2.1";
-    name = "${baseName}-${version}";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://sourceforge/fuse/fuse-python-${version}.tar.gz";
-      sha256 = "06rmp1ap6flh64m81j0n3a357ij2vj9zwcvvw0p31y6hz1id9shi";
-    };
-
-    buildInputs = with self; [ pkgs.pkgconfig pkgs.fuse ];
-
-    meta = {
-      description = "Python bindings for FUSE";
-      license = licenses.lgpl21;
-    };
-  });
+  fuse = callPackage ../development/python-modules/python-fuse { fuse = pkgs.fuse; };
 
   fusepy = buildPythonPackage rec {
     name = "fusepy-2.0.4";
@@ -10782,10 +7673,9 @@ in {
         Python module that provides a simple interface to FUSE and MacFUSE.
         It's just one file and is implemented using ctypes.
       '';
-      homepage = http://github.com/terencehonles/fusepy;
+      homepage = https://github.com/terencehonles/fusepy;
       license = licenses.isc;
       platforms = platforms.unix;
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
@@ -10793,11 +7683,11 @@ in {
 
   futures = buildPythonPackage rec {
     name = "futures-${version}";
-    version = "3.0.5";
+    version = "3.1.1";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/f/futures/${name}.tar.gz";
-      sha256 = "1pw1z4329xvlabdpwqa6b7v2fxf7hl64m4cgr22ckbym8m8m4hh5";
+      sha256 = "1z9j05fdj2yszjmz4pmjhl2jdnwhdw80cjwfqq3ci0yx19gv9v2i";
     };
 
     # This module is for backporting functionality to Python 2.x, it's builtin in py3k
@@ -10842,21 +7732,19 @@ in {
     };
   };
 
-  gdal = (pkgs.gdal.overrideDerivation (oldattrs: {
-    name = "${python.libPrefix}-" + oldattrs.name;
-  })).override {
+  gdal = toPythonModule (pkgs.gdal.override {
     pythonPackages = self;
-  };
+  });
 
   gdrivefs = buildPythonPackage rec {
-    version = "0.14.8";
+    version = "0.14.9";
     name = "gdrivefs-${version}";
     namePrefix = "";
     disabled = !isPy27;
 
     src = pkgs.fetchurl {
       url = "https://github.com/dsoprea/GDriveFS/archive/${version}.tar.gz";
-      sha256 = "1dch10ajkp567pwvssvz1v5c0hxfyd8wf9qd7j1gfybh7f7hyzvw";
+      sha256 = "1mc2r35nf5k8vzwdcdhi0l9rb97amqd5xb53lhydj8v8f4rndk7a";
     };
 
     buildInputs = with self; [ gipc greenlet httplib2 six ];
@@ -10881,7 +7769,6 @@ in {
       homepage = https://github.com/dsoprea/GDriveFS;
       license = licenses.gpl2;
       platforms = platforms.unix;
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
@@ -10912,40 +7799,7 @@ in {
     };
   };
 
-  gevent = buildPythonPackage rec {
-    name = "gevent-1.1.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/g/gevent/${name}.tar.gz";
-      sha256 = "cb15cf73d69a2eeefed330858f09634e2c50bf46da9f9e7635730fcfb872c02c";
-    };
-
-    # Why do we have this patch?
-    postPatch = ''
-      substituteInPlace libev/ev.c --replace \
-        "ecb_inline void ecb_unreachable (void) ecb_noreturn" \
-        "ecb_inline ecb_noreturn void ecb_unreachable (void)"
-    '';
-
-    buildInputs = with self; [ pkgs.libev ];
-    propagatedBuildInputs = with self; optionals (!isPyPy) [ greenlet ];
-
-    checkPhase = ''
-      cd greentest
-      ${python.interpreter} testrunner.py
-    '';
-
-    # Bunch of failures.
-    doCheck = false;
-
-    meta = {
-      description = "Coroutine-based networking library";
-      homepage = http://www.gevent.org/;
-      license = licenses.mit;
-      platforms = platforms.unix;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
+  gevent = callPackage ../development/python-modules/gevent { };
 
   geventhttpclient = buildPythonPackage rec {
     name = "geventhttpclient-${version}";
@@ -10966,7 +7820,7 @@ in {
     '';
 
     meta = {
-      homepage = http://github.com/gwik/geventhttpclient;
+      homepage = https://github.com/gwik/geventhttpclient;
       description = "HTTP client library for gevent";
       license = licenses.mit;
       maintainers = with maintainers; [ koral ];
@@ -10986,6 +7840,8 @@ in {
 
   };
 
+  geopandas = callPackage ../development/python-modules/geopandas { };
+
   gevent-websocket = buildPythonPackage rec {
     name = "gevent-websocket-0.9.3";
 
@@ -11020,7 +7876,7 @@ in {
 
   gflags = callPackage ../development/python-modules/gflags { };
 
-  ghdiff = callPackage ../development/python-modules/ghdiff.nix { };
+  ghdiff = callPackage ../development/python-modules/ghdiff { };
 
   gipc = buildPythonPackage rec {
     name = "gipc-0.5.0";
@@ -11045,7 +7901,6 @@ in {
       '';
       homepage = http://gehrcke.de/gipc;
       license = licenses.mit;
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
@@ -11061,7 +7916,7 @@ in {
 
     meta = {
       description = "A command-line tool that helps you clean up Git branches";
-      homepage = http://lab.arc90.com/2012/04/03/git-sweep/;
+      homepage = https://github.com/arc90/git-sweep;
       license = licenses.mit;
       maintainers = with maintainers; [ pSub ];
     };
@@ -11069,14 +7924,14 @@ in {
 
   glances = buildPythonPackage rec {
     name = "glances-${version}";
-    version = "2.10";
+    version = "2.11.1";
     disabled = isPyPy;
 
     src = pkgs.fetchFromGitHub {
       owner = "nicolargo";
       repo = "glances";
       rev = "v${version}";
-      sha256 = "0hxs9bplxvj6grq9dqinr4f5ip6ray6mrw54scrcaqal8f3c8ah2";
+      sha256 = "1n3x0bkydlqmxdr0wdgfgichp8fyldzkaijj618y5ns2k5qiwsxr";
     };
 
     doCheck = false;
@@ -11089,10 +7944,10 @@ in {
     '';
 
     meta = {
-      homepage = "http://nicolargo.github.io/glances/";
+      homepage = "https://nicolargo.github.io/glances/";
       description = "Cross-platform curses-based monitoring tool";
       license = licenses.lgpl3;
-      maintainers = with maintainers; [ koral ];
+      maintainers = with maintainers; [ primeos koral ];
     };
   };
 
@@ -11174,6 +8029,10 @@ in {
     propagatedBuildInputs = with self; [ oauth2client gdata simplejson httplib2 keyring six rsa ];
   };
 
+  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
+
+  google_api_core = callPackage ../development/python-modules/google_api_core { };
+
   google_api_python_client = buildPythonPackage rec {
     name = "google-api-python-client-${version}";
     version = "1.5.1";
@@ -11222,6 +8081,14 @@ in {
     };
   };
 
+  google_auth = callPackage ../development/python-modules/google_auth { };
+
+  google_cloud_core = callPackage ../development/python-modules/google_cloud_core { };
+
+  google_cloud_speech = callPackage ../development/python-modules/google_cloud_speech { };
+
+  google_gax = callPackage ../development/python-modules/google_gax { };
+
   grammalecte = callPackage ../development/python-modules/grammalecte { };
 
   greenlet = buildPythonPackage rec {
@@ -11242,20 +8109,20 @@ in {
     '';
 
     meta = {
-      homepage = http://pypi.python.org/pypi/greenlet;
+      homepage = https://pypi.python.org/pypi/greenlet;
       description = "Module for lightweight in-process concurrent programming";
       license     = licenses.lgpl2;
       platforms   = platforms.all;
     };
   };
 
-  grib-api = if (isPy27) then
-      (pkgs.grib-api.overrideAttrs (oldattrs: {
-    name = "${python.libPrefix}-" + oldattrs.name;
-  })).override {
-    enablePython = true;
-    pythonPackages = self;
-  } else throw "grib-api not supported for interpreter ${python.executable}";
+  grib-api = disabledIf (!isPy27) (toPythonModule
+    (pkgs.grib-api.override {
+      enablePython = true;
+      pythonPackages = self;
+    }));
+
+  grpcio = callPackage ../development/python-modules/grpcio { };
 
   gspread = buildPythonPackage rec {
     version = "0.2.3";
@@ -11273,32 +8140,6 @@ in {
     };
   };
 
-  gssapi = buildPythonPackage rec {
-    version = "1.1.4";
-    name = "gssapi-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/g/gssapi/${name}.tar.gz";
-      sha256 = "0mdl7m6h57n0zkfmm6fqz0hldfxrb2d7d48k2lhc8hqbr3962c7x";
-    };
-
-    GSSAPI_SUPPORT_DETECT = "false";
-    LD_LIBRARY_PATH="${pkgs.krb5Full}/lib";
-
-    buildInputs = [ pkgs.gss pkgs.krb5Full pkgs.which
-                    self.nose self.shouldbe ];
-
-    propagatedBuildInputs = with self; [ decorator enum34 six ];
-
-    doCheck = false; # No such file or directory: '/usr/sbin/kadmin.local'
-
-    meta = {
-      homepage = https://pypi.python.org/pypi/gssapi;
-      description = "Python GSSAPI Wrapper";
-      license = licenses.mit;
-    };
-  };
-
   gyp = buildPythonPackage rec {
     name = "gyp-${version}";
     version = "2015-06-11";
@@ -11331,9 +8172,12 @@ in {
 
   guessit = callPackage ../development/python-modules/guessit { };
 
+  # used by flexget
+  guessit_2_0 = callPackage ../development/python-modules/guessit/2.0.nix { };
+
   rebulk = callPackage ../development/python-modules/rebulk { };
 
-  gunicorn = callPackage ../development/python-modules/gunicorn.nix { };
+  gunicorn = callPackage ../development/python-modules/gunicorn { };
 
   hawkauthlib = buildPythonPackage rec {
     name = "hawkauthlib-${version}";
@@ -11349,42 +8193,19 @@ in {
 
   hmmlearn = callPackage ../development/python-modules/hmmlearn { };
 
-  hcs_utils = buildPythonPackage rec {
-    name = "hcs_utils-1.5";
-
-    src = pkgs.fetchurl {
-      url    = "mirror://pypi/h/hcs_utils/${name}.tar.gz";
-      sha256 = "1d2za9crkgzildx610w3zif2i8phcqhh6n8nzg3yvy2mg0s18mkl";
-    };
-
-    LC_ALL="en_US.UTF-8";
-
-    buildInputs = with self; [ six pkgs.glibcLocales ];
-
-    meta = {
-      description = "Library collecting some useful snippets";
-      homepage    = https://pypi.python.org/pypi/hcs_utils/1.3;
-      license     = licenses.isc;
-      maintainers = with maintainers; [ lovek323 ];
-      platforms   = platforms.unix;
-    };
-  };
-
+  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
 
   hetzner = buildPythonPackage rec {
     name = "hetzner-${version}";
-    version = "0.7.5";
+    version = "0.8.0";
 
     src = pkgs.fetchFromGitHub {
       repo = "hetzner";
-      owner = "RedMoonStudios";
+      owner = "aszlig";
       rev = "v${version}";
-      sha256 = "1fw7i1z4a39i1ljd9qd4f5p1p3a4257jfglkdpw90xjwl7fdpq42";
+      sha256 = "04q2q2w2qkhfly8rfjg2h5pnh42gs18l6cmipqc37yf7qvkw3nd0";
     };
 
-    # not there yet, but coming soon.
-    doCheck = false;
-
     meta = {
       homepage = "https://github.com/RedMoonStudios/hetzner";
       description = "High-level Python API for accessing the Hetzner robot";
@@ -11416,37 +8237,7 @@ in {
   };
 
 
-  html5lib = buildPythonPackage (rec {
-    version = "0.999999999";
-    name = "html5lib-${version}";
-
-    src = pkgs.fetchurl {
-      url = "http://github.com/html5lib/html5lib-python/archive/${version}.tar.gz";
-      sha256 = "09j6194f5mlnd5xwbavwvnndwl1x91jw74shxl6hcxjp4fxg3h05";
-    };
-
-    buildInputs = with self; [ flake8 pytest pytest-expect mock ];
-    propagatedBuildInputs = with self; [
-      six webencodings
-    ] ++ optionals isPy26 [ ordereddict ];
-
-    checkPhase = ''
-      py.test
-    '';
-
-    meta = {
-      homepage = https://github.com/html5lib/html5lib-python;
-      downloadPage = https://github.com/html5lib/html5lib-python/releases;
-      description = "HTML parser based on WHAT-WG HTML5 specification";
-      longDescription = ''
-        html5lib is a pure-python library for parsing HTML. It is designed to
-        conform to the WHATWG HTML specification, as is implemented by all
-        major web browsers.
-      '';
-      license = licenses.mit;
-      maintainers = with maintainers; [ domenkozar prikhi ];
-    };
-  });
+  html5lib = callPackage ../development/python-modules/html5lib { };
 
   http_signature = buildPythonPackage (rec {
     name = "http_signature-0.1.4";
@@ -11484,19 +8275,9 @@ in {
     };
   };
 
-  hvac = buildPythonPackage rec {
-    name    = "hvac-${version}";
-    version = "0.2.15";
-
-    src = pkgs.fetchurl {
-      url    = "https://pypi.python.org/packages/11/ba/6101780891b9d55f6174fa78b47d462c8c1f0cde34072b45fc39f7f8a77c/hvac-0.2.15.tar.gz";
-      sha256 = "0qxa4g1ij1bj27mbp8l54lcr7d5krkb2rayisc6shkpf2b51ip4c";
-    };
-
-    propagatedBuildInputs = with self; [ requests ];
-  };
+  hvac = callPackage ../development/python-modules/hvac { };
 
-  hypothesis = callPackage ../development/python-modules/hypothesis.nix { };
+  hypothesis = callPackage ../development/python-modules/hypothesis { };
 
   colored = buildPythonPackage rec {
     name = "colored-${version}";
@@ -11537,7 +8318,7 @@ in {
     propagatedBuildInputs = with self; [ spark_parser xdis ];
     meta = {
       description = "Python cross-version byte-code deparser";
-      homepage = http://github.com/rocky/python-uncompyle6/;
+      homepage = https://github.com/rocky/python-uncompyle6/;
       license = licenses.mit;
     };
   };
@@ -11680,24 +8461,7 @@ in {
     };
   };
 
-
-  inflection = buildPythonPackage rec {
-     version = "0.3.1";
-     name = "inflection-${version}";
-
-     src = pkgs.fetchurl {
-       url= "mirror://pypi/i/inflection/${name}.tar.gz";
-       sha256 = "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq";
-     };
-
-     disabled = isPy3k;
-
-     meta = {
-       homepage = https://github.com/jpvanhal/inflection;
-       description = "A port of Ruby on Rails inflector to Python";
-       maintainers = with maintainers; [ NikolaMandic ];
-     };
-  };
+  inflection = callPackage ../development/python-modules/inflection { };
 
   influxdb = buildPythonPackage rec {
     name = "influxdb-4.0.0";
@@ -11761,22 +8525,7 @@ in {
     };
   };
 
-  interruptingcow = buildPythonPackage rec {
-    name = "interruptingcow-${version}";
-    version = "0.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/i/interruptingcow/${name}.tar.gz";
-      sha256 = "1cv4pm2h0f87n9w4r3l1f96skwmng95sawn7j00ns0rdp1zshr9d";
-    };
-
-    meta = {
-      description = "A watchdog that interrupts long running code";
-      homepage = https://bitbucket.org/evzijst/interruptingcow;
-      license = licenses.mit;
-      maintainers = with maintainers; [ benley ];
-    };
-  };
+  interruptingcow = callPackage ../development/python-modules/interruptingcow {};
 
   iptools = buildPythonPackage rec {
     version = "0.6.1";
@@ -11791,28 +8540,11 @@ in {
 
     meta = {
       description = "Utilities for manipulating IP addresses including a class that can be used to include CIDR network blocks in Django's INTERNAL_IPS setting";
-      homepage = http://pypi.python.org/pypi/iptools;
+      homepage = https://pypi.python.org/pypi/iptools;
     };
   };
 
-
-  ipy = buildPythonPackage rec {
-    version = "0.74";
-    name = "ipy-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/I/IPy/IPy-${version}.tar.gz";
-      sha256 = "5d6abb870c25f946c45c35cf50e66155598660f2765b35cb12e36ed5223c2b89";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "Class and tools for handling of IPv4 and IPv6 addresses and networks";
-      homepage = http://pypi.python.org/pypi/IPy;
-    };
-  };
+  ipy = callPackage ../development/python-modules/IPy { };
 
   ipykernel = callPackage ../development/python-modules/ipykernel { };
 
@@ -11825,40 +8557,18 @@ in {
 
   ipython_6 = callPackage ../development/python-modules/ipython { };
 
-  ipython_genutils = buildPythonPackage rec {
-    version = "0.2.0";
-    name = "ipython_genutils-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/i/ipython_genutils/${name}.tar.gz";
-      sha256 = "eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8";
-    };
-
-    LC_ALL = "en_US.UTF-8";
-    buildInputs = with self; [ nose pkgs.glibcLocales ];
-
-    checkPhase = ''
-      nosetests -v ipython_genutils/tests
-    '';
-
-    meta = {
-      description = "Vestigial utilities from IPython";
-      homepage = http://ipython.org/;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
-
+  ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
 
   ipywidgets = callPackage ../development/python-modules/ipywidgets { };
 
   ipaddr = buildPythonPackage rec {
-    name = "ipaddr-2.1.10";
+    name = "ipaddr-${version}";
+    version = "2.1.11";
     disabled = isPy3k;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/i/ipaddr/${name}.tar.gz";
-      sha256 = "18ycwkfk3ypb1yd09wg20r7j7zq2a73d7j6j10qpgra7a7abzhyj";
+      sha256 = "1dwq3ngsapjc93fw61rp17fvzggmab5x1drjzvd4y4q0i255nm8v";
     };
 
     meta = {
@@ -11939,26 +8649,7 @@ in {
 
   iso3166 = callPackage ../development/python-modules/iso3166 {};
 
-  iso8601 = buildPythonPackage rec {
-    name = "iso8601-${version}";
-    version = "0.1.11";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/i/iso8601/${name}.tar.gz";
-      sha256 = "e8fb52f78880ae063336c94eb5b87b181e6a0cc33a6c008511bac9a6e980ef30";
-    };
-
-    buildInputs = [ self.pytest ];
-
-    checkPhase = ''
-      py.test iso8601
-    '';
-
-    meta = {
-      homepage = https://bitbucket.org/micktwomey/pyiso8601/;
-      description = "Simple module to parse ISO 8601 dates";
-      maintainers = with maintainers; [ phreedom ];
-    };
-  };
+  iso8601 = callPackage ../development/python-modules/iso8601 { };
 
   isort = buildPythonPackage rec {
     name = "${pname}-${version}";
@@ -11979,27 +8670,11 @@ in {
     };
   };
 
-  jabberbot = callPackage ../development/python-modules/jabberbot.nix {};
+  jabberbot = callPackage ../development/python-modules/jabberbot {};
 
   jedi = callPackage ../development/python-modules/jedi { };
 
-  jellyfish = buildPythonPackage rec {
-    version = "0.5.2";
-    name = "jellyfish-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/j/jellyfish/${name}.tar.gz";
-      sha256 = "15xk0kbr1gig9r1mp22lk9mk3jyi886h8ywn9diixhnyl4q6dacn";
-    };
-
-    buildInputs = with self; [ pytest unicodecsv ];
-
-    meta = {
-      homepage = http://github.com/sunlightlabs/jellyfish;
-      description = "Approximate and phonetic matching of strings";
-      maintainers = with maintainers; [ koral ];
-    };
-  };
+  jellyfish = callPackage ../development/python-modules/jellyfish { };
 
   j2cli = buildPythonPackage rec {
     name = "j2cli-${version}";
@@ -12029,34 +8704,7 @@ in {
     };
   };
 
-  jinja2 = buildPythonPackage rec {
-    pname = "Jinja2";
-    version = "2.9.5";
-    name = "${pname}-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/J/Jinja2/${name}.tar.gz";
-      sha256 = "702a24d992f856fa8d5a7a36db6128198d0c21e1da34448ca236c42e92384825";
-    };
-
-    propagatedBuildInputs = with self; [ markupsafe ];
-
-    # No tests included
-    doCheck = false;
-
-    meta = {
-      homepage = http://jinja.pocoo.org/;
-      description = "Stand-alone template engine";
-      license = licenses.bsd3;
-      longDescription = ''
-        Jinja2 is a template engine written in pure Python. It provides a
-        Django inspired non-XML syntax but supports inline expressions and
-        an optional sandboxed environment.
-      '';
-      platforms = platforms.all;
-      maintainers = with maintainers; [ pierron garbas sjourdois ];
-    };
-  };
+  jinja2 = callPackage ../development/python-modules/jinja2 { };
 
   jinja2_time = buildPythonPackage rec {
     version = "0.2.0";
@@ -12076,6 +8724,8 @@ in {
     };
   };
 
+  jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { };
+
   jmespath = buildPythonPackage rec {
     name = "jmespath-0.9.0";
 
@@ -12098,26 +8748,9 @@ in {
     inherit (self) systemd pytest;
   };
 
-  jrnl = buildPythonPackage rec {
-    name = "jrnl-1.9.7";
-    disabled = isPy3k;
+  jsondate = callPackage ../development/python-modules/jsondate { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/j/jrnl/${name}.tar.gz";
-      sha256 = "af599a863ac298533685a7236fb86307eebc00a38eb8bb96f4f67b5d83227ec8";
-    };
-
-    propagatedBuildInputs = with self; [
-      pytz six tzlocal keyring argparse dateutil_1_5
-      parsedatetime
-    ];
-
-    meta = {
-      homepage = http://maebert.github.io/jrnl/;
-      description = "A simple command line journal application that stores your journal in a plain text file";
-      license = licenses.mit;
-    };
-  };
+  jsondiff = callPackage ../development/python-modules/jsondiff { };
 
   jsonnet = buildPythonPackage {
     inherit (pkgs.jsonnet) name src;
@@ -12125,32 +8758,11 @@ in {
 
   jupyter_client = callPackage ../development/python-modules/jupyter_client { };
 
-  jupyter_core = buildPythonPackage rec {
-    version = "4.3.0";
-    name = "jupyter_core-${version}";
+  jupyter_core = callPackage ../development/python-modules/jupyter_core { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/j/jupyter_core/${name}.tar.gz";
-      sha256 = "a96b129e1641425bf057c3d46f4f44adce747a7d60107e8ad771045c36514d40";
-    };
+  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
 
-    buildInputs = with self; [ pytest mock ];
-    propagatedBuildInputs = with self; [ ipython traitlets];
-
-    checkPhase = ''
-      py.test
-    '';
-
-    # Several tests fail due to being in a chroot
-    doCheck = false;
-
-    meta = {
-      description = "Jupyter core package. A base package on which Jupyter projects rely";
-      homepage = http://jupyter.org/;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
+  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
 
   jsonpath_rw = buildPythonPackage rec {
     name = "jsonpath-rw-${version}";
@@ -12195,98 +8807,14 @@ in {
     };
   };
 
-  keyring = buildPythonPackage rec {
-    name = "keyring-8.4.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/k/keyring/${name}.tar.gz";
-      sha256 = "1286sh5g53168qxbl4g5bmns9ci0ld0jl3h44b7h8is5nw1421ar";
-    };
-
-    buildInputs = with self;
-      [ fs gdata python_keyczar mock pyasn1 pycrypto pytest_28 six setuptools_scm pytestrunner ];
-
-    checkPhase = ''
-      py.test $out
-    '';
-
-    meta = {
-      description = "Store and access your passwords safely";
-      homepage    = "https://pypi.python.org/pypi/keyring";
-      license     = licenses.psfl;
-      maintainers = with maintainers; [ lovek323 ];
-      platforms   = platforms.unix;
-    };
-  };
-
-  klaus = buildPythonPackage rec {
-    version = "0.9.1";
-    name = "klaus-${version}";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/jonashaag/klaus/archive/${version}.tar.gz";
-      sha256 = "0k3v3p56hq8alm083grrp98znxkz1zqx0pczm2lah8qddbyrdkgm";
-    };
-
-    propagatedBuildInputs = with self;
-      [ humanize httpauth dulwich pygments flask six ];
-
-    meta = {
-      description = "The first Git web viewer that Just Works";
-      homepage    = "https://github.com/jonashaag/klaus";
-      #license     = licenses.mit; # I'm not sure about the license
-      maintainers = with maintainers; [ matthiasbeyer ];
-      platforms   = platforms.linux; # Can only test linux
-    };
-  };
-
-  klein = buildPythonPackage rec {
-    name = "klein-15.3.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/k/klein/${name}.tar.gz";
-      sha256 = "1hl2psnn1chm698rimyn9dgcpl1mxgc8dj11b3ipp8z37yfjs3z9";
-    };
+  keyring = callPackage ../development/python-modules/keyring { };
 
-    disabled = isPy3k;
-
-    propagatedBuildInputs = with self; [ werkzeug twisted ];
-
-    meta = {
-      description = "Klein Web Micro-Framework";
-      homepage    = "https://github.com/twisted/klein";
-      license     = licenses.mit;
-    };
-  };
+  keyutils = callPackage ../development/python-modules/keyutils { };
 
+  klein = callPackage ../development/python-modules/klein { };
+ 
   koji = callPackage ../development/python-modules/koji { };
 
-  kombu_3 = buildPythonPackage rec {
-    name = "kombu-${version}";
-    version = "3.0.35";
-
-    disabled = pythonOlder "2.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/k/kombu/${name}.tar.gz";
-      sha256 = "09xpxpjz9nk8d14dj361dqdwyjwda3jlf1a7v6jif9wn2xm37ar2";
-    };
-
-    # most of these are simply to allow the test suite to do its job
-    buildInputs = with self; optionals isPy27 [ mock unittest2 nose redis qpid-python pymongo sqlalchemy pyyaml msgpack boto ];
-
-    propagatedBuildInputs = with self; [ amqp_1 anyjson ] ++
-      (optionals (pythonOlder "2.7") [ importlib ordereddict ]);
-
-    # tests broken on python 2.6? https://github.com/nose-devs/nose/issues/806
-    doCheck = isPy27;
-
-    meta = {
-      description = "Messaging library for Python";
-      homepage    = "http://github.com/celery/kombu";
-      license     = licenses.bsd3;
-    };
-  };
-
   kombu = buildPythonPackage rec {
     name = "kombu-${version}";
     version = "4.0.2";
@@ -12296,6 +8824,14 @@ in {
       sha256 = "18hiricdnbnlz6hx3hbaa4dni6npv8rbid4dhf7k02k16qm6zz6h";
     };
 
+    # Backport fix for python-3.6 from master (see issue https://github.com/celery/kombu/issues/675)
+    # TODO remove at next update
+    patches = [ (pkgs.fetchpatch {
+      url = "https://github.com/celery/kombu/commit/dc3fceff59d79ceac3f8f11a5d697beabb4b7a7f.patch";
+      sha256 = "0s6gsihzjvmpffc7xrrcijw00r56yb74jg0sbjgng2v1324z1da9";
+      name = "don-t-modify-dict-size-while-iterating-over-it";
+    }) ];
+
     buildInputs = with self; [ pytest case pytz ];
 
     propagatedBuildInputs = with self; [ amqp ];
@@ -12307,50 +8843,17 @@ in {
     };
   };
 
-  konfig = buildPythonPackage rec {
-    name = "konfig-${version}";
-    version = "0.9";
-
-    # konfig unconditionaly depend on configparser, even if it is part of
-    # the standard library in python 3.2 or above.
-    disabled = isPy3k;
-
-    src = pkgs.fetchgit {
-      url = https://github.com/mozilla-services/konfig.git;
-      rev = "refs/tags/${version}";
-      sha256 = "1kc5iy61ckbmf65d9ssyqiyb25lnxjvr7c2vcsdl9wx4n6fhwzx3";
-    };
-
-    propagatedBuildInputs = with self; [ configparser argparse ];
-
-    meta = {
-      description = "Yet Another Config Parser";
-      homepage    = "https://github.com/mozilla-services/konfig";
-      license     = licenses.mpl20;
-    };
-  };
+  konfig = callPackage ../development/python-modules/konfig { };
 
   kitchen = callPackage ../development/python-modules/kitchen/default.nix { };
 
+  kubernetes = callPackage ../development/python-modules/kubernetes/default.nix { };
+
   pylast = callPackage ../development/python-modules/pylast/default.nix { };
 
-  pylru = buildPythonPackage rec {
-    name = "pylru-${version}";
-    version = "1.0.9";
+  pylru = callPackage ../development/python-modules/pylru/default.nix { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pylru/${name}.tar.gz";
-      sha256 = "0b0pq0l7xv83dfsajsc49jcxzc99kb9jfx1a1dlx22hzcy962dvi";
-    };
-
-    meta = {
-      homepage = "https://github.com/jlhutch/pylru";
-      description = "A least recently used (LRU) cache implementation";
-      license = licenses.gpl2;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  lark-parser = callPackage ../development/python-modules/lark-parser { };
 
   lazy-object-proxy = buildPythonPackage rec {
     name = "lazy-object-proxy-${version}";
@@ -12377,6 +8880,8 @@ in {
 
   };
 
+  ldaptor = callPackage ../development/python-modules/ldaptor { };
+
   le = buildPythonPackage rec {
     name = "le-${version}";
     version = "1.4.29";
@@ -12427,6 +8932,8 @@ in {
     ];
   };
 
+  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
+
   python-Levenshtein = buildPythonPackage rec {
     name = "python-Levenshtein-${version}";
     version = "0.12.0";
@@ -12469,25 +8976,29 @@ in {
     };
   });
 
-  libgpuarray-cuda = callPackage ../development/python-modules/libgpuarray/cuda/default.nix rec {
-    inherit (self) numpy scipy;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit75;
-    clblas = pkgs.clblas-cuda;
+  libgpuarray = callPackage ../development/python-modules/libgpuarray {
+    clblas = pkgs.clblas.override { boost = self.boost; };
+    cudaSupport = pkgs.config.cudaSupport or false;
   };
 
-  libnacl = callPackage ../development/python-modules/libnacl/default.nix {
+  librepo = toPythonModule (pkgs.librepo.override {
+    inherit python;
+  });
+
+  libnacl = callPackage ../development/python-modules/libnacl {
     inherit (pkgs) libsodium;
   };
 
-  libplist = if isPy3k then throw "libplist not supported for interpreter ${python.executable}" else
-    (pkgs.libplist.override{python2Packages=self; }).py;
+  libplist = disabledIf isPy3k
+    (toPythonModule (pkgs.libplist.override{python2Packages=self; })).py;
 
-  libxml2 = if isPy3k then throw "libxml2 not supported for interpreter ${python.executable}" else
-    (pkgs.libxml2.override{pythonSupport=true; python2=python;}).py;
+  libxml2 = disabledIf isPy3k
+    (toPythonModule (pkgs.libxml2.override{pythonSupport=true; python2=python;})).py;
 
-  libxslt = if isPy3k then throw "libxslt not supported for interpreter ${python.executable}" else
-    (pkgs.libxslt.override{pythonSupport=true; python2=python; inherit (self) libxml2;}).py;
+  libxslt = disabledIf isPy3k
+    (toPythonModule (pkgs.libxslt.override{pythonSupport=true; python2=python; inherit (self) libxml2;})).py;
+
+  limits = callPackage ../development/python-modules/limits { };
 
   limnoria = buildPythonPackage rec {
     name = "limnoria-${version}";
@@ -12535,74 +9046,17 @@ in {
     };
   };
 
-  livereload = buildPythonPackage rec {
-    name = "livereload-${version}";
-    version = "2.5.0";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "lepture";
-      repo = "python-livereload";
-      rev = "v${version}";
-      sha256 = "0ixsc7wibmkfk9fnyq0d1b5d9snxfpzzzgsxvq28rn54v6q8b7m2";
-    };
-
-    buildInputs = with self; [ nose django ];
+  linode-api = callPackage ../development/python-modules/linode-api { };
 
-    propagatedBuildInputs = with self; [ tornado six ];
+  livereload = callPackage ../development/python-modules/livereload { };
 
-    meta = {
-      description = "Runs a local server that reloads as you develop";
-      homepage = "https://github.com/lepture/python-livereload";
-      license = licenses.bsd3;
-    };
+  llfuse = callPackage ../development/python-modules/llfuse {
+    fuse = pkgs.fuse;  # use "real" fuse, not the python module
   };
 
-  llfuse = buildPythonPackage rec {
-    name = "llfuse-1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/llfuse/${name}.tar.bz2";
-      sha256 = "1li7q04ljrvwharw4fblcbfhvk6s0l3lnv8yqb4c22lcgbkiqlps";
-    };
-
-    buildInputs = with self; [ pytest pkgs.pkgconfig pkgs.fuse pkgs.attr pkgs.which ];
-
-    propagatedBuildInputs = with self; [ contextlib2 ];
-
-    checkPhase = ''
-      py.test
-    '';
-
-    # FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin'
-    doCheck = false;
-
-    meta = {
-      description = "Python bindings for the low-level FUSE API";
-      homepage = https://code.google.com/p/python-llfuse/;
-      license = licenses.lgpl2Plus;
-      platforms = platforms.unix;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
-
-  locustio = buildPythonPackage rec {
-    name = "locustio-0.7.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/locustio/${name}.tar.gz";
-      sha256 = "c9ca6fdfe6a6fb187a3d54ddf9b1518196348e8f20537f0a14ca81a264ffafa2";
-    };
-
-    propagatedBuildInputs = [ self.msgpack self.requests self.flask self.gevent self.pyzmq ];
-    buildInputs = [ self.mock self.unittest2 ];
+  locustio = callPackage ../development/python-modules/locustio { };
 
-    meta = {
-      homepage = http://locust.io/;
-      description = "A load testing tool";
-    };
-  };
-
-  llvmlite = callPackage ../development/python-modules/llvmlite {llvm=pkgs.llvm_4;};
+  llvmlite = callPackage ../development/python-modules/llvmlite { llvm = pkgs.llvm; };
 
   lockfile = buildPythonPackage rec {
     pname = "lockfile";
@@ -12628,56 +9082,11 @@ in {
     };
   };
 
-  logilab_common = buildPythonPackage rec {
-    name = "logilab-common-0.63.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/logilab-common/${name}.tar.gz";
-      sha256 = "1rr81zlmlgdma3s75i5c1l8q2m25v4ac41i9pniik4mhkc6a0fv0";
-    };
-
-    propagatedBuildInputs = with self; [ unittest2 six ];
-  };
-
-  logilab-constraint = buildPythonPackage rec {
-    name = "logilab-constraint-${version}";
-    version = "0.6.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/logilab-constraint/${name}.tar.gz";
-      sha256 = "1n0xim4ij1n4yvyqqvyc0wllhjs22szglsd5av0j8k2qmck4njcg";
-    };
-
-    propagatedBuildInputs = with self; [
-      logilab_common six
-    ];
-
-    meta = with stdenv.lib; {
-      description = "logilab-database provides some classes to make unified access to different";
-      homepage = "http://www.logilab.org/project/logilab-database";
-    };
-  };
-
-
-  lxml = buildPythonPackage ( rec {
-    name = "lxml-3.7.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/lxml/${name}.tar.gz";
-      sha256 = "02j1wf3sh2qmswcz3rh0xvsb8jm63ifaiz2bkng93hyvc1iignar";
-    };
-
-    buildInputs = with self; [ pkgs.libxml2 pkgs.libxslt ];
+  logilab_common = callPackage ../development/python-modules/logilab/common.nix {};
 
-    hardeningDisable = stdenv.lib.optional stdenv.isDarwin "format";
+  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix {};
 
-    meta = {
-      description = "Pythonic binding for the libxml2 and libxslt libraries";
-      homepage = http://lxml.de;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ sjourdois ];
-    };
-  });
+  lxml = callPackage ../development/python-modules/lxml {inherit (pkgs) libxml2 libxslt;};
 
   lxc = buildPythonPackage (rec {
     name = "python-lxc-unstable-2016-08-25";
@@ -12700,34 +9109,9 @@ in {
     };
   });
 
-  ltc_scrypt = callPackage ../development/python-modules/ltc_scrypt/default.nix { };
-
-  python_magic = buildPythonPackage rec {
-    name = "python-magic-0.4.10";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-magic/${name}.tar.gz";
-      sha256 = "1hx2sjd4fdswswj3yydn2azxb59rjmi9b7jzh94lf1wnxijjizbr";
-    };
-
-    propagatedBuildInputs = with self; [ pkgs.file ];
-
-    patchPhase = ''
-      substituteInPlace magic.py --replace "ctypes.util.find_library('magic')" "'${pkgs.file}/lib/libmagic.${if stdenv.isDarwin then "dylib" else "so"}'"
-    '';
+  py_scrypt = callPackage ../development/python-modules/py_scrypt/default.nix { };
 
-    doCheck = false;
-
-    # TODO: tests are failing
-    #checkPhase = ''
-    #  ${python}/bin/${python.executable} ./test.py
-    #'';
-
-    meta = {
-      description = "A python interface to the libmagic file type identification library";
-      homepage = https://github.com/ahupp/python-magic;
-    };
-  };
+  python_magic = callPackage ../development/python-modules/python-magic { };
 
   magic = buildPythonPackage rec {
     name = "${pkgs.file.name}";
@@ -12735,7 +9119,7 @@ in {
     src = pkgs.file.src;
 
     patchPhase = ''
-      substituteInPlace python/magic.py --replace "find_library('magic')" "'${pkgs.file}/lib/libmagic.${if stdenv.isDarwin then "dylib" else "so"}'"
+      substituteInPlace python/magic.py --replace "find_library('magic')" "'${pkgs.file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}'"
     '';
 
     buildInputs = with self; [ pkgs.file ];
@@ -12774,28 +9158,7 @@ in {
     };
   };
 
-
-  Mako = buildPythonPackage rec {
-    name = "Mako-1.0.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/M/Mako/${name}.tar.gz";
-      sha256 = "0nchpw6akfcsg8w6irjlx0gyzadc123hv4g47sijgnqd9nz9vngy";
-    };
-
-    buildInputs = with self; [ markupsafe nose mock pytest ];
-    propagatedBuildInputs = with self; [ markupsafe ];
-
-    doCheck = !isPyPy;  # https://bitbucket.org/zzzeek/mako/issue/238/2-tests-failed-on-pypy-24-25
-
-    meta = {
-      description = "Super-fast templating language";
-      homepage = http://www.makotemplates.org;
-      license = licenses.mit;
-      platforms = platforms.unix;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
+  Mako = callPackage ../development/python-modules/Mako { };
 
   manifestparser = callPackage ../development/python-modules/marionette-harness/manifestparser.nix {};
   marionette_driver = callPackage ../development/python-modules/marionette-harness/marionette_driver.nix {};
@@ -12813,6 +9176,10 @@ in {
   mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix {};
   marionette-harness = callPackage ../development/python-modules/marionette-harness {};
 
+  marisa = callPackage ../development/python-modules/marisa {
+    marisa = pkgs.marisa;
+  };
+
   markupsafe = buildPythonPackage rec {
     name = "markupsafe-${version}";
     version = "1.0";
@@ -12830,6 +9197,10 @@ in {
     };
   };
 
+  marshmallow = callPackage ../development/python-modules/marshmallow { };
+
+  marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
+
   manuel = buildPythonPackage rec {
     name = "manuel-${version}";
     version = "1.8.0";
@@ -12843,28 +9214,33 @@ in {
 
     meta = {
       description = "A documentation builder";
-      homepage = http://pypi.python.org/pypi/manuel;
-      license = licenses.zpt20;
+      homepage = https://pypi.python.org/pypi/manuel;
+      license = licenses.zpl20;
     };
   };
 
-  markdown = buildPythonPackage rec {
-    version = "2.6.7";
-    name = "markdown-${version}";
+  mapsplotlib = buildPythonPackage rec {
+    name = "mapsplotlib-${version}";
+    version = "1.0.6";
+
+    disabled = isPy3k;
 
     src = pkgs.fetchurl {
-      url = "mirror://pypi/M/Markdown/Markdown-${version}.tar.gz";
-      sha256 = "1h055llfd0ps0ig7qb3v1j9068xv90dc9s7xkhkgz9zg8r4g5sys";
+      url = "mirror://pypi/m/mapsplotlib/${name}.tar.gz";
+      sha256 = "09gpws3x0jd88n636baxx5izjffrpjy4j6jl8l7vj29yzvrdr2bp";
     };
 
-    # error: invalid command 'test'
-    doCheck = false;
+    propagatedBuildInputs = with self; [ matplotlib scipy pandas requests pillow ];
 
     meta = {
-      homepage = http://www.freewisdom.org/projects/python-markdown;
+      description = "Custom Python plots on a Google Maps background";
+      homepage = https://github.com/tcassou/mapsplotlib;
+      maintainers = [ maintainers.rob ];
     };
   };
 
+  markdown = callPackage ../development/python-modules/markdown { };
+
   markdownsuperscript = callPackage ../development/python-modules/markdownsuperscript {};
 
   markdown-macros = buildPythonPackage rec {
@@ -12952,6 +9328,9 @@ in {
     inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
   };
 
+  matrix-client = callPackage ../development/python-modules/matrix-client/default.nix { };
+
+  maya = callPackage ../development/python-modules/maya { };
 
   mccabe = callPackage ../development/python-modules/mccabe { };
 
@@ -12964,7 +9343,7 @@ in {
       sha256 = "0rki9nl4y42q694parafcsdcdqvkdjckrbg6n0691302lfsrkyfl";
     };
 
-    propagatedBuildInputs = with self; [ clientform html5lib ];
+    propagatedBuildInputs = with self; [ html5lib ];
 
     doCheck = false;
 
@@ -12977,25 +9356,7 @@ in {
     };
   });
 
-  MechanicalSoup = buildPythonPackage rec {
-    name = "MechanicalSoup-${version}";
-    version = "0.4.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/M/MechanicalSoup/${name}.zip";
-      sha256 = "02jkwly4gw1jqm55l4wwn0j0ggnysx55inw9j96bif5l49z5cacd";
-    };
-
-    propagatedBuildInputs = with self; [ requests beautifulsoup4 six ];
-
-    meta = {
-      description = "A Python library for automating interaction with websites";
-      homepage = https://github.com/hickford/MechanicalSoup;
-      license = licenses.mit;
-      maintainers = with maintainers; [ jgillich ];
-    };
-  };
-
+  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup/default.nix { };
 
   meld3 = buildPythonPackage rec {
     name = "meld3-1.0.0";
@@ -13014,6 +9375,10 @@ in {
     };
   };
 
+  meliae = callPackage ../development/python-modules/meliae {};
+
+  meinheld = callPackage ../development/python-modules/meinheld { };
+
   memcached = buildPythonPackage rec {
     name = "memcached-1.51";
 
@@ -13046,7 +9411,7 @@ in {
 
     meta = {
       description = "A module for monitoring memory usage of a python program";
-      homepage = http://pypi.python.org/pypi/memory_profiler;
+      homepage = https://pypi.python.org/pypi/memory_profiler;
       license = licenses.bsd3;
     };
   };
@@ -13107,6 +9472,8 @@ in {
     };
   };
 
+  micawber = callPackage ../development/python-modules/micawber { };
+
   minimock = buildPythonPackage rec {
     version = "1.2.8";
     name = "minimock-${version}";
@@ -13146,6 +9513,8 @@ in {
     };
   };
 
+  mozterm = callPackage ../development/python-modules/mozterm { };
+
   mplleaflet = callPackage ../development/python-modules/mplleaflet { };
 
   multidict = callPackage ../development/python-modules/multidict { };
@@ -13162,39 +9531,11 @@ in {
     meta = {
       description = "A dot-accessible dictionary (a la JavaScript objects)";
       license = licenses.mit;
-      homepage = http://github.com/Infinidat/munch;
+      homepage = https://github.com/Infinidat/munch;
     };
   };
 
-  nototools = buildPythonPackage rec {
-    version = "git-2016-03-25";
-    name = "nototools-${version}";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "googlei18n";
-      repo = "nototools";
-      rev = "4f7b067d1b18f59288e5eaee34db5b0abd3a3f63";
-      sha256 = "05brbkfg77ij4pmcrhq9302albzdalr9gv6jfdsbyyi2k8j85gbn";
-    };
-
-    propagatedBuildInputs = with self; [ fonttools numpy ];
-
-    postPatch = ''
-      sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
-    '';
-
-    postInstall = ''
-      cp -r third_party $out
-    '';
-
-    disabled = isPy3k;
-
-    meta = {
-      description = "Noto fonts support tools and scripts plus web site generation";
-      license = licenses.asl20;
-      homepage = https://github.com/googlei18n/nototools;
-    };
-  };
+  nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
 
   rainbowstream = buildPythonPackage rec {
     name = "rainbowstream-${version}";
@@ -13241,6 +9582,8 @@ in {
     };
   };
 
+  pendulum = callPackage ../development/python-modules/pendulum { };
+
   pocket = buildPythonPackage rec {
     name = "pocket-${version}";
     version = "0.3.6";
@@ -13262,41 +9605,9 @@ in {
     };
   };
 
-  mistune = buildPythonPackage rec {
-    version = "0.7.1";
-    name = "mistune-${version}";
+  mistune = callPackage ../development/python-modules/mistune { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/m/mistune/${name}.tar.gz";
-      sha256 = "6076dedf768348927d991f4371e5a799c6a0158b16091df08ee85ee231d929a7";
-    };
-
-    buildInputs = with self; [nose];
-
-    meta = {
-      description = "The fastest markdown parser in pure Python";
-      homepage = https://github.com/lepture/mistune;
-      license = licenses.bsd3;
-    };
-  };
-
-  brotlipy = buildPythonPackage rec {
-    name = "brotlipy-${version}";
-    version = "0.6.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/brotlipy/${name}.tar.gz";
-      sha256 = "10s2y19zywfkf3sksrw81czhva759aki0clld2pnnlgf64sz7016";
-    };
-
-    propagatedBuildInputs = with self; [ cffi enum34 construct ];
-
-    meta = {
-      description = "Python bindings for the reference Brotli encoder/decoder";
-      homepage = "https://github.com/python-hyper/brotlipy/";
-      license = licenses.mit;
-    };
-  };
+  brotlipy = callPackage ../development/python-modules/brotlipy { };
 
   sortedcontainers = buildPythonPackage rec {
     name = "sortedcontainers-${version}";
@@ -13338,39 +9649,9 @@ in {
     };
   };
 
-  hyperframe = buildPythonPackage rec {
-    name = "hyperframe-${version}";
-    version = "4.0.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/h/hyperframe/${name}.tar.gz";
-      sha256 = "0hsfq0jigwa0i58z7vbnp62l7za49gmlg75vnygq2ijhkidkcmwa";
-    };
-
-    meta = {
-      description = "HTTP/2 framing layer for Python";
-      homepage = "http://hyper.rtfd.org/";
-      license = licenses.mit;
-    };
-  };
-
-  h2 = buildPythonPackage rec {
-    name = "h2-${version}";
-    version = "2.5.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/h/h2/${name}.tar.gz";
-      sha256 = "0xhzm5vcfhdq3mihynwh4ljwi0r06lvzk3ypr0gmmbcp1x43ffb7";
-    };
+  hyperframe = callPackage ../development/python-modules/hyperframe { };
 
-    propagatedBuildInputs = with self; [ enum34 hpack hyperframe ];
-
-    meta = {
-      description = "HTTP/2 State-Machine based protocol implementation";
-      homepage = "http://hyper.rtfd.org/";
-      license = licenses.mit;
-    };
-  };
+  h2 = callPackage ../development/python-modules/h2 { };
 
   editorconfig = buildPythonPackage rec {
     name = "EditorConfig-${version}";
@@ -13428,65 +9709,12 @@ in {
     };
   };
 
-  moinmoin = buildPythonPackage (rec {
-    name = "moinmoin-${ver}";
-    disabled = isPy3k;
-    ver = "1.9.8";
+  # Needed here because moinmoin is loaded as a Python library.
+  moinmoin = callPackage ../development/python-modules/moinmoin { };
 
-    src = pkgs.fetchurl {
-      url = "http://static.moinmo.in/files/moin-${ver}.tar.gz";
-      sha256 = "19hi16iy75lpx9ch799djc4hr4gai5rmvi542n29x6zhikysfjx7";
-    };
-
-    meta = {
-      description = "Advanced, easy to use and extensible WikiEngine";
-
-      homepage = http://moinmo.in/;
-
-      license = licenses.gpl2Plus;
-    };
-  });
-
-  moretools = buildPythonPackage rec {
-    name = "moretools-0.1a41";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/m/moretools/${name}.tar.gz";
-      sha256 = "1n442wprbl3cmg08233m1sr3g4z0i8hv9g6bhch7kzdmbl21399f";
-    };
-
-    buildInputs = with self; [ six pathpy setuptools ];
-    propagatedBuildInputs = with self; [ decorator ];
-
-    meta = {
-      description = "Many more basic tools for python 2/3 extending itertools, functools, operator and collections";
-      homepage = https://bitbucket.org/userzimmermann/python-moretools;
-      license = licenses.gpl3Plus;
-      platforms = platforms.linux;
-    };
-  };
-
-  moto = buildPythonPackage rec {
-    version = "0.4.25";
-    name    = "moto-${version}";
-    src = pkgs.fetchurl {
-      url    = "http://pypi.python.org/packages/df/9e/0b22ac0abf61711c86ae75a0548825e19cc123b522ff3508cbc43924969d/moto-0.4.25.tar.gz";
-      sha256 = "1gqm7h6bm5xkspd07bnjwdr2q6cvpxkayx0hkgk8fhkawbg0fqq7";
-    };
-
-    propagatedBuildInputs = with self; [
-      # Main dependencies
-      jinja2 werkzeug flask requests six boto httpretty xmltodict
-      # For tests
-      nose sure boto3 freezegun
-    ];
-
-    checkPhase = "nosetests";
-
-    # TODO: make this true; I think lots of the tests want network access but we can probably run the others
-    doCheck = false;
-  };
+  moretools = callPackage ../development/python-modules/moretools { };
 
+  moto = callPackage ../development/python-modules/moto {};
 
   mox = buildPythonPackage rec {
     name = "mox-0.5.3";
@@ -13633,21 +9861,15 @@ in {
     };
   };
 
-  msgpack = buildPythonPackage rec {
-    name = "msgpack-python-${version}";
-    version = "0.4.7";
+  msgpack = callPackage ../development/python-modules/msgpack {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/m/msgpack-python/${name}.tar.gz";
-      sha256 = "0syd7bs83qs9qmxw540jbgsildbqk4yb57fmrlns1021llli402y";
-    };
+  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy {};
 
-    checkPhase = ''
-      py.test
+  msgpack-python = self.msgpack.overridePythonAttrs {
+    pname = "msgpack-python";
+    postPatch = ''
+      substituteInPlace setup.py --replace "TRANSITIONAL = False" "TRANSITIONAL = True"
     '';
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ ];
   };
 
   msrplib = buildPythonPackage rec {
@@ -13664,25 +9886,7 @@ in {
     propagatedBuildInputs = with self; [ eventlib application gnutls ];
   };
 
-  multipledispatch = buildPythonPackage rec {
-    name = "multipledispatch-${version}";
-    version = "0.4.9";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/m/multipledispatch/${name}.tar.gz";
-      sha256 = "bda6abb8188d9abb429bd17ed15bc7433f77f1b05a78cfff761711ed81daa7a2";
-    };
-
-    # No tests in archive
-    doCheck = false;
-
-    meta = {
-      homepage = http://github.com/mrocklin/multipledispatch/;
-      description = "A relatively sane approach to multiple dispatch in Python";
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
+  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
 
   multiprocess = buildPythonPackage rec {
     name = "multiprocess-${version}";
@@ -13777,14 +9981,6 @@ in {
     ];
     LC_ALL = "en_US.UTF-8";
 
-    # Remove test that fails due to missing encoding in nix_run_setup.py, a
-    # file that buildPythonPackage copies to source trees at build time.
-    # PR with fix: https://github.com/NixOS/nixpkgs/pull/17430
-    # ("python: add file encoding to run_setup.py")
-    preBuild = ''
-      rm tests/test_encoding.py
-    '';
-
     meta = {
       description = "Python multimedia tagging library";
       homepage = http://code.google.com/p/mutagen;
@@ -13812,35 +10008,9 @@ in {
     };
   });
 
-  mygpoclient = buildPythonPackage rec {
-    name = "mygpoclient-${version}";
-    version = "1.7";
-
-    src = pkgs.fetchurl {
-      url = "https://thp.io/2010/mygpoclient/${name}.tar.gz";
-      sha256 = "6a0b7b1fe2b046875456e14eda3e42430e493bf2251a64481cf4fd1a1e21a80e";
-    };
+  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
 
-    buildInputs = with self; [ nose minimock ];
-
-    checkPhase = ''
-      nosetests
-    '';
-
-    disabled = isPy3k;
-
-    meta = {
-      description = "A gpodder.net client library";
-      longDescription = ''
-        The mygpoclient library allows developers to utilize a Pythonic interface
-        to the gpodder.net web services.
-      '';
-      homepage = https://thp.io/2010/mygpoclient/;
-      license = with licenses; [ gpl3 ];
-      platforms = with platforms; linux ++ darwin;
-      maintainers = with maintainers; [ skeidel ];
-    };
-  };
+  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
 
   mwclient = buildPythonPackage rec {
     version = "0.8.3";
@@ -13931,6 +10101,8 @@ in {
     };
   };
 
+  pyte = callPackage ../development/python-modules/pyte { };
+
   graphviz = buildPythonPackage rec {
     name = "graphviz-${version}";
     version = "0.5.2";
@@ -14016,13 +10188,15 @@ in {
   };
 
   monotonic = buildPythonPackage rec {
-    name = "monotonic-0.4";
+    pname = "monotonic";
+    version = "1.3";
+    name = "${pname}-${version}";
 
     __propagatedImpureHostDeps = stdenv.lib.optional stdenv.isDarwin "/usr/lib/libc.dylib";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/m/monotonic/${name}.tar.gz";
-      sha256 = "1diab6hfh3jpa1f0scpqaqrawk4g97ss4v7gkn2yw8znvdm6abw5";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "06vw7jwq96106plhlc5vz1v1xvjismdgw9wjyzvzf0ylglnrwiib";
     };
 
     patchPhase = optionalString stdenv.isLinux ''
@@ -14044,35 +10218,18 @@ in {
       sha256 = "0x0c2jg0bb3pp84njaqiic050qkyd7ymwhfvhipnimg58yv40441";
     };
 
-    buildInputs = with self; [ nose pkgs.openssl ];
+    buildInputs = with self; [ nose ];
 
-    propagatedBuildInputs = with self; [ pkgs.mysql.lib pkgs.zlib ];
+    propagatedBuildInputs = with self; [ pkgs.mysql.connector-c ];
 
     meta = {
       description = "MySQL database binding for Python";
 
-      homepage = http://sourceforge.net/projects/mysql-python;
-    };
-  };
-
-
-  mysql_connector_repackaged = buildPythonPackage rec {
-    name = "mysql-connector-repackaged-0.3.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/m/mysql-connector-repackaged/${name}.tar.gz";
-      sha256 = "170fbf11c54def1b5fcc919be0a890b760bb2eca81f56123a5dda0c69b5b099e";
-    };
-
-    # Judging from SyntaxError
-    disabled = isPy3k;
-
-    meta = {
-      maintainers = with maintainers; [ garbas domenkozar ];
-      platforms = platforms.linux;
+      homepage = https://sourceforge.net/projects/mysql-python;
     };
   };
 
+  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
 
   namebench = buildPythonPackage (rec {
     name = "namebench-1.3.1";
@@ -14136,37 +10293,28 @@ in {
 
   nbformat = callPackage ../development/python-modules/nbformat { };
 
-  nbxmpp = buildPythonPackage rec {
-    name = "nbxmpp-${version}";
-    version = "0.5.5";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nbxmpp/${name}.tar.gz";
-      sha256 = "1gnzrzrdl4nii1sc5x8p5iw2ya5sl70j3nn34abqsny51p2pzmv6";
-    };
+  nbmerge = callPackage ../development/python-modules/nbmerge { };
 
-    meta = {
-      homepage = "https://python-nbxmpp.gajim.org/";
-      description = "Non-blocking Jabber/XMPP module";
-      license = licenses.gpl3;
-    };
-  };
+  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
 
   sleekxmpp = buildPythonPackage rec {
     name = "sleekxmpp-${version}";
-    version = "1.3.1";
+    version = "1.3.3";
 
-    propagatedBuildInputs = with self ; [ dns pyasn1 ];
+    propagatedBuildInputs = with self; [ dnspython pyasn1 gevent ];
+    checkInputs = [ pkgs.gnupg ];
+    checkPhase = "${python.interpreter} testall.py";
+    doCheck = false; # Tests failed all this time and upstream doesn't seem to care.
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/s/sleekxmpp/${name}.tar.gz";
-      sha256 = "1krkhkvj8xw5a6c2xlf7h1rg9xdcm9d8x2niivwjahahpvbl6krr";
+      sha256 = "0samiq1d97kk8g9pszfbrbfw9zc41zp6017dbkwha9frf7gc24yj";
     };
 
     meta = {
       description = "XMPP library for Python";
       license = licenses.mit;
-      homepage = "http://sleekxmpp.com/";
+      homepage = http://sleekxmpp.com/;
     };
   };
 
@@ -14215,7 +10363,7 @@ in {
     patches = [
       (pkgs.fetchpatch {
         url = https://github.com/drkjam/netaddr/commit/2ab73f10be7069c9412e853d2d0caf29bd624012.patch;
-        sha256 = "08rn1s3w9424jhandy4j9sksy852ny00088zh15nirw5ajqg1dn7";
+        sha256 = "0s1cdn9v5alpviabhcjmzc0m2pnpq9dh2fnnk2x96dnry1pshg39";
       })
     ];
 
@@ -14226,12 +10374,12 @@ in {
   };
 
   netifaces = buildPythonPackage rec {
-    version = "0.10.5";
+    version = "0.10.6";
     name = "netifaces-${version}";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/n/netifaces/${name}.tar.gz";
-      sha256 = "12v2bm77dgaqjm9vmb8in0zpip2hn98mf5sycfvgq5iivm9avn2r";
+      sha256 = "1q7bi5k2r955rlcpspx4salvkkpk28jky67fjbpz2dkdycisak8c";
     };
 
     meta = {
@@ -14255,105 +10403,13 @@ in {
     };
   };
 
-  nevow = buildPythonPackage (rec {
-    name = "nevow-${version}";
-    version = "0.14.2";
+  nevow = callPackage ../development/python-modules/nevow { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/N/Nevow/Nevow-${version}.tar.gz";
-      sha256 = "0wsh40ysj5gvfc777nrdvf5vbkr606r1gh7ibvw7x8b5g8afdy3y";
-      name = "${name}.tar.gz";
-    };
-
-    disabled = isPy3k;
+  nibabel = callPackage ../development/python-modules/nibabel {};
 
-    propagatedBuildInputs = with self; [ twisted ];
-
-    postInstall = "twistd --help > /dev/null";
-
-    meta = {
-      description = "Nevow, a web application construction kit for Python";
+  nilearn = callPackage ../development/python-modules/nilearn {};
 
-      longDescription = ''
-        Nevow - Pronounced as the French "nouveau", or "noo-voh", Nevow
-        is a web application construction kit written in Python.  It is
-        designed to allow the programmer to express as much of the view
-        logic as desired in Python, and includes a pure Python XML
-        expression syntax named stan to facilitate this.  However it
-        also provides rich support for designer-edited templates, using
-        a very small XML attribute language to provide bi-directional
-        template manipulation capability.
-
-        Nevow also includes formless, a declarative syntax for
-        specifying the types of method parameters and exposing these
-        methods to the web.  Forms can be rendered automatically, and
-        form posts will be validated and input coerced, rendering error
-        pages if appropriate.  Once a form post has validated
-        successfully, the method will be called with the coerced values.
-      '';
-
-      homepage = http://divmod.org/trac/wiki/DivmodNevow;
-
-      license = "BSD-style";
-    };
-  });
-
-  nibabel = buildPythonPackage rec {
-    version = "2.0.2";
-    name = "nibabel-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nibabel/${name}.tar.gz";
-      sha256 = "0k8mv5zmwb6vc8kwrydl3pp0pnw937rf5mz10figkxczrw6dkk7h";
-    };
-
-    propagatedBuildInputs = with self; [
-      numpy
-      nose
-    ];
-
-    # Failing tests
-    # nibabel.tests.test_minc1.test_old_namespace
-    # nisext.tests.test_testers.test_back_tick
-    doCheck = false;
-
-    meta = {
-      homepage = http://nipy.org/nibabel/;
-      description = "Access a multitude of neuroimaging data formats";
-      license = licenses.mit;
-    };
-  };
-
-  nilearn = buildPythonPackage rec {
-    version = "0.2.5";
-    name = "nilearn-${version}";
-
-    # package seems to attempt Python 3 compatibility, but throws UnicodeDecodeError when building:
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nilearn/${name}.tar.gz";
-      sha256 = "1lmkrzr5x2yp129v2fvckrbdzf2kpcivdg9cacl519l3mb0acdv9";
-    };
-
-    checkPhase = "nosetests --exclude with_expand_user nilearn/tests";
-
-    buildInputs = with self; [ nose ];
-
-    propagatedBuildInputs = with self; [
-      matplotlib
-      nibabel
-      numpy
-      scikitlearn
-      scipy
-    ];
-
-    meta = {
-      homepage = http://nilearn.github.io;
-      description = "A module for statistical learning on neuroimaging data";
-      license = licenses.bsd3;
-    };
-  };
+  nimfa = callPackage ../development/python-modules/nimfa {};
 
   nipy = buildPythonPackage rec {
     version = "0.4.0";
@@ -14398,36 +10454,8 @@ in {
     };
   };
 
-  nipype = buildPythonPackage rec {
-    version = "0.10.0";
-    name = "nipype-${version}";
-
-    # Uses python 2 print. Master seems to be Py3 compatible.
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nipype/${name}.tar.gz";
-      sha256 = "7fb143cd4d05f18db1cb7f0b83dba13d3dcf55b4eb3d16df08c97033ccae507b";
-    };
-
-    # Tests fail due to getcwd returning ENOENT???
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [
-     numpy
-     dateutil
-     nose
-     traits
-     scipy
-     nibabel
-     networkx
-   ];
-
-    meta = {
-      homepage = http://nipy.org/nipype/;
-      description = "Neuroimaging in Python: Pipelines and Interfaces";
-      license = licenses.bsd3;
-    };
+  nipype = callPackage ../development/python-modules/nipype {
+    inherit (pkgs) which;
   };
 
   nose = buildPythonPackage rec {
@@ -14454,42 +10482,7 @@ in {
     };
   };
 
-  nose-exclude = buildPythonPackage rec {
-    name = "nose-exclude-${version}";
-    version = "0.5.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nose-exclude/${name}.tar.gz";
-      sha256 = "f78fa8b41eeb815f0486414f710f1eea0949e346cfb11d59ba6295ed69e84304";
-    };
-
-    propagatedBuildInputs = with self; [ nose ];
-
-    meta = {
-      license = licenses.lgpl21;
-      description = "Exclude specific directories from nosetests runs";
-      homepage = https://github.com/kgrandis/nose-exclude;
-      maintainers = with maintainers; [ fridh ];
-    };
-
-  };
-
-  nose-selecttests = buildPythonPackage rec {
-    version = "0.4";
-    name = "nose-selecttests-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nose-selecttests/${name}.zip";
-      sha256 = "0lgrfgp3sq8xi8d9grrg0z8jsyk0wl8a3rxw31hb7vdncin5b7n5";
-    };
-
-    propagatedBuildInputs = with self; [ nose ];
-
-    meta = {
-      description = "Simple nose plugin that enables developers to run subset of collected tests to spare some waiting time for better things";
-    };
-  };
-
+  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
 
   nose2 = if isPy26 then null else (buildPythonPackage rec {
     name = "nose2-0.5.0";
@@ -14539,7 +10532,7 @@ in {
     meta = {
       description = "Extends nose.plugins.cover to add Cobertura-style XML reports";
 
-      homepage = http://github.com/cmheisel/nose-xcover/;
+      homepage = https://github.com/cmheisel/nose-xcover/;
 
       license = licenses.bsd3;
     };
@@ -14575,6 +10568,8 @@ in {
     buildInputs = with self; [ nose ];
   };
 
+  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
+
   notebook = callPackage ../development/python-modules/notebook { };
 
   notify = pkgs.stdenv.mkDerivation (rec {
@@ -14587,7 +10582,7 @@ in {
 
     patches = singleton (pkgs.fetchurl {
       name = "libnotify07.patch";
-      url = "http://pkgs.fedoraproject.org/cgit/notify-python.git/plain/"
+      url = "http://src.fedoraproject.org/cgit/notify-python.git/plain/"
           + "libnotify07.patch?id2=289573d50ae4838a1658d573d2c9f4c75e86db0c";
       sha256 = "1lqdli13mfb59xxbq4rbq1f0znh6xr17ljjhwmzqb79jl3dig12z";
     });
@@ -14597,7 +10592,8 @@ in {
         configure
     '';
 
-    buildInputs = with self; [ python pkgs.pkgconfig pkgs.libnotify pygobject2 pygtk pkgs.glib pkgs.gtk2 pkgs.dbus_glib ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = with self; [ python pkgs.libnotify pygobject2 pygtk pkgs.glib pkgs.gtk2 pkgs.dbus-glib ];
 
     postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify .";
 
@@ -14607,6 +10603,8 @@ in {
     };
   });
 
+  notify2 = callPackage ../development/python-modules/notify2 {};
+
   notmuch = buildPythonPackage rec {
     name = "python-${pkgs.notmuch.name}";
 
@@ -14668,42 +10666,7 @@ in {
 
   numba = callPackage ../development/python-modules/numba { };
 
-  numexpr = buildPythonPackage rec {
-    version = "2.6.2";
-    name = "numexpr-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/numexpr/${name}.tar.gz";
-      sha256 = "6ab8ff5c19e7f452966bf5a3220b845cf3244fe0b96544f7f9acedcc2db5c705";
-    };
-
-    propagatedBuildInputs = with self; [ numpy ];
-
-    # Run the test suite.
-    # It requires the build path to be in the python search path.
-    checkPhase = ''
-      ${python}/bin/${python.executable} <<EOF
-      import sysconfig
-      import sys
-      import os
-      f = "lib.{platform}-{version[0]}.{version[1]}"
-      lib = f.format(platform=sysconfig.get_platform(),
-                     version=sys.version_info)
-      build = os.path.join(os.getcwd(), 'build', lib)
-      sys.path.insert(0, build)
-      import numexpr
-      r = numexpr.test()
-      if not r.wasSuccessful():
-          sys.exit(1)
-      EOF
-    '';
-
-    meta = {
-      description = "Fast numerical array expression evaluator for NumPy";
-      homepage = "https://github.com/pydata/numexpr";
-      license = licenses.mit;
-    };
-  };
+  numexpr = callPackage ../development/python-modules/numexpr { };
 
   Nuitka = let
     # scons is needed but using it requires Python 2.7
@@ -14753,74 +10716,13 @@ in {
     blas = pkgs.openblasCompat;
   };
 
-  numpydoc = buildPythonPackage rec {
-    pname = "numpydoc";
-    name = "${pname}-${version}";
-    version = "0.6.0";
+  numpydoc = callPackage ../development/python-modules/numpydoc { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
-      sha256 = "1ec573e91f6d868a9940d90a6599f3e834a2d6c064030fbe078d922ee21dcfa1";
-    };
+  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
 
-    buildInputs = [ self.nose ];
-    propagatedBuildInputs = [ self.sphinx self.matplotlib ];
+  numtraits = callPackage ../development/python-modules/numtraits { };
 
-    meta = {
-      description = "Sphinx extension to support docstrings in Numpy format";
-      homepage = "https://github.com/numpy/numpydoc";
-      license = licenses.free;
-    };
-  };
-
-  numtraits = buildPythonPackage rec {
-    pname = "numtraits";
-    version = "0.2";
-    name = "${pname}-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
-      sha256 = "2fca9a6c9334f7358ef1a3e2e64ccaa6a479fc99fc096910e0d5fbe8edcdfd7e";
-    };
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ six numpy traitlets];
-
-    checkPhase = ''
-      py.test
-    '';
-
-    meta = {
-      description = "Numerical traits for Python objects";
-      license = licenses.bsd2;
-      maintainers = with maintainers; [ fridh ];
-      homepage = https://github.com/astrofrog/numtraits;
-    };
-  };
-
-  nwdiag = buildPythonPackage rec {
-    name = "nwdiag-1.0.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/nwdiag/${name}.tar.gz";
-      sha256 = "0n7ary1fngxk8bk15vabc8fhnmxlh098piciwaviwn7l4a5q1zys";
-    };
-
-    buildInputs = with self; [ pep8 nose unittest2 docutils ];
-
-    propagatedBuildInputs = with self; [ blockdiag ];
-
-    # tests fail
-    doCheck = false;
-
-    meta = {
-      description = "Generate network-diagram image from spec-text file (similar to Graphviz)";
-      homepage = http://blockdiag.com/;
-      license = licenses.asl20;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
+  nwdiag = callPackage ../development/python-modules/nwdiag { };
 
   dynd = buildPythonPackage rec {
     version = "0.7.2";
@@ -14963,7 +10865,7 @@ in {
 
     meta = {
       description = "A client library for OAuth 2.0";
-      homepage = http://github.com/google/oauth2client/;
+      homepage = https://github.com/google/oauth2client/;
       license = licenses.bsd2;
     };
   };
@@ -15000,13 +10902,17 @@ in {
       sha256 = "04ja1cl8xzqnwrd2gi6nlnxbmjri141bzwa5gybvr44d8h3k2nfa";
     };
 
-    patchPhase = ''
+    postPatch = ''
       substituteInPlace setup.py --replace "version=versioneer.get_version()" "version='${version}'"
+      substituteInPlace setup.py --replace "argparse" ""
     '';
 
     propagatedBuildInputs = with self;
       [ pyptlib argparse twisted pycrypto pyyaml ];
 
+    # No tests in archive
+    doCheck = false;
+
     meta = {
       description = "A pluggable transport proxy";
       homepage = https://www.torproject.org/projects/obfsproxy;
@@ -15036,33 +10942,11 @@ in {
     };
   };
 
-  odo = buildPythonPackage rec {
-    name = "odo-${version}";
-    version= "0.5.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/odo/${name}.tar.gz";
-      sha256 = "1mh5k69d9ph9jd07jl9yqh78rbnh5cjspi1q530v3ml7ivjzz4p8";
-    };
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ datashape numpy pandas toolz multipledispatch networkx ];
-
-    checkPhase = ''
-      py.test odo/tests
-    '';
-
-    meta = {
-      homepage = https://github.com/ContinuumIO/odo;
-      description = "Data migration utilities";
-      license = licenses.bsdOriginal;
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
+  odo = callPackage ../development/python-modules/odo { };
 
   offtrac = buildPythonPackage rec {
     name = "offtrac-0.1.0";
-    meta.maintainers = with maintainers; [ mornfall ];
+    meta.maintainers = with maintainers; [ ];
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/o/offtrac/${name}.tar.gz";
@@ -15071,52 +10955,9 @@ in {
     doCheck = false;
   };
 
-  openpyxl = buildPythonPackage rec {
-    version = "2.3.5";
-    name = "openpyxl-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/openpyxl/${name}.tar.gz";
-      sha256 = "0qj7d8l1qc6cjwk1ps01dyh53b3p2k2k7hwmj98y2257jj5mf1s3";
-    };
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ jdcal et_xmlfile lxml ];
-
-    # Tests are not included in archive.
-    # https://bitbucket.org/openpyxl/openpyxl/issues/610
-    doCheck = false;
-
-    meta = {
-      description = "A Python library to read/write Excel 2007 xlsx/xlsm files";
-      homepage = https://openpyxl.readthedocs.org;
-      license = licenses.mit;
-      maintainers = with maintainers; [ lihop sjourdois ];
-      platforms = platforms.all;
-    };
-  };
+  openpyxl = callPackage ../development/python-modules/openpyxl { };
 
-  # optfunc = buildPythonPackage ( rec {
-  #   name = "optfunc-git";
-  #
-  #   src = pkgs.fetchgit {
-  #     url = "https://github.com/simonw/optfunc.git";
-  #     rev = "e3fa034a545ed94ac5a039cf5b170c7d0ee21b7b";
-  #   };
-  #
-  #   installCommand = ''
-  #     dest=$(toPythonPath $out)/optfunc
-  #     mkdir -p $dest
-  #     cp * $dest/
-  #   '';
-  #
-  #   doCheck = false;
-  #
-  #   meta = {
-  #     description = "A new experimental interface to optparse which works by introspecting a function definition";
-  #     homepage = "http://simonwillison.net/2009/May/28/optfunc/";
-  #   };
-  # });
+  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
 
   ordereddict = buildPythonPackage rec {
     name = "ordereddict-${version}";
@@ -15159,6 +11000,8 @@ in {
     };
   };
 
+  plone-testing = callPackage ../development/python-modules/plone-testing { };
+
   ply = buildPythonPackage (rec {
     name = "ply-3.8";
 
@@ -15222,13 +11065,13 @@ in {
   });
 
   osc = buildPythonPackage {
-    name = "osc-0.156.0-94-gd8ba394";
+    name = "osc-0.159.0-4-g2d44589";
     disabled = isPy3k;
     src = pkgs.fetchFromGitHub {
       owner = "openSUSE";
       repo = "osc";
-      rev = "d8ba39416bb193a15489cb2ae57847434adbf1c8";
-      sha256 = "0bxl1sjfpdrhyc0qljyqlkffyzn1iywjqgaz2z1y07zq59gc8wq0";
+      rev = "2d44589886845af7da911aaec9403344e396cd91";
+      sha256 = "0s8p7gkp64w6r5rnxpbvl2dgb5p85kq2skcqm6qxn5ddadhw2sfz";
     };
     buildInputs = with pkgs; [ bashInteractive ]; # needed for bash-completion helper
     propagatedBuildInputs = with self; [ urlgrabber m2crypto pyyaml ];
@@ -15251,460 +11094,12 @@ in {
     };
   };
 
-  oslosphinx = buildPythonPackage rec {
-    name = "oslosphinx-3.3.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslosphinx/${name}.tar.gz";
-      sha256 = "1rjiiahw2y7pg5rl15fvhmfyh26vm433000nwp7c94khx7w85w75";
-    };
-
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [
-      pbr requests sphinx_1_2
-    ];
-  };
-
-  tempest-lib = buildPythonPackage rec {
-    name = "tempest-lib-${version}";
-    version = "0.10.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tempest-lib/${name}.tar.gz";
-      sha256 = "0x842a67k9f7yk3zr6755s4qldkfngljqy5whd4jb553y4hn5lyj";
-    };
-
-    patchPhase = ''
-      substituteInPlace tempest_lib/tests/cli/test_execute.py --replace "/bin/ls" "${pkgs.coreutils}/bin/ls"
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    buildInputs = with self; [ testtools testrepository subunit oslotest ];
-    propagatedBuildInputs = with self; [
-      pbr six paramiko httplib2 jsonschema iso8601 fixtures Babel oslo-log
-      os-testr ];
-
-  };
-
-  os-testr = callPackage ../development/python-modules/os-testr { };
-
-  bandit = buildPythonPackage rec {
-    name = "bandit-${version}";
-    version = "0.16.1";
-    disabled = isPy33;
-    doCheck = !isPyPy; # a test fails
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/bandit/${name}.tar.gz";
-      sha256 = "0qd9kxknac5n5xfl5zjnlmk6jr94krkcx29zgyna8p9lyb828hsk";
-    };
-
-    propagatedBuildInputs = with self; [ pbr six pyyaml appdirs stevedore ];
-    buildInputs = with self; [ beautifulsoup4 oslosphinx testtools testscenarios
-                               testrepository fixtures mock ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  oslo-serialization = buildPythonPackage rec {
-    name = "oslo.serialization-${version}";
-    version = "1.10.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.serialization/${name}.tar.gz";
-      sha256 = "15k8aql2rx5jzv3hfvmd48vsyw172qa64bs3fmsyx25p37zyfy8a";
-    };
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    propagatedBuildInputs = with self; [ pbr Babel six iso8601 pytz oslo-utils msgpack netaddr ];
-    buildInputs = with self; [ oslotest mock coverage simplejson oslo-i18n ];
-  };
-
   rfc3986 = callPackage ../development/python-modules/rfc3986 { };
 
-  pycadf = buildPythonPackage rec {
-    name = "pycadf-${version}";
-    version = "1.1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pycadf/pycadf-1.1.0.tar.gz";
-      sha256 = "0lv9nhbvj1pa8qgn3qvyk9k4q8f7w541074n1rhdjnjkinh4n4dg";
-    };
-
-    propagatedBuildInputs = with self; [
-      oslo-i18n argparse six wrapt oslo-utils pbr oslo-config Babel netaddr
-      monotonic iso8601 pytz stevedore oslo-serialization msgpack
-      debtcollector netifaces
-    ];
-    buildInputs = with self; [
-      oslosphinx testtools testrepository oslotest
-    ];
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = https://launchpad.net/pycadf;
-    };
-  };
-
-
-  oslo-utils = buildPythonPackage rec {
-    name = "oslo.utils-${version}";
-    version = "2.6.0";
+   cachetools_1 = callPackage ../development/python-modules/cachetools/1.nix {};
+   cachetools = callPackage ../development/python-modules/cachetools {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.utils/${name}.tar.gz";
-      sha256 = "1prgi03nxkcykyja821qkycsqlnpyzw17mpvj8qf3pjmgb9gv1fy";
-    };
-
-    propagatedBuildInputs = with self; [ pbr Babel six iso8601 pytz netaddr netifaces
-                                         monotonic oslo-i18n wrapt debtcollector ];
-    buildInputs = with self; [ oslotest mock coverage oslosphinx ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  oslo-middleware = buildPythonPackage rec {
-    name = "oslo.middleware-${version}";
-    version = "2.9.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.middleware/${name}.tar.gz";
-      sha256 = "14acinchdpmc1in39mz9kh1h2rd1ygwg3zdhbwzrlhy8wbzzi4w9";
-    };
-
-    propagatedBuildInputs = with self; [
-      oslo-i18n six oslo-utils pbr oslo-config Babel oslo-context stevedore
-      jinja2 webob debtcollector
-    ];
-    buildInputs = with self; [
-      coverage testtools oslosphinx oslotest
-    ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-      sed -i '/ordereddict/d' requirements.txt
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = "http://wiki.openstack.org/wiki/Oslo#oslo.middleware";
-    };
-  };
-
-  oslo-versionedobjects = buildPythonPackage rec {
-     name = "oslo.versionedobjects-${version}";
-     version = "0.11.0";
-
-     src = pkgs.fetchurl {
-       url = "mirror://pypi/o/oslo.versionedobjects/${name}.tar.gz";
-       sha256 = "1ddcb2zf7a3544ay4sxw200a4mz7p0n1f7826h3vibfdqjlc80y7";
-     };
-
-     propagatedBuildInputs = with self; [
-       six Babel oslo-concurrency oslo-config oslo-context oslo-messaging
-       oslo-serialization oslo-utils iso8601 oslo-log oslo-i18n webob
-     ];
-     buildInputs = with self; [
-       oslo-middleware cachetools oslo-service futurist anyjson oslosphinx
-       testtools oslotest
-     ];
-
-     meta = with stdenv.lib; {
-       homepage = "http://launchpad.net/oslo";
-     };
-   };
-
-   cachetools = buildPythonPackage rec {
-     name = "cachetools-${version}";
-     version = "1.1.3";
-     disabled = isPyPy;  # a test fails
-
-     src = pkgs.fetchurl {
-       url = "mirror://pypi/c/cachetools/${name}.tar.gz";
-       sha256 = "0js7qx5pa8ibr8487lcf0x3a7w0xml0wa17snd6hjs0857kqhn20";
-     };
-
-     meta = with stdenv.lib; {
-       homepage = "https://github.com/tkem/cachetools";
-     };
-   };
-
-   futurist = buildPythonPackage rec {
-     name = "futurist-${version}";
-     version = "0.7.0";
-
-     src = pkgs.fetchurl {
-       url = "mirror://pypi/f/futurist/${name}.tar.gz";
-       sha256 = "0wf0k9xf5xzmi79418xq8zxwr7w7a4g4alv3dds9afb2l8bh9crg";
-     };
-
-     patchPhase = ''
-       sed -i "s/test_gather_stats/noop/" futurist/tests/test_executors.py
-     '';
-
-     propagatedBuildInputs = with self; [
-       contextlib2 pbr six monotonic futures eventlet
-     ];
-     buildInputs = with self; [
-       testtools testscenarios testrepository oslotest subunit
-     ];
-
-   };
-
-  oslo-messaging = buildPythonPackage rec {
-    name = "oslo.messaging-${version}";
-    version = "2.7.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.messaging/${name}.tar.gz";
-      sha256 = "1af7l4ri3xfjcnjp2yhngz34h3ls00yyj1x8i64dxb86ryy43kd1";
-    };
-
-    propagatedBuildInputs = with self; [
-      pbr oslo-config oslo-context oslo-log oslo-utils oslo-serialization
-      oslo-i18n stevedore six eventlet greenlet webob pyyaml kombu_3 trollius
-      aioeventlet cachetools oslo-middleware futurist redis oslo-service
-      eventlet pyzmq
-    ];
-
-    buildInputs = with self; [
-      oslotest mock mox3 subunit testtools testscenarios testrepository
-      fixtures oslosphinx
-    ];
-
-    preBuild = ''
-      # transient failure https://bugs.launchpad.net/oslo.messaging/+bug/1510481
-      sed -i 's/test_send_receive/noop/' oslo_messaging/tests/drivers/test_impl_rabbit.py
-    '';
-  };
-
-  os-brick = buildPythonPackage rec {
-   name = "os-brick-${version}";
-   version = "0.5.0";
-
-   src = pkgs.fetchurl {
-     url = "mirror://pypi/o/os-brick/${name}.tar.gz";
-     sha256 = "1q05yk5hada470rwsv3hfjn7pdp9n7pprmnslm723l7cfhf7cgm6";
-   };
-
-   propagatedBuildInputs = with self; [
-     six retrying oslo-utils oslo-service oslo-i18n oslo-serialization oslo-log
-     oslo-concurrency eventlet Babel pbr
-   ];
-   buildInputs = with self; [
-     testtools testscenarios testrepository requests
-   ];
-
-   checkPhase = ''
-     ${python.interpreter} -m subunit.run discover -t ./ .
-   '';
-
-   meta = with stdenv.lib; {
-     homepage = "http://www.openstack.org/";
-   };
-  };
-
-  oslo-reports = buildPythonPackage rec {
-    name = "oslo.reports-${version}";
-    version = "0.6.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.reports/${name}.tar.gz";
-      sha256 = "0j27mbsa5y1fn9lxn98xs7p9vipcig47srm5sgbgma0ilv125b65";
-    };
-
-    propagatedBuildInputs = with self; [
-      oslo-i18n oslo-utils oslo-serialization six psutil_1 Babel jinja2 pbr psutil_1
-    ];
-    buildInputs = with self; [
-      coverage greenlet eventlet oslosphinx oslotest
-    ];
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  cinderclient = buildPythonPackage rec {
-    name = "cinderclient-${version}";
-    version = "1.4.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-cinderclient/python-cinderclient-${version}.tar.gz";
-      sha256 = "1vfcjljfad3034bfhfcrfhphym1ik6qk42nrxzl0gqb9408n6k3l";
-    };
-
-    propagatedBuildInputs = with self; [
-      six Babel simplejson requests keystoneclient prettytable argparse pbr
-    ];
-    buildInputs = with self; [
-      testrepository requests-mock
-    ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    meta = with stdenv.lib; {
-      description = "Python bindings to the OpenStack Cinder API";
-      homepage = "http://www.openstack.org/";
-      broken = true;
-    };
-  };
-
-  neutronclient = buildPythonPackage rec {
-    name = "neutronclient-${version}";
-    version = "3.1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-neutronclient/python-neutronclient-${version}.tar.gz";
-      sha256 = "0g96x5b8lz407in70j6v7jbj613y6sd61b21j1y03x06b2rk5i02";
-    };
-
-    propagatedBuildInputs = with self; [
-      pbr six simplejson keystoneclient requests oslo-utils oslo-serialization
-      oslo-i18n netaddr iso8601 cliff argparse
-    ];
-    buildInputs = with self; [
-      tempest-lib mox3 oslotest requests-mock
-    ];
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-      # test fails on py3k
-      ${if isPy3k then "substituteInPlace neutronclient/tests/unit/test_cli20_port.py --replace 'test_list_ports_with_fixed_ips_in_csv' 'noop'" else ""}
-    '';
-
-    meta = with stdenv.lib; {
-      description = "Python bindings to the Neutron API";
-      homepage = "http://www.openstack.org/";
-    };
-  };
-
-  cliff = buildPythonPackage rec {
-    name = "cliff-${version}";
-    version = "1.15.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/cliff/${name}.tar.gz";
-      sha256 = "1rrbq1nvc84x417hbfm9sc1scia16nilr8nm8ycm8iq5jkh6zfpm";
-    };
-
-    propagatedBuildInputs = with self; [
-      argparse pyyaml pbr six cmd2 stevedore unicodecsv prettytable pyparsing
-    ];
-    buildInputs = with self; [
-      httplib2 oslosphinx coverage mock nose tempest-lib
-    ];
-
-    meta = with stdenv.lib; {
-      homepage = "https://launchpad.net/python-cliff";
-      # requires an update, incompatible with current dependencies (pbr)
-      broken = true;
-    };
-  };
-
-  cmd2 = buildPythonPackage rec {
-    name = "cmd2-${version}";
-    version = "0.6.8";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/cmd2/${name}.tar.gz";
-      sha256 = "1a346zcd46c8gwbbp2cxsmvgfkyy26kwxjzdnkv7n47w6660sy5c";
-    };
-
-    # No tests included
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [
-      pyparsing
-    ];
-
-    meta = with stdenv.lib; {
-      description = "Enhancements for standard library's cmd module";
-      homepage = "http://packages.python.org/cmd2/";
-    };
-  };
-
-
-  oslo-db = buildPythonPackage rec {
-    name = "oslo.db-${version}";
-    version = "3.0.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.db/${name}.tar.gz";
-      sha256 = "0jjimsfl53wigzf92dhns813n65qcwilcqlj32m86rxrcz0pjgph";
-    };
-
-    propagatedBuildInputs = with self; [
-      six stevedore sqlalchemy_migrate sqlalchemy oslo-utils oslo-context
-      oslo-config oslo-i18n iso8601 Babel alembic pbr psycopg2
-    ];
-    buildInputs = with self; [
-      tempest-lib testresources mock oslotest
-    ];
-  };
-
-  oslo-rootwrap = buildPythonPackage rec {
-    name = "oslo.rootwrap-${version}";
-    version = "2.4.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.rootwrap/${name}.tar.gz";
-      sha256 = "1711rlmykizw675ihbaqmk3ph6ah0njbygxr9lrdnacy6yrlmbd5";
-    };
-
-    # https://bugs.launchpad.net/oslo.rootwrap/+bug/1519839
-    patchPhase = ''
-     substituteInPlace oslo_rootwrap/filters.py \
-       --replace "/bin/cat" "${pkgs.coreutils}/bin/cat" \
-       --replace "/bin/kill" "${pkgs.coreutils}/bin/kill"
-    '';
-
-    buildInputs = with self; [ eventlet mock oslotest ];
-    propagatedBuildInputs = with self; [
-      six pbr
-    ];
-
-    # way too many assumptions
-    doCheck = false;
-  };
-
-  glanceclient = buildPythonPackage rec {
-   name = "glanceclient-${version}";
-   version = "1.1.0";
-
-   src = pkgs.fetchurl {
-     url = "mirror://pypi/p/python-glanceclient/python-glanceclient-${version}.tar.gz";
-     sha256 = "0ppjafsmf29ps23jsw6g2xm66pdi5jdzpywglqqm28b8fj931zsr";
-   };
-
-   propagatedBuildInputs = with self; [
-     oslo-i18n oslo-utils six requests keystoneclient prettytable Babel pbr
-     argparse warlock
-   ];
-   buildInputs = with self; [
-     tempest-lib requests-mock
-   ];
-
-   checkPhase = ''
-     ${python.interpreter} -m subunit.run discover -t ./ .
-   '';
-
-   meta = with stdenv.lib; {
-     description = "Python bindings to the OpenStack Images API";
-     homepage = "http://www.openstack.org/";
-
-     # requires an update, incompatible with current dependencies (pbr)
-     broken = true;
-   };
- };
+  cmd2 = callPackage ../development/python-modules/cmd2 {};
 
  warlock = buildPythonPackage rec {
    name = "warlock-${version}";
@@ -15728,93 +11123,9 @@ in {
  };
 
 
-  oslo-service = buildPythonPackage rec {
-    name = "oslo.service-${version}";
-    version = "0.10.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.service/oslo.service-0.10.0.tar.gz";
-      sha256 = "1pcnimc2a50arcgq355ad9lramf6y1yv974swgfj6w90v5c6p9gz";
-    };
-
-    propagatedBuildInputs = with self; [
-      repoze_lru PasteDeploy Babel oslo-context debtcollector
-      oslo-concurrency wrapt eventlet six oslo-serialization greenlet paste
-      oslo-config monotonic iso8601 oslo-log pytz routes msgpack
-      oslo-i18n argparse oslo-utils pbr enum34 netaddr stevedore netifaces
-      pyinotify webob retrying pyinotify ];
-    buildInputs = with self; [
-      oslosphinx oslotest pkgs.procps mock mox3 fixtures subunit testrepository
-      testtools testscenarios
-    ];
-
-    # failing tests
-    preCheck = ''
-      rm oslo_service/tests/test_service.py
-    '';
+  pecan = callPackage ../development/python-modules/pecan { };
 
-    meta = with stdenv.lib; {
-      homepage = "http://wiki.openstack.org/wiki/Oslo#oslo.service";
-    };
-  };
-
-  oslo-cache = buildPythonPackage rec {
-    name = "oslo.cache-${version}";
-    version = "0.9.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.cache/${name}.tar.gz";
-      sha256 = "0dzvm5xkfj1alf469d7v3syig9f91kjh4p55k57ykgaww3y4cdjp";
-    };
-
-    propagatedBuildInputs = with self; [
-      Babel dogpile_cache six oslo-config oslo-i18n oslo-log oslo-utils
-    ];
-    buildInputs = with self; [
-      oslosphinx oslotest memcached pymongo
-    ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  pecan = buildPythonPackage rec {
-    name = "pecan-${version}";
-    version = "1.0.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pecan/${name}.tar.gz";
-      sha256 = "04abmybab8jzbwgmrr0fcpcfhcvvkdsv9q135dss02wyk9q9jv4d";
-    };
-
-    propagatedBuildInputs = with self; [
-      singledispatch logutils
-    ];
-    buildInputs = with self; [
-      webtest Mako genshi Kajiki sqlalchemy gunicorn jinja2 virtualenv
-    ];
-
-    meta = with stdenv.lib; {
-      description = "Pecan";
-      homepage = "http://github.com/pecan/pecan";
-    };
-  };
-
-  kaitaistruct = buildPythonPackage rec {
-    name = "kaitaistruct-${version}";
-    version = "0.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/k/kaitaistruct/${name}.tar.gz";
-      sha256 = "0rwcrlz7f2bwmypqa38pag492bp71wp1bhz51hsaynjjyr9knr12";
-    };
-
-    meta = with stdenv.lib; {
-      description = "Kaitai Struct: runtime library for Python";
-      homepage = "https://github.com/kaitai-io/kaitai_struct_python_runtime";
-      license = licenses.mit;
-    };
-  };
+  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
 
   Kajiki = buildPythonPackage rec {
     name = "Kajiki-${version}";
@@ -15834,171 +11145,7 @@ in {
     };
   };
 
-  ryu = buildPythonPackage rec {
-    name = "ryu-${version}";
-    version = "3.26";
-
-    propagatedBuildInputs = with self; [
-      pbr paramiko lxml
-    ];
-    buildInputs = with self; [
-      webtest routes oslo-config msgpack eventlet FormEncode
-    ];
-
-    preCheck = ''
-      # we don't really need linters
-      sed -i '/pylint/d' tools/test-requires
-      sed -i '/pep8/d' tools/test-requires
-    '';
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/ryu/${name}.tar.gz";
-      sha256 = "1fhriqi7qnvvx9mbvlfm94i5drh920lg204zy3v0qjz43sinkih6";
-    };
-
-    meta.broken = true;
-  };
-
-  WSME = buildPythonPackage rec {
-    name = "WSME-${version}";
-    version = "0.8.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/W/WSME/${name}.tar.gz";
-      sha256 = "1nw827iz5g9jlfnfbdi8kva565v0kdjzba2lccziimj09r71w900";
-    };
-
-    checkPhase = ''
-      # remove turbogears tests as we don't have it packaged
-      rm tests/test_tg*
-      # remove flask since we don't have flask-restful
-      rm tests/test_flask*
-      # https://bugs.launchpad.net/wsme/+bug/1510823
-      ${if isPy3k then "rm tests/test_cornice.py" else ""}
-
-      nosetests tests/
-    '';
-
-    propagatedBuildInputs = with self; [
-      pbr six simplegeneric netaddr pytz webob
-    ];
-    buildInputs = with self; [
-      cornice nose webtest pecan transaction cherrypy sphinx
-    ];
-  };
-
-  taskflow = buildPythonPackage rec {
-    name = "taskflow-${version}";
-    version = "1.23.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/taskflow/${name}.tar.gz";
-      sha256 = "15np1rc6g9vksgdj0y930ysx5wbmhvc082g264j5zbj6c479g8qa";
-    };
-
-    propagatedBuildInputs = with self; [
-      pbr futures enum34 debtcollector cachetools oslo-serialization oslo-utils
-      jsonschema monotonic stevedore networkx futurist pbr automaton fasteners
-    ];
-    buildInputs = with self; [
-      oslosphinx pymysql psycopg2 alembic redis eventlet kazoo zake kombu
-      testscenarios testtools mock oslotest
-    ];
-
-    preBuild = ''
-      # too many transient failures
-      rm taskflow/tests/unit/test_engines.py
-    '';
-
-    checkPhase = ''
-      sed -i '/doc8/d' test-requirements.txt
-      ${python.interpreter} setup.py test
-    '';
-  };
-
-  glance_store = buildPythonPackage rec {
-    name = "glance_store-${version}";
-    version = "0.9.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/g/glance_store/${name}.tar.gz";
-      sha256 = "16az3lq9szl0ixna9rd82dmn4sfxqyivhn4z3z79vk8qdfip1sr9";
-    };
-
-    # remove on next version bump
-    patches = [
-       ../development/python-modules/fix_swiftclient_mocking.patch
-    ];
-
-    propagatedBuildInputs = with self; [
-      oslo-config oslo-i18n oslo-serialization oslo-utils oslo-concurrency stevedore
-      enum34 eventlet six jsonschema swiftclient httplib2 pymongo
-    ];
-    buildInputs = with self; [
-      mock fixtures subunit requests-mock testrepository testscenarios testtools
-      oslotest oslosphinx boto oslo-vmware
-    ];
-
-    meta = with stdenv.lib; {
-      description = "Glance Store Library";
-      homepage = "http://www.openstack.org/";
-    };
-  };
-
-  swiftclient = buildPythonPackage rec {
-    name = "swiftclient-${version}";
-    version = "2.6.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-swiftclient/python-swiftclient-${version}.tar.gz";
-      sha256 = "1j33l4z9vqh0scfncl4fxg01zr1hgqxhhai6gvcih1gccqm4nd7p";
-    };
-
-    propagatedBuildInputs = with self; [
-      pbr requests futures six
-    ];
-    buildInputs = with self; [
-      testtools testrepository mock
-    ];
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    meta = with stdenv.lib; {
-      description = "Python bindings to the OpenStack Object Storage API";
-      homepage = "http://www.openstack.org/";
-    };
-  };
-
-
-  castellan = buildPythonPackage rec {
-    name = "castellan-${version}";
-    version = "0.2.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/c/castellan/${name}.tar.gz";
-      sha256 = "1im9b4qzq4yhn17jjc8927b3hn06h404vsx8chddw2jfp0v4ryfj";
-    };
-
-    propagatedBuildInputs = with self; [
-      pbr Babel cryptography oslo-config oslo-context oslo-log oslo-policy
-      oslo-serialization oslo-utils
-    ];
-    buildInputs = with self; [
-      subunit barbicanclient oslosphinx oslotest testrepository testtools
-      testscenarios
-    ];
-
-    preCheck = ''
-      # uses /etc/castellan/castellan-functional.conf
-      rm castellan/tests/functional/key_manager/test_barbican_key_manager.py
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/yahoo/Zake";
-    };
-  };
+  WSME = callPackage ../development/python-modules/WSME { };
 
   zake = buildPythonPackage rec {
     name = "zake-${version}";
@@ -16020,53 +11167,6 @@ in {
     };
   };
 
-  automaton = buildPythonPackage rec {
-    name = "automaton-${version}";
-    version = "0.8.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/automaton/${name}.tar.gz";
-      sha256 = "040rw7w92mp34a15vzvbfvhv1cg8zf81s9jbdd9rmwxr0gmgp2ya";
-    };
-
-    propagatedBuildInputs = with self; [
-      wrapt pbr Babel six pytz prettytable debtcollector
-    ];
-    buildInputs = with self; [
-      testtools testscenarios testrepository
-    ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  networking-hyperv = buildPythonPackage rec {
-    name = "networking-hyperv-${version}";
-    version = "2015.1.0";
-    disabled = isPy3k;  # failing tests
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/networking-hyperv/${name}.tar.gz";
-      sha256 = "04wfkl8rffxp6gp7qvhhc8y80cy0akmh3z7k7y2sj6savg9q7jdj";
-    };
-
-    propagatedBuildInputs = with self; [
-      pbr Babel oslo-config oslo-i18n oslo-serialization oslo-utils oslo-log
-    ];
-    buildInputs = with self; [
-      testtools testscenarios testrepository oslotest oslosphinx subunit eventlet
-      fixtures mock
-    ];
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-      # it has pinned pbr<1.0
-      sed -i '/pbr/d' requirements.txt
-      # https://github.com/openstack/networking-hyperv/commit/56d66fc012846620a60cb8f18df5a1c889fe0e26
-      sed -i 's/from oslo import i18n/import oslo_i18n as i18n/' hyperv/common/i18n.py
-    '';
-  };
-
   kazoo = buildPythonPackage rec {
     name = "kazoo-${version}";
     version = "2.2.1";
@@ -16101,52 +11201,7 @@ in {
     };
   };
 
-  osprofiler = buildPythonPackage rec {
-    name = "osprofiler-${version}";
-    version = "0.3.0";
-    disabled = isPyPy;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/osprofiler/${name}.tar.gz";
-      sha256 = "01rjym49nn4ry1pr2n8fyal1hf17jqhp2yihg8gr15nfjc5iszkx";
-    };
-
-    propagatedBuildInputs = with self; [
-      pbr argparse six webob
-    ];
-    buildInputs = with self; [
-      oslosphinx coverage mock subunit testrepository testtools
-    ];
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  FormEncode = buildPythonPackage rec {
-    name = "FormEncode-${version}";
-    version = "1.3.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/F/FormEncode/${name}.zip";
-      sha256 = "0y5gywq0l79l85ylr55p4xy0h921zgmfw6zmrvlh83aa4j074xg6";
-    };
-
-    buildInputs = with self; [
-      dns pycountry nose
-    ];
-
-    preCheck = ''
-      # two tests require dns resolving
-      sed -i 's/test_cyrillic_email/noop/' formencode/tests/test_email.py
-      sed -i 's/test_unicode_ascii_subgroup/noop/' formencode/tests/test_email.py
-    '';
-
-    meta = with stdenv.lib; {
-      description = "FormEncode validates and converts nested structures";
-      homepage = "http://formencode.org";
-    };
-  };
+  FormEncode = callPackage ../development/python-modules/FormEncode { };
 
   pycountry = buildPythonPackage rec {
     name = "pycountry-${version}";
@@ -16184,40 +11239,7 @@ in {
     };
   };
 
-  oslo-policy = buildPythonPackage rec {
-    name = "oslo.policy-${version}";
-    version = "0.12.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.policy/${name}.tar.gz";
-      sha256 = "06apaj6fwg7f2g5psmxzr5a9apj2l4k2y8kl1hqzyssykblij8ss";
-    };
-
-    propagatedBuildInputs = with self; [
-      requests oslo-config oslo-i18n oslo-serialization oslo-utils six
-    ];
-    buildInputs = with self; [
-      oslosphinx httpretty oslotest
-    ];
-  };
-
-  ldappool = buildPythonPackage rec {
-    name = "ldappool-${version}";
-    version = "1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/ldappool/${name}.tar.gz";
-      sha256 = "1akmzf51cjfvmd0nvvm562z1w9vq45zsx6fa72kraqgsgxhnrhqz";
-    };
-
-    # Judging from SyntaxError
-    disabled = isPy3k;
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/mozilla-services/ldappool";
-    };
-  };
-
+  ldappool = callPackage ../development/python-modules/ldappool { };
 
   lz4 = buildPythonPackage rec {
     name = "lz4-0.8.2";
@@ -16236,33 +11258,6 @@ in {
     };
   };
 
-
-  oslo-concurrency = buildPythonPackage rec {
-   name = "oslo-concurrency-${version}";
-   version = "2.7.0";
-
-   src = pkgs.fetchurl {
-     url = "mirror://pypi/o/oslo.concurrency/oslo.concurrency-2.7.0.tar.gz";
-     sha256 = "1yp8c87yi6fx1qbq4y1xkx47iiifg7jqzpcghivhxqra8vna185d";
-   };
-
-   propagatedBuildInputs = with self; [
-     oslo-i18n argparse six wrapt oslo-utils pbr enum34 Babel netaddr monotonic
-     iso8601 oslo-config pytz netifaces stevedore debtcollector retrying fasteners
-     eventlet
-   ];
-   buildInputs = with self; [
-     oslosphinx fixtures futures coverage oslotest
-   ];
-
-   # too much magic in tests
-   doCheck = false;
-
-   meta = with stdenv.lib; {
-     homepage = http://launchpad.net/oslo;
-   };
- };
-
  retrying = buildPythonPackage rec {
     name = "retrying-${version}";
     version = "1.3.3";
@@ -16330,98 +11325,7 @@ in {
     };
   };
 
-  oslo-log = buildPythonPackage rec {
-    name = "oslo.log-${version}";
-    version = "1.12.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.log/${name}.tar.gz";
-      sha256 = "10x596r19zjla5n1bf04j5vncx0c9gpc5wc2jlmgjbl3cyx3vgsv";
-    };
-
-    propagatedBuildInputs = with self; [
-      pbr Babel six iso8601 debtcollector
-      oslo-utils oslo-i18n oslo-config oslo-serialization oslo-context
-    ] ++ stdenv.lib.optional stdenv.isLinux pyinotify;
-    buildInputs = with self; [ oslotest oslosphinx ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  oslo-context = buildPythonPackage rec {
-    name = "oslo.context-${version}";
-    version = "0.7.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.context/${name}.tar.gz";
-      sha256 = "18fmg9dhgngshk63wfb3ddrgx5br8jxkk3x30z40741mslp1fdjy";
-    };
-
-    propagatedBuildInputs = with self; [ pbr Babel ];
-    buildInputs = with self; [ oslotest coverage oslosphinx ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  oslo-i18n = buildPythonPackage rec {
-    name = "oslo.i18n-${version}";
-    version = "2.7.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.i18n/${name}.tar.gz";
-      sha256 = "11jgcvj36g97awh7fpar4xxgwrvzfahq6rw7xxqac32ia790ylcz";
-    };
-
-    propagatedBuildInputs = with self; [ pbr Babel six oslo-config ];
-    buildInputs = with self; [ mock coverage oslotest ];
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-  };
-
-  oslo-config = callPackage ../development/python-modules/oslo-config { };
-
-  oslotest = buildPythonPackage rec {
-    name = "oslotest-${version}";
-    version = "1.12.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslotest/${name}.tar.gz";
-      sha256 = "17i92hymw1dwmmb5yv90m2gam2x21mc960q1pr7bly93x49h8666";
-    };
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    propagatedBuildInputs = with self; [ pbr fixtures subunit six testrepository
-      testscenarios testtools mock mox3 oslo-config os-client-config ];
-  };
-
-  os-client-config = buildPythonPackage rec {
-    name = "os-client-config-${version}";
-    version = "1.8.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/os-client-config/${name}.tar.gz";
-      sha256 = "10hz4yp594mi1p7v1pvgsmx5w2rnb9y8d0jvb2lfv03ljnwzv8jz";
-    };
-
-    buildInputs = with self; [ pbr testtools testscenarios testrepository fixtures ];
-    propagatedBuildInputs = with self; [ appdirs pyyaml keystoneauth1 ];
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-    # TODO: circular import on oslotest
-    preCheck = ''
-      rm os_client_config/tests/{test_config,test_cloud_config,test_environ}.py
-    '';
-  };
-
-  keystoneauth1 = callPackage ../development/python-modules/keystoneauth1 {};
+  olefile = callPackage ../development/python-modules/olefile { };
 
   requests-mock = buildPythonPackage rec {
     name = "requests-mock-${version}";
@@ -16442,49 +11346,28 @@ in {
 
   mox3 = buildPythonPackage rec {
     name = "mox3-${version}";
-    version = "0.11.0";
+    version = "0.23.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/m/mox3/${name}.tar.gz";
-      sha256 = "09dkgki21v5zqrx575h1aazxsq5akkv0a90z644bk1ry9a4zg1pn";
+      sha256 = "0q26sg0jasday52a7y0cch13l0ssjvr4yqnvswqxsinj1lv5ld88";
     };
 
     patchPhase = ''
       sed -i 's@python@${python.interpreter}@' .testr.conf
     '';
 
+    #  FAIL: mox3.tests.test_mox.RegexTest.testReprWithFlags
+    #  ValueError: cannot use LOCALE flag with a str pattern
+    doCheck = !isPy36;
+
     buildInputs = with self; [ subunit testrepository testtools six ];
     propagatedBuildInputs = with self; [ pbr fixtures ];
   };
 
-  debtcollector = buildPythonPackage rec {
-    name = "debtcollector-${version}";
-    version = "0.9.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/debtcollector/${name}.tar.gz";
-      sha256 = "1mvdxdrnwlgfqg26s5himkjq6f06r2khlrignx36kkbyaix6j9xb";
-    };
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    buildInputs = with self; [ pbr Babel six wrapt testtools testscenarios
-      testrepository subunit coverage oslotest ];
-  };
+  doc8 = callPackage ../development/python-modules/doc8 { };
 
-  wrapt = buildPythonPackage rec {
-    name = "wrapt-${version}";
-    version = "1.10.5";
-
-    # No tests in archive
-    doCheck = false;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/w/wrapt/${name}.tar.gz";
-      sha256 = "0cq8rlpzkxzk48b50yrfhzn1d1hrq4gjcdqlrgq4v5palgiv9jwr";
-    };
-  };
+  wrapt = callPackage ../development/python-modules/wrapt { };
 
   pagerduty = buildPythonPackage rec {
     name = "pagerduty-${version}";
@@ -16499,6 +11382,8 @@ in {
 
   pandas = callPackage ../development/python-modules/pandas { };
 
+  pandas_0_17_1 = callPackage ../development/python-modules/pandas/0.17.1.nix { };
+
   xlrd = buildPythonPackage rec {
     name = "xlrd-${version}";
 
@@ -16515,23 +11400,7 @@ in {
 
   };
 
-  bottleneck = buildPythonPackage rec {
-    name = "Bottleneck-${version}";
-    version = "1.2.0";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/B/Bottleneck/Bottleneck-${version}.tar.gz";
-      sha256 = "3bec84564a4adbe97c24e875749b949a19cfba4e4588be495cc441db7c6b05e8";
-    };
-
-    buildInputs = with self; [ nose ];
-    propagatedBuildInputs = [self.numpy];
-    checkPhase = ''
-      nosetests -v $out/${python.sitePackages}
-    '';
-    postPatch = ''
-      substituteInPlace setup.py --replace "__builtins__.__NUMPY_SETUP__ = False" ""
-    '';
-  };
+  bottleneck = callPackage ../development/python-modules/bottleneck { };
 
   paho-mqtt = buildPythonPackage rec {
     name = "paho-mqtt-${version}";
@@ -16561,7 +11430,7 @@ in {
       sha256 = "1vmyvynqzx5zvbipaxff4fnzy3h3dvl3zicyr15yb816j93jl2ca";
     };
 
-    buildInputs = with self; [ mock nose pep8 pylint ];
+    buildInputs = with self; [ mock nose pep8 pylint mccabe ];
 
     meta = {
       description = "RabbitMQ Focused AMQP low-level library";
@@ -16601,6 +11470,8 @@ in {
 
     propagatedBuildInputs = with self; [ cryptography pyasn1 ];
 
+    __darwinAllowLocalNetworking = true;
+
     # https://github.com/paramiko/paramiko/issues/449
     doCheck = !(isPyPy || isPy33);
     checkPhase = ''
@@ -16625,6 +11496,10 @@ in {
     };
   };
 
+  parameterized = callPackage ../development/python-modules/parameterized { };
+
+  paramz = callPackage ../development/python-modules/paramz { };
+
   parsel = buildPythonPackage rec {
     name = "parsel-${version}";
     version = "1.1.0";
@@ -16648,30 +11523,9 @@ in {
     };
   };
 
-  partd = buildPythonPackage rec {
-    name = "partd-${version}";
-    version = "0.3.7";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/partd/${name}.tar.gz";
-      sha256 = "066d254d2dh9xcanffgkjgwxpz5v0059b063bij10fvzl2y49hzx";
-    };
+  parso = callPackage ../development/python-modules/parso { };
 
-    buildInputs = with self; [ pytest ];
-
-    propagatedBuildInputs = with self; [ locket numpy pandas pyzmq toolz ];
-
-    checkPhase = ''
-      rm partd/tests/test_zmq.py # requires network & fails
-      py.test
-    '';
-
-    meta = {
-      description = "Appendable key-value storage";
-      license = with licenses; [ bsd3 ];
-      homepage = http://github.com/dask/partd/;
-    };
-  };
+  partd = callPackage ../development/python-modules/partd { };
 
   patch = buildPythonPackage rec {
     name = "${pname}-${version}";
@@ -16780,7 +11634,7 @@ in {
 
    pasteScript = buildPythonPackage rec {
     version = "1.7.5";
-    name = "PasterScript-${version}";
+    name = "PasteScript-${version}";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/P/PasteScript/${name}.tar.gz";
@@ -16798,6 +11652,8 @@ in {
     };
   };
 
+  patator = callPackage ../development/python-modules/patator { };
+
   pathlib = buildPythonPackage rec {
     name = "pathlib-${version}";
     version = "1.0.1";
@@ -16819,62 +11675,15 @@ in {
     };
   };
 
-  pathlib2 = if !(pythonOlder "3.4") then null else buildPythonPackage rec {
-    name = "pathlib2-${version}";
-    version = "2.2.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pathlib2/${name}.tar.gz";
-      sha256 = "ce9007df617ef6b7bd8a31cd2089ed0c1fed1f7c23cf2bf1ba140b3dd563175d";
-    };
-
-    propagatedBuildInputs = with self; [ six ] ++ optional (pythonOlder "3.5") scandir;
-
-    meta = {
-      description = "This module offers classes representing filesystem paths with semantics appropriate for different operating systems.";
-      homepage = https://pypi.python.org/pypi/pathlib2/;
-      license = with licenses; [ mit ];
-    };
-
-  };
+  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
 
   pathpy = callPackage ../development/python-modules/path.py { };
 
-  paypalrestsdk = buildPythonPackage rec {
-    name = "paypalrestsdk-0.7.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/paypalrestsdk/${name}.tar.gz";
-      sha256 = "117kfipzfahf9ysv414bh1mmm5cc9ck5zb6rhpslx1f8gk3frvd6";
-    };
-
-    propagatedBuildInputs = with self; [ httplib2 ];
-
-    meta = {
-      homepage = https://developer.paypal.com/;
-      description = "Python APIs to create, process and manage payment";
-      license = "PayPal SDK License";
-    };
-  };
+  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
 
   pbr = callPackage ../development/python-modules/pbr { };
 
-  fixtures = buildPythonPackage rec {
-    name = "fixtures-1.4.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/f/fixtures/${name}.tar.gz";
-      sha256 = "0djxvdwm8s60dbfn7bhf40x6g818p3b3mlwijm1c3bqg7msn271y";
-    };
-
-    buildInputs = with self; [ pbr testtools mock ];
-
-    meta = {
-      description = "Reusable state for writing clean tests and more";
-      homepage = "https://pypi.python.org/pypi/fixtures";
-      license = licenses.asl20;
-    };
-  };
+  fixtures = callPackage ../development/python-modules/fixtures { };
 
   pelican = callPackage ../development/python-modules/pelican {
     inherit (pkgs) glibcLocales pandoc git;
@@ -16897,7 +11706,7 @@ in {
     };
   };
 
-  pep257 = callPackage ../development/python-modules/pep257.nix { };
+  pep257 = callPackage ../development/python-modules/pep257 { };
 
   percol = buildPythonPackage rec {
     name = "percol-${version}";
@@ -16935,43 +11744,7 @@ in {
     };
   };
 
-
-  pexpect = buildPythonPackage rec {
-    version = "4.2.1";
-    name = "pexpect-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pexpect/${name}.tar.gz";
-      sha256 = "3d132465a75b57aa818341c6521392a06cc660feb3988d7f1074f39bd23c9a92";
-    };
-
-    # Wants to run pythonin a subprocess
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ ptyprocess ];
-
-    meta = {
-      homepage = http://www.noah.org/wiki/Pexpect;
-      description = "Automate interactive console applications such as ssh, ftp, etc";
-      license = licenses.mit;
-
-      longDescription = ''
-        Pexpect is similar to the Don Libes "Expect" system, but Pexpect
-        as a different interface that is easier to understand. Pexpect
-        is basically a pattern matching system. It runs programs and
-        watches output. When output matches a given pattern Pexpect can
-        respond as if a human were typing responses. Pexpect can be used
-        for automation, testing, and screen scraping. Pexpect can be
-        used for automating interactive console applications such as
-        ssh, ftp, passwd, telnet, etc. It can also be used to control
-        web applications via "lynx", "w3m", or some other text-based web
-        browser. Pexpect is pure Python. Unlike other Expect-like
-        modules for Python Pexpect does not require TCL or Expect nor
-        does it require C extensions to be compiled. It should work on
-        any platform that supports the standard Python pty module.
-      '';
-    };
-  };
+  pexpect = callPackage ../development/python-modules/pexpect { };
 
   pdfkit = buildPythonPackage rec {
     name = "pdfkit-${version}";
@@ -17032,40 +11805,6 @@ in {
       description = "Meta-commands handler for Postgres Database";
       homepage = https://pypi.python.org/pypi/pgspecial;
       license = licenses.bsd3;
-      maintainers = with maintainers; [ nckx ];
-    };
-  };
-
-
-  mycli = buildPythonPackage rec {
-    name = "mycli-${version}";
-    version = "1.6.0";
-    disabled = isPy35;
-
-    src = pkgs.fetchFromGitHub {
-      sha256 = "0vvl36gxawa0h36v119j47fdylj8k73ak6hv04s5cjqn5adcjjbh";
-      rev = "v${version}";
-      repo = "mycli";
-      owner = "dbcli";
-    };
-
-    propagatedBuildInputs = with self; [
-      pymysql configobj sqlparse prompt_toolkit pygments click pycrypto
-    ];
-
-    postPatch = ''
-      substituteInPlace setup.py --replace "==" ">="
-    '';
-
-    meta = {
-      inherit version;
-      description = "Command-line interface for MySQL";
-      longDescription = ''
-        Rich command-line interface for MySQL with auto-completion and
-        syntax highlighting.
-      '';
-      homepage = http://mycli.net;
-      license = licenses.bsd3;
     };
   };
 
@@ -17139,6 +11878,7 @@ in {
   };
 
   pip-tools = callPackage ../development/python-modules/pip-tools {
+    git = pkgs.gitMinimal;
     glibcLocales = pkgs.glibcLocales;
   };
 
@@ -17164,27 +11904,11 @@ in {
   };
 
   pika-pool = callPackage ../development/python-modules/pika-pool { };
+  platformio = callPackage ../development/python-modules/platformio { };
 
-  platformio =  buildPythonPackage rec {
-    name = "platformio-${version}";
-    version="2.10.3";
+  kmsxx = callPackage ../development/libraries/kmsxx { };
 
-    disabled = isPy3k || isPyPy;
-
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/b7/a3/1d3a9d7bae91df1b607e0f31549ec3e0006f29484cc6a1431b3fe3c5b02e/platformio-2.10.3.tar.gz";
-      sha256 = "f3a646871f9baed05f336a32576edaab90abf0737d8adb54f2acb7bcad42a65f";
-     };
-
-     propagatedBuildInputs = with self; [ click_5 requests bottle pyserial lockfile colorama];
-
-     meta = with stdenv.lib; {
-     description = "An open source ecosystem for IoT development";
-     homepage = http://platformio.org;
-     maintainers = with maintainers; [ mog ];
-     license = licenses.asl20;
-     };
-  };
+  pybase64 = callPackage ../development/python-modules/pybase64 { };
 
   pylibconfig2 = buildPythonPackage rec {
     name = "pylibconfig2-${version}";
@@ -17208,24 +11932,7 @@ in {
 
   pylibmc = callPackage ../development/python-modules/pylibmc {};
 
-  pymetar = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "pymetar";
-    version = "0.20";
-
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/${pname}/${name}.tar.gz";
-      sha256 = "1rxyg9465cp6nc47pqxqf092wmbvv2zhffzvaf2w74laal43pgxw";
-    };
-
-    meta = {
-      description = "A command-line tool to show the weather report by a given station ID";
-      homepage = http://www.schwarzvogel.de/software/pymetar.html;
-      license = licenses.gpl2;
-    };
-  };
+  pymetar = callPackage ../development/python-modules/pymetar { };
 
   pysftp = buildPythonPackage rec {
     name = "pysftp-${version}";
@@ -17251,32 +11958,7 @@ in {
     };
   };
 
-  pysoundfile = buildPythonPackage rec {
-    name = "pysoundfile-${version}";
-    version = "0.8.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/P/PySoundFile/PySoundFile-${version}.tar.gz";
-      sha256 = "72c3e23b7c9998460ec78176084ea101e3439596ab29df476bc8508708df84df";
-    };
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ numpy pkgs.libsndfile cffi ];
-
-    meta = {
-      description = "An audio library based on libsndfile, CFFI and NumPy";
-      license = licenses.bsd3;
-      homepage = https://github.com/bastibe/PySoundFile;
-      maintainers = with maintainers; [ fridh ];
-    };
-
-    prePatch = ''
-      substituteInPlace soundfile.py --replace "'sndfile'" "'${pkgs.libsndfile.out}/lib/libsndfile.so'"
-    '';
-
-    # https://github.com/bastibe/PySoundFile/issues/157
-    disabled = isPyPy ||  stdenv.isi686;
-  };
+  pysoundfile = callPackage ../development/python-modules/pysoundfile { };
 
   python3pika = buildPythonPackage {
     name = "python3-pika-0.9.14";
@@ -17319,61 +12001,9 @@ in {
 
   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
 
-  pillow = buildPythonPackage rec {
-    name = "Pillow-${version}";
-    version = "3.4.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/P/Pillow/${name}.tar.gz";
-      sha256 = "0ee9975c05602e755ff5000232e0335ba30d507f6261922a658ee11b1cec36d1";
-    };
-
-    doCheck = !stdenv.isDarwin && !isPyPy;
-
-    # Disable imagefont tests, because they don't work well with infinality:
-    # https://github.com/python-pillow/Pillow/issues/1259
-    postPatch = ''
-      rm Tests/test_imagefont.py
-    '';
-
-    buildInputs = with self; [
-      pkgs.freetype pkgs.libjpeg pkgs.zlib pkgs.libtiff pkgs.libwebp pkgs.tcl nose pkgs.lcms2 ]
-      ++ optionals (isPyPy) [ pkgs.tk pkgs.xorg.libX11 ];
-
-    # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
-    preConfigure = let
-      libinclude' = pkg: ''"${pkg.out}/lib", "${pkg.out}/include"'';
-      libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
-    in ''
-      sed -i "setup.py" \
-          -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude pkgs.freetype}|g ;
-              s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude pkgs.libjpeg}|g ;
-              s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude pkgs.zlib}|g ;
-              s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude pkgs.lcms2}|g ;
-              s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude pkgs.libtiff}|g ;
-              s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' pkgs.tcl}|g ;'
-      export LDFLAGS="-L${pkgs.libwebp}/lib"
-      export CFLAGS="-I${pkgs.libwebp}/include"
-    ''
-    # Remove impurities
-    + stdenv.lib.optionalString stdenv.isDarwin ''
-      substituteInPlace setup.py \
-        --replace '"/Library/Frameworks",' "" \
-        --replace '"/System/Library/Frameworks"' ""
-    '';
-
-    meta = {
-      homepage = "https://python-pillow.github.io/";
-      description = "Fork of The Python Imaging Library (PIL)";
-      longDescription = ''
-        The Python Imaging Library (PIL) adds image processing
-        capabilities to your Python interpreter.  This library
-        supports many file formats, and provides powerful image
-        processing and graphics capabilities.
-      '';
-      license = "http://www.pythonware.com/products/pil/license.htm";
-      maintainers = with maintainers; [ goibhniu prikhi ];
-    };
+  pillow = callPackage ../development/python-modules/pillow {
+    inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+    inherit (pkgs.xorg) libX11;
   };
 
   pkgconfig = buildPythonPackage rec {
@@ -17394,7 +12024,7 @@ in {
 
     meta = {
       description = "Interface Python with pkg-config";
-      homepage = http://github.com/matze/pkgconfig;
+      homepage = https://github.com/matze/pkgconfig;
       license = licenses.mit;
     };
 
@@ -17409,25 +12039,7 @@ in {
 
   plumbum = callPackage ../development/python-modules/plumbum { };
 
-
-  polib = buildPythonPackage rec {
-    name = "polib-${version}";
-    version = "1.0.4";
-
-    src = pkgs.fetchurl {
-      url = "http://bitbucket.org/izi/polib/downloads/${name}.tar.gz";
-      sha256 = "16klwlswfbgmkzrra80fgzhic9447pk3mnr75r2fkz72bkvpcclb";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "A library to manipulate gettext files (po and mo files)";
-      homepage = "http://bitbucket.org/izi/polib/";
-      license = licenses.mit;
-    };
-  };
+  polib = callPackage ../development/python-modules/polib {};
 
   posix_ipc = buildPythonPackage rec {
     name = "posix_ipc-${version}";
@@ -17445,6 +12057,8 @@ in {
     };
   };
 
+  portend = callPackage ../development/python-modules/portend { };
+
   powerline = callPackage ../development/python-modules/powerline { };
 
   pox = buildPythonPackage rec {
@@ -17481,34 +12095,11 @@ in {
     };
   };
 
-  praw = buildPythonPackage rec {
-    name = "praw-3.5.0";
+  praw = callPackage ../development/python-modules/praw { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/praw/${name}.zip";
-      sha256 = "1hwdzqbrjdkicqhyxpcpsmld21k0ndpy8d2gk6l5mv9isw3dm8qa";
-    };
+  prawcore = callPackage ../development/python-modules/prawcore { };
 
-    propagatedBuildInputs = with self; [
-      requests
-      decorator
-      flake8
-      mock
-      six
-      update_checker
-    ];
-
-    # can't find the tests module?
-    doCheck = false;
-
-    meta = {
-      description = "Python Reddit API wrapper";
-      homepage = http://praw.readthedocs.org/;
-      license = licenses.gpl3;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ jgeerds ];
-    };
-  };
+  premailer = callPackage ../development/python-modules/premailer { };
 
   prettytable = buildPythonPackage rec {
     name = "prettytable-0.7.1";
@@ -17531,41 +12122,14 @@ in {
   };
 
 
-  prompt_toolkit = buildPythonPackage rec {
-    name = "prompt_toolkit-${version}";
-    version = "1.0.14";
+  prompt_toolkit = callPackage ../development/python-modules/prompt_toolkit { };
 
-    src = pkgs.fetchurl {
-      sha256 = "cc66413b1b4b17021675d9f2d15d57e640b06ddfd99bb724c73484126d22622f";
-      url = "mirror://pypi/p/prompt_toolkit/${name}.tar.gz";
-    };
-    checkPhase = ''
-      rm prompt_toolkit/win32_types.py
-      py.test -k 'not test_pathcompleter_can_expanduser'
-    '';
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ docopt six wcwidth pygments ];
-
-    meta = {
-      description = "Python library for building powerful interactive command lines";
-      longDescription = ''
-        prompt_toolkit could be a replacement for readline, but it can be
-        much more than that. It is cross-platform, everything that you build
-        with it should run fine on both Unix and Windows systems. Also ships
-        with a nice interactive Python shell (called ptpython) built on top.
-      '';
-      homepage = https://github.com/jonathanslenders/python-prompt-toolkit;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ nckx ];
-    };
-  };
-  prompt_toolkit_52 = self.prompt_toolkit.override(self: rec {
-    name = "prompt_toolkit-${version}";
+  prompt_toolkit_52 = self.prompt_toolkit.overridePythonAttrs(oldAttrs: rec {
+    name = "${oldAttrs.pname}-${version}";
     version = "0.52";
-    src = pkgs.fetchurl {
+    src = oldAttrs.src.override {
+      inherit version;
       sha256 = "00h9ldqmb33nhg2kpks7paldf3n3023ipp124alwp96yz16s7f1m";
-      url = "mirror://pypi/p/prompt_toolkit/${name}.tar.gz";
     };
 
     # No tests included in archive
@@ -17576,53 +12140,27 @@ in {
 
   });
 
-  protobuf = self.protobuf2_6;
-  # only required by tensorflow
-  protobuf3_2 = callPackage ../development/python-modules/protobuf.nix {
+  protobuf = callPackage ../development/python-modules/protobuf {
     disabled = isPyPy;
     doCheck = !isPy3k;
-    protobuf = pkgs.protobuf3_2;
+    protobuf = pkgs.protobuf;
   };
-  protobuf3_0 = callPackage ../development/python-modules/protobuf.nix {
+
+  protobuf3_1 = callPackage ../development/python-modules/protobuf {
     disabled = isPyPy;
     doCheck = !isPy3k;
-    protobuf = pkgs.protobuf3_0;
-  };
-  protobuf2_6 = callPackage ../development/python-modules/protobuf.nix {
-    disabled = isPy3k || isPyPy;
-    doCheck = false;
-    protobuf = pkgs.protobuf2_6;
-  };
-  protobuf2_5 = callPackage ../development/python-modules/protobuf.nix {
-    disabled = isPy3k || isPyPy;
-    protobuf = pkgs.protobuf2_5;
+    protobuf = pkgs.protobuf3_1;
   };
 
-  psutil = buildPythonPackage rec {
-    name = "psutil-${version}";
-    version = "4.3.0";
+  psd-tools = callPackage ../development/python-modules/psd-tools { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/psutil/${name}.tar.gz";
-      sha256 = "1w4r09fvn6kd80m5mx4ws1wz100brkaq6hzzpwrns8cgjzjpl6c6";
-    };
+  psutil = callPackage ../development/python-modules/psutil { };
 
-    # Certain tests fail due to being in a chroot.
-    # See also the older issue: https://code.google.com/p/psutil/issues/detail?id=434
-    doCheck = false;
-
-    buildInputs = with self; [ mock ] ++ optionals stdenv.isDarwin [ pkgs.darwin.IOKit ];
-
-    meta = {
-      description = "Process and system utilization information interface for python";
-      homepage = http://code.google.com/p/psutil/;
-    };
-  };
-
-  psutil_1 = self.psutil.overrideDerivation (self: rec {
-    name = "psutil-1.2.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/psutil/${name}.tar.gz";
+  psutil_1 = self.psutil.overrideAttrs (oldAttrs: rec {
+    name = "${oldAttrs.pname}-${version}";
+    version = "1.2.1";
+    src = oldAttrs.src.override {
+      inherit version;
       sha256 = "0ibclqy6a4qmkjhlk3g8jhpvnk0v9aywknc61xm3hfi5r124m3jh";
     };
   });
@@ -17639,72 +12177,15 @@ in {
     doCheck = false;
     meta = {
       description = "PostgreSQL database adapter for the Python programming language";
-      license = with licenses; [ gpl2 zpt20 ];
-    };
-  };
-
-  ptpython = buildPythonPackage rec {
-    name = "ptpython-0.35";
-    propagatedBuildInputs = with self;
-        [ wcwidth six prompt_toolkit docopt jedi pygments];
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/ptpython/${name}.tar.gz";
-      sha256 = "e0d380fbccb03ed33a7f33d96988e66fbd286bc813c9ceea84a1b3b5615a5660";
-    };
-
-    meta = {
-      description = "An advanced Python REPL";
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ mlieberman85 ];
-      platforms = platforms.all;
-    };
-  };
-
-  publicsuffix = buildPythonPackage rec {
-    name = "publicsuffix-${version}";
-    version = "1.1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/publicsuffix/${name}.tar.gz";
-      sha256 = "1adx520249z2cy7ykwjr1k190mn2888wqn9jf8qm27ly4qymjxxf";
-    };
-
-    # fix the ASCII-mode LICENSE file read
-    # disable test_fetch and the doctests (which also invoke fetch)
-    patchPhase = optionalString isPy3k ''
-      sed -i "s/)\.read(/,encoding='utf-8'\0/" setup.py
-    '' + ''
-      sed -i -e "/def test_fetch/i\\
-      \\t@unittest.skip('requires internet')" -e "/def additional_tests():/,+1d" tests.py
-    '';
-
-    meta = {
-      description = "Allows to get the public suffix of a domain name";
-      homepage = "http://pypi.python.org/pypi/publicsuffix/";
-      license = licenses.mit;
+      license = with licenses; [ gpl2 zpl20 ];
     };
   };
 
+  ptpython = callPackage ../development/python-modules/ptpython {};
 
-  py = buildPythonPackage rec {
-    name = "py-${version}";
-    version = "1.4.31";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/py/${name}.tar.gz";
-      sha256 = "a6501963c725fc2554dabfece8ae9a8fb5e149c0ac0a42fd2b02c5c1c57fc114";
-    };
-
-    # Circular dependency on pytest
-    doCheck = false;
-
-    meta = {
-      description = "Library with cross-python path, ini-parsing, io, code, log facilities";
-      homepage = http://pylib.readthedocs.org/;
-      license = licenses.mit;
-    };
-  };
+  publicsuffix = callPackage ../development/python-modules/publicsuffix {};
 
+  py = callPackage ../development/python-modules/py { };
 
   pyacoustid = buildPythonPackage rec {
     name = "pyacoustid-1.1.0";
@@ -17733,7 +12214,8 @@ in {
 
 
   pyalgotrade = buildPythonPackage {
-    name = "pyalogotrade-0.16";
+    name = "pyalgotrade-0.16";
+    disabled = isPy3k;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/P/PyAlgoTrade/PyAlgoTrade-0.16.tar.gz";
@@ -17750,41 +12232,9 @@ in {
   };
 
 
-  pyasn1 = buildPythonPackage rec {
-    name = "pyasn1-0.1.9";
+  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyasn1/${name}.tar.gz";
-      sha256 = "0zraxni14bqi20kr4bi6nwsh32aibz0fq0xaczfisw0zdpcsqg45";
-    };
-
-    meta = {
-      description = "ASN.1 tools for Python";
-      homepage = http://pyasn1.sourceforge.net/;
-      license = "mBSD";
-      platforms = platforms.unix;  # arbitrary choice
-    };
-  };
-
-  pyasn1-modules = buildPythonPackage rec {
-    name = "pyasn1-modules-${version}";
-    version = "0.0.8";
-    disabled = isPyPy;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyasn1-modules/${name}.tar.gz";
-      sha256 = "0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh";
-    };
-
-    propagatedBuildInputs = with self; [ pyasn1 ];
-
-    meta = {
-      description = "A collection of ASN.1-based protocols modules";
-      homepage = https://pypi.python.org/pypi/pyasn1-modules;
-      license = licenses.bsd3;
-      platforms = platforms.unix;  # same as pyasn1
-    };
-  };
+  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
 
   pyaudio = buildPythonPackage rec {
     name = "python-pyaudio-${version}";
@@ -17806,6 +12256,8 @@ in {
     };
   };
 
+  pysam = callPackage ../development/python-modules/pysam { };
+
   pysaml2 = buildPythonPackage rec {
     name = "pysaml2-${version}";
     version = "3.0.2";
@@ -17844,6 +12296,8 @@ in {
     };
   };
 
+  python-pushover = callPackage ../development/python-modules/pushover {};
+
   mongodict = buildPythonPackage rec {
     name = "mongodict-${version}";
     version = "0.3.1";
@@ -17889,13 +12343,13 @@ in {
 
 
   vobject = buildPythonPackage rec {
-    version = "0.9.3";
+    version = "0.9.5";
     name = "vobject-${version}";
 
     src = pkgs.fetchFromGitHub {
       owner = "eventable";
       repo = "vobject";
-      sha256 = "00vbii5awwqwfh5hfklj1q79w7d85gjigvf2imgyb71g03sb8cjv";
+      sha256 = "1f5lw9kpssr66bdirkjba3izbnm68p8pd47546m5yl4c7x76s1ld";
       rev = version;
     };
 
@@ -17934,66 +12388,7 @@ in {
     };
   };
 
-  pycosat = buildPythonPackage rec {
-    name = "pycosat-0.6.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pycosat/${name}.tar.gz";
-      sha256 = "02sdn2998jlrm35smn1530hix3kzwyc1jv49cjdcnvfvrqqi3rww";
-    };
-
-    meta = {
-      description = "Python bindings for PicoSAT";
-      longDescription = ''PicoSAT is a popular SAT solver written by Armin
-          Biere in pure C. This package provides efficient Python bindings
-          to picosat on the C level, i.e. when importing pycosat, the
-          picosat solver becomes part of the Python process itself. For
-          ease of deployment, the picosat source (namely picosat.c and
-          picosat.h) is included in this project.'';
-      homepage = https://github.com/ContinuumIO/pycosat;
-      license = licenses.mit;
-    };
-  };
-
-  pygit2 = buildPythonPackage rec {
-    name = "pygit2-0.25.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pygit2/${name}.tar.gz";
-      sha256 = "0sja3g9mqwp5bnhdc313b2gc4z3p70nn6zzf2h8j581g0lrn0sg8";
-    };
-
-    # Fixes a bug which can cause test failed when cffi==1.10
-    prePatch = let
-      cffiVersionPatch = pkgs.fetchurl {
-        url = "https://github.com/libgit2/pygit2/commit/b88dc868423af2f760f649960112efd0e37e5335.patch";
-        sha256 = "14cfrz56y2dnwlxrrss9pjhxfnyyg5856gbabzjzyx674k0qcid4";
-      };
-    in ''
-      # we need to delete part of the patch because the missing .travis.yml causes problem
-      sed -e '1,36d' ${cffiVersionPatch} | patch -p1
-    '';
-
-    preConfigure = ( if stdenv.isDarwin then ''
-      export DYLD_LIBRARY_PATH="${pkgs.libgit2}/lib"
-    '' else "" );
-
-    propagatedBuildInputs = with self; [ pkgs.libgit2 six ] ++ optionals (!isPyPy) [ cffi ];
-
-    preCheck = ''
-      # disable tests that require networking
-      rm test/test_repository.py
-      rm test/test_credentials.py
-      rm test/test_submodule.py
-    '';
-
-    meta = {
-      homepage = https://pypi.python.org/pypi/pygit2;
-      description = "A set of Python bindings to the libgit2 shared library";
-      license = licenses.gpl2;
-      platforms = platforms.all;
-    };
-  };
+  pygit2 = callPackage ../development/python-modules/pygit2 { };
 
   Babel = buildPythonPackage (rec {
     name = "Babel-2.3.4";
@@ -18014,29 +12409,7 @@ in {
     };
   });
 
-  pybfd = buildPythonPackage rec {
-    name = "pybfd-0.1.1";
-
-    disabled = isPyPy || isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pybfd/${name}.tar.gz";
-      sha256 = "d99b32ad077e704ddddc0b488c83cae851c14919e5cbc51715d00464a1932df4";
-    };
-
-    preConfigure = ''
-      substituteInPlace setup.py \
-        --replace '"/usr/include"' '"${pkgs.gdb}/include"' \
-        --replace '"/usr/lib"' '"${pkgs.binutils.out}/lib"'
-    '';
-
-    meta = {
-      homepage = https://github.com/Groundworkstech/pybfd;
-      description = "A Python interface to the GNU Binary File Descriptor (BFD) library";
-      license = licenses.gpl2;
-      platforms = platforms.linux;
-    };
-  };
+  pybfd = callPackage ../development/python-modules/pybfd { };
 
   pyblock = stdenv.mkDerivation rec {
     name = "pyblock-${version}";
@@ -18044,7 +12417,7 @@ in {
     md5_path = "f6d33a8362dee358517d0a9e2ebdd044";
 
     src = pkgs.fetchurl rec {
-      url = "http://pkgs.fedoraproject.org/repo/pkgs/python-pyblock/"
+      url = "http://src.fedoraproject.org/repo/pkgs/python-pyblock/"
           + "${name}.tar.bz2/${md5_path}/${name}.tar.bz2";
       sha256 = "f6cef88969300a6564498557eeea1d8da58acceae238077852ff261a2cb1d815";
     };
@@ -18131,27 +12504,24 @@ in {
 
 
   pycdio = buildPythonPackage rec {
-    name = "pycdio-0.20";
+    name = "pycdio-2.0.0";
     disabled = !isPy27;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/p/pycdio/${name}.tar.gz";
-      sha256 = "1mrh233pj584gf7la64d4xlmvdnfl4jwpxs95lnd3i4zd5drid14";
+      sha256 = "1a1h0lmfl56a2a9xqhacnjclv81nv3906vdylalybxrk4bhrm3hj";
     };
 
-    prePatch = ''
-      sed -i -e "s|if type(driver_id)==int|if type(driver_id) in (int, long)|g" cdio.py
-    '';
+    prePatch = "sed -i -e '/DRIVER_BSDI/d' pycdio.py";
 
     preConfigure = ''
       patchShebangs .
     '';
 
-    buildInputs = [ self.setuptools self.nose pkgs.pkgconfig pkgs.swig pkgs.libcdio ]
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = [ self.setuptools self.nose pkgs.swig pkgs.libcdio ]
       ++ stdenv.lib.optional stdenv.isDarwin pkgs.libiconv;
 
-    patches = [ ../development/python-modules/pycdio/add-cdtext-toc.patch ];
-
     # Run tests using nosetests but first need to install the binaries
     # to the root source directory where they can be found.
     checkPhase = ''
@@ -18165,9 +12535,9 @@ in {
       maintainers = with maintainers; [ rycee ];
       license = licenses.gpl3Plus;
     };
-
   };
 
+  pycosat = callPackage ../development/python-modules/pycosat { };
 
   pycryptopp = buildPythonPackage (rec {
     name = "pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958";
@@ -18196,58 +12566,9 @@ in {
     };
   });
 
-  pycups = buildPythonPackage rec {
-    name = "pycups-${version}";
-    version = "1.9.73";
-
-    src = pkgs.fetchurl {
-      url = "http://cyberelk.net/tim/data/pycups/pycups-${version}.tar.bz2";
-      sha256 = "c381be011889ca6f728598578c89c8ac9f7ab1e95b614474df9f2fa831ae5335";
-    };
-
-    buildInputs = [ pkgs.cups ];
-
-    # Wants to connect to CUPS
-    doCheck = false;
-
-    meta = {
-      description = "Python bindings for libcups";
-      homepage = http://cyberelk.net/tim/software/pycups/;
-      license = with licenses; [ gpl2Plus ];
-    };
-
-  };
-
-  pycurl = buildPythonPackage (rec {
-    name = "pycurl-7.19.5.1";
-    disabled = isPyPy; # https://github.com/pycurl/pycurl/issues/208
-
-    src = pkgs.fetchurl {
-      url = "http://pycurl.sourceforge.net/download/${name}.tar.gz";
-      sha256 = "0v5w66ir3siimfzg3kc8hfrrilwwnbxq5bvipmrpyxar0kw715vf";
-    };
-
-    buildInputs = with self; [ pkgs.curl pkgs.openssl.out ];
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    preConfigure = ''
-      substituteInPlace setup.py --replace '--static-libs' '--libs'
-      export PYCURL_SSL_LIBRARY=openssl
-    '';
+  pycups = callPackage ../development/python-modules/pycups { };
 
-    #TODO no idea why this is needed
-    postInstall = ''
-      ln -s ${pkgs.openssl.out}/lib/libcrypto* $out/lib/
-    '';
-
-    meta = {
-      homepage = http://pycurl.sourceforge.net/;
-      description = "Python wrapper for libcurl";
-      platforms = platforms.linux;
-    };
-  });
+  pycurl = callPackage ../development/python-modules/pycurl { };
 
   pycurl2 = buildPythonPackage (rec {
     name = "pycurl2-7.20.0";
@@ -18318,26 +12639,6 @@ in {
     };
   };
 
-  pyelasticsearch = buildPythonPackage (rec {
-    name = "pyelasticsearch-1.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyelasticsearch/${name}.tar.gz";
-      sha256 = "18wp6llfjv6hvyhr3f6i8dm9wc5rf46wiqsfxwpvnf6mdrvk6xr7";
-    };
-
-    # Tests require a local instance of elasticsearch
-    doCheck = false;
-    propagatedBuildInputs = with self; [ elasticsearch six simplejson certifi ];
-    buildInputs = with self; [ nose mock ];
-
-    meta = {
-      description = "A clean, future-proof, high-scale API to elasticsearch";
-      homepage = https://pyelasticsearch.readthedocs.org;
-      license = licenses.bsd3;
-    };
-  });
-
   pyelftools = buildPythonPackage rec {
     pname = "pyelftools";
     version = "0.24";
@@ -18393,34 +12694,7 @@ in {
     };
   };
 
-
-  pyev = buildPythonPackage rec {
-    name = "pyev-0.9.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyev/${name}.tar.gz";
-      sha256 = "0rf603lc0s6zpa1nb25vhd8g4y337wg2wyz56i0agsdh7jchl0sx";
-    };
-
-    buildInputs = [ pkgs.libev ];
-
-    libEvSharedLibrary =
-      if !stdenv.isDarwin
-      then "${pkgs.libev}/lib/libev.so.4"
-      else "${pkgs.libev}/lib/libev.4.dylib";
-
-    postPatch = ''
-      test -f "${libEvSharedLibrary}" || { echo "ERROR: File ${libEvSharedLibrary} does not exist, please fix nix expression for pyev"; exit 1; }
-      sed -i -e "s|libev_dll_name = find_library(\"ev\")|libev_dll_name = \"${libEvSharedLibrary}\"|" setup.py
-    '';
-
-    meta = {
-      description = "Python bindings for libev";
-      homepage = https://code.google.com/p/pyev/;
-      license = licenses.gpl3;
-      maintainers = [ maintainers.bjornfor ];
-    };
-  };
+  pyev = callPackage ../development/python-modules/pyev { };
 
   pyexcelerator = buildPythonPackage rec {
     name = "pyexcelerator-${version}";
@@ -18465,175 +12739,23 @@ in {
      };
    };
 
-  pyfeed = buildPythonPackage rec {
-    url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz";
-    name = stdenv.lib.nameFromURL url ".tar";
-    src = pkgs.fetchurl {
-      inherit url;
-      sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1";
-    };
-    propagatedBuildInputs = with self; [xe];
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      homepage = "http://home.blarg.net/~steveha/pyfeed.html";
-      description = "Tools for syndication feeds";
-    };
-  };
-
-  pyfftw = buildPythonPackage rec {
-    name = "pyfftw-${version}";
-    version = "0.10.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyFFTW/pyFFTW-${version}.tar.gz";
-      sha256 = "739b436b7c0aeddf99a48749380260364d2dc027cf1d5f63dafb5f50068ede1a";
-    };
-
-    buildInputs = [ pkgs.fftw pkgs.fftwFloat pkgs.fftwLongDouble];
-
-    propagatedBuildInputs = with self; [ numpy scipy ];
+  pyfftw = callPackage ../development/python-modules/pyfftw { };
 
-    # Tests cannot import pyfftw. pyfftw works fine though.
-    doCheck = false;
-
-    preConfigure = ''
-      export LDFLAGS="-L${pkgs.fftw.out}/lib -L${pkgs.fftwFloat.out}/lib -L${pkgs.fftwLongDouble.out}/lib"
-      export CFLAGS="-I${pkgs.fftw.dev}/include -I${pkgs.fftwFloat.dev}/include -I${pkgs.fftwLongDouble.dev}/include"
-    '';
-    #+ optionalString isDarwin ''
-    #  export DYLD_LIBRARY_PATH="${pkgs.fftw.out}/lib"
-    #'';
-
-    meta = {
-      description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
-      homepage = http://hgomersall.github.com/pyFFTW/;
-      license = with licenses; [ bsd2 bsd3 ];
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
-
-  pyfiglet = buildPythonPackage rec {
-    name = "pyfiglet-${version}";
-    version = "0.7.5";
-
-    src = pkgs.fetchurl {
-      url    = "mirror://pypi/p/pyfiglet/${name}.tar.gz";
-      sha256 = "04jy4182hn5xfs6jf432gxclfj1rhssd7bsf0b4gymrjzkhr8qa4";
-    };
-
-    doCheck = false;
-
-    meta = {
-      description = "FIGlet in pure Python";
-      license     = licenses.gpl2Plus;
-      maintainers = with maintainers; [ thoughtpolice ];
-    };
-  };
+  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
 
   pyflakes = callPackage ../development/python-modules/pyflakes { };
 
-  pyftgl = buildPythonPackage rec {
-    name = "pyftgl-0.4b";
+  pyftgl = callPackage ../development/python-modules/pyftgl { };
 
-    src = pkgs.fetchFromGitHub {
-      owner = "umlaeute";
-      repo = "pyftgl";
-      rev = "0.4b";
-      sha256 = "12zcjv4cwwjihiaf74kslrdmmk4bs47h7006gyqfwdfchfjdgg4r";
-    };
-
-    buildInputs = with self; [ boost pkgs.freetype pkgs.ftgl pkgs.mesa ];
-
-    meta = {
-      description = "Python bindings for FTGL (FreeType for OpenGL)";
-      license = licenses.gpl2Plus;
-    };
-  };
-
-  pygeoip = buildPythonPackage rec {
-    name = "pygeoip-0.3.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pygeoip/pygeoip-0.3.2.tar.gz";
-      sha256 = "f22c4e00ddf1213e0fae36dc60b46ee7c25a6339941ec1a975539014c1f9a96d";
-    };
-
-    # requires geoip samples
-    doCheck = false;
-
-    buildInputs = with self; [ nose ];
-
-    meta = {
-      description = "Pure Python GeoIP API";
-      homepage = https://github.com/appliedsec/pygeoip;
-      license = licenses.lgpl3Plus;
-    };
-  };
+  pygeoip = callPackage ../development/python-modules/pygeoip {};
 
   PyGithub = callPackage ../development/python-modules/pyGithub {};
 
-  pyglet = buildPythonPackage rec {
-    name = "pyglet-${version}";
-    version = "1.2.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyglet/pyglet-${version}.tar.gz";
-      sha256 = "9f62ffbbcf2b202d084bf158685e77d28b8f4f5f2738f4c5e63a947a07503445";
-    };
-
-    patchPhase = let
-      libs = [ pkgs.mesa pkgs.xorg.libX11 pkgs.freetype pkgs.fontconfig ];
-      paths = concatStringsSep "," (map (l: "\"${l}/lib\"") libs);
-    in "sed -i -e 's|directories\.extend.*lib[^]]*|&,${paths}|' pyglet/lib.py";
-
-    doCheck = false;
-
-    meta = {
-      homepage = "http://www.pyglet.org/";
-      description = "A cross-platform windowing and multimedia library";
-      license = licenses.bsd3;
-      platforms = platforms.mesaPlatforms;
-    };
-  };
+  pyglet = callPackage ../development/python-modules/pyglet {};
 
   pygments = callPackage ../development/python-modules/Pygments { };
 
-  # For Pelican 3.6.3
-  pygments_2_0 = self.pygments.overrideAttrs( oldAttrs: rec {
-    version = "2.0.2";
-    name = "Pygments-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/P/Pygments/${name}.tar.gz";
-      sha256 = "7320919084e6dac8f4540638a46447a3bd730fca172afc17d2c03eed22cf4f51";
-    };
-  });
-
-  pygpgme = buildPythonPackage rec {
-    version = "0.3";
-    name = "pygpgme-${version}";
-    disabled = isPyPy;
-
-    src = pkgs.fetchurl {
-      url = "https://launchpad.net/pygpgme/trunk/${version}/+download/${name}.tar.gz";
-      sha256 = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ pkgs.gpgme ];
-
-    meta = {
-      homepage = "https://launchpad.net/pygpgme";
-      description = "A Python wrapper for the GPGME library";
-      license = licenses.lgpl21;
-      maintainers = with maintainers; [ garbas ];
-    };
-  };
+  pygpgme = callPackage ../development/python-modules/pygpgme { };
 
   pylint = callPackage ../development/python-modules/pylint { };
 
@@ -18645,42 +12767,13 @@ in {
     proj = null;
   };
 
-  pyrr = buildPythonPackage rec {
-    name = "pyrr-${version}";
-    version = "0.7.2";
+  pyrr = callPackage ../development/python-modules/pyrr { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyrr/pyrr-${version}.tar.gz";
-      sha256 = "04a65a9fb5c746b41209f55b21abf47a0ef80a4271159d670ca9579d9be3b4fa";
-    };
-
-    buildInputs = with self; [ setuptools ];
-    propagatedBuildInputs = with self; [ multipledispatch numpy ];
-
-    meta = {
-      description = "3D mathematical functions using NumPy";
-      homepage = https://github.com/adamlwgriffiths/Pyrr/;
-      license = licenses.bsd2;
-    };
-  };
-
-  pyshp = buildPythonPackage rec {
-    name = "pyshp-${version}";
-    version = "1.2.3";
+  pysha3 = callPackage ../development/python-modules/pysha3 { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyshp/pyshp-${version}.tar.gz";
-      sha256 = "e18cc19659dadc5ddaa891eb780a6958094da0cf105a1efe0f67e75b4fa1cdf9";
-    };
+  pyshp = callPackage ../development/python-modules/pyshp { };
 
-    buildInputs = with self; [ setuptools ];
-
-    meta = {
-      description = "Pure Python read/write support for ESRI Shapefile format";
-      homepage = https://github.com/GeospatialPython/pyshp;
-      license = licenses.mit;
-    };
-  };
+  pysmbc = callPackage ../development/python-modules/pysmbc { };
 
   pyspread = callPackage ../development/python-modules/pyspread { };
 
@@ -18695,6 +12788,9 @@ in {
 
     disabled = !isPy3k;
 
+    # No tests in archive
+    doCheck = false;
+
     meta = {
       description = "Python package for the generation of PostScript, PDF, and SVG files";
       homepage = http://pyx.sourceforge.net/;
@@ -18716,7 +12812,7 @@ in {
 
     meta = {
       description = "Media Meta Data retrieval framework";
-      homepage = http://sourceforge.net/projects/mmpython/;
+      homepage = https://sourceforge.net/projects/mmpython/;
       license = licenses.gpl2;
       maintainers = with maintainers; [ ];
     };
@@ -18813,20 +12909,22 @@ in {
   };
 
   PyICU = buildPythonPackage rec {
-    name = "PyICU-1.9.6";
+    name = "PyICU-1.9.7";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/P/PyICU/${name}.tar.gz";
-      sha256 = "0l151zhhyiazzdz8skpxgrw1x4nqa9pq2cwni6d97anmg97i7hn5";
+      sha256 = "0qavhngmn7c90fz25a8a2k50wd5gzp3vwwjq8v2pkf2hq4fcs9yv";
     };
 
-    buildInputs = [ pkgs.icu ];
+    buildInputs = [ pkgs.icu self.pytest ];
+
+    propagatedBuildInputs = [ self.six ];
 
     meta = {
       homepage = https://pypi.python.org/pypi/PyICU/;
       description = "Python extension wrapping the ICU C++ API";
       license = licenses.mit;
-      platforms = platforms.all;
+      platforms = platforms.linux; # Maybe other non-darwin Unix
       maintainers = [ maintainers.rycee ];
     };
   };
@@ -18871,21 +12969,21 @@ in {
 
   pyinsane2 = buildPythonPackage rec {
     name = "pyinsane2-${version}";
-    version = "2.0.9";
+    version = "2.0.10";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/p/pyinsane2/${name}.tar.gz";
-      sha256 = "1g4a1zhrrs7smmnsm7x8j5lvsz0r6rr2jgjykc9c1jlscz3yr747";
+      sha256 = "00d1wqb3w9bn1rxb2dwmdqbar2lr96izq855l5vzprc17dkgip3j";
     };
 
     postPatch = ''
       # pyinsane2 forks itself, so we need to re-inject the PYTHONPATH.
       sed -i -e '/os.putenv.*PYINSANE_DAEMON/ {
         a \        os.putenv("PYTHONPATH", ":".join(sys.path))
-      }' src/pyinsane2/sane/abstract_proc.py
+      }' pyinsane2/sane/abstract_proc.py
 
       sed -i -e 's,"libsane.so.1","${pkgs.sane-backends}/lib/libsane.so",' \
-        src/pyinsane2/sane/rawapi.py
+        pyinsane2/sane/rawapi.py
     '';
 
     # Tests require a scanner to be physically connected, so let's just do a
@@ -18908,12 +13006,14 @@ in {
   };
 
   pyjwt = buildPythonPackage rec {
-    version = "1.4.2";
+    version = "1.5.3";
     name = "pyjwt-${version}";
 
-    src = pkgs.fetchurl {
-      url = "http://github.com/progrium/pyjwt/archive/${version}.tar.gz";
-      sha256 = "06vg84aicwkv0kli8i4jhg0kc6298cmh38ib058q01yxzk6q17gn";
+    src = pkgs.fetchFromGitHub {
+      owner = "progrium";
+      repo = "pyjwt";
+      rev = version;
+      sha256 = "109zb3ka2lvp00r9nawa0lmljfikvhcj5yny19kcipz8mqia1gs8";
     };
 
     buildInputs = with self; [ pytestrunner pytestcov pytest coverage ];
@@ -18941,7 +13041,7 @@ in {
     md5_path = "d249f60aa89b1b4facd63f776925116d";
 
     src = pkgs.fetchurl rec {
-      url = "http://pkgs.fedoraproject.org/repo/pkgs/pykickstart/"
+      url = "http://src.fedoraproject.org/repo/pkgs/pykickstart/"
           + "${name}.tar.gz/${md5_path}/${name}.tar.gz";
       sha256 = "e0d0f98ac4c5607e6a48d5c1fba2d50cc804de1081043f9da68cbfc69cad957a";
     };
@@ -18964,105 +13064,15 @@ in {
     };
   };
 
+  pyobjc = if stdenv.isDarwin
+    then callPackage ../development/python-modules/pyobjc {}
+    else throw "pyobjc can only be built on Mac OS";
 
-  pyodbc = buildPythonPackage rec {
-    name = "pyodbc-3.0.7";
-    disabled = isPyPy;  # use pypypdbc instead
-
-    src = pkgs.fetchurl {
-      url = "https://pyodbc.googlecode.com/files/${name}.zip";
-      sha256 = "0ldkm8xws91j7zbvpqb413hvdz8r66bslr451q3qc0xi8cnmydfq";
-    };
-
-    buildInputs = with self; [ pkgs.libiodbc ];
-
-    meta = {
-      description = "Python ODBC module to connect to almost any database";
-      homepage = https://code.google.com/p/pyodbc/;
-      license = licenses.mit;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
-
-  pyocr = buildPythonPackage rec {
-    name = "pyocr-${version}";
-    version = "0.4.6";
-
-    # Don't fetch from PYPI because it doesn't contain tests.
-    src = pkgs.fetchFromGitHub {
-      owner = "jflesch";
-      repo = "pyocr";
-      rev = version;
-      sha256 = "0amyhkkm400qzbw65ivyzrzxl2r7vxqgsgqm7ml95m7gwkwhnzz0";
-    };
+  pyodbc = callPackage ../development/python-modules/pyodbc { };
 
-    patches = [ ../development/python-modules/pyocr-tesseract.patch ];
+  pyocr = callPackage ../development/python-modules/pyocr { };
 
-    postPatch = ''
-      sed -i \
-        -e 's,^\(TESSERACT_CMD *= *\).*,\1"${pkgs.tesseract}/bin/tesseract",' \
-        -e 's,^\(CUNEIFORM_CMD *= *\).*,\1"${pkgs.cuneiform}/bin/cuneiform",' \
-        -e '/^CUNIFORM_POSSIBLE_PATHS *= *\[/,/^\]$/ {
-          c CUNIFORM_POSSIBLE_PATHS = ["${pkgs.cuneiform}/share/cuneiform"]
-        }' src/pyocr/{tesseract,cuneiform}.py
-
-      sed -i -r \
-        -e 's,"libtesseract\.so\.3","${pkgs.tesseract}/lib/libtesseract.so",' \
-        -e 's,^(TESSDATA_PREFIX *=).*,\1 "${pkgs.tesseract}/share/tessdata",' \
-        src/pyocr/libtesseract/tesseract_raw.py
-
-      # Disable specific tests that are probably failing because of this issue:
-      # https://github.com/jflesch/pyocr/issues/52
-      for test in $disabledTests; do
-        file="''${test%%:*}"
-        fun="''${test#*:}"
-        echo "$fun = unittest.skip($fun)" >> "tests/tests_$file.py"
-      done
-    '';
-
-    disabledTests = [
-      "cuneiform:TestTxt.test_basic"
-      "cuneiform:TestTxt.test_european"
-      "cuneiform:TestTxt.test_french"
-      "cuneiform:TestWordBox.test_basic"
-      "cuneiform:TestWordBox.test_european"
-      "cuneiform:TestWordBox.test_french"
-      "libtesseract:TestBasicDoc.test_basic"
-      "libtesseract:TestDigitLineBox.test_digits"
-      "libtesseract:TestLineBox.test_japanese"
-      "libtesseract:TestTxt.test_japanese"
-      "libtesseract:TestWordBox.test_japanese"
-      "tesseract:TestDigitLineBox.test_digits"
-      "tesseract:TestTxt.test_japanese"
-    ];
-
-    propagatedBuildInputs = [ self.pillow self.six ];
-
-    meta = {
-      homepage = "https://github.com/jflesch/pyocr";
-      description = "A Python wrapper for Tesseract and Cuneiform";
-      license = licenses.gpl3Plus;
-    };
-  };
-
-  pyparsing = buildPythonPackage rec {
-    name = "pyparsing-${version}";
-    version = "2.1.10";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyparsing/${name}.tar.gz";
-      sha256 = "811c3e7b0031021137fc83e051795025fcb98674d07eb8fe922ba4de53d39188";
-    };
-
-    # Not everything necessary to run the tests is included in the distribution
-    doCheck = false;
-
-    meta = {
-      homepage = http://pyparsing.wikispaces.com/;
-      description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
-    };
-  };
+  pyparsing = callPackage ../development/python-modules/pyparsing { };
 
   pyparted = buildPythonPackage rec {
     name = "pyparted-${version}";
@@ -19089,7 +13099,7 @@ in {
       PATH="${pkgs.parted}/sbin:$PATH"
     '';
 
-    buildInputs = with self; [ pkgs.pkgconfig ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
 
     propagatedBuildInputs = with self; [ pkgs.parted ];
 
@@ -19194,23 +13204,7 @@ in {
     };
   });
 
-  Pyro = buildPythonPackage (rec {
-    name = "Pyro-3.16";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/P/Pyro/${name}.tar.gz";
-      sha256 = "1bed508453ef7a7556b51424a58101af2349b662baab7e7331c5cb85dbe7e578";
-    };
-
-    meta = {
-      description = "Distributed object middleware for Python (IPC/RPC)";
-      homepage = http://pythonhosted.org/Pyro/;
-      license = licenses.mit;
-      platforms = platforms.unix;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  });
+  Pyro = callPackage ../development/python-modules/pyro { };
 
   pyrsistent = buildPythonPackage (rec {
     name = "pyrsistent-0.11.12";
@@ -19228,7 +13222,7 @@ in {
     '';
 
     meta = {
-      homepage = http://github.com/tobgu/pyrsistent/;
+      homepage = https://github.com/tobgu/pyrsistent/;
       description = "Persistent/Functional/Immutable data structures";
       license = licenses.mit;
       maintainers = with maintainers; [ desiderius ];
@@ -19320,36 +13314,10 @@ in {
     };
   };
 
-  python_fedora = buildPythonPackage (rec {
-    version = "0.5.5";
-    name = "python-fedora-${version}";
-    meta.maintainers = with maintainers; [ mornfall ];
+  python_fedora = callPackage ../development/python-modules/python_fedora/default.nix {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-fedora/${name}.tar.gz";
-      sha256 = "15m8lvbb5q4rg508i4ah8my872qrq5xjwgcgca4d3kzjv2x6fhim";
-    };
-    propagatedBuildInputs = with self; [ kitchen requests bunch paver six munch urllib3
-      beautifulsoup4 ];
-    doCheck = false;
-
-    # https://github.com/fedora-infra/python-fedora/issues/140
-    preBuild = ''
-      sed -i '4,15d' setup.py
-    '';
-  });
-
-  python_simple_hipchat = buildPythonPackage rec {
-    name = "python-simple-hipchat-${version}";
-    version = "0.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-simple-hipchat/python-simple-hipchat-${version}.zip";
-      sha256 = "404e5ff7187abb09c2227f22063d06baf0fd525725e9c9ad280176bed1c94a3f";
-    };
-
-    buildInputs = [ pkgs.unzip ];
-  };
+  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat {};
+  python_simple_hipchat = self.python-simple-hipchat;
 
   python_keyczar = buildPythonPackage rec {
     name = "python-keyczar-0.71c";
@@ -19370,7 +13338,7 @@ in {
     buildInputs = with self; [ pyasn1 pycrypto ];
   };
 
-  pyudev = callPackage ../development/python-modules/pyudev.nix {
+  pyudev = callPackage ../development/python-modules/pyudev {
     inherit (pkgs) fetchurl systemd;
   };
 
@@ -19389,7 +13357,7 @@ in {
     '';
 
     meta = {
-      homepage = http://github.com/ericflo/pynzb;
+      homepage = https://github.com/ericflo/pynzb;
       description = "Unified API for parsing NZB files";
       license = licenses.bsd3;
       maintainers = with maintainers; [ domenkozar ];
@@ -19416,48 +13384,15 @@ in {
     };
   };
 
-  progressbar = buildPythonPackage (rec {
-    name = "progressbar-2.2";
+  progressbar = callPackage ../development/python-modules/progressbar {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/progressbar/${name}.tar.gz";
-      sha256 = "dfee5201237ca0e942baa4d451fee8bf8a54065a337fabe7378b8585aeda56a3";
-    };
-
-    # invalid command 'test'
-    doCheck = false;
+  progressbar2 = callPackage ../development/python-modules/progressbar2 { };
 
-    meta = {
-      homepage = http://code.google.com/p/python-progressbar/;
-      description = "Text progressbar library for python";
-      license = licenses.lgpl3Plus;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  });
-
-  ldap = callPackage ../development/python-modules/ldap.nix {
+  ldap = callPackage ../development/python-modules/ldap {
     inherit (pkgs) openldap cyrus_sasl openssl;
   };
 
-  ldap3 = buildPythonPackage rec {
-    version = "1.0.4";
-    name = "ldap3-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/ldap3/${name}.tar.gz";
-      sha256 = "0j4qqj9vq022hy7wfqn8s0j4vm2g6paabbzas1vbyspawvcfai98";
-    };
-
-    buildInputs = with self; [ gssapi ];
-
-    propagatedBuildInputs = with self; [ pyasn1 ];
-
-    meta = {
-      homepage = https://pypi.python.org/pypi/ldap3;
-      description = "A strictly RFC 4510 conforming LDAP V3 pure Python client library";
-      license = licenses.lgpl3;
-    };
-  };
+  ldap3 = callPackage ../development/python-modules/ldap3 {};
 
   ptest = buildPythonPackage rec {
     name = pname + "-" + version;
@@ -19476,41 +13411,11 @@ in {
     };
   };
 
-  ptyprocess = buildPythonPackage rec {
-    name = "ptyprocess-${version}";
-    version = "0.5";
+  ptyprocess = callPackage ../development/python-modules/ptyprocess { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/ptyprocess/${name}.tar.gz";
-      sha256= "dcb78fb2197b49ca1b7b2f37b047bc89c0da7a90f90bd5bc17c3ce388bb6ef59";
-    };
+  pylibacl = callPackage ../development/python-modules/pylibacl { };
 
-    meta = {
-      description = "Run a subprocess in a pseudo terminal";
-      homepage = https://github.com/pexpect/ptyprocess;
-      license = licenses.isc;
-    };
-  };
-
-  pylibacl = buildPythonPackage (rec {
-    name = "pylibacl-0.5.1";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/downloads/iustin/pylibacl/${name}.tar.gz";
-      sha256 = "1idks7j9bn62xzsaxkvhl7bdq6ws8kv8aa0wahfh7724qlbbcf1k";
-    };
-
-    # ERROR: testExtended (tests.test_acls.AclExtensions)
-    # IOError: [Errno 0] Error
-    doCheck = false;
-
-    buildInputs = with self; [ pkgs.acl ];
-
-    meta = {
-      description = "A Python extension module for POSIX ACLs, it can be used to query, list, add, and remove ACLs from files and directories under operating systems that support them";
-      license = licenses.lgpl21Plus;
-    };
-  });
+  pylibgen = callPackage ../development/python-modules/pylibgen { };
 
   pyliblo = buildPythonPackage rec {
     name = "pyliblo-${version}";
@@ -19532,28 +13437,7 @@ in {
     };
   };
 
-  pymacs = buildPythonPackage rec {
-    version = "0.25";
-    name = "pymacs-${version}";
-    disabled = isPy3k || isPyPy;
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/pinard/Pymacs/tarball/v${version}";
-      name = "${name}.tar.gz";
-      sha256 = "1hmy76c5igm95rqbld7gvk0az24smvc8hplfwx2f5rhn6frj3p2i";
-    };
-
-    configurePhase = "make";
-
-    doCheck = false;
-
-    meta = {
-      description = "Emacs Lisp to Python interface";
-      homepage = http://pymacs.progiciels-bpi.ca;
-      license = licenses.gpl2;
-      maintainers = with maintainers; [ goibhniu ];
-    };
-  };
+  pypcap = callPackage ../development/python-modules/pypcap {};
 
   pyplatec = buildPythonPackage rec {
     name = "PyPlatec-${version}";
@@ -19680,11 +13564,11 @@ in {
       url = "mirror://pypi/P/PyOpenGL/PyOpenGL-${version}.tar.gz";
       sha256 = "9b47c5c3a094fa518ca88aeed35ae75834d53e4285512c61879f67a48c94ddaf";
     };
-    propagatedBuildInputs = [ pkgs.mesa pkgs.freeglut self.pillow ];
+    propagatedBuildInputs = [ pkgs.libGLU_combined pkgs.freeglut self.pillow ];
     patchPhase = ''
       sed -i "s|util.find_library( name )|name|" OpenGL/platform/ctypesloader.py
       sed -i "s|'GL',|'libGL.so',|" OpenGL/platform/glx.py
-      sed -i "s|'GLU',|'${pkgs.mesa}/lib/libGLU.so',|" OpenGL/platform/glx.py
+      sed -i "s|'GLU',|'${pkgs.libGLU_combined}/lib/libGLU.so',|" OpenGL/platform/glx.py
       sed -i "s|'glut',|'${pkgs.freeglut}/lib/libglut.so',|" OpenGL/platform/glx.py
     '';
     meta = {
@@ -19707,40 +13591,7 @@ in {
     doCheck = false;
   };
 
-  pyopenssl = buildPythonPackage rec {
-    name = "pyopenssl-${version}";
-    version = "17.0.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyOpenSSL/pyOpenSSL-${version}.tar.gz";
-      sha256 = "1pdg1gpmkzj8yasg6cmkhcivxcdp4c12nif88y4qvsxq5ffzxas8";
-    };
-
-    patches = pkgs.fetchpatch {
-      url = "https://github.com/pyca/pyopenssl/commit/"
-          + "a40898b5f1d472f9449a344f703fa7f90cddc21d.patch";
-      sha256 = "0bdfrhfvdfxhfknn46s4db23i3hww6ami2r1l5rfrri0pn8b8mh7";
-    };
-
-    preCheck = ''
-      sed -i 's/test_set_default_verify_paths/noop/' tests/test_ssl.py
-    '';
-
-    checkPhase = ''
-      runHook preCheck
-      export LANG="en_US.UTF-8"
-      py.test
-      runHook postCheck
-    '';
-
-    # Seems to fail unpredictably on Darwin. See http://hydra.nixos.org/build/49877419/nixlog/1
-    # for one example, but I've also seen ContextTests.test_set_verify_callback_exception fail.
-    doCheck = !stdenv.isDarwin;
-
-    buildInputs = [ pkgs.openssl self.pytest pkgs.glibcLocales ];
-    propagatedBuildInputs = [ self.cryptography self.pyasn1 self.idna ];
-  };
-
+  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
 
   pyquery = buildPythonPackage rec {
     name = "pyquery-${version}";
@@ -19756,12 +13607,6 @@ in {
     doCheck = false;
   };
 
-  rackspace-novaclient = callPackage ../development/python-modules/rackspace-novaclient.nix { };
-
-  pyrax = callPackage ../development/python-modules/pyrax.nix {
-    glibcLocales = pkgs.glibcLocales;
-  };
-
   pyreport = buildPythonPackage (rec {
     name = "pyreport-0.3.4c";
     disabled = isPy3k;
@@ -19775,7 +13620,7 @@ in {
     doCheck = false;
 
     meta = {
-      homepage = http://pypi.python.org/pypi/pyreport;
+      homepage = https://pypi.python.org/pypi/pyreport;
       license = "BSD";
       description = "Pyreport makes notes out of a python script";
     };
@@ -19783,17 +13628,25 @@ in {
 
   pyscss = buildPythonPackage rec {
     name = "pyScss-${version}";
-    version = "1.3.4";
+    version = "1.3.5";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyScss/${name}.tar.gz";
-      sha256 = "03lcp853kgr66aqrw2jd1q9jhs9h049w7zlwp7bfmly7xh832cnh";
+    src = pkgs.fetchFromGitHub {
+      sha256 = "0lfsan74vcw6dypb196gmbprvlbran8p7w6czy8hyl2b1l728mhz";
+      rev = "v1.3.5";
+      repo = "pyScss";
+      owner = "Kronuz";
     };
 
+    checkInputs = with self; [ pytest ];
+
     propagatedBuildInputs = with self; [ six ]
       ++ (optionals (pythonOlder "3.4") [ enum34 pathlib ])
       ++ (optionals (pythonOlder "2.7") [ ordereddict ]);
 
+    checkPhase = ''
+      py.test
+    '';
+
     meta = {
       description = "A Scss compiler for Python";
       homepage = http://pyscss.readthedocs.org/en/latest/;
@@ -19801,39 +13654,9 @@ in {
     };
   };
 
-  pyserial = buildPythonPackage rec {
-    name = "pyserial-2.7";
+  pyserial = callPackage ../development/python-modules/pyserial {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyserial/${name}.tar.gz";
-      sha256 = "3542ec0838793e61d6224e27ff05e8ce4ba5a5c5cc4ec5c6a3e8d49247985477";
-    };
-
-    doCheck = false;
-
-    meta = {
-      homepage = "http://pyserial.sourceforge.net/";
-      license = licenses.psfl;
-      description = "Python serial port extension";
-    };
-  };
-
-  pymongo = buildPythonPackage rec {
-    name = "pymongo-3.0.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pymongo/${name}.tar.gz";
-      sha256 = "3c6b2317f8031bc1e200fd1ea35f00a96f4569e3f3f220a5e66ab6227d96ccaf";
-    };
-
-    doCheck = false;
-
-    meta = {
-      homepage = "http://github.com/mongodb/mongo-python-driver";
-      license = licenses.asl20;
-      description = "Python driver for MongoDB ";
-    };
-  };
+  pymongo = callPackage ../development/python-modules/pymongo {};
 
   pymongo_2_9_1 = buildPythonPackage rec {
     name = "pymongo-2.9.1";
@@ -19872,23 +13695,6 @@ in {
     };
   };
 
-  pysphere = buildPythonPackage rec {
-    name = "pysphere-0.1.8";
-
-    src = pkgs.fetchurl {
-      url = "http://pysphere.googlecode.com/files/${name}.zip";
-      sha256 = "b3f9ba1f67afb17ac41725b01737cd42e8a39d9e745282dd9b692ae631af0add";
-    };
-
-    disabled = isPy3k;
-
-    meta = {
-      homepage    = "https://code.google.com/p/pysphere/";
-      license     = "BSD";
-      description = "Python API for interaction with the VMWare vSphere";
-    };
-  };
-
   pysqlite = buildPythonPackage rec {
     name = "pysqlite-2.8.3";
 
@@ -19909,6 +13715,7 @@ in {
       substituteInPlace "setup.cfg"                                     \
               --replace "/usr/local/include" "${pkgs.sqlite.dev}/include"   \
               --replace "/usr/local/lib" "${pkgs.sqlite.out}/lib"
+      ${stdenv.lib.optionalString (!stdenv.isDarwin) ''export LDSHARED="$CC -pthread -shared"''}
     '';
 
     meta = {
@@ -19988,6 +13795,8 @@ in {
     };
   };
 
+  python-ptrace = callPackage ../development/python-modules/python-ptrace { };
+
   python-wifi = buildPythonPackage rec {
     name = "python-wifi-${version}";
     version = "0.6.0";
@@ -20005,7 +13814,6 @@ in {
       # From the README: "pythonwifi is licensed under LGPLv2+, however, the
       # examples (e.g. iwconfig.py and iwlist.py) are licensed under GPLv2+."
       license = with licenses; [ lgpl2Plus gpl2Plus ];
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
@@ -20020,7 +13828,7 @@ in {
 
     buildInputs = with self; [ nose mock pyopenssl ];
 
-    propagatedBuildInputs = with self; [ urllib3 dns];
+    propagatedBuildInputs = with self; [ urllib3 dnspython ];
 
     postPatch = ''
       sed -i '19s/dns/"dnspython"/' setup.py
@@ -20031,32 +13839,19 @@ in {
 
     meta = {
       description = "A python client for Etcd";
-      homepage = http://github.com/jplana/python-etcd;
+      homepage = https://github.com/jplana/python-etcd;
       license = licenses.mit;
     };
   };
 
-
-  pytz = buildPythonPackage rec {
-    name = "pytz-${version}";
-    version = "2016.6.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pytz/${name}.tar.gz";
-      sha256 = "6f57732f0f8849817e9853eb9d50d85d1ebb1404f702dbc44ee627c642a486ca";
-    };
-
-    checkPhase = ''
-      ${python.interpreter} -m unittest discover -s pytz/tests
-    '';
-
-    meta = {
-      description = "World timezone definitions, modern and historical";
-      homepage = "http://pythonhosted.org/pytz";
-      license = licenses.mit;
-    };
+  pythonnet = callPackage ../development/python-modules/pythonnet {
+    # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
+    mono = pkgs.mono46;
   };
 
+  pytz = callPackage ../development/python-modules/pytz { };
+
+  pytzdata = callPackage ../development/python-modules/pytzdata { };
 
   pyutil = buildPythonPackage (rec {
     name = "pyutil-2.0.0";
@@ -20106,8 +13901,9 @@ in {
       sha256 = "1svlwyl61rvbqbcbalkg6pbf38yjyv7qkq9sx4x35yk69lscaac2";
     };
 
+    nativeBuildInputs = [ pkgs.pkgconfig ];
     buildInputs = [
-      pkgs.pkgconfig pkgs.gtk2 self.pygtk pkgs.libxml2
+      pkgs.gtk2 self.pygtk pkgs.libxml2
       pkgs.libxslt pkgs.libsoup pkgs.webkitgtk24x-gtk2 pkgs.icu
     ];
 
@@ -20120,99 +13916,11 @@ in {
 
   pywinrm = callPackage ../development/python-modules/pywinrm { };
 
-  PyXAPI = stdenv.mkDerivation rec {
-    name = "PyXAPI-0.1";
-
-    src = pkgs.fetchurl {
-      url = "http://www.pps.univ-paris-diderot.fr/~ylg/PyXAPI/${name}.tar.gz";
-      sha256 = "19lblwfq24bgsgfy7hhqkxdf4bxl40chcxdlpma7a0wfa0ngbn26";
-    };
-
-    buildInputs = [ self.python ];
-
-    installPhase = ''
-      mkdir -p "$out/lib/${python.libPrefix}/site-packages"
-
-      export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-
-      ${python}/bin/${python.executable} setup.py install \
-        --install-lib=$out/lib/${python.libPrefix}/site-packages \
-        --prefix="$out"
-    '';
-
-    meta = with stdenv.lib; {
-      description = "Python socket module extension & RFC3542 IPv6 Advanced Sockets API";
-      longDescription = ''
-        PyXAPI consists of two modules: `socket_ext' and `rfc3542'.
-        `socket_ext' extends the Python module `socket'. `socket' objects have
-        two new methods: `recvmsg' and `sendmsg'. It defines `ancillary data'
-        objects and some functions related to. `socket_ext' module also provides
-        functions to manage interfaces indexes defined in RFC3494 and not
-        available from standard Python module `socket'.
-        `rfc3542' is a full implementation of RFC3542 (Advanced Sockets
-        Application Program Interface (API) for IPv6).
-      '';
-      homepage = http://www.pps.univ-paris-diderot.fr/~ylg/PyXAPI/;
-      license = licenses.gpl2Plus;
-      maintainers = with maintainers; [ nckx ];
-    };
-  };
-
-  pyxattr = buildPythonPackage (rec {
-    name = "pyxattr-0.5.1";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/downloads/iustin/pyxattr/${name}.tar.gz";
-      sha256 = "0jmkffik6hdzs7ng8c65bggss2ai40nm59jykswdf5lpd36cxddq";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    buildInputs = with self; [ pkgs.attr ];
-
-    meta = {
-      description = "A Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems";
-      license = licenses.lgpl21Plus;
-    };
-  });
-
-
-  pyaml = buildPythonPackage (rec {
-    name = "pyaml-15.02.1";
-    disabled = !isPy27;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyaml/${name}.tar.gz";
-      sha256 = "8dfe1b295116115695752acc84d15ecf5c1c469975fbed7672bf41a6bc6d6d51";
-    };
-
-    buildInputs = with self; [ pyyaml ];
-
-    meta = {
-      description = "PyYAML-based module to produce pretty and readable YAML-serialized data";
-      homepage = https://github.com/mk-fg/pretty-yaml;
-    };
-  });
-
+  pyxattr = callPackage ../development/python-modules/pyxattr { };
 
-  pyyaml = buildPythonPackage (rec {
-    name = "PyYAML-3.12";
+  pyaml = callPackage ../development/python-modules/pyaml { };
 
-    src = pkgs.fetchurl {
-      url = "http://pyyaml.org/download/pyyaml/${name}.zip";
-      sha256 = "19s1lxi0idq4a0bpvld866pv5b16lqxypyswmsdi5ys4210jxj2s";
-    };
-
-    buildInputs = with self; [ pkgs.pyrex ];
-    propagatedBuildInputs = with self; [ pkgs.libyaml ];
-
-    meta = {
-      description = "The next generation YAML parser and emitter for Python";
-      homepage = http://pyyaml.org;
-      license = licenses.free; # !?
-    };
-  });
+  pyyaml = callPackage ../development/python-modules/pyyaml { };
 
   rabbitpy = buildPythonPackage rec {
     version = "0.26.2";
@@ -20234,6 +13942,8 @@ in {
     };
   };
 
+  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {};
+
   recaptcha_client = buildPythonPackage rec {
     name = "recaptcha-client-1.0.6";
 
@@ -20242,6 +13952,8 @@ in {
       sha256 = "28c6853c1d13d365b7dc71a6b05e5ffb56471f70a850de318af50d3d7c0dea2f";
     };
 
+    disabled = isPy35 || isPy36;
+
     meta = {
       description = "A CAPTCHA for Python using the reCAPTCHA service";
       homepage = http://recaptcha.net/;
@@ -20288,123 +14000,23 @@ in {
     };
   };
 
-
-  reportlab =
-   let freetype = overrideDerivation pkgs.freetype (args: { dontDisableStatic = true; });
-   in buildPythonPackage rec {
-    name = "reportlab-3.2.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/reportlab/${name}.tar.gz";
-      sha256 = "14v212cq2w3p0j5xydfr8rav8c8qas1q845r0xj7fm6q5dk8grkj";
-    };
-
-    LC_ALL = "en_US.UTF-8";
-    buildInputs = with self; [ freetype pillow pip pkgs.glibcLocales ];
-
-    patchPhase = ''
-      rm tests/test_graphics_barcode.py
-      rm tests/test_graphics_render.py
-    '';
-
-    checkPhase = ''
-      ${python.interpreter} tests/runAll.py
-    '';
-
-    # See https://bitbucket.org/pypy/compatibility/wiki/reportlab%20toolkit
-    disabled = isPyPy;
-
-    meta = {
-      description = "An Open Source Python library for generating PDFs and graphics";
-      homepage = http://www.reportlab.com/;
-    };
-  };
-
-  # Remove before release of 17.09
-  requests_1 = buildPythonPackage rec {
-    name = "requests-1.2.3";
-    disabled = !pythonOlder "3.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/requests/${name}.tar.gz";
-      sha256 = "156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1";
-    };
-
-    meta = {
-      description = "An Apache2 licensed HTTP library, written in Python, for human beings";
-      homepage = http://docs.python-requests.org/en/latest/;
-    };
-  };
+  reportlab = callPackage ../development/python-modules/reportlab { };
 
   requests2 = throw "requests2 has been deprecated. Use requests instead.";
 
   # use requests, not requests_2
-  requests = buildPythonPackage rec {
-    name = "requests-${version}";
-    version = "2.13.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/requests/${name}.tar.gz";
-      sha256 = "5722cd09762faa01276230270ff16af7acf7c5c45d623868d9ba116f15791ce8";
-    };
-
-    nativeBuildInputs = [ self.pytest ];
-    # sadly, tests require networking
-    doCheck = false;
-
-    meta = {
-      description = "An Apache2 licensed HTTP library, written in Python, for human beings";
-      homepage = http://docs.python-requests.org/en/latest/;
-      license = licenses.asl20;
-    };
-  };
+  requests = callPackage ../development/python-modules/requests { };
 
-  requests_download = buildPythonPackage rec {
-    pname = "requests_download";
-    version = "0.1.1";
-    name = "${pname}-${version}";
+  requests_download = callPackage ../development/python-modules/requests_download { };
 
-    format = "wheel";
-
-    src = pkgs.fetchurl {
-      url = https://files.pythonhosted.org/packages/60/af/10f899f0574a81cbc511124c08d7c7dc46c20d4f956a6a3c793ad4330bb4/requests_download-0.1.1-py2.py3-none-any.whl;
-      sha256 = "07832a93314bcd619aaeb08611ae245728e66672efb930bc2a300a115a47dab7";
-    };
-
-    propagatedBuildInputs = with self; [ requests ];
-
-    meta = {
-      description = "Download files using requests and save them to a target path";
-      homepage = https://www.github.com/takluyver/requests_download;
-      license = licenses.mit;
-      maintainer = maintainers.fridh;
-    };
-  };
+  requestsexceptions = callPackage ../development/python-modules/requestsexceptions {};
 
   requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
 
-  requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib.nix { };
-
-  requests_toolbelt = buildPythonPackage rec {
-    version = "0.7.1";
-    name = "requests-toolbelt-${version}";
+  requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
 
-    src = pkgs.fetchurl {
-      url = "https://github.com/sigmavirus24/requests-toolbelt/archive/${version}.tar.gz";
-      sha256 = "16grklnbgcfwqj3f39gw7fc9afi7xlp9gm7x8w6mi81dzhdxf50y";
-    };
-
-    propagatedBuildInputs = with self; [ requests ];
-
-    buildInputs = with self; [ betamax mock pytest ];
-
-    meta = {
-      description = "A toolbelt of useful classes and functions to be used with python-requests";
-      homepage = http://toolbelt.rtfd.org;
-      maintainers = with maintainers; [ matthiasbeyer jgeerds ];
-    };
-
-  };
+  requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
+  requests_toolbelt = self.requests-toolbelt; # Old attr, 2017-09-26
 
   retry_decorator = buildPythonPackage rec {
     name = "retry_decorator-1.0.0";
@@ -20418,9 +14030,12 @@ in {
     };
   };
 
-  qscintilla = if isPy3k || isPyPy
-    then throw "qscintilla-${pkgs.qscintilla.version} not supported for interpreter ${python.executable}"
-    else buildPythonPackage rec {
+  quandl = callPackage ../development/python-modules/quandl { };
+  # alias for an older package which did not support Python 3
+  Quandl = callPackage ../development/python-modules/quandl { };
+
+  qscintilla = disabledIf (isPy3k || isPyPy)
+    (buildPythonPackage rec {
       # TODO: Qt5 support
       name = "qscintilla-${version}";
       version = pkgs.qscintilla.version;
@@ -20449,7 +14064,7 @@ in {
         maintainers = with maintainers; [ danbst ];
         platforms = platforms.linux;
       };
-    };
+    });
 
 
   qserve = buildPythonPackage rec {
@@ -20470,22 +14085,13 @@ in {
     };
   };
 
+  qtawesome = callPackage ../development/python-modules/qtawesome { };
+
   qtconsole = callPackage ../development/python-modules/qtconsole { };
 
-  quantities = buildPythonPackage rec {
-    name = "quantities-0.10.1";
+  qtpy = callPackage ../development/python-modules/qtpy { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/q/quantities/quantities-0.10.1.tar.gz";
-      sha256 = "2d27caf31a5e0c37130ac0c14bfa8f9412a5ff1fbf3378a1d6085594776c4315";
-    };
-
-    meta = with pkgs.stdenv.lib; {
-      description = "Quantities is designed to handle arithmetic and";
-      homepage = http://packages.python.org/quantities;
-      license = licenses.bsd2;
-    };
-  };
+  quantities = callPackage ../development/python-modules/quantities { };
 
   qutip = buildPythonPackage rec {
     name = "qutip-2.2.0";
@@ -20520,60 +14126,11 @@ in {
 
   rcssmin = callPackage ../development/python-modules/rcssmin { };
 
-  recommonmark = buildPythonPackage rec {
-    name = "recommonmark-${version}";
-    version = "0.4.0";
+  recommonmark = callPackage ../development/python-modules/recommonmark { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/recommonmark/${name}.tar.gz";
-      sha256 = "6e29c723abcf5533842376d87c4589e62923ecb6002a8e059eb608345ddaff9d";
-    };
-
-    buildInputs = with self; [ pytest sphinx ];
-    propagatedBuildInputs = with self; [ CommonMark_54 docutils ];
-
-    meta = {
-      description = "A docutils-compatibility bridge to CommonMark";
-      homepage = https://github.com/rtfd/recommonmark;
-      license = licenses.mit;
-      maintainers = with maintainers; [ fridh ];
-    };
+  redis = callPackage ../development/python-modules/redis { };
 
-  };
-
-  redis = buildPythonPackage rec {
-    name = "redis-2.10.5";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/redis/${name}.tar.gz";
-      sha256 = "0csmrkxb29x7xs9b51zplwkkq2hwnbh9jns1g85dykn5rxmaxysx";
-    };
-
-    # tests require a running redis
-    doCheck = false;
-
-    meta = {
-      description = "Python client for Redis key-value store";
-      homepage = "https://pypi.python.org/pypi/redis/";
-    };
-  };
-
-  rednose = buildPythonPackage rec {
-    name = "rednose-${version}";
-    version = "1.2.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/rednose/${name}.tar.gz";
-      sha256 = "0b0bsna217lr1nykyhl5fgjly15zhdvqd4prg4wy1zrgfv7al6m0";
-    };
-
-    meta = {
-      description = "A python nose plugin adding color to console results.";
-    };
-
-    buildInputs = with self; [ nose six ];
-    propagatedBuildInputs = with self; [ colorama termstyle ];
-  };
+  rednose = callPackage ../development/python-modules/rednose { };
 
   reikna = callPackage ../development/python-modules/reikna { };
 
@@ -20592,56 +14149,10 @@ in {
       inherit (src.meta) homepage;
       description = "Check the status of code repositories under a root directory";
       license = licenses.gpl3Plus;
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
-  requests_oauth2 = buildPythonPackage rec {
-    name = "requests-oauth2-0.1.1";
-    # python3 does not support relative imports
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = https://github.com/maraujop/requests-oauth2/archive/0.1.1.tar.gz;
-      sha256 = "1aij66qg9j5j4vzyh64nbg72y7pcafgjddxsi865racsay43xfqg";
-    };
-
-    propagatedBuildInputs = with self; [ requests ];
-    # no tests in tarball
-    doCheck = false;
-
-    meta = {
-      description = "Python's Requests OAuth2 (Open Authentication) plugin";
-      homepage = https://github.com/maraujop/requests-oauth2;
-    };
-  };
-
-
-  restview = buildPythonPackage rec {
-    name = "restview-${version}";
-    version = "2.5.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/restview/${name}.tar.gz";
-      sha256 = "0gmdmnlhiy6lagi17maiz312374hk6g6x90fhjwnbrwxif4r9bd5";
-    };
-
-    propagatedBuildInputs = with self; [ docutils readme pygments ];
-    buildInputs = with self; [ mock ];
-
-    patchPhase = ''
-      # dict order breaking tests
-      sed -i 's@<a href="http://www.example.com" rel="nofollow">@...@' src/restview/tests.py
-    '';
-
-    meta = {
-      description = "ReStructuredText viewer";
-      homepage = http://mg.pov.lt/restview/;
-      license = licenses.gpl2;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ koral ];
-    };
-  };
+  restview = callPackage ../development/python-modules/restview { };
 
   readme = buildPythonPackage rec {
     name = "readme-${version}";
@@ -20670,6 +14181,12 @@ in {
     };
   };
 
+  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
+
+  rivet = disabledIf isPy3k (toPythonModule (pkgs.rivet.override {
+    python2 = python;
+  }));
+
   rjsmin = callPackage ../development/python-modules/rjsmin { };
 
   pysolr = buildPythonPackage rec {
@@ -20756,67 +14273,9 @@ in {
     };
   };
 
-  django-multiselectfield = buildPythonPackage rec {
-    name = "django-multiselectfield-${version}";
-    version = "0.1.3";
+  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/django-multiselectfield/django-multiselectfield-${version}.tar.gz";
-      sha256 = "0v7wf82f8688srdsym9ajv1j54bxfxwvydypc03f8xyl4c1raziv";
-    };
-
-    propagatedBuildInputs = with self; [
-
-    ];
-    buildInputs = with self; [
-
-    ];
-
-    meta = with stdenv.lib; {
-      description = "django-multiselectfield";
-      homepage = "https://github.com/goinnn/django-multiselectfield";
-    };
-  };
-
-  reviewboard = buildPythonPackage rec {
-    name = "ReviewBoard-2.5.1.1";
-
-    src = pkgs.fetchurl {
-      url = "http://downloads.reviewboard.org/releases/ReviewBoard/2.5/${name}.tar.gz";
-      sha256 = "14m8yy2aqxnnzi822b797wc9nmkfkp2fqmq24asdnm66bxhyzjwn";
-    };
-
-    patchPhase = ''
-      sed -i 's/mimeparse/python-mimeparse/' setup.py
-      sed -i 's/markdown>=2.4.0,<2.4.999/markdown/' setup.py
-    '';
-
-    propagatedBuildInputs = with self;
-      [ django recaptcha_client pytz memcached dateutil_1_5 paramiko flup
-        pygments djblets django_evolution pycrypto pysvn pillow
-        psycopg2 django-haystack python_mimeparse markdown django-multiselectfield
-      ];
-  };
-
-
-  rdflib = buildPythonPackage (rec {
-    name = "rdflib-4.1.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/rdflib/${name}.tar.gz";
-      sha256 = "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ isodate html5lib SPARQLWrapper ];
-
-    meta = {
-      description = "A Python library for working with RDF, a simple yet powerful language for representing information";
-      homepage = http://www.rdflib.net/;
-    };
-  });
+  rdflib = callPackage ../development/python-modules/rdflib { };
 
   isodate = buildPythonPackage rec {
     name = "isodate-${version}";
@@ -20862,48 +14321,11 @@ in {
     };
   };
 
-  robomachine = buildPythonPackage rec {
-    name = "robomachine-0.6";
+  restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/R/RoboMachine/RoboMachine-0.6.tar.gz";
-      sha256 = "6c9a9bae7bffa272b2a09b05df06c29a3a776542c70cae8041a8975a061d2e54";
-    };
-
-    propagatedBuildInputs = with self; [ pyparsing argparse robotframework ];
-
-    # Remove Windows .bat files
-    postInstall = ''
-      rm "$out/bin/"*.bat
-    '';
-
-    meta = {
-      description = "Test data generator for Robot Framework";
-      homepage = https://github.com/mkorpela/RoboMachine;
-      license = licenses.asl20;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
-
-  robotframework = buildPythonPackage rec {
-    version = "3.0.2";
-    name = "robotframework-${version}";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/robotframework/${name}.tar.gz";
-      sha256 = "1xqzxv00lxf9xi4vdxdsyd1bfmx18gi96vrnijpzj9w2aqrz4610";
-    };
-
-    meta = {
-      description = "Generic test automation framework";
-      homepage = http://robotframework.org/;
-      license = licenses.asl20;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
+  robomachine = callPackage ../development/python-modules/robomachine { };
 
+  robotframework = callPackage ../development/python-modules/robotframework { };
 
   robotframework-selenium2library = buildPythonPackage rec {
     version = "1.6.0";
@@ -20940,66 +14362,15 @@ in {
 
     meta = {
       description = "Python Tools for Robot Framework and Test Libraries";
-      homepage = http://bitbucket.org/userzimmermann/robotframework-tools;
+      homepage = https://bitbucket.org/userzimmermann/robotframework-tools;
       license = licenses.gpl3;
       platforms = platforms.linux;
     };
   };
 
+  robotsuite = callPackage ../development/python-modules/robotsuite { };
 
-  robotsuite = buildPythonPackage rec {
-    version = "1.4.2";
-    name = "robotsuite-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/robotsuite/${name}.zip";
-      sha256 = "0sw09vrvwv3gzqb6jvhbrz09l6nzzj3i9av34qjddqfwq7cr1bla";
-    };
-
-    # error: invalid command 'test'
-    #doCheck = false;
-
-    buildInputs = with self; [ unittest2 ];
-    propagatedBuildInputs = with self; [ robotframework lxml ];
-
-    meta = {
-      description = "Python unittest test suite for Robot Framework";
-      homepage = http://github.com/collective/robotsuite/;
-      license = licenses.gpl3;
-    };
-  };
-
-
-  robotframework-ride = buildPythonPackage rec {
-    version = "1.2.3";
-    name = "robotframework-ride-${version}";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "https://robotframework-ride.googlecode.com/files/${name}.tar.gz";
-      sha256 = "1lf5f4x80f7d983bmkx12sxcizzii21kghs8kf63a1mj022a5x5j";
-    };
-
-    propagatedBuildInputs = with self; [ pygments wxPython ];
-
-    # ride_postinstall.py checks that needed deps are installed and creates a
-    # desktop shortcut. We don't really need it and it clutters up bin/ so
-    # remove it.
-    postInstall = ''
-      rm -f "$out/bin/ride_postinstall.py"
-    '';
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "Light-weight and intuitive editor for Robot Framework test case files";
-      homepage = https://code.google.com/p/robotframework-ride/;
-      license = licenses.asl20;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
+  robotframework-ride = callPackage ../development/python-modules/robotframework-ride { };
 
   robotframework-requests = buildPythonPackage rec {
     version = "0.4.6";
@@ -21019,94 +14390,26 @@ in {
     };
   };
 
-  rootpy = buildPythonPackage rec {
-    version = "0.9.0";
-    name = "rootpy-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/rootpy/${name}.tar.gz";
-      sha256 = "04alx6afiyahhv816f6zpwnm0sx2jxgqpgqcn6kdw0wnpc9625cr";
-    };
+  root_numpy = callPackage ../development/python-modules/root_numpy { };
 
-    disabled = isPy3k;
+  rootpy = callPackage ../development/python-modules/rootpy { };
 
-    propagatedBuildInputs = with self; [ pkgs.root numpy matplotlib ];
-
-    meta = {
-      homepage = "http://www.rootpy.org";
-      license = licenses.gpl3;
-      description = "Pythonic interface to the ROOT framework";
-    };
-  };
-
-  rope = buildPythonPackage rec {
-    version = "0.10.2";
-    name = "rope-${version}";
-
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/rope/${name}.tar.gz";
-      sha256 = "0rdlvp8h74qs49wz1hx6qy8mgp2ddwlfs7z13h9139ynq04a3z7z";
-    };
-
-    meta = {
-      description = "Python refactoring library";
-      homepage = http://rope.sf.net;
-      maintainers = with maintainers; [ goibhniu ];
-      license = licenses.gpl2;
-    };
-  };
-
-  ropemacs = buildPythonPackage rec {
-    version = "0.7";
-    name = "ropemacs-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/ropemacs/${name}.tar.gz";
-      sha256 = "1x5qf1drcdz9jfiiakc60kzqkb3ahsg9j902c5byf3gjfacdrmqj";
-    };
-
-    propagatedBuildInputs = with self; [ ropemode ];
-
-     meta = {
-       description = "A plugin for performing python refactorings in emacs";
-       homepage = http://rope.sf.net/ropemacs.html;
-       maintainers = with maintainers; [ goibhniu ];
-       license = licenses.gpl2;
-     };
-  };
-
-  ropemode = buildPythonPackage rec {
-    version = "0.2";
-    name = "ropemode-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/ropemode/${name}.tar.gz";
-      sha256 = "0jw6h1wvk6wk0wknqdf7s9pw76m8472jv546lqdd88jbl2scgcjl";
-    };
-
-    propagatedBuildInputs = with self; [ rope ];
-
-     meta = {
-       description = "A plugin for performing python refactorings in emacs";
-       homepage = http://rope.sf.net;
-       maintainers = with maintainers; [ goibhniu ];
-       license = licenses.gpl2;
-     };
-  };
+  rope = callPackage ../development/python-modules/rope { };
 
   ropper = callPackage ../development/python-modules/ropper { };
 
   routes = buildPythonPackage rec {
-    name = "routes-1.12.3";
+    pname = "Routes";
+    version = "2.4.1";
 
-    src = pkgs.fetchurl {
-      url = mirror://pypi/R/Routes/Routes-1.12.3.tar.gz;
-      sha256 = "eacc0dfb7c883374e698cebaa01a740d8c78d364b6e7f3df0312de042f77aa36";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "1zamff3m0kc4vyfniyhxpkkcqv1rrgnmh37ykxv34nna1ws47vi6";
     };
 
-    propagatedBuildInputs = with self; [ paste webtest ];
+    propagatedBuildInputs = with self; [ repoze_lru six webob ];
+
+    checkInputs = with self; [ coverage webtest ];
 
     meta = {
       description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
@@ -21114,43 +14417,13 @@ in {
     };
   };
 
-  rpkg = buildPythonPackage (rec {
-    name = "rpkg-1.14";
-    disabled = !isPy27; # error: invalid command 'bdist_wheel'
-    meta.maintainers = with maintainers; [ mornfall ];
-
-    src = pkgs.fetchurl {
-      url = "https://fedorahosted.org/releases/r/p/rpkg/rpkg-1.14.tar.gz";
-      sha256 = "0d053hdjz87aym1sfm6c4cxmzmy5g0gkrmrczly86skj957r77a7";
-    };
-
-    patches = [ ../development/python-modules/rpkg-buildfix.diff ];
-
-    propagatedBuildInputs = with self; [ pycurl koji GitPython pkgs.git
-      rpm pyopenssl ];
-
-  });
-
-  rply = buildPythonPackage rec {
-    name = "rply-${version}";
-    version = "0.7.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/rply/${name}.tar.gz";
-      sha256 = "12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj";
-    };
+  rpkg = callPackage ../development/python-modules/rpkg/default.nix {};
 
-    buildInputs = with self; [ appdirs ];
+  rply = callPackage ../development/python-modules/rply/default.nix {};
 
-    meta = with pkgs.stdenv.lib; {
-      description = "A python Lex/Yacc that works with RPython";
-      homepage = https://github.com/alex/rply;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ nixy ];
-    };
-  };
+  rpm = toPythonModule (pkgs.rpm.override{inherit python;});
 
-  rpm = (pkgs.rpm.override{inherit python;});
+  rpmfluff = callPackage ../development/python-modules/rpmfluff {};
 
   rpy2 = buildPythonPackage rec {
     name = "rpy2-2.8.2";
@@ -21261,40 +14534,24 @@ in {
     };
   };
 
-  typing = buildPythonPackage rec {
-    name = "typing-${version}";
-    version = "3.5.3.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/typing/${name}.tar.gz";
-      sha256 = "08gz3grrh3vph5ib1w5x1ssnpzvj077x030lx63fxs4kwg3slbfa";
-    };
-
-    meta = {
-      description = "Backport of typing module to Python versions older than 3.5";
-      homepage = "https://docs.python.org/3.5/library/typing.html";
-      license = licenses.psfl;
-    };
-  };
+  typing = callPackage ../development/python-modules/typing { };
 
   typeguard = callPackage ../development/python-modules/typeguard { };
 
   ruamel_yaml = buildPythonPackage rec {
     name = "ruamel.yaml-${version}";
-    version = "0.13.7";
-
-    # needs ruamel_ordereddict for python2 support
-    disabled = !isPy3k;
+    version = "0.15.35";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/r/ruamel.yaml/${name}.tar.gz";
-      sha256 = "1vca2552k0kmhr9msg1bbfdvp3p9im17x1a6npaw221vlgg15z7h";
+      sha256 = "0xggyfaj6vprggahf7cq8kp9j79rb7hn8ndk3bxj2sxvwhhliiwd";
     };
 
     # Tests cannot load the module to test
     doCheck = false;
 
-    propagatedBuildInputs = with self; [ ruamel_base typing ];
+    propagatedBuildInputs = with self; [ ruamel_base typing ] ++
+    (optional (!isPy3k) self.ruamel_ordereddict);
 
     meta = {
       description = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order";
@@ -21320,80 +14577,9 @@ in {
     };
   };
 
-  rtslib_fb = buildPythonPackage rec {
-    version = "2.1.fb43";
-    name = "rtslib-fb-${version}";
+  s3transfer = callPackage ../development/python-modules/s3transfer { };
 
-    src = pkgs.fetchurl {
-      url = "https://github.com/agrover/rtslib-fb/archive/v${version}.tar.gz";
-      sha256 = "1b59vyy12g6rix9l2fxx0hjiq33shkb79v57gwffs57vh74wc53v";
-    };
-
-    meta = {
-      description = "A Python object API for managing the Linux LIO kernel target";
-      homepage = "https://github.com/agrover/rtslib-fb";
-      platforms = platforms.linux;
-    };
-  };
-
-  s3transfer = buildPythonPackage rec {
-    version = "0.1.10";
-    name = "s3transfer-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/s3transfer/${name}.tar.gz";
-      sha256 = "1h8g9bknvxflxkpbnxyfxmk8pvgykbbk9ljdvhqh6z4vjc2926ms";
-    };
-
-    foo = 1;
-
-    propagatedBuildInputs =
-      [ self.botocore
-      ] ++ stdenv.lib.optional (pythonOlder "3") self.futures;
-
-    buildInputs = with self; [ docutils mock nose coverage wheel unittest2 ];
-
-    checkPhase = ''
-      pushd s3transfer/tests
-      nosetests -v unit/ functional/
-      popd
-    '';
-
-    # version on pypi has no tests/ dir
-    doCheck = false;
-
-    meta = {
-      homepage = https://github.com/boto/s3transfer;
-      license = stdenv.lib.licenses.asl20;
-      description = "A library for managing Amazon S3 transfers";
-    };
-  };
-
-  seqdiag = buildPythonPackage rec {
-    name = "seqdiag-0.9.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/seqdiag/${name}.tar.gz";
-      sha256 = "1qa7d0m1wahvmrj95rxkb6128cbwd4w3gy8gbzncls66h46bifiz";
-    };
-
-    buildInputs = with self; [ pep8 nose unittest2 docutils ];
-
-    propagatedBuildInputs = with self; [ blockdiag ];
-
-    # Tests fail:
-    #   ...
-    #   ERROR: Failure: OSError ([Errno 2] No such file or directory: '/tmp/nix-build-python2.7-seqdiag-0.9.0.drv-0/seqdiag-0.9.0/src/seqdiag/tests/diagrams/')
-    doCheck = false;
-
-    meta = {
-      description = "Generate sequence-diagram image from spec-text file (similar to Graphviz)";
-      homepage = http://blockdiag.com/;
-      license = licenses.asl20;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
+  seqdiag = callPackage ../development/python-modules/seqdiag { };
 
   pysendfile = buildPythonPackage rec {
     name = "pysendfile-${version}";
@@ -21448,24 +14634,9 @@ in {
     propagatedBuildInputs = [ self.cffi ];
   };
 
-  scapy = buildPythonPackage rec {
-    name = "scapy-2.2.0";
+  sampledata = callPackage ../development/python-modules/sampledata { };
 
-    disabled = isPy3k || isPyPy;
-
-    src = pkgs.fetchurl {
-      url = "http://www.secdev.org/projects/scapy/files/${name}.tar.gz";
-      sha256 = "1bqmp0xglkndrqgmybpwmzkv462mir8qlkfwsxwbvvzh9li3ndn5";
-    };
-
-    meta = {
-      description = "Powerful interactive network packet manipulation program";
-      homepage = http://www.secdev.org/projects/scapy/;
-      license = licenses.gpl2;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
+  scapy = callPackage ../development/python-modules/scapy { };
 
   scipy = callPackage ../development/python-modules/scipy { };
 
@@ -21496,6 +14667,8 @@ in {
     inherit (pkgs) gfortran glibcLocales;
   };
 
+  scp = callPackage ../development/python-modules/scp {};
+
   scripttest = buildPythonPackage rec {
     version = "1.3";
     name = "scripttest-${version}";
@@ -21512,104 +14685,17 @@ in {
 
     meta = {
       description = "A library for testing interactive command-line applications";
-      homepage = http://pypi.python.org/pypi/ScriptTest/;
-    };
-  };
-
-  seaborn = buildPythonPackage rec {
-    name = "seaborn-0.7.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/seaborn/${name}.tar.gz";
-      sha256 = "0pawrqc3mxpwd5g9pvi9gba02637bh5c8ldpp8izfwpfn52469zs";
-    };
-
-    buildInputs = with self; [ nose ];
-    propagatedBuildInputs = with self; [ pandas matplotlib ];
-
-    checkPhase = ''
-      nosetests -v
-    '';
-
-    # Computationally very demanding tests
-    doCheck = false;
-
-    meta = {
-      description = "Statisitical data visualization";
-      homepage = "http://stanford.edu/~mwaskom/software/seaborn/";
-      license     = "BSD";
-      maintainers = with maintainers; [ fridh ];
+      homepage = https://pypi.python.org/pypi/ScriptTest/;
     };
   };
 
-  selenium = buildPythonPackage rec {
-    name = "selenium-2.52.0";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/selenium/${name}.tar.gz";
-      sha256 = "0971rd9b8kb97xp9fvrwzvxr8vqfdjc020cs75n787ya82km01c2";
-    };
+  seaborn = callPackage ../development/python-modules/seaborn { };
 
-    buildInputs = with self; [pkgs.xorg.libX11];
+  selenium = callPackage ../development/python-modules/selenium { };
 
-    # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
-    # absolute paths. Replaced by relative path so it is found when used in nix.
-    x_ignore_nofocus =
-      pkgs.fetchFromGitHub {
-        owner = "SeleniumHQ";
-        repo = "selenium";
-        rev = "selenium-2.52.0";
-        sha256 = "1n58akim9np2jy22jfgichq1ckvm8gglqi2hn3syphh0jjqq6cfx";
-      };
+  serpy = callPackage ../development/python-modules/serpy { };
 
-    patchPhase = ''
-      cp "${x_ignore_nofocus}/cpp/linux-specific/"* .
-      substituteInPlace x_ignore_nofocus.c --replace "/usr/lib/libX11.so.6" "${pkgs.xorg.libX11.out}/lib/libX11.so.6"
-      gcc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
-      gcc -shared \
-        -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
-        -o x_ignore_nofocus.so \
-        x_ignore_nofocus.o
-      cp -v x_ignore_nofocus.so py/selenium/webdriver/firefox/${if pkgs.stdenv.is64bit then "amd64" else "x86"}/
-    '';
-  };
-
-  setuptools_scm = buildPythonPackage rec {
-    name = "setuptools_scm-${version}";
-    version = "1.15.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/setuptools_scm/${name}.tar.gz";
-      sha256 = "0bwyc5markib0i7i2qlyhdzxhiywzxbkfiapldma8m91m82jvwfs";
-    };
-
-    buildInputs = with self; [ pip ];
-    checkInputs = with self; [ pytest ];
-    # Seems to fail due to chroot
-    doCheck = false;
-
-    checkPhase = ''
-      py.test
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = https://bitbucket.org/pypa/setuptools_scm/;
-      description = "Handles managing your python package versions in scm metadata";
-      license = licenses.mit;
-      maintainers = with maintainers; [ jgeerds ];
-    };
-  };
-
-  setuptools_scm_18 = self.setuptools_scm.override rec {
-    name = "setuptools_scm-${version}";
-    version = "1.8.0";
-
-    # tests fail: ImportError: cannot import name 'find_files'
-    disabled = isPy35;
-
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/source/s/setuptools_scm/${name}.tar.bz2";
-      sha256 = "00p60v2yfqy1r58pjcx9wy6dvqd7wkpfs5z1dzwf7y75c1g3dgyx";
-    };
-  };
+  setuptools_scm = callPackage ../development/python-modules/setuptools_scm { };
 
   setuptoolsDarcs = buildPythonPackage rec {
     name = "setuptools_darcs-${version}";
@@ -21662,6 +14748,8 @@ in {
     };
   };
 
+  simanneal = callPackage ../development/python-modules/simanneal { };
+
   simplebayes = buildPythonPackage rec {
     name = "simplebayes-${version}";
     version = "1.5.8";
@@ -21691,22 +14779,7 @@ in {
     };
   };
 
-  simplegeneric = buildPythonPackage rec {
-    version = "0.8.1";
-    name = "simplegeneric-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/simplegeneric/${name}.zip";
-      sha256 = "dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173";
-    };
-
-    meta = {
-      description = "Simple generic functions";
-      homepage = http://cheeseshop.python.org/pypi/simplegeneric;
-      license = licenses.zpt21;
-    };
-  };
-
+  simplegeneric = callPackage ../development/python-modules/simplegeneric { };
 
   shortuuid = buildPythonPackage rec {
     name = "shortuuid-${version}";
@@ -21798,28 +14871,7 @@ in {
     };
   };
 
-  sigal = buildPythonPackage rec {
-    name = "sigal-1.0.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/sigal/${name}.tar.gz";
-      sha256 = "198g2r8bii6a0p44mlk1wg07jjv95xpfvnqhhxxziqpizc776b34";
-    };
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ jinja2 markdown pillow pilkit clint click blinker ];
-
-    # No tests included
-    doCheck = false;
-
-
-    meta = {
-      description = "Yet another simple static gallery generator";
-      homepage = http://sigal.saimon.org/en/latest/index.html;
-      license = licenses.mit;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
+  slimit = callPackage ../development/python-modules/slimit { };
 
   slob = buildPythonPackage rec {
     name = "slob-unstable-2016-11-03";
@@ -21885,29 +14937,7 @@ in {
     };
   };
 
-  spake2 = buildPythonPackage rec {
-    name = "spake2-${version}";
-    version = "0.7";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/spake2/${name}.tar.gz";
-      sha256 = "0rmplicbbid41qrvwc1ckyp211ban01ardms5yqqq16ixrc18a6j";
-    };
-
-    buildInputs = with self; [ pytest ];
-
-    propagatedBuildInputs = with self; [ hkdf ];
-
-    checkPhase = ''
-      py.test $out
-    '';
-
-    meta = {
-      description = "SPAKE2 password-authenticated key exchange library";
-      homepage = "http://github.com/warner/python-spake2";
-      license = licenses.mit;
-    };
-  };
+  spake2 = callPackage ../development/python-modules/spake2 { };
 
   sphfile = callPackage ../development/python-modules/sphfile { };
 
@@ -21928,14 +14958,23 @@ in {
   };
 
   sqlobject = buildPythonPackage rec {
-    version = "3.0.0";
-    name = "sqlobject-${version}";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/S/SQLObject/SQLObject-${version}.tar.gz";
-      sha256 = "15g3g7f4yiyplqf54px1dsnmrw3jb7xwx97z8qzgp9ijmm5vpr8r";
+    pname = "SQLObject";
+    version = "3.3.0";
+    name = "${pname}-${version}";
+
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0p2dxrxh7xrv5yys09v5z95d0z40w22aq3xc01ghdidd7hr79xy9";
     };
 
-    propagatedBuildInputs = with self; [ pydispatcher FormEncode ];
+    checkInputs = with self; [ pytest ];
+
+    propagatedBuildInputs = with self; [
+      FormEncode
+      PasteDeploy
+      paste
+      pydispatcher
+    ];
 
     meta = {
       description = "Object Relational Manager for providing an object interface to your database";
@@ -21944,30 +14983,20 @@ in {
     };
   };
 
-  sqlmap = buildPythonPackage {
-    name = "sqlmap-1.0.11";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/sqlmap/sqlmap-1.0.11.tar.gz";
-      sha256 = "1x4amyjqnd9j5g2kp9nvg8pr5sqzbhr8gd0m6d671bshvgj568vr";
-    };
-
-    meta = with pkgs.stdenv.lib; {
-      homepage = "http://sqlmap.org";
-      license = licenses.gpl2;
-      description = "Automatic SQL injection and database takeover tool";
-      maintainers = with stdenv.lib.maintainers; [ bennofs ];
-    };
-  };
-
+  sqlmap = callPackage ../development/python-modules/sqlmap { };
   pgpdump = self.buildPythonPackage rec {
-    name = "pgpdump-1.5";
+    pname = "pgpdump";
+    version = "1.5";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pgpdump/pgpdump-1.5.tar.gz";
-      sha256 = "1c4700857bf7ba735b08cfe4101aa3a4f5fd839657af249c17b2697c20829668";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0s4nh8h7qsdj2yf29bspjs1zvxd4lcd11r6g11dp7fppgf2h0iqw";
     };
 
+    # Disabling check because of: https://github.com/toofishes/python-pgpdump/issues/18
+    doCheck = false;
+
     meta = {
       description = "Python library for parsing PGP packets";
       homepage = https://github.com/toofishes/python-pgpdump;
@@ -21975,56 +15004,9 @@ in {
     };
   };
 
-  spambayes = buildPythonPackage rec {
-    name = "spambayes-1.1b1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://sourceforge/spambayes/${name}.tar.gz";
-      sha256 = "0kqvjb89b02wp41p650ydfspi1s8d7akx1igcrw62diidqbxp04n";
-    };
-
-    propagatedBuildInputs = with self; [ bsddb3 pydns lockfile ];
-
-    meta = {
-      description = "Statistical anti-spam filter, initially based on the work of Paul Graham";
-      homepage = http://spambayes.sourceforge.net/;
-    };
-  };
-
-  shapely = buildPythonPackage rec {
-    name = "Shapely-${version}";
-    version = "1.5.15";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/S/Shapely/${name}.tar.gz";
-      sha256 = "0lfqxb3kpdn0g9zzlhzg79yc8iyy4fpsk0p5nd80gar1mmhr8pg7";
-    };
-
-    buildInputs = with self; [ pkgs.geos pkgs.glibcLocales pytest cython ];
-
-    propagatedBuildInputs = with self; [ numpy ];
-
-    preConfigure = ''
-      export LANG="en_US.UTF-8";
-    '';
-
-    patchPhase = ''
-      sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${pkgs.geos}/lib/libgeos_c.so'])|" shapely/geos.py
-    '';
-
-    # tests/test_voctorized fails because the vectorized extension is not
-    # available in when running tests
-    checkPhase = ''
-      py.test --ignore tests/test_vectorized.py
-    '';
-
-    meta = {
-      description = "Geometric objects, predicates, and operations";
-      homepage = "https://pypi.python.org/pypi/Shapely/";
-    };
-  };
-
+  spambayes = callPackage ../development/python-modules/spambayes { };
 
+  shapely = callPackage ../development/python-modules/shapely { };
 
   sopel = buildPythonPackage rec {
     name = "sopel-6.3.1";
@@ -22050,52 +15032,28 @@ in {
     };
   };
 
-  sounddevice = buildPythonPackage rec {
-    name = "sounddevice-${version}";
-    version = "0.3.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/sounddevice/${name}.tar.gz";
-      sha256 = "4ef39be2d13069fbad8c69ac259e018d96ce55c23b529a7e0be9bd9a76e2e8da";
-    };
-
-    propagatedBuildInputs = with self; [ cffi numpy pkgs.portaudio ];
+  sounddevice = callPackage ../development/python-modules/sounddevice { };
 
-    # No tests included nor upstream available.
-    doCheck = false;
+  stevedore = callPackage ../development/python-modules/stevedore {};
 
-    prePatch = ''
-      substituteInPlace sounddevice.py --replace "'portaudio'" "'${pkgs.portaudio}/lib/libportaudio.so.2'"
-    '';
+  text-unidecode = callPackage ../development/python-modules/text-unidecode { };
 
-    meta = {
-      description = "Play and Record Sound with Python";
-      homepage = http://python-sounddevice.rtfd.org/;
-      license = with licenses; [ mit ];
-      maintainers = with maintainers; [ fridh ];
-    };
+  Theano = callPackage ../development/python-modules/Theano rec {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    cudnnSupport = cudaSupport;
   };
 
-  stevedore = callPackage ../development/python-modules/stevedore {};
-
-  Theano = self.TheanoWithoutCuda;
+  TheanoWithoutCuda = self.Theano.override {
+    cudaSupport = true;
+    cudnnSupport = true;
+  };
 
-  TheanoWithoutCuda = callPackage ../development/python-modules/Theano/theano-without-cuda { };
+  TheanoWithCuda = self.Theano.override {
+    cudaSupport = false;
+    cudnnSupport = false;
+  };
 
-  TheanoWithCuda = callPackage ../development/python-modules/Theano/theano-with-cuda (
-  let
-    boost = pkgs.boost159.override {
-      inherit (self) python numpy scipy;
-    };
-  in rec {
-    cudatoolkit = pkgs.cudatoolkit75;
-    cudnn = pkgs.cudnn5_cudatoolkit75;
-    inherit (self) numpy scipy;
-    pycuda = self.pycuda.override { inherit boost; };
-    libgpuarray = self.libgpuarray-cuda.override {
-      clblas = pkgs.clblas-cuda.override { inherit boost; };
-    };
-  });
+  thespian = callPackage ../development/python-modules/thespian { };
 
   tidylib = buildPythonPackage rec {
     version = "0.2.4";
@@ -22227,68 +15185,45 @@ in {
     doCheck = false;
   };
 
-  pydns = buildPythonPackage rec {
-    name = "pydns-2.3.6";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pydns/${name}.tar.gz";
-      sha256 = "0qnv7i9824nb5h9psj0rwzjyprwgfiwh5s5raa9avbqazy5hv5pi";
-    };
-
-    doCheck = false;
-
-  };
-
-  pythondaemon = buildPythonPackage rec {
-    name = "python-daemon-${version}";
-    version = "2.1.1";
-
-    src = pkgs.fetchurl {
-      url = " mirror://pypi/p/python-daemon/${name}.tar.gz";
-      sha256 = "17v80qb98p1gv4j9mq6wb55cv7hc4j1hzw5y2f4s5hrpxs3w3a2q";
-    };
-
-    # A test fail within chroot builds.
-    doCheck = false;
-
-    buildInputs = with self; [ mock testscenarios ];
-    propagatedBuildInputs = with self; [ docutils lockfile ];
-
-    meta = {
-      description = "Library to implement a well-behaved Unix daemon process";
-      homepage = https://alioth.debian.org/projects/python-daemon/;
-      licenses =  [ licenses.gpl3Plus licenses.asl20 ];
-    };
-  };
+  pydns =
+    let
+      py3 = buildPythonPackage rec {
+        name = "${pname}-${version}";
+        pname = "py3dns";
+        version = "3.1.1a";
+
+        src = fetchPypi {
+          inherit pname version;
+          sha256 = "0z0qmx9j1ivpgg54gqqmh42ljnzxaychc5inz2gbgv0vls765smz";
+        };
+
+        preConfigure = ''
+          sed -i \
+            -e '/import DNS/d' \
+            -e 's/DNS.__version__/"${version}"/g' \
+            setup.py
+        '';
+
+        doCheck = false;
+      };
 
-  sympy = buildPythonPackage rec {
-    name = "sympy-1.0";
+      py2 = buildPythonPackage rec {
+        name = "${pname}-${version}";
+        pname = "pydns";
+        version = "2.3.6";
 
-    src = pkgs.fetchurl {
-      url    = "mirror://pypi/s/sympy/${name}.tar.gz";
-      sha256 = "1bpzjwr9hrr7w88v4vgnj9lr6vxcldc94si13n8xpr1rv08d5b1y";
-    };
+        src = fetchPypi {
+          inherit pname version;
+          sha256 = "0qnv7i9824nb5h9psj0rwzjyprwgfiwh5s5raa9avbqazy5hv5pi";
+        };
 
-    buildInputs = [ pkgs.glibcLocales ];
+        doCheck = false;
+      };
+    in if isPy3k then py3 else py2;
 
-    propagatedBuildInputs = with self; [ mpmath ];
+  pythondaemon = callPackage ../development/python-modules/python-daemon { };
 
-    # Bunch of failures including transients.
-    doCheck = false;
-
-    preCheck = ''
-      export LANG="en_US.UTF-8"
-    '';
-
-    meta = {
-      description = "A Python library for symbolic mathematics";
-      homepage    = http://www.sympy.org/;
-      license     = licenses.bsd3;
-      maintainers = with maintainers; [ lovek323 ];
-      platforms   = platforms.unix;
-    };
-  };
+  sympy = callPackage ../development/python-modules/sympy { };
 
   pilkit = buildPythonPackage rec {
     name = "pilkit-1.1.4";
@@ -22392,6 +15327,8 @@ in {
     };
   };
 
+  secretstorage = callPackage ../development/python-modules/secretstorage { };
+
   semantic = buildPythonPackage rec {
     name = "semantic-1.0.3";
 
@@ -22456,53 +15393,11 @@ in {
     };
   };
 
-  secp256k1 = buildPythonPackage rec {
-    name = "secp256k1-${version}";
-    version = "0.12.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/secp256k1/${name}.tar.gz";
-      sha256 = "0zrjxvzxqm4bz2jcy8sras8jircgbs6dkrw8j3nc6jhvzlikwwxl";
-    };
-
-    buildInputs = [ pkgs.pkgconfig self.pytest_28 self.pytestrunner ];
-    propagatedBuildInputs = [ self.cffi pkgs.secp256k1 ];
-
-    # Tests are not included in archive
-    doCheck = false;
-
-    preConfigure = ''
-      cp -r ${pkgs.secp256k1.src} libsecp256k1
-      touch libsecp256k1/autogen.sh
-      export INCLUDE_DIR=${pkgs.secp256k1}/include
-      export LIB_DIR=${pkgs.secp256k1}/lib
-    '';
-
-    checkPhase = ''
-      py.test tests
-    '';
-
-    meta = {
-      homepage = https://github.com/ludbb/secp256k1-py;
-      description = "Python FFI bindings for secp256k1";
-      license = with licenses; [ mit ];
-      maintainers = with maintainers; [ chris-martin ];
-    };
+  secp256k1 = callPackage ../development/python-modules/secp256k1 {
+    inherit (pkgs) secp256k1 pkgconfig;
   };
 
-  semantic-version = buildPythonPackage rec {
-    name = "semantic_version-2.4.2";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/semantic_version/${name}.tar.gz";
-      sha256 = "7e8b7fa74a3bc9b6e90b15b83b9bc2377c78eaeae3447516425f475d5d6932d2";
-    };
-
-    meta = {
-      description = "A library implementing the 'SemVer' scheme";
-      license = licenses.bsdOriginal;
-      maintainers = with maintainers; [ layus ];
-    };
-  };
+  semantic-version = callPackage ../development/python-modules/semantic-version { };
 
   sexpdata = buildPythonPackage rec {
     name = "sexpdata-0.0.2";
@@ -22532,7 +15427,7 @@ in {
 
     meta = {
       description = "Python subprocess interface";
-      homepage = http://pypi.python.org/pypi/sh/;
+      homepage = https://pypi.python.org/pypi/sh/;
     };
   };
 
@@ -22547,63 +15442,13 @@ in {
       sha256 = "1q35kgz151rr99240jq55rs39y741m8shh9yihl3x95rkjxchji4";
     };
 
-    propagatedBuildInputs = with self; [ cython pkgs.openssl dns dateutil xcaplib msrplib lxml python-otr ];
-    buildInputs = with pkgs; [ alsaLib ffmpeg libv4l pkgconfig sqlite libvpx ];
-  };
-
-
-  six = buildPythonPackage rec {
-    name = "six-1.10.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/six/${name}.tar.gz";
-      sha256 = "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh";
-    };
-
-    buildInputs = with self; [ pytest ];
-
-    checkPhase = ''
-      py.test test_six.py
-    '';
-
-    meta = {
-      description = "A Python 2 and 3 compatibility library";
-      homepage = http://pypi.python.org/pypi/six/;
-    };
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = with pkgs; [ alsaLib ffmpeg libv4l sqlite libvpx ];
+    propagatedBuildInputs = with self; [ cython pkgs.openssl dnspython dateutil xcaplib msrplib lxml python-otr ];
   };
 
 
-  skype4py = buildPythonPackage (rec {
-    name = "Skype4Py-1.0.32.0";
-    disabled = isPy3k || isPyPy;
-
-    src = pkgs.fetchurl {
-      url = mirror://sourceforge/skype4py/Skype4Py-1.0.32.0.tar.gz;
-      sha256 = "0cmkrv450wa8v50bng5dflpwkl5c1p9pzysjkb2956w5kvwh6f5b";
-    };
-
-    unpackPhase = ''
-      tar xf $src
-      find . -type d -exec chmod +rx {} \;
-      sourceRoot=`pwd`/`ls -d S*`
-    '';
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ pkgs.xorg.libX11 dbus-python pygobject2 ];
-
-    meta = {
-      description = "High-level, platform independent Skype API wrapper for Python";
-
-      # The advertisement says https://developer.skype.com/wiki/Skype4Py
-      # but that url does not work. This following web page points to the
-      # download link and has some information about the package.
-      homepage = http://pypi.python.org/pypi/Skype4Py/1.0.32.0;
-      broken = true;
-      license = "BSD";
-    };
-  });
+  six = callPackage ../development/python-modules/six { };
 
   smartdc = buildPythonPackage rec {
     name = "smartdc-0.1.12";
@@ -22635,24 +15480,7 @@ in {
     };
   };
 
-  sockjs-tornado = buildPythonPackage rec {
-    name = "sockjs-tornado-${version}";
-    version = "1.0.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/sockjs-tornado/${name}.tar.gz";
-      sha256 = "16cff40nniqsyvda1pb2j3b4zwmrw7y2g1vqq78lp20xpmhnwwkd";
-    };
-
-    propagatedBuildInputs = with self; [ tornado ];
-
-    meta = {
-      homepage = "http://github.com/mrjoes/sockjs-tornado/";
-      description = "SockJS python server implementation on top of Tornado framework";
-      license = licenses.mit;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
 
   sorl_thumbnail = buildPythonPackage rec {
     name = "sorl-thumbnail-11.12";
@@ -22673,13 +15501,13 @@ in {
   };
 
   supervisor = buildPythonPackage rec {
-    name = "supervisor-3.1.1";
+    name = "supervisor-3.1.4";
 
     disabled = isPy3k;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/s/supervisor/${name}.tar.gz";
-      sha256 = "e3c3b35804c24b6325b5ba462553ebee80d5f4d1766274737b5c532cd4a11d59";
+      sha256 = "0kk0sv7780m4dzmrcb2m284krz907jh8jp7khz5a79qryy4m1xw2";
     };
 
     buildInputs = with self; [ mock ];
@@ -22694,33 +15522,7 @@ in {
     };
   };
 
-  subprocess32 = buildPythonPackage rec {
-    name = "subprocess32-3.2.6";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/subprocess32/${name}.tar.gz";
-      sha256 = "ddf4d46ed2be2c7e7372dfd00c464cabb6b3e29ca4113d85e26f82b3d2c220f6";
-    };
-
-    buildInputs = [ pkgs.bash ];
-
-    preConfigure = ''
-      substituteInPlace test_subprocess32.py \
-        --replace '/usr/' '${pkgs.bash}/'
-    '';
-
-    doCheck = !isPyPy;
-    checkPhase = ''
-      ${python.interpreter} test_subprocess32.py
-    '';
-
-    meta = {
-      homepage = https://pypi.python.org/pypi/subprocess32;
-      description = "Backport of the subprocess module from Python 3.2.5 for use on 2.x";
-      maintainers = with maintainers; [ garbas ];
-    };
-  };
+  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
 
   spark_parser = buildPythonPackage (rec {
     name = "${pname}-${version}";
@@ -22741,50 +15543,9 @@ in {
     };
   });
 
-  sphinx = buildPythonPackage (rec {
-    name = "${pname}-${version}";
-    pname = "Sphinx";
-    version = "1.5.2";
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "049c48393909e4704a6ed4de76fd39c8622e165414660bfb767e981e7931c722";
-    };
-    LC_ALL = "en_US.UTF-8";
-    buildInputs = with self; [ pytest simplejson mock pkgs.glibcLocales html5lib ] ++ optional (pythonOlder "3.4") self.enum34;
-    # Disable two tests that require network access.
-    checkPhase = ''
-      cd tests; ${python.interpreter} run.py --ignore py35 -k 'not test_defaults and not test_anchors_ignored'
-    '';
-    propagatedBuildInputs = with self; [
-      docutils
-      jinja2
-      pygments
-      alabaster
-      Babel
-      snowballstemmer
-      six
-      sqlalchemy
-      whoosh
-      imagesize
-      requests
-    ];
-
-    # https://github.com/NixOS/nixpkgs/issues/22501
-    # Do not run `python sphinx-build arguments` but `sphinx-build arguments`.
-    postPatch = ''
-      substituteInPlace sphinx/make_mode.py --replace "sys.executable, " ""
-    '';
-
-    meta = {
-      description = "A tool that makes it easy to create intelligent and beautiful documentation for Python projects";
-      homepage = http://sphinx.pocoo.org/;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ nand0p ];
-      platforms = platforms.all;
-    };
-  });
+  sphinx = callPackage ../development/python-modules/sphinx { };
 
-  sphinx_1_2 = self.sphinx.override rec {
+  sphinx_1_2 = self.sphinx.overridePythonAttrs rec {
     name = "sphinx-1.2.3";
     src = pkgs.fetchurl {
       url = "mirror://pypi/s/sphinx/sphinx-1.2.3.tar.gz";
@@ -22795,52 +15556,31 @@ in {
     doCheck = false;
   };
 
+  sphinxcontrib-websupport = callPackage ../development/python-modules/sphinxcontrib-websupport { };
+
   hieroglyph = callPackage ../development/python-modules/hieroglyph { };
 
   sphinx_rtd_theme = buildPythonPackage (rec {
-    name = "sphinx_rtd_theme-0.1.9";
+    name = "sphinx_rtd_theme-0.2.5b2";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/s/sphinx_rtd_theme/${name}.tar.gz";
-      sha256 = "18d0r63w7jpdrk4q5qy26n08vdlmnj9sar93akwjphyambw4cf17";
+      sha256 = "0grf16fi4g0p3dfh11b1624ic34iqkjhf5i1g6hvsh4nlm0ll00q";
     };
 
-    postPatch = ''
-      rm requirements.txt
-      touch requirements.txt
-    '';
-
     meta = {
-      description = "ReadTheDocs.org theme for Sphinx, 2013 version";
+      description = "ReadTheDocs.org theme for Sphinx";
       homepage = https://github.com/snide/sphinx_rtd_theme/;
       license = licenses.bsd3;
       platforms = platforms.unix;
     };
   });
 
-  sphinx-testing = buildPythonPackage rec {
-    name = "sphinx-testing-${version}";
-    version = "0.7.1";
+  guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/sphinx-testing/${name}.tar.gz";
-      sha256 = "0cd235ce939770ae5128eda01d8611fb1e36d8129399e98565f99fcbff3a8062";
-    };
+  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
 
-    buildInputs = with self; [ mock ];
-    propagatedBuildInputs = with self; [ sphinx six ];
-
-    checkPhase = ''
-      ${python.interpreter} -m unittest discover -s tests
-    '';
-
-    meta = {
-      homepage = https://github.com/sphinx-doc/sphinx-testing;
-      license = licenses.bsd2;
-      description = "Testing utility classes and functions for Sphinx extensions";
-    };
-
-  };
+  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex {};
 
   sphinxcontrib-blockdiag = buildPythonPackage (rec {
     name = "${pname}-${version}";
@@ -22898,12 +15638,14 @@ in {
     meta = {
       description = "Provides a Sphinx domain for describing RESTful HTTP APIs";
 
-      homepage = http://bitbucket.org/birkenfeld/sphinx-contrib;
+      homepage = https://bitbucket.org/birkenfeld/sphinx-contrib;
 
       license = "BSD";
     };
   });
 
+  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree {};
+
   sphinxcontrib_newsfeed = buildPythonPackage (rec {
     name = "sphinxcontrib-newsfeed-${version}";
     version = "0.1.4";
@@ -22916,7 +15658,7 @@ in {
 
     meta = {
       description = "Extension for adding a simple Blog, News or Announcements section to a Sphinx website";
-      homepage = http://bitbucket.org/prometheus/sphinxcontrib-newsfeed;
+      homepage = https://bitbucket.org/prometheus/sphinxcontrib-newsfeed;
       license = licenses.bsd2;
     };
   });
@@ -22936,7 +15678,7 @@ in {
 
     meta = {
       description = "Provides a Sphinx domain for embedding UML diagram with PlantUML";
-      homepage = http://bitbucket.org/birkenfeld/sphinx-contrib;
+      homepage = https://bitbucket.org/birkenfeld/sphinx-contrib;
       license = with licenses; [ bsd2 ];
     };
   });
@@ -22992,12 +15734,14 @@ in {
     meta = {
       description = "Setuptools command for uploading Sphinx documentation to PyPI";
 
-      homepage = http://bitbucket.org/jezdez/sphinx-pypi-upload/;
+      homepage = https://bitbucket.org/jezdez/sphinx-pypi-upload/;
 
       license = "BSD";
     };
   });
 
+  splinter = callPackage ../development/python-modules/splinter { };
+
   spotipy = callPackage ../development/python-modules/spotipy { };
 
   Pweave = buildPythonPackage (rec {
@@ -23024,9 +15768,7 @@ in {
     };
   });
 
-  spyder = callPackage ../applications/science/spyder {
-    rope = if isPy3k then null else self.rope;
-  };
+  spyder = callPackage ../applications/science/spyder { };
 
   sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
 
@@ -23087,7 +15829,6 @@ in {
       '';
       homepage = https://github.com/andialbrecht/sqlparse;
       license = licenses.bsd3;
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
@@ -23128,7 +15869,7 @@ in {
 
     meta = {
       description = "Lightweight and extensible STOMP messaging client";
-      homepage = http://bitbucket.org/hozn/stompclient;
+      homepage = https://bitbucket.org/hozn/stompclient;
       license = licenses.asl20;
     };
   });
@@ -23198,7 +15939,8 @@ in {
     src = pkgs.subunit.src;
 
     propagatedBuildInputs = with self; [ testtools testscenarios ];
-    buildInputs = [ pkgs.pkgconfig pkgs.check pkgs.cppunit ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = [ pkgs.check pkgs.cppunit ];
 
     patchPhase = ''
       sed -i 's/version=VERSION/version="${pkgs.subunit.version}"/' setup.py
@@ -23231,28 +15973,7 @@ in {
     };
   };
 
-  structlog = buildPythonPackage rec {
-    name = "structlog-16.1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/structlog/${name}.tar.gz";
-      sha256 = "00dywyg3bqlkrmbrfrql21hpjjjkc4zjd6xxjyxyd15brfnzlkdl";
-    };
-
-    buildInputs = with self; [ pytest pretend freezegun ];
-    propagatedBuildInputs = with self; [ simplejson ];
-
-    checkPhase = ''
-      rm tests/test_twisted.py*
-      py.test
-    '';
-
-    meta = {
-      description = "Painless structural logging";
-      homepage = http://www.structlog.org/;
-      license = licenses.asl20;
-    };
-  };
+  structlog = callPackage ../development/python-modules/structlog { };
 
   svgwrite = buildPythonPackage rec {
     name = "svgwrite-${version}";
@@ -23268,7 +15989,7 @@ in {
 
     meta = {
       description = "A Python library to create SVG drawings";
-      homepage = http://bitbucket.org/mozman/svgwrite;
+      homepage = https://bitbucket.org/mozman/svgwrite;
       license = licenses.mit;
     };
   };
@@ -23294,124 +16015,16 @@ in {
     };
   };
 
-  syncthing-gtk = buildPythonPackage rec {
-    version = "0.9.2.3";
-    name = "syncthing-gtk-${version}";
-    src = pkgs.fetchFromGitHub {
-      owner = "syncthing";
-      repo = "syncthing-gtk";
-      rev = "v${version}";
-      sha256 = "0chl0f0kp6z0z00d1f3xjlicjfr9rzabw39wmjr66fwb5w5hcc42";
-    };
+  sybil = callPackage ../development/python-modules/sybil { };
 
-    disabled = isPy3k;
-
-    propagatedBuildInputs = with self; [ pkgs.syncthing dateutil pyinotify
-      pkgs.libnotify
-      (pkgs.librsvg.override { withGTK = true; })
-      pkgs.psmisc pygobject3 pkgs.gtk3
-    ];
-
-    preFixup = ''
-      wrapProgram $out/bin/syncthing-gtk \
-        --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
-    '';
-
-    patchPhase = ''
-        substituteInPlace setup.py --replace "version = get_version()" "version = '${version}'"
-        substituteInPlace scripts/syncthing-gtk --replace "/usr/share" "$out/share"
-        substituteInPlace syncthing_gtk/app.py --replace "/usr/share" "$out/share"
-        substituteInPlace syncthing_gtk/wizard.py --replace "/usr/share" "$out/share"
-        substituteInPlace syncthing-gtk.desktop --replace "/usr/bin/syncthing-gtk" "$out/bin/syncthing-gtk"
-    '';
-
-    meta = {
-      description = " GTK3 & python based GUI for Syncthing ";
-      maintainers = with maintainers; [ ];
-      platforms = pkgs.syncthing.meta.platforms;
-      homepage = "https://github.com/syncthing/syncthing-gtk";
-      license = licenses.gpl2;
-    };
-  };
+  # legacy alias
+  syncthing-gtk = pkgs.syncthing-gtk;
 
   systemd = callPackage ../development/python-modules/systemd {
     inherit (pkgs) pkgconfig systemd;
   };
 
-  tabulate = buildPythonPackage rec {
-    version = "0.7.7";
-    name = "tabulate-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tabulate/${name}.tar.gz";
-      sha256 = "83a0b8e17c09f012090a50e1e97ae897300a72b35e0c86c0b53d3bd2ae86d8c6";
-    };
-
-    buildInputs = with self; [ nose ];
-
-    # Tests: cannot import common (relative import).
-    doCheck = false;
-
-    meta = {
-      description = "Pretty-print tabular data";
-      homepage = https://bitbucket.org/astanin/python-tabulate;
-      license = licenses.mit;
-      maintainers = with maintainers; [ fridh ];
-    };
-
-  };
-
-  targetcli_fb = buildPythonPackage rec {
-    version = "2.1.fb33";
-    name = "targetcli-fb-${version}";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/agrover/targetcli-fb/archive/v${version}.tar.gz";
-      sha256 = "1zcm0agdpf866020b43fl8zyyyzz6r74mn1sz4xpaa0pinpwjk42";
-    };
-
-    propagatedBuildInputs = with self; [
-      configshell_fb
-      rtslib_fb
-    ];
-
-    meta = {
-      description = "A command shell for managing the Linux LIO kernel target";
-      homepage = "https://github.com/agrover/targetcli-fb";
-      platforms = platforms.linux;
-    };
-  };
-
-  taskcoach = buildPythonPackage rec {
-    name = "TaskCoach-1.3.22";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://sourceforge/taskcoach/${name}.tar.gz";
-      sha256 = "1ddx56bqmh347synhgjq625ijv5hqflr0apxg0nl4jqdsqk1zmxh";
-    };
-
-    propagatedBuildInputs = with self; [ wxPython ];
-
-    # I don't know why I need to add these libraries. Shouldn't they
-    # be part of wxPython?
-    postInstall = ''
-      libspaths=${with pkgs.xorg; pkgs.lib.makeLibraryPath [ libSM libXScrnSaver ]}
-      wrapProgram $out/bin/taskcoach.py \
-        --prefix LD_LIBRARY_PATH : $libspaths
-    '';
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      homepage = http://taskcoach.org/;
-      description = "Todo manager to keep track of personal tasks and todo lists";
-      license = licenses.gpl3Plus;
-      broken = stdenv.isDarwin;
-    };
-  };
+  tabulate = callPackage ../development/python-modules/tabulate { };
 
   taskw = buildPythonPackage rec {
     version = "1.0.3";
@@ -23462,23 +16075,7 @@ in {
     };
   };
 
-  terminado = buildPythonPackage rec {
-    name = "terminado-${version}";
-    version = "0.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/terminado/${name}.tar.gz";
-      sha256 = "2c0ba1f624067dccaaead7d2247cfe029806355cef124dc2ccb53c83229f0126";
-    };
-
-    propagatedBuildInputs = with self; [ ptyprocess tornado ];
-
-    meta = {
-      description = "Terminals served to term.js using Tornado websockets";
-      homepage = https://github.com/takluyver/terminado;
-      license = licenses.bsd2;
-    };
-  };
+  terminado = callPackage ../development/python-modules/terminado { };
 
   terminaltables = buildPythonPackage rec {
     name = "terminaltables-${version}";
@@ -23496,67 +16093,6 @@ in {
     };
   };
 
-  keystoneclient = buildPythonPackage rec {
-    name = "keystoneclient-${version}";
-    version = "1.8.1";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/openstack/python-keystoneclient/archive/${version}.tar.gz";
-      sha256 = "0lijri0xa5fvmynvq148z13kw4xd3bam4zrfd8aj0gb3lnzh9y6v";
-    };
-
-    PBR_VERSION = "${version}";
-
-    buildInputs = with self; [
-        pbr testtools testresources testrepository requests-mock fixtures pkgs.openssl
-        oslotest pep8 ];
-    propagatedBuildInputs = with self; [
-        oslo-serialization oslo-config oslo-i18n oslo-utils
-        Babel argparse prettytable requests six iso8601 stevedore
-        netaddr debtcollector bandit webob mock pycrypto ];
-
-    patchPhase = ''
-      sed -i 's@python@${python.interpreter}@' .testr.conf
-    '';
-
-    doCheck = false; # The checkPhase below is broken
-
-    checkPhase = ''
-      patchShebangs run_tests.sh
-      ./run_tests.sh
-    '';
-
-    meta = {
-      homepage = https://github.com/openstack/python-novaclient/;
-      description = "Client library and command line tool for the OpenStack Nova API";
-      license = stdenv.lib.licenses.asl20;
-      platforms = stdenv.lib.platforms.linux;
-    };
-  };
-
-  keystonemiddleware = buildPythonPackage rec {
-    name = "keystonemiddleware-${version}";
-    version = "2.4.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/k/keystonemiddleware/${name}.tar.gz";
-      sha256 = "0avrn1f897rnam9wfdanpdwsmn8is3ncfh3nnzq3d1m31b1yqqr6";
-    };
-
-    buildInputs = with self; [
-      fixtures mock pycrypto oslosphinx oslotest stevedore testrepository
-      testresources testtools bandit requests-mock memcached
-      pkgs.openssl
-    ];
-    propagatedBuildInputs = with self; [
-      pbr Babel oslo-config oslo-context oslo-i18n oslo-serialization oslo-utils
-      requests six webob keystoneclient pycadf oslo-messaging
-    ];
-
-    # lots of "unhashable type" errors
-    doCheck = false;
-  };
-
   testscenarios = buildPythonPackage rec {
     name = "testscenarios-${version}";
     version = "0.4";
@@ -23643,55 +16179,11 @@ in {
     };
   };
 
-  testtools = buildPythonPackage rec {
-    name = "testtools-${version}";
-    version = "1.8.0";
+  testtools = callPackage ../development/python-modules/testtools { };
 
-    # Python 2 only judging from SyntaxError
-    disabled = isPy3k;
+  traitlets = callPackage ../development/python-modules/traitlets { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/testtools/${name}.tar.gz";
-      sha256 = "15yxz8d70iy1b1x6gd7spvblq0mjxjardl4vnaqasxafzc069zca";
-    };
-
-    propagatedBuildInputs = with self; [ pbr python_mimeparse extras lxml unittest2 ];
-    buildInputs = with self; [ traceback2 ];
-    patches = [ ../development/python-modules/testtools_support_unittest2.patch ];
-
-    meta = {
-      description = "A set of extensions to the Python standard library's unit testing framework";
-      homepage = http://pypi.python.org/pypi/testtools;
-      license = licenses.mit;
-    };
-  };
-
-  traitlets = buildPythonPackage rec {
-    pname = "traitlets";
-    version = "4.3.2";
-    name = "${pname}-${version}";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835";
-    };
-
-    LC_ALL = "en_US.UTF-8";
-
-    buildInputs = with self; [ pkgs.glibcLocales pytest mock ];
-    propagatedBuildInputs = with self; [ipython_genutils decorator enum34];
-
-    checkPhase = ''
-      py.test $out
-    '';
-
-    meta = {
-      description = "Traitlets Python config system";
-      homepage = http://ipython.org/;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
+  transitions = callPackage ../development/python-modules/transitions { };
 
   python_mimeparse = buildPythonPackage rec {
     name = "python-mimeparse-${version}";
@@ -23713,39 +16205,13 @@ in {
   };
 
 
-  extras = buildPythonPackage rec {
-    name = "extras-${version}";
-    version = "0.0.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/e/extras/extras-${version}.tar.gz";
-      sha256 = "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
-      homepage = https://code.google.com/p/mimeparse/;
-      license = licenses.mit;
-    };
-  };
+  extras = callPackage ../development/python-modules/extras { };
 
-  texttable = self.buildPythonPackage rec {
-    name = "texttable-0.8.4";
+  texttable = callPackage ../development/python-modules/texttable { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/texttable/${name}.tar.gz";
-      sha256 = "0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5";
-    };
+  tiros = callPackage ../development/python-modules/tiros { };
 
-    meta = {
-      description = "A module to generate a formatted text table, using ASCII characters";
-      homepage = http://foutaise.org/code/;
-      license = licenses.lgpl2;
-    };
-  };
+  tifffile = callPackage ../development/python-modules/tifffile { };
 
   # Tkinter/tkinter is part of the Python standard library.
   # The Python interpreters in Nixpkgs come without tkinter by default.
@@ -23764,13 +16230,14 @@ in {
       # Move the tkinter module
       mkdir -p $out/${py.sitePackages}
       mv lib/${py.libPrefix}/lib-dynload/_tkinter* $out/${py.sitePackages}/
+    '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
       # Update the rpath to point to python without x11Support
       old_rpath=$(patchelf --print-rpath $out/${py.sitePackages}/_tkinter*)
       new_rpath=$(sed "s#${py}#${python}#g" <<< "$old_rpath" )
       patchelf --set-rpath $new_rpath $out/${py.sitePackages}/_tkinter*
     '';
 
-    inherit (py) meta;
+    meta = py.meta;
   };
 
   tlslite = buildPythonPackage rec {
@@ -23799,6 +16266,7 @@ in {
     };
 
     propagatedBuildInputs = with self; [ six pillow pymaging_png ];
+    checkInputs = [ self.mock ];
 
     meta = {
       description = "Quick Response code generation for Python";
@@ -23807,67 +16275,18 @@ in {
     };
   };
 
-  tmdb3 = buildPythonPackage rec {
-    name = "tmdb3-${version}";
-    version = "0.6.17";
+  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tmdb3/${name}.zip";
-      sha256 = "64a6c3f1a60a9d8bf18f96a5403f3735b334040345ac3646064931c209720972";
-    };
+  toolz = callPackage ../development/python-modules/toolz { };
 
-    meta = {
-      description = "Python implementation of the v3 API for TheMovieDB.org, allowing access to movie and cast information";
-      homepage = http://pypi.python.org/pypi/tmdb3;
-      license = licenses.bsd3;
-    };
-  };
-
-  toolz = buildPythonPackage rec{
-    name = "toolz-${version}";
-    version = "0.8.2";
-
-    src = pkgs.fetchurl{
-      url = "mirror://pypi/t/toolz/toolz-${version}.tar.gz";
-      sha256 = "0l3czks4xy37i8099waxk2fdz5g0k1dwys2mkhlxc0b0886cj4sa";
-    };
-
-    buildInputs = with self; [ nose ];
-
-    checkPhase = ''
-      # https://github.com/pytoolz/toolz/issues/357
-      rm toolz/tests/test_serialization.py
-      nosetests toolz/tests
-    '';
-
-    meta = {
-      homepage = "http://github.com/pytoolz/toolz/";
-      description = "List processing tools and functional utilities";
-      license = "licenses.bsd3";
-      maintainers = with maintainers; [ fridh ];
-    };
-  };
-
-  tox = buildPythonPackage rec {
-    name = "tox-${version}";
-    version = "2.4.1";
-
-    propagatedBuildInputs = with self; [ py virtualenv pluggy ];
-
-    doCheck = false;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tox/${name}.tar.gz";
-      sha256 = "1nwn4jz8ns53n17bm1xkzlz4zyyxbgjwrcg2cjsn25ab7hd5fwv6";
-    };
-  };
+  tox = callPackage ../development/python-modules/tox { };
 
   tqdm = callPackage ../development/python-modules/tqdm { };
 
   smmap = buildPythonPackage rec {
     name = "smmap-0.9.0";
     disabled = isPyPy;  # This fails the tests if built with pypy
-    meta.maintainers = with maintainers; [ mornfall ];
+    meta.maintainers = with maintainers; [ ];
 
     buildInputs = with self; [ nosexcover ];
 
@@ -23877,36 +16296,13 @@ in {
     };
   };
 
-  trac = buildPythonPackage {
-    name = "trac-1.0.1";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = http://ftp.edgewall.com/pub/trac/Trac-1.0.1.tar.gz;
-      sha256 = "1nqa95fcnkpyq4jk6az7l7sqgm3b3pjq3bx1n7y4v3bad5jr1m4x";
-    };
-
-    # couple of failing tests
-    doCheck = false;
-
-    PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
-
-    propagatedBuildInputs = with self; [ genshi ];
-
-    meta = {
-      description = "Enhanced wiki and issue tracking system for software development projects";
-
-      license = "BSD";
-    };
-  };
-
   traits = buildPythonPackage rec {
     name = "traits-${version}";
-    version = "4.5.0";
+    version = "4.6.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/t/traits/${name}.tar.gz";
-      sha256 = "5293a8786030b0b243e059f52004355b6939d7c0f1be2eb5a605b63cca484c84";
+      sha256 = "0w43qv36wnrimlh0nzzgg81315a18yza3vk494wqxf1l19g390jx";
     };
 
     # Use pytest because its easier to discover tests
@@ -23919,35 +16315,20 @@ in {
     # https://github.com/enthought/traits/issues/187
     # https://github.com/enthought/traits/pull/188
     # Furthermore, some tests fail due to being in a chroot
-    doCheck = false;
+    doCheck = isPy33;
 
     propagatedBuildInputs = with self; [ numpy ];
 
     meta = {
       description = "Explicitly typed attributes for Python";
-      homepage = http://pypi.python.org/pypi/traits;
+      homepage = https://pypi.python.org/pypi/traits;
       license = "BSD";
     };
   };
 
 
-  transaction = buildPythonPackage rec {
-    name = "transaction-${version}";
-    version = "1.4.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/transaction/${name}.tar.gz";
-      sha256 = "1b2304a886a85ad014f73d93346c14350fc214ae22a4f565f42f6761cfb9ecc5";
-    };
-
-    propagatedBuildInputs = with self; [ zope_interface ];
+  transaction = callPackage ../development/python-modules/transaction { };
 
-    meta = {
-      description = "Transaction management";
-      homepage = http://pypi.python.org/pypi/transaction;
-      license = licenses.zpt20;
-    };
-  };
 
   transmissionrpc = buildPythonPackage rec {
     name = "transmissionrpc-${version}";
@@ -23962,7 +16343,7 @@ in {
 
     meta = {
       description = "Python implementation of the Transmission bittorent client RPC protocol";
-      homepage = http://pypi.python.org/pypi/transmissionrpc/;
+      homepage = https://pypi.python.org/pypi/transmissionrpc/;
       license = licenses.mit;
     };
   };
@@ -23983,45 +16364,11 @@ in {
      meta = {
        description = "A tool which computes a dependency graph between active Python eggs";
        homepage = http://thomas-lotze.de/en/software/eggdeps/;
-       license = licenses.zpt20;
+       license = licenses.zpl20;
      };
    };
 
-
-  turses = buildPythonPackage (rec {
-    name = "turses-0.3.1";
-    disabled = isPyPy || isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/turses/${name}.tar.gz";
-      sha256 = "15mkhm3b5ka42h8qph0mhh8izfc1200v7651c62k7ldcs50ib9j6";
-    };
-
-    buildInputs = with self; [ mock pytest coverage tox ];
-    propagatedBuildInputs = with self; [ urwid tweepy future ] ++ optional isPy26 argparse;
-
-    checkPhase = ''
-      TMP_TURSES=`echo turses-$RANDOM`
-      mkdir $TMP_TURSES
-      HOME=$TMP_TURSES py.test tests/
-      rm -rf $TMP_TURSES
-    '';
-
-    patchPhase = ''
-      sed -i -e "s|future==0.14.3|future==${pkgs.lib.getVersion self.future}|" setup.py
-      sed -i -e "s|tweepy==3.3.0|tweepy==${pkgs.lib.getVersion self.tweepy}|" setup.py
-      sed -i -e "s|config.generate_config_file.assert_called_once()|assert config.generate_config_file.call_count == 1|" tests/test_config.py
-      sed -i -e "s|self.observer.update.assert_called_once()|assert self.observer.update.call_count == 1|" tests/test_meta.py
-    '';
-
-    meta = {
-      homepage = https://github.com/alejandrogomez/turses;
-      description = "A Twitter client for the console";
-      license = licenses.gpl3;
-      maintainers = with maintainers; [ garbas ];
-      platforms = platforms.linux;
-    };
-  });
+  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
 
   tweepy = buildPythonPackage (rec {
     name = "tweepy-3.5.0";
@@ -24200,51 +16547,19 @@ in {
     };
   };
 
-  twine = buildPythonPackage rec {
-    name = "twine-${version}";
-    version = "1.8.1";
-
-    src = pkgs.fetchurl {
-      url    = "mirror://pypi/t/twine/${name}.tar.gz";
-      sha256 = "68b663691a947b844f92853c992d42bb68b6333bffc9ab7f661346b001c1da82";
-    };
-
-    propagatedBuildInputs = with self; [ clint pkginfo requests requests_toolbelt ];
-
-    # Requires network
-    doCheck = false;
-
-    meta = {
-      description = "Collection of utilities for interacting with PyPI";
-      homepage = https://github.com/pypa/twine;
-      license = licenses.asl20;
-      maintainer = with maintainers; [ fridh ];
-    };
-  };
+  twine = callPackage ../development/python-modules/twine { };
 
   twisted = callPackage ../development/python-modules/twisted { };
 
-  tzlocal = buildPythonPackage rec {
-    name = "tzlocal-1.2.2";
-
-    propagatedBuildInputs = with self; [ pytz ];
+  txtorcon = callPackage ../development/python-modules/txtorcon { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tzlocal/${name}.tar.gz";
-      sha256 = "0paj7vlsb0np8b5sp4bv64wxv7qk2piyp7xg29pkhdjwsbls9fnb";
-    };
+  tzlocal = callPackage ../development/python-modules/tzlocal { };
 
-     # test fail (timezone test fail)
-     doCheck = false;
+  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
 
-    meta = with pkgs.stdenv.lib; {
-      description = "Tzinfo object for the local timezone";
-      homepage = https://github.com/regebro/tzlocal;
-      license = licenses.cddl;
-    };
-  };
+  ua-parser = callPackage ../development/python-modules/ua-parser { };
 
-  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
+  ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
 
   umalqurra = buildPythonPackage rec {
     name = "umalqurra-${version}";
@@ -24268,23 +16583,7 @@ in {
 
   };
 
-  umemcache = buildPythonPackage rec {
-    name = "umemcache-${version}";
-    version = "1.6.3";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/u/umemcache/${name}.zip";
-      sha256 = "211031a03576b7796bf277dbc9c9e3e754ba066bbb7fb601ab5c6291b8ec1918";
-    };
-
-    meta = {
-      description = "Ultra fast memcache client written in highly optimized C++ with Python bindings";
-      homepage = https://github.com/esnme/ultramemcache;
-      license = licenses.bsdOriginal;
-      broken = true;
-    };
-  };
+  umemcache = callPackage ../development/python-modules/umemcache {};
 
   unicodecsv = buildPythonPackage rec {
     version = "0.14.1";
@@ -24319,7 +16618,7 @@ in {
 
     postPatch = ''
       # argparse is needed for python < 2.7, which we do not support anymore.
-      substituteInPlace setup.py --replace "argparse"
+      substituteInPlace setup.py --replace "argparse" ""
 
       # # fixes a transient error when collecting tests, see https://bugs.launchpad.net/python-neutronclient/+bug/1508547
       sed -i '510i\        return None, False' unittest2/loader.py
@@ -24331,7 +16630,7 @@ in {
 
     meta = {
       description = "A backport of the new features added to the unittest testing framework";
-      homepage = http://pypi.python.org/pypi/unittest2;
+      homepage = https://pypi.python.org/pypi/unittest2;
     };
   };
 
@@ -24415,24 +16714,7 @@ in {
     };
   };
 
-  update_checker = buildPythonPackage rec {
-    name = "update_checker-0.11";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/u/update_checker/${name}.tar.gz";
-      sha256 = "681bc7c26cffd1564eb6f0f3170d975a31c2a9f2224a32f80fe954232b86f173";
-    };
-
-    propagatedBuildInputs = with self; [ requests ];
-
-    doCheck = false;
-
-    meta = {
-      description = "A python module that will check for package updates";
-      homepage = https://github.com/bboe/update_checker;
-      license = licenses.bsd2;
-    };
-  };
+  update_checker = callPackage ../development/python-modules/update_checker {};
 
   uritemplate = buildPythonPackage rec {
     name = "uritemplate-${version}";
@@ -24473,48 +16755,9 @@ in {
     };
   };
 
-  urlgrabber =  buildPythonPackage rec {
-    name = "urlgrabber-3.9.1";
-    disabled = isPy3k;
+  urlgrabber = callPackage ../development/python-modules/urlgrabber {};
 
-    src = pkgs.fetchurl {
-      url = "http://urlgrabber.baseurl.org/download/${name}.tar.gz";
-      sha256 = "4437076c8708e5754ea04540e46c7f4f233734ee3590bb8a96389264fb0650d0";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ pycurl ];
-
-    meta = {
-      homepage = "urlgrabber.baseurl.org";
-      license = licenses.lgpl2Plus;
-      description = "Python module for downloading files";
-      maintainers = with maintainers; [ qknight ];
-    };
-  };
-
-
-  urwid = buildPythonPackage (rec {
-    name = "urwid-1.3.1";
-
-    # multiple:  NameError: name 'evl' is not defined
-    doCheck = false;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/u/urwid/${name}.tar.gz";
-      sha256 = "18cnd1wdjcas08x5qwa5ayw6jsfcn33w4d9f7q3s29fy6qzc1kng";
-    };
-
-    meta = {
-      description = "A full-featured console (xterm et al.) user interface library";
-      homepage = http://excess.org/urwid;
-      repositories.git = git://github.com/wardi/urwid.git;
-      license = licenses.lgpl21;
-      maintainers = with maintainers; [ garbas ];
-    };
-  });
+  urwid = callPackage ../development/python-modules/urwid {};
 
   urwidtrees = buildPythonPackage rec {
     name = "urwidtrees-${rev}";
@@ -24532,10 +16775,12 @@ in {
     meta = {
       description = "Tree widgets for urwid";
       license = licenses.gpl3;
-      maintainers = with maintainers; [ profpatsch ];
+      maintainers = with maintainers; [ ];
     };
   };
 
+  user-agents = callPackage ../development/python-modules/user-agents { };
+
   pyuv = buildPythonPackage rec {
     name = "pyuv-1.2.0";
     disabled = isPyPy;  # see https://github.com/saghul/pyuv/issues/49
@@ -24557,49 +16802,9 @@ in {
     };
   };
 
-  virtkey = buildPythonPackage rec {
-    name = "virtkey-${version}";
-    majorVersion = "0.63";
-    version = "${majorVersion}.0";
-
-    src = pkgs.fetchurl {
-      url = "https://launchpad.net/virtkey/${majorVersion}/${version}/+download/virtkey-${version}.tar.gz";
-      sha256 = "0hd99hrxn6bh3rxcrdnad5cqjsphrn1s6fzx91q07d44k6cg6qcr";
-    };
-
-    nativeBuildInputs = [ pkgs.pkgconfig ];
-
-    buildInputs =
-         [ pkgs.gtk2 ]
-      ++ (with pkgs.xorg; [ libX11 libXtst libXi libxkbfile xextproto xproto ]);
-
-    meta = {
-      description = "Extension to emulate keypresses and to get the layout information from the X server";
-      homepage = "https://launchpad.net/virtkey";
-      license = licenses.gpl3;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
-
-
-
-  virtual-display = buildPythonPackage rec {
-    name = "PyVirtualDisplay-0.1.5";
+  virtkey = callPackage ../development/python-modules/virtkey { };
 
-    propagatedBuildInputs = with self; [ EasyProcess ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/P/PyVirtualDisplay/${name}.tar.gz";
-      sha256 = "aa6aef08995e14c20cc670d933bfa6e70d736d0b555af309b2e989e2faa9ee53";
-    };
-
-    meta = {
-      description = "Python wrapper for Xvfb, Xephyr and Xvnc";
-      homepage = "https://github.com/ponty/pyvirtualdisplay";
-      license = licenses.bsdOriginal;
-      maintainers = with maintainers; [ layus ];
-    };
-  };
+  virtual-display = callPackage ../development/python-modules/virtual-display { };
 
   virtualenv = callPackage ../development/python-modules/virtualenv { };
 
@@ -24739,11 +16944,11 @@ EOF
   };
 
   waitress = buildPythonPackage rec {
-    name = "waitress-0.8.9";
+    name = "waitress-1.0.2";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/w/waitress/${name}.tar.gz";
-      sha256 = "826527dc9d334ed4ed76cdae672fdcbbccf614186657db71679ab58df869458a";
+      sha256 = "0pw6yyxi348r2xpq3ykqnf7gwi881azv2422d2ixb0xi5jws2ky7";
     };
 
     doCheck = false;
@@ -24754,51 +16959,11 @@ EOF
     };
   };
 
-  webassets = buildPythonPackage rec {
-    name = "webassets-${version}";
-    version = "0.12.1";
+  waitress-django = callPackage ../development/python-modules/waitress-django { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/w/webassets/${name}.tar.gz";
-      sha256 = "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7";
-    };
+  webassets = callPackage ../development/python-modules/webassets { };
 
-    buildInputs = with self; [ nose jinja2 mock pytest ];
-    propagatedBuildInputs = with self; [ pyyaml ];
-
-    doCheck = false;
-
-    checkPhase = ''
-      py.test
-    '';
-
-    meta = {
-      description = "Media asset management for Python, with glue code for various web frameworks";
-      homepage = "http://github.com/miracle2k/webassets/";
-      license = licenses.bsd2;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
-
-  webcolors = buildPythonPackage rec {
-    name = "webcolors-1.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/w/webcolors/${name}.tar.gz";
-      sha256 = "304fc95dab2848c7bf64f378356766e692c2f8b4a8b15fa3509544e6412936e8";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "Library for working with color names/values defined by the HTML and CSS specifications";
-      homepage = https://bitbucket.org/ubernostrum/webcolors/overview/;
-      license = licenses.bsd3;
-      platforms = platforms.unix;
-    };
-  };
+  webcolors = callPackage ../development/python-modules/webcolors { };
 
   webencodings = callPackage ../development/python-modules/webencodings { };
 
@@ -24830,7 +16995,6 @@ EOF
       '';
       homepage = https://github.com/jquast/wcwidth;
       license = licenses.mit;
-      maintainers = with maintainers; [ nckx ];
     };
   };
 
@@ -24857,15 +17021,16 @@ EOF
   };
 
   webob = buildPythonPackage rec {
-    version = "1.4.1";
-    name = "webob-${version}";
+    pname = "WebOb";
+    version = "1.7.3";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/W/WebOb/WebOb-${version}.tar.gz";
-      sha256 = "1nz9m6ijf46wfn33zfza13c0k1n4kjnmn3icdlrlgz5yj21vky0j";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "10vjp2rvqiyvw157fk3sy7yds1gknzw97z4gk0qv1raskx5s2p76";
     };
 
-    propagatedBuildInputs = with self; [ nose ];
+    propagatedBuildInputs = with self; [ nose pytest ];
 
     meta = {
       description = "WSGI request and response object";
@@ -24931,76 +17096,16 @@ EOF
     };
   };
 
-
-  werkzeug = buildPythonPackage rec {
-    name = "Werkzeug-0.11.10";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/W/Werkzeug/${name}.tar.gz";
-      sha256 = "1vpf98k4jp4yhbv2jbyq8dj5fdasrd26rkq34pacs5n7mkxxlr6c";
-    };
-
-    LC_ALL = "en_US.UTF-8";
-
-    propagatedBuildInputs = with self; [ itsdangerous ];
-    buildInputs = with self; [ pytest requests pkgs.glibcLocales ];
-
-
-
-    meta = {
-      homepage = http://werkzeug.pocoo.org/;
-      description = "A WSGI utility library for Python";
-      license = licenses.bsd3;
-    };
-  };
+  werkzeug = callPackage ../development/python-modules/werkzeug { };
 
   wheel = callPackage ../development/python-modules/wheel { };
 
   widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
 
-  willie = buildPythonPackage rec {
-    name = "willie-${version}";
-    version = "5.5.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/w/willie/${name}.tar.gz";
-      sha256 = "e03dd26ea694b877a2b3b7b4dcca8e79420e7f346abab34292bff43d992a8cc5";
-    };
-
-    buildInputs = with self; [ pytest ];
-    propagatedBuildInputs = with self; [ feedparser pytz lxml praw pyenchant pygeoip backports_ssl_match_hostname ];
-    checkPhase = ''
-      py.test test
-    '';
-
-    meta = {
-      description = "A simple, lightweight, open source, easy-to-use IRC utility bot, written in Python";
-      homepage = http://willie.dftba.net/;
-      license = licenses.efl20;
-    };
-  };
-
-  wokkel = buildPythonPackage (rec {
-    url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
-    name = nameFromURL url ".tar";
-    src = pkgs.fetchurl {
-      inherit url;
-      sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
-    };
-
-    disabled = isPy3k;
-
-    propagatedBuildInputs = with self; [twisted dateutil];
-
-    meta = {
-      description = "Some (mainly XMPP-related) additions to twisted";
-      homepage = "http://wokkel.ik.nu/";
-      license = licenses.mit;
-    };
-  });
-
   magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
 
+  magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
+
   wsgiproxy2 = buildPythonPackage rec {
     name = "WSGIProxy2-0.4.2";
 
@@ -25039,23 +17144,6 @@ EOF
     propagatedBuildInputs = with self; [ eventlib application ];
   };
 
-  xe = buildPythonPackage rec {
-    url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
-    name = stdenv.lib.nameFromURL url ".tar";
-    src = pkgs.fetchurl {
-      inherit url;
-      sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      homepage = "http://home.blarg.net/~steveha/xe.html";
-      description = "XML elements";
-    };
-  };
-
   xlib = buildPythonPackage (rec {
     name = "xlib-${version}";
     version = "0.17";
@@ -25081,22 +17169,7 @@ EOF
     };
   });
 
-  xmltodict = buildPythonPackage (rec {
-    name = "xmltodict-0.9.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/x/xmltodict/${name}.tar.gz";
-      sha256 = "00crqnjh1kbvcgfnn3b8c7vq30lf4ykkxp1xf3pf7mswr5l1wp97";
-    };
-
-    buildInputs = with self; [ coverage nose ];
-
-    meta = {
-      description = "Makes working with XML feel like you are working with JSON";
-      homepage = https://github.com/martinblech/xmltodict;
-      license = licenses.mit;
-    };
-  });
+  xmltodict = callPackage ../development/python-modules/xmltodict { };
 
   xarray = callPackage ../development/python-modules/xarray { };
 
@@ -25106,6 +17179,7 @@ EOF
 
   youtube-dl-light = callPackage ../tools/misc/youtube-dl {
     ffmpegSupport = false;
+    phantomjsSupport = false;
   };
 
   zbase32 = buildPythonPackage (rec {
@@ -25123,7 +17197,7 @@ EOF
 
     meta = {
       description = "zbase32, a base32 encoder/decoder";
-      homepage = http://pypi.python.org/pypi/zbase32;
+      homepage = https://pypi.python.org/pypi/zbase32;
       license = "BSD";
     };
   });
@@ -25132,23 +17206,7 @@ EOF
   zconfig = callPackage ../development/python-modules/zconfig { };
 
 
-  zc_lockfile = buildPythonPackage rec {
-    name = "zc.lockfile-${version}";
-    version = "1.0.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zc.lockfile/${name}.tar.gz";
-      sha256 = "96bb2aa0438f3e29a31e4702316f832ec1482837daef729a92e28c202d8fba5c";
-    };
-
-    meta = {
-      description = "Inter-process locks";
-      homepage =  http://www.python.org/pypi/zc.lockfile;
-      license = licenses.zpt20;
-      maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
+  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
 
   zdaemon = buildPythonPackage rec {
     name = "zdaemon-${version}";
@@ -25166,8 +17224,8 @@ EOF
 
     meta = {
       description = "A daemon process control library and tools for Unix-based systems";
-      homepage = http://pypi.python.org/pypi/zdaemon;
-      license = licenses.zpt20;
+      homepage = https://pypi.python.org/pypi/zdaemon;
+      license = licenses.zpl20;
       maintainers = with maintainers; [ goibhniu ];
     };
   };
@@ -25203,128 +17261,19 @@ EOF
     };
   });
 
-  zodb3 = buildPythonPackage rec {
-    name = "zodb3-${version}";
-    version = "3.11.0";
-    disabled = isPyPy;
+  zipstream = callPackage ../development/python-modules/zipstream { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/Z/ZODB3/ZODB3-${version}.tar.gz";
-      sha256 = "b5767028e732c619f45c27189dd001e14ec155d7984807991fce751b35b4fcb0";
-    };
+  zodb = callPackage ../development/python-modules/zodb {};
 
-    propagatedBuildInputs = with self; [ manuel transaction zc_lockfile zconfig zdaemon zope_interface zope_event BTrees persistent ZEO ];
-
-    meta = {
-      description = "An object-oriented database for Python";
-      homepage = http://pypi.python.org/pypi/ZODB3;
-      license = licenses.zpt20;
-      maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
-  zodb = buildPythonPackage rec {
-    name = "zodb-${version}";
-    disabled = isPyPy;
-
-    version = "4.0.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/Z/ZODB/ZODB-${version}.tar.gz";
-      sha256 = "c5d8ffcca37ab4d0a9bfffead6228d58c00cf1c78135abc98a8dbf05b8c8fb58";
-    };
-
-    propagatedBuildInputs = with self; [ manuel transaction zc_lockfile zconfig zdaemon zope_interface persistent BTrees ]
-      ++ optionals isPy3k [ zodbpickle ];
-
-    preCheck = if isPy3k then ''
-      # test failure on py3.4
-      rm src/ZODB/tests/testDB.py
-    '' else "";
-
-    meta = {
-      description = "An object-oriented database for Python";
-      homepage = http://pypi.python.org/pypi/ZODB;
-      license = licenses.zpt20;
-      maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
-  zodbpickle = self.buildPythonPackage rec {
-    name = "zodbpickle-0.5.2";
-    disabled = isPyPy; # https://github.com/zopefoundation/zodbpickle/issues/10
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zodbpickle/${name}.tar.gz";
-      sha256 = "f65c00fbc13523fced63de6cc11747aa1a6343aeb2895c89838ed55a5ab12cca";
-    };
-
-    # fails..
-    doCheck = false;
-
-    meta = {
-      homepage = http://pypi.python.org/pypi/zodbpickle;
-    };
-  };
+  zodbpickle = callPackage ../development/python-modules/zodbpickle {};
 
   BTrees = callPackage ../development/python-modules/btrees {};
 
-  persistent = self.buildPythonPackage rec {
-    name = "persistent-4.0.8";
-
-    propagatedBuildInputs = with self; [ zope_interface ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/persistent/${name}.tar.gz";
-      sha256 = "678902217c5370d33694c6dc95b89e1e6284b4dc41f04c056326194a3f6f3e22";
-    };
-
-    meta = {
-      description = "Automatic persistence for Python objects";
-      homepage = http://www.zope.org/Products/ZODB;
-    };
-  };
-
-  xdot = buildPythonPackage rec {
-    name = "xdot-0.7";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/x/xdot/xdot-0.7.tar.gz";
-      sha256 = "1q0f3pskb09saw1qkd2s6vmk80rq5zjhq8l93dfr2x6r04r0q46j";
-    };
+  persistent = callPackage ../development/python-modules/persistent {};
 
-    nativeBuildInputs = with pkgs; [ wrapGAppsHook ];
-    propagatedBuildInputs = with self; [ pkgs.gobjectIntrospection pygobject3 pkgs.graphviz pkgs.gnome3.gtk ];
-
-    meta = {
-      description = "xdot.py is an interactive viewer for graphs written in Graphviz's dot";
-      homepage = https://github.com/jrfonseca/xdot.py;
-      license = licenses.lgpl3Plus;
-    };
-  };
+  xdot = callPackage ../development/python-modules/xdot { };
 
-  you-get = buildPythonApplication rec {
-    version = "0.4.390";
-    name = "you-get-${version}";
-    disabled = !isPy3k;
-
-    # Tests aren't packaged, but they all hit the real network so
-    # probably aren't suitable for a build environment anyway.
-    doCheck = false;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/y/you-get/${name}.tar.gz";
-      sha256 = "17hs0g9yvgvkmr7p1cz39mbbvb40q65qkc31j3ixc2f873gahagw";
-    };
-
-    meta = {
-      description = "A tiny command line utility to download media contents from the web";
-      homepage = https://you-get.org;
-      license = licenses.mit;
-      maintainers = with maintainers; [ ryneeverett ];
-      platforms = platforms.all;
-    };
-  };
+  zetup = callPackage ../development/python-modules/zetup { };
 
   zope_broken = buildPythonPackage rec {
     name = "zope.broken-3.6.0";
@@ -25342,40 +17291,6 @@ EOF
   };
 
 
-  zope_browser = buildPythonPackage rec {
-    name = "zope.browser-2.0.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.browser/${name}.zip";
-      sha256 = "0f9r5rn9lzgi4hvkhgb6vgw8kpz9sv16jsfb9ws4am8gbqcgv2iy";
-    };
-
-    propagatedBuildInputs = with self; [ zope_interface ];
-
-    meta = {
-        maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
-  zope_browserresource = buildPythonPackage rec {
-    name = "zope.browserresource-4.0.1";
-
-    propagatedBuildInputs = with self; [
-      zope_component zope_configuration zope_contenttype zope_i18n
-      zope_interface zope_location zope_publisher zope_schema zope_traversing
-    ];
-
-    # all tests fail
-    doCheck = false;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.browserresource/zope.browserresource-4.0.1.zip";
-      sha256 = "d580184562e7098950ae377b5b37fbb88becdaa2256ac2a6760b69a3e86a99b2";
-    };
-  };
-
-
-
   zope_component = buildPythonPackage rec {
     name = "zope.component-4.2.1";
 
@@ -25418,29 +17333,6 @@ EOF
   };
 
 
-  zope_container = buildPythonPackage rec {
-    name = "zope.container-4.0.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.container/${name}.tar.gz";
-      sha256 = "5c04e61b52fd04d8b7103476532f557c2278c86281aae30d44f88a5fbe888940";
-    };
-
-    # a test is failing
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [
-      zodb3 zope_broken zope_dottedname zope_publisher
-      zope_filerepresentation zope_lifecycleevent zope_size
-      zope_traversing
-    ];
-
-    meta = {
-        maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
-
   zope_contenttype = buildPythonPackage rec {
     name = "zope.contenttype-4.0.1";
 
@@ -25479,8 +17371,8 @@ EOF
 
     meta = {
       description = "An event publishing system";
-      homepage = http://pypi.python.org/pypi/zope.event;
-      license = licenses.zpt20;
+      homepage = https://pypi.python.org/pypi/zope.event;
+      license = licenses.zpl20;
       maintainers = with maintainers; [ goibhniu ];
     };
   };
@@ -25502,8 +17394,8 @@ EOF
 
      meta = {
        description = "Exception interfaces and implementations";
-       homepage = http://pypi.python.org/pypi/zope.exceptions;
-       license = licenses.zpt20;
+       homepage = https://pypi.python.org/pypi/zope.exceptions;
+       license = licenses.zpl20;
        maintainers = with maintainers; [ goibhniu ];
      };
    };
@@ -25613,24 +17505,6 @@ EOF
   };
 
 
-  zope_publisher = buildPythonPackage rec {
-    name = "zope.publisher-3.12.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.publisher/${name}.tar.gz";
-      sha256 = "d994d8eddfba504841492115032a9a7d86b1713ebc96d0ca16fbc6ee93168ba4";
-    };
-
-    propagatedBuildInputs = with self; [
-      zope_browser zope_contenttype zope_i18n zope_security
-    ];
-
-    meta = {
-        maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
-
   zope_schema = buildPythonPackage rec {
     name = "zope.schema-4.4.2";
 
@@ -25652,25 +17526,6 @@ EOF
   };
 
 
-  zope_security = buildPythonPackage rec {
-    name = "zope.security-4.0.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.security/${name}.tar.gz";
-      sha256 = "8da30b03d5491464d59397e03b88192f31f587325ee6c6eb1ca596a1e487e2ec";
-    };
-
-    propagatedBuildInputs = with self; [
-      zope_component zope_configuration zope_i18nmessageid zope_schema
-      zope_proxy zope_testrunner
-    ];
-
-    meta = {
-      maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
-
   zope_size = buildPythonPackage rec {
     name = "zope.size-3.5.0";
 
@@ -25687,26 +17542,6 @@ EOF
   };
 
 
-  zope_sqlalchemy = buildPythonPackage rec {
-    name = "zope.sqlalchemy-0.7.6";
-
-    doCheck = !isPyPy; # https://github.com/zopefoundation/zope.sqlalchemy/issues/12
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.sqlalchemy/${name}.zip";
-      sha256 = "0vxhpdvzihsmg63aralmc7hx62lzrsnlxvskvlcr4mkwzwb22haj";
-    };
-
-    buildInputs = with self; [ zope_testing zope_interface ];
-    propagatedBuildInputs = with self; [ sqlalchemy transaction ];
-
-    meta = {
-      maintainers = with maintainers; [ garbas domenkozar ];
-      platforms = platforms.all;
-    };
-  };
-
-
   zope_testing = buildPythonPackage rec {
     name = "zope.testing-${version}";
     version = "4.6.1";
@@ -25723,7 +17558,7 @@ EOF
     meta = {
       description = "Zope testing helpers";
       homepage =  http://pypi.python.org/pypi/zope.testing;
-      license = licenses.zpt20;
+      license = licenses.zpl20;
       maintainers = with maintainers; [ goibhniu ];
     };
   };
@@ -25731,24 +17566,6 @@ EOF
 
   zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
 
-  zope_traversing = buildPythonPackage rec {
-    name = "zope.traversing-4.0.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/z/zope.traversing/${name}.zip";
-      sha256 = "79d38b92ec1d9a2467966ee954b792d83ac66f22e45e928113d4b5dc1f5e74eb";
-    };
-
-    propagatedBuildInputs = with self; [ zope_location zope_security zope_publisher transaction zope_tales ];
-
-    # circular dependency on zope_browserresource
-    doCheck = false;
-
-    meta = {
-        maintainers = with maintainers; [ goibhniu ];
-    };
-  };
-
 
   zope_interface = callPackage ../development/python-modules/zope_interface { };
 
@@ -25766,7 +17583,7 @@ EOF
     propagatedBuildInputs = with self; [ hglib ];
 
     meta = {
-      homepage = http://pypi.python.org/pypi/hgsvn;
+      homepage = https://pypi.python.org/pypi/hgsvn;
     };
   };
 
@@ -25814,23 +17631,7 @@ EOF
     };
   };
 
-  tornado = buildPythonPackage rec {
-    name = "tornado-${version}";
-    version = "4.4.2";
-
-    propagatedBuildInputs = with self; [ backports_abc backports_ssl_match_hostname certifi singledispatch ];
-
-    # We specify the name of the test files to prevent
-    # https://github.com/NixOS/nixpkgs/issues/14634
-    checkPhase = ''
-      ${python.interpreter} -m unittest discover *_test.py
-    '';
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tornado/${name}.tar.gz";
-      sha256 = "1k7d90afm5pivam90a37nqiz9wlmakvnsfymp3p43kcqz29gk618";
-    };
-  };
+  tornado = callPackage ../development/python-modules/tornado { };
 
   tokenlib = buildPythonPackage rec {
     name = "tokenlib-${version}";
@@ -25844,58 +17645,7 @@ EOF
     propagatedBuildInputs = with self; [ requests webob ];
   };
 
-  tunigo = buildPythonPackage rec {
-    name = "tunigo-${version}";
-    version = "1.0.0";
-    propagatedBuildInputs = with self; [ requests ];
-
-    src = pkgs.fetchFromGitHub {
-      owner = "trygveaa";
-      repo = "python-tunigo";
-      rev = "v${version}";
-      sha256 = "07q9girrjjffzkn8xj4l3ynf9m4psi809zf6f81f54jdb330p2fs";
-    };
-
-    buildInputs = with self; [ mock nose ];
-
-    meta = {
-      description = "Python API for the browse feature of Spotify";
-      homepage = https://github.com/trygveaa/python-tunigo;
-      license = licenses.asl20;
-    };
-  };
-
-  screenkey = buildPythonPackage rec {
-    version = "0.2-b3634a2c6eb6d6936c3b2c1ef5078bf3a84c40c6";
-    name = "screenkey-${version}";
-
-    propagatedBuildInputs = with self; [ pygtk distutils_extra xlib pkgs.xorg.xmodmap ];
-
-    preConfigure = ''
-      substituteInPlace setup.py --replace "/usr/share" "./share"
-
-      # disable the feature that binds a shortcut to turning on/off
-      # screenkey. This is because keybinder is not packages in Nix as
-      # of today.
-      substituteInPlace Screenkey/screenkey.py \
-        --replace "import keybinder" "" \
-        --replace "        keybinder.bind(self.options['hotkey'], self.hotkey_cb, show_item)" ""
-    '';
-
-    src = pkgs.fetchgit {
-        url = https://github.com/scs3jb/screenkey.git;
-        rev = "b3634a2c6eb6d6936c3b2c1ef5078bf3a84c40c6";
-        sha256 = "1535mpm5x6v85d4ghxhdiianhjrsz280dwvs61ss0yyjx4kivx3s";
-    };
-
-    meta = {
-      homepage = https://github.com/scs3jb/screenkey;
-      description = "A screencast tool to show your keys";
-      license = licenses.gpl3Plus;
-      maintainers = with maintainers; [ ];
-      platforms = platforms.linux;
-    };
-  };
+  tunigo = callPackage ../development/python-modules/tunigo { };
 
   tarman = buildPythonPackage rec {
     version = "0.1.3";
@@ -25933,11 +17683,11 @@ EOF
 
   libarchive-c = buildPythonPackage rec {
     name = "libarchive-c-${version}";
-    version = "2.5";
+    version = "2.7";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/l/libarchive-c/${name}.tar.gz";
-      sha256 = "98660daa2501d2da51ab6f39893dc24e88916e72b2d80c205641faa5bce66859";
+      sha256 = "011bfsmqpcwd6920kckllh7zhw2y4rrasgmddb7wjzn2hg1xpsjn";
     };
 
     LC_ALL="en_US.UTF-8";
@@ -25947,7 +17697,7 @@ EOF
         "find_library('archive')" "'${pkgs.libarchive.lib}/lib/libarchive.so'"
     '';
     checkPhase = ''
-      py.test tests -k 'not test_check_archiveentry_with_unicode_entries_and_name_zip'
+      py.test tests -k 'not test_check_archiveentry_with_unicode_entries_and_name_zip and not test_check_archiveentry_using_python_testtar'
     '';
 
     buildInputs = with self; [ pytest pkgs.glibcLocales ];
@@ -25957,9 +17707,7 @@ EOF
     inherit (pkgs) libasyncns pkgconfig;
   };
 
-  libarcus = callPackage ../development/python-modules/libarcus {
-    protobuf = self.protobuf3_0;
-  };
+  libarcus = callPackage ../development/python-modules/libarcus { };
 
   pybrowserid = buildPythonPackage rec {
     name = "PyBrowserID-${version}";
@@ -25996,53 +17744,11 @@ EOF
     # Disable broken test
     # https://github.com/zeromq/pyzmq/issues/799
     checkPhase = ''
-      py.test $out/${python.sitePackages}/zmq/ -k "not test_large_send"
+      py.test $out/${python.sitePackages}/zmq/ -k "not test_large_send and not test_recv_json_cancelled"
     '';
   };
 
-  tokenserver = buildPythonPackage rec {
-    name = "tokenserver-${version}";
-    version = "1.2.11";
-
-    src = pkgs.fetchgit {
-      url = https://github.com/mozilla-services/tokenserver.git;
-      rev = "refs/tags/${version}";
-      sha256 = "1cvkvxcday1qc3zyarasj3l7322w8afhrcxcsvb5wac1ryh1w6y2";
-    };
-
-    doCheck = false;
-    buildInputs = [ self.testfixtures ];
-    propagatedBuildInputs = with self; [ cornice mozsvc pybrowserid tokenlib ];
-
-    meta = {
-      platforms = platforms.all;
-    };
-  };
-
-  testfixtures = buildPythonPackage rec {
-    name = "testfixtures-${version}";
-    version = "4.5.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/testfixtures/testfixtures-${version}.tar.gz";
-      sha256 = "0my8zq9d27mc7j78pz9971cn5wz6zi4vxlqa50szr2vq9j2xxkll";
-    };
-
-    buildInputs = with self; [ nose mock manuel ];
-
-    checkPhase = ''
-      nosetests -v
-    '';
-
-    # Test suite seems broken
-    # TypeError: TestSuite() missing 1 required positional argument: 'm'
-    # Haven't checked with newer version
-    doCheck = false;
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/Simplistix/testfixtures";
-    };
-  };
+  testfixtures = callPackage ../development/python-modules/testfixtures {};
 
   tissue = buildPythonPackage rec {
     name = "tissue-0.9.2";
@@ -26060,6 +17766,7 @@ EOF
     };
   };
 
+  titlecase = callPackage ../development/python-modules/titlecase { };
 
   tracing = buildPythonPackage rec {
     name = "tracing-${version}";
@@ -26142,22 +17849,7 @@ EOF
   };
 
 
-  websocket_client = buildPythonPackage rec {
-    name = "websocket_client-0.40.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/w/websocket-client/${name}.tar.gz";
-      sha256 = "1yz67wdjijrvwpx0a0f6wdfy8ajsvr9xbj5514ld452fqnh19b20";
-    };
-
-    propagatedBuildInputs = with self; [ six backports_ssl_match_hostname unittest2 argparse ];
-
-    meta = {
-      homepage = https://github.com/liris/websocket-client;
-      description = "Websocket client for python";
-      license = licenses.lgpl2;
-    };
-  };
+  websocket_client = callPackage ../development/python-modules/websockets_client { };
 
 
   webhelpers = buildPythonPackage rec {
@@ -26205,7 +17897,7 @@ EOF
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/w/whisper/${name}.tar.gz";
-      sha256 = "1chkphxwnwvy2cs7jc2h2i0lqqvi9jx6vqj3ly88lwk7m35r4ss2";
+      sha256 = "1v1bi3fl1i6p4z4ki692bykrkw6907dn3mfq0151f70lvi3zpns3";
     };
 
     # error: invalid command 'test'
@@ -26241,13 +17933,13 @@ EOF
     '';
 
     buildInputs = with self; [ nose ];
-    propagatedBuildInputs = with self; [ noise numpy pyplatec protobuf3_2 purepng argparse h5py gdal ];
+    propagatedBuildInputs = with self; [ noise numpy pyplatec protobuf purepng argparse h5py gdal ];
 
     prePatch = ''
       substituteInPlace setup.py \
         --replace pypng>=0.0.18 purepng \
         --replace 'numpy>=1.9.2, <= 1.10.0.post2' 'numpy' \
-        --replace 'argparse==1.2.1' 'argparse' \
+        --replace 'argparse==1.2.1' "" \
         --replace 'protobuf==3.0.0a3' 'protobuf' \
         --replace 'noise==1.2.2' 'noise' \
         --replace 'PyPlatec==1.4.0' 'PyPlatec' \
@@ -26270,9 +17962,11 @@ EOF
     name = "carbon-${version}";
     version = graphiteVersion;
 
+    disabled = isPy3k;
+
     src = pkgs.fetchurl {
       url = "mirror://pypi/c/carbon/${name}.tar.gz";
-      sha256 = "f01db6d37726c6fc0a8aaa66a7bf14436b0dd0d62ef3c20ecb31605a4d365d2e";
+      sha256 = "142smpmgbnjinvfb6s4ijazish4vfgzyd8zcmdkh55y051fkixkn";
     };
 
     propagatedBuildInputs = with self; [ whisper txamqp zope_interface twisted ];
@@ -26281,6 +17975,7 @@ EOF
       homepage = http://graphite.wikidot.com/;
       description = "Backend data caching and persistence daemon for Graphite";
       maintainers = with maintainers; [ rickynils offline ];
+      license = licenses.asl20;
     };
   };
 
@@ -26296,107 +17991,20 @@ EOF
     };
 
     meta = {
-      homepage = http://pypi.python.org/pypi/ujson;
+      homepage = https://pypi.python.org/pypi/ujson;
       description = "Ultra fast JSON encoder and decoder for Python";
       license = licenses.bsd3;
     };
   };
 
 
-  unidecode = buildPythonPackage rec {
-    name = "Unidecode-0.04.18";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/U/Unidecode/${name}.tar.gz";
-      sha256 = "12hhblqy1ajvidm38im4171x4arg83pfmziyn53nizp29p3m14gi";
-    };
-
-    LC_ALL="en_US.UTF-8";
-
-    buildInputs = [ pkgs.glibcLocales ];
-
-    meta = {
-      homepage = http://pypi.python.org/pypi/Unidecode/;
-      description = "ASCII transliterations of Unicode text";
-      license = licenses.gpl2;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  };
-
-
-  pyusb = buildPythonPackage rec {
-    name = "pyusb-1.0.0";
-
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/8a/19/66fb48a4905e472f5dfeda3a1bafac369fbf6d6fc5cf55b780864962652d/PyUSB-1.0.0.tar.gz";
-      sha256 = "0s2k4z06fapd5vp1gnrlf8a9sjpc03p9974lzw5k6ky39akzyd2v";
-    };
-
-    # Fix the USB backend library lookup
-    postPatch = ''
-      libusb=${pkgs.libusb1.out}/lib/libusb-1.0.so
-      test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
-      sed -i -e "s|find_library=None|find_library=lambda _:\"$libusb\"|" usb/backend/libusb1.py
-    '';
-
-    propagatedBuildInputs = [ pkgs.libusb ];
-
-    # No tests included
-    doCheck = false;
-
-    meta = {
-      description = "Python USB access module (wraps libusb 1.0)";  # can use other backends
-      homepage = http://pyusb.sourceforge.net/;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
-
-
-  BlinkStick = buildPythonPackage rec {
-    name = "BlinkStick-${version}";
-    version = "1.1.8";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/B/BlinkStick/${name}.tar.gz";
-      sha256 = "3edf4b83a3fa1a7bd953b452b76542d54285ff6f1145b6e19f9b5438120fa408";
-    };
-
-    # Requires pyusb 1.0.0b1.
-    # Likely current pyusb will work but we need to patch the hard requirement then.
-    broken = true;
+  unidecode = callPackage ../development/python-modules/unidecode {};
 
-    patchPhase = "substituteInPlace setup.py --replace pyusb==1.0.0b1 pyusb==1.0.0";
+  pyusb = callPackage ../development/python-modules/pyusb { libusb1 = pkgs.libusb1; };
 
-    propagatedBuildInputs = with self; [ pyusb ];
+  BlinkStick = callPackage ../development/python-modules/blinkstick { };
 
-    meta = {
-      description = "Python package to control BlinkStick USB devices";
-      homepage = http://pypi.python.org/pypi/BlinkStick/;
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ np ];
-    };
-  };
-
-
-  usbtmc = buildPythonPackage rec {
-    name = "usbtmc-${version}";
-    version = "0.6";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/python-ivi/python-usbtmc/archive/v${version}.tar.gz";
-      sha256 = "1wnw6ndc3s1i8zpbikz5zc40ijvpraqdb0xn8zmqlyn95xxfizw2";
-    };
-
-    propagatedBuildInputs = with self; [ pyusb ];
-
-    meta = {
-      description = "Python implementation of the USBTMC instrument control protocol";
-      homepage = http://alexforencich.com/wiki/en/python-usbtmc/start;
-      license = licenses.mit;
-      maintainers = with maintainers; [ bjornfor ];
-    };
-  };
+  usbtmc = callPackage ../development/python-modules/usbtmc {};
 
   txgithub = buildPythonPackage rec {
     name = "${pname}-${version}";
@@ -26498,17 +18106,24 @@ EOF
     };
   };
 
-  graphite_web = buildPythonPackage rec {
+  graphite_web = if
+          self.django != self.django_1_8
+       || self.django_tagging != self.django_tagging_0_4_3
+  then throw "graphite_web should be build with django_1_8 and django_tagging_0_4_3"
+  else buildPythonPackage rec {
     name = "graphite-web-${version}";
     disabled = isPy3k;
     version = graphiteVersion;
 
     src = pkgs.fetchurl rec {
       url = "mirror://pypi/g/graphite-web/${name}.tar.gz";
-      sha256 = "1c0kclbv8shv9nvjx19wqm4asia58s3qmd9fapchc6y9fjpjax6q";
+      sha256 = "0q8bwlj75jqyzmazfsi5sa26xl58ssa8wdxm2l4j0jqyn8xpfnmc";
     };
 
-    propagatedBuildInputs = with self; [ django django_tagging_0_3 whisper pycairo ldap memcached pytz ];
+    propagatedBuildInputs = with self; [
+      django django_tagging whisper pycairo cairocffi
+      ldap memcached pytz urllib3 scandir
+    ];
 
     postInstall = ''
       wrapProgram $out/bin/run-graphite-devel-server.py \
@@ -26516,10 +18131,20 @@ EOF
     '';
 
     preConfigure = ''
-      substituteInPlace webapp/graphite/thirdparty/pytz/__init__.py --replace '/usr/share/zoneinfo' '/etc/zoneinfo'
-      substituteInPlace webapp/graphite/settings.py --replace "join(WEBAPP_DIR, 'content')" "join('$out', 'webapp', 'content')"
-      cp webapp/graphite/manage.py bin/manage-graphite.py
-      substituteInPlace bin/manage-graphite.py --replace 'settings' 'graphite.settings'
+      # graphite is configured by storing a local_settings.py file inside the
+      # graphite python package. Since that package is stored in the immutable
+      # Nix store we can't modify it. So how do we configure graphite?
+      #
+      # First of all we rename "graphite.local_settings" to
+      # "graphite_local_settings" so that the settings are not looked up in the
+      # graphite package anymore. Secondly we place a directory containing a
+      # graphite_local_settings.py on the PYTHONPATH in the graphite module
+      # <nixpkgs/nixos/modules/services/monitoring/graphite.nix>.
+      substituteInPlace webapp/graphite/settings.py \
+        --replace "graphite.local_settings" " graphite_local_settings"
+
+      substituteInPlace webapp/graphite/settings.py \
+        --replace "join(WEBAPP_DIR, 'content')" "join('$out', 'webapp', 'content')"
     '';
 
     # error: invalid command 'test'
@@ -26624,7 +18249,7 @@ EOF
     buildInputs = with self; [ nose mock ];
     propagatedBuildInputs = with self; [
       jinja2 pyyaml redis requests pagerduty
-      python_simple_hipchat pushbullet
+      python-simple-hipchat pushbullet
     ];
 
     patchPhase = "> requirements.txt";
@@ -26698,29 +18323,7 @@ EOF
     };
   };
 
-  ws4py = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "ws4py";
-    version = "0.4.2";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "0zr3254ky6r7q15l3dhdczfa8i723055zdkqssjifsgcwvirriks";
-    };
-
-    buildInputs = with self; [ pytest mock ];
-    propagatedBuildInputs = with self; [ asyncio cherrypy gevent tornado ];
-
-    checkPhase = ''
-      pytest test
-    '';
-
-    meta = {
-      homepage = https://ws4py.readthedocs.org;
-      description = "A WebSocket package for Python";
-      maintainers = with maintainers; [ rickynils ];
-    };
-  };
+  ws4py = callPackage ../development/python-modules/ws4py {};
 
   gdata = buildPythonPackage rec {
     name = "gdata-${version}";
@@ -26788,64 +18391,8 @@ EOF
     };
   };
 
-  libvirt = let
-    version = "3.5.0";
-  in assert version == pkgs.libvirt.version; pkgs.stdenv.mkDerivation rec {
-    name = "libvirt-python-${version}";
-
-    src = pkgs.fetchurl {
-      url = "http://libvirt.org/sources/python/${name}.tar.gz";
-      sha256 = "06mc0cm4k90z8vxaslk3ifpajg8w8dvm0m2mxwcd6fdzps8fwpsw";
-    };
-
-    buildInputs = with self; [ python pkgs.pkgconfig pkgs.libvirt lxml ];
-
-    buildPhase = "${python.interpreter} setup.py build";
-
-    installPhase = "${python.interpreter} setup.py install --prefix=$out";
-
-    meta = {
-      homepage = http://www.libvirt.org/;
-      description = "libvirt Python bindings";
-      license = licenses.lgpl2;
-      maintainers = [ maintainers.fpletz ];
-    };
-  };
-
-  searx = buildPythonPackage rec {
-    name = "searx-${version}";
-    version = "0.11.0";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "asciimoo";
-      repo = "searx";
-      rev = "v${version}";
-      sha256 = "1m6q7yd45lfk19yp30x1jmisff6npa1y348wqc9ixa3ywvb28ky8";
-    };
-
-    postPatch = ''
-      substituteInPlace requirements.txt \
-        --replace 'certifi==2016.9.26' 'certifi' \
-        --replace 'pyyaml==3.11' 'pyyaml' \
-        --replace 'lxml==3.7.1' 'lxml' \
-        --replace 'pyopenssl==16.2.0' 'pyopenssl' \
-        --replace 'requests[socks]==2.12.4' 'requests[socks]' \
-        --replace 'pygments==2.1.3' 'pygments>=2.1,<3.0' \
-        --replace 'python-dateutil==2.5.3' 'python-dateutil>=2.5,<3.0'
-    '';
-
-    propagatedBuildInputs = with self; [
-      pyyaml lxml grequests flaskbabel flask requests
-      gevent speaklater Babel pytz dateutil pygments
-      pyasn1 pyasn1-modules ndg-httpsclient certifi pysocks
-    ];
-
-    meta = {
-      homepage = https://github.com/asciimoo/searx;
-      description = "A privacy-respecting, hackable metasearch engine";
-      license = licenses.agpl3Plus;
-      maintainers = with maintainers; [ matejc fpletz profpatsch ];
-    };
+  libvirt = callPackage ../development/python-modules/libvirt {
+    inherit (pkgs) libvirt;
   };
 
   rpdb = buildPythonPackage rec {
@@ -26923,17 +18470,7 @@ EOF
     };
   };
 
-  pushbullet = buildPythonPackage rec {
-    name = "pushbullet.py-${version}";
-    version = "0.10.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pushbullet.py/pushbullet.py-0.10.0.tar.gz";
-      sha256 = "537d3132e1dbc91e31ade4cccf4c7def6f9d48e904a67f341d35b8a54a9be74d";
-    };
-
-    propagatedBuildInputs = with self; [requests websocket_client python_magic ];
-  };
+  pushbullet = callPackage ../development/python-modules/pushbullet { };
 
   power = buildPythonPackage rec {
     name = "power-1.4";
@@ -26954,24 +18491,27 @@ EOF
   };
 
   # For backwards compatibility. Please use nixpkgs.udiskie instead.
-  udiskie = pkgs.udiskie.override { pythonPackages = self; };
+  udiskie = toPythonModule (pkgs.udiskie.override { pythonPackages = self; });
 
   # Should be bumped along with EFL!
   pythonefl = buildPythonPackage rec {
     name = "python-efl-${version}";
-    version = "1.19.0";
+    version = "1.20.0";
     src = pkgs.fetchurl {
       url = "http://download.enlightenment.org/rel/bindings/python/${name}.tar.xz";
-      sha256 = "105qykdd04mlyzwzyscw6mlc7ajl4wbwhq87ncy1jvw8jjh6jads";
+      sha256 = "18qfqdkkjydqjk0nxs7wnnzdnqlbj3fhkjm0bbd927myzbihxpkh";
     };
 
+    hardeningDisable = [ "format" ];
+
     preConfigure = ''
       export NIX_CFLAGS_COMPILE="$(pkg-config --cflags efl) -I${self.dbus-python}/include/dbus-1.0 $NIX_CFLAGS_COMPILE"
     '';
     preBuild = "${python}/bin/${python.executable} setup.py build_ext";
     installPhase= "${python}/bin/${python.executable} setup.py install --prefix=$out";
 
-    buildInputs = with self; [ pkgs.pkgconfig pkgs.enlightenment.efl ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = with self; [ pkgs.enlightenment.efl ];
     doCheck = false;
 
     meta = {
@@ -27046,28 +18586,7 @@ EOF
     };
   };
 
-
-  redNotebook = buildPythonPackage rec {
-    name = "rednotebook-1.8.1";
-
-    src = pkgs.fetchurl {
-      url = "mirror://sourceforge/rednotebook/${name}.tar.gz";
-      sha256 = "00b7s4xpqpxsbzjvjx9qsx5d84m9pvn383c5di1nsfh35pig0rzn";
-    };
-
-    # no tests available
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ pygtk pywebkitgtk pyyaml chardet ];
-
-    meta = {
-      homepage = http://rednotebook.sourceforge.net/index.html;
-      description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
-      license = licenses.gpl2;
-      maintainers = with maintainers; [ tstrobel ];
-    };
-  };
-
+  redNotebook = pkgs.rednotebook; # Backwards compatibility alias.
 
   uncertainties = callPackage ../development/python-modules/uncertainties { };
 
@@ -27110,49 +18629,6 @@ EOF
     };
   };
 
-  syncserver = buildPythonPackage rec {
-    name = "syncserver-${version}";
-    version = "1.5.2";
-    disabled = ! isPy27;
-
-    src = pkgs.fetchgit {
-      url = https://github.com/mozilla-services/syncserver.git;
-      rev = "refs/tags/${version}";
-      sha256 = "1pk4rvwvsd1vxbpzg39hxqi8pi9v6b4s6m0mqbpg88s6s7i6ks3m";
-    };
-
-    buildInputs = with self; [ unittest2 ];
-    propagatedBuildInputs = with self; [
-      cornice gunicorn pyramid requests simplejson sqlalchemy mozsvc tokenserver
-      serversyncstorage configparser
-    ];
-
-    meta = {
-      maintainers = [ ];
-      platforms = platforms.all;
-    };
-  };
-
-  serversyncstorage = buildPythonPackage rec {
-    name = "serversyncstorage-${version}";
-    version = "1.5.13";
-    disabled = !isPy27;
-
-    src = pkgs.fetchgit {
-      url = https://github.com/mozilla-services/server-syncstorage.git;
-      rev = "refs/tags/${version}";
-      sha256 = "0m14v7n105y06w3mdp35pyxyzjj5vqwbznzdbixhkms3df6md2lq";
-    };
-
-    propagatedBuildInputs = with self; [
-      pyramid sqlalchemy simplejson mozsvc cornice pyramid_hawkauth pymysql
-      pymysqlsa umemcache WSGIProxy requests pybrowserid
-    ];
-    buildInputs = with self; [ testfixtures unittest2  ];
-
-    #doCheck = false; # lazy packager
-  };
-
   WSGIProxy = buildPythonPackage rec {
     name = "WSGIProxy-${version}";
     version = "0.2.2";
@@ -27166,6 +18642,8 @@ EOF
       paste six
     ];
 
+    disabled = isPy3k; # Judging from SyntaxError
+
     meta = with stdenv.lib; {
       description = "WSGIProxy gives tools to proxy arbitrary(ish) WSGI requests to other";
       homepage = "http://pythonpaste.org/wsgiproxy/";
@@ -27233,58 +18711,11 @@ EOF
     propagatedBuildInputs = with self; [];
   };
 
-  pymacaroons-pynacl = buildPythonPackage rec {
-    name = "pymacaroons-pynacl-${version}";
-    version = "0.9.3";
-
-    src = pkgs.fetchgit {
-      url = "https://github.com/matrix-org/pymacaroons.git";
-      rev = "refs/tags/v${version}";
-      sha256 = "0bykjk01zdndp6gjr30x46blsn0cvxa7j0zh5g8raxwaawchjhii";
-    };
-
-    propagatedBuildInputs = with self; [ pynacl six ];
-  };
-
-  pynacl = buildPythonPackage rec {
-    name = "pynacl-${version}";
-    version = "0.3.0";
+  pymacaroons-pynacl = callPackage ../development/python-modules/pymacaroons-pynacl { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/P/PyNaCl/PyNaCl-0.3.0.tar.gz";
-      sha256 = "1hknxlp3a3f8njn19w92p8nhzl9jkfwzhv5fmxhmyq2m8hqrfj8j";
-    };
-
-    buildInputs = with self; [ pytest coverage ];
-    propagatedBuildInputs = with self; [pkgs.libsodium six cffi pycparser];
-
-    checkPhase = ''
-      coverage run --source nacl --branch -m pytest
-    '';
+  pynacl = callPackage ../development/python-modules/pynacl { };
 
-  };
-
-  service-identity = buildPythonPackage rec {
-    name = "service-identity-${version}";
-    version = "16.0.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/service_identity/service_identity-${version}.tar.gz";
-      sha256 = "0dih7i7d36nbllcxgfkvbnaj1wlzhwfnpr4b97dz74czylif4c06";
-    };
-
-    propagatedBuildInputs = with self; [
-      characteristic pyasn1 pyasn1-modules pyopenssl idna attrs
-    ];
-
-    buildInputs = with self; [
-      pytest
-    ];
-
-    checkPhase = ''
-      py.test
-    '';
-  };
+  service-identity = callPackage ../development/python-modules/service_identity { };
 
   signedjson = buildPythonPackage rec {
     name = "signedjson-${version}";
@@ -27313,44 +18744,7 @@ EOF
   };
 
 
-  thumbor = buildPythonPackage rec {
-    name = "thumbor-${version}";
-    version = "6.3.2";
-
-    disabled = ! isPy27;
-
-    buildInputs = with self; [ statsd nose ];
-
-    propagatedBuildInputs = with self; [
-      tornado
-      pycrypto
-      pycurl
-      pytz
-      pillow
-      derpconf
-      python_magic
-      # thumborPexif
-      pexif
-      libthumbor
-      opencv
-    ] ++ optionals (!isPy3k) [ futures ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/thumbor/${name}.tar.gz";
-      sha256 = "0787245x4yci34cdfc9xaxhds0lv60476qgp132pwa78hrpc9m31";
-    };
-
-    prePatch = ''
-      substituteInPlace setup.py \
-        --replace '"argparse",' ""
-    '';
-
-    meta = {
-      description = "A smart imaging service";
-      homepage = https://github.com/globocom/thumbor/wiki;
-      license = licenses.mit;
-    };
-  };
+  thumbor = callPackage ../development/python-modules/thumbor { };
 
   thumborPexif = self.buildPythonPackage rec {
     name = "thumbor-pexif-0.14";
@@ -27396,30 +18790,10 @@ EOF
     };
   };
 
-  weboob = buildPythonPackage rec {
-    name = "weboob-1.1";
-    disabled = ! isPy27;
-
-    src = pkgs.fetchurl {
-      url = "https://symlink.me/attachments/download/324/${name}.tar.gz";
-      sha256 = "0736c5wsck2abxlwvx8i4496kafk9xchkkzhg4dcfbj0isldih6b";
-    };
-
-    setupPyBuildFlags = ["--qt" "--xdg"];
-
-    propagatedBuildInputs = with self; [ pillow prettytable pyyaml dateutil gdata requests mechanize feedparser lxml pkgs.gnupg pyqt4 pkgs.libyaml simplejson cssselect futures pdfminer termcolor ];
-
-    meta = {
-      homepage = http://weboob.org;
-      description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
-      license = licenses.agpl3;
-      maintainers = with maintainers; [ ];
-    };
-  };
+  weboob = callPackage ../development/python-modules/weboob { };
 
   datadiff = buildPythonPackage rec {
     name = "datadiff-1.1.6";
-    disabled = ! isPy27;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/d/datadiff/datadiff-1.1.6.zip";
@@ -27430,7 +18804,7 @@ EOF
 
     meta = {
       description = "DataDiff";
-      homepage = http://sourceforge.net/projects/datadiff/;
+      homepage = https://sourceforge.net/projects/datadiff/;
       license = licenses.asl20;
     };
   };
@@ -27445,7 +18819,7 @@ EOF
 
     meta = {
       description = "Termcolor";
-      homepage = http://pypi.python.org/pypi/termcolor;
+      homepage = https://pypi.python.org/pypi/termcolor;
       license = licenses.mit;
     };
   };
@@ -27465,21 +18839,7 @@ EOF
     };
   };
 
-  pychart = buildPythonPackage rec {
-    name = "pychart-1.39";
-    disabled = ! isPy27;
-
-    src = pkgs.fetchurl {
-      url = "http://download.gna.org/pychart/PyChart-1.39.tar.gz";
-      sha256 = "882650928776a7ca72e67054a9e0ac98f78645f279c0cfb5910db28f03f07c2e";
-    };
-
-    meta = {
-      description = "Library for creating high quality encapsulated Postscript, PDF, PNG, or SVG charts";
-      homepage = http://home.gna.org/pychart/;
-      license = licenses.gpl2;
-    };
-  };
+  pychart = callPackage ../development/python-modules/pychart {};
 
   parsimonious = buildPythonPackage rec {
     version = "0.7.0";
@@ -27500,63 +18860,11 @@ EOF
     };
   };
 
-  networkx = buildPythonPackage rec {
-    version = "1.11";
-    name = "networkx-${version}";
-
-    # Currently broken on PyPy.
-    # https://github.com/networkx/networkx/pull/1361
-    disabled = isPyPy;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/networkx/${name}.tar.gz";
-      sha256 = "1f74s56xb4ggixiq0vxyfxsfk8p20c7a099lpcf60izv1php03hd";
-    };
-
-    buildInputs = with self; [ nose ];
-    propagatedBuildInputs = with self; [ decorator ];
+  networkx = callPackage ../development/python-modules/networkx { };
 
-    # 17 failures with 3.6 https://github.com/networkx/networkx/issues/2396#issuecomment-304437299
-    doCheck = !(isPy36);
+  ofxclient = callPackage ../development/python-modules/ofxclient {};
 
-    meta = {
-      homepage = "https://networkx.github.io/";
-      description = "Library for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks";
-      license = licenses.bsd3;
-    };
-  };
-
-  ofxclient = buildPythonPackage rec {
-    name = "ofxclient-1.3.8";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/ofxclient/${name}.tar.gz";
-      sha256 = "99ab03bffdb30d9ec98724898f428f8e73129483417d5892799a0f0d2249f233";
-    };
-
-    # ImportError: No module named tests
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ ofxhome ofxparse beautifulsoup keyring argparse ];
-  };
-
-  ofxhome = buildPythonPackage rec {
-    name = "ofxhome-0.3.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/ofxhome/${name}.tar.gz";
-      sha256 = "0000db437fd1a8c7c65cea5d88ce9d3b54642a1f4844dde04f860e29330ac68d";
-    };
-
-    buildInputs = with self; [ nose ];
-
-    # ImportError: No module named tests
-    doCheck = false;
-
-    meta = {
-      homepage = "https://github.com/captin411/ofxhome";
-      description = "ofxhome.com financial institution lookup REST client";
-      license = licenses.mit;
-    };
-  };
+  ofxhome = callPackage ../development/python-modules/ofxhome { };
 
   ofxparse = buildPythonPackage rec {
     name = "ofxparse-0.14";
@@ -27627,23 +18935,9 @@ EOF
     };
   };
 
-  dicttoxml = buildPythonPackage rec {
-    name = "dicttoxml-1.6.4";
+  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/dicttoxml/dicttoxml-1.6.4.tar.gz";
-      sha256 = "5f29e95fec56680823dc41911c04c2af08727ee53c1b60e83c489212bab71161";
-    };
-
-    propagatedBuildInputs = with self; [  ];
-
-    meta = {
-      description = "Summary";
-      homepage = https://github.com/quandyfactory/dicttoxml;
-    };
-  };
-
-  markdown2 = callPackage ../development/python-modules/markdown2.nix { };
+  markdown2 = callPackage ../development/python-modules/markdown2 { };
 
   evernote = buildPythonPackage rec {
     name = "evernote-${version}";
@@ -27737,96 +19031,9 @@ EOF
     };
   };
 
-  trollius = buildPythonPackage rec {
-    version = "1.0.4";
-    name = "trollius-${version}";
-    disabled = isPy34;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/trollius/${name}.tar.gz";
-      sha256 = "8884cae4ec6a2d593abcffd5e700626ad4618f42b11beb2b75998f2e8247de76";
-    };
-
-    buildInputs = with self; [ mock ]
-      ++ optional isPy26 unittest2;
-
-    propagatedBuildInputs = with self; []
-      ++ optional isPy26 ordereddict
-      ++ optional (isPy26 || isPy27 || isPyPy) futures;
-
-    # Some of the tests fail on darwin with `error: AF_UNIX path too long'
-    # because of the *long* path names for sockets
-    patchPhase = optionalString stdenv.isDarwin ''
-      sed -i -e "s|test_create_ssl_unix_connection|skip_test_create_ssl_unix_connection|" tests/test_events.py
-      sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
-      sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
-      sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_existing_path_nonsock|skip_test_create_unix_server_existing_path_nonsock|" tests/test_unix_events.py
-      sed -i -e "s|test_create_unix_server_existing_path_sock|skip_test_create_unix_server_existing_path_sock|" tests/test_unix_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
-      sed -i -e "s|test_open_unix_connection_error|skip_test_open_unix_connection_error|" tests/test_streams.py
-      sed -i -e "s|test_open_unix_connection_no_loop_ssl|skip_test_open_unix_connection_no_loop_ssl|" tests/test_streams.py
-      sed -i -e "s|test_open_unix_connection|skip_test_open_unix_connection|" tests/test_streams.py
-      sed -i -e "s|test_pause_reading|skip_test_pause_reading|" tests/test_subprocess.py
-      sed -i -e "s|test_read_pty_output|skip_test_read_pty_output|" tests/test_events.py
-      sed -i -e "s|test_start_unix_server|skip_test_start_unix_server|" tests/test_streams.py
-      sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
-      sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
-      sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
-      sed -i -e "s|test_write_pty|skip_test_write_pty|" tests/test_events.py
-    '' + optionalString isPy26 ''
-      sed -i -e "s|test_env_var_debug|skip_test_env_var_debug|" tests/test_tasks.py
-    '';
+  trollius = callPackage ../development/python-modules/trollius {};
 
-    meta = {
-      description = "Port of the Tulip project (asyncio module, PEP 3156) on Python 2";
-      homepage = "https://bitbucket.org/enovance/trollius";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ garbas ];
-    };
-  };
-
-  neovim = buildPythonPackage rec {
-    version = "0.1.13";
-    name = "neovim-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/neovim/${name}.tar.gz";
-      sha256 = "0pzk5639jjjx46a6arkwy31falmk5w1061icbml8njm3rbrwwhgx";
-    };
-
-    buildInputs = with self; [ nose ];
-
-    checkPhase = ''
-      nosetests
-    '';
-
-    # Tests require pkgs.neovim,
-    # which we cannot add because of circular dependency.
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ msgpack ]
-      ++ optional (!isPyPy) greenlet
-      ++ optional (pythonOlder "3.4") trollius;
-
-    meta = {
-      description = "Python client for Neovim";
-      homepage = "https://github.com/neovim/python-client";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ garbas ];
-    };
-  };
+  neovim = callPackage ../development/python-modules/neovim {};
 
   neovim_gui = buildPythonPackage rec {
     name = "neovim-pygui-${self.neovim.version}";
@@ -27938,6 +19145,8 @@ EOF
     };
   };
 
+  torchvision = callPackage ../development/python-modules/torchvision { };
+
   jenkinsapi = buildPythonPackage rec {
     name = "jenkinsapi-${version}";
     version = "0.2.32";
@@ -28068,68 +19277,11 @@ EOF
     };
   };
 
-  pluggy = buildPythonPackage rec {
-    name = "pluggy-${version}";
-    version = "0.3.1";
+  pluggy = callPackage ../development/python-modules/pluggy {};
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pluggy/${name}.tar.gz";
-      sha256 = "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m";
-    };
+  xcffib = callPackage ../development/python-modules/xcffib {};
 
-    meta = {
-      description = "Plugin and hook calling mechanisms for Python";
-      homepage = "https://pypi.python.org/pypi/pluggy";
-      license = licenses.mit;
-      maintainers = with maintainers; [ jgeerds ];
-    };
-  };
-
-  xcffib = buildPythonPackage rec {
-    version = "0.3.2";
-    name = "xcffib-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/x/xcffib/${name}.tar.gz";
-      sha256 = "a84eecd5a1bb7570e26c83aca87a2016578ca4e353e1fa56189e95bdef063e6a";
-    };
-
-    patchPhase = ''
-      # Hardcode cairo library path
-      sed -e 's,ffi\.dlopen(,&"${pkgs.xorg.libxcb.out}/lib/" + ,' -i xcffib/__init__.py
-    '';
-
-    propagatedBuildInputs = [ self.cffi self.six ];
-
-    meta = {
-      description = "A drop in replacement for xpyb, an XCB python binding";
-      homepage = "https://github.com/tych0/xcffib";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ kamilchm ];
-    };
-  };
-
-  pafy = buildPythonPackage rec {
-    name = "pafy-${version}";
-    version = "0.5.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pafy/${name}.tar.gz";
-      sha256 = "1ckvrypyvb7jbqlgwdz0y337ajagjv7dgxyns326nqwypn1wpq0i";
-    };
-
-    # No tests included in archive
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ youtube-dl ];
-
-    meta = with stdenv.lib; {
-      description = "A library to download YouTube content and retrieve metadata";
-      homepage = http://np1.github.io/pafy/;
-      license = licenses.lgpl3Plus;
-      maintainers = with maintainers; [ odi ];
-    };
-  };
+  pafy = callPackage ../development/python-modules/pafy { };
 
   suds = buildPythonPackage rec {
     name = "suds-0.4";
@@ -28243,49 +19395,15 @@ EOF
 
     meta = with stdenv.lib; {
       description = "Terminal based YouTube player and downloader";
-      homepage = http://github.com/np1/mps-youtube;
+      homepage = https://github.com/np1/mps-youtube;
       license = licenses.gpl3;
       maintainers = with maintainers; [ odi ];
     };
   };
 
-  d2to1 = buildPythonPackage rec {
-    name = "d2to1-${version}";
-    version = "0.2.11";
-
-    buildInputs = with self; [ nose ];
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/d2to1/d2to1-${version}.tar.gz";
-      sha256 = "1a5z367b7dpd6dgi0w8pymb68aj2pblk8w04l2c8hibhj8dpl2b4";
-    };
-
-    meta = {
-      description = "Support for distutils2-like setup.cfg files as package metadata";
-      homepage = https://pypi.python.org/pypi/d2to1;
-      license = licenses.bsd2;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
-
-  ovh = buildPythonPackage rec {
-    name = "ovh-${version}";
-    version = "0.4.5";
-    doCheck = false; #test needs packages too explicit
-    buildInputs = with self; [ d2to1 ];
-    propagatedBuildInputs = with self; [ requests ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/ovh/ovh-${version}.tar.gz";
-      sha256 = "1wf2p1sbg34jpj97r3w5nx9pj6vp0mlprry3vw2xav3dv02qv2af";
-    };
+  d2to1 = callPackage ../development/python-modules/d2to1 { };
 
-    meta = {
-      description = "Thin wrapper around OVH's APIs";
-      homepage = https://pypi.python.org/pypi/ovh;
-      license = licenses.bsd2;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
+  ovh = callPackage ../development/python-modules/ovh { };
 
   willow = buildPythonPackage rec {
     name = "willow-${version}";
@@ -28326,60 +19444,13 @@ EOF
 
     meta = {
       description = "Python Import Magic - automagically add, remove and manage imports";
-      homepage = http://github.com/alecthomas/importmagic;
+      homepage = https://github.com/alecthomas/importmagic;
       license = "bsd";
     };
   };
 
-  bepasty-server = buildPythonPackage rec {
-    name = "bepasty-server-${version}";
-    version = "0.4.0";
-    propagatedBuildInputs = with self;[
-      flask
-      pygments
-      xstatic
-      xstatic-bootbox
-      xstatic-bootstrap
-      xstatic-jquery
-      xstatic-jquery-file-upload
-      xstatic-jquery-ui
-      xstatic-pygments
-    ];
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/b/bepasty/bepasty-${version}.tar.gz";
-      sha256 = "0bs79pgrjlnkmjfyj2hllbx3rw757va5w2g2aghi9cydmsl7gyi4";
-    };
-
-    meta = {
-      homepage = http://github.com/bepasty/bepasty-server;
-      description = "Binary pastebin server";
-      license = licenses.mit;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
-
-  xgboost = buildPythonPackage rec {
-    name = "xgboost-${version}";
-
-    inherit (pkgs.xgboost) version src meta;
-
-    propagatedBuildInputs = with self; [ scipy ];
-    buildInputs = with self; [ nose ];
-
-    postPatch = ''
-      cd python-package
-
-      sed "s/CURRENT_DIR = os.path.dirname(__file__)/CURRENT_DIR = os.path.abspath(os.path.dirname(__file__))/g" -i setup.py
-      sed "/^LIB_PATH.*/a LIB_PATH = [os.path.relpath(LIB_PATH[0], CURRENT_DIR)]" -i setup.py
-      cat <<EOF >xgboost/libpath.py
-      def find_lib_path():
-        return ["${pkgs.xgboost}/lib/libxgboost.so"]
-      EOF
-    '';
-
-    postInstall = ''
-      rm -rf $out/xgboost
-    '';
+  xgboost = callPackage ../development/python-modules/xgboost {
+    xgboost = pkgs.xgboost;
   };
 
   xkcdpass = buildPythonPackage rec {
@@ -28402,21 +19473,6 @@ EOF
     };
   };
 
-  xstatic = buildPythonPackage rec {
-    name = "XStatic-${version}";
-    version = "1.0.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/X/XStatic/XStatic-${version}.tar.gz";
-      sha256 = "09npcsyf1ccygjs0qc8kdsv4qqy8gm1m6iv63g9y1fgbcry3vj8f";
-    };
-    meta = {
-      homepage = http://bitbucket.org/thomaswaldmann/xstatic;
-      description = "Base packaged static files for python";
-      license = licenses.mit;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
-
   xlsx2csv = buildPythonPackage rec {
     name = "xlsx2csv-${version}";
     version = "0.7.2";
@@ -28434,102 +19490,22 @@ EOF
 
   xmpppy = callPackage ../development/python-modules/xmpppy {};
 
-  xstatic-bootbox = buildPythonPackage rec {
-    name = "XStatic-Bootbox-${version}";
-    version = "4.3.0.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/X/XStatic-Bootbox/XStatic-Bootbox-${version}.tar.gz";
-      sha256 = "0wks1lsqngn3gvlhzrvaan1zj8w4wr58xi0pfqhrzckbghvvr0gj";
-    };
+  xstatic = callPackage ../development/python-modules/xstatic {};
 
-    meta = {
-      homepage =  http://bootboxjs.com;
-      description = "bootboxjs packaged static files for python";
-      license = licenses.mit;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
+  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox {};
 
-  xstatic-bootstrap = buildPythonPackage rec {
-    name = "XStatic-Bootstrap-${version}";
-    version = "3.3.5.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/X/XStatic-Bootstrap/XStatic-Bootstrap-${version}.tar.gz";
-      sha256 = "0jzjq3d4vp2shd2n20f9y53jnnk1cvphkj1v0awgrf18qsy2bmin";
-    };
+  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap {};
 
-    meta = {
-      homepage =  http://getbootstrap.com;
-      description = "bootstrap packaged static files for python";
-      license = licenses.mit;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
+  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery {};
 
-  xstatic-jquery = buildPythonPackage rec {
-    name = "XStatic-jQuery-${version}";
-    version = "1.10.2.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/X/XStatic-jQuery/XStatic-jQuery-${version}.tar.gz";
-      sha256 = "018kx4zijflcq8081xx6kmiqf748bsjdq7adij2k91bfp1mnlhc3";
-    };
+  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload {};
 
-    meta = {
-      homepage =  http://jquery.org;
-      description = "jquery packaged static files for python";
-      license = licenses.mit;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
+  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui {};
 
-  xstatic-jquery-file-upload = buildPythonPackage rec {
-    name = "XStatic-jQuery-File-Upload-${version}";
-    version = "9.7.0.1";
-    propagatedBuildInputs = with self;[ xstatic-jquery ];
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/X/XStatic-jQuery-File-Upload/XStatic-jQuery-File-Upload-${version}.tar.gz";
-      sha256 = "0d5za18lhzhb54baxq8z73wazq801n3qfj5vgcz7ri3ngx7nb0cg";
-    };
+  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments {};
 
-    meta = {
-      homepage =  http://plugins.jquery.com/project/jQuery-File-Upload;
-      description = "jquery-file-upload packaged static files for python";
-      license = licenses.mit;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
-
-  xstatic-jquery-ui = buildPythonPackage rec {
-    name = "XStatic-jquery-ui-${version}";
-    version = "1.12.0.1";
-    propagatedBuildInputs = with self; [ xstatic-jquery ];
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/X/XStatic-jquery-ui/XStatic-jquery-ui-${version}.tar.gz";
-      sha256 = "0w7mabv6qflpd47g33j3ggp5rv17mqk0xz3bsdswcj97wqpga2l2";
-    };
-
-    meta = {
-      homepage = http://jqueryui.com/;
-      description = "jquery-ui packaged static files for python";
-      license = licenses.mit;
-      maintainers = [ maintainers.makefu ];
-    };
-  };
-
-  xstatic-pygments = buildPythonPackage rec {
-    name = "XStatic-Pygments-${version}";
-    version = "1.6.0.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/X/XStatic-Pygments/XStatic-Pygments-${version}.tar.gz";
-      sha256 = "0fjqgg433wfdnswn7fad1g6k2x6mf24wfnay2j82j0fwgkdxrr7m";
-    };
-
-    meta = {
-      homepage = http://pygments.org;
-      description = "pygments packaged static files for python";
-      license = licenses.bsd2;
-      maintainers = [ maintainers.makefu ];
-    };
+  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper {
+    inherit (pkgs.xorg) xorgserver;
   };
 
   hidapi = callPackage ../development/python-modules/hidapi {
@@ -28592,63 +19568,11 @@ EOF
     };
   };
 
-  termstyle = buildPythonPackage rec {
-    name = "python-termstyle-${version}";
-    version = "0.1.10";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/python-termstyle/${name}.tar.gz";
-      sha256 = "1qllzkx1alf14zcfapppf8w87si4cpa7lgjmdp3f5idzdyqnnapl";
-    };
-
-    meta = {
-      description = "Console colouring for python";
-      homepage = "https://pypi.python.org/pypi/python-termstyle/0.1.10";
-      license = licenses.bsdOriginal;
-    };
-
-  };
-
-  green = buildPythonPackage rec {
-    name = "green-${version}";
-    version = "2.3.0";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/g/green/${name}.tar.gz";
-      sha256 = "1888khfl9yxb8yfxq9b48dxwplqlxx8s0l530z5j7c6bx74v08b4";
-    };
-
-    propagatedBuildInputs = with self; [ termstyle colorama ];
-    buildInputs = with self; [ mock ];
-
-    meta = {
-      description = "Python test runner";
-      homepage = "https://github.com/CleanCut/green";
-      license = licenses.mit;
-    };
-  };
-
-  topydo = buildPythonPackage rec {
-    name = "topydo-${version}";
-    version = "0.9";
-    disabled = (!isPy3k);
-
-    src = pkgs.fetchFromGitHub {
-      owner = "bram85";
-      repo = "topydo";
-      rev = version;
-      sha256 = "0vmfr2cxn3r5zc0c4q3a94xy1r0cv177b9zrm9hkkjcmhgq42s3h";
-    };
-
-    propagatedBuildInputs = with self; [ arrow icalendar ];
-    buildInputs = with self; [ mock freezegun coverage pkgs.glibcLocales ];
+  termstyle = callPackage ../development/python-modules/termstyle { };
 
-    LC_ALL="en_US.UTF-8";
+  green = callPackage ../development/python-modules/green { };
 
-    meta = {
-      description = "A cli todo application compatible with the todo.txt format";
-      homepage = "https://github.com/bram85/topydo";
-      license = licenses.gpl3;
-    };
-  };
+  topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
 
   w3lib = buildPythonPackage rec {
     name = "w3lib-${version}";
@@ -28669,35 +19593,6 @@ EOF
     };
   };
 
-  Quandl = buildPythonPackage rec {
-    version = "3.0.0";
-    name = "Quandl-${version}";
-
-    src = pkgs.fetchurl {
-      url= "mirror://pypi/q/quandl/${name}.tar.gz";
-      sha256 = "d4e698eb39291e0b281975813054101f3dfb379dead10d34d7b536e1aad60584";
-    };
-
-    propagatedBuildInputs = with self; [
-      numpy
-      ndg-httpsclient
-      dateutil
-      inflection
-      more-itertools
-      requests
-      pandas
-    ];
-
-    # No tests in archive
-    doCheck = false;
-
-    meta = {
-      homepage = https://github.com/quandl/quandl-python;
-      description = "A Python library for Quandl’s RESTful API";
-      maintainers = with maintainers; [ NikolaMandic ];
-    };
-  };
-
   queuelib = buildPythonPackage rec {
     name = "queuelib-${version}";
     version = "1.4.2";
@@ -28739,30 +19634,7 @@ EOF
     };
   };
 
-  htmltreediff = buildPythonPackage rec{
-    version = "0.1.2";
-    pname = "htmltreediff";
-    name = pname + "-${version}";
-
-    # Does not work with Py >= 3
-    disabled = !isPy27;
-
-    src = pkgs.fetchFromGitHub {
-      owner = "christian-oudard";
-      repo = pname;
-      rev = "v" + version;
-      sha256 = "16mqp2jyznrw1mgd3qzybq28h2k5wz7vmmz1m6xpgscazyjhvvd1";
-    };
-
-    propagatedBuildInputs = with self; [ lxml html5lib ];
-
-    meta = {
-      description = " Structure-aware diff for html and xml documents";
-      homepage = https://github.com/christian-oudard/htmltreediff;
-      license = licenses.bsdOriginal;
-      maintainers = with maintainers; [];
-    };
-  };
+  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
 
   repeated_test = buildPythonPackage rec {
     name = "repeated_test-${version}";
@@ -28815,23 +19687,7 @@ EOF
     };
   };
 
-  send2trash = buildPythonPackage (rec {
-    name = "Send2Trash-1.3.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/S/Send2Trash/${name}.tar.gz";
-      sha256 = "1zjq5ki02l0vl4f1xymsnqyxipx6q81a435p46db07l3mqg4dx1k";
-    };
-
-    # no tests
-    doCheck = false;
-
-    meta = {
-      description = "Send file to trash natively under Mac OS X, Windows and Linux";
-      homepage = https://github.com/hsoft/send2trash;
-      license = licenses.bsd3;
-    };
-  });
+  send2trash = callPackage ../development/python-modules/send2trash { };
 
   sigtools = buildPythonPackage rec {
     name = "sigtools-${version}";
@@ -28913,14 +19769,21 @@ EOF
     };
   };
 
-  tensorflow = self.tensorflowWithoutCuda;
+  tensorflow-tensorboard = callPackage ../development/python-modules/tensorflow-tensorboard { };
 
-  tensorflowWithoutCuda = callPackage ../development/python-modules/tensorflow { };
+  tensorflow = callPackage ../development/python-modules/tensorflow rec {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit9;
+    cudnn = pkgs.cudnn_cudatoolkit9;
+  };
 
-  tensorflowWithCuda = callPackage ../development/python-modules/tensorflow {
+  tensorflowWithoutCuda = self.tensorflow.override {
+    cudaSupport = false;
+  };
+
+  tensorflowWithCuda = self.tensorflow.override {
     cudaSupport = true;
-    cudatoolkit = pkgs.cudatoolkit8;
-    cudnn = pkgs.cudnn51_cudatoolkit80;
   };
 
   tflearn = buildPythonPackage rec {
@@ -29029,25 +19892,6 @@ EOF
     };
   };
 
-  pybrain = buildPythonPackage rec {
-    name = "pybrain-${version}";
-    version = "0.3.3";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/pybrain/pybrain/archive/${version}.tar.gz";
-      sha256 = "114m99vsrps2gjqfm3i3kxx4nibjhjdzphsy2bhrxa5q3h2q14dz";
-    };
-
-    propagatedBuildInputs = with self; [ scipy ];
-
-    meta = {
-      homepage = "http://pybrain.org/";
-      description = "Modular Machine Learning Library for Python";
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ NikolaMandic ];
-    };
-  };
-
   threadpool = buildPythonPackage rec {
     name = "threadpool-${version}";
     version = "1.3.2";
@@ -29080,15 +19924,7 @@ EOF
     doCheck = false;
   };
 
-  ansi = buildPythonPackage rec {
-    name = "ansi-${version}";
-    version = "0.1.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/ansi/${name}.tar.gz";
-      sha256 = "06y6470bzvlqys3zi2vc68rmk9n05v1ibral14gbfpgfa8fzy7pg";
-    };
-  };
+  ansi = callPackage ../development/python-modules/ansi { };
 
   pygments-markdown-lexer = buildPythonPackage rec {
     name = "pygments-markdown-lexer-${version}";
@@ -29114,6 +19950,8 @@ EOF
     };
   };
 
+  python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
+
   irc = buildPythonPackage rec {
     name = "irc-${version}";
     version = "14.2.2";
@@ -29216,11 +20054,11 @@ EOF
 
   more-itertools = buildPythonPackage rec {
     name = "more-itertools-${version}";
-    version = "2.4.1";
+    version = "4.0.1";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/m/more-itertools/${name}.tar.gz";
-      sha256 = "95a222d01df60c888d56d86f91219bfbd47106a534e89ca7f80fb555cfbe08c1";
+      sha256 = "0cadwsr97c80k18if7qy5d8j8l1zj3yhnkm6kbngk0lpl7pxq8ax";
     };
 
     buildInputs = with self; [ nose ];
@@ -29291,33 +20129,9 @@ EOF
     propagatedBuildInputs = with self; [ websocket_client requests ];
   };
 
-  tempora = buildPythonPackage rec {
-    name = "tempora-${version}";
-    version = "1.4";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tempora/${name}.tar.gz";
-      sha256 = "0ysvns22i5hzhl5ln4n86bq10j8xwvd09z8qw1zjr3s0fj3lynza";
-    };
-
-    doCheck = false;
-
-    buildInputs = with self; [ setuptools_scm ];
-
-    propagatedBuildInputs = with self; [ six ];
-  };
+  tempora= callPackage ../development/python-modules/tempora { };
 
-  hypchat = buildPythonPackage rec {
-    name = "hypchat-${version}";
-    version = "0.21";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/h/hypchat/${name}.tar.gz";
-      sha256 = "1sd8f3gihagaqd848dqy6xw457fa4f9bla1bfyni7fq3h76sjdzg";
-    };
-
-    propagatedBuildInputs = with self; [ requests six dateutil ];
-  };
+  hypchat = callPackage ../development/python-modules/hypchat { };
 
   pivy = buildPythonPackage rec {
     version = "20101207";
@@ -29328,25 +20142,10 @@ EOF
       sha256 = "18n14ha2d3j3ghg2f2aqnf2mks94nn7ma9ii7vkiwcay93zm82cf";
     };
     disabled = isPy3k; # Judging from SyntaxError
-    buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.mesa pkgs.xorg.libXi ];
+    buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.libGLU_combined pkgs.xorg.libXi ];
   };
 
-  smugpy = buildPythonPackage rec {
-    name    = pname + "-" + version;
-    pname   = "smugpy";
-    version = "20131218";
-
-    src = pkgs.fetchFromGitHub {
-      owner  = "chrishoffman";
-      repo   = pname;
-      rev    = "f698d6749ce446e3d6c7d925b2cd1cd5b3d695ea";
-      sha256 = "029x6hm1744iznv4sw8sfyl974wmx1sqnr1k5dvzzwpk3ja49a1y";
-    };
-
-    doCheck = false; # Tries to login to Smugmug…
-
-    propagatedBuildInputs = with self; [ ];
-  };
+  smugpy = callPackage ../development/python-modules/smugpy { };
 
   smugline = stdenv.mkDerivation rec {
     name    = pname + "-" + version;
@@ -29369,38 +20168,15 @@ EOF
     installPhase = ''
       mkdir -p $out/bin $out/libexec
       cp smugline.py $out/libexec
-      makeWrapper "${python.interpreter} $out/libexec/smugline.py" $out/bin/smugline \
+      makeWrapper ${python.interpreter} $out/bin/smugline \
+        --add-flags "$out/libexec/smugline.py" \
         --prefix PYTHONPATH : "$PYTHONPATH"
     '';
   };
 
   txaio = callPackage ../development/python-modules/txaio { };
 
-  ramlfications = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "ramlfications";
-    version = "0.1.9";
-
-    meta = {
-      description = "A Python RAML parser.";
-      homepage    = "https://ramlfications.readthedocs.org";
-      license     = licenses.asl20;
-      maintainers = with maintainers; [ nand0p ];
-      platforms   = platforms.all;
-    };
-
-    doCheck = false;
-    # [darwin]  AssertionError: Expected 'update_mime_types' to have been called once. Called 0 times.
-
-    buildInputs = with self; [ mock pytest pytest-mock pytest-server-fixtures pytest-localserver ];
-
-    propagatedBuildInputs = with self; [ termcolor click markdown2 six jsonref pyyaml xmltodict attrs ];
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/r/${pname}/${name}.tar.gz";
-      sha256 = "0xvnna7kaq4nm5nfnwcwbr5bcm2s532hgyp7kq4v9iivn48rrf3v";
-    };
-  };
+  ramlfications = callPackage ../development/python-modules/ramlfications { };
 
   yapf = callPackage ../development/python-modules/yapf { };
 
@@ -29410,75 +20186,17 @@ EOF
 
   whoosh = callPackage ../development/python-modules/whoosh { };
 
-  packet-python = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "packet-python";
-    version = "1.33";
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/eb/82/f0506bd964501f958ac6a37e843ccb7bd9e712732886258314d55f0ec710/packet-python-1.33.tar.gz";
-      sha256 = "0bmvfmvjm8jx0y8sv0jf5mhv0h3v8idx0sc5myxs7ig200584dd3";
-    };
-    propagatedBuildInputs = with self; [ requests ];
+  packet-python = callPackage ../development/python-modules/packet-python { };
 
-    meta = {
-      description = "A Python client for the Packet API.";
-      homepage    = "https://github.com/packethost/packet-python";
-      license     = licenses.lgpl3;
-      maintainers = with maintainers; [ dipinhora ];
-      platforms   = platforms.all;
-    };
-  };
+  pwntools = callPackage ../development/python-modules/pwntools { };
 
-  pwntools = buildPythonPackage rec {
-    name = "pwntools-${version}";
-    version = "3.7.1";
+  ROPGadget = callPackage ../development/python-modules/ROPGadget { };
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pwntools/${name}.tar.gz";
-      sha256 = "1c0n97cf3nql3n6sxpbp43x1byhkgfbpbl2b22h8nllgb8n0z9l0";
-    };
-    propagatedBuildInputs = with self; [ Mako packaging pysocks pygments ROPGadget capstone paramiko pip psutil pyelftools pypandoc pyserial dateutil requests tox pkgs.pandoc unicorn intervaltree ];
+  # We need "normal" libxml2 and not the python package by the same name.
+  pywbem = disabledIf isPy36
+    (callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; });
 
-    disabled = isPy3k;
-
-    meta = {
-      homepage = "http://pwntools.com";
-      description = "CTF framework and exploit development library";
-      license = licenses.mit;
-      maintainers = with maintainers; [ bennofs ];
-    };
-  };
-
-  ROPGadget = buildPythonPackage rec {
-    name = "ROPGadget-5.4";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/R/ROPGadget/${name}.tar.gz";
-      sha256 = "19wly4x3mq73c91pplqjk0c7sx6710887czh514qk5l7j0ky6dxg";
-    };
-    propagatedBuildInputs = with self; [ capstone ];
-    meta = with pkgs.stdenv.lib; {
-      description = "Tool to search for gadgets in binaries to facilitate ROP exploitation";
-      homepage = "http://shell-storm.org/project/ROPgadget/";
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ bennofs ];
-    };
-  };
-
-  unicorn = buildPythonPackage rec {
-    name  = "unicorn-${version}";
-    version = "1.0.1";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/u/unicorn/${name}.tar.gz";
-      sha256 = "0a5b4vh734b3wfkgapzzf8x18rimpmzvwwkly56da84n27wfw9bg";
-    };
-    setupPyBuildFlags = [ "--plat-name" "linux" ];
-    meta = with pkgs.stdenv.lib; {
-      description = "Unicorn CPU emulator engine";
-      homepage = "http://www.unicorn-engine.org/";
-      license = [ licenses.gpl2 ];
-      maintainers = [ maintainers.bennofs ];
-    };
-  };
+  unicorn = callPackage ../development/python-modules/unicorn { };
 
   intervaltree = callPackage ../development/python-modules/intervaltree { };
 
@@ -29495,19 +20213,23 @@ EOF
   suseapi = buildPythonPackage rec {
     name = "${pname}-${version}";
     pname = "suseapi";
-    version = "0.24-5-g9937e3b";
+    version = "0.24-31-g0fcbe96";
 
     src = pkgs.fetchFromGitHub {
       owner = "openSUSE";
       repo = "python-${pname}";
       rev = version;
-      sha256 = "1144h26wrzazzy6y3yy163fccqmggk5hazjkk8l9a547390ilgrv";
+      sha256 = "0hyzq0h1w8gp0zfvhqh7qsgcg1wp05a14371m6bn5a7gss93rbv4";
     };
 
     propagatedBuildInputs = with self; [
       django suds-jurko ldap mechanize beautifulsoup4 pyxdg dateutil requests
     ];
 
+    buildInputs = with self; [ httpretty ];
+
+    doCheck = false;
+
     meta = {
       homepage = "https://github.com/openSUSE/python-suseapi/";
       description = "Python module to work with various SUSE services";
@@ -29519,21 +20241,19 @@ EOF
 
   stripe = callPackage ../development/python-modules/stripe { };
 
+  twilio = callPackage ../development/python-modules/twilio { };
+
   uranium = callPackage ../development/python-modules/uranium { };
 
+  versioneer = callPackage ../development/python-modules/versioneer { };
+
   vine = callPackage ../development/python-modules/vine { };
 
-  wp_export_parser = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "wp_export_parser";
-    version = "1.0";
-    src = pkgs.fetchFromGitHub {
-      owner = "RealGeeks";
-      repo = "wp_export_parser";
-      rev = "479211f6c5a7d034fd77762dfed381c3315cd773";
-      sha256 = "1ad0mkixc0s86djwsvhp1qlvcfs25086nh0qw7bys49gz8shczzi";
-    };
-  };
+  whitenoise = callPackage ../development/python-modules/whitenoise { };
+
+  XlsxWriter = callPackage ../development/python-modules/XlsxWriter { };
+
+  yowsup = callPackage ../development/python-modules/yowsup { };
 
   wptserve = callPackage ../development/python-modules/wptserve { };
 
@@ -29541,36 +20261,14 @@ EOF
 
   zeep = callPackage ../development/python-modules/zeep { };
 
-  zeitgeist = if isPy3k then throw "zeitgeist not supported for interpreter ${python.executable}" else
-    (pkgs.zeitgeist.override{python2Packages=self;}).py;
+  zeitgeist = disabledIf isPy3k
+    (toPythonModule (pkgs.zeitgeist.override{python2Packages=self;})).py;
 
   zeroconf = callPackage ../development/python-modules/zeroconf { };
 
-  zipfile36 = buildPythonPackage rec {
-    pname = "zipfile36";
-    version = "0.1.3";
-    name = "${pname}-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${name}.tar.gz";
-      sha256 = "a78a8dddf4fa114f7fe73df76ffcce7538e23433b7a6a96c1c904023f122aead";
-    };
-
-    checkPhase = ''
-      ${python.interpreter} -m unittest test_zipfile.py
-    '';
-
-    # Only works with Python 3.x.
-    # Not supposed to be used with 3.6 and up.
-    disabled = !(isPy3k && (pythonOlder "3.6"));
+  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
 
-    meta = {
-      description = "Read and write ZIP files - backport of the zipfile module from Python 3.6";
-      homepage = https://gitlab.com/takluyver/zipfile36;
-      license = licenses.psfl;
-      maintainer = maintainers.fridh;
-    };
-  };
+  todoist = callPackage ../development/python-modules/todoist { };
 
   zxcvbn-python = callPackage ../development/python-modules/zxcvbn-python { };
 
@@ -29594,6 +20292,55 @@ EOF
 
   gensim = callPackage  ../development/python-modules/gensim { };
 
+  cymem = callPackage ../development/python-modules/cymem { };
+
+  ftfy = callPackage ../development/python-modules/ftfy { };
+
+  murmurhash = callPackage ../development/python-modules/murmurhash { };
+
+  plac = callPackage ../development/python-modules/plac { };
+
+  preshed = callPackage ../development/python-modules/preshed { };
+
+  backports_weakref = callPackage ../development/python-modules/backports_weakref { };
+
+  thinc = callPackage ../development/python-modules/thinc { };
+
+  yahooweather = callPackage ../development/python-modules/yahooweather { };
+
+  spacy = callPackage ../development/python-modules/spacy { };
+
+  spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
+
+  pyspark = callPackage ../development/python-modules/pyspark { };
+
+  sseclient = callPackage ../development/python-modules/sseclient { };
+
+  textacy = callPackage ../development/python-modules/textacy { };
+
+  pyemd  = callPackage ../development/python-modules/pyemd { };
+
+  pulp  = callPackage ../development/python-modules/pulp { };
+
+  behave = callPackage ../development/python-modules/behave { };
+
+  pyhamcrest = callPackage ../development/python-modules/pyhamcrest { };
+
+  parse = callPackage ../development/python-modules/parse { };
+
+  parse-type = callPackage ../development/python-modules/parse-type { };
+
+  ephem = callPackage ../development/python-modules/ephem { };
+
+  voluptuous = callPackage ../development/python-modules/voluptuous { };
+
+  pysigset = callPackage ../development/python-modules/pysigset { };
+
+  us = callPackage ../development/python-modules/us { };
+
+  wsproto = callPackage ../development/python-modules/wsproto { };
+
+  h11 = callPackage ../development/python-modules/h11 { };
 });
 
 in fix' (extends overrides packages)
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index 94c1e6c7ad2eb..0d15d817a66c1 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -16,11 +16,15 @@ let
     buildPackages.binutils = nativePlatforms;
     gmp = nativePlatforms;
     libcCross = nativePlatforms;
+    nix = nativePlatforms;
+    nixUnstable = nativePlatforms;
   };
 
   gnuCommon = lib.recursiveUpdate common {
-    buildPackages.gccCrossStageFinal = nativePlatforms;
+    buildPackages.gcc = nativePlatforms;
     coreutils = nativePlatforms;
+    haskell.packages.ghcHEAD.hello = nativePlatforms;
+    haskell.packages.ghc822.hello = nativePlatforms;
   };
 
   linuxCommon = lib.recursiveUpdate gnuCommon {
@@ -41,12 +45,22 @@ let
     libtool = nativePlatforms;
     libunistring = nativePlatforms;
     windows.wxMSW = nativePlatforms;
+    windows.mingw_w64_pthreads = nativePlatforms;
   };
 
   darwinCommon = {
     buildPackages.binutils = darwin;
   };
 
+  rpiCommon = linuxCommon // {
+    vim = nativePlatforms;
+    unzip = nativePlatforms;
+    ddrescue = nativePlatforms;
+    lynx = nativePlatforms;
+    patchelf = nativePlatforms;
+    buildPackages.binutils = nativePlatforms;
+    mpg123 = nativePlatforms;
+  };
 in
 
 {
@@ -74,11 +88,12 @@ in
         f (["buildPackages"] ++ path) { inherit system crossSystem; }
       );
 
-    testEqual = path: systems: forAllSupportedSystems systems (testEqualOne path);
+    testEqual = path: systems: forMatchingSystems systems (testEqualOne path);
 
     mapTestEqual = lib.mapAttrsRecursive testEqual;
 
   in mapTestEqual {
+    androidndk = nativePlatforms;
     boehmgc = nativePlatforms;
     libffi = nativePlatforms;
     libiconv = nativePlatforms;
@@ -108,21 +123,23 @@ in
   fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon;
 
   /* Linux on Raspberrypi */
-  rpi = mapTestOnCross lib.systems.examples.raspberryPi (linuxCommon // {
-    vim = nativePlatforms;
-    unzip = nativePlatforms;
-    ddrescue = nativePlatforms;
-    lynx = nativePlatforms;
-    patchelf = nativePlatforms;
-    buildPackages.binutils = nativePlatforms;
-    mpg123 = nativePlatforms;
-  });
+  rpi = mapTestOnCross lib.systems.examples.raspberryPi rpiCommon;
+  rpi-musl = mapTestOnCross lib.systems.examples.muslpi rpiCommon;
+
+  aarch64-musl = mapTestOnCross lib.systems.examples.aarch64-multiplatform-musl linuxCommon;
 
+  x86_64-musl = mapTestOnCross lib.systems.examples.musl64 linuxCommon;
+
+  /* Linux on Aarch64 */
+  android64 = mapTestOnCross lib.systems.examples.aarch64-android-prebuilt (linuxCommon // {
+  });
 
   /* Cross-built bootstrap tools for every supported platform */
   bootstrapTools = let
     tools = import ../stdenv/linux/make-bootstrap-tools-cross.nix { system = "x86_64-linux"; };
     maintainers = [ lib.maintainers.dezgeg ];
-    mkBootstrapToolsJob = drv: hydraJob' (lib.addMetaAttrs { inherit maintainers; } drv);
+    mkBootstrapToolsJob = drv:
+      assert lib.elem drv.system (supportedSystems ++ [ "aarch64-linux" ]);
+      hydraJob' (lib.addMetaAttrs { inherit maintainers; } drv);
   in lib.mapAttrsRecursiveCond (as: !lib.isDerivation as) (name: mkBootstrapToolsJob) tools;
 }
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index ddc449ae59c14..623c9d9cb000e 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -13,7 +13,7 @@ rec {
 
   allPackages = args: packageSet (args // nixpkgsArgs);
 
-  pkgs = pkgsFor "x86_64-linux";
+  pkgs = packageSet (lib.recursiveUpdate { system = "x86_64-linux"; config.allowUnsupportedSystem = true; } nixpkgsArgs);
   inherit lib;
 
 
@@ -27,6 +27,8 @@ rec {
     if system == "x86_64-linux" then pkgs_x86_64_linux
     else if system == "i686-linux" then pkgs_i686_linux
     else if system == "aarch64-linux" then pkgs_aarch64_linux
+    else if system == "armv6l-linux" then pkgs_armv6l_linux
+    else if system == "armv7l-linux" then pkgs_armv7l_linux
     else if system == "x86_64-darwin" then pkgs_x86_64_darwin
     else if system == "x86_64-freebsd" then pkgs_x86_64_freebsd
     else if system == "i686-freebsd" then pkgs_i686_freebsd
@@ -37,6 +39,8 @@ rec {
   pkgs_x86_64_linux = allPackages { system = "x86_64-linux"; };
   pkgs_i686_linux = allPackages { system = "i686-linux"; };
   pkgs_aarch64_linux = allPackages { system = "aarch64-linux"; };
+  pkgs_armv6l_linux = allPackages { system = "armv6l-linux"; };
+  pkgs_armv7l_linux = allPackages { system = "armv7l-linux"; };
   pkgs_x86_64_darwin = allPackages { system = "x86_64-darwin"; };
   pkgs_x86_64_freebsd = allPackages { system = "x86_64-freebsd"; };
   pkgs_i686_freebsd = allPackages { system = "i686-freebsd"; };
@@ -44,32 +48,56 @@ rec {
   pkgs_x86_64_cygwin = allPackages { system = "x86_64-cygwin"; };
 
 
+  # Given a list of 'meta.platforms'-style patterns, return the sublist of
+  # `supportedSystems` containing systems that matches at least one of the given
+  # patterns.
+  #
+  # This is written in a funny way so that we only elaborate the systems once.
+  supportedMatches = let
+      supportedPlatforms = map
+        (system: lib.systems.elaborate { inherit system; })
+        supportedSystems;
+    in metaPatterns: let
+      anyMatch = platform:
+        lib.any (lib.meta.platformMatch platform) metaPatterns;
+      matchingPlatforms = lib.filter anyMatch supportedPlatforms;
+    in map ({ system, ...}: system) matchingPlatforms;
+
+
   assertTrue = bool:
     if bool
     then pkgs.runCommand "evaluated-to-true" {} "touch $out"
     else pkgs.runCommand "evaluated-to-false" {} "false";
 
+
   /* The working or failing mails for cross builds will be sent only to
      the following maintainers, as most package maintainers will not be
      interested in the result of cross building a package. */
   crossMaintainers = [ maintainers.viric ];
 
-  forAllSupportedSystems = systems: f:
-    genAttrs (filter (x: elem x supportedSystems) systems) f;
+
+  # Generate attributes for all supported systems.
+  forAllSystems = genAttrs supportedSystems;
+
+
+  # Generate attributes for all sytems matching at least one of the given
+  # patterns
+  forMatchingSystems = metaPatterns: genAttrs (supportedMatches metaPatterns);
+
 
   /* Build a package on the given set of platforms.  The function `f'
      is called for each supported platform with Nixpkgs for that
      platform as an argument .  We return an attribute set containing
      a derivation for each supported platform, i.e. ‘{ x86_64-linux =
      f pkgs_x86_64_linux; i686-linux = f pkgs_i686_linux; ... }’. */
-  testOn = systems: f: forAllSupportedSystems systems
+  testOn = metaPatterns: f: forMatchingSystems metaPatterns
     (system: hydraJob' (f (pkgsFor system)));
 
 
   /* Similar to the testOn function, but with an additional
      'crossSystem' parameter for allPackages, defining the target
      platform for cross builds. */
-  testOnCross = crossSystem: systems: f: forAllSupportedSystems systems
+  testOnCross = crossSystem: metaPatterns: f: forMatchingSystems metaPatterns
     (system: hydraJob' (f (allPackages { inherit system crossSystem; })));
 
 
@@ -77,14 +105,14 @@ rec {
      map each leaf node to `testOn [platforms...] (pkgs:
      pkgs.<attrPath>)'. */
   mapTestOn = mapAttrsRecursive
-    (path: systems: testOn systems (pkgs: getAttrFromPath path pkgs));
+    (path: metaPatterns: testOn metaPatterns (pkgs: getAttrFromPath path pkgs));
 
 
   /* Similar to the testOn function, but with an additional 'crossSystem'
    * parameter for allPackages, defining the target platform for cross builds,
    * and triggering the build of the host derivation (cross built - crossDrv). */
   mapTestOnCross = crossSystem: mapAttrsRecursive
-    (path: systems: testOnCross crossSystem systems
+    (path: metaPatterns: testOnCross crossSystem metaPatterns
       (pkgs: addMetaAttrs { maintainers = crossMaintainers; } (getAttrFromPath path pkgs)));
 
 
@@ -93,7 +121,8 @@ rec {
   packagePlatforms = mapAttrs (name: value:
     let res = builtins.tryEval (
       if isDerivation value then
-        value.meta.hydraPlatforms or (value.meta.platforms or [ "x86_64-linux" ])
+        value.meta.hydraPlatforms
+          or (supportedMatches (value.meta.platforms or [ "x86_64-linux" ]))
       else if value.recurseForDerivations or false || value.recurseForRelease or false then
         packagePlatforms value
       else
@@ -103,7 +132,7 @@ rec {
 
 
   /* Common platform groups on which to test packages. */
-  inherit (platforms) unix linux darwin cygwin allBut all mesaPlatforms;
+  inherit (platforms) unix linux darwin cygwin all mesaPlatforms;
 
   /* Platform groups for specific kinds of applications. */
   x11Supported = linux;
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index f329f2460d717..7f574574d8d72 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -2,7 +2,7 @@
    the load on Hydra when testing the `stdenv-updates' branch. */
 
 { nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; }
-, supportedSystems ? [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]
+, supportedSystems ? [ "x86_64-linux" "x86_64-darwin" ]
 }:
 
 with import ./release-lib.nix { inherit supportedSystems; };
@@ -19,10 +19,9 @@ with import ./release-lib.nix { inherit supportedSystems; };
   aspell = all;
   at = linux;
   atlas = linux;
-  aterm25 = all;
   autoconf = all;
   automake = all;
-  avahi = allBut cygwin;  # Cygwin builds fail
+  avahi = unix; # Cygwin builds fail
   bash = all;
   bashInteractive = all;
   bc = all;
@@ -36,6 +35,7 @@ with import ./release-lib.nix { inherit supportedSystems; };
   cpio = all;
   cron = linux;
   cups = linux;
+  dbus = linux;
   dhcp = linux;
   diffutils = all;
   e2fsprogs = linux;
@@ -48,13 +48,12 @@ with import ./release-lib.nix { inherit supportedSystems; };
   gcj = linux;
   glibc = linux;
   glibcLocales = linux;
-  gnat = linux;
   gnugrep = all;
   gnum4 = all;
   gnumake = all;
   gnupatch = all;
   gnupg = linux;
-  gnuplot = allBut cygwin;
+  gnuplot = unix; # Cygwin builds fail
   gnused = all;
   gnutar = all;
   gnutls = linux;
@@ -110,7 +109,8 @@ with import ./release-lib.nix { inherit supportedSystems; };
   mpg321 = linux;
   mutt = linux;
   mysql = linux;
-  netcat = all;
+  # netcat broken on darwin
+  netcat = linux;
   nfs-utils = linux;
   nix = all;
   nixUnstable = all;
@@ -128,7 +128,7 @@ with import ./release-lib.nix { inherit supportedSystems; };
   pkgconfig = all;
   pmccabe = linux;
   procps = linux;
-  python = allBut cygwin;
+  python = unix; # Cygwin builds fail
   readline = all;
   rlwrap = all;
   rpm = linux;
@@ -138,9 +138,9 @@ with import ./release-lib.nix { inherit supportedSystems; };
   scrot = linux;
   sdparm = linux;
   sharutils = all;
-  sloccount = allBut cygwin;
+  sloccount = unix; # Cygwin builds fail
   smartmontools = all;
-  sqlite = allBut cygwin;
+  sqlite = unix; # Cygwin builds fail
   squid = linux;
   ssmtp = linux;
   stdenv = all;
@@ -159,7 +159,6 @@ with import ./release-lib.nix { inherit supportedSystems; };
   udev = linux;
   unar = linux;
   unzip = all;
-  upstart = linux;
   usbutils = linux;
   utillinux = linux;
   utillinuxMinimal = linux;
@@ -176,10 +175,4 @@ with import ./release-lib.nix { inherit supportedSystems; };
   zile = linux;
   zip = all;
 
-  dbus = {
-    libs = linux;
-    daemon = linux;
-    tools = linux;
-  };
-
 } ))
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index be57b40fca640..aee73f2066962 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -8,20 +8,23 @@
 
    $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
 */
-
 { nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; }
 , officialRelease ? false
-, # The platforms for which we build Nixpkgs.
-  supportedSystems ? [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ]
-, # Strip most of attributes when evaluating to spare memory usage
-  scrubJobs ? true
-, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
-  nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
+  # The platforms for which we build Nixpkgs.
+, supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
+, limitedSupportedSystems ? [ "i686-linux" ]
+  # Strip most of attributes when evaluating to spare memory usage
+,  scrubJobs ? true
+  # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+,  nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
 }:
 
 with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
 
 let
+
+  systemsWithAnySupport = supportedSystems ++ limitedSupportedSystems;
+
   jobs =
     { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease; };
 
@@ -35,13 +38,34 @@ let
           meta.description = "Release-critical builds for the Nixpkgs darwin channel";
           constituents =
             [ jobs.tarball
-              jobs.stdenv.x86_64-darwin
-              jobs.ghc.x86_64-darwin
               jobs.cabal2nix.x86_64-darwin
-              jobs.ruby.x86_64-darwin
+              jobs.emacs.x86_64-darwin
+              jobs.ghc.x86_64-darwin
+              jobs.git.x86_64-darwin
+              jobs.go.x86_64-darwin
+              jobs.mysql.x86_64-darwin
+              jobs.nix-repl.x86_64-darwin
+              jobs.nix.x86_64-darwin
+              jobs.nox.x86_64-darwin
+              jobs.nix-info.x86_64-darwin
+              jobs.nix-info-tested.x86_64-darwin
+              jobs.openssh.x86_64-darwin
+              jobs.openssl.x86_64-darwin
+              jobs.postgresql.x86_64-darwin
               jobs.python.x86_64-darwin
+              jobs.python3.x86_64-darwin
+              jobs.ruby.x86_64-darwin
               jobs.rustc.x86_64-darwin
-              jobs.go.x86_64-darwin
+              jobs.stdenv.x86_64-darwin
+              jobs.vim.x86_64-darwin
+
+              jobs.tests.cc-wrapper.x86_64-darwin
+              jobs.tests.cc-wrapper-clang.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx.x86_64-darwin
+              jobs.tests.cc-wrapper-clang-39.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx-39.x86_64-darwin
+              jobs.tests.stdenv-inputs.x86_64-darwin
+              jobs.tests.macOSSierraShared.x86_64-darwin
             ];
         };
 
@@ -54,53 +78,83 @@ let
               jobs.manual
               jobs.lib-tests
               jobs.stdenv.x86_64-linux
-              jobs.stdenv.i686-linux
               jobs.stdenv.x86_64-darwin
               jobs.linux.x86_64-linux
-              jobs.linux.i686-linux
               jobs.python.x86_64-linux
-              jobs.python.i686-linux
               jobs.python.x86_64-darwin
               jobs.python3.x86_64-linux
-              jobs.python3.i686-linux
               jobs.python3.x86_64-darwin
               # Many developers use nix-repl
               jobs.nix-repl.x86_64-linux
-              jobs.nix-repl.i686-linux
               jobs.nix-repl.x86_64-darwin
               # Needed by travis-ci to test PRs
-              jobs.nox.i686-linux
               jobs.nox.x86_64-linux
               jobs.nox.x86_64-darwin
+              # Needed for support
+              jobs.nix-info.x86_64-linux
+              jobs.nix-info.x86_64-darwin
+              jobs.nix-info-tested.x86_64-linux
+              jobs.nix-info-tested.x86_64-darwin
               # Ensure that X11/GTK+ are in order.
               jobs.thunderbird.x86_64-linux
-              jobs.thunderbird.i686-linux
               # Ensure that basic stuff works on darwin
               jobs.git.x86_64-darwin
               jobs.mysql.x86_64-darwin
               jobs.vim.x86_64-darwin
+
+              jobs.tests.cc-wrapper.x86_64-linux
+              jobs.tests.cc-wrapper.x86_64-darwin
+              jobs.tests.cc-wrapper-clang.x86_64-linux
+              jobs.tests.cc-wrapper-clang.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx.x86_64-linux
+              jobs.tests.cc-wrapper-libcxx.x86_64-darwin
+              jobs.tests.cc-wrapper-clang-39.x86_64-linux
+              jobs.tests.cc-wrapper-clang-39.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx-39.x86_64-linux
+              jobs.tests.cc-wrapper-libcxx-39.x86_64-darwin
+              jobs.tests.cc-wrapper-clang-4.x86_64-linux
+              jobs.tests.cc-wrapper-clang-4.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx-4.x86_64-linux
+              jobs.tests.cc-wrapper-libcxx-4.x86_64-darwin
+              jobs.tests.cc-wrapper-clang-5.x86_64-linux
+              jobs.tests.cc-wrapper-clang-5.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx-5.x86_64-linux
+              jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
+              jobs.tests.cc-wrapper-clang-6.x86_64-linux
+              jobs.tests.cc-wrapper-clang-6.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx-6.x86_64-linux
+              jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
+              jobs.tests.cc-multilib-gcc.x86_64-linux
+              jobs.tests.cc-multilib-clang.x86_64-linux
+              jobs.tests.stdenv-inputs.x86_64-linux
+              jobs.tests.stdenv-inputs.x86_64-darwin
+              jobs.tests.macOSSierraShared.x86_64-darwin
             ] ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools;
         };
-    } // (lib.optionalAttrs (builtins.elem "i686-linux" supportedSystems) {
-      stdenvBootstrapTools.i686-linux =
-        { inherit (import ../stdenv/linux/make-bootstrap-tools.nix { system = "i686-linux"; }) dist test; };
-    }) // (lib.optionalAttrs (builtins.elem "x86_64-linux" supportedSystems) {
-      stdenvBootstrapTools.x86_64-linux =
-        { inherit (import ../stdenv/linux/make-bootstrap-tools.nix { system = "x86_64-linux"; }) dist test; };
-    }) // (lib.optionalAttrs (builtins.elem "aarch64-linux" supportedSystems) {
-      stdenvBootstrapTools.aarch64-linux =
-        { inherit (import ../stdenv/linux/make-bootstrap-tools.nix { system = "aarch64-linux"; }) dist test; };
-    }) // (lib.optionalAttrs (builtins.elem "x86_64-darwin" supportedSystems) {
-      stdenvBootstrapTools.x86_64-darwin =
-        let
-          bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix { system = "x86_64-darwin"; };
-        in {
-          # Lightweight distribution and test
-          inherit (bootstrap) dist test;
-          # Test a full stdenv bootstrap from the bootstrap tools definition
-          inherit (bootstrap.test-pkgs) stdenv;
-        };
-    }) // (mapTestOn ((packagePlatforms pkgs) // rec {
+
+      stdenvBootstrapTools = with lib;
+        genAttrs systemsWithAnySupport
+          (system: {
+            inherit
+              (import ../stdenv/linux/make-bootstrap-tools.nix {
+                localSystem = { inherit system; };
+              })
+              dist test;
+          })
+        # darwin is special in this
+        // optionalAttrs (builtins.elem "x86_64-darwin" systemsWithAnySupport) {
+          x86_64-darwin =
+            let
+              bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix { system = "x86_64-darwin"; };
+            in {
+              # Lightweight distribution and test
+              inherit (bootstrap) dist test;
+              # Test a full stdenv bootstrap from the bootstrap tools definition
+              inherit (bootstrap.test-pkgs) stdenv;
+            };
+          };
+
+    } // (mapTestOn ((packagePlatforms pkgs) // rec {
       haskell.compiler = packagePlatforms pkgs.haskell.compiler;
       haskellPackages = packagePlatforms pkgs.haskellPackages;
 
@@ -110,25 +164,12 @@ let
       #rPackages = packagePlatforms pkgs.rPackages;
       ocamlPackages = { };
       perlPackages = { };
-      pythonPackages = {
-        blaze = unix;
-        pandas = unix;
-        scikitlearn = unix;
-      };
-      python2Packages = { };
-      python27Packages = { };
-      python3Packages = { };
-      python35Packages = {
-        blaze = unix;
-        pandas = unix;
-        scikitlearn = unix;
-      };
-      python36Packages = {
-        blaze = unix;
-        pandas = unix;
-        scikitlearn = unix;
-      };
 
+      darwin = packagePlatforms pkgs.darwin // {
+        cf-private = {};
+        osx_private_sdk = {};
+        xcode = {};
+      };
     } ));
 
 in jobs
diff --git a/pkgs/top-level/rust-packages.nix b/pkgs/top-level/rust-packages.nix
deleted file mode 100644
index 1caef26322d7b..0000000000000
--- a/pkgs/top-level/rust-packages.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-# This file defines the source of Rust / cargo's crates registry
-#
-# buildRustPackage will automatically download dependencies from the registry
-# version that we define here. If you're having problems downloading / finding
-# a Rust library, try updating this to a newer commit.
-
-{ stdenv, fetchFromGitHub, git }:
-
-stdenv.mkDerivation {
-  name = "rustRegistry-2017-07-23";
-
-  src = fetchFromGitHub {
-    owner = "rust-lang";
-    repo = "crates.io-index";
-    rev = "ed8e6a6761278861db046073cc69d6a5e7dd8c15";
-    sha256 = "1v72m0h31xcay2m64n2wil5wqnl8z4n4adxxpdllcpgj3pj5jai6";
-  };
-  phases = [ "unpackPhase" "installPhase" ];
-  installPhase = ''
-    # For some reason, cargo doesn't like fetchgit's git repositories, not even
-    # if we set leaveDotGit to true, set the fetchgit branch to 'master' and clone
-    # the repository (tested with registry rev
-    # 965b634156cc5c6f10c7a458392bfd6f27436e7e), failing with the message:
-    #
-    # "Target OID for the reference doesn't exist on the repository"
-    #
-    # So we'll just have to create a new git repository from scratch with the
-    # contents downloaded with fetchgit...
-
-    mkdir -p $out
-
-    cp -r ./* $out/
-
-    cd $out
-
-    git="${git}/bin/git"
-
-    $git init
-    $git config --local user.email "example@example.com"
-    $git config --local user.name "example"
-    $git add .
-    $git commit --quiet -m 'Rust registry commit'
-
-    touch $out/touch . "$out/.cargo-index-lock"
-  '';
-}
diff --git a/pkgs/top-level/splice.nix b/pkgs/top-level/splice.nix
index 43951100de3d7..1fde08d1d48b4 100644
--- a/pkgs/top-level/splice.nix
+++ b/pkgs/top-level/splice.nix
@@ -24,38 +24,73 @@
 lib: pkgs: actuallySplice:
 
 let
-  defaultBuildScope = pkgs.buildPackages // pkgs.buildPackages.xorg;
+  defaultBuildBuildScope = pkgs.buildPackages.buildPackages // pkgs.buildPackages.buildPackages.xorg;
+  defaultBuildHostScope = pkgs.buildPackages // pkgs.buildPackages.xorg;
+  defaultBuildTargetScope =
+    if pkgs.targetPlatform == pkgs.hostPlatform
+    then defaultBuildHostScope
+    else assert pkgs.hostPlatform == pkgs.buildPlatform; defaultHostTargetScope;
+  defaultHostHostScope = {}; # unimplemented
   # TODO(@Ericson2314): we shouldn't preclude run-time fetching by removing
   # these attributes. We should have a more general solution for selecting
   # whether `nativeDrv` or `crossDrv` is the default in `defaultScope`.
   pkgsWithoutFetchers = lib.filterAttrs (n: _: !lib.hasPrefix "fetch" n) pkgs;
-  defaultRunScope = pkgsWithoutFetchers // pkgs.xorg;
+  targetPkgsWithoutFetchers = lib.filterAttrs (n: _: !lib.hasPrefix "fetch" n) pkgs.targetPackages;
+  defaultHostTargetScope = pkgsWithoutFetchers // pkgs.xorg;
+  defaultTargetTargetScope = targetPkgsWithoutFetchers // targetPkgsWithoutFetchers.xorg or {};
 
-  splicer = buildPkgs: runPkgs: let
-    mash = buildPkgs // runPkgs;
+  splicer = pkgsBuildBuild: pkgsBuildHost: pkgsBuildTarget:
+            pkgsHostHost: pkgsHostTarget:
+            pkgsTargetTarget: let
+    mash =
+      # Other pkgs sets
+      pkgsBuildBuild // pkgsBuildTarget // pkgsHostHost // pkgsTargetTarget
+      # The same pkgs sets one probably intends
+      // pkgsBuildHost // pkgsHostTarget;
     merge = name: {
       inherit name;
       value = let
         defaultValue = mash.${name};
-        buildValue = buildPkgs.${name} or {};
-        runValue = runPkgs.${name} or {};
+        # `or {}` is for the non-derivation attsert splicing case, where `{}` is the identity.
+        valueBuildBuild = pkgsBuildBuild.${name} or {};
+        valueBuildHost = pkgsBuildHost.${name} or {};
+        valueBuildTarget = pkgsBuildTarget.${name} or {};
+        valueHostHost = throw "`valueHostHost` unimplemented: pass manually rather than relying on splicer.";
+        valueHostTarget = pkgsHostTarget.${name} or {};
+        valueTargetTarget = pkgsTargetTarget.${name} or {};
         augmentedValue = defaultValue
-          // (lib.optionalAttrs (buildPkgs ? ${name}) { nativeDrv = buildValue; })
-          // (lib.optionalAttrs (runPkgs ? ${name}) { crossDrv = runValue; });
-        # Get the set of outputs of a derivation
-        getOutputs = value:
-          lib.genAttrs (value.outputs or []) (output: value.${output});
+          # TODO(@Ericson2314): Stop using old names after transition period
+          // (lib.optionalAttrs (pkgsBuildHost ? ${name}) { nativeDrv = valueBuildHost; })
+          // (lib.optionalAttrs (pkgsHostTarget ? ${name}) { crossDrv = valueHostTarget; })
+          // {
+            __spliced =
+                 (lib.optionalAttrs (pkgsBuildBuild ? ${name}) { buildBuild = valueBuildBuild; })
+              // (lib.optionalAttrs (pkgsBuildTarget ? ${name}) { buildTarget = valueBuildTarget; })
+              // { hostHost = valueHostHost; }
+              // (lib.optionalAttrs (pkgsTargetTarget ? ${name}) { targetTarget = valueTargetTarget;
+          });
+        };
+        # Get the set of outputs of a derivation. If one derivation fails to
+        # evaluate we don't want to diverge the entire splice, so we fall back
+        # on {}
+        tryGetOutputs = value0: let
+          inherit (builtins.tryEval value0) success value;
+        in getOutputs (lib.optionalAttrs success value);
+        getOutputs = value: lib.genAttrs
+          (value.outputs or (lib.optional (value ? out) "out"))
+          (output: value.${output});
       in
-        # Certain *Cross derivations will fail assertions, but we need their
-        # nativeDrv. We are assuming anything that fails to evaluate is an
-        # attrset (including derivation) and thus can be unioned.
-        if !(builtins.tryEval defaultValue).success then augmentedValue
         # The derivation along with its outputs, which we recur
         # on to splice them together.
-        else if lib.isDerivation defaultValue then augmentedValue
-          // splicer (getOutputs buildValue) (getOutputs runValue)
+        if lib.isDerivation defaultValue then augmentedValue // splicer
+          (tryGetOutputs valueBuildBuild) (tryGetOutputs valueBuildHost) (tryGetOutputs valueBuildTarget)
+          (tryGetOutputs valueHostHost) (getOutputs valueHostTarget)
+          (tryGetOutputs valueTargetTarget)
         # Just recur on plain attrsets
-        else if lib.isAttrs defaultValue then splicer buildValue runValue
+        else if lib.isAttrs defaultValue then splicer
+          valueBuildBuild valueBuildHost valueBuildTarget
+          {} valueHostTarget
+          valueTargetTarget
         # Don't be fancy about non-derivations. But we could have used used
         # `__functor__` for functions instead.
         else defaultValue;
@@ -64,11 +99,16 @@ let
 
   splicedPackages =
     if actuallySplice
-    then splicer defaultBuildScope defaultRunScope // {
-      # These should never be spliced under any circumstances
-      inherit (pkgs) pkgs buildPackages __targetPackages
-        buildPlatform targetPlatform hostPlatform;
-    }
+    then
+      splicer
+        defaultBuildBuildScope defaultBuildHostScope defaultBuildTargetScope
+        defaultHostHostScope defaultHostTargetScope
+        defaultTargetTargetScope
+      // {
+        # These should never be spliced under any circumstances
+        inherit (pkgs) pkgs buildPackages targetPackages
+          buildPlatform targetPlatform hostPlatform;
+      }
     else pkgs // pkgs.xorg;
 
 in
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 617fa0c30ce85..de676c5a42105 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -26,13 +26,13 @@
   # us to avoid expensive splicing.
   buildPackages
 
-, # The package set used in the next stage. If null, `__targetPackages` will be
+, # The package set used in the next stage. If null, `targetPackages` will be
   # defined internally as the final produced package set itself, just like with
   # `buildPackages` and for the same reasons.
   #
   # THIS IS A HACK for compilers that don't think critically about cross-
   # compilation. Please do *not* use unless you really know what you are doing.
-  __targetPackages
+  targetPackages
 
 , # The standard environment to use for building packages.
   stdenv
@@ -72,7 +72,7 @@ let
   stdenvBootstappingAndPlatforms = self: super: {
     buildPackages = (if buildPackages == null then self else buildPackages)
       // { recurseForDerivations = false; };
-    __targetPackages = (if __targetPackages == null then self else __targetPackages)
+    targetPackages = (if targetPackages == null then self else targetPackages)
       // { recurseForDerivations = false; };
     inherit stdenv;
   };
@@ -116,7 +116,9 @@ let
     lib.optionalAttrs allowCustomOverrides
       ((config.packageOverrides or (super: {})) super);
 
-  # The complete chain of package set builders, applied from top to bottom
+  # The complete chain of package set builders, applied from top to bottom.
+  # stdenvOverlays must be last as it brings package forward from the
+  # previous bootstrapping phases which have already been overlayed.
   toFix = lib.foldl' (lib.flip lib.extends) (self: {}) ([
     stdenvBootstappingAndPlatforms
     platformCompat
@@ -125,9 +127,9 @@ let
     splice
     allPackages
     aliases
-    stdenvOverrides
     configOverrides
-  ] ++ overlays);
+  ] ++ overlays ++ [
+    stdenvOverrides ]);
 
 in
   # Return the complete set of packages.