summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--default.nix4
-rw-r--r--doc/language-support.xml11
-rw-r--r--doc/meta.xml28
-rw-r--r--doc/quick-start.xml11
-rw-r--r--lib/licenses.nix10
-rw-r--r--lib/maintainers.nix6
-rw-r--r--lib/modules.nix46
-rw-r--r--lib/platforms.nix2
-rw-r--r--lib/types.nix27
-rw-r--r--nixos/doc/manual/configuration/user-mgmt.xml8
-rw-r--r--nixos/doc/manual/configuration/x-windows.xml2
-rw-r--r--nixos/doc/manual/default.nix51
-rw-r--r--nixos/doc/manual/man-nixos-option.xml66
-rw-r--r--nixos/lib/test-driver/log2html.xsl4
-rw-r--r--nixos/lib/testing.nix2
-rw-r--r--nixos/lib/utils.nix3
-rwxr-xr-xnixos/maintainers/scripts/azure/create-azure.sh11
-rw-r--r--nixos/modules/config/pulseaudio.nix14
-rw-r--r--nixos/modules/config/shells-environment.nix43
-rw-r--r--nixos/modules/config/update-users-groups.pl239
-rw-r--r--nixos/modules/config/users-groups.nix235
-rw-r--r--nixos/modules/installer/cd-dvd/iso-image.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix1
-rw-r--r--nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix1
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl51
-rw-r--r--nixos/modules/installer/tools/nixos-install.sh5
-rw-r--r--nixos/modules/installer/tools/nixos-option.sh76
-rw-r--r--nixos/modules/installer/tools/nixos-rebuild.sh8
-rw-r--r--nixos/modules/installer/tools/tools.nix1
-rw-r--r--nixos/modules/installer/virtualbox-demo.nix3
-rw-r--r--nixos/modules/misc/ids.nix1
-rw-r--r--nixos/modules/misc/locate.nix2
-rwxr-xr-x[-rw-r--r--]nixos/modules/module-list.nix10
-rw-r--r--nixos/modules/profiles/base.nix1
-rw-r--r--nixos/modules/profiles/demo.nix7
-rw-r--r--nixos/modules/programs/environment.nix38
-rw-r--r--nixos/modules/programs/ssh.nix9
-rw-r--r--nixos/modules/programs/virtualbox.nix2
-rw-r--r--nixos/modules/security/setuid-wrappers.nix5
-rw-r--r--nixos/modules/services/amqp/rabbitmq.nix4
-rw-r--r--nixos/modules/services/computing/torque/mom.nix63
-rw-r--r--nixos/modules/services/computing/torque/server.nix96
-rw-r--r--nixos/modules/services/continuous-integration/jenkins/default.nix29
-rw-r--r--nixos/modules/services/continuous-integration/jenkins/slave.nix6
-rw-r--r--nixos/modules/services/databases/influxdb.nix5
-rw-r--r--nixos/modules/services/logging/logstash.nix18
-rw-r--r--nixos/modules/services/misc/mesos-master.nix103
-rw-r--r--nixos/modules/services/misc/mesos-slave.nix93
-rw-r--r--nixos/modules/services/misc/phd.nix52
-rw-r--r--nixos/modules/services/monitoring/apcupsd.nix1
-rw-r--r--nixos/modules/services/monitoring/graphite.nix97
-rw-r--r--nixos/modules/services/monitoring/munin.nix16
-rw-r--r--nixos/modules/services/monitoring/statsd.nix32
-rw-r--r--nixos/modules/services/network-filesystems/diod.nix160
-rw-r--r--nixos/modules/services/network-filesystems/yandex-disk.nix104
-rw-r--r--nixos/modules/services/networking/copy-com.nix53
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix3
-rw-r--r--nixos/modules/services/networking/dnsmasq.nix19
-rw-r--r--nixos/modules/services/networking/nat.nix33
-rw-r--r--nixos/modules/services/networking/nsd.nix416
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix46
-rw-r--r--nixos/modules/services/networking/unbound.nix32
-rw-r--r--nixos/modules/services/networking/znc.nix1
-rw-r--r--nixos/modules/services/printing/cupsd.nix24
-rw-r--r--nixos/modules/services/search/elasticsearch.nix5
-rw-r--r--nixos/modules/services/security/fail2ban.nix4
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/mediawiki-postgresql-fixes.patch22
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/mediawiki.nix6
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/phabricator.nix61
-rw-r--r--nixos/modules/services/web-servers/tomcat.nix11
-rw-r--r--nixos/modules/services/x11/desktop-managers/xfce.nix4
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix43
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl180
-rw-r--r--nixos/modules/system/boot/loader/gummiboot/gummiboot.nix2
-rw-r--r--nixos/modules/system/boot/modprobe.nix5
-rw-r--r--nixos/modules/system/boot/stage-1.nix2
-rw-r--r--nixos/modules/tasks/cpu-freq.nix4
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix6
-rw-r--r--nixos/modules/tasks/network-interfaces.nix96
-rw-r--r--nixos/modules/virtualisation/azure-config.nix5
-rw-r--r--nixos/modules/virtualisation/azure-image.nix125
-rw-r--r--nixos/modules/virtualisation/containers.nix5
-rw-r--r--nixos/modules/virtualisation/docker.nix1
-rw-r--r--nixos/modules/virtualisation/nixos-container.pl23
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix2
-rw-r--r--nixos/release-combined.nix7
-rw-r--r--nixos/release.nix6
-rw-r--r--nixos/tests/bittorrent.nix2
-rw-r--r--nixos/tests/common/user-account.nix6
-rw-r--r--nixos/tests/containers.nix31
-rw-r--r--nixos/tests/gnome3.nix2
-rw-r--r--nixos/tests/gnome3_12.nix2
-rw-r--r--nixos/tests/installer.nix63
-rw-r--r--nixos/tests/jenkins.nix2
-rw-r--r--nixos/tests/munin.nix1
-rw-r--r--nixos/tests/nsd.nix83
-rw-r--r--nixos/tests/phabricator.nix7
-rw-r--r--pkgs/applications/audio/flac/default.nix2
-rw-r--r--pkgs/applications/audio/fldigi/default.nix4
-rw-r--r--pkgs/applications/audio/gpodder/default.nix38
-rw-r--r--pkgs/applications/audio/moc/default.nix14
-rw-r--r--pkgs/applications/audio/monkeys-audio/default.nix2
-rwxr-xr-xpkgs/applications/audio/mpc/default.nix10
-rw-r--r--pkgs/applications/audio/musescore/default.nix33
-rw-r--r--pkgs/applications/editors/eclipse/default.nix17
-rw-r--r--pkgs/applications/editors/ed/default.nix9
-rw-r--r--pkgs/applications/editors/emacs-modes/dash/default.nix23
-rw-r--r--pkgs/applications/editors/emacs-modes/ensime/default.nix22
-rw-r--r--pkgs/applications/editors/emacs-modes/rainbow-delimiters/default.nix23
-rw-r--r--pkgs/applications/editors/emacs-modes/s/default.nix23
-rw-r--r--pkgs/applications/editors/emacs-modes/scala-mode/v2.nix6
-rw-r--r--pkgs/applications/editors/idea/default.nix4
-rw-r--r--pkgs/applications/editors/scite/default.nix2
-rw-r--r--pkgs/applications/editors/sublime3/default.nix2
-rw-r--r--pkgs/applications/editors/vanubi/default.nix28
-rw-r--r--pkgs/applications/editors/zed/default.nix29
-rw-r--r--pkgs/applications/editors/zed/node.nix921
-rw-r--r--pkgs/applications/editors/zile/default.nix16
-rw-r--r--pkgs/applications/graphics/kgraphviewer/default.nix21
-rw-r--r--pkgs/applications/graphics/panotools/default.nix4
-rw-r--r--pkgs/applications/graphics/photivo/default.nix2
-rw-r--r--pkgs/applications/graphics/processing/default.nix21
-rw-r--r--pkgs/applications/misc/arbtt/default.nix4
-rw-r--r--pkgs/applications/misc/bitcoin/altcoins.nix47
-rw-r--r--pkgs/applications/misc/bitcoin/dogecoin.nix71
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/cura/default.nix12
-rw-r--r--pkgs/applications/misc/curaengine/default.nix37
-rw-r--r--pkgs/applications/misc/fme/default.nix33
-rw-r--r--pkgs/applications/misc/galculator/default.nix10
-rw-r--r--pkgs/applications/misc/gnuradio/default.nix4
-rw-r--r--pkgs/applications/misc/k3b/default.nix6
-rw-r--r--pkgs/applications/misc/keepass/default.nix4
-rw-r--r--pkgs/applications/misc/keepassx/2.0.nix6
-rw-r--r--pkgs/applications/misc/lilyterm/default.nix10
-rw-r--r--pkgs/applications/misc/namecoin/default.nix37
-rw-r--r--pkgs/applications/misc/namecoin/qt.nix33
-rw-r--r--pkgs/applications/misc/pstree/default.nix2
-rw-r--r--pkgs/applications/misc/redshift/default.nix4
-rw-r--r--pkgs/applications/misc/rxvt_unicode/default.nix2
-rw-r--r--pkgs/applications/misc/spacefm/default.nix4
-rw-r--r--pkgs/applications/misc/synergy/default.nix6
-rw-r--r--pkgs/applications/misc/tilda/default.nix3
-rw-r--r--pkgs/applications/misc/vym/default.nix8
-rw-r--r--pkgs/applications/misc/xiphos/default.nix57
-rw-r--r--pkgs/applications/networking/browsers/dillo/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix360
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb2
-rw-r--r--pkgs/applications/networking/browsers/firefox/30.nix211
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix7
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix31
-rw-r--r--pkgs/applications/networking/browsers/w3m/default.nix2
-rw-r--r--pkgs/applications/networking/copy-com/default.nix58
-rw-r--r--pkgs/applications/networking/ike/default.nix (renamed from pkgs/applications/ike/default.nix)0
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix20
-rw-r--r--pkgs/applications/networking/instant-messengers/ekiga/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram-cli/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/twinkle/default.nix2
-rw-r--r--pkgs/applications/networking/linssid/default.nix34
-rw-r--r--pkgs/applications/networking/mailreaders/mailpile/default.nix28
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix4
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/default.nix5
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix26
-rw-r--r--pkgs/applications/office/zim/default.nix103
-rw-r--r--pkgs/applications/office/zotero/default.nix6
-rw-r--r--pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--pkgs/applications/science/logic/coq/HEAD.nix6
-rw-r--r--pkgs/applications/science/math/fricas/default.nix2
-rw-r--r--pkgs/applications/science/math/pari/default.nix9
-rw-r--r--pkgs/applications/version-management/diffuse/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/cgit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/hub/default.nix5
-rw-r--r--pkgs/applications/version-management/git-and-tools/svn2git/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix5
-rw-r--r--pkgs/applications/version-management/meld/default.nix2
-rw-r--r--pkgs/applications/version-management/smartgithg/default.nix59
-rw-r--r--pkgs/applications/version-management/subversion/default.nix4
-rw-r--r--pkgs/applications/video/aegisub/default.nix4
-rw-r--r--pkgs/applications/video/mpv/default.nix17
-rw-r--r--pkgs/applications/video/shotcut/default.nix4
-rw-r--r--pkgs/applications/video/subtitleeditor/default.nix2
-rw-r--r--pkgs/applications/video/wxcam/default.nix51
-rw-r--r--pkgs/applications/video/xbmc/default.nix1
-rw-r--r--pkgs/applications/virtualization/8086tiny/default.nix3
-rw-r--r--pkgs/applications/virtualization/bochs/default.nix17
-rw-r--r--pkgs/applications/virtualization/docker/default.nix8
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix1
-rw-r--r--pkgs/applications/virtualization/virt-viewer/default.nix2
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix1
-rw-r--r--pkgs/applications/window-managers/bar/default.nix4
-rw-r--r--pkgs/applications/window-managers/bspwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/fluxbox/default.nix19
-rw-r--r--pkgs/applications/window-managers/jwm/default.nix2
-rw-r--r--pkgs/build-support/agda/default.nix95
-rw-r--r--pkgs/build-support/build-fhs-chrootenv/default.nix207
-rw-r--r--pkgs/build-support/build-fhs-chrootenv/destroy.sh.in5
-rw-r--r--pkgs/build-support/build-fhs-chrootenv/init.sh.in3
-rw-r--r--pkgs/build-support/build-fhs-chrootenv/mount.sh.in3
-rw-r--r--pkgs/build-support/build-fhs-chrootenv/umount.sh.in2
-rw-r--r--pkgs/build-support/fetchgit/default.nix6
-rw-r--r--pkgs/build-support/gcc-wrapper/gcc-wrapper.sh1
-rw-r--r--pkgs/build-support/grsecurity/default.nix2
-rw-r--r--pkgs/build-support/setup-hooks/make-wrapper.sh5
-rw-r--r--pkgs/build-support/upstream-updater/update-walker-service-specific.sh4
-rwxr-xr-xpkgs/build-support/upstream-updater/update-walker.sh10
-rw-r--r--pkgs/build-support/vm/rpm/rpm-closure.pl2
-rw-r--r--pkgs/data/documentation/pthread-man-pages/default.nix2
-rw-r--r--pkgs/data/fonts/arkpandora/default.nix1
-rw-r--r--pkgs/data/fonts/baekmuk-ttf/default.nix29
-rw-r--r--pkgs/data/fonts/proggyfonts/default.nix40
-rw-r--r--pkgs/data/fonts/stix-otf/default.nix30
-rw-r--r--pkgs/data/fonts/symbola/default.nix2
-rw-r--r--pkgs/data/fonts/wqy-microhei/default.nix4
-rw-r--r--pkgs/data/fonts/wqy-zenhei/default.nix4
-rw-r--r--pkgs/data/misc/miscfiles/default.nix9
-rw-r--r--pkgs/data/misc/shared-mime-info/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/gedit/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/gnome-documents/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/3.10/apps/gnome-music/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/empathy/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/evolution-data-server/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/folks/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-shell/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/grilo/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/totem/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/totem/fix_files_loss.patch72
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/tracker/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/core/vte/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/geary/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gpaste/default.nix3
-rw-r--r--pkgs/desktops/kde-4.12/files/kdelibs-cve-2014-5033.patch36
-rw-r--r--pkgs/desktops/kde-4.12/kdelibs/kdelibs.nix5
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-mixer.nix12
-rw-r--r--pkgs/development/compilers/agda/default.nix2
-rw-r--r--pkgs/development/compilers/agda/stdlib.nix31
-rw-r--r--pkgs/development/compilers/gcc/4.8/default.nix26
-rw-r--r--pkgs/development/compilers/gcc/4.8/no-sys-dirs.patch28
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix18
-rw-r--r--pkgs/development/compilers/gwydion-dylan/binary-builder.sh9
-rw-r--r--pkgs/development/compilers/gwydion-dylan/binary.nix10
-rw-r--r--pkgs/development/compilers/gwydion-dylan/builder.sh8
-rw-r--r--pkgs/development/compilers/gwydion-dylan/default.nix13
-rw-r--r--pkgs/development/compilers/idris/default.nix6
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk7-linux.nix6
-rw-r--r--pkgs/development/compilers/orc/default.nix8
-rw-r--r--pkgs/development/compilers/rustc/hardcode_paths.patch6
-rw-r--r--pkgs/development/compilers/rustc/head.nix18
-rw-r--r--pkgs/development/compilers/rustc/local_stage0.patch7
-rw-r--r--pkgs/development/compilers/sbcl/1.2.0.nix78
-rw-r--r--pkgs/development/compilers/scala/default.nix4
-rw-r--r--pkgs/development/compilers/urweb/default.nix4
-rw-r--r--pkgs/development/interpreters/chibi/default.nix37
-rw-r--r--pkgs/development/interpreters/elixir/default.nix6
-rw-r--r--pkgs/development/interpreters/erlang/R16.nix9
-rw-r--r--pkgs/development/interpreters/erlang/R17.nix9
-rw-r--r--pkgs/development/interpreters/jimtcl/default.nix32
-rw-r--r--pkgs/development/interpreters/lua-5/5.1.nix10
-rw-r--r--pkgs/development/interpreters/lua-5/5.2.nix16
-rw-r--r--pkgs/development/interpreters/lua-5/sec.nix2
-rw-r--r--pkgs/development/interpreters/lua-5/sockets.nix4
-rw-r--r--pkgs/development/interpreters/octave/default.nix3
-rw-r--r--pkgs/development/interpreters/perl/5.16/default.nix6
-rw-r--r--pkgs/development/interpreters/php/5.4.nix4
-rw-r--r--pkgs/development/interpreters/regina/default.nix12
-rw-r--r--pkgs/development/interpreters/regina/default.upstream5
-rw-r--r--pkgs/development/interpreters/ruby/generated.nix379
-rw-r--r--pkgs/development/interpreters/ruby/rubygems.nix8
-rw-r--r--pkgs/development/interpreters/scheme48/default.nix7
-rw-r--r--pkgs/development/libraries/agda/AgdaSheaves/default.nix23
-rw-r--r--pkgs/development/libraries/agda/bitvector/default.nix23
-rw-r--r--pkgs/development/libraries/aterm/2.5.nix2
-rw-r--r--pkgs/development/libraries/aterm/2.8.nix2
-rw-r--r--pkgs/development/libraries/cimg/builder.sh12
-rw-r--r--pkgs/development/libraries/cimg/default.nix26
-rw-r--r--pkgs/development/libraries/cloog/default.nix2
-rw-r--r--pkgs/development/libraries/clutter-gst/default.nix4
-rw-r--r--pkgs/development/libraries/directfb/src-for-default.nix10
-rw-r--r--pkgs/development/libraries/ffmpeg/1.x.nix5
-rw-r--r--pkgs/development/libraries/flite/default.nix9
-rw-r--r--pkgs/development/libraries/gecode/default.nix21
-rw-r--r--pkgs/development/libraries/glew/default.nix10
-rw-r--r--pkgs/development/libraries/glibc/2.19/common.nix1
-rw-r--r--pkgs/development/libraries/glibc/2.19/cve-2014-5119.patch206
-rw-r--r--pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch25
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix2
-rw-r--r--pkgs/development/libraries/gperftools/default.nix12
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--pkgs/development/libraries/gtkspellmm/default.nix35
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Chart-cairo/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Chart-diagrams/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/Chart-gtk/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/Chart/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/DAV/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/MFlow/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/aeson-qq/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/async/2.0.1.6.nix (renamed from pkgs/development/libraries/haskell/async/2.0.1.5.nix)4
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/0.12.1.2.nix (renamed from pkgs/development/libraries/haskell/attoparsec/0.12.1.1.nix)8
-rw-r--r--pkgs/development/libraries/haskell/auto-update/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/aws/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/base-prelude/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/blaze-html/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/blaze-markup/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/boundingboxes/0.1.1.nix24
-rw-r--r--pkgs/development/libraries/haskell/boundingboxes/default.nix (renamed from pkgs/development/libraries/haskell/boundingboxes/0.2.nix)6
-rw-r--r--pkgs/development/libraries/haskell/bytes/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/c2hs/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/1.2.0.1.nix (renamed from pkgs/development/libraries/haskell/case-insensitive/1.2.0.0.nix)4
-rw-r--r--pkgs/development/libraries/haskell/cereal-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/checkers/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/conduit-combinators/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/conduit-extra/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/criterion/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/crypto-api/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/crypto-random/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cuda/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/cairo.nix5
-rw-r--r--pkgs/development/libraries/haskell/diagrams/contrib.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/lib.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/rasterific.nix4
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors-heist/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/dimensional/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/directory-layout/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/djinn/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/doctest/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/either/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/entropy/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/esqueleto/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/fay/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fb/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/file-location/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/functor-infix/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/generic-aeson/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/geniplate/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/ghc-mod/5.0.1.2.nix (renamed from pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix)4
-rw-r--r--pkgs/development/libraries/haskell/ghc-server/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/github/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/gloss/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/haddock-api/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/haddock-library/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/haskell-packages/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/haste-compiler/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/haxr/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/hindent/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/hledger-lib/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hledger-web/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hledger/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hmatrix/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/holy-project/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hoogle/hoogle-local-wrapper.sh6
-rw-r--r--pkgs/development/libraries/haskell/hoogle/hoogle-local.diff28
-rw-r--r--pkgs/development/libraries/haskell/hoogle/local.nix106
-rw-r--r--pkgs/development/libraries/haskell/hplayground/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hsimport/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hspec-wai/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/html-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-client/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hxt-charproperties/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/hxt/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/instant-generics/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/json-rpc/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/json-schema/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/kan-extensions/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/language-c-inline/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/language-java/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/lens/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/leveldb-haskell/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/managed/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/markdown/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/minioperational/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/monad-journal/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/mono-traversable/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/multipart/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/ncurses/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/network-uri/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/network/2.6.0.2.nix (renamed from pkgs/development/libraries/haskell/network/2.6.0.1.nix)4
-rw-r--r--pkgs/development/libraries/haskell/optparse-applicative/0.10.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/optparse-applicative/0.9.1.1.nix (renamed from pkgs/development/libraries/haskell/optparse-applicative/default.nix)1
-rw-r--r--pkgs/development/libraries/haskell/parsec/3.1.6.nix (renamed from pkgs/development/libraries/haskell/parsec/3.1.5.nix)7
-rw-r--r--pkgs/development/libraries/haskell/parsers/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pcap-enumerator/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pdf-toolbox-content/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/pdf-toolbox-core/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/pdf-toolbox-document/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/persistent-mysql/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/persistent-postgresql/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/persistent-sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/pipes-http/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/pipes/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/postgresql-simple/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/protobuf/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/purescript/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/quickcheck-instances/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/recaptcha/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/reducers/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/rest-gen/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/rest-happstack/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/retry/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/rope/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/scientific/0.3.3.1.nix (renamed from pkgs/development/libraries/haskell/scientific/0.3.3.0.nix)4
-rw-r--r--pkgs/development/libraries/haskell/semigroups/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/setlocale/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/snap-cors/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/snap/snap.nix7
-rw-r--r--pkgs/development/libraries/haskell/stm-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tagstream-conduit/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/tasty-ant-xml/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tasty-hspec/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/tasty-rerun/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tasty/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/text/1.1.1.3.nix1
-rw-r--r--pkgs/development/libraries/haskell/time/1.5.nix (renamed from pkgs/development/libraries/haskell/time/1.4.2.nix)10
-rw-r--r--pkgs/development/libraries/haskell/tls-extra/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/tls/1.1.5.nix27
-rw-r--r--pkgs/development/libraries/haskell/tls/default.nix (renamed from pkgs/development/libraries/haskell/tls/1.2.8.nix)4
-rw-r--r--pkgs/development/libraries/haskell/tostring/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tuple/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/twitter-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/uuid/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai-app-static/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wl-pprint-extras/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/x509/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/xlsx/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/xml-conduit/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/xmlhtml/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-bin/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-persistent/default.nix4
-rw-r--r--pkgs/development/libraries/icu/default.nix11
-rw-r--r--pkgs/development/libraries/ilixi/default.nix1
-rw-r--r--pkgs/development/libraries/isl/0.12.2.nix2
-rw-r--r--pkgs/development/libraries/isl/default.nix2
-rw-r--r--pkgs/development/libraries/javascript/jquery-ui/default.nix20
-rw-r--r--pkgs/development/libraries/javascript/jquery/default.nix36
-rw-r--r--pkgs/development/libraries/json-glib/default.nix4
-rw-r--r--pkgs/development/libraries/libav/default.nix2
-rw-r--r--pkgs/development/libraries/libc++/default.nix2
-rw-r--r--pkgs/development/libraries/libc++abi/default.nix2
-rw-r--r--pkgs/development/libraries/libewf/default.nix13
-rw-r--r--pkgs/development/libraries/libewf/default.upstream7
-rw-r--r--pkgs/development/libraries/libfreefare/default.nix21
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix2
-rw-r--r--pkgs/development/libraries/libibmad/default.nix19
-rw-r--r--pkgs/development/libraries/libibumad/default.nix17
-rw-r--r--pkgs/development/libraries/libmicrohttpd/default.nix4
-rw-r--r--pkgs/development/libraries/liboauth/default.nix4
-rw-r--r--pkgs/development/libraries/libotr/default.nix25
-rw-r--r--pkgs/development/libraries/libpng/default.nix6
-rw-r--r--pkgs/development/libraries/libresample/default.nix2
-rw-r--r--pkgs/development/libraries/libyaml/default.nix2
-rw-r--r--pkgs/development/libraries/liquidfun/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix4
-rw-r--r--pkgs/development/libraries/muparser/default.nix15
-rw-r--r--pkgs/development/libraries/nspr/default.nix4
-rw-r--r--pkgs/development/libraries/nss/default.nix6
-rw-r--r--pkgs/development/libraries/openmpi/default.nix2
-rw-r--r--pkgs/development/libraries/openssl/default.nix7
-rw-r--r--pkgs/development/libraries/osip/default.nix5
-rw-r--r--pkgs/development/libraries/osip/default.upstream3
-rw-r--r--pkgs/development/libraries/pcre/default.nix4
-rw-r--r--pkgs/development/libraries/qscintilla/default.nix47
-rw-r--r--pkgs/development/libraries/quazip/default.nix23
-rw-r--r--pkgs/development/libraries/readline/5.x.nix (renamed from pkgs/development/libraries/readline/readline5.nix)7
-rw-r--r--pkgs/development/libraries/readline/6.2.nix (renamed from pkgs/development/libraries/readline/readline6.nix)0
-rw-r--r--pkgs/development/libraries/readline/6.3.nix (renamed from pkgs/development/libraries/readline/readline6.3.nix)37
-rw-r--r--pkgs/development/libraries/readline/readline-6.3-patches.nix12
-rw-r--r--pkgs/development/libraries/readline/readline4.nix10
-rw-r--r--pkgs/development/libraries/serf/default.nix8
-rw-r--r--pkgs/development/libraries/snappy/default.nix26
-rw-r--r--pkgs/development/libraries/spandsp/default.nix9
-rw-r--r--pkgs/development/libraries/sword/default.nix14
-rw-r--r--pkgs/development/libraries/v8/default.nix17
-rw-r--r--pkgs/development/libraries/v8/fix-GetLocalizedMessage-usage.patch27
-rw-r--r--pkgs/development/libraries/vaapi-vdpau/default.nix8
-rw-r--r--pkgs/development/mobile/androidenv/addon.xml577
-rw-r--r--pkgs/development/mobile/androidenv/addons.nix4
-rw-r--r--pkgs/development/mobile/androidenv/androidsdk.nix37
-rw-r--r--pkgs/development/mobile/androidenv/build-tools.nix17
-rw-r--r--pkgs/development/mobile/androidenv/default.nix36
-rwxr-xr-xpkgs/development/mobile/androidenv/fetch.sh (renamed from pkgs/development/mobile/androidenv/fetch)5
-rw-r--r--pkgs/development/mobile/androidenv/generate-addons.xsl6
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-platforms.sh4
-rw-r--r--pkgs/development/mobile/androidenv/generate-platforms.xsl10
-rw-r--r--pkgs/development/mobile/androidenv/generate-sysimages-others.xsl21
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-sysimages.sh4
-rw-r--r--pkgs/development/mobile/androidenv/generate-sysimages.xsl10
-rw-r--r--pkgs/development/mobile/androidenv/platforms-linux.nix10
-rw-r--r--pkgs/development/mobile/androidenv/platforms-macosx.nix10
-rw-r--r--pkgs/development/mobile/androidenv/repository-10.xml1562
-rw-r--r--pkgs/development/mobile/androidenv/repository-8.xml1277
-rw-r--r--pkgs/development/mobile/androidenv/support-repository.nix17
-rw-r--r--pkgs/development/mobile/androidenv/sys-img-mips.xml132
-rw-r--r--pkgs/development/mobile/androidenv/sys-img-x86.xml154
-rw-r--r--pkgs/development/mobile/androidenv/sys-img.xml712
-rw-r--r--pkgs/development/mobile/androidenv/sysimages.nix82
-rw-r--r--pkgs/development/mobile/xpwn/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/calendar/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/cmdliner/default.nix36
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/javalib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-ipaddr/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-deriving/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-server/default.nix37
-rw-r--r--pkgs/development/ocaml-modules/optcomp/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/sawja/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sqlite3EZ/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/twt/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/tyxml/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/yojson/default.nix10
-rw-r--r--pkgs/development/pharo/vm/default.nix4
-rw-r--r--pkgs/development/python-modules/dbus/default.nix4
-rw-r--r--pkgs/development/python-modules/generic/wrap.sh6
-rw-r--r--pkgs/development/python-modules/h5py/default.nix42
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix56
-rw-r--r--pkgs/development/python-modules/pycairo/default.nix4
-rw-r--r--pkgs/development/python-modules/rbtools/default.nix8
-rw-r--r--pkgs/development/python-modules/sip/4.16.nix4
-rw-r--r--pkgs/development/python-modules/sip/default.nix4
-rw-r--r--pkgs/development/python-modules/wxPython/2.8.nix4
-rw-r--r--pkgs/development/python-modules/wxPython/3.0.nix4
-rw-r--r--pkgs/development/r-modules/cran-packages.nix4
-rw-r--r--pkgs/development/tools/analysis/cppcheck/default.nix4
-rw-r--r--pkgs/development/tools/analysis/massif-visualizer/default.nix20
-rw-r--r--pkgs/development/tools/analysis/pmd/default.nix6
-rw-r--r--pkgs/development/tools/analysis/radare/default.nix6
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix39
-rw-r--r--pkgs/development/tools/analysis/spin/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/rebar/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix (renamed from pkgs/development/tools/build-managers/simple-build-tool/default.nix)3
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix16
-rw-r--r--pkgs/development/tools/documentation/haddock/2.15.0.nix20
-rw-r--r--pkgs/development/tools/haskell/haskell-docs/default.nix2
-rw-r--r--pkgs/development/tools/haskell/timeplot/default.nix2
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix2
-rw-r--r--pkgs/development/tools/misc/d-feet/default.nix1
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix10
-rw-r--r--pkgs/development/tools/misc/go-repo-root/default.nix33
-rw-r--r--pkgs/development/tools/misc/go-repo-root/deps.nix67
-rw-r--r--pkgs/development/tools/misc/help2man/default.nix4
-rw-r--r--pkgs/development/tools/misc/lsof/default.nix2
-rw-r--r--pkgs/development/tools/misc/strace/default.nix2
-rw-r--r--pkgs/development/tools/misc/swig/default.nix2
-rw-r--r--pkgs/development/tools/node-webkit/default.nix28
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff10
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/default.nix28
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix12
-rw-r--r--pkgs/development/tools/ocaml/oasis/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/opam/1.0.0.nix2
-rw-r--r--pkgs/development/tools/vagrant/default.nix16
-rw-r--r--pkgs/development/web/nodejs/build-node-package.nix199
-rw-r--r--pkgs/games/bsdgames/default.nix2
-rw-r--r--pkgs/games/chocolate-doom/default.nix23
-rw-r--r--pkgs/games/chocolate-doom/master.nix24
-rw-r--r--pkgs/games/dwarf-fortress/df2014.nix50
-rw-r--r--pkgs/games/eternity-engine/default.nix29
-rw-r--r--pkgs/games/gtypist/default.nix24
-rw-r--r--pkgs/games/openttd/default.nix4
-rw-r--r--pkgs/games/spring/default.nix2
-rw-r--r--pkgs/games/steam/chrootenv.nix71
-rw-r--r--pkgs/games/steam/default.nix105
-rw-r--r--pkgs/games/stepmania/default.nix2
-rw-r--r--pkgs/games/warzone2100/default.nix12
-rw-r--r--pkgs/misc/drivers/foomatic-filters/default.nix2
-rw-r--r--pkgs/misc/emulators/dolphin-emu/default.nix33
-rw-r--r--pkgs/misc/emulators/dolphin-emu/master.nix34
-rw-r--r--pkgs/misc/emulators/emulationstation/default.nix25
-rw-r--r--pkgs/misc/emulators/higan/builder.sh15
-rw-r--r--pkgs/misc/emulators/higan/default.nix3
-rw-r--r--pkgs/misc/emulators/mednafen/default.nix11
-rw-r--r--pkgs/misc/emulators/mednafen/server.nix8
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix170
-rw-r--r--pkgs/misc/emulators/retroarch/default.nix4
-rw-r--r--pkgs/misc/emulators/retroarch/master.nix31
-rw-r--r--pkgs/misc/emulators/retroarch/wrapper.nix36
-rw-r--r--pkgs/misc/emulators/stella/default.nix5
-rw-r--r--pkgs/misc/phabricator/default.nix28
-rw-r--r--pkgs/misc/screensavers/xscreensaver/default.nix3
-rw-r--r--pkgs/misc/themes/gtk3/oxygen-gtk3/default.nix23
-rw-r--r--pkgs/os-specific/linux/acpi/default.nix2
-rw-r--r--pkgs/os-specific/linux/batman-adv/default.nix4
-rw-r--r--pkgs/os-specific/linux/fuse/default.nix2
-rw-r--r--pkgs/os-specific/linux/gradm/default.nix4
-rw-r--r--pkgs/os-specific/linux/iw/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.12.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.16.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix12
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix4
-rw-r--r--pkgs/os-specific/linux/openvswitch/default.nix4
-rw-r--r--pkgs/os-specific/linux/pam_krb5/default.nix2
-rw-r--r--pkgs/os-specific/linux/paxctl/default.nix4
-rw-r--r--pkgs/os-specific/linux/s6-linux-utils/default.nix53
-rw-r--r--pkgs/os-specific/linux/smem/default.nix33
-rw-r--r--pkgs/os-specific/linux/systemd/fixes.patch2476
-rw-r--r--pkgs/servers/computing/torque/default.nix41
-rw-r--r--pkgs/servers/consul/default.nix34
-rw-r--r--pkgs/servers/consul/deps.nix160
-rw-r--r--pkgs/servers/consul/ui.nix17
-rw-r--r--pkgs/servers/dict/default.nix2
-rw-r--r--pkgs/servers/dict/libmaa.nix2
-rw-r--r--pkgs/servers/diod/default.nix4
-rw-r--r--pkgs/servers/dns/nsd/default.nix30
-rw-r--r--pkgs/servers/http/apache-modules/mod_wsgi/default.nix11
-rw-r--r--pkgs/servers/http/nginx/default.nix25
-rw-r--r--pkgs/servers/http/tomcat/6.0.nix27
-rw-r--r--pkgs/servers/http/tomcat/7.0.nix6
-rw-r--r--pkgs/servers/http/tomcat/8.0.nix6
-rw-r--r--pkgs/servers/http/tomcat/recent.nix24
-rw-r--r--pkgs/servers/irc/ircd-hybrid/default.nix6
-rw-r--r--pkgs/servers/news/leafnode/default.nix6
-rw-r--r--pkgs/servers/nosql/influxdb/default.nix10
-rw-r--r--pkgs/servers/nosql/riak/1.3.1.nix2
-rw-r--r--pkgs/servers/openafs-client/default.nix2
-rw-r--r--pkgs/servers/pulseaudio/default.nix13
-rw-r--r--pkgs/servers/rippled/default.nix4
-rw-r--r--pkgs/servers/search/elasticsearch/plugins.nix20
-rw-r--r--pkgs/servers/search/sphinxsearch/default.nix30
-rw-r--r--pkgs/servers/sql/mysql/5.1.x.nix4
-rw-r--r--pkgs/servers/sql/mysql/5.5.x.nix4
-rw-r--r--pkgs/servers/sql/postgresql/8.4.x.nix2
-rw-r--r--pkgs/servers/sql/postgresql/9.0.x.nix2
-rw-r--r--pkgs/servers/sql/postgresql/9.1.x.nix2
-rw-r--r--pkgs/servers/sql/postgresql/9.2.x.nix2
-rw-r--r--pkgs/servers/sql/postgresql/9.3.x.nix2
-rw-r--r--pkgs/servers/sql/postgresql/9.4.x.nix44
-rw-r--r--pkgs/servers/sql/postgresql/disable-resolve_symlinks-94.patch12
-rw-r--r--pkgs/servers/x11/xorg/default.nix30
-rw-r--r--pkgs/servers/x11/xorg/extra.list4
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list6
-rw-r--r--pkgs/stdenv/generic/default.nix3
-rw-r--r--pkgs/stdenv/linux/default.nix294
-rw-r--r--pkgs/test/openftd/default.nix2
-rw-r--r--pkgs/tools/archivers/unrar/default.nix27
-rw-r--r--pkgs/tools/audio/gvolicon/default.nix4
-rw-r--r--pkgs/tools/audio/volumeicon/default.nix23
-rw-r--r--pkgs/tools/backup/httrack/default.nix5
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix4
-rw-r--r--pkgs/tools/cd-dvd/unetbootin/default.nix4
-rw-r--r--pkgs/tools/compression/xz/default.nix3
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/default.nix2
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/multiple_mounts.patch13
-rw-r--r--pkgs/tools/filesystems/yandex-disk/default.nix6
-rw-r--r--pkgs/tools/graphics/pngcrush/default.nix4
-rw-r--r--pkgs/tools/graphics/qrencode/default.nix4
-rw-r--r--pkgs/tools/graphics/wkhtmltopdf/default.nix80
-rw-r--r--pkgs/tools/graphics/wkhtmltopdf/makefix.patch24
-rw-r--r--pkgs/tools/inputmethods/fcitx/default.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx/fcitx-anthy.nix24
-rw-r--r--pkgs/tools/misc/ethtool/default.nix4
-rw-r--r--pkgs/tools/misc/gparted/default.nix4
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix74
-rw-r--r--pkgs/tools/misc/ised/default.nix11
-rw-r--r--pkgs/tools/misc/ised/default.upstream4
-rw-r--r--pkgs/tools/misc/mdbtools/git.nix7
-rw-r--r--pkgs/tools/misc/memtest86/default.nix6
-rw-r--r--pkgs/tools/misc/mstflint/default.nix19
-rw-r--r--pkgs/tools/misc/pv/default.nix4
-rw-r--r--pkgs/tools/misc/s6-portable-utils/default.nix55
-rw-r--r--pkgs/tools/misc/screenfetch/default.nix6
-rw-r--r--pkgs/tools/misc/sutils/default.nix4
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix13
-rw-r--r--pkgs/tools/misc/xdo/default.nix4
-rw-r--r--pkgs/tools/misc/xtitle/default.nix4
-rw-r--r--pkgs/tools/networking/atftp/default.nix46
-rw-r--r--pkgs/tools/networking/curl-unix-socket/default.nix24
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix4
-rw-r--r--pkgs/tools/networking/fping/default.nix5
-rw-r--r--pkgs/tools/networking/getmail/default.nix9
-rw-r--r--pkgs/tools/networking/iftop/default.nix2
-rw-r--r--pkgs/tools/networking/openssh/default.nix5
-rw-r--r--pkgs/tools/networking/p2p/bittorrent/builder.sh27
-rw-r--r--pkgs/tools/networking/p2p/bittorrent/default.nix24
-rw-r--r--pkgs/tools/networking/radvd/default.nix4
-rw-r--r--pkgs/tools/networking/s6-dns/default.nix53
-rw-r--r--pkgs/tools/networking/s6-networking/default.nix63
-rw-r--r--pkgs/tools/networking/socat/2.x.nix2
-rw-r--r--pkgs/tools/networking/socat/default.nix2
-rw-r--r--pkgs/tools/networking/sproxy-web/default.nix1
-rw-r--r--pkgs/tools/networking/sshpass/default.nix18
-rw-r--r--pkgs/tools/networking/tcpdump/default.nix2
-rw-r--r--pkgs/tools/networking/tinc/pre.nix32
-rw-r--r--pkgs/tools/networking/urlwatch/default.nix4
-rw-r--r--pkgs/tools/networking/wavemon/default.nix13
-rw-r--r--pkgs/tools/package-management/disnix/default.nix6
-rw-r--r--pkgs/tools/package-management/disnix/disnixos/default.nix6
-rw-r--r--pkgs/tools/package-management/disnix/dysnomia/default.nix6
-rw-r--r--pkgs/tools/package-management/dpkg/default.nix2
-rw-r--r--pkgs/tools/package-management/gem-nix/default.nix23
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix6
-rw-r--r--pkgs/tools/package-management/nox/default.nix2
-rw-r--r--pkgs/tools/package-management/python2nix/default.nix21
-rw-r--r--pkgs/tools/security/aespipe/default.nix2
-rw-r--r--pkgs/tools/security/ccid/default.nix13
-rw-r--r--pkgs/tools/security/haveged/default.nix2
-rw-r--r--pkgs/tools/security/john/default.nix28
-rw-r--r--pkgs/tools/security/logkeys/default.nix27
-rw-r--r--pkgs/tools/security/pcsclite/default.nix2
-rw-r--r--pkgs/tools/security/sudo/default.nix9
-rw-r--r--pkgs/tools/security/super/default.nix14
-rw-r--r--pkgs/tools/system/at/default.nix16
-rw-r--r--pkgs/tools/system/freeipmi/default.nix9
-rw-r--r--pkgs/tools/system/ioping/default.nix12
-rw-r--r--pkgs/tools/system/ioping/default.upstream5
-rw-r--r--pkgs/tools/system/ipmiutil/default.nix12
-rw-r--r--pkgs/tools/system/ipmiutil/default.upstream4
-rw-r--r--pkgs/tools/system/sleuthkit/default.nix6
-rw-r--r--pkgs/tools/system/sleuthkit/default.upstream5
-rw-r--r--pkgs/tools/text/diffstat/default.nix4
-rw-r--r--pkgs/tools/text/dos2unix/default.nix6
-rw-r--r--pkgs/tools/text/highlight/default.nix15
-rw-r--r--pkgs/tools/text/numdiff/default.nix4
-rw-r--r--pkgs/tools/typesetting/pdfjam/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/texlive/beamer.nix2
-rw-r--r--pkgs/top-level/all-packages.nix416
-rw-r--r--pkgs/top-level/haskell-defaults.nix1
-rw-r--r--pkgs/top-level/haskell-packages.nix108
-rw-r--r--pkgs/top-level/node-packages-generated.nix13507
-rw-r--r--pkgs/top-level/node-packages.json1
-rw-r--r--pkgs/top-level/perl-packages.nix17
-rw-r--r--pkgs/top-level/python-packages.nix593
-rw-r--r--pkgs/top-level/release-lib.nix2
-rw-r--r--pkgs/top-level/release.nix75
753 files changed, 23316 insertions, 12353 deletions
diff --git a/default.nix b/default.nix
index c1b9bfd39f9..e0df520721c 100644
--- a/default.nix
+++ b/default.nix
@@ -1,6 +1,6 @@
-if ! builtins ? nixVersion || builtins.compareVersions "1.6" builtins.nixVersion == 1 then
+if ! builtins ? nixVersion || builtins.compareVersions "1.7" builtins.nixVersion == 1 then
 
-  abort "This version of Nixpkgs requires Nix >= 1.6, please upgrade!"
+  abort "This version of Nixpkgs requires Nix >= 1.7, please upgrade!"
 
 else
 
diff --git a/doc/language-support.xml b/doc/language-support.xml
index f5e89df57fc..117e1d93c15 100644
--- a/doc/language-support.xml
+++ b/doc/language-support.xml
@@ -233,6 +233,17 @@ twisted = buildPythonPackage {
 </section>
 
 
+<section xml:id="ssec-language-java"><title>Ruby</title>
+  <para>For example, to package yajl-ruby package, use gem-nix:</para>
+  
+  <screen>
+    $ nix-env -i gem-nix
+    $ gem-nix --no-user-install --nix-file=pkgs/development/interpreters/ruby/generated.nix yajl-ruby
+    $ nix-build -A rubyLibs.yajl-ruby
+  </screen>
+</section>
+
+
 <section xml:id="ssec-language-java"><title>Java</title>
 
 <para>Ant-based Java packages are typically built from source as follows:
diff --git a/doc/meta.xml b/doc/meta.xml
index e91f94d15c2..fc0ff977792 100644
--- a/doc/meta.xml
+++ b/doc/meta.xml
@@ -84,8 +84,7 @@ hello-2.3  A program that produces a familiar, friendly greeting
 
 <section><title>Standard meta-attributes</title>
 
-<para>The following meta-attributes have a standard
-interpretation:</para>
+<para>It is expected that each meta-attribute is one of the following:</para>
 
 <variablelist>
 
@@ -113,12 +112,23 @@ interpretation:</para>
   </varlistentry>
 
   <varlistentry>
+    <term><varname>version</varname></term>
+    <listitem><para>Package version.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term><varname>homepage</varname></term>
     <listitem><para>The package’s homepage.  Example:
     <literal>http://www.gnu.org/software/hello/manual/</literal></para></listitem>
   </varlistentry>
 
   <varlistentry>
+    <term><varname>downloadPage</varname></term>
+    <listitem><para>The page where a link to the current version can be found.  Example:
+    <literal>http://ftp.gnu.org/gnu/hello/</literal></para></listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term><varname>license</varname></term>
     <listitem><para>The license for the package. One from the
     attribute set defined in <link
@@ -195,6 +205,16 @@ meta.hydraPlatforms = [];
     they are fixed.</para></listitem>
   </varlistentry>
 
+  <varlistentry>
+    <term><varname>updateWalker</varname></term>
+    <listitem><para>If set to <literal>true</literal>, the package is
+    tested to be updated correctly by the <literal>update-walker.sh</literal>
+    script without additional settings. Such packages have
+    <varname>meta.version</varname> set and their homepage (or
+    the page specified by <varname>meta.downloadPage</varname>) contains
+    a direct link to the package tarball.</para></listitem>
+  </varlistentry>
+
 </variablelist>
 
 
@@ -256,9 +276,9 @@ to indicate the specific license:
 </variablelist>
 
 </para>
-  
+
 
 </section>
-  
+
 
 </chapter>
diff --git a/doc/quick-start.xml b/doc/quick-start.xml
index 0f11a906d77..c0f96f87152 100644
--- a/doc/quick-start.xml
+++ b/doc/quick-start.xml
@@ -93,17 +93,6 @@ $ git add pkgs/development/libraries/libfoo/default.nix</screen>
         </listitem>
 
         <listitem>
-          <para>BitTorrent (wxPython-based): <link
-          xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/networking/p2p/bittorrent/default.nix"><filename>pkgs/tools/networking/p2p/bittorrent/default.nix</filename></link>.
-          Uses an external <link
-          xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/networking/p2p/bittorrent/builder.sh">build
-          script</link>, which can be useful if you have lots of code
-          that you don’t want cluttering up the Nix expression.  But
-          external builders are mostly obsolete.
-          </para>
-        </listitem>
-
-        <listitem>
           <para>Thunderbird: <link
           xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/mailreaders/thunderbird/default.nix"><filename>pkgs/applications/networking/mailreaders/thunderbird/default.nix</filename></link>.
           Lots of dependencies.</para>
diff --git a/lib/licenses.nix b/lib/licenses.nix
index bdcf8a7b8a7..dadb9b07a08 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -72,6 +72,11 @@ rec {
     fullName = "Creative Commons Attribution 3.0";
   };
 
+  cc-by-40 = spdx {
+    shortName = "CC-BY-4.0";
+    fullName = "Creative Commons Attribution 4.0";
+  };
+
   cddl = spdx {
     shortName = "CDDL-1.0";
     fullName = "Common Development and Distribution License 1.0";
@@ -232,6 +237,11 @@ rec {
     fullName = "OpenSSL License";
   };
 
+  postgresql = spdx {
+    shortName = "PostgreSQL";
+    fullName = "PostgreSQL License";
+  };
+
   psfl = spdx {
     shortName = "Python-2.0";
     fullName = "Python Software Foundation License version 2";
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 9ff9f7ea27a..a6c41bbe17f 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -15,6 +15,7 @@
   AndersonTorres = "Anderson Torres <torres.anderson.85@gmail.com>";
   andres = "Andres Loeh <ksnixos@andres-loeh.de>";
   antono = "Antono Vasiljev <self@antono.info>";
+  aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
   arobyn = "Alexei Robyn <shados@shados.net>";
   astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
   aszlig = "aszlig <aszlig@redmoonstudios.org>";
@@ -27,6 +28,7 @@
   bjg = "Brian Gough <bjg@gnu.org>";
   bjornfor = "Bjørn Forsman <bjorn.forsman@gmail.com>";
   bluescreen303 = "Mathijs Kwik <mathijs@bluescreen303.nl>";
+  bobvanderlinden = "Bob van der Linden <bobvanderlinden@gmail.com>";
   bodil = "Bodil Stokke <nix@bodil.org>";
   bosu = "Boris Sukholitko <boriss@gmail.com>";
   calrama = "Moritz Maxeiner <moritz@ucworks.org>";
@@ -38,6 +40,8 @@
   coroa = "Jonas Hörsch <jonas@chaoflow.net>";
   cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
   DamienCassou = "Damien Cassou <damien.cassou@gmail.com>";
+  DerGuteMoritz = "Moritz Heidkamp <moritz@twoticketsplease.de>";
+  dbohdan = "Danyil Bohdan <danyil.bohdan@gmail.com>";
   doublec = "Chris Double <chris.double@double.co.nz>";
   ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
   edwtjo = "Edward Tjörnhammar <ed@cflags.cc>";
@@ -101,6 +105,7 @@
   roelof = "Roelof Wobben <rwobben@hotmail.com>";
   romildo = "José Romildo Malaquias <malaquias@gmail.com>";
   rszibele = "Richard Szibele <richard_szibele@hotmail.com>";
+  rycee = "Robert Helgesson <robert@rycee.net>";
   sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
   shlevy = "Shea Levy <shea@shealevy.com>";
   simons = "Peter Simons <simons@cryp.to>";
@@ -115,6 +120,7 @@
   ttuegel = "Thomas Tuegel <ttuegel@gmail.com>";
   tv = "Tomislav Viljetić <tv@shackspace.de>";
   urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
+  vandenoever = "Jos van den Oever <jos@vandenoever.info>";
   vbmithr = "Vincent Bernardoff <vb@luminar.eu.org>";
   vcunat = "Vladimír Čunát <vcunat@gmail.com>";
   viric = "Lluís Batlle i Rossell <viric@viric.name>";
diff --git a/lib/modules.nix b/lib/modules.nix
index 9fe26083cfd..1d428311cd1 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -132,20 +132,44 @@ rec {
      The exception is the ‘options’ attribute, which specifies
      sub-options.  These can be specified multiple times to allow one
      module to add sub-options to an option declared somewhere else
-     (e.g. multiple modules define sub-options for ‘fileSystems’). */
+     (e.g. multiple modules define sub-options for ‘fileSystems’).
+
+     'loc' is the list of attribute names where the option is located.
+
+     'opts' is a list of modules.  Each module has an options attribute which
+     correspond to the definition of 'loc' in 'opt.file'. */
   mergeOptionDecls = loc: opts:
     fold (opt: res:
       if opt.options ? default && res ? default ||
          opt.options ? example && res ? example ||
          opt.options ? description && res ? description ||
          opt.options ? apply && res ? apply ||
-         opt.options ? type && res ? type
+         # Accept to merge options which have identical types.
+         opt.options ? type && res ? type && opt.options.type.name != res.type.name
       then
         throw "The option `${showOption loc}' in `${opt.file}' is already declared in ${showFiles res.declarations}."
       else
-        opt.options // res //
+        let
+          /* Add the modules of the current option to the list of modules
+             already collected.  The options attribute except either a list of
+             submodules or a submodule. For each submodule, we add the file of the
+             current option declaration as the file use for the submodule.  If the
+             submodule defines any filename, then we ignore the enclosing option file. */
+          options' = toList opt.options.options;
+          addModuleFile = m:
+            if isFunction m then args: { _file = opt.file; } // (m args)
+            else { _file = opt.file; } // m;
+          coerceOption = file: opt:
+            if isFunction opt then args: { _file = file; } // (opt args)
+            else { _file = file; options = opt; };
+          getSubModules = opt.options.type.getSubModules or null;
+          submodules =
+            if getSubModules != null then map addModuleFile getSubModules ++ res.options
+            else if opt.options ? options then map (coerceOption opt.file) options' ++ res.options
+            else res.options;
+        in opt.options // res //
           { declarations = [opt.file] ++ res.declarations;
-            options = if opt.options ? options then [(toList opt.options.options ++ res.options)] else [];
+            options = submodules;
           }
     ) { inherit loc; declarations = []; options = []; } opts;
 
@@ -273,15 +297,12 @@ rec {
     in sort compare defs';
 
   /* Hack for backward compatibility: convert options of type
-     optionSet to configOf.  FIXME: remove eventually. */
+     optionSet to options of type submodule.  FIXME: remove
+     eventually. */
   fixupOptionType = loc: opt:
     let
-      options' = opt.options or
+      options = opt.options or
         (throw "Option `${showOption loc'}' has type optionSet but has no option attribute, in ${showFiles opt.declarations}.");
-      coerce = x:
-        if isFunction x then x
-        else { config, ... }: { options = x; };
-      options = map coerce (flatten options');
       f = tp:
         if tp.name == "option set" || tp.name == "submodule" then
           throw "The option ${showOption loc} uses submodules without a wrapping type, in ${showFiles opt.declarations}."
@@ -290,7 +311,10 @@ rec {
         else if tp.name == "list of option sets" then types.listOf (types.submodule options)
         else if tp.name == "null or option set" then types.nullOr (types.submodule options)
         else tp;
-    in opt // { type = f (opt.type or types.unspecified); };
+    in
+      if opt.type.getSubModules or null == null
+      then opt // { type = f (opt.type or types.unspecified); }
+      else opt // { type = opt.type.substSubModules opt.options; options = []; };
 
 
   /* Properties. */
diff --git a/lib/platforms.nix b/lib/platforms.nix
index 44a56b659c7..067670c6b3e 100644
--- a/lib/platforms.nix
+++ b/lib/platforms.nix
@@ -7,7 +7,7 @@ rec {
   freebsd = ["i686-freebsd" "x86_64-freebsd"];
   openbsd = ["i686-openbsd" "x86_64-openbsd"];
   netbsd = ["i686-netbsd" "x86_64-netbsd"];
-  cygwin = ["i686-cygwin"];
+  cygwin = ["i686-cygwin" "x86_64-cygwin"];
   unix = linux ++ darwin ++ freebsd ++ openbsd;
   all = linux ++ darwin ++ cygwin ++ freebsd ++ openbsd;
   none = [];
diff --git a/lib/types.nix b/lib/types.nix
index 0e2b6515e16..1e7abf36535 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -33,9 +33,14 @@ rec {
     , # Return a flat list of sub-options.  Used to generate
       # documentation.
       getSubOptions ? prefix: {}
+    , # List of modules if any, or null if none.
+      getSubModules ? null
+    , # Function for building the same option type  with a different list of
+      # modules.
+      substSubModules ? m: null
     }:
     { _type = "option-type";
-      inherit name check merge getSubOptions;
+      inherit name check merge getSubOptions getSubModules substSubModules;
     };
 
 
@@ -110,6 +115,8 @@ rec {
           elemType.merge (loc ++ ["[${toString n}-${toString m}]"])
             [{ inherit (def) file; value = def'; }]) def.value) defs);
       getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]);
+      getSubModules = elemType.getSubModules;
+      substSubModules = m: listOf (elemType.substSubModules m);
     };
 
     attrsOf = elemType: mkOptionType {
@@ -121,6 +128,8 @@ rec {
           (map (def: listToAttrs (mapAttrsToList (n: def':
             { name = n; value = { inherit (def) file; value = def'; }; }) def.value)) defs);
       getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name>"]);
+      getSubModules = elemType.getSubModules;
+      substSubModules = m: attrsOf (elemType.substSubModules m);
     };
 
     # List or attribute set of ...
@@ -147,12 +156,16 @@ rec {
           else false;
         merge = loc: defs: attrOnly.merge loc (imap convertIfList defs);
         getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name?>"]);
+        getSubModules = elemType.getSubModules;
+        substSubModules = m: loaOf (elemType.substSubModules m);
       };
 
     uniq = elemType: mkOptionType {
       inherit (elemType) name check;
       merge = mergeOneOption;
       getSubOptions = elemType.getSubOptions;
+      getSubModules = elemType.getSubModules;
+      substSubModules = m: uniq (elemType.substSubModules m);
     };
 
     nullOr = elemType: mkOptionType {
@@ -165,14 +178,8 @@ rec {
           throw "The option `${showOption loc}' is defined both null and not null, in ${showFiles (getFiles defs)}."
         else elemType.merge loc defs;
       getSubOptions = elemType.getSubOptions;
-    };
-
-    functionTo = elemType: mkOptionType {
-      name = "function that evaluates to a(n) ${elemType.name}";
-      check = isFunction;
-      merge = loc: defs:
-        fnArgs: elemType.merge loc (map (fn: { inherit (fn) file; value = fn.value fnArgs; }) defs);
-      getSubOptions = elemType.getSubOptions;
+      getSubModules = elemType.getSubModules;
+      substSubModules = m: nullOr (elemType.substSubModules m);
     };
 
     submodule = opts:
@@ -192,6 +199,8 @@ rec {
           { modules = opts'; inherit prefix;
             # FIXME: hack to get shit to evaluate.
             args = { name = ""; }; }).options;
+        getSubModules = opts';
+        substSubModules = m: submodule m;
       };
 
     enum = values: mkOptionType {
diff --git a/nixos/doc/manual/configuration/user-mgmt.xml b/nixos/doc/manual/configuration/user-mgmt.xml
index 40dc687d03b..40362fbbb23 100644
--- a/nixos/doc/manual/configuration/user-mgmt.xml
+++ b/nixos/doc/manual/configuration/user-mgmt.xml
@@ -13,11 +13,10 @@ states that a user account named <literal>alice</literal> shall exist:
 
 <programlisting>
 users.extraUsers.alice =
-  { createHome = true;
+  { isNormalUser = true;
     home = "/home/alice";
     description = "Alice Foobar";
     extraGroups = [ "wheel" "networkmanager" ];
-    useDefaultShell = true;
     openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
   };
 </programlisting>
@@ -58,11 +57,6 @@ users.extraGroups.students.gid = 1000;
 As with users, the group ID (gid) is optional and will be assigned
 automatically if it’s missing.</para>
 
-<warning><para>Currently declarative user management is not perfect:
-<command>nixos-rebuild</command> does not know how to realise certain
-configuration changes.  This includes removing a user or group, and
-removing group membership from a user.</para></warning>
-
 <para>In the imperative style, users and groups are managed by
 commands such as <command>useradd</command>,
 <command>groupmod</command> and so on.  For instance, to create a user
diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml
index bc58bb1f066..4008e89fcea 100644
--- a/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixos/doc/manual/configuration/x-windows.xml
@@ -67,7 +67,7 @@ with other kernel modules.</para>
 <para>On 64-bit systems, if you want full acceleration for 32-bit
 programs such as Wine, you should also set the following:
 <programlisting>
-services.xserver.driSupport32Bit = true;
+hardware.opengl.driSupport32Bit = true;
 </programlisting>
 </para>
 
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index 47e01437ccc..68248081af6 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -6,12 +6,21 @@ with pkgs.lib;
 let
 
   # Remove invisible and internal options.
-  options' = filter (opt: opt.visible && !opt.internal) (optionAttrSetToDocList options);
+  optionsList = filter (opt: opt.visible && !opt.internal) (optionAttrSetToDocList options);
+
+  # Replace functions by the string <function>
+  substFunction = x:
+    if builtins.isAttrs x then mapAttrs (name: substFunction) x
+    else if builtins.isList x then map substFunction x
+    else if builtins.isFunction x then "<function>"
+    else x;
 
   # Clean up declaration sites to not refer to the NixOS source tree.
-  options'' = flip map options' (opt: opt // {
+  optionsList' = flip map optionsList (opt: opt // {
     declarations = map (fn: stripPrefix fn) opt.declarations;
-  });
+  }
+  // optionalAttrs (opt ? example) { example = substFunction opt.example; }
+  // optionalAttrs (opt ? default) { default = substFunction opt.default; });
 
   prefix = toString ../../..;
 
@@ -21,10 +30,35 @@ let
     else
       fn;
 
-  optionsXML = builtins.toFile "options.xml" (builtins.unsafeDiscardStringContext (builtins.toXML options''));
+  # Convert the list of options into an XML file and a JSON file.  The builtin
+  # unsafeDiscardStringContext is used to prevent the realisation of the store
+  # paths which are used in options definitions.
+  optionsXML = builtins.toFile "options.xml" (builtins.unsafeDiscardStringContext (builtins.toXML optionsList'));
+  optionsJSON = builtins.toFile "options.json" (builtins.unsafeDiscardStringContext (builtins.toJSON optionsList'));
+
+  # Tools-friendly version of the list of NixOS options.
+  options' = stdenv.mkDerivation {
+    name = "options";
+
+    buildCommand = ''
+      # Export list of options in different format.
+      dst=$out/share/doc/nixos
+      mkdir -p $dst
+
+      cp ${optionsJSON} $dst/options.json
+      cp ${optionsXML} $dst/options.xml
+
+      mkdir -p $out/nix-support
+      echo "file json $dst/options.json" >> $out/nix-support/hydra-build-products
+      echo "file xml $dst/options.xml" >> $out/nix-support/hydra-build-products
+    ''; # */
+
+    meta.description = "List of NixOS options in various formats.";
+  };
 
   optionsDocBook = runCommand "options-db.xml" {} ''
-    if grep /nixpkgs/nixos/modules ${optionsXML}; then
+    optionsXML=${options'}/share/doc/nixos/options.xml
+    if grep /nixpkgs/nixos/modules $optionsXML; then
       echo "The manual appears to depend on the location of Nixpkgs, which is bad"
       echo "since this prevents sharing via the NixOS channel.  This is typically"
       echo "caused by an option default that refers to a relative path (see above"
@@ -33,7 +67,7 @@ let
     fi
     ${libxslt}/bin/xsltproc \
       --stringparam revision '${revision}' \
-      -o $out ${./options-to-docbook.xsl} ${optionsXML}
+      -o $out ${./options-to-docbook.xsl} $optionsXML
   '';
 
   sources = sourceFilesBySuffices ./. [".xml"];
@@ -49,6 +83,9 @@ let
 
 in rec {
 
+  # Tools-friendly version of the list of NixOS options.
+  options = options';
+
   # Generate the NixOS manual.
   manual = stdenv.mkDerivation {
     name = "nixos-manual";
@@ -90,7 +127,7 @@ in rec {
 
       mkdir -p $out/nix-support
       echo "nix-build out $out" >> $out/nix-support/hydra-build-products
-      echo "doc manual $dst manual.html" >> $out/nix-support/hydra-build-products
+      echo "doc manual $dst" >> $out/nix-support/hydra-build-products
     ''; # */
 
     meta.description = "The NixOS manual in HTML format";
diff --git a/nixos/doc/manual/man-nixos-option.xml b/nixos/doc/manual/man-nixos-option.xml
index 7952847d4db..2875336c67e 100644
--- a/nixos/doc/manual/man-nixos-option.xml
+++ b/nixos/doc/manual/man-nixos-option.xml
@@ -17,11 +17,6 @@
 <refsynopsisdiv>
   <cmdsynopsis>
     <command>nixos-option</command>
-    <group choice="opt">
-      <option>-v</option>
-      <option>-d</option>
-      <option>-l</option>
-    </group>
     <arg choice='plain'><replaceable>option.name</replaceable></arg>
   </cmdsynopsis>
 </refsynopsisdiv>
@@ -31,50 +26,13 @@
 
 <para>This command evaluates the configuration specified in
 <filename>/etc/nixos/configuration.nix</filename> and returns the properties
-of the option name given as argument.  By default, it returns the value of
-the option.</para>
+of the option name given as argument.</para>
 
 <para>When the option name is not an option, the command prints the list of
 attributes contained in the attribute set.</para>
 
 </refsection>
 
-<refsection><title>Options</title>
-
-<para>This command accepts the following options:</para>
-
-<variablelist>
-
-  <varlistentry>
-    <term><option>--value</option>, <option>-v</option></term>
-    <listitem>
-      <para>Returns the value of the option.  This is the default operation
-      if no other options are defined.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><option>--description</option>, <option>-d</option></term>
-    <listitem>
-      <para>Return the default value, the example and the description of the
-      option when available.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><option>--lookup</option>, <option>-l</option></term>
-    <listitem>
-      <para>Return the locations where the option is declared and where it
-      is defined.  This is extremely useful to find sources of errors in
-      your configuration.</para>
-    </listitem>
-  </varlistentry>
-
-</variablelist>
-
-</refsection>
-
-
 <refsection><title>Environment</title>
 
 <variablelist>
@@ -103,27 +61,21 @@ grub
 initScript
 
 $ nixos-option boot.loader.grub.enable
-true</screen></para>
+Value:
+true
 
-<para>Prints option information:
+Default: 
+true
 
-<screen>$ nixos-option -d networking.hostName
-Default: "nixos"
 Description:
-The name of the machine. Leave it empty if you want to obtain
-it from a DHCP server (if using DHCP).</screen></para>
-
-<para>Find the locations which are declaring and defining an option:
+Whether to enable the GNU GRUB boot loader.
 
-<screen>$ nixos-option -l hardware.firmware
 Declared by:
-  /mnt/data/nix-sources/nixos/modules/services/hardware/udev.nix
+  "/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix"
 
 Defined by:
-  /path/to/nixpkgs/nixos/modules/system/boot/kernel.nix
-  /path/to/nixpkgs/nixos/modules/hardware/network/rt73.nix
-  /path/to/nixpkgs/nixos/modules/hardware/network/intel-3945abg.nix
-  /path/to/nixpkgs/nixos/modules/hardware/network/intel-2200bg.nix</screen></para>
+  "/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix"
+</screen></para>
 
 </refsection>
 
diff --git a/nixos/lib/test-driver/log2html.xsl b/nixos/lib/test-driver/log2html.xsl
index ce8a9c6de2b..0485412b4c8 100644
--- a/nixos/lib/test-driver/log2html.xsl
+++ b/nixos/lib/test-driver/log2html.xsl
@@ -9,8 +9,8 @@
   <xsl:template match="logfile">
     <html>
       <head>
-        <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
-        <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
+        <script type="text/javascript" src="jquery.min.js"></script>
+        <script type="text/javascript" src="jquery-ui.min.js"></script>
         <script type="text/javascript" src="treebits.js" />
         <link rel="stylesheet" href="logfile.css" type="text/css" />
         <title>Log File</title>
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index 0e23fc5d187..75e9c397776 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -53,6 +53,8 @@ rec {
           xsltproc --output $out/log.html ${./test-driver/log2html.xsl} $out/log.xml
           ln -s ${./test-driver/logfile.css} $out/logfile.css
           ln -s ${./test-driver/treebits.js} $out/treebits.js
+          ln -s ${jquery}/js/jquery.min.js $out/
+          ln -s ${jquery-ui}/js/jquery-ui.min.js $out/
 
           touch $out/nix-support/hydra-build-products
           echo "report testlog $out log.html" >> $out/nix-support/hydra-build-products
diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix
index 35c56e8c32b..7b8be2050c1 100644
--- a/nixos/lib/utils.nix
+++ b/nixos/lib/utils.nix
@@ -5,6 +5,7 @@ rec {
   # Escape a path according to the systemd rules, e.g. /dev/xyzzy
   # becomes dev-xyzzy.  FIXME: slow.
   escapeSystemdPath = s:
-   replaceChars ["/" "-" " "] ["-" "\\x2d" "\\x20"] (substring 1 (stringLength s) s);
+   replaceChars ["/" "-" " "] ["-" "\\x2d" "\\x20"]
+    (if hasPrefix "/" s then substring 1 (stringLength s) s else s);
 
 }
diff --git a/nixos/maintainers/scripts/azure/create-azure.sh b/nixos/maintainers/scripts/azure/create-azure.sh
new file mode 100755
index 00000000000..f87a88404f6
--- /dev/null
+++ b/nixos/maintainers/scripts/azure/create-azure.sh
@@ -0,0 +1,11 @@
+#! /bin/sh -e
+
+BUCKET_NAME=${BUCKET_NAME:-nixos}
+export NIX_PATH=nixpkgs=../../../..
+export NIXOS_CONFIG=$(dirname $(readlink -f $0))/../../../modules/virtualisation/azure-image.nix
+export TIMESTAMP=$(date +%Y%m%d%H%M)
+
+nix-build '<nixpkgs/nixos>' \
+   -A config.system.build.azureImage --argstr system x86_64-linux -o azure --option extra-binary-caches http://hydra.nixos.org -j 10
+
+azure vm image create nixos-test --location "West Europe" --md5-skip -v --os Linux azure/disk.vhd
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix
index 1b84bbaf10c..fb5715022b7 100644
--- a/nixos/modules/config/pulseaudio.nix
+++ b/nixos/modules/config/pulseaudio.nix
@@ -10,10 +10,12 @@ let
   systemWide = cfg.enable && cfg.systemWide;
   nonSystemWide = cfg.enable && !cfg.systemWide;
 
-  uid = config.ids.uids.pulseaudio;
-  gid = config.ids.gids.pulseaudio;
+  ids = config.ids;
 
-  stateDir = "/run/pulse";
+  uid = ids.uids.pulseaudio;
+  gid = ids.gids.pulseaudio;
+
+  stateDir = "/var/run/pulse";
 
   # Create pulse/client.conf even if PulseAudio is disabled so
   # that we can disable the autospawn feature in programs that
@@ -138,6 +140,8 @@ in {
         group = "pulse";
         extraGroups = [ "audio" ];
         description = "PulseAudio system service user";
+        home = stateDir;
+        createHome = true;
       };
 
       users.extraGroups.pulse.gid = gid;
@@ -147,10 +151,6 @@ in {
         wantedBy = [ "sound.target" ];
         before = [ "sound.target" ];
         environment.PULSE_RUNTIME_PATH = stateDir;
-        preStart = ''
-          mkdir -p --mode 755 ${stateDir}
-          chown -R pulse:pulse ${stateDir}
-        '';
         serviceConfig = {
           ExecStart = "${cfg.package}/bin/pulseaudio -D --log-level=${cfg.daemon.logLevel} --system --use-pid-file -n --file=${cfg.configFile}";
           PIDFile = "${stateDir}/pid";
diff --git a/nixos/modules/config/shells-environment.nix b/nixos/modules/config/shells-environment.nix
index 2559c53ac16..e5b342afcc4 100644
--- a/nixos/modules/config/shells-environment.nix
+++ b/nixos/modules/config/shells-environment.nix
@@ -9,6 +9,23 @@ let
 
   cfg = config.environment;
 
+  exportedEnvVars =
+    let
+      absoluteVariables =
+        mapAttrs (n: toList) cfg.variables;
+
+      suffixedVariables =
+        flip mapAttrs cfg.profileRelativeEnvVars (envVar: listSuffixes:
+          concatMap (profile: map (suffix: "${profile}${suffix}") listSuffixes) cfg.profiles
+        );
+
+      allVariables =
+        zipAttrsWith (n: concatLists) [ absoluteVariables suffixedVariables ];
+
+      exportVariables =
+        mapAttrsToList (n: v: ''export ${n}="${concatStringsSep ":" v}"'') allVariables;
+    in
+      concatStringsSep "\n" exportVariables;
 in
 
 {
@@ -49,22 +66,15 @@ in
       type = types.listOf types.string;
     };
 
-    environment.profileVariables = mkOption {
-      default = (p: {});
+    environment.profileRelativeEnvVars = mkOption {
+      type = types.attrsOf (types.listOf types.str);
+      example = { PATH = [ "/bin" "/sbin" ]; MANPATH = [ "/man" "/share/man" ]; };
       description = ''
-        A function which given a profile path should give back
-        a set of environment variables for that profile.
+	Attribute set of environment variable.  Each attribute maps to a list
+	of relative paths.  Each relative path is appended to the each profile
+        of <option>environment.profiles</option> to form the content of the
+        corresponding environment variable.
       '';
-      # !!! this should be of the following type:
-      #type = types.functionTo (types.attrsOf (types.optionSet envVar));
-      # and envVar should be changed to something more like environOpts.
-      # Having unique `value' _or_ multiple `list' is much more useful
-      # than just sticking everything together with ':' unconditionally.
-      # Anyway, to have this type mentioned above
-      # types.optionSet needs to be transformed into a type constructor
-      # (it has a !!! mark on that in nixpkgs)
-      # for now we hack all this to be
-      type = types.functionTo (types.attrsOf (types.listOf types.string));
     };
 
     # !!! isn't there a better way?
@@ -165,10 +175,7 @@ in
 
     system.build.setEnvironment = pkgs.writeText "set-environment"
        ''
-         ${concatStringsSep "\n" (
-           (mapAttrsToList (n: v: ''export ${n}="${concatStringsSep ":" v}"'')
-             # This line is a kind of a hack because of !!! note above
-             (zipAttrsWith (const concatLists) ([ (mapAttrs (n: v: [ v ]) cfg.variables) ] ++ map cfg.profileVariables cfg.profiles))))}
+         ${exportedEnvVars}
 
          ${cfg.extraInit}
 
diff --git a/nixos/modules/config/update-users-groups.pl b/nixos/modules/config/update-users-groups.pl
new file mode 100644
index 00000000000..197b65e27c4
--- /dev/null
+++ b/nixos/modules/config/update-users-groups.pl
@@ -0,0 +1,239 @@
+use strict;
+use File::Path qw(make_path);
+use File::Slurp;
+use JSON;
+
+make_path("/var/lib/nixos", { mode => 0755 });
+
+
+# Functions for allocating free GIDs/UIDs. FIXME: respect ID ranges in
+# /etc/login.defs.
+sub allocId {
+    my ($used, $idMin, $idMax, $up, $getid) = @_;
+    my $id = $up ? $idMin : $idMax;
+    while ($id >= $idMin && $id <= $idMax) {
+        if (!$used->{$id} && !defined &$getid($id)) {
+            $used->{$id} = 1;
+            return $id;
+        }
+        $used->{$id} = 1;
+        if ($up) { $id++; } else { $id--; }
+    }
+    die "$0: out of free UIDs or GIDs\n";
+}
+
+my (%gidsUsed, %uidsUsed);
+
+sub allocGid {
+    return allocId(\%gidsUsed, 400, 499, 0, sub { my ($gid) = @_; getgrgid($gid) });
+}
+
+sub allocUid {
+    my ($isSystemUser) = @_;
+    my ($min, $max, $up) = $isSystemUser ? (400, 499, 0) : (1000, 29999, 1);
+    return allocId(\%uidsUsed, $min, $max, $up, sub { my ($uid) = @_; getpwuid($uid) });
+}
+
+
+# Read the declared users/groups.
+my $spec = decode_json(read_file($ARGV[0]));
+
+# Don't allocate UIDs/GIDs that are already in use.
+foreach my $g (@{$spec->{groups}}) {
+    $gidsUsed{$g->{gid}} = 1 if defined $g->{gid};
+}
+
+foreach my $u (@{$spec->{groups}}) {
+    $uidsUsed{$u->{u}} = 1 if defined $u->{uid};
+}
+
+# Read the current /etc/group.
+sub parseGroup {
+    chomp;
+    my @f = split(':', $_, -4);
+    my $gid = $f[2] eq "" ? undef : int($f[2]);
+    $gidsUsed{$gid} = 1 if defined $gid;
+    return ($f[0], { name => $f[0], password => $f[1], gid => $gid, members => $f[3] });
+}
+
+my %groupsCur = -f "/etc/group" ? map { parseGroup } read_file("/etc/group") : ();
+
+# Read the current /etc/passwd.
+sub parseUser {
+    chomp;
+    my @f = split(':', $_, -7);
+    my $uid = $f[2] eq "" ? undef : int($f[2]);
+    $uidsUsed{$uid} = 1 if defined $uid;
+    return ($f[0], { name => $f[0], fakePassword => $f[1], uid => $uid,
+        gid => $f[3], description => $f[4], home => $f[5], shell => $f[6] });
+}
+
+my %usersCur = -f "/etc/passwd" ? map { parseUser } read_file("/etc/passwd") : ();
+
+# Read the groups that were created declaratively (i.e. not by groups)
+# in the past. These must be removed if they are no longer in the
+# current spec.
+my $declGroupsFile = "/var/lib/nixos/declarative-groups";
+my %declGroups;
+$declGroups{$_} = 1 foreach split / /, -e $declGroupsFile ? read_file($declGroupsFile) : "";
+
+# Idem for the users.
+my $declUsersFile = "/var/lib/nixos/declarative-users";
+my %declUsers;
+$declUsers{$_} = 1 foreach split / /, -e $declUsersFile ? read_file($declUsersFile) : "";
+
+
+# Generate a new /etc/group containing the declared groups.
+my %groupsOut;
+foreach my $g (@{$spec->{groups}}) {
+    my $name = $g->{name};
+    my $existing = $groupsCur{$name};
+
+    my %members = map { ($_, 1) } @{$g->{members}};
+
+    if (defined $existing) {
+        $g->{gid} = $existing->{gid} if !defined $g->{gid};
+        if ($g->{gid} != $existing->{gid}) {
+            warn "warning: not applying GID change of group ‘$name’\n";
+            $g->{gid} = $existing->{gid};
+        }
+        $g->{password} = $existing->{password}; # do we want this?
+        if ($spec->{mutableUsers}) {
+            # Merge in non-declarative group members.
+            foreach my $uname (split /,/, $existing->{members} // "") {
+                $members{$uname} = 1 if !defined $declUsers{$uname};
+            }
+        }
+    } else {
+        $g->{gid} = allocGid if !defined $g->{gid};
+        $g->{password} = "x";
+    }
+
+    $g->{members} = join ",", sort(keys(%members));
+    $groupsOut{$name} = $g;
+}
+
+# Update the persistent list of declarative groups.
+write_file($declGroupsFile, join(" ", sort(keys %groupsOut)));
+
+# Merge in the existing /etc/group.
+foreach my $name (keys %groupsCur) {
+    my $g = $groupsCur{$name};
+    next if defined $groupsOut{$name};
+    if (!$spec->{mutableUsers} || defined $declGroups{$name}) {
+        print STDERR "removing group ‘$name’\n";
+    } else {
+        $groupsOut{$name} = $g;
+    }
+}
+
+
+# Rewrite /etc/group. FIXME: acquire lock.
+my @lines = map { join(":", $_->{name}, $_->{password}, $_->{gid}, $_->{members}) . "\n" }
+    (sort { $a->{gid} <=> $b->{gid} } values(%groupsOut));
+write_file("/etc/group.tmp", @lines);
+rename("/etc/group.tmp", "/etc/group") or die;
+system("nscd --invalidate group");
+
+# Generate a new /etc/passwd containing the declared users.
+my %usersOut;
+foreach my $u (@{$spec->{users}}) {
+    my $name = $u->{name};
+
+    # Resolve the gid of the user.
+    if ($u->{group} =~ /^[0-9]$/) {
+        $u->{gid} = $u->{group};
+    } elsif (defined $groupsOut{$u->{group}}) {
+        $u->{gid} = $groupsOut{$u->{group}}->{gid} // die;
+    } else {
+        warn "warning: user ‘$name’ has unknown group ‘$u->{group}’\n";
+        $u->{gid} = 65534;
+    }
+
+    my $existing = $usersCur{$name};
+    if (defined $existing) {
+        $u->{uid} = $existing->{uid} if !defined $u->{uid};
+        if ($u->{uid} != $existing->{uid}) {
+            warn "warning: not applying UID change of user ‘$name’\n";
+            $u->{uid} = $existing->{uid};
+        }
+    } else {
+        $u->{uid} = allocUid($u->{isSystemUser}) if !defined $u->{uid};
+
+        # Create a home directory.
+        if ($u->{createHome}) {
+            make_path($u->{home}, { mode => 0700 }) if ! -e $u->{home};
+            chown $u->{uid}, $u->{gid}, $u->{home};
+        }
+    }
+
+    if (defined $u->{passwordFile}) {
+        if (-e $u->{passwordFile}) {
+            $u->{hashedPassword} = read_file($u->{passwordFile});
+            chomp $u->{hashedPassword};
+        } else {
+            warn "warning: password file ‘$u->{passwordFile}’ does not exist\n";
+        }
+    }
+
+    $u->{fakePassword} = $existing->{fakePassword} // "x";
+    $usersOut{$name} = $u;
+}
+
+# Update the persistent list of declarative users.
+write_file($declUsersFile, join(" ", sort(keys %usersOut)));
+
+# Merge in the existing /etc/passwd.
+foreach my $name (keys %usersCur) {
+    my $u = $usersCur{$name};
+    next if defined $usersOut{$name};
+    if (!$spec->{mutableUsers} || defined $declUsers{$name}) {
+        print STDERR "removing user ‘$name’\n";
+    } else {
+        $usersOut{$name} = $u;
+    }
+}
+
+# Rewrite /etc/passwd. FIXME: acquire lock.
+@lines = map { join(":", $_->{name}, $_->{fakePassword}, $_->{uid}, $_->{gid}, $_->{description}, $_->{home}, $_->{shell}) . "\n" }
+    (sort { $a->{uid} <=> $b->{uid} } (values %usersOut));
+write_file("/etc/passwd.tmp", @lines);
+rename("/etc/passwd.tmp", "/etc/passwd") or die;
+system("nscd --invalidate passwd");
+
+
+# Rewrite /etc/shadow to add new accounts or remove dead ones.
+my @shadowNew;
+my %shadowSeen;
+
+foreach my $line (-f "/etc/shadow" ? read_file("/etc/shadow") : ()) {
+    chomp $line;
+    my ($name, $password, @rest) = split(':', $line, -9);
+    my $u = $usersOut{$name};;
+    next if !defined $u;
+    $password = $u->{hashedPassword} if defined $u->{hashedPassword} && !$spec->{mutableUsers}; # FIXME
+    push @shadowNew, join(":", $name, $password, @rest) . "\n";
+    $shadowSeen{$name} = 1;
+}
+
+foreach my $u (values %usersOut) {
+    next if defined $shadowSeen{$u->{name}};
+    my $password = "!";
+    $password = $u->{hashedPassword} if defined $u->{hashedPassword};
+    # FIXME: set correct value for sp_lstchg.
+    push @shadowNew, join(":", $u->{name}, $password, "1::::::") . "\n";
+}
+
+write_file("/etc/shadow.tmp", { perms => 0600 }, @shadowNew);
+rename("/etc/shadow.tmp", "/etc/shadow") or die;
+
+
+# Call chpasswd to apply password. FIXME: generate the hashes directly
+# and merge into the /etc/shadow updating above.
+foreach my $u (@{$spec->{users}}) {
+    if (defined $u->{password}) {
+        my $pid = open(PW, "| chpasswd") or die;
+        print PW "$u->{name}:$u->{password}\n";
+        close PW or die "unable to change password of user ‘$u->{name}’: $?\n";
+    }
+}
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index a55593c2bad..7d0498c10cc 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -7,9 +7,6 @@ let
   ids = config.ids;
   cfg = config.users;
 
-  nonUidUsers = filterAttrs (n: u: u.createUser && u.uid == null) cfg.extraUsers;
-  nonGidGroups = filterAttrs (n: g: g.gid == null) cfg.extraGroups;
-
   passwordDescription = ''
     The options <literal>hashedPassword</literal>,
     <literal>password</literal> and <literal>passwordFile</literal>
@@ -55,10 +52,8 @@ let
         type = with types; nullOr int;
         default = null;
         description = ''
-          The account UID. If the <option>mutableUsers</option> option
-          is false, the UID cannot be null. Otherwise, the UID might be
-          null, in which case a free UID is picked on activation (by the
-          useradd command).
+          The account UID. If the UID is null, a free UID is picked on
+          activation.
         '';
       };
 
@@ -67,8 +62,7 @@ let
         default = false;
         description = ''
           Indicates if the user is a system user or not. This option
-          only has an effect if <option>mutableUsers</option> is
-          <literal>true</literal> and <option>uid</option> is
+          only has an effect if <option>uid</option> is
           <option>null</option>, in which case it determines whether
           the user's UID is allocated in the range for system users
           (below 500) or in the range for normal users (starting at
@@ -76,6 +70,21 @@ let
         '';
       };
 
+      isNormalUser = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Indicates whether this is an account for a “real” user. This
+          automatically sets <option>group</option> to
+          <literal>users</literal>, <option>createHome</option> to
+          <literal>true</literal>, <option>home</option> to
+          <filename>/home/<replaceable>username</replaceable></filename>,
+          <option>useDefaultShell</option> to <literal>true</literal>,
+          and <option>isSystemUser</option> to
+          <literal>false</literal>.
+        '';
+      };
+
       group = mkOption {
         type = types.str;
         default = "nogroup";
@@ -182,22 +191,20 @@ let
           ${passwordDescription}
         '';
       };
-
-      createUser = mkOption {
-        type = types.bool;
-        default = true;
-        description = ''
-          Indicates if the user should be created automatically as a local user.
-          Set this to false if the user for instance is an LDAP user. NixOS will
-          then not modify any of the basic properties for the user account.
-        '';
-      };
     };
 
-    config = {
-      name = mkDefault name;
-      shell = mkIf config.useDefaultShell (mkDefault cfg.defaultUserShell);
-    };
+    config = mkMerge
+      [ { name = mkDefault name;
+          shell = mkIf config.useDefaultShell (mkDefault cfg.defaultUserShell);
+        }
+        (mkIf config.isNormalUser {
+          group = mkDefault "users";
+          createHome = mkDefault true;
+          home = mkDefault "/home/${name}";
+          useDefaultShell = mkDefault true;
+          isSystemUser = mkDefault false;
+        })
+      ];
 
   };
 
@@ -217,10 +224,8 @@ let
         type = with types; nullOr int;
         default = null;
         description = ''
-          The group GID. If the <literal>mutableUsers</literal> option
-          is false, the GID cannot be null. Otherwise, the GID might be
-          null, in which case a free GID is picked on activation (by the
-          groupadd command).
+          The group GID. If the GID is null, a free GID is picked on
+          activation.
         '';
       };
 
@@ -271,97 +276,17 @@ let
     };
   };
 
-  getGroup = gname:
-    let
-      groups = mapAttrsToList (n: g: g) (
-        filterAttrs (n: g: g.name == gname) cfg.extraGroups
-      );
-    in
-      if length groups == 1 then head groups
-      else if groups == [] then throw "Group ${gname} not defined"
-      else throw "Group ${gname} has multiple definitions";
-
-  getUser = uname:
-    let
-      users = mapAttrsToList (n: u: u) (
-        filterAttrs (n: u: u.name == uname) cfg.extraUsers
-      );
-    in
-      if length users == 1 then head users
-      else if users == [] then throw "User ${uname} not defined"
-      else throw "User ${uname} has multiple definitions";
-
-  mkGroupEntry = gname:
-    let
-      g = getGroup gname;
-      users = mapAttrsToList (n: u: u.name) (
-        filterAttrs (n: u: elem g.name u.extraGroups) cfg.extraUsers
-      );
-    in concatStringsSep ":" [
-      g.name "x" (toString g.gid)
-      (concatStringsSep "," (users ++ (filter (u: !(elem u users)) g.members)))
-    ];
-
-  mkPasswdEntry = uname: let u = getUser uname; in
-    concatStringsSep ":" [
-      u.name "x" (toString u.uid)
-      (toString (getGroup u.group).gid)
-      u.description u.home u.shell
-    ];
-
-  filterNull = a: filter (x: hasAttr a x && getAttr a x != null);
-
-  sortOn = a: sort (as1: as2: lessThan (getAttr a as1) (getAttr a as2));
-
-  groupFile = pkgs.writeText "group" (
-    concatStringsSep "\n" (map (g: mkGroupEntry g.name) (
-      sortOn "gid" (filterNull "gid" (attrValues cfg.extraGroups))
-    ))
-  );
-
-  passwdFile = pkgs.writeText "passwd" (
-    concatStringsSep "\n" (map (u: mkPasswdEntry u.name) (
-      sortOn "uid" (filterNull "uid" (attrValues cfg.extraUsers))
-    ))
-  );
-
   mkSubuidEntry = user: concatStrings (
     map (range: "${user.name}:${toString range.startUid}:${toString range.count}\n")
-        user.subUidRanges);
+      user.subUidRanges);
 
-  subuidFile = concatStrings (map mkSubuidEntry (
-    sortOn "uid" (filterNull "uid" (attrValues cfg.extraUsers))));
+  subuidFile = concatStrings (map mkSubuidEntry (attrValues cfg.extraUsers));
 
   mkSubgidEntry = user: concatStrings (
     map (range: "${user.name}:${toString range.startGid}:${toString range.count}\n")
         user.subGidRanges);
 
-  subgidFile = concatStrings (map mkSubgidEntry (
-    sortOn "uid" (filterNull "uid" (attrValues cfg.extraUsers))));
-
-  # If mutableUsers is true, this script adds all users/groups defined in
-  # users.extra{Users,Groups} to /etc/{passwd,group} iff there isn't any
-  # existing user/group with the same name in those files.
-  # If mutableUsers is false, the /etc/{passwd,group} files will simply be
-  # replaced with the users/groups defined in the NixOS configuration.
-  # The merging procedure could certainly be improved, and instead of just
-  # keeping the lines as-is from /etc/{passwd,group} they could be combined
-  # in some way with the generated content from the NixOS configuration.
-  merger = src: pkgs.writeScript "merger" ''
-    #!${pkgs.bash}/bin/bash
-
-    PATH=${pkgs.gawk}/bin:${pkgs.gnugrep}/bin:$PATH
-
-    ${if !cfg.mutableUsers
-      then ''cp ${src} $1.tmp''
-      else ''awk -F: '{ print "^"$1":.*" }' $1 | egrep -vf - ${src} | cat $1 - > $1.tmp''
-    }
-
-    # set mtime to +1, otherwise change might go unnoticed (vipw/vigr only looks at mtime)
-    touch -m -t $(date -d @$(($(stat -c %Y $1)+1)) +%Y%m%d%H%M.%S) $1.tmp
-
-    mv -f $1.tmp $1
-  '';
+  subgidFile = concatStrings (map mkSubgidEntry (attrValues cfg.extraUsers));
 
   idsAreUnique = set: idAttr: !(fold (name: args@{ dup, acc }:
     let
@@ -376,6 +301,21 @@ let
   uidsAreUnique = idsAreUnique (filterAttrs (n: u: u.uid != null) cfg.extraUsers) "uid";
   gidsAreUnique = idsAreUnique (filterAttrs (n: g: g.gid != null) cfg.extraGroups) "gid";
 
+  spec = pkgs.writeText "users-groups.json" (builtins.toJSON {
+    inherit (cfg) mutableUsers;
+    users = mapAttrsToList (n: u:
+      { inherit (u)
+          name uid group description home shell createHome isSystemUser
+          password passwordFile hashedPassword;
+      }) cfg.extraUsers;
+    groups = mapAttrsToList (n: g:
+      { inherit (g) name gid;
+        members = mapAttrsToList (n: u: u.name) (
+          filterAttrs (n: u: elem g.name u.extraGroups) cfg.extraUsers
+        );
+      }) cfg.extraGroups;
+  });
+
 in {
 
   ###### interface
@@ -512,67 +452,12 @@ in {
       grsecurity.gid = ids.gids.grsecurity;
     };
 
-    system.activationScripts.users =
-      let
-        mkhomeUsers = filterAttrs (n: u: u.createHome) cfg.extraUsers;
-        setpwUsers = filterAttrs (n: u: u.createUser) cfg.extraUsers;
-        pwFile = u: if !(isNull u.hashedPassword)
-          then pkgs.writeTextFile { name = "password-file"; text = u.hashedPassword; }
-          else if !(isNull u.password)
-          then pkgs.runCommand "password-file" { pw = u.password; } ''
-            echo -n "$pw" | ${pkgs.mkpasswd}/bin/mkpasswd -s > $out
-          '' else u.passwordFile;
-        setpw = n: u: ''
-          setpw=yes
-          ${optionalString cfg.mutableUsers ''
-            test "$(getent shadow '${u.name}' | cut -d: -f2)" != "x" && setpw=no
-          ''}
-          if [ "$setpw" == "yes" ]; then
-            ${if !(isNull (pwFile u))
-              then ''
-                echo -n "${u.name}:" | cat - "${pwFile u}" | \
-                  ${pkgs.shadow}/sbin/chpasswd -e
-              ''
-              else "passwd -l '${u.name}' &>/dev/null"
-            }
-          fi
-        '';
-        mkhome = n: u: ''
-          uid="$(id -u ${u.name})"
-          gid="$(id -g ${u.name})"
-          h="${u.home}"
-          test -a "$h" || mkdir -p "$h" || true
-          test "$(stat -c %u "$h")" = $uid || chown $uid "$h" || true
-          test "$(stat -c %g "$h")" = $gid || chgrp $gid "$h" || true
-        '';
-        groupadd = n: g: ''
-          if [ -z "$(getent group "${g.name}")" ]; then
-            ${pkgs.shadow}/sbin/groupadd "${g.name}"
-          fi
-        '';
-        useradd = n: u: ''
-          if ! id "${u.name}" &>/dev/null; then
-            ${pkgs.shadow}/sbin/useradd \
-              -g "${u.group}" \
-              -G "${concatStringsSep "," u.extraGroups}" \
-              -s "${u.shell}" \
-              -d "${u.home}" \
-              ${optionalString u.isSystemUser "--system"} \
-              "${u.name}"
-            echo "${u.name}:x" | ${pkgs.shadow}/sbin/chpasswd -e
-          fi
-        '';
-      in stringAfter [ "etc" ] ''
-        touch /etc/group
-        touch /etc/passwd
-        VISUAL=${merger groupFile} ${pkgs.shadow}/sbin/vigr &>/dev/null
-        VISUAL=${merger passwdFile} ${pkgs.shadow}/sbin/vipw &>/dev/null
-        ${pkgs.shadow}/sbin/grpconv
-        ${pkgs.shadow}/sbin/pwconv
-        ${concatStrings (mapAttrsToList groupadd nonGidGroups)}
-        ${concatStrings (mapAttrsToList useradd nonUidUsers)}
-        ${concatStrings (mapAttrsToList mkhome mkhomeUsers)}
-        ${concatStrings (mapAttrsToList setpw setpwUsers)}
+    system.activationScripts.users = stringAfter [ "etc" ]
+      ''
+        ${pkgs.perl}/bin/perl -w \
+          -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl \
+          -I${pkgs.perlPackages.JSON}/lib/perl5/site_perl \
+          ${./update-users-groups.pl} ${spec}
       '';
 
     # for backwards compatibility
@@ -589,13 +474,7 @@ in {
 
     assertions = [
       { assertion = !cfg.enforceIdUniqueness || (uidsAreUnique && gidsAreUnique);
-        message = "uids and gids must be unique!";
-      }
-      { assertion = cfg.mutableUsers || (nonUidUsers == {});
-        message = "When mutableUsers is false, no uid can be null: ${toString (attrNames nonUidUsers)}";
-      }
-      { assertion = cfg.mutableUsers || (nonGidGroups == {});
-        message = "When mutableUsers is false, no gid can be null";
+        message = "UIDs and GIDs must be unique!";
       }
     ];
 
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 623cfdedd26..22f31c46080 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -11,7 +11,7 @@ let
   # The Grub image.
   grubImage = pkgs.runCommand "grub_eltorito" {}
     ''
-      ${pkgs.grub2}/bin/grub-mkimage -O i386-pc -o tmp biosdisk iso9660 help linux linux16 chain png jpeg echo gfxmenu reboot
+      ${pkgs.grub2}/bin/grub-mkimage -p /boot/grub -O i386-pc -o tmp biosdisk iso9660 help linux linux16 chain png jpeg echo gfxmenu reboot
       cat ${pkgs.grub2}/lib/grub/*/cdboot.img tmp > $out
     ''; # */
 
diff --git a/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix b/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
index c2a11a1a8b3..7d3346e4ea1 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
+++ b/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
@@ -79,7 +79,6 @@ in
       pkgs.jfsrec
 
       # Some compression/archiver tools.
-      pkgs.unrar
       pkgs.unzip
       pkgs.zip
       pkgs.xz
diff --git a/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix b/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
index 2ed70c1daa9..4ce7582c166 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
+++ b/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
@@ -70,7 +70,6 @@ in
       pkgs.btrfsProgs
 
       # Some compression/archiver tools.
-      pkgs.unrar
       pkgs.unzip
       pkgs.zip
       pkgs.xz
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 66a8152a3a6..e8f100d6498 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -20,6 +20,13 @@ sub uniq {
     return @res;
 }
 
+sub runCommand {
+    my ($cmd) = @_;
+    open FILE, "$cmd 2>&1 |" or die "Failed to execute: $cmd\n";
+    my @ret = <FILE>;
+    close FILE;
+    return ($?, @ret);
+}
 
 # Process the command line.
 my $outDir = "/etc/nixos";
@@ -304,10 +311,13 @@ foreach my $fs (read_file("/proc/self/mountinfo")) {
 
     # Maybe this is a bind-mount of a filesystem we saw earlier?
     if (defined $fsByDev{$fields[2]}) {
-        my $path = $fields[3]; $path = "" if $path eq "/";
-        my $base = $fsByDev{$fields[2]};
-        $base = "" if $base eq "/";
-        $fileSystems .= <<EOF;
+        # Make sure this isn't a btrfs subvolume
+        my ($status, @msg) = runCommand("btrfs subvol show $rootDir$mountPoint");
+        if (join("", @msg) =~ /ERROR:/) {
+            my $path = $fields[3]; $path = "" if $path eq "/";
+            my $base = $fsByDev{$fields[2]};
+            $base = "" if $base eq "/";
+            $fileSystems .= <<EOF;
   fileSystems.\"$mountPoint\" =
     { device = \"$base$path\";
       fsType = \"none\";
@@ -315,7 +325,8 @@ foreach my $fs (read_file("/proc/self/mountinfo")) {
     };
 
 EOF
-        next;
+            next;
+        }
     }
     $fsByDev{$fields[2]} = $mountPoint;
 
@@ -337,6 +348,30 @@ EOF
         }
     }
 
+    # Is this a btrfs filesystem?
+    if ($fsType eq "btrfs") {
+        my ($status, @id_info) = runCommand("btrfs subvol show $rootDir$mountPoint");
+        if ($status != 0 || join("", @msg) =~ /ERROR:/) {
+            die "Failed to retreive subvolume info for $mountPoint\n";
+        }
+        my @ids = join("", @id_info) =~ m/Object ID:[ \t\n]*([^ \t\n]*)/;
+        if ($#ids > 0) {
+            die "Btrfs subvol name for $mountPoint listed multiple times in mount\n"
+        } elsif ($#ids == 0) {
+            my ($status, @path_info) = runCommand("btrfs subvol list $rootDir$mountPoint");
+            if ($status != 0) {
+                die "Failed to find $mountPoint subvolume id from btrfs\n";
+            }
+            my @paths = join("", @path_info) =~ m/ID $ids[0] [^\n]* path ([^\n]*)/;
+            if ($#paths > 0) {
+                die "Btrfs returned multiple paths for a single subvolume id, mountpoint $mountPoint\n";
+            } elsif ($#paths != 0) {
+                die "Btrfs did not return a path for the subvolume at $mountPoint\n";
+            }
+            push @extraOptions, "subvol=$paths[0]";
+        }
+    }
+
     # Emit the filesystem.
     $fileSystems .= <<EOF;
   fileSystems.\"$mountPoint\" =
@@ -490,12 +525,8 @@ $bootLoaderConfig
 
   # Define a user account. Don't forget to set a password with ‘passwd’.
   # users.extraUsers.guest = {
-  #   name = "guest";
-  #   group = "users";
+  #   isNormalUser = true;
   #   uid = 1000;
-  #   createHome = true;
-  #   home = "/home/guest";
-  #   shell = "/run/current-system/sw/bin/bash";
   # };
 
 }
diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index 86952486ade..bd334c2a3cb 100644
--- a/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixos/modules/installer/tools/nixos-install.sh
@@ -7,6 +7,9 @@
 #   * nix-env -p /nix/var/nix/profiles/system -i <nix-expr for the configuration>
 #   * install the boot loader
 
+# Ensure a consistent umask.
+umask 0022
+
 # Re-exec ourselves in a private mount namespace so that our bind
 # mounts get cleaned up automatically.
 if [ "$(id -u)" = 0 ]; then
@@ -243,7 +246,7 @@ chroot $mountPoint /nix/var/nix/profiles/system/activate
 # Ask the user to set a root password.
 if [ -t 0 ] ; then
     echo "setting root password..."
-    chroot $mountPoint passwd
+    chroot $mountPoint /var/setuid-wrappers/passwd
 fi
 
 
diff --git a/nixos/modules/installer/tools/nixos-option.sh b/nixos/modules/installer/tools/nixos-option.sh
index edc94d73208..96d09c3a605 100644
--- a/nixos/modules/installer/tools/nixos-option.sh
+++ b/nixos/modules/installer/tools/nixos-option.sh
@@ -11,9 +11,6 @@ usage () {
 # Process Arguments #
 #####################
 
-desc=false
-defs=false
-value=false
 xml=false
 verbose=false
 
@@ -24,14 +21,11 @@ for arg; do
   if test -z "$argfun"; then
     case $arg in
       -*)
-        longarg=""
         sarg="$arg"
+        longarg=""
         while test "$sarg" != "-"; do
           case $sarg in
             --*) longarg=$arg; sarg="--";;
-            -d*) longarg="$longarg --description";;
-            -v*) longarg="$longarg --value";;
-            -l*) longarg="$longarg --lookup";;
             -*) usage;;
           esac
           # remove the first letter option
@@ -42,9 +36,6 @@ for arg; do
     esac
     for larg in $longarg; do
       case $larg in
-        --description) desc=true;;
-        --value) value=true;;
-        --lookup) defs=true;;
         --xml) xml=true;;
         --verbose) verbose=true;;
         --help) usage;;
@@ -67,16 +58,6 @@ for arg; do
   fi
 done
 
-if $xml; then
-  value=true
-  desc=true
-  defs=true
-fi
-
-if ! $defs && ! $desc; then
-  value=true
-fi
-
 if $verbose; then
   set -x
 else
@@ -95,8 +76,7 @@ evalAttr(){
   local prefix="$1"
   local strict="$2"
   local suffix="$3"
-  echo "(import <nixos> {}).$prefix${option:+.$option}${suffix:+.$suffix}" |
-    evalNix ${strict:+--strict}
+  echo "(import <nixos> {}).$prefix${option:+.$option}${suffix:+.$suffix}" | evalNix ${strict:+--strict}
 }
 
 evalOpt(){
@@ -189,35 +169,37 @@ EOF
 fi
 
 if test "$(evalOpt "_type" 2> /dev/null)" = '"option"'; then
-  $value && evalCfg 1
-
-  if $desc; then
-    $value && echo;
-
-    if default=$(evalOpt "default" - 2> /dev/null); then
-      echo "Default: $default"
-    else
-      echo "Default: <None>"
-    fi
-    if example=$(evalOpt "example" - 2> /dev/null); then
-      echo "Example: $example"
-    fi
-    echo "Description:"
-    eval printf $(evalOpt "description")
+  echo "Value:"
+  evalCfg 1
+
+  echo
+
+  echo "Default:"
+  if default=$(evalOpt "default" - 2> /dev/null); then
+    echo "$default"
+  else
+    echo "<None>"
+  fi
+  echo
+  if example=$(evalOpt "example" - 2> /dev/null); then
+    echo "Example:"
+    echo "$example"
+    echo
   fi
+  echo "Description:"
+  echo
+  eval printf $(evalOpt "description")
 
-  if $defs; then
-    $desc || $value && echo;
+  echo $desc;
 
-    printPath () { echo "  $1"; }
+  printPath () { echo "  $1"; }
 
-    echo "Declared by:"
-    nixMap printPath "$(findSources "declarations")"
-    echo ""
-    echo "Defined by:"
-    nixMap printPath "$(findSources "files")"
-    echo ""
-  fi
+  echo "Declared by:"
+  nixMap printPath "$(findSources "declarations")"
+  echo
+  echo "Defined by:"
+  nixMap printPath "$(findSources "files")"
+  echo
 
 else
   # echo 1>&2 "Warning: This value is not an option."
diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh
index 52b64c37578..5daa9ff9457 100644
--- a/nixos/modules/installer/tools/nixos-rebuild.sh
+++ b/nixos/modules/installer/tools/nixos-rebuild.sh
@@ -194,13 +194,13 @@ if [ -z "$rollback" ]; then
         nix-env "${extraBuildFlags[@]}" -p "$profile" -f '<nixpkgs/nixos>' --set -A system
         pathToConfig="$profile"
     elif [ "$action" = test -o "$action" = build -o "$action" = dry-run ]; then
-        nix-build '<nixpkgs/nixos>' -A system -K -k "${extraBuildFlags[@]}" > /dev/null
+        nix-build '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}" > /dev/null
         pathToConfig=./result
     elif [ "$action" = build-vm ]; then
-        nix-build '<nixpkgs/nixos>' -A vm -K -k "${extraBuildFlags[@]}" > /dev/null
+        nix-build '<nixpkgs/nixos>' -A vm -k "${extraBuildFlags[@]}" > /dev/null
         pathToConfig=./result
     elif [ "$action" = build-vm-with-bootloader ]; then
-        nix-build '<nixpkgs/nixos>' -A vmWithBootLoader -K -k "${extraBuildFlags[@]}" > /dev/null
+        nix-build '<nixpkgs/nixos>' -A vmWithBootLoader -k "${extraBuildFlags[@]}" > /dev/null
         pathToConfig=./result
     else
         showSyntax
@@ -226,7 +226,7 @@ fi
 # default and/or activate it now.
 if [ "$action" = switch -o "$action" = boot -o "$action" = test ]; then
     if ! $pathToConfig/bin/switch-to-configuration "$action"; then
-        echo "warning: there were error switching to the new configuration" >&2
+        echo "warning: error(s) occured while switching to the new configuration" >&2
         exit 1
     fi
 fi
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index 39da2f1f0be..91a30695a7a 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -38,6 +38,7 @@ let
   nixos-generate-config = makeProg {
     name = "nixos-generate-config";
     src = ./nixos-generate-config.pl;
+    path = [ pkgs.btrfsProgs ];
     perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
   };
 
diff --git a/nixos/modules/installer/virtualbox-demo.nix b/nixos/modules/installer/virtualbox-demo.nix
index f68f8dc40aa..49ec0899610 100644
--- a/nixos/modules/installer/virtualbox-demo.nix
+++ b/nixos/modules/installer/virtualbox-demo.nix
@@ -10,6 +10,9 @@ with lib;
       ../profiles/clone-config.nix
     ];
 
+  # FIXME: UUID detection is currently broken
+  boot.loader.grub.fsIdentifier = "provided";
+
   # Allow mounting of shared folders.
   users.extraUsers.demo.extraGroups = [ "vboxsf" ];
 
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index efd8b253cd4..37531ad1cdf 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -150,6 +150,7 @@
       zookeeper = 140;
       dnsmasq = 141;
       uhub = 142;
+      yandexdisk=143;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 7de63c60649..f3ed2aaba09 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -41,7 +41,7 @@ in {
 
       output = mkOption {
         type = types.path;
-        default = /var/cache/locatedb;
+        default = "/var/cache/locatedb";
         description = ''
           The database file to build.
         '';
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 76d1ed8a9d4..236534000fe 100644..100755
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -85,7 +85,8 @@
   ./services/amqp/activemq/default.nix
   ./services/amqp/rabbitmq.nix
   ./services/audio/alsa.nix
-  ./services/audio/fuppes.nix
+  # Disabled as fuppes it does no longer builds.
+  # ./services/audio/fuppes.nix
   ./services/audio/mpd.nix
   ./services/audio/mopidy.nix
   ./services/backup/almir.nix
@@ -95,6 +96,8 @@
   ./services/backup/rsnapshot.nix
   ./services/backup/sitecopy-backup.nix
   ./services/backup/tarsnap.nix
+  ./services/computing/torque/server.nix
+  ./services/computing/torque/mom.nix
   ./services/continuous-integration/jenkins/default.nix
   ./services/continuous-integration/jenkins/slave.nix
   ./services/databases/4store-endpoint.nix
@@ -161,10 +164,13 @@
   ./services/misc/folding-at-home.nix
   ./services/misc/gitolite.nix
   ./services/misc/gpsd.nix
+  ./services/misc/mesos-master.nix
+  ./services/misc/mesos-slave.nix
   ./services/misc/nix-daemon.nix
   ./services/misc/nix-gc.nix
   ./services/misc/nixos-manual.nix
   ./services/misc/nix-ssh-serve.nix
+  ./services/misc/phd.nix
   ./services/misc/rippled.nix
   ./services/misc/rogue.nix
   ./services/misc/siproxd.nix
@@ -192,6 +198,8 @@
   ./services/network-filesystems/openafs-client/default.nix
   ./services/network-filesystems/rsyncd.nix
   ./services/network-filesystems/samba.nix
+  ./services/network-filesystems/diod.nix
+  ./services/network-filesystems/yandex-disk.nix
   ./services/networking/amuled.nix
   ./services/networking/atftpd.nix
   ./services/networking/avahi-daemon.nix
diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index 6f9e3002f29..7a6f7657205 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -37,7 +37,6 @@
     #pkgs.jfsrec # disabled because of Boost dependency
 
     # Some compression/archiver tools.
-    pkgs.unrar
     pkgs.unzip
     pkgs.zip
     pkgs.dar # disk archiver
diff --git a/nixos/modules/profiles/demo.nix b/nixos/modules/profiles/demo.nix
index 605cc6aad1d..ef6fd77b5f8 100644
--- a/nixos/modules/profiles/demo.nix
+++ b/nixos/modules/profiles/demo.nix
@@ -4,12 +4,9 @@
   imports = [ ./graphical.nix ];
 
   users.extraUsers.demo =
-    { description = "Demo user account";
-      group = "users";
+    { isNormalUser = true;
+      description = "Demo user account";
       extraGroups = [ "wheel" ];
-      home = "/home/demo";
-      createHome = true;
-      useDefaultShell = true;
       password = "demo";
       uid = 1000;
     };
diff --git a/nixos/modules/programs/environment.nix b/nixos/modules/programs/environment.nix
index 4a510805b01..623a428fc1a 100644
--- a/nixos/modules/programs/environment.nix
+++ b/nixos/modules/programs/environment.nix
@@ -37,26 +37,24 @@ in
         "/run/current-system/sw"
       ];
 
-    # !!! fix environment.profileVariables definition and then move
-    # most of these elsewhere
-    environment.profileVariables = (i:
-      { PATH = [ "${i}/bin" "${i}/sbin" "${i}/lib/kde4/libexec" ];
-        MANPATH = [ "${i}/man" "${i}/share/man" ];
-        INFOPATH = [ "${i}/info" "${i}/share/info" ];
-        PKG_CONFIG_PATH = [ "${i}/lib/pkgconfig" ];
-        TERMINFO_DIRS = [ "${i}/share/terminfo" ];
-        PERL5LIB = [ "${i}/lib/perl5/site_perl" ];
-        ALSA_PLUGIN_DIRS = [ "${i}/lib/alsa-lib" ];
-        GST_PLUGIN_SYSTEM_PATH = [ "${i}/lib/gstreamer-0.10" ];
-        KDEDIRS = [ "${i}" ];
-        STRIGI_PLUGIN_PATH = [ "${i}/lib/strigi/" ];
-        QT_PLUGIN_PATH = [ "${i}/lib/qt4/plugins" "${i}/lib/kde4/plugins" ];
-        QTWEBKIT_PLUGIN_PATH = [ "${i}/lib/mozilla/plugins/" ];
-        GTK_PATH = [ "${i}/lib/gtk-2.0" "${i}/lib/gtk-3.0" ];
-        XDG_CONFIG_DIRS = [ "${i}/etc/xdg" ];
-        XDG_DATA_DIRS = [ "${i}/share" ];
-        MOZ_PLUGIN_PATH = [ "${i}/lib/mozilla/plugins" ];
-      });
+    # TODO: move most of these elsewhere
+    environment.profileRelativeEnvVars =
+      { PATH = [ "/bin" "/sbin" "/lib/kde4/libexec" ];
+        MANPATH = [ "/man" "/share/man" ];
+        INFOPATH = [ "/info" "/share/info" ];
+        PKG_CONFIG_PATH = [ "/lib/pkgconfig" ];
+        TERMINFO_DIRS = [ "/share/terminfo" ];
+        PERL5LIB = [ "/lib/perl5/site_perl" ];
+        ALSA_PLUGIN_DIRS = [ "/lib/alsa-lib" ];
+        KDEDIRS = [ "" ];
+        STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
+        QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" ];
+        QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
+        GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
+        XDG_CONFIG_DIRS = [ "/etc/xdg" ];
+        XDG_DATA_DIRS = [ "/share" ];
+        MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
+      };
 
     environment.extraInit =
       ''
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index fdb9dfd4b8c..ee9cb81a027 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -59,6 +59,13 @@ in
         '';
       };
 
+      package = mkOption {
+        default = pkgs.openssh;
+        description = ''
+          The package used for the openssh client and daemon.
+        '';
+      };
+
     };
 
   };
@@ -92,7 +99,7 @@ in
         wantedBy = [ "default.target" ];
         serviceConfig =
           { ExecStartPre = "${pkgs.coreutils}/bin/rm -f %t/ssh-agent";
-            ExecStart = "${pkgs.openssh}/bin/ssh-agent -a %t/ssh-agent";
+            ExecStart = "${cfg.package}/bin/ssh-agent -a %t/ssh-agent";
             StandardOutput = "null";
             Type = "forking";
             Restart = "on-failure";
diff --git a/nixos/modules/programs/virtualbox.nix b/nixos/modules/programs/virtualbox.nix
index fec1a7b61f3..1a190573e94 100644
--- a/nixos/modules/programs/virtualbox.nix
+++ b/nixos/modules/programs/virtualbox.nix
@@ -15,7 +15,7 @@ let virtualbox = config.boot.kernelPackages.virtualbox; in
     ''
       KERNEL=="vboxdrv",    OWNER="root", GROUP="vboxusers", MODE="0660", TAG+="systemd"
       KERNEL=="vboxdrvu",   OWNER="root", GROUP="root",      MODE="0666", TAG+="systemd"
-      KERNEL=="vboxnetctl", OWNER="root", GROUP="root",      MODE="0600", TAG+="systemd"
+      KERNEL=="vboxnetctl", OWNER="root", GROUP="vboxusers", MODE="0660", TAG+="systemd"
       SUBSYSTEM=="usb_device", ACTION=="add", RUN+="${virtualbox}/libexec/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
       SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="${virtualbox}/libexec/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
       SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="${virtualbox}/libexec/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
diff --git a/nixos/modules/security/setuid-wrappers.nix b/nixos/modules/security/setuid-wrappers.nix
index 22dbdf6a6bf..2a289dc402c 100644
--- a/nixos/modules/security/setuid-wrappers.nix
+++ b/nixos/modules/security/setuid-wrappers.nix
@@ -76,10 +76,7 @@ in
 
   config = {
 
-    security.setuidPrograms =
-      [ "mount.nfs" "mount.nfs4" "mount.cifs"
-        "fusermount" "umount"
-        "wodim" "cdrdao" "growisofs" ];
+    security.setuidPrograms = [ "fusermount" ];
 
     system.activationScripts.setuid =
       let
diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix
index a930098bfee..77487ec1ab9 100644
--- a/nixos/modules/services/amqp/rabbitmq.nix
+++ b/nixos/modules/services/amqp/rabbitmq.nix
@@ -89,6 +89,8 @@ in {
       wantedBy = [ "multi-user.target" ];
       after = [ "network-interfaces.target" ];
 
+      path = [ pkgs.rabbitmq_server ];
+
       environment = {
         RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
         RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
@@ -119,6 +121,8 @@ in {
         mkdir -p /var/log/rabbitmq && chmod 0700 /var/log/rabbitmq
         chown rabbitmq:rabbitmq /var/log/rabbitmq
       '';
+
+      postStart = mkBefore "until rabbitmqctl status; do sleep 1; done";
     };
 
   };
diff --git a/nixos/modules/services/computing/torque/mom.nix b/nixos/modules/services/computing/torque/mom.nix
new file mode 100644
index 00000000000..83772539a7a
--- /dev/null
+++ b/nixos/modules/services/computing/torque/mom.nix
@@ -0,0 +1,63 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.torque.mom;
+  torque = pkgs.torque;
+
+  momConfig = pkgs.writeText "torque-mom-config" ''
+    $pbsserver ${cfg.serverNode}
+    $logevent 225
+  '';
+
+in
+{
+  options = {
+
+    services.torque.mom = {
+      enable = mkEnableOption "torque computing node";
+
+      serverNode = mkOption {
+        type = types.str;
+        description = "Hostname running pbs server.";
+      };
+
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.torque ];
+
+    systemd.services.torque-mom-init = {
+      path = with pkgs; [ torque utillinux procps inetutils ];
+
+      script = ''
+        pbs_mkdirs -v aux
+        pbs_mkdirs -v mom
+        hostname > /var/spool/torque/server_name
+        cp -v ${momConfig} /var/spool/torque/mom_priv/config
+      '';
+
+      serviceConfig.Type = "oneshot";
+      unitConfig.ConditionPathExists = "!/var/spool/torque";
+    };
+
+    systemd.services.torque-mom = {
+      path = [ torque ];
+
+      wantedBy = [ "multi-user.target" ];
+      requires = [ "torque-mom-init.service" ];
+      after = [ "torque-mom-init.service" "network.target" ];
+
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${torque}/bin/pbs_mom";
+        PIDFile = "/var/spool/torque/mom_priv/mom.lock";
+      };
+    };
+
+  };
+}      
diff --git a/nixos/modules/services/computing/torque/server.nix b/nixos/modules/services/computing/torque/server.nix
new file mode 100644
index 00000000000..655d1500497
--- /dev/null
+++ b/nixos/modules/services/computing/torque/server.nix
@@ -0,0 +1,96 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.services.torque.server;
+  torque = pkgs.torque;
+in
+{
+  options = {
+
+    services.torque.server = {
+
+      enable = mkEnableOption "torque server";
+
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.torque ];
+
+    systemd.services.torque-server-init = {
+      path = with pkgs; [ torque utillinux procps inetutils ];
+
+      script = ''
+        tmpsetup=$(mktemp -t torque-XXXX)
+        cp -p ${torque}/bin/torque.setup $tmpsetup
+        sed -i $tmpsetup -e 's/pbs_server -t create/pbs_server -f -t create/'
+
+        pbs_mkdirs -v aux
+        pbs_mkdirs -v server
+        hostname > /var/spool/torque/server_name
+        cp -prv ${torque}/var/spool/torque/* /var/spool/torque/
+        $tmpsetup root
+
+        sleep 1
+        rm -f $tmpsetup
+        kill $(pgrep pbs_server) 2>/dev/null
+        kill $(pgrep trqauthd) 2>/dev/null
+      '';
+
+      serviceConfig = {
+        Type = "oneshot";
+        RemainAfterExit = true;
+      };
+
+      unitConfig = {
+        ConditionPathExists = "!/var/spool/torque";
+      };
+    };
+
+    systemd.services.trqauthd = {
+      path = [ torque ];
+
+      requires = [ "torque-server-init.service" ];
+      after = [ "torque-server-init.service" ];
+
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${torque}/bin/trqauthd";
+      };
+    };
+
+    systemd.services.torque-server = {
+      path = [ torque ];
+
+      wantedBy = [ "multi-user.target" ];
+      wants = [ "torque-scheduler.service" "trqauthd.service" ];
+      before = [ "trqauthd.service" ];
+      requires = [ "torque-server-init.service" ];
+      after = [ "torque-server-init.service" "network.target" ];
+
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${torque}/bin/pbs_server";
+        ExecStop = "${torque}/bin/qterm";
+        PIDFile = "/var/spool/torque/server_priv/server.lock";
+      };
+    };
+
+    systemd.services.torque-scheduler = {
+      path = [ torque ];
+
+      requires = [ "torque-server-init.service" ];
+      after = [ "torque-server-init.service" ];
+
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${torque}/bin/pbs_sched";
+        PIDFile = "/var/spool/torque/sched_priv/sched.lock";
+      };
+    };
+
+  };
+}      
diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix
index b01b5c3245a..29a81f066ab 100644
--- a/nixos/modules/services/continuous-integration/jenkins/default.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/default.nix
@@ -15,7 +15,7 @@ in {
 
       user = mkOption {
         default = "jenkins";
-        type = with types; string;
+        type = types.str;
         description = ''
           User the jenkins server should execute under.
         '';
@@ -23,16 +23,25 @@ in {
 
       group = mkOption {
         default = "jenkins";
-        type = with types; string;
+        type = types.str;
         description = ''
           If the default user "jenkins" is configured then this is the primary
           group of that user.
         '';
       };
 
+      extraGroups = mkOption {
+        type = types.listOf types.str;
+        default = [ ];
+        example = [ "wheel" "dialout" ];
+        description = ''
+          List of extra groups that the "jenkins" user should be a part of.
+        '';
+      };
+
       home = mkOption {
         default = "/var/lib/jenkins";
-        type = with types; string;
+        type = types.path;
         description = ''
           The path to use as JENKINS_HOME. If the default user "jenkins" is configured then
           this is the home of the "jenkins" user.
@@ -57,12 +66,21 @@ in {
 
       environment = mkOption {
         default = { NIX_REMOTE = "daemon"; };
-        type = with types; attrsOf string;
+        type = with types; attrsOf str;
         description = ''
           Additional environment variables to be passed to the jenkins process.
           The environment will always include JENKINS_HOME.
         '';
       };
+
+      extraOptions = mkOption {
+        type = types.listOf types.str;
+        default = [ ];
+        example = [ "--debug=9" "--httpListenAddress=localhost" ];
+        description = ''
+          Additional command line arguments to pass to Jenkins.
+        '';
+      };
     };
   };
 
@@ -78,6 +96,7 @@ in {
       createHome = true;
       home = cfg.home;
       group = cfg.group;
+      extraGroups = cfg.extraGroups;
       useDefaultShell = true;
       uid = config.ids.uids.jenkins;
     };
@@ -94,7 +113,7 @@ in {
       path = cfg.packages;
 
       script = ''
-        ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins} --httpPort=${toString cfg.port}
+        ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins} --httpPort=${toString cfg.port} ${concatStringsSep " " cfg.extraOptions}
       '';
 
       postStart = ''
diff --git a/nixos/modules/services/continuous-integration/jenkins/slave.nix b/nixos/modules/services/continuous-integration/jenkins/slave.nix
index 5836d92a4fc..a0216caf2b5 100644
--- a/nixos/modules/services/continuous-integration/jenkins/slave.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/slave.nix
@@ -23,7 +23,7 @@ in {
 
       user = mkOption {
         default = "jenkins";
-        type = with types; string;
+        type = types.str;
         description = ''
           User the jenkins slave agent should execute under.
         '';
@@ -31,7 +31,7 @@ in {
 
       group = mkOption {
         default = "jenkins";
-        type = with types; string;
+        type = types.str;
         description = ''
           If the default slave agent user "jenkins" is configured then this is
           the primary group of that user.
@@ -40,7 +40,7 @@ in {
 
       home = mkOption {
         default = "/var/lib/jenkins";
-        type = with types; string;
+        type = types.path;
         description = ''
           The path to use as JENKINS_HOME. If the default user "jenkins" is configured then
           this is the home of the "jenkins" user.
diff --git a/nixos/modules/services/databases/influxdb.nix b/nixos/modules/services/databases/influxdb.nix
index 61fe96d5d64..b57ccebae16 100644
--- a/nixos/modules/services/databases/influxdb.nix
+++ b/nixos/modules/services/databases/influxdb.nix
@@ -224,6 +224,11 @@ in
         mkdir -m 0770 -p ${cfg.dataDir}
         if [ "$(id -u)" = 0 ]; then chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}; fi
       '';
+      postStart = mkBefore ''
+        until ${pkgs.curl}/bin/curl -s -o /dev/null 'http://${cfg.bindAddress}:${toString cfg.apiPort}/'; do
+          sleep 1;
+        done
+      '';
     };
 
     users.extraUsers = optional (cfg.user == "influxdb") {
diff --git a/nixos/modules/services/logging/logstash.nix b/nixos/modules/services/logging/logstash.nix
index 802dd454878..df81ac142dc 100644
--- a/nixos/modules/services/logging/logstash.nix
+++ b/nixos/modules/services/logging/logstash.nix
@@ -11,20 +11,25 @@ in
   ###### interface
 
   options = {
+
     services.logstash = {
+
       enable = mkOption {
+        type = types.bool;
         default = false;
-        description = "Enable logstash";
+        description = "Enable logstash.";
       };
 
       enableWeb = mkOption {
+        type = types.bool;
         default = false;
-        description = "Enable logstash web interface";
+        description = "Enable the logstash web interface.";
       };
 
       inputConfig = mkOption {
+        type = types.lines;
         default = ''stdin { type => "example" }'';
-        description = "Logstash input configuration";
+        description = "Logstash input configuration.";
         example = ''
           # Read from journal
           pipe {
@@ -35,8 +40,9 @@ in
       };
 
       filterConfig = mkOption {
+        type = types.lines;
         default = ''noop {}'';
-        description = "logstash filter configuration";
+        description = "logstash filter configuration.";
         example = ''
           if [type] == "syslog" {
             # Keep only relevant systemd fields
@@ -52,13 +58,15 @@ in
       };
 
       outputConfig = mkOption {
+        type = types.lines;
         default = ''stdout { debug => true debug_format => "json"}'';
-        description = "Logstash output configuration";
+        description = "Logstash output configuration.";
         example = ''
           redis { host => "localhost" data_type => "list" key => "logstash" codec => json }
           elasticsearch { embedded => true }
         '';
       };
+
     };
   };
 
diff --git a/nixos/modules/services/misc/mesos-master.nix b/nixos/modules/services/misc/mesos-master.nix
new file mode 100644
index 00000000000..bdf88d427c5
--- /dev/null
+++ b/nixos/modules/services/misc/mesos-master.nix
@@ -0,0 +1,103 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.mesos.master;
+  
+in {
+
+  options.services.mesos = {
+    
+    master = {
+      enable = mkOption {
+        description = "Whether to enable the Mesos Master.";
+        default = false;
+        type = types.uniq types.bool;
+      };
+
+      port = mkOption {
+        description = "Mesos Master port";
+        default = 5050;
+        type = types.int;
+      };
+
+      zk = mkOption {
+        description = ''
+          ZooKeeper URL (used for leader election amongst masters).
+          May be one of:
+            zk://host1:port1,host2:port2,.../mesos
+            zk://username:password@host1:port1,host2:port2,.../mesos
+        '';
+        type = types.str;
+      };
+      
+      workDir = mkOption {
+        description = "The Mesos work directory.";
+        default = "/var/lib/mesos/master";
+        type = types.str;
+      };
+      
+      extraCmdLineOptions = mkOption {
+        description = ''
+	  Extra command line options for Mesos Master.
+	  
+	  See https://mesos.apache.org/documentation/latest/configuration/
+	'';
+        default = [ "" ];
+        type = types.listOf types.string;
+        example = [ "--credentials=VALUE" ];
+      };
+      
+      quorum = mkOption {
+        description = ''
+          The size of the quorum of replicas when using 'replicated_log' based
+          registry. It is imperative to set this value to be a majority of
+          masters i.e., quorum > (number of masters)/2.
+          
+          If 0 will fall back to --registry=in_memory.
+        '';
+        default = 0;
+        type = types.int;
+      };
+      
+      logLevel = mkOption {
+        description = ''
+          The logging level used. Possible values:
+            'INFO', 'WARNING', 'ERROR'
+        '';
+        default = "INFO";
+        type = types.str;
+      };
+
+    };
+
+
+  };
+
+
+  config = mkIf cfg.enable {
+    systemd.services.mesos-master = {
+      description = "Mesos Master";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-interfaces.target" ];
+      serviceConfig = {
+	ExecStart = ''
+	  ${pkgs.mesos}/bin/mesos-master \
+	    --port=${toString cfg.port} \
+	    --zk=${cfg.zk} \
+	    ${if cfg.quorum == 0 then "--registry=in_memory" else "--registry=replicated_log --quorum=${cfg.quorum}"} \
+	    --work_dir=${cfg.workDir} \
+	    --logging_level=${cfg.logLevel} \
+	    ${toString cfg.extraCmdLineOptions}
+	'';
+	PermissionsStartOnly = true;
+      };
+      preStart = ''
+	mkdir -m 0700 -p ${cfg.workDir}
+      '';
+    };
+  };
+  
+}
+
diff --git a/nixos/modules/services/misc/mesos-slave.nix b/nixos/modules/services/misc/mesos-slave.nix
new file mode 100644
index 00000000000..e9a89816716
--- /dev/null
+++ b/nixos/modules/services/misc/mesos-slave.nix
@@ -0,0 +1,93 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.mesos.slave;
+  
+in {
+
+  options.services.mesos = {
+    slave = {
+      enable = mkOption {
+        description = "Whether to enable the Mesos Slave.";
+        default = false;
+        type = types.uniq types.bool;
+      };
+
+      port = mkOption {
+        description = "Mesos Slave port";
+        default = 5051;
+        type = types.int;
+      };
+
+      master = mkOption {
+        description = ''
+          May be one of:
+            zk://host1:port1,host2:port2,.../path
+            zk://username:password@host1:port1,host2:port2,.../path
+        '';
+        type = types.str;
+      };
+      
+      withHadoop = mkOption {
+	description = "Add the HADOOP_HOME to the slave.";
+	default = false;
+	type = types.bool;
+      };
+      
+      workDir = mkOption {
+        description = "The Mesos work directory.";
+        default = "/var/lib/mesos/slave";
+        type = types.str;
+      };
+      
+      extraCmdLineOptions = mkOption {
+        description = ''
+	  Extra command line options for Mesos Slave.
+	  
+	  See https://mesos.apache.org/documentation/latest/configuration/
+	'';
+        default = [ "" ];
+        type = types.listOf types.string;
+        example = [ "--gc_delay=3days" ];
+      };
+      
+      logLevel = mkOption {
+        description = ''
+          The logging level used. Possible values:
+            'INFO', 'WARNING', 'ERROR'
+        '';
+        default = "INFO";
+        type = types.str;
+      };
+
+    };
+
+  };
+
+
+  config = mkIf cfg.enable {
+    systemd.services.mesos-slave = {
+      description = "Mesos Slave";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-interfaces.target" ];
+      serviceConfig = {
+	ExecStart = ''
+	  ${pkgs.mesos}/bin/mesos-slave \
+	    --port=${toString cfg.port} \
+	    --master=${cfg.master} \
+	    ${optionalString cfg.withHadoop "--hadoop-home=${pkgs.hadoop}"} \
+	    --work_dir=${cfg.workDir} \
+	    --logging_level=${cfg.logLevel} \
+	    ${toString cfg.extraCmdLineOptions}
+	'';
+	PermissionsStartOnly = true;
+      };
+      preStart = ''
+	mkdir -m 0700 -p ${cfg.workDir}
+      '';
+    };
+  };
+  
+}
\ No newline at end of file
diff --git a/nixos/modules/services/misc/phd.nix b/nixos/modules/services/misc/phd.nix
new file mode 100644
index 00000000000..e605ce5de16
--- /dev/null
+++ b/nixos/modules/services/misc/phd.nix
@@ -0,0 +1,52 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.phd;
+
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.phd = {
+
+      enable = mkOption {
+        default = false;
+        description = "
+          Enable daemons for phabricator.
+        ";
+      };
+
+    };
+
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    systemd.services.phd = {
+      path = [ pkgs.phabricator pkgs.php pkgs.mercurial pkgs.git pkgs.subversion ];
+
+      after = [ "httpd.service" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        ExecStart = "${pkgs.phabricator}/phabricator/bin/phd start";
+        ExecStop = "${pkgs.phabricator}/phabricator/bin/phd stop";
+        User = "wwwrun";
+        RestartSec = "30s";
+        Restart = "always";
+        StartLimitInterval = "1m";
+      };
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/monitoring/apcupsd.nix b/nixos/modules/services/monitoring/apcupsd.nix
index 6cc0c122ec6..ffa7be7dd30 100644
--- a/nixos/modules/services/monitoring/apcupsd.nix
+++ b/nixos/modules/services/monitoring/apcupsd.nix
@@ -161,6 +161,7 @@ in
         # systemd kills it with SIGKILL.
         TimeoutStopSec = 5;
       };
+      unitConfig.Documentation = "man:apcupsd(8)";
     };
 
     # A special service to tell the UPS to power down/hibernate just before the
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index dbfe0ee182a..b2c46123d16 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -8,6 +8,16 @@ let
 
   dataDir = cfg.dataDir;
 
+  graphiteApiConfig = pkgs.writeText "graphite-api.yaml" ''
+    time_zone: ${config.time.timeZone}
+    search_index: ${dataDir}/index
+    ${optionalString (cfg.api.finders != []) ''finders:''}
+    ${concatMapStringsSep "\n" (f: "  - " + f.moduleName) cfg.api.finders}
+    ${optionalString (cfg.api.functions != []) ''functions:''}
+    ${concatMapStringsSep "\n" (f: "  - " + f) cfg.api.functions}
+    ${cfg.api.extraConfig}
+  '';
+
   configDir = pkgs.buildEnv {
     name = "graphite-config";
     paths = lists.filter (el: el != null) [
@@ -65,6 +75,40 @@ in {
       };
     };
 
+    api = {
+      enable = mkOption {
+        description = "Whether to enable graphite api.";
+        default = false;
+        type = types.uniq types.bool;
+      };
+
+      finders = mkOption {
+        description = "List of finder plugins load.";
+        default = [];
+        example = [ pkgs.python27Packages.graphite_influxdb ];
+        type = types.listOf types.package;
+      };
+
+      functions = mkOption {
+        description = "List of functions to load.";
+        default = [
+          "graphite_api.functions.SeriesFunctions"
+          "graphite_api.functions.PieFunctions"
+        ];
+        type = types.listOf types.str;
+      };
+
+      extraConfig = mkOption {
+        description = "Extra configuration for graphite api.";
+        default = ''
+          whisper:
+            directories:
+                - ${dataDir}/whisper
+        '';
+        type = types.str;
+      };
+    };
+
     carbon = {
       config = mkOption {
         description = "Content of carbon configuration file.";
@@ -176,7 +220,7 @@ in {
 
   ###### implementation
 
-  config = mkIf (cfg.carbon.enableAggregator || cfg.carbon.enableCache || cfg.carbon.enableRelay || cfg.web.enable) {
+  config = mkIf (cfg.carbon.enableAggregator || cfg.carbon.enableCache || cfg.carbon.enableRelay || cfg.web.enable || cfg.api.enable) {
     systemd.services.carbonCache = {
       enable = cfg.carbon.enableCache;
       description = "Graphite Data Storage Backend";
@@ -189,10 +233,6 @@ in {
         Group = "graphite";
         PermissionsStartOnly = true;
       };
-      restartTriggers = [
-        pkgs.pythonPackages.carbon
-        configDir
-      ];
       preStart = ''
         mkdir -p ${cfg.dataDir}/whisper
         chmod 0700 ${cfg.dataDir}/whisper
@@ -211,10 +251,6 @@ in {
         User = "graphite";
         Group = "graphite";
       };
-      restartTriggers = [
-        pkgs.pythonPackages.carbon
-        configDir
-      ];
     };
 
     systemd.services.carbonRelay = {
@@ -228,10 +264,6 @@ in {
         User = "graphite";
         Group = "graphite";
       };
-      restartTriggers = [
-        pkgs.pythonPackages.carbon
-        configDir
-      ];
     };
 
     systemd.services.graphiteWeb = {
@@ -243,7 +275,7 @@ in {
       environment = {
         PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages";
         DJANGO_SETTINGS_MODULE = "graphite.settings";
-        GRAPHITE_CONF_DIR = "/etc/graphite/";
+        GRAPHITE_CONF_DIR = configDir;
         GRAPHITE_STORAGE_DIR = dataDir;
       };
       serviceConfig = {
@@ -271,9 +303,40 @@ in {
           chown -R graphite:graphite ${cfg.dataDir}
         fi
       '';
-      restartTriggers = [
-        pkgs.python27Packages.graphite_web
-      ];
+    };
+
+    systemd.services.graphiteApi = {
+      enable = cfg.api.enable;
+      description = "Graphite Api Interface";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-interfaces.target" ];
+      environment = {
+        PYTHONPATH =
+          "${pkgs.python27Packages.graphite_api}/lib/python2.7/site-packages:" +
+          concatMapStringsSep ":" (f: f + "/lib/python2.7/site-packages") cfg.api.finders;
+        GRAPHITE_API_CONFIG = graphiteApiConfig;
+        LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
+      };
+      serviceConfig = {
+        ExecStart = ''
+          ${pkgs.python27Packages.waitress}/bin/waitress-serve \
+          --host=${cfg.web.host} --port=${toString cfg.web.port} \
+          graphite_api.app:app 
+        '';
+        User = "graphite";
+        Group = "graphite";
+        PermissionsStartOnly = true;
+      };
+      preStart = ''
+        if ! test -e ${dataDir}/db-created; then
+          mkdir -p ${dataDir}/cache/
+          chmod 0700 ${dataDir}/cache/
+
+          touch ${dataDir}/db-created
+
+          chown -R graphite:graphite ${cfg.dataDir}
+        fi
+      '';
     };
 
     environment.systemPackages = [
diff --git a/nixos/modules/services/monitoring/munin.nix b/nixos/modules/services/monitoring/munin.nix
index 21840bc67e8..aab1c4b75ef 100644
--- a/nixos/modules/services/monitoring/munin.nix
+++ b/nixos/modules/services/monitoring/munin.nix
@@ -37,7 +37,7 @@ let
           --set PATH "/run/current-system/sw/bin:/run/current-system/sw/sbin" \
           --set MUNIN_LIBDIR "${pkgs.munin}/lib" \
           --set MUNIN_PLUGSTATE "/var/run/munin"
- 
+
         # munin uses markers to tell munin-node-configure what a plugin can do
         echo "#%# family=$family" >> $file
         echo "#%# capabilities=$cap" >> $file
@@ -57,7 +57,7 @@ let
       rundir    /var/run/munin
 
       ${cronCfg.extraGlobalConfig}
-      
+
       ${cronCfg.hosts}
     '';
 
@@ -72,10 +72,10 @@ let
       group root
       host_name ${config.networking.hostName}
       setsid 0
-  
+
       # wrapped plugins by makeWrapper being with dots
       ignore_file ^\.
-      
+
       allow ^127\.0\.0\.1$
 
       ${nodeCfg.extraConfig}
@@ -97,7 +97,7 @@ in
           See <link xlink:href='http://munin-monitoring.org/wiki/munin-node.conf' />.
         '';
       };
-      
+
       extraConfig = mkOption {
         default = "";
         description = ''
@@ -118,7 +118,7 @@ in
           Enable munin-cron. Takes care of all heavy lifting to collect data from
           nodes and draws graphs to html. Runs munin-update, munin-limits,
           munin-graphs and munin-html in that order.
- 
+
           HTML output is in <filename>/var/www/munin/</filename>, configure your
           favourite webserver to serve static files.
         '';
@@ -138,7 +138,7 @@ in
           };
         '';
       };
-      
+
       extraGlobalConfig = mkOption {
         default = "";
         description = ''
@@ -160,7 +160,7 @@ in
           <link xlink:href='http://munin-monitoring.org/wiki/munin.conf' />
         '';
       };
- 
+
     };
 
   };
diff --git a/nixos/modules/services/monitoring/statsd.nix b/nixos/modules/services/monitoring/statsd.nix
index 74f3deb4c29..942ce72f6a3 100644
--- a/nixos/modules/services/monitoring/statsd.nix
+++ b/nixos/modules/services/monitoring/statsd.nix
@@ -8,13 +8,20 @@ let
 
   configFile = pkgs.writeText "statsd.conf" ''
     {
-      host: "${cfg.host}",
+      address: "${cfg.host}",
       port: "${toString cfg.port}",
       mgmt_address: "${cfg.mgmt_address}",
       mgmt_port: "${toString cfg.mgmt_port}",
-      backends: [${concatMapStrings (el: ''"./backends/${el}",'') cfg.backends}],
-      graphiteHost: "${cfg.graphiteHost}",
-      graphitePort: "${toString cfg.graphitePort}",
+      backends: [${concatMapStringsSep "," (el: if (nixType el) == "string" then ''"./backends/${el}"'' else ''"${head el.names}"'') cfg.backends}],
+      ${optionalString (cfg.graphiteHost!=null) ''graphiteHost: "${cfg.graphiteHost}",''}
+      ${optionalString (cfg.graphitePort!=null) ''graphitePort: "${toString cfg.graphitePort}",''}
+      console: {
+        prettyprint: false
+      },
+      log: {
+        backend: "syslog"
+      },
+      automaticConfigReload: false${optionalString (cfg.extraConfig != null) ","}
       ${cfg.extraConfig}
     }
   '';
@@ -60,24 +67,26 @@ in
     backends = mkOption {
       description = "List of backends statsd will use for data persistance";
       default = ["graphite"];
+      example = ["graphite" pkgs.nodePackages."statsd-influxdb-backend"];
+      type = types.listOf (types.either types.str types.package);
     };
 
     graphiteHost = mkOption {
       description = "Hostname or IP of Graphite server";
-      default = config.services.graphite.web.host;
-      type = types.str;
+      default = null;
+      type = types.nullOr types.str;
     };
 
     graphitePort = mkOption {
       description = "Port of Graphite server (i.e. carbon-cache).";
-      default = 2003;
-      type = types.uniq types.int;
+      default = null;
+      type = types.nullOr types.int;
     };
 
     extraConfig = mkOption {
-      default = "";
       description = "Extra configuration options for statsd";
-      type = types.str;
+      default = "";
+      type = types.nullOr types.str;
     };
 
   };
@@ -95,6 +104,9 @@ in
     systemd.services.statsd = {
       description = "Statsd Server";
       wantedBy = [ "multi-user.target" ];
+      environment = {
+        NODE_PATH=concatMapStringsSep ":" (el: "${el}/lib/node_modules") (filter (el: (nixType el) != "string") cfg.backends);
+      };
       serviceConfig = {
         ExecStart = "${pkgs.nodePackages.statsd}/bin/statsd ${configFile}";
         User = "statsd";
diff --git a/nixos/modules/services/network-filesystems/diod.nix b/nixos/modules/services/network-filesystems/diod.nix
new file mode 100644
index 00000000000..7de7acaa4a0
--- /dev/null
+++ b/nixos/modules/services/network-filesystems/diod.nix
@@ -0,0 +1,160 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  cfg = config.services.diod;
+
+  diodBool = b: if b then "1" else "0";
+
+  diodConfig = pkgs.writeText "diod.conf" ''
+    allsquash = ${diodBool cfg.allsquash}
+    auth_required = ${diodBool cfg.authRequired}
+    exportall = ${diodBool cfg.exportall}
+    exportopts = "${concatStringsSep "," cfg.exportopts}"
+    exports = { ${concatStringsSep ", " (map (s: ''"${s}"'' ) cfg.exports)} }
+    listen = { ${concatStringsSep ", " (map (s: ''"${s}"'' ) cfg.listen)} }
+    logdest = "${cfg.logdest}"
+    nwthreads = ${toString cfg.nwthreads}
+    squashuser = "${cfg.squashuser}"
+    statfs_passthru = ${diodBool cfg.statfsPassthru}
+    userdb = ${diodBool cfg.userdb}
+    ${cfg.extraConfig}
+  '';
+in
+{
+  options = {
+    services.diod = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to enable the diod 9P file server.";
+      };
+
+      listen = mkOption {
+        type = types.listOf types.str;
+        default = [ "0.0.0.0:564" ];
+        description = ''
+          [ "IP:PORT" [,"IP:PORT",...] ]
+          List the interfaces and ports that diod should listen on.
+        '';
+      };
+
+      exports = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          List the file systems that clients will be allowed to mount. All paths should
+          be fully qualified. The exports table can include two types of element:
+          a string element (as above),
+          or an alternate table element form { path="/path", opts="ro" }.
+          In the alternate form, the (optional) opts attribute is a comma-separated list
+          of export options. The two table element forms can be mixed in the exports
+          table. Note that although diod will not traverse file system boundaries for a
+          given mount due to inode uniqueness constraints, subdirectories of a file
+          system can be separately exported.
+        '';
+      };
+
+      exportall = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Export all file systems listed in /proc/mounts. If new file systems are mounted
+          after diod has started, they will become immediately mountable. If there is a
+          duplicate entry for a file system in the exports list, any options listed in
+          the exports entry will apply.
+        '';
+      };
+
+      exportopts = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Establish a default set of export options. These are overridden, not appended
+          to, by opts attributes in an "exports" entry.
+        '';
+      };
+
+      nwthreads = mkOption {
+        type = types.int;
+        default = 16;
+        description = ''
+          Sets the (fixed) number of worker threads created to handle 9P
+          requests for a unique aname.
+        '';
+      };
+
+      authRequired = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Allow clients to connect without authentication, i.e. without a valid MUNGE credential.
+        '';
+      };
+
+      userdb = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          This option disables password/group lookups. It allows any uid to attach and
+          assumes gid=uid, and supplementary groups contain only the primary gid.
+        '';
+      };
+
+      allsquash = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Remap all users to "nobody". The attaching user need not be present in the
+          password file.
+        '';
+      };
+
+      squashuser = mkOption {
+        type = types.str;
+        default = "nobody";
+        description = ''
+          Change the squash user. The squash user must be present in the password file.
+        '';
+      };
+
+      logdest = mkOption {
+        type = types.str;
+        default = "syslog:daemon:err";
+        description = ''
+          Set the destination for logging.
+          The value has the form of "syslog:facility:level" or "filename".
+        '';
+      };
+
+
+      statfsPassthru = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          This option configures statfs to return the host file system's type
+          rather than V9FS_MAGIC.
+        '';
+      };
+
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = "Extra configuration options for diod.conf.";
+      };
+    };
+  };
+
+  config = mkIf config.services.diod.enable {
+    environment.systemPackages = [ pkgs.diod ];
+
+    systemd.services.diod = {
+      description = "diod 9P file server";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.diod}/sbin/diod -f -c ${diodConfig}";
+        Capabilities = "cap_net_bind_service+=ep";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/network-filesystems/yandex-disk.nix b/nixos/modules/services/network-filesystems/yandex-disk.nix
new file mode 100644
index 00000000000..df9626d17c9
--- /dev/null
+++ b/nixos/modules/services/network-filesystems/yandex-disk.nix
@@ -0,0 +1,104 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+let
+
+  cfg = config.services.yandex-disk;
+
+  dir = "/var/lib/yandex-disk";
+
+  u = if cfg.user != null then cfg.user else "yandexdisk";
+
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.yandex-disk = {
+
+      enable = mkOption {
+        default = false;
+        description = "
+          Whether to enable Yandex-disk client. See https://disk.yandex.ru/
+        ";
+      };
+
+      username = mkOption {
+        default = "";
+        type = types.string;
+        description = ''
+          Your yandex.com login name.
+        '';
+      };
+
+      password = mkOption {
+        default = "";
+        type = types.string;
+        description = ''
+          Your yandex.com password. Warning: it will be world-readable in /nix/store.
+        '';
+      };
+
+      user = mkOption {
+        default = null;
+        description = ''
+          The user the yandex-disk daemon should run as.
+        '';
+      };
+
+      directory = mkOption {
+        default = "/home/Yandex.Disk";
+        description = "The directory to use for Yandex.Disk storage";
+      };
+
+    };
+
+  };
+
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    users.extraUsers = mkIf (cfg.user == null) [ {
+      name = u;
+      uid = config.ids.uids.yandexdisk;
+      group = "nogroup";
+      home = dir;
+    } ];
+
+    systemd.services.yandex-disk = {
+      description = "Yandex-disk server";
+
+      after = [ "network.target" ];
+
+      wantedBy = [ "multi-user.target" ];
+
+      # FIXME: have to specify ${directory} here as well
+      unitConfig.RequiresMountsFor = dir;
+
+      script = ''
+        mkdir -p -m 700 ${dir}
+        chown ${u} ${dir}
+
+        if ! test -d "${cfg.directory}" ; then
+          mkdir -p -m 755 ${cfg.directory} ||
+            exit 1
+        fi
+
+        ${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${u} \
+          -c '${pkgs.yandex-disk}/bin/yandex-disk token -p ${cfg.password} ${cfg.username} ${dir}/token'
+
+        ${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${u} \
+          -c '${pkgs.yandex-disk}/bin/yandex-disk start --no-daemon -a ${dir}/token -d ${cfg.directory}'
+      '';
+
+    };
+  };
+
+}
+
diff --git a/nixos/modules/services/networking/copy-com.nix b/nixos/modules/services/networking/copy-com.nix
new file mode 100644
index 00000000000..36bd29109b8
--- /dev/null
+++ b/nixos/modules/services/networking/copy-com.nix
@@ -0,0 +1,53 @@
+{ config, lib, pkgs, ... }:

+

+with lib;

+

+let

+  

+  cfg = config.services.copy-com;

+

+in 

+

+{

+  options = {

+

+    services.copy-com = {

+	  

+	  enable = mkOption {

+          default = false;

+          description = "

+            Enable the copy.com client.

+

+            The first time copy.com is run, it needs to be configured. Before enabling run 

+            copy_console manually.

+          ";

+      };

+

+      user = mkOption {

+        description = "The user for which copy should run.";

+      };

+

+      debug = mkOption {

+        default = false;

+        description = "Output more.";

+      };

+	  };

+  };

+

+  config = mkIf cfg.enable {

+    environment.systemPackages = [ pkgs.postfix ];

+

+    systemd.services."copy-com-${cfg.user}" = {

+      description = "Copy.com Client";

+      after = [ "network.target" "local-fs.target" ];

+      wantedBy = [ "multi-user.target" ];

+      serviceConfig = {

+        ExecStart = "${pkgs.copy-com}/bin/copy_console ${if cfg.debug then "-consoleOutput -debugToConsole=dirwatch,path-watch,csm_path,csm -debug -console" else ""}";

+        User = "${cfg.user}";

+      };

+

+    };

+  };

+

+}

+

diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index 084ac69e8d5..15dbf80a987 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -138,6 +138,9 @@ in
       { description = "DHCP Client";
 
         wantedBy = [ "network.target" ];
+        # Work-around to deal with problems where the kernel would remove &
+        # re-create Wifi interfaces early during boot.
+        after = [ "network-interfaces.target" ];
 
         # Stopping dhcpcd during a reconfiguration is undesirable
         # because it brings down the network interfaces configured by
diff --git a/nixos/modules/services/networking/dnsmasq.nix b/nixos/modules/services/networking/dnsmasq.nix
index d2a8af6ac8b..5c68dd89fb1 100644
--- a/nixos/modules/services/networking/dnsmasq.nix
+++ b/nixos/modules/services/networking/dnsmasq.nix
@@ -11,7 +11,10 @@ let
       conf-file=/etc/dnsmasq-conf.conf
       resolv-file=/etc/dnsmasq-resolv.conf
     ''}
-      ${cfg.extraConfig}
+    ${flip concatMapStrings cfg.servers (server: ''
+      server=${server}
+    '')}
+    ${cfg.extraConfig}
   '';
 
 in
@@ -43,12 +46,10 @@ in
         default = [];
         example = [ "8.8.8.8" "8.8.4.4" ];
         description = ''
-          The parameter to dnsmasq -S.
+          The DNS servers which dnsmasq should query.
         '';
       };
 
-
-
       extraConfig = mkOption {
         type = types.string;
         default = "";
@@ -67,8 +68,8 @@ in
 
   config = mkIf config.services.dnsmasq.enable {
 
-    environment.systemPackages = [ dnsmasq ]
-      ++ (if cfg.resolveLocalQueries then [ pkgs.openresolv ] else []);
+    networking.nameservers =
+      optional cfg.resolveLocalQueries "127.0.0.1";
 
     services.dbus.packages = [ dnsmasq ];
 
@@ -83,10 +84,14 @@ in
         description = "dnsmasq daemon";
         after = [ "network.target" ];
         wantedBy = [ "multi-user.target" ];
+        path = [ dnsmasq ];
+        preStart = ''
+          touch /etc/dnsmasq-{conf,resolv}.conf
+          dnsmasq --test
+        '';
         serviceConfig = {
           Type = "dbus";
           BusName = "uk.org.thekelleys.dnsmasq";
-          ExecStartPre = "${dnsmasq}/bin/dnsmasq --test";
           ExecStart = "${dnsmasq}/bin/dnsmasq -k --enable-dbus --user=dnsmasq -C ${dnsmasqConf}";
           ExecReload = "${dnsmasq}/bin/kill -HUP $MAINPID";
         };
diff --git a/nixos/modules/services/networking/nat.nix b/nixos/modules/services/networking/nat.nix
index e8d9d00cc0a..4a4c06503c2 100644
--- a/nixos/modules/services/networking/nat.nix
+++ b/nixos/modules/services/networking/nat.nix
@@ -75,6 +75,31 @@ in
         '';
     };
 
+    networking.nat.forwardPorts = mkOption {
+      type = types.listOf types.optionSet;
+      default = [];
+      example = [ { sourcePort = 8080; destination = "10.0.0.1:80"; } ];
+      options = {
+        sourcePort = mkOption {
+          type = types.int;
+          example = 8080;
+          description = "Source port of the external interface";
+        };
+
+        destination = mkOption {
+          type = types.str;
+          example = "10.0.0.1:80";
+          description = "Forward tcp connection to destination ip:port";
+        };
+      };
+
+      description =
+        ''
+          List of forwarded ports from the external interface to
+          internal destinations by using DNAT.
+        '';
+    };
+
   };
 
 
@@ -118,6 +143,14 @@ in
                 -s '${range}' -o ${cfg.externalInterface} ${dest}
             '') cfg.internalIPs}
 
+            # NAT from external ports to internal ports.
+            ${concatMapStrings (fwd: ''
+              iptables -w -t nat -A PREROUTING \
+                -i ${cfg.externalInterface} -p tcp \
+                --dport ${builtins.toString fwd.sourcePort} \
+                -j DNAT --to-destination ${fwd.destination}
+            '') cfg.forwardPorts}
+
             echo 1 > /proc/sys/net/ipv4/ip_forward
           '';
 
diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix
index cacd52f130f..140b7ed2da3 100644
--- a/nixos/modules/services/networking/nsd.nix
+++ b/nixos/modules/services/networking/nsd.nix
@@ -10,16 +10,16 @@ let
   pidFile  = stateDir + "/var/nsd.pid";
 
   zoneFiles = pkgs.stdenv.mkDerivation {
-      preferLocalBuild = true;
-      name = "nsd-env";
-      buildCommand = concatStringsSep "\n"
-        [ "mkdir -p $out"
-          (concatStrings (mapAttrsToList (zoneName: zoneOptions: ''
-            cat > "$out/${zoneName}" <<_EOF_
-            ${zoneOptions.data}
-            _EOF_
-          '') zoneConfigs))
-        ];
+    preferLocalBuild = true;
+    name = "nsd-env";
+    buildCommand = concatStringsSep "\n"
+      [ "mkdir -p $out"
+        (concatStrings (mapAttrsToList (zoneName: zoneOptions: ''
+          cat > "$out/${zoneName}" <<_EOF_
+          ${zoneOptions.data}
+          _EOF_
+        '') zoneConfigs))
+      ];
   };
 
   configFile = pkgs.writeText "nsd.conf" ''
@@ -33,7 +33,6 @@ let
       # the list of dynamically added zones.
       zonelistfile: "${stateDir}/var/zone.list"
       database:     "${stateDir}/var/nsd.db"
-      logfile:      "${stateDir}/var/nsd.log"
       pidfile:      "${pidFile}"
       xfrdfile:     "${stateDir}/var/xfrd.state"
       xfrdir:       "${stateDir}/tmp"
@@ -105,21 +104,20 @@ let
 
 
   zoneConfigFile = name: zone: ''
-        zone:
-          name:         "${name}"
-          zonefile:     "${stateDir}/zones/${name}"
-          ${maybeString "outgoing-interface: " zone.outgoingInterface}
-        ${forEach     "  rrl-whitelist: "      zone.rrlWhitelist}
-
-        ${forEach     "  allow-notify: "       zone.allowNotify}
-        ${forEach     "  request-xfr: "        zone.requestXFR}
-          allow-axfr-fallback: ${yesOrNo       zone.allowAXFRFallback}
-
-        ${forEach     "  notify: "             zone.notify}
-          notify-retry:                        ${toString zone.notifyRetry}
-        ${forEach     "  provide-xfr: "        zone.provideXFR}
-
-    '';
+    zone:
+      name:         "${name}"
+      zonefile:     "${stateDir}/zones/${name}"
+      ${maybeString "outgoing-interface: " zone.outgoingInterface}
+    ${forEach     "  rrl-whitelist: "      zone.rrlWhitelist}
+
+    ${forEach     "  allow-notify: "       zone.allowNotify}
+    ${forEach     "  request-xfr: "        zone.requestXFR}
+      allow-axfr-fallback: ${yesOrNo       zone.allowAXFRFallback}
+
+    ${forEach     "  notify: "             zone.notify}
+      notify-retry:                        ${toString zone.notifyRetry}
+    ${forEach     "  provide-xfr: "        zone.provideXFR}
+  '';
 
   zoneConfigs = zoneConfigs' {} "" { children = cfg.zones; };
 
@@ -130,8 +128,8 @@ let
 
       # fork -> pattern
       else zipAttrsWith (name: head) (
-          mapAttrsToList (name: child: zoneConfigs' (parent // zone // { children = {}; }) name child)
-                         zone.children
+        mapAttrsToList (name: child: zoneConfigs' (parent // zone // { children = {}; }) name child)
+                       zone.children
       );
 
   # fighting infinite recursion
@@ -145,138 +143,135 @@ let
 
   childConfig = x: v: { options.children = { type = types.attrsOf x; visible = v; }; };
 
-  zoneOptionsRaw = types.submodule (
-    { options, ... }:
-    { options = {
-        children = mkOption {
-            default     = {};
-            description = ''
-              Children zones inherit all options of their parents. Attributes
-              defined in a child will overwrite the ones of its parent. Only
-              leaf zones will be actually served. This way it's possible to
-              define maybe zones which share most attributes without
-              duplicating everything. This mechanism replaces nsd's patterns
-              in a save and functional way.
-            '';
-        };
-
-        allowNotify = mkOption {
-          type        = types.listOf types.str;
-          default     = [ ];
-          example     = [ "192.0.2.0/24 NOKEY" "10.0.0.1-10.0.0.5 my_tsig_key_name"
-                           "10.0.3.4&255.255.0.0 BLOCKED"
-                        ];
-          description = ''
-            Listed primary servers are allowed to notify this secondary server.
-            <screen><![CDATA[
-            Format: <ip> <key-name | NOKEY | BLOCKED>
-
-            <ip> either a plain IPv4/IPv6 address or range. Valid patters for ranges:
-            * 10.0.0.0/24            # via subnet size
-            * 10.0.0.0&255.255.255.0 # via subnet mask
-            * 10.0.0.1-10.0.0.254    # via range
-
-            A optional port number could be added with a '@':
-            * 2001:1234::1@1234
-
-            <key-name | NOKEY | BLOCKED>
-            * <key-name> will use the specified TSIG key
-            * NOKEY      no TSIG signature is required
-            * BLOCKED    notifies from non-listed or blocked IPs will be ignored
-            * ]]></screen>
-          '';
-        };
+  zoneOptionsRaw = types.submodule {
+    options = {
+      children = mkOption {
+        default     = {};
+        description = ''
+          Children zones inherit all options of their parents. Attributes
+          defined in a child will overwrite the ones of its parent. Only
+          leaf zones will be actually served. This way it's possible to
+          define maybe zones which share most attributes without
+          duplicating everything. This mechanism replaces nsd's patterns
+          in a save and functional way.
+        '';
+      };
 
-        requestXFR = mkOption {
-          type        = types.listOf types.str;
-          default     = [];
-          example     = [];
-          description = ''
-            Format: <code>[AXFR|UDP] &lt;ip-address&gt; &lt;key-name | NOKEY&gt;</code>
-          '';
-        };
+      allowNotify = mkOption {
+        type        = types.listOf types.str;
+        default     = [ ];
+        example     = [ "192.0.2.0/24 NOKEY" "10.0.0.1-10.0.0.5 my_tsig_key_name"
+                        "10.0.3.4&255.255.0.0 BLOCKED"
+                      ];
+        description = ''
+          Listed primary servers are allowed to notify this secondary server.
+          <screen><![CDATA[
+          Format: <ip> <key-name | NOKEY | BLOCKED>
+
+          <ip> either a plain IPv4/IPv6 address or range. Valid patters for ranges:
+          * 10.0.0.0/24            # via subnet size
+          * 10.0.0.0&255.255.255.0 # via subnet mask
+          * 10.0.0.1-10.0.0.254    # via range
+
+          A optional port number could be added with a '@':
+          * 2001:1234::1@1234
+
+          <key-name | NOKEY | BLOCKED>
+          * <key-name> will use the specified TSIG key
+          * NOKEY      no TSIG signature is required
+          * BLOCKED    notifies from non-listed or blocked IPs will be ignored
+          * ]]></screen>
+        '';
+      };
 
-        allowAXFRFallback = mkOption {
-          type        = types.bool;
-          default     = true;
-          description = ''
-            If NSD as secondary server should be allowed to AXFR if the primary
-            server does not allow IXFR.
-          '';
-        };
+      requestXFR = mkOption {
+        type        = types.listOf types.str;
+        default     = [];
+        example     = [];
+        description = ''
+          Format: <code>[AXFR|UDP] &lt;ip-address&gt; &lt;key-name | NOKEY&gt;</code>
+        '';
+      };
 
-        notify = mkOption {
-          type        = types.listOf types.str;
-          default     = [];
-          example     = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ];
-          description = ''
-            This primary server will notify all given secondary servers about
-            zone changes.
-            <screen><![CDATA[
-            Format: <ip> <key-name | NOKEY>
+      allowAXFRFallback = mkOption {
+        type        = types.bool;
+        default     = true;
+        description = ''
+          If NSD as secondary server should be allowed to AXFR if the primary
+          server does not allow IXFR.
+        '';
+      };
 
-            <ip> a plain IPv4/IPv6 address with on optional port number (ip@port)
+      notify = mkOption {
+        type        = types.listOf types.str;
+        default     = [];
+        example     = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ];
+        description = ''
+          This primary server will notify all given secondary servers about
+          zone changes.
+          <screen><![CDATA[
+          Format: <ip> <key-name | NOKEY>
 
-            <key-name | NOKEY>
-            * <key-name> sign notifies with the specified key
-            * NOKEY      don't sign notifies
-            ]]></screen>
-          '';
-        };
+          <ip> a plain IPv4/IPv6 address with on optional port number (ip@port)
 
-        notifyRetry = mkOption {
-          type        = types.int;
-          default     = 5;
-          description = ''
-            Specifies the number of retries for failed notifies. Set this along with notify.
-          '';
-        };
+          <key-name | NOKEY>
+          * <key-name> sign notifies with the specified key
+          * NOKEY      don't sign notifies
+          ]]></screen>
+        '';
+      };
 
-        provideXFR = mkOption {
-          type        = types.listOf types.str;
-          default     = [];
-          example     = [ "192.0.2.0/24 NOKEY" "192.0.2.0/24 my_tsig_key_name" ];
-          description = ''
-            Allow these IPs and TSIG to transfer zones, addr TSIG|NOKEY|BLOCKED
-            address range 192.0.2.0/24, 1.2.3.4&amp;255.255.0.0, 3.0.2.20-3.0.2.40
-          '';
-        };
+      notifyRetry = mkOption {
+        type        = types.int;
+        default     = 5;
+        description = ''
+          Specifies the number of retries for failed notifies. Set this along with notify.
+        '';
+      };
 
-        outgoingInterface = mkOption {
-          type        = types.nullOr types.str;
-          default     = null;
-          example     = "2000::1@1234";
-          description = ''
-            This address will be used for zone-transfere requests if configured
-            as a secondary server or notifications in case of a primary server.
-            Supply either a plain IPv4 or IPv6 address with an optional port
-            number (ip@port).
-          '';
-        };
+      provideXFR = mkOption {
+        type        = types.listOf types.str;
+        default     = [];
+        example     = [ "192.0.2.0/24 NOKEY" "192.0.2.0/24 my_tsig_key_name" ];
+        description = ''
+          Allow these IPs and TSIG to transfer zones, addr TSIG|NOKEY|BLOCKED
+          address range 192.0.2.0/24, 1.2.3.4&amp;255.255.0.0, 3.0.2.20-3.0.2.40
+        '';
+      };
 
-        rrlWhitelist = mkOption {
-          type        = types.listOf types.str;
-          default     = [];
-          description = ''
-            Whitelists the given rrl-types.
-            The RRL classification types are:  nxdomain,  error, referral, any,
-            rrsig, wildcard, nodata, dnskey, positive, all
-          '';
-        };
+      outgoingInterface = mkOption {
+        type        = types.nullOr types.str;
+        default     = null;
+        example     = "2000::1@1234";
+        description = ''
+          This address will be used for zone-transfere requests if configured
+          as a secondary server or notifications in case of a primary server.
+          Supply either a plain IPv4 or IPv6 address with an optional port
+          number (ip@port).
+        '';
+      };
 
-        data = mkOption {
-          type        = types.str;
-          default     = "";
-          example     = "";
-          description = ''
-            The actual zone data. This is the content of your zone file.
-            Use imports or pkgs.lib.readFile if you don't want this data in your config file.
-          '';
-        };
+      rrlWhitelist = mkOption {
+        type        = types.listOf types.str;
+        default     = [];
+        description = ''
+          Whitelists the given rrl-types.
+          The RRL classification types are:  nxdomain,  error, referral, any,
+          rrsig, wildcard, nodata, dnskey, positive, all
+        '';
+      };
 
+      data = mkOption {
+        type        = types.str;
+        default     = "";
+        example     = "";
+        description = ''
+          The actual zone data. This is the content of your zone file.
+          Use imports or pkgs.lib.readFile if you don't want this data in your config file.
+        '';
       };
-    }
-  );
+    };
+  };
 
 in
 {
@@ -585,37 +580,33 @@ in
 
 
       keys = mkOption {
-        type = types.attrsOf (types.submodule (
-          { options, ... }:
-          { options = {
-
-              algorithm = mkOption {
-                type        = types.str;
-                default     = "hmac-sha256";
-                description = ''
-                  Authentication algorithm for this key.
-                '';
-              };
-
-              keyFile = mkOption {
-                type        = types.path;
-                description = ''
-                  Path to the file which contains the actual base64 encoded
-                  key. The key will be copied into "${stateDir}/private" before
-                  NSD starts. The copied file is only accessibly by the NSD
-                  user.
-                '';
-              };
+        type = types.attrsOf (types.submodule {
+          options = {
+            algorithm = mkOption {
+              type        = types.str;
+              default     = "hmac-sha256";
+              description = ''
+                Authentication algorithm for this key.
+              '';
+            };
 
+            keyFile = mkOption {
+              type        = types.path;
+              description = ''
+                Path to the file which contains the actual base64 encoded
+                key. The key will be copied into "${stateDir}/private" before
+                NSD starts. The copied file is only accessibly by the NSD
+                user.
+              '';
             };
-          }));
-        default = {
-        };
+          };
+        });
+        default = {};
         example = {
-            "tsig.example.org" = {
-              algorithm = "hmac-md5";
-              secret    = "aaaaaabbbbbbccccccdddddd";
-            };
+          "tsig.example.org" = {
+            algorithm = "hmac-md5";
+            secret    = "aaaaaabbbbbbccccccdddddd";
+          };
         };
         description = ''
           Define your TSIG keys here.
@@ -626,32 +617,32 @@ in
         type        = types.attrsOf zoneOptions;
         default     = {};
         example     = {
-            "serverGroup1" = {
-                provideXFR = [ "10.1.2.3 NOKEY" ];
-                children = {
-                    "example.com." = {
-                        data = ''
-                          $ORIGIN example.com.
-                          $TTL    86400
-                          @ IN SOA a.ns.example.com. admin.example.com. (
-                          ...
-                        '';
-                    };
-                    "example.org." = {
-                        data = ''
-                          $ORIGIN example.org.
-                          $TTL    86400
-                          @ IN SOA a.ns.example.com. admin.example.com. (
-                          ...
-                        '';
-                    };
-                };
+          "serverGroup1" = {
+            provideXFR = [ "10.1.2.3 NOKEY" ];
+            children = {
+              "example.com." = {
+                data = ''
+                  $ORIGIN example.com.
+                  $TTL    86400
+                  @ IN SOA a.ns.example.com. admin.example.com. (
+                  ...
+                '';
+              };
+              "example.org." = {
+                data = ''
+                  $ORIGIN example.org.
+                  $TTL    86400
+                  @ IN SOA a.ns.example.com. admin.example.com. (
+                  ...
+                '';
+              };
             };
+          };
 
-            "example.net." = {
-                provideXFR = [ "10.3.2.1 NOKEY" ];
-                data = ''...'';
-            };
+          "example.net." = {
+            provideXFR = [ "10.3.2.1 NOKEY" ];
+            data = ''...'';
+          };
         };
         description = ''
           Define your zones here. Zones can cascade other zones and therefore
@@ -670,23 +661,23 @@ in
 
     # this is not working :(
     nixpkgs.config.nsd = {
-        ipv6       = cfg.ipv6;
-        ratelimit  = cfg.ratelimit.enable;
-        rootServer = cfg.rootServer;
+      ipv6       = cfg.ipv6;
+      ratelimit  = cfg.ratelimit.enable;
+      rootServer = cfg.rootServer;
     };
 
     users.extraGroups = singleton {
-        name = username;
-        gid  = config.ids.gids.nsd;
+      name = username;
+      gid  = config.ids.gids.nsd;
     };
 
     users.extraUsers = singleton {
-        name        = username;
-        description = "NSD service user";
-        home        = stateDir;
-        createHome  = true;
-        uid         = config.ids.uids.nsd;
-        group       = username;
+      name        = username;
+      description = "NSD service user";
+      home        = stateDir;
+      createHome  = true;
+      uid         = config.ids.uids.nsd;
+      group       = username;
     };
 
     systemd.services.nsd = {
@@ -695,10 +686,9 @@ in
       after       = [ "network.target" ];
 
       serviceConfig = {
-        Type      = "forking";
         PIDFile   = pidFile;
         Restart   = "always";
-        ExecStart = "${pkgs.nsd}/sbin/nsd -c ${configFile}";
+        ExecStart = "${pkgs.nsd}/sbin/nsd -d -c ${configFile}";
       };
 
       preStart = ''
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index e4b29a0b909..fee1bace046 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -144,6 +144,36 @@ in
         '';
       };
 
+      listenAddresses = mkOption {
+        type = types.listOf types.optionSet;
+        default = [];
+        example = [ { addr = "192.168.3.1"; port = 22; } { addr = "0.0.0.0"; port = 64022; } ];
+        description = ''
+          List of addresses and ports to listen on (ListenAddress directive
+          in config). If port is not specified for address sshd will listen
+          on all ports specified by <literal>ports</literal> option.
+          NOTE: this will override default listening on all local addresses and port 22.
+          NOTE: setting this option won't automatically enable given ports
+          in firewall configuration.
+        '';
+        options = {
+          addr = mkOption {
+            type = types.nullOr types.str;
+            default = null;
+            description = ''
+              Host, IPv4 or IPv6 address to listen to.
+            '';
+          };
+          port = mkOption {
+            type = types.nullOr types.int;
+            default = null;
+            description = ''
+              Port to listen to.
+            '';
+          };
+        };
+      };
+
       passwordAuthentication = mkOption {
         type = types.bool;
         default = true;
@@ -261,7 +291,7 @@ in
       };
 
     environment.etc = authKeysFiles ++ [
-      { source = "${pkgs.openssh}/etc/ssh/moduli";
+      { source = "${cfgc.package}/etc/ssh/moduli";
         target = "ssh/moduli";
       }
       { source = knownHostsFile;
@@ -278,7 +308,7 @@ in
 
             stopIfChanged = false;
 
-            path = [ pkgs.openssh pkgs.gawk ];
+            path = [ cfgc.package pkgs.gawk ];
 
             environment.LD_LIBRARY_PATH = nssModulesPath;
 
@@ -295,7 +325,7 @@ in
 
             serviceConfig =
               { ExecStart =
-                  "${pkgs.openssh}/sbin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
+                  "${cfgc.package}/sbin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
                   "-f ${pkgs.writeText "sshd_config" cfg.extraConfig}";
                 KillMode = "process";
               } // (if cfg.startWhenNeeded then {
@@ -349,6 +379,10 @@ in
           Port ${toString port}
         '') cfg.ports}
 
+        ${concatMapStrings ({ port, addr }: ''
+          ListenAddress ${addr}${if port != null then ":" + toString port else ""}
+        '') cfg.listenAddresses}
+
         ${optionalString cfgc.setXAuthLocation ''
             XAuthLocation ${pkgs.xorg.xauth}/bin/xauth
         ''}
@@ -360,7 +394,7 @@ in
         ''}
 
         ${optionalString cfg.allowSFTP ''
-          Subsystem sftp ${pkgs.openssh}/libexec/sftp-server
+          Subsystem sftp ${cfgc.package}/libexec/sftp-server
         ''}
 
         PermitRootLogin ${cfg.permitRootLogin}
@@ -383,6 +417,10 @@ in
         assertion = (data.publicKey == null && data.publicKeyFile != null) ||
                     (data.publicKey != null && data.publicKeyFile == null);
         message = "knownHost ${name} must contain either a publicKey or publicKeyFile";
+      })
+      ++ flip map cfg.listenAddresses ({ addr, port }: {
+        assertion = addr != null;
+        message = "addr must be specified in each listenAddresses entry";
       });
 
   };
diff --git a/nixos/modules/services/networking/unbound.nix b/nixos/modules/services/networking/unbound.nix
index 415ff13bdda..73b10c1d561 100644
--- a/nixos/modules/services/networking/unbound.nix
+++ b/nixos/modules/services/networking/unbound.nix
@@ -6,8 +6,6 @@ let
 
   cfg = config.services.unbound;
 
-  username = "unbound";
-
   stateDir = "/var/lib/unbound";
 
   access = concatMapStrings (x: "  access-control: ${x} allow\n") cfg.allowedAccess;
@@ -21,21 +19,13 @@ let
   confFile = pkgs.writeText "unbound.conf" ''
     server:
       directory: "${stateDir}"
-      username: ${username}
-      # make sure unbound can access entropy from inside the chroot.
-      # e.g. on linux the use these commands (on BSD, devfs(8) is used):
-      #      mount --bind -n /dev/random /etc/unbound/dev/random
-      # and  mount --bind -n /dev/log /etc/unbound/dev/log
+      username: unbound
       chroot: "${stateDir}"
-      # logfile: "${stateDir}/unbound.log"  #uncomment to use logfile.
-      pidfile: "${stateDir}/unbound.pid"
-      verbosity: 1      # uncomment and increase to get more logging.
+      pidfile: ""
       ${interfaces}
       ${access}
-
-    ${forward}
-
     ${cfg.extraConfig}
+    ${forward}
   '';
 
 in
@@ -82,7 +72,7 @@ in
     environment.systemPackages = [ pkgs.unbound ];
 
     users.extraUsers = singleton {
-      name = username;
+      name = "unbound";
       uid = config.ids.uids.unbound;
       description = "unbound daemon user";
       home = stateDir;
@@ -96,8 +86,18 @@ in
       wants = [" nss-lookup.target" ];
       wantedBy = [ "multi-user.target" ];
 
-      path = [ pkgs.unbound ];
-      serviceConfig.ExecStart = "${pkgs.unbound}/sbin/unbound -d -c ${confFile}";
+      preStart = ''
+        mkdir -m 0755 -p ${stateDir}/dev/
+	cp ${confFile} ${stateDir}/unbound.conf
+	chown unbound ${stateDir}
+	touch ${stateDir}/dev/random
+        ${pkgs.utillinux}/bin/mount --bind -n /dev/random ${stateDir}/dev/random
+      '';
+
+      serviceConfig = {
+        ExecStart = "${pkgs.unbound}/sbin/unbound -d -c ${stateDir}/unbound.conf";
+        ExecStopPost="${pkgs.utillinux}/bin/umount ${stateDir}/dev/random";
+      };
     };
 
   };
diff --git a/nixos/modules/services/networking/znc.nix b/nixos/modules/services/networking/znc.nix
index 9b26b2b3244..b39aea04521 100644
--- a/nixos/modules/services/networking/znc.nix
+++ b/nixos/modules/services/networking/znc.nix
@@ -305,7 +305,6 @@ in
         uid = config.ids.uids.znc;
         home = cfg.dataDir;
         createHome = true;
-        createUser = true;
       };
  
     users.extraGroups = optional (cfg.user == defaultUser)
diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix
index d229c610669..8a8085cad28 100644
--- a/nixos/modules/services/printing/cupsd.nix
+++ b/nixos/modules/services/printing/cupsd.nix
@@ -35,7 +35,7 @@ let
   bindir = pkgs.buildEnv {
     name = "cups-progs";
     paths = cfg.drivers;
-    pathsToLink = [ "/lib/cups" "/share/cups" "/bin" ];
+    pathsToLink = [ "/lib/cups" "/share/cups" "/bin" "/etc/cups" ];
     postBuild = cfg.bindirCmds;
   };
 
@@ -89,6 +89,20 @@ in
         '';
       };
 
+      clientConf = mkOption {
+        type = types.lines;
+        default = "";
+        example =
+          ''
+            ServerName server.example.com
+            Encryption Never
+          '';
+        description = ''
+          The contents of the client configuration.
+          (<filename>client.conf</filename>)
+        '';
+      };
+
       drivers = mkOption {
         type = types.listOf types.path;
         example = literalExample "[ pkgs.splix ]";
@@ -124,6 +138,14 @@ in
 
     environment.systemPackages = [ cups ];
 
+    environment.variables.CUPS_SERVERROOT = "/etc/cups";
+
+    environment.etc = [
+      { source = pkgs.writeText "client.conf" cfg.clientConf;
+        target = "cups/client.conf";
+      }
+    ];
+
     services.dbus.packages = [ cups ];
 
     # Cups uses libusb to talk to printers, and does not use the
diff --git a/nixos/modules/services/search/elasticsearch.nix b/nixos/modules/services/search/elasticsearch.nix
index b74ef4370d7..12f163db463 100644
--- a/nixos/modules/services/search/elasticsearch.nix
+++ b/nixos/modules/services/search/elasticsearch.nix
@@ -135,6 +135,11 @@ in {
         rm ${cfg.dataDir}/plugins || true
         ln -s ${esPlugins}/plugins ${cfg.dataDir}/plugins
       '';
+      postStart = mkBefore ''
+        until ${pkgs.curl}/bin/curl -s -o /dev/null ${cfg.host}:${toString cfg.port}; do
+          sleep 1
+        done
+      '';
     };
 
     environment.systemPackages = [ pkgs.elasticsearch ];
diff --git a/nixos/modules/services/security/fail2ban.nix b/nixos/modules/services/security/fail2ban.nix
index 3758652ebdd..c40f41e07d4 100644
--- a/nixos/modules/services/security/fail2ban.nix
+++ b/nixos/modules/services/security/fail2ban.nix
@@ -40,7 +40,7 @@ in
             socket    = /run/fail2ban/fail2ban.sock
             pidfile   = /run/fail2ban/fail2ban.pid
           '';
-        type = types.string;
+        type = types.lines;
         description =
           ''
             The contents of Fail2ban's main configuration file.  It's
@@ -64,7 +64,7 @@ in
                 maxretry = 5
               '';
           };
-        type = types.attrsOf types.string;
+        type = types.attrsOf types.lines;
         description =
           ''
             The configuration of each Fail2ban “jail”.  A jail
diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki-postgresql-fixes.patch b/nixos/modules/services/web-servers/apache-httpd/mediawiki-postgresql-fixes.patch
deleted file mode 100644
index c46d492dc7a..00000000000
--- a/nixos/modules/services/web-servers/apache-httpd/mediawiki-postgresql-fixes.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/includes/specials/SpecialActiveusers.php b/includes/specials/SpecialActiveusers.php
-index f739d3b..fdd8db3 100644
---- a/includes/specials/SpecialActiveusers.php
-+++ b/includes/specials/SpecialActiveusers.php
-@@ -112,7 +112,7 @@ class ActiveUsersPager extends UsersPager {
- 		return array(
- 			'tables' => array( 'querycachetwo', 'user', 'recentchanges' ),
- 			'fields' => array( 'user_name', 'user_id', 'recentedits' => 'COUNT(*)', 'qcc_title' ),
--			'options' => array( 'GROUP BY' => array( 'qcc_title' ) ),
-+			'options' => array( 'GROUP BY' => array( 'qcc_title', 'user_name', 'user_id' ) ),
- 			'conds' => $conds
- 		);
- 	}
-@@ -349,7 +349,7 @@ class SpecialActiveUsers extends SpecialPage {
- 			__METHOD__,
- 			array(
- 				'GROUP BY' => array( 'rc_user_text' ),
--				'ORDER BY' => 'NULL' // avoid filesort
-+				'ORDER BY' => 'lastedittime DESC'
- 			)
- 		);
- 		$names = array();
diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
index bb066aa6c47..d7bdd81b7eb 100644
--- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
@@ -72,15 +72,13 @@ let
 
   # Unpack Mediawiki and put the config file in its root directory.
   mediawikiRoot = pkgs.stdenv.mkDerivation rec {
-    name= "mediawiki-1.23.1";
+    name= "mediawiki-1.23.3";
 
     src = pkgs.fetchurl {
       url = "http://download.wikimedia.org/mediawiki/1.23/${name}.tar.gz";
-      sha256 = "07z5j8d988cdg4ml4n0vs9fwmj0p594ibbqdid16faxwqm52dkhl";
+      sha256 = "0l6798jwjwk2khfnm84mgc65ij53a8pnv30wdnn15ys4ivia4bpf";
     };
 
-    patches = [ ./mediawiki-postgresql-fixes.patch ];
-
     skins = config.skins;
 
     buildPhase =
diff --git a/nixos/modules/services/web-servers/apache-httpd/phabricator.nix b/nixos/modules/services/web-servers/apache-httpd/phabricator.nix
index c7a9bdf68c5..e4e3aac8d41 100644
--- a/nixos/modules/services/web-servers/apache-httpd/phabricator.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/phabricator.nix
@@ -1,35 +1,30 @@
 { config, lib, pkgs, ... }:
+
+with lib;
+
 let
-  phabricatorRoot = pkgs.stdenv.mkDerivation rec {
-    version = "2014-05-12";
-    name = "phabricator-${version}";
-    srcLibphutil = pkgs.fetchgit {
-        url = git://github.com/facebook/libphutil.git;
-        rev = "2f3b5a1cf6ea464a0250d4b1c653a795a90d2716";
-        sha256 = "9598cec400984dc149162f1e648814a54ea0cd34fcd529973dc83f5486fdd9fd";
-    };
-    srcArcanist = pkgs.fetchgit {
-        url = git://github.com/facebook/arcanist.git;
-        rev = "54c377448db8dbc40f0ca86d43c837d30e493485";
-        sha256 = "086db3c0d1154fbad23e7c6def31fd913384ee20247b329515838b669c3028e0";
-    };
-    srcPhabricator = pkgs.fetchgit {
-        url = git://github.com/facebook/phabricator.git;
-        rev = "1644ef185ecf1e9fca3eb6b16351ef46b19d110f";
-        sha256 = "e1135e4ba76d53f48aad4161563035414ed7e878f39a8a34a875a01b41b2a084";
-    };
-    
-    buildCommand = ''
-      mkdir -p $out
-      cp -R ${srcLibphutil} $out/libphutil
-      cp -R ${srcArcanist} $out/arcanist
-      cp -R ${srcPhabricator} $out/phabricator
-    '';
-  };
+  phabricatorRoot = pkgs.phabricator;
 in {
+
   enablePHP = true;
   extraApacheModules = [ "mod_rewrite" ];
   DocumentRoot = "${phabricatorRoot}/phabricator/webroot";
+
+  options = {
+      git = mkOption {
+          default = true;
+          description = "Enable git repositories.";
+      };
+      mercurial = mkOption {
+          default = true;
+          description = "Enable mercurial repositories.";
+      };
+      subversion = mkOption {
+          default = true;
+          description = "Enable subversion repositories.";
+      };
+  };
+
   extraConfig = ''
       DocumentRoot ${phabricatorRoot}/phabricator/webroot
 
@@ -38,4 +33,18 @@ in {
       RewriteRule ^/favicon.ico - [L,QSA]
       RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
   '';
+
+  extraServerPath = [
+      "${pkgs.which}"
+      "${pkgs.diffutils}"
+      ] ++
+      (if config.mercurial then ["${pkgs.mercurial}"] else []) ++
+      (if config.subversion then ["${pkgs.subversion}"] else []) ++
+      (if config.git then ["${pkgs.git}"] else []);
+
+  startupScript = pkgs.writeScript "activatePhabricator" ''
+      mkdir -p /var/repo
+      chown wwwrun /var/repo
+  '';
+
 }
diff --git a/nixos/modules/services/web-servers/tomcat.nix b/nixos/modules/services/web-servers/tomcat.nix
index c2f464014ae..99460a48835 100644
--- a/nixos/modules/services/web-servers/tomcat.nix
+++ b/nixos/modules/services/web-servers/tomcat.nix
@@ -5,7 +5,7 @@ with lib;
 let
 
   cfg = config.services.tomcat;
-  tomcat = pkgs.tomcat6;
+  tomcat = cfg.package;
 in
 
 {
@@ -21,6 +21,15 @@ in
         description = "Whether to enable Apache Tomcat";
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.tomcat7;
+        example = lib.literalExample "pkgs.tomcat8";
+        description = ''
+          Which tomcat package to use.
+        '';
+      };
+
       baseDir = mkOption {
         default = "/var/tomcat";
         description = "Location where Tomcat stores configuration files, webapplications and logfiles";
diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix
index a72eea76239..a31f66176cc 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -34,10 +34,6 @@ in
             # Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.
             export GTK_DATA_PREFIX=${config.system.path}
 
-            # Necessary to get xfce4-mixer to find GST's ALSA plugin.
-            # Ugly.
-            export GST_PLUGIN_PATH=${config.system.path}/lib
-
             exec ${pkgs.stdenv.shell} ${pkgs.xfce.xinitrc}
           '';
       };
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index 0cc060db8f9..c46b3ba705a 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -6,7 +6,8 @@ let
 
   cfg = config.boot.loader.grub;
 
-  realGrub = if cfg.version == 1 then pkgs.grub else pkgs.grub2;
+  realGrub = if cfg.version == 1 then pkgs.grub
+    else pkgs.grub2.override { zfsSupport = cfg.zfsSupport; };
 
   grub =
     # Don't include GRUB if we're only generating a GRUB menu (e.g.,
@@ -25,11 +26,12 @@ let
       inherit (cfg)
         version extraConfig extraPerEntryConfig extraEntries
         extraEntriesBeforeNixOS extraPrepareConfig configurationLimit copyKernels timeout
-        default devices explicitBootRoot;
+        default devices fsIdentifier;
       path = (makeSearchPath "bin" [
-        pkgs.coreutils pkgs.gnused pkgs.gnugrep pkgs.findutils pkgs.diffutils
+        pkgs.coreutils pkgs.gnused pkgs.gnugrep pkgs.findutils pkgs.diffutils pkgs.btrfsProgs
+        pkgs.utillinux
       ]) + ":" + (makeSearchPath "sbin" [
-        pkgs.mdadm
+        pkgs.mdadm pkgs.utillinux
       ]);
     });
 
@@ -209,12 +211,26 @@ in
         '';
       };
 
-      explicitBootRoot = mkOption {
-        default = "";
-        type = types.str;
+      fsIdentifier = mkOption {
+        default = "uuid";
+        type = types.addCheck types.str
+          (type: type == "uuid" || type == "label" || type == "provided");
         description = ''
-          The relative path of /boot within the parent volume. Leave empty
-          if /boot is not a btrfs subvolume.
+          Determines how grub will identify devices when generating the
+          configuration file. A value of uuid / label signifies that grub
+          will always resolve the uuid or label of the device before using
+          it in the configuration. A value of provided means that grub will
+          use the device name as show in <command>df</command> or
+          <command>mount</command>. Note, zfs zpools / datasets are ignored
+          and will always be mounted using their labels.
+        '';
+      };
+
+      zfsSupport = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Whether grub should be build against libzfs.
         '';
       };
 
@@ -244,7 +260,7 @@ in
         if cfg.devices == [] then
           throw "You must set the option ‘boot.loader.grub.device’ to make the system bootable."
         else
-          "PERL5LIB=${makePerlPath [ pkgs.perlPackages.XMLLibXML pkgs.perlPackages.XMLSAX ]} " +
+          "PERL5LIB=${makePerlPath (with pkgs.perlPackages; [ FileSlurp XMLLibXML XMLSAX ])} " +
           "${pkgs.perl}/bin/perl ${./install-grub.pl} ${grubConfig}";
 
       system.build.grub = grub;
@@ -260,6 +276,13 @@ in
           ${pkgs.coreutils}/bin/cp -pf "${v}" "/boot/${n}"
         '') config.boot.loader.grub.extraFiles);
 
+    assertions = [{ assertion = !cfg.zfsSupport || cfg.version == 2;
+                    message = "Only grub version 2 provides zfs support";}]
+      ++ flip map cfg.devices (dev: {
+        assertion = dev == "nodev" || hasPrefix "/" dev;
+        message = "Grub devices must be absolute paths, not ${dev}";
+      });
+
     })
 
   ];
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index b4900358a5d..eef81d81484 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -1,10 +1,12 @@
 use strict;
 use warnings;
+use Class::Struct;
 use XML::LibXML;
 use File::Basename;
 use File::Path;
 use File::stat;
 use File::Copy;
+use File::Slurp;
 use POSIX;
 use Cwd;
 
@@ -27,6 +29,14 @@ sub writeFile {
     close FILE or die;
 }
 
+sub runCommand {
+    my ($cmd) = @_;
+    open FILE, "$cmd 2>/dev/null |" or die "Failed to execute: $cmd\n";
+    my @ret = <FILE>;
+    close FILE;
+    return ($?, @ret);
+}
+
 my $grub = get("grub");
 my $grubVersion = int(get("version"));
 my $extraConfig = get("extraConfig");
@@ -39,7 +49,7 @@ my $configurationLimit = int(get("configurationLimit"));
 my $copyKernels = get("copyKernels") eq "true";
 my $timeout = int(get("timeout"));
 my $defaultEntry = int(get("default"));
-my $explicitBootRoot = get("explicitBootRoot");
+my $fsIdentifier = get("fsIdentifier");
 $ENV{'PATH'} = get("path");
 
 die "unsupported GRUB version\n" if $grubVersion != 1 && $grubVersion != 2;
@@ -48,23 +58,148 @@ print STDERR "updating GRUB $grubVersion menu...\n";
 
 mkpath("/boot/grub", 0, 0700);
 
-
 # Discover whether /boot is on the same filesystem as / and
 # /nix/store.  If not, then all kernels and initrds must be copied to
-# /boot, and all paths in the GRUB config file must be relative to the
-# root of the /boot filesystem.  `$bootRoot' is the path to be
-# prepended to paths under /boot.
-my $bootRoot = "/boot";
-if (stat("/")->dev != stat("/boot")->dev) {
-    $bootRoot = "";
-    $copyKernels = 1;
-} elsif (stat("/boot")->dev != stat("/nix/store")->dev) {
+# /boot.
+if (stat("/boot")->dev != stat("/nix/store")->dev) {
     $copyKernels = 1;
 }
 
-if ($explicitBootRoot ne "") {
-    $bootRoot = $explicitBootRoot;
+# Discover information about the location of /boot
+struct(Fs => {
+    device => '$',
+    type => '$',
+    mount => '$',
+});
+sub PathInMount {
+    my ($path, $mount) = @_;
+    my @splitMount = split /\//, $mount;
+    my @splitPath = split /\//, $path;
+    if ($#splitPath < $#splitMount) {
+        return 0;
+    }
+    for (my $i = 0; $i <= $#splitMount; $i++) {
+        if ($splitMount[$i] ne $splitPath[$i]) {
+            return 0;
+        }
+    }
+    return 1;
 }
+sub GetFs {
+    my ($dir) = @_;
+    my $bestFs = Fs->new(device => "", type => "", mount => "");
+    foreach my $fs (read_file("/proc/self/mountinfo")) {
+        chomp $fs;
+        my @fields = split / /, $fs;
+        my $mountPoint = $fields[4];
+        next unless -d $mountPoint;
+        my @mountOptions = split /,/, $fields[5];
+
+        # Skip the optional fields.
+        my $n = 6; $n++ while $fields[$n] ne "-"; $n++;
+        my $fsType = $fields[$n];
+        my $device = $fields[$n + 1];
+        my @superOptions = split /,/, $fields[$n + 2];
+
+        # Skip the read-only bind-mount on /nix/store.
+        next if $mountPoint eq "/nix/store" && (grep { $_ eq "rw" } @superOptions) && (grep { $_ eq "ro" } @mountOptions);
+
+        # Ensure this matches the intended directory
+        next unless PathInMount($dir, $mountPoint);
+
+        # Is it better than our current match?
+        if (length($mountPoint) > length($bestFs->mount)) {
+            $bestFs = Fs->new(device => $device, type => $fsType, mount => $mountPoint);
+        }
+    }
+    return $bestFs;
+}
+struct (Grub => {
+    path => '$',
+    search => '$',
+});
+my $driveid = 1;
+sub GrubFs {
+    my ($dir) = @_;
+    my $fs = GetFs($dir);
+    my $path = "/" . substr($dir, length($fs->mount));
+    my $search = "";
+
+    if ($grubVersion > 1) {
+        # ZFS is completely separate logic as zpools are always identified by a label
+        # or custom UUID
+        if ($fs->type eq 'zfs') {
+            my $sid = index($fs->device, '/');
+
+            if ($sid < 0) {
+                $search = '--label ' . $fs->device;
+                $path = '/@' . $path;
+            } else {
+                $search = '--label ' . substr($fs->device, 0, $sid);
+                $path = '/' . substr($fs->device, $sid) . '/@' . $path;
+            }
+        } else {
+            my %types = ('uuid' => '--fs-uuid', 'label' => '--label');
+
+            if ($fsIdentifier eq 'provided') {
+                # If the provided dev is identifying the partition using a label or uuid,
+                # we should get the label / uuid and do a proper search
+                my @matches = $fs->device =~ m/\/dev\/disk\/by-(label|uuid)\/(.*)/;
+                if ($#matches > 1) {
+                    die "Too many matched devices"
+                } elsif ($#matches == 1) {
+                    $search = "$types{$matches[0]} $matches[1]"
+                }
+            } else {
+                # Determine the identifying type
+                $search = $types{$fsIdentifier} . ' ';
+
+                # Based on the type pull in the identifier from the system
+                my ($status, @devInfo) = runCommand("blkid -o export @{[$fs->device]}");
+                if ($status != 0) {
+                    die "Failed to get blkid info for @{[$fs->mount]} on @{[$fs->device]}";
+                }
+                my @matches = join("", @devInfo) =~ m/@{[uc $fsIdentifier]}=([^\n]*)/;
+                if ($#matches != 0) {
+                    die "Couldn't find a $types{$fsIdentifier} for @{[$fs->device]}\n"
+                }
+                $search .= $matches[0];
+            }
+
+            # BTRFS is a special case in that we need to fix the referrenced path based on subvolumes
+            if ($fs->type eq 'btrfs') {
+                my ($status, @id_info) = runCommand("btrfs subvol show @{[$fs->mount]}");
+                if ($status != 0) {
+                    die "Failed to retrieve subvolume info for @{[$fs->mount]}\n";
+                }
+                my @ids = join("", @id_info) =~ m/Object ID:[ \t\n]*([^ \t\n]*)/;
+                if ($#ids > 0) {
+                    die "Btrfs subvol name for @{[$fs->device]} listed multiple times in mount\n"
+                } elsif ($#ids == 0) {
+                    my ($status, @path_info) = runCommand("btrfs subvol list @{[$fs->mount]}");
+                    if ($status != 0) {
+                        die "Failed to find @{[$fs->mount]} subvolume id from btrfs\n";
+                    }
+                    my @paths = join("", @path_info) =~ m/ID $ids[0] [^\n]* path ([^\n]*)/;
+                    if ($#paths > 0) {
+                        die "Btrfs returned multiple paths for a single subvolume id, mountpoint @{[$fs->mount]}\n";
+                    } elsif ($#paths != 0) {
+                        die "Btrfs did not return a path for the subvolume at @{[$fs->mount]}\n";
+                    }
+                    $path = "/$paths[0]$path";
+                }
+            }
+        }
+        if (not $search eq "") {
+            $search = "search --set=drive$driveid " . $search;
+            $path = "(\$drive$driveid)$path";
+            $driveid += 1;
+        }
+    }
+    return Grub->new(path => $path, search => $search);
+}
+my $grubBoot = GrubFs("/boot");
+my $grubStore = GrubFs("/nix/store");
 
 # Generate the header.
 my $conf .= "# Automatically generated.  DO NOT EDIT THIS FILE!\n";
@@ -76,12 +211,17 @@ if ($grubVersion == 1) {
     ";
     if ($splashImage) {
         copy $splashImage, "/boot/background.xpm.gz" or die "cannot copy $splashImage to /boot\n";
-        $conf .= "splashimage $bootRoot/background.xpm.gz\n";
+        $conf .= "splashimage " . $grubBoot->path . "/background.xpm.gz\n";
     }
 }
 
 else {
+    if ($copyKernels == 0) {
+        $conf .= "
+            " . $grubStore->search;
+    }
     $conf .= "
+        " . $grubBoot->search . "
         if [ -s \$prefix/grubenv ]; then
           load_env
         fi
@@ -102,7 +242,7 @@ else {
           set timeout=$timeout
         fi
 
-        if loadfont $bootRoot/grub/fonts/unicode.pf2; then
+        if loadfont " . $grubBoot->path . "/grub/fonts/unicode.pf2; then
           set gfxmode=640x480
           insmod gfxterm
           insmod vbe
@@ -116,7 +256,7 @@ else {
         copy $splashImage, "/boot/background.png" or die "cannot copy $splashImage to /boot\n";
         $conf .= "
             insmod png
-            if background_image $bootRoot/background.png; then
+            if background_image " . $grubBoot->path . "/background.png; then
               set color_normal=white/black
               set color_highlight=black/white
             else
@@ -138,7 +278,7 @@ mkpath("/boot/kernels", 0, 0755) if $copyKernels;
 
 sub copyToKernelsDir {
     my ($path) = @_;
-    return $path unless $copyKernels;
+    return $grubStore->path . substr($path, length("/nix/store")) unless $copyKernels;
     $path =~ /\/nix\/store\/(.*)/ or die;
     my $name = $1; $name =~ s/\//-/g;
     my $dst = "/boot/kernels/$name";
@@ -151,7 +291,7 @@ sub copyToKernelsDir {
         rename $tmp, $dst or die "cannot rename $tmp to $dst\n";
     }
     $copied{$dst} = 1;
-    return "$bootRoot/kernels/$name";
+    return $grubBoot->path . "/kernels/$name";
 }
 
 sub addEntry {
@@ -178,6 +318,10 @@ sub addEntry {
         $conf .= "  " . ($xen ? "module" : "initrd") . " $initrd\n\n";
     } else {
         $conf .= "menuentry \"$name\" {\n";
+        $conf .= $grubBoot->search . "\n";
+        if ($copyKernels == 0) {
+            $conf .= $grubStore->search . "\n";
+        }
         $conf .= "  $extraPerEntryConfig\n" if $extraPerEntryConfig;
         $conf .= "  multiboot $xen $xenParams\n" if $xen;
         $conf .= "  " . ($xen ? "module" : "linux") . " $kernel $kernelParams\n";
@@ -195,7 +339,7 @@ addEntry("NixOS - Default", $defaultConfig);
 $conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
 
 # extraEntries could refer to @bootRoot@, which we have to substitute
-$conf =~ s/\@bootRoot\@/$bootRoot/g;
+$conf =~ s/\@bootRoot\@/$grubBoot->path/g;
 
 # Emit submenus for all system profiles.
 sub addProfile {
diff --git a/nixos/modules/system/boot/loader/gummiboot/gummiboot.nix b/nixos/modules/system/boot/loader/gummiboot/gummiboot.nix
index e7a481e90a7..003f72b37f9 100644
--- a/nixos/modules/system/boot/loader/gummiboot/gummiboot.nix
+++ b/nixos/modules/system/boot/loader/gummiboot/gummiboot.nix
@@ -16,7 +16,7 @@ let
 
     nix = config.nix.package;
 
-    inherit (cfg) timeout;
+    timeout = if cfg.timeout != null then cfg.timeout else "";
 
     inherit (efi) efiSysMountPoint canTouchEfiVariables;
   };
diff --git a/nixos/modules/system/boot/modprobe.nix b/nixos/modules/system/boot/modprobe.nix
index 652eb046f50..eaf8cf1ecd6 100644
--- a/nixos/modules/system/boot/modprobe.nix
+++ b/nixos/modules/system/boot/modprobe.nix
@@ -77,6 +77,11 @@ with lib;
         '')}
         ${config.boot.extraModprobeConfig}
       '';
+    environment.etc."modprobe.d/usb-load-ehci-first.conf".text =
+      ''
+        softdep uhci_hcd pre: ehci_hcd
+        softdep ohci_hcd pre: ehci_hcd
+      '';
 
     environment.systemPackages = [ config.system.sbin.modprobe pkgs.kmod ];
 
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 426da778f43..6977880fa28 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -50,7 +50,7 @@ let
       cp -pvd ${pkgs.busybox}/bin/* ${pkgs.busybox}/sbin/* $out/bin/
 
       # Copy some utillinux stuff.
-      cp -vf ${pkgs.utillinux}/sbin/blkid $out/bin
+      cp -vf --remove-destination ${pkgs.utillinux}/sbin/blkid $out/bin
       cp -pdv ${pkgs.utillinux}/lib/libblkid*.so.* $out/lib
       cp -pdv ${pkgs.utillinux}/lib/libuuid*.so.* $out/lib
 
diff --git a/nixos/modules/tasks/cpu-freq.nix b/nixos/modules/tasks/cpu-freq.nix
index a8c63c13428..70bbee8474e 100644
--- a/nixos/modules/tasks/cpu-freq.nix
+++ b/nixos/modules/tasks/cpu-freq.nix
@@ -30,9 +30,7 @@ in
 
   config = mkIf (!config.boot.isContainer && config.powerManagement.cpuFreqGovernor != null) {
 
-    boot.kernelModules = [ "acpi-cpufreq" "speedstep-lib" "pcc-cpufreq"
-      "cpufreq_${cfg.cpuFreqGovernor}"
-    ];
+    boot.kernelModules = [ "cpufreq_${cfg.cpuFreqGovernor}" ];
 
     environment.systemPackages = [ cpupower ];
 
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index d7deb44c407..1c4bbc16b49 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -133,7 +133,7 @@ in
       };
 
       boot.initrd = mkIf inInitrd {
-        kernelModules = [ "spl" "zfs" ] ;
+        kernelModules = [ "spl" "zfs" ];
         extraUtilsCommands =
           ''
             cp -v ${zfsPkg}/sbin/zfs $out/bin
@@ -148,6 +148,10 @@ in
           '';
       };
 
+      boot.loader.grub = mkIf inInitrd {
+        zfsSupport = true;
+      };
+
       systemd.services."zpool-import" = {
         description = "Import zpools";
         after = [ "systemd-udev-settle.service" ];
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 2adb4bcfaba..97b37b0714c 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -1,6 +1,7 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
 with lib;
+with utils;
 
 let
 
@@ -10,6 +11,10 @@ let
   hasSits = cfg.sits != { };
   hasBonds = cfg.bonds != { };
 
+  # We must escape interfaces due to the systemd interpretation
+  subsystemDevice = interface:
+    "sys-subsystem-net-devices-${escapeSystemdPath interface}.device";
+
   addrOpts = v:
     assert v == 4 || v == 6;
     {
@@ -103,7 +108,7 @@ let
         '';
       };
 
-      ipv6prefixLength = mkOption {
+      ipv6PrefixLength = mkOption {
         default = 64;
         example = 64;
         type = types.int;
@@ -138,8 +143,6 @@ let
           Whether this interface is virtual and should be created by tunctl.
           This is mainly useful for creating bridges between a host a virtual
           network such as VPN or a virtual machine.
-
-          Defaults to tap device, unless interface contains "tun" in its name.
         '';
       };
 
@@ -151,6 +154,15 @@ let
         '';
       };
 
+      virtualType = mkOption {
+        default = null;
+        type = types.nullOr (types.addCheck types.str (v: v == "tun" || v == "tap"));
+        description = ''
+          The explicit type of interface to create. Accepts tun or tap strings.
+          Also accepts null to implicitly detect the type of device.
+        '';
+      };
+
       proxyARP = mkOption {
         default = false;
         type = types.bool;
@@ -596,8 +608,8 @@ in
           nameValuePair "${i.name}-cfg"
           { description = "Configuration of ${i.name}";
             wantedBy = [ "network-interfaces.target" ];
-            bindsTo = [ "sys-subsystem-net-devices-${i.name}.device" ];
-            after = [ "sys-subsystem-net-devices-${i.name}.device" ];
+            bindsTo = [ (subsystemDevice i.name) ];
+            after = [ (subsystemDevice i.name) ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute pkgs.gawk ];
@@ -673,26 +685,32 @@ in
                 '');
           };
 
-        createTunDevice = i: nameValuePair "${i.name}"
+        createTunDevice = i: nameValuePair "${i.name}-netdev"
           { description = "Virtual Network Interface ${i.name}";
             requires = [ "dev-net-tun.device" ];
             after = [ "dev-net-tun.device" ];
-            wantedBy = [ "network.target" ];
-            requiredBy = [ "sys-subsystem-net-devices-${i.name}.device" ];
-            serviceConfig =
-              { Type = "oneshot";
-                RemainAfterExit = true;
-                ExecStart = "${pkgs.tunctl}/bin/tunctl -t '${i.name}' -u '${i.virtualOwner}'";
-                ExecStop = "${pkgs.tunctl}/bin/tunctl -d '${i.name}'";
-              };
+            wantedBy = [ "network.target" (subsystemDevice i.name) ];
+            path = [ pkgs.iproute ];
+            serviceConfig = {
+              Type = "oneshot";
+              RemainAfterExit = true;
+            };
+            script = ''
+              ip tuntap add dev "${i.name}" \
+              ${optionalString (i.virtualType != null) "mode ${i.virtualType}"} \
+              user "${i.virtualOwner}"
+            '';
+            postStop = ''
+              ip link del ${i.name}
+            '';
           };
 
-        createBridgeDevice = n: v:
-          let
-            deps = map (i: "sys-subsystem-net-devices-${i}.device") v.interfaces;
+        createBridgeDevice = n: v: nameValuePair "${n}-netdev"
+          (let
+            deps = map subsystemDevice v.interfaces;
           in
           { description = "Bridge Interface ${n}";
-            wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
+            wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
             after = deps;
             serviceConfig.Type = "oneshot";
@@ -725,14 +743,14 @@ in
                 ip link set "${n}" down
                 brctl delbr "${n}"
               '';
-          };
+          });
 
-        createBondDevice = n: v:
-          let
-            deps = map (i: "sys-subsystem-net-devices-${i}.device") v.interfaces;
+        createBondDevice = n: v: nameValuePair "${n}-netdev"
+          (let
+            deps = map subsystemDevice v.interfaces;
           in
           { description = "Bond Interface ${n}";
-            wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
+            wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
             after = deps;
             serviceConfig.Type = "oneshot";
@@ -764,14 +782,14 @@ in
               ifenslave -d "${n}"
               ip link delete "${n}"
             '';
-          };
+          });
 
-        createSitDevice = n: v:
-          let
-            deps = optional (v.dev != null) "sys-subsystem-net-devices-${v.dev}.device";
+        createSitDevice = n: v: nameValuePair "${n}-netdev"
+          (let
+            deps = optional (v.dev != null) (subsystemDevice v.dev);
           in
           { description = "6-to-4 Tunnel Interface ${n}";
-            wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
+            wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
             after = deps;
             serviceConfig.Type = "oneshot";
@@ -790,14 +808,14 @@ in
             postStop = ''
               ip link delete "${n}"
             '';
-          };
+          });
 
-        createVlanDevice = n: v:
-          let
-            deps = [ "sys-subsystem-net-devices-${v.interface}.device" ];
+        createVlanDevice = n: v: nameValuePair "${n}-netdev"
+          (let
+            deps = [ (subsystemDevice v.interface) ];
           in
           { description = "Vlan Interface ${n}";
-            wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
+            wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
             after = deps;
             serviceConfig.Type = "oneshot";
@@ -812,15 +830,15 @@ in
             postStop = ''
               ip link delete "${n}"
             '';
-          };
+          });
 
       in listToAttrs (
            map configureInterface interfaces ++
            map createTunDevice (filter (i: i.virtual) interfaces))
-         // mapAttrs createBridgeDevice cfg.bridges
-         // mapAttrs createBondDevice cfg.bonds
-         // mapAttrs createSitDevice cfg.sits
-         // mapAttrs createVlanDevice cfg.vlans
+         // mapAttrs' createBridgeDevice cfg.bridges
+         // mapAttrs' createBondDevice cfg.bonds
+         // mapAttrs' createSitDevice cfg.sits
+         // mapAttrs' createVlanDevice cfg.vlans
          // { "network-setup" = networkSetup; };
 
     # Set the host and domain names in the activation script.  Don't
diff --git a/nixos/modules/virtualisation/azure-config.nix b/nixos/modules/virtualisation/azure-config.nix
new file mode 100644
index 00000000000..5c9f18ef52a
--- /dev/null
+++ b/nixos/modules/virtualisation/azure-config.nix
@@ -0,0 +1,5 @@
+{ config, pkgs, modulesPath, ... }:
+
+{
+  imports = [ "${modulesPath}/virtualisation/azure-image.nix" ];
+}
diff --git a/nixos/modules/virtualisation/azure-image.nix b/nixos/modules/virtualisation/azure-image.nix
new file mode 100644
index 00000000000..ec7e8888c03
--- /dev/null
+++ b/nixos/modules/virtualisation/azure-image.nix
@@ -0,0 +1,125 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  diskSize = "4096";
+in
+{
+  imports = [ ../profiles/headless.nix ];
+
+  system.build.azureImage =
+    pkgs.vmTools.runInLinuxVM (
+      pkgs.runCommand "azure-image"
+        { preVM =
+            ''
+              mkdir $out
+              diskImage=$out/$diskImageBase
+
+              cyl=$(((${diskSize}*1024*1024)/(512*63*255)))
+              size=$(($cyl*255*63*512))              
+              roundedsize=$((($size/(1024*1024)+1)*(1024*1024)))
+              ${pkgs.vmTools.qemu}/bin/qemu-img create -f raw $diskImage $roundedsize
+              mv closure xchg/
+            '';
+
+          postVM =
+            ''
+              mkdir -p $out
+              ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -O vpc $diskImage $out/disk.vhd
+              rm $diskImage
+            '';
+          diskImageBase = "nixos-${config.system.nixosVersion}-${pkgs.stdenv.system}.raw";
+          buildInputs = [ pkgs.utillinux pkgs.perl ];
+          exportReferencesGraph =
+            [ "closure" config.system.build.toplevel ];
+        }
+        ''
+          # Create partition table
+          ${pkgs.parted}/sbin/parted /dev/vda mklabel msdos
+          ${pkgs.parted}/sbin/parted /dev/vda mkpart primary ext4 1 ${diskSize}M
+          ${pkgs.parted}/sbin/parted /dev/vda print
+          . /sys/class/block/vda1/uevent
+          mknod /dev/vda1 b $MAJOR $MINOR
+
+          # Create an empty filesystem and mount it.
+          ${pkgs.e2fsprogs}/sbin/mkfs.ext4 -L nixos /dev/vda1
+          ${pkgs.e2fsprogs}/sbin/tune2fs -c 0 -i 0 /dev/vda1
+
+          mkdir /mnt
+          mount /dev/vda1 /mnt
+
+          # The initrd expects these directories to exist.
+          mkdir /mnt/dev /mnt/proc /mnt/sys
+
+          mount --bind /proc /mnt/proc
+          mount --bind /dev /mnt/dev
+          mount --bind /sys /mnt/sys
+
+          # Copy all paths in the closure to the filesystem.
+          storePaths=$(perl ${pkgs.pathsFromGraph} /tmp/xchg/closure)
+
+          mkdir -p /mnt/nix/store
+          echo "copying everything (will take a while)..."
+          cp -prd $storePaths /mnt/nix/store/
+
+          # Register the paths in the Nix database.
+          printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
+              chroot /mnt ${config.nix.package}/bin/nix-store --load-db
+
+          # Create the system profile to allow nixos-rebuild to work.
+          chroot /mnt ${config.nix.package}/bin/nix-env \
+              -p /nix/var/nix/profiles/system --set ${config.system.build.toplevel}
+
+          # `nixos-rebuild' requires an /etc/NIXOS.
+          mkdir -p /mnt/etc
+          touch /mnt/etc/NIXOS
+
+          # `switch-to-configuration' requires a /bin/sh
+          mkdir -p /mnt/bin
+          ln -s ${config.system.build.binsh}/bin/sh /mnt/bin/sh
+
+          # Install a configuration.nix.
+          mkdir -p /mnt/etc/nixos /mnt/boot/grub
+          cp ${./azure-config.nix} /mnt/etc/nixos/configuration.nix
+
+          # Generate the GRUB menu.
+          ln -s vda /dev/sda
+          chroot /mnt ${config.system.build.toplevel}/bin/switch-to-configuration boot
+
+          umount /mnt/proc /mnt/dev /mnt/sys
+          umount /mnt
+        ''
+    );
+
+  fileSystems."/".device = "/dev/disk/by-label/nixos";
+
+  # Azure metadata is available as a CD-ROM drive.
+  fileSystems."/metadata".device = "/dev/sr0";
+
+  boot.kernelParams = [ "console=ttyS0" "earlyprintk=ttyS0" "rootdelay=300" "panic=1" "boot.panic_on_fail" ];
+  boot.initrd.kernelModules = [ "hv_vmbus" "hv_netvsc" "hv_utils" "hv_storvsc" ];
+
+  # Generate a GRUB menu. 
+  boot.loader.grub.device = "/dev/sda";
+  boot.loader.grub.version = 2;
+  boot.loader.grub.timeout = 0;
+
+  # Don't put old configurations in the GRUB menu.  The user has no
+  # way to select them anyway.
+  boot.loader.grub.configurationLimit = 0;
+
+  # Allow root logins only using the SSH key that the user specified
+  # at instance creation time.
+  services.openssh.enable = true;
+  services.openssh.permitRootLogin = "without-password";
+
+  # Force getting the hostname from Azure
+  networking.hostName = mkDefault "";
+
+  # Always include cryptsetup so that NixOps can use it.
+  environment.systemPackages = [ pkgs.cryptsetup ];
+
+  networking.usePredictableInterfaceNames = false;
+
+  users.extraUsers.root.openssh.authorizedKeys.keys = [ (builtins.readFile <ssh-pub-key>) ];
+}
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index d62340f2c79..35e37257838 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -177,6 +177,11 @@ in
             if [ "$PRIVATE_NETWORK" = 1 ]; then
               ip link del dev "ve-$INSTANCE" 2> /dev/null || true
             fi
+
+
+            if [ "$PRIVATE_NETWORK" = 1 ]; then
+              ip link del dev "ve-$INSTANCE" 2> /dev/null || true
+            fi
          '';
 
         script =
diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix
index a0aa6135326..1ce066cdc73 100644
--- a/nixos/modules/virtualisation/docker.nix
+++ b/nixos/modules/virtualisation/docker.nix
@@ -59,6 +59,7 @@ in
 
   config = mkIf cfg.enable (mkMerge [
     { environment.systemPackages = [ pkgs.docker ];
+      users.extraGroups.docker.gid = config.ids.gids.docker;
     }
     (mkIf cfg.socketActivation {
 
diff --git a/nixos/modules/virtualisation/nixos-container.pl b/nixos/modules/virtualisation/nixos-container.pl
index 7403a42f0f1..9ae5331786c 100644
--- a/nixos/modules/virtualisation/nixos-container.pl
+++ b/nixos/modules/virtualisation/nixos-container.pl
@@ -201,15 +201,32 @@ sub runInContainer {
     die "cannot run ‘nsenter’: $!\n";
 }
 
+# Remove a directory while recursively unmounting all mounted filesystems within
+# that directory and unmounting/removing that directory afterwards as well.
+#
+# NOTE: If the specified path is a mountpoint, its contents will be removed,
+#       only mountpoints underneath that path will be unmounted properly.
+sub safeRemoveTree {
+    my ($path) = @_;
+    system("find", $path, "-mindepth", "1", "-xdev",
+           "(", "-type", "d", "-exec", "mountpoint", "-q", "{}", ";", ")",
+           "-exec", "umount", "-fR", "{}", "+");
+    system("rm", "--one-file-system", "-rf", $path);
+    if (-e $path) {
+        system("umount", "-fR", $path);
+        system("rm", "--one-file-system", "-rf", $path);
+    }
+}
+
 if ($action eq "destroy") {
     die "$0: cannot destroy declarative container (remove it from your configuration.nix instead)\n"
         unless POSIX::access($confFile, &POSIX::W_OK);
 
     stopContainer if isContainerRunning;
 
-    rmtree($profileDir) if -e $profileDir;
-    rmtree($gcRootsDir) if -e $gcRootsDir;
-    rmtree($root) if -e $root;
+    safeRemoveTree($profileDir) if -e $profileDir;
+    safeRemoveTree($gcRootsDir) if -e $gcRootsDir;
+    safeRemoveTree($root) if -e $root;
     unlink($confFile) or die;
 }
 
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 58386ce5cf5..33f48d65d43 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -278,7 +278,7 @@ in
     boot.initrd.extraUtilsCommands =
       ''
         # We need mke2fs in the initrd.
-        cp -f ${pkgs.e2fsprogs}/sbin/mke2fs $out/bin
+        cp -vf --remove-destination ${pkgs.e2fsprogs}/sbin/mke2fs $out/bin
       '';
 
     boot.initrd.postDeviceCommands =
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index dae3b9210a8..3a458f5e860 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -34,7 +34,7 @@ in rec {
       maintainers = [ pkgs.lib.maintainers.eelco pkgs.lib.maintainers.shlevy ];
     };
     constituents =
-      let all = x: [ x.x86_64-linux x.i686-linux ]; in
+      let all = x: map (p: x.${p}) supportedSystems; in
       [ nixos.channel
         (all nixos.manual)
 
@@ -52,6 +52,11 @@ in rec {
         (all nixos.tests.installer.lvm)
         (all nixos.tests.installer.separateBoot)
         (all nixos.tests.installer.simple)
+        (all nixos.tests.installer.simpleLabels)
+        (all nixos.tests.installer.simpleProvided)
+        (all nixos.tests.installer.btrfsSimple)
+        (all nixos.tests.installer.btrfsSubvols)
+        (all nixos.tests.installer.btrfsSubvolDefault)
         (all nixos.tests.ipv6)
         (all nixos.tests.kde4)
         (all nixos.tests.login)
diff --git a/nixos/release.nix b/nixos/release.nix
index e2b93640f91..d8cc1c8291b 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -231,14 +231,15 @@ in rec {
   tests.installer.simpleLabels = forAllSystems (system: (import tests/installer.nix { inherit system; }).simpleLabels.test);
   tests.installer.simpleProvided = forAllSystems (system: (import tests/installer.nix { inherit system; }).simpleProvided.test);
   tests.installer.btrfsSimple = forAllSystems (system: (import tests/installer.nix { inherit system; }).btrfsSimple.test);
-  #tests.installer.btrfsSubvols = forAllSystems (system: (import tests/installer.nix { inherit system; }).btrfsSubvols.test);
+  tests.installer.btrfsSubvols = forAllSystems (system: (import tests/installer.nix { inherit system; }).btrfsSubvols.test);
+  tests.installer.btrfsSubvolDefault = forAllSystems (system: (import tests/installer.nix { inherit system; }).btrfsSubvolDefault.test);
   tests.influxdb = callTest tests/influxdb.nix {};
   tests.ipv6 = callTest tests/ipv6.nix {};
   tests.jenkins = callTest tests/jenkins.nix {};
   tests.kde4 = callTest tests/kde4.nix {};
   tests.latestKernel.login = callTest tests/login.nix { latestKernel = true; };
   tests.login = callTest tests/login.nix {};
-  tests.logstash = callTest tests/logstash.nix {};
+  #tests.logstash = callTest tests/logstash.nix {};
   tests.misc = callTest tests/misc.nix {};
   tests.mumble = callTest tests/mumble.nix {};
   tests.munin = callTest tests/munin.nix {};
@@ -246,6 +247,7 @@ in rec {
   tests.mysqlReplication = callTest tests/mysql-replication.nix {};
   tests.nat = callTest tests/nat.nix {};
   tests.nfs3 = callTest tests/nfs.nix { version = 3; };
+  tests.nsd = callTest tests/nsd.nix {};
   tests.openssh = callTest tests/openssh.nix {};
   tests.printing = callTest tests/printing.nix {};
   tests.proxy = callTest tests/proxy.nix {};
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index b12a861f723..c4a00ee507b 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -28,7 +28,7 @@ in
   nodes =
     { tracker =
         { config, pkgs, ... }:
-        { environment.systemPackages = [ pkgs.transmission pkgs.bittorrent ];
+        { environment.systemPackages = [ pkgs.transmission ];
 
           # We need Apache on the tracker to serve the torrents.
           services.httpd.enable = true;
diff --git a/nixos/tests/common/user-account.nix b/nixos/tests/common/user-account.nix
index 0239a3c4d08..aa3a0b82bcd 100644
--- a/nixos/tests/common/user-account.nix
+++ b/nixos/tests/common/user-account.nix
@@ -1,11 +1,9 @@
 { pkgs, ... }:
 
 { users.extraUsers = pkgs.lib.singleton
-    { name = "alice";
+    { isNormalUser = true;
+      name = "alice";
       description = "Alice Foobar";
-      home = "/home/alice";
-      createHome = true;
-      useDefaultShell = true;
       password = "foobar";
       uid = 1000;
     };
diff --git a/nixos/tests/containers.nix b/nixos/tests/containers.nix
index a582e23fda0..331324139a1 100644
--- a/nixos/tests/containers.nix
+++ b/nixos/tests/containers.nix
@@ -56,23 +56,52 @@ import ./make-test.nix {
 
       die if $id1 eq $id2;
 
+      # Put the root of $id2 into a bind mount.
+      $machine->succeed(
+        "mv /var/lib/containers/$id2 /id2-bindmount",
+        "mount --bind /id2-bindmount /var/lib/containers/$id1"
+      );
+
       my $ip1 = $machine->succeed("nixos-container show-ip $id1");
       chomp $ip1;
       my $ip2 = $machine->succeed("nixos-container show-ip $id2");
       chomp $ip2;
       die if $ip1 eq $ip2;
 
+      # Create a directory and a file we can later check if it still exists
+      # after destruction of the container.
+      $machine->succeed(
+        "mkdir /nested-bindmount",
+        "echo important data > /nested-bindmount/dummy",
+      );
+
+      # Create a directory with a dummy file and bind-mount it into both
+      # containers.
+      foreach ($id1, $id2) {
+        my $importantPath = "/var/lib/containers/$_/very/important/data";
+        $machine->succeed(
+          "mkdir -p $importantPath",
+          "mount --bind /nested-bindmount $importantPath"
+        );
+      }
+
       # Start one of them.
       $machine->succeed("nixos-container start $id1");
 
       # Execute commands via the root shell.
       $machine->succeed("nixos-container run $id1 -- uname") =~ /Linux/ or die;
-      $machine->succeed("nixos-container set-root-password $id1 foobar");
 
       # Destroy the containers.
       $machine->succeed("nixos-container destroy $id1");
       $machine->succeed("nixos-container destroy $id2");
 
+      $machine->succeed(
+        # Check whether destruction of any container has killed important data
+        "grep -qF 'important data' /nested-bindmount/dummy",
+        # Ensure that the container path is gone
+        "test ! -e /var/lib/containers/$id1"
+      );
+
       # Destroying a declarative container should fail.
       $machine->fail("nixos-container destroy webserver");
     '';
diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix
index 44668f57fc1..df30283e315 100644
--- a/nixos/tests/gnome3.nix
+++ b/nixos/tests/gnome3.nix
@@ -23,7 +23,7 @@ import ./make-test.nix {
 
       $machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'");
       $machine->waitForWindow(qr/Terminal/);
-      $machine->sleep(10);
+      $machine->sleep(20);
       $machine->screenshot("screen");
     '';
 
diff --git a/nixos/tests/gnome3_12.nix b/nixos/tests/gnome3_12.nix
index 439674b69d5..723d1bc4522 100644
--- a/nixos/tests/gnome3_12.nix
+++ b/nixos/tests/gnome3_12.nix
@@ -24,7 +24,7 @@ import ./make-test.nix {
 
       $machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'");
       $machine->waitForWindow(qr/Terminal/);
-      $machine->sleep(10);
+      $machine->sleep(20);
       $machine->screenshot("screen");
     '';
 
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 6ee52fd63d8..3e29bc2a45b 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -35,8 +35,9 @@ let
 
 
   # The configuration to install.
-  makeConfig = { testChannel, useEFI, grubVersion, grubDevice }: pkgs.writeText "configuration.nix"
-    ''
+  makeConfig = { testChannel, useEFI, grubVersion, grubDevice, grubIdentifier
+    , readOnly ? true, forceGrubReinstallCount ? 0 }:
+    pkgs.writeText "configuration.nix" ''
       { config, pkgs, modulesPath, ... }:
 
       { imports =
@@ -54,8 +55,13 @@ let
           ''}
           boot.loader.grub.device = "${grubDevice}";
           boot.loader.grub.extraConfig = "serial; terminal_output.serial";
+          boot.loader.grub.fsIdentifier = "${grubIdentifier}";
         ''}
 
+        boot.loader.grub.configurationLimit = 100 + ${toString forceGrubReinstallCount};
+
+        ${optionalString (!readOnly) "nix.readOnlyStore = false;"}
+
         environment.systemPackages = [ ${optionalString testChannel "pkgs.rlwrap"} ];
       }
     '';
@@ -93,7 +99,7 @@ let
   # disk, and then reboot from the hard disk.  It's parameterized with
   # a test script fragment `createPartitions', which must create
   # partitions and filesystems.
-  testScriptFun = { createPartitions, testChannel, useEFI, grubVersion, grubDevice }:
+  testScriptFun = { createPartitions, testChannel, useEFI, grubVersion, grubDevice, grubIdentifier }:
     let
       # FIXME: OVMF doesn't boot from virtio http://www.mail-archive.com/edk2-devel@lists.sourceforge.net/msg01501.html
       iface = if useEFI || grubVersion == 1 then "scsi" else "virtio";
@@ -161,7 +167,7 @@ let
       $machine->succeed("cat /mnt/etc/nixos/hardware-configuration.nix >&2");
 
       $machine->copyFileFromHost(
-          "${ makeConfig { inherit testChannel useEFI grubVersion grubDevice; } }",
+          "${ makeConfig { inherit testChannel useEFI grubVersion grubDevice grubIdentifier; } }",
           "/mnt/etc/nixos/configuration.nix");
 
       # Perform the installation.
@@ -197,16 +203,30 @@ let
       $machine->succeed("type -tP ls | tee /dev/stderr") =~ /.nix-profile/
           or die "nix-env failed";
 
+      # We need to a writable nix-store on next boot
+      $machine->copyFileFromHost(
+          "${ makeConfig { inherit testChannel useEFI grubVersion grubDevice grubIdentifier; readOnly = false; forceGrubReinstallCount = 1; } }",
+          "/etc/nixos/configuration.nix");
+
       # Check whether nixos-rebuild works.
       $machine->succeed("nixos-rebuild switch >&2");
 
       # Test nixos-option.
       $machine->succeed("nixos-option boot.initrd.kernelModules | grep virtio_console");
-      $machine->succeed("nixos-option -d boot.initrd.kernelModules | grep 'List of modules'");
-      $machine->succeed("nixos-option -l boot.initrd.kernelModules | grep qemu-guest.nix");
+      $machine->succeed("nixos-option boot.initrd.kernelModules | grep 'List of modules'");
+      $machine->succeed("nixos-option  boot.initrd.kernelModules | grep qemu-guest.nix");
 
       $machine->shutdown;
 
+      # Check whether a writable store build works
+      $machine = createMachine({ ${hdFlags} qemuFlags => "${qemuFlags}" });
+      $machine->waitForUnit("multi-user.target");
+      $machine->copyFileFromHost(
+          "${ makeConfig { inherit testChannel useEFI grubVersion grubDevice grubIdentifier; readOnly = false; forceGrubReinstallCount = 2; } }",
+          "/etc/nixos/configuration.nix");
+      $machine->succeed("nixos-rebuild boot >&2");
+      $machine->shutdown;
+
       # And just to be sure, check that the machine still boots after
       # "nixos-rebuild switch".
       $machine = createMachine({ ${hdFlags} qemuFlags => "${qemuFlags}" });
@@ -216,13 +236,13 @@ let
 
 
   makeInstallerTest = name:
-    { createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda" }:
+    { createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid" }:
     makeTest {
       inherit iso;
       name = "installer-" + name;
       nodes = if testChannel then { inherit webserver; } else { };
       testScript = testScriptFun {
-        inherit createPartitions testChannel useEFI grubVersion grubDevice;
+        inherit createPartitions testChannel useEFI grubVersion grubDevice grubIdentifier;
       };
     };
 
@@ -461,11 +481,36 @@ in {
         "mount LABEL=root /mnt",
         "btrfs subvol create /mnt/boot",
         "btrfs subvol create /mnt/nixos",
+        "btrfs subvol create /mnt/nixos/default",
         "umount /mnt",
-        "mount -o defaults,subvol=nixos LABEL=root /mnt",
+        "mount -o defaults,subvol=nixos/default LABEL=root /mnt",
         "mkdir /mnt/boot",
         "mount -o defaults,subvol=boot LABEL=root /mnt/boot",
       );
     '';
   };
+
+  # Test to see if we can detect default and aux subvolumes correctly
+  btrfsSubvolDefault = makeInstallerTest "btrfsSubvolDefault" {
+    createPartitions = ''
+      $machine->succeed(
+        "sgdisk -Z /dev/vda",
+        "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda",
+        "mkswap /dev/vda2 -L swap",
+        "swapon -L swap",
+        "mkfs.btrfs -L root /dev/vda3",
+        "btrfs device scan",
+        "mount LABEL=root /mnt",
+        "btrfs subvol create /mnt/badpath",
+        "btrfs subvol create /mnt/badpath/boot",
+        "btrfs subvol create /mnt/nixos",
+        "btrfs subvol set-default \$(btrfs subvol list /mnt | grep 'nixos' | awk '{print \$2}') /mnt",
+        "umount /mnt",
+        "mount -o defaults LABEL=root /mnt",
+        "mkdir -p /mnt/badpath/boot", # Help ensure the detection mechanism is actually looking up subvolumes
+        "mkdir /mnt/boot",
+        "mount -o defaults,subvol=badpath/boot LABEL=root /mnt/boot",
+      );
+    '';
+  };
 }
diff --git a/nixos/tests/jenkins.nix b/nixos/tests/jenkins.nix
index 28027c294bc..f0d3139d902 100644
--- a/nixos/tests/jenkins.nix
+++ b/nixos/tests/jenkins.nix
@@ -16,6 +16,8 @@ import ./make-test.nix {
         services.jenkinsSlave.enable = true;
 
         users.extraUsers.jenkins.extraGroups = [ "users" ];
+
+        systemd.services.jenkins.unitConfig.TimeoutSec = 240;
       };
 
     slave =
diff --git a/nixos/tests/munin.nix b/nixos/tests/munin.nix
index 31676c10df1..d18abd68ee0 100644
--- a/nixos/tests/munin.nix
+++ b/nixos/tests/munin.nix
@@ -18,6 +18,7 @@ import ./make-test.nix {
              '';
            };
           };
+          systemd.services.munin-node.unitConfig.TimeoutSec = 240;
         };
     };
 
diff --git a/nixos/tests/nsd.nix b/nixos/tests/nsd.nix
new file mode 100644
index 00000000000..c2331931cdd
--- /dev/null
+++ b/nixos/tests/nsd.nix
@@ -0,0 +1,83 @@
+let
+  common = { pkgs, ... }: {
+    networking.firewall.enable = false;
+    networking.useDHCP = false;
+    # for a host utility with IPv6 support
+    environment.systemPackages = [ pkgs.bind ];
+  };
+in import ./make-test.nix {
+  name = "nsd";
+
+  nodes = {
+    clientv4 = { lib, nodes, ... }: {
+      imports = [ common ];
+      networking.nameservers = lib.mkForce [
+        nodes.server.config.networking.interfaces.eth1.ipAddress
+      ];
+      networking.interfaces.eth1.ipAddress = "192.168.0.2";
+      networking.interfaces.eth1.prefixLength = 24;
+    };
+
+    clientv6 = { lib, nodes, ... }: {
+      imports = [ common ];
+      networking.nameservers = lib.mkForce [
+        nodes.server.config.networking.interfaces.eth1.ipv6Address
+      ];
+      networking.interfaces.eth1.ipv6Address = "dead:beef::2";
+    };
+
+    server = { lib, ... }: {
+      imports = [ common ];
+      networking.interfaces.eth1.ipAddress = "192.168.0.1";
+      networking.interfaces.eth1.prefixLength = 24;
+      networking.interfaces.eth1.ipv6Address = "dead:beef::1";
+      services.nsd.enable = true;
+      services.nsd.interfaces = lib.mkForce [];
+      services.nsd.zones."example.com.".data = ''
+        @ SOA ns.example.com noc.example.com 666 7200 3600 1209600 3600
+        ipv4 A 1.2.3.4
+        ipv6 AAAA abcd::eeff
+        deleg NS ns.example.com
+        ns A 192.168.0.1
+        ns AAAA dead:beef::1
+      '';
+      services.nsd.zones."deleg.example.com.".data = ''
+        @ SOA ns.example.com noc.example.com 666 7200 3600 1209600 3600
+        @ A 9.8.7.6
+        @ AAAA fedc::bbaa
+      '';
+    };
+  };
+
+  testScript = ''
+    startAll;
+
+    $clientv4->waitForUnit("network.target");
+    $clientv6->waitForUnit("network.target");
+    $server->waitForUnit("nsd.service");
+
+    sub assertHost {
+      my ($type, $rr, $query, $expected) = @_;
+      my $self = $type eq 4 ? $clientv4 : $clientv6;
+      my $out = $self->succeed("host -$type -t $rr $query");
+      $self->log("output: $out");
+      chomp $out;
+      die "DNS IPv$type query on $query gave '$out' instead of '$expected'"
+        if ($out !~ $expected);
+    }
+
+    foreach (4, 6) {
+      subtest "ipv$_", sub {
+        assertHost($_, "a", "example.com", qr/has no [^ ]+ record/);
+        assertHost($_, "aaaa", "example.com", qr/has no [^ ]+ record/);
+
+        assertHost($_, "soa", "example.com", qr/SOA.*?noc\.example\.com/);
+        assertHost($_, "a", "ipv4.example.com", qr/address 1.2.3.4$/);
+        assertHost($_, "aaaa", "ipv6.example.com", qr/address abcd::eeff$/);
+
+        assertHost($_, "a", "deleg.example.com", qr/address 9.8.7.6$/);
+        assertHost($_, "aaaa", "deleg.example.com", qr/address fedc::bbaa$/);
+      };
+    }
+  '';
+}
diff --git a/nixos/tests/phabricator.nix b/nixos/tests/phabricator.nix
index 53038474c91..0fe31f66502 100644
--- a/nixos/tests/phabricator.nix
+++ b/nixos/tests/phabricator.nix
@@ -32,9 +32,16 @@ import ./make-test.nix ({ pkgs, ... }: {
             }];
           };
 
+          phd = {
+            enable = true;
+          };
+
           mysql = {
             enable = true;
             package = pkgs.mysql;
+            extraOptions = ''
+              sql_mode=STRICT_ALL_TABLES
+            '';
           };
         };
 
diff --git a/pkgs/applications/audio/flac/default.nix b/pkgs/applications/audio/flac/default.nix
index fe4b43539d4..cb3ec1da97c 100644
--- a/pkgs/applications/audio/flac/default.nix
+++ b/pkgs/applications/audio/flac/default.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     homepage = http://xiph.org/flac/;
     description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
     platforms = platforms.all;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/applications/audio/fldigi/default.nix b/pkgs/applications/audio/fldigi/default.nix
index e78095a9c5d..e0250055ccd 100644
--- a/pkgs/applications/audio/fldigi/default.nix
+++ b/pkgs/applications/audio/fldigi/default.nix
@@ -2,13 +2,13 @@
   libsamplerate, pulseaudio, libXinerama, gettext, pkgconfig, alsaLib }:
 
 stdenv.mkDerivation rec {
-  version = "3.21.82";
+  version = "3.21.83";
   pname = "fldigi";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://www.w1hkj.com/downloads/${pname}/${name}.tar.gz";
-    sha256 = "1q2fc1zm9kfsjir4g6fh95vmjdq984iyxfcs6q4gjqy1znhqcyqs";
+    sha256 = "1fyg6dc6xnxb620rrhws60wj10lsgbwsmnhz8vc6ncspx8mx7019";
   };
 
   buildInputs = [ libXinerama gettext hamlib fltk13 libjpeg libpng portaudio
diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index 19b61ebc76d..de5ef055125 100644
--- a/pkgs/applications/audio/gpodder/default.nix
+++ b/pkgs/applications/audio/gpodder/default.nix
@@ -1,5 +1,6 @@
 { pkgs, stdenv, fetchurl, python, buildPythonPackage, pythonPackages, mygpoclient, intltool,
-  ipodSupport ? true, libgpod, gpodderHome ? "", gpodderDownloadDir ? "" }:
+  ipodSupport ? true, libgpod, gpodderHome ? "", gpodderDownloadDir ? "",
+  gnome3, hicolor_icon_theme }:
 
 with pkgs.lib;
 
@@ -7,14 +8,18 @@ let
   inherit (pythonPackages) coverage feedparser minimock sqlite3 dbus pygtk eyeD3;
 
 in buildPythonPackage rec {
-  name = "gpodder-3.7.0";
+  name = "gpodder-3.8.0";
 
   src = fetchurl {
     url = "http://gpodder.org/src/${name}.tar.gz";
-    sha256 = "fa90ef4bdd3fd9eef95404f7f43f70912ae3ab4f8d24078484a2f3e11b14dc47";
+    sha256 = "0731f08f4270c81872b841b55200ae80feb4502706397d0085079471fb9a8fe4";
   };
 
-  buildInputs = [ coverage feedparser minimock sqlite3 mygpoclient intltool ];
+  buildInputs = [
+    coverage feedparser minimock sqlite3 mygpoclient intltool
+    gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic
+    hicolor_icon_theme
+  ];
 
   propagatedBuildInputs = [ feedparser dbus mygpoclient sqlite3 pygtk eyeD3 ]
     ++ stdenv.lib.optional ipodSupport libgpod;
@@ -26,7 +31,30 @@ in buildPythonPackage rec {
   preFixup = ''
     wrapProgram $out/bin/gpodder \
       ${optionalString (gpodderHome != "") "--set GPODDER_HOME ${gpodderHome}"} \
-      ${optionalString (gpodderDownloadDir != "") "--set GPODDER_DOWNLOAD_DIR ${gpodderDownloadDir}"}
+      ${optionalString (gpodderDownloadDir != "") "--set GPODDER_DOWNLOAD_DIR ${gpodderDownloadDir}"} \
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  # The `wrapPythonPrograms` script in the postFixup phase breaks gpodder. The
+  # easiest way to fix this is to call wrapPythonPrograms and then to clean up
+  # the wrapped file.
+  postFixup = ''
+    wrapPythonPrograms
+
+    if test -e $out/nix-support/propagated-build-inputs; then
+        ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
+    fi
+
+    createBuildInputsPth build-inputs "$buildInputStrings"
+    for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
+      if test -e $out/nix-support/$inputsfile; then
+          createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
+      fi
+    done
+
+    sed -i "$out/bin/..gpodder-wrapped-wrapped" -e '{
+        /import sys; sys.argv/d
+    }'
   '';
 
   installPhase = "DESTDIR=/ PREFIX=$out make install";
diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index 5c6a1d6ac54..9fbf05a2feb 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -5,23 +5,23 @@
 
 stdenv.mkDerivation rec {
   name = "moc-${version}";
-  version = "2.5.0-beta2";
+  version = "2.5.0";
 
   src = fetchurl {
-    url = "http://ftp.daper.net/pub/soft/moc/unstable/moc-${version}.tar.bz2";
-    sha256 = "486d50584c3fb0067b8c03af54e44351633a7740b18dc3b7358322051467034c";
+    url = "http://ftp.daper.net/pub/soft/moc/stable/moc-${version}.tar.bz2";
+    sha256 = "14b0g9jn12jzxsf292g64dc6frlxv99kaagsasmc8xmg80iab7nj";
   };
 
-  configurePhase = "./configure prefix=$out";
-
   buildInputs = [
     ncurses pkgconfig alsaLib flac libmad speex ffmpeg libvorbis
     mpc libsndfile jack2 db libmodplug timidity libid3tag libtool
   ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "An ncurses console audio player designed to be powerful and easy to use";
     homepage = http://moc.daper.net/;
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/monkeys-audio/default.nix b/pkgs/applications/audio/monkeys-audio/default.nix
index 08aa7e017b2..d1c6ed6379a 100644
--- a/pkgs/applications/audio/monkeys-audio/default.nix
+++ b/pkgs/applications/audio/monkeys-audio/default.nix
@@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/applications/audio/mpc/default.nix b/pkgs/applications/audio/mpc/default.nix
index 54ae5476efd..9224e21185b 100755
--- a/pkgs/applications/audio/mpc/default.nix
+++ b/pkgs/applications/audio/mpc/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl, mpd_clientlib }:
 
 stdenv.mkDerivation rec {
-  version = "0.25";
+  version = "0.26";
   name = "mpc-${version}";
 
   src = fetchurl {
     url = "http://www.musicpd.org/download/mpc/0/${name}.tar.xz";
-    sha256 = "095gmik5vrnab5a1g92qiznn48w7499fr0gldp3s6xd26kvs9kvh";
+    sha256 = "0hp2qv6w2v902dhrmck5hg32s1ai6xiv9n61a3n6prfcfdqmywr0";
   };
-	
-  buildInputs = [ mpd_clientlib ]; 
-  
+
+  buildInputs = [ mpd_clientlib ];
+
   preConfigure =
     ''
       export LIBMPDCLIENT_LIBS=${mpd_clientlib}/lib/libmpdclient.so.${mpd_clientlib.majorVersion}.0.${mpd_clientlib.minorVersion}
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
new file mode 100644
index 00000000000..a0bb8789658
--- /dev/null
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, makeWrapper, cmake, qt4, pkgconfig, alsaLib, portaudio, jack2, libsndfile}:
+
+stdenv.mkDerivation rec {
+  name = "musescore-1.3";
+
+  src = fetchurl {
+    url = "http://ftp.osuosl.org/pub/musescore/releases/MuseScore-1.3/mscore-1.3.tar.bz2";
+    sha256 = "a0b60cc892ac0266c58fc6392be72c0a21c3aa7fd0b6e4f1dddad1c8b36be683";
+  };
+
+  buildInputs = [ makeWrapper cmake qt4 pkgconfig alsaLib portaudio jack2 libsndfile ];
+
+  configurePhase = ''
+    cd mscore;
+    mkdir build;
+    cd build;
+    cmake -DCMAKE_INSTALL_PREFIX=$out -DQT_PLUGINS_DIR=$out/lib/qt4/plugins -DCMAKE_BUILD_TYPE=Release ..'';
+
+  preBuild = ''make lrelease;'';
+
+  postInstall = ''
+    wrapProgram $out/bin/mscore --prefix QT_PLUGIN_PATH : $out/lib/qt4/plugins
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Qt-based score editor";
+    homepage = http://musescore.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.vandenoever ];
+    repositories.git = https://github.com/musescore/MuseScore;
+  };
+}
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index b32981ccb94..6073dc42c69 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -191,6 +191,23 @@ in {
           sha256 = "0d6jlj7hwz8blx6csrlyi2h2prql0wckbh7ihwjmgclwpcpj84g6";
         };
   };
+  
+   eclipse_cpp_44 = buildEclipse {
+    name = "eclipse-cpp-4.4";
+    description = "Eclipse IDE for C/C++ Developers";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/technology/epp/downloads/release/luna/R/eclipse-cpp-luna-R-linux-gtk-x86_64.tar.gz;
+          md5 = "b0a6ee33e8108a7ff4682ab911271b04";
+        }
+      else
+        fetchurl {
+          url = http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/technology/epp/downloads/release/luna/R/eclipse-cpp-luna-R-linux-gtk.tar.gz;
+          md5 = "5000f93cecf6ef9af112f0df6e8c87f3";
+        };
+  };
+
 
   eclipse_sdk_421 = buildEclipse {
     name = "eclipse-sdk-4.2.1";
diff --git a/pkgs/applications/editors/ed/default.nix b/pkgs/applications/editors/ed/default.nix
index 0c764fcf8f8..bccd7754efb 100644
--- a/pkgs/applications/editors/ed/default.nix
+++ b/pkgs/applications/editors/ed/default.nix
@@ -1,11 +1,14 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "ed-1.9";
+  name = "ed-1.10";
 
   src = fetchurl {
-    url = "mirror://gnu/ed/${name}.tar.gz";
-    sha256 = "122syihsx2hwzj75mkf5a9ssiky2xby748kp4cc00wzhmp7p5cym";
+    # gnu only provides *.lz tarball, which is unfriendly for stdenv bootstrapping
+    #url = "mirror://gnu/ed/${name}.tar.gz";
+    url = "http://pkgs.fedoraproject.org/repo/extras/ed/${name}.tar.bz2"
+      + "/38204d4c690a17a989e802ba01b45e98/${name}.tar.bz2";
+    sha256 = "16qvshl8470f3znjfrrci3lzllqkzc6disk5kygzsg9hh4f6wysq";
   };
 
   /* FIXME: Tests currently fail on Darwin:
diff --git a/pkgs/applications/editors/emacs-modes/dash/default.nix b/pkgs/applications/editors/emacs-modes/dash/default.nix
new file mode 100644
index 00000000000..aacc33c9b51
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/dash/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, emacs}:
+
+let version = "1.5.0";
+
+in stdenv.mkDerivation {
+  name = "emacs-dash-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/magnars/dash.el/archive/${version}.tar.gz";
+    sha256 = "0c6jknzy306vn22vqlabxkwxfnllrd33spymi74fkirbxaxvp8kp";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L . --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+}
diff --git a/pkgs/applications/editors/emacs-modes/ensime/default.nix b/pkgs/applications/editors/emacs-modes/ensime/default.nix
new file mode 100644
index 00000000000..d776103a662
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/ensime/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, emacs, unzip, autoComplete, dash, s, scalaMode2, sbtMode }:
+
+stdenv.mkDerivation {
+  name = "emacs-ensime-2014-09-04";
+
+  src = fetchurl {
+    url = "https://github.com/ensime/ensime-emacs/archive/d3820a3f362975f6e14b817988ec07bfef2b4dad.zip";
+    sha256 = "0gwr0r92z2hh2x8g0hpxaar2vvfk1b91cp6v04gaasw0fvl5i7g5";
+  };
+
+  buildInputs = [ emacs unzip ];
+  propagatedUserEnvPkgs = [ autoComplete dash s scalaMode2 sbtMode ];
+
+  buildPhase = ''
+    emacs -L . -L ${autoComplete}/share/emacs/site-lisp --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+}
diff --git a/pkgs/applications/editors/emacs-modes/rainbow-delimiters/default.nix b/pkgs/applications/editors/emacs-modes/rainbow-delimiters/default.nix
new file mode 100644
index 00000000000..5d92397d295
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/rainbow-delimiters/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, emacs}:
+
+let version = "1.3.8";
+
+in stdenv.mkDerivation {
+  name = "emacs-rainbow-delimiters-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/jlr/rainbow-delimiters/archive/${version}.tar.gz";
+    sha256 = "1xavygdnd9q80wqavxliks0w662mvn8v79qmg0kr494yfqc5hw6h";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L . --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+}
diff --git a/pkgs/applications/editors/emacs-modes/s/default.nix b/pkgs/applications/editors/emacs-modes/s/default.nix
new file mode 100644
index 00000000000..b818348939e
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/s/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, emacs}:
+
+let version = "1.9.0";
+
+in stdenv.mkDerivation {
+  name = "emacs-s-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/magnars/s.el/archive/${version}.tar.gz";
+    sha256 = "1gah2k577gvnmxlpw7zrz0jr571vghzhdv2hbgchlgah07czd091";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L . --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+}
diff --git a/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix b/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
index 13d3f4b00d1..75861b0a988 100644
--- a/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
+++ b/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
 
-  name = "scala-mode2-2014-06-05";
+  name = "scala-mode2-2014-07-01";
 
   src = fetchurl {
-    url = "https://github.com/hvesalai/scala-mode2/archive/af2dc30226c890ff7d49d727450f8006b90781df.zip";
-    sha256 = "1jj08li9lfg5291jzj170wa3cmyf3g2a0j80cy5307l0mdawp9vx";
+    url = "https://github.com/hvesalai/scala-mode2/archive/c154f1623f4696d26e1c88d19170e67bf6825837.zip";
+    sha256 = "0fyxdpwz55n4c87v4ijqlbv6w1rybg5qrgsc40f6bs6sd747scy5";
   };
 
   buildInputs = [ unzip emacs ];
diff --git a/pkgs/applications/editors/idea/default.nix b/pkgs/applications/editors/idea/default.nix
index caa9523af6f..c673ea672c7 100644
--- a/pkgs/applications/editors/idea/default.nix
+++ b/pkgs/applications/editors/idea/default.nix
@@ -42,7 +42,9 @@ let
 
       mkdir -p $out/bin
 
-      jdk=${jdk}/lib/openjdk
+      [ -d ${jdk}/lib/openjdk ] \
+        && jdk=${jdk}/lib/openjdk \
+        || jdk=${jdk}
 
       makeWrapper $out/idea-$build/bin/idea.sh $out/bin/idea \
         --prefix PATH : ${jdk}/bin:${coreutils}/bin:${gnugrep}/bin:${which}/bin:${git}/bin \
diff --git a/pkgs/applications/editors/scite/default.nix b/pkgs/applications/editors/scite/default.nix
index 234ee1f065e..b2ac66c1e08 100644
--- a/pkgs/applications/editors/scite/default.nix
+++ b/pkgs/applications/editors/scite/default.nix
@@ -30,6 +30,6 @@ in stdenv.mkDerivation {
     description = "SCIntilla based Text Editor";
     license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.linux;
-    maintainers = stdenv.lib.maintainers.rszibele;
+    maintainers = [ stdenv.lib.maintainers.rszibele ];
   };
 }
diff --git a/pkgs/applications/editors/sublime3/default.nix b/pkgs/applications/editors/sublime3/default.nix
index 3ef557cef4b..3bc815cc954 100644
--- a/pkgs/applications/editors/sublime3/default.nix
+++ b/pkgs/applications/editors/sublime3/default.nix
@@ -56,7 +56,7 @@ in stdenv.mkDerivation {
 
   meta = {
     description = "Sophisticated text editor for code, markup and prose";
-    maintainers = stdenv.lib.maintainers.wmertens;
+    maintainers = [ stdenv.lib.maintainers.wmertens ];
     license = stdenv.lib.licenses.unfree;
   };
 }
diff --git a/pkgs/applications/editors/vanubi/default.nix b/pkgs/applications/editors/vanubi/default.nix
new file mode 100644
index 00000000000..692a728b12e
--- /dev/null
+++ b/pkgs/applications/editors/vanubi/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, vala, which, autoconf, automake
+, libtool, glib, gtk3, gnome3, libwnck3, asciidoc, python3Packages }:
+
+stdenv.mkDerivation rec {
+  name = "vanubi-${version}";
+  version = "0.0.14";
+
+  src = fetchurl {
+    url = "https://github.com/vanubi/vanubi/archive/v${version}.tar.gz";
+    sha256 = "0cd45zm54j6xz1a31qllg2w7l77sncv7mrpfx9bjzdiqpmzsdypl";
+  };
+
+  buildInputs = [ pkgconfig vala which autoconf automake
+                  libtool glib gtk3 libwnck3 asciidoc
+                  gnome3.gtksourceview gnome3.vte python3Packages.pygments ];
+
+  configureScript = "./autogen.sh";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://vanubi.github.io/vanubi;
+    description = "Programming editor for GTK+ inspired by Emacs";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
+  };
+}
diff --git a/pkgs/applications/editors/zed/default.nix b/pkgs/applications/editors/zed/default.nix
index 585a3a58d5f..4673029ed00 100644
--- a/pkgs/applications/editors/zed/default.nix
+++ b/pkgs/applications/editors/zed/default.nix
@@ -1,19 +1,9 @@
-{ stdenv, buildEnv, fetchgit, xlibs, glib, gtk2, atk, pango, gdk_pixbuf,
-  cairo, freetype, fontconfig, nss, nspr, gnome, alsaLib, expat, dbus, udev,
-  makeWrapper, writeScript, fetchurl, zip, pkgs, node_webkit }:
+{ stdenv, buildEnv, fetchgit, makeWrapper, writeScript, fetchurl, zip, pkgs
+, node_webkit }:
 
 let
   name = "zed-${version}";
-  version = "0.12";
-
-  rpath_env = buildEnv {
-    name = "rpath_env";
-    paths = [ xlibs.libX11 xlibs.libXrender glib xlibs.libXtst gtk2 atk pango
-      gdk_pixbuf cairo freetype fontconfig xlibs.libXi xlibs.libXcomposite
-      nss nspr gnome.GConf xlibs.libXext xlibs.libXfixes alsaLib
-      xlibs.libXdamage expat dbus stdenv.gcc ];
-    pathsToLink = [ "/lib" "/lib64" ];
-  };
+  version = "0.13";
 
   # When upgrading node.nix / node packages:
   #   fetch package.json from Zed's repository
@@ -29,8 +19,10 @@ let
 
   node_env = buildEnv {
     name = "node_env";
-    paths = [ nodePackages.tar nodePackages.request ];
+    paths = [ nodePackages."body-parser" nodePackages.express
+      nodePackages.request nodePackages.tar nodePackages.ws ];
     pathsToLink = [ "/lib" ];
+    ignoreCollisions = true;
   };
 
   zed = stdenv.mkDerivation rec {
@@ -39,7 +31,7 @@ let
     src = fetchgit {
         url = "git://github.com/zedapp/zed";
         rev = "refs/tags/v${version}";
-        sha256 = "1l1adj4p916km626vxg1lv0bapzay4z5nq005pxsbjbcycrhds59";
+        sha256 = "023nq4y6dgh57xpsgawdn2zqvfyhjz1p00ldnsfsjajyy4nn6yb1";
       };
 
     buildInputs = [ makeWrapper zip ];
@@ -62,14 +54,7 @@ let
     '';
 
     postFixup = ''
-      patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/zed/zed-bin
-      patchelf --set-rpath "${rpath_env}/lib:${rpath_env}/lib64" $out/zed/zed-bin
-
-      mkdir -p $out/lib
-      ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0
-
       wrapProgram $out/zed/zed-bin \
-        --prefix LD_LIBRARY_PATH : $out/lib \
         --prefix NODE_PATH : ${node_env}/lib/node_modules
     '';
   };
diff --git a/pkgs/applications/editors/zed/node.nix b/pkgs/applications/editors/zed/node.nix
index b4a7cec4269..f2c08fde0cd 100644
--- a/pkgs/applications/editors/zed/node.nix
+++ b/pkgs/applications/editors/zed/node.nix
@@ -1,6 +1,27 @@
 { self, fetchurl, fetchgit ? null, lib }:
 
 {
+  by-spec."accepts"."~1.1.0" =
+    self.by-version."accepts"."1.1.0";
+  by-version."accepts"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-accepts-1.1.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/accepts/-/accepts-1.1.0.tgz";
+        name = "accepts-1.1.0.tgz";
+        sha1 = "43ba6d946374c80f91823eaec6bb43dc4955500b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."accepts" or []);
+    deps = [
+      self.by-version."mime-types"."2.0.1"
+      self.by-version."negotiator"."0.4.7"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "accepts" ];
+  };
   by-spec."asn1"."0.1.11" =
     self.by-version."asn1"."0.1.11";
   by-version."asn1"."0.1.11" = lib.makeOverridable self.buildNodePackage {
@@ -97,6 +118,34 @@
     ];
     passthru.names = [ "block-stream" ];
   };
+  by-spec."body-parser"."^1.6.3" =
+    self.by-version."body-parser"."1.8.1";
+  by-version."body-parser"."1.8.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-body-parser-1.8.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.8.1.tgz";
+        name = "body-parser-1.8.1.tgz";
+        sha1 = "f9f96d221c435c95d18aeaad2bcdea1371902aad";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."body-parser" or []);
+    deps = [
+      self.by-version."bytes"."1.0.0"
+      self.by-version."depd"."0.4.4"
+      self.by-version."iconv-lite"."0.4.4"
+      self.by-version."media-typer"."0.3.0"
+      self.by-version."on-finished"."2.1.0"
+      self.by-version."qs"."2.2.3"
+      self.by-version."raw-body"."1.3.0"
+      self.by-version."type-is"."1.5.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "body-parser" ];
+  };
+  "body-parser" = self.by-version."body-parser"."1.8.1";
   by-spec."boom"."0.4.x" =
     self.by-version."boom"."0.4.2";
   by-version."boom"."0.4.2" = lib.makeOverridable self.buildNodePackage {
@@ -117,6 +166,46 @@
     ];
     passthru.names = [ "boom" ];
   };
+  by-spec."buffer-crc32"."0.2.3" =
+    self.by-version."buffer-crc32"."0.2.3";
+  by-version."buffer-crc32"."0.2.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-buffer-crc32-0.2.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz";
+        name = "buffer-crc32-0.2.3.tgz";
+        sha1 = "bb54519e95d107cbd2400e76d0cab1467336d921";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."buffer-crc32" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "buffer-crc32" ];
+  };
+  by-spec."bytes"."1" =
+    self.by-version."bytes"."1.0.0";
+  by-version."bytes"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-bytes-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz";
+        name = "bytes-1.0.0.tgz";
+        sha1 = "3569ede8ba34315fab99c3e92cb04c7220de1fa8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bytes" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bytes" ];
+  };
+  by-spec."bytes"."1.0.0" =
+    self.by-version."bytes"."1.0.0";
   by-spec."combined-stream"."~0.0.4" =
     self.by-version."combined-stream"."0.0.5";
   by-version."combined-stream"."0.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -137,6 +226,63 @@
     ];
     passthru.names = [ "combined-stream" ];
   };
+  by-spec."commander"."~2.1.0" =
+    self.by-version."commander"."2.1.0";
+  by-version."commander"."2.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-commander-2.1.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/commander/-/commander-2.1.0.tgz";
+        name = "commander-2.1.0.tgz";
+        sha1 = "d121bbae860d9992a3d517ba96f56588e47c6781";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."commander" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "commander" ];
+  };
+  by-spec."cookie"."0.1.2" =
+    self.by-version."cookie"."0.1.2";
+  by-version."cookie"."0.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-cookie-0.1.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz";
+        name = "cookie-0.1.2.tgz";
+        sha1 = "72fec3d24e48a3432073d90c12642005061004b1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cookie" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cookie" ];
+  };
+  by-spec."cookie-signature"."1.0.5" =
+    self.by-version."cookie-signature"."1.0.5";
+  by-version."cookie-signature"."1.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-cookie-signature-1.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz";
+        name = "cookie-signature-1.0.5.tgz";
+        sha1 = "a122e3f1503eca0f5355795b0711bb2368d450f9";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cookie-signature" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cookie-signature" ];
+  };
   by-spec."cryptiles"."0.2.x" =
     self.by-version."cryptiles"."0.2.2";
   by-version."cryptiles"."0.2.2" = lib.makeOverridable self.buildNodePackage {
@@ -176,6 +322,26 @@
     ];
     passthru.names = [ "ctype" ];
   };
+  by-spec."debug"."~2.0.0" =
+    self.by-version."debug"."2.0.0";
+  by-version."debug"."2.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-debug-2.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/debug/-/debug-2.0.0.tgz";
+        name = "debug-2.0.0.tgz";
+        sha1 = "89bd9df6732b51256bc6705342bba02ed12131ef";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."debug" or []);
+    deps = [
+      self.by-version."ms"."0.6.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "debug" ];
+  };
   by-spec."delayed-stream"."0.0.5" =
     self.by-version."delayed-stream"."0.0.5";
   by-version."delayed-stream"."0.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -195,6 +361,167 @@
     ];
     passthru.names = [ "delayed-stream" ];
   };
+  by-spec."depd"."0.4.4" =
+    self.by-version."depd"."0.4.4";
+  by-version."depd"."0.4.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-depd-0.4.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/depd/-/depd-0.4.4.tgz";
+        name = "depd-0.4.4.tgz";
+        sha1 = "07091fae75f97828d89b4a02a2d4778f0e7c0662";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."depd" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "depd" ];
+  };
+  by-spec."destroy"."1.0.3" =
+    self.by-version."destroy"."1.0.3";
+  by-version."destroy"."1.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-destroy-1.0.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz";
+        name = "destroy-1.0.3.tgz";
+        sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."destroy" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "destroy" ];
+  };
+  by-spec."ee-first"."1.0.5" =
+    self.by-version."ee-first"."1.0.5";
+  by-version."ee-first"."1.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-ee-first-1.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz";
+        name = "ee-first-1.0.5.tgz";
+        sha1 = "8c9b212898d8cd9f1a9436650ce7be202c9e9ff0";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ee-first" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ee-first" ];
+  };
+  by-spec."escape-html"."1.0.1" =
+    self.by-version."escape-html"."1.0.1";
+  by-version."escape-html"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-escape-html-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz";
+        name = "escape-html-1.0.1.tgz";
+        sha1 = "181a286ead397a39a92857cfb1d43052e356bff0";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."escape-html" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "escape-html" ];
+  };
+  by-spec."etag"."~1.3.0" =
+    self.by-version."etag"."1.3.0";
+  by-version."etag"."1.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-etag-1.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/etag/-/etag-1.3.0.tgz";
+        name = "etag-1.3.0.tgz";
+        sha1 = "c837debfbfe0baf7eb8e2f0bbb3d1d9cc3229697";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."etag" or []);
+    deps = [
+      self.by-version."buffer-crc32"."0.2.3"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "etag" ];
+  };
+  by-spec."express"."^4.8.3" =
+    self.by-version."express"."4.9.0";
+  by-version."express"."4.9.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-express-4.9.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/express/-/express-4.9.0.tgz";
+        name = "express-4.9.0.tgz";
+        sha1 = "9b2ea4ebce57c7ac710604c74f6c303ab344a7f3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."express" or []);
+    deps = [
+      self.by-version."accepts"."1.1.0"
+      self.by-version."buffer-crc32"."0.2.3"
+      self.by-version."cookie-signature"."1.0.5"
+      self.by-version."debug"."2.0.0"
+      self.by-version."depd"."0.4.4"
+      self.by-version."escape-html"."1.0.1"
+      self.by-version."etag"."1.3.0"
+      self.by-version."finalhandler"."0.2.0"
+      self.by-version."fresh"."0.2.4"
+      self.by-version."media-typer"."0.3.0"
+      self.by-version."methods"."1.1.0"
+      self.by-version."on-finished"."2.1.0"
+      self.by-version."parseurl"."1.3.0"
+      self.by-version."path-to-regexp"."0.1.3"
+      self.by-version."proxy-addr"."1.0.1"
+      self.by-version."qs"."2.2.3"
+      self.by-version."range-parser"."1.0.2"
+      self.by-version."send"."0.9.1"
+      self.by-version."serve-static"."1.6.1"
+      self.by-version."type-is"."1.5.1"
+      self.by-version."vary"."1.0.0"
+      self.by-version."cookie"."0.1.2"
+      self.by-version."merge-descriptors"."0.0.2"
+      self.by-version."utils-merge"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "express" ];
+  };
+  "express" = self.by-version."express"."4.9.0";
+  by-spec."finalhandler"."0.2.0" =
+    self.by-version."finalhandler"."0.2.0";
+  by-version."finalhandler"."0.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-finalhandler-0.2.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/finalhandler/-/finalhandler-0.2.0.tgz";
+        name = "finalhandler-0.2.0.tgz";
+        sha1 = "794082424b17f6a4b2a0eda39f9db6948ee4be8d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."finalhandler" or []);
+    deps = [
+      self.by-version."debug"."2.0.0"
+      self.by-version."escape-html"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "finalhandler" ];
+  };
   by-spec."forever-agent"."~0.5.0" =
     self.by-version."forever-agent"."0.5.2";
   by-version."forever-agent"."0.5.2" = lib.makeOverridable self.buildNodePackage {
@@ -236,15 +563,34 @@
     ];
     passthru.names = [ "form-data" ];
   };
+  by-spec."fresh"."0.2.4" =
+    self.by-version."fresh"."0.2.4";
+  by-version."fresh"."0.2.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-fresh-0.2.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz";
+        name = "fresh-0.2.4.tgz";
+        sha1 = "3582499206c9723714190edd74b4604feb4a614c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."fresh" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "fresh" ];
+  };
   by-spec."fstream"."~0.1.28" =
-    self.by-version."fstream"."0.1.29";
-  by-version."fstream"."0.1.29" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fstream-0.1.29";
+    self.by-version."fstream"."0.1.31";
+  by-version."fstream"."0.1.31" = lib.makeOverridable self.buildNodePackage {
+    name = "node-fstream-0.1.31";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/fstream/-/fstream-0.1.29.tgz";
-        name = "fstream-0.1.29.tgz";
-        sha1 = "34d04023ebc91a9df47bd31ab97e4704b4db413f";
+        url = "http://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz";
+        name = "fstream-0.1.31.tgz";
+        sha1 = "7337f058fbbbbefa8c9f561a28cab0849202c988";
       })
     ];
     buildInputs =
@@ -252,7 +598,7 @@
     deps = [
       self.by-version."graceful-fs"."3.0.2"
       self.by-version."inherits"."2.0.1"
-      self.by-version."mkdirp"."0.3.5"
+      self.by-version."mkdirp"."0.5.0"
       self.by-version."rimraf"."2.2.8"
     ];
     peerDependencies = [
@@ -342,6 +688,25 @@
     ];
     passthru.names = [ "http-signature" ];
   };
+  by-spec."iconv-lite"."0.4.4" =
+    self.by-version."iconv-lite"."0.4.4";
+  by-version."iconv-lite"."0.4.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-iconv-lite-0.4.4";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz";
+        name = "iconv-lite-0.4.4.tgz";
+        sha1 = "e95f2e41db0735fc21652f7827a5ee32e63c83a8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."iconv-lite" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "iconv-lite" ];
+  };
   by-spec."inherits"."2" =
     self.by-version."inherits"."2.0.1";
   by-version."inherits"."2.0.1" = lib.makeOverridable self.buildNodePackage {
@@ -363,6 +728,25 @@
   };
   by-spec."inherits"."~2.0.0" =
     self.by-version."inherits"."2.0.1";
+  by-spec."ipaddr.js"."0.1.2" =
+    self.by-version."ipaddr.js"."0.1.2";
+  by-version."ipaddr.js"."0.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-ipaddr.js-0.1.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.2.tgz";
+        name = "ipaddr.js-0.1.2.tgz";
+        sha1 = "6a1fd3d854f5002965c34d7bbcd9b4a8d4b0467e";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ipaddr.js" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ipaddr.js" ];
+  };
   by-spec."json-stringify-safe"."~5.0.0" =
     self.by-version."json-stringify-safe"."5.0.0";
   by-version."json-stringify-safe"."5.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -382,7 +766,64 @@
     ];
     passthru.names = [ "json-stringify-safe" ];
   };
-  by-spec."mime"."~1.2.11" =
+  by-spec."media-typer"."0.3.0" =
+    self.by-version."media-typer"."0.3.0";
+  by-version."media-typer"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-media-typer-0.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+        name = "media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."media-typer" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "media-typer" ];
+  };
+  by-spec."merge-descriptors"."0.0.2" =
+    self.by-version."merge-descriptors"."0.0.2";
+  by-version."merge-descriptors"."0.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-merge-descriptors-0.0.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz";
+        name = "merge-descriptors-0.0.2.tgz";
+        sha1 = "c36a52a781437513c57275f39dd9d317514ac8c7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."merge-descriptors" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "merge-descriptors" ];
+  };
+  by-spec."methods"."1.1.0" =
+    self.by-version."methods"."1.1.0";
+  by-version."methods"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-methods-1.1.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/methods/-/methods-1.1.0.tgz";
+        name = "methods-1.1.0.tgz";
+        sha1 = "5dca4ee12df52ff3b056145986a8f01cbc86436f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."methods" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "methods" ];
+  };
+  by-spec."mime"."1.2.11" =
     self.by-version."mime"."1.2.11";
   by-version."mime"."1.2.11" = lib.makeOverridable self.buildNodePackage {
     name = "node-mime-1.2.11";
@@ -401,27 +842,147 @@
     ];
     passthru.names = [ "mime" ];
   };
+  by-spec."mime"."~1.2.11" =
+    self.by-version."mime"."1.2.11";
   by-spec."mime"."~1.2.9" =
     self.by-version."mime"."1.2.11";
-  by-spec."mkdirp"."0.3" =
-    self.by-version."mkdirp"."0.3.5";
-  by-version."mkdirp"."0.3.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mkdirp-0.3.5";
+  by-spec."mime-db"."~1.0.1" =
+    self.by-version."mime-db"."1.0.1";
+  by-version."mime-db"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mime-db-1.0.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
-        name = "mkdirp-0.3.5.tgz";
-        sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
+        url = "http://registry.npmjs.org/mime-db/-/mime-db-1.0.1.tgz";
+        name = "mime-db-1.0.1.tgz";
+        sha1 = "35d99b0965967253bb30633a7d07a8de9975a952";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mime-db" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mime-db" ];
+  };
+  by-spec."mime-types"."~2.0.0" =
+    self.by-version."mime-types"."2.0.1";
+  by-version."mime-types"."2.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mime-types-2.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mime-types/-/mime-types-2.0.1.tgz";
+        name = "mime-types-2.0.1.tgz";
+        sha1 = "7f5b4712592e7dd46ca733fd1c5f5d71356de615";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mime-types" or []);
+    deps = [
+      self.by-version."mime-db"."1.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mime-types" ];
+  };
+  by-spec."mime-types"."~2.0.1" =
+    self.by-version."mime-types"."2.0.1";
+  by-spec."minimist"."0.0.8" =
+    self.by-version."minimist"."0.0.8";
+  by-version."minimist"."0.0.8" = lib.makeOverridable self.buildNodePackage {
+    name = "node-minimist-0.0.8";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+        name = "minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimist" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimist" ];
+  };
+  by-spec."mkdirp"."0.5" =
+    self.by-version."mkdirp"."0.5.0";
+  by-version."mkdirp"."0.5.0" = lib.makeOverridable self.buildNodePackage {
+    name = "mkdirp-0.5.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz";
+        name = "mkdirp-0.5.0.tgz";
+        sha1 = "1d73076a6df986cd9344e15e71fcc05a4c9abf12";
       })
     ];
     buildInputs =
       (self.nativeDeps."mkdirp" or []);
     deps = [
+      self.by-version."minimist"."0.0.8"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "mkdirp" ];
   };
+  by-spec."ms"."0.6.2" =
+    self.by-version."ms"."0.6.2";
+  by-version."ms"."0.6.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-ms-0.6.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz";
+        name = "ms-0.6.2.tgz";
+        sha1 = "d89c2124c6fdc1353d65a8b77bf1aac4b193708c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ms" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ms" ];
+  };
+  by-spec."nan"."~1.0.0" =
+    self.by-version."nan"."1.0.0";
+  by-version."nan"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-nan-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/nan/-/nan-1.0.0.tgz";
+        name = "nan-1.0.0.tgz";
+        sha1 = "ae24f8850818d662fcab5acf7f3b95bfaa2ccf38";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."nan" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "nan" ];
+  };
+  by-spec."negotiator"."0.4.7" =
+    self.by-version."negotiator"."0.4.7";
+  by-version."negotiator"."0.4.7" = lib.makeOverridable self.buildNodePackage {
+    name = "node-negotiator-0.4.7";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz";
+        name = "negotiator-0.4.7.tgz";
+        sha1 = "a4160f7177ec806738631d0d3052325da42abdc8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."negotiator" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "negotiator" ];
+  };
   by-spec."node-uuid"."~1.4.0" =
     self.by-version."node-uuid"."1.4.1";
   by-version."node-uuid"."1.4.1" = lib.makeOverridable self.buildNodePackage {
@@ -460,15 +1021,114 @@
     ];
     passthru.names = [ "oauth-sign" ];
   };
+  by-spec."on-finished"."2.1.0" =
+    self.by-version."on-finished"."2.1.0";
+  by-version."on-finished"."2.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-on-finished-2.1.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz";
+        name = "on-finished-2.1.0.tgz";
+        sha1 = "0c539f09291e8ffadde0c8a25850fb2cedc7022d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."on-finished" or []);
+    deps = [
+      self.by-version."ee-first"."1.0.5"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "on-finished" ];
+  };
+  by-spec."on-finished"."~2.1.0" =
+    self.by-version."on-finished"."2.1.0";
+  by-spec."options".">=0.0.5" =
+    self.by-version."options"."0.0.5";
+  by-version."options"."0.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-options-0.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/options/-/options-0.0.5.tgz";
+        name = "options-0.0.5.tgz";
+        sha1 = "9a3806378f316536d79038038ba90ccb724816c3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."options" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "options" ];
+  };
+  by-spec."parseurl"."~1.3.0" =
+    self.by-version."parseurl"."1.3.0";
+  by-version."parseurl"."1.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-parseurl-1.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz";
+        name = "parseurl-1.3.0.tgz";
+        sha1 = "b58046db4223e145afa76009e61bac87cc2281b3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."parseurl" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "parseurl" ];
+  };
+  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" = lib.makeOverridable self.buildNodePackage {
+    name = "node-path-to-regexp-0.1.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz";
+        name = "path-to-regexp-0.1.3.tgz";
+        sha1 = "21b9ab82274279de25b156ea08fd12ca51b8aecb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."path-to-regexp" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "path-to-regexp" ];
+  };
+  by-spec."proxy-addr"."1.0.1" =
+    self.by-version."proxy-addr"."1.0.1";
+  by-version."proxy-addr"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-proxy-addr-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.1.tgz";
+        name = "proxy-addr-1.0.1.tgz";
+        sha1 = "c7c566d5eb4e3fad67eeb9c77c5558ccc39b88a8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."proxy-addr" or []);
+    deps = [
+      self.by-version."ipaddr.js"."0.1.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "proxy-addr" ];
+  };
   by-spec."punycode".">=0.2.0" =
-    self.by-version."punycode"."1.3.0";
-  by-version."punycode"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-punycode-1.3.0";
+    self.by-version."punycode"."1.3.1";
+  by-version."punycode"."1.3.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-punycode-1.3.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/punycode/-/punycode-1.3.0.tgz";
-        name = "punycode-1.3.0.tgz";
-        sha1 = "7f5009ef539b9444be5c7a19abd2c3ca49e1731c";
+        url = "http://registry.npmjs.org/punycode/-/punycode-1.3.1.tgz";
+        name = "punycode-1.3.1.tgz";
+        sha1 = "710afe5123c20a1530b712e3e682b9118fe8058e";
       })
     ];
     buildInputs =
@@ -479,6 +1139,25 @@
     ];
     passthru.names = [ "punycode" ];
   };
+  by-spec."qs"."2.2.3" =
+    self.by-version."qs"."2.2.3";
+  by-version."qs"."2.2.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-qs-2.2.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/qs/-/qs-2.2.3.tgz";
+        name = "qs-2.2.3.tgz";
+        sha1 = "6139c1f47960eff5655e56aab0ef9f6dd16d4eeb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."qs" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "qs" ];
+  };
   by-spec."qs"."~0.6.0" =
     self.by-version."qs"."0.6.6";
   by-version."qs"."0.6.6" = lib.makeOverridable self.buildNodePackage {
@@ -498,6 +1177,48 @@
     ];
     passthru.names = [ "qs" ];
   };
+  by-spec."range-parser"."~1.0.0" =
+    self.by-version."range-parser"."1.0.2";
+  by-version."range-parser"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-range-parser-1.0.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/range-parser/-/range-parser-1.0.2.tgz";
+        name = "range-parser-1.0.2.tgz";
+        sha1 = "06a12a42e5131ba8e457cd892044867f2344e549";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."range-parser" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "range-parser" ];
+  };
+  by-spec."range-parser"."~1.0.2" =
+    self.by-version."range-parser"."1.0.2";
+  by-spec."raw-body"."1.3.0" =
+    self.by-version."raw-body"."1.3.0";
+  by-version."raw-body"."1.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-raw-body-1.3.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz";
+        name = "raw-body-1.3.0.tgz";
+        sha1 = "978230a156a5548f42eef14de22d0f4f610083d1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."raw-body" or []);
+    deps = [
+      self.by-version."bytes"."1.0.0"
+      self.by-version."iconv-lite"."0.4.4"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "raw-body" ];
+  };
   by-spec."request"."~2.34.0" =
     self.by-version."request"."2.34.0";
   by-version."request"."2.34.0" = lib.makeOverridable self.buildNodePackage {
@@ -549,6 +1270,58 @@
     ];
     passthru.names = [ "rimraf" ];
   };
+  by-spec."send"."0.9.1" =
+    self.by-version."send"."0.9.1";
+  by-version."send"."0.9.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-send-0.9.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/send/-/send-0.9.1.tgz";
+        name = "send-0.9.1.tgz";
+        sha1 = "d93689f7c9ce36bd32f8ee572bb60bda032edc23";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."send" or []);
+    deps = [
+      self.by-version."debug"."2.0.0"
+      self.by-version."depd"."0.4.4"
+      self.by-version."destroy"."1.0.3"
+      self.by-version."escape-html"."1.0.1"
+      self.by-version."etag"."1.3.0"
+      self.by-version."fresh"."0.2.4"
+      self.by-version."mime"."1.2.11"
+      self.by-version."ms"."0.6.2"
+      self.by-version."on-finished"."2.1.0"
+      self.by-version."range-parser"."1.0.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "send" ];
+  };
+  by-spec."serve-static"."~1.6.1" =
+    self.by-version."serve-static"."1.6.1";
+  by-version."serve-static"."1.6.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-serve-static-1.6.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.6.1.tgz";
+        name = "serve-static-1.6.1.tgz";
+        sha1 = "2f257563afbe931d28cee4aa3dfeddc975a87193";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."serve-static" or []);
+    deps = [
+      self.by-version."escape-html"."1.0.1"
+      self.by-version."parseurl"."1.3.0"
+      self.by-version."send"."0.9.1"
+      self.by-version."utils-merge"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "serve-static" ];
+  };
   by-spec."sntp"."0.2.x" =
     self.by-version."sntp"."0.2.4";
   by-version."sntp"."0.2.4" = lib.makeOverridable self.buildNodePackage {
@@ -584,7 +1357,7 @@
       (self.nativeDeps."tar" or []);
     deps = [
       self.by-version."block-stream"."0.0.7"
-      self.by-version."fstream"."0.1.29"
+      self.by-version."fstream"."0.1.31"
       self.by-version."inherits"."2.0.1"
     ];
     peerDependencies = [
@@ -592,6 +1365,25 @@
     passthru.names = [ "tar" ];
   };
   "tar" = self.by-version."tar"."0.1.20";
+  by-spec."tinycolor"."0.x" =
+    self.by-version."tinycolor"."0.0.1";
+  by-version."tinycolor"."0.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-tinycolor-0.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz";
+        name = "tinycolor-0.0.1.tgz";
+        sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."tinycolor" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "tinycolor" ];
+  };
   by-spec."tough-cookie".">=0.12.0" =
     self.by-version."tough-cookie"."0.12.1";
   by-version."tough-cookie"."0.12.1" = lib.makeOverridable self.buildNodePackage {
@@ -606,7 +1398,7 @@
     buildInputs =
       (self.nativeDeps."tough-cookie" or []);
     deps = [
-      self.by-version."punycode"."1.3.0"
+      self.by-version."punycode"."1.3.1"
     ];
     peerDependencies = [
     ];
@@ -631,4 +1423,87 @@
     ];
     passthru.names = [ "tunnel-agent" ];
   };
+  by-spec."type-is"."~1.5.1" =
+    self.by-version."type-is"."1.5.1";
+  by-version."type-is"."1.5.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-type-is-1.5.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/type-is/-/type-is-1.5.1.tgz";
+        name = "type-is-1.5.1.tgz";
+        sha1 = "5c1e62d874f79199fb16b34d16972dba376ccbed";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."type-is" or []);
+    deps = [
+      self.by-version."media-typer"."0.3.0"
+      self.by-version."mime-types"."2.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "type-is" ];
+  };
+  by-spec."utils-merge"."1.0.0" =
+    self.by-version."utils-merge"."1.0.0";
+  by-version."utils-merge"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-utils-merge-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz";
+        name = "utils-merge-1.0.0.tgz";
+        sha1 = "0294fb922bb9375153541c4f7096231f287c8af8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."utils-merge" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "utils-merge" ];
+  };
+  by-spec."vary"."~1.0.0" =
+    self.by-version."vary"."1.0.0";
+  by-version."vary"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-vary-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/vary/-/vary-1.0.0.tgz";
+        name = "vary-1.0.0.tgz";
+        sha1 = "c5e76cec20d3820d8f2a96e7bee38731c34da1e7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."vary" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "vary" ];
+  };
+  by-spec."ws"."~0.4.32" =
+    self.by-version."ws"."0.4.32";
+  by-version."ws"."0.4.32" = lib.makeOverridable self.buildNodePackage {
+    name = "ws-0.4.32";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ws/-/ws-0.4.32.tgz";
+        name = "ws-0.4.32.tgz";
+        sha1 = "787a6154414f3c99ed83c5772153b20feb0cec32";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ws" or []);
+    deps = [
+      self.by-version."commander"."2.1.0"
+      self.by-version."nan"."1.0.0"
+      self.by-version."tinycolor"."0.0.1"
+      self.by-version."options"."0.0.5"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ws" ];
+  };
+  "ws" = self.by-version."ws"."0.4.32";
 }
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index 32d30cd4745..48839246600 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -1,14 +1,14 @@
-{ fetchurl, stdenv, ncurses, boehmgc, perl, help2man }:
+{ fetchurl, stdenv, pkgconfig, ncurses, boehmgc, perl, help2man }:
 
 stdenv.mkDerivation rec {
-  name = "zile-2.4.9";
+  name = "zile-2.4.11";
 
   src = fetchurl {
     url = "mirror://gnu/zile/${name}.tar.gz";
-    sha256 = "0j801c28ypm924rw3lqyb6khxyslg6ycrv16wmmwcam0mk3mj6f7";
+    sha256 = "1k593y1xzvlj52q0gyhcx2lllws4sg84b8r9pcginjb1vjypplhz";
   };
 
-  buildInputs = [ ncurses boehmgc ];
+  buildInputs = [ pkgconfig ncurses boehmgc ];
   nativeBuildInputs = [ help2man perl ];
 
   # `help2man' wants to run Zile, which fails when cross-compiling.
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   # XXX: Work around cross-compilation-unfriendly `gl_FUNC_FSTATAT' macro.
   preConfigure = "export gl_cv_func_fstatat_zero_flag=yes";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Lightweight Emacs clone";
 
     longDescription = ''
@@ -45,8 +45,10 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnu.org/software/zile/;
 
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
 
-    maintainers = [ ];
+    maintainers = with maintainers; [ pSub ];
+
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/kgraphviewer/default.nix b/pkgs/applications/graphics/kgraphviewer/default.nix
new file mode 100644
index 00000000000..21caf8f8002
--- /dev/null
+++ b/pkgs/applications/graphics/kgraphviewer/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, kdelibs, automoc4, boost, pkgconfig, graphviz, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "kgraphviewer-${version}";
+  version = "2.1.90";
+
+  src = fetchurl {
+    url = "mirror://kde/unstable/kgraphviewer/${version}/src/${name}.tar.xz";
+    sha256 = "13zhjs57xavzrj4nrlqs35n35ihvzij7hgbszf5fhlp2a4d4rrqs";
+  };
+
+  buildInputs = [ kdelibs automoc4 boost pkgconfig graphviz gettext ];
+
+  meta = with stdenv.lib; {
+    description = "A Graphviz dot graph viewer for KDE";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
+  };
+}
+
diff --git a/pkgs/applications/graphics/panotools/default.nix b/pkgs/applications/graphics/panotools/default.nix
index 8e5204ac638..9ca90d2f5df 100644
--- a/pkgs/applications/graphics/panotools/default.nix
+++ b/pkgs/applications/graphics/panotools/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libjpeg, libpng, libtiff, perl }:
 
 stdenv.mkDerivation rec {
-  name = "libpano13-2.9.18";
+  name = "libpano13-2.9.19";
 
   src = fetchurl {
     url = "mirror://sourceforge/panotools/${name}.tar.gz";
-    sha256 = "0wm1r9waa47n482yrl3hnphicdahr581rahgbklk0d2wy51lwpfy";
+    sha256 = "1a4m3plmfcrrplqs9zfzhc5apibn10m5sajpizm1sd3q74w5fwq3";
   };
 
   buildInputs = [ perl libjpeg libpng libtiff ];
diff --git a/pkgs/applications/graphics/photivo/default.nix b/pkgs/applications/graphics/photivo/default.nix
index 156966ac46c..12816ba96af 100644
--- a/pkgs/applications/graphics/photivo/default.nix
+++ b/pkgs/applications/graphics/photivo/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
       platforms = platforms.linux;
-      maintainers = maintainers.mornfall;
+      maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/applications/graphics/processing/default.nix b/pkgs/applications/graphics/processing/default.nix
index 7d0595134e9..ecce0e260bb 100644
--- a/pkgs/applications/graphics/processing/default.nix
+++ b/pkgs/applications/graphics/processing/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, ant, jre, makeWrapper, libXxf86vm }:
+{ fetchurl, stdenv, ant, jre, makeWrapper, libXxf86vm, which }:
 
 stdenv.mkDerivation rec {
   name = "processing-${version}";
@@ -12,20 +12,21 @@ stdenv.mkDerivation rec {
   # Stop it trying to download its own version of java
   patches = [ ./use-nixpkgs-jre.patch ];
 
-  buildInputs = [ ant jre makeWrapper libXxf86vm ];
+  buildInputs = [ ant jre makeWrapper libXxf86vm which ];
 
   buildPhase = "cd build && ant build";
 
   installPhase = ''
+    mkdir -p $out/${name}
     mkdir -p $out/bin
-    cp -r linux/work/* $out/
-    sed -e "s#APPDIR=\`dirname \"\$APPDIR\"\`#APPDIR=$out#" -i $out/processing
-    sed -e "s#APPDIR=\`dirname \"\$APPDIR\"\`#APPDIR=$out#" -i $out/processing-java
-    mv $out/processing{,-java} $out/bin/
-    wrapProgram $out/bin/processing --prefix PATH : ${jre}/bin --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib
-    wrapProgram $out/bin/processing-java --prefix PATH : ${jre}/bin --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib
-    mkdir $out/java
-    ln -s ${jre}/bin $out/java/
+   cp -r linux/work/* $out/${name}/
+   makeWrapper $out/${name}/processing $out/bin/processing \
+     --prefix PATH : "${jre}/bin:${which}/bin" \
+     --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib
+   makeWrapper $out/${name}/processing-java $out/bin/processing-java \
+     --prefix PATH : "${jre}/bin:${which}/bin" \
+     --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib
+   ln -s ${jre} $out/${name}/java
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/arbtt/default.nix b/pkgs/applications/misc/arbtt/default.nix
index 27f6c122374..cd3df455c38 100644
--- a/pkgs/applications/misc/arbtt/default.nix
+++ b/pkgs/applications/misc/arbtt/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "arbtt";
-  version = "0.8.1.2";
-  sha256 = "074vb84vkygxamvq7xnwlpgbch6qkbhyzbakc343230p1ryxf62q";
+  version = "0.8.1.4";
+  sha256 = "15ydb425nvqfzajx09q713wy5xa7awbzfjlsidk17vf7qbhfjn7z";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/applications/misc/bitcoin/altcoins.nix b/pkgs/applications/misc/bitcoin/altcoins.nix
index 796cedc1ee2..2643094e2f1 100644
--- a/pkgs/applications/misc/bitcoin/altcoins.nix
+++ b/pkgs/applications/misc/bitcoin/altcoins.nix
@@ -80,51 +80,4 @@ in rec {
     };
   };
 
-  dogecoin = (buildAltcoin rec {
-    walletName = "dogecoin";
-    version = "1.8.0";
-
-    src = fetchurl {
-      url = "https://github.com/dogecoin/dogecoin/archive/v${version}.tar.gz";
-      sha256 = "8a33958c04213cd621aa3c86910477813af22512f03b47c98995d20d31f3f935";
-    };
-
-    extraBuildInputs = [ autogen autoconf automake pkgconfig db utillinux protobuf ];
-
-    meta = {
-      description = "Wow, such coin, much shiba, very rich";
-      longDescription = "wow";
-      homepage = http://www.dogecoin.com/;
-      maintainers = [ maintainers.offline maintainers.edwtjo ];
-    };
-  }).override rec {
-    patchPhase = ''
-      sed -i \
-        -e 's,BDB_CPPFLAGS=$,BDB_CPPFLAGS="-I${db}/include",g' \
-        -e 's,BDB_LIBS=$,BDB_LIBS="-L${db}/lib",g' \
-        -e 's,bdbdirlist=$,bdbdirlist="${db}/include",g' \
-        src/m4/dogecoin_find_bdb51.m4
-    '';
-    dogeConfigure = ''
-      ./autogen.sh \
-      && ./configure --prefix=$out \
-                     --with-incompatible-bdb \
-                     --with-boost-libdir=${boost}/lib \
-    '';
-    dogeInstall = ''
-      install -D "src/dogecoin-cli" "$out/bin/dogecoin-cli"
-      install -D "src/dogecoind" "$out/bin/dogecoind"
-    '';
-    configurePhase = dogeConfigure + "--with-gui";
-    installPhase = dogeInstall + "install -D src/qt/dogecoin-qt $out/bin/dogecoin-qt";
-  };
-
-  dogecoind = dogecoin.override rec {
-    gui = false;
-    makefile = "Makefile";
-    preBuild = "";
-    configurePhase = dogecoin.dogeConfigure + "--without-gui";
-    installPhase = dogecoin.dogeInstall;
-  };
-
 }
diff --git a/pkgs/applications/misc/bitcoin/dogecoin.nix b/pkgs/applications/misc/bitcoin/dogecoin.nix
new file mode 100644
index 00000000000..7ace3c161c7
--- /dev/null
+++ b/pkgs/applications/misc/bitcoin/dogecoin.nix
@@ -0,0 +1,71 @@
+{ fetchurl, stdenv, pkgconfig
+, openssl, boost, zlib, miniupnpc, qt4, qrencode, glib, protobuf
+, utillinux, autogen, autoconf, autobuild, automake, db }:
+
+with stdenv.lib;
+
+let
+
+  mkAutotoolCoin =
+  { name, version, withGui, src, meta }:
+
+  stdenv.mkDerivation {
+    inherit src meta;
+
+    name = name + (toString (optional (!withGui) "d")) + "-" + version;
+
+    buildInputs = [ autogen autoconf automake pkgconfig openssl
+                    boost zlib miniupnpc db utillinux protobuf ]
+                  ++ optionals withGui [ qt4 qrencode ];
+
+    patchPhase = ''
+      sed -i \
+        -e 's,BDB_CPPFLAGS=$,BDB_CPPFLAGS="-I${db}/include",g' \
+        -e 's,BDB_LIBS=$,BDB_LIBS="-L${db}/lib",g' \
+        -e 's,bdbdirlist=$,bdbdirlist="${db}/include",g' \
+        src/m4/dogecoin_find_bdb51.m4
+    '';
+
+    configurePhase = ''
+      ./autogen.sh \
+      && ./configure --prefix=$out \
+                     --with-incompatible-bdb \
+                     --with-boost-libdir=${boost}/lib \
+                     ${ if withGui then "--with-gui" else "" }
+    '';
+
+    installPhase = ''
+      install -D "src/dogecoin-cli" "$out/bin/dogecoin-cli"
+      install -D "src/dogecoind" "$out/bin/dogecoind"
+      ${ if withGui then "install -D src/qt/dogecoin-qt $out/bin/dogecoin-qt" else "" }
+    '';
+
+  };
+
+  mkDogeCoin = { withGui }:
+
+  mkAutotoolCoin rec {
+    name = "dogecoin";
+    version = "1.8.0";
+    inherit withGui;
+
+    src = fetchurl {
+      url = "https://github.com/dogecoin/dogecoin/archive/v${version}.tar.gz";
+      sha256 = "8a33958c04213cd621aa3c86910477813af22512f03b47c98995d20d31f3f935";
+    };
+
+    meta = {
+      description = "Wow, such coin, much shiba, very rich";
+      longDescription = "wow";
+      homepage = http://www.dogecoin.com/;
+      license = licenses.mit;
+      maintainers = with maintainers; [ edwtjo offline ];
+    };
+  };
+
+in {
+
+  dogecoin = mkDogeCoin { withGui = true; };
+  dogecoind = mkDogeCoin { withGui = false; };
+
+}
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 00a5d15a84c..1426fb8e3d7 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-2.1.0";
+  name = "calibre-2.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.xz";
-    sha256 = "1znwrmz740m08bihkmdijm193bvav4nm313xsagd5x9mjh2nffg7";
+    sha256 = "13ny8d569hl7yv8m89216fmg0qdqqy6l9vgzf3cmbbb8i3l1lpxf";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
index 937025c0840..5c12ebcbfeb 100644
--- a/pkgs/applications/misc/cura/default.nix
+++ b/pkgs/applications/misc/cura/default.nix
@@ -1,15 +1,14 @@
-{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchgit }:
+{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
 let
     py = python27Packages;
+    version = "14.07";
 in
 stdenv.mkDerivation rec {
   name = "cura";
 
-  src = fetchgit {
-    url = "https://github.com/daid/Cura";
-    rev = "58414695269d60ca9b165e8cbc3424933ed79403";
-    sha256 = "1nxrrz8sjjx9i9cyvz15vay6yarnywp3vlk7qzr65sw88lzxgq23";
-    fetchSubmodules = false;
+  src = fetchurl {
+    url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
+    sha256 = "1jfgkb2qh1syakcssk66yhnfjm9p9qcx48v34bbza9nryrdlmxdb";
   };
 
   desktopItem = makeDesktopItem {
@@ -67,5 +66,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/daid/Cura;
     license = licenses.agpl3;
     platforms = platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
   };
 }
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index 256d337f679..e004b7db336 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -1,22 +1,25 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchurl }:
+let
+  version = "14.03";
+in
 stdenv.mkDerivation {
-    name = "curaengine";
+  name = "curaengine";
 
-    src = fetchgit {
-        url = "https://github.com/Ultimaker/CuraEngine";
-        rev = "62667ff2e7479b55d75e3d1dc9136242adf4a6a0";
-        sha256 = "0c68xmnq4c49vzg2cyqb375kc72rcnghj21wp3919w8sfwil00vr";
-    };
+  src = fetchurl {
+    url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
+    sha256 = "0f37jk6w3zd9x29c1rydqmfdzybx9nbmwdi3y3nzynq1vq7zmxcc";
+  };
 
-    installPhase = ''
-        mkdir -p $out/bin
-        cp CuraEngine $out/bin/
-    '';
+  installPhase = ''
+    mkdir -p $out/bin
+    cp CuraEngine $out/bin/
+  '';
 
-    meta = with stdenv.lib; {
-        description = "Engine for processing 3D models into 3D printing instructions";
-        homepage = https://github.com/Ultimaker/CuraEngine;
-        license = licenses.agpl3;
-        platforms = platforms.linux;
-    };
+  meta = with stdenv.lib; {
+    description = "Engine for processing 3D models into 3D printing instructions";
+    homepage = https://github.com/Ultimaker/CuraEngine;
+    license = licenses.agpl3;
+    platforms = platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
+  };
 }
diff --git a/pkgs/applications/misc/fme/default.nix b/pkgs/applications/misc/fme/default.nix
new file mode 100644
index 00000000000..685c0ecb4ed
--- /dev/null
+++ b/pkgs/applications/misc/fme/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, autoconf, automake, gettext
+, fluxbox, bc, gtkmm, glibmm, libglademm, libsigcxx }:
+
+stdenv.mkDerivation rec{
+
+  name = "fme-${version}";
+  version = "1.1.3";
+  
+  src = fetchurl {
+    url = "https://github.com/rdehouss/fme/archive/v${version}.tar.gz";
+    sha256 = "d1c81a6a38c0faad02943ad65d6d0314bd205c6de841669a2efe43e4c503e63d";
+  };
+
+  buildInputs = [ pkgconfig autoconf automake gettext fluxbox bc gtkmm glibmm libglademm libsigcxx ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Editor for Fluxbox menus";
+    longDescription = ''
+      Fluxbox Menu Editor is a menu editor for the Window Manager Fluxbox written in C++
+      with the libraries Gtkmm, Glibmm, libglademm and gettext for internationalization.
+      Its user-friendly interface will help you to edit, delete, move (Drag and Drop)
+      a row, a submenu, etc very easily.
+    '';
+    homepage = https://github.com/rdehouss/fme/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/galculator/default.nix b/pkgs/applications/misc/galculator/default.nix
index 010f75a575e..5dcee439ef9 100644
--- a/pkgs/applications/misc/galculator/default.nix
+++ b/pkgs/applications/misc/galculator/default.nix
@@ -1,6 +1,5 @@
 { stdenv, fetchurl
-, intltool, pkgconfig, gtk
- }:
+, intltool, pkgconfig, gtk }:
 
 stdenv.mkDerivation rec {
   
@@ -14,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ intltool pkgconfig gtk ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A GTK 2/3 algebraic and RPN calculator";
     longDescription = ''
       galculator is a GTK 2 / GTK 3 based calculator. Its main features include:
@@ -29,7 +28,8 @@ stdenv.mkDerivation rec {
       - Quad-precision floating point arithmetic, and 112-bit binary arithmetic
     '';
     homepage = http://galculator.sourceforge.net/;
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/gnuradio/default.nix b/pkgs/applications/misc/gnuradio/default.nix
index 1a0dea586d0..19455f972a5 100644
--- a/pkgs/applications/misc/gnuradio/default.nix
+++ b/pkgs/applications/misc/gnuradio/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnuradio-${version}";
-  version = "3.7.3";
+  version = "3.7.5";
 
   src = fetchurl {
     url = "http://gnuradio.org/releases/gnuradio/${name}.tar.gz";
-    sha256 = "0caj7dqppav53nhn0ima106hpsn0sakw57v1ihac9fk7ka0x2w8w";
+    sha256 = "0hv2nyz2hp1mjinin2q7jimh9mr81rjqvghqmaglz8w70qcn4zs6";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/k3b/default.nix b/pkgs/applications/misc/k3b/default.nix
index 06565065ce5..b220c9127de 100644
--- a/pkgs/applications/misc/k3b/default.nix
+++ b/pkgs/applications/misc/k3b/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, cmake, qt4, perl, shared_mime_info, libvorbis, taglib
 , flac, libsamplerate, libdvdread, lame, libsndfile, libmad, gettext
+, transcode, cdrdao, dvdplusrwtools, vcdimager
 , kdelibs, kdemultimedia, automoc4, phonon, libkcddb ? null
 }:
 
@@ -20,6 +21,11 @@ stdenv.mkDerivation rec {
     ];
 
   enableParallelBuilding = true;
+
+  # at runtime, k3b needs the executables cdrdao, cdrecord, dvd+rw-format,
+  # eMovix, growisofs, mkisofs, normalize, readcd, transcode, vcdxbuild,
+  # vcdxminfo, and vcdxrip
+  propagatedUserEnvPkgs = [ transcode dvdplusrwtools cdrdao vcdimager ];
                   
   meta = with stdenv.lib; {
     description = "CD/DVD Burning Application for KDE";
diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix
index 89f794850d2..b3fafbc4016 100644
--- a/pkgs/applications/misc/keepass/default.nix
+++ b/pkgs/applications/misc/keepass/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "keepass-${version}";
-  version = "2.22";
+  version = "2.27";
 
   src = fetchurl {
     url = "mirror://sourceforge/keepass/KeePass-${version}.zip";
-    sha256 = "0mman7r1jmirfwzix5qww0yn4rrgzcg7546basxjvvfc8flp43j0";
+    sha256 = "1qi7pls5xrv7ma53bwka738idvnxk82dvhk06m1snc8c29dws7fa";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/applications/misc/keepassx/2.0.nix b/pkgs/applications/misc/keepassx/2.0.nix
index 1a79af7cb57..c39c72398f7 100644
--- a/pkgs/applications/misc/keepassx/2.0.nix
+++ b/pkgs/applications/misc/keepassx/2.0.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, cmake, libgcrypt, qt4, xlibs, ... }:
 
 stdenv.mkDerivation {
-  name = "keepassx2-2.0alpha5";
+  name = "keepassx2-2.0alpha6";
   src = fetchurl {
-    url = "https://github.com/keepassx/keepassx/archive/2.0-alpha5.tar.gz";
-    sha256 = "1vxj306zhrr38mvsy3vpjlg6d0xwlcvsi3l69nhhwzkccsc4smfm";
+    url = "https://github.com/keepassx/keepassx/archive/2.0-alpha6.tar.gz";
+    sha256 = "592f9995b13c4f84724fb24a0078162246397eedccd467daaf0fd3608151f2b0";
   };
 
   buildInputs = [ cmake libgcrypt qt4 xlibs.libXtst ];
diff --git a/pkgs/applications/misc/lilyterm/default.nix b/pkgs/applications/misc/lilyterm/default.nix
index c87b6a8bc0a..2fe07d8c5dd 100644
--- a/pkgs/applications/misc/lilyterm/default.nix
+++ b/pkgs/applications/misc/lilyterm/default.nix
@@ -22,14 +22,14 @@ stdenv.mkDerivation rec {
     --enable-safe-mode
   '';
 
-    meta = {
+  meta = with stdenv.lib; {
     description = "A fast, lightweight terminal emulator";
     longDescription = ''
-    LilyTerm is a terminal emulator based off of libvte that aims to be fast and lightweight.
+      LilyTerm is a terminal emulator based off of libvte that aims to be fast and lightweight.
     '';
     homepage = http://lilyterm.luna.com.tw/;
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/namecoin/default.nix b/pkgs/applications/misc/namecoin/default.nix
new file mode 100644
index 00000000000..b1bd401b2eb
--- /dev/null
+++ b/pkgs/applications/misc/namecoin/default.nix
@@ -0,0 +1,37 @@
+{ fetchgit, stdenv, db4, boost, openssl, unzip }:
+
+stdenv.mkDerivation rec {
+  version = "0.3.75";
+  name = "namecoin-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/namecoin/namecoin";
+    rev = "31ea638d4ba7f0a3011cb25483f4c7d293134c7a";
+    sha256 = "c14a5663cba675b3508937a26a812316559938fd7b64659dd00749a9f5d7e9e0";
+  };
+
+  # Don't build with miniupnpc due to namecoin using a different verison that
+  # ships with NixOS and it is API incompatible.
+  buildInputs = [ db4 boost openssl unzip ];
+
+  patchPhase = ''
+    sed -e 's/-Wl,-Bstatic//g' -e 's/-l gthread-2.0//g' -e 's/-l z//g' -i src/Makefile
+  '';
+
+  buildPhase = ''
+    make -C src INCLUDEPATHS= LIBPATHS=
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp src/namecoind $out/bin
+  '';
+
+  meta = {
+    description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
+    homepage = "http://namecoin.info";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.doublec ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/namecoin/qt.nix b/pkgs/applications/misc/namecoin/qt.nix
new file mode 100644
index 00000000000..447a2b42b6b
--- /dev/null
+++ b/pkgs/applications/misc/namecoin/qt.nix
@@ -0,0 +1,33 @@
+{ fetchgit, stdenv, db4, boost, openssl, qt4, unzip, namecoin }:
+
+stdenv.mkDerivation rec {
+  version = "0.3.75";
+  name = "namecoin-qt-${version}";
+
+  src = namecoin.src;
+
+  # Don't build with miniupnpc due to namecoin using a different verison that
+  # ships with NixOS and it is API incompatible.
+  buildInputs = [ db4 boost openssl unzip qt4 ];
+
+  configurePhase = ''
+    qmake USE_UPNP=-
+  '';
+
+  buildPhase = ''
+    make
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp namecoin-qt $out/bin
+  '';
+
+  meta = {
+    description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
+    homepage = "http://namecoin.info";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.doublec ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/pstree/default.nix b/pkgs/applications/misc/pstree/default.nix
index d4ffe2a4afd..ec96ed76ce4 100644
--- a/pkgs/applications/misc/pstree/default.nix
+++ b/pkgs/applications/misc/pstree/default.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Show the set of running processes as a tree";
     license = "GPL";
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 }
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index abf55aa22b9..8ee006c5d7f 100644
--- a/pkgs/applications/misc/redshift/default.nix
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -38,8 +38,8 @@ stdenv.mkDerivation rec {
       temperature to allow your eyes to slowly adapt.
       '';
     license = stdenv.lib.licenses.gpl3Plus;
-    homepage = "http://jonls.dk/redshift";
+    homepage = http://jonls.dk/redshift;
     platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   }; 
 }
diff --git a/pkgs/applications/misc/rxvt_unicode/default.nix b/pkgs/applications/misc/rxvt_unicode/default.nix
index 7392123673a..b0334dcd7ce 100644
--- a/pkgs/applications/misc/rxvt_unicode/default.nix
+++ b/pkgs/applications/misc/rxvt_unicode/default.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation (rec {
   meta = {
     description = "A clone of the well-known terminal emulator rxvt";
     homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html";
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 })
diff --git a/pkgs/applications/misc/spacefm/default.nix b/pkgs/applications/misc/spacefm/default.nix
index 7dbe723d9eb..6f1ced9097e 100644
--- a/pkgs/applications/misc/spacefm/default.nix
+++ b/pkgs/applications/misc/spacefm/default.nix
@@ -3,14 +3,14 @@
 }:
 
 let
-  version = "0.9.4";
+  version = "0.9.2";
 
 in stdenv.mkDerivation rec {
   name = "spacefm-${version}";
 
   src = fetchurl {
     url = "https://github.com/IgnorantGuru/spacefm/blob/pkg/${version}/${name}.tar.xz?raw=true";
-    sha256 = "0marwa031jk24q8hy90dr7yw6rv5hn1shar404zpb1k57v4nr23m";
+    sha256 = "3767137d74aa78597ffb42a6121784e91a4276efcd5d718b3793b9790f82268c";
   };
 
   buildInputs = [ gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig makeWrapper ];
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index 8d914c26221..df4c0ea97eb 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -6,11 +6,11 @@ assert stdenv.isLinux -> cryptopp != null;
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "synergy-1.5.0";
+  name = "synergy-1.5.1";
 
   src = fetchurl {
-    url = "http://synergy-project.org/files/packages/synergy-1.5.0-r2278-Source.tar.gz";
-    sha256 = "097hk9v01lwzs7ly6ynadxmjh7ad68l5si7w4qmjn6z7l8b61gv6";
+    url = "http://synergy-project.org/files/packages/${name}-r2398-Source.tar.gz";
+    sha256 = "19q8ck15f0jgpbzlm34dzp046wf3iiwa21s1qfyj5sj7xjxwa367";
   };
 
   patches = optional stdenv.isLinux ./cryptopp.patch;
diff --git a/pkgs/applications/misc/tilda/default.nix b/pkgs/applications/misc/tilda/default.nix
index 50c4184c91e..bfaca1731fc 100644
--- a/pkgs/applications/misc/tilda/default.nix
+++ b/pkgs/applications/misc/tilda/default.nix
@@ -1,8 +1,7 @@
 { stdenv, fetchurl, pkgconfig
 , autoreconfHook, gettext, expat
 , confuse, vte, gtk
-, makeWrapper
-}:
+, makeWrapper }:
 
 stdenv.mkDerivation rec {
 
diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix
index c23be51c3e8..f53d3012b1e 100644
--- a/pkgs/applications/misc/vym/default.nix
+++ b/pkgs/applications/misc/vym/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     qmake PREFIX="$out"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A mind-mapping software";
     longDescription = ''
       VYM (View Your Mind) is a tool to generate and manipulate maps which show your thoughts.
@@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
       vym offers much more features to work with such maps.
     '';
     homepage = http://www.insilmaril.de/vym/;
-    license = stdenv.lib.licenses.gpl2;
-    maintainer = stdenv.lib.maintainers.AndersonTorres;
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainer = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/xiphos/default.nix b/pkgs/applications/misc/xiphos/default.nix
new file mode 100644
index 00000000000..8dcef600f95
--- /dev/null
+++ b/pkgs/applications/misc/xiphos/default.nix
@@ -0,0 +1,57 @@
+{stdenv, fetchurl, pkgconfig
+, python
+, intltool
+, docbook2x, docbook_xml_dtd_412, libxslt
+, sword, clucene_core
+, gnome_doc_utils
+, libgsf, gconf
+, gtkhtml, libgtkhtml, libglade, scrollkeeper
+, webkitgtk
+, dbus_glib, enchant, isocodes, libuuid }:
+
+stdenv.mkDerivation rec {
+  name = "xiphos-${version}";  
+  version = "3.2.1";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/project/gnomesword/Xiphos/${version}/${name}.tar.gz";
+    sha256 = "0xff31f89as1p7fn3vq8ishjhbmx6qhc25msh5ypa0zg8hm5dxbb";
+  };
+
+  buildInputs = [ pkgconfig python intltool docbook2x docbook_xml_dtd_412 libxslt sword clucene_core gnome_doc_utils libgsf gconf gtkhtml libgtkhtml libglade scrollkeeper webkitgtk dbus_glib enchant isocodes libuuid ];
+
+  prePatch = ''
+    patchShebangs .;
+  '';
+
+  preConfigure =  ''
+    export CLUCENE_HOME=${clucene_core};
+    export SWORD_HOME=${sword};
+  '';
+  
+  configurePhase = ''
+    python waf configure --prefix=$out    
+  '';
+  
+  buildPhase = ''
+    python waf build
+  '';
+
+  installPhase = ''
+    python waf install
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A GTK Bible study tool";
+    longDescription = ''
+    Xiphos (formerly known as GnomeSword) is a Bible study tool
+    written for Linux, UNIX, and Windows using GTK, offering a rich
+    and featureful environment for reading, study, and research using
+    modules from The SWORD Project and elsewhere.
+    '';
+    homepage = http://www.xiphos.org/;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/dillo/default.nix b/pkgs/applications/networking/browsers/dillo/default.nix
index 0cf23f38b0f..c6c86263888 100644
--- a/pkgs/applications/networking/browsers/dillo/default.nix
+++ b/pkgs/applications/networking/browsers/dillo/default.nix
@@ -3,8 +3,7 @@
 , openssl
 , libjpeg, libpng
 , perl
-, libXcursor, libXi, libXinerama
-}:
+, libXcursor, libXi, libXinerama }:
 
 stdenv.mkDerivation rec {
   version = "3.0.4";
@@ -22,10 +21,13 @@ stdenv.mkDerivation rec {
 
   configureFlags =  "--enable-ssl";
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.dillo.org/;
     description = "A fast graphical web browser with a small footprint";
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.linux;
+    longDescription = ''
+      Dillo is a small, fast web browser, tailored for older machines.
+    '';
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 56ba95c661f..f24f44c1719 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -40,186 +40,188 @@
 assert stdenv.isLinux;
 
 let
-  version = "31.0";
+  version = "32.0";
   sources = [
-    { locale = "ach"; arch = "linux-i686"; sha256 = "8372c1227b75486e297fd914bac530a45b22b789e627638e010d4c25337f350f"; }
-    { locale = "ach"; arch = "linux-x86_64"; sha256 = "e01412aa570a462a3bb1ba851cd7133014b3299c0ad349c15534edc35c6d6397"; }
-    { locale = "af"; arch = "linux-i686"; sha256 = "e75bd2d41de60483ed1eadcf03d9cd57146210ff9fdfe04e984404ce4bca29f7"; }
-    { locale = "af"; arch = "linux-x86_64"; sha256 = "32697271215a0e63b7d0b25398d27772da5d53e88d020df24f170ebc341e5394"; }
-    { locale = "an"; arch = "linux-i686"; sha256 = "3a590702183a86283e4de415eefdeed6f95f1e5d48c64456c4d6db8f84dcfb68"; }
-    { locale = "an"; arch = "linux-x86_64"; sha256 = "98d35a6a2f0875a9723ed9511f3bea65f58da3196db3f75aaf7420d45bde33ad"; }
-    { locale = "ar"; arch = "linux-i686"; sha256 = "e632f104442b725cf8e0e25c9a924b166289e1fab601a70aee0a81394632423c"; }
-    { locale = "ar"; arch = "linux-x86_64"; sha256 = "603a054ceb36645881f52042e556572252e898bfa78cec04811e65f27b9db026"; }
-    { locale = "as"; arch = "linux-i686"; sha256 = "05e64b9113f450bfbfa1b99c9580dbb2442af35d6cc20dec0c7af379dd5d37db"; }
-    { locale = "as"; arch = "linux-x86_64"; sha256 = "85b57a101afd0c4aae040bb1f3523ddda3079d46ac8abe9cad826939fd274353"; }
-    { locale = "ast"; arch = "linux-i686"; sha256 = "5df5eb0db623b42d9a2c9be58807ec66f43a26dd1365d44202d4b0db50d6a6f0"; }
-    { locale = "ast"; arch = "linux-x86_64"; sha256 = "6faac3f3637bd68d6c20c73dd84c554afdaa136c4e142c26eb8142b7ab00895f"; }
-    { locale = "be"; arch = "linux-i686"; sha256 = "4a87051df26ddb3fd2cf7c2beabc2d403cbc4d2f2e7e0802fb11566722171b57"; }
-    { locale = "be"; arch = "linux-x86_64"; sha256 = "8194b851ed7f9559b78f63711df598ed094783eb2cc288fbd1e880d53118dde5"; }
-    { locale = "bg"; arch = "linux-i686"; sha256 = "f6f903529d3276d1aa55968d4978fe5977d45076db0ee99d87199d59a9441ad5"; }
-    { locale = "bg"; arch = "linux-x86_64"; sha256 = "bce34ee8ec314db0f7abfeddf491d15642dcedea125dc9bb7d7dda3915054940"; }
-    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "9bd0e37ddf9a222263ca90308245e2078f45d754d8a2b0bc1e4dea13a5e7b581"; }
-    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "debb3a9983e4219b6632cdfd09d04ab95314ba4e0bd7ff36fd89f0a748d25cdd"; }
-    { locale = "bn-IN"; arch = "linux-i686"; sha256 = "ea2c9d29f4a3dfe8e0f146979c47ccba835b81cb1f1ed6e95124a837918590fa"; }
-    { locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "b2bf8e36ac1ca1afeae463bf95a289db7cf2d2fa303083ab405497cca2993b57"; }
-    { locale = "br"; arch = "linux-i686"; sha256 = "b4b9d2828e5387a65d0f63b2149400626cd47fc81b97b912eda11b3fe31d4604"; }
-    { locale = "br"; arch = "linux-x86_64"; sha256 = "c3af78f1215ffc1e9b6c193ba87d17e2f08e1a24856ee68aabf95b3ee7804ea9"; }
-    { locale = "bs"; arch = "linux-i686"; sha256 = "7930f10d5d43e4504b9f347bcb2a2ef451be4418cee86c199b3e98c38587a20d"; }
-    { locale = "bs"; arch = "linux-x86_64"; sha256 = "ee31279d2acf7286c9a59c99e68fdd1692b96247585230df20ea2bea5ee30ba2"; }
-    { locale = "ca"; arch = "linux-i686"; sha256 = "f22f7964180ad27a122e56f070c6a2a0e3b044fe15ec5046b04db03877a3b7c7"; }
-    { locale = "ca"; arch = "linux-x86_64"; sha256 = "84e8675f9613d1a8a49a760ee46d4625b88092cfc542e6b750384d0d5a0a465f"; }
-    { locale = "cs"; arch = "linux-i686"; sha256 = "bed550a83c763a8147ef862cca7ca36106bfc5b34ea81f008c94886b86a3dde2"; }
-    { locale = "cs"; arch = "linux-x86_64"; sha256 = "8bf76f388c6286a1b91cf460325b98c2dd08842031288617d9141b1368b5f62c"; }
-    { locale = "csb"; arch = "linux-i686"; sha256 = "2420bf49ff3429b3f186b17555b8b3250d44579b5ff7ce616914af646b5996be"; }
-    { locale = "csb"; arch = "linux-x86_64"; sha256 = "a0ee304a61b12ec1dd3caf5d876acbd9d2ad4443f9b96e73ecc1de8a1e16206f"; }
-    { locale = "cy"; arch = "linux-i686"; sha256 = "603a66c237e95534d2dbd004e7fd77b69d5b99b73cba797c7825aaca6d849c61"; }
-    { locale = "cy"; arch = "linux-x86_64"; sha256 = "69f68c024d6e9999b5a846d12c5a61ca63d962f6bd21737769d1fe5519916dad"; }
-    { locale = "da"; arch = "linux-i686"; sha256 = "da8ed391e8ae9729cf2af35700aff3f6900af208fee9eab6a6bd0fcb303abd09"; }
-    { locale = "da"; arch = "linux-x86_64"; sha256 = "7e3cc63eb61289e1006f683581345caaffe3ae39f7a636ff4f451b1e77a8ffb6"; }
-    { locale = "de"; arch = "linux-i686"; sha256 = "f191e74047cdddd43fa72242b1dce15a28160f62b4b8eae08ad117f4b27d6e0f"; }
-    { locale = "de"; arch = "linux-x86_64"; sha256 = "a81165d446cab525645ca2b18ef28cf253c6ee6267086d692a3904c79f7e5be0"; }
-    { locale = "el"; arch = "linux-i686"; sha256 = "eb0757aafd2a1c4bb9abeab01a3960d3ac21b92879f8dc7d24f485a43d305957"; }
-    { locale = "el"; arch = "linux-x86_64"; sha256 = "900f64bad286393f6d96f0ff00c6e78ae6cce998046cf506e2b3ec7a7b8e76c0"; }
-    { locale = "en-GB"; arch = "linux-i686"; sha256 = "99284b229b7bfcc44cce3ebeee523e49bd5d9c7d860345ad3e242af4f9848683"; }
-    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "9a4e003441556422375d4bede21da27a03d31b5ec452ff467abcfffdfe363f4a"; }
-    { locale = "en-US"; arch = "linux-i686"; sha256 = "13b4297db52ef851b38f292eba2b2136e4c2f1453e004012fe8b1fbcf000abce"; }
-    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "ce87f081c4867b9968a2695341001854aa6c1f4f19073d13f54f333cfed236fc"; }
-    { locale = "en-ZA"; arch = "linux-i686"; sha256 = "849584baf4c6dd330bf9c798e3e8923004a3a381642d4f684b5de3fb5b4fd895"; }
-    { locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "635d0cb43a2b5f7f0401f961fd88fc0d6735223ad421ec0ef92a4ee16b29727f"; }
-    { locale = "eo"; arch = "linux-i686"; sha256 = "91da9571212dc82f5d7140e4de073189018f7f895a3b263a4f8840401b4b10bb"; }
-    { locale = "eo"; arch = "linux-x86_64"; sha256 = "77f39ab0168efe9070ecd881dbd2884fe5f35eeea17a63ad8d957398f6eef40d"; }
-    { locale = "es-AR"; arch = "linux-i686"; sha256 = "f4ec6f07e67195981c12b5cbc3a6289a6e9d29539014c034039bd498a40f9301"; }
-    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "3f24135fd1a6fd2207bf1d80fc79cb34536b109e195e43a3a13eba0b68548c0e"; }
-    { locale = "es-CL"; arch = "linux-i686"; sha256 = "de3672a512473cc6edc48bb775bc9a405d0c9effccdb0cd46af5ce2593d67613"; }
-    { locale = "es-CL"; arch = "linux-x86_64"; sha256 = "770134c2bd8bc9f2e629e355b8e3b0949f67dd2ecd1b3a1d513bff364e53b734"; }
-    { locale = "es-ES"; arch = "linux-i686"; sha256 = "4eeb5854427cde599468b90af70ae3e04eb9aff5132659f6e1ddb2f859f0be74"; }
-    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "eb91e2e9b80cab85e6ab75e78a9b206a18bb647ffb247c0d5ed324ee219dccd9"; }
-    { locale = "es-MX"; arch = "linux-i686"; sha256 = "0aa0c85a51a50adb9eca5e5a1eda0ca11ddc15ad12b2d930ebe769f10d535433"; }
-    { locale = "es-MX"; arch = "linux-x86_64"; sha256 = "3f340072c80c95283b17e797bf4fdbde9d1de55b5f10f1c9e8193f8426c6157d"; }
-    { locale = "et"; arch = "linux-i686"; sha256 = "4719961e58e755ea2d9b94ff7439e1f9e858b0dacbd8631f98fadebca36c72a1"; }
-    { locale = "et"; arch = "linux-x86_64"; sha256 = "70aa1a76414c50b00fc85be87a07b936c7f60d83037f13716862e8491ec8d609"; }
-    { locale = "eu"; arch = "linux-i686"; sha256 = "ea450d11b0cd3b4381797bf6ca48d74fb18d661864eccb365bc2d51b872b101a"; }
-    { locale = "eu"; arch = "linux-x86_64"; sha256 = "d543e7fdd4c27875d30a1d527219e257296c6010e80dc0d5529722aa82cc666f"; }
-    { locale = "fa"; arch = "linux-i686"; sha256 = "4b8aaf0d27f10474c6ec4eeec1418ffb08338475c5433199ac2db79aab5273b2"; }
-    { locale = "fa"; arch = "linux-x86_64"; sha256 = "df10d71c7a762696ee682ca705052b15031dc7e84aa396f67fa26463e3dcd353"; }
-    { locale = "ff"; arch = "linux-i686"; sha256 = "acdfec7656b48e5502692c408cd8c7543add80181130bdd2e0ec66ac44219a06"; }
-    { locale = "ff"; arch = "linux-x86_64"; sha256 = "a9a0041cba2f80b09a2f22da6f1e9bfdfc1cbf0f5c324a427a1758174901fc27"; }
-    { locale = "fi"; arch = "linux-i686"; sha256 = "304e90020134af5564d5c90c5d9fee6264aa871e82419408f5b0e9d97f8f8ff1"; }
-    { locale = "fi"; arch = "linux-x86_64"; sha256 = "bfb86547ea4e0a5650a152070a7651a7f63b0df366fa4aed7f890033332e64a5"; }
-    { locale = "fr"; arch = "linux-i686"; sha256 = "1ccef0f95df1571b9e378d97122303982f93251bd3ed70d0af93babc3459bad2"; }
-    { locale = "fr"; arch = "linux-x86_64"; sha256 = "93ffcc3bbba8b7e0941fe674f6a67ed378e75b37c3e52debbef2434ea75f2b09"; }
-    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "20ae7baa888fdcb467388313fa51104f8ba77ca31b2bcd731e2d65a46ff75c3f"; }
-    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "33a028be0c63dc892efc93bd03375c8c4f9be38acb96a2bc516300c204086b3d"; }
-    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "ddf134c692d321744bd787b7833ccc9b06ef130865c8f8ee816d35ff55c344a7"; }
-    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "e76e18b18a7468ee6a550e837abf04b79833ae084210f723d0781f2b81e3077e"; }
-    { locale = "gd"; arch = "linux-i686"; sha256 = "3c361e322be79ffaec9a382aacf3b9cc90f03fa664e35e283cd8572e66d3b8b0"; }
-    { locale = "gd"; arch = "linux-x86_64"; sha256 = "5e95305321ff373d9cc6eee522dbd5ee948e6c298f2fb38d655965ec1de448e0"; }
-    { locale = "gl"; arch = "linux-i686"; sha256 = "99b9dbf38f50f5385072d72d14684e980aead6125c4c91cfa8e69bd5c7f1aa0e"; }
-    { locale = "gl"; arch = "linux-x86_64"; sha256 = "372bf1395f96be3b41d05630267354f7a6c0706e90f5e21320ab5ebd5d411d41"; }
-    { locale = "gu-IN"; arch = "linux-i686"; sha256 = "0b8429553052c8e23d3aaf1210d53b51fac2250d1d526311a22757ebd85ca54f"; }
-    { locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "da6a7d7292965a0c1eaf58564d9bf85192719831208e8762d06c7082ee9824d7"; }
-    { locale = "he"; arch = "linux-i686"; sha256 = "78ac97da0515eb5a94455dcbf4cbd9a8d1ddbf03d4b8d29bad7b9e8fdbf5ef12"; }
-    { locale = "he"; arch = "linux-x86_64"; sha256 = "c0d853c639cfa7b14ce10ee50776f3aebf0c84807bb59d9ec6e0e20554ae8ed2"; }
-    { locale = "hi-IN"; arch = "linux-i686"; sha256 = "82376fe3005c56d2e895e1ffa0e9233f3885700117a73d1c49d67d742e324752"; }
-    { locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "0ed6234fa9c5d449437d133c83f572ceca3dd82df6cbee8573c9f137c50bcf9c"; }
-    { locale = "hr"; arch = "linux-i686"; sha256 = "10ff3539c27dc49763fe322e9540878d421bdf590d9a307fecc6c158472889c3"; }
-    { locale = "hr"; arch = "linux-x86_64"; sha256 = "f97d7e3b290b0fc6a9116198da7fc7eb32895da74a3ad572d29577e14ab12f20"; }
-    { locale = "hsb"; arch = "linux-i686"; sha256 = "bba1a949823e70d1b5f4a0bec27437b6fc11638fa67b2ca286a833a0d44f5ef8"; }
-    { locale = "hsb"; arch = "linux-x86_64"; sha256 = "5efaf3ec7f7b5d94df17d2fe0d5877a35442d33ccbf141fcf30e11351f9b4000"; }
-    { locale = "hu"; arch = "linux-i686"; sha256 = "88a86463f2a47e38886cd2e8b470702623c772086b71d55e61de80e1c1be4fb3"; }
-    { locale = "hu"; arch = "linux-x86_64"; sha256 = "967ff3bb62c8dbc93a25f75bec73803428b3fe5024841d3e2d97e444c1d27304"; }
-    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "4bac63a8b8fea36c3dab794dff933972f9adff7f91a7d3957d4edc3c60534016"; }
-    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "9c26a2438462429f96b2d8bb8c4566b1b1f7d03200ed68aaca4eb6602342c33c"; }
-    { locale = "id"; arch = "linux-i686"; sha256 = "e36cd7195d5cd21afd97f31a5108af5999ade8a97f92db3e00067f3cfc31cd72"; }
-    { locale = "id"; arch = "linux-x86_64"; sha256 = "191e47625a6764670bfbab673989e5b2e6ad45ad1c3a0544a129afe8cb963171"; }
-    { locale = "is"; arch = "linux-i686"; sha256 = "c839d21d4e16b05bd9aa995ff2124b6b8418ca1405a8f3bfc70fb65b5710488b"; }
-    { locale = "is"; arch = "linux-x86_64"; sha256 = "16d8df9867e6a13a2be7408f459e2c67d449a47105cf9709e4a743abed8229a9"; }
-    { locale = "it"; arch = "linux-i686"; sha256 = "7f9c3909cda97d9a40f2630af4f11e6dd8e29f45ab949348123c4334f6aee8fe"; }
-    { locale = "it"; arch = "linux-x86_64"; sha256 = "52f95491dbf4ee9a1f2ee552feb8a30b8196b6747064e45d5a98d0fecfa11f67"; }
-    { locale = "ja"; arch = "linux-i686"; sha256 = "6586fd1d792feea4e98442736f06eab15d7de526667db6a3ce7de1afac9fdaec"; }
-    { locale = "ja"; arch = "linux-x86_64"; sha256 = "0ef883bdf3d415a5795bd613af05b16a406b3af3415ac1c1ebc646dd76f76467"; }
-    { locale = "kk"; arch = "linux-i686"; sha256 = "39167c7ee9f0e9b62308fcaba0f061bda0eaac9d3bb707c6556f71085c7ddd54"; }
-    { locale = "kk"; arch = "linux-x86_64"; sha256 = "ec2c9ae1f5daba1e3b0c8a4f24737b0968bc818748b682418f02983e25302703"; }
-    { locale = "km"; arch = "linux-i686"; sha256 = "797747aa402ad42b6addd04d69995b0ea5c628da71f2cce15c8e612d15461189"; }
-    { locale = "km"; arch = "linux-x86_64"; sha256 = "fd75e5fbba75dd8a6cdafdb1c4983bfd4336f300df559518d3fff0e6e7e482d6"; }
-    { locale = "kn"; arch = "linux-i686"; sha256 = "fada07e5679bcf174078e0c596cd121301f72c307401922e5772c6fa79eeedbe"; }
-    { locale = "kn"; arch = "linux-x86_64"; sha256 = "d9cbb3dc02e3db54ea691dc09c882fcd65fd99bb1d0250e29e3d0a37df72179b"; }
-    { locale = "ko"; arch = "linux-i686"; sha256 = "22bd8b1dec10117579a267d5bb9b10f460c27c9419305aa1cc4456b09fcd7df5"; }
-    { locale = "ko"; arch = "linux-x86_64"; sha256 = "0e9da5e79ebb149a62606e002202b70908d329a26c213df35480962fb05a9f7c"; }
-    { locale = "ku"; arch = "linux-i686"; sha256 = "e5f55ab5112ca3a137c4df37460304ff7e33471e3e95e2709ace1cb32ef88084"; }
-    { locale = "ku"; arch = "linux-x86_64"; sha256 = "224385ae3a9da1fbbbc0d309eba0de6f64e29da4de29299cb1c778cb5a57c968"; }
-    { locale = "lij"; arch = "linux-i686"; sha256 = "e39f5edc61e25f490dcae7ea4fdc91033f5e868cbcaf848180c40bd920455f17"; }
-    { locale = "lij"; arch = "linux-x86_64"; sha256 = "f6e9725f368ce4df3be078a1ad268a29cfeba01e5606de85fbe2e375b3a5e263"; }
-    { locale = "lt"; arch = "linux-i686"; sha256 = "46b2c694c60540ded3d3f6cb504bc5b7a709cc0940ff6b3223f05d7b8e1f7309"; }
-    { locale = "lt"; arch = "linux-x86_64"; sha256 = "51d10f5c63e377b0f9e46d7ee12ea8552b8df57d6e8d9334555b7fbab617c8a4"; }
-    { locale = "lv"; arch = "linux-i686"; sha256 = "8e224c3efcca9864255332b7f7c089c0c04b0eb2dfe60cd04d7dd6a61d807852"; }
-    { locale = "lv"; arch = "linux-x86_64"; sha256 = "e53090be92e7557be5d38aed25ac0a2fb1006d15bb38d61141473f4b38c6e26c"; }
-    { locale = "mai"; arch = "linux-i686"; sha256 = "479795f542d17476bb721d3e7c7fef565617528016085976a63b9e5864b4dd31"; }
-    { locale = "mai"; arch = "linux-x86_64"; sha256 = "8daa2882e27a19894ded43885e868dd7203f506cb1bd25ede1d36328fffbbe0d"; }
-    { locale = "mk"; arch = "linux-i686"; sha256 = "78f6fa53d5fda46fbe54b9978acaa75faaf094d2d3b8e464539609253da07c52"; }
-    { locale = "mk"; arch = "linux-x86_64"; sha256 = "47a147a93dc7d1e683a57f0d7ddd7fbe3d944145932e0773be8dab6a7a0b4b01"; }
-    { locale = "ml"; arch = "linux-i686"; sha256 = "6ac6a36596db8bf675df76abc629fc99ff019455f8c08842668a08cb40b67e9a"; }
-    { locale = "ml"; arch = "linux-x86_64"; sha256 = "c4d4bed760c429c5db1d5c42682127794f81e20182aed0fc37f4c9aaf7bc582c"; }
-    { locale = "mr"; arch = "linux-i686"; sha256 = "a2fc483f2aca2cbb7bdff42e4b27b711fdf27f46bee707d1c6d664c391c95def"; }
-    { locale = "mr"; arch = "linux-x86_64"; sha256 = "5209926b3130b8b75d933287872af62ac752fc9e3fc170b540a2f0bc49d97bdf"; }
-    { locale = "ms"; arch = "linux-i686"; sha256 = "926944ef9a3807b3379bba4b2fff05d8c2776cc4e3239b0b2bd2e5424151e6ee"; }
-    { locale = "ms"; arch = "linux-x86_64"; sha256 = "20cf8557fa41119febc99bbc6de10ea7e97d3c1abc2245241db862ca8a735db1"; }
-    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "5a2778d9e93ae4371ad29737904aaecacf494855b45e5e79cfe773410f6600f6"; }
-    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "8cfe4c778ee258dcd511990fd71eefcda46ab73c4448705e3815c5c371ee6ea1"; }
-    { locale = "nl"; arch = "linux-i686"; sha256 = "350efbbaeb3ef9eee16a398ce482c2a3790f5b85dda6177857d7448de03af9e1"; }
-    { locale = "nl"; arch = "linux-x86_64"; sha256 = "6d1310f7e2ebe5fc846f966bfa930a2bf3cd0877260de40b01496cb860630c37"; }
-    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "6447690e509ec0d1306bbfa484df82e62dd5909603b43440443c28bf2f489f24"; }
-    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "6e71ad4fe85b02f8745e6b3b39a6f69f13fff45fd555704747d1f59fcf64447a"; }
-    { locale = "or"; arch = "linux-i686"; sha256 = "71866d15af41df9d98716544d25d8fc2069a9a8f92cdd8180731e3b3fb3c3492"; }
-    { locale = "or"; arch = "linux-x86_64"; sha256 = "22ace7c20948526f1011e16581c870a919c4d8002bd0c3210ae8f702d1f8a03f"; }
-    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "12eabc66d39bd767c129c1a1777a6a13812efa0bc3df430dd7940908f53094ec"; }
-    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "54501bca85e231e9fab0aa894a6e566966fdbd172fc45888d97eb828e248d105"; }
-    { locale = "pl"; arch = "linux-i686"; sha256 = "e16acf44c5ab2ee708ba0f74301106a5fc0c36cd65ebd302043af09803f30138"; }
-    { locale = "pl"; arch = "linux-x86_64"; sha256 = "a1532684d5d0e9e2091a5d42202dc6b49ee8c21df14600f0772e1f0f53f6d638"; }
-    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "9827bfda689b01e795d4ddf7ab1169e25cc1728175af74e8a08fa3e8ef40e40c"; }
-    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "bfe02180011d564fe8deff4d3f3f8e3a6bfde05469738b5b2f8849a2ee485ba8"; }
-    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "83fcda599d09946da8a968d903fa12b93502a23337f019d3217cc80f81607fe7"; }
-    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "533050be56e6dbf06a5631a5b7a7db2da4f5514f224cb787600671c79c020379"; }
-    { locale = "rm"; arch = "linux-i686"; sha256 = "62906af16b8e179be3015f6be9cf4b9481fcc506044c053373f9bc2e315729fa"; }
-    { locale = "rm"; arch = "linux-x86_64"; sha256 = "f968ed9ba8ed43d0d52b02db23b2badf6e6a2544d105f23d6b09b80a07a28ee3"; }
-    { locale = "ro"; arch = "linux-i686"; sha256 = "503fc4cf0de24ff5b1658d09264f8bb3b131c678f61c554ddf1006633ff2d336"; }
-    { locale = "ro"; arch = "linux-x86_64"; sha256 = "514625ffbf4af4519a7671896f2f2797a1b17057dea356f7c17fa52a17736358"; }
-    { locale = "ru"; arch = "linux-i686"; sha256 = "01521832ab38fd46751578691b82c0283d9c7a68459ab7225328afa285699b01"; }
-    { locale = "ru"; arch = "linux-x86_64"; sha256 = "16b780ed767ff0537ec4619453d8cd3ebdcf124704d03d1741b5501007078dee"; }
-    { locale = "si"; arch = "linux-i686"; sha256 = "35ee6cded95ea13c8c480a46ffc9398f50d172aff2030611d6713b04ddc1c54d"; }
-    { locale = "si"; arch = "linux-x86_64"; sha256 = "c4ad9cec257bacffbcf3b4c84c63ec52e1ce830754b5be0b622a44ab223919ad"; }
-    { locale = "sk"; arch = "linux-i686"; sha256 = "53a6bc5aebe5edf4bad34e163a54a3bed30a7c74ff883463caf057793ac3f58e"; }
-    { locale = "sk"; arch = "linux-x86_64"; sha256 = "5110806bb3f02317b542bb79ce34c6bffeef68982807a5e53614958fb9adc779"; }
-    { locale = "sl"; arch = "linux-i686"; sha256 = "3a58652b394fc2ffe1abcc1e89596f3e9357a2455cda8a0c76a44ff20331ada2"; }
-    { locale = "sl"; arch = "linux-x86_64"; sha256 = "fb733f327080e5b4e2ae079a5cdbdb645fde1c9388368c13fcc6af4d3d91da7a"; }
-    { locale = "son"; arch = "linux-i686"; sha256 = "56a262e4411404e94747312858ae1e7ca99ea48171361f03cdc660f8b0da0da2"; }
-    { locale = "son"; arch = "linux-x86_64"; sha256 = "db77a5cab885f96efcbaae8e9f284ad30ab78aae1a405a5f1c2ac7d4d2e43498"; }
-    { locale = "sq"; arch = "linux-i686"; sha256 = "fde7c85f09997ab3f7918072a9577f8d70947c5fafcc70782d684759146941bd"; }
-    { locale = "sq"; arch = "linux-x86_64"; sha256 = "9865054be5d0a3913e4fa16aafdacd345607955b1d733d978033a2825d926c32"; }
-    { locale = "sr"; arch = "linux-i686"; sha256 = "87f9f7d46a211b9205df5258f551b7c42264fdb81c70f836a37b3d5a821c4c03"; }
-    { locale = "sr"; arch = "linux-x86_64"; sha256 = "ed03914c382efdec2f218e87e8efdd2b761e16ad0cc2a646b02050f27503161b"; }
-    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "1e28e39ac45177607a2ff3c71d3317b8b777679bc9e8dad2236991f05c6823ca"; }
-    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "81c2fdc5ec9f338b1dc3cd5d2e8dd62cf106c4cf759826be8eb7f3f3f550c49e"; }
-    { locale = "ta"; arch = "linux-i686"; sha256 = "8e27ba1c8079745a93bebf6f7e4dbfa9ffc32b91d6dfa12975497466f3ec1550"; }
-    { locale = "ta"; arch = "linux-x86_64"; sha256 = "c244aeff11608d6f1a8513045ab53d4909af02915761b15ff34ddbbc9995dcbe"; }
-    { locale = "te"; arch = "linux-i686"; sha256 = "32e404eeeebeb521d909cc64fe1ba3c0b40130f7a4b4ae742a48ba61e8b668d4"; }
-    { locale = "te"; arch = "linux-x86_64"; sha256 = "83b5cefddc6308050c24d9fb30818fa1fb3c1d4ba9a2de9d8fc99878b01855b4"; }
-    { locale = "th"; arch = "linux-i686"; sha256 = "009cb39521635c1c89717b3d526a59c05e7ab82082ec31f0fd482800f01d3e8b"; }
-    { locale = "th"; arch = "linux-x86_64"; sha256 = "1fe31902ef44e7049e9efa4774098c00d3ecad0a4c4f585716cb4bec158e3b88"; }
-    { locale = "tr"; arch = "linux-i686"; sha256 = "e54ee04479b9891420af6fc1d639da121b677660a5bf1dfd8565792c9e1cdbdf"; }
-    { locale = "tr"; arch = "linux-x86_64"; sha256 = "bdfae1142a7714a0be9bd24b02582a9ab9913c17d130cf0b2928deb657f8bebc"; }
-    { locale = "uk"; arch = "linux-i686"; sha256 = "b2d6b518e86c3bae1068f7a6d7cdc975f3b0f99e514c5d3d18dbe5e62d15dbce"; }
-    { locale = "uk"; arch = "linux-x86_64"; sha256 = "71bd0518b69c911dbb21297cd676ed66231a3b7bc59090a9f6a85d6882263277"; }
-    { locale = "vi"; arch = "linux-i686"; sha256 = "390fb219da7169d69a7aca1df883750d56bf34f0f7b6b49781d6f3c6b8962962"; }
-    { locale = "vi"; arch = "linux-x86_64"; sha256 = "1c5af9f646ced5533223bca6dd36f364c0ca9d3f02ba93797aa8b091144cf7e2"; }
-    { locale = "xh"; arch = "linux-i686"; sha256 = "5d0d04c7c84ffc51b11f99205ae767954b78d98c3a2d18bfcceca1cb292fcd9a"; }
-    { locale = "xh"; arch = "linux-x86_64"; sha256 = "5fafe2b375ee0935da52ec9037c4f515d1be5cf783548215d289a300e06bb9de"; }
-    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "1361b7cfc08d4d000107a244ec2a163ab27616b1d1db13917f34acc4d4167d34"; }
-    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "66aa04a7b5240df285afd37608c816b7c09cb365c6d0cd5aa4dbe8a7be61d824"; }
-    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "c0e3d9b584ba10e2a67a904253b2d93ab3546465e69619f932b566ad6b04a003"; }
-    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "6a24f9f3631bc0bcc15de6a124c0f7dbcee6d0099e2f0b0622a18e54c04620a9"; }
-    { locale = "zu"; arch = "linux-i686"; sha256 = "7fa59f6ee26d48f992015b0bb667a0c230cea854eafa67d7c4e51d38e1a267d3"; }
-    { locale = "zu"; arch = "linux-x86_64"; sha256 = "4af969f1e0d0703e83d903fc2a30739ae2ab42cc3a24219be8bfd152490970c5"; }
+    { locale = "ach"; arch = "linux-i686"; sha256 = "cef5938e567e6dc4d0460c1eb3f770d2acfa045d98186f6a490ad53b3c69d302"; }
+    { locale = "ach"; arch = "linux-x86_64"; sha256 = "bd5427dfd1d11f8a9a8d4803608453fdb11a7d304aed618f26b3fd6667a0d131"; }
+    { locale = "af"; arch = "linux-i686"; sha256 = "48e97eb3c65b381b8fe579d9a3cb4e4f28f06137043be1a54288f3e85c1f8312"; }
+    { locale = "af"; arch = "linux-x86_64"; sha256 = "fea64b289b3ee69ec0efa55b0d57998485125bf000c78e1c4567be5b40e1ac34"; }
+    { locale = "an"; arch = "linux-i686"; sha256 = "022110d1b31f51f5e9aedb2eac01159fd7c14e9c787530c246ba907e68317d0d"; }
+    { locale = "an"; arch = "linux-x86_64"; sha256 = "418f9b1061950b93ff8a2889a47ebd65c792a221510eb15ec6e0d67c73fa4da0"; }
+    { locale = "ar"; arch = "linux-i686"; sha256 = "228739f558428aa97364da3869ab28e68499e103bac0af7c391f1ee66be97754"; }
+    { locale = "ar"; arch = "linux-x86_64"; sha256 = "44255bbfed7a804a205846a2c634a0ec4868a05f58a9ce0350ac3d2ce147f500"; }
+    { locale = "as"; arch = "linux-i686"; sha256 = "0a40d888a10b2be8b76ddab70e32a534a3e95a029aac4c8945bb71b4a6e63d3d"; }
+    { locale = "as"; arch = "linux-x86_64"; sha256 = "a55a81da699c51b3bb422ba0942d548373d2a207c6e8eb0d7abde50dca6dc57f"; }
+    { locale = "ast"; arch = "linux-i686"; sha256 = "61826f0098f2535a1019eb1c7e21fb8971f66fa1d39bf773a130e96cfa99897a"; }
+    { locale = "ast"; arch = "linux-x86_64"; sha256 = "4b84870ecb220189ab59e837f74a2195a38265226dce5542841187d35dbd18dd"; }
+    { locale = "be"; arch = "linux-i686"; sha256 = "40029f2cdcb4964a43193456f436c3a9428face17ed3ef4b655e3f1bc47c217c"; }
+    { locale = "be"; arch = "linux-x86_64"; sha256 = "7490f9815dac528c32d0254c9f5e7834e4af6b4e61d6618d235481b0e086906a"; }
+    { locale = "bg"; arch = "linux-i686"; sha256 = "320e9f8c338d180cd90390b3dbf38b2ed17ab9606ac13c79d64ae114e72653a1"; }
+    { locale = "bg"; arch = "linux-x86_64"; sha256 = "921ef8a9beb4469d5faba09e6786415dce37030a4c24f6057ec5fbe301113dd4"; }
+    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "69833779015e09952825d0fdc6fb9283379c9b9a26d7bad4a12bb29bb74c277c"; }
+    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "de3f0efafc6b838e90d550287d574f9fa26c9b2690fa1fc48b766b9d478fc1b9"; }
+    { locale = "bn-IN"; arch = "linux-i686"; sha256 = "aff667e3277bf61f3b117ebd13a3ce469e9bf6ba58b7dd736d8913b234c4a4a4"; }
+    { locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "c446d8a57a1542eb2aefd4a0b5304917dde8446c94c11d8f80110ff881878bb2"; }
+    { locale = "br"; arch = "linux-i686"; sha256 = "5f05c4bb347f5150c5685e7308aee338b6d92b8cac204e7afb326d2c44ff8dd8"; }
+    { locale = "br"; arch = "linux-x86_64"; sha256 = "6dfa3436ddcf6f47e7d40846b09ad4c7555aae40f25f5380b30a0776d0368d37"; }
+    { locale = "bs"; arch = "linux-i686"; sha256 = "7df19221c455bfe29e9a8eb6f48088e37be5a493319c46e45b48a72ebbac1df2"; }
+    { locale = "bs"; arch = "linux-x86_64"; sha256 = "aaa2c0f3eb430337e865732c0bbf3d5efe72869954607f5560c8925bd736cfba"; }
+    { locale = "ca"; arch = "linux-i686"; sha256 = "9c725ba77e778144e31b907b2b4cdd4f045dc6ce12bedd9bbb92a98224a44327"; }
+    { locale = "ca"; arch = "linux-x86_64"; sha256 = "30a27b9558bcc7f7c03f4a204e20aabc9b1d4fd5240a93fe14e02f95ba4f34e8"; }
+    { locale = "cs"; arch = "linux-i686"; sha256 = "491b7114f686235233e3ceb2c7db47d8bef426bd1578545f5d1cd001b15afb71"; }
+    { locale = "cs"; arch = "linux-x86_64"; sha256 = "098596de29865bac4dcb642d8da801b7707fafbc60f25e5c1803ed8aaaa77d50"; }
+    { locale = "csb"; arch = "linux-i686"; sha256 = "a53579fc73f5bf4811ab608320b0d889406be9b655574fbaef2aa8db7478e023"; }
+    { locale = "csb"; arch = "linux-x86_64"; sha256 = "903bb549115252d2850ab7cbca9d46890cb8ee5f40ac7b8740fc3d81a1225c68"; }
+    { locale = "cy"; arch = "linux-i686"; sha256 = "0f3db887046a8f5b597eca5d943a9eed295f8ca7b8831f8c27ec6c833c63b2b4"; }
+    { locale = "cy"; arch = "linux-x86_64"; sha256 = "ab680b6ef58106766de8aeae909ffd313abc03f2400a06e2b3f8371e211a0a0d"; }
+    { locale = "da"; arch = "linux-i686"; sha256 = "47280c825f065cfbfccbef0077032f3c04a75f860eb5a31861515295b6a85050"; }
+    { locale = "da"; arch = "linux-x86_64"; sha256 = "25a93f49d789d3d5d6d3fa82cbfc5f5c195a8da4d1dfb12c113d29b125e71e79"; }
+    { locale = "de"; arch = "linux-i686"; sha256 = "2922c1a06f37322c05b6ad66a95fd7cdc2ad10a86ee082739810060a932bea55"; }
+    { locale = "de"; arch = "linux-x86_64"; sha256 = "5dadafb7e44eb174c717101a336b00a03b8f7fefb606f356c0ae4b00209d5723"; }
+    { locale = "dsb"; arch = "linux-i686"; sha256 = "047f3c1b05ac28e1e566451e6b93fbb88e300afb0f264faf17e72ac5f9aae201"; }
+    { locale = "dsb"; arch = "linux-x86_64"; sha256 = "f0de9a6713f197a4664183b4fe80179543588cbaf83d4f174f360177e0149a6d"; }
+    { locale = "el"; arch = "linux-i686"; sha256 = "5343cc2302d49a57c3fabb7b03ca4f11a0eb979bbab7442262bc34186b3bd596"; }
+    { locale = "el"; arch = "linux-x86_64"; sha256 = "91ab977a9089fc68ed54062cee6d0a71caa2591ec5d4994181d8939605baa114"; }
+    { locale = "en-GB"; arch = "linux-i686"; sha256 = "1d4c0d24b2558bd311f9f6cf44186596f9634d7a5c69b4b7648b59a2443272bd"; }
+    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "7c13ae7155b92b7aaec599fffdbc8c02fde8b6575f892fd3e5edf67c3102790b"; }
+    { locale = "en-US"; arch = "linux-i686"; sha256 = "1a6d8fe7cf0df7ccee2047c2031da4b8f0ef8271d6413e0c7bc87bf208c8af90"; }
+    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "3b9793fe7957031f88f240254326697e685de3690aac1fa13d447cb2a23a2738"; }
+    { locale = "en-ZA"; arch = "linux-i686"; sha256 = "63fd411e37656bfe56fec468f47dca7a61ffe5f9be3ab1c23ad252b8199f39d5"; }
+    { locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "3a5510c7a996a50e94e68c05cff1fbf31a7cc787d2bd173828d867d4b8d22243"; }
+    { locale = "eo"; arch = "linux-i686"; sha256 = "cf2004a5134c6240bfb05f499cee09f425295ce0bd8d170b0832a845b4d255c3"; }
+    { locale = "eo"; arch = "linux-x86_64"; sha256 = "186753142ed4c28eded8861e399ff33bc7738ba75c112507b4acb53ccd11b13c"; }
+    { locale = "es-AR"; arch = "linux-i686"; sha256 = "57cf456aed64517f69801d6c19a143aa9a90f85de015be22b8a2e2d4a6b33d23"; }
+    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "09c833d17aa31e99fa0aae3eb5f296c643c34ea22d94f8b5ff64e2b871e70dbe"; }
+    { locale = "es-CL"; arch = "linux-i686"; sha256 = "5b2fca43e84335e8b0cdb5d341402d5b1b57016881e7112a0ae8f5c5374f8857"; }
+    { locale = "es-CL"; arch = "linux-x86_64"; sha256 = "f1a03f0e4c69d796d5fd4b26aed1d356dfdcdd5ce7f180bf045a97ce308f13c2"; }
+    { locale = "es-ES"; arch = "linux-i686"; sha256 = "0167a7dcc31364818981372dce640c408a4bfd2983b5bc3d2726b5525873361e"; }
+    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "92dac800255e1ba12c48b8078b8098ae1b3980401c6da54c3798d853c6685c13"; }
+    { locale = "es-MX"; arch = "linux-i686"; sha256 = "e0f7c028869ac2d1edf582622fa2dfe5c6c6dfe042f8d74bc3ec9080dc70a36c"; }
+    { locale = "es-MX"; arch = "linux-x86_64"; sha256 = "02669ae0b19e3b1cb8589b583b6de0b0b62f2987ef126c7fcc2efa2cd63e714f"; }
+    { locale = "et"; arch = "linux-i686"; sha256 = "855f6c7bf2bb01e08b8e20e7c8d633000c70e64fd37405695be7cf3cee515be1"; }
+    { locale = "et"; arch = "linux-x86_64"; sha256 = "348dc193a4bfc6fc53d203cae7e5b5af68c56bcb01ffec0f7c427017f5d3b98f"; }
+    { locale = "eu"; arch = "linux-i686"; sha256 = "7a79a9967b0522199c62ea03edc27cd2752c80eeba816a9334e9624f48c7525d"; }
+    { locale = "eu"; arch = "linux-x86_64"; sha256 = "5cc04f7915a31d54d858d0e532e49829ab45ccd250416aed1612774c960d0cb9"; }
+    { locale = "fa"; arch = "linux-i686"; sha256 = "59ff7d6cd90eb7a4f2e34adacec95ef728e4fe1739a098a22da8843c5a2da1c0"; }
+    { locale = "fa"; arch = "linux-x86_64"; sha256 = "529a65d93b5da907cc8f2389996e783d261fcd03711c92aab7be0ee05e92aba5"; }
+    { locale = "ff"; arch = "linux-i686"; sha256 = "62c8c769fc847b2fd564e85748e0b8b1249555d86e09d38212566e4dbbb9526c"; }
+    { locale = "ff"; arch = "linux-x86_64"; sha256 = "fbc42b7aaf60f83da91b76905ddca103cbdfa660824343348c7b5325977b9e70"; }
+    { locale = "fi"; arch = "linux-i686"; sha256 = "7377752db6d01993cde0ac9d73234bf8538cee217e3d11089a50c4c2be447751"; }
+    { locale = "fi"; arch = "linux-x86_64"; sha256 = "5909ddaa88ad8408b8590518ea4b738d7f581ee827ecd679bd8ebd2208287c5e"; }
+    { locale = "fr"; arch = "linux-i686"; sha256 = "7c9de38b184ca8d10b0d7035c0b31cde79103a25efc516b98f6a2d91e054d7e8"; }
+    { locale = "fr"; arch = "linux-x86_64"; sha256 = "8668f081a5c976cde7bcea6727d1885d77711c11bbb4a0023c9759d6f0bfb619"; }
+    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "dff7ae0b0a4b18eaae1501a03ad754e71794cef3981334bbc77cd55f15b42fa2"; }
+    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "3b20b9fe8eee700192296d70b93ff5f21d6667093cbff16303679a3491c78fd7"; }
+    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "fb4c5e7689668af719f2ed2c16d7605298e61003b6d9490a67742b6146b0f98b"; }
+    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "f3d379924e56b8296004be9c3dbf381cf3535bf1790e44ee2bb1f6477829def1"; }
+    { locale = "gd"; arch = "linux-i686"; sha256 = "1768c0e05770c502fe3122dd1c37dbd1e51b9b5c5aaa7cf57a5590e9217393d4"; }
+    { locale = "gd"; arch = "linux-x86_64"; sha256 = "95d77215bd1332cefba9dac1f55eaf3f479927526ca6ed38281837b3c8fbac39"; }
+    { locale = "gl"; arch = "linux-i686"; sha256 = "0af5c23d8e11ec797537c9710b179c7f6ae182bb4831f535848aba0b229ea89f"; }
+    { locale = "gl"; arch = "linux-x86_64"; sha256 = "1befe0623ee71fdc3f7508b532a411fb5f8438ca06963f79cd9c3d20c3fdaa7f"; }
+    { locale = "gu-IN"; arch = "linux-i686"; sha256 = "d61a8bc5eb6b78a4a9d36078ce5946487e0bb9f89ceaba0feb7c449d486feacb"; }
+    { locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "bcfdfe861bfd7447cab99a03826013e77e004ef9b01927b5dbeb0afd40f46f67"; }
+    { locale = "he"; arch = "linux-i686"; sha256 = "0b4c596542e65af735a2f66a61743492c146c51373acf7026274378033a6431d"; }
+    { locale = "he"; arch = "linux-x86_64"; sha256 = "96cd11044613c0a924eee6272313f21e01b987982732d6bcc362935d799fa6ff"; }
+    { locale = "hi-IN"; arch = "linux-i686"; sha256 = "8640aae3dc8d965ac3c0aa65e3579e7613d0c78dfabb06d23840d39df8881ec0"; }
+    { locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "b1b84b405b4d0f5c87ab750ed5942d29018e46b73e298296dc9931f8b3981998"; }
+    { locale = "hr"; arch = "linux-i686"; sha256 = "006e932d4b7474b5f24628d08ec5e28d45b9a23dfb144599fda2b0969f57863e"; }
+    { locale = "hr"; arch = "linux-x86_64"; sha256 = "b70aa31702ea42b85e6ed678cc20bff94267a746cb81ac70dec0d84a244b489f"; }
+    { locale = "hsb"; arch = "linux-i686"; sha256 = "c33442ce4cb0d9355c915fa1ea3407f67c0470e8711055bb2fb275e612a64fa4"; }
+    { locale = "hsb"; arch = "linux-x86_64"; sha256 = "19d6b48b415d48c278f5ec203ee03136a5f80a8ee566e336de187694ab9862a9"; }
+    { locale = "hu"; arch = "linux-i686"; sha256 = "eddcf8119a9680c2676720f33d0fbe750e015d7d21f07325bd47dea0b7cc5bd9"; }
+    { locale = "hu"; arch = "linux-x86_64"; sha256 = "703e8e9da4bd1adb2e1ca77b221c4ce80d9e2b63be7b27eb34c0fed29a2d76b6"; }
+    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "3c2fe1bb3bc7d9d0bf1006962e635262b7ab23017ea703746d436e25b68d7ec6"; }
+    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "602942788ce157b3d2d6a02d0105e1da632a055bf657282131a0946f87a4431d"; }
+    { locale = "id"; arch = "linux-i686"; sha256 = "de47061063986cff65ae50537a2dbc0abb3d5ec7f1fc5b2a3c8aa66dc4ca4a6e"; }
+    { locale = "id"; arch = "linux-x86_64"; sha256 = "2d3c4a294c1dc8ece94de489dbef9ce3b4222b0883c5f61f1f90fa881329cd53"; }
+    { locale = "is"; arch = "linux-i686"; sha256 = "0ae9ae73771c7429e7f6ec457e656bef034d211a191e5125dc09006a4157b57a"; }
+    { locale = "is"; arch = "linux-x86_64"; sha256 = "8618faa41d021e98d5d010efbead4440828f9f2cc485068fef3f3fef39713bdf"; }
+    { locale = "it"; arch = "linux-i686"; sha256 = "e91bbb7a5bc1052b2f8558598fc9c4cb610314bf026c5eae97a7e85badcc096f"; }
+    { locale = "it"; arch = "linux-x86_64"; sha256 = "1b2c610711bfa05aa0ecbd4ddd81724d29f3f162798cdb35b2c15b1a07cc5743"; }
+    { locale = "ja"; arch = "linux-i686"; sha256 = "c4495bdfc92b1089a3c812d863df20856d585ad9601f41a8c99a522df216736a"; }
+    { locale = "ja"; arch = "linux-x86_64"; sha256 = "55a5fc7eef3d8a4bb2ea7b19eff6dbeddf9fe9f239f645b996aba44477cb4bf3"; }
+    { locale = "kk"; arch = "linux-i686"; sha256 = "ca09ceaf455f7fdc93e871617f73200eedd9cff32e8704ead4fd68b86190a8ac"; }
+    { locale = "kk"; arch = "linux-x86_64"; sha256 = "b6f09b29afe73ab3a25a8cfa2b88ef7f51b83f501990fc80fa886da75916a257"; }
+    { locale = "km"; arch = "linux-i686"; sha256 = "920de5e59f13894e0f2b008cbecf4089b1b36087744ee4bc050b32e1887f8e7b"; }
+    { locale = "km"; arch = "linux-x86_64"; sha256 = "fee6df7cce32d81675c91116ed89996ceaf5de1cc3fde028b04d6012338527b0"; }
+    { locale = "kn"; arch = "linux-i686"; sha256 = "d6587c2a00e4c1a9c38a75f64085bd66e100482a7977dfbb3434bc6a902be313"; }
+    { locale = "kn"; arch = "linux-x86_64"; sha256 = "b6066271412a7d4faa2fa028b03f88061477bd5a0ea5e7d5ec8e3e81c52ce166"; }
+    { locale = "ko"; arch = "linux-i686"; sha256 = "c0de3fcf13a0947239a1310d862deaf5d37836f82f4d618f9aaf09ed69fcfcfc"; }
+    { locale = "ko"; arch = "linux-x86_64"; sha256 = "b929dffdf57cb08087e2ec4054ba58368cc5535579d336872b4016d5bddc9ceb"; }
+    { locale = "ku"; arch = "linux-i686"; sha256 = "4926a59d15eda575ec3a0b32f8ebecd12a354b80746efc61d0630a91720c5e9b"; }
+    { locale = "ku"; arch = "linux-x86_64"; sha256 = "04083b8b57ab3e5693637ca424daa18ab678594b37a56ba4ba9e70c369782002"; }
+    { locale = "lij"; arch = "linux-i686"; sha256 = "730ef2c9920b0eb6e511d5725780ce3d6c2b341d03049e6cb8e83ceeeaf191d7"; }
+    { locale = "lij"; arch = "linux-x86_64"; sha256 = "b068b0e242ff84055665eb9688d392d98e433ed0c44793734f264b340c2efdf5"; }
+    { locale = "lt"; arch = "linux-i686"; sha256 = "885ad622f8a36bb5385187995423e811be28a169c8f33d8eec064f04f45e85cc"; }
+    { locale = "lt"; arch = "linux-x86_64"; sha256 = "d289b593c8c6ccef5d0ee339de674385b08ee28da7b851230da20469aeba7558"; }
+    { locale = "lv"; arch = "linux-i686"; sha256 = "e5558f1cd93264f7f30a9259c28cc50131782d1941388b71f80b1672a29c597f"; }
+    { locale = "lv"; arch = "linux-x86_64"; sha256 = "61788b9ef4f13369114abe4a16e7ee89e16d791cf5d3e1eb74eedb88c3a90e9b"; }
+    { locale = "mai"; arch = "linux-i686"; sha256 = "a9991d23913da8fe6dcf47aacc23b92055c7019265d6c7a01d9d6b3c7ffa4c4d"; }
+    { locale = "mai"; arch = "linux-x86_64"; sha256 = "946420fd821b3ec97bfa1fab52b22111428da0ed919e86c0d33be53b30f5d476"; }
+    { locale = "mk"; arch = "linux-i686"; sha256 = "bf10e053684e5e71eb1886f4127743937a560eee15e7c85c9849bc4b15a60123"; }
+    { locale = "mk"; arch = "linux-x86_64"; sha256 = "b5d1d9d3eaff11f230c864799c77c8169415ee5dd2e1dab944d91ce1c8e8c054"; }
+    { locale = "ml"; arch = "linux-i686"; sha256 = "c899ba567d847933fa40e3bf1be26e8a5fd3bdf4af45db60cb9198b1a6c98ee8"; }
+    { locale = "ml"; arch = "linux-x86_64"; sha256 = "fb069df12d603c808c798e43d3ef92868c239a130e078e7492456d1f54cac882"; }
+    { locale = "mr"; arch = "linux-i686"; sha256 = "14027be4ec9f060b3ac69975dfa1da7aa0b58531383bd335fe3dca98f06597a8"; }
+    { locale = "mr"; arch = "linux-x86_64"; sha256 = "a18dc57bd2b73bf733a0ad61b7ac9b8b4bd149260a4c59fed171b76e52eaed41"; }
+    { locale = "ms"; arch = "linux-i686"; sha256 = "3fbd39a0c2def17862e266ef295a38f93400135898348e6321fd37829461660c"; }
+    { locale = "ms"; arch = "linux-x86_64"; sha256 = "0fb3bab95d1aa501304069aad3c4a8ec38088f3b86ebbd0ef58f29c9d837602d"; }
+    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "1c36cae02772a2e7465f1b6a67e91d169120724c0f13aaa06ff66a095084d71f"; }
+    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "7a64797441cc03f947c98c5ebdfb7c36caa2daf0597374904a25e6d499501de5"; }
+    { locale = "nl"; arch = "linux-i686"; sha256 = "32b93da5068e6cd76c4bde1833592d89d0c2ebf3d9b4ac636e7b00e7007edb6d"; }
+    { locale = "nl"; arch = "linux-x86_64"; sha256 = "6dfa7bd9edfe177e03a4f3244760c7d75db1c6edb291bf05df2db31156235743"; }
+    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "d9fa7e708e90c20ebb1c2b2df9bf866817f87cc8638b886c6d69ba5033e6482d"; }
+    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "fd431fe5784dd4d5b42b53bea56439db95f5bebc4b8f47517e2cdd4ff5ebaa7c"; }
+    { locale = "or"; arch = "linux-i686"; sha256 = "83f358e0e8e545ee4bdb01da4795f4609edd5c504150260241274b205f4df5ae"; }
+    { locale = "or"; arch = "linux-x86_64"; sha256 = "128c80cc0c6e2ff558960b8f4d191239b92a38ed4537dc58b77c7c464254992b"; }
+    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "87af71809038e38b00bbefc8795aa8fdba6bbe6fae0a7a6c82e9e752044b8573"; }
+    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "263c8f80b2e7f4cb86f829cea41c92ec876fa77c945cfb46452e456a55f72685"; }
+    { locale = "pl"; arch = "linux-i686"; sha256 = "32dad8cb30e70394b118d305135d86ffc4ad1fc345cafb063712a7d288e04209"; }
+    { locale = "pl"; arch = "linux-x86_64"; sha256 = "97231cd5c4fc5e5c125d6ead400ea941c60bcadecaa46200a485e2df79e6ccc6"; }
+    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "9f5fcbc0c9f70c02e997483888dd69c5a510cdf07f4d6d6447c04c258ad60681"; }
+    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "2921da4f0d1018201c2db7e65823f36fc307d46759cd0cf94d3667f8c1ae719f"; }
+    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "6aebbc3a93961d2baeeb2e07f00b57c4abd73d1ffe4ff21f9bc4812c98b0025d"; }
+    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "59cf5be7d0a3390ac0094a436b7b498bf26a42c178082f2ba2a79273f4ba8a44"; }
+    { locale = "rm"; arch = "linux-i686"; sha256 = "b57ca3477f1869cdbe474b875640a0516d6dac660aeb2b16f1902f776131aeec"; }
+    { locale = "rm"; arch = "linux-x86_64"; sha256 = "0cdad1a4bc9af986bdab8cafd0efc0d96c0010d8c86797e0cd58de9b90fad5cd"; }
+    { locale = "ro"; arch = "linux-i686"; sha256 = "1cf86aa09a145bd190ee815a2dc66129f0f05fb4c30802c9f85d977ec370dbe8"; }
+    { locale = "ro"; arch = "linux-x86_64"; sha256 = "6e10324605e7b50adee8597ce9694c318125131e301c7c5608e15206784d2475"; }
+    { locale = "ru"; arch = "linux-i686"; sha256 = "30d902defb08ab7661c369118729e78046fd0bb17ae9ac080587d105c44c7e04"; }
+    { locale = "ru"; arch = "linux-x86_64"; sha256 = "a3ad52e02e346f5c51ea58b92ebda1f5d98234583dbd1627e002ee95db150837"; }
+    { locale = "si"; arch = "linux-i686"; sha256 = "367ba16e7505ac93908443861ef76f7bcb9444a65add1155a3e80bbc97564c72"; }
+    { locale = "si"; arch = "linux-x86_64"; sha256 = "018c013809857c5bda53b931080c40e8152a229f3d2b079975d381cb106059a7"; }
+    { locale = "sk"; arch = "linux-i686"; sha256 = "471da0ef940666ed3442a576b085ed065a6da4de102f59aacaf2168c84d127de"; }
+    { locale = "sk"; arch = "linux-x86_64"; sha256 = "4cb690b5c1b8a97f83eeb8d26870f19492ed61463765eae29294946f3fb173fd"; }
+    { locale = "sl"; arch = "linux-i686"; sha256 = "863a1866b30700a6b22775b8b7c01ad27502ee3bd73ed20a874a9cac0a889638"; }
+    { locale = "sl"; arch = "linux-x86_64"; sha256 = "1c2c815b9fbf5cef9bd0b732bf47d56c1ecfc554ca4573d3fb67be3351a35bf9"; }
+    { locale = "son"; arch = "linux-i686"; sha256 = "aaa955cb028036b3f70e0284eedfcfb2b655dd6b7bd6f717ec0609323ad6a897"; }
+    { locale = "son"; arch = "linux-x86_64"; sha256 = "84751dbf1e16f8912bd71f24a9c80805ac3a7aa32f30eeb2f3f945113ff4c1ee"; }
+    { locale = "sq"; arch = "linux-i686"; sha256 = "50ef1fe3d72312a78d951bda1892b7548d46669ddcb60f0af5a22fdd1b8f23aa"; }
+    { locale = "sq"; arch = "linux-x86_64"; sha256 = "05b24a18a637a730804dc485f86e3b3d4ce3046ff81689984c0e14d6e55c9ade"; }
+    { locale = "sr"; arch = "linux-i686"; sha256 = "3388ec26ca4c9ac2ed327037bc73eddcd7fd390765107e47fa3953c53e0ab1f2"; }
+    { locale = "sr"; arch = "linux-x86_64"; sha256 = "d81f19076ce990256fdd4c5e7bdf39f8f70d24f3057a1383aa100d259844ada9"; }
+    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "3ae73ff229c1280ab7b271c29096804839c5d92ef0c15f7a8a8366946ba24720"; }
+    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "77f723f41ec258309a66e8c808ff4ebc5705ba115bf2417f87943d381d6b57e8"; }
+    { locale = "ta"; arch = "linux-i686"; sha256 = "6897b368738eed28e6b2b17529d6e6656d22f228ecaae04c4f8c539a1dfc3d6c"; }
+    { locale = "ta"; arch = "linux-x86_64"; sha256 = "831bdc86dd2023f273c55276c81181027a0e701520aba397308ad662076a6ee4"; }
+    { locale = "te"; arch = "linux-i686"; sha256 = "3a33e92dc25ea10c55b5ca56345e5b8659c99ca335112e049ba9edb9017c09b4"; }
+    { locale = "te"; arch = "linux-x86_64"; sha256 = "3c071efaef763ea731caa1c6cb97357c13e07b112d923b3c3ef7ee22badbeca9"; }
+    { locale = "th"; arch = "linux-i686"; sha256 = "7982fa0407ff8f3a955c7a74b70fb9fd10cc06f7f06d429ce06cc60fe4b7b635"; }
+    { locale = "th"; arch = "linux-x86_64"; sha256 = "06f54c193ba9bbf19774e8d507c9e15414a9859584de806900ccb0bcb546178e"; }
+    { locale = "tr"; arch = "linux-i686"; sha256 = "c1565d373b951065a1c6ac827590f944e1524d5a91748bd42740ea25210ece31"; }
+    { locale = "tr"; arch = "linux-x86_64"; sha256 = "6d49988225ae1a662e1fd721910f445bf1c111bef6894153b2092a4117391bdb"; }
+    { locale = "uk"; arch = "linux-i686"; sha256 = "f03049ea0b8bd86d95e386bb79a90513087691b725a90e01fec4f7a54803ba0b"; }
+    { locale = "uk"; arch = "linux-x86_64"; sha256 = "5bac7c50bb2a850c208c8410a2deab0b37e03a02f33d52e3d4097ce2c8718d37"; }
+    { locale = "vi"; arch = "linux-i686"; sha256 = "ee6b3f27f68c3d37e8170c7222249c1459e4530f61438a0f1553fe36213c5ce7"; }
+    { locale = "vi"; arch = "linux-x86_64"; sha256 = "1cb80cac3b942d588e133ccad7ac8c77d3af31cf6ddd9676ffa7be130434788c"; }
+    { locale = "xh"; arch = "linux-i686"; sha256 = "86f7bab77885e5cf391d9dca758f8c1112bea9dd249dc7d2f184845da9df6316"; }
+    { locale = "xh"; arch = "linux-x86_64"; sha256 = "07d874163ace6a820dfca49829032efd1b1a612e76c14a012287db39841280b7"; }
+    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "27a7039cdd5be498d2de89e2993264c432e36309bb5c40bd519212de6f8b3469"; }
+    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "f65d8334d5fb6b7bdcb6b212c232e2bad3d8d2718d96dba7c149a6bb2add81c8"; }
+    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "1aab3b3aad0adbb72edc3db1780838bb2fdf80554eb9eb00fe7b50918bef843c"; }
+    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "b322ec6027b6760855520dbc40b6e934f931b64c0a859682e4014ee1bdb2b321"; }
+    { locale = "zu"; arch = "linux-i686"; sha256 = "f29d8c82b595edb03a42b0c8896e1880efe2fd14e87802501c4007088bf3ad9c"; }
+    { locale = "zu"; arch = "linux-x86_64"; sha256 = "bed6ddb23da87c4d7f469d92a1cec9817a41b51012bb30145227633b3265e998"; }
   ];
 
   arch = if stdenv.system == "i686-linux"
diff --git a/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb b/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb
index a768b1f8dff..7c38f275169 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb
+++ b/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb
@@ -83,6 +83,8 @@ puts(<<"EOH")
 , systemd
 }:
 
+assert stdenv.isLinux;
+
 let
   version = "#{real_version}";
   sources = [
diff --git a/pkgs/applications/networking/browsers/firefox/30.nix b/pkgs/applications/networking/browsers/firefox/30.nix
deleted file mode 100644
index 1e2c3e2cfb1..00000000000
--- a/pkgs/applications/networking/browsers/firefox/30.nix
+++ /dev/null
@@ -1,211 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
-, libjpeg, libpng, zlib, dbus, dbus_glib, bzip2, xlibs
-, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
-, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
-, hunspell, libevent, libstartup_notification, libvpx
-, cairo, gstreamer, gst_plugins_base, icu
-, debugBuild ? false
-, # If you want the resulting program to call itself "Firefox" instead
-  # of "Shiretoko" or whatever, enable this option.  However, those
-  # binaries may not be distributed without permission from the
-  # Mozilla Foundation, see
-  # http://www.mozilla.org/foundation/trademarks/.
-  enableOfficialBranding ? false
-}:
-
-assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
-
-rec {
-
-  firefoxVersion = "30.0";
-
-  xulVersion = "30.0"; # this attribute is used by other packages
-
-
-  src = fetchurl {
-    url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
-    sha1 = "bll9hxf31gvg9db6gxgmq25qsjif3p11";
-  };
-
-  commonConfigureFlags =
-    [ "--with-system-jpeg"
-      "--with-system-zlib"
-      "--with-system-bz2"
-      "--with-system-nspr"
-      "--with-system-nss"
-      "--with-system-libevent"
-      "--with-system-libvpx"
-      "--with-system-png"
-      # "--with-system-icu" # causes ‘ar: invalid option -- 'L'’ in Firefox 28.0
-      "--enable-system-ffi"
-      "--enable-system-hunspell"
-      "--enable-system-pixman"
-      "--enable-system-sqlite"
-      "--enable-system-cairo"
-      "--enable-gstreamer"
-      "--enable-startup-notification"
-      # "--enable-content-sandbox"            # available since 26.0, but not much info available
-      # "--enable-content-sandbox-reporter"   # keeping disabled for now
-      "--disable-crashreporter"
-      "--disable-tests"
-      "--disable-necko-wifi" # maybe we want to enable this at some point
-      "--disable-installer"
-      "--disable-updater"
-      "--disable-pulseaudio"
-    ] ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
-                        else [ "--disable-debug" "--enable-release"
-                               "--enable-optimize" "--enable-strip" ]);
-
-
-  xulrunner = stdenv.mkDerivation rec {
-    name = "xulrunner-${xulVersion}";
-
-    inherit src;
-
-    buildInputs =
-      [ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2
-        python dbus dbus_glib pango freetype fontconfig xlibs.libXi
-        xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
-        alsaLib nspr nss libnotify xlibs.pixman yasm mesa
-        xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
-        xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
-        hunspell libevent libstartup_notification libvpx cairo
-        gstreamer gst_plugins_base icu
-      ];
-
-    configureFlags =
-      [ "--enable-application=xulrunner"
-        "--disable-javaxpcom"
-      ] ++ commonConfigureFlags;
-
-    #enableParallelBuilding = true; # cf. https://github.com/NixOS/nixpkgs/pull/1699#issuecomment-35196282
-
-    preConfigure =
-      ''
-        export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
-
-        mkdir ../objdir
-        cd ../objdir
-        configureScript=../mozilla-release/configure
-      ''; # */
-
-    #installFlags = "SKIP_GRE_REGISTRATION=1";
-
-    preInstall = ''
-      # The following is needed for startup cache creation on grsecurity kernels
-      paxmark m ../objdir/dist/bin/xpcshell
-    '';
-
-    postInstall = ''
-      # Fix run-mozilla.sh search
-      libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
-      echo libDir: $libDir
-      test -n "$libDir"
-      cd $out/bin
-      rm xulrunner
-
-      for i in $out/lib/$libDir/*; do
-          file $i;
-          if file $i | grep executable &>/dev/null; then
-              echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
-              chmod a+x "$out/bin/$(basename "$i")";
-          fi;
-      done
-      for i in $out/lib/$libDir/*.so; do
-          patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
-      done
-
-      # For grsecurity kernels
-      paxmark m $out/lib/$libDir/{plugin-container,xulrunner}
-
-      for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do
-          wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir"
-      done
-
-      rm -f $out/bin/run-mozilla.sh
-    ''; # */
-
-    meta = {
-      description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.com/en-US/firefox/;
-    };
-
-    passthru = { inherit gtk; version = xulVersion; };
-  };
-
-
-  firefox = stdenv.mkDerivation rec {
-    name = "firefox-${firefoxVersion}";
-
-    inherit src;
-
-    enableParallelBuilding = true;
-
-    buildInputs =
-      [ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 python
-        dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
-        xlibs.pixman yasm mesa sqlite file unzip pysqlite
-        hunspell libevent libstartup_notification libvpx cairo
-        gstreamer gst_plugins_base icu
-      ];
-
-    patches = [
-      ./disable-reporter.patch # fixes "search box not working when built on xulrunner"
-      ./xpidl.patch
-    ];
-
-    propagatedBuildInputs = [xulrunner];
-
-    configureFlags =
-      [ "--enable-application=browser"
-        "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
-        "--enable-chrome-format=jar"
-      ]
-      ++ commonConfigureFlags
-      ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
-
-    makeFlags = [
-      "SYSTEM_LIBXUL=1"
-    ];
-
-    # Because preConfigure runs configure from a subdirectory.
-    configureScript = "../configure";
-
-    preConfigure =
-      ''
-        # Hack to work around make's idea of -lbz2 dependency
-        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
-          stdenv.lib.concatStringsSep ":"
-            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
-        }' ';'
-
-        # Building directly in the main source directory is not allowed.
-        mkdir obj_dir
-        cd obj_dir
-      '';
-
-    postInstall =
-      ''
-        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
-        cd "$out/lib/"firefox-*
-        rm firefox
-        echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox
-        chmod a+x firefox
-
-        # Put chrome.manifest etc. in the right place.
-        mv browser/* .
-        rmdir browser
-      ''; # */
-
-    meta = {
-      description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.com/en-US/firefox/;
-      maintainers = with stdenv.lib.maintainers; [ eelco wizeman ];
-    };
-
-    passthru = {
-      inherit gtk xulrunner nspr;
-      isFirefox3Like = true;
-    };
-  };
-}
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix
index e23a6d94ec1..3223f873bfb 100644
--- a/pkgs/applications/networking/browsers/firefox/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/default.nix
@@ -15,14 +15,14 @@
 
 assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
 
-let version = "31.0"; in
+let version = "32.0"; in
 
 stdenv.mkDerivation rec {
   name = "firefox-${version}";
 
   src = fetchurl {
     url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
-    sha1 = "a6c3e25ee3aeb7da42db2aaeb50a385d63532beb";
+    sha1 = "5cb7644af9741ebcdb3a21b777362913908c8f41";
   };
 
   buildInputs =
@@ -66,7 +66,8 @@ stdenv.mkDerivation rec {
     ]
     ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
                       else [ "--disable-debug" "--enable-release"
-                             "--enable-optimize" "--enable-strip" ])
+                             "--enable-optimize${lib.optionalString (stdenv.system == "i686-linux") "=-O1"}"
+                             "--enable-strip" ])
     ++ lib.optional enableOfficialBranding "--enable-official-branding";
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
index 55521a13f9c..32baa0b6a86 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
@@ -36,7 +36,7 @@
 
 let
   # -> http://get.adobe.com/flashplayer/
-  version = "11.2.202.400";
+  version = "11.2.202.406";
 
   src =
     if stdenv.system == "x86_64-linux" then
@@ -47,18 +47,20 @@ let
       else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
-        sha256 = "043bzjcqxjkjk68kba5nk77m59k6g71h32bypjpnwaigdgbhafyl";
+        sha256 = "05akcw89kz0cnhan6wp72banz2asmvqfhb2cw1krn66qgd7bl0x0";
       }
     else if stdenv.system == "i686-linux" then
-      if debug then {
+      if debug then
+        throw "flash debugging version is outdated and probably broken" /* {
         # The debug version also contains a player
         version = "11.1";
         url = http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_plugin_debug.i386.tar.gz;
         sha256 = "1z3649lv9sh7jnwl8d90a293nkaswagj2ynhsr4xmwiy7c0jz2lk";
-      } else rec {
+      }*/
+      else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
-        sha256 = "1xvfzm926rj0l2mq2kybrvykrv7bjfl3m7p5mvhj1586a3x1gb6h";
+        sha256 = "10f3842vi80kszj42f4c8sw7plrmvsin5k860cqvlzgdhndz8i4b";
       }
     else throw "Flash Player is not supported on this platform";
 
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
index afe0600d6f7..029df7e46de 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
@@ -13,6 +13,7 @@ let
     [ mesa
       xorg.libXt
       xorg.libX11
+      xorg.libXrender
       cairo
       libpng
       gtk
@@ -47,20 +48,20 @@ stdenv.mkDerivation rec {
   name = "google-talk-plugin-${version}";
 
   # You can get the upstream version and SHA-1 hash from the following URLs:
-  # http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages
-  # http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages
-  version = "5.1.5.0";
+  # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages | grep -E 'Version|SHA1'
+  # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages | grep -E 'Version|SHA1'
+  version = "5.4.2.0";
 
   src =
     if stdenv.system == "x86_64-linux" then
       fetchurl {
         url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb";
-        sha1 = "fc830f4c7f5816f4578ec73e6d4aef059ad4a0b1";
+        sha1 = "d75fad757750b4830c4e401ade92b4993e2a4ab2";
       }
     else if stdenv.system == "i686-linux" then
       fetchurl {
         url = "${baseURL}/google-talkplugin_${version}-1_i386.deb";
-        sha1 = "9b7043c3585b3479ba11aabb7b8af755a61df963";
+        sha1 = "410872377b0bdac06b580c5e1755a3a3c712144b";
       }
     else throw "Google Talk does not support your platform.";
 
@@ -72,22 +73,18 @@ stdenv.mkDerivation rec {
     ''
       plugins=$out/lib/mozilla/plugins
       mkdir -p $plugins
-      cp opt/google/talkplugin/libnp*.so $plugins
+      cp opt/google/talkplugin/*.so $plugins
 
-      patchelf --set-rpath "${makeLibraryPath [ stdenv.gcc.gcc xorg.libX11 ]}:${stdenv.gcc.gcc}/lib64" \
-        $plugins/libnpgoogletalk.so
+      for i in libnpgoogletalk.so libppgoogletalk.so libppo1d.so; do
+        patchelf --set-rpath "${makeLibraryPath [ stdenv.gcc.gcc xorg.libX11 ]}:${stdenv.gcc.gcc}/lib64" $plugins/$i
+      done
 
-      patchelf --set-rpath "$out/libexec/google/talkplugin/lib:${rpathPlugin}:${stdenv.gcc.gcc}/lib64" \
-        $plugins/libnpgtpo3dautoplugin.so
+      for i in libgoogletalkremoting.so libnpo1d.so; do
+        patchelf --set-rpath "$out/libexec/google/talkplugin/lib:${rpathPlugin}:${stdenv.gcc.gcc}/lib64" $plugins/$i
+      done
 
       mkdir -p $out/libexec/google/talkplugin
-      cp -prd opt/google/talkplugin/{GoogleTalkPlugin,locale,windowpicker.glade} $out/libexec/google/talkplugin/
-
-      mkdir -p $out/libexec/google/talkplugin/lib
-      cp opt/google/talkplugin/lib/libCg* $out/libexec/google/talkplugin/lib/
-
-      patchelf --set-rpath "$out/libexec/google/talkplugin/lib" \
-        $out/libexec/google/talkplugin/lib/libCgGL.so
+      cp -prd opt/google/talkplugin/{data,GoogleTalkPlugin,locale,remoting24x24.png,windowpicker.glade} $out/libexec/google/talkplugin/
 
       patchelf \
         --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
diff --git a/pkgs/applications/networking/browsers/w3m/default.nix b/pkgs/applications/networking/browsers/w3m/default.nix
index 5f046f7b732..bf14e7e5341 100644
--- a/pkgs/applications/networking/browsers/w3m/default.nix
+++ b/pkgs/applications/networking/browsers/w3m/default.nix
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = http://w3m.sourceforge.net/;
     description = "A text-mode web browser";
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/applications/networking/copy-com/default.nix b/pkgs/applications/networking/copy-com/default.nix
new file mode 100644
index 00000000000..98679e9609e
--- /dev/null
+++ b/pkgs/applications/networking/copy-com/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, coreutils, fetchurl, patchelf, gcc }:
+
+let
+  arch = if stdenv.system == "x86_64-linux" then "x86_64"
+    else if stdenv.system == "i686-linux" then "x86"
+    else if stdenv.system == "armv6-linux" then "armv6h"
+    else throw "Copy.com client for: ${stdenv.system} not supported!";
+
+  interpreter = if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2"
+    else if stdenv.system == "i686-linux" then "ld-linux.so.2"
+    else if stdenv.system == "armv6-linux" then "ld-linux.so.2"
+    else throw "Copy.com client for: ${stdenv.system} not supported!";
+
+  appdir = "opt/copy";
+  
+in stdenv.mkDerivation {
+  
+  name = "copy-com-1.4";
+
+  src = fetchurl {
+    # Note: copy.com doesn't version this file. Annoying.
+    url = "https://copy.com/install/linux/Copy.tgz";
+    sha256 = "f8da6dbfdaac71c4c4e9102671cf8fbe4ac5cb1dac63464783b8b62a7939b6fa";
+  };
+
+  buildInputs = [ coreutils patchelf ];
+
+  phases = "unpackPhase installPhase";
+
+  installPhase = ''
+    mkdir -p $out/opt
+    cp -r ${arch} "$out/${appdir}"
+    ensureDir "$out/bin"
+    ln -s "$out/${appdir}/CopyConsole" "$out/bin/copy_console"
+    ln -s "$out/${appdir}/CopyAgent" "$out/bin/copy_agent"
+    ln -s "$out/${appdir}/CopyCmd" "$out/bin/copy_cmd"
+    patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \
+      "$out/${appdir}/CopyConsole"
+
+    RPATH=${gcc.gcc}/lib:$out/${appdir}
+    echo "updating rpaths to: $RPATH"
+    find "$out/${appdir}" -type f -a -perm +0100 \
+      -print -exec patchelf --force-rpath --set-rpath "$RPATH" {} \;
+
+
+
+  '';
+
+  meta = {
+    homepage = http://copy.com;
+    description = "Copy.com Client";
+    # Closed Source unfortunately.
+    license = stdenv.lib.licenses.unfree;
+    maintainers = with stdenv.lib.maintainers; [ nathan-gs ];
+    # NOTE: Copy.com itself only works on linux, so this is ok.
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/ike/default.nix b/pkgs/applications/networking/ike/default.nix
index 48f277ad4c9..48f277ad4c9 100644
--- a/pkgs/applications/ike/default.nix
+++ b/pkgs/applications/networking/ike/default.nix
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index cf10c1e6fe2..8685e704af4 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -1,19 +1,23 @@
 { fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr }:
 
+with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "bitlbee-3.2";
+  name = "bitlbee-3.2.2";
 
   src = fetchurl {
     url = "mirror://bitlbee/src/${name}.tar.gz";
-    sha256 = "1b43828e906f5450993353f2ebecc6c038f0261c4dc3f1722ebafa6ea3e62030";
+    sha256 = "13jmcxxgli82wb2n4hs091159xk8rgh7nb02f478lgpjh6996f5s";
   };
 
   buildInputs = [ gnutls glib pkgconfig libotr ]
-    ++ stdenv.lib.optional doCheck check;
+    ++ optional doCheck check;
 
-  configureFlags = [ "--otr=1" ];
+  configureFlaags = [
+    "--gcov=1"
+    "--otr=1"
+    "--ssl=gnutls"
+  ];
 
-  preCheck = "mkdir tests/.depend";
   doCheck = true;
 
   meta = {
@@ -31,9 +35,9 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = http://www.bitlbee.org/;
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
 
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    maintainers = with maintainers; [ ludo wkennington ];
+    platforms = platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/ekiga/default.nix b/pkgs/applications/networking/instant-messengers/ekiga/default.nix
index e46956f3cca..a00a68ff9f2 100644
--- a/pkgs/applications/networking/instant-messengers/ekiga/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ekiga/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cyrus_sasl, gettext, openldap, ptlib, opal, libXv, rarian, intltool
+{ stdenv, glib, fetchurl, cyrus_sasl, gettext, openldap, ptlib, opal, libXv, rarian, intltool
 , perl, perlXMLParser, evolution_data_server, gnome_doc_utils, avahi, autoreconfHook
 , libsigcxx, gtk, dbus_glib, libnotify, libXext, xextproto, gnome3, boost, libsecret
 , pkgconfig, libxml2, videoproto, unixODBC, db, nspr, nss, zlib, hicolor_icon_theme
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ cyrus_sasl gettext openldap ptlib opal libXv rarian intltool
                   perl perlXMLParser evolution_data_server gnome_doc_utils avahi
                   libsigcxx gtk dbus_glib libnotify libXext xextproto sqlite
-                  gnome3.libsoup
+                  gnome3.libsoup glib gnome3.gnome_icon_theme_symbolic
                   hicolor_icon_theme gnome3.gnome_icon_theme boost autoreconfHook
                   pkgconfig libxml2 videoproto unixODBC db nspr nss zlib libsecret
                   libXrandr randrproto which libxslt libtasn1 gmp nettle makeWrapper ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram "$out"/bin/ekiga \
-      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/instant-messengers/telegram-cli/default.nix b/pkgs/applications/networking/instant-messengers/telegram-cli/default.nix
index b0302ba8e0b..812f00829e2 100644
--- a/pkgs/applications/networking/instant-messengers/telegram-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram-cli/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libconfig lua5_2 openssl readline zlib ];
 
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; # CPPFunction
+
   installPhase = ''
     mkdir -p $out/bin
     cp ./telegram $out/bin/telegram-wo-key
diff --git a/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/pkgs/applications/networking/instant-messengers/twinkle/default.nix
index 2e6b904c134..c7f33c1f580 100644
--- a/pkgs/applications/networking/instant-messengers/twinkle/default.nix
+++ b/pkgs/applications/networking/instant-messengers/twinkle/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_LINK = "-Wl,--as-needed -lboost_regex -lasound -lzrtpcpp -lspeex -lspeexdsp";
 
-  enableParallelBuilding = true;
+  #enableParallelBuilding = true; # fatal error: messageform.h: No such file or directory
 
   meta = with stdenv.lib; {
     homepage = http://www.twinklephone.com/;
diff --git a/pkgs/applications/networking/linssid/default.nix b/pkgs/applications/networking/linssid/default.nix
new file mode 100644
index 00000000000..2b4c5f564be
--- /dev/null
+++ b/pkgs/applications/networking/linssid/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, qt5, pkgconfig, boost, wirelesstools, iw }:
+
+stdenv.mkDerivation rec {
+  name = "linssid-${version}";
+  version = "2.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/linssid/LinSSID_${version}/linssid_${version}.orig.tar.gz";
+    sha256 = "13d35rlcjncd8lx3khkgn9x8is2xjd5fp6ns5xsn3w6l4xj9b4gl";
+  };
+
+  buildInputs = [ qt5 pkgconfig boost ];
+
+  postPatch = ''
+    sed -e "s|/usr/include/|/nonexistent/|g" -i linssid-app/*.pro
+    sed -e 's|^LIBS .*= .*libboost_regex.a|LIBS += -lboost_regex|' \
+        -e "s|/usr|$out|g" \
+        -i linssid-app/linssid-app.pro linssid-app/linssid.desktop
+    sed -e "s|\.\./\.\./\.\./\.\./usr|$out|g" -i linssid-app/*.ui
+
+    sed -e "s|iwlist|${wirelesstools}/sbin/iwlist|g" -i linssid-app/Getter.cpp
+    sed -e "s|iw dev|${iw}/sbin/iw dev|g" -i linssid-app/MainForm.cpp
+  '';
+
+  configurePhase = "qmake linssid.pro";
+
+  meta = with stdenv.lib; {
+    description = "Graphical wireless scanning for Linux";
+    homepage = http://sourceforge.net/projects/linssid/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/mailpile/default.nix b/pkgs/applications/networking/mailreaders/mailpile/default.nix
index 1e68d2e90b8..0f51719e979 100644
--- a/pkgs/applications/networking/mailreaders/mailpile/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailpile/default.nix
@@ -1,16 +1,26 @@
-{ stdenv, fetchgit, buildPythonPackage, pythonPackages }:
+{ stdenv, fetchurl, pythonPackages, gnupg1orig, makeWrapper }:
 
-buildPythonPackage rec {
-  name = "mailpile-dev";
+pythonPackages.buildPythonPackage rec {
+  name = "mailpile-${version}";
+  version = "0.4.0";
 
-  src = fetchgit {
-    url = "https://github.com/pagekite/Mailpile.git";
-    rev = "6e19c1942541dbdefb5155db5f2583bf3ed22aeb";
-    sha256 = "04idlbjkasigq3vslcv33kg21rjyklm2yl8pyrf5h94lzabbl1fs";
+  src = fetchurl {
+    url = "https://github.com/pagekite/Mailpile/archive/${version}.zip";
+    sha256 = "1di859lnhmlih4byfpsj8x6wjvzrddw0ng0w69bsj5f9bdy4rgq4";
   };
+  
+  patchPhase = ''
+    substituteInPlace setup.py --replace "data_files.append((dir" "data_files.append(('lib/${pythonPackages.python.libPrefix}/site-packages/' + dir"
+  '';
 
   propagatedBuildInputs = with pythonPackages; [
-    pillow jinja2 spambayes pythonPackages."lxml-2.3.6" python.modules.readline or null];
+    makeWrapper pillow jinja2 spambayes pythonPackages.lxml
+    python.modules.readline pgpdump gnupg1orig
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/mailpile --prefix PATH ":" "${gnupg1orig}/bin"
+  '';
 
   meta = with stdenv.lib; {
     description = "A modern, fast web-mail client with user-friendly encryption and privacy features";
@@ -19,4 +29,4 @@ buildPythonPackage rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.iElectric ];
   };
-}
+}
\ No newline at end of file
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index c0c11ff1f1c..0827ca2cc75 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -13,7 +13,7 @@
   enableOfficialBranding ? false
 }:
 
-let version = "31.0"; in
+let version = "31.1.0"; in
 let verName = "${version}"; in
 
 stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "ftp://ftp.mozilla.org/pub/thunderbird/releases/${verName}/source/thunderbird-${verName}.source.tar.bz2";
-    sha1 = "0fe6666fddd4db82ec2e389f30c5ea11d4f72be5";
+    sha1 = "08d231541a80a79180826f98dde732c5796191f4";
   };
 
   buildInputs = # from firefox30Pkgs.xulrunner, but without gstreamer and libvpx
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index e38d5188dc2..fbf8955765a 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -6,14 +6,14 @@
 }:
 
 let pname = "liferea";
-    version = "1.10.10";
+    version = "1.10.11";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
-    sha256 = "0y01lhw0fn5m0j9ykz8x7i0wchjqbxp33cvvprsfxfwzz4x31jm4";
+    sha256 = "0mf5mpdj60j8if4qi5656l4pzhgwzhshf31yp0h53l1j442v109a";
   };
 
   buildInputs = with gst_all_1; [
@@ -33,7 +33,6 @@ stdenv.mkDerivation rec {
     for f in "$out"/bin/*; do
       wrapProgram "$f" \
         --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pygobject3})" \
-        --prefix LD_LIBRARY_PATH : "${gnome3.libgnome_keyring}/lib" \
         --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
         --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules:${glib_networking}/lib/gio/modules" \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_icon_theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 00a00530df4..8d32c1e5d86 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -7,37 +7,33 @@ assert enableACLs -> acl != null;
 
 stdenv.mkDerivation rec {
   name = "rsync-${version}";
-  version = "3.1.0";
+  version = "3.1.1";
 
   mainSrc = fetchurl {
+    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
     url = "http://rsync.samba.org/ftp/rsync/src/rsync-${version}.tar.gz";
-    sha256 = "0kirw8wglqvwi1v8bwxp373g03xg857h59j5k3mmgff9gzvj7jl1";
+    sha256 = "0896iah6w72q5izpxgkai75bn40dqkqifi2ivcxjzr2zrx7kdr3x";
   };
 
   patchesSrc = fetchurl {
+    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
     url = "http://rsync.samba.org/ftp/rsync/rsync-patches-${version}.tar.gz";
-    sha256 = "0sl8aadpjblvbb05vgais40z90yzhr09rwz0cykjdiv452gli75p";
+    sha256 = "0iij996xbyn20yr4w3kv3rw3cx4jwkg2k85x6w5hb5xlgsis8zjl";
   };
 
   srcs = [mainSrc] ++ stdenv.lib.optional enableCopyDevicesPatch patchesSrc;
-  patches = [(fetchurl {
-      url = "https://git.samba.org/?p=rsync.git;a=commitdiff_plain;h=0dedfbce2c1b851684ba658861fe9d620636c56a";
-      sha256 = "0j1pqmwsqc5mh815x28izi4baki2y2r5q8k7ma1sgs4xsgjc4rk8";
-      name = "CVE-2014-2855.patch";
-    })]
-    ++ stdenv.lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";
+  patches = stdenv.lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";
 
   buildInputs = stdenv.lib.optional enableACLs acl;
   nativeBuildInputs = [perl];
 
   configureFlags = "--with-nobody-group=nogroup";
 
-  meta = {
-    homepage = http://samba.anu.edu.au/rsync/;
+  meta = with stdenv.lib; {
+    homepage = http://rsync.samba.org/;
     description = "A fast incremental file transfer utility";
-    license = stdenv.lib.licenses.gpl3Plus;
-
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.simons stdenv.lib.maintainers.emery ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ simons emery ];
   };
 }
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
new file mode 100644
index 00000000000..658f460793f
--- /dev/null
+++ b/pkgs/applications/office/zim/default.nix
@@ -0,0 +1,103 @@
+{ stdenv, lib, fetchurl, buildPythonPackage, pythonPackages, pygtk, pygobject, python }:
+
+#
+# TODO: Declare configuration options for the following optional dependencies:
+#  -  File stores: hg, git, bzr
+#  -  Included plugins depenencies: dot, ditaa, dia, any other?
+#  -  pyxdg: Need to make it work first (see setupPyInstallFlags).
+#
+
+buildPythonPackage rec {
+  name = "zim-${version}";
+  version = "0.60";
+  namePrefix = "";
+  
+  src = fetchurl {
+    url = "http://zim-wiki.org/downloads/zim-0.61.tar.gz";
+    sha256 = "0jncxkf83bwra3022jbvjfwhk5w8az0jlwr8nsvm7wa1zfrajhsq";
+  };
+
+  propagatedBuildInputs = [ pythonPackages.sqlite3 pygtk /*pythonPackages.pyxdg*/ pygobject ];
+
+  preBuild = ''
+    mkdir -p /tmp/home
+    export HOME="/tmp/home"
+  '';
+  
+  setupPyInstallFlags = ["--skip-xdg-cmd"];
+  
+  #
+  # Exactly identical to buildPythonPackage's version but for the
+  # `--old-and-unmanagable`, which I removed. This was removed because
+  # this is a setuptools specific flag and as zim is overriding 
+  # the install step, setuptools could not perform its monkey
+  # patching trick for the command. Alternate solutions were to
+  #
+  #  -  Remove the custom install step (tested as working but
+  #	also remove the possibility of performing the xdg-cmd
+  #     stuff).
+  #  -  Explicitly replace distutils import(s) by their setuptools
+  #	equivalent (untested). 
+  #
+  # Both solutions were judged unsatisfactory as altering the code
+  # would be required.
+  #
+  # Note that a improved solution would be to expose the use of 
+  # the `--old-and-unmanagable` flag as an option of passed to the
+  # buildPythonPackage function.
+  #
+  # Also note that I stripped all comments.
+  #
+  installPhase = ''
+    runHook preInstall
+
+    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" ${lib.concatStringsSep " " setupPyInstallFlags}
+
+    eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
+    if [ -e "$eapth" ]; then
+	# move colliding easy_install.pth to specifically named one
+	mv "$eapth" $(dirname "$eapth")/${name}.pth
+    fi
+
+    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+
+    runHook postInstall
+  '';
+
+  # FIXME: this is quick and dirty hack, because zim expects the
+  # path to the executable in argv[0] therefore the wrapper is
+  # modified accordingly.
+  postFixup = ''
+    wrapPythonPrograms
+
+    sed -i "s#sys\.argv\[0\] = 'zim'#sys.argv[0] = '$out/bin/zim'#g" \
+      $out/bin/.zim-wrapped
+
+    if test -e $out/nix-support/propagated-build-inputs; then
+        ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
+    fi
+
+    createBuildInputsPth build-inputs "$buildInputStrings"
+    for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
+      if test -e $out/nix-support/$inputsfile; then
+          createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
+      fi
+    done
+  '';
+  
+  # Testing fails.
+  doCheck = false;
+
+  meta = {
+      description = "A desktop wiki";
+      homepage = http://zim-wiki.org;
+      license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
+
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index 0a5ef909904..00fda8bf1c4 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -3,7 +3,7 @@
 assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux");
 
 let
-  version = "4.0.21.2";
+  version = "4.0.22";
   arch = if stdenv.system == "x86_64-linux"
            then "linux-x86_64"
            else "linux-i686";
@@ -14,8 +14,8 @@ stdenv.mkDerivation {
   src = fetchurl {
     url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2";
     sha256 = if stdenv.system == "x86_64-linux"
-               then "1df101j2qwdp001m8x3ihbzz2j23x43804k8ww749y09d1ydb4dx"
-               else "1bcrpl6gdxlygd5ppyrhw42q24kjcakma3qv6mpzgp91phkf6g30";
+               then "0dq4x1cc0lnhs7g6w85qjdlb7sajr13mr2zcf4yvrciwhwy3r1i1"
+               else "0s4j2karaq85fwnd1niz8hzx5k71cqs493g38pg337i3iwxad9hg";
   };
 
   # Strip the bundled xulrunner
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index c761f619642..a2f07bfe43d 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, gtk, gperf, pkgconfig, bzip2, tcl, tk, judy, xz}:
 stdenv.mkDerivation rec {
-  name = "gtkwave-3.3.53";
+  name = "gtkwave-3.3.61";
 
   src = fetchurl {
     url = "mirror://sourceforge/gtkwave/${name}.tar.gz";
-    sha256 = "1jmrk2p2azjca250h2bi4c8v0cp1gqd3c027dx18sxy3cgw1fsp1";
+    sha256 = "1f8cw7xfr83mc5j6vq53jzzyw3n6pqdmrj4a7pm53m1wvjgk4w3v";
   };
 
   buildInputs = [ gtk gperf pkgconfig bzip2 tcl tk judy xz ];
diff --git a/pkgs/applications/science/logic/coq/HEAD.nix b/pkgs/applications/science/logic/coq/HEAD.nix
index ed922b3aedb..1be95a17eed 100644
--- a/pkgs/applications/science/logic/coq/HEAD.nix
+++ b/pkgs/applications/science/logic/coq/HEAD.nix
@@ -3,7 +3,7 @@
 {stdenv, fetchgit, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
 
 let 
-  version = "8.5pre-c70d5b2";
+  version = "8.5pre-fbbb86b";
   buildIde = lablgtk != null;
   ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
   idePath = if buildIde then ''
@@ -16,8 +16,8 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = git://scm.gforge.inria.fr/coq/coq.git;
-    rev = "c70d5b27ad5872c74e20b6c997383fb4462a68dc";
-    sha256 = "02wks2aivgjcf4h3ss9rn683vyawz8gl8rbysdq7awxh062316l2";
+    rev = "f7c6b864a509a4cca11cac5fbd5d37efc";
+    sha256 = "0v84pjxx361afkipgwkc4d2wmn7v1c5n2y8d264kc26i58cgrrf4";
   };
 
   buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];
diff --git a/pkgs/applications/science/math/fricas/default.nix b/pkgs/applications/science/math/fricas/default.nix
index 6e187843404..98012934f38 100644
--- a/pkgs/applications/science/math/fricas/default.nix
+++ b/pkgs/applications/science/math/fricas/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.bsd3;
 
     hydraPlatforms = stdenv.lib.platforms.linux;
-    maintainers = stdenv.lib.maintainers.sprock;
+    maintainers = [ stdenv.lib.maintainers.sprock ];
   };
 }
diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix
index 576a28b054f..e59bb9fe666 100644
--- a/pkgs/applications/science/math/pari/default.nix
+++ b/pkgs/applications/science/math/pari/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, gmp, readline }:
 
 stdenv.mkDerivation rec {
-  name = "pari-2.5.5";
+  version = "2.7.1";
+  name = "pari-${version}";
 
   src = fetchurl {
     url = "http://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz";
-    sha256 = "058nw1fhggy7idii4f124ami521lv3izvngs9idfz964aks8cvvn";
+    sha256 = "1gj1rddi22hinzwy7r6hljgbi252wwwyd6gapg4hvcn0ycc7jqyc";
   };
 
   buildInputs = [gmp readline];
@@ -21,5 +22,9 @@ stdenv.mkDerivation rec {
     license     = "GPLv2+";
     maintainers = with stdenv.lib.maintainers; [ertes raskin];
     platforms   = stdenv.lib.platforms.linux;
+
+    inherit version;
+    downloadPage = "http://pari.math.u-bordeaux.fr/download.html";
+    updateWalker = true;
   };
 }
diff --git a/pkgs/applications/version-management/diffuse/default.nix b/pkgs/applications/version-management/diffuse/default.nix
index 92cdddd8dcb..2bd4b584724 100644
--- a/pkgs/applications/version-management/diffuse/default.nix
+++ b/pkgs/applications/version-management/diffuse/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, python, pygtk, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.7";
+  version = "0.4.8";
   name = "diffuse-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/diffuse/diffuse/${version}/${name}.tar.bz2";
-    sha256 = "1b1riy9wix2gby78v9i30ijycjhkcyqsllggjakbkx26sb5nmxdh";
+    sha256 = "0ayz8bywmk1z3zicb0a7hbxliqpc7xym60s0mawzqllkpadvgly1";
   };
 
   buildInputs = [ python pygtk makeWrapper ];
diff --git a/pkgs/applications/version-management/git-and-tools/cgit/default.nix b/pkgs/applications/version-management/git-and-tools/cgit/default.nix
index fb7232794c5..383114f1c3c 100644
--- a/pkgs/applications/version-management/git-and-tools/cgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/cgit/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "cgit-${version}";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchurl {
     url = "http://git.zx2c4.com/cgit/snapshot/${name}.tar.xz";
-    sha256 = "0bci1p9spf79wirc4lk36cndcx2b9wj0fq1l58rlp6r563is77l3";
+    sha256 = "13ac4rqmxc87ymh78ff8kbw1s252nbid71l0ircmj9kmh9jqwncl";
   };
 
   # cgit is tightly coupled with git and needs a git source tree to build.
diff --git a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
index 62132271ec9..601e065bfff 100644
--- a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
@@ -17,8 +17,8 @@
 
 cabal.mkDerivation (self: {
   pname = "git-annex";
-  version = "5.20140817";
-  sha256 = "0cly19rd250qiikzszgad2r5xz570kr00vcb8ij6icbm53pw3hxc";
+  version = "5.20140831";
+  sha256 = "0s2pc8bm3c79dsbafwp2pc5yghzh6vdzs9sj0mfq6rxiv27wrrwq";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
@@ -35,10 +35,7 @@ cabal.mkDerivation (self: {
   ];
   buildTools = [ bup curl git gnupg1 lsof openssh perl rsync which ];
   configureFlags = "-fAssistant -fProduction";
-  preConfigure = ''
-    export HOME="$NIX_BUILD_TOP/tmp"
-    mkdir "$HOME"
-  '';
+  preConfigure = "export HOME=$TEMPDIR";
   installPhase = "./Setup install";
   checkPhase = ''
     cp dist/build/git-annex/git-annex git-annex
@@ -51,5 +48,6 @@ cabal.mkDerivation (self: {
     license = self.stdenv.lib.licenses.gpl3;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ simons ];
+    broken = true;
   };
 })
diff --git a/pkgs/applications/version-management/git-and-tools/hub/default.nix b/pkgs/applications/version-management/git-and-tools/hub/default.nix
index 28484322d35..8d578c2b466 100644
--- a/pkgs/applications/version-management/git-and-tools/hub/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "hub-${version}";
-  version = "1.12.0";
+  version = "1.12.2";
 
   src = fetchurl {
     url = "https://github.com/github/hub/archive/v${version}.tar.gz";
-    sha256 = "1lbl4dl7483q320qw4jm6mqq4dbbk3xncypxgg86zcdigxvw6igv";
+    sha256 = "112yfv9xklsmwv859kypv7hz0a6dj5hkrmjp7z1h40nrljc9mi79";
   };
 
   buildInputs = [ rake makeWrapper ];
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "A GitHub specific wrapper for git";
     homepage = "http://defunkt.io/hub/";
     license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
index b0cfcaeb110..f30a47a78b9 100644
--- a/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, ruby, makeWrapper, git }:
 
 let
-  version = "2.2.5";
+  version = "2.3.2";
 in
 stdenv.mkDerivation {
   name = "svn2git-${version}";
 
   src = fetchurl {
     url = "https://github.com/nirvdrum/svn2git/archive/v${version}.tar.gz";
-    sha256 = "1afmrr80357pg3kawyghhc55z1pszaq8fyrrjmxa6nr9dcrqjwwh";
+    sha256 = "1484mpcabqf9kr6xdpdgb1npkqav1bcah3w5lxj2djjx4bjf2g3y";
   };
 
   buildInputs = [ ruby makeWrapper ];
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index 239fa87d32c..7e93893e7b1 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -3,11 +3,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "tig-2.0.2";
+  name = "tig-2.0.3";
 
   src = fetchurl {
     url = "http://jonas.nitro.dk/tig/releases/${name}.tar.gz";
-    sha256 = "0gi7iqiij37b0d3izxymxaw5ns2mv1y7qfic0fhl7xj4s2rz075r";
+    sha256 = "1i4nizachq0ncq0d8c87ly50zk51vgzb5a8amqscywdp1kc0zb7s";
+
   };
 
   buildInputs = [ ncurses asciidoc xmlto docbook_xsl readline ];
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 951ea29a7fc..145496cb49c 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation {
     description = "Visual diff and merge tool";
     homepage = http://meld.sourceforge.net;
     license = stdenv.lib.licenses.gpl2Plus;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ stdenv.lib.platforms.darwin;
   };
 }
diff --git a/pkgs/applications/version-management/smartgithg/default.nix b/pkgs/applications/version-management/smartgithg/default.nix
new file mode 100644
index 00000000000..a3d4783d20d
--- /dev/null
+++ b/pkgs/applications/version-management/smartgithg/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, lib, makeWrapper
+, jdk
+, gtk, glib
+, libXtst
+, git, mercurial, subversion
+, which
+}:
+
+let
+  the_version = "6_0_6";
+
+in
+
+stdenv.mkDerivation rec {
+  name = "smartgithg-${the_version}";
+
+  src = fetchurl {
+    url = "http://www.syntevo.com/download/smartgithg/" +
+          "smartgithg-generic-${the_version}.tar.gz";
+    sha256 = "13e41560138ef18395fbe0bf56d4d29e8614eee004d51d7dd03381080d8426e6";
+  };
+
+  buildInputs = [
+    makeWrapper
+    jdk
+  ];
+
+  buildCommand = let
+    pkg_path = "$out/${name}";
+    bin_path = "$out/bin";
+    runtime_paths = lib.makeSearchPath "bin" [
+      jdk
+      git mercurial subversion
+      which
+    ];
+    runtime_lib_paths = lib.makeLibraryPath [
+      gtk glib
+      libXtst
+    ];
+  in ''
+    tar xvzf $src
+    mkdir -pv $out
+    # unpacking should have produced a dir named ${name}
+    cp -a ${name} $out
+    mkdir -pv ${bin_path}
+    makeWrapper ${pkg_path}/bin/smartgithg.sh ${bin_path}/smartgithg \
+      --prefix PATH : ${runtime_paths} \
+      --prefix LD_LIBRARY_PATH : ${runtime_lib_paths} \
+      --prefix JDK_HOME : ${jdk}/lib/openjdk
+    patchShebangs $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GUI for Git, Mercurial, Subversion";
+    homepage = http://www.syntevo.com/smartgithg/;
+    license = licenses.unfree;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 7526bb5f043..283ea759153 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -17,13 +17,13 @@ assert javahlBindings -> jdk != null && perl != null;
 
 stdenv.mkDerivation rec {
 
-  version = "1.8.9";
+  version = "1.8.10";
 
   name = "subversion-${version}";
 
   src = fetchurl {
     url = "mirror://apache/subversion/${name}.tar.bz2";
-    sha1 = "424ee12708f39a126efd905886666083dcc4eeaf";
+    sha256 = "1k3xskg2kjfp3zipl46lqx4fq4lhqnswd79qxp1kfhwplz401j8w";
   };
 
   buildInputs = [ zlib apr aprutil sqlite ]
diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix
index c06aa0a036c..a2089e04e70 100644
--- a/pkgs/applications/video/aegisub/default.nix
+++ b/pkgs/applications/video/aegisub/default.nix
@@ -10,8 +10,7 @@
 , openalSupport ? false, openal ? null
 , alsaSupport ? true, alsaLib ? null
 , pulseaudioSupport ? true, pulseaudio ? null
-, portaudioSupport ? false, portaudio ? null
-}:
+, portaudioSupport ? false, portaudio ? null }:
 
 assert spellChecking -> (hunspell != null);
 assert automationSupport -> (lua != null);
@@ -62,6 +61,5 @@ stdenv.mkDerivation rec {
               # - so the resulting program will be GPL
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
-
   };
 }
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index db1ced49166..a9f9c78d332 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -22,8 +22,7 @@
 # for Youtube support
 , quviSupport ? false, libquvi ? null
 , cacaSupport ? false, libcaca ? null
-, vaapiSupport ? false, libva ? null
-}:
+, vaapiSupport ? false, libva ? null }:
 
 assert x11Support -> (libX11 != null && libXext != null && mesa != null && libXxf86vm != null);
 assert xineramaSupport -> (libXinerama != null && x11Support);
@@ -114,15 +113,17 @@ stdenv.mkDerivation rec {
     ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
     '';
 
-  meta = {
+  meta = with stdenv.lib;{
     description = "A movie player that supports many video formats (MPlayer and mplayer2 fork)";
     longDescription = ''
-    mpv is a free and open-source general-purpose video player, based on the MPlayer and mplayer2 projects, with great improvements above both.
+      mpv is a free and open-source general-purpose video player,
+      based on the MPlayer and mplayer2 projects, with great
+      improvements above both.
     '';
-    homepage = "http://mpv.io";
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.linux;
+    homepage = http://mpv.io;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
 
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 51baa32f61e..79fd26204a9 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "shotcut-${version}";
-  version = "14.08";
+  version = "14.09";
 
   src = fetchurl {
     url = "https://github.com/mltframework/shotcut/archive/v${version}.tar.gz";
-    sha256 = "0klcvpgp2l6xcdjy1gg7a5s8mx0mm347zdf26q6kk685pldlvkyj";
+    sha256 = "1504ds3ppqmpg84nb2gb74qndqysjwn3xw7n8xv19kd1pppnr10f";
   };
 
   buildInputs = [ SDL frei0r gettext makeWrapper mlt pkgconfig qt5 ];
diff --git a/pkgs/applications/video/subtitleeditor/default.nix b/pkgs/applications/video/subtitleeditor/default.nix
index c1c11357ca0..7c42aebf2bc 100644
--- a/pkgs/applications/video/subtitleeditor/default.nix
+++ b/pkgs/applications/video/subtitleeditor/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
       '';
     homepage = http://home.gna.org/subtitleeditor;
     license = stdenv.lib.licenses.gpl3;
-    maintainers = stdenv.lib.maintainers.plcplc;
+    maintainers = [ stdenv.lib.maintainers.plcplc ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/video/wxcam/default.nix b/pkgs/applications/video/wxcam/default.nix
new file mode 100644
index 00000000000..561ab151682
--- /dev/null
+++ b/pkgs/applications/video/wxcam/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl
+, pkgconfig
+, intltool
+, libX11, libXv, libSM
+, gtk, libglade
+, wxGTK
+, perlXMLParser
+, xvidcore
+, mjpegtools
+, alsaLib
+, libv4l
+, cimg }:
+
+stdenv.mkDerivation rec {
+
+  name = "wxcam-${version}";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/project/wxcam/wxcam/${version}/${name}.tar.gz";
+    sha256 = "1765bvc65fpzn9ycnnj5hais9xkx9v0sm6a878d35x54bpanr859";
+  };
+
+  buildInputs = with stdenv.lib;
+  [ pkgconfig intltool libX11 libXv libSM gtk libglade wxGTK perlXMLParser xvidcore mjpegtools alsaLib libv4l cimg ];
+
+  NIX_CFLAGS_COMPILE="-I ${cimg}/include/cimg";
+
+  postUnpack = ''
+    sed -ie 's|/usr/share/|'"$out/share/"'|g' $sourceRoot/Makefile.in
+  '';
+
+  installPhase = ''
+    make install prefix="$out" wxcamdocdir="$out/share/doc/wxcam"
+  '';    
+  
+  meta = with stdenv.lib; {
+    description = "An open-source, wxGTK-based webcam app for Linux"; 
+    longDescription = ''
+    wxCam is a webcam application for linux. It supports video recording
+    (avi uncompressed and Xvid formats), snapshot taking, and some special
+    commands for philips webcams, so you can also use it for astronomy purposes.
+    It supports both video4linux 1 and 2 drivers,
+    so it should work on a very large number of devices.
+    '';
+    homepage = http://wxcam.sourceforge.net/;
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/xbmc/default.nix b/pkgs/applications/video/xbmc/default.nix
index 875ed48c102..6d192c967f7 100644
--- a/pkgs/applications/video/xbmc/default.nix
+++ b/pkgs/applications/video/xbmc/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
           --prefix PATH ":" "${xdpyinfo}/bin" \
           --prefix LD_LIBRARY_PATH ":" "${curl}/lib" \
           --prefix LD_LIBRARY_PATH ":" "${systemd}/lib" \
+          --prefix LD_LIBRARY_PATH ":" "${libmad}/lib" \
           --prefix LD_LIBRARY_PATH ":" "${libvdpau}/lib"
       done
     '';
diff --git a/pkgs/applications/virtualization/8086tiny/default.nix b/pkgs/applications/virtualization/8086tiny/default.nix
index a16f052f622..15d98dc9be5 100644
--- a/pkgs/applications/virtualization/8086tiny/default.nix
+++ b/pkgs/applications/virtualization/8086tiny/default.nix
@@ -1,7 +1,6 @@
 { stdenv, fetchurl
 , localBios ? true, nasm ? null
-, sdlSupport ? true, SDL ? null
-}:
+, sdlSupport ? true, SDL ? null }:
 
 assert sdlSupport -> (SDL != null);
 
diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix
index 74ce7bdfcaa..95db0dd67a1 100644
--- a/pkgs/applications/virtualization/bochs/default.nix
+++ b/pkgs/applications/virtualization/bochs/default.nix
@@ -5,8 +5,7 @@
 , termSupport ? true , ncurses ? null, readline ? null
 , wxSupport ? false, wxGTK ? null
 , wgetSupport ? false, wget ? null
-, curlSupport ? false, curl ? null
-}:
+, curlSupport ? false, curl ? null }:
 
 assert sdlSupport -> (SDL != null);
 assert termSupport -> (ncurses != null&& readline != null);
@@ -52,15 +51,19 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE="-I${gtk}/include/gtk-2.0/";
 	
-  meta = {
+  meta = with stdenv.lib; {
     description = "An open-source IA-32 (x86) PC emulator";
     longDescription = ''
-    Bochs is an open-source (LGPL), highly portable IA-32 PC emulator, written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS.
+    Bochs is an open-source (LGPL), highly portable IA-32 PC emulator,
+    written in C++, that runs on most popular platforms. It includes
+    emulation of the Intel x86 CPU, common I/O devices, and a custom
+    BIOS.
     '';
     homepage = http://bochs.sourceforge.net/;
-    license = stdenv.lib.licenses.lgpl2Plus;
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.lgpl2Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
+
 # TODO: study config.bochs.* implementation (like config.ffmpeg.* options)
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index f4d329221ff..dafc093bf05 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, makeWrapper, go, lxc, sqlite, iproute, bridge_utils, devicemapper,
-btrfsProgs, iptables, bash, e2fsprogs}:
+btrfsProgs, iptables, bash, e2fsprogs, xz}:
 
 stdenv.mkDerivation rec {
   name = "docker-${version}";
@@ -22,9 +22,9 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    install -Dm755 ./bundles/${version}/dynbinary/docker-${version} $out/bin/docker
-    install -Dm755 ./bundles/${version}/dynbinary/dockerinit-${version} $out/bin/dockerinit
-    wrapProgram $out/bin/docker --prefix PATH : "${iproute}/sbin:sbin:${lxc}/bin:${iptables}/sbin:${e2fsprogs}/sbin"
+    install -Dm755 ./bundles/${version}/dynbinary/docker-${version} $out/libexec/docker/docker
+    install -Dm755 ./bundles/${version}/dynbinary/dockerinit-${version} $out/libexec/docker/dockerinit
+    makeWrapper $out/libexec/docker/docker $out/bin/docker --prefix PATH : "${iproute}/sbin:sbin:${lxc}/bin:${iptables}/sbin:${e2fsprogs}/sbin:${xz}/bin"
 
     # systemd
     install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index e451ff79a94..d4d680f05fa 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -51,7 +51,6 @@ buildPythonPackage rec {
             --prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH \
             --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules" \
             --prefix GSETTINGS_SCHEMA_DIR : $out/share/glib-2.0/schemas \
-            --prefix LD_LIBRARY_PATH : ${gtk3}/lib/:${libvirt-glib}/lib/:${vte}/lib:${gtkvnc}/lib${optionalString spiceSupport ":${spice_gtk}/lib"} \
             --prefix XDG_DATA_DIRS : "$out/share:${gsettings_desktop_schemas}/share:${gtk3}/share:$GSETTINGS_SCHEMAS_PATH:\$XDG_DATA_DIRS"
     done
 
diff --git a/pkgs/applications/virtualization/virt-viewer/default.nix b/pkgs/applications/virtualization/virt-viewer/default.nix
index a5d7c775412..1da4a521da7 100644
--- a/pkgs/applications/virtualization/virt-viewer/default.nix
+++ b/pkgs/applications/virtualization/virt-viewer/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation  {
 
   meta = {
     description = "A viewer for remote virtual machines";
-    maintainers = maintainers.raskin;
+    maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     license = licenses.gpl2;
   };
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index f3e7bea3ca9..422e8966bfa 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -76,6 +76,7 @@ in stdenv.mkDerivation {
     ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2
     ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2
     find . -type f | xargs sed 's/depmod -a/true/' -i
+    sed -e 's@"libasound.so.2"@"${alsaLib}/lib/libasound.so.2"@g' -i src/VBox/Main/xml/Settings.cpp src/VBox/Devices/Audio/alsa_stubs.c
     export USER=nix
     set +x
   '';
diff --git a/pkgs/applications/window-managers/bar/default.nix b/pkgs/applications/window-managers/bar/default.nix
index bee774d10da..46a19b90b8b 100644
--- a/pkgs/applications/window-managers/bar/default.nix
+++ b/pkgs/applications/window-managers/bar/default.nix
@@ -17,8 +17,8 @@ in
   
     meta = {
       description = "A lightweight xcb based bar";
-      homepage = "https://github.com/LemonBoy/bar";
-      maintainers = stdenv.lib.maintainers.meisternu;
+      homepage = https://github.com/LemonBoy/bar;
+      maintainers = [ stdenv.lib.maintainers.meisternu ];
       license = "Custom";   
       platforms = stdenv.lib.platforms.linux;
     };
diff --git a/pkgs/applications/window-managers/bspwm/default.nix b/pkgs/applications/window-managers/bspwm/default.nix
index 24789f37ba7..0b36d922df4 100644
--- a/pkgs/applications/window-managers/bspwm/default.nix
+++ b/pkgs/applications/window-managers/bspwm/default.nix
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A tiling window manager based on binary space partitioning";
-    homepage = "http://github.com/baskerville/bspwm";
-    maintainers = stdenv.lib.maintainers.meisternu;
+    homepage = http://github.com/baskerville/bspwm;
+    maintainers = [ stdenv.lib.maintainers.meisternu ];
     license = "BSD";
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/applications/window-managers/fluxbox/default.nix b/pkgs/applications/window-managers/fluxbox/default.nix
index af6545b6151..b46864b9c2e 100644
--- a/pkgs/applications/window-managers/fluxbox/default.nix
+++ b/pkgs/applications/window-managers/fluxbox/default.nix
@@ -2,8 +2,7 @@
 , freetype, fribidi
 , libXext, libXft, libXpm, libXrandr, libXrender, xextproto
 , libXinerama
-, imlib2
-}:
+, imlib2 }:
 
 stdenv.mkDerivation rec {
 
@@ -17,17 +16,19 @@ stdenv.mkDerivation rec {
     sha256 = "164dd7bf59791d09a1e729a4fcd5e7347a1004ba675629860a5cf1a271c32983";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Full-featured, light-resource X window manager";
     longDescription = ''
-      Fluxbox is a X window manager based on Blackbox 0.61.1 window manager sources.
-      It is very light on resources and easy to handle but yet full of features to make an easy,
-      and extremely fast, desktop experience. It is written in C++ and licensed under MIT license.
+      Fluxbox is a X window manager based on Blackbox 0.61.1 window
+      manager sources.  It is very light on resources and easy to
+      handle but yet full of features to make an easy, and extremely
+      fast, desktop experience. It is written in C++ and licensed
+      under MIT license.
     '';
     homepage = http://fluxbox.org/;
-    license = stdenv.lib.licenses.mit;
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.mit;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
 # Many thanks Jack Ryan from Nix-dev mailing list!
diff --git a/pkgs/applications/window-managers/jwm/default.nix b/pkgs/applications/window-managers/jwm/default.nix
index 73c5e5df81a..f019ba9751b 100644
--- a/pkgs/applications/window-managers/jwm/default.nix
+++ b/pkgs/applications/window-managers/jwm/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   name = "jwm-2.2.2";
   
   src = fetchurl {
-     url = "http://www.joewing.net/programs/jwm/releases/${name}.tar.xz";
+     url = "http://www.joewing.net/projects/jwm/releases/${name}.tar.xz";
      sha256 = "0nhyy78c6imk85d47bakk460x0cfhkyghqq82zghmb00dhwiryln";
   };
 
diff --git a/pkgs/build-support/agda/default.nix b/pkgs/build-support/agda/default.nix
new file mode 100644
index 00000000000..f8130b423a2
--- /dev/null
+++ b/pkgs/build-support/agda/default.nix
@@ -0,0 +1,95 @@
+# Builder for Agda packages. Mostly inspired by the cabal builder.
+#
+# Contact: stdenv.lib.maintainers.fuuzetsu
+
+{ stdenv, Agda, glibcLocales
+, writeScriptBin
+, extension ? (self: super: {})
+}:
+
+let
+  optionalString = stdenv.lib.optionalString;
+  filter = stdenv.lib.filter;
+  concatMapStringsSep = stdenv.lib.strings.concatMapStringsSep;
+  concatMapStrings = stdenv.lib.strings.concatMapStrings;
+  unwords = stdenv.lib.strings.concatStringsSep " ";
+  mapInside = xs: unwords (map (x: x + "/*") xs);
+in
+{ mkDerivation = args:
+    let
+      postprocess = x: x // {
+        sourceDirectories = filter (y: !(y == null)) x.sourceDirectories;
+        propagatedBuildInputs = filter (y : ! (y == null)) x.propagatedBuildInputs;
+        propagatedUserEnvPkgs = filter (y : ! (y == null)) x.propagatedUserEnvPkgs;
+        extraBuildFlags = filter (y : ! (y == null)) x.extraBuildFlags;
+        everythingFile = if x.everythingFile == "" then "Everything.agda" else x.everythingFile;
+      };
+
+      defaults = self : {
+        # There is no Hackage for Agda so we require src.
+        inherit (self) src name;
+
+        buildInputs = [ Agda ] ++ self.buildDepends;
+        buildDepends = [];
+        # Not much choice here ;)
+        LANG = "en_US.UTF-8";
+        LOCALE_ARCHIVE = optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
+
+        everythingFile = "Everything.agda";
+
+        propagatedBuildInputs = self.buildDepends ++ self.buildTools;
+        propagatedUserEnvPkgs = self.buildDepends;
+
+        # Immediate source directories under which modules can be found.
+        sourceDirectories = [ ];
+
+        # This is used if we have a top-level element that only serves
+        # as the container for the source and we only care about its
+        # contents. The directories put here will have their
+        # *contents* copied over as opposed to sourceDirectories which
+        # would make a direct copy of the whole thing.
+        topSourceDirectories = [ "src" ];
+
+        buildTools = [];
+
+        # Extra stuff to pass to the Agda binary.
+        extraBuildFlags = [ "-i ." ];
+        buildFlags = let r = map (x: "-i " + x + "/share/agda") self.buildDepends;
+                         d = map (x : "-i " + x) (self.sourceDirectories ++ self.topSourceDirectories);
+                     in unwords (r ++ d ++ self.extraBuildFlags);
+
+        # We expose this as a mere convenience for any tools.
+        AGDA_PACKAGE_PATH = concatMapStrings (x: x + ":") self.buildDepends;
+
+        # Makes a wrapper available to the user. Very useful in
+        # nix-shell where all dependencies are -i'd.
+        agdaWrapper = writeScriptBin "agda" ''
+          ${Agda}/bin/agda ${self.buildFlags} "$@"
+        '';
+
+        # configurePhase is idempotent
+        configurePhase = ''
+          eval "$preConfigure"
+          export AGDA_PACKAGE_PATH=${self.AGDA_PACKAGE_PATH};
+          export PATH="${self.agdaWrapper}/bin:$PATH"
+          eval "$postConfigure"
+        '';
+
+        buildPhase = ''
+          eval "$preBuild"
+          ${Agda}/bin/agda ${self.buildFlags} ${self.everythingFile}
+          eval "$postBuild"
+        '';
+
+        installPhase = ''
+          eval "$preInstall"
+          mkdir -p $out/share/agda
+          cp -pR ${unwords self.sourceDirectories} ${mapInside self.topSourceDirectories} $out/share/agda
+          eval "$postInstall"
+        '';
+      };
+    in stdenv.mkDerivation
+         (postprocess (let super = defaults self // args self;
+                           self  = super // extension self super;
+                       in self));
+}
\ No newline at end of file
diff --git a/pkgs/build-support/build-fhs-chrootenv/default.nix b/pkgs/build-support/build-fhs-chrootenv/default.nix
index e807a04628a..89dd2faf3ba 100644
--- a/pkgs/build-support/build-fhs-chrootenv/default.nix
+++ b/pkgs/build-support/build-fhs-chrootenv/default.nix
@@ -1,16 +1,77 @@
-{stdenv, glibc, glibcLocales, gcc, coreutils, diffutils, findutils, gnused, gnugrep, gnutar, gzip, bzip2, 
-bashInteractive, xz, shadow, gawk, less, buildEnv}:
-{name, pkgs ? [], profile ? ""}:
+{ buildEnv, nixpkgs, nixpkgs_i686, system
+, stdenv, glibc, glibc_multi, glibcLocales
+, bashInteractive, coreutils, less, shadow, su
+, gawk, gcc, gcc_multi, diffutils, findutils, gnused, gnugrep
+, gnutar, gzip, bzip2, xz
+} :
+{ name, pkgs ? [], profile ? ""
+, targetPkgs ? null, multiPkgs ? null
+, extraBuildCommands ? "", extraBuildCommandsMulti ? ""
+}:
+
+assert pkgs       != []   -> targetPkgs == null && multiPkgs == null;
+assert targetPkgs != null -> multiPkgs  != null;
+assert multiPkgs  != null -> targetPkgs != null;
+assert targetPkgs != null -> pkgs       == [];
+
+
+# HOWTO:
+# If pkgs is defined buildFHSChrootEnv will run in legacy mode. This means
+# it will build all pkgs contained in pkgs and basePkgs and then just merge
+# all of their contents together via buildEnv.
+#
+# The new way is to define both targetPkgs and multiPkgs. These two are
+# functions which get a pkgs environment supplied and should then return a list
+# of packages based this environment.
+# For example: targetPkgs = pkgs: [ pkgs.nmap ];
+#
+# All packages (most likeley programs) placed in targetPkgs will only be
+# installed once--matching the hosts architecture (64bit on x86_64 and 32bit on
+# x86). These packages will populate the chroot directory tree.
+#
+# Packages (most likeley libraries) defined in multiPkgs will be installed once
+# on x86 systems and twice on x86_64 systems.
+# On x86 they will just be merge with the packages defined in targetPkgs.
+# On x86_64 they will be added to targetPkgs and in addition their 32bit
+# versions will also be installed. The final directory should look as follows:
+# /lib will include 32bit libraries from multiPkgs
+# /lib32 will link to /lib
+# /lib64 will include 64bit libraries from multiPkgs and targetPkgs
+# /x86 will contain a complete 32bit environment composed by multiPkgs
 
 let
-  basePkgs = [
-    glibc glibcLocales gcc coreutils diffutils findutils gnused gnugrep gnutar
-    gzip bzip2 bashInteractive xz shadow gawk less
-  ];
+  is64Bit       = system == "x86_64-linux";
+  # enable multi builds on x86_64 hosts if pakgs_target/multi are defined
+  isMultiBuild  = is64Bit && targetPkgs != null;
+  isTargetBuild = !isMultiBuild;
+
+  # list of packages (usually programs) which will only be installed for the
+  # hosts architecture
+  targetPaths = if targetPkgs == null
+                  then pkgs
+                  else targetPkgs nixpkgs ++ multiPkgs nixpkgs;
+
+  # list of pckages which should be build for both x86 and x86_64 on x86_64
+  # systems
+  multiPaths = if isMultiBuild
+                  then multiPkgs nixpkgs_i686
+                  else [];
+
+  # base packages of the chroot
+  # these match the hosts architecture, gcc/glibc_multi will be choosen
+  # on multi builds
+  choosenGcc = if isMultiBuild then gcc_multi else gcc;
+  basePkgs =
+    [ (if isMultiBuild then glibc_multi else glibc)
+      choosenGcc
+      bashInteractive coreutils less shadow su
+      gawk diffutils findutils gnused gnugrep
+      gnutar gzip bzip2 xz
+    ];
 
   # Compose a global profile for the chroot environment
-  profilePkg = stdenv.mkDerivation {
-    name = "${name}-chrootenv-profile";
+  profilePkg = nixpkgs.stdenv.mkDerivation {
+    name         = "${name}-chrootenv-profile";
     buildCommand = ''
       mkdir -p $out/etc
       cat >> $out/etc/profile << "EOF"
@@ -20,67 +81,139 @@ let
     '';
   };
 
-  paths = basePkgs ++ [ profilePkg ] ++ pkgs;
-
   # Composes a /usr like directory structure
-  staticUsrProfile = buildEnv {
-    name = "system-profile";
-    inherit paths;
+  staticUsrProfileTarget = buildEnv {
+    name = "system-profile-target";
+    paths = basePkgs ++ [ profilePkg ] ++ targetPaths;
+  };
+
+  staticUsrProfileMulti = buildEnv {
+    name = "system-profile-multi";
+    paths = multiPaths;
   };
-  
+
   # References to shell scripts that set up or tear down the environment
-  initSh = ./init.sh.in;
-  mountSh = ./mount.sh.in;
-  loadSh = ./load.sh.in;
-  umountSh = ./umount.sh.in;
+  initSh    = ./init.sh.in;
+  mountSh   = ./mount.sh.in;
+  loadSh    = ./load.sh.in;
+  umountSh  = ./umount.sh.in;
   destroySh = ./destroy.sh.in;
-in
-stdenv.mkDerivation {
-  name = "${name}-chrootenv";
-  buildCommand = ''
-    mkdir -p $out/sw
-    cd $out/sw
-    
-    for i in ${staticUsrProfile}/{etc,bin,lib{,32,64},sbin,var}
-    do
+
+  linkProfile = profile: ''
+    for i in ${profile}/{etc,bin,sbin,share,var}; do
         if [ -x "$i" ]
         then
             ln -s "$i"
         fi
     done
-    
-    ln -s ${staticUsrProfile} usr
-    
+  '';
+
+  # the target profile is the actual profile that will be used for the chroot
+  setupTargetProfile = ''
+    ${linkProfile staticUsrProfileTarget}
+    ${setupLibDirs}
+
+    mkdir -m0755 usr
+    cd usr
+    ${linkProfile staticUsrProfileTarget}
+    ${setupLibDirs}
     cd ..
-    
+  '';
+
+  # this will happen on x86_64 host:
+  # /x86         -> links to the whole profile defined by multiPaths
+  # /lib, /lib32 -> links to 32bit binaries
+  # /lib64       -> links to 64bit binaries
+  # /usr/lib*    -> same as above
+  setupMultiProfile = if isTargetBuild then "" else ''
+    mkdir -m0755 x86
+    cd x86
+    ${linkProfile staticUsrProfileMulti}
+    cd ..
+  '';
+
+  setupLibDirs = if isTargetBuild then setupLibDirs_target
+                                  else setupLibDirs_multi;
+
+  # setup library paths only for the targeted architecture
+  setupLibDirs_target = ''
+    mkdir -m0755 lib
+
+    # copy content of targetPaths
+    cp -rsf ${staticUsrProfileTarget}/lib/* lib/
+  '';
+
+  # setup /lib, /lib32 and /lib64
+  setupLibDirs_multi = ''
+    mkdir -m0755 lib
+    mkdir -m0755 lib64
+    ln -s lib lib32
+
+    # copy glibc stuff
+    cp -rsf ${staticUsrProfileTarget}/lib/32/* lib/
+
+    # copy content of multiPaths (32bit libs)
+    cp -rsf ${staticUsrProfileMulti}/lib/* lib/
+
+    # copy content of targetPaths (64bit libs)
+    cp -rsf ${staticUsrProfileTarget}/lib/* lib64/
+
+    # most 64bit only libs put their stuff into /lib
+    # some pkgs (like gcc_multi) put 32bit libs into and /lib 64bit libs into /lib64
+    # by overwriting these we will hopefully catch all these cases
+    # in the end /lib should only contain 32bit and /lib64 only 64bit libs
+    cp -rsf ${staticUsrProfileTarget}/lib64/* lib64/
+
+    # copy gcc libs (and may overwrite exitsting wrongly placed libs)
+    cp -rsf ${choosenGcc.gcc}/lib/*   lib/
+    cp -rsf ${choosenGcc.gcc}/lib64/* lib64/
+  '';
+
+in stdenv.mkDerivation {
+  name         = "${name}-chrootenv";
+  buildCommand = ''
+    mkdir -p "$out/sw"
+    cd "$out/sw"
+    ${setupTargetProfile}
+    ${setupMultiProfile}
+    cd ..
+
     mkdir -p bin
     cd bin
-    
+
     sed -e "s|@chrootEnv@|$out|g" \
         -e "s|@name@|${name}|g" \
         -e "s|@shell@|${stdenv.shell}|g" \
         ${initSh} > init-${name}-chrootenv
     chmod +x init-${name}-chrootenv
-    
+
     sed -e "s|@shell@|${stdenv.shell}|g" \
         -e "s|@name@|${name}|g" \
         ${mountSh} > mount-${name}-chrootenv
     chmod +x mount-${name}-chrootenv
-    
+
     sed -e "s|@shell@|${stdenv.shell}|g" \
         -e "s|@name@|${name}|g" \
         ${loadSh} > load-${name}-chrootenv
     chmod +x load-${name}-chrootenv
-    
+
     sed -e "s|@shell@|${stdenv.shell}|g" \
         -e "s|@name@|${name}|g" \
         ${umountSh} > umount-${name}-chrootenv
     chmod +x umount-${name}-chrootenv
-    
+
     sed -e "s|@chrootEnv@|$out|g" \
         -e "s|@shell@|${stdenv.shell}|g" \
         -e "s|@name@|${name}|g" \
         ${destroySh} > destroy-${name}-chrootenv
     chmod +x destroy-${name}-chrootenv
+
+    cd ..
+
+    cd "$out/sw"
+    ${extraBuildCommands}
+    cd "$out/sw"
+    ${if isMultiBuild then extraBuildCommandsMulti else ""}
+    cd ..
   '';
 }
diff --git a/pkgs/build-support/build-fhs-chrootenv/destroy.sh.in b/pkgs/build-support/build-fhs-chrootenv/destroy.sh.in
index 30b51cb5068..8ddf350913e 100644
--- a/pkgs/build-support/build-fhs-chrootenv/destroy.sh.in
+++ b/pkgs/build-support/build-fhs-chrootenv/destroy.sh.in
@@ -3,7 +3,7 @@
 chrootenvDest=/run/chrootenv/@name@
 
 # Remove bind mount points
-rmdir $chrootenvDest/{dev,nix/store,nix,proc,sys,host-etc,home,var,run}
+rmdir $chrootenvDest/{dev,nix/store,nix,proc,sys,host-etc,home,var,run,tmp}
 
 # Remove symlinks to the software that should be part of the chroot system profile
 for i in @chrootEnv@/sw/*
@@ -15,7 +15,8 @@ do
 done
 
 # Remove the remaining folders
-rm -Rf $chrootenvDest/{etc,root,tmp}
+rm -Rf $chrootenvDest/{etc,root}
+rm -Rf /tmp/chrootenv-@name@
 
 # Remove the chroot environment folder
 rmdir $chrootenvDest
diff --git a/pkgs/build-support/build-fhs-chrootenv/init.sh.in b/pkgs/build-support/build-fhs-chrootenv/init.sh.in
index 5b0ab94bc4e..079ec09d60f 100644
--- a/pkgs/build-support/build-fhs-chrootenv/init.sh.in
+++ b/pkgs/build-support/build-fhs-chrootenv/init.sh.in
@@ -45,4 +45,5 @@ ln -s ../../../host-etc/static/fonts/conf.d/00-nixos.conf $chrootenvDest/etc/fon
 mkdir $chrootenvDest/root
 
 # Create tmp folder
-mkdir -m1777 $chrootenvDest/tmp
+mkdir -m1777    $chrootenvDest/tmp
+mkdir -m1777 -p /tmp/chrootenv-@name@
diff --git a/pkgs/build-support/build-fhs-chrootenv/mount.sh.in b/pkgs/build-support/build-fhs-chrootenv/mount.sh.in
index 225d9dbc4f7..c64f9356283 100644
--- a/pkgs/build-support/build-fhs-chrootenv/mount.sh.in
+++ b/pkgs/build-support/build-fhs-chrootenv/mount.sh.in
@@ -21,3 +21,6 @@ mount --rbind /run $chrootenvDest/run
 
 # Bind mount the host system's /etc
 mount --bind /etc $chrootenvDest/host-etc
+
+# Bind mount /tmp
+mount --bind /tmp/chrootenv-@name@ /run/chrootenv/steam/tmp
diff --git a/pkgs/build-support/build-fhs-chrootenv/umount.sh.in b/pkgs/build-support/build-fhs-chrootenv/umount.sh.in
index 5089141c0aa..b8222a4121a 100644
--- a/pkgs/build-support/build-fhs-chrootenv/umount.sh.in
+++ b/pkgs/build-support/build-fhs-chrootenv/umount.sh.in
@@ -3,4 +3,4 @@
 chrootenvDest=/run/chrootenv/@name@
 
 # Unmount all (r)bind mounts
-umount -l $chrootenvDest/{dev/pts,dev/shm,dev,nix/store,proc,sys,host-etc,home,var,run}
+umount -l $chrootenvDest/{dev/pts,dev/shm,dev,nix/store,proc,sys,host-etc,home,var,tmp,run}
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index a17daf9a2c5..c52a26b7165 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -1,5 +1,7 @@
 {stdenv, git, cacert}:
-{url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false, fetchSubmodules ? true}:
+{url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false, fetchSubmodules ? true
+, name ? "git-export"
+}:
 
 /* NOTE:
    fetchgit has one problem: git fetch only works for refs.
@@ -26,7 +28,7 @@
 assert md5 != "" || sha256 != "";
 
 stdenv.mkDerivation {
-  name = "git-export";
+  inherit name;
   builder = ./builder.sh;
   fetcher = ./nix-prefetch-git;
   buildInputs = [git];
diff --git a/pkgs/build-support/gcc-wrapper/gcc-wrapper.sh b/pkgs/build-support/gcc-wrapper/gcc-wrapper.sh
index c53fd44207d..2ad7783a442 100644
--- a/pkgs/build-support/gcc-wrapper/gcc-wrapper.sh
+++ b/pkgs/build-support/gcc-wrapper/gcc-wrapper.sh
@@ -77,7 +77,6 @@ if test "$NIX_ENFORCE_PURITY" = "1" -a -n "$NIX_STORE"; then
         n=$((n + 1))
     done
     params=("${rest[@]}")
-    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE --sysroot=/var/empty"
 fi
 
 
diff --git a/pkgs/build-support/grsecurity/default.nix b/pkgs/build-support/grsecurity/default.nix
index e66b348d082..bd6ac84a0f8 100644
--- a/pkgs/build-support/grsecurity/default.nix
+++ b/pkgs/build-support/grsecurity/default.nix
@@ -32,7 +32,7 @@ let
 
     grKernel = if cfg.stable
                then mkKernel pkgs.linux_3_14 stable-patch
-               else mkKernel pkgs.linux_3_15 test-patch;
+               else mkKernel pkgs.linux_3_16 test-patch;
 
     ## -- grsecurity configuration ---------------------------------------------
 
diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh
index dd43068be27..41f2a59246d 100644
--- a/pkgs/build-support/setup-hooks/make-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-wrapper.sh
@@ -96,10 +96,7 @@ filterExisting() {
 # Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
 wrapProgram() {
     local prog="$1"
-    local progBasename=$(basename $prog)
-    local hiddenDir="$(dirname $prog)/../wrapped-bin/.$progBasename-wrapped-bin"
-    mkdir -p $hiddenDir
-    local hidden="$(cd "$hiddenDir"; pwd)/$progBasename"
+    local hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped
     mv $prog $hidden
     makeWrapper $hidden $prog "$@"
 }
diff --git a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
index 28c28f69587..b66001073f2 100644
--- a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
+++ b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
@@ -8,6 +8,10 @@ SF_version_dir () {
   version_link 'http://sourceforge.net/.+/'"$1"'[0-9.]+/$'
 }
 
+SF_version_tarball () {
+  version_link '[.]tar[.].*/download$'
+}
+
 GH_latest () {
   prefetch_command_rel ../fetchgit/nix-prefetch-git
   revision "$("$(dirname "$0")/urls-from-page.sh" "$CURRENT_URL/commits" | grep /commit/ | head -n 1 | xargs basename )"
diff --git a/pkgs/build-support/upstream-updater/update-walker.sh b/pkgs/build-support/upstream-updater/update-walker.sh
index e11eb722e0e..e60499b60f2 100755
--- a/pkgs/build-support/upstream-updater/update-walker.sh
+++ b/pkgs/build-support/upstream-updater/update-walker.sh
@@ -280,6 +280,12 @@ do_overwrite_just_version () {
   set_var_value sha256 $CURRENT_HASH
 }
 
+minimize_overwrite() {
+  do_overwrite(){
+    do_overwrite_just_version
+  }
+}
+
 process_config () {
   CONFIG_DIR="$(directory_of "$1")"
   CONFIG_NAME="$(basename "$1")"
@@ -297,9 +303,7 @@ process_config () {
       exit 1;
     }
     [ -z "$(retrieve_meta fullRegenerate)" ] && eval "
-      do_overwrite(){
-        do_overwrite_just_version
-      }
+      minimize_overwrite
     "
   fi
   ensure_attribute_name
diff --git a/pkgs/build-support/vm/rpm/rpm-closure.pl b/pkgs/build-support/vm/rpm/rpm-closure.pl
index 94da0a20adc..411c351f1e4 100644
--- a/pkgs/build-support/vm/rpm/rpm-closure.pl
+++ b/pkgs/build-support/vm/rpm/rpm-closure.pl
@@ -91,7 +91,7 @@ for (my $i = 0; $i < scalar(@packagesFiles); $i++) {
 
 my %provides;
 foreach my $pkgName (keys %pkgs) {
-    print STDERR "looking at $pkgName\n";
+    #print STDERR "looking at $pkgName\n";
     my $pkg = $pkgs{$pkgName};
     
     #print STDERR keys %{$pkg->{format}}, "\n";
diff --git a/pkgs/data/documentation/pthread-man-pages/default.nix b/pkgs/data/documentation/pthread-man-pages/default.nix
index 4cd5a5b8297..cbd3234b2d4 100644
--- a/pkgs/data/documentation/pthread-man-pages/default.nix
+++ b/pkgs/data/documentation/pthread-man-pages/default.nix
@@ -43,6 +43,6 @@ in
     meta = {
       description = "POSIX threads (pthreads) manual pages from LinuxThreads";
       homepage = http://www.gnu.org/software/libc/;
-      maintainers = stdenv.lib.maintainers.mornfall;
+      maintainers = [ stdenv.lib.maintainers.mornfall ];
     };
   }
diff --git a/pkgs/data/fonts/arkpandora/default.nix b/pkgs/data/fonts/arkpandora/default.nix
index 7394dce551b..189c066b13e 100644
--- a/pkgs/data/fonts/arkpandora/default.nix
+++ b/pkgs/data/fonts/arkpandora/default.nix
@@ -4,6 +4,7 @@ rec {
   src = fetchurl {
     urls = [
       "ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ttf-arkpandora-${version}.tgz"
+      "http://distcache.FreeBSD.org/ports-distfiles/ttf-arkpandora-${version}.tgz"
       "http://www.users.bigpond.net.au/gavindi/ttf-arkpandora-${version}.tgz"
       ];
     sha256 = "16mfxwlgn6vs3xn00hha5dnmz6bhjiflq138y4zcq3yhk0y9bz51";
diff --git a/pkgs/data/fonts/baekmuk-ttf/default.nix b/pkgs/data/fonts/baekmuk-ttf/default.nix
new file mode 100644
index 00000000000..acd16478fcf
--- /dev/null
+++ b/pkgs/data/fonts/baekmuk-ttf/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "baekmuk-ttf-2.2";
+
+  src = fetchurl {
+    url = "http://kldp.net/frs/download.php/1429/${name}.tar.gz";
+    sha256 = "08ab7dffb55d5887cc942ce370f5e33b756a55fbb4eaf0b90f244070e8d51882";
+  };
+
+  dontBuild = true;
+
+  installPhase = let
+    fonts_dir = "$out/share/fonts";
+    doc_dir = "$out/share/doc/${name}";
+  in ''
+    mkdir -pv ${fonts_dir}
+    mkdir -pv ${doc_dir}
+    cp ttf/*.ttf ${fonts_dir}
+    cp COPYRIGHT* ${doc_dir}
+  '';
+
+  meta = {
+    description = "Korean font";
+    homepage = "http://kldp.net/projects/baekmuk/";
+    license = "BSD-like";
+  };
+}
+
diff --git a/pkgs/data/fonts/proggyfonts/default.nix b/pkgs/data/fonts/proggyfonts/default.nix
new file mode 100644
index 00000000000..1c41a92bf96
--- /dev/null
+++ b/pkgs/data/fonts/proggyfonts/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+
+# adapted from https://aur.archlinux.org/packages/proggyfonts/
+
+stdenv.mkDerivation rec {
+  name = "proggyfonts-0.1";
+
+  src = fetchurl {
+    url = "http://kaictl.net/software/${name}.tar.gz";
+    sha256 = "1plcm1sjpa3hdqhhin48fq6zmz3ndm4md72916hd8ff0w6596q0n";
+  };
+
+  buildInputs = [ mkfontdir mkfontscale ];
+
+  installPhase =
+    ''
+      mkdir -p $out/share/doc/$name $out/share/fonts/misc $out/share/fonts/truetype
+
+      cp Licence.txt $out/share/doc/$name/LICENSE
+
+      for f in *.pcf; do
+        gzip -c "$f" > $out/share/fonts/misc/"$f".gz
+      done
+      cp *.bdf $out/share/fonts/misc
+      cp *.ttf $out/share/fonts/truetype
+
+      for f in misc truetype; do
+        cd $out/share/fonts/$f
+        mkfontscale
+        mkfontdir
+      done
+    '';
+
+  meta = with stdenv.lib; {
+    homepage = http://upperbounds.net;
+    description = "A set of fixed-width screen fonts that are designed for code listings";
+    license = licenses.mit;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/stix-otf/default.nix b/pkgs/data/fonts/stix-otf/default.nix
new file mode 100644
index 00000000000..f32d865c95c
--- /dev/null
+++ b/pkgs/data/fonts/stix-otf/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  name = "stix-otf-${version}";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/stixfonts/STIXv${version}-word.zip";
+    sha256 = "1q35wbqn3nh78pdban9z37lh090c6p49q3d00zzxm0axxz66xy4q";
+  };
+
+  buildInputs = [unzip];
+
+  phases = ["unpackPhase" "installPhase"];
+
+  sourceRoot = "Fonts/STIX-Word";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    cp *.otf $out/share/fonts/opentype
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.stixfonts.org/;
+    description = "Fonts for Scientific and Technical Information eXchange";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/pkgs/data/fonts/symbola/default.nix b/pkgs/data/fonts/symbola/default.nix
index b324e52d021..70375a22bae 100644
--- a/pkgs/data/fonts/symbola/default.nix
+++ b/pkgs/data/fonts/symbola/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "symbola-7.12";
+  name = "symbola-7.17";
 
   src = fetchurl {
     url = "http://users.teilar.gr/~g1951d/Symbola.zip";
diff --git a/pkgs/data/fonts/wqy-microhei/default.nix b/pkgs/data/fonts/wqy-microhei/default.nix
index 065bb4bc828..c0665b2f0cc 100644
--- a/pkgs/data/fonts/wqy-microhei/default.nix
+++ b/pkgs/data/fonts/wqy-microhei/default.nix
@@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A (mainly) Chinese Unicode font";
-    homepage = "http://wenq.org";
+    homepage = http://wenq.org;
     license = stdenv.lib.licenses.asl20;
-    maintainers = stdenv.lib.maintainers.pkmx;
+    maintainers = [ stdenv.lib.maintainers.pkmx ];
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/data/fonts/wqy-zenhei/default.nix b/pkgs/data/fonts/wqy-zenhei/default.nix
index d42665c69cc..92f043c7fc0 100644
--- a/pkgs/data/fonts/wqy-zenhei/default.nix
+++ b/pkgs/data/fonts/wqy-zenhei/default.nix
@@ -19,9 +19,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A (mainly) Chinese Unicode font";
-    homepage = "http://wenq.org";
+    homepage = http://wenq.org;
     license = stdenv.lib.licenses.gpl2; # with font embedding exceptions
-    maintainers = stdenv.lib.maintainers.pkmx;
+    maintainers = [ stdenv.lib.maintainers.pkmx ];
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/data/misc/miscfiles/default.nix b/pkgs/data/misc/miscfiles/default.nix
index db4d13b890f..a40856e5910 100644
--- a/pkgs/data/misc/miscfiles/default.nix
+++ b/pkgs/data/misc/miscfiles/default.nix
@@ -1,16 +1,17 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "miscfiles-1.4.2";
+  name = "miscfiles-1.5";
 
   src = fetchurl {
     url = "mirror://gnu/miscfiles/${name}.tar.gz";
-    sha256 = "1rh10y63asyrqyp5mlmxy7y4kdp6svk2inws3y7mfx8lsrhcm6dn";
+    sha256 = "005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.gnu.org/software/miscfiles/;
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
     description = "Collection of files not of crucial importance for sysadmins";
+    maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index 134a6f5307e..57f5b24a6f8 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -2,11 +2,11 @@
 , libxml2, glib}:
 
 stdenv.mkDerivation rec {
-  name = "shared-mime-info-1.2";
+  name = "shared-mime-info-1.3";
 
   src = fetchurl {
     url = "http://freedesktop.org/~hadess/${name}.tar.xz";
-    sha256 = "0y5vi0vr6rbhvfzcfg57cfskn362bpvcpca9cy598nmr87i6lld5";
+    sha256 = "0fijrc8j2kw6bvdx7fmlfafbcwxvinhr8l44b46b3v59gj69rm2g";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix
index 97dcbf4e004..3da878dde74 100644
--- a/pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/scrollkeeper/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, automake}:
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, automake, gettext}:
 
 stdenv.mkDerivation {
   name = "scrollkeeper-0.3.14";
@@ -13,6 +13,6 @@ stdenv.mkDerivation {
     cp ${automake}/share/automake*/config.{sub,guess} .
   ";
 
-  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt gettext];
   configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
 }
diff --git a/pkgs/desktops/gnome-3/3.10/apps/gedit/default.nix b/pkgs/desktops/gnome-3/3.10/apps/gedit/default.nix
index 84a77e5a024..6b9a69c738d 100644
--- a/pkgs/desktops/gnome-3/3.10/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/gedit/default.nix
@@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
     wrapProgram "$out/bin/gedit" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix LD_LIBRARY_PATH : "${gnome3.libpeas}/lib:${gnome3.gtksourceview}/lib" \
       --prefix XDG_DATA_DIRS : "${gnome3.gtksourceview}/share:${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
diff --git a/pkgs/desktops/gnome-3/3.10/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/3.10/apps/gnome-documents/default.nix
index b393bb43931..a8c84d6a769 100644
--- a/pkgs/desktops/gnome-3/3.10/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/gnome-documents/default.nix
@@ -28,17 +28,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  preFixup =
-    let
-      libPath = stdenv.lib.makeLibraryPath
-        [ evince gtk3 gnome3.tracker gnome3.gnome_online_accounts ];
-    in
-    ''
+  preFixup = ''
     substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication"
     wrapProgram "$out/bin/gnome-documents" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix LD_LIBRARY_PATH ":" "${libPath}" \
       --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
       --run "if [ -z \"\$XDG_CACHE_DIR\" ]; then XDG_CACHE_DIR=\$HOME/.cache; fi; if [ -w \"\$XDG_CACHE_DIR/..\" ]; then mkdir -p \"\$XDG_CACHE_DIR/gnome-documents\"; fi"
     rm $out/share/icons/hicolor/icon-theme.cache
diff --git a/pkgs/desktops/gnome-3/3.10/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/3.10/apps/gnome-music/default.nix
index b8d2bbc79ef..31d521e8c30 100644
--- a/pkgs/desktops/gnome-3/3.10/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/apps/gnome-music/default.nix
@@ -24,19 +24,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  preFixup =
-    let
-      libPath = stdenv.lib.makeLibraryPath
-        [ glib gtk3 libnotify tracker gnome3.grilo cairo
-          gst_all_1.gstreamer gst_all_1.gst-plugins-base
-          gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad ];
-    in
-    ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-music" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
       --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix LD_LIBRARY_PATH : "${libPath}" \
       --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
       --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \
       --prefix PYTHONPATH : "$PYTHONPATH"
diff --git a/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix b/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix
index f9fbbbe56c6..b60363b024c 100644
--- a/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/apps/evolution/default.nix
@@ -1,22 +1,22 @@
 { stdenv, intltool, fetchurl, libxml2, webkitgtk, highlight
 , pkgconfig, gtk3, glib, hicolor_icon_theme, libnotify, gtkspell3
 , makeWrapper, itstool, shared_mime_info, libical, db, gcr
-, gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu
+, gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu, libtool
 , libcanberra_gtk3, bogofilter, gst_all_1, procps, p11_kit }:
 
 stdenv.mkDerivation rec {
-  name = "evolution-3.12.2";
+  name = "evolution-3.12.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/3.12/${name}.tar.xz";
-    sha256 = "60742334aaf1e3b9f044c2003c44a37be5905b166e24580e9e6e6c5ae1b9f948";
+    sha256 = "08y1qiydbbk4fq8rrql9sgbwsny8bwz6f7m5kbbj5zjqvf1baksj";
   };
 
   doCheck = true;
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
-  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool
                   gdk_pixbuf gnome3.gnome_icon_theme librsvg db icu
                   gnome3.evolution_data_server libsecret libical gcr
                   webkitgtk shared_mime_info gnome3.gnome_desktop gtkspell3
diff --git a/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix
index 0909a4239db..c65a28c3446 100644
--- a/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/apps/gedit/default.nix
@@ -4,11 +4,11 @@
 , gnome3, librsvg, gdk_pixbuf, file }:
 
 stdenv.mkDerivation rec {
-  name = "gedit-3.12.1";
+  name = "gedit-3.12.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gedit/3.12/${name}.tar.xz";
-    sha256 = "8e3edc62102934a8be708b0fdf27b86368fa9ede885628283bf8e91b26bbb67f";
+    sha256 = "0lxnswqa0ysr57cqh062wp41sd76p6q7y3mnkl7rligd5c8hnikm";
   };
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
diff --git a/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix
index d784544a183..c5f9bdb2774 100644
--- a/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/apps/gnome-music/default.nix
@@ -4,11 +4,11 @@
 , makeWrapper, itstool, gnome3, librsvg, gst_all_1 }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-music-3.12.2";
+  name = "gnome-music-3.12.2.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-music/3.12/${name}.tar.xz";
-    sha256 = "ec4807018166aabed0263cb3ffce672e1fc1a3e959f48a5ad48b8eb08ddb451a";
+    sha256 = "1vwzjv5001pg37qc0sh4ph3srqwg3vgibbdlqpim9w2k70l9j34z";
   };
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
diff --git a/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix
index 7fb341948be..c6ac93b1074 100644
--- a/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/empathy/default.nix
@@ -11,11 +11,11 @@
 # TODO: enable more features
 
 stdenv.mkDerivation rec {
-  name = "empathy-3.12.2";
+  name = "empathy-3.12.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/empathy/3.12/${name}.tar.xz";
-    sha256 = "414d0c6b1a30b1afbf35ad04b0b9ff3ada3e06fab797a50a7147cdfe0905e7cd";
+    sha256 = "0rhgpiv75aafmdh6r7d4ci59lnxqmmwg9hvsa5b3mk7j2d2pma86";
   };
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard
diff --git a/pkgs/desktops/gnome-3/3.12/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/3.12/core/evolution-data-server/default.nix
index b8711f7e563..2cb1fbe90d4 100644
--- a/pkgs/desktops/gnome-3/3.12/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/evolution-data-server/default.nix
@@ -4,11 +4,11 @@
 
 
 stdenv.mkDerivation rec {
-  name = "evolution-data-server-3.12.2";
+  name = "evolution-data-server-3.12.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/3.12/${name}.tar.xz";
-    sha256 = "91c95e17a8c1cd1086dafcd99a40bdf8f5993770f251f8b0a10e5395e3f5a3b6";
+    sha256 = "d3a2f832f823cb2a41467926dcaec984a15b2cb51ef89cf41267e337ca750811";
   };
 
   buildInputs = with gnome3;
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
   };
 
 }
diff --git a/pkgs/desktops/gnome-3/3.12/core/folks/default.nix b/pkgs/desktops/gnome-3/3.12/core/folks/default.nix
index 47b958002a3..7e3af8405a4 100644
--- a/pkgs/desktops/gnome-3/3.12/core/folks/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/folks/default.nix
@@ -5,11 +5,11 @@
 # TODO: enable more folks backends
 
 stdenv.mkDerivation rec {
-  name = "folks-0.9.6";
+  name = "folks-0.9.8";
 
   src = fetchurl {
     url = "mirror://gnome/sources/folks/0.9/${name}.tar.xz";
-    sha256 = "a67e055b5a2724a34a80946e2940c4c0ad708cb1f4e0a09407c6b69a5e40267f";
+    sha256 = "09cbs3ihcswpi1wg8xbjmkqjbhnxa1idy1fbzmz0gah7l5mxmlfj";
   };
 
   propagatedBuildInputs = [ glib gnome3.libgee sqlite ];
diff --git a/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix
index 666032f56a7..19d0c9c10e8 100644
--- a/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/gnome-calculator/default.nix
@@ -3,11 +3,11 @@
 , itstool, gnome3, librsvg, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-calculator-3.12.1";
+  name = "gnome-calculator-3.12.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-calculator/3.12/${name}.tar.xz";
-    sha256 = "15a75bbe19f6d2280d864f0504f6fc5b1f148fea9738b5548b64b7b8c0c64740";
+    sha256 = "0bn3agh3g22iradfpzkc19a2b33b1mbf0ciy1hf2sijrczi24410";
   };
 
   NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
diff --git a/pkgs/desktops/gnome-3/3.12/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-shell/default.nix
index dbb19f77d21..6f6816efa5b 100644
--- a/pkgs/desktops/gnome-3/3.12/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/gnome-shell/default.nix
@@ -35,7 +35,6 @@ stdenv.mkDerivation rec {
     wrapProgram "$out/bin/gnome-shell" \
       --prefix PATH : "${unzip}/bin" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix LD_LIBRARY_PATH : "${accountsservice}/lib:${ibus}/lib:${gdm}/lib" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
       --prefix XDG_DATA_DIRS : "${gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
 
diff --git a/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix
index 7377c839d1c..2a237b15c21 100644
--- a/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/gnome-user-docs/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-user-docs-3.12.1";
+  name = "gnome-user-docs-3.12.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-user-docs/3.12/${name}.tar.xz";
-    sha256 = "bfd084d72c688d6efb0c34bb572a704cc2ce093c97a33390eaffb5e42158d418";
+    sha256 = "1cj45lpa74vkbxyila3d6pn5m1gh51nljp9fjirxmzwi1h6wg7jd";
   };
 
   buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ];
diff --git a/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix
index a8a1c244767..9076d5c5839 100644
--- a/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/grilo-plugins/default.nix
@@ -3,11 +3,11 @@
 , gmime, json_glib, avahi, tracker, itstool }:
 
 stdenv.mkDerivation rec {
-  name = "grilo-plugins-0.2.12";
+  name = "grilo-plugins-0.2.13";
 
   src = fetchurl {
     url = "mirror://gnome/sources/grilo-plugins/0.2/${name}.tar.xz";
-    sha256 = "15bed8a633c81b251920ab677d455433e641388f605277ca88e549cc89012b48";
+    sha256 = "008jwm5ydl0k25p3d2fkcail40fj9y3qknihxb5fg941p8qlhm55";
   };
 
   installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-0.2" ];
diff --git a/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix
index 6f1bfbbcfe9..9c0e3f9a0bc 100644
--- a/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/grilo/default.nix
@@ -2,11 +2,11 @@
 , libxml2, gnome3, gobjectIntrospection, libsoup }:
 
 stdenv.mkDerivation rec {
-  name = "grilo-0.2.10";
+  name = "grilo-0.2.11";
 
   src = fetchurl {
     url = "mirror://gnome/sources/grilo/0.2/${name}.tar.xz";
-    sha256 = "559a2470fe541b0090bcfdfac7a33e92dba967727bbab6d0eca70e5636a77b25";
+    sha256 = "8a52c37521de80d6caf08a519a708489b9e2b097c2758a0acaab6fbd26d30ea6";
   };
 
   configureFlags = [ "--enable-grl-pls" "--enable-grl-net" ];
diff --git a/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix
index 4564b0d21e1..8a89425a696 100644
--- a/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/gtksourceview/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "gtksourceview-${version}";
-  version = "3.12.2";
+  version = "3.12.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtksourceview/3.12/gtksourceview-${version}.tar.xz";
-    sha256 = "62a31eee00f633d7959efb7eec44049ebd0345d670265853dcd21c057f3f30ad";
+    sha256 = "1xzmw9n9zbkaasl8xi7s5h49wiv5dq4qf8hr2pzjkack3ai5j6gk";
   };
 
   buildInputs = [ pkgconfig atk cairo glib gtk3 pango
diff --git a/pkgs/desktops/gnome-3/3.12/core/totem/default.nix b/pkgs/desktops/gnome-3/3.12/core/totem/default.nix
index 3589299df3e..49094751983 100644
--- a/pkgs/desktops/gnome-3/3.12/core/totem/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/totem/default.nix
@@ -5,11 +5,11 @@
 , gnome3, librsvg, gdk_pixbuf, file }:
 
 stdenv.mkDerivation rec {
-  name = "totem-3.12.1";
+  name = "totem-3.12.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/totem/3.12/${name}.tar.xz";
-    sha256 = "dd168cdd4051d01131d47c24fa45bfd08b6ccf45900ac4b64bae47f6f47a35e3";
+    sha256 = "1law033wxbs8v3l2fk0p1v8lf9m45dm997yhq0cmqgw10jxxiybn";
   };
 
   doCheck = true;
@@ -39,8 +39,6 @@ stdenv.mkDerivation rec {
     rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
-  patches = [ ./fix_files_loss.patch ];
-
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Videos;
     description = "Movie player for the GNOME desktop based on GStreamer";
diff --git a/pkgs/desktops/gnome-3/3.12/core/totem/fix_files_loss.patch b/pkgs/desktops/gnome-3/3.12/core/totem/fix_files_loss.patch
deleted file mode 100644
index b85ad1efd00..00000000000
--- a/pkgs/desktops/gnome-3/3.12/core/totem/fix_files_loss.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 524c9e39a0ca6f2d1699e6e6d9ba3db1ea80d9f9 Mon Sep 17 00:00:00 2001
-From: Bastien Nocera <hadess@hadess.net>
-Date: Thu, 15 May 2014 19:28:35 +0200
-Subject: main: Fix potential data loss when removing multiple files
-
-We were using a list of GtkTreePaths and deleting the items one-by-one
-when the user clicked the "Delete" button. But after the first deletion,
-the tree model would have changed, and instead of pointing to the 2nd
-item we wanted to delete, the GtkTreePath would have pointed to another
-item, usually not one that we wanted to delete.
-
-We now use GtkTreeRowReferences, which will always point to the same
-row, as long as it exists.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=729778
-
-diff --git a/src/totem-grilo.c b/src/totem-grilo.c
-index 2133d77..0cff0d6 100644
---- a/src/totem-grilo.c
-+++ b/src/totem-grilo.c
-@@ -2074,7 +2074,8 @@ static void
- delete_foreach (gpointer data,
- 		gpointer user_data)
- {
--	GtkTreePath *path = data;
-+	GtkTreeRowReference *ref = data;
-+	GtkTreePath *path;
- 	GtkTreeModel *view_model = user_data;
- 	GtkTreeIter iter;
- 	GrlSource *source;
-@@ -2085,8 +2086,11 @@ delete_foreach (gpointer data,
- 	GtkTreeModel *model;
- 	GtkTreeIter real_model_iter;
- 
--	if (!gtk_tree_model_get_iter (view_model, &iter, path))
-+	path = gtk_tree_row_reference_get_path (ref);
-+	if (!path || !gtk_tree_model_get_iter (view_model, &iter, path)) {
-+		g_warning ("An item that was scheduled for removal isn't available any more");
- 		return;
-+	}
- 
- 	gtk_tree_model_get (view_model, &iter,
- 			    MODEL_RESULTS_CONTENT, &media,
-@@ -2151,14 +2155,23 @@ delete_cb (TotemSelectionToolbar *bar,
- 	   TotemGrilo            *self)
- {
- 	GtkTreeModel *model;
--	GList *list;
-+	GList *list, *l;
- 
- 	g_signal_handlers_block_by_func (self->priv->browser, "view-selection-changed", self);
- 
- 	model = gd_main_view_get_model (GD_MAIN_VIEW (self->priv->browser));
- 	list = gd_main_view_get_selection (GD_MAIN_VIEW (self->priv->browser));
-+
-+	/* GList of GtkTreePaths to a GList of GtkTreeRowReferences */
-+	for (l = list; l != NULL; l = l->next) {
-+		GtkTreeRowReference *ref;
-+
-+		ref = gtk_tree_row_reference_new (model, l->data);
-+		gtk_tree_path_free (l->data);
-+		l->data = ref;
-+	}
- 	g_list_foreach (list, delete_foreach, model);
--	g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
-+	g_list_free_full (list, (GDestroyNotify) gtk_tree_row_reference_free);
- 
- 	g_signal_handlers_unblock_by_func (self->priv->browser, "view-selection-changed", self);
- 
--- 
-cgit v0.10.1
-
diff --git a/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix
index 79155fe9b56..cf84f511416 100644
--- a/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/tracker/default.nix
@@ -8,11 +8,11 @@
 , libpng, libexif, libgsf, libuuid, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "tracker-1.0.1";
+  name = "tracker-1.0.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tracker/1.0/${name}.tar.xz";
-    sha256 = "76e7918e62526a8209f9c9226f82abe592a6332826ac7c12e6e405063181e889";
+    sha256 = "11pqcldgh07mjn38dlbj6ry5qkfbpf79ln5sqx7q86hhqzh3712h";
   };
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
diff --git a/pkgs/desktops/gnome-3/3.12/core/vte/default.nix b/pkgs/desktops/gnome-3/3.12/core/vte/default.nix
index 41597e47fa5..011424820e8 100644
--- a/pkgs/desktops/gnome-3/3.12/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/core/vte/default.nix
@@ -3,14 +3,14 @@
 stdenv.mkDerivation rec {
 
   versionMajor = "0.36";
-  versionMinor = "2";
+  versionMinor = "3";
   moduleName   = "vte";
 
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "f45eed3aed823068c7563345ea947be0e6ddb3dacd74646e6d7d26a921e04345";
+    sha256 = "54e5b07be3c0f7b158302f54ee79d4de1cb002f4259b6642b79b1e0e314a959c";
   };
 
   buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ];
diff --git a/pkgs/desktops/gnome-3/3.12/misc/geary/default.nix b/pkgs/desktops/gnome-3/3.12/misc/geary/default.nix
index 1eb6c0e3ed2..768e8bdb36e 100644
--- a/pkgs/desktops/gnome-3/3.12/misc/geary/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/misc/geary/default.nix
@@ -5,11 +5,11 @@
 , gnome3, librsvg, gnome_doc_utils, webkitgtk }:
 
 stdenv.mkDerivation rec {
-  name = "geary-0.6.0";
+  name = "geary-0.6.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/geary/0.6/${name}.tar.xz";
-    sha256 = "44ad1dc2c81c50006c751f8e72aa817f07002188da4c29e158060524a1962715";
+    sha256 = "0ap40mpj89sx82kcxlhl9gipq34ks2b70yhiv9s8zc5wg0nm7rpg";
   };
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix
index 2eccb9a32cf..26e9144349f 100644
--- a/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/misc/gnome-tweak-tool/default.nix
@@ -4,11 +4,11 @@
 , gnome3, librsvg, gdk_pixbuf, file, libnotify }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-tweak-tool-3.10.1";
+  name = "gnome-tweak-tool-3.12.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-tweak-tool/3.10/${name}.tar.xz";
-    sha256 = "fb5af9022c0521a925ef9f295e4080212b1b45427cd5f5f3a901667590afa7ec";
+    url = "mirror://gnome/sources/gnome-tweak-tool/3.12/${name}.tar.xz";
+    sha256 = "f8811d638797ef62500770a8dccc5bc689a427c8396a0dff8cbeddffdebf0e29";
   };
 
   doCheck = true;
@@ -30,7 +30,6 @@ stdenv.mkDerivation rec {
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
       --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix LD_LIBRARY_PATH ":" "${libsoup}/lib:${gnome3.gnome_desktop}/lib:${libnotify}/lib:${gtk3}/lib:${atk}/lib" \
       --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)"
   '';
 
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gpaste/default.nix
index 56a5f18544f..c303ccdf51e 100644
--- a/pkgs/desktops/gnome-3/3.12/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/misc/gpaste/default.nix
@@ -30,8 +30,7 @@ stdenv.mkDerivation rec {
       for i in $out/libexec/gpaste/*; do
         wrapProgram $i \
           --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
-          --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-          --prefix LD_LIBRARY_PATH : "${libPath}"
+          --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
       done
     '';
 
diff --git a/pkgs/desktops/kde-4.12/files/kdelibs-cve-2014-5033.patch b/pkgs/desktops/kde-4.12/files/kdelibs-cve-2014-5033.patch
new file mode 100644
index 00000000000..c85eccd6beb
--- /dev/null
+++ b/pkgs/desktops/kde-4.12/files/kdelibs-cve-2014-5033.patch
@@ -0,0 +1,36 @@
+--- a/kdecore/auth/backends/polkit-1/Polkit1Backend.cpp
++++ b/kdecore/auth/backends/polkit-1/Polkit1Backend.cpp
+@@ -144,7 +144,7 @@
+ 
+ Action::AuthStatus Polkit1Backend::actionStatus(const QString &action)
+ {
+-    PolkitQt1::UnixProcessSubject subject(QCoreApplication::applicationPid());
++    PolkitQt1::SystemBusNameSubject subject(QString::fromUtf8(callerID()));
+     PolkitQt1::Authority::Result r = PolkitQt1::Authority::instance()->checkAuthorizationSync(action, subject,
+                                                                                               PolkitQt1::Authority::None);
+     switch (r) {
+@@ -160,21 +160,12 @@
+ 
+ QByteArray Polkit1Backend::callerID() const
+ {
+-    QByteArray a;
+-    QDataStream s(&a, QIODevice::WriteOnly);
+-    s << QCoreApplication::applicationPid();
+-
+-    return a;
++    return QDBusConnection::systemBus().baseService().toUtf8();
+ }
+ 
+ bool Polkit1Backend::isCallerAuthorized(const QString &action, QByteArray callerID)
+ {
+-    QDataStream s(&callerID, QIODevice::ReadOnly);
+-    qint64 pid;
+-
+-    s >> pid;
+-
+-    PolkitQt1::UnixProcessSubject subject(pid);
++    PolkitQt1::SystemBusNameSubject subject(QString::fromUtf8(callerID));
+     PolkitQt1::Authority *authority = PolkitQt1::Authority::instance();
+ 
+     PolkitResultEventLoop e;
+
diff --git a/pkgs/desktops/kde-4.12/kdelibs/kdelibs.nix b/pkgs/desktops/kde-4.12/kdelibs/kdelibs.nix
index 396adf9ba75..5db693e6ea0 100644
--- a/pkgs/desktops/kde-4.12/kdelibs/kdelibs.nix
+++ b/pkgs/desktops/kde-4.12/kdelibs/kdelibs.nix
@@ -28,7 +28,10 @@ kde {
   # There are a few hardcoded paths.
   # Split plugins from libs?
 
-  patches = [ ../files/polkit-install.patch ];
+  patches = [
+    ../files/polkit-install.patch
+    ../files/kdelibs-cve-2014-5033.patch  # Security patch, remove when updating to 4.14.0 or more
+  ];
 
   cmakeFlags = [
     "-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook"
diff --git a/pkgs/desktops/xfce/applications/xfce4-mixer.nix b/pkgs/desktops/xfce/applications/xfce4-mixer.nix
index 2b0f729c0a3..f486373ee17 100644
--- a/pkgs/desktops/xfce/applications/xfce4-mixer.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-mixer.nix
@@ -1,5 +1,7 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gstreamer, gst_plugins_base, gtk
-, libxfce4util, libxfce4ui, xfce4panel, xfconf, libunique?null }:
+{ stdenv, fetchurl, pkgconfig, intltool, makeWrapper
+, glib, gstreamer, gst_plugins_base, gtk
+, libxfce4util, libxfce4ui, xfce4panel, xfconf, libunique ? null
+}:
 
 let
   # The usual Gstreamer plugins package has a zillion dependencies
@@ -23,13 +25,13 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ pkgconfig intltool glib gstreamer gst_plugins_minimal gtk
-      libxfce4util libxfce4ui xfce4panel xfconf libunique
+      libxfce4util libxfce4ui xfce4panel xfconf libunique makeWrapper
     ];
 
   postInstall =
     ''
-      mkdir -p $out/nix-support
-      echo ${gst_plugins_minimal} > $out/nix-support/propagated-user-env-packages
+      wrapProgram "$out/bin/xfce4-mixer" \
+        --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
     '';
 
   meta = {
diff --git a/pkgs/development/compilers/agda/default.nix b/pkgs/development/compilers/agda/default.nix
index db160c652cf..3a44baa489a 100644
--- a/pkgs/development/compilers/agda/default.nix
+++ b/pkgs/development/compilers/agda/default.nix
@@ -28,7 +28,7 @@ cabal.mkDerivation (self: {
   meta = {
     homepage = "http://wiki.portal.chalmers.se/agda/";
     description = "A dependently typed functional programming language and proof assistant";
-    license = "unknown";
+    license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
   };
 })
diff --git a/pkgs/development/compilers/agda/stdlib.nix b/pkgs/development/compilers/agda/stdlib.nix
index d0ae1394f89..7305fbb5397 100644
--- a/pkgs/development/compilers/agda/stdlib.nix
+++ b/pkgs/development/compilers/agda/stdlib.nix
@@ -1,7 +1,7 @@
-{ cabal, fetchurl, filemanip, Agda }:
+{ stdenv, agda, fetchurl, ghc, filemanip }:
 
-cabal.mkDerivation (self: rec {
-  pname = "Agda-stdlib";
+agda.mkDerivation (self: rec {
+  name = "Agda-stdlib";
   version = "0.8.1";
 
   src = fetchurl {
@@ -9,23 +9,18 @@ cabal.mkDerivation (self: rec {
     sha256 = "0ij4rg4lk0pq01ing285gbmnn23dcf2rhihdcs8bbdpjg52vl4gf";
   };
 
-  buildDepends = [ filemanip Agda ];
-
-  preConfigure = "cd ffi";
-
-  postInstall = ''
-      mkdir -p $out/share
-      cd ..
-      ${self.ghc.ghc}/bin/runhaskell GenerateEverything
-      ${Agda}/bin/agda -i . -i src Everything.agda
-      cp -pR src $out/share/agda
+  buildInputs = [ filemanip ghc ];
+  preConfigure = ''
+    runhaskell GenerateEverything.hs
   '';
 
-  meta = {
+  topSourceDirectories = [ "src" ];
+
+  meta = with stdenv.lib; {
     homepage = "http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary";
     description = "A standard library for use with the Agda compiler.";
-    license = "unknown";
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.jwiegley ];
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with maintainers; [ jwiegley ];
   };
-})
\ No newline at end of file
+})
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index 2fb8f9d73b5..7166d325b31 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -13,7 +13,7 @@
 , perl ? null # optional, for texi2pod (then pod2man); required for Java
 , gmp, mpfr, mpc, gettext, which
 , libelf                      # optional, for link-time optimizations (LTO)
-, ppl ? null, cloog ? null, isl ? null # optional, for the Graphite optimization framework.
+, cloog ? null, isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null, boehmgc ? null
 , zip ? null, unzip ? null, pkgconfig ? null, gtk ? null, libart_lgpl ? null
 , libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
@@ -59,14 +59,12 @@ let version = "4.8.3";
     # Whether building a cross-compiler for GNU/Hurd.
     crossGNU = cross != null && cross.config == "i586-pc-gnu";
 
-  /* gccinstall.info says that "parallel make is currently not supported since
-     collisions in profile collecting may occur".
-  */
-    enableParallelBuilding = !profiledCompiler;
+    enableParallelBuilding = true;
 
     patches = []
       ++ optional enableParallelBuilding ./parallel-bconfig.patch
       ++ optional (cross != null) ./libstdc++-target.patch
+      ++ optional noSysDirs ./no-sys-dirs.patch
       # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
       # target libraries and tools.
       ++ optional langAda ./gnat-cflags.patch
@@ -84,8 +82,8 @@ let version = "4.8.3";
     # Antlr (optional) allows the Java `gjdoc' tool to be built.  We want a
     # binary distribution here to allow the whole chain to be bootstrapped.
     javaAntlr = fetchurl {
-      url = http://www.antlr.org/download/antlr-3.1.3.jar;
-      sha256 = "1f41j0y4kjydl71lqlvr73yagrs2jsg1fjymzjz66mjy7al5lh09";
+      url = http://www.antlr.org/download/antlr-4.4-complete.jar;
+      sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz";
     };
 
     xlibs = [
@@ -278,7 +276,6 @@ stdenv.mkDerivation ({
     ++ (optional javaAwtGtk pkgconfig);
 
   buildInputs = [ gmp mpfr mpc libelf ]
-    ++ (optional (ppl != null) ppl)
     ++ (optional (cloog != null) cloog)
     ++ (optional (isl != null) isl)
     ++ (optional (zlib != null) zlib)
@@ -295,15 +292,7 @@ stdenv.mkDerivation ({
 
   NIX_LDFLAGS = stdenv.lib.optionalString  stdenv.isSunOS "-lm -ldl";
 
-  preConfigure = ''
-    configureFlagsArray=(
-      ${stdenv.lib.optionalString (ppl != null && ppl ? dontDisableStatic && ppl.dontDisableStatic)
-        "'--with-host-libstdcxx=-lstdc++ -lgcc_s'"}
-      ${stdenv.lib.optionalString (ppl != null && stdenv.isSunOS)
-        "\"--with-host-libstdcxx=-Wl,-rpath,\$prefix/lib/amd64 -lstdc++\"
-         \"--with-boot-ldflags=-L../prev-x86_64-pc-solaris2.11/libstdc++-v3/src/.libs\""}
-    );
-  '' + stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
+  preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
     export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
     export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
     export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
@@ -331,7 +320,6 @@ stdenv.mkDerivation ({
     ${if enableMultilib then "--disable-libquadmath" else "--disable-multilib"}
     ${if enableShared then "" else "--disable-shared"}
     ${if enablePlugin then "--enable-plugin" else "--disable-plugin"}
-    ${if ppl != null then "--with-ppl=${ppl} --disable-ppl-version-check" else ""}
     ${optionalString (isl != null) "--with-isl=${isl}"}
     ${optionalString (cloog != null) "--with-cloog=${cloog} --disable-cloog-version-check --enable-cloog-backend=isl"}
     ${if langJava then
@@ -414,7 +402,6 @@ stdenv.mkDerivation ({
     configureFlags = ''
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
       ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""}
       ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
@@ -523,7 +510,6 @@ stdenv.mkDerivation ({
 
     maintainers = with stdenv.lib.maintainers; [ ludo viric shlevy simons ];
 
-    # Volunteers needed for the {Cyg,Dar}win ports of *PPL.
     # gnatboot is not available out of linux platforms, so we disable the darwin build
     # for the gnat (ada compiler).
     platforms =
diff --git a/pkgs/development/compilers/gcc/4.8/no-sys-dirs.patch b/pkgs/development/compilers/gcc/4.8/no-sys-dirs.patch
new file mode 100644
index 00000000000..36df51904ac
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.8/no-sys-dirs.patch
@@ -0,0 +1,28 @@
+diff -ru -x '*~' gcc-4.8.3-orig/gcc/cppdefault.c gcc-4.8.3/gcc/cppdefault.c
+--- gcc-4.8.3-orig/gcc/cppdefault.c	2013-01-10 21:38:27.000000000 +0100
++++ gcc-4.8.3/gcc/cppdefault.c	2014-08-18 16:20:32.893944536 +0200
+@@ -35,6 +35,8 @@
+ # undef CROSS_INCLUDE_DIR
+ #endif
+ 
++#undef LOCAL_INCLUDE_DIR
++
+ const struct default_include cpp_include_defaults[]
+ #ifdef INCLUDE_DEFAULTS
+ = INCLUDE_DEFAULTS;
+diff -ru -x '*~' gcc-4.8.3-orig/gcc/gcc.c gcc-4.8.3/gcc/gcc.c
+--- gcc-4.8.3-orig/gcc/gcc.c	2014-03-23 12:30:57.000000000 +0100
++++ gcc-4.8.3/gcc/gcc.c	2014-08-18 13:19:32.689201690 +0200
+@@ -1162,10 +1162,10 @@
+ /* Default prefixes to attach to command names.  */
+ 
+ #ifndef STANDARD_STARTFILE_PREFIX_1
+-#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
++#define STANDARD_STARTFILE_PREFIX_1 ""
+ #endif
+ #ifndef STANDARD_STARTFILE_PREFIX_2
+-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
++#define STANDARD_STARTFILE_PREFIX_2 ""
+ #endif
+ 
+ #ifdef CROSS_DIRECTORY_STRUCTURE  /* Don't use these prefixes for a cross compiler.  */
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index 8b185d00bcc..d38040a48b3 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -11,7 +11,7 @@
 , perl ? null # optional, for texi2pod (then pod2man); required for Java
 , gmp, mpfr, mpc, gettext, which
 , libelf                      # optional, for link-time optimizations (LTO)
-, ppl ? null, cloog ? null, isl ? null # optional, for the Graphite optimization framework.
+, cloog ? null, isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null, boehmgc ? null
 , zip ? null, unzip ? null, pkgconfig ? null, gtk ? null, libart_lgpl ? null
 , libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
@@ -57,10 +57,7 @@ let version = "4.9.1";
     # Whether building a cross-compiler for GNU/Hurd.
     crossGNU = cross != null && cross.config == "i586-pc-gnu";
 
-  /* gccinstall.info says that "parallel make is currently not supported since
-     collisions in profile collecting may occur".
-  */
-    enableParallelBuilding = !profiledCompiler;
+    enableParallelBuilding = true;
 
     patches = [ ]
       ++ optional enableParallelBuilding ./parallel-bconfig.patch
@@ -276,7 +273,6 @@ stdenv.mkDerivation ({
     ++ (optional javaAwtGtk pkgconfig);
 
   buildInputs = [ gmp mpfr mpc libelf ]
-    ++ (optional (ppl != null) ppl)
     ++ (optional (cloog != null) cloog)
     ++ (optional (isl != null) isl)
     ++ (optional (zlib != null) zlib)
@@ -294,13 +290,6 @@ stdenv.mkDerivation ({
   NIX_LDFLAGS = stdenv.lib.optionalString  stdenv.isSunOS "-lm -ldl";
 
   preConfigure = ''
-    configureFlagsArray=(
-      ${stdenv.lib.optionalString (ppl != null && ppl ? dontDisableStatic && ppl.dontDisableStatic)
-        "'--with-host-libstdcxx=-lstdc++ -lgcc_s'"}
-      ${stdenv.lib.optionalString (ppl != null && stdenv.isSunOS)
-        "\"--with-host-libstdcxx=-Wl,-rpath,\$prefix/lib/amd64 -lstdc++\"
-         \"--with-boot-ldflags=-L../prev-x86_64-pc-solaris2.11/libstdc++-v3/src/.libs\""}
-    );
     ${stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit)
       ''
         export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
@@ -322,7 +311,6 @@ stdenv.mkDerivation ({
     ${if enableMultilib then "--disable-libquadmath" else "--disable-multilib"}
     ${if enableShared then "" else "--disable-shared"}
     ${if enablePlugin then "--enable-plugin" else "--disable-plugin"}
-    ${if ppl != null then "--with-ppl=${ppl} --disable-ppl-version-check" else ""}
     ${optionalString (isl != null) "--with-isl=${isl}"}
     ${optionalString (cloog != null) "--with-cloog=${cloog} --disable-cloog-version-check --enable-cloog-backend=isl"}
     ${if langJava then
@@ -403,7 +391,6 @@ stdenv.mkDerivation ({
     configureFlags = ''
       ${if enableMultilib then "" else "--disable-multilib"}
       ${if enableShared then "" else "--disable-shared"}
-      ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""}
       ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""}
       ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""}
       ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
@@ -510,7 +497,6 @@ stdenv.mkDerivation ({
 
     maintainers = with stdenv.lib.maintainers; [ ludo viric shlevy simons ];
 
-    # Volunteers needed for the {Cyg,Dar}win ports of *PPL.
     # gnatboot is not available out of linux platforms, so we disable the darwin build
     # for the gnat (ada compiler).
     platforms =
diff --git a/pkgs/development/compilers/gwydion-dylan/binary-builder.sh b/pkgs/development/compilers/gwydion-dylan/binary-builder.sh
deleted file mode 100644
index a0e71c02ab9..00000000000
--- a/pkgs/development/compilers/gwydion-dylan/binary-builder.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-source $stdenv/setup
-
-set -e
-
-mkdir -p $out
-cd $out
-tar zxvf $src
-mv ./usr/local/* .
-rm -rf ./usr
diff --git a/pkgs/development/compilers/gwydion-dylan/binary.nix b/pkgs/development/compilers/gwydion-dylan/binary.nix
deleted file mode 100644
index 0ac942d14b8..00000000000
--- a/pkgs/development/compilers/gwydion-dylan/binary.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "binary-gwydion-dylan-2.4.0";
-  builder = ./binary-builder.sh;
-  src = fetchurl {
-    url = http://www.gwydiondylan.org/downloads/binaries/linux/x86/tar/gwydion-dylan-2.4.0-x86-linux.tar.gz;
-    md5 = "52643ad51a455d21fd4d5bf82d98914c";
-  };
-}
diff --git a/pkgs/development/compilers/gwydion-dylan/builder.sh b/pkgs/development/compilers/gwydion-dylan/builder.sh
deleted file mode 100644
index ea2e5424399..00000000000
--- a/pkgs/development/compilers/gwydion-dylan/builder.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-source $stdenv/setup
-
-export DYLANDIR=$dylan
-export DYLANPATH=$dylan/lib/dylan/2.4.0/x86-linux-gcc
-configureFlags="--with-existing-runtime=$dylan/lib/dylan/2.4.0/x86-linux-gcc"
-export LD_LIBRARY_PATH="$dylan/lib/dylan/2.4.0/x86-linux-gcc:$LD_LIBRARY_PATH:$boehmgc/lib"
-
-genericBuild
diff --git a/pkgs/development/compilers/gwydion-dylan/default.nix b/pkgs/development/compilers/gwydion-dylan/default.nix
deleted file mode 100644
index 7c00e65d7cc..00000000000
--- a/pkgs/development/compilers/gwydion-dylan/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, dylan, boehmgc, perl, flex, yacc, readline}:
-
-stdenv.mkDerivation {
-  name = "gwydion-dylan-2.4.0";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = http://www.gwydiondylan.org/downloads/src/tar/gwydion-dylan-2.4.0.tar.gz;
-    md5 = "7ed180bf4ef11e8e8da3bd78b45477a8";
-  };
-
-  inherit boehmgc dylan perl;
-  buildInputs = [boehmgc dylan perl flex yacc readline];
-}
diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix
index 0761f189bc8..e60c4dd5b4b 100644
--- a/pkgs/development/compilers/idris/default.nix
+++ b/pkgs/development/compilers/idris/default.nix
@@ -11,8 +11,8 @@
 
 cabal.mkDerivation (self: {
   pname = "idris";
-  version = "0.9.14.2";
-  sha256 = "0j64kx357l16z9y9j20i7mvxgqff94bfssbhh1shb13c0pk5lmi6";
+  version = "0.9.14.3";
+  sha256 = "03zppfqjamy4mdwcfx3x1wzxav67ha1zgnynrxhvdqw3zcsrwnlr";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -26,11 +26,11 @@ cabal.mkDerivation (self: {
   buildTools = [ happy ];
   extraLibraries = [ boehmgc gmp ];
   configureFlags = "-fllvm -fgmp -fffi";
-  jailbreak = true;
   meta = {
     homepage = "http://www.idris-lang.org/";
     description = "Functional Programming Language with Dependent Types";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    broken = true;
   };
 })
diff --git a/pkgs/development/compilers/oraclejdk/jdk7-linux.nix b/pkgs/development/compilers/oraclejdk/jdk7-linux.nix
index 55e8ad45085..cf4990c33b5 100644
--- a/pkgs/development/compilers/oraclejdk/jdk7-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk7-linux.nix
@@ -1,9 +1,9 @@
 import ./jdk-linux-base.nix {
   productVersion = "7";
-  patchVersion = "65";
+  patchVersion = "67";
   downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
-  sha256_i686 = "e3032c561deb237c033b485a358cc429ec83b621303bc6b31768855778a9eaa0";
-  sha256_x86_64 = "33fac9630ca8c2d374247abc5c010ac8d2875a3384968aa3e74448361808e4b7";
+  sha256_i686 = "0p58pag1x85r911lxhmr4blk687ivjqigflx175vp7rcmmj108xn";
+  sha256_x86_64 = "0db36jg08qy8712qy6lgyifdqlqb468rrnjm3aa6937ixl9ixpal";
   jceName = "UnlimitedJCEPolicyJDK7.zip";
   jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
   sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";
diff --git a/pkgs/development/compilers/orc/default.nix b/pkgs/development/compilers/orc/default.nix
index 7dfbe218bb7..ca5eadc8a64 100644
--- a/pkgs/development/compilers/orc/default.nix
+++ b/pkgs/development/compilers/orc/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "orc-0.4.19";
+  name = "orc-0.4.21";
 
   src = fetchurl {
-    url = "http://gstreamer.freedesktop.org/src/orc/${name}.tar.gz";
-    sha256 = "17mmgwll2waz44m908lcxc5fd6n44yysh7p4pdw33hr138r507z2";
+    url = "http://gstreamer.freedesktop.org/src/orc/${name}.tar.xz";
+    sha256 = "187wrnq0ficwjj4y3yqci5fxcdkiazfs6k5js26k5b26hipzmham";
   };
 
-  doCheck = true;
+  doCheck = stdenv.is64bit; # see https://bugzilla.gnome.org/show_bug.cgi?id=728129#c7
 
   meta = {
     description = "The Oil Runtime Compiler";
diff --git a/pkgs/development/compilers/rustc/hardcode_paths.patch b/pkgs/development/compilers/rustc/hardcode_paths.patch
index 77e4c3f3788..fea35d24960 100644
--- a/pkgs/development/compilers/rustc/hardcode_paths.patch
+++ b/pkgs/development/compilers/rustc/hardcode_paths.patch
@@ -2,7 +2,7 @@ diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs
 index 7a3e912..ced75fa 100644
 --- a/src/librustc/back/link.rs
 +++ b/src/librustc/back/link.rs
-@@ -766,24 +766,15 @@ pub fn output_lib_filename(id: &CrateId) -> String {
+@@ -856,24 +856,15 @@
  
  pub fn get_cc_prog(sess: &Session) -> String {
      match sess.opts.cg.linker {
@@ -15,9 +15,9 @@ index 7a3e912..ced75fa 100644
 -    // In the future, FreeBSD will use clang as default compiler.
 -    // It would be flexible to use cc (system's default C compiler)
 -    // instead of hard-coded gcc.
--    // For win32, there is no cc command, so we add a condition to make it use gcc.
+-    // For Windows, there is no cc command, so we add a condition to make it use gcc.
 -    match sess.targ_cfg.os {
--        abi::OsWin32 => "gcc",
+-        abi::OsWindows => "gcc",
 -        _ => "cc",
 -    }.to_string()
  }
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
index 4f512096a42..aeb6cd2afbd 100644
--- a/pkgs/development/compilers/rustc/head.nix
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -16,19 +16,19 @@ assert stdenv.gcc.gcc != null;
 
 */
 
-with ((import ./common.nix) {inherit stdenv; version = "0.12.0-pre-7a25cf3f3"; });
+with ((import ./common.nix) {inherit stdenv; version = "0.12.0-pre-79a5448f4"; });
 
 let snapshot = if stdenv.system == "i686-linux"
-      then "a5e1bb723020ac35173d49600e76b0935e257a6a"
+      then "6f5464c9ab191d93bfea0894ca7c6f90c3506f2b"
       else if stdenv.system == "x86_64-linux"
-      then "1a2407df17442d93d1c34c916269a345658045d7"
+      then "72c92895fa9a1dba7880073f2b2b5d0e3e1a2ab6"
       else if stdenv.system == "i686-darwin"
-      then "6648fa88e41ad7c0991a085366e36d56005873ca"
+      then "545fc45a0071142714639c6be377e6d308c3a4e1"
       else if stdenv.system == "x86_64-darwin"
-      then "71b2d1dfd0abe1052908dc091e098ed22cf272c6"
+      then "8b44fbbbd1ba519d2e83d0d5ce1f6053d3cab8c6"
       else abort "no-snapshot for platform ${stdenv.system}";
-    snapshotDate = "2014-07-17";
-    snapshotRev = "9fc8394";
+    snapshotDate = "2014-09-10";
+    snapshotRev = "6faa4f3";
     snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2";
 
 in stdenv.mkDerivation {
@@ -38,8 +38,8 @@ in stdenv.mkDerivation {
 
   src = fetchgit {
     url = https://github.com/rust-lang/rust;
-    rev = "7a25cf3f30fa5fae2e868fa910ecc850f5e9ee65";
-    sha256 = "1hx8vd4gn5plbdvr0zvdvqyw9x9r2vbmh112h2f5d2xxsf9p7rf1";
+    rev = "79a5448f41dcc6ab52663105a6b02fc5af4c503e";
+    sha256 = "0v2ahwgb1ls3g4ch6005azjmfh8bs0v0nbmmfpn53zgiiywad2ji";
   };
 
   # We need rust to build rust. If we don't provide it, configure will try to download it.
diff --git a/pkgs/development/compilers/rustc/local_stage0.patch b/pkgs/development/compilers/rustc/local_stage0.patch
index 1261b2d458d..2f38d7c1757 100644
--- a/pkgs/development/compilers/rustc/local_stage0.patch
+++ b/pkgs/development/compilers/rustc/local_stage0.patch
@@ -2,12 +2,15 @@ diff --git a/src/etc/local_stage0.sh b/src/etc/local_stage0.sh
 index e78f231..6b6773b 100755
 --- a/src/etc/local_stage0.sh
 +++ b/src/etc/local_stage0.sh
-@@ -53,8 +53,3 @@ if [ -z $TARG_DIR ]; then
+@@ -53,11 +53,6 @@
  fi
-
+ 
  cp ${PREFIX}/bin/rustc${BIN_SUF} ${TARG_DIR}/stage0/bin/
 -cp ${PREFIX}/${LIB_DIR}/${RUSTLIBDIR}/${TARG_DIR}/${LIB_DIR}/* ${TARG_DIR}/stage0/${LIB_DIR}/
 -cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}extra*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
 -cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rust*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
 -cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}std*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
 -cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}syntax*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
+ 
+ # do not fail if one of the above fails, as all we need is a working rustc!
+ exit 0
diff --git a/pkgs/development/compilers/sbcl/1.2.0.nix b/pkgs/development/compilers/sbcl/1.2.0.nix
new file mode 100644
index 00000000000..c9d360f0ec5
--- /dev/null
+++ b/pkgs/development/compilers/sbcl/1.2.0.nix
@@ -0,0 +1,78 @@
+{ stdenv, fetchurl, sbclBootstrap, clisp}:
+
+stdenv.mkDerivation rec {
+  name    = "sbcl-${version}";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
+    sha256 = "13k20sys1v4lvgis8cnbczww6zs93rw176vz07g4jx06418k53x2";
+  };
+
+  buildInputs = [ ]
+    ++ (stdenv.lib.optional stdenv.isDarwin sbclBootstrap)
+    ++ (stdenv.lib.optional stdenv.isLinux clisp)
+    ;
+
+  patchPhase = ''
+    echo '"${version}.nixos"' > version.lisp-expr
+    echo "
+    (lambda (features)
+      (flet ((enable (x)
+               (pushnew x features))
+             (disable (x)
+               (setf features (remove x features))))
+        (enable :sb-thread))) " > customize-target-features.lisp
+
+    pwd
+
+    # SBCL checks whether files are up-to-date in many places..
+    # Unfortunately, same timestamp is not good enough
+    sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
+    sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
+    sed -i src/cold/slam.lisp -e \
+      '/file-write-date input/a)'
+    sed -i src/cold/slam.lisp -e \
+      '/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'
+    sed -i src/code/target-load.lisp -e \
+      '/date defaulted-fasl/a)'
+    sed -i src/code/target-load.lisp -e \
+      '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
+
+    # Fix the tests
+    sed -e '/deftest pwent/inil' -i contrib/sb-posix/posix-tests.lisp
+    sed -e '/deftest grent/inil' -i contrib/sb-posix/posix-tests.lisp
+    sed -e '/deftest .*ent.non-existing/,+5d' -i contrib/sb-posix/posix-tests.lisp
+    sed -e '/deftest \(pw\|gr\)ent/,+3d' -i contrib/sb-posix/posix-tests.lisp
+
+    sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
+    sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
+  '';
+
+  preBuild = ''
+    export INSTALL_ROOT=$out
+    mkdir -p test-home
+    export HOME=$PWD/test-home
+  '';
+
+  buildPhase = if stdenv.isLinux
+    then ''
+      sh make.sh clisp --prefix=$out
+    ''
+    else ''
+      sh make.sh --prefix=$out --xc-host='${sbclBootstrap}/bin/sbcl --core ${sbclBootstrap}/share/sbcl/sbcl.core --disable-debugger --no-userinit --no-sysinit'
+    '';
+
+  installPhase = ''
+    INSTALL_ROOT=$out sh install.sh
+  '';
+
+  meta = {
+    description = "Lisp compiler";
+    homepage = http://www.sbcl.org;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.all;
+    inherit version;
+  };
+}
diff --git a/pkgs/development/compilers/scala/default.nix b/pkgs/development/compilers/scala/default.nix
index e299be9144e..c556870d519 100644
--- a/pkgs/development/compilers/scala/default.nix
+++ b/pkgs/development/compilers/scala/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  name = "scala-2.11.0";
+  name = "scala-2.11.1";
 
   src = fetchurl {
     url = "http://www.scala-lang.org/files/archive/${name}.tgz";
-    sha256 = "00lap31c6rxvg7vipmj0j7f4mv6c58wpfyd3785bxwlhrzmmwgq7";
+    sha256 = "1vjsmqjwpxavyj29wrbvvx7799fsa65d4iha5mj63cgs8qp605gk";
   };
 
   buildInputs = [ jre makeWrapper ] ;
diff --git a/pkgs/development/compilers/urweb/default.nix b/pkgs/development/compilers/urweb/default.nix
index bd457b227e6..01dbaee8cde 100644
--- a/pkgs/development/compilers/urweb/default.nix
+++ b/pkgs/development/compilers/urweb/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "urweb";
-  version = "20140531";
+  version = "20140830";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://www.impredicative.com/ur/${name}.tgz";
-    sha256 = "0gbk16hzs8267cfhb7w1cqgjxdv2icxg5clxdbda6qsn84jaf3n4";
+    sha256 = "0l4zhvdy2fdvhihyl4gl09v8q4w05b1k0c6h4k8281px96d5ljgr";
   };
 
   buildInputs = [ stdenv.gcc file openssl mlton mysql postgresql sqlite ];
diff --git a/pkgs/development/interpreters/chibi/default.nix b/pkgs/development/interpreters/chibi/default.nix
new file mode 100644
index 00000000000..b4a0b77e705
--- /dev/null
+++ b/pkgs/development/interpreters/chibi/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper }:
+let
+  version = "0.7";
+  name = "chibi-scheme-${version}";
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  meta = {
+    homepage = "https://code.google.com/p/chibi-scheme/";
+    description = "Small Footprint Scheme for use as a C Extension Language";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.DerGuteMoritz ];
+  };
+
+  src = fetchurl {
+    url = "http://abrek.synthcode.com/${name}.tgz";
+    sha256 = "1hhkq0khgi8i24xv66y7r6pgk1issn1i2bf7rv91rbk0wm0kv7qm";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    make install PREFIX="$out"
+  '';
+
+  fixupPhase = ''
+    wrapProgram "$out/bin/chibi-scheme" \
+      --prefix CHIBI_MODULE_PATH : "$out/share/chibi:$out/lib/chibi"
+
+    for f in chibi-doc chibi-ffi snow-chibi; do
+      substituteInPlace "$out/bin/$f" \
+        --replace "/usr/bin/env chibi-scheme" "$out/bin/chibi-scheme"
+    done
+  '';
+}
diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix
index 59629eb2f59..8f0b4a238b3 100644
--- a/pkgs/development/interpreters/elixir/default.nix
+++ b/pkgs/development/interpreters/elixir/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils }:
 
 let
-  version = "0.15.1";
+  version = "1.0.0";
 in
 stdenv.mkDerivation {
   name = "elixir-${version}";
 
   src = fetchurl {
     url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz";
-    sha256 = "8e608abf90a6e9a25ef5fb7e45dfd04e2cb7e1fecb4ac260bf6652885a7f0c50";
+    sha256 = "1ci8g6nh89xnn0ax9kazcs47w406nqsj1d4rf8sb1b6abfq78xsj";
   };
 
   buildInputs = [ erlang rebar makeWrapper ];
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
     '';
 
     license = licenses.epl10;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.the-kenny ];
   };
 }
diff --git a/pkgs/development/interpreters/erlang/R16.nix b/pkgs/development/interpreters/erlang/R16.nix
index 5945cdd8299..23243803e8d 100644
--- a/pkgs/development/interpreters/erlang/R16.nix
+++ b/pkgs/development/interpreters/erlang/R16.nix
@@ -1,13 +1,15 @@
 { stdenv, fetchurl, perl, gnum4, ncurses, openssl
 , gnused, gawk, makeWrapper
+, odbcSupport ? false, unixODBC ? null
 , wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }:
 
 assert wxSupport -> mesa != null && wxGTK != null && xlibs != null;
+assert odbcSupport -> unixODBC != null;
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "erlang-" + version;
+  name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}";
   version = "16B03-1";
 
   src = fetchurl {
@@ -17,7 +19,8 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ perl gnum4 ncurses openssl makeWrapper
-    ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ];
+    ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ]
+      ++ optional odbcSupport [ unixODBC ];
 
   patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
 
@@ -26,7 +29,7 @@ stdenv.mkDerivation rec {
     sed -e s@/bin/pwd@pwd@g -i otp_build
   '';
 
-  configureFlags= "--with-ssl=${openssl} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}";
+  configureFlags= "--with-ssl=${openssl} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}";
 
   postInstall = let
     manpages = fetchurl {
diff --git a/pkgs/development/interpreters/erlang/R17.nix b/pkgs/development/interpreters/erlang/R17.nix
index 2aba55d3679..83ea79d67f3 100644
--- a/pkgs/development/interpreters/erlang/R17.nix
+++ b/pkgs/development/interpreters/erlang/R17.nix
@@ -1,13 +1,15 @@
 { stdenv, fetchurl, perl, gnum4, ncurses, openssl
 , gnused, gawk, makeWrapper
+, odbcSupport ? false, unixODBC ? null
 , wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }:
 
 assert wxSupport -> mesa != null && wxGTK != null && xlibs != null;
+assert odbcSupport -> unixODBC != null;
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "erlang-" + version;
+  name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}";
   version = "17.1";
 
   src = fetchurl {
@@ -17,7 +19,8 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ perl gnum4 ncurses openssl makeWrapper
-    ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ];
+    ] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ]
+      ++ optional odbcSupport [ unixODBC ];
 
   patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
 
@@ -26,7 +29,7 @@ stdenv.mkDerivation rec {
     sed -e s@/bin/pwd@pwd@g -i otp_build
   '';
 
-  configureFlags= "--with-ssl=${openssl} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}";
+  configureFlags= "--with-ssl=${openssl} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"}";
 
   postInstall = let
     manpages = fetchurl {
diff --git a/pkgs/development/interpreters/jimtcl/default.nix b/pkgs/development/interpreters/jimtcl/default.nix
new file mode 100644
index 00000000000..a6b8478b5e2
--- /dev/null
+++ b/pkgs/development/interpreters/jimtcl/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, sqlite }:
+
+stdenv.mkDerivation {
+  name = "jimtcl-0.75-git";
+
+  src = fetchgit {
+    url = https://github.com/msteveb/jimtcl.git;
+    rev = "c4d4bf8bc104733db1f5992a27d88fbfca9ba882";
+    sha256 = "0vnl2k5sj250l08bplqd61zj6261v7kp202pss66g01rhp42fj3r";
+  };
+
+  buildInputs = [
+    sqlite
+  ];
+
+  configureFlags = [
+    "--with-ext=oo"
+    "--with-ext=tree"
+    "--with-ext=binary"
+    "--with-ext=sqlite3"
+    "--enable-utf8"
+    "--ipv6"
+  ];
+
+  meta = {
+    description = "An open source small-footprint implementation of the Tcl programming language";
+    homepage = http://jim.tcl.tk/;
+    license = stdenv.lib.licenses.bsd2;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ dbohdan ];
+  };
+}
diff --git a/pkgs/development/interpreters/lua-5/5.1.nix b/pkgs/development/interpreters/lua-5/5.1.nix
index 1b05cb8f778..444ecbc787a 100644
--- a/pkgs/development/interpreters/lua-5/5.1.nix
+++ b/pkgs/development/interpreters/lua-5/5.1.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, readline }:
+{ stdenv, fetchurl, fetchpatch, readline }:
 
 let
   dsoPatch = fetchurl {
@@ -18,7 +18,13 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline ];
 
-  patches = if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch ];
+  patches = (if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch ])
+    ++ [(fetchpatch {
+      name = "CVE-2014-5461.patch";
+      url = "http://anonscm.debian.org/cgit/pkg-lua/lua5.1.git/plain/debian/patches/"
+        + "0004-Fix-stack-overflow-in-vararg-functions.patch?id=b75a2014db2ad65683521f7bb295bfa37b48b389";
+      sha256 = "05i5vh53d9i6dy11ibg9i9qpwz5hdm0s8bkx1d9cfcvy80cm4c7f";
+    })];
 
   configurePhase =
     if stdenv.isDarwin
diff --git a/pkgs/development/interpreters/lua-5/5.2.nix b/pkgs/development/interpreters/lua-5/5.2.nix
index ea44adb462c..1812ccbf7d6 100644
--- a/pkgs/development/interpreters/lua-5/5.2.nix
+++ b/pkgs/development/interpreters/lua-5/5.2.nix
@@ -9,12 +9,12 @@ let
 in
 stdenv.mkDerivation rec {
   name = "lua-${version}";
-  majorVersion = "5.2";
-  version = "${majorVersion}.2";
+  luaversion = "5.2";
+  version = "${luaversion}.3";
 
   src = fetchurl {
     url = "http://www.lua.org/ftp/${name}.tar.gz";
-    sha256 = "004zyh9p3lpvbwhyhlmrw6wwcia5abx84q4h2brkn4zdypipvmiz";
+    sha1 = "926b7907bc8d274e063d42804666b40a3f3c124c";
   };
 
   nativeBuildInputs = [ readline ];
@@ -24,17 +24,17 @@ stdenv.mkDerivation rec {
   configurePhase =
     if stdenv.isDarwin
     then ''
-    makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=macosx CFLAGS="-DLUA_USE_LINUX -fno-common -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDFLAGS="-fPIC" V=${majorVersion} R=${version} )
+    makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=macosx CFLAGS="-DLUA_USE_LINUX -fno-common -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDFLAGS="-fPIC" V=${luaversion} R=${version} )
     installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.${version}.dylib" INSTALL_DATA='cp -d' )
   '' else ''
-    makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-DLUA_USE_LINUX -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDFLAGS="-fPIC" V=${majorVersion} R=${version} )
-    installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.${majorVersion} liblua.so.${version}" INSTALL_DATA='cp -d' )
+    makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-DLUA_USE_LINUX -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDFLAGS="-fPIC" V=${luaversion} R=${version} )
+    installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.${luaversion} liblua.so.${version}" INSTALL_DATA='cp -d' )
   '';
 
   postInstall = ''
     mkdir -p "$out/share/doc/lua" "$out/lib/pkgconfig"
     mv "doc/"*.{gif,png,css,html} "$out/share/doc/lua/"
-    rmdir $out/{share,lib}/lua/${majorVersion} $out/{share,lib}/lua
+    rmdir $out/{share,lib}/lua/${luaversion} $out/{share,lib}/lua
     mkdir -p "$out/lib/pkgconfig"
     cat >"$out/lib/pkgconfig/lua.pc" <<EOF
     prefix=$out
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
         CC=${stdenv.cross.config}-gcc
         STRIP=:
         RANLIB=${stdenv.cross.config}-ranlib
-        V=${majorVersion}
+        V=${luaversion}
         R=${version}
         ${if isMingw then "mingw" else stdenv.lib.optionalString isDarwin ''
         AR="${stdenv.cross.config}-ar rcu"
diff --git a/pkgs/development/interpreters/lua-5/sec.nix b/pkgs/development/interpreters/lua-5/sec.nix
index 33def9c51fd..08eb1c89308 100644
--- a/pkgs/development/interpreters/lua-5/sec.nix
+++ b/pkgs/development/interpreters/lua-5/sec.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lua5, lua5_sockets, openssl }:
+{ stdenv, fetchurl, lua5, openssl }:
 
 stdenv.mkDerivation rec {
   version = "0.5";
diff --git a/pkgs/development/interpreters/lua-5/sockets.nix b/pkgs/development/interpreters/lua-5/sockets.nix
index 9c6cea38170..018fb201bcd 100644
--- a/pkgs/development/interpreters/lua-5/sockets.nix
+++ b/pkgs/development/interpreters/lua-5/sockets.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, lua5}:
+{ stdenv, fetchurl, lua5 }:
 
 stdenv.mkDerivation rec {
   name    = "lua-sockets-${version}";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
       sha256 = "19ichkbc4rxv00ggz8gyf29jibvc2wq9pqjik0ll326rrxswgnag";
   };
 
-  luaver = "5.1"; # TODO
+  luaver = lua5.luaversion;
   patchPhase = ''
       sed -e "s,^INSTALL_TOP_SHARE.*,INSTALL_TOP_SHARE=$out/share/lua/${lua5.luaversion}," \
           -e "s,^INSTALL_TOP_LIB.*,INSTALL_TOP_LIB=$out/lib/lua/${lua5.luaversion}," \
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index eac067da282..d302a2a6e18 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull
 , libX11, graphicsmagick, pcre, liblapack, pkgconfig, mesa, fltk
 , fftw, fftwSinglePrec, zlib, curl, qrupdate
-, qt ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
+, qt ? null, qscintilla ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
 , suitesparse ? null, gnuplot ? null, openjdk ? null, python ? null
 }:
 
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     graphicsmagick pcre liblapack pkgconfig mesa fltk zlib curl
     fftw fftwSinglePrec qrupdate ]
     ++ (stdenv.lib.optional (qt != null) qt)
+    ++ (stdenv.lib.optional (qscintilla != null) qscintilla)
     ++ (stdenv.lib.optional (ghostscript != null) ghostscript)
     ++ (stdenv.lib.optional (llvm != null) llvm)
     ++ (stdenv.lib.optional (hdf5 != null) hdf5)
diff --git a/pkgs/development/interpreters/perl/5.16/default.nix b/pkgs/development/interpreters/perl/5.16/default.nix
index 600884db5e6..c1a5374c92e 100644
--- a/pkgs/development/interpreters/perl/5.16/default.nix
+++ b/pkgs/development/interpreters/perl/5.16/default.nix
@@ -54,6 +54,12 @@ stdenv.mkDerivation rec {
       ${optionalString stdenv.isArm ''
         configureFlagsArray=(-Dldflags="-lm -lrt")
       ''}
+
+      ${optionalString stdenv.isCygwin ''
+        cp cygwin/cygwin.c{,.bak}
+        echo "#define PERLIO_NOT_STDIO 0" > tmp
+        cat tmp cygwin/cygwin.c.bak > cygwin/cygwin.c
+      ''}
     '';
 
   preBuild = optionalString (!(stdenv ? gcc && stdenv.gcc.nativeTools))
diff --git a/pkgs/development/interpreters/php/5.4.nix b/pkgs/development/interpreters/php/5.4.nix
index e39661b224a..4f378ddff4f 100644
--- a/pkgs/development/interpreters/php/5.4.nix
+++ b/pkgs/development/interpreters/php/5.4.nix
@@ -9,7 +9,7 @@ in
 
 composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
-  version = "5.4.31";
+  version = "5.4.32";
 
   name = "php-${version}";
 
@@ -249,7 +249,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
 
   src = fetchurl {
     url = "http://www.php.net/distributions/php-${version}.tar.bz2";
-    sha256 = "0kci0yir923fc7dv7j9qrc10pj05v82jnxjxjbgrj7gx64a4k3jy";
+    sha256 = "09n8lxnc5p2xfwk0ql2lh183h78hha1axhrdsa6g3650d5v73l16";
   };
 
   meta = {
diff --git a/pkgs/development/interpreters/regina/default.nix b/pkgs/development/interpreters/regina/default.nix
index d8b3558be4f..992f7281554 100644
--- a/pkgs/development/interpreters/regina/default.nix
+++ b/pkgs/development/interpreters/regina/default.nix
@@ -12,16 +12,15 @@ let
   sourceInfo = rec {
     baseName="Regina-REXX";
     pname="regina-rexx";
-    version="3.5";
+    version = "3.8.2";
     name="${baseName}-${version}";
     url="mirror://sourceforge/${pname}/${pname}/${version}/${name}.tar.gz";
-    hash="0gh0k6lbhfixs44adha7lxirl3a08jabdylzr6m7mh5q5fhzv5f8";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "06vr6p9pqr5zzsxm1l9iwb2w9z8qkm971c2knh0vf5bbm6znjz35";
   };
 
   inherit (sourceInfo) name version;
@@ -43,11 +42,8 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.lgpl2;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://sourceforge.net/projects/regina-rexx/files/regina-rexx/";
-    };
+    downloadPage = "http://sourceforge.net/projects/regina-rexx/files/regina-rexx/";
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/development/interpreters/regina/default.upstream b/pkgs/development/interpreters/regina/default.upstream
new file mode 100644
index 00000000000..7b3c6905a1c
--- /dev/null
+++ b/pkgs/development/interpreters/regina/default.upstream
@@ -0,0 +1,5 @@
+url http://sourceforge.net/projects/regina-rexx/files/regina-rexx/
+SF_version_dir
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix
index 6ec0f4f73e5..b652321a9fc 100644
--- a/pkgs/development/interpreters/ruby/generated.nix
+++ b/pkgs/development/interpreters/ruby/generated.nix
@@ -4,22 +4,23 @@ g: # Get dependencies from patched gems
 {
   aliases = {
     ZenTest = g.ZenTest_4_10_1;
-    actionmailer = g.actionmailer_4_1_5;
-    actionpack = g.actionpack_4_1_5;
-    actionview = g.actionview_4_1_5;
-    activemodel = g.activemodel_4_1_5;
-    activerecord = g.activerecord_4_1_5;
-    activesupport = g.activesupport_4_1_5;
+    actionmailer = g.actionmailer_4_1_6;
+    actionpack = g.actionpack_4_1_6;
+    actionview = g.actionview_4_1_6;
+    activemodel = g.activemodel_4_1_6;
+    activerecord = g.activerecord_4_1_6;
+    activesupport = g.activesupport_4_1_6;
     addressable = g.addressable_2_3_6;
     arel = g.arel_5_0_1_20140414130214;
     atoulme_Antwrap = g.atoulme_Antwrap_0_7_4;
     autotest_rails = g.autotest_rails_4_2_1;
-    aws_sdk = g.aws_sdk_1_51_0;
+    aws_sdk = g.aws_sdk_1_53_0;
+    aws_sdk_v1 = g.aws_sdk_v1_1_53_0;
     backports = g.backports_3_6_0;
     bitbucket_backup = g.bitbucket_backup_0_3_1;
     builder = g.builder_3_2_2;
-    buildr = g.buildr_1_4_19;
-    bundler = g.bundler_1_7_1;
+    buildr = g.buildr_1_4_20;
+    bundler = g.bundler_1_7_2;
     childprocess = g.childprocess_0_5_3;
     chronic = g.chronic_0_10_2;
     coderay = g.coderay_1_1_0;
@@ -27,7 +28,7 @@ g: # Get dependencies from patched gems
     daemons = g.daemons_1_1_9;
     diff_lcs = g.diff_lcs_1_2_5;
     dimensions = g.dimensions_1_2_0;
-    domain_name = g.domain_name_0_5_20;
+    domain_name = g.domain_name_0_5_21;
     dotenv = g.dotenv_0_11_1;
     dotenv_deployment = g.dotenv_deployment_0_0_2;
     em_resolv_replace = g.em_resolv_replace_1_1_3;
@@ -35,13 +36,14 @@ g: # Get dependencies from patched gems
     ethon = g.ethon_0_7_1;
     eventmachine = g.eventmachine_1_0_3;
     eventmachine_tail = g.eventmachine_tail_0_6_4;
+    execjs = g.execjs_2_2_1;
     fakes3 = g.fakes3_0_1_5_2;
     faraday = g.faraday_0_9_0;
     faraday_middleware = g.faraday_middleware_0_9_1;
     ffi = g.ffi_1_9_3;
     file_tail = g.file_tail_1_0_12;
-    foreman = g.foreman_0_74_0;
-    gettext = g.gettext_3_1_3;
+    foreman = g.foreman_0_75_0;
+    gettext = g.gettext_3_1_4;
     gh = g.gh_0_13_2;
     gherkin = g.gherkin_2_12_2;
     highline = g.highline_1_6_21;
@@ -63,7 +65,7 @@ g: # Get dependencies from patched gems
     mime_types = g.mime_types_2_3;
     mini_portile = g.mini_portile_0_6_0;
     minitar = g.minitar_0_5_4;
-    minitest = g.minitest_5_4_0;
+    minitest = g.minitest_5_4_1;
     multi_json = g.multi_json_1_10_1;
     multi_test = g.multi_test_0_1_1;
     multipart_post = g.multipart_post_2_0_0;
@@ -79,17 +81,17 @@ g: # Get dependencies from patched gems
     papertrail = g.papertrail_0_9_10;
     papertrail_cli = g.papertrail_cli_0_9_3;
     parallel = g.parallel_0_7_1;
-    polyglot = g.polyglot_0_3_5;
     pry = g.pry_0_9_12_6;
     pusher_client = g.pusher_client_0_6_0;
     rack = g.rack_1_5_2;
     rack_protection = g.rack_protection_1_5_3;
     rack_test = g.rack_test_0_6_2;
-    rails = g.rails_4_1_5;
-    railties = g.railties_4_1_5;
+    rails = g.rails_4_1_6;
+    railties = g.railties_4_1_6;
     rake = g.rake_10_3_2;
     rb_fsevent = g.rb_fsevent_0_9_4;
     rdiscount = g.rdiscount_2_1_7_1;
+    rdoc = g.rdoc_4_1_2;
     remote_syslog = g.remote_syslog_1_6_14;
     riemann_dash = g.riemann_dash_0_2_9;
     right_aws = g.right_aws_3_1_0;
@@ -102,13 +104,13 @@ g: # Get dependencies from patched gems
     rspec_expectations = g.rspec_expectations_2_14_5;
     rspec_mocks = g.rspec_mocks_2_14_6;
     rubyzip = g.rubyzip_1_1_6;
-    sass = g.sass_3_4_1;
-    selenium_webdriver = g.selenium_webdriver_2_42_0;
+    sass = g.sass_3_4_3;
+    selenium_webdriver = g.selenium_webdriver_2_43_0;
     servolux = g.servolux_0_10_0;
     sinatra = g.sinatra_1_4_5;
     slop = g.slop_3_6_0;
-    sprockets = g.sprockets_2_12_1;
-    sprockets_rails = g.sprockets_rails_2_1_3;
+    sprockets = g.sprockets_2_12_2;
+    sprockets_rails = g.sprockets_rails_2_1_4;
     syslog_protocol = g.syslog_protocol_0_9_2;
     systemu = g.systemu_2_6_4;
     taskjuggler = g.taskjuggler_3_5_0;
@@ -121,21 +123,22 @@ g: # Get dependencies from patched gems
     tilt = g.tilt_1_4_1;
     tins = g.tins_1_3_2;
     travis = g.travis_1_7_1;
-    treetop = g.treetop_1_4_15;
     trollop = g.trollop_2_0;
     typhoeus = g.typhoeus_0_6_9;
     tzinfo = g.tzinfo_1_2_2;
+    uglifier = g.uglifier_2_5_3;
     unf = g.unf_0_1_4;
     unf_ext = g.unf_ext_0_0_6;
     uuid = g.uuid_2_3_7;
     webrick = g.webrick_1_3_1;
     webrobots = g.webrobots_0_1_1;
-    websocket = g.websocket_1_2_0;
+    websocket = g.websocket_1_2_1;
     xapian_full = g.xapian_full_1_2_3;
     xapian_ruby = g.xapian_ruby_1_2_17;
     xml_simple = g.xml_simple_1_1_2;
+    yajl_ruby = g.yajl_ruby_1_2_1;
   };
-  gem_nix_args = [ ''autotest-rails'' ''aws-sdk'' ''bitbucket-backup'' ''buildr'' ''cucumber'' ''fakes3'' ''foreman'' ''gettext'' ''iconv'' ''jsduck'' ''lockfile'' ''mechanize'' ''nix'' ''papertrail-cli'' ''rails'' ''rake'' ''rb-fsevent'' ''remote_syslog'' ''riemann-dash'' ''right_aws'' ''rmail'' ''sass'' ''selenium-webdriver'' ''sinatra-1.3.2'' ''taskjuggler'' ''terminal-notifier'' ''thin'' ''travis'' ''trollop'' ''uuid'' ''xapian-full'' ''xapian-ruby'' ];
+  gem_nix_args = [ ''autotest-rails'' ''aws-sdk'' ''bitbucket-backup'' ''buildr'' ''cucumber'' ''erubis'' ''execjs'' ''fakes3'' ''foreman'' ''gettext'' ''iconv'' ''jsduck'' ''lockfile'' ''mechanize'' ''nix'' ''papertrail-cli'' ''rails'' ''rake'' ''rb-fsevent'' ''rdoc'' ''remote_syslog'' ''riemann-dash'' ''right_aws'' ''rmail'' ''sass'' ''selenium-webdriver'' ''sinatra-1.3.2'' ''taskjuggler'' ''terminal-notifier'' ''thin'' ''travis'' ''trollop'' ''uglifier'' ''uuid'' ''xapian-full'' ''xapian-ruby'' ''yajl-ruby'' ];
   gems = {
     ZenTest_4_10_1 = {
       basename = ''ZenTest'';
@@ -168,71 +171,71 @@ installed versions.'';
       requiredGems = [  ];
       sha256 = ''1jyk0lag27s71idna2h72ljskimj0snsiw7diyjx5rqxnz6fj7z1'';
     };
-    actionmailer_4_1_5 = {
+    actionmailer_4_1_6 = {
       basename = ''actionmailer'';
       meta = {
         description = ''Email composition, delivery, and receiving framework (part of Rails).'';
         homepage = ''http://www.rubyonrails.org'';
         longDescription = ''Email on Rails. Compose, deliver, receive, and test emails using the familiar controller/view pattern. First-class support for multipart email and attachments.'';
       };
-      name = ''actionmailer-4.1.5'';
-      requiredGems = [ g.actionpack_4_1_5 g.actionview_4_1_5 g.mail_2_5_4 ];
-      sha256 = ''19frz9njy6jbxh7yasx62l4ifns3dxfkfqvnxlqb4pwsz7lqcp9c'';
+      name = ''actionmailer-4.1.6'';
+      requiredGems = [ g.actionpack_4_1_6 g.actionview_4_1_6 g.mail_2_6_1 ];
+      sha256 = ''1lsw9h0wm7pwdzm9jdq3y5b8b1cf56fd4dcgx4s91qf0lc0dw0wv'';
     };
-    actionpack_4_1_5 = {
+    actionpack_4_1_6 = {
       basename = ''actionpack'';
       meta = {
         description = ''Web-flow and rendering framework putting the VC in MVC (part of Rails).'';
         homepage = ''http://www.rubyonrails.org'';
         longDescription = ''Web apps on Rails. Simple, battle-tested conventions for building and testing MVC web applications. Works with any Rack-compatible server.'';
       };
-      name = ''actionpack-4.1.5'';
-      requiredGems = [ g.activesupport_4_1_5 g.rack_1_5_2 g.rack_test_0_6_2 g.actionview_4_1_5 ];
-      sha256 = ''05wh3c5rw3c0rsza3bnpmr6s63n481d4gkbhsp3ngwn9lpp3jdb6'';
+      name = ''actionpack-4.1.6'';
+      requiredGems = [ g.activesupport_4_1_6 g.rack_1_5_2 g.rack_test_0_6_2 g.actionview_4_1_6 ];
+      sha256 = ''07a95iahv04gikk4qbgpi9is709ynkpcd4g00kqm629jaffrsyj2'';
     };
-    actionview_4_1_5 = {
+    actionview_4_1_6 = {
       basename = ''actionview'';
       meta = {
         description = ''Rendering framework putting the V in MVC (part of Rails).'';
         homepage = ''http://www.rubyonrails.org'';
         longDescription = ''Simple, battle-tested conventions and helpers for building web pages.'';
       };
-      name = ''actionview-4.1.5'';
-      requiredGems = [ g.activesupport_4_1_5 g.builder_3_2_2 g.erubis_2_7_0 ];
-      sha256 = ''02zb4xi2farzh892j9awxshyly7ijlvbj39g6cwq5mhs5cx59qk8'';
+      name = ''actionview-4.1.6'';
+      requiredGems = [ g.activesupport_4_1_6 g.builder_3_2_2 g.erubis_2_7_0 ];
+      sha256 = ''1r06r4zsaqsq1wyqy2g29nnycw50v37ab7zmnvzjhy24y53rv9w7'';
     };
-    activemodel_4_1_5 = {
+    activemodel_4_1_6 = {
       basename = ''activemodel'';
       meta = {
         description = ''A toolkit for building modeling frameworks (part of Rails).'';
         homepage = ''http://www.rubyonrails.org'';
         longDescription = ''A toolkit for building modeling frameworks like Active Record. Rich support for attributes, callbacks, validations, serialization, internationalization, and testing.'';
       };
-      name = ''activemodel-4.1.5'';
-      requiredGems = [ g.activesupport_4_1_5 g.builder_3_2_2 ];
-      sha256 = ''1anbjwdfgdjfxiv5vzysrdd98mapvd2h8xjkayq3vq54n13ymjvl'';
+      name = ''activemodel-4.1.6'';
+      requiredGems = [ g.activesupport_4_1_6 g.builder_3_2_2 ];
+      sha256 = ''14mw7d0jax7sky4nc2a7rspcf2inb3m6mxhx653i00v0xjrxa3x6'';
     };
-    activerecord_4_1_5 = {
+    activerecord_4_1_6 = {
       basename = ''activerecord'';
       meta = {
         description = ''Object-relational mapper framework (part of Rails).'';
         homepage = ''http://www.rubyonrails.org'';
         longDescription = ''Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes. Strong conventions for associations, validations, aggregations, migrations, and testing come baked-in.'';
       };
-      name = ''activerecord-4.1.5'';
-      requiredGems = [ g.activesupport_4_1_5 g.activemodel_4_1_5 g.arel_5_0_1_20140414130214 ];
-      sha256 = ''1z8awkkl4bn4ghdp432n2qpagbb8569ffq63kmgkbwf8127kmzrc'';
+      name = ''activerecord-4.1.6'';
+      requiredGems = [ g.activesupport_4_1_6 g.activemodel_4_1_6 g.arel_5_0_1_20140414130214 ];
+      sha256 = ''15s72gawgvd7msa2i7hmjw81znif8zh1v57pmans8vmphfg2n9l7'';
     };
-    activesupport_4_1_5 = {
+    activesupport_4_1_6 = {
       basename = ''activesupport'';
       meta = {
         description = ''A toolkit of support libraries and Ruby core extensions extracted from the Rails framework.'';
         homepage = ''http://www.rubyonrails.org'';
         longDescription = ''A toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Rich support for multibyte strings, internationalization, time zones, and testing.'';
       };
-      name = ''activesupport-4.1.5'';
-      requiredGems = [ g.i18n_0_6_11 g.json_1_8_1 g.tzinfo_1_2_2 g.minitest_5_4_0 g.thread_safe_0_3_4 ];
-      sha256 = ''0vmf58q96469dci509hhbqxwr7gaxq4yjsb37xd56ggpqn3qm30k'';
+      name = ''activesupport-4.1.6'';
+      requiredGems = [ g.i18n_0_6_11 g.json_1_8_1 g.tzinfo_1_2_2 g.minitest_5_4_1 g.thread_safe_0_3_4 ];
+      sha256 = ''0crwl6rlxpv5fvvnvcbrjc7iygj8nklj83v1734h5lrhjzirxc22'';
     };
     addressable_2_3_6 = {
       basename = ''addressable'';
@@ -300,16 +303,31 @@ rails support and extra plugins for migrations and fixtures.'';
       requiredGems = [ g.ZenTest_4_10_1 ];
       sha256 = ''1v1dm9zlhdlrxvk90zs8d439ldar674ix41s7pncddgyswcfgg5l'';
     };
-    aws_sdk_1_51_0 = {
+    aws_sdk_1_53_0 = {
       basename = ''aws_sdk'';
       meta = {
-        description = ''AWS SDK for Ruby'';
+        description = ''AWS SDK for Ruby V1'';
         homepage = ''http://aws.amazon.com/sdkforruby'';
-        longDescription = ''AWS SDK for Ruby'';
+        longDescription = ''Version 1 of the AWS SDK for Ruby. Available as both `aws-sdk` and `aws-sdk-v1`.
+Use `aws-sdk-v1` if you want to load v1 and v2 of the Ruby SDK in the same
+application.'';
       };
-      name = ''aws-sdk-1.51.0'';
+      name = ''aws-sdk-1.53.0'';
+      requiredGems = [ g.aws_sdk_v1_1_53_0 ];
+      sha256 = ''1jwvzlpyh5hpa3qn972wmn2pmhqpzw5vjal2n5i14qplvafmj7p2'';
+    };
+    aws_sdk_v1_1_53_0 = {
+      basename = ''aws_sdk_v1'';
+      meta = {
+        description = ''AWS SDK for Ruby V1'';
+        homepage = ''http://aws.amazon.com/sdkforruby'';
+        longDescription = ''Version 1 of the AWS SDK for Ruby. Available as both `aws-sdk` and `aws-sdk-v1`.
+Use `aws-sdk-v1` if you want to load v1 and v2 of the Ruby SDK in the same
+application.'';
+      };
+      name = ''aws-sdk-v1-1.53.0'';
       requiredGems = [ g.nokogiri_1_6_3_1 g.json_1_8_1 ];
-      sha256 = ''092a7km6ar7zvyyzgiqsb0dm354sqa6mzx7sa0c8ndwm918lbqai'';
+      sha256 = ''00yagrm2d5agwkfgkv4rqbxymwmgjmv5n8hah3xhrc90q1ywr7hw'';
     };
     backports_3_6_0 = {
       basename = ''backports'';
@@ -349,7 +367,7 @@ simple to do.  Currently the following builder objects are supported:
       requiredGems = [  ];
       sha256 = ''14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2'';
     };
-    buildr_1_4_19 = {
+    buildr_1_4_20 = {
       basename = ''buildr'';
       meta = {
         description = ''Build like you code'';
@@ -361,20 +379,20 @@ to do, and it takes care of the rest.  But also something we can easily extend
 for those one-off tasks, with a language that's a joy to use.
 '';
       };
-      name = ''buildr-1.4.19'';
-      requiredGems = [ g.rake_0_9_2_2 g.builder_3_2_2 g.net_ssh_2_7_0 g.net_sftp_2_1_2 g.rubyzip_0_9_9 g.json_pure_1_8_0 g.hoe_3_7_1 g.rjb_1_4_8 g.atoulme_Antwrap_0_7_4 g.diff_lcs_1_2_4 g.rspec_expectations_2_14_3 g.rspec_mocks_2_14_3 g.rspec_core_2_14_5 g.rspec_2_14_1 g.xml_simple_1_1_2 g.minitar_0_5_4 g.bundler_1_7_1 g.orderedhash_0_0_6 ];
-      sha256 = ''07k6z149si7v1h5m1bvdhjcv0nnjwkd2c6a8n1779l8g47ckccj0'';
+      name = ''buildr-1.4.20'';
+      requiredGems = [ g.rake_0_9_2_2 g.builder_3_2_2 g.net_ssh_2_7_0 g.net_sftp_2_1_2 g.rubyzip_0_9_9 g.json_pure_1_8_0 g.hoe_3_7_1 g.rjb_1_4_9 g.atoulme_Antwrap_0_7_4 g.diff_lcs_1_2_4 g.rspec_expectations_2_14_3 g.rspec_mocks_2_14_3 g.rspec_core_2_14_5 g.rspec_2_14_1 g.xml_simple_1_1_2 g.minitar_0_5_4 g.bundler_1_7_2 g.orderedhash_0_0_6 ];
+      sha256 = ''0x4ffblw7jg0z49ywfm5abfxgg23di3d661czndwi904cvmghrkv'';
     };
-    bundler_1_7_1 = {
+    bundler_1_7_2 = {
       basename = ''bundler'';
       meta = {
         description = ''The best way to manage your application's dependencies'';
         homepage = ''http://bundler.io'';
         longDescription = ''Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably'';
       };
-      name = ''bundler-1.7.1'';
+      name = ''bundler-1.7.2'';
       requiredGems = [  ];
-      sha256 = ''144yqbmi89gl933rh8dv58bm7ia14s4a098qdi2z0q09ank9n5h2'';
+      sha256 = ''1xfacbivyi40ig9jzpsv2z42vwghf77n4r65ls0pcnbqn4ypqyhc'';
     };
     childprocess_0_5_3 = {
       basename = ''childprocess'';
@@ -486,7 +504,7 @@ We are happy to report that this issue has been resolved.'';
       requiredGems = [  ];
       sha256 = ''1pqb7yzjcpbgbyi196ifqbd1wy570cn12bkzcvpcha4xilhajja0'';
     };
-    domain_name_0_5_20 = {
+    domain_name_0_5_21 = {
       basename = ''domain_name'';
       meta = {
         description = ''Domain Name manipulation library for Ruby'';
@@ -497,9 +515,9 @@ It can also be used for cookie domain validation based on the Public
 Suffix List.
 '';
       };
-      name = ''domain_name-0.5.20'';
+      name = ''domain_name-0.5.21'';
       requiredGems = [ g.unf_0_1_4 ];
-      sha256 = ''17ls88kp18dxjc93q8kmyx2anknva0vbmny60xbgpbwq3hg0qv6s'';
+      sha256 = ''1ryb2gmryzcrqm9gl19658m1kcjkjz5m0r24mzq4j0zfrs95nfnq'';
     };
     dotenv_0_11_1 = {
       basename = ''dotenv'';
@@ -597,6 +615,17 @@ using TCP/IP, especially if custom protocols are required.'';
       requiredGems = [ g.eventmachine_1_0_3 ];
       sha256 = ''1pvlb34vdzd81kf9f3xyibb4f55xjqm7lqqy28dgyci5cyv50y61'';
     };
+    execjs_2_2_1 = {
+      basename = ''execjs'';
+      meta = {
+        description = ''Run JavaScript code from Ruby'';
+        homepage = ''https://github.com/sstephenson/execjs'';
+        longDescription = ''ExecJS lets you run JavaScript code from Ruby.'';
+      };
+      name = ''execjs-2.2.1'';
+      requiredGems = [  ];
+      sha256 = ''1s41g9qwq0h4452q4gp934lnkzfkxh4wrg8fd4bcynba86bf3j8b'';
+    };
     fakes3_0_1_5_2 = {
       basename = ''fakes3'';
       meta = {
@@ -650,18 +679,18 @@ using TCP/IP, especially if custom protocols are required.'';
       requiredGems = [ g.tins_0_13_2 ];
       sha256 = ''0mzxxnwj7k5pwxs0rdbmb3b41zgvzw7x40sf3qlkch4zdfx91i1j'';
     };
-    foreman_0_74_0 = {
+    foreman_0_75_0 = {
       basename = ''foreman'';
       meta = {
         description = ''Process manager for applications with multiple components'';
         homepage = ''http://github.com/ddollar/foreman'';
         longDescription = ''Process manager for applications with multiple components'';
       };
-      name = ''foreman-0.74.0'';
+      name = ''foreman-0.75.0'';
       requiredGems = [ g.thor_0_19_1 g.dotenv_0_11_1 ];
-      sha256 = ''0jqblq0myzmdp2cywzz7flvgqnhf267ykcdn250cccy68s9wm37m'';
+      sha256 = ''0iicqdjwwms86nchk80ia7x4wjcd3p5c8s53bc0z0h063i0ks9ha'';
     };
-    gettext_3_1_3 = {
+    gettext_3_1_4 = {
       basename = ''gettext'';
       meta = {
         description = ''Gettext is a pure Ruby libary and tools to localize messages.'';
@@ -671,9 +700,9 @@ The catalog file(po-file) is same format with GNU gettext.
 So you can use GNU gettext tools for maintaining.
 '';
       };
-      name = ''gettext-3.1.3'';
+      name = ''gettext-3.1.4'';
       requiredGems = [ g.locale_2_1_0 g.text_1_3_0 ];
-      sha256 = ''066x2dbryab02kdbk6km79h4j9b0f0ynsnzcygjgvzn9001ybf9q'';
+      sha256 = ''0gfnbkj2knpq8jxplkdr18by64kcadqxjhrxr3ncldz2ghm5zhvb'';
     };
     gh_0_13_2 = {
       basename = ''gh'';
@@ -751,7 +780,7 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
         longDescription = ''HTTP::Cookie is a Ruby library to handle HTTP Cookies based on RFC 6265.  It has with security, standards compliance and compatibility in mind, to behave just the same as today's major web browsers.  It has builtin support for the legacy cookies.txt and the latest cookies.sqlite formats of Mozilla Firefox, and its modular API makes it easy to add support for a new backend store.'';
       };
       name = ''http-cookie-1.0.2'';
-      requiredGems = [ g.domain_name_0_5_20 ];
+      requiredGems = [ g.domain_name_0_5_21 ];
       sha256 = ''0cz2fdkngs3jc5w32a6xcl511hy03a7zdiy988jk1sf3bf5v3hdw'';
     };
     i18n_0_6_11 = {
@@ -854,17 +883,6 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       requiredGems = [ g.systemu_2_6_4 ];
       sha256 = ''1clii8mvhmh5lmnm95ljnjygyiyhdpja85c5vy487rhxn52scn0b'';
     };
-    mail_2_5_4 = {
-      basename = ''mail'';
-      meta = {
-        description = ''Mail provides a nice Ruby DSL for making, sending and reading emails.'';
-        homepage = ''http://github.com/mikel/mail'';
-        longDescription = ''A really Ruby Mail handler.'';
-      };
-      name = ''mail-2.5.4'';
-      requiredGems = [ g.mime_types_1_25_1 g.treetop_1_4_15 ];
-      sha256 = ''0z15ksb8blcppchv03g34844f7xgf36ckp484qjj2886ig1qara4'';
-    };
     mail_2_6_1 = {
       basename = ''mail'';
       meta = {
@@ -888,7 +906,7 @@ submitted.  Mechanize also keeps track of the sites that you have visited as
 a history.'';
       };
       name = ''mechanize-2.7.3'';
-      requiredGems = [ g.net_http_digest_auth_1_4 g.net_http_persistent_2_9_4 g.mime_types_2_3 g.http_cookie_1_0_2 g.nokogiri_1_6_3_1 g.ntlm_http_0_1_1 g.webrobots_0_1_1 g.domain_name_0_5_20 ];
+      requiredGems = [ g.net_http_digest_auth_1_4 g.net_http_persistent_2_9_4 g.mime_types_2_3 g.http_cookie_1_0_2 g.nokogiri_1_6_3_1 g.ntlm_http_0_1_1 g.webrobots_0_1_1 g.domain_name_0_5_21 ];
       sha256 = ''00jkazj8fqnynaxca0lnwx5a084irxrnw8n8i0kppq4vg71g7rrx'';
     };
     method_source_0_8_2 = {
@@ -902,64 +920,6 @@ a history.'';
       requiredGems = [  ];
       sha256 = ''1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2'';
     };
-    mime_types_1_25_1 = {
-      basename = ''mime_types'';
-      meta = {
-        description = ''This library allows for the identification of a file's likely MIME content type'';
-        homepage = ''http://mime-types.rubyforge.org/'';
-        longDescription = ''This library allows for the identification of a file's likely MIME content
-type. This is release 1.25.1, fixing an issue with priority comparison for
-mime-types 1.x. The current release is 2.0, which only supports Ruby 1.9 or
-later.
-
-Release 1.25.1 contains all features of 1.25, including the experimental
-caching and lazy loading functionality. The caching and lazy loading features
-were initially implemented by Greg Brockman (gdb). As these features are
-experimental, they are disabled by default and must be enabled through the use
-of environment variables. The cache is invalidated on a per-version basis; the
-cache for version 1.25 will not be reused for any later version.
-
-To use lazy loading, set the environment variable +RUBY_MIME_TYPES_LAZY_LOAD+
-to any value other than 'false'. When using lazy loading, the initial startup
-of MIME::Types is around 12–25× faster than normal startup (on my system,
-normal startup is about 90 ms; lazy startup is about 4 ms). This isn't
-generally useful, however, as the MIME::Types database has not been loaded.
-Lazy startup and load is just *slightly* faster—around 1 ms. The real advantage
-comes from using the cache.
-
-To enable the cache, set the environment variable +RUBY_MIME_TYPES_CACHE+ to a
-filename where MIME::Types will have read-write access. The first time a new
-version of MIME::Types is run using this file, it will be created, taking a
-little longer than normal. Subsequent loads using the same cache file will be
-approximately 3½× faster (25 ms) than normal loads. This can be combined with
-+RUBY_MIME_TYPES_LAZY_LOAD+, but this is *not* recommended in a multithreaded
-or multiprocess environment where all threads or processes will be using the
-same cache file.
-
-As the caching interface is still experimental, the only values cached are the
-default MIME::Types database, not any custom MIME::Types added by users.
-
-MIME types are used in MIME-compliant communications, as in e-mail or HTTP
-traffic, to indicate the type of content which is transmitted. MIME::Types
-provides the ability for detailed information about MIME entities (provided as
-a set of MIME::Type objects) to be determined and used programmatically. There
-are many types defined by RFCs and vendors, so the list is long but not
-complete; don't hesitate to ask to add additional information. This library
-follows the IANA collection of MIME types (see below for reference).
-
-MIME::Types for Ruby was originally based on MIME::Types for Perl by Mark
-Overmeer, copyright 2001 - 2009.
-
-MIME::Types is built to conform to the MIME types of RFCs 2045 and 2231. It
-tracks the {IANA registry}[http://www.iana.org/assignments/media-types/]
-({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types
-added from the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp]
-and added by the users of MIME::Types.'';
-      };
-      name = ''mime-types-1.25.1'';
-      requiredGems = [  ];
-      sha256 = ''0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8'';
-    };
     mime_types_2_3 = {
       basename = ''mime_types'';
       meta = {
@@ -1023,7 +983,7 @@ with some types added by the users of mime-types.'';
       requiredGems = [  ];
       sha256 = ''1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka'';
     };
-    minitest_5_4_0 = {
+    minitest_5_4_1 = {
       basename = ''minitest'';
       meta = {
         description = ''minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking'';
@@ -1082,9 +1042,9 @@ classes, modules, inheritance, methods. This means you only have to
 learn ruby to use minitest and all of your regular OO practices like
 extract-method refactorings still apply.'';
       };
-      name = ''minitest-5.4.0'';
+      name = ''minitest-5.4.1'';
       requiredGems = [  ];
-      sha256 = ''002xflqz5wl8gcj9gw4q66mq5jkp445zgd9c5vs6cw6lsfsyg4rl'';
+      sha256 = ''04iqz25v8vngw4z5pzhwnsf72fb8gf2vzhidrfcbphwsqqik5s4r'';
     };
     multi_json_1_10_1 = {
       basename = ''multi_json'';
@@ -1292,20 +1252,6 @@ enough of it.'';
       requiredGems = [  ];
       sha256 = ''1kzz6ydg7r23ks2b7zbpx4vz3h186n19vhgnjcwi7xwd6h2f1fsq'';
     };
-    polyglot_0_3_5 = {
-      basename = ''polyglot'';
-      meta = {
-        description = ''Augment 'require' to load non-Ruby file types'';
-        homepage = ''http://github.com/cjheath/polyglot'';
-        longDescription = ''
-The Polyglot library allows a Ruby module to register a loader
-for the file type associated with a filename extension, and it
-augments 'require' to find and load matching files.'';
-      };
-      name = ''polyglot-0.3.5'';
-      requiredGems = [  ];
-      sha256 = ''1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr'';
-    };
     pry_0_9_12_6 = {
       basename = ''pry'';
       meta = {
@@ -1325,7 +1271,7 @@ augments 'require' to find and load matching files.'';
         longDescription = ''Client for consuming WebSockets from http://pusher.com'';
       };
       name = ''pusher-client-0.6.0'';
-      requiredGems = [ g.websocket_1_2_0 g.json_1_8_1 ];
+      requiredGems = [ g.websocket_1_2_1 g.json_1_8_1 ];
       sha256 = ''0n7l630qg6wgzak45b6gfjg9a0fmpbrs7mwchqqbja9mjs95r8qy'';
     };
     rack_1_5_2 = {
@@ -1371,27 +1317,27 @@ request helpers feature.'';
       requiredGems = [ g.rack_1_5_2 ];
       sha256 = ''01mk715ab5qnqf6va8k3hjsvsmplrfqpz6g58qw4m3l8mim0p4ky'';
     };
-    rails_4_1_5 = {
+    rails_4_1_6 = {
       basename = ''rails'';
       meta = {
         description = ''Full-stack web application framework.'';
         homepage = ''http://www.rubyonrails.org'';
         longDescription = ''Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.'';
       };
-      name = ''rails-4.1.5'';
-      requiredGems = [ g.activesupport_4_1_5 g.actionpack_4_1_5 g.actionview_4_1_5 g.activemodel_4_1_5 g.activerecord_4_1_5 g.actionmailer_4_1_5 g.railties_4_1_5 g.bundler_1_7_1 g.sprockets_rails_2_1_3 ];
-      sha256 = ''12s3jkvd6bn40apxc3973czgs7s6y36aclbwif6j770v7sjd9qj7'';
+      name = ''rails-4.1.6'';
+      requiredGems = [ g.activesupport_4_1_6 g.actionpack_4_1_6 g.actionview_4_1_6 g.activemodel_4_1_6 g.activerecord_4_1_6 g.actionmailer_4_1_6 g.railties_4_1_6 g.bundler_1_7_2 g.sprockets_rails_2_1_4 ];
+      sha256 = ''187g903gmni3prd5i768yfgszc4ak5kmrazavr93d0ybfdbcjlgk'';
     };
-    railties_4_1_5 = {
+    railties_4_1_6 = {
       basename = ''railties'';
       meta = {
         description = ''Tools for creating, working with, and running Rails applications.'';
         homepage = ''http://www.rubyonrails.org'';
         longDescription = ''Rails internals: application bootup, plugins, generators, and rake tasks.'';
       };
-      name = ''railties-4.1.5'';
-      requiredGems = [ g.activesupport_4_1_5 g.actionpack_4_1_5 g.rake_10_3_2 g.thor_0_19_1 ];
-      sha256 = ''18jkjvny51vk53l2g9ibcnjk3gjj1vgh3pyrskmk69csqm2hmaha'';
+      name = ''railties-4.1.6'';
+      requiredGems = [ g.activesupport_4_1_6 g.actionpack_4_1_6 g.rake_10_3_2 g.thor_0_19_1 ];
+      sha256 = ''11valflllkrrz06bsflz78h5nmxhrhm7hdpm1lwmgm8hwd4ybl0c'';
     };
     rake_0_9_2_2 = {
       basename = ''rake'';
@@ -1457,6 +1403,19 @@ Rake has the following features:
       requiredGems = [  ];
       sha256 = ''1g70vsgv7mdwcyk9rxja7wm4qqap67prqwkj335c460vlzs6pqii'';
     };
+    rdoc_4_1_2 = {
+      basename = ''rdoc'';
+      meta = {
+        description = ''RDoc produces HTML and command-line documentation for Ruby projects'';
+        homepage = ''http://docs.seattlerb.org/rdoc'';
+        longDescription = ''RDoc produces HTML and command-line documentation for Ruby projects.  RDoc
+includes the +rdoc+ and +ri+ tools for generating and displaying documentation
+from the command-line.'';
+      };
+      name = ''rdoc-4.1.2'';
+      requiredGems = [ g.json_1_8_1 ];
+      sha256 = ''0cqhjidw657d8irkypxsrv6dr4y9r8csg9inaq40c3iz110cc8w6'';
+    };
     remote_syslog_1_6_14 = {
       basename = ''remote_syslog'';
       meta = {
@@ -1476,7 +1435,7 @@ Rake has the following features:
         longDescription = ''HTTP dashboard for the distributed event system Riemann.'';
       };
       name = ''riemann-dash-0.2.9'';
-      requiredGems = [ g.erubis_2_7_0 g.sinatra_1_4_5 g.sass_3_4_1 g.webrick_1_3_1 g.multi_json_1_3_6 ];
+      requiredGems = [ g.erubis_2_7_0 g.sinatra_1_4_5 g.sass_3_4_3 g.webrick_1_3_1 g.multi_json_1_3_6 ];
       sha256 = ''0ws5wmjbv8w9lcr3i2mdinj2qm91p6c85k6c067i67cf0p90jxq3'';
     };
     right_aws_3_1_0 = {
@@ -1546,18 +1505,6 @@ algorithm for low-level network errors.
       requiredGems = [  ];
       sha256 = ''0shd8v24aqxdvim1gdqzwxpanjhfgkhdaw0m0lzz7sybkb02j8qf'';
     };
-    rjb_1_4_8 = {
-      basename = ''rjb'';
-      meta = {
-        description = ''Ruby Java bridge'';
-        homepage = ''http://rjb.rubyforge.org/'';
-        longDescription = ''RJB is a bridge program that connect between Ruby and Java with Java Native Interface.
-'';
-      };
-      name = ''rjb-1.4.8'';
-      requiredGems = [  ];
-      sha256 = ''06ps4ssaxb8jwja53h7v7kb31hsdr997b8na89d1yasm5zyraliw'';
-    };
     rjb_1_4_9 = {
       basename = ''rjb'';
       meta = {
@@ -1690,7 +1637,7 @@ RKelly[https://github.com/tenderlove/rkelly] JavaScript parser.'';
       requiredGems = [  ];
       sha256 = ''17ha7kmgcnhnxyfp9wgyrd2synp17v9g8j1pknhfd2v9x5g475m9'';
     };
-    sass_3_4_1 = {
+    sass_3_4_3 = {
       basename = ''sass'';
       meta = {
         description = ''A powerful but elegant CSS compiler that makes CSS fun again.'';
@@ -1701,20 +1648,20 @@ RKelly[https://github.com/tenderlove/rkelly] JavaScript parser.'';
       command line tool or a web-framework plugin.
 '';
       };
-      name = ''sass-3.4.1'';
+      name = ''sass-3.4.3'';
       requiredGems = [  ];
-      sha256 = ''0f997m7g6gcd4yaxxrf1nylk2x8ynf7w2l631sby51zfn21rfli4'';
+      sha256 = ''0k9qv35wf28qjlv8a1nmvv8n71wxnqim1kwf95igvngys6kih7ds'';
     };
-    selenium_webdriver_2_42_0 = {
+    selenium_webdriver_2_43_0 = {
       basename = ''selenium_webdriver'';
       meta = {
         description = ''The next generation developer focused tool for automated testing of webapps'';
         homepage = ''http://selenium.googlecode.com'';
         longDescription = ''WebDriver is a tool for writing automated tests of websites. It aims to mimic the behaviour of a real user, and as such interacts with the HTML of the application.'';
       };
-      name = ''selenium-webdriver-2.42.0'';
-      requiredGems = [ g.multi_json_1_10_1 g.rubyzip_1_1_6 g.childprocess_0_5_3 g.websocket_1_0_7 ];
-      sha256 = ''04yjwzc7cy2ax5xgp618z9jbm55cx4b5l546l7xnxj1hk30znw6q'';
+      name = ''selenium-webdriver-2.43.0'';
+      requiredGems = [ g.multi_json_1_10_1 g.rubyzip_1_1_6 g.childprocess_0_5_3 g.websocket_1_2_1 ];
+      sha256 = ''06jjkb4hcyh8mwsqc8c5p6pz6ac1v313h4md0dab872ls5s47zh9'';
     };
     servolux_0_10_0 = {
       basename = ''servolux'';
@@ -1763,26 +1710,26 @@ interpreters.'';
       requiredGems = [  ];
       sha256 = ''00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n'';
     };
-    sprockets_2_12_1 = {
+    sprockets_2_12_2 = {
       basename = ''sprockets'';
       meta = {
         description = ''Rack-based asset packaging system'';
         homepage = ''http://getsprockets.org/'';
         longDescription = ''Sprockets is a Rack-based asset packaging system that concatenates and serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.'';
       };
-      name = ''sprockets-2.12.1'';
+      name = ''sprockets-2.12.2'';
       requiredGems = [ g.hike_1_2_3 g.multi_json_1_10_1 g.rack_1_5_2 g.tilt_1_4_1 ];
-      sha256 = ''0fi5f32i3bj739qb0zn050k5jjkfqzkn8fjz5dfjwhmh9hl5pb1y'';
+      sha256 = ''0sclb5nqs5hhr7qfp42rgpasy0f9k4c3jcr3hz89amf2bg5v7slx'';
     };
-    sprockets_rails_2_1_3 = {
+    sprockets_rails_2_1_4 = {
       basename = ''sprockets_rails'';
       meta = {
         description = ''Sprockets Rails integration'';
         homepage = ''https://github.com/rails/sprockets-rails'';
       };
-      name = ''sprockets-rails-2.1.3'';
-      requiredGems = [ g.sprockets_2_12_1 g.actionpack_4_1_5 g.activesupport_4_1_5 ];
-      sha256 = ''12kdy9vjn3ygrxhn9jxxx0rvsq601vayrkgbr3rqcpyhqhl4s4wy'';
+      name = ''sprockets-rails-2.1.4'';
+      requiredGems = [ g.sprockets_2_12_2 g.actionpack_4_1_6 g.activesupport_4_1_6 ];
+      sha256 = ''1difqidflj71qh8a84lcfdfg9vy4rw5hkgf2j0jis8bcczcq54l3'';
     };
     syslog_protocol_0_9_2 = {
       basename = ''syslog_protocol'';
@@ -1935,16 +1882,6 @@ management.
       requiredGems = [ g.faraday_0_9_0 g.faraday_middleware_0_9_1 g.highline_1_6_21 g.backports_3_6_0 g.gh_0_13_2 g.launchy_2_4_2 g.pry_0_9_12_6 g.typhoeus_0_6_9 g.pusher_client_0_6_0 g.addressable_2_3_6 ];
       sha256 = ''1h0xajfzkz7pdrbhs2650nl5www8qfmgazmmmw0bcr3dai5kimdf'';
     };
-    treetop_1_4_15 = {
-      basename = ''treetop'';
-      meta = {
-        description = ''A Ruby-based text parsing and interpretation DSL'';
-        homepage = ''https://github.com/cjheath/treetop'';
-      };
-      name = ''treetop-1.4.15'';
-      requiredGems = [ g.polyglot_0_3_5 g.polyglot_0_3_5 ];
-      sha256 = ''1zqj5y0mvfvyz11nhsb4d5ch0i0rfcyj64qx19mw4qhg3hh8z9pz'';
-    };
     trollop_2_0 = {
       basename = ''trollop'';
       meta = {
@@ -1982,6 +1919,17 @@ specify.'';
       requiredGems = [ g.thread_safe_0_3_4 ];
       sha256 = ''1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx'';
     };
+    uglifier_2_5_3 = {
+      basename = ''uglifier'';
+      meta = {
+        description = ''Ruby wrapper for UglifyJS JavaScript compressor'';
+        homepage = ''http://github.com/lautis/uglifier'';
+        longDescription = ''Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby'';
+      };
+      name = ''uglifier-2.5.3'';
+      requiredGems = [ g.execjs_2_2_1 g.json_1_8_1 ];
+      sha256 = ''0rlx9nrcavpfffyacsrh7xyvz3adv7jvylz0sv0jnix1mj5rkpd9'';
+    };
     unf_0_1_4 = {
       basename = ''unf'';
       meta = {
@@ -2041,27 +1989,16 @@ to Ruby/JRuby.
       requiredGems = [  ];
       sha256 = ''1jlnhhpa1mkrgsmihs2qx13z3n6xhswjnlk5a2ypyplw2id5x32n'';
     };
-    websocket_1_0_7 = {
+    websocket_1_2_1 = {
       basename = ''websocket'';
       meta = {
         description = ''Universal Ruby library to handle WebSocket protocol'';
         homepage = ''http://github.com/imanel/websocket-ruby'';
         longDescription = ''Universal Ruby library to handle WebSocket protocol'';
       };
-      name = ''websocket-1.0.7'';
+      name = ''websocket-1.2.1'';
       requiredGems = [  ];
-      sha256 = ''1jrfz4295qbnjaxv37fw9jzxyxz61izp7c0683mnscacpx262zw0'';
-    };
-    websocket_1_2_0 = {
-      basename = ''websocket'';
-      meta = {
-        description = ''Universal Ruby library to handle WebSocket protocol'';
-        homepage = ''http://github.com/imanel/websocket-ruby'';
-        longDescription = ''Universal Ruby library to handle WebSocket protocol'';
-      };
-      name = ''websocket-1.2.0'';
-      requiredGems = [  ];
-      sha256 = ''17q3fsqwa44cali3x852jzjpzgcvvly0n8gszmkaqx520lb9r5l4'';
+      sha256 = ''17mf28xp6h4gglbn1606jjrhdz9r6kyb2pr603ckadsrx31wh9p6'';
     };
     xapian_full_1_2_3 = {
       basename = ''xapian_full'';
@@ -2093,5 +2030,15 @@ to Ruby/JRuby.
       requiredGems = [  ];
       sha256 = ''0ni8cbkj7l2k5pc4fs2jzp1ymxy4xqa2jc681l4y9iy9chrayddb'';
     };
+    yajl_ruby_1_2_1 = {
+      basename = ''yajl_ruby'';
+      meta = {
+        description = ''Ruby C bindings to the excellent Yajl JSON stream-based parser library.'';
+        homepage = ''http://github.com/brianmario/yajl-ruby'';
+      };
+      name = ''yajl-ruby-1.2.1'';
+      requiredGems = [  ];
+      sha256 = ''0zvvb7i1bl98k3zkdrnx9vasq0rp2cyy5n7p9804dqs4fz9xh9vf'';
+    };
   };
 }
diff --git a/pkgs/development/interpreters/ruby/rubygems.nix b/pkgs/development/interpreters/ruby/rubygems.nix
index 13829c3f9f6..3b66464ce22 100644
--- a/pkgs/development/interpreters/ruby/rubygems.nix
+++ b/pkgs/development/interpreters/ruby/rubygems.nix
@@ -29,13 +29,7 @@ rec {
     longDescription = ''
       Nix can create nix packages from gems.
 
-      To use it do the following:
-      1. Install rubygems and rubyLibs.nix.
-      2. Add $your_profile/${ruby.gemPath} to GEM_PATH.
-      3. export RUBYLIB=$your_profile/lib RUBYOPT=rubygems.
-      4. Run `gem nix --[no-]user-install gem1 gem2 ...` to generate Nix
-      expression from gem repository.
-      5. Install rubyLibs.gem1 etc.
+      To use it by installing gem-nix package.
     '';
   };
 
diff --git a/pkgs/development/interpreters/scheme48/default.nix b/pkgs/development/interpreters/scheme48/default.nix
index 39056717597..4630828fe87 100644
--- a/pkgs/development/interpreters/scheme48/default.nix
+++ b/pkgs/development/interpreters/scheme48/default.nix
@@ -1,15 +1,16 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "scheme48-1.9";
+  name = "scheme48-1.9.2";
 
   meta = {
     homepage = http://s48.org/;
     description = "Scheme 48";
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
   };
 
   src = fetchurl {
-    url = http://s48.org/1.9/scheme48-1.9.tgz;
-    md5 = "b4c20057f92191d05a61fac1372878ad";
+    url = http://s48.org/1.9.2/scheme48-1.9.2.tgz;
+    sha256 = "1x4xfm3lyz2piqcw1h01vbs1iq89zq7wrsfjgh3fxnlm1slj2jcw";
   };
 }
diff --git a/pkgs/development/libraries/agda/AgdaSheaves/default.nix b/pkgs/development/libraries/agda/AgdaSheaves/default.nix
new file mode 100644
index 00000000000..83066f5da63
--- /dev/null
+++ b/pkgs/development/libraries/agda/AgdaSheaves/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, agda, fetchgit }:
+
+agda.mkDerivation (self: rec {
+  version = "8a06162a8f0f7df308458db91d720cf8f7345d69";
+  name = "Agda-Sheaves-${version}";
+  src = fetchgit {
+    url = "https://github.com/jonsterling/Agda-Sheaves.git";
+    rev = version;
+    sha256 = "39e0e4a1f05e359c099cf50a5ec7dd2db7b55f98dcc019f1e4667dca8b37f001";
+  };
+
+  everythingFile = "sheaves.agda";
+  topSourceDirectories = [ "../$sourceRoot" ];
+  sourceDirectories = [];
+
+  meta = {
+    homepage = "https://github.com/jonsterling/Agda-Sheaves";
+    description = "Sheaves in Agda";
+    license = stdenv.lib.licenses.cc-by-40;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+  };
+})
\ No newline at end of file
diff --git a/pkgs/development/libraries/agda/bitvector/default.nix b/pkgs/development/libraries/agda/bitvector/default.nix
new file mode 100644
index 00000000000..290a2f1206d
--- /dev/null
+++ b/pkgs/development/libraries/agda/bitvector/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, agda, fetchgit, AgdaStdlib }:
+
+agda.mkDerivation (self: rec {
+  version = "f1c173313f2a41d95a8dc6053f9365a24690e18d";
+  name = "bitvector-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/copumpkin/bitvector.git";
+    rev = version;
+    sha256 = "c39f55b709366f2c627d1a3a68d4b013c415b0e0f68ca6b69e387d07e2ce6d9a";
+  };
+
+  buildDepends = [ AgdaStdlib ];
+  sourceDirectories = [ "Data" ];
+
+  meta = {
+    homepage = "https://github.com/copumpkin/bitvector";
+    description = "Sequences of bits and common operations on them";
+    license = stdenv.lib.licenses.bsd3;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+  };
+})
diff --git a/pkgs/development/libraries/aterm/2.5.nix b/pkgs/development/libraries/aterm/2.5.nix
index df509943ba2..10a22e00f65 100644
--- a/pkgs/development/libraries/aterm/2.5.nix
+++ b/pkgs/development/libraries/aterm/2.5.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
     license = "LGPL";
     description = "Library for manipulation of term data structures in C";
     platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
-    maintainers = stdenv.lib.maintainers.eelco;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
   };
 }
diff --git a/pkgs/development/libraries/aterm/2.8.nix b/pkgs/development/libraries/aterm/2.8.nix
index a153443a54e..3aa0e95305a 100644
--- a/pkgs/development/libraries/aterm/2.8.nix
+++ b/pkgs/development/libraries/aterm/2.8.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
     license = "LGPL";
     description = "Library for manipulation of term data structures in C";
     platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
-    maintainers = stdenv.lib.maintainers.eelco;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
     broken = true;
   };
 }
diff --git a/pkgs/development/libraries/cimg/builder.sh b/pkgs/development/libraries/cimg/builder.sh
new file mode 100644
index 00000000000..bbd5f712551
--- /dev/null
+++ b/pkgs/development/libraries/cimg/builder.sh
@@ -0,0 +1,12 @@
+
+source $stdenv/setup
+
+unpackPhase
+cd $sourceRoot
+
+install -dm 755 $out/include/cimg $out/share/doc/cimg/html $out/share/cimg/examples $out/share/cimg/plugins
+
+install -m 644 CImg.h $out/include/cimg
+cp -dr --no-preserve=ownership html/* $out/share/doc/cimg/html/
+cp -dr --no-preserve=ownership examples/* $out/share/cimg/examples/
+cp -dr --no-preserve=ownership plugins/* $out/share/cimg/plugins/
diff --git a/pkgs/development/libraries/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix
new file mode 100644
index 00000000000..049938e1f45
--- /dev/null
+++ b/pkgs/development/libraries/cimg/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl
+, unzip }:
+
+stdenv.mkDerivation rec {
+
+  name = "cimg-${version}";
+  version = "1.5.9";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/project/cimg/CImg-${version}.zip";
+    sha256 = "1xn20643gcbl76kvy9ajhwbyjjb73mg65q32ma8mdkwn1qhn7f7c";
+  };
+
+  buildInputs = with stdenv.lib;
+  [ unzip ];
+
+  builder = ./builder.sh;
+  
+  meta = with stdenv.lib; {
+    description = "A small, open source, C++ toolkit for image processing";
+    homepage = http://cimg.sourceforge.net/;
+    license = licenses.cecill-c;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/cloog/default.nix b/pkgs/development/libraries/cloog/default.nix
index 7ea7e597d40..926da22b280 100644
--- a/pkgs/development/libraries/cloog/default.nix
+++ b/pkgs/development/libraries/cloog/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--with-isl=system" ];
 
+  enableParallelBuilding = true;
+
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/libraries/clutter-gst/default.nix b/pkgs/development/libraries/clutter-gst/default.nix
index c73aac074e7..7cef673dbc6 100644
--- a/pkgs/development/libraries/clutter-gst/default.nix
+++ b/pkgs/development/libraries/clutter-gst/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, pkgconfig, clutter, gtk3, glib, cogl }:
 
 stdenv.mkDerivation rec {
-  name = "clutter-gst-2.0.10";
+  name = "clutter-gst-2.0.12";
 
   src = fetchurl {
     url = "mirror://gnome/sources/clutter-gst/2.0/${name}.tar.xz";
-    sha256 = "f00cf492a6d4f1036c70d8a0ebd2f0f47586ea9a9b49b1ffda79c9dc7eadca00";
+    sha256 = "1dgzpd5l5ld622b8185c3khvvllm5hfvq4q1a1mgzhxhj8v4bwf2";
   };
 
   propagatedBuildInputs = [ clutter gtk3 glib cogl ];
diff --git a/pkgs/development/libraries/directfb/src-for-default.nix b/pkgs/development/libraries/directfb/src-for-default.nix
index be583e08b6b..ed03b758b75 100644
--- a/pkgs/development/libraries/directfb/src-for-default.nix
+++ b/pkgs/development/libraries/directfb/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="1.6.3";
-   name="directfb-1.6.3";
-   hash="0w2yyx6l2wn8jj9y14ymknqyc88wwrl314p9204frck91znsr5ks";
-   url="http://directfb.org/downloads/Core/DirectFB-1.6/DirectFB-${version}.tar.gz";
-   advertisedUrl="http://directfb.org/downloads/Core/DirectFB-1.6/DirectFB-1.6.3.tar.gz";
+   version="1.7.6";
+   name="directfb-${version}";
+   hash="1qf94vgsbcwfa00x2aqd6795n6z43x4ghclmb4sa4bl4zfn2pws4";
+   url="http://directfb.org/downloads/Core/DirectFB-1.7/DirectFB-${version}.tar.gz";
+   advertisedUrl="http://directfb.org/downloads/Core/DirectFB-1.7/DirectFB-1.7.6.tar.gz";
   
   
 }
diff --git a/pkgs/development/libraries/ffmpeg/1.x.nix b/pkgs/development/libraries/ffmpeg/1.x.nix
index a0dcf52dcce..e9488530b5c 100644
--- a/pkgs/development/libraries/ffmpeg/1.x.nix
+++ b/pkgs/development/libraries/ffmpeg/1.x.nix
@@ -31,11 +31,11 @@ assert playSupport -> SDL != null;
 assert freetypeSupport -> freetype != null;
 
 stdenv.mkDerivation rec {
-  name = "ffmpeg-1.2.7";
+  name = "ffmpeg-1.2.8";
 
   src = fetchurl {
     url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
-    sha256 = "13nj5q5ad0kcrid8r5x6x8lqfhk8kms14pmncf6vbdbk6x45k6v6";
+    sha256 = "0n9fklr8zqkd60dc5ai161l6k4dbiac5hqy0pi1w82yamc25k6s2";
   };
 
   # `--enable-gpl' (as well as the `postproc' and `swscale') mean that
@@ -100,5 +100,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.ffmpeg.org/;
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
   };
 }
diff --git a/pkgs/development/libraries/flite/default.nix b/pkgs/development/libraries/flite/default.nix
index 85896cdb5e3..5b1dc6fc0a4 100644
--- a/pkgs/development/libraries/flite/default.nix
+++ b/pkgs/development/libraries/flite/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "flite-1.4";
+  name = "flite-1.9.0";
 
   src = fetchurl {
-    url = "http://www.speech.cs.cmu.edu/flite/packed/${name}/${name}-release.tar.bz2";
-    sha256 = "036dagsydi0qh71ayi6jshfi3ik2md1az3gpi42md9pc18b65ij5";
+    url = "http://www.festvox.org/bard/${name}-current.tar.bz2";
+    sha256 = "197cc2a1f045b1666a29a9b5f035b3d676db6db94a4439d99a03b65e551ae2e0";
   };
 
   buildInputs = [ pkgconfig ];
@@ -16,8 +16,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A small, fast run-time speech synthesis engine";
-    homepage = http://www.speech.cs.cmu.edu/flite/index.html; 
+    homepage = http://www.festvox.org/flite/;
     license = "free-non-copyleft";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
 
diff --git a/pkgs/development/libraries/gecode/default.nix b/pkgs/development/libraries/gecode/default.nix
new file mode 100644
index 00000000000..c897609ee59
--- /dev/null
+++ b/pkgs/development/libraries/gecode/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  name = "gecode-${version}";
+  version = "4.3.0";
+
+  src = fetchurl {
+    url = "http://www.gecode.org/download/${name}.tar.gz";
+    sha256 = "18a1nd6sxqqh05hd9zwcgq9qhqrr6hi0nbzpwpay1flkv5gvg2d7";
+  };
+
+  buildInputs = [ perl ];
+
+  meta = with stdenv.lib; {
+    license = licenses.mit;
+    homepage = http://www.gecode.org;
+    description = "Toolkit for developing constraint-based systems";
+    platforms = platforms.all;
+    maintainers = [ maintainers.manveru ];
+  };
+}
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 9ec88799d0d..5127311e7c9 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -3,11 +3,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "glew-1.10.0";
+  name = "glew-1.11.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/glew/${name}.tgz";
-    sha256 = "01zki46dr5khzlyywr3cg615bcal32dazfazkf360s1znqh17i4r";
+    sha256 = "1mhkllxz49l1x680dmzrv2i82qjrq017sykah3xc90f2d8qcxfv9";
   };
 
   nativeBuildInputs = [ x11 libXmu libXi ];
@@ -42,9 +42,11 @@ stdenv.mkDerivation rec {
   ] ++ optional (stdenv.cross.libc == "msvcrt") "SYSTEM=mingw"
     ++ optional (stdenv.cross.libc == "libSystem") "SYSTEM=darwin";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "An OpenGL extension loading library for C(++)";
     homepage = http://glew.sourceforge.net/;
-    license = ["BSD" "GLX" "SGI-B" "GPL2"]; # License description copied from gentoo-1.4.0 
+    license = licenses.free; # different files under different licenses
+      #["BSD" "GLX" "SGI-B" "GPL2"]
+    platforms = platforms.mesaPlatforms;
   };
 }
diff --git a/pkgs/development/libraries/glibc/2.19/common.nix b/pkgs/development/libraries/glibc/2.19/common.nix
index cd1ba747d7c..a828148c3d5 100644
--- a/pkgs/development/libraries/glibc/2.19/common.nix
+++ b/pkgs/development/libraries/glibc/2.19/common.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation ({
       ./fix-math.patch
 
       ./cve-2014-0475.patch
+      ./cve-2014-5119.patch
     ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/glibc/2.19/cve-2014-5119.patch b/pkgs/development/libraries/glibc/2.19/cve-2014-5119.patch
new file mode 100644
index 00000000000..cbae03425eb
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.19/cve-2014-5119.patch
@@ -0,0 +1,206 @@
+http://anonscm.debian.org/viewvc/pkg-glibc/glibc-package/trunk/debian/patches/any/cvs-CVE-2014-5119.diff?revision=6248&view=co
+
+commit a1a6a401ab0a3c9f15fb7eaebbdcee24192254e8
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Tue Aug 26 19:38:59 2014 +0200
+
+    __gconv_translit_find: Disable function [BZ #17187]
+    
+    This functionality has never worked correctly, and the implementation
+    contained a security vulnerability (CVE-2014-5119).
+
+2014-08-26  Florian Weimer  <fweimer@redhat.com>
+
+	[BZ #17187]
+	* iconv/gconv_trans.c (struct known_trans, search_tree, lock,
+	trans_compare, open_translit, __gconv_translit_find):
+	Remove module loading code.
+
+--- a/iconv/gconv_trans.c
++++ b/iconv/gconv_trans.c
+@@ -238,181 +238,12 @@ __gconv_transliterate (struct __gconv_step *step,
+   return __GCONV_ILLEGAL_INPUT;
+ }
+ 
+-
+-/* Structure to represent results of found (or not) transliteration
+-   modules.  */
+-struct known_trans
+-{
+-  /* This structure must remain the first member.  */
+-  struct trans_struct info;
+-
+-  char *fname;
+-  void *handle;
+-  int open_count;
+-};
+-
+-
+-/* Tree with results of previous calls to __gconv_translit_find.  */
+-static void *search_tree;
+-
+-/* We modify global data.   */
+-__libc_lock_define_initialized (static, lock);
+-
+-
+-/* Compare two transliteration entries.  */
+-static int
+-trans_compare (const void *p1, const void *p2)
+-{
+-  const struct known_trans *s1 = (const struct known_trans *) p1;
+-  const struct known_trans *s2 = (const struct known_trans *) p2;
+-
+-  return strcmp (s1->info.name, s2->info.name);
+-}
+-
+-
+-/* Open (maybe reopen) the module named in the struct.  Get the function
+-   and data structure pointers we need.  */
+-static int
+-open_translit (struct known_trans *trans)
+-{
+-  __gconv_trans_query_fct queryfct;
+-
+-  trans->handle = __libc_dlopen (trans->fname);
+-  if (trans->handle == NULL)
+-    /* Not available.  */
+-    return 1;
+-
+-  /* Find the required symbol.  */
+-  queryfct = __libc_dlsym (trans->handle, "gconv_trans_context");
+-  if (queryfct == NULL)
+-    {
+-      /* We cannot live with that.  */
+-    close_and_out:
+-      __libc_dlclose (trans->handle);
+-      trans->handle = NULL;
+-      return 1;
+-    }
+-
+-  /* Get the context.  */
+-  if (queryfct (trans->info.name, &trans->info.csnames, &trans->info.ncsnames)
+-      != 0)
+-    goto close_and_out;
+-
+-  /* Of course we also have to have the actual function.  */
+-  trans->info.trans_fct = __libc_dlsym (trans->handle, "gconv_trans");
+-  if (trans->info.trans_fct == NULL)
+-    goto close_and_out;
+-
+-  /* Now the optional functions.  */
+-  trans->info.trans_init_fct =
+-    __libc_dlsym (trans->handle, "gconv_trans_init");
+-  trans->info.trans_context_fct =
+-    __libc_dlsym (trans->handle, "gconv_trans_context");
+-  trans->info.trans_end_fct =
+-    __libc_dlsym (trans->handle, "gconv_trans_end");
+-
+-  trans->open_count = 1;
+-
+-  return 0;
+-}
+-
+-
+ int
+ internal_function
+ __gconv_translit_find (struct trans_struct *trans)
+ {
+-  struct known_trans **found;
+-  const struct path_elem *runp;
+-  int res = 1;
+-
+-  /* We have to have a name.  */
+-  assert (trans->name != NULL);
+-
+-  /* Acquire the lock.  */
+-  __libc_lock_lock (lock);
+-
+-  /* See whether we know this module already.  */
+-  found = __tfind (trans, &search_tree, trans_compare);
+-  if (found != NULL)
+-    {
+-      /* Is this module available?  */
+-      if ((*found)->handle != NULL)
+-	{
+-	  /* Maybe we have to reopen the file.  */
+-	  if ((*found)->handle != (void *) -1)
+-	    /* The object is not unloaded.  */
+-	    res = 0;
+-	  else if (open_translit (*found) == 0)
+-	    {
+-	      /* Copy the data.  */
+-	      *trans = (*found)->info;
+-	      (*found)->open_count++;
+-	      res = 0;
+-	    }
+-	}
+-    }
+-  else
+-    {
+-      size_t name_len = strlen (trans->name) + 1;
+-      int need_so = 0;
+-      struct known_trans *newp;
+-
+-      /* We have to continue looking for the module.  */
+-      if (__gconv_path_elem == NULL)
+-	__gconv_get_path ();
+-
+-      /* See whether we have to append .so.  */
+-      if (name_len <= 4 || memcmp (&trans->name[name_len - 4], ".so", 3) != 0)
+-	need_so = 1;
+-
+-      /* Create a new entry.  */
+-      newp = (struct known_trans *) malloc (sizeof (struct known_trans)
+-					    + (__gconv_max_path_elem_len
+-					       + name_len + 3)
+-					    + name_len);
+-      if (newp != NULL)
+-	{
+-	  char *cp;
+-
+-	  /* Clear the struct.  */
+-	  memset (newp, '\0', sizeof (struct known_trans));
+-
+-	  /* Store a copy of the module name.  */
+-	  newp->info.name = cp = (char *) (newp + 1);
+-	  cp = __mempcpy (cp, trans->name, name_len);
+-
+-	  newp->fname = cp;
+-
+-	  /* Search in all the directories.  */
+-	  for (runp = __gconv_path_elem; runp->name != NULL; ++runp)
+-	    {
+-	      cp = __mempcpy (__stpcpy ((char *) newp->fname, runp->name),
+-			      trans->name, name_len);
+-	      if (need_so)
+-		memcpy (cp, ".so", sizeof (".so"));
+-
+-	      if (open_translit (newp) == 0)
+-		{
+-		  /* We found a module.  */
+-		  res = 0;
+-		  break;
+-		}
+-	    }
+-
+-	  if (res)
+-	    newp->fname = NULL;
+-
+-	  /* In any case we'll add the entry to our search tree.  */
+-	  if (__tsearch (newp, &search_tree, trans_compare) == NULL)
+-	    {
+-	      /* Yickes, this should not happen.  Unload the object.  */
+-	      res = 1;
+-	      /* XXX unload here.  */
+-	    }
+-	}
+-    }
+-
+-  __libc_lock_unlock (lock);
+-
+-  return res;
++  /* Transliteration module loading has been removed because it never
++     worked as intended and suffered from a security vulnerability.
++     Consequently, this function always fails.  */
++  return 1;
+ }
diff --git a/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch b/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
new file mode 100644
index 00000000000..04bcc42a032
--- /dev/null
+++ b/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
@@ -0,0 +1,25 @@
+--- ./giscanner/utils.py.orig	2014-08-14 22:05:05.055334080 +0200
++++ ./giscanner/utils.py	2014-08-14 22:05:24.687497334 +0200
+@@ -110,17 +110,11 @@
+     if dlname is None:
+         return None
+ 
+-    # Darwin uses absolute paths where possible; since the libtool files never
+-    # contain absolute paths, use the libdir field
+-    if platform.system() == 'Darwin':
+-        dlbasename = os.path.basename(dlname)
+-        libdir = _extract_libdir_field(la_file)
+-        if libdir is None:
+-            return dlbasename
+-        return libdir + '/' + dlbasename
+-    # From the comments in extract_libtool(), older libtools had
+-    # a path rather than the raw dlname
+-    return os.path.basename(dlname)
++    dlbasename = os.path.basename(dlname)
++    libdir = _extract_libdir_field(la_file)
++    if libdir is None:
++        return dlbasename
++    return libdir + '/' + dlbasename
+ 
+ 
+ def extract_libtool(la_file):
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index 7686fb30838..4b7ec1f4116 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -29,6 +29,8 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
+  patches = [ ./absolute_shlib_path.patch ];
+
   meta = with stdenv.lib; {
     description = "A middleware layer between C libraries and language bindings";
     homepage    = http://live.gnome.org/GObjectIntrospection;
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
index 9ffccac1e0f..cd8edcb1b26 100644
--- a/pkgs/development/libraries/gperftools/default.nix
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libunwind }:
 
 stdenv.mkDerivation rec {
-  name = "gperftools-2.1";
+  name = "gperftools-2.2.1";
 
   src = fetchurl {
-    url = "https://gperftools.googlecode.com/files/${name}.tar.gz";
-    sha256 = "0ks9gsnhxrs2vccc6ha9m8xmj83lmw09xcws4zc0k57q4jcy5bgk";
+    url = "https://googledrive.com/host/0B6NtGsLhIcf7MWxMMF9JdTN3UVk/gperftools-2.2.1.tar.gz";
+    sha256 = "04zkz5mh4vzcc7cx72b21bq70xy7y5kq9gsk4nbssxk5wlqggy2n";
   };
 
   buildInputs = stdenv.lib.optional stdenv.isLinux libunwind;
@@ -16,9 +16,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://code.google.com/p/gperftools/;
     description = "Fast, multi-threaded malloc() and nifty performance analysis tools";
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ wkennington ];
   };
 }
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index d86e450477d..a02af7f0cd7 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, python, gst-plugins-base, orc
 , faacSupport ? false, faac ? null
 , faad2, libass, libkate, libmms
-, libmodplug, mpeg2dec, mpg123 
+, libmodplug, mpeg2dec, mpg123
 , openjpeg, libopus, librsvg
 , wildmidi, fluidsynth, libvdpau, wayland
 , libwebp, xvidcore, gnutls
@@ -10,7 +10,7 @@
 assert faacSupport -> faac != null;
 
 stdenv.mkDerivation rec {
-  name = "gst-plugins-bad-1.4.0";
+  name = "gst-plugins-bad-1.4.1";
 
   meta = with stdenv.lib; {
     description = "Gstreamer Bad Plugins";
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz";
-    sha256 = "1y821785rvr6s79cmdll66hg6h740qa2n036xid20nvjyxabfb7z";
+    sha256 = "0268db2faaf0bb22e5b709a11633abbca4f3d289b1f513bb262d0bf3f53e19ae";
   };
 
   nativeBuildInputs = [ pkgconfig python ];
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index 9ae5f194fa2..3b9e94f4c65 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -4,7 +4,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gst-plugins-base-1.4.0";
+  name = "gst-plugins-base-1.4.1";
 
   meta = {
     description = "Base plugins and helper libraries";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz";
-    sha256 = "07jcs08hjyban0amls5s0g6i4a1hwiir1llwpqzlwkmnhfwx9bjx";
+    sha256 = "aea9e25be6691bd3cc0785d005b2b5d70ce313a2c897901680a3f7e7cab5a499";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index a99c0f14ecc..8e9a2b87a01 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl, pkgconfig, perl, bison, flex, python, gobjectIntrospection
-, glib 
+, glib
 }:
 
 stdenv.mkDerivation rec {
-  name = "gstreamer-1.4.0";
+  name = "gstreamer-1.4.1";
 
   meta = {
     description = "Open source multimedia framework";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gstreamer/${name}.tar.xz";
-    sha256 = "15f68pn2b47x543ih7hj59czgzl4af14j15bgjq8ky145gf9zhr3";
+    sha256 = "5638f75003282135815c0077d491da11e9a884ad91d4ba6ab3cc78bae0fb452e";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 69ffa81cb25..176814c5ecd 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -7,7 +7,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gst-plugins-good-1.4.0";
+  name = "gst-plugins-good-1.4.1";
 
   meta = with stdenv.lib; {
     description = "Gstreamer Good Plugins";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz";
-    sha256 = "11965w4zr0jvrsnw33rbcc8d20dlh368rz0x16d2iypzhxwjx9j8";
+    sha256 = "8559d4270065b30ed5c49b826e1b7a3a2bd5ee9a340ae745a2ae3f9718e4c637";
   };
 
   nativeBuildInputs = [ pkgconfig python ];
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index ee4b3c392dd..e25492c1d13 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -6,7 +6,7 @@
 assert withSystemLibav -> libav != null;
 
 stdenv.mkDerivation rec {
-  name = "gst-libav-1.4.0";
+  name = "gst-libav-1.4.1";
 
   meta = {
     homepage = "http://gstreamer.freedesktop.org";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-libav/${name}.tar.xz";
-    sha256 = "1073p7xdpr3pwyx37fnldfni908apnq3k9fbqmxf5wk3g1jplb68";
+    sha256 = "fc125521187fa84f3210269a0eecc51f8a856802f1ca4bb251f118dab90c5a9d";
   };
 
   configureFlags = stdenv.lib.optionalString withSystemLibav
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index da37280af99..6a80514e8a1 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -5,7 +5,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gst-plugins-ugly-1.4.0";
+  name = "gst-plugins-ugly-1.4.1";
 
   meta = with stdenv.lib; {
     description = "Gstreamer Ugly Plugins";
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz";
-    sha256 = "0kblc5f4n0mh2sw8dhf7c9dg3wzm7a0p7pqpcff7n6ixy5hbn52k";
+    sha256 = "25440435ac4ed795d213f2420a0e7355e4a2e2e76d1f9d020b2073f815e8b071";
   };
 
   nativeBuildInputs = [ pkgconfig python ];
diff --git a/pkgs/development/libraries/gtkspellmm/default.nix b/pkgs/development/libraries/gtkspellmm/default.nix
new file mode 100644
index 00000000000..d24ec46d905
--- /dev/null
+++ b/pkgs/development/libraries/gtkspellmm/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl
+, pkgconfig
+, gtk3, glib, glibmm, gtkmm3, gtkspell3
+}:
+
+let
+  version = "3.0.3";
+
+in
+
+stdenv.mkDerivation rec {
+  name = "gtkspellmm-${version}";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/project/gtkspell/gtkspellmm/" +
+          "${name}.tar.gz";
+    sha256 = "f9dcc0991621c08e7a972f33487afd6b37491468f0b654f50c741a7e6d810624";
+  };
+
+  propagatedBuildInputs = [
+    gtkspell3
+  ];
+
+  buildInputs = [
+    pkgconfig
+    gtk3 glib glibmm gtkmm3
+  ];
+
+  meta = with stdenv.lib; {
+    description = "C++ binding for the gtkspell library";
+    homepage = http://gtkspell.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 8340660e392..45cdc5be02b 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -8,11 +8,11 @@
 # (icu is a ~30 MB dependency, the rest is very small in comparison)
 
 stdenv.mkDerivation rec {
-  name = "harfbuzz-0.9.33";
+  name = "harfbuzz-0.9.35";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
-    sha256 = "1iql2ghlndqgx9q6p098xf253rjz5rnrv5qniwgd1b5q0jzwa4yk";
+    sha256 = "1v86596994bnb9hx7laykhw4ipixqz9ckwzyyqf340pmlsmsi88a";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/haskell/Chart-cairo/default.nix b/pkgs/development/libraries/haskell/Chart-cairo/default.nix
index d2dea815819..95d346cd9f3 100644
--- a/pkgs/development/libraries/haskell/Chart-cairo/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-cairo/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart-cairo";
-  version = "1.2.4";
-  sha256 = "1ggqh3v14mwv9q1pmz3hbx7g1dvibfwl1vzvag92q7432q4pqm2z";
+  version = "1.3.1";
+  sha256 = "15d52x0xr0klkfp9jh9i2aqki8gkm805mm6yk53f3ky92vdylg6q";
   buildDepends = [
     cairo Chart colour dataDefaultClass lens mtl operational time
   ];
diff --git a/pkgs/development/libraries/haskell/Chart-diagrams/default.nix b/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
index 002b762fbac..6b90954c4a7 100644
--- a/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart-diagrams";
-  version = "1.2.4";
-  sha256 = "099frqvfjqqc7h3zr52saqyg37di0klr0y649afzxd7lj3d67mvw";
+  version = "1.3.1";
+  sha256 = "0p959m350rj0fl91f94c0gcxnzgy8yrz27naw9ciqi36za7sxl6j";
   buildDepends = [
     blazeSvg Chart colour dataDefaultClass diagramsCore diagramsLib
     diagramsPostscript diagramsSvg lens mtl operational SVGFonts text
@@ -20,6 +20,5 @@ cabal.mkDerivation (self: {
     description = "Diagrams backend for Charts";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/Chart-gtk/default.nix b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
index 9dbb3c8ae9a..7e6f7d794af 100644
--- a/pkgs/development/libraries/haskell/Chart-gtk/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
@@ -1,12 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, cairo, Chart, ChartCairo, colour, gtk, mtl, time }:
+{ cabal, cairo, Chart, ChartCairo, colour, dataDefaultClass, gtk
+, mtl, time
+}:
 
 cabal.mkDerivation (self: {
   pname = "Chart-gtk";
-  version = "1.2.4";
-  sha256 = "16dfmkls341cmk13j1z3rw2wxdvxr5rqsv1ff4qjhjak9j7hkqjq";
-  buildDepends = [ cairo Chart ChartCairo colour gtk mtl time ];
+  version = "1.3.1";
+  sha256 = "1bnhwiabwjhry6pfwi9xs4zg23vycqx3rpbc5qs7773sij93v7bj";
+  buildDepends = [
+    cairo Chart ChartCairo colour dataDefaultClass gtk mtl time
+  ];
   meta = {
     homepage = "https://github.com/timbod7/haskell-chart/wiki";
     description = "Utility functions for using the chart library with GTK";
diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix
index d5696a562da..94e40a28afa 100644
--- a/pkgs/development/libraries/haskell/Chart/default.nix
+++ b/pkgs/development/libraries/haskell/Chart/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart";
-  version = "1.2.4";
-  sha256 = "0zizrkxsligvxs5x5r2j0pynf6ncjl4mgyzbh1zfqgnz29frylh7";
+  version = "1.3.1";
+  sha256 = "019q77hgv5hyhfpsfs2k1a4qn8fandk1nj7xkzn00z21jqhman2s";
   buildDepends = [
     colour dataDefaultClass lens mtl operational time
   ];
diff --git a/pkgs/development/libraries/haskell/DAV/default.nix b/pkgs/development/libraries/haskell/DAV/default.nix
index 30289ed9d08..be383fd4143 100644
--- a/pkgs/development/libraries/haskell/DAV/default.nix
+++ b/pkgs/development/libraries/haskell/DAV/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "DAV";
-  version = "1.0.1";
-  sha256 = "0j8z7hi5dykimv6da584zgyn8xlvfhg1k9sbhj5ay7ncxszb134k";
+  version = "1.0.2";
+  sha256 = "0xbiq3q8w1cjnh71sfnincir8igvwig734r8schbsps993p2d24b";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -17,7 +17,6 @@ cabal.mkDerivation (self: {
     httpClientTls httpTypes lens mtl network optparseApplicative
     transformers transformersBase utf8String xmlConduit xmlHamlet
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://floss.scru.org/hDAV";
     description = "RFC 4918 WebDAV support";
diff --git a/pkgs/development/libraries/haskell/MFlow/default.nix b/pkgs/development/libraries/haskell/MFlow/default.nix
index f5e088a4238..aaf84a84187 100644
--- a/pkgs/development/libraries/haskell/MFlow/default.nix
+++ b/pkgs/development/libraries/haskell/MFlow/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "MFlow";
-  version = "0.4.5.8";
-  sha256 = "1gfv5ky68dyn8gjjg60c5s9x3dl9xn6j9q43w7vaj9sd1q12wk3c";
+  version = "0.4.5.9";
+  sha256 = "0mqsyx7wkfgvpppqgpjpvzwx79vj7lh4c8afzzj1hgh8z0ilb4ik";
   buildDepends = [
     blazeHtml blazeMarkup caseInsensitive clientsession conduit
     conduitExtra extensibleExceptions httpTypes monadloc mtl parsec
diff --git a/pkgs/development/libraries/haskell/aeson-qq/default.nix b/pkgs/development/libraries/haskell/aeson-qq/default.nix
index 2090a20fa8d..95452b91360 100644
--- a/pkgs/development/libraries/haskell/aeson-qq/default.nix
+++ b/pkgs/development/libraries/haskell/aeson-qq/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "aeson-qq";
-  version = "0.7.2";
-  sha256 = "1h4agwl8kr6qpy4775pxmaizhlzbwjqb23pxn2vvz9wbm2vnixwk";
+  version = "0.7.3";
+  sha256 = "1d5wl38gkqc2dbk626f7vdcc2i3faannac13zdc9py0kbcniw231";
   buildDepends = [ aeson haskellSrcMeta parsec text vector ];
   testDepends = [ aeson haskellSrcMeta hspec parsec text vector ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/async/2.0.1.5.nix b/pkgs/development/libraries/haskell/async/2.0.1.6.nix
index a4251e9e80b..6c1aed15eab 100644
--- a/pkgs/development/libraries/haskell/async/2.0.1.5.nix
+++ b/pkgs/development/libraries/haskell/async/2.0.1.6.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "async";
-  version = "2.0.1.5";
-  sha256 = "0g587b64zgn971qb2lh846ihg4z89037f18821kyaqsgixasq4yd";
+  version = "2.0.1.6";
+  sha256 = "06fzkqjliccxqiygms7v1xff3wlkg54n9xwzv7m1yxylkzlikjkz";
   buildDepends = [ stm ];
   testDepends = [ HUnit testFramework testFrameworkHunit ];
   jailbreak = true;
diff --git a/pkgs/development/libraries/haskell/attoparsec/0.12.1.1.nix b/pkgs/development/libraries/haskell/attoparsec/0.12.1.2.nix
index b8e2104f739..a6083866248 100644
--- a/pkgs/development/libraries/haskell/attoparsec/0.12.1.1.nix
+++ b/pkgs/development/libraries/haskell/attoparsec/0.12.1.2.nix
@@ -1,17 +1,17 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, deepseq, QuickCheck, scientific, testFramework
-, testFrameworkQuickcheck2, text
+, testFrameworkQuickcheck2, text, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "attoparsec";
-  version = "0.12.1.1";
-  sha256 = "0whj2wscw9pdf6avnhnqiapsllh6228j4hifyfvr4v0w663plh7p";
+  version = "0.12.1.2";
+  sha256 = "1vazyr3fdahdg1q503sbj0zv4xj7sm7j32mjm856bm51j2s0rhlc";
   buildDepends = [ deepseq scientific text ];
   testDepends = [
     deepseq QuickCheck scientific testFramework
-    testFrameworkQuickcheck2 text
+    testFrameworkQuickcheck2 text vector
   ];
   meta = {
     homepage = "https://github.com/bos/attoparsec";
diff --git a/pkgs/development/libraries/haskell/auto-update/default.nix b/pkgs/development/libraries/haskell/auto-update/default.nix
index e047e938dae..edfcbe4e342 100644
--- a/pkgs/development/libraries/haskell/auto-update/default.nix
+++ b/pkgs/development/libraries/haskell/auto-update/default.nix
@@ -1,12 +1,11 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, hspec }:
+{ cabal }:
 
 cabal.mkDerivation (self: {
   pname = "auto-update";
-  version = "0.1.1.2";
-  sha256 = "0901zqky70wyxl17vwz6smhnpsfjnsk0f2xqiyz902vl7apx66c6";
-  testDepends = [ hspec ];
+  version = "0.1.1.3";
+  sha256 = "06izsfd3xiragzac682vg3bmr6947y8s4yr2r7rip7qjvsja2yhy";
   meta = {
     homepage = "https://github.com/yesodweb/wai";
     description = "Efficiently run periodic, on-demand actions";
diff --git a/pkgs/development/libraries/haskell/aws/default.nix b/pkgs/development/libraries/haskell/aws/default.nix
index 3df47d95618..f527d9aac40 100644
--- a/pkgs/development/libraries/haskell/aws/default.nix
+++ b/pkgs/development/libraries/haskell/aws/default.nix
@@ -26,6 +26,7 @@ cabal.mkDerivation (self: {
     aeson errors mtl QuickCheck quickcheckInstances tagged tasty
     tastyQuickcheck text transformers
   ];
+  jailbreak = true;
   doCheck = false;
   meta = {
     homepage = "http://github.com/aristidb/aws";
diff --git a/pkgs/development/libraries/haskell/base-prelude/default.nix b/pkgs/development/libraries/haskell/base-prelude/default.nix
index 824576293f4..1799fa6a6ba 100644
--- a/pkgs/development/libraries/haskell/base-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/base-prelude/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "base-prelude";
-  version = "0.1.3";
-  sha256 = "07s5j538zxd0hlazqqbz4nwa82rcrmv25v7jr6nxafmgn83mkqhx";
+  version = "0.1.4";
+  sha256 = "10xvzkzlmyrq0mi6056rl6hq4bga1k1c6671b1bxjhgzgqrzpjpz";
   meta = {
     homepage = "https://github.com/nikita-volkov/base-prelude";
     description = "The most complete prelude formed from only the \"base\" package";
diff --git a/pkgs/development/libraries/haskell/blaze-builder/default.nix b/pkgs/development/libraries/haskell/blaze-builder/default.nix
index c031633c233..478ec8355d9 100644
--- a/pkgs/development/libraries/haskell/blaze-builder/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-builder";
-  version = "0.3.3.2";
-  sha256 = "038ig1a1iz0hc36l53f5g7h6aiz7b1lggq1d04y3ql9a0553vd40";
+  version = "0.3.3.3";
+  sha256 = "1kzm2crwan11wrg8ky2gc29c7xpi9fm34xhz5gf5xlc3vy423y8s";
   buildDepends = [ text ];
   meta = {
     homepage = "http://github.com/meiersi/blaze-builder";
diff --git a/pkgs/development/libraries/haskell/blaze-html/default.nix b/pkgs/development/libraries/haskell/blaze-html/default.nix
index e29b4c02521..16c967d78a2 100644
--- a/pkgs/development/libraries/haskell/blaze-html/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-html/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-html";
-  version = "0.7.0.2";
-  sha256 = "0yqgm5nrryx0qlz9qhpbfxvkwjdbl9876v4gnn0src81j9dzcx2v";
+  version = "0.7.0.3";
+  sha256 = "1jn3vvrxb3ifxb5yzs76pjlk8c366xg1sab7qlw9a4kwmigvl6vx";
   buildDepends = [ blazeBuilder blazeMarkup text ];
   testDepends = [
     blazeBuilder blazeMarkup HUnit QuickCheck testFramework
diff --git a/pkgs/development/libraries/haskell/blaze-markup/default.nix b/pkgs/development/libraries/haskell/blaze-markup/default.nix
index d4b52d54436..cdea333abcd 100644
--- a/pkgs/development/libraries/haskell/blaze-markup/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-markup/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-markup";
-  version = "0.6.1.0";
-  sha256 = "0ydk34y1j8bssdiqw6m70383dh4khbcac3jd7fpr37cx7ighlp7l";
+  version = "0.6.1.1";
+  sha256 = "1ah6fgfqsmarq8g4gw81yhckz4pclb2ifxv237cqz5zhy9il4j5d";
   buildDepends = [ blazeBuilder text ];
   testDepends = [
     blazeBuilder HUnit QuickCheck testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/boundingboxes/0.1.1.nix b/pkgs/development/libraries/haskell/boundingboxes/0.1.1.nix
deleted file mode 100644
index 205b05f30d8..00000000000
--- a/pkgs/development/libraries/haskell/boundingboxes/0.1.1.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file was auto-generated by cabal2nix. Please do NOT edit manually!
-
-{ cabal, lens, linear, QuickCheck, random, testFramework
-, testFrameworkQuickcheck2, testFrameworkTh
-}:
-
-cabal.mkDerivation (self: {
-  pname = "boundingboxes";
-  version = "0.1.1";
-  sha256 = "1nl0lqgfwd98jzhhw7i4vvd88lpnn8770x2pcbyfzqcyr27079f0";
-  buildDepends = [ lens linear ];
-  testDepends = [
-    lens linear QuickCheck random testFramework
-    testFrameworkQuickcheck2 testFrameworkTh
-  ];
-  doCheck = false;
-  meta = {
-    homepage = "https://github.com/fumieval/boundingboxes";
-    description = "The type for 2D bounding box";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/boundingboxes/0.2.nix b/pkgs/development/libraries/haskell/boundingboxes/default.nix
index 686f4ffbbab..ab5cfabad44 100644
--- a/pkgs/development/libraries/haskell/boundingboxes/0.2.nix
+++ b/pkgs/development/libraries/haskell/boundingboxes/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "boundingboxes";
-  version = "0.2";
-  sha256 = "0xvh1h4papfrf6dg553rx6q8fqi06ff1ivgn4rdx3haqg1zf40hp";
+  version = "0.2.2";
+  sha256 = "09yj85ikpdgzbibpdk0mw9vcaklmqlbhwpm6knz595596wr25fcx";
   buildDepends = [ lens ];
   testDepends = [
     lens linear QuickCheck random testFramework
@@ -16,7 +16,7 @@ cabal.mkDerivation (self: {
   doCheck = false;
   meta = {
     homepage = "https://github.com/fumieval/boundingboxes";
-    description = "The type for 2D bounding box";
+    description = "A generic boundingbox for an arbitrary vector";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/bytes/default.nix b/pkgs/development/libraries/haskell/bytes/default.nix
index 4a8877b6a59..4f6387781c2 100644
--- a/pkgs/development/libraries/haskell/bytes/default.nix
+++ b/pkgs/development/libraries/haskell/bytes/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "bytes";
-  version = "0.14.1";
-  sha256 = "023sdwdirvigrdg03f6jrdndm6pkqsmsrwz9ji57dpqg4f5k9jzk";
+  version = "0.14.1.1";
+  sha256 = "11bsl31352h5lj7ad68byqqc27d5iz53kwx7b433l44g9kaijrvc";
   buildDepends = [
     binary cereal mtl text time transformers transformersCompat void
   ];
diff --git a/pkgs/development/libraries/haskell/c2hs/default.nix b/pkgs/development/libraries/haskell/c2hs/default.nix
index 95ead17f01f..a082a9ef2af 100644
--- a/pkgs/development/libraries/haskell/c2hs/default.nix
+++ b/pkgs/development/libraries/haskell/c2hs/default.nix
@@ -1,18 +1,19 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, filepath, HUnit, languageC, shelly, testFramework
-, testFrameworkHunit, text, yaml
+{ cabal, dlist, filepath, HUnit, languageC, shelly, testFramework
+, testFrameworkHunit, text, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "c2hs";
-  version = "0.17.2";
-  sha256 = "1xrk0izdy5akjgmg9k4l9ccmmgv1avwh152pfpc1xm2rrwrg4bxk";
+  version = "0.18.2";
+  sha256 = "0rkarj8y8sj83svjz9jivrr1dh2ryky4sb35cxlyxv623bl6sc1x";
   isLibrary = false;
   isExecutable = true;
-  buildDepends = [ filepath languageC ];
+  buildDepends = [ dlist filepath languageC ];
   testDepends = [
-    filepath HUnit shelly testFramework testFrameworkHunit text yaml
+    filepath HUnit shelly testFramework testFrameworkHunit text
+    transformers
   ];
   jailbreak = true;
   doCheck = false;
diff --git a/pkgs/development/libraries/haskell/case-insensitive/1.2.0.0.nix b/pkgs/development/libraries/haskell/case-insensitive/1.2.0.1.nix
index c8c544610e3..96b5bc114a3 100644
--- a/pkgs/development/libraries/haskell/case-insensitive/1.2.0.0.nix
+++ b/pkgs/development/libraries/haskell/case-insensitive/1.2.0.1.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "case-insensitive";
-  version = "1.2.0.0";
-  sha256 = "0ybdmqaqh9hdl3dl5kx8qhs4b67g78fhnkqnd3y2lpgqjvhnbzp4";
+  version = "1.2.0.1";
+  sha256 = "1hnckzi6yq3332fx4b140lwa9p6x69rlpaw6y1pmldj2h9nsxl6m";
   buildDepends = [ deepseq hashable text ];
   testDepends = [ HUnit testFramework testFrameworkHunit text ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/cereal-conduit/default.nix b/pkgs/development/libraries/haskell/cereal-conduit/default.nix
index e15d10bd45b..baad2943358 100644
--- a/pkgs/development/libraries/haskell/cereal-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/cereal-conduit/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cereal-conduit";
-  version = "0.7.2.2";
-  sha256 = "1syqilka5rv2j3yp419f2wdrcfw8js6i2p7qif4yxvlkm2hkvzzk";
+  version = "0.7.2.3";
+  sha256 = "0s1s8jm25wxj44x44vjz4kz5qblkyjaz7f8rw5i81bzam32afj9s";
   buildDepends = [ cereal conduit resourcet transformers ];
   testDepends = [ cereal conduit HUnit mtl resourcet transformers ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/checkers/default.nix b/pkgs/development/libraries/haskell/checkers/default.nix
index fb7e86fc75f..65f9d20a19a 100644
--- a/pkgs/development/libraries/haskell/checkers/default.nix
+++ b/pkgs/development/libraries/haskell/checkers/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "checkers";
-  version = "0.3.2";
-  sha256 = "0v8i6754syvjh2p5qdqh95j3swkar9077gidsnahwk9h6qfsx6r3";
+  version = "0.4.1";
+  sha256 = "19ndgbivd07vchsqs6z9iqjl2jldbq7h4skqc9acracd9xyq1vdr";
   buildDepends = [ QuickCheck random ];
   meta = {
     description = "Check properties on standard classes and data structures";
diff --git a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
index 286a20f2ba2..b2a85e35699 100644
--- a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude-conduit";
-  version = "0.9.4";
-  sha256 = "07ggdd3c47bs0pj4hl8vl19k2jlbka73pq7x0m4rsgrrjxc5pr1r";
+  version = "0.9.5";
+  sha256 = "1m26d463h5hxiyc4dm6fwbyjwzmd0bwl2blwpgp4wqnyvspz195m";
   buildDepends = [
     classyPrelude conduit conduitCombinators monadControl resourcet
     systemFileio transformers void
diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix
index 018a54f42d7..b3f94ea7bdf 100644
--- a/pkgs/development/libraries/haskell/classy-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude";
-  version = "0.9.4";
-  sha256 = "1pxg515dg174minvajaxl3sqpqjm862pgfpf7n2ynw5cqmaxngxa";
+  version = "0.9.5";
+  sha256 = "1gd5z4gd62v3k59psmrj41ca6mly4fjqgf4l80smv89kc2s2w809";
   buildDepends = [
     basicPrelude chunkedData enclosedExceptions exceptions hashable
     liftedBase monoTraversable mtl primitive semigroups stm
diff --git a/pkgs/development/libraries/haskell/conduit-combinators/default.nix b/pkgs/development/libraries/haskell/conduit-combinators/default.nix
index 17598dda06b..4c194279b4e 100644
--- a/pkgs/development/libraries/haskell/conduit-combinators/default.nix
+++ b/pkgs/development/libraries/haskell/conduit-combinators/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit-combinators";
-  version = "0.2.8.2";
-  sha256 = "1x2g333ygiv4jvwx4lw579kwx1z5m80cqfqgzv0pi5xdxcagy1ha";
+  version = "0.2.8.3";
+  sha256 = "1a3dysrxg7mhm9naqj6vq45k0vxihar7pn650rb8aw22k85ifmkz";
   buildDepends = [
     base16Bytestring base64Bytestring chunkedData conduit conduitExtra
     monadControl monoTraversable mwcRandom primitive resourcet
diff --git a/pkgs/development/libraries/haskell/conduit-extra/default.nix b/pkgs/development/libraries/haskell/conduit-extra/default.nix
index 1cb2b0efe6c..e0b3bdfa542 100644
--- a/pkgs/development/libraries/haskell/conduit-extra/default.nix
+++ b/pkgs/development/libraries/haskell/conduit-extra/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit-extra";
-  version = "1.1.3.2";
-  sha256 = "15flywjw5ha8cgn4yznwlnx31ls4y82gfmvbniby0d51y4x8dmgq";
+  version = "1.1.3.4";
+  sha256 = "0j27lzdklyq2kv10yfpd16a9sl00iyalmcy8jj9r87r7jpvj949p";
   buildDepends = [
     attoparsec blazeBuilder conduit filepath monadControl network
     primitive resourcet stm streamingCommons text transformers
diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix
index f3c27ebae95..5b82a2f26a0 100644
--- a/pkgs/development/libraries/haskell/conduit/default.nix
+++ b/pkgs/development/libraries/haskell/conduit/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit";
-  version = "1.1.7";
-  sha256 = "0xk2his7qbidnzs56xcgnjipbnqmmnh74qy8dfvbznkkqhxdzmz6";
+  version = "1.2.0.2";
+  sha256 = "0gr4vqyvy3jdc1l7sinwr5dgmwzv7dq2z1npwvmbxz85bq89rmd9";
   buildDepends = [
     exceptions liftedBase mmorph monadControl mtl resourcet
     transformers transformersBase void
diff --git a/pkgs/development/libraries/haskell/criterion/default.nix b/pkgs/development/libraries/haskell/criterion/default.nix
index 7cac43769f8..5a5ce89f732 100644
--- a/pkgs/development/libraries/haskell/criterion/default.nix
+++ b/pkgs/development/libraries/haskell/criterion/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "criterion";
-  version = "1.0.0.2";
-  sha256 = "1r30vcrplilj3silnrmn0r5m0df27icdsgd5hx35li9yrs862n95";
+  version = "1.0.1.0";
+  sha256 = "1mp4rm6jd8g38yyhfrxk1xzhp6mxrwwns9kl6494ylsdpsv0v4ll";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/crypto-api/default.nix b/pkgs/development/libraries/haskell/crypto-api/default.nix
index 7c1d6308131..2a83b248674 100644
--- a/pkgs/development/libraries/haskell/crypto-api/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-api/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "crypto-api";
-  version = "0.13";
-  sha256 = "00zw9cymjhsdiy2p4prjvmmy7xnk12qggdpvxrp0hjnwlakfvyb2";
+  version = "0.13.2";
+  sha256 = "1vc27qcgbg7hf50rkqhlrs58zn1888ilh4b6wrrm07bnm48xacak";
   buildDepends = [ cereal entropy tagged transformers ];
   meta = {
     homepage = "https://github.com/TomMD/crypto-api";
diff --git a/pkgs/development/libraries/haskell/crypto-random/default.nix b/pkgs/development/libraries/haskell/crypto-random/default.nix
index 878eb3d2c71..c7053cbf1e3 100644
--- a/pkgs/development/libraries/haskell/crypto-random/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-random/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "crypto-random";
-  version = "0.0.7";
-  sha256 = "1dj63y85l3f1x7fw8j7hykz56ajd38iikl3f8ygaz8r95pd1zjxw";
+  version = "0.0.8";
+  sha256 = "058ilm05ni5ribggx25cfrhsv1z0abvgxzf3wd3d6qqq58p5wbkv";
   buildDepends = [ securemem vector ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-crypto-random";
diff --git a/pkgs/development/libraries/haskell/cuda/default.nix b/pkgs/development/libraries/haskell/cuda/default.nix
index c6daa8b5fdd..7e09fc12f70 100644
--- a/pkgs/development/libraries/haskell/cuda/default.nix
+++ b/pkgs/development/libraries/haskell/cuda/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cuda";
-  version = "0.6.0.1";
-  sha256 = "03wnkqgdvy6h2dqcmj0xlag3am3s3rjzhx0kqaq362mq365n9y51";
+  version = "0.6.5.0";
+  sha256 = "0q4c2xgffkchn8kxhiwjganmb3ki4yjhx5665zwfd18bgvmlnp60";
   buildTools = [ c2hs ];
   extraLibraries = [ cudatoolkit nvidia_x11 self.stdenv.gcc ];
   doCheck = false;
diff --git a/pkgs/development/libraries/haskell/diagrams/cairo.nix b/pkgs/development/libraries/haskell/diagrams/cairo.nix
index 3a695fa8203..cd42f175b96 100644
--- a/pkgs/development/libraries/haskell/diagrams/cairo.nix
+++ b/pkgs/development/libraries/haskell/diagrams/cairo.nix
@@ -7,13 +7,14 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-cairo";
-  version = "1.2.0.1";
-  sha256 = "0y7llxxs34i814nc3c79ykv75znplzqq7njvq7a5fyxl81ji0z4c";
+  version = "1.2.0.2";
+  sha256 = "0qm1s56kg7l96p5cvmdxc0g8r8ibh7vpyavp64178mdy62b6xavh";
   buildDepends = [
     cairo colour dataDefaultClass diagramsCore diagramsLib filepath
     hashable JuicyPixels lens mtl optparseApplicative pango split
     statestack time transformers vector
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/diagrams";
     description = "Cairo backend for diagrams drawing EDSL";
diff --git a/pkgs/development/libraries/haskell/diagrams/contrib.nix b/pkgs/development/libraries/haskell/diagrams/contrib.nix
index f1044870f3a..832617d64b7 100644
--- a/pkgs/development/libraries/haskell/diagrams/contrib.nix
+++ b/pkgs/development/libraries/haskell/diagrams/contrib.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-contrib";
-  version = "1.1.2.1";
-  sha256 = "05jsqc9wm87hpnaclzfa376m5z8lnp4qgll6lqnfa5m49cqcabki";
+  version = "1.1.2.2";
+  sha256 = "1a9ayqyffgwq8k9d8l12s6l1pqv27fvzngsklnh3y1bgp20d2z01";
   buildDepends = [
     arithmoi circlePacking colour dataDefault dataDefaultClass
     diagramsCore diagramsLib forceLayout lens MonadRandom mtl parsec
diff --git a/pkgs/development/libraries/haskell/diagrams/lib.nix b/pkgs/development/libraries/haskell/diagrams/lib.nix
index b15f05dbf27..ea5b1aad27f 100644
--- a/pkgs/development/libraries/haskell/diagrams/lib.nix
+++ b/pkgs/development/libraries/haskell/diagrams/lib.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-lib";
-  version = "1.2.0.2";
-  sha256 = "0ylrsldq7nmqvprgwbw7bkwp31zhgbyxjx462lcayk0lbhqb5k5p";
+  version = "1.2.0.3";
+  sha256 = "1rgyv7yywmqk3s2cmv5s923421ybj6mnii7jgxri56jzw0agfyq7";
   buildDepends = [
     active colour dataDefaultClass diagramsCore dualTree filepath
     fingertree hashable intervals JuicyPixels lens MemoTrie
diff --git a/pkgs/development/libraries/haskell/diagrams/rasterific.nix b/pkgs/development/libraries/haskell/diagrams/rasterific.nix
index c2e85058a90..6d20bcd2376 100644
--- a/pkgs/development/libraries/haskell/diagrams/rasterific.nix
+++ b/pkgs/development/libraries/haskell/diagrams/rasterific.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-rasterific";
-  version = "0.1.0.1";
-  sha256 = "1bgrwnrdhlnbcv5ra80x2nh5yr5bzz81f517zb0ws2y07l072gwm";
+  version = "0.1.0.2";
+  sha256 = "16pwpa34hxf8qd7mf3zn4k7sr6p2pkvag3c77iwcs5qwqf5vhyf9";
   buildDepends = [
     dataDefaultClass diagramsCore diagramsLib filepath FontyFruity
     JuicyPixels lens mtl optparseApplicative Rasterific split
diff --git a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
index aae120d5681..4c1ca9cd9ae 100644
--- a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
+++ b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "digestive-functors-heist";
-  version = "0.8.5.0";
-  sha256 = "0pjjr3b1zm23wpqnmcbr8ly08bp63sz3c9vbxcani4mwgx05qp87";
+  version = "0.8.6.0";
+  sha256 = "0n73hw8xl70x7c3hn4hz1qqijvvhv0qk30q0c22lnbjaf4n8dki2";
   buildDepends = [
     blazeBuilder digestiveFunctors heist mtl text xmlhtml
   ];
diff --git a/pkgs/development/libraries/haskell/dimensional/default.nix b/pkgs/development/libraries/haskell/dimensional/default.nix
index 3435bf57d5c..9be32b5596a 100644
--- a/pkgs/development/libraries/haskell/dimensional/default.nix
+++ b/pkgs/development/libraries/haskell/dimensional/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "dimensional";
-  version = "0.13";
-  sha256 = "1nj8h79iq7pirqlj8iw1p782nm05xgym3469x7hlzaz3ig9nwgrg";
+  version = "0.13.0.1";
+  sha256 = "1cn7gyskp0ax5lm5k05p6qp461hirjyhj0k1qyd64fgdmmp81vi6";
   buildDepends = [ numtype time ];
   meta = {
     homepage = "http://dimensional.googlecode.com/";
diff --git a/pkgs/development/libraries/haskell/directory-layout/default.nix b/pkgs/development/libraries/haskell/directory-layout/default.nix
index 610b1a5ec63..2cc9682dccb 100644
--- a/pkgs/development/libraries/haskell/directory-layout/default.nix
+++ b/pkgs/development/libraries/haskell/directory-layout/default.nix
@@ -16,6 +16,7 @@ cabal.mkDerivation (self: {
     commandQq doctest filepath free hspec lens semigroups temporary
     text transformers unorderedContainers
   ];
+  doCheck = false;
   meta = {
     description = "Directory layout DSL";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/djinn/default.nix b/pkgs/development/libraries/haskell/djinn/default.nix
index 12ff67c7f20..e922d9ff7be 100644
--- a/pkgs/development/libraries/haskell/djinn/default.nix
+++ b/pkgs/development/libraries/haskell/djinn/default.nix
@@ -4,20 +4,14 @@
 
 cabal.mkDerivation (self: {
   pname = "djinn";
-  version = "2011.7.23";
-  sha256 = "14748pqzrd1r9jg2vc9v232pi38q99l9zdlia6ashm2v871hp1xv";
+  version = "2014.9.7";
+  sha256 = "1p9dvzb83nlrq8h4brdq5l9dm2zf28rjhsmi7nwmac79p5pk9y2g";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ haskeline mtl ];
-  preConfigure = self.stdenv.lib.optionalString self.stdenv.isDarwin ''
-    sed -i 's/-Wall -optl-Wl/-Wall/' djinn.cabal
-  '';
   meta = {
-    homepage = "http://www.augustsson.net/Darcs/Djinn/";
     description = "Generate Haskell code from a type";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = self.stdenv.lib.versionOlder "7.7" self.ghc.version;
   };
 })
diff --git a/pkgs/development/libraries/haskell/doctest/default.nix b/pkgs/development/libraries/haskell/doctest/default.nix
index 018fac06670..af3f9e2d525 100644
--- a/pkgs/development/libraries/haskell/doctest/default.nix
+++ b/pkgs/development/libraries/haskell/doctest/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "doctest";
-  version = "0.9.11";
-  sha256 = "04y6y5hixqh8awl37wrss20c2drvx070w7wd6icfx7r0jqds97jr";
+  version = "0.9.11.1";
+  sha256 = "1gzzzwr7f7281mlbfbk74nxr28l70lwfaws4xjfx2v06xazl99db";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ deepseq filepath ghcPaths syb transformers ];
@@ -18,7 +18,7 @@ cabal.mkDerivation (self: {
   doCheck = false;
   noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.4";
   meta = {
-    homepage = "https://github.com/sol/doctest-haskell#readme";
+    homepage = "https://github.com/sol/doctest#readme";
     description = "Test interactive Haskell examples";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/either/default.nix b/pkgs/development/libraries/haskell/either/default.nix
index 72f3bff14df..d2fb0964dd9 100644
--- a/pkgs/development/libraries/haskell/either/default.nix
+++ b/pkgs/development/libraries/haskell/either/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "either";
-  version = "4.3.0.2";
-  sha256 = "01n4jkf6py00841cyf3fiwiay736dpbhda8ia2qgm26q4r4h58gd";
+  version = "4.3.1";
+  sha256 = "1k7aqy3k0ivpbqhym79q49dx41gnrkn1nw2inkm6gv8dy7bj9h6x";
   buildDepends = [
     exceptions free monadControl MonadRandom mtl semigroupoids
     semigroups transformers transformersBase
diff --git a/pkgs/development/libraries/haskell/entropy/default.nix b/pkgs/development/libraries/haskell/entropy/default.nix
index 881a9cd9a0a..207cc0ea5da 100644
--- a/pkgs/development/libraries/haskell/entropy/default.nix
+++ b/pkgs/development/libraries/haskell/entropy/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "entropy";
-  version = "0.3.2";
-  sha256 = "1kk0vmfmfqcsw0pzbii9rvz32fvhvxqpn6p6jw6q2x33z6gm5f9x";
+  version = "0.3.3";
+  sha256 = "0px97mims7pbxyh8jqckc14ahdjj7r3hhckzpjqnxpkcisb2c738";
   meta = {
     homepage = "https://github.com/TomMD/entropy";
     description = "A platform independent entropy source";
diff --git a/pkgs/development/libraries/haskell/esqueleto/default.nix b/pkgs/development/libraries/haskell/esqueleto/default.nix
index 637f32c3996..1d90a926993 100644
--- a/pkgs/development/libraries/haskell/esqueleto/default.nix
+++ b/pkgs/development/libraries/haskell/esqueleto/default.nix
@@ -24,5 +24,6 @@ cabal.mkDerivation (self: {
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ ocharles ];
+    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/fay/default.nix b/pkgs/development/libraries/haskell/fay/default.nix
index c00b009c51d..1e3ba43cb3e 100644
--- a/pkgs/development/libraries/haskell/fay/default.nix
+++ b/pkgs/development/libraries/haskell/fay/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fay";
-  version = "0.20.1.3";
-  sha256 = "1r9a1my8wydxx92xg04kacw90s1r4bms84fvs1w52r73knp5kb6r";
+  version = "0.20.1.4";
+  sha256 = "022q9ac12hviamgl959v68k5mmr1i0wfisxxqa435l2y3g3yszb1";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/fb/default.nix b/pkgs/development/libraries/haskell/fb/default.nix
index 37d24309732..b35f994caaa 100644
--- a/pkgs/development/libraries/haskell/fb/default.nix
+++ b/pkgs/development/libraries/haskell/fb/default.nix
@@ -10,8 +10,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fb";
-  version = "1.0.4";
-  sha256 = "1sp0x5p9l02i2ynvynazhgs5lqqwih997c2fyfp0xi24qsc7ilr2";
+  version = "1.0.5";
+  sha256 = "1y4i6w659v4zm6kxz8fnzrwm0gjv7siqlh1wdsm03rcadkicyxmr";
   buildDepends = [
     aeson attoparsec base16Bytestring base64Bytestring cereal conduit
     conduitExtra cryptoApi cryptohash cryptohashCryptoapi dataDefault
diff --git a/pkgs/development/libraries/haskell/file-location/default.nix b/pkgs/development/libraries/haskell/file-location/default.nix
index 6cff9640cdf..e027047a9ea 100644
--- a/pkgs/development/libraries/haskell/file-location/default.nix
+++ b/pkgs/development/libraries/haskell/file-location/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "file-location";
-  version = "0.4.5.2";
-  sha256 = "0dyzf2lhh0n4hwbh44qfh6bw9snl4hha9sv76c4ndi7v1rvnx197";
+  version = "0.4.5.3";
+  sha256 = "0d1iqhdac1gcag1d7ch9ia4fm97jpp31m46b794z90bmm6nr29h9";
   buildDepends = [ liftedBase transformers ];
   testDepends = [ liftedBase transformers ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/functor-infix/default.nix b/pkgs/development/libraries/haskell/functor-infix/default.nix
new file mode 100644
index 00000000000..d3e6322a7cb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/functor-infix/default.nix
@@ -0,0 +1,15 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "functor-infix";
+  version = "0.0.1";
+  sha256 = "1f8m4nxlr2il9j0ilgw91fhp6mmz5xqlhylavncqwvbcq82362dc";
+  meta = {
+    homepage = "https://github.com/fmap/functor-infix";
+    description = "Compositions of functors";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/generic-aeson/default.nix b/pkgs/development/libraries/haskell/generic-aeson/default.nix
index 9c18b511efc..4ad9ab11fad 100644
--- a/pkgs/development/libraries/haskell/generic-aeson/default.nix
+++ b/pkgs/development/libraries/haskell/generic-aeson/default.nix
@@ -1,15 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, aeson, attoparsec, genericDeriving, mtl, tagged, text
-, vector
+, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "generic-aeson";
-  version = "0.1.1.1";
-  sha256 = "14jpma2p4dxmzpwd557igbg7xhgdzp9w9fm6dxa06sgfqxvb7ln1";
+  version = "0.2.0.0";
+  sha256 = "0w7bwmbjsskynyfisnhp4piikdw2jkr4zg24c9ipsp28szy8qsb9";
   buildDepends = [
-    aeson attoparsec genericDeriving mtl tagged text vector
+    aeson attoparsec genericDeriving mtl tagged text
+    unorderedContainers vector
   ];
   meta = {
     description = "Derivation of Aeson instances using GHC generics";
diff --git a/pkgs/development/libraries/haskell/geniplate/default.nix b/pkgs/development/libraries/haskell/geniplate/default.nix
index 9ab6d2df709..87e1296330a 100644
--- a/pkgs/development/libraries/haskell/geniplate/default.nix
+++ b/pkgs/development/libraries/haskell/geniplate/default.nix
@@ -4,11 +4,11 @@
 
 cabal.mkDerivation (self: {
   pname = "geniplate";
-  version = "0.6.0.4";
-  sha256 = "1sw1bs3nzbdmvphy5g65pl40y8wdqkgvszx1i6viqjymjq96xv20";
+  version = "0.6.0.5";
+  sha256 = "01cwyf5kql4hf76p1ssqpmhaxyl7rmnmqwv644wgd0j8km8b6szc";
   buildDepends = [ mtl ];
   meta = {
-    description = "Use template Haskell to generate Uniplate-like functions";
+    description = "Use Template Haskell to generate Uniplate-like functions";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix b/pkgs/development/libraries/haskell/ghc-mod/5.0.1.2.nix
index 3eefe056218..1a4ada4d3dc 100644
--- a/pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix
+++ b/pkgs/development/libraries/haskell/ghc-mod/5.0.1.2.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-mod";
-  version = "5.0.1.1";
-  sha256 = "0qyl1653dj14ap3035kjj7xl8rsmgpwh32bj2lnwrmdm2223m8a3";
+  version = "5.0.1.2";
+  sha256 = "0hs2d6h3g077prm2mdr40k7m1cdc0h01agbcvs4h6y27nls3kyjx";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/ghc-server/default.nix b/pkgs/development/libraries/haskell/ghc-server/default.nix
new file mode 100644
index 00000000000..ac9cb852704
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ghc-server/default.nix
@@ -0,0 +1,22 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, async, attoLisp, attoparsec, conduit, conduitExtra
+, ghcPaths, mtl, network, syb, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "ghc-server";
+  version = "1.1";
+  sha256 = "1rgrgx9xakq6vy6nanvwzwfvzbfg287pmm8pdm9lbd7kf7ls5ml4";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    async attoLisp attoparsec conduit conduitExtra ghcPaths mtl network
+    syb text
+  ];
+  meta = {
+    description = "A server interface to GHC";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/github/default.nix b/pkgs/development/libraries/haskell/github/default.nix
index f20976b8dcf..d912f1c56bb 100644
--- a/pkgs/development/libraries/haskell/github/default.nix
+++ b/pkgs/development/libraries/haskell/github/default.nix
@@ -1,17 +1,17 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, attoparsec, caseInsensitive, conduit, dataDefault
-, failure, hashable, HTTP, httpConduit, httpTypes, network, text
-, time, unorderedContainers, vector
+{ cabal, aeson, attoparsec, caseInsensitive, conduit, cryptohash
+, dataDefault, failure, hashable, HTTP, httpConduit, httpTypes
+, network, text, time, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "github";
-  version = "0.11.0";
-  sha256 = "13p0iplxr85fvgx5lird76xchmhh7xpddq900qr02kbvn5mqv607";
+  version = "0.11.1";
+  sha256 = "0s94ivp3c40zhwwfxa6nzzgwh2frfih8as81i0kidx4ca35wf92k";
   buildDepends = [
-    aeson attoparsec caseInsensitive conduit dataDefault failure
-    hashable HTTP httpConduit httpTypes network text time
+    aeson attoparsec caseInsensitive conduit cryptohash dataDefault
+    failure hashable HTTP httpConduit httpTypes network text time
     unorderedContainers vector
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/gloss/default.nix b/pkgs/development/libraries/haskell/gloss/default.nix
index ce6357baaeb..079914a84fc 100644
--- a/pkgs/development/libraries/haskell/gloss/default.nix
+++ b/pkgs/development/libraries/haskell/gloss/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "gloss";
-  version = "1.8.2.1";
-  sha256 = "0wnrss7j7zf4lbmr5rryx7m5qb4pqh7vvz11ksbsfn3d3hf285y2";
+  version = "1.8.2.2";
+  sha256 = "1v3rvx3jidbh98znmnl122rqgg5r9zcl22h5ibzag9h5d31c5vzr";
   buildDepends = [ bmp GLUT OpenGL ];
   meta = {
     homepage = "http://gloss.ouroborus.net";
diff --git a/pkgs/development/libraries/haskell/haddock-api/default.nix b/pkgs/development/libraries/haskell/haddock-api/default.nix
new file mode 100644
index 00000000000..2f3afa32196
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haddock-api/default.nix
@@ -0,0 +1,19 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, Cabal, deepseq, filepath, ghcPaths, haddockLibrary, xhtml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "haddock-api";
+  version = "2.15.0";
+  sha256 = "17h5h40ddn0kiqnz6rmz9p0jqvng11lq3xm6lnizwix9kcwl843b";
+  buildDepends = [
+    Cabal deepseq filepath ghcPaths haddockLibrary xhtml
+  ];
+  meta = {
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haddock-library/default.nix b/pkgs/development/libraries/haskell/haddock-library/default.nix
index aece9e35873..a7041b3ba28 100644
--- a/pkgs/development/libraries/haskell/haddock-library/default.nix
+++ b/pkgs/development/libraries/haskell/haddock-library/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "haddock-library";
-  version = "1.1.0";
-  sha256 = "0apqm9nxgxbpvcphaim93q4z67c1cd0vdjz0i1cbr67ymffl69nd";
+  version = "1.1.1";
+  sha256 = "0sjnmbmq1pss9ikcqnhvpf57rv78lzi1r99ywpmmvj1gyva2s31m";
   buildDepends = [ deepseq ];
   testDepends = [ baseCompat deepseq hspec QuickCheck ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 7ebc0de734a..d8ac50c85a0 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -2,39 +2,38 @@
 
 { cabal, binary, blazeHtml, blazeMarkup, cmdargs, cryptohash
 , dataDefault, deepseq, filepath, fsnotify, httpConduit, httpTypes
-, HUnit, lrucache, mtl, network, pandoc, pandocCiteproc, parsec
-, QuickCheck, random, regexBase, regexTdfa, snapCore, snapServer
-, systemFilepath, tagsoup, testFramework, testFrameworkHunit
-, testFrameworkQuickcheck2, text, time, utillinux
+, HUnit, lrucache, mtl, network, networkUri, pandoc, pandocCiteproc
+, parsec, QuickCheck, random, regexBase, regexTdfa, snapCore
+, snapServer, systemFilepath, tagsoup, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, text, time
+, utillinux
 }:
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "4.5.4.0";
-  sha256 = "16srkm2fxjw1xg7zaikn49zz4xsz9awddnjm6ibv522k3xf3l24c";
+  version = "4.5.5.0";
+  sha256 = "1igna446dsidlq3f9myclgcdawgvyyjxjk3r3icjra6zgdqd6j4l";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     binary blazeHtml blazeMarkup cmdargs cryptohash dataDefault deepseq
-    filepath fsnotify httpConduit httpTypes lrucache mtl network pandoc
-    pandocCiteproc parsec random regexBase regexTdfa snapCore
-    snapServer systemFilepath tagsoup text time
+    filepath fsnotify httpConduit httpTypes lrucache mtl network
+    networkUri pandoc pandocCiteproc parsec random regexBase regexTdfa
+    snapCore snapServer systemFilepath tagsoup text time
   ];
   testDepends = [
     binary blazeHtml blazeMarkup cmdargs cryptohash dataDefault deepseq
     filepath fsnotify httpConduit httpTypes HUnit lrucache mtl network
-    pandoc pandocCiteproc parsec QuickCheck random regexBase regexTdfa
-    snapCore snapServer systemFilepath tagsoup testFramework
+    networkUri pandoc pandocCiteproc parsec QuickCheck random regexBase
+    regexTdfa snapCore snapServer systemFilepath tagsoup testFramework
     testFrameworkHunit testFrameworkQuickcheck2 text time utillinux
   ];
-  patchPhase = ''
-    sed -i -e 's|pandoc-citeproc .*,|pandoc-citeproc,|' hakyll.cabal
-  '';
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
     description = "A static website compiler library";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
+    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/haskell-packages/default.nix b/pkgs/development/libraries/haskell/haskell-packages/default.nix
index 9c6997a9db9..0044d6aa052 100644
--- a/pkgs/development/libraries/haskell/haskell-packages/default.nix
+++ b/pkgs/development/libraries/haskell/haskell-packages/default.nix
@@ -1,16 +1,17 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, Cabal, deepseq, either, filepath, haskellSrcExts
-, hseCpp, mtl, optparseApplicative, tagged
+{ cabal, aeson, Cabal, deepseq, filepath, haskellSrcExts, hseCpp
+, mtl, optparseApplicative, tagged, transformers
+, transformersCompat
 }:
 
 cabal.mkDerivation (self: {
   pname = "haskell-packages";
-  version = "0.2.4.1";
-  sha256 = "014zcq27rwsgj3n4kdgswbppr5yzf3lnj5gnv45r3i5c3rd1mz6k";
+  version = "0.2.4.2";
+  sha256 = "03qg6b6vy9c8j9k91jajkjhswcks64vcdd28606aac0bw68lkjkg";
   buildDepends = [
-    aeson Cabal deepseq either filepath haskellSrcExts hseCpp mtl
-    optparseApplicative tagged
+    aeson Cabal deepseq filepath haskellSrcExts hseCpp mtl
+    optparseApplicative tagged transformers transformersCompat
   ];
   meta = {
     homepage = "http://documentup.com/haskell-suite/haskell-packages";
diff --git a/pkgs/development/libraries/haskell/haste-compiler/default.nix b/pkgs/development/libraries/haskell/haste-compiler/default.nix
index 962bf758a1e..dfedd812a20 100644
--- a/pkgs/development/libraries/haskell/haste-compiler/default.nix
+++ b/pkgs/development/libraries/haskell/haste-compiler/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "haste-compiler";
-  version = "0.4.1";
-  sha256 = "15v4c6rxz4n0wmiys6mam8xprcdq8kxnhpwcqnljshr8wlyihn8b";
+  version = "0.4.2";
+  sha256 = "0agbd21c7mgzxyg6lwjl3n8w2r7xcrv3811y0x86rg7q1m7z730m";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/haxr/default.nix b/pkgs/development/libraries/haskell/haxr/default.nix
index 1aba1975a78..4b9fc06cc86 100644
--- a/pkgs/development/libraries/haskell/haxr/default.nix
+++ b/pkgs/development/libraries/haskell/haxr/default.nix
@@ -1,16 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, base64Bytestring, blazeBuilder, HaXml, HTTP, mtl, network
-, time, utf8String
+, networkUri, time, utf8String
 }:
 
 cabal.mkDerivation (self: {
   pname = "haxr";
-  version = "3000.10.3";
-  sha256 = "082w86vawjiqz589s3gmawssd0b43b1vcw0h6cndadwww8yc35bg";
+  version = "3000.10.3.1";
+  sha256 = "0alvrsk85f1l79hfa9shagjckp4sx835l9734ab2izfv50mxx7gm";
   buildDepends = [
-    base64Bytestring blazeBuilder HaXml HTTP mtl network time
-    utf8String
+    base64Bytestring blazeBuilder HaXml HTTP mtl network networkUri
+    time utf8String
   ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/HaXR";
diff --git a/pkgs/development/libraries/haskell/hindent/default.nix b/pkgs/development/libraries/haskell/hindent/default.nix
new file mode 100644
index 00000000000..5e8f55b373f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hindent/default.nix
@@ -0,0 +1,17 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, dataDefault, haskellSrcExts, mtl, text }:
+
+cabal.mkDerivation (self: {
+  pname = "hindent";
+  version = "3.0";
+  sha256 = "1fvpyg8pb4g023v25lhizcsfd15zw5q4f23qq0ci9h7mg3axlsdx";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ dataDefault haskellSrcExts mtl text ];
+  meta = {
+    description = "Extensible Haskell pretty printer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger-lib/default.nix b/pkgs/development/libraries/haskell/hledger-lib/default.nix
index 541b3ceb0dc..fafa47c28a0 100644
--- a/pkgs/development/libraries/haskell/hledger-lib/default.nix
+++ b/pkgs/development/libraries/haskell/hledger-lib/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hledger-lib";
-  version = "0.23.2";
-  sha256 = "1z9gxbah649r9vzq012mqnk07rfnd6c4ik82klksk0zzd4yxf07d";
+  version = "0.23.3";
+  sha256 = "0in61wrkbdllghdkxmwwn2b2k2g9w7kqijwl58szfx9h7w8g3dbi";
   buildDepends = [
     cmdargs csv filepath HUnit mtl parsec prettyShow regexpr regexTdfa
     safe split time transformers utf8String
diff --git a/pkgs/development/libraries/haskell/hledger-web/default.nix b/pkgs/development/libraries/haskell/hledger-web/default.nix
index 70ba12e2398..654a4c7a13a 100644
--- a/pkgs/development/libraries/haskell/hledger-web/default.nix
+++ b/pkgs/development/libraries/haskell/hledger-web/default.nix
@@ -11,8 +11,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hledger-web";
-  version = "0.23.2";
-  sha256 = "1n4n2zj6nqwvwmb6cxr16x2fnmzs7v21snjhq2nnvlik613rnnq7";
+  version = "0.23.3";
+  sha256 = "1d51gcyj5k4djllf0f2mny9l5i6gfh8cc3pgvjl8mxqi6ky6xarq";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hledger/default.nix b/pkgs/development/libraries/haskell/hledger/default.nix
index 8ac4d6d2e6b..45a7d6243b3 100644
--- a/pkgs/development/libraries/haskell/hledger/default.nix
+++ b/pkgs/development/libraries/haskell/hledger/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hledger";
-  version = "0.23.2";
-  sha256 = "1q57mb37qkngdvivaj4dykrkg4sb2pchg2ssdxx8ss4zhbsrk713";
+  version = "0.23.3";
+  sha256 = "10qrjwfmpddba6m3n5f527l77g3xf9d8fyxyhrl5593g6bgq9v7m";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hmatrix/default.nix b/pkgs/development/libraries/haskell/hmatrix/default.nix
index 806405208c5..7a335fefb34 100644
--- a/pkgs/development/libraries/haskell/hmatrix/default.nix
+++ b/pkgs/development/libraries/haskell/hmatrix/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hmatrix";
-  version = "0.16.0.4";
-  sha256 = "0n2h7vp8cyr4lm6yv6msvqr87d0dn7fm61p58wy7f230v692j1p4";
+  version = "0.16.0.5";
+  sha256 = "12019yd4hxqryxsrppijff6w0wmqj2l5cssldh1lyv4dbjaaxb5y";
   buildDepends = [
     binary deepseq random split storableComplex vector
   ];
diff --git a/pkgs/development/libraries/haskell/holy-project/default.nix b/pkgs/development/libraries/haskell/holy-project/default.nix
index 088bbe4d4ea..1fa7c558731 100644
--- a/pkgs/development/libraries/haskell/holy-project/default.nix
+++ b/pkgs/development/libraries/haskell/holy-project/default.nix
@@ -1,34 +1,32 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, aeson, ansiTerminal, Cabal, filepath, hastache
-, httpConduit, HUnit, lens, QuickCheck, random, smallcheck, split
-, syb, tasty, tastyHunit, tastyQuickcheck, tastySmallcheck, text
-, time
-, fetchpatch}:
+, httpConduit, HUnit, lens, lensAeson, QuickCheck, random
+, smallcheck, split, syb, tasty, tastyHunit, tastyQuickcheck
+, tastySmallcheck, text, time
+}:
 
 cabal.mkDerivation (self: {
   pname = "holy-project";
-  version = "0.1.1.0";
-  sha256 = "1dsyhgjcp54199zfazzzwsggxpj2dsbzfb64v6l3jz7qaapxnj9i";
+  version = "0.1.1.1";
+  sha256 = "0vb4mlz6gb01aadm2b8kgvgnrwwvl6q4ndx6xldi0xi3rm22xkwj";
   isLibrary = true;
   isExecutable = true;
-  patches = [ (fetchpatch { url = "https://github.com/yogsototh/holy-project/pull/3.patch"; sha256 = "1ndyhfrsvn94zxzyq1w4504gz91yfv33375933qmz3wdfkc3rqf0"; }) ];
   buildDepends = [
     aeson ansiTerminal Cabal filepath hastache httpConduit HUnit lens
-    QuickCheck random smallcheck split syb tasty tastyHunit
+    lensAeson QuickCheck random smallcheck split syb tasty tastyHunit
     tastyQuickcheck tastySmallcheck text time
   ];
   testDepends = [
     Cabal HUnit QuickCheck smallcheck tasty tastyHunit tastyQuickcheck
     tastySmallcheck
   ];
+  doCheck = false;
   meta = {
     homepage = "http://github.com/yogsototh/holy-project";
     description = "Start your Haskell project with cabal, git and tests";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.tomberek ];
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
+    maintainers = with self.stdenv.lib.maintainers; [ tomberek ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hoogle/hoogle-local-wrapper.sh b/pkgs/development/libraries/haskell/hoogle/hoogle-local-wrapper.sh
new file mode 100644
index 00000000000..c7b15b8f99d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hoogle/hoogle-local-wrapper.sh
@@ -0,0 +1,6 @@
+#! @shell@
+
+COMMAND=$1
+shift
+HOOGLE_DOC_PATH=@out@/share/hoogle/doc exec @hoogle@/bin/hoogle \
+    $COMMAND -d @out@/share/hoogle $@
diff --git a/pkgs/development/libraries/haskell/hoogle/hoogle-local.diff b/pkgs/development/libraries/haskell/hoogle/hoogle-local.diff
deleted file mode 100644
index df507c5a470..00000000000
--- a/pkgs/development/libraries/haskell/hoogle/hoogle-local.diff
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/src/CmdLine/All.hs b/src/CmdLine/All.hs
-index 94b1d48..f41f270 100644
---- a/src/CmdLine/All.hs
-+++ b/src/CmdLine/All.hs
-@@ -86,8 +86,10 @@ guessLocal = do
-     ghc <- findExecutable "ghc"
-     home <- getHomeDirectory
-     lib <- getLibDir
-+    path <- lookup "HOOGLE_DOC_PATH" <$> getEnvironment
-     let xs = [takeDirectory (takeDirectory lib) </> "doc" {- Windows, installed with Cabal -}  ] ++
-              [takeDirectory (takeDirectory ghc) </> "doc/html/libraries" | Just ghc <- [ghc] {- Windows, installed by GHC -} ] ++
-+             maybeToList path ++
-              [home </> ".cabal/share/doc" {- Linux -} ]
-     filterM doesDirectoryExist xs
- 
-diff --git a/src/Hoogle/Language/Haskell.hs b/src/Hoogle/Language/Haskell.hs
-index b037f11..f2ac047 100644
---- a/src/Hoogle/Language/Haskell.hs
-+++ b/src/Hoogle/Language/Haskell.hs
-@@ -112,7 +112,7 @@ setPriority pkg mod x = x{itemPriority = pri}
- 
- setModuleURL (Just pkg) _ x | itemLevel x == 1 = x{itemURL=if null $ itemURL x then f $ itemName x else itemURL x}
-     where f xs = if "http://hackage.haskell.org/package/" `isPrefixOf` itemURL pkg
--                 then "http://hackage.haskell.org/packages/archive/" ++ itemName pkg ++ "/latest/doc/html/" ++ file
-+                 then "http://hackage.haskell.org/package/" ++ itemName pkg ++ "/docs/" ++ file
-                  else takeDirectory (itemURL pkg) ++ "/" ++ file
-               where file = reps '.' '-' xs ++ ".html"
- setModuleURL _ _ x = x
diff --git a/pkgs/development/libraries/haskell/hoogle/local.nix b/pkgs/development/libraries/haskell/hoogle/local.nix
index 490898a75b2..ba907948b14 100644
--- a/pkgs/development/libraries/haskell/hoogle/local.nix
+++ b/pkgs/development/libraries/haskell/hoogle/local.nix
@@ -9,12 +9,12 @@
 #   haskellPackages =
 #     let callPackage = pkgs.lib.callPackageWith haskellPackages;
 #     in pkgs.recurseIntoAttrs (pkgs.haskellPackages.override {
-#         extraPrefs = self: {
+#         extension = self: super: {
 #           hoogleLocal = pkgs.haskellPackages.hoogleLocal.override {
 #             packages = with pkgs.haskellPackages; [
 #               mmorph
 #               monadControl
-#             ]
+#             ];
 #           };
 #         };
 #       });
@@ -23,43 +23,22 @@
 # This will build mmorph and monadControl, and have the hoogle installation
 # refer to their documentation via symlink so they are not garbage collected.
 
-{ cabal, aeson, binary, blazeBuilder, Cabal, caseInsensitive
-, cmdargs, conduit, deepseq, filepath, haskellSrcExts, httpTypes
-, parsec, QuickCheck, random, resourcet, safe, shake, tagsoup, text
-, time, transformers, uniplate, vector, vectorAlgorithms, wai, warp
-, fetchurl
-
-, parallel, perl, wget, rehoo, haskellPlatform
-, packages ? haskellPlatform.propagatedUserEnvPkgs
+{ stdenv, hoogle, rehoo
+, haskellPlatform, ghc, packages ? [ haskellPlatform ghc.ghc ]
 }:
 
-cabal.mkDerivation (self: rec {
-  pname = "hoogle";
-  version = "4.2.32";
-  sha256 = "1rhr7xh4x9fgflcszbsl176r8jq6rm81bwzmbz73f3pa1zf1v0zc";
-  isLibrary = true;
-  isExecutable = true;
-  buildInputs = [self.ghc Cabal] ++ self.extraBuildInputs
-    ++ [ parallel perl wget rehoo ] ++ packages;
-  buildDepends = [
-      aeson binary blazeBuilder Cabal caseInsensitive cmdargs conduit
-      deepseq filepath haskellSrcExts httpTypes parsec QuickCheck random
-      resourcet safe shake tagsoup text time transformers uniplate vector
-      vectorAlgorithms wai warp
-    ];
-  testDepends = [ filepath ];
-  testTarget = "--test-option=--no-net";
+let
+  inherit (stdenv.lib) optional;
+  wrapper = ./hoogle-local-wrapper.sh;
+in
+stdenv.mkDerivation {
+  name = "hoogle-local-0.1";
+  buildInputs = [hoogle rehoo];
 
-  # The tests will fail because of the added documentation.
-  doCheck = false;
-  patches = [ ./hoogle-local.diff
-              (fetchurl { url = "https://github.com/ndmitchell/hoogle/commit/5fc294f2b5412fda107c7700f4d833b52f26184c.diff";
-                          sha256 = "1fn52g90p2jsy87gf5rqrcg49s8hfwway5hi4v9i2rpg5mzxaq3i"; })
-            ];
+  phases = [ "installPhase" ];
 
   docPackages = packages;
-
-  postInstall = ''
+  installPhase = ''
     if [ -z "$docPackages" ]; then
         echo "ERROR: The packages attribute has not been set"
         exit 1
@@ -71,27 +50,38 @@ cabal.mkDerivation (self: rec {
     cd $out/share/hoogle
 
     function import_dbs() {
-        find $1 -name '*.txt' \
-            | parallel -j$NIX_BUILD_CORES 'cp -p {} .; perl -i -pe "print \"\@url file://{//}/index.html\n\" if /^\@version/;" {/}; $out/bin/hoogle convert {/}'
+        find $1 -name '*.txt' | while read f; do
+          newname=$(basename "$f" | tr '[:upper:]' '[:lower:]')
+          if [[ -f $f && ! -f ./$newname ]]; then
+            cp -p $f ./$newname
+            hoogle convert -d "$(dirname $f)" "./$newname"
+          fi
+        done
     }
 
     for i in $docPackages; do
-        import_dbs $i/share/doc
-        ln -sf $i/share/doc/*-ghc-*/* $out/share/hoogle/doc 2> /dev/null \
-            || ln -sf $i/share/doc/* $out/share/hoogle/doc
+        findInputs $i docPackages propagated-native-build-inputs
+        findInputs $i docPackages propagated-build-inputs
     done
 
-    import_dbs ${self.ghc}/share/doc/ghc*/html/libraries
-    ln -sf ${self.ghc}/share/doc/ghc*/html/libraries/* $out/share/hoogle/doc
+    for i in $docPackages; do
+      if [[ ! $i == $out ]]; then
+        for docdir in $i/share/doc/*-ghc-*/* $i/share/doc/*; do
+          if [[ -d $docdir ]]; then
+            import_dbs $docdir
+            ln -sf $docdir $out/share/hoogle/doc
+          fi
+        done
+      fi
+    done
 
-    unset http_proxy
-    unset ftp_proxy
+    import_dbs ${ghc}/share/doc/ghc*/html/libraries
+    ln -sf ${ghc}/share/doc/ghc*/html/libraries/* $out/share/hoogle/doc
 
     chmod 644 *.hoo *.txt
-    $out/bin/hoogle data -d $PWD --redownload -l $(echo *.txt | sed 's/\.txt//g')
-    PATH=$out/bin:$PATH ${rehoo}/bin/rehoo -j4 -c64 .
+    rehoo -j4 -c64 .
 
-    rm -fr downloads *.txt *.dep
+    rm -fr downloads *.dep *.txt
     mv default.hoo x || exit 0
     rm -f *.hoo
     mv x default.hoo || exit 1
@@ -101,23 +91,17 @@ cabal.mkDerivation (self: rec {
         exit 1
     fi
 
-    mv $out/bin/hoogle $out/bin/.hoogle-wrapped
-    cat - > $out/bin/hoogle <<EOF
-    #! ${self.stdenv.shell}
-    COMMAND=\$1
-    shift
-    HOOGLE_DOC_PATH=$out/share/hoogle/doc exec $out/bin/.hoogle-wrapped \$COMMAND -d $out/share/hoogle "\$@"
-    EOF
+    mkdir -p $out/bin
+    substitute ${wrapper} $out/bin/hoogle \
+        --subst-var out --subst-var-by shell ${stdenv.shell} \
+        --subst-var-by hoogle ${hoogle}
     chmod +x $out/bin/hoogle
   '';
 
   meta = {
-    homepage = "http://www.haskell.org/hoogle/";
-    description = "Haskell API Search";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.jwiegley ];
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
+    description = "A local Hoogle database";
+    platforms = ghc.meta.platforms;
+    hydraPlatforms = with stdenv.lib.platforms; none;
+    maintainers = with stdenv.lib.maintainers; [ ttuegel ];
   };
-})
+}
diff --git a/pkgs/development/libraries/haskell/hplayground/default.nix b/pkgs/development/libraries/haskell/hplayground/default.nix
index db38dbc2399..ed116058e92 100644
--- a/pkgs/development/libraries/haskell/hplayground/default.nix
+++ b/pkgs/development/libraries/haskell/hplayground/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hplayground";
-  version = "0.1.0.3";
-  sha256 = "1k46b94n9wkbh7374mjyg5jnwxxrhj8ai53q3r4lysx1rzgw7ak6";
+  version = "0.1.0.5";
+  sha256 = "0hd4xmw4lfaaar7yxwhq4msg2qbn42q57rvaphl95pbr4x5a0h70";
   buildDepends = [
     dataDefault hasteCompiler hastePerch monadsTf transformers
   ];
diff --git a/pkgs/development/libraries/haskell/hsimport/default.nix b/pkgs/development/libraries/haskell/hsimport/default.nix
index 3093cbb2038..c9809d3eff0 100644
--- a/pkgs/development/libraries/haskell/hsimport/default.nix
+++ b/pkgs/development/libraries/haskell/hsimport/default.nix
@@ -6,14 +6,15 @@
 
 cabal.mkDerivation (self: {
   pname = "hsimport";
-  version = "0.5.2";
-  sha256 = "00kzc7hiwsidwvjnbvc01yh6c8n135ypwsiyvcnf2g179pwmnzkc";
+  version = "0.6";
+  sha256 = "07nhymn4kww1c5f9sjbmdg8ng08wbgmpvf5hws4qpwmfw1yfgdpn";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     attoparsec cmdargs dyre haskellSrcExts lens mtl split text
   ];
   testDepends = [ filepath haskellSrcExts tasty tastyGolden ];
+  jailbreak = true;
   meta = {
     description = "A command line program for extending the import list of a Haskell source file";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/hspec-wai/default.nix b/pkgs/development/libraries/haskell/hspec-wai/default.nix
index 5937b0a417c..9cf37d4622c 100644
--- a/pkgs/development/libraries/haskell/hspec-wai/default.nix
+++ b/pkgs/development/libraries/haskell/hspec-wai/default.nix
@@ -1,21 +1,20 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, aesonQq, caseInsensitive, hspec2, hspecMeta
-, httpTypes, markdownUnlit, scotty, text, transformers, wai
-, waiExtra
+{ cabal, aeson, aesonQq, caseInsensitive, hspec2, httpTypes
+, markdownUnlit, scotty, text, transformers, wai, waiExtra
 }:
 
 cabal.mkDerivation (self: {
   pname = "hspec-wai";
-  version = "0.3.0.2";
-  sha256 = "13jf8vw1mx5zg8diklbc4hbil9mkjdbg2azdsdfxp286wh718mna";
+  version = "0.4.1";
+  sha256 = "1005qhzi561zc5kbdc55d3wjngdcal47him19fn5gk4389jdbln7";
   buildDepends = [
     aeson aesonQq caseInsensitive hspec2 httpTypes text transformers
     wai waiExtra
   ];
   testDepends = [
-    aeson caseInsensitive hspec2 hspecMeta httpTypes markdownUnlit
-    scotty text transformers wai waiExtra
+    aeson caseInsensitive hspec2 httpTypes markdownUnlit scotty text
+    transformers wai waiExtra
   ];
   meta = {
     description = "Experimental Hspec support for testing WAI applications (depends on hspec2!)";
diff --git a/pkgs/development/libraries/haskell/html-conduit/default.nix b/pkgs/development/libraries/haskell/html-conduit/default.nix
index 4d13846175c..f45fa6bb534 100644
--- a/pkgs/development/libraries/haskell/html-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/html-conduit/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "html-conduit";
-  version = "1.1.0.5";
-  sha256 = "1yxvaiklg90fsiv2sfzrr3hp1wjs0fhcg709b24lqm81aryaq2sn";
+  version = "1.1.1.1";
+  sha256 = "1bsr0fsy7k606m477c4rxdh7j71nyrp86f1lg9wlwnbm31vrhw00";
   buildDepends = [
     conduit conduitExtra resourcet systemFilepath tagstreamConduit text
     transformers xmlConduit xmlTypes
diff --git a/pkgs/development/libraries/haskell/http-client/default.nix b/pkgs/development/libraries/haskell/http-client/default.nix
index 7015c9446e8..020fd4973c8 100644
--- a/pkgs/development/libraries/haskell/http-client/default.nix
+++ b/pkgs/development/libraries/haskell/http-client/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-client";
-  version = "0.3.8";
-  sha256 = "0v5j6fcigjpksj1m0n15g3j680k7qkms3cqd0b1w0ma7k63kcibc";
+  version = "0.3.8.2";
+  sha256 = "06c34h7wvn3mbr8lrkcmjygj22d94mr5rxzqwpjfdjgimd98hw3s";
   buildDepends = [
     base64Bytestring blazeBuilder caseInsensitive cookie
     dataDefaultClass deepseq exceptions filepath httpTypes mimeTypes
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index fd7eb7dd64a..11efa4968af 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-conduit";
-  version = "2.1.4.1";
-  sha256 = "1v65v2dky7vgyh5hfvih208zhbd2czxdrshw9zw0af1naq2m5hk2";
+  version = "2.1.4.3";
+  sha256 = "0318k4k4w1zpifalfa7vb33sd8ksa8jdyaxs4843idmwsz3ahwgq";
   buildDepends = [
     conduit httpClient httpClientTls httpTypes liftedBase monadControl
     mtl resourcet transformers
diff --git a/pkgs/development/libraries/haskell/hxt-charproperties/default.nix b/pkgs/development/libraries/haskell/hxt-charproperties/default.nix
index ffb298023b7..45885432767 100644
--- a/pkgs/development/libraries/haskell/hxt-charproperties/default.nix
+++ b/pkgs/development/libraries/haskell/hxt-charproperties/default.nix
@@ -4,10 +4,10 @@
 
 cabal.mkDerivation (self: {
   pname = "hxt-charproperties";
-  version = "9.1.1.1";
-  sha256 = "1a8cmswqysd0fpq6bpszav5cqpibnad49mbcswvrwipk28x3j078";
+  version = "9.2.0.0";
+  sha256 = "01v3j0cg9pkp18iy4s8s582qqq98r4l9jzr84x5sa2rva4cg0gpi";
   meta = {
-    homepage = "http://www.fh-wedel.de/~si/HXmlToolbox/index.html";
+    homepage = "https://github.com/UweSchmidt/hxt";
     description = "Character properties and classes for XML and Unicode";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/hxt/default.nix b/pkgs/development/libraries/haskell/hxt/default.nix
index 131a01ed432..1ca367a96c9 100644
--- a/pkgs/development/libraries/haskell/hxt/default.nix
+++ b/pkgs/development/libraries/haskell/hxt/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hxt";
-  version = "9.3.1.6";
-  sha256 = "0k2i72ricxwnadagjbzyhfd7nfivay9gbf5f81sagr6j3wgnhz8f";
+  version = "9.3.1.7";
+  sha256 = "1dgdq2l9k8v36iahmkxxjmmv955f9gv6lq09nsah9zcscsgm0v2i";
   buildDepends = [
     binary deepseq filepath HUnit hxtCharproperties hxtRegexXmlschema
     hxtUnicode mtl network parsec
diff --git a/pkgs/development/libraries/haskell/instant-generics/default.nix b/pkgs/development/libraries/haskell/instant-generics/default.nix
index d5c0137a2c6..ecb9321686c 100644
--- a/pkgs/development/libraries/haskell/instant-generics/default.nix
+++ b/pkgs/development/libraries/haskell/instant-generics/default.nix
@@ -4,15 +4,13 @@
 
 cabal.mkDerivation (self: {
   pname = "instant-generics";
-  version = "0.4";
-  sha256 = "14z6135jvmry9b52p21cqnwgp2w0g6frh1fm7z5byph06xls9r7l";
+  version = "0.4.1";
+  sha256 = "1jcs6spa3g8mazgpivn61gz4c740ks19rkz9sh24ns6n4q53zdvq";
   buildDepends = [ syb ];
   meta = {
     homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/InstantGenerics";
     description = "Generic programming library with a sum of products view";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/json-rpc/default.nix b/pkgs/development/libraries/haskell/json-rpc/default.nix
index 4bb33b628e3..bbf443f7145 100644
--- a/pkgs/development/libraries/haskell/json-rpc/default.nix
+++ b/pkgs/development/libraries/haskell/json-rpc/default.nix
@@ -18,6 +18,7 @@ cabal.mkDerivation (self: {
     stm stmConduit testFramework testFrameworkQuickcheck2 text
     unorderedContainers
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/xenog/json-rpc";
     description = "Fully-featured JSON-RPC 2.0 library";
diff --git a/pkgs/development/libraries/haskell/json-schema/default.nix b/pkgs/development/libraries/haskell/json-schema/default.nix
index 8ae6763d0a4..5dfe40089b7 100644
--- a/pkgs/development/libraries/haskell/json-schema/default.nix
+++ b/pkgs/development/libraries/haskell/json-schema/default.nix
@@ -1,21 +1,21 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, attoparsec, genericAeson, genericDeriving, HUnit
-, tagged, tasty, tastyHunit, tastyTh, text, time
-, unorderedContainers, vector
+{ cabal, aeson, aesonUtils, attoparsec, genericAeson
+, genericDeriving, mtl, scientific, tagged, tasty, tastyHunit
+, tastyTh, text, time, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "json-schema";
-  version = "0.6.1.1";
-  sha256 = "0hn1v2idra9sx1x5mr511h4qcvnhy7b80fgn58w9856w9cl7d34b";
+  version = "0.7.0.1";
+  sha256 = "1r8f0i3w2g5i5amqpvmi6ys3ax4rzpbvwnvwk9wy95bch3nlvsw0";
   buildDepends = [
-    aeson genericAeson genericDeriving tagged text time
+    aeson genericAeson genericDeriving mtl scientific tagged text time
     unorderedContainers vector
   ];
   testDepends = [
-    aeson attoparsec genericAeson HUnit tagged tasty tastyHunit tastyTh
-    text
+    aeson aesonUtils attoparsec genericAeson tagged tasty tastyHunit
+    tastyTh text vector
   ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/kan-extensions/default.nix b/pkgs/development/libraries/haskell/kan-extensions/default.nix
index c0ffaed799d..dce273d60a6 100644
--- a/pkgs/development/libraries/haskell/kan-extensions/default.nix
+++ b/pkgs/development/libraries/haskell/kan-extensions/default.nix
@@ -1,16 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, adjunctions, comonad, contravariant, distributive, free
-, mtl, pointed, semigroupoids, transformers
+, mtl, pointed, semigroupoids, tagged, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "kan-extensions";
-  version = "4.1";
-  sha256 = "1dg9q6rahgvsnsnd76r6a3harrllq3pzz9250cakgqip4n02dji1";
+  version = "4.1.0.1";
+  sha256 = "1jrs5cp5bhv3sjfi3d2zl16x40fr086zadp69r8yigj43bgkwkkd";
   buildDepends = [
     adjunctions comonad contravariant distributive free mtl pointed
-    semigroupoids transformers
+    semigroupoids tagged transformers
   ];
   meta = {
     homepage = "http://github.com/ekmett/kan-extensions/";
diff --git a/pkgs/development/libraries/haskell/language-c-inline/default.nix b/pkgs/development/libraries/haskell/language-c-inline/default.nix
index 435ffef45c3..fa1c8af9680 100644
--- a/pkgs/development/libraries/haskell/language-c-inline/default.nix
+++ b/pkgs/development/libraries/haskell/language-c-inline/default.nix
@@ -4,17 +4,16 @@
 
 cabal.mkDerivation (self: {
   pname = "language-c-inline";
-  version = "0.6.0.0";
-  sha256 = "08a22sr01kch365p5536fv32rxsfmdd6hkhcq1j7vhchjrsy3f6w";
+  version = "0.7.6.0";
+  sha256 = "01imdfjqkx49pcwplvmd5lqbal5hq1cx11zcig3na1x46ggiavah";
   buildDepends = [ filepath languageCQuote mainlandPretty ];
   testDepends = [ languageCQuote ];
+  noHaddock = true;
   doCheck = false;
   meta = {
     homepage = "https://github.com/mchakravarty/language-c-inline/";
     description = "Inline C & Objective-C code in Haskell for language interoperability";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/language-java/default.nix b/pkgs/development/libraries/haskell/language-java/default.nix
index 6811b0db547..dc35a8867ba 100644
--- a/pkgs/development/libraries/haskell/language-java/default.nix
+++ b/pkgs/development/libraries/haskell/language-java/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "language-java";
-  version = "0.2.6";
-  sha256 = "1rwkc71c77v1lm5vnfkf7wr4lzvkpdylwz8wia40xwyxidq9qv27";
+  version = "0.2.7";
+  sha256 = "1519grsjw0f4skldxs563qz07mmj1cg72ma0plmvzpas7inkikyf";
   buildDepends = [ cpphs parsec syb ];
   testDepends = [
     filepath HUnit mtl QuickCheck testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/lens/default.nix b/pkgs/development/libraries/haskell/lens/default.nix
index 190dd3fd14e..b6c68f3ce00 100644
--- a/pkgs/development/libraries/haskell/lens/default.nix
+++ b/pkgs/development/libraries/haskell/lens/default.nix
@@ -11,8 +11,8 @@
 
 cabal.mkDerivation (self: {
   pname = "lens";
-  version = "4.4.0.1";
-  sha256 = "0d1z6jix58g7x9r1jvm335hg2psflqc7w6sq54q486wil55c5vrw";
+  version = "4.4.0.2";
+  sha256 = "03h1r6np1aas5nnw3nsqcvl9an9yriikcgapnfck82pmmdvg5l47";
   buildDepends = [
     bifunctors comonad contravariant distributive exceptions filepath
     free hashable mtl parallel primitive profunctors reflection
diff --git a/pkgs/development/libraries/haskell/leveldb-haskell/default.nix b/pkgs/development/libraries/haskell/leveldb-haskell/default.nix
index 8d4f854a993..0b721be2151 100644
--- a/pkgs/development/libraries/haskell/leveldb-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/leveldb-haskell/default.nix
@@ -1,19 +1,19 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, async, dataDefault, filepath, leveldb, resourcet
+{ cabal, async, dataDefault, filepath, leveldb, resourcet, snappy
 , transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "leveldb-haskell";
-  version = "0.3.0";
-  sha256 = "0hdxn6v7fzc0wlpkymlci60m2584h6fn78bxdnv2q18ra03r3ygs";
+  version = "0.3.1";
+  sha256 = "09pyji49sdl60xicd32ra7v72qf0jkjhnvpsfr9k698is7lcq06d";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     async dataDefault filepath resourcet transformers
   ];
-  extraLibraries = [ leveldb ];
+  extraLibraries = [ leveldb snappy ];
   meta = {
     homepage = "http://github.com/kim/leveldb-haskell";
     description = "Haskell bindings to LevelDB";
diff --git a/pkgs/development/libraries/haskell/managed/default.nix b/pkgs/development/libraries/haskell/managed/default.nix
new file mode 100644
index 00000000000..febb1f8c574
--- /dev/null
+++ b/pkgs/development/libraries/haskell/managed/default.nix
@@ -0,0 +1,15 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "managed";
+  version = "1.0.0";
+  sha256 = "06nb71pd68m5l6a48sz5kkrdif74phbg3y6bn9ydd00y515b9gn5";
+  buildDepends = [ transformers ];
+  meta = {
+    description = "A monad for managed values";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/markdown/default.nix b/pkgs/development/libraries/haskell/markdown/default.nix
index 746bd1c7484..a19ecf0408c 100644
--- a/pkgs/development/libraries/haskell/markdown/default.nix
+++ b/pkgs/development/libraries/haskell/markdown/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "markdown";
-  version = "0.1.9";
-  sha256 = "1bl86alrbl9i690sbqqlxb4hkdd0lv3x5aqc8zi55q9h0rfsi06l";
+  version = "0.1.10";
+  sha256 = "1n453xsarrrshn4pidlhknazjpsjh1nnygfir54z17rxcrvgprr1";
   buildDepends = [
     attoparsec blazeHtml conduit conduitExtra dataDefault text
     transformers xssSanitize
diff --git a/pkgs/development/libraries/haskell/minioperational/default.nix b/pkgs/development/libraries/haskell/minioperational/default.nix
index a426927e318..d037645682f 100644
--- a/pkgs/development/libraries/haskell/minioperational/default.nix
+++ b/pkgs/development/libraries/haskell/minioperational/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "minioperational";
-  version = "0.4.3";
-  sha256 = "09z8536q0cc09iack6s8fghgrc5f3syq3sxf2cnai3rcfaqix86p";
+  version = "0.4.6";
+  sha256 = "0ir15l9ks4wik5wmhc9v23d2wlh4v499a52pzzsl8w40406lm5ln";
   buildDepends = [ transformers ];
   meta = {
     homepage = "https://github.com/fumieval/minioperational";
diff --git a/pkgs/development/libraries/haskell/monad-journal/default.nix b/pkgs/development/libraries/haskell/monad-journal/default.nix
index 5cbfed976d1..f7c48f691ed 100644
--- a/pkgs/development/libraries/haskell/monad-journal/default.nix
+++ b/pkgs/development/libraries/haskell/monad-journal/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "monad-journal";
-  version = "0.2.3.1";
-  sha256 = "11p7qdga26wz82x6a1fl57iij4swsr1d1aly76sjrlvl8maqlf7d";
+  version = "0.2.3.2";
+  sha256 = "02356yapx5g6lam72kdyhndq5lcyhd2zsjvvcndiyhqik6csi457";
   buildDepends = [
     either monadControl mtl transformers transformersBase
   ];
diff --git a/pkgs/development/libraries/haskell/mono-traversable/default.nix b/pkgs/development/libraries/haskell/mono-traversable/default.nix
index dfc34cc2a6a..5a5249657eb 100644
--- a/pkgs/development/libraries/haskell/mono-traversable/default.nix
+++ b/pkgs/development/libraries/haskell/mono-traversable/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mono-traversable";
-  version = "0.6.1";
-  sha256 = "066yfffjkd0r6hg3y3zrs13jmyfgpl8ba9yvsbyawimvff7mfk5f";
+  version = "0.6.2";
+  sha256 = "17ipqxzpz1vnv2qlj7rl8iz3awk593z39c716bikx03z67h85qzr";
   buildDepends = [
     comonad dlist dlistInstances hashable semigroupoids semigroups text
     transformers unorderedContainers vector vectorAlgorithms
diff --git a/pkgs/development/libraries/haskell/multipart/default.nix b/pkgs/development/libraries/haskell/multipart/default.nix
index 242005392c2..def73364e31 100644
--- a/pkgs/development/libraries/haskell/multipart/default.nix
+++ b/pkgs/development/libraries/haskell/multipart/default.nix
@@ -4,12 +4,12 @@
 
 cabal.mkDerivation (self: {
   pname = "multipart";
-  version = "0.1.1";
-  sha256 = "12sxi21baq1wsa3z6qrczyk47finw85yiql26l90wxk99smm90pj";
+  version = "0.1.2";
+  sha256 = "0g04jhyw1ib1s7c9bcldyyn4n90qd9x7dmvic4vgq57bgcqgnhz5";
   buildDepends = [ parsec ];
   meta = {
     homepage = "http://www.github.com/silkapp/multipart";
-    description = "A partial fork of the cgi package exposing the multipart module";
+    description = "HTTP multipart split out of the cgi package";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/ncurses/default.nix b/pkgs/development/libraries/haskell/ncurses/default.nix
index 7e9ac0ddd95..f964af3c8b7 100644
--- a/pkgs/development/libraries/haskell/ncurses/default.nix
+++ b/pkgs/development/libraries/haskell/ncurses/default.nix
@@ -15,5 +15,7 @@ cabal.mkDerivation (self: {
     description = "Modernised bindings to GNU ncurses";
     license = self.stdenv.lib.licenses.gpl3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
+    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/network-uri/default.nix b/pkgs/development/libraries/haskell/network-uri/default.nix
index e6259b09c24..6cfd4dca161 100644
--- a/pkgs/development/libraries/haskell/network-uri/default.nix
+++ b/pkgs/development/libraries/haskell/network-uri/default.nix
@@ -6,13 +6,14 @@
 
 cabal.mkDerivation (self: {
   pname = "network-uri";
-  version = "2.6.0.0";
-  sha256 = "0dnprscb5nxidg56i7j6q783nwsrn3dabfsij3vjlvjn4f0sg11l";
+  version = "2.6.0.1";
+  sha256 = "09ymamb128jgqghpda4nixncr73all8qc6q53976aricm6a27p37";
   buildDepends = [ parsec ];
   testDepends = [
     HUnit network testFramework testFrameworkHunit
     testFrameworkQuickcheck2
   ];
+  doCheck = false;
   meta = {
     homepage = "https://github.com/haskell/network-uri";
     description = "URI manipulation";
diff --git a/pkgs/development/libraries/haskell/network/2.6.0.1.nix b/pkgs/development/libraries/haskell/network/2.6.0.2.nix
index d5d302fbd8e..37540ad323e 100644
--- a/pkgs/development/libraries/haskell/network/2.6.0.1.nix
+++ b/pkgs/development/libraries/haskell/network/2.6.0.2.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.6.0.1";
-  sha256 = "0qfffsdbvrf9gs8wr9ps7iv5h6drz4vb2ja9rprmc7ypswsacxsq";
+  version = "2.6.0.2";
+  sha256 = "12b7saam5ga6l4cplgkad49xa4vkynz2ri9jxidx1cxiqjcl0vc4";
   testDepends = [ HUnit testFramework testFrameworkHunit ];
   meta = {
     homepage = "https://github.com/haskell/network";
diff --git a/pkgs/development/libraries/haskell/optparse-applicative/0.10.0.nix b/pkgs/development/libraries/haskell/optparse-applicative/0.10.0.nix
new file mode 100644
index 00000000000..ff546c76eae
--- /dev/null
+++ b/pkgs/development/libraries/haskell/optparse-applicative/0.10.0.nix
@@ -0,0 +1,17 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, ansiWlPprint, transformers, transformersCompat }:
+
+cabal.mkDerivation (self: {
+  pname = "optparse-applicative";
+  version = "0.10.0";
+  sha256 = "04hr6rzgc8h0c8fy748as3q7sc8vm94gvk0rw4gdj605z8hvaxcb";
+  buildDepends = [ ansiWlPprint transformers transformersCompat ];
+  jailbreak = true;
+  meta = {
+    homepage = "https://github.com/pcapriotti/optparse-applicative";
+    description = "Utilities and combinators for parsing command line options";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/optparse-applicative/default.nix b/pkgs/development/libraries/haskell/optparse-applicative/0.9.1.1.nix
index 82bc0fa8a9e..4660e7f37ba 100644
--- a/pkgs/development/libraries/haskell/optparse-applicative/default.nix
+++ b/pkgs/development/libraries/haskell/optparse-applicative/0.9.1.1.nix
@@ -20,5 +20,6 @@ cabal.mkDerivation (self: {
     description = "Utilities and combinators for parsing command line options";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/parsec/3.1.5.nix b/pkgs/development/libraries/haskell/parsec/3.1.6.nix
index b6a5d37e531..5a8d83622f5 100644
--- a/pkgs/development/libraries/haskell/parsec/3.1.5.nix
+++ b/pkgs/development/libraries/haskell/parsec/3.1.6.nix
@@ -1,12 +1,13 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, mtl, text }:
+{ cabal, HUnit, mtl, testFramework, testFrameworkHunit, text }:
 
 cabal.mkDerivation (self: {
   pname = "parsec";
-  version = "3.1.5";
-  sha256 = "1f1wg4qxp1ss2160sa3vbqff18fabwhqjkyfj4sgyfmwf9fj8wn5";
+  version = "3.1.6";
+  sha256 = "12k2gzy7fi83929mr2s4vj3ipfyg7l74v1cb2vbi4613qmq5wrw4";
   buildDepends = [ mtl text ];
+  testDepends = [ HUnit testFramework testFrameworkHunit ];
   jailbreak = true;
   meta = {
     homepage = "http://www.cs.uu.nl/~daan/parsec.html";
diff --git a/pkgs/development/libraries/haskell/parsers/default.nix b/pkgs/development/libraries/haskell/parsers/default.nix
index 5c49d144a10..25f4a137083 100644
--- a/pkgs/development/libraries/haskell/parsers/default.nix
+++ b/pkgs/development/libraries/haskell/parsers/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "parsers";
-  version = "0.12.1";
-  sha256 = "0g9grf713zhn23vgmb6mdrm8r5snq1xa8jqnj6pghydj6m4rh97v";
+  version = "0.12.1.1";
+  sha256 = "1yx75xbmg3lms0hj79r5w9fl81g5cbsm842lijhd9jnnbli2mzfw";
   buildDepends = [
     attoparsec charset parsec text transformers unorderedContainers
   ];
diff --git a/pkgs/development/libraries/haskell/pcap-enumerator/default.nix b/pkgs/development/libraries/haskell/pcap-enumerator/default.nix
index f7480295f6d..db35b2fe020 100644
--- a/pkgs/development/libraries/haskell/pcap-enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/pcap-enumerator/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pcap-enumerator";
-  version = "0.4";
-  sha256 = "0ka2n7740s02marvd1b11mrxc663kj0zcn7hksl5i13ls026hpb8";
+  version = "0.5";
+  sha256 = "0v7ar3jbs54ibhrbbzmvajc7pc8h8dv56wr77w4vsbyz6xq4sqdb";
   buildDepends = [ enumerator pcap transformers ];
   meta = {
     homepage = "http://github.com/cutsea110/pcap-enumerator";
diff --git a/pkgs/development/libraries/haskell/pdf-toolbox-content/default.nix b/pkgs/development/libraries/haskell/pdf-toolbox-content/default.nix
new file mode 100644
index 00000000000..fd43a0452db
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pdf-toolbox-content/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsec, base16Bytestring, ioStreams, pdfToolboxCore
+, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "pdf-toolbox-content";
+  version = "0.0.3.0";
+  sha256 = "0glcm6mrgg8ixzhp09kfkk3ra3qblvrp1wcsa2nhqlypg3ca8r3h";
+  buildDepends = [
+    attoparsec base16Bytestring ioStreams pdfToolboxCore text
+  ];
+  meta = {
+    description = "A collection of tools for processing PDF files";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pdf-toolbox-core/default.nix b/pkgs/development/libraries/haskell/pdf-toolbox-core/default.nix
new file mode 100644
index 00000000000..be55101fc2c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pdf-toolbox-core/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsec, errors, ioStreams, transformers, zlibBindings
+}:
+
+cabal.mkDerivation (self: {
+  pname = "pdf-toolbox-core";
+  version = "0.0.2.1";
+  sha256 = "14jj6xprzh2k1njal0mgapkm3xivy8370p9kdjxha9gnwmc581df";
+  buildDepends = [
+    attoparsec errors ioStreams transformers zlibBindings
+  ];
+  meta = {
+    homepage = "https://github.com/Yuras/pdf-toolbox";
+    description = "A collection of tools for processing PDF files";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pdf-toolbox-document/default.nix b/pkgs/development/libraries/haskell/pdf-toolbox-document/default.nix
new file mode 100644
index 00000000000..dc1e96823b3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pdf-toolbox-document/default.nix
@@ -0,0 +1,20 @@
+{ cabal, cipherRc4, cryptohash, ioStreams, pdfToolboxContent
+, pdfToolboxCore, text, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "pdf-toolbox-document";
+  version = "0.0.3.0";
+  sha256 = "0y1kb2hf420jx6r81c431avgar32wzx2xr747akcs4rypf6w53fn";
+  buildDepends = [
+    cipherRc4 cryptohash ioStreams pdfToolboxContent pdfToolboxCore
+    text transformers
+  ];
+  meta = {
+    homepage = "https://github.com/Yuras/pdf-toolbox";
+    description = "A collection of tools for processing PDF files";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/persistent-mysql/default.nix b/pkgs/development/libraries/haskell/persistent-mysql/default.nix
index beb2ca94263..c76624e52c3 100644
--- a/pkgs/development/libraries/haskell/persistent-mysql/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-mysql/default.nix
@@ -1,16 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, blazeBuilder, conduit, monadControl, mysql
-, mysqlSimple, persistent, resourcet, text, transformers
+{ cabal, aeson, blazeBuilder, conduit, monadControl, monadLogger
+, mysql, mysqlSimple, persistent, resourcet, text, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent-mysql";
-  version = "1.3.0.2";
-  sha256 = "0yv2f8zqypbp5swdpxmgnfmmfsr6lwhb27k0hl9bh7ya76anhvqy";
+  version = "2.0.1";
+  sha256 = "02hqklndyzff8swcll5n7ck6iy9ci50kj1s5l1r43kcgh7cqili3";
   buildDepends = [
-    aeson blazeBuilder conduit monadControl mysql mysqlSimple
-    persistent resourcet text transformers
+    aeson blazeBuilder conduit monadControl monadLogger mysql
+    mysqlSimple persistent resourcet text transformers
   ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
diff --git a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
index 207183db846..3838d2e67ad 100644
--- a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
@@ -1,17 +1,17 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, blazeBuilder, conduit, monadControl, persistent
-, postgresqlLibpq, postgresqlSimple, resourcet, text, time
-, transformers
+{ cabal, aeson, blazeBuilder, conduit, monadControl, monadLogger
+, persistent, postgresqlLibpq, postgresqlSimple, resourcet, text
+, time, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent-postgresql";
-  version = "1.3.1.1";
-  sha256 = "1qi19fm7waxrbh795jvcny7aaj6b64jqcwv772xjzl9dbv3q9qhc";
+  version = "2.0.1";
+  sha256 = "1szvnakbg7bwyld3wcm9b0fn3083z95kpygqnx1hd7nc21hl6dch";
   buildDepends = [
-    aeson blazeBuilder conduit monadControl persistent postgresqlLibpq
-    postgresqlSimple resourcet text time transformers
+    aeson blazeBuilder conduit monadControl monadLogger persistent
+    postgresqlLibpq postgresqlSimple resourcet text time transformers
   ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
index 288e91ab78d..c2f2f341e5e 100644
--- a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-sqlite";
-  version = "1.3.0.5";
-  sha256 = "05b7byc4z7mhni90cj2aan63f599wv0511zqbsm6kbylk1zpyizb";
+  version = "2.0.1";
+  sha256 = "1ygyghifss29fdkyk5fhq9f1nkw1wgmlcsdh18sff5vvvk7vfa2l";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index 4b3c97c1a9c..44e4d1f3246 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -1,16 +1,17 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, hspec, monadControl, monadLogger, persistent
-, QuickCheck, text, transformers, unorderedContainers
+{ cabal, aeson, hspec, monadControl, monadLogger, pathPieces
+, persistent, QuickCheck, tagged, text, transformers
+, unorderedContainers
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "1.3.2.2";
-  sha256 = "0vcj0y2i423cz1iry5gsz5cvqynpnbhzl6basqcqn6k8ca7s876i";
+  version = "2.0.2.2";
+  sha256 = "1qar8xh4nbprnvqzgy4byc882hkfyxr7apbj0wzfs7smpla1ghlx";
   buildDepends = [
-    aeson monadControl monadLogger persistent text transformers
-    unorderedContainers
+    aeson monadControl monadLogger pathPieces persistent tagged text
+    transformers unorderedContainers
   ];
   testDepends = [
     aeson hspec persistent QuickCheck text transformers
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index a5add651473..8a1c16a63c5 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -1,21 +1,21 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, aeson, attoparsec, base64Bytestring, blazeHtml
-, blazeMarkup, conduit, exceptions, hspec, liftedBase, monadControl
-, monadLogger, pathPieces, resourcePool, resourcet, scientific
-, silently, sqlite, text, time, transformers, transformersBase
-, unorderedContainers, vector
+, blazeMarkup, conduit, exceptions, fastLogger, hspec, liftedBase
+, monadControl, monadLogger, mtl, pathPieces, resourcePool
+, resourcet, scientific, silently, sqlite, tagged, text, time
+, transformers, transformersBase, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "1.3.3";
-  sha256 = "1pz3xdbk46qprcyb0sll5zzr2vp6x08w7pd5glz2jf2242k7cdrd";
+  version = "2.0.2";
+  sha256 = "047k5bycpyvjyri7k6skc775m2akspzlr08ya2lv53q81yv912xi";
   buildDepends = [
     aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
-    exceptions liftedBase monadControl monadLogger pathPieces
-    resourcePool resourcet scientific silently text time transformers
-    transformersBase unorderedContainers vector
+    exceptions fastLogger liftedBase monadControl monadLogger mtl
+    pathPieces resourcePool resourcet scientific silently tagged text
+    time transformers transformersBase unorderedContainers vector
   ];
   testDepends = [
     aeson attoparsec base64Bytestring blazeHtml conduit hspec
diff --git a/pkgs/development/libraries/haskell/pipes-http/default.nix b/pkgs/development/libraries/haskell/pipes-http/default.nix
index 285d1405191..b5b9a8859ad 100644
--- a/pkgs/development/libraries/haskell/pipes-http/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-http/default.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   version = "1.0.1";
   sha256 = "15jmhf6lgqxv9zn08dky8biiv8cp4s3vf0xmp78pbllaqkvm4z9w";
   buildDepends = [ httpClient httpClientTls pipes ];
+  jailbreak = true;
   meta = {
     description = "HTTP client with pipes interface";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/pipes/default.nix b/pkgs/development/libraries/haskell/pipes/default.nix
index 9f723826dbb..50039d4466b 100644
--- a/pkgs/development/libraries/haskell/pipes/default.nix
+++ b/pkgs/development/libraries/haskell/pipes/default.nix
@@ -12,6 +12,7 @@ cabal.mkDerivation (self: {
   testDepends = [
     mtl QuickCheck testFramework testFrameworkQuickcheck2 transformers
   ];
+  jailbreak = true;
   meta = {
     description = "Compositional pipelines";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/postgresql-simple/default.nix b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
index 0c4fea2da65..f4d77d70560 100644
--- a/pkgs/development/libraries/haskell/postgresql-simple/default.nix
+++ b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "postgresql-simple";
-  version = "0.4.4.0";
-  sha256 = "1rx0rcafiicdv4qbf68dbsfqwiayrl7205dm0c5bdjlvszv576r7";
+  version = "0.4.4.1";
+  sha256 = "0lqvy8nc2izwlv7z0n12cknsrb2dkmla84bvjis5z9f63ngs2580";
   buildDepends = [
     aeson attoparsec blazeBuilder blazeTextual hashable postgresqlLibpq
     scientific text time transformers uuid vector
diff --git a/pkgs/development/libraries/haskell/protobuf/default.nix b/pkgs/development/libraries/haskell/protobuf/default.nix
index be437c7410d..3b0c1508ce0 100644
--- a/pkgs/development/libraries/haskell/protobuf/default.nix
+++ b/pkgs/development/libraries/haskell/protobuf/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "protobuf";
-  version = "0.2.0.3";
-  sha256 = "0jcrnym0j8w4vjrdmvn88x8ddp8wf809wviy1vkz94p2nyp6l2hw";
+  version = "0.2.0.4";
+  sha256 = "0gg678cb1psgdsjzv9x7mhcjmywj8bgzmp9pd850d3p9zyiw9l2j";
   buildDepends = [
     cereal dataBinaryIeee754 deepseq mtl text unorderedContainers
   ];
diff --git a/pkgs/development/libraries/haskell/purescript/default.nix b/pkgs/development/libraries/haskell/purescript/default.nix
index c5087a692f9..f8bb4d4a6db 100644
--- a/pkgs/development/libraries/haskell/purescript/default.nix
+++ b/pkgs/development/libraries/haskell/purescript/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "purescript";
-  version = "0.5.4.1";
-  sha256 = "1d2i2sspr1dbzjznk70flvnik0b2m226a3z0rkqwrjjbl92bhgwb";
+  version = "0.5.5";
+  sha256 = "19a2ra37cxh56gd1k43y9fg2cdp848yimybsx8728in39m8cjbxw";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/quickcheck-instances/default.nix b/pkgs/development/libraries/haskell/quickcheck-instances/default.nix
index 5aa1314f8e7..11bcb7aab6d 100644
--- a/pkgs/development/libraries/haskell/quickcheck-instances/default.nix
+++ b/pkgs/development/libraries/haskell/quickcheck-instances/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "quickcheck-instances";
-  version = "0.3.8";
-  sha256 = "0132a37zi1haz1aaggxa1hr421bcmxlbaa4m2l53m2rmr4z5mgkg";
+  version = "0.3.9";
+  sha256 = "1a0mbd1kga4qnamp80x2g4avjwcy8z0zrriqxdhb1525wyyb0656";
   buildDepends = [
     hashable QuickCheck text time unorderedContainers
   ];
diff --git a/pkgs/development/libraries/haskell/recaptcha/default.nix b/pkgs/development/libraries/haskell/recaptcha/default.nix
index dd92b7e79de..00fe58be4b1 100644
--- a/pkgs/development/libraries/haskell/recaptcha/default.nix
+++ b/pkgs/development/libraries/haskell/recaptcha/default.nix
@@ -1,12 +1,12 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, HTTP, network, xhtml }:
+{ cabal, HTTP, network, networkUri, xhtml }:
 
 cabal.mkDerivation (self: {
   pname = "recaptcha";
-  version = "0.1.0.2";
-  sha256 = "04sdfp6bmcd3qkz1iqxijfiqa4qf78m5d16r9gjv90ckqf68kbih";
-  buildDepends = [ HTTP network xhtml ];
+  version = "0.1.0.3";
+  sha256 = "18rqsqzni11nr2cvs7ah9k87w493d92c0gmc0n6fhfq6gay9ia19";
+  buildDepends = [ HTTP network networkUri xhtml ];
   meta = {
     homepage = "http://github.com/jgm/recaptcha/tree/master";
     description = "Functions for using the reCAPTCHA service in web applications";
diff --git a/pkgs/development/libraries/haskell/reducers/default.nix b/pkgs/development/libraries/haskell/reducers/default.nix
index bfa8a063b8e..5cf9535e1b2 100644
--- a/pkgs/development/libraries/haskell/reducers/default.nix
+++ b/pkgs/development/libraries/haskell/reducers/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "reducers";
-  version = "3.10.2.1";
-  sha256 = "1wn6q6cw9is1gan9y5n3fzjkhmpjpria4p13zp4kqxmj881067vy";
+  version = "3.10.3";
+  sha256 = "0hi77mgc2f38y0xfykn7x6gdl6xg710skpx4z76s8c0wwnd28pr6";
   buildDepends = [
     comonad fingertree hashable keys pointed semigroupoids semigroups
     text transformers unorderedContainers
diff --git a/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix b/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix
new file mode 100644
index 00000000000..f5ddf2a6388
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix
@@ -0,0 +1,16 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, regexBase }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-pcre-builtin";
+  version = "0.94.4.8.8.35";
+  sha256 = "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b";
+  buildDepends = [ regexBase ];
+  meta = {
+    homepage = "http://hackage.haskell.org/package/regex-pcre";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/rest-gen/default.nix b/pkgs/development/libraries/haskell/rest-gen/default.nix
index 012f6db8bf2..3a21393c210 100644
--- a/pkgs/development/libraries/haskell/rest-gen/default.nix
+++ b/pkgs/development/libraries/haskell/rest-gen/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "rest-gen";
-  version = "0.14.2.1";
-  sha256 = "1dvcs25ndmzwdann5yq4567zjirirzskf9v31gkrki0im8mi9x14";
+  version = "0.15.0.2";
+  sha256 = "1k33bhjy909ffc5bnk3fb8vi8pvylb7rh6m95f70x5h6wgq4lhjg";
   buildDepends = [
     aeson blazeHtml Cabal codeBuilder fclabels filepath hashable
     haskellSrcExts hslogger HStringTemplate hxt jsonSchema restCore
diff --git a/pkgs/development/libraries/haskell/rest-happstack/default.nix b/pkgs/development/libraries/haskell/rest-happstack/default.nix
index 4c79bc58c06..93397e82363 100644
--- a/pkgs/development/libraries/haskell/rest-happstack/default.nix
+++ b/pkgs/development/libraries/haskell/rest-happstack/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "rest-happstack";
-  version = "0.2.10.1";
-  sha256 = "0p4km3l8n50flj9cnxvjl34pp3msxz2yq4d91r318di8pacrgnxc";
+  version = "0.2.10.2";
+  sha256 = "18i2q3kvsyrh41gdclrzpnsjy1p9cgl3d9jsvcqqnzrv519vzdig";
   buildDepends = [ happstackServer mtl restCore restGen utf8String ];
   meta = {
     description = "Rest driver for Happstack";
diff --git a/pkgs/development/libraries/haskell/retry/default.nix b/pkgs/development/libraries/haskell/retry/default.nix
index 9a0a994cf77..0df453d10bb 100644
--- a/pkgs/development/libraries/haskell/retry/default.nix
+++ b/pkgs/development/libraries/haskell/retry/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "retry";
-  version = "0.5";
-  sha256 = "1qp949w8pisgki06j5qgaxw1761q3gfccc7bqnhqpchazl4p6p6n";
+  version = "0.5.1";
+  sha256 = "1k5qv7c960dayhddvra1gpy1zv90rdjcrzpg8nzar9bpcxapczvj";
   buildDepends = [ dataDefaultClass exceptions transformers ];
   testDepends = [
     dataDefaultClass exceptions hspec HUnit QuickCheck time
diff --git a/pkgs/development/libraries/haskell/rope/default.nix b/pkgs/development/libraries/haskell/rope/default.nix
new file mode 100644
index 00000000000..3c751d5eddd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/rope/default.nix
@@ -0,0 +1,18 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, fingertree, mtl, utf8String }:
+
+cabal.mkDerivation (self: {
+  pname = "rope";
+  version = "0.6.4";
+  sha256 = "1g77bv2mmfhy2mkb08k92m3f2jab6p2la2s7rfib2r1jy6lq5vhb";
+  buildDepends = [ fingertree mtl utf8String ];
+  jailbreak = true;
+  meta = {
+    homepage = "http://github.com/ekmett/rope";
+    description = "Tools for manipulating fingertrees of bytestrings with optional annotations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/scientific/0.3.3.0.nix b/pkgs/development/libraries/haskell/scientific/0.3.3.1.nix
index 22bf663334c..1eb719ed117 100644
--- a/pkgs/development/libraries/haskell/scientific/0.3.3.0.nix
+++ b/pkgs/development/libraries/haskell/scientific/0.3.3.1.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "scientific";
-  version = "0.3.3.0";
-  sha256 = "1kj49ibq53m7cfs9pq396l4fbqnarqzay7a65rmsrzi2vz15parv";
+  version = "0.3.3.1";
+  sha256 = "1p1g9cj827hb1zsn6zip7vgiwrw2vxfali6qvhccd6j1p12drw0b";
   buildDepends = [ deepseq hashable text ];
   testDepends = [
     QuickCheck smallcheck tasty tastyAntXml tastyHunit tastyQuickcheck
diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix
index ed9fa0bf3fb..54df1ebe66b 100644
--- a/pkgs/development/libraries/haskell/semigroups/default.nix
+++ b/pkgs/development/libraries/haskell/semigroups/default.nix
@@ -1,12 +1,12 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, hashable, nats, text, unorderedContainers }:
+{ cabal, deepseq, hashable, nats, text, unorderedContainers }:
 
 cabal.mkDerivation (self: {
   pname = "semigroups";
-  version = "0.15.2";
-  sha256 = "1lh06d0mwivzbfjg635r3m39qcpyjvnwni7mspz96qb3zcm0c5kp";
-  buildDepends = [ hashable nats text unorderedContainers ];
+  version = "0.15.3";
+  sha256 = "0bzrab88vvgv3bnbcc7gyc05b9h9zz1pnc6bv2d2mpg653pm97k3";
+  buildDepends = [ deepseq hashable nats text unorderedContainers ];
   meta = {
     homepage = "http://github.com/ekmett/semigroups/";
     description = "Anything that associates";
diff --git a/pkgs/development/libraries/haskell/setlocale/default.nix b/pkgs/development/libraries/haskell/setlocale/default.nix
index fcfd2d34d58..a76a2f5cf32 100644
--- a/pkgs/development/libraries/haskell/setlocale/default.nix
+++ b/pkgs/development/libraries/haskell/setlocale/default.nix
@@ -4,13 +4,12 @@
 
 cabal.mkDerivation (self: {
   pname = "setlocale";
-  version = "0.0.3";
-  sha256 = "08pd20ibmslr94p52rn6x9w3swn9jy7vjlvxzw29h8dlqgmvcrjl";
+  version = "1.0.0.1";
+  sha256 = "15dzf4hgkn5saz6qyn1xqvinvy0y571crfxfwycmcmm4az6rsqk0";
+  jailbreak = true;
   meta = {
-    description = "A Haskell interface to setlocale()";
-    license = self.stdenv.lib.licenses.publicDomain;
+    description = "Haskell bindings to setlocale";
+    license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/snap-cors/default.nix b/pkgs/development/libraries/haskell/snap-cors/default.nix
index f62b484328c..be9147d6c76 100644
--- a/pkgs/development/libraries/haskell/snap-cors/default.nix
+++ b/pkgs/development/libraries/haskell/snap-cors/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "snap-cors";
-  version = "1.2.5";
-  sha256 = "1zjvvi1prskkb26yp51j09gfkhpw0ggj69d89098yq0sl6d0vy1c";
+  version = "1.2.5.1";
+  sha256 = "1fijby8iryhcjdb7n95hdbjff4rnqyfx5s9x01nbmd9lxrch12dr";
   buildDepends = [
     attoparsec caseInsensitive hashable network snap text transformers
     unorderedContainers
diff --git a/pkgs/development/libraries/haskell/snap/snap.nix b/pkgs/development/libraries/haskell/snap/snap.nix
index 189750bd446..aab1a7bf89b 100644
--- a/pkgs/development/libraries/haskell/snap/snap.nix
+++ b/pkgs/development/libraries/haskell/snap/snap.nix
@@ -10,8 +10,8 @@
 
 cabal.mkDerivation (self: {
   pname = "snap";
-  version = "0.13.2.8";
-  sha256 = "1jrnh1raw2jrl04l54f5w5xfp9yyb9bj0ly9v1baqkiggswacbzg";
+  version = "0.13.2.9";
+  sha256 = "1iv29mbbm1xjfrq3ys7zpskjpcwx6k08zrnrs1yj62yg5aa6bnim";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -22,9 +22,6 @@ cabal.mkDerivation (self: {
     unorderedContainers vector vectorAlgorithms xmlhtml
   ];
   jailbreak = true;
-  patchPhase = ''
-    sed -i -e 's|lens .*< 4.2|lens|' snap.cabal
-  '';
   meta = {
     homepage = "http://snapframework.com/";
     description = "Top-level package for the Snap Web Framework";
diff --git a/pkgs/development/libraries/haskell/stm-conduit/default.nix b/pkgs/development/libraries/haskell/stm-conduit/default.nix
index cebb79c3344..da79b401fc6 100644
--- a/pkgs/development/libraries/haskell/stm-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/stm-conduit/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "stm-conduit";
-  version = "2.5.1";
-  sha256 = "08cnr92c442b1in46xcklni35597hbsggw97arq2f9w5sfir341q";
+  version = "2.5.2";
+  sha256 = "1r8l9nznavxd0cg30mj7qdp9nq8jlcr0vcv8ljn6lfw67s0pk82x";
   buildDepends = [
     async cereal cerealConduit conduit conduitExtra liftedAsync
     liftedBase monadControl monadLoops resourcet stm stmChans
diff --git a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
index ee721836245..2e939317504 100644
--- a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
@@ -1,19 +1,17 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, attoparsec, attoparsecConduit, blazeBuilder
-, blazeBuilderConduit, caseInsensitive, conduit, conduitExtra
-, dataDefault, hspec, HUnit, QuickCheck, resourcet, text
-, transformers, xmlConduit
+{ cabal, attoparsec, blazeBuilder, caseInsensitive, conduit
+, conduitExtra, dataDefault, hspec, HUnit, QuickCheck, resourcet
+, text, transformers, xmlConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "tagstream-conduit";
-  version = "0.5.5.1";
-  sha256 = "0bpxjhqqqigfnwcxx3h2am5zmgr1lyaxaac3lnz490j6zf8x9jn7";
+  version = "0.5.5.3";
+  sha256 = "1arlf7qil9bzcqykda8yyrnncm29jsfjvz5kbcdrbbhqpbqfi5mj";
   buildDepends = [
-    attoparsec attoparsecConduit blazeBuilder blazeBuilderConduit
-    caseInsensitive conduit conduitExtra dataDefault resourcet text
-    transformers xmlConduit
+    attoparsec blazeBuilder caseInsensitive conduit conduitExtra
+    dataDefault resourcet text transformers xmlConduit
   ];
   testDepends = [ conduit hspec HUnit QuickCheck resourcet text ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/tasty-ant-xml/default.nix b/pkgs/development/libraries/haskell/tasty-ant-xml/default.nix
index 9f8e59322b0..1fa30cf368d 100644
--- a/pkgs/development/libraries/haskell/tasty-ant-xml/default.nix
+++ b/pkgs/development/libraries/haskell/tasty-ant-xml/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tasty-ant-xml";
-  version = "1.0.0.8";
-  sha256 = "0khjx3anxp63ch6wkdhqnsk5miavkq014ab30rpir97gdqw0vykm";
+  version = "1.0.0.10";
+  sha256 = "1qjpgbsj8fh5w3l9zap3wsrf1cp8bmsl1adcxy5z2j8yi3rsljii";
   buildDepends = [
     genericDeriving mtl reducers stm tagged tasty transformers xml
   ];
diff --git a/pkgs/development/libraries/haskell/tasty-hspec/default.nix b/pkgs/development/libraries/haskell/tasty-hspec/default.nix
index 8c3083d07fe..6afcdd67b94 100644
--- a/pkgs/development/libraries/haskell/tasty-hspec/default.nix
+++ b/pkgs/development/libraries/haskell/tasty-hspec/default.nix
@@ -1,12 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, hspec, tasty }:
+{ cabal, hspec, QuickCheck, random, tasty, tastyQuickcheck
+, tastySmallcheck
+}:
 
 cabal.mkDerivation (self: {
   pname = "tasty-hspec";
-  version = "0.1.0.1";
-  sha256 = "0m8v9kj557vfqzmrindwfcjl7wqmdix2xvmsb94n8hx9qv075s3v";
-  buildDepends = [ hspec tasty ];
+  version = "0.2";
+  sha256 = "04qnmsyrlxgxf36lww3z6xkgpf6x5gprwrrwza3kcjl13wcm2rml";
+  buildDepends = [
+    hspec QuickCheck random tasty tastyQuickcheck tastySmallcheck
+  ];
   meta = {
     homepage = "http://github.com/mitchellwrosen/tasty-hspec";
     description = "Hspec support for the Tasty test framework";
diff --git a/pkgs/development/libraries/haskell/tasty-rerun/default.nix b/pkgs/development/libraries/haskell/tasty-rerun/default.nix
index 326392718ba..af251514b42 100644
--- a/pkgs/development/libraries/haskell/tasty-rerun/default.nix
+++ b/pkgs/development/libraries/haskell/tasty-rerun/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tasty-rerun";
-  version = "1.1.2";
-  sha256 = "0vgx6l9yd21aiwivd6zp67rgjly1j2wwqdmx99p17prr430rm4id";
+  version = "1.1.3";
+  sha256 = "1pgm3h7kyg7q8ydgqqj9sn65ckl6i7cz6a8g1cfighf4gy5y0cj3";
   buildDepends = [
     mtl optparseApplicative reducers split stm tagged tasty
     transformers
diff --git a/pkgs/development/libraries/haskell/tasty/default.nix b/pkgs/development/libraries/haskell/tasty/default.nix
index 6303320460f..b0623377114 100644
--- a/pkgs/development/libraries/haskell/tasty/default.nix
+++ b/pkgs/development/libraries/haskell/tasty/default.nix
@@ -1,16 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, ansiTerminal, async, deepseq, mtl, optparseApplicative
-, regexTdfaRc, stm, tagged, unboundedDelays
+, regexTdfaRc, stm, tagged, time, unboundedDelays
 }:
 
 cabal.mkDerivation (self: {
   pname = "tasty";
-  version = "0.8.1.3";
-  sha256 = "0hc030ms89w3cl1k3r8nrym3g7sg2n66ch2ljg6d7fwhrsgxnagf";
+  version = "0.10";
+  sha256 = "1va9rj6k0v8mdkqbgjvn5rcaf2zp785ihfr4b5j87xzaiw32m1l6";
   buildDepends = [
     ansiTerminal async deepseq mtl optparseApplicative regexTdfaRc stm
-    tagged unboundedDelays
+    tagged time unboundedDelays
   ];
   meta = {
     homepage = "http://documentup.com/feuerbach/tasty";
diff --git a/pkgs/development/libraries/haskell/text/1.1.1.3.nix b/pkgs/development/libraries/haskell/text/1.1.1.3.nix
index 7a61b4bbd3a..3908a7a0cae 100644
--- a/pkgs/development/libraries/haskell/text/1.1.1.3.nix
+++ b/pkgs/development/libraries/haskell/text/1.1.1.3.nix
@@ -19,5 +19,6 @@ cabal.mkDerivation (self: {
     description = "An efficient packed Unicode text type";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/time/1.4.2.nix b/pkgs/development/libraries/haskell/time/1.5.nix
index 5e8d967b8dc..ba77c73874d 100644
--- a/pkgs/development/libraries/haskell/time/1.4.2.nix
+++ b/pkgs/development/libraries/haskell/time/1.5.nix
@@ -1,20 +1,20 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, Cabal, deepseq, QuickCheck, testFramework
+{ cabal, deepseq, QuickCheck, testFramework
 , testFrameworkQuickcheck2
 }:
 
 cabal.mkDerivation (self: {
   pname = "time";
-  version = "1.4.2";
-  sha256 = "1kpsak2wka23c8591ry6i1d7hmd54s7iw5n6hpx48jhcxf1w199h";
+  version = "1.5";
+  sha256 = "0vj82msx650z473inhr8yav7k38zj7096wam477y77wardx57pdc";
   buildDepends = [ deepseq ];
   testDepends = [
-    Cabal deepseq QuickCheck testFramework testFrameworkQuickcheck2
+    deepseq QuickCheck testFramework testFrameworkQuickcheck2
   ];
   doCheck = false;
   meta = {
-    homepage = "http://semantic.org/TimeLib/";
+    homepage = "https://github.com/haskell/time";
     description = "A time library";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/tls-extra/default.nix b/pkgs/development/libraries/haskell/tls-extra/default.nix
deleted file mode 100644
index 0d5c97433b2..00000000000
--- a/pkgs/development/libraries/haskell/tls-extra/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file was auto-generated by cabal2nix. Please do NOT edit manually!
-
-{ cabal, certificate, cipherAes, cipherRc4, cryptohash
-, cryptoPubkey, cryptoRandom, mtl, network, pem, time, tls, vector
-}:
-
-cabal.mkDerivation (self: {
-  pname = "tls-extra";
-  version = "0.6.6";
-  sha256 = "0k0sj3nq1lrvbmd582mjj8cxbxigivz1hm8hhij1ncl2pgnq5xyv";
-  isLibrary = true;
-  isExecutable = true;
-  buildDepends = [
-    certificate cipherAes cipherRc4 cryptohash cryptoPubkey
-    cryptoRandom mtl network pem time tls vector
-  ];
-  meta = {
-    homepage = "http://github.com/vincenthz/hs-tls";
-    description = "TLS extra default values and helpers";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/tls/1.1.5.nix b/pkgs/development/libraries/haskell/tls/1.1.5.nix
deleted file mode 100644
index ddb1651fd10..00000000000
--- a/pkgs/development/libraries/haskell/tls/1.1.5.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file was auto-generated by cabal2nix. Please do NOT edit manually!
-
-{ cabal, cereal, certificate, cprngAes, cryptohash, cryptoPubkey
-, cryptoRandom, mtl, network, QuickCheck, testFramework
-, testFrameworkQuickcheck2, time
-}:
-
-cabal.mkDerivation (self: {
-  pname = "tls";
-  version = "1.1.5";
-  sha256 = "1ja03x3i7dgjpy22h4shnni1xslph8i8q4accqq8njpqpz54c84c";
-  buildDepends = [
-    cereal certificate cryptohash cryptoPubkey cryptoRandom mtl network
-  ];
-  testDepends = [
-    cereal certificate cprngAes cryptoPubkey cryptoRandom mtl
-    QuickCheck testFramework testFrameworkQuickcheck2 time
-  ];
-  doCheck = false;
-  meta = {
-    homepage = "http://github.com/vincenthz/hs-tls";
-    description = "TLS/SSL protocol native implementation (Server and Client)";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/tls/1.2.8.nix b/pkgs/development/libraries/haskell/tls/default.nix
index 22eb615a657..45cb3c69394 100644
--- a/pkgs/development/libraries/haskell/tls/1.2.8.nix
+++ b/pkgs/development/libraries/haskell/tls/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tls";
-  version = "1.2.8";
-  sha256 = "0fm36jn2yri3fn6wadl5v4k0cpnansqlid4fhavgnp6mazf0q5ha";
+  version = "1.2.9";
+  sha256 = "1cwhwxpsxx9x5hv2c66d3yvbs84lrgaxmaz18skidmhqhs4i0sjy";
   buildDepends = [
     asn1Encoding asn1Types byteable cereal cipherAes cipherDes
     cipherRc4 cryptoCipherTypes cryptohash cryptoNumbers cryptoPubkey
diff --git a/pkgs/development/libraries/haskell/tostring/default.nix b/pkgs/development/libraries/haskell/tostring/default.nix
index eee617ffd2b..0c181e2b076 100644
--- a/pkgs/development/libraries/haskell/tostring/default.nix
+++ b/pkgs/development/libraries/haskell/tostring/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tostring";
-  version = "0.2.0.1";
-  sha256 = "1gihls2xslr9fzad2659zv8af9k4cm84888nhx3z9bwasviyg448";
+  version = "0.2.0.2";
+  sha256 = "0gjc1576cb4cil55l2jki3y4zp8z6b1m04rf68f2fbc619wji5k6";
   buildDepends = [ text utf8String ];
   meta = {
     description = "The ToString class";
diff --git a/pkgs/development/libraries/haskell/tuple/default.nix b/pkgs/development/libraries/haskell/tuple/default.nix
index 974c2fe140b..6997d2229ce 100644
--- a/pkgs/development/libraries/haskell/tuple/default.nix
+++ b/pkgs/development/libraries/haskell/tuple/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tuple";
-  version = "0.2.0.1";
-  sha256 = "1c4vf798rjwshnk04avyjp4rjzj8i9qx4yksv00m3rjy6psr57xg";
+  version = "0.3.0.2";
+  sha256 = "094nx29aahyrvbcn7yca9zs2a5rxz1is7510w1q43rpvza7hdjrg";
   buildDepends = [ OneTuple ];
   meta = {
     description = "Various functions on tuples";
diff --git a/pkgs/development/libraries/haskell/twitter-conduit/default.nix b/pkgs/development/libraries/haskell/twitter-conduit/default.nix
index 0d576680044..8720fb3f2be 100644
--- a/pkgs/development/libraries/haskell/twitter-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/twitter-conduit/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "twitter-conduit";
-  version = "0.0.5.6";
-  sha256 = "1l6gk4538nqknrj082hkdy2jp4gzyq3y473p8gg4mm2n67417r9m";
+  version = "0.0.6";
+  sha256 = "1vm4wa3cdmyz2m45rnwkrjcx8wajc89395c28rz1q12hf856970j";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -31,7 +31,5 @@ cabal.mkDerivation (self: {
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ ocharles ];
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/uuid/default.nix b/pkgs/development/libraries/haskell/uuid/default.nix
index eb36f5555ae..44fb5bde2bf 100644
--- a/pkgs/development/libraries/haskell/uuid/default.nix
+++ b/pkgs/development/libraries/haskell/uuid/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "uuid";
-  version = "1.3.3";
-  sha256 = "12sfspmrnpqbwwscv3w41pkkdbfvy1aaa84y7is0d3ffk5rll80m";
+  version = "1.3.4";
+  sha256 = "03gab2dg52i4ysxw6vdzdd018qy0lycq7x3gcbx0r9c8vsqvafmc";
   buildDepends = [
     binary cryptohash deepseq hashable networkInfo random time
   ];
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
index 530f9828ae5..055802ad04e 100644
--- a/pkgs/development/libraries/haskell/wai-app-static/default.nix
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -10,8 +10,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-app-static";
-  version = "3.0.0";
-  sha256 = "117r2ps440i2i156k50b674fkny2ywwbbla6ry0km041604cl733";
+  version = "3.0.0.1";
+  sha256 = "1xqw7xvbq38m19337vpalnz5c5mvc57mfp53vqbah3lalxy9mqby";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/wl-pprint-extras/default.nix b/pkgs/development/libraries/haskell/wl-pprint-extras/default.nix
index ac8d69ebd3f..0165e0a82ea 100644
--- a/pkgs/development/libraries/haskell/wl-pprint-extras/default.nix
+++ b/pkgs/development/libraries/haskell/wl-pprint-extras/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wl-pprint-extras";
-  version = "3.5";
-  sha256 = "172xp23j3w8jbd7h0sna9g8p4d6xwy8154gqj93ycz2907r2kwb7";
+  version = "3.5.0.2";
+  sha256 = "1wh8nm7h8bbr1xxf0q3cwb837jk5y1cq4l2h6lw63wavwqqvjfw6";
   buildDepends = [ nats semigroupoids semigroups text utf8String ];
   testDepends = [ HUnit testFramework testFrameworkHunit ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix b/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix
index 37dc11b1f0f..30636f6b97c 100644
--- a/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix
+++ b/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wl-pprint-terminfo";
-  version = "3.7.1.1";
-  sha256 = "1mjnbkk3cw2v7nda7qxdkl21pmclz6m17sviqp4qf3rc8rgin3zd";
+  version = "3.7.1.2";
+  sha256 = "17c5ys8730hhhpy0swk4yxrjs1042w4m7aypsfnzzk3b0cw94q56";
   buildDepends = [
     nats semigroups terminfo text transformers wlPprintExtras
   ];
diff --git a/pkgs/development/libraries/haskell/x509/default.nix b/pkgs/development/libraries/haskell/x509/default.nix
index 4c8eb53c995..71601c9306d 100644
--- a/pkgs/development/libraries/haskell/x509/default.nix
+++ b/pkgs/development/libraries/haskell/x509/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "x509";
-  version = "1.4.11";
-  sha256 = "1ax56jps640cj1swy08y4k75vx908ckwkg2hi7y2s3bhnvpz49ga";
+  version = "1.4.12";
+  sha256 = "0bfsmmngpvghbfljxa2gymf6hvsw04snw6fr2r6hpaw40njxfxxj";
   buildDepends = [
     asn1Encoding asn1Parse asn1Types cryptohash cryptoPubkeyTypes
     filepath mtl pem time
diff --git a/pkgs/development/libraries/haskell/xlsx/default.nix b/pkgs/development/libraries/haskell/xlsx/default.nix
index 779814c05dd..e2fdfa0d1a7 100644
--- a/pkgs/development/libraries/haskell/xlsx/default.nix
+++ b/pkgs/development/libraries/haskell/xlsx/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xlsx";
-  version = "0.1.0.2";
-  sha256 = "0m9ph34mpnc6vj1d3x80y0gaya5bqdhfa193jn0a8clw4qz88sbr";
+  version = "0.1.0.3";
+  sha256 = "1i1dfb6gv4h3nc9ja7yxjzb8g207vzp58dnk4rgfcfglyvadn8kp";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/xml-conduit/default.nix b/pkgs/development/libraries/haskell/xml-conduit/default.nix
index 3df8c163d63..ddd6129dd83 100644
--- a/pkgs/development/libraries/haskell/xml-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/xml-conduit/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xml-conduit";
-  version = "1.2.1";
-  sha256 = "1bh0d2fqcdbx2dq5ybipf7ws59blrb8yd98z1rnbvv1fj9r0xw10";
+  version = "1.2.2";
+  sha256 = "0rya11zzkqkq9jspd3q75b50l0p42aq3ka77by0wan373hw4ydan";
   buildDepends = [
     attoparsec attoparsecConduit blazeBuilder blazeBuilderConduit
     blazeHtml blazeMarkup conduit conduitExtra dataDefault deepseq
@@ -19,6 +19,7 @@ cabal.mkDerivation (self: {
     blazeMarkup conduit hspec HUnit resourcet text transformers
     xmlTypes
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://github.com/snoyberg/xml";
     description = "Pure-Haskell utilities for dealing with XML with the conduit package";
diff --git a/pkgs/development/libraries/haskell/xmlhtml/default.nix b/pkgs/development/libraries/haskell/xmlhtml/default.nix
index 794808eed0d..1f4b2474d75 100644
--- a/pkgs/development/libraries/haskell/xmlhtml/default.nix
+++ b/pkgs/development/libraries/haskell/xmlhtml/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xmlhtml";
-  version = "0.2.3.2";
-  sha256 = "1djw9d0hff9ii0n1bgbjjsca9n0w7mxj3ivf9dslyr3kv3yb4013";
+  version = "0.2.3.3";
+  sha256 = "0n95284z24ddgw7v8zjqzanyrshxydcxs4ivchpj88gh5r3ryv5j";
   buildDepends = [
     blazeBuilder blazeHtml blazeMarkup parsec text unorderedContainers
   ];
diff --git a/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix b/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix
index 9f577fc4520..a47f3bed59d 100644
--- a/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix
@@ -18,5 +18,6 @@ cabal.mkDerivation (self: {
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
+    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/yesod-auth/default.nix b/pkgs/development/libraries/haskell/yesod-auth/default.nix
index 1224e105c3f..179ce9d3ad7 100644
--- a/pkgs/development/libraries/haskell/yesod-auth/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-auth/default.nix
@@ -12,8 +12,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-auth";
-  version = "1.3.4.2";
-  sha256 = "0hf5x1qhpxil3na7f1vdjr5i5n7q41a23ikkra9avg3yss94k04d";
+  version = "1.3.4.4";
+  sha256 = "0h2yk36w0yi303svg7jrlg12s05mbxn4l3pbk558wchgjgy8xaz4";
   buildDepends = [
     aeson attoparsecConduit authenticate base16Bytestring
     base64Bytestring binary blazeBuilder blazeHtml blazeMarkup byteable
diff --git a/pkgs/development/libraries/haskell/yesod-bin/default.nix b/pkgs/development/libraries/haskell/yesod-bin/default.nix
index 27a1c1522ef..37c7e4e3b37 100644
--- a/pkgs/development/libraries/haskell/yesod-bin/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-bin/default.nix
@@ -12,8 +12,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-bin";
-  version = "1.2.12.4";
-  sha256 = "1pg1zxixgsqz5da2dhs94zi77h63jz3llf0049fgdfg166c685vj";
+  version = "1.2.12.8";
+  sha256 = "0fxqwahk23c23l7qrwz3inf8xh8chfn9g8x2h7mn0dsj939l59ws";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 857b237ba42..f05477ab8f7 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -13,8 +13,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "1.2.19.1";
-  sha256 = "1021z0jrfbafbdybpj0jkacr9ljyap5cpmfk2911dsz3nz7sy6zg";
+  version = "1.2.20";
+  sha256 = "1gx0xbyx3mydmiwxypzgmpm5ywrxynqyb1myym0mdaxm6dd1v31k";
   buildDepends = [
     aeson attoparsecConduit blazeBuilder blazeHtml blazeMarkup
     caseInsensitive cereal clientsession conduit conduitExtra cookie
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index 57f456823c2..80347f5be6e 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-form";
-  version = "1.3.15.2";
-  sha256 = "05r7w65n63qrlvxlm2j4s0vin4p7gc4cqa8j83465mnl1dzxliy1";
+  version = "1.3.15.4";
+  sha256 = "0a3wrc16jxqan0is3nk015k32bgi9fdglzkxpyaqlig6iaafbpil";
   buildDepends = [
     aeson attoparsec blazeBuilder blazeHtml blazeMarkup byteable
     dataDefault emailValidate hamlet networkUri persistent resourcet
diff --git a/pkgs/development/libraries/haskell/yesod-persistent/default.nix b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
index 64a2bd7730f..fdfd5527247 100644
--- a/pkgs/development/libraries/haskell/yesod-persistent/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-persistent";
-  version = "1.2.3";
-  sha256 = "1kdspz6y32r8kl0qk89hgwi4n6dnxch7wriv829cnwqm0bzjfdpw";
+  version = "1.2.3.1";
+  sha256 = "1mmy1l91ksjvwi2zr1wnb50vshs4pdri9rcaracwrnrmdpbmyy3s";
   buildDepends = [
     blazeBuilder conduit persistent persistentTemplate resourcePool
     resourcet transformers yesodCore
diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix
index a029eab6f12..ee8dc594598 100644
--- a/pkgs/development/libraries/icu/default.nix
+++ b/pkgs/development/libraries/icu/default.nix
@@ -1,9 +1,8 @@
 { stdenv, fetchurl, fixDarwinDylibNames }:
 
 let
-
   pname = "icu4c";
-  version = "52.1";
+  version = "53.1";
 in
 stdenv.mkDerivation {
   name = pname + "-" + version;
@@ -11,7 +10,7 @@ stdenv.mkDerivation {
   src = fetchurl {
     url = "http://download.icu-project.org/files/${pname}/${version}/${pname}-"
       + (stdenv.lib.replaceChars ["."] ["_"] version) + "-src.tgz";
-    sha256 = "14l0kl17nirc34frcybzg0snknaks23abhdxkmsqg3k9sil5wk9g";
+    sha256 = "0a4sg9w054640zncb13lhrcjqn7yg1qilwd1mczc4w60maslz9vg";
   };
 
   makeFlags = stdenv.lib.optionalString stdenv.isDarwin
@@ -35,10 +34,10 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Unicode and globalization support library";
     homepage = http://site.icu-project.org/;
-    maintainers = with stdenv.lib.maintainers; [raskin urkud];
-    platforms = stdenv.lib.platforms.all;
+    maintainers = with maintainers; [ raskin urkud ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/ilixi/default.nix b/pkgs/development/libraries/ilixi/default.nix
index dd8ad8b3561..6fd204c236f 100644
--- a/pkgs/development/libraries/ilixi/default.nix
+++ b/pkgs/development/libraries/ilixi/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    broken = true; # broken by the directfb 1.6.3 -> 1.7.6 update
   };
 }
diff --git a/pkgs/development/libraries/isl/0.12.2.nix b/pkgs/development/libraries/isl/0.12.2.nix
index f1da2c06409..67620881bca 100644
--- a/pkgs/development/libraries/isl/0.12.2.nix
+++ b/pkgs/development/libraries/isl/0.12.2.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gmp ];
 
+  enableParallelBuilding = true;
+
   meta = {
     homepage = http://www.kotnet.org/~skimo/isl/;
     license = stdenv.lib.licenses.lgpl21;
diff --git a/pkgs/development/libraries/isl/default.nix b/pkgs/development/libraries/isl/default.nix
index 7e08c8afe6f..931ee831b73 100644
--- a/pkgs/development/libraries/isl/default.nix
+++ b/pkgs/development/libraries/isl/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ gmp ];
   patches = [ ./fix-gcc-build.diff ];
 
+  enableParallelBuilding = true;
+
   meta = {
     homepage = http://www.kotnet.org/~skimo/isl/;
     license = stdenv.lib.licenses.lgpl21;
diff --git a/pkgs/development/libraries/javascript/jquery-ui/default.nix b/pkgs/development/libraries/javascript/jquery-ui/default.nix
index 9a485906e53..fd7f5367c8e 100644
--- a/pkgs/development/libraries/javascript/jquery-ui/default.nix
+++ b/pkgs/development/libraries/javascript/jquery-ui/default.nix
@@ -1,29 +1,19 @@
 { stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "jquery-ui-1.10.4";
+  name = "jquery-ui-1.11.1";
 
   src = fetchurl {
-    url = "http://jqueryui.com/resources/download/${name}.custom.zip";
-    sha256 = "04kp27ln74j4k2jacs54264x2bsdjx1dxlw5zlpd889jqv2m6dfc";
+    url = "http://jqueryui.com/resources/download/${name}.zip";
+    sha256 = "05dlcfwklymx94fb4n88l5syf80l6zrs862zzmla477vd8ndk537";
   };
 
   buildInputs = [ unzip ];
 
   installPhase =
     ''
-      mkdir -p $out
-      cp -prvd css js $out/
-
-      # For convenience, provide symlinks "jquery.min.js" etc. (i.e.,
-      # without the version number).
-      pushd $out/js
-      ln -s jquery-ui-*.custom.js jquery-ui.js
-      ln -s jquery-ui-*.custom.min.js jquery-ui.min.js
-      ln -s jquery-1.*.js jquery.js
-      popd
-      pushd $out/css/smoothness
-      ln -s jquery-ui-*.custom.css jquery-ui.css
+      mkdir -p "$out/js"
+      cp -rv . "$out/js"
     '';
 
   meta = {
diff --git a/pkgs/development/libraries/javascript/jquery/default.nix b/pkgs/development/libraries/javascript/jquery/default.nix
new file mode 100644
index 00000000000..7dd2b6284fa
--- /dev/null
+++ b/pkgs/development/libraries/javascript/jquery/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, compressed ? true }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "jquery-1.11.1";
+
+  src = if compressed then
+    fetchurl {
+      url = "http://code.jquery.com/${name}.min.js";
+      sha256 = "0hgly37jhg0n5cqlx3ylmwcxkxmbkvv07f9z9pm94jyxq7gcc2sl";
+    }
+    else
+    fetchurl {
+      url = "http://code.jquery.com/${name}.js";
+      sha256 = "1g7nhy8dwzzai7h7m800fsig4gzw34kjxxbpqdac2y8ch9586a9h";
+    };
+
+  unpackPhase = "true";
+
+  installPhase =
+    ''
+      mkdir -p "$out/js"
+      cp -v "$src" "$out/js/jquery.js"
+      ${optionalString compressed ''
+        (cd "$out/js" && ln -s jquery.js jquery.min.js)
+      ''}
+    '';
+
+  meta = with stdenv.lib; {
+    description = "JavaScript library designed to simplify the client-side scripting of HTML";
+    homepage = http://jquery.com/;
+    license = licenses.mit;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/json-glib/default.nix b/pkgs/development/libraries/json-glib/default.nix
index 7a45ca0f227..a50163c601d 100644
--- a/pkgs/development/libraries/json-glib/default.nix
+++ b/pkgs/development/libraries/json-glib/default.nix
@@ -7,9 +7,9 @@ stdenv.mkDerivation rec {
     project = "json-glib";
     major = "1";
     minor = "0";
-    patchlevel = "0";
+    patchlevel = "2";
     extension = "xz";
-    sha256 = "dbf558d2da989ab84a27e4e13daa51ceaa97eb959c2c2f80976c9322a8f4cdde";
+    sha256 = "887bd192da8f5edc53b490ec51bf3ffebd958a671f5963e4f3af32c22e35660a";
   };
 
   configureflags= "--with-introspection" ; 
diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix
index 2f9e1786473..264868e4a97 100644
--- a/pkgs/development/libraries/libav/default.nix
+++ b/pkgs/development/libraries/libav/default.nix
@@ -28,7 +28,7 @@ let
   result = {
     libav_0_8 = libavFun "0.8.13" "1fr3rzykrlm1cla0csm9hqa3gcqp19hf5rgn70nyb9w92r67v685";
     libav_9   = libavFun   "9.16" "18378gdgzqsxaacc9vl7ligwndbdvy95wbn50hs8xvdqn1rn916a";
-    libav_10  = libavFun  "10.3"  "1fq83rc5534fjqjlhkw5i9k54dmyqn2pgvyillm6pws8rkn9yb5r";
+    libav_10  = libavFun  "10.4"  "1zzvjfdlv9swhq7dzvli1pk8cn02q1076ax9m3cx9ipilbg21639";
   };
 
   libavFun = version : sha256 : stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libc++/default.nix b/pkgs/development/libraries/libc++/default.nix
index 32035709d8f..21a07d6f7d4 100644
--- a/pkgs/development/libraries/libc++/default.nix
+++ b/pkgs/development/libraries/libc++/default.nix
@@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
     homepage = http://libcxx.llvm.org/;
     description = "A new implementation of the C++ standard library, targeting C++11";
     license = "BSD";
-    maintainers = stdenv.lib.maintainers.shlevy;
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libc++abi/default.nix b/pkgs/development/libraries/libc++abi/default.nix
index 8218cbb966f..dd1f46a9ab3 100644
--- a/pkgs/development/libraries/libc++abi/default.nix
+++ b/pkgs/development/libraries/libc++abi/default.nix
@@ -33,7 +33,7 @@ in stdenv.mkDerivation {
     homepage = http://libcxxabi.llvm.org/;
     description = "A new implementation of low level support for a standard C++ library";
     license = "BSD";
-    maintainers = stdenv.lib.maintainers.shlevy;
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix
index 7c948aa9824..fad0170ade7 100644
--- a/pkgs/development/libraries/libewf/default.nix
+++ b/pkgs/development/libraries/libewf/default.nix
@@ -1,10 +1,11 @@
-{ fetchurl, stdenv, zlib, openssl, libuuid, file }:
+{ fetchurl, stdenv, zlib, openssl, libuuid, file, fuse }:
 
 stdenv.mkDerivation rec {
-  name = "libewf-20100226";
+  version = "20140608";
+  name = "libewf-${version}";
   src = fetchurl {
-    url = "mirror://sourceforge/libewf/${name}.tar.gz";
-    sha256 = "aedd2a6b3df6525ff535ab95cd569ebb361a4022eb4163390f26257913c2941a";
+    url = "https://googledrive.com/host/0B3fBvzttpiiSMTdoaVExWWNsRjg/libewf-20140608.tar.gz";
+    sha256 = "0wfsffzxk934hl8cpwr14w8ixnh8d23x0xnnzcspjwi2c7730h6i";
   };
 
   preConfigure = ''sed -e 's@/usr/bin/file@file@g' -i configure'';
@@ -14,6 +15,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Library for support of the Expert Witness Compression Format";
     homepage = http://sourceforge.net/projects/libewf/;
-    license = "free";
+    license = stdenv.lib.licenses.lgpl3;
+    maintainers = [ stdenv.lib.maintainers.raskin ] ;
+    inherit version;
   };
 }
diff --git a/pkgs/development/libraries/libewf/default.upstream b/pkgs/development/libraries/libewf/default.upstream
new file mode 100644
index 00000000000..a071132463f
--- /dev/null
+++ b/pkgs/development/libraries/libewf/default.upstream
@@ -0,0 +1,7 @@
+url https://code.google.com/p/libewf/
+version_link 'googledrive[.]com'
+version_link '[.]tar[.]'
+do_overwrite () {
+  do_overwrite_just_version
+  set_var_value url "$CURRENT_URL"
+}
diff --git a/pkgs/development/libraries/libfreefare/default.nix b/pkgs/development/libraries/libfreefare/default.nix
new file mode 100644
index 00000000000..17afa9423b0
--- /dev/null
+++ b/pkgs/development/libraries/libfreefare/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, libnfc, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "libfreefare-${version}";
+  version = "0.4.0";
+
+  src = fetchurl {
+    url = "https://libfreefare.googlecode.com/files/libfreefare-0.4.0.tar.bz2";
+    sha256 = "0r5wfvwgf35lb1v65wavnwz2wlfyfdims6a9xpslf4lsm4a1v8xz";
+  };
+
+  buildInputs = [ pkgconfig libnfc openssl ];
+
+  meta = with stdenv.lib; {
+    description = "The libfreefare project aims to provide a convenient API for MIFARE card manipulations";
+    license = licenses.gpl3;
+    homepage = http://code.google.com/p/libfreefare/;
+    maintainers = with maintainers; [bobvanderlinden];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index 663bd944fb9..7a595dbbe46 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation (rec {
     sha256 = "0pz58vr12qihq2f0bypjxsb6cf6ajq5258fmfm8s6lvwm3b9xz6a";
   };
 
-  # If architecture-dependant MO files aren't available, they're generated
+  # If architecture-dependent MO files aren't available, they're generated
   # during build, so we need gettext for cross-builds.
   crossAttrs.buildInputs = [ gettext ];
 
diff --git a/pkgs/development/libraries/libibmad/default.nix b/pkgs/development/libraries/libibmad/default.nix
new file mode 100644
index 00000000000..8a4f27ad9c0
--- /dev/null
+++ b/pkgs/development/libraries/libibmad/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, libibumad }:
+
+stdenv.mkDerivation rec {
+  name = "libibmad-1.3.11";
+
+  src = fetchurl {
+    url = "https://www.openfabrics.org/downloads/management/${name}.tar.gz";
+    sha256 = "1d5lh2lhz7zzs7bbjjv9i0pj3v1xgp8sdmcr425h563v2c3bp53h";
+  };
+
+  buildInputs = [ libibumad ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.openfabrics.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}
diff --git a/pkgs/development/libraries/libibumad/default.nix b/pkgs/development/libraries/libibumad/default.nix
new file mode 100644
index 00000000000..911c5c84612
--- /dev/null
+++ b/pkgs/development/libraries/libibumad/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libibumad-1.3.9";
+
+  src = fetchurl {
+    url = "https://www.openfabrics.org/downloads/management/${name}.tar.gz";
+    sha256 = "0j52aiwfgasf7bzx65svd5h2ya7848c5racf191i8irsxa155q74";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://www.openfabrics.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}
diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix
index 39795267a2c..dc197fc6409 100644
--- a/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, curl, libgcrypt}:
 
 stdenv.mkDerivation rec {
-  name = "libmicrohttpd-0.9.35";
+  name = "libmicrohttpd-0.9.37";
 
   src = fetchurl {
     url = "mirror://gnu/libmicrohttpd/${name}.tar.gz";
-    sha256 = "1z0h6llx7pra78358ryi3bdh8p0ns0bn97n6bl0fj6cib9cz2pdw";
+    sha256 = "1p3wnhr43v6vqdgl86r76298wjfxz2ihj9zh9kpz8l7va30br357";
   };
 
   buildInputs = [ curl libgcrypt ];
diff --git a/pkgs/development/libraries/liboauth/default.nix b/pkgs/development/libraries/liboauth/default.nix
index b3eee8ed434..3cb9629e3e1 100644
--- a/pkgs/development/libraries/liboauth/default.nix
+++ b/pkgs/development/libraries/liboauth/default.nix
@@ -2,11 +2,11 @@
 
 
 stdenv.mkDerivation rec {
-  name = "liboauth-1.0.2";
+  name = "liboauth-1.0.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/liboauth/${name}.tar.gz";
-    sha256 = "1qs58yzydw20dmzvx22i541w641kwd6ja80s9na1az32n1krh6zv";
+    sha256 = "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd";
   };
 
   buildInputs = [ nss openssl ];
diff --git a/pkgs/development/libraries/libotr/default.nix b/pkgs/development/libraries/libotr/default.nix
index 3782dabc67b..7b8f40d1886 100644
--- a/pkgs/development/libraries/libotr/default.nix
+++ b/pkgs/development/libraries/libotr/default.nix
@@ -1,23 +1,22 @@
-{stdenv, fetchgit, libgcrypt, autoconf, automake, libtool}:
+{ stdenv, fetchurl, libgcrypt, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  name = "libotr-20130821-git-f0f8a2";
-  src = fetchgit {
-    url = "http://git.code.sf.net/p/otr/libotr";
-    rev = "f0f8a2";
-    sha256 = "08019r8bnk8f4yx6574jdz217p283ry7dmpqcad2d87yhkdmc3mm";
-  };
-
-  NIX_LDFLAGS = "-lssp";
+  name = "libotr-4.0.0";
 
-  propagatedBuildInputs = [ libgcrypt autoconf automake libtool ];
+  src = fetchurl {
+    url = "https://otr.cypherpunks.ca/${name}.tar.gz";
+    sha256 = "1d4k0b7v4d3scwm858cmqr9c6xgd6ppla1vk4x2yg64q82a1k49z";
+  };
 
-  preConfigure = "autoreconf -vfi";
+  buildInputs = [ autoreconfHook ];
+  propagatedBuildInputs = [ libgcrypt ];
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://www.cypherpunks.ca/otr/";
     repositories.git = git://git.code.sf.net/p/otr/libotr;
-    license = stdenv.lib.licenses.lgpl21;
+    license = licenses.lgpl21;
     description = "Library for Off-The-Record Messaging";
+    maintainers = with maintainers; [ wkennington ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index 1f04ae8fca5..3f8622535db 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -3,11 +3,11 @@
 assert zlib != null;
 
 let
-  version = "1.6.12";
-  sha256 = "0pkcirbfzhqqsm3hr2alxprw5n22a836qk4df1jnns6jk79gcby3";
+  version = "1.6.13";
+  sha256 = "09g631h1f1xvrdiy36mh1034r9w46damp9jcg7nm507wlmacxj6r";
   patch_src = fetchurl {
     url = "mirror://sourceforge/libpng-apng/libpng-${version}-apng.patch.gz";
-    sha256 = "0r2vmsc4cvxisjr7jqw2vjf66isb2fhs4nnssz3l3jgdangj8wz0";
+    sha256 = "017pnxp3zhhlh6mg2yqn5xrb6dcxc5p3dp1kr46p8xx052i0hzqb";
   };
   whenPatched = stdenv.lib.optionalString apngSupport;
 
diff --git a/pkgs/development/libraries/libresample/default.nix b/pkgs/development/libraries/libresample/default.nix
index 9ef1ada0a42..e8d4f98028f 100644
--- a/pkgs/development/libraries/libresample/default.nix
+++ b/pkgs/development/libraries/libresample/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation {
     description = "A real-time library for sampling rate conversion library";
     license = stdenv.lib.licenses.lgpl2Plus;
     homepage = https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html;
-    maintainers = stdenv.lib.maintainers.sander;
+    maintainers = [ stdenv.lib.maintainers.sander ];
   };
 }
diff --git a/pkgs/development/libraries/libyaml/default.nix b/pkgs/development/libraries/libyaml/default.nix
index d0ad17048aa..33376cbdad3 100644
--- a/pkgs/development/libraries/libyaml/default.nix
+++ b/pkgs/development/libraries/libyaml/default.nix
@@ -14,5 +14,7 @@ stdenv.mkDerivation {
     homepage = http://pyyaml.org/;
     description = "A YAML 1.1 parser and emitter written in C";
     license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ wkennington ];
   };
 }
diff --git a/pkgs/development/libraries/liquidfun/default.nix b/pkgs/development/libraries/liquidfun/default.nix
index 994c013c631..a4dc7b5e93d 100644
--- a/pkgs/development/libraries/liquidfun/default.nix
+++ b/pkgs/development/libraries/liquidfun/default.nix
@@ -39,8 +39,8 @@ stdenv.mkDerivation rec {
     [
       qknight
     ];
-    platforms = with stdenv.lib.platforms;
-      linux;
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
     license = stdenv.lib.licenses.bsd2;
     homepage = https://google.github.io/liquidfun/;
   };
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index bbad10898bf..54fd8d3810e 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -24,7 +24,7 @@ else
 */
 
 let
-  version = "10.2.5";
+  version = "10.2.6";
   # this is the default search path for DRI drivers
   driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
 in
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
 
   src =  fetchurl {
     url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2";
-    sha256 = "039is15p8pkhf8m0yiyb72zybl63xb9ckqzcg3xwi8zlyw5ryidl";
+    sha256 = "01n8ib190s12m8hiiyi4wfm9jhkbqjd769npjwvf965smp918cqr";
   };
 
   prePatch = "patchShebangs .";
diff --git a/pkgs/development/libraries/muparser/default.nix b/pkgs/development/libraries/muparser/default.nix
index 9d9a524e86d..b68f04f642f 100644
--- a/pkgs/development/libraries/muparser/default.nix
+++ b/pkgs/development/libraries/muparser/default.nix
@@ -1,11 +1,14 @@
 {stdenv, fetchurl, unzip}:
 
-stdenv.mkDerivation {
-	name = "muparser-2.2.2";
-	src = fetchurl {
-		url = mirror://sourceforge/muparser/muparser_v2_2_2.zip;
-		sha256 = "0pncvjzzbwcadgpwnq5r7sl9v5r2y9gjgfnlw0mrs9wj206dbhx9";
-	};
+stdenv.mkDerivation rec {
+  name = "muparser-${version}";
+  version = "2.2.3";
+  url-version = stdenv.lib.replaceChars ["."] ["_"] version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/muparser/muparser_v${url-version}.zip";
+    sha256 = "00l92k231yb49wijzkspa2l58mapn6vh2dlxnlg0pawjjfv33s6z";
+  };
 
   buildInputs = [ unzip ];
 
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index 0355ce25c62..01967718c40 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 
-let version = "4.10.6"; in
+let version = "4.10.7"; in
 
 stdenv.mkDerivation {
   name = "nspr-${version}";
 
   src = fetchurl {
     url = "http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${version}/src/nspr-${version}.tar.gz";
-    sha1 = "3hzcslcfql1rg7drvcn4nmrigy7jfgwz";
+    sha256 = "389af5cfa863ea9bc6de7b30c15f8a4f9bddd8002f8c6fdc8b33caef43893938";
   };
 
   preConfigure = "cd nspr";
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index 447030f5fcc..38eb4a93f24 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -11,11 +11,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "nss-${version}";
-  version = "3.16.3";
+  version = "3.16.4";
 
   src = fetchurl {
-    url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_16_3_RTM/src/${name}.tar.gz";
-    sha256 = "657711ff7a4058043b69019a66f44101d0234eae2b6b80ab900439dbf02add60";
+    url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_16_4_RTM/src/${name}.tar.gz";
+    sha256 = "adcd1e655fd9508e7f13847452fd5887a835eff882e3f0d3c42dfcd651650b77";
   };
 
   buildInputs = [ nspr perl zlib sqlite ];
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index 15160d3afc4..14d88e381b3 100644
--- a/pkgs/development/libraries/openmpi/default.nix
+++ b/pkgs/development/libraries/openmpi/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
     homePage = http://www.open-mpi.org/;
     description = "Open source MPI-2 implementation";
     longDescription = "The Open MPI Project is an open source MPI-2 implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers.";
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 }
 
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 8c88df984f0..c972635c9c7 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -60,7 +60,12 @@ stdenv.mkDerivation {
     else "./config";
 
   configureFlags = "shared --libdir=lib --openssldir=etc/ssl" +
-    stdenv.lib.optionalString withCryptodev " -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS";
+    stdenv.lib.optionalString withCryptodev " -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS" +
+    stdenv.lib.optionalString (stdenv.system == "x86_64-cygwin") " no-asm";
+
+  preBuild = stdenv.lib.optionalString (stdenv.system == "x86_64-cygwin") ''
+    sed -i -e "s|-march=i486|-march=x86-64|g" Makefile
+  '';
 
   makeFlags = "MANDIR=$(out)/share/man";
 
diff --git a/pkgs/development/libraries/osip/default.nix b/pkgs/development/libraries/osip/default.nix
index cfa838f5a37..4db1cb5b524 100644
--- a/pkgs/development/libraries/osip/default.nix
+++ b/pkgs/development/libraries/osip/default.nix
@@ -1,9 +1,9 @@
 {stdenv, fetchurl}:
 stdenv.mkDerivation rec {
-  version = "4.0.0";
+  version = "4.1.0";
   src = fetchurl {
     url = "mirror://gnu/osip/libosip2-${version}.tar.gz";
-    sha256 = "05dhj4s5k4qmhn2amca070xgh1gkcl42n040fhwsn3vm86524bdv";
+    sha256 = "014503kqv7z63az6lgxr5fbajlrqylm5c4kgbf8p3a0n6cva0slr";
   };
   name = "libosip2-${version}";
 
@@ -13,5 +13,6 @@ stdenv.mkDerivation rec {
     description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
     maintainers = with stdenv.lib.maintainers; [ raskin ];
     platforms = stdenv.lib.platforms.linux;
+    inherit version;
   };
 }
diff --git a/pkgs/development/libraries/osip/default.upstream b/pkgs/development/libraries/osip/default.upstream
new file mode 100644
index 00000000000..ba0ed2a9b29
--- /dev/null
+++ b/pkgs/development/libraries/osip/default.upstream
@@ -0,0 +1,3 @@
+url http://ftp.u-tx.net/gnu/osip/
+attribute_name libosip
+minimize_overwrite
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index 4cf6bd44dd3..930d7b86f06 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -5,11 +5,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "pcre-8.34";
+  name = "pcre-8.35";
 
   src = fetchurl {
     url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "0gsqmsp0q0n3q0ba32gkjvgcsdy6nwidqa7sbxkbw817zzhkl15n";
+    sha256 = "0nw66r92dr24vy9k4lw17bkv8x5nlzn6wx9hq4y2dvzgig3w2qd9";
   };
 
   # The compiler on Darwin crashes with an internal error while building the
diff --git a/pkgs/development/libraries/qscintilla/default.nix b/pkgs/development/libraries/qscintilla/default.nix
new file mode 100644
index 00000000000..52736ba5d34
--- /dev/null
+++ b/pkgs/development/libraries/qscintilla/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, qt }:
+
+stdenv.mkDerivation rec {
+  pname = "qscintilla";
+  version = "2.8.3";
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/pyqt/QScintilla2/QScintilla-${version}/QScintilla-gpl-${version}.tar.gz";
+    sha256 = "fb94e6d61c3ccd4bf167d5f092629e619f7069d42207469458998b761a7cf505";
+  };
+
+  buildInputs = [ qt ];
+
+  preConfigure = ''
+    cd Qt4Qt5
+    sed -i -e "s,\$\$\\[QT_INSTALL_LIBS\\],$out/libs," \
+           -e "s,\$\$\\[QT_INSTALL_HEADERS\\],$out/include/," \
+           -e "s,\$\$\\[QT_INSTALL_TRANSLATIONS\\],$out/share/qt/translations," \
+           -e "s,\$\$\\[QT_INSTALL_DATA\\],$out/share/qt," \
+           qscintilla.pro
+    qmake qscintilla.pro
+  '';
+
+  # TODO PyQt Support.
+
+  meta = {
+    description = "A Qt port of the Scintilla text editing library";
+    longDescription = ''
+      QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor
+      control.
+
+      As well as features found in standard text editing components,
+      QScintilla includes features especially useful when editing and
+      debugging source code. These include support for syntax styling,
+      error indicators, code completion and call tips. The selection
+      margin can contain markers like those used in debuggers to
+      indicate breakpoints and the current line. Styling choices are
+      more open than with many editors, allowing the use of
+      proportional fonts, bold and italics, multiple foreground and
+      background colours and multiple fonts.
+    '';
+    homepage = http://www.riverbankcomputing.com/software/qscintilla/intro;
+    license = stdenv.lib.licenses.gpl2; # and gpl3 and commercial
+  };
+}
diff --git a/pkgs/development/libraries/quazip/default.nix b/pkgs/development/libraries/quazip/default.nix
new file mode 100644
index 00000000000..8899980affa
--- /dev/null
+++ b/pkgs/development/libraries/quazip/default.nix
@@ -0,0 +1,23 @@
+{ fetchurl, stdenv, zip, zlib, qt5 }:
+
+stdenv.mkDerivation rec {
+  name = "quazip-0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/quazip/${name}.tar.gz";
+    sha256 = "8af5e7f9bff98b5a2982800a292eae0176c2b41a98a8deab14f4e1cbe07674a4";
+  };
+
+  configurePhase = "cd quazip && qmake quazip.pro";
+
+  installFlags = "INSTALL_ROOT=$out";
+
+  buildInputs = [ zlib qt5 ];
+
+  meta = {
+    description = "Provides access to ZIP archives from Qt programs";
+    license = stdenv.lib.licenses.gpl2Plus;
+    homepage = http://quazip.sourceforge.net/;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/readline/readline5.nix b/pkgs/development/libraries/readline/5.x.nix
index c208d5b9fe6..ad9860d855e 100644
--- a/pkgs/development/libraries/readline/readline5.nix
+++ b/pkgs/development/libraries/readline/5.x.nix
@@ -2,13 +2,14 @@
 
 stdenv.mkDerivation {
   name = "readline-5.2";
-  
+
   src = fetchurl {
     url = mirror://gnu/readline/readline-5.2.tar.gz;
     sha256 = "0icz4hqqq8mlkwrpczyaha94kns0am9z0mh3a2913kg2msb8vs0j";
   };
-  
+
   propagatedBuildInputs = [ncurses];
-  
+
   patches = stdenv.lib.optional stdenv.isDarwin ./shobj-darwin.patch;
 }
+
diff --git a/pkgs/development/libraries/readline/readline6.nix b/pkgs/development/libraries/readline/6.2.nix
index d72d6566bbc..d72d6566bbc 100644
--- a/pkgs/development/libraries/readline/readline6.nix
+++ b/pkgs/development/libraries/readline/6.2.nix
diff --git a/pkgs/development/libraries/readline/readline6.3.nix b/pkgs/development/libraries/readline/6.3.nix
index 17299e5f10d..38ecc034d89 100644
--- a/pkgs/development/libraries/readline/readline6.3.nix
+++ b/pkgs/development/libraries/readline/6.3.nix
@@ -1,10 +1,10 @@
 { fetchurl, stdenv, ncurses }:
 
-stdenv.mkDerivation (rec {
-  name = "readline-6.3";
+stdenv.mkDerivation rec {
+  name = "readline-6.3p08";
 
   src = fetchurl {
-    url = "mirror://gnu/readline/${name}.tar.gz";
+    url = "mirror://gnu/readline/readline-6.3.tar.gz";
     sha256 = "0hzxr9jxqqx5sxsv9vmlxdnvlr9vi4ih1avjb869hbs6p5qn1fjn";
   };
 
@@ -15,9 +15,21 @@ stdenv.mkDerivation (rec {
   patches =
     [ ./link-against-ncurses.patch
       ./no-arch_only-6.3.patch
-    ];
-
-  meta = {
+    ]
+    ++
+    (let
+       patch = nr: sha256:
+         fetchurl {
+           url = "mirror://gnu/readline/readline-6.3-patches/readline63-${nr}";
+           inherit sha256;
+         };
+     in
+       import ./readline-6.3-patches.nix patch);
+
+  # Don't run the native `strip' when cross-compiling.
+  dontStrip = stdenv ? cross;
+
+  meta = with stdenv.lib; {
     description = "Library for interactive line editing";
 
     longDescription = ''
@@ -37,15 +49,10 @@ stdenv.mkDerivation (rec {
 
     homepage = http://savannah.gnu.org/projects/readline/;
 
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
+
+    maintainers = [ maintainers.ludo ];
 
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = platforms.unix;
   };
 }
-
-//
-
-# Don't run the native `strip' when cross-compiling.
-(if (stdenv ? cross)
- then { dontStrip = true; }
- else { }))
diff --git a/pkgs/development/libraries/readline/readline-6.3-patches.nix b/pkgs/development/libraries/readline/readline-6.3-patches.nix
new file mode 100644
index 00000000000..d0aaaf38f70
--- /dev/null
+++ b/pkgs/development/libraries/readline/readline-6.3-patches.nix
@@ -0,0 +1,12 @@
+# Automatically generated by `update-patch-set.sh'; do not edit.
+
+patch: [
+(patch "001" "0vqlj22mkbn3x42qx2iqir7capx462dhagbzdw6hwxgfxavbny8s")
+(patch "002" "19g0l6vlfcqzwfwjj1slkmxzndjp4543hwrf26g8z216lp3h9qrr")
+(patch "003" "0bx53k876w8vwf4h2s6brr1i46ym87gi71bh8zl89n0gn3cbshgc")
+(patch "004" "1k2m8dg1awmjhmivdbx1c25866gfbpg0fy4845n8cw15zc3bjis5")
+(patch "005" "0jr7c28bzn882as5i54l53bhi723s1nkvzmwlh3rj6ld4bwqhxw7")
+(patch "006" "0mp5zgx50792gigkmjap3d0zpdv5qanii8djab7j6z69qsrpl8sw")
+(patch "007" "1sjv9w0mglh395i6hlq3ck7wdxvi2wyddlyb2j0jwg7cmnibayad")
+(patch "008" "11rpqhsxd132gc8455v51ma3a5zshznb0mh2p0zc5skcab7r7h1v")
+]
diff --git a/pkgs/development/libraries/readline/readline4.nix b/pkgs/development/libraries/readline/readline4.nix
deleted file mode 100644
index d9dcdc9f048..00000000000
--- a/pkgs/development/libraries/readline/readline4.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ stdenv, fetchurl, ncurses }:
-
-stdenv.mkDerivation {
-  name = "readline-4.3";
-  src = fetchurl {
-    url = mirror://gnu/readline/readline-4.3.tar.gz;
-    md5 = "f86f7cb717ab321fe15f1bbcb058c11e";
-  };
-  propagatedBuildInputs = [ncurses];
-}
diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix
index 873f59dba3a..1e8eec6ae45 100644
--- a/pkgs/development/libraries/serf/default.nix
+++ b/pkgs/development/libraries/serf/default.nix
@@ -1,8 +1,7 @@
 { stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, krb5, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.7";
-  name = "serf-${version}";
+  name = "serf-1.3.7";
 
   src = fetchurl {
     url = "http://serf.googlecode.com/svn/src_releases/${name}.tar.bz2";
@@ -28,11 +27,8 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "HTTP client library based on APR";
-    license = stdenv.lib.licenses.asl20 ;
+    license = stdenv.lib.licenses.asl20;
     maintainers = [stdenv.lib.maintainers.raskin];
     hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
-    inherit version;
-    downloadPage = "http://serf.googlecode.com/svn/src_releases/";
-    updateWalker = true;
   };
 }
diff --git a/pkgs/development/libraries/snappy/default.nix b/pkgs/development/libraries/snappy/default.nix
index acba85ec43b..90469508d0e 100644
--- a/pkgs/development/libraries/snappy/default.nix
+++ b/pkgs/development/libraries/snappy/default.nix
@@ -1,23 +1,31 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  name = "snappy-1.1.1";
+  name = "snappy-1.1.2";
   
-  src = fetchurl {
-    url = "http://snappy.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1czscb5i003jg1amw3g1fmasv8crr5g3d922800kll8b3fj097yp";
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "snappy";
+    rev = "1ff9be9b8fafc8528ca9e055646f5932aa5db9c4";
+    sha256 = "1zyjj13max0z42g3ii54n3qn7rbcga34dbi26lpm7v5ya752shx7";
   };
 
-  # -DNDEBUG for speed
+  buildInputs = [ pkgconfig autoreconfHook ];
+
   preConfigure = ''
-    configureFlagsArray=("CXXFLAGS=-DNDEBUG -O2")
+    sh autogen.sh
   '';
 
+  # -DNDEBUG for speed
+  configureFlags = [ "CXXFLAGS=-DNDEBUG" ];
+
   doCheck = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://code.google.com/p/snappy/;
-    license = "BSD";
+    license = licenses.bsd3;
     description = "Compression/decompression library for very high speeds";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ wkennington ];
   };
 }
diff --git a/pkgs/development/libraries/spandsp/default.nix b/pkgs/development/libraries/spandsp/default.nix
index f88ab48e027..24dc443ca70 100644
--- a/pkgs/development/libraries/spandsp/default.nix
+++ b/pkgs/development/libraries/spandsp/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, audiofile, libtiff}:
 stdenv.mkDerivation rec {
-  version = "0.0.5";
+  version = "0.0.6";
   name = "spandsp-${version}";
   src=fetchurl {
-    url = "http://www.soft-switch.org/downloads/spandsp/spandsp-${version}.tgz";
-    sha256 = "07f42a237c77b08fa765c3a148c83cdfa267bf24c0ab681d80b90d30dd0b3dbf";
+    url = "http://www.soft-switch.org/downloads/spandsp/spandsp-${version}.tar.gz";
+    sha256 = "0rclrkyspzk575v8fslzjpgp4y2s4x7xk3r55ycvpi4agv33l1fc";
   };
   buildInputs = [];
   propagatedBuildInputs = [audiofile libtiff];
@@ -13,6 +13,9 @@ stdenv.mkDerivation rec {
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
     license = with stdenv.lib.licenses; gpl2;
+    downloadPage = "http://www.soft-switch.org/downloads/spandsp/";
+    inherit version;
+    updateWalker = true;
   };
 }
 
diff --git a/pkgs/development/libraries/sword/default.nix b/pkgs/development/libraries/sword/default.nix
index 28afdf85dfb..6faf2224b0c 100644
--- a/pkgs/development/libraries/sword/default.nix
+++ b/pkgs/development/libraries/sword/default.nix
@@ -1,14 +1,14 @@
-{stdenv, fetchurl, pkgconfig, icu, clucene_core, curl}:
+{ stdenv, fetchurl, pkgconfig, icu, clucene_core, curl }:
 
 stdenv.mkDerivation rec {
 
-  version = "1.7.2";
+  version = "1.7.3";
 
   name = "sword-${version}";
 
   src = fetchurl {
     url = "http://www.crosswire.org/ftpmirror/pub/sword/source/v1.7/${name}.tar.gz";
-    sha256 = "ac7aace0ecb7a405d4b4b211ee1ae5b2250bb5c57c9197179747c9e830787871";
+    sha256 = "1sm9ivypsx3mraqnziic7qkxjx1b7crvlln0zq6cnpjx2pzqfgas";
   };
 
   buildInputs = [ pkgconfig icu clucene_core curl ];
@@ -19,12 +19,12 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--without-conf --enable-tests=no CXXFLAGS=-Wno-unused-but-set-variable";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A software framework that allows research manipulation of Biblical texts";
     homepage = http://www.crosswire.org/sword/;
-    platforms = stdenv.lib.platforms.linux;
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = [ stdenv.lib.maintainers.piotr stdenv.lib.maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.piotr maintainers.AndersonTorres ];
   };
 
 }
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 4c86de7fb56..fda32a7ddbd 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -8,17 +8,22 @@ in
 
 stdenv.mkDerivation rec {
   name = "v8-${version}";
-  version = "3.26.8";
+  version = "3.26.31.15";
 
   src = fetchurl {
     url = "https://commondatastorage.googleapis.com/chromium-browser-official/"
         + "${name}.tar.bz2";
-    sha256 = "0w8mfy8jlqvp958c0zhsfwf0s3m6kw53jhcyg6aiwh877g6s21iz";
+    sha256 = "067pk6hr7wjx7yxhla5la0rnv51kf7837kfydzydjwapsbcx6m8l";
   };
 
+  patchPhase = ''
+    sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' build/gyp_v8
+  '';
+
   configurePhase = ''
     PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
-      ${gyp}/bin/gyp \
+    PYTHONPATH="$(toPythonPath ${gyp}):$PYTHONPATH" \
+      build/gyp_v8 \
         -f make \
         --generator-output="out" \
         -Dflock_index=0 \
@@ -26,9 +31,7 @@ stdenv.mkDerivation rec {
         -Duse_system_icu=1 \
         -Dconsole=readline \
         -Dcomponent=shared_library \
-        -Dv8_target_arch=${arch} \
-        --depth=. -Ibuild/standalone.gypi \
-        build/all.gyp
+        -Dv8_target_arch=${arch}
   '';
 
   nativeBuildInputs = [ which ];
@@ -60,7 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Google's open source JavaScript engine";
-    platforms = platforms.linux ++ platforms.darwin;
+    platforms = with platforms; linux ++ darwin;
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/libraries/v8/fix-GetLocalizedMessage-usage.patch b/pkgs/development/libraries/v8/fix-GetLocalizedMessage-usage.patch
deleted file mode 100644
index 3bc0fff4d50..00000000000
--- a/pkgs/development/libraries/v8/fix-GetLocalizedMessage-usage.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From dbe142c4eda0f15fad9fa85743dd11b81292fa8f Mon Sep 17 00:00:00 2001
-From: Timothy J Fontaine <tjfontaine@gmail.com>
-Date: Thu, 23 May 2013 13:57:59 -0700
-Subject: [PATCH] v8: fix GetLocalizedMessage usage
-
-As is the backport of the abort on uncaught exception wouldn't compile
-because we it was passing in `this` when it was unnecessary.
----
- deps/v8/src/isolate.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/isolate.cc b/src/isolate.cc
-index 04a438b..5a5293e 100644
---- a/src/isolate.cc
-+++ b/src/isolate.cc
-@@ -1161,7 +1161,7 @@ void Isolate::DoThrow(Object* exception, MessageLocation* location) {
-           (report_exception || can_be_caught_externally)) {
-         fatal_exception_depth++;
-         fprintf(stderr, "%s\n\nFROM\n",
--          *MessageHandler::GetLocalizedMessage(this, message_obj));
-+          *MessageHandler::GetLocalizedMessage(message_obj));
-         PrintCurrentStackTrace(stderr);
-         OS::Abort();
-       }
--- 
-1.8.1.6
-
diff --git a/pkgs/development/libraries/vaapi-vdpau/default.nix b/pkgs/development/libraries/vaapi-vdpau/default.nix
index 9b28d0016dd..02a4155947f 100644
--- a/pkgs/development/libraries/vaapi-vdpau/default.nix
+++ b/pkgs/development/libraries/vaapi-vdpau/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, libvdpau, mesa, libva, pkgconfig }:
-
+let
+  libvdpau08patch = (fetchurl { url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/libva-vdpau-driver/files/libva-vdpau-driver-0.7.4-libvdpau-0.8.patch?revision=1.1";
+                                name = "libva-vdpau-driver-0.7.4-libvdpau-0.8.patch";
+                                sha256 = "1n2cys59wyv8ylx9i5m3s6856mgx24hzcp45w1ahdfbzdv9wrfbl";
+                              });
+in
 stdenv.mkDerivation rec {
   name = "libva-vdpau-driver-0.7.4";
   
@@ -17,6 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libvdpau mesa libva pkgconfig ];
 
   preConfigure = ''
+    patch -p0 < ${libvdpau08patch}  # use -p0 instead of -p1
     sed -i -e "s,LIBVA_DRIVERS_PATH=.*,LIBVA_DRIVERS_PATH=$out/lib/dri," configure
   '';
 
diff --git a/pkgs/development/mobile/androidenv/addon.xml b/pkgs/development/mobile/androidenv/addon.xml
index aee3c847e93..274ae734b6e 100644
--- a/pkgs/development/mobile/androidenv/addon.xml
+++ b/pkgs/development/mobile/androidenv/addon.xml
@@ -14,222 +14,196 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
 -->
-<sdk:sdk-addon xmlns:sdk="http://schemas.android.com/sdk/android/addon/5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<sdk:sdk-addon xmlns:sdk="http://schemas.android.com/sdk/android/addon/7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
-    <sdk:license id="android-sdk-license" type="text">Terms and Conditions
-
-This is the Android Software Development Kit License Agreement.
+    <sdk:license id="android-sdk-license" type="text">To get started with the Android SDK, you must agree to the following terms and conditions.
 
+This is the Android SDK License Agreement (the &quot;License Agreement&quot;).
 
 1. Introduction
 
-
-1.1 The Android Software Development Kit (referred to in this License Agreement as the &quot;SDK&quot; and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
+1.1 The Android SDK (referred to in the License Agreement as the &quot;SDK&quot; and specifically including the Android system files, packaged APIs, and SDK library files and tools , if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
 
 1.2 &quot;Android&quot; means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
 
 1.3 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
 
+2. Accepting the License Agreement
 
-2. Accepting this License Agreement
-
-
-2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement.
+2.1 In order to use the SDK, you must first agree to the License Agreement. You may not use the SDK if you do not accept the License Agreement.
 
-2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
+2.2 By clicking to accept and/or using the SDK, you hereby agree to the terms of the License Agreement.
 
 2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.
 
-2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.
-
+2.4 If you will use the SDK internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.
 
 3. SDK License from Google
 
-
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform.
+3.1 Subject to the terms of the License Agreement, Google grants you a royalty-free, non-assignable, non-exclusive, non-sublicensable, limited, revocable license to use the SDK, personally or internally within your company or organization, solely to develop and distribute applications to run on the Android platform.
 
 3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
 
-3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement.  Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
+3.3 You may not use the SDK for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
 
 3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.
 
-3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
+3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
 
 3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
 
-3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
 
 3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
 
-
 4. Use of the SDK by You
 
+4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
 
-4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
 
-4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+4.3 You agree that if you use the SDK to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
 
-4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
-
-4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.
+4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
 
 4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
 
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
 
 5. Your Developer Credentials
 
-
 5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
 
-
 6. Privacy and Information
 
-
 6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
 
-6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.
-
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
 
 7. Third Party Applications
 
-
 7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
 
 7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
 
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
-
-
-8. Using Android APIs
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
 
+8. Using Google APIs
 
-8.1 Google Data APIs
+8.1 Google APIs
 
 8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
 
 8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
 
+9. Terminating the License Agreement
 
-9. Terminating this License Agreement
+9.1 The License Agreement will continue to apply until terminated by either you or Google as set out below.
 
+9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
 
-9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
-
-9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
-
-9.3 Google may at any time, terminate this License Agreement with you if:
-(A) you have breached any provision of this License Agreement; or
-(B) Google is required to do so by law; or
-(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or
-(D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.
-
-9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
+9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
 
+9.4 The License Agreement will automatically terminate without notice or other action when Google ceases to provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service.
 
-10. DISCLAIMER OF WARRANTIES
+9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the SDK, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
 
+10. DISCLAIMERS
 
 10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
 
-10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE SDK MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
 
 10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
 
-
 11. LIMITATION OF LIABILITY
 
-
 11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
 
-
 12. Indemnification
 
-
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
-
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
 
 13. Changes to the License Agreement
 
-
 13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.
 
-
 14. General Legal Terms
 
+14.1 The License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.
 
-14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
 
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
 
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
 
 14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
 
-14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
+14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
 
-14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
 
-November 13, 2012
+June 2014.
     </sdk:license>
 
-    <sdk:license id="android-googletv-license" type="text">Terms and Conditions
 
-This is the Google TV Add-on for the Android Software Development Kit License Agreement.
+    <sdk:license id="android-sdk-preview-license" type="text">To get started with the Android SDK Preview, you must agree to the following terms and conditions.
+As described below, please note that this is a preview version of the Android SDK, subject to change, that you use at your own risk.  The Android SDK Preview is not a stable release, and may contain errors and defects that can result in serious damage to your computer systems, devices and data.
+
+This is the Android SDK Preview License Agreement (the &quot;License Agreement&quot;).
 
 1. Introduction
 
-1.1 The Google TV Add-on for the Android Software Development Kit (referred to in this License Agreement as the &quot;Google TV Add-on&quot; and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the Google TV Add-on.
+1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
 
-1.2 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+1.2 &quot;Android&quot; means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
 
-2. Accepting this License Agreement
+1.3 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
 
-2.1 In order to use the Google TV Add-on, you must first agree to this License Agreement. You may not use the Google TV Add-on if you do not accept this License Agreement.
+2. Accepting the License Agreement
 
-2.2 You can accept this License Agreement by:
+2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.
 
-(A) clicking to accept or agree to this License Agreement, where this option is made available to you; or
+2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.
 
-(B) by actually using the Google TV Add-on.  In this case, you agree that use of the Google TV Add-on constitutes acceptance of the License Agreement from that point onwards.
+2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.
 
-2.3 You may not use the Google TV Add-on and may not accept the Licensing Agreement if you are a person barred from receiving the Google TV Add-on under the laws of the United States or other countries including the country in which you are resident or from which you use the Google TV Add-on.
+2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.
 
-2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the Licensing Agreement or use the Google TV Add-on on behalf of your employer or other entity.
+3. Preview License from Google
 
-3. Google TV Add-on License from Google
+3.1 Subject to the terms of the License Agreement, Google grants you a royalty-free, non-assignable, non-exclusive, non-sublicensable, limited, revocable license to use the Preview, personally or internally within your company or organization, solely to develop applications to run on the Android platform.
 
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non- assignable and non-exclusive license to use the Google TV Add-on solely to develop applications to run on the Google TV platform.
+3.2 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
 
-3.2 You agree that Google or third parties own all legal right, title and interest in and to the Google TV Add-on, including any Intellectual Property Rights that subsist in the Google TV Add-on. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+3.3 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.
 
-3.3 Except to the extent required by applicable third party licenses, you may not copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Google TV Add-on or any part of the Google TV Add-on. Except to the extent required by applicable third party licenses, you may not load any part of the Google TV Add-on onto a mobile handset, television, or any other hardware device except a personal computer, combine any part of the Google TV Add-on with other software, or distribute any software or device incorporating a part of the Google TV Add-on.
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Preview.
 
-3.4 Use, reproduction and distribution of components of the Google TV Add-on licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
+3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
 
-3.5 You agree that the form and nature of the Google TV Add-on that Google provides may change without prior notice to you and that future versions of the Google TV Add-on may be incompatible with applications developed on previous versions of the Google TV Add-on. You agree that Google may stop (permanently or temporarily) providing the Google TV Add-on (or any features within the Google TV Add-on) to you or to users generally at Google's sole discretion, without prior notice to you.
+3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
 
-3.6 Nothing in this License Agreement gives you a right to use any of Google's or it’s licensors’ trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
 
-3.7 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Google TV Add-on.
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.
 
-4. Use of the Google TV Add-on by You
+4. Use of the Preview by You
 
-4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the Google TV Add-on, including any intellectual property rights that subsist in those applications.
+4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
 
-4.2 You agree to use the Google TV Add-on and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
 
-4.3 You agree that if you use the Google TV Add-on to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, your must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you explicit permission to do so.
+4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
 
-4.4 You agree that you will not engage in any activity with the Google TV Add-on, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google, Multichannel Video Program Distributors or any mobile communications carrier.
+4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
 
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through the Google TV platform and/or applications for the Google TV platform, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
 
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.
 
 5. Your Developer Credentials
 
@@ -237,233 +211,221 @@ This is the Google TV Add-on for the Android Software Development Kit License Ag
 
 6. Privacy and Information
 
-6.1 In order to continually innovate and improve the Google TV Add-on, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Google TV Add-on are being used and how they are being used. Before any of this information is collected, the Google TV Add-on will notify you and seek your consent. If you withhold consent, the information will not be collected.
+6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
 
-6.2 The data collected is examined in the aggregate to improve the Google TV Add-on and is maintained in accordance with Google's Privacy Policy.
+6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
 
-7. Third Party Applications for the Google TV Platform
+7. Third Party Applications
 
-7.1 If you use the Google TV Add-on to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
 
 7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
 
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
-
-8. Using Google TV APIs
-
-8.1 If you use any Google TV API to retrieve data from Google, you acknowledge that the data (“Google TV API Content”) may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.  Some portions of the Google TV API Content are licensed to Google by third parties, including but not limited to Tribune Media Services
-
-8.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
-
-8.3 Except as explicitly permitted in Section 3 (Google TV Add-on License from Google), you must:
-
-(a) not modify nor format the Google TV API Content except to the extent reasonably and technically necessary to optimize the display such Google TV API Content in your application;
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
 
-(b) not edit the Google TV API Content in a manner that renders the Google TV API Content inaccurate of alters its inherent meaning (provided that displaying excerpts will not violate the foregoing); or
+8. Using Google APIs
 
-(c)  not create any commercial audience measurement tool or service using the Google TV API Content
+8.1 Google APIs
 
-9. Terminating this License Agreement
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
 
-9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
 
-9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the Google TV Add-on and any relevant developer credentials.
+9. Terminating the License Agreement
 
-9.3 Google may at any time, terminate this License Agreement with you if:
+9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.
 
-(A) you have breached any provision of this License Agreement; or
+9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.
 
-(B) Google is required to do so by law; or
+9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
 
-(C) the partner with whom Google offered certain parts of Google TV Add-on (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the Google TV Add-on to you; or
+9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of:
+(A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and
+(B) Google issues a final release version of the Android SDK.
 
-(D) Google decides to no longer providing the Google TV Add-on or certain parts of the Google TV Add-on to users in the country in which you are resident or from which you use the service, or the provision of the Google TV Add-on or certain Google TV Add-on services to you by Google is, in Google's sole discretion, no longer commercially viable.
+9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
 
-9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
+10. DISCLAIMERS
 
-10. DISCLAIMER OF WARRANTIES
-
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE GOOGLE TV ADD-ON IS AT YOUR SOLE RISK AND THAT THE GOOGLE TV ADD-ON IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
 
-10.2 YOUR USE OF THE GOOGLE TV ADD-ON AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE GOOGLE TV ADD-ON IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
 
 10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
 
 11. LIMITATION OF LIABILITY
 
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
 
 12. Indemnification
 
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the Google TV Add-on, (b) any application you develop on the Google TV Add-on that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
 
 13. Changes to the License Agreement
 
-13.1 Google may make changes to the License Agreement as it distributes new versions of the Google TV Add-on.
+13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.
 
 14. General Legal Terms
 
-14.1 This License Agreement constitute the whole legal agreement between you and Google and govern your use of the Google TV Add-on (excluding any services which Google may provide to you under a separate written agreement), and completely replace any prior agreements between you and Google in relation to the Google TV Add-on.
+14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.
 
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
 
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
 
-14.4 You acknowledge and agree that Google’s API data licensors and each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
 
-14.5 EXPORT RESTRICTIONS. THE GOOGLE TV ADD-ON IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE GOOGLE TV ADD-ON. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
 
-14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
-
-14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
 
+14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
 
-August 15, 2011
+June 2014.
     </sdk:license>
 
-    <sdk:license id="google-gdk-license" type="text">This is an early Sneak Peek of the GDK that is subject to change. Please stay tuned for the full Developer Preview coming soon.
-
-Terms and Conditions
+    <sdk:license id="android-googletv-license" type="text">Terms and Conditions
 
-This is the Glass Development Kit License Agreement.
+This is the Google TV Add-on for the Android Software Development Kit License Agreement.
 
 1. Introduction
 
-1.1 The Glass Development Kit (referred to in this License Agreement as the "GDK" and specifically including the Android system files, packaged APIs, and GDK library files, if and when they are made available) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the GDK.
-
-1.2 &quot;Glass&quot; means Glass devices and the Glass software stack for use on Glass devices.
-
-
-1.3 &quot;Android&quot; means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+1.1 The Google TV Add-on for the Android Software Development Kit (referred to in this License Agreement as the &quot;Google TV Add-on&quot; and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the Google TV Add-on.
 
-1.4 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+1.2 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
 
 2. Accepting this License Agreement
 
-2.1 In order to use the GDK, you must first agree to this License Agreement. You may not use the GDK if you do not accept this License Agreement.
-
-2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
+2.1 In order to use the Google TV Add-on, you must first agree to this License Agreement. You may not use the Google TV Add-on if you do not accept this License Agreement.
 
-2.3 You may not use the GDK and may not accept the License Agreement if you are a person barred from receiving the GDK under the laws of the United States or other countries including the country in which you are resident or from which you use the GDK.
+2.2 You can accept this License Agreement by:
 
-2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the GDK on behalf of your employer or other entity.
+(A) clicking to accept or agree to this License Agreement, where this option is made available to you; or
 
-3. GDK License from Google
+(B) by actually using the Google TV Add-on.  In this case, you agree that use of the Google TV Add-on constitutes acceptance of the License Agreement from that point onwards.
 
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the GDK solely to develop applications to run on the Glass platform for Glass devices.
+2.3 You may not use the Google TV Add-on and may not accept the Licensing Agreement if you are a person barred from receiving the Google TV Add-on under the laws of the United States or other countries including the country in which you are resident or from which you use the Google TV Add-on.
 
-3.2 You agree that Google or third parties own all legal right, title and interest in and to the GDK, including any Intellectual Property Rights that subsist in the GDK. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the Licensing Agreement or use the Google TV Add-on on behalf of your employer or other entity.
 
-3.3 You may not use the GDK for any purpose not expressly permitted by this License Agreement.  Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the GDK or any part of the GDK; or (b) load any part of the GDK onto a mobile handset or wearable computing device or any other hardware device except a Glass device personal computer, combine any part of the GDK with other software, or distribute any software or device incorporating a part of the GDK.
+3. Google TV Add-on License from Google
 
-3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Glass, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the GDK.
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non- assignable and non-exclusive license to use the Google TV Add-on solely to develop applications to run on the Google TV platform.
 
-3.5 Use, reproduction and distribution of components of the GDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the Google TV Add-on, including any Intellectual Property Rights that subsist in the Google TV Add-on. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
 
-3.6 You agree that the form and nature of the GDK that Google provides may change without prior notice to you and that future versions of the GDK may be incompatible with applications developed on previous versions of the GDK. You agree that Google may stop (permanently or temporarily) providing the GDK (or any features within the GDK) to you or to users generally at Google's sole discretion, without prior notice to you.
+3.3 Except to the extent required by applicable third party licenses, you may not copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Google TV Add-on or any part of the Google TV Add-on. Except to the extent required by applicable third party licenses, you may not load any part of the Google TV Add-on onto a mobile handset, television, or any other hardware device except a personal computer, combine any part of the Google TV Add-on with other software, or distribute any software or device incorporating a part of the Google TV Add-on.
 
-3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+3.4 Use, reproduction and distribution of components of the Google TV Add-on licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
 
-3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the GDK.
+3.5 You agree that the form and nature of the Google TV Add-on that Google provides may change without prior notice to you and that future versions of the Google TV Add-on may be incompatible with applications developed on previous versions of the Google TV Add-on. You agree that Google may stop (permanently or temporarily) providing the Google TV Add-on (or any features within the Google TV Add-on) to you or to users generally at Google's sole discretion, without prior notice to you.
 
+3.6 Nothing in this License Agreement gives you a right to use any of Google's or it’s licensors’ trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
 
-3.9 Your use of any Android system files, packaged APIs, or other components of the GDK which are part of the Android Software Development Kit is subject to the terms of the Android Software Development Kit License Agreement located at http://developer.android.com/sdk/terms.html. These terms are hereby incorporated by reference into this License Agreement.
+3.7 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Google TV Add-on.
 
-4. Use of the GDK by You
+4. Use of the Google TV Add-on by You
 
-4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the GDK, including any intellectual property rights that subsist in those applications.
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the Google TV Add-on, including any intellectual property rights that subsist in those applications.
 
-4.2 You agree to use the GDK and write applications only for purposes that are permitted by (a) this License Agreement, (b) the Glass Platform Developer Policies (located at https://developers.google.com/glass/policies, and hereby incorporated into this License Agreement by reference), and (c) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+4.2 You agree to use the Google TV Add-on and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
 
-4.3 You agree that if you use the GDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
+4.3 You agree that if you use the Google TV Add-on to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, your must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you explicit permission to do so.
 
-4.4 You agree that you will not engage in any activity with the GDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google.
+4.4 You agree that you will not engage in any activity with the Google TV Add-on, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google, Multichannel Video Program Distributors or any mobile communications carrier.
 
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Glass and/or applications for Glass, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through the Google TV platform and/or applications for the Google TV platform, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
 
 4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
 
-
-4.7 The GDK is in development, and your testing and feedback are an important part of the development process. By using the GDK, you acknowledge that implementation of some features are still under development and that you should not rely on the GDK, Glass devices, Glass system software, Google Mirror API, or Glass services having the full functionality of a stable release.
-
 5. Your Developer Credentials
 
 5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
 
 6. Privacy and Information
 
+6.1 In order to continually innovate and improve the Google TV Add-on, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Google TV Add-on are being used and how they are being used. Before any of this information is collected, the Google TV Add-on will notify you and seek your consent. If you withhold consent, the information will not be collected.
 
-6.1 In order to continually innovate and improve the GDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the GDK are being used and how they are being used. Before any of this information is collected, the GDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
-
-6.2 The data collected is examined in the aggregate to improve the GDK and is maintained in accordance with Google's Privacy Policy.
+6.2 The data collected is examined in the aggregate to improve the Google TV Add-on and is maintained in accordance with Google's Privacy Policy.
 
-7. Third Party Applications
+7. Third Party Applications for the Google TV Platform
 
-7.1 If you use the GDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+7.1 If you use the Google TV Add-on to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
 
 7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
 
 7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
 
-8. Using Google APIs
+8. Using Google TV APIs
 
-8.1 Google APIs
+8.1 If you use any Google TV API to retrieve data from Google, you acknowledge that the data (“Google TV API Content”) may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.  Some portions of the Google TV API Content are licensed to Google by third parties, including but not limited to Tribune Media Services
 
-8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+8.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
 
-8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+8.3 Except as explicitly permitted in Section 3 (Google TV Add-on License from Google), you must:
+
+(a) not modify nor format the Google TV API Content except to the extent reasonably and technically necessary to optimize the display such Google TV API Content in your application;
+
+(b) not edit the Google TV API Content in a manner that renders the Google TV API Content inaccurate of alters its inherent meaning (provided that displaying excerpts will not violate the foregoing); or
+
+(c)  not create any commercial audience measurement tool or service using the Google TV API Content
 
 9. Terminating this License Agreement
 
 9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
 
-9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the GDK and any relevant developer credentials.
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the Google TV Add-on and any relevant developer credentials.
 
 9.3 Google may at any time, terminate this License Agreement with you if:
+
 (A) you have breached any provision of this License Agreement; or
+
 (B) Google is required to do so by law; or
-(C) the partner with whom Google offered certain parts of GDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the GDK to you; or
-(D) Google decides to no longer provide the GDK or certain parts of the GDK to users in the country in which you are resident or from which you use the service, or the provision of the GDK or certain GDK services to you by Google is, in Google's sole discretion, no longer commercially viable.
+
+(C) the partner with whom Google offered certain parts of Google TV Add-on (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the Google TV Add-on to you; or
+
+(D) Google decides to no longer providing the Google TV Add-on or certain parts of the Google TV Add-on to users in the country in which you are resident or from which you use the service, or the provision of the Google TV Add-on or certain Google TV Add-on services to you by Google is, in Google's sole discretion, no longer commercially viable.
 
 9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
 
 10. DISCLAIMER OF WARRANTIES
 
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE GDK IS AT YOUR SOLE RISK AND THAT THE GDK IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE GOOGLE TV ADD-ON IS AT YOUR SOLE RISK AND THAT THE GOOGLE TV ADD-ON IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
 
-10.2 YOUR USE OF THE GDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE GDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+10.2 YOUR USE OF THE GOOGLE TV ADD-ON AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE GOOGLE TV ADD-ON IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
 
 10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
 
 11. LIMITATION OF LIABILITY
 
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
 
 12. Indemnification
 
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the GDK, (b) any application you develop on the GDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the Google TV Add-on, (b) any application you develop on the Google TV Add-on that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
 
 13. Changes to the License Agreement
 
-13.1 Google may make changes to the License Agreement as it distributes new versions of the GDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the GDK is made available.
+13.1 Google may make changes to the License Agreement as it distributes new versions of the Google TV Add-on.
 
 14. General Legal Terms
 
-14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the GDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the GDK.
+14.1 This License Agreement constitute the whole legal agreement between you and Google and govern your use of the Google TV Add-on (excluding any services which Google may provide to you under a separate written agreement), and completely replace any prior agreements between you and Google in relation to the Google TV Add-on.
 
 14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
 
 14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
 
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
+14.4 You acknowledge and agree that Google’s API data licensors and each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
 
-14.5 EXPORT RESTRICTIONS. THE GDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE GDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+14.5 EXPORT RESTRICTIONS. THE GOOGLE TV ADD-ON IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE GOOGLE TV ADD-ON. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
 
 14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
 
 14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
 
-November 19, 2013
+
+August 15, 2011
     </sdk:license>
 
     <!-- ADD-ONS ....................... -->
@@ -479,7 +441,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>34908058</sdk:size>
                 <sdk:checksum type="sha1">1f92abf3a76be66ae8032257fc7620acbd2b2e3a</sdk:checksum>
                 <sdk:url>google_apis-3-r03.zip</sdk:url>
@@ -506,7 +468,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>42435735</sdk:size>
                 <sdk:checksum type="sha1">9b6e86d8568558de4d606a7debc4f6049608dbd0</sdk:checksum>
                 <sdk:url>google_apis-4_r02.zip</sdk:url>
@@ -534,7 +496,7 @@ November 19, 2013
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:obsolete/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>49123776</sdk:size>
                 <sdk:checksum type="sha1">46eaeb56b645ee7ffa24ede8fa17f3df70db0503</sdk:checksum>
                 <sdk:url>google_apis-5_r01.zip</sdk:url>
@@ -562,7 +524,7 @@ November 19, 2013
         <sdk:obsolete/>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>53382941</sdk:size>
                 <sdk:checksum type="sha1">5ff545d96e031e09580a6cf55713015c7d4936b2</sdk:checksum>
                 <sdk:url>google_apis-6_r01.zip</sdk:url>
@@ -589,7 +551,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>53691339</sdk:size>
                 <sdk:checksum type="sha1">2e7f91e0fe34fef7f58aeced973c6ae52361b5ac</sdk:checksum>
                 <sdk:url>google_apis-7_r01.zip</sdk:url>
@@ -616,7 +578,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>59505020</sdk:size>
                 <sdk:checksum type="sha1">3079958e7ec87222cac1e6b27bc471b27bf2c352</sdk:checksum>
                 <sdk:url>google_apis-8_r02.zip</sdk:url>
@@ -643,7 +605,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>63401546</sdk:size>
                 <sdk:checksum type="sha1">78664645a1e9accea4430814f8694291a7f1ea5d</sdk:checksum>
                 <sdk:url>google_apis-9_r02.zip</sdk:url>
@@ -671,7 +633,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>65781578</sdk:size>
                 <sdk:checksum type="sha1">cc0711857c881fa7534f90cf8cc09b8fe985484d</sdk:checksum>
                 <sdk:url>google_apis-10_r02.zip</sdk:url>
@@ -698,7 +660,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>83477179</sdk:size>
                 <sdk:checksum type="sha1">5eab5e81addee9f3576d456d205208314b5146a5</sdk:checksum>
                 <sdk:url>google_apis-11_r01.zip</sdk:url>
@@ -725,7 +687,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>86099835</sdk:size>
                 <sdk:checksum type="sha1">e9999f4fa978812174dfeceec0721c793a636e5d</sdk:checksum>
                 <sdk:url>google_apis-12_r01.zip</sdk:url>
@@ -752,7 +714,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>88615525</sdk:size>
                 <sdk:checksum type="sha1">3b153edd211c27dc736c893c658418a4f9041417</sdk:checksum>
                 <sdk:url>google_apis-13_r01.zip</sdk:url>
@@ -785,7 +747,7 @@ November 19, 2013
             </sdk:lib>
         </sdk:libs>
         <sdk:archives>
-            <sdk:archive arch="any" os="any">
+            <sdk:archive>
                 <sdk:size>106533714</sdk:size>
                 <sdk:checksum type="sha1">f8eb4d96ad0492b4c0db2d7e4f1a1a3836664d39</sdk:checksum>
                 <sdk:url>google_apis-14_r02.zip</sdk:url>
@@ -814,7 +776,7 @@ November 19, 2013
             </sdk:lib>
         </sdk:libs>
         <sdk:archives>
-            <sdk:archive arch="any" os="any">
+            <sdk:archive>
                 <sdk:size>106612472</sdk:size>
                 <sdk:checksum type="sha1">6757c12788da0ea00c2ab58e54cb438b9f2bcf66</sdk:checksum>
                 <sdk:url>google_apis-15_r02.zip</sdk:url>
@@ -844,7 +806,7 @@ November 19, 2013
             </sdk:lib>
         </sdk:libs>
         <sdk:archives>
-            <sdk:archive arch="any" os="any">
+            <sdk:archive>
                 <sdk:size>127278413</sdk:size>
                 <sdk:checksum type="sha1">63467dd32f471e3e81e33e9772c22f33235aa3b3</sdk:checksum>
                 <sdk:url>google_apis-16_r03.zip</sdk:url>
@@ -874,7 +836,7 @@ November 19, 2013
             </sdk:lib>
         </sdk:libs>
         <sdk:archives>
-            <sdk:archive arch="any" os="any">
+            <sdk:archive>
                 <sdk:size>137156978</sdk:size>
                 <sdk:checksum type="sha1">8246f61d24f0408c8e7bc352a1e522b7e2b619ba</sdk:checksum>
                 <sdk:url>google_apis-17_r03.zip</sdk:url>
@@ -904,7 +866,7 @@ November 19, 2013
             </sdk:lib>
         </sdk:libs>
         <sdk:archives>
-            <sdk:archive arch="any" os="any">
+            <sdk:archive>
                 <sdk:size>143149689</sdk:size>
                 <sdk:checksum type="sha1">147bce09c1163edc17194f3db496ec1086fcf965</sdk:checksum>
                 <sdk:url>google_apis-18_r03.zip</sdk:url>
@@ -914,14 +876,14 @@ November 19, 2013
     </sdk:add-on>
 
     <sdk:add-on>
-        <!-- Generated at Mon Oct 28 22:29:49 2013 from git_klp-release @ 892118 -->
+        <!-- Generated at Wed Jul 30 22:26:20 2014 from git_klp-sdk-release @ 1314097 -->
         <sdk:vendor-id>google</sdk:vendor-id>
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
         <sdk:name-id>google_apis</sdk:name-id>
-        <sdk:name-display>Google APIs</sdk:name-display>
+        <sdk:name-display>Google APIs (ARM System Image)</sdk:name-display>
         <sdk:description>Android + Google APIs</sdk:description>
         <sdk:api-level>19</sdk:api-level>
-        <sdk:revision>1</sdk:revision>
+        <sdk:revision>7</sdk:revision>
         <sdk:libs>
             <sdk:lib>
                 <sdk:name>com.google.android.maps</sdk:name>
@@ -934,16 +896,15 @@ November 19, 2013
             </sdk:lib>
         </sdk:libs>
         <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>150689239</sdk:size>
-                <sdk:checksum type="sha1">6c530a8318446e4da1e3ab7d2abd154bc493bc5a</sdk:checksum>
-                <sdk:url>google_apis-19_r01.zip</sdk:url>
+            <sdk:archive>
+                <sdk:size>160661775</sdk:size>
+                <sdk:checksum type="sha1">150f5a3fec4f03313ca770b90126605619bd713c</sdk:checksum>
+                <sdk:url>google_apis-19_r07.zip</sdk:url>
             </sdk:archive>
         </sdk:archives>
         <sdk:uses-license ref="android-sdk-license"/>
     </sdk:add-on>
 
-
     <!-- GOOGLE TV ADDONS ............. -->
 
     <sdk:add-on>
@@ -957,10 +918,11 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-googletv-license"/>
         <sdk:archives>
-            <sdk:archive os="linux">
+            <sdk:archive>
                 <sdk:size>78266751</sdk:size>
                 <sdk:checksum type="sha1">92128a12e7e8b0fb5bac59153d7779b717e7b840</sdk:checksum>
                 <sdk:url>google_tv-12_r02.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
             </sdk:archive>
         </sdk:archives>
         <sdk:libs/>
@@ -977,7 +939,7 @@ November 19, 2013
         <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
         <sdk:uses-license ref="android-googletv-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>87721879</sdk:size>
                 <sdk:checksum type="sha1">b73f7c66011ac8180b44aa4e83b8d78c66ea9a09</sdk:checksum>
                 <sdk:url>google_tv-13_r01.zip</sdk:url>
@@ -986,71 +948,48 @@ November 19, 2013
         <sdk:libs/>
     </sdk:add-on>
 
-
-    <!-- GLASS ADDONS ............. -->
-
-    <sdk:add-on>
-        <sdk:vendor-id>google</sdk:vendor-id>
-        <sdk:vendor-display>Google Inc.</sdk:vendor-display>
-        <sdk:name-id>google_gdk</sdk:name-id>
-        <sdk:name-display>Glass Development Kit Sneak Peek</sdk:name-display>
-        <sdk:api-level>15</sdk:api-level>
-        <sdk:revision>01</sdk:revision>
-        <sdk:description>Sneak peek of the Glass Development Kit</sdk:description>
-        <sdk:desc-url>https://developers.google.com/glass/gdk/</sdk:desc-url>
-        <sdk:uses-license ref="google-gdk-license"/>
-        <sdk:archives>
-            <sdk:archive os="any">
-                <sdk:size>281839</sdk:size>
-                <sdk:checksum type="sha1">a3c7317fb2fe8a0dfc06828a5aabc457372b82a7</sdk:checksum>
-                <sdk:url>https://dl-ssl.google.com/glass/xe11/google-gdk.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:libs>
-            <sdk:lib>
-                <sdk:name>com.google.android.glass</sdk:name>
-                <sdk:description>APIs for Google Glass Development Kit Sneak Peek.</sdk:description>
-            </sdk:lib>
-        </sdk:libs>
-    </sdk:add-on>
-
-
     <!-- EXTRAS VENDOR=ANDROID ........................ -->
 
     <sdk:extra>
-        <!-- Generated at Wed Oct 30 14:52:38 2013 from git_klp-dev @ 894928 -->
-        <sdk:revision>19</sdk:revision>
+        <!-- Generated at Mon Jun 23 19:18:59 2014 from git_klp-modular-release @ 1246132 -->
+        <sdk:revision>
+            <sdk:major>20</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>0</sdk:micro>
+        </sdk:revision>
         <sdk:vendor-display>Android</sdk:vendor-display>
         <sdk:vendor-id>android</sdk:vendor-id>
         <sdk:name-display>Android Support Library</sdk:name-display>
         <sdk:path>support</sdk:path>
         <sdk:old-paths>compatibility</sdk:old-paths>
         <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>4905998</sdk:size>
-                <sdk:checksum type="sha1">54b8661595856a08f032d41bb139f375a7609308</sdk:checksum>
-                <sdk:url>support_r19.zip</sdk:url>
+            <sdk:archive>
+                <sdk:size>5508097</sdk:size>
+                <sdk:checksum type="sha1">719c260dc3eb950712988f987daaf91afa9e36af</sdk:checksum>
+                <sdk:url>support_r20.zip</sdk:url>
             </sdk:archive>
         </sdk:archives>
         <sdk:uses-license ref="android-sdk-license"/>
     </sdk:extra>
 
     <sdk:extra>
-        <!-- Generated from git_klp-dev @ 894928  -->
-        <sdk:revision>3</sdk:revision>
+        <!-- Generated from git_lmp-preview-release @ 1242878  -->
+        <sdk:revision>
+            <sdk:major>6</sdk:major>
+        </sdk:revision>
         <sdk:vendor-display>Android</sdk:vendor-display>
         <sdk:vendor-id>android</sdk:vendor-id>
         <sdk:name-display>Android Support Repository</sdk:name-display>
         <sdk:description>Local Maven repository for Support Libraries</sdk:description>
         <sdk:path>m2repository</sdk:path>
         <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>6282146</sdk:size>
-                <sdk:checksum type="sha1">db4650f817f1507211ec6186d2d9e72074e6df12</sdk:checksum>
-                <sdk:url>android_m2repository_r03.zip</sdk:url>
+            <sdk:archive>
+                <sdk:size>22271942</sdk:size>
+                <sdk:checksum type="sha1">d4874fd330f41a7c16de392ce917c2a3562dd620</sdk:checksum>
+                <sdk:url>android_m2repository_r06.zip</sdk:url>
             </sdk:archive>
         </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:uses-license ref="android-sdk-preview-license"/>
     </sdk:extra>
 
     <!-- EXTRAS VENDOR=GOOGLE ....................... -->
@@ -1060,14 +999,16 @@ November 19, 2013
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
         <sdk:name-display>Google Repository</sdk:name-display>
         <sdk:path>m2repository</sdk:path>
-        <sdk:revision>4</sdk:revision>
+        <sdk:revision>
+            <sdk:major>11</sdk:major>
+        </sdk:revision>
         <sdk:description>Local Maven repository for Google Libraries</sdk:description>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
-                <sdk:size>3891592</sdk:size>
-                <sdk:checksum type="sha1">c418daafd203a8cb4899d49bd321da83b927586e</sdk:checksum>
-                <sdk:url>google_m2repository_r04.zip</sdk:url>
+            <sdk:archive>
+                <sdk:size>18832133</sdk:size>
+                <sdk:checksum type="sha1">08b5114037d187cf3d4b44a25570149ef4f8ab3d</sdk:checksum>
+                <sdk:url>google_m2repository_r11.zip</sdk:url>
             </sdk:archive>
         </sdk:archives>
     </sdk:extra>
@@ -1078,11 +1019,13 @@ November 19, 2013
         <sdk:name-display>Google Play Licensing Library</sdk:name-display>
         <sdk:path>play_licensing</sdk:path>
         <sdk:old-paths>market_licensing</sdk:old-paths>
-        <sdk:revision>2</sdk:revision>
+        <sdk:revision>
+            <sdk:major>2</sdk:major>
+        </sdk:revision>
         <sdk:description>Google Play Licensing client library</sdk:description>
         <sdk:desc-url>http://developer.android.com/guide/publishing/licensing.html</sdk:desc-url>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>75109</sdk:size>
                 <sdk:checksum type="sha1">355e8dc304a92a5616db235af8ee7bd554356254</sdk:checksum>
                 <sdk:url>market_licensing-r02.zip</sdk:url>
@@ -1097,11 +1040,13 @@ November 19, 2013
         <sdk:name-display>Google Play APK Expansion Library</sdk:name-display>
         <sdk:path>play_apk_expansion</sdk:path>
         <sdk:old-paths>market_apk_expansion</sdk:old-paths>
-        <sdk:revision>3</sdk:revision>
+        <sdk:revision>
+            <sdk:major>3</sdk:major>
+        </sdk:revision>
         <sdk:description>Google Play APK Expansion library</sdk:description>
         <sdk:desc-url>http://developer.android.com/guide/market/expansion-files.html</sdk:desc-url>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>110201</sdk:size>
                 <sdk:checksum type="sha1">5305399dc1a56814e86b8459ce24871916f78b8c</sdk:checksum>
                 <sdk:url>market_apk_expansion-r03.zip</sdk:url>
@@ -1115,12 +1060,14 @@ November 19, 2013
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
         <sdk:name-display>Google Play services for Froyo</sdk:name-display>
         <sdk:path>google_play_services_froyo</sdk:path>
-        <sdk:revision>12</sdk:revision>
+        <sdk:revision>
+            <sdk:major>12</sdk:major>
+        </sdk:revision>
         <sdk:description>Google Play services client library and sample code</sdk:description>
         <sdk:desc-url>https://developers.google.com/android/google-play-services/index</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>5265389</sdk:size>
                 <sdk:checksum type="sha1">92558dbc380bba3d55d0ec181167fb05ce7c79d9</sdk:checksum>
                 <sdk:url>google_play_services_3265130_r12.zip</sdk:url>
@@ -1133,34 +1080,59 @@ November 19, 2013
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
         <sdk:name-display>Google Play services</sdk:name-display>
         <sdk:path>google_play_services</sdk:path>
-        <sdk:revision>13</sdk:revision>
+        <sdk:revision>
+            <sdk:major>19</sdk:major>
+        </sdk:revision>
         <sdk:description>Google Play services client library and sample code</sdk:description>
         <sdk:desc-url>https://developers.google.com/android/google-play-services/index</sdk:desc-url>
         <sdk:uses-license ref="android-sdk-license"/>
         <sdk:archives>
-            <sdk:archive os="any">
-                <sdk:size>7958511</sdk:size>
-                <sdk:checksum type="sha1">1be94e8f767616e862f0088ab673e1980a6022c4</sdk:checksum>
-                <sdk:url>google_play_services_4030530_r13.zip</sdk:url>
+            <sdk:archive>
+                <sdk:size>13982276</sdk:size>
+                <sdk:checksum type="sha1">847a8806dd3c43effc2afdd7b49fc6ba27f72d5d</sdk:checksum>
+                <sdk:url>google_play_services_5089000_r19.zip</sdk:url>
             </sdk:archive>
         </sdk:archives>
     </sdk:extra>
 
     <sdk:extra>
-        <!-- Generated at Thu Jul 18 16:46:04 PDT 2013 from git_master @ 745409 -->
         <sdk:vendor-id>google</sdk:vendor-id>
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
-        <sdk:name-display>Google USB Driver</sdk:name-display>
-        <sdk:path>usb_driver</sdk:path>
-        <sdk:revision>8</sdk:revision>
-        <sdk:description>USB Driver for Windows, revision 8</sdk:description>
-        <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
+        <sdk:name-display>Google Play services for Fit Preview</sdk:name-display>
+        <sdk:path>google_play_services_fit_preview</sdk:path>
+        <sdk:revision>
+            <sdk:major>1</sdk:major>
+        </sdk:revision>
+        <sdk:description>Google Play services client library and sample code</sdk:description>
+        <sdk:desc-url>https://developers.google.com/android/google-play-services/index</sdk:desc-url>
+        <sdk:uses-license ref="android-sdk-preview-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>15224769</sdk:size>
+                <sdk:checksum type="sha1">34369ca796268ec7274bc49d659d9e8f042b55ae</sdk:checksum>
+                <sdk:url>google_play_services_fit_preview_5208000_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+    </sdk:extra>
+
+    <sdk:extra>
+        <!-- Generated at Tue Jun 10 11:38:56 2014 from git_master-release @ 1216520 -->
+        <sdk:vendor-id>google</sdk:vendor-id>
         <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:desc-url>http://developer.android.com/</sdk:desc-url>
+        <sdk:path>usb_driver</sdk:path>
+        <sdk:description>USB Driver for Windows, revision 10</sdk:description>
+        <sdk:name-display>Google USB Driver</sdk:name-display>
+        <sdk:vendor-display>Google Inc.</sdk:vendor-display>
+        <sdk:revision>
+            <sdk:major>10</sdk:major>
+        </sdk:revision>
         <sdk:archives>
-            <sdk:archive os="windows">
-                <sdk:size>8682230</sdk:size>
-                <sdk:checksum type="sha1">2b2f91098a984a865a70f0bd841a843fb54462fc</sdk:checksum>
-                <sdk:url>usb_driver_r08-windows.zip</sdk:url>
+            <sdk:archive>
+                <sdk:url>usb_driver_r10-windows.zip</sdk:url>
+                <sdk:checksum type="sha1">a5f8280829f07bb3144a8d657ec7aa0128443a2c</sdk:checksum>
+                <sdk:size>8682752</sdk:size>
+                <sdk:host-os>windows</sdk:host-os>
             </sdk:archive>
         </sdk:archives>
     </sdk:extra>
@@ -1171,11 +1143,13 @@ November 19, 2013
         <sdk:name-display>Google Play Billing Library</sdk:name-display>
         <sdk:path>play_billing</sdk:path>
         <sdk:old-paths>market_billing</sdk:old-paths>
-        <sdk:revision>5</sdk:revision>
+        <sdk:revision>
+            <sdk:major>5</sdk:major>
+        </sdk:revision>
         <sdk:description>Google Play Billing files and sample code</sdk:description>
         <sdk:desc-url>http://developer.android.com/google/play/billing/index.html</sdk:desc-url>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>436654</sdk:size>
                 <sdk:checksum type="sha1">bd2ac5ce7127070ac3229003eb69cfb806628ac9</sdk:checksum>
                 <sdk:url>play_billing_r05.zip</sdk:url>
@@ -1189,29 +1163,35 @@ November 19, 2013
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
         <sdk:name-display>Google AdMob Ads SDK</sdk:name-display>
         <sdk:path>admob_ads_sdk</sdk:path>
-        <sdk:revision>11</sdk:revision>
+        <sdk:revision>
+            <sdk:major>11</sdk:major>
+        </sdk:revision>
         <sdk:description>AdMob Ads SDK</sdk:description>
         <sdk:desc-url>https://developers.google.com/mobile-ads-sdk/docs/</sdk:desc-url>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>704512</sdk:size>
                 <sdk:checksum type="sha1">0102859d9575baa0bf4fd5eb422af2ad0fe6cb82</sdk:checksum>
                 <sdk:url>https://dl-ssl.google.com/googleadmobadssdk/googleadmobadssdkandroid-6.4.1.zip</sdk:url>
             </sdk:archive>
         </sdk:archives>
         <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:obsolete/>
     </sdk:extra>
 
     <sdk:extra>
+        <sdk:obsolete/>
         <sdk:vendor-id>google</sdk:vendor-id>
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
         <sdk:name-display>Google Analytics App Tracking SDK</sdk:name-display>
         <sdk:path>analytics_sdk_v2</sdk:path>
-        <sdk:revision>3</sdk:revision>
+        <sdk:revision>
+            <sdk:major>3</sdk:major>
+        </sdk:revision>
         <sdk:description>Analytics App Tracking SDK</sdk:description>
         <sdk:desc-url>http://developers.google.com/analytics/devguides/collection/</sdk:desc-url>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>211432</sdk:size>
                 <sdk:checksum type="sha1">dc14026bf0ce78315cb5dd00552607de0894de83</sdk:checksum>
                 <sdk:url>https://dl.google.com/gaformobileapps/GoogleAnalyticsAndroid_2.0beta5.zip</sdk:url>
@@ -1225,11 +1205,13 @@ November 19, 2013
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
         <sdk:name-display>Google Web Driver</sdk:name-display>
         <sdk:path>webdriver</sdk:path>
-        <sdk:revision>2</sdk:revision>
+        <sdk:revision>
+            <sdk:major>2</sdk:major>
+        </sdk:revision>
         <sdk:description>WebDriver</sdk:description>
         <sdk:desc-url>http://selenium.googlecode.com</sdk:desc-url>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>4055193</sdk:size>
                 <sdk:checksum type="sha1">13f3a3b2670a5fc04a7342861644be9a01b07e38</sdk:checksum>
                 <sdk:url>webdriver_r02.zip</sdk:url>
@@ -1241,18 +1223,21 @@ November 19, 2013
     <sdk:extra>
         <sdk:vendor-id>google</sdk:vendor-id>
         <sdk:vendor-display>Google Inc.</sdk:vendor-display>
-        <sdk:name-display>[Deprecated] Google Cloud Messaging for Android Library</sdk:name-display>
+        <sdk:name-display>Google Cloud Messaging for Android Library</sdk:name-display>
         <sdk:path>gcm</sdk:path>
-        <sdk:revision>3</sdk:revision>
+        <sdk:revision>
+            <sdk:major>3</sdk:major>
+        </sdk:revision>
         <sdk:description>GCM library has been moved to Google Play Services (com.google.android.gms.gcm) and this standalone version is no longer supported</sdk:description>
         <sdk:desc-url>https://developers.google.com/android/gcm/index</sdk:desc-url>
         <sdk:archives>
-            <sdk:archive os="any">
+            <sdk:archive>
                 <sdk:size>5901400</sdk:size>
                 <sdk:checksum type="sha1">ad066fd0dc7fc99d8aadac09c65a3c2519fbc7bf</sdk:checksum>
                 <sdk:url>gcm_r03.zip</sdk:url>
             </sdk:archive>
         </sdk:archives>
         <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:obsolete/>
     </sdk:extra>
 </sdk:sdk-addon>
diff --git a/pkgs/development/mobile/androidenv/addons.nix b/pkgs/development/mobile/androidenv/addons.nix
index 8aacde4eee7..4f7ed6e9e8e 100644
--- a/pkgs/development/mobile/androidenv/addons.nix
+++ b/pkgs/development/mobile/androidenv/addons.nix
@@ -209,8 +209,8 @@ in
   google_apis_19 = buildGoogleApis {
     name = "google_apis-19";
       src = fetchurl {
-        url = https://dl-ssl.google.com/android/repository/google_apis-19_r01.zip;
-        sha1 = "6c530a8318446e4da1e3ab7d2abd154bc493bc5a";
+        url = https://dl-ssl.google.com/android/repository/google_apis-19_r07.zip;
+        sha1 = "150f5a3fec4f03313ca770b90126605619bd713c";
       };
       meta = {
         description = "Android + Google APIs";
diff --git a/pkgs/development/mobile/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix
index 3c9327f1c59..560753eecfc 100644
--- a/pkgs/development/mobile/androidenv/androidsdk.nix
+++ b/pkgs/development/mobile/androidenv/androidsdk.nix
@@ -1,5 +1,5 @@
 { stdenv, stdenv_32bit, fetchurl, unzip, makeWrapper
-, platformTools, buildTools, support, platforms, sysimages, addons
+, platformTools, buildTools, support, supportRepository, platforms, sysimages, addons
 , zlib_32bit
 , libX11_32bit, libxcb_32bit, libXau_32bit, libXdmcp_32bit, libXext_32bit, mesa_32bit, alsaLib_32bit
 , libX11, libXext, libXrender, libxcb, libXau, libXdmcp, libXtst, mesa, alsaLib
@@ -9,36 +9,35 @@
 
 stdenv.mkDerivation rec {
   name = "android-sdk-${version}";
-  version = "22.6.2";
+  version = "23.0.2";
   
   src = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
     then fetchurl {
       url = "http://dl.google.com/android/android-sdk_r${version}-linux.tgz";
-      md5 = "ff1541418a44d894bedc5cef10622220";
+      md5 = "94a8c62086a7398cc0e73e1c8e65f71e";
     }
     else if stdenv.system == "x86_64-darwin" then fetchurl {
       url = "http://dl.google.com/android/android-sdk_r${version}-macosx.zip";
-      md5 = "2a319c862dd1dcf450bfe2a6b3d9c608";
+      md5 = "322787b0e6c629d926c28690c79ac0d8";
     }
     else throw "platform not ${stdenv.system} supported!";
   
   buildCommand = ''
     mkdir -p $out/libexec
     cd $out/libexec
-    unpackFile $src;
-    
+    unpackFile $src
     cd android-sdk-*/tools
     
     ${stdenv.lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
     ''
       # There are a number of native binaries. We must patch them to let them find the interpreter and libstdc++
-    
-      for i in dmtracedump emulator emulator-arm emulator-mips emulator-x86 hprof-conv mksdcard sqlite3
+      
+      for i in emulator emulator-arm emulator-mips emulator-x86 mksdcard
       do
           patchelf --set-interpreter ${stdenv_32bit.gcc.libc}/lib/ld-linux.so.2 $i
           patchelf --set-rpath ${stdenv_32bit.gcc.gcc}/lib $i
       done
-    
+      
       ${stdenv.lib.optionalString (stdenv.system == "x86_64-linux") ''
         # We must also patch the 64-bit emulator instances, if needed
         
@@ -49,17 +48,6 @@ stdenv.mkDerivation rec {
         done
       ''}
       
-      # These tools also need zlib in addition to libstdc++
-    
-      for i in etc1tool zipalign
-      do
-          patchelf --set-interpreter ${stdenv_32bit.gcc.libc}/lib/ld-linux.so.2 $i
-          patchelf --set-rpath ${stdenv_32bit.gcc.gcc}/lib:${zlib_32bit}/lib $i
-      done
-    
-      # The android script has a hardcoded reference to /bin/ls that must be patched
-      sed -i -e "s|/bin/ls|ls|" android
-      
       # The android script used SWT and wants to dynamically load some GTK+ stuff.
       # The following wrapper ensures that they can be found:
       wrapProgram `pwd`/android \
@@ -139,6 +127,15 @@ stdenv.mkDerivation rec {
       
     cd ..
 
+    # Symlink required extras
+
+    mkdir -p extras/android
+    cd extras/android
+
+    ln -s ${supportRepository}/m2repository
+
+    cd ../..
+
     # Symlink required platforms
    
     mkdir -p platforms
diff --git a/pkgs/development/mobile/androidenv/build-tools.nix b/pkgs/development/mobile/androidenv/build-tools.nix
index 58bf3549361..11beb29f3ce 100644
--- a/pkgs/development/mobile/androidenv/build-tools.nix
+++ b/pkgs/development/mobile/androidenv/build-tools.nix
@@ -1,15 +1,15 @@
 {stdenv, stdenv_32bit, fetchurl, unzip, zlib_32bit}:
 
 stdenv.mkDerivation {
-  name = "android-build-tools-r18.1.0";
+  name = "android-build-tools-r20";
   src = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
     then fetchurl {
-      url = https://dl-ssl.google.com/android/repository/build-tools_r18.1-linux.zip;
-      sha1 = "f314a0599e51397f0886fe888b50dd98f2f050d8";
+      url = https://dl-ssl.google.com/android/repository/build-tools_r20-linux.zip;
+      sha1 = "b688905526a5584d1327a662d871a635ff502758";
     }
     else if stdenv.system == "x86_64-darwin" then fetchurl {
-      url = https://dl-ssl.google.com/android/repository/build-tools_r18.1-macosx.zip;
-      sha1 = "16ddb299b8b43063e5bb3387ec17147c5053dfd8";
+      url = https://dl-ssl.google.com/android/repository/build-tools_r20-macosx.zip;
+      sha1 = "1240f629411c108a714c4ddd756937c7fab93f83";
     }
     else throw "System ${stdenv.system} not supported!";
   
@@ -39,6 +39,13 @@ stdenv.mkDerivation {
         do
             patchelf --set-rpath ${stdenv_32bit.gcc.gcc}/lib:`pwd` $i
         done
+
+        # These binaries also need zlib in addition to libstdc++
+        for i in zipalign
+        do
+            patchelf --set-interpreter ${stdenv_32bit.gcc.libc}/lib/ld-linux.so.2 $i
+            patchelf --set-rpath ${stdenv_32bit.gcc.gcc}/lib:${zlib_32bit}/lib $i
+        done
         
         # These binaries need to find libstdc++, libgcc_s, and zlib
         for i in aapt dexdump
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index 422c1516f2d..796f0f862bd 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -16,6 +16,10 @@ rec {
     inherit (pkgs) stdenv fetchurl unzip;
   };
   
+  supportRepository = import ./support-repository.nix {
+    inherit (pkgs) stdenv fetchurl unzip;
+  };
+
   platforms = if (pkgs.stdenv.system == "i686-linux" || pkgs.stdenv.system == "x86_64-linux")
     then import ./platforms-linux.nix {
       inherit (pkgs) stdenv fetchurl unzip;
@@ -39,7 +43,7 @@ rec {
     inherit (pkgs) freetype fontconfig glib gtk atk mesa file alsaLib jdk;
     inherit (pkgs.xorg) libX11 libXext libXrender libxcb libXau libXdmcp libXtst;
     
-    inherit platformTools buildTools support platforms sysimages addons;
+    inherit platformTools buildTools support supportRepository platforms sysimages addons;
     
     stdenv_32bit = pkgs_i686.stdenv;
     zlib_32bit = pkgs_i686.zlib;
@@ -63,8 +67,38 @@ rec {
     abiVersions = [ "armeabi-v7a" ];
     useGoogleAPIs = true;
   };
+
+  androidsdk_2_3_3 = androidsdk {
+    platformVersions = [ "10" ];
+    abiVersions = [ "armeabi-v7a" ];
+    useGoogleAPIs = true;
+  };
+  
+  androidsdk_3_0 = androidsdk {
+    platformVersions = [ "11" ];
+    abiVersions = [ "armeabi-v7a" ];
+    useGoogleAPIs = true;
+  };
+  
+  androidsdk_3_1 = androidsdk {
+    platformVersions = [ "12" ];
+    abiVersions = [ "armeabi-v7a" ];
+    useGoogleAPIs = true;
+  };
+  
+  androidsdk_3_2 = androidsdk {
+    platformVersions = [ "13" ];
+    abiVersions = [ "armeabi-v7a" ];
+    useGoogleAPIs = true;
+  };
   
   androidsdk_4_0 = androidsdk {
+    platformVersions = [ "14" ];
+    abiVersions = [ "armeabi-v7a" ];
+    useGoogleAPIs = true;
+  };
+  
+  androidsdk_4_0_3 = androidsdk {
     platformVersions = [ "15" ];
     abiVersions = [ "armeabi-v7a" ];
     useGoogleAPIs = true;
diff --git a/pkgs/development/mobile/androidenv/fetch b/pkgs/development/mobile/androidenv/fetch.sh
index 30aabc9e086..92abb18f25f 100755
--- a/pkgs/development/mobile/androidenv/fetch
+++ b/pkgs/development/mobile/androidenv/fetch.sh
@@ -5,10 +5,9 @@ android list sdk | grep 'Parse XML:' | cut -f8- -d\  # | xargs -n 1 curl -O
 
 # we skip the intel addons, as they are Windows+osX only
 # we skip the default sys-img (arm?) because it is empty
-curl -o repository-8.xml https://dl-ssl.google.com/android/repository/repository-8.xml
+curl -o repository-10.xml https://dl-ssl.google.com/android/repository/repository-10.xml
 curl -o addon.xml        https://dl-ssl.google.com/android/repository/addon.xml
-curl -o sys-img-mips.xml https://dl-ssl.google.com/android/repository/sys-img/mips/sys-img.xml
-curl -o sys-img-x86.xml  https://dl-ssl.google.com/android/repository/sys-img/x86/sys-img.xml
+curl -o sys-img.xml https://dl-ssl.google.com/android/repository/sys-img/android/sys-img.xml
 
 ./generate-addons.sh
 ./generate-platforms.sh
diff --git a/pkgs/development/mobile/androidenv/generate-addons.xsl b/pkgs/development/mobile/androidenv/generate-addons.xsl
index 0100b980a4e..51d0c07c934 100644
--- a/pkgs/development/mobile/androidenv/generate-addons.xsl
+++ b/pkgs/development/mobile/androidenv/generate-addons.xsl
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:sdk="http://schemas.android.com/sdk/android/addon/5">
+  xmlns:sdk="http://schemas.android.com/sdk/android/addon/7">
 
   <xsl:output omit-xml-declaration="yes" indent="no" />
   <xsl:template match="/sdk:sdk-addon">
@@ -23,8 +23,8 @@ in
   google_apis_<xsl:value-of select="sdk:api-level" /> = buildGoogleApis {
     name = "<xsl:value-of select="sdk:name-id" />-<xsl:value-of select="sdk:api-level" />";
       src = fetchurl {
-        url = https://dl-ssl.google.com/android/repository/<xsl:value-of select="sdk:archives/sdk:archive[@os='any']/sdk:url" />;
-        sha1 = "<xsl:value-of select="sdk:archives/sdk:archive[@os='any']/sdk:checksum[@type='sha1']" />";
+        url = https://dl-ssl.google.com/android/repository/<xsl:value-of select="sdk:archives/sdk:archive/sdk:url" />;
+        sha1 = "<xsl:value-of select="sdk:archives/sdk:archive/sdk:checksum[@type='sha1']" />";
       };
       meta = {
         description = "<xsl:value-of select="sdk:description" />";
diff --git a/pkgs/development/mobile/androidenv/generate-platforms.sh b/pkgs/development/mobile/androidenv/generate-platforms.sh
index 8ac4ad328f4..58d3ba58d37 100755
--- a/pkgs/development/mobile/androidenv/generate-platforms.sh
+++ b/pkgs/development/mobile/androidenv/generate-platforms.sh
@@ -1,4 +1,4 @@
 #!/bin/sh -e
 
-xsltproc --stringparam os linux generate-platforms.xsl repository-8.xml > platforms-linux.nix
-xsltproc --stringparam os macosx generate-platforms.xsl repository-8.xml > platforms-macosx.nix
+xsltproc --stringparam os linux generate-platforms.xsl repository-10.xml > platforms-linux.nix
+xsltproc --stringparam os macosx generate-platforms.xsl repository-10.xml > platforms-macosx.nix
diff --git a/pkgs/development/mobile/androidenv/generate-platforms.xsl b/pkgs/development/mobile/androidenv/generate-platforms.xsl
index 249f044550b..ba556f2baac 100644
--- a/pkgs/development/mobile/androidenv/generate-platforms.xsl
+++ b/pkgs/development/mobile/androidenv/generate-platforms.xsl
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:sdk="http://schemas.android.com/sdk/android/repository/8">
+  xmlns:sdk="http://schemas.android.com/sdk/android/repository/10">
 
   <xsl:param name="os" />
   <xsl:output omit-xml-declaration="yes" indent="no" />
@@ -10,7 +10,7 @@
 
 let
   buildPlatform = args:
-    stdenv.mkDerivation (args // {   
+    stdenv.mkDerivation (args // {
       buildInputs = [ unzip ];
       buildCommand = ''
         mkdir -p $out
@@ -20,12 +20,12 @@ let
   });
 in
 {
-    <xsl:for-each select="sdk:platform">
+    <xsl:for-each select="sdk:platform[sdk:api-level &lt; 20]">
   platform_<xsl:value-of select="sdk:api-level" /> = buildPlatform {
     name = "android-platform-<xsl:value-of select="sdk:version" />";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/<xsl:value-of select="sdk:archives/sdk:archive[@os=$os or @os='any']/sdk:url" />;
-      sha1 = "<xsl:value-of select="sdk:archives/sdk:archive[@os=$os or @os='any']/sdk:checksum[@type='sha1']" />";
+      url = <xsl:value-of select="sdk:archives/sdk:archive[sdk:host-os=$os or count(sdk:host-os) = 0]/sdk:url" />;
+      sha1 = "<xsl:value-of select="sdk:archives/sdk:archive[sdk:host-os=$os or count(sdk:host-os) = 0]/sdk:checksum[@type='sha1']" />";
     };
     meta = {
       description = "<xsl:value-of select="sdk:description" />";
diff --git a/pkgs/development/mobile/androidenv/generate-sysimages-others.xsl b/pkgs/development/mobile/androidenv/generate-sysimages-others.xsl
deleted file mode 100644
index 31ab72add36..00000000000
--- a/pkgs/development/mobile/androidenv/generate-sysimages-others.xsl
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:str="http://exslt.org/strings"
-  xmlns:sdk="http://schemas.android.com/sdk/android/sys-img/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-  <xsl:param name="abi" />
-  <xsl:output omit-xml-declaration="yes" indent="no" />
-
-  <xsl:template match="/sdk:sdk-sys-img">
-    <xsl:for-each select="sdk:system-image">
-  sysimg_<xsl:value-of select="sdk:abi" />_<xsl:value-of select="sdk:api-level" /> = buildSystemImage {
-    name = "<xsl:value-of select="sdk:abi" />-<xsl:value-of select="sdk:api-level" />";
-    src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/<xsl:value-of select="$abi" />/<xsl:value-of select="sdk:archives/sdk:archive[@os='any']/sdk:url" />;
-      sha1 = "<xsl:value-of select="sdk:archives/sdk:archive[@os='any']/sdk:checksum[@type='sha1']" />";
-    };
-  };
-    </xsl:for-each>
-  </xsl:template>
-</xsl:stylesheet>
diff --git a/pkgs/development/mobile/androidenv/generate-sysimages.sh b/pkgs/development/mobile/androidenv/generate-sysimages.sh
index 90b1e04c229..ef2f825642b 100755
--- a/pkgs/development/mobile/androidenv/generate-sysimages.sh
+++ b/pkgs/development/mobile/androidenv/generate-sysimages.sh
@@ -17,9 +17,7 @@ in
 {
 EOF
 
-xsltproc generate-sysimages.xsl repository-8.xml >> sysimages.nix
-xsltproc --stringparam abi x86 generate-sysimages-others.xsl sys-img-x86.xml >> sysimages.nix
-xsltproc --stringparam abi mips generate-sysimages-others.xsl sys-img-mips.xml >> sysimages.nix
+xsltproc generate-sysimages.xsl sys-img.xml >> sysimages.nix
 
 cat >> sysimages.nix << "EOF"
 }
diff --git a/pkgs/development/mobile/androidenv/generate-sysimages.xsl b/pkgs/development/mobile/androidenv/generate-sysimages.xsl
index be9947d536a..6de690622b5 100644
--- a/pkgs/development/mobile/androidenv/generate-sysimages.xsl
+++ b/pkgs/development/mobile/androidenv/generate-sysimages.xsl
@@ -2,17 +2,17 @@
 
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:str="http://exslt.org/strings"
-  xmlns:sdk="http://schemas.android.com/sdk/android/repository/8">
+  xmlns:sdk="http://schemas.android.com/sdk/android/sys-img/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
   <xsl:output omit-xml-declaration="yes" indent="no" />
 
-  <xsl:template match="/sdk:sdk-repository">
+  <xsl:template match="/sdk:sdk-sys-img">
     <xsl:for-each select="sdk:system-image">
   sysimg_<xsl:value-of select="sdk:abi" />_<xsl:value-of select="sdk:api-level" /> = buildSystemImage {
-    name = "<xsl:value-of select="sdk:abi" />-<xsl:value-of select="sdk:api-level" />";
+    name = "sysimg-<xsl:value-of select="sdk:abi" />-<xsl:value-of select="sdk:api-level" />";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/<xsl:value-of select="sdk:archives/sdk:archive[@os='any']/sdk:url" />;
-      sha1 = "<xsl:value-of select="sdk:archives/sdk:archive[@os='any']/sdk:checksum[@type='sha1']" />";
+      url = <xsl:if test="not(starts-with(sdk:archives/sdk:archive/sdk:url, 'https://'))">https://dl-ssl.google.com/android/repository/sys-img/android/</xsl:if><xsl:value-of select="sdk:archives/sdk:archive/sdk:url" />;
+      sha1 = "<xsl:value-of select="sdk:archives/sdk:archive/sdk:checksum[@type='sha1']" />";
     };
   };
     </xsl:for-each>
diff --git a/pkgs/development/mobile/androidenv/platforms-linux.nix b/pkgs/development/mobile/androidenv/platforms-linux.nix
index f9f5a2d50f4..feb967d0108 100644
--- a/pkgs/development/mobile/androidenv/platforms-linux.nix
+++ b/pkgs/development/mobile/androidenv/platforms-linux.nix
@@ -3,7 +3,7 @@
 
 let
   buildPlatform = args:
-    stdenv.mkDerivation (args // {   
+    stdenv.mkDerivation (args // {
       buildInputs = [ unzip ];
       buildCommand = ''
         mkdir -p $out
@@ -219,13 +219,13 @@ in
   };
     
   platform_19 = buildPlatform {
-    name = "android-platform-4.4";
+    name = "android-platform-4.4.2";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/android-19_r01.zip;
-      sha1 = "96281811998272dce46e8285d15fce444a3d5a96";
+      url = https://dl-ssl.google.com/android/repository/android-19_r03.zip;
+      sha1 = "5f33d8fd36a384fe2b170035e04a29c274a9ef95";
     };
     meta = {
-      description = "Android SDK Platform 4.4";
+      description = "Android SDK Platform 4.4.2";
       
     };
   };
diff --git a/pkgs/development/mobile/androidenv/platforms-macosx.nix b/pkgs/development/mobile/androidenv/platforms-macosx.nix
index a95561d3e85..0e93ed9412b 100644
--- a/pkgs/development/mobile/androidenv/platforms-macosx.nix
+++ b/pkgs/development/mobile/androidenv/platforms-macosx.nix
@@ -3,7 +3,7 @@
 
 let
   buildPlatform = args:
-    stdenv.mkDerivation (args // {   
+    stdenv.mkDerivation (args // {
       buildInputs = [ unzip ];
       buildCommand = ''
         mkdir -p $out
@@ -219,13 +219,13 @@ in
   };
     
   platform_19 = buildPlatform {
-    name = "android-platform-4.4";
+    name = "android-platform-4.4.2";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/android-19_r01.zip;
-      sha1 = "96281811998272dce46e8285d15fce444a3d5a96";
+      url = https://dl-ssl.google.com/android/repository/android-19_r03.zip;
+      sha1 = "5f33d8fd36a384fe2b170035e04a29c274a9ef95";
     };
     meta = {
-      description = "Android SDK Platform 4.4";
+      description = "Android SDK Platform 4.4.2";
       
     };
   };
diff --git a/pkgs/development/mobile/androidenv/repository-10.xml b/pkgs/development/mobile/androidenv/repository-10.xml
new file mode 100644
index 00000000000..81023cae2ee
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/repository-10.xml
@@ -0,0 +1,1562 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<sdk:sdk-repository xmlns:sdk="http://schemas.android.com/sdk/android/repository/10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+    <sdk:license id="android-sdk-license" type="text">To get started with the Android SDK, you must agree to the following terms and conditions.
+
+This is the Android SDK License Agreement (the &quot;License Agreement&quot;).
+
+1. Introduction
+
+1.1 The Android SDK (referred to in the License Agreement as the &quot;SDK&quot; and specifically including the Android system files, packaged APIs, and SDK library files and tools , if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
+
+1.2 &quot;Android&quot; means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.3 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting the License Agreement
+
+2.1 In order to use the SDK, you must first agree to the License Agreement. You may not use the SDK if you do not accept the License Agreement.
+
+2.2 By clicking to accept and/or using the SDK, you hereby agree to the terms of the License Agreement.
+
+2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.
+
+2.4 If you will use the SDK internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.
+
+3. SDK License from Google
+
+3.1 Subject to the terms of the License Agreement, Google grants you a royalty-free, non-assignable, non-exclusive, non-sublicensable, limited, revocable license to use the SDK, personally or internally within your company or organization, solely to develop and distribute applications to run on the Android platform.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the SDK for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.
+
+3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
+
+3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
+
+4. Use of the SDK by You
+
+4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the SDK to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
+
+7. Third Party Applications
+
+7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
+
+8. Using Google APIs
+
+8.1 Google APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+9. Terminating the License Agreement
+
+9.1 The License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
+
+9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
+
+9.4 The License Agreement will automatically terminate without notice or other action when Google ceases to provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service.
+
+9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the SDK, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
+
+10. DISCLAIMERS
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE SDK MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.
+
+14. General Legal Terms
+
+14.1 The License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
+
+14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+June 2014.
+    </sdk:license>
+
+    <sdk:license id="android-sdk-preview-license" type="text">To get started with the Android SDK Preview, you must agree to the following terms and conditions.
+As described below, please note that this is a preview version of the Android SDK, subject to change, that you use at your own risk.  The Android SDK Preview is not a stable release, and may contain errors and defects that can result in serious damage to your computer systems, devices and data.
+
+This is the Android SDK Preview License Agreement (the &quot;License Agreement&quot;).
+
+1. Introduction
+
+1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
+
+1.2 &quot;Android&quot; means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.3 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting the License Agreement
+
+2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.
+
+2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.
+
+2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.
+
+2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.
+
+3. Preview License from Google
+
+3.1 Subject to the terms of the License Agreement, Google grants you a royalty-free, non-assignable, non-exclusive, non-sublicensable, limited, revocable license to use the Preview, personally or internally within your company or organization, solely to develop applications to run on the Android platform.
+
+3.2 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Preview.
+
+3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
+
+3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.
+
+4. Use of the Preview by You
+
+4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
+
+7. Third Party Applications
+
+7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
+
+8. Using Google APIs
+
+8.1 Google APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+9. Terminating the License Agreement
+
+9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.
+
+9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
+
+9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of:
+(A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and
+(B) Google issues a final release version of the Android SDK.
+
+9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
+
+10. DISCLAIMERS
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.
+
+14. General Legal Terms
+
+14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
+
+14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+June 2014.
+    </sdk:license>
+
+    <!-- PLATFORMS ........................ -->
+
+    <sdk:platform>
+        <sdk:version>1.1</sdk:version>
+        <sdk:api-level>2</sdk:api-level>
+        <sdk:revision>1</sdk:revision>
+        <sdk:description>Android SDK Platform 1.1_r1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/android-1.1.html</sdk:desc-url>
+        <sdk:obsolete/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>46828615</sdk:size>
+                <sdk:checksum type="sha1">a4060f29ed39fc929c302836d488998c53c3002e</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.1_r1-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>45584305</sdk:size>
+                <sdk:checksum type="sha1">e21dbcff45b7356657449ebb3c7e941be2bb5ebe</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.1_r1-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>45476658</sdk:size>
+                <sdk:checksum type="sha1">c054d25c9b4c6251fa49c2f9c54336998679d3fe</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.1_r1-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated manually from earlier versions -->
+
+    <sdk:platform>
+        <sdk:version>1.5</sdk:version>
+        <sdk:api-level>3</sdk:api-level>
+        <sdk:revision>04</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>6</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 1.5_r3</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/android-1.5.html</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>54624370</sdk:size>
+                <sdk:checksum type="sha1">5bb106d2e40d481edd337b0833093843e15fe49a</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.5_r04-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>52440607</sdk:size>
+                <sdk:checksum type="sha1">d3a67c2369afa48b6c3c7624de5031c262018d1e</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.5_r04-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>53348669</sdk:size>
+                <sdk:checksum type="sha1">5c134b7df5f4b8bd5b61ba93bdaebada8fa3468c</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.5_r04-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <sdk:version>1.6</sdk:version>
+        <sdk:api-level>4</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>03</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>6</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 1.6_r2</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/android-1.6.html</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>63454485</sdk:size>
+                <sdk:checksum type="sha1">483ed088e45bbdf3444baaf9250c8b02e5383cb0</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.6_r03-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>62418496</sdk:size>
+                <sdk:checksum type="sha1">bdafad44f5df9f127979bdb21a1fdd87ee3cd625</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.6_r03-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>64654625</sdk:size>
+                <sdk:checksum type="sha1">ce0b5e4ffaf12ca4fd07c2da71a8a1ab4a03dc22</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-1.6_r03-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Thu Oct 22 10:16:34 PDT 2009 using eclair-sdk 17704: Platform. Addon. Tools. Doc. -->
+
+    <sdk:platform>
+        <sdk:version>2.0</sdk:version>
+        <sdk:api-level>5</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>3</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 2.0, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/android-2.0.html</sdk:desc-url>
+        <sdk:obsolete/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>75095268</sdk:size>
+                <sdk:checksum type="sha1">be9be6a99ca32875c96ec7f91160ca9fce7e3c7d</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.0_r01-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>74956356</sdk:size>
+                <sdk:checksum type="sha1">2a866d0870dbba18e0503cd41e5fae988a21b314</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.0_r01-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>76288040</sdk:size>
+                <sdk:checksum type="sha1">aeb623217ff88b87216d6eb7dbc846ed53f68f57</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.0_r01-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Mon Nov 23 14:08:02 PST 2009 using eclair-release 20723: Platform. Addon. -->
+
+    <sdk:platform>
+        <sdk:version>2.0.1</sdk:version>
+        <sdk:api-level>6</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>4</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 2.0.1_r1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/android-2.0.1.html</sdk:desc-url>
+        <sdk:obsolete/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>79192618</sdk:size>
+                <sdk:checksum type="sha1">ce2c971dce352aa28af06bda92a070116aa5ae1a</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.0.1_r01-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>79035527</sdk:size>
+                <sdk:checksum type="sha1">c3096f80d75a6fc8cb38ef8a18aec920e53d42c0</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.0.1_r01-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>80385601</sdk:size>
+                <sdk:checksum type="sha1">255781ebe4509d9707d0e77edda2815e2bc216e6</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.0.1_r01-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Thu May  6 15:57:41 PDT 2010 using eclair 35983: Platform. -->
+
+    <sdk:platform>
+        <sdk:version>2.1</sdk:version>
+        <sdk:api-level>7</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>03</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>8</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 2.1_r3</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>70142829</sdk:size>
+                <sdk:checksum type="sha1">5ce51b023ac19f8738500b1007a1da5de2349a1e</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.1_r03-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Wed Jun 30 16:13:06 PDT 2010 using froyo-release 43546: Platform. Addon. -->
+
+    <sdk:platform>
+        <sdk:version>2.2</sdk:version>
+        <sdk:api-level>8</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>03</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>8</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 2.2_r3</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>74652366</sdk:size>
+                <sdk:checksum type="sha1">231262c63eefdff8fd0386e9ccfefeb27a8f9202</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.2_r03-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Thu Jan 20 09:40:59 PST 2011 using gingerbread-sdk-release 93351: Platform. -->
+
+    <sdk:platform>
+        <sdk:version>2.3.1</sdk:version>
+        <sdk:api-level>9</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>02</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>8</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 2.3.1_r2</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:obsolete/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>78732563</sdk:size>
+                <sdk:checksum type="sha1">209f8a7a8b2cb093fce858b8b55fed3ba5206773</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.3.1_r02-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Fri Feb  4 16:41:27 PST 2011 using gingerbread-release 101070: Platform. -->
+
+    <sdk:platform>
+        <sdk:version>2.3.3</sdk:version>
+        <sdk:api-level>10</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>02</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>8</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 2.3.3._r2</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>85470907</sdk:size>
+                <sdk:checksum type="sha1">887e37783ec32f541ea33c2c649dda648e8e6fb3</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-2.3.3_r02-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Thu Feb 17 08:41:10 PST 2011 using honeycomb 104254: Platform. -->
+
+    <sdk:platform>
+        <sdk:version>3.0</sdk:version>
+        <sdk:api-level>11</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>02</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>10</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 3.0, revision 2</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>104513908</sdk:size>
+                <sdk:checksum type="sha1">2c7d4bd13f276e76f6bbd87315fe27aba351dd37</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-3.0_r02-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Wed May  4 19:39:17 PDT 2011 using honeycomb-mr1 123685: Platform.
+         r2: layoutlib.jar from 3.0 to fix issue with ADT 10.
+    -->
+
+    <sdk:platform>
+        <sdk:version>3.1</sdk:version>
+        <sdk:api-level>12</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>03</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>11</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 3.1, revision 3</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>106472351</sdk:size>
+                <sdk:checksum type="sha1">4a50a6679cd95bb68bb5fc032e754cd7c5e2b1bf</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-3.1_r03-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <!-- Generated on Fri Jul 15 11:50:12 PDT 2011 using honeycomb-mr2-release 140714: Platform. -->
+
+    <sdk:platform>
+        <sdk:version>3.2</sdk:version>
+        <sdk:api-level>13</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:min-tools-rev>
+            <sdk:major>12</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:description>Android SDK Platform 3.2, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>108426536</sdk:size>
+                <sdk:checksum type="sha1">6189a500a8c44ae73a439604363de93591163cd9</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-3.2_r01-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:layoutlib>
+            <sdk:api>4</sdk:api>
+        </sdk:layoutlib>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <!-- Generated at Thu Dec 15 16:53:11 2011 from git_ics-mr0 @ 238991 -->
+        <sdk:revision>3</sdk:revision>
+        <sdk:description>Android SDK Platform 4.0</sdk:description>
+        <sdk:version>4.0</sdk:version>
+        <sdk:api-level>14</sdk:api-level>
+        <sdk:layoutlib>
+            <sdk:api>7</sdk:api>
+            <sdk:revision>1</sdk:revision>
+        </sdk:layoutlib>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>45919570</sdk:size>
+                <sdk:checksum type="sha1">41ba83b51e886461628c41b1b4d47762e0688ed5</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-14_r03.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <!-- Generated at Fri Mar 16 11:22:43 2012 from ics-mr1 @ 291902 -->
+        <sdk:revision>3</sdk:revision>
+        <sdk:description>Android SDK Platform 4.0.3</sdk:description>
+        <sdk:version>4.0.3</sdk:version>
+        <sdk:api-level>15</sdk:api-level>
+        <sdk:min-tools-rev>
+            <sdk:major>15</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:layoutlib>
+            <sdk:api>7</sdk:api>
+            <sdk:revision>1</sdk:revision>
+        </sdk:layoutlib>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>44414679</sdk:size>
+                <sdk:checksum type="sha1">23da24610a8da51054c5391001c51ce43a778b97</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-15_r03.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <!-- Generated at Thu Dec  6 10:54:05 2012 from git_jb-dev @ 543062 -->
+        <sdk:revision>4</sdk:revision>
+        <sdk:description>Android SDK Platform 4.1.2</sdk:description>
+        <sdk:version>4.1.2</sdk:version>
+        <sdk:api-level>16</sdk:api-level>
+        <sdk:min-tools-rev>
+            <sdk:major>21</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:layoutlib>
+            <sdk:api>9</sdk:api>
+            <sdk:revision>1</sdk:revision>
+        </sdk:layoutlib>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>48005140</sdk:size>
+                <sdk:checksum type="sha1">90b9157b8b45f966be97e11a22fba4591b96c2ee</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-16_r04.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <!-- Generated at Wed Feb 13 11:27:09 2013 from git_jb-mr1.1-dev @ 576024 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:description>Android SDK Platform 4.2.2</sdk:description>
+        <sdk:version>4.2.2</sdk:version>
+        <sdk:api-level>17</sdk:api-level>
+        <sdk:min-tools-rev>
+            <sdk:major>21</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:layoutlib>
+            <sdk:api>9</sdk:api>
+            <sdk:revision>1</sdk:revision>
+        </sdk:layoutlib>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>48057484</sdk:size>
+                <sdk:checksum type="sha1">c442c32c1b702173ab0929a74486e4f86fe528ec</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-17_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <!-- Generated at Wed Sep 11 18:15:07 2013 from git_jb-mr2-dev @ 819563 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:description>Android SDK Platform 4.3</sdk:description>
+        <sdk:version>4.3</sdk:version>
+        <sdk:api-level>18</sdk:api-level>
+        <sdk:min-tools-rev>
+            <sdk:major>21</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:layoutlib>
+            <sdk:api>10</sdk:api>
+            <sdk:revision>1</sdk:revision>
+        </sdk:layoutlib>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>57319855</sdk:size>
+                <sdk:checksum type="sha1">62a9438d4cf6692f4d6510c27a380be195db9534</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-18_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <!-- Generated at Fri Feb 28 18:03:43 2014 from git_klp-sdk-release @ 1035858 -->
+        <sdk:revision>3</sdk:revision>
+        <sdk:description>Android SDK Platform 4.4.2</sdk:description>
+        <sdk:version>4.4.2</sdk:version>
+        <sdk:api-level>19</sdk:api-level>
+        <sdk:min-tools-rev>
+            <sdk:major>22</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:layoutlib>
+            <sdk:api>10</sdk:api>
+            <sdk:revision>1</sdk:revision>
+        </sdk:layoutlib>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>63798840</sdk:size>
+                <sdk:checksum type="sha1">5f33d8fd36a384fe2b170035e04a29c274a9ef95</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/android-19_r03.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <!-- Generated at Mon Jun 23 19:17:42 2014 from git_klp-modular-release @ 1246132 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:description>Android SDK Platform 4.4W</sdk:description>
+        <sdk:version>4.4W</sdk:version>
+        <sdk:api-level>20</sdk:api-level>
+        <sdk:min-tools-rev>
+            <sdk:major>22</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:layoutlib>
+            <sdk:api>10</sdk:api>
+            <sdk:revision>1</sdk:revision>
+        </sdk:layoutlib>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>63548914</sdk:size>
+                <sdk:checksum type="sha1">928b1d181101a5bc06f739eb40501e1249dd4895</sdk:checksum>
+                <sdk:url>android-20_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform>
+
+    <sdk:platform>
+        <!-- Generated at Fri Jul 11 18:20:46 2014 from git_lmp-preview-dev @ 1272903 -->
+        <sdk:revision>3</sdk:revision>
+        <sdk:description>Android SDK Platform L</sdk:description>
+        <sdk:version>L</sdk:version>
+        <sdk:api-level>20</sdk:api-level>
+        <sdk:codename>L</sdk:codename>
+        <sdk:min-tools-rev>
+            <sdk:major>22</sdk:major>
+        </sdk:min-tools-rev>
+        <sdk:layoutlib>
+            <sdk:api>11</sdk:api>
+            <sdk:revision>1</sdk:revision>
+        </sdk:layoutlib>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>69421660</sdk:size>
+                <sdk:checksum type="sha1">76b6da426db06b2e2901dbc5e02d210ba83753c4</sdk:checksum>
+                <sdk:url>android-L_r03.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-preview-license"/>
+    </sdk:platform>
+
+    <!-- SAMPLES ........................ -->
+
+    <!-- Generated on Mon Feb 22 13:39:38 PST 2010 using eclair 25887: Samples. -->
+
+    <sdk:sample>
+        <sdk:api-level>7</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:description>Android SDK Samples for Android API 7, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>7677831</sdk:size>
+                <sdk:checksum type="sha1">51e4907f60f248ede5c58b54ce7b6ae0b473e0ca</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-2.1_r01-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <!-- Generated on Tue May 11 19:15:20 PDT 2010 using froyo 36658: Samples. -->
+
+    <sdk:sample>
+        <sdk:api-level>8</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:description>Android SDK Samples for Android API 8, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>7969716</sdk:size>
+                <sdk:checksum type="sha1">d16d8bf2dd84cedf73b98b948d66461c8f19d6fb</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-2.2_r01-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <!-- Generated on Tue Nov 30 19:39:34 PST 2010 using gingerbread 79962: Samples. -->
+
+    <sdk:sample>
+        <sdk:api-level>9</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:description>Android SDK Samples for Android API 9, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:obsolete/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>8516326</sdk:size>
+                <sdk:checksum type="sha1">36f7dd6c8b5dbb50b3cf3e3ac5209f3fe55db2aa</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-2.3_r01-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <!-- Generated on Tue Feb  8 17:37:15 PST 2011 using gingerbread 102121: Samples. -->
+
+    <sdk:sample>
+        <sdk:api-level>10</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:description>Android SDK Samples for Android API 10, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>8539583</sdk:size>
+                <sdk:checksum type="sha1">93b0c3f3bdf5b07f1f115100b4954f0665297a0d</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-2.3.3_r01-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <!-- Generated on Thu Feb 17 08:45:49 PST 2011 using honeycomb 104254: Samples. -->
+
+    <sdk:sample>
+        <sdk:api-level>11</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:description>Android SDK Samples for Android API 11, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>11976920</sdk:size>
+                <sdk:checksum type="sha1">3749ace584631270268d65bb1d0ad61b0d691682</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-3.0_r01-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <!-- Generated on Wed May  4 19:49:56 PDT 2011 using honeycomb-mr1 123685: Samples. -->
+
+    <sdk:sample>
+        <sdk:api-level>12</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:description>Android SDK Samples for Android API 12, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>12150514</sdk:size>
+                <sdk:checksum type="sha1">df0ace37cbca73373fe94080f94c71557cac73a7</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-3.1_r01-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <!-- Generated on Fri Jul 15 11:52:24 PDT 2011 using honeycomb-mr2 142871: Samples. -->
+
+    <sdk:sample>
+        <sdk:api-level>13</sdk:api-level>
+        <sdk:codename/>
+        <sdk:revision>01</sdk:revision>
+        <sdk:description>Android SDK Samples for Android API 13, revision 1</sdk:description>
+        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>12193502</sdk:size>
+                <sdk:checksum type="sha1">078bcf1abc1cb8921f3fa482c252963a782bed60</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-3.2_r01-linux.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <sdk:sample>
+        <!-- Generated at Wed Dec  7 13:48:27 2011 from git_ics-mr0 @ 234950 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:api-level>14</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>16253619</sdk:size>
+                <sdk:checksum type="sha1">1312c22ab0b650e26835cc3945d4ff8cea183416</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-14_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <sdk:sample>
+        <!-- Generated at Fri Mar 16 11:27:52 2012 from ics-mr1 @ 291902 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:api-level>15</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>16366656</sdk:size>
+                <sdk:checksum type="sha1">042f368c5b09eca4d278264e6dbf9c12c5f73d1f</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-15_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <sdk:sample>
+        <!-- Generated at Sun Jun 24 14:02:06 2012 from git_jb-release @ 391408 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>16</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>14729945</sdk:size>
+                <sdk:checksum type="sha1">dce3a2d41db50a381ef47ee8bddbe928520e685e</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-16_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <sdk:sample>
+        <!-- Generated at Mon Nov 12 17:18:09 2012 from git_jb-mr1-dev @ 526865 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>17</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>14840030</sdk:size>
+                <sdk:checksum type="sha1">12d58cb26503610fc05bd7618c434cc6f983bc41</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-17_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <sdk:sample>
+        <!-- Generated at Tue Jul 23 17:17:22 2013 from git_jb-mr2-ub-dev @ 751786 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>18</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>19897793</sdk:size>
+                <sdk:checksum type="sha1">73e879ce46c04a6e63ad1a9107018b4782945007</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/samples-18_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <sdk:sample>
+        <!-- Generated at Wed Aug 27 10:42:00 2014 from git_klp-docs @ 1377789 -->
+        <sdk:revision>6</sdk:revision>
+        <sdk:api-level>19</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>31900752</sdk:size>
+                <sdk:checksum type="sha1">19593662771934b0b1e3be56ed18d13e6489bcd4</sdk:checksum>
+                <sdk:url>samples-19_r06.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <sdk:sample>
+        <!-- Generated at Wed Jul 23 12:59:18 2014 from git_klp-modular-mr0-release @ 1298572 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:api-level>20</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>49718791</sdk:size>
+                <sdk:checksum type="sha1">4b906c46057ee8f502b4f27c23670fd87a49d6ff</sdk:checksum>
+                <sdk:url>samples-20_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:sample>
+
+    <sdk:sample>
+        <!-- Generated at Wed Aug 27 10:44:44 2014 from git_lmp-preview-dev @ 1378586 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:api-level>20</sdk:api-level>
+        <sdk:codename>L</sdk:codename>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>41182182</sdk:size>
+                <sdk:checksum type="sha1">4afc36cf3f53051881729f733fe9bb571104c48f</sdk:checksum>
+                <sdk:url>samples-L_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-preview-license"/>
+    </sdk:sample>
+
+    <!-- PLATFORM-TOOLS ........................ -->
+
+    <sdk:platform-tool>
+        <!-- Generated at Mon Jun 23 19:20:39 2014 from git_lmp-preview-dev @ 1244090 -->
+        <sdk:revision>
+            <sdk:major>20</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>0</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>1741113</sdk:size>
+                <sdk:checksum type="sha1">72c34cc6a991f53e2588f9d5487559f013bc30f9</sdk:checksum>
+                <sdk:url>platform-tools_r20-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>1753061</sdk:size>
+                <sdk:checksum type="sha1">fb120ce85b6698b801cb4788b204693c1d682b87</sdk:checksum>
+                <sdk:url>platform-tools_r20-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>1666257</sdk:size>
+                <sdk:checksum type="sha1">f2c65c58caf76169d9bebf25eef5c69ff99670b5</sdk:checksum>
+                <sdk:url>platform-tools_r20-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:platform-tool>
+
+    <!-- BUILD-TOOLS ........................ -->
+
+    <sdk:build-tool>
+        <!-- Generated at Tue May 14 16:40:25 2013 from git_jb-mr1.1-dev @ 673949 -->
+        <sdk:revision>
+            <sdk:major>17</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>0</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>11004914</sdk:size>
+                <sdk:checksum type="sha1">899897d327b0bad492d3a40d3db4d96119c15bc0</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r17-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>11696007</sdk:size>
+                <sdk:checksum type="sha1">2c2872bc3806aabf16a12e3959c2183ddc866e6d</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r17-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>12208114</sdk:size>
+                <sdk:checksum type="sha1">602ee709be9dbb8f179b1e4075148a57f9419930</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r17-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <!-- Build tools version 18.0.0 was broken for renderscript, so it has been removed -->
+
+    <sdk:build-tool>
+        <!-- Generated at Mon Jul 29 15:14:00 2013 from git_jb-mr2-dev @ 754669 -->
+        <sdk:revision>
+            <sdk:major>18</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>1</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>15413527</sdk:size>
+                <sdk:checksum type="sha1">a6c2afd0b6289d589351956d2f5212b37014ca7d</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.0.1-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>16627330</sdk:size>
+                <sdk:checksum type="sha1">f11618492b0d2270c332325d45d752d3656a9640</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.0.1-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>16633121</sdk:size>
+                <sdk:checksum type="sha1">d84f5692fb44d60fc53e5b2507cebf9f24626902</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.0.1-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <sdk:build-tool>
+        <!-- Generated at Wed Sep 11 17:41:47 2013 from git_jb-mr2-dev @ 819563 -->
+        <sdk:revision>
+            <sdk:major>18</sdk:major>
+            <sdk:minor>1</sdk:minor>
+            <sdk:micro>0</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>19659547</sdk:size>
+                <sdk:checksum type="sha1">3a9810fc8559ab03c09378f07531e8cae2f1db30</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.1-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>20229298</sdk:size>
+                <sdk:checksum type="sha1">f314a0599e51397f0886fe888b50dd98f2f050d8</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.1-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>20451524</sdk:size>
+                <sdk:checksum type="sha1">16ddb299b8b43063e5bb3387ec17147c5053dfd8</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.1-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <sdk:build-tool>
+        <!-- Generated at Thu Oct 10 14:18:15 2013 from git_jb-mr2-dev @ 867478 -->
+        <sdk:revision>
+            <sdk:major>18</sdk:major>
+            <sdk:minor>1</sdk:minor>
+            <sdk:micro>1</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>19660000</sdk:size>
+                <sdk:checksum type="sha1">c4605066e2f851387ea70bc1442b1968bd7b4a15</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.1.1-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>20229760</sdk:size>
+                <sdk:checksum type="sha1">68c9acbfc0cec2d51b19efaed39831a17055d998</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.1.1-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>20452157</sdk:size>
+                <sdk:checksum type="sha1">a9d9d37f6ddf859e57abc78802a77aaa166e48d4</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r18.1.1-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <sdk:build-tool>
+        <!-- Generated at Mon Oct 28 23:12:03 2013 from git_klp-release @ 886418 -->
+        <sdk:revision>
+            <sdk:major>19</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>0</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>20611447</sdk:size>
+                <sdk:checksum type="sha1">6edf505c20f5ece9c48fa0aff9a90488f9654d52</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21339943</sdk:size>
+                <sdk:checksum type="sha1">55c1a6cf632e7d346f0002b275ec41fd3137fd83</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21441270</sdk:size>
+                <sdk:checksum type="sha1">86ec1c12db1bc446b7bcaefc5cc14eb361044e90</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <sdk:build-tool>
+        <!-- Generated at Thu Dec  5 14:01:45 2013 from git_klp-dev @ 938007 -->
+        <sdk:revision>
+            <sdk:major>19</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>1</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>20500648</sdk:size>
+                <sdk:checksum type="sha1">5ef422bac5b28f4ced108319ed4a6bc7050a6234</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.1-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21229048</sdk:size>
+                <sdk:checksum type="sha1">18d2312dc4368858914213087f4e61445aca4517</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.1-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21450597</sdk:size>
+                <sdk:checksum type="sha1">efaf50fb19a3edb8d03efbff76f89a249ad2920b</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.1-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <sdk:build-tool>
+        <!-- Generated at Wed Feb 12 12:38:29 2014 from git_klp-sdk-release @ 1009316 -->
+        <sdk:revision>
+            <sdk:major>19</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>2</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>20621117</sdk:size>
+                <sdk:checksum type="sha1">af664672d0d709c9ae30937b1062317d3ade7f95</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.2-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21352552</sdk:size>
+                <sdk:checksum type="sha1">a03a6bdea0091aea32e1b35b90a7294c9f04e3dd</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.2-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21453726</sdk:size>
+                <sdk:checksum type="sha1">145bc43065d45f756d99d87329d899052b9a9288</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.2-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <sdk:build-tool>
+        <!-- Generated at Fri Feb 28 17:11:02 2014 from git_klp-sdk-release @ 1035858 -->
+        <sdk:revision>
+            <sdk:major>19</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>3</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>20730715</sdk:size>
+                <sdk:checksum type="sha1">cb46b433b67a0a6910ff00db84be8b527ea3102f</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.3-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21462150</sdk:size>
+                <sdk:checksum type="sha1">c2d6055478e9d2d4fba476ee85f99181ddd1160c</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.3-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21563992</sdk:size>
+                <sdk:checksum type="sha1">651cf8754373b2d52e7f6aab2c52eabffe4e9ea4</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.0.3-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <sdk:build-tool>
+        <!-- Generated at Tue May  6 14:19:40 2014 from git_klp-sdk-release @ 1153987 -->
+        <sdk:revision>
+            <sdk:major>19</sdk:major>
+            <sdk:minor>1</sdk:minor>
+            <sdk:micro>0</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>20812533</sdk:size>
+                <sdk:checksum type="sha1">13b367fbdbff8132cb4356f716e8dc8a8df745c5</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.1-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21490972</sdk:size>
+                <sdk:checksum type="sha1">1ff20ac15fa47a75d00346ec12f180d531b3ca89</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.1-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21590160</sdk:size>
+                <sdk:checksum type="sha1">0d11aae3417de1efb4b9a0e0a7855904a61bcec1</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/build-tools_r19.1-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <sdk:build-tool>
+        <!-- Generated at Mon Jun 23 19:17:29 2014 from git_klp-modular-release @ 1246132 -->
+        <sdk:revision>
+            <sdk:major>20</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>0</sdk:micro>
+        </sdk:revision>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>20828006</sdk:size>
+                <sdk:checksum type="sha1">cf20720e452b642d5eb59dabe05c0c729b36ec75</sdk:checksum>
+                <sdk:url>build-tools_r20-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21445463</sdk:size>
+                <sdk:checksum type="sha1">b688905526a5584d1327a662d871a635ff502758</sdk:checksum>
+                <sdk:url>build-tools_r20-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>21650508</sdk:size>
+                <sdk:checksum type="sha1">1240f629411c108a714c4ddd756937c7fab93f83</sdk:checksum>
+                <sdk:url>build-tools_r20-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:build-tool>
+
+    <!-- TOOLS ........................ -->
+
+    <sdk:tool>
+        <!-- Generated at Wed Jul  2 12:10:55 2014 from git_ub-tools-idea133-milestone @ 1259578 -->
+        <sdk:revision>
+            <sdk:major>23</sdk:major>
+            <sdk:minor>0</sdk:minor>
+            <sdk:micro>2</sdk:micro>
+        </sdk:revision>
+        <sdk:min-platform-tools-rev>
+            <sdk:major>20</sdk:major>
+        </sdk:min-platform-tools-rev>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>141154615</sdk:size>
+                <sdk:checksum type="sha1">0a64ec9b7777bb00ff299c94c359163ef5e443ae</sdk:checksum>
+                <sdk:url>tools_r23.0.2-windows.zip</sdk:url>
+                <sdk:host-os>windows</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>141930870</sdk:size>
+                <sdk:checksum type="sha1">e8a2d55d750adeaded60a3daad48e62b09aa472a</sdk:checksum>
+                <sdk:url>tools_r23.0.2-linux.zip</sdk:url>
+                <sdk:host-os>linux</sdk:host-os>
+            </sdk:archive>
+            <sdk:archive>
+                <sdk:size>90920343</sdk:size>
+                <sdk:checksum type="sha1">c46b1e173188ba82a56d6b9e349fdae4e8922bab</sdk:checksum>
+                <sdk:url>tools_r23.0.2-macosx.zip</sdk:url>
+                <sdk:host-os>macosx</sdk:host-os>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:tool>
+
+    <!-- DOCS ........................ -->
+
+    <sdk:doc>
+        <!-- Generated at Mon Jun 23 19:19:47 2014 from git_lmp-preview-release @ 1242878 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>20</sdk:api-level>
+        <sdk:codename>L</sdk:codename>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>207889084</sdk:size>
+                <sdk:checksum type="sha1">58a94248c7c960829db3d779c84534e5e783210f</sdk:checksum>
+                <sdk:url>docs-L_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-preview-license"/>
+    </sdk:doc>
+
+    <!-- SOURCES ........................ -->
+
+    <sdk:source>
+        <!-- Generated at Wed Dec  7 13:48:11 2011 from git_ics-mr0 @ 234950 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>14</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>16152383</sdk:size>
+                <sdk:checksum type="sha1">eaf4ed7dcac46e68516a1b4aa5b0d9e5a39a7555</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sources-14_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:source>
+
+    <sdk:source>
+        <!-- Generated at Fri Mar 30 10:43:44 2012 from ics-mr1 @ 302030 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:api-level>15</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>16468746</sdk:size>
+                <sdk:checksum type="sha1">e5992a5747c9590783fbbdd700337bf0c9f6b1fa</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sources-15_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:source>
+
+    <sdk:source>
+        <!-- Generated at Thu Jul 19 18:39:42 2012 from git_jb-release @ 403059 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:api-level>16</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>17876720</sdk:size>
+                <sdk:checksum type="sha1">0f83c14ed333c45d962279ab5d6bc98a0269ef84</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sources-16_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:source>
+
+    <sdk:source>
+        <!-- Generated at Mon Nov 12 17:16:08 2012 from git_jb-mr1-dev @ 526865 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>17</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>18976816</sdk:size>
+                <sdk:checksum type="sha1">6f1f18cd2d2b1852d7f6892df9cee3823349d43a</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sources-17_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:source>
+
+    <sdk:source>
+        <!-- Generated at Tue Jul 23 17:18:30 2013 from git_jb-mr2-release @ 737497 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>18</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>20226735</sdk:size>
+                <sdk:checksum type="sha1">8b49fdf7433f4881a2bfb559b5dd05d8ec65fb78</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sources-18_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:source>
+
+    <sdk:source>
+        <!-- Generated at Thu Dec  5 14:04:22 2013 from git_klp-dev @ 938007 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:api-level>19</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>21819439</sdk:size>
+                <sdk:checksum type="sha1">433a1d043ef77561571250e94cb7a0ef24a202e7</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sources-19_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:source>
+
+    <sdk:source>
+        <!-- Generated at Mon Jun 23 19:18:43 2014 from git_klp-modular-release @ 1246132 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>20</sdk:api-level>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>23367603</sdk:size>
+                <sdk:checksum type="sha1">8da3e40f2625f9f7ef38b7e403f49f67226c0d76</sdk:checksum>
+                <sdk:url>sources-20_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+    </sdk:source>
+</sdk:sdk-repository>
+
diff --git a/pkgs/development/mobile/androidenv/repository-8.xml b/pkgs/development/mobile/androidenv/repository-8.xml
deleted file mode 100644
index 46ae8aa9a7c..00000000000
--- a/pkgs/development/mobile/androidenv/repository-8.xml
+++ /dev/null
@@ -1,1277 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-<sdk:sdk-repository xmlns:sdk="http://schemas.android.com/sdk/android/repository/8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-    <sdk:license id="android-sdk-license" type="text">Terms and Conditions
-
-This is the Android Software Development Kit License Agreement.
-
-
-1. Introduction
-
-
-1.1 The Android Software Development Kit (referred to in this License Agreement as the &quot;SDK&quot; and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
-
-1.2 &quot;Android&quot; means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
-
-1.3 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-
-2. Accepting this License Agreement
-
-
-2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement.
-
-2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
-
-2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.
-
-2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.
-
-
-3. SDK License from Google
-
-
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform.
-
-3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
-
-3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement.  Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
-
-3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.
-
-3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
-
-3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
-
-3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
-
-3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
-
-
-4. Use of the SDK by You
-
-
-4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
-
-4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
-
-4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
-
-4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.
-
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
-
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-
-
-5. Your Developer Credentials
-
-
-5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
-
-
-6. Privacy and Information
-
-
-6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
-
-6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.
-
-
-7. Third Party Applications
-
-
-7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
-
-7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
-
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
-
-
-8. Using Android APIs
-
-
-8.1 Google Data APIs
-
-8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
-
-8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
-
-
-9. Terminating this License Agreement
-
-
-9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
-
-9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
-
-9.3 Google may at any time, terminate this License Agreement with you if:
-(A) you have breached any provision of this License Agreement; or
-(B) Google is required to do so by law; or
-(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or
-(D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.
-
-9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
-
-
-10. DISCLAIMER OF WARRANTIES
-
-
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
-
-10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
-
-10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-
-
-11. LIMITATION OF LIABILITY
-
-
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
-
-
-12. Indemnification
-
-
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
-
-
-13. Changes to the License Agreement
-
-
-13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.
-
-
-14. General Legal Terms
-
-
-14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.
-
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
-
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
-
-14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
-
-14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
-
-14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
-
-November 13, 2012
-    </sdk:license>
-
-    <!-- PLATFORMS ........................ -->
-
-    <sdk:platform>
-        <sdk:version>1.1</sdk:version>
-        <sdk:api-level>2</sdk:api-level>
-        <sdk:revision>1</sdk:revision>
-        <sdk:description>Android SDK Platform 1.1_r1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/android-1.1.html</sdk:desc-url>
-        <sdk:obsolete/>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>46828615</sdk:size>
-                <sdk:checksum type="sha1">a4060f29ed39fc929c302836d488998c53c3002e</sdk:checksum>
-                <sdk:url>android-1.1_r1-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>45584305</sdk:size>
-                <sdk:checksum type="sha1">e21dbcff45b7356657449ebb3c7e941be2bb5ebe</sdk:checksum>
-                <sdk:url>android-1.1_r1-macosx.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>45476658</sdk:size>
-                <sdk:checksum type="sha1">c054d25c9b4c6251fa49c2f9c54336998679d3fe</sdk:checksum>
-                <sdk:url>android-1.1_r1-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated manually from earlier versions -->
-
-    <sdk:platform>
-        <sdk:version>1.5</sdk:version>
-        <sdk:api-level>3</sdk:api-level>
-        <sdk:revision>04</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>6</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 1.5_r3</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/android-1.5.html</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>54624370</sdk:size>
-                <sdk:checksum type="sha1">5bb106d2e40d481edd337b0833093843e15fe49a</sdk:checksum>
-                <sdk:url>android-1.5_r04-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>52440607</sdk:size>
-                <sdk:checksum type="sha1">d3a67c2369afa48b6c3c7624de5031c262018d1e</sdk:checksum>
-                <sdk:url>android-1.5_r04-macosx.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>53348669</sdk:size>
-                <sdk:checksum type="sha1">5c134b7df5f4b8bd5b61ba93bdaebada8fa3468c</sdk:checksum>
-                <sdk:url>android-1.5_r04-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <sdk:platform>
-        <sdk:version>1.6</sdk:version>
-        <sdk:api-level>4</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>03</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>6</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 1.6_r2</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/android-1.6.html</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>63454485</sdk:size>
-                <sdk:checksum type="sha1">483ed088e45bbdf3444baaf9250c8b02e5383cb0</sdk:checksum>
-                <sdk:url>android-1.6_r03-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>62418496</sdk:size>
-                <sdk:checksum type="sha1">bdafad44f5df9f127979bdb21a1fdd87ee3cd625</sdk:checksum>
-                <sdk:url>android-1.6_r03-macosx.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>64654625</sdk:size>
-                <sdk:checksum type="sha1">ce0b5e4ffaf12ca4fd07c2da71a8a1ab4a03dc22</sdk:checksum>
-                <sdk:url>android-1.6_r03-windows.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Thu Oct 22 10:16:34 PDT 2009 using eclair-sdk 17704: Platform. Addon. Tools. Doc. -->
-
-    <sdk:platform>
-        <sdk:version>2.0</sdk:version>
-        <sdk:api-level>5</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>3</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 2.0, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/android-2.0.html</sdk:desc-url>
-        <sdk:obsolete/>
-        <sdk:archives>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>75095268</sdk:size>
-                <sdk:checksum type="sha1">be9be6a99ca32875c96ec7f91160ca9fce7e3c7d</sdk:checksum>
-                <sdk:url>android-2.0_r01-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>74956356</sdk:size>
-                <sdk:checksum type="sha1">2a866d0870dbba18e0503cd41e5fae988a21b314</sdk:checksum>
-                <sdk:url>android-2.0_r01-macosx.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>76288040</sdk:size>
-                <sdk:checksum type="sha1">aeb623217ff88b87216d6eb7dbc846ed53f68f57</sdk:checksum>
-                <sdk:url>android-2.0_r01-windows.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Mon Nov 23 14:08:02 PST 2009 using eclair-release 20723: Platform. Addon. -->
-
-    <sdk:platform>
-        <sdk:version>2.0.1</sdk:version>
-        <sdk:api-level>6</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>4</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 2.0.1_r1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/android-2.0.1.html</sdk:desc-url>
-        <sdk:obsolete/>
-        <sdk:archives>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>79192618</sdk:size>
-                <sdk:checksum type="sha1">ce2c971dce352aa28af06bda92a070116aa5ae1a</sdk:checksum>
-                <sdk:url>android-2.0.1_r01-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>79035527</sdk:size>
-                <sdk:checksum type="sha1">c3096f80d75a6fc8cb38ef8a18aec920e53d42c0</sdk:checksum>
-                <sdk:url>android-2.0.1_r01-macosx.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>80385601</sdk:size>
-                <sdk:checksum type="sha1">255781ebe4509d9707d0e77edda2815e2bc216e6</sdk:checksum>
-                <sdk:url>android-2.0.1_r01-windows.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Thu May  6 15:57:41 PDT 2010 using eclair 35983: Platform. -->
-
-    <sdk:platform>
-        <sdk:version>2.1</sdk:version>
-        <sdk:api-level>7</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>03</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>8</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 2.1_r3</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>70142829</sdk:size>
-                <sdk:checksum type="sha1">5ce51b023ac19f8738500b1007a1da5de2349a1e</sdk:checksum>
-                <sdk:url>android-2.1_r03-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Wed Jun 30 16:13:06 PDT 2010 using froyo-release 43546: Platform. Addon. -->
-
-    <sdk:platform>
-        <sdk:version>2.2</sdk:version>
-        <sdk:api-level>8</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>03</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>8</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 2.2_r3</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>74652366</sdk:size>
-                <sdk:checksum type="sha1">231262c63eefdff8fd0386e9ccfefeb27a8f9202</sdk:checksum>
-                <sdk:url>android-2.2_r03-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Thu Jan 20 09:40:59 PST 2011 using gingerbread-sdk-release 93351: Platform. -->
-
-    <sdk:platform>
-        <sdk:version>2.3.1</sdk:version>
-        <sdk:api-level>9</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>02</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>8</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 2.3.1_r2</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:obsolete/>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>78732563</sdk:size>
-                <sdk:checksum type="sha1">209f8a7a8b2cb093fce858b8b55fed3ba5206773</sdk:checksum>
-                <sdk:url>android-2.3.1_r02-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Fri Feb  4 16:41:27 PST 2011 using gingerbread-release 101070: Platform. -->
-
-    <sdk:platform>
-        <sdk:version>2.3.3</sdk:version>
-        <sdk:api-level>10</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>02</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>8</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 2.3.3._r2</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>85470907</sdk:size>
-                <sdk:checksum type="sha1">887e37783ec32f541ea33c2c649dda648e8e6fb3</sdk:checksum>
-                <sdk:url>android-2.3.3_r02-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Thu Feb 17 08:41:10 PST 2011 using honeycomb 104254: Platform. -->
-
-    <sdk:platform>
-        <sdk:version>3.0</sdk:version>
-        <sdk:api-level>11</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>02</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>10</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 3.0, revision 2</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>104513908</sdk:size>
-                <sdk:checksum type="sha1">2c7d4bd13f276e76f6bbd87315fe27aba351dd37</sdk:checksum>
-                <sdk:url>android-3.0_r02-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Wed May  4 19:39:17 PDT 2011 using honeycomb-mr1 123685: Platform.
-         r2: layoutlib.jar from 3.0 to fix issue with ADT 10.
-    -->
-
-    <sdk:platform>
-        <sdk:version>3.1</sdk:version>
-        <sdk:api-level>12</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>03</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>11</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 3.1, revision 3</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>106472351</sdk:size>
-                <sdk:checksum type="sha1">4a50a6679cd95bb68bb5fc032e754cd7c5e2b1bf</sdk:checksum>
-                <sdk:url>android-3.1_r03-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <!-- Generated on Fri Jul 15 11:50:12 PDT 2011 using honeycomb-mr2-release 140714: Platform. -->
-
-    <sdk:platform>
-        <sdk:version>3.2</sdk:version>
-        <sdk:api-level>13</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:min-tools-rev>
-            <sdk:major>12</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:description>Android SDK Platform 3.2, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>108426536</sdk:size>
-                <sdk:checksum type="sha1">6189a500a8c44ae73a439604363de93591163cd9</sdk:checksum>
-                <sdk:url>android-3.2_r01-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:layoutlib>
-            <sdk:api>4</sdk:api>
-        </sdk:layoutlib>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <sdk:platform>
-        <!-- Generated at Thu Dec 15 16:53:11 2011 from git_ics-mr0 @ 238991 -->
-        <sdk:revision>3</sdk:revision>
-        <sdk:description>Android SDK Platform 4.0</sdk:description>
-        <sdk:version>4.0</sdk:version>
-        <sdk:api-level>14</sdk:api-level>
-        <sdk:layoutlib>
-            <sdk:api>7</sdk:api>
-            <sdk:revision>1</sdk:revision>
-        </sdk:layoutlib>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>45919570</sdk:size>
-                <sdk:checksum type="sha1">41ba83b51e886461628c41b1b4d47762e0688ed5</sdk:checksum>
-                <sdk:url>android-14_r03.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <sdk:platform>
-        <!-- Generated at Fri Mar 16 11:22:43 2012 from ics-mr1 @ 291902 -->
-        <sdk:revision>3</sdk:revision>
-        <sdk:description>Android SDK Platform 4.0.3</sdk:description>
-        <sdk:version>4.0.3</sdk:version>
-        <sdk:api-level>15</sdk:api-level>
-        <sdk:min-tools-rev>
-            <sdk:major>15</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:layoutlib>
-            <sdk:api>7</sdk:api>
-            <sdk:revision>1</sdk:revision>
-        </sdk:layoutlib>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>44414679</sdk:size>
-                <sdk:checksum type="sha1">23da24610a8da51054c5391001c51ce43a778b97</sdk:checksum>
-                <sdk:url>android-15_r03.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <sdk:platform>
-        <!-- Generated at Thu Dec  6 10:54:05 2012 from git_jb-dev @ 543062 -->
-        <sdk:revision>4</sdk:revision>
-        <sdk:description>Android SDK Platform 4.1.2</sdk:description>
-        <sdk:version>4.1.2</sdk:version>
-        <sdk:api-level>16</sdk:api-level>
-        <sdk:min-tools-rev>
-            <sdk:major>21</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:layoutlib>
-            <sdk:api>9</sdk:api>
-            <sdk:revision>1</sdk:revision>
-        </sdk:layoutlib>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>48005140</sdk:size>
-                <sdk:checksum type="sha1">90b9157b8b45f966be97e11a22fba4591b96c2ee</sdk:checksum>
-                <sdk:url>android-16_r04.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <sdk:platform>
-        <!-- Generated at Wed Feb 13 11:27:09 2013 from git_jb-mr1.1-dev @ 576024 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:description>Android SDK Platform 4.2.2</sdk:description>
-        <sdk:version>4.2.2</sdk:version>
-        <sdk:api-level>17</sdk:api-level>
-        <sdk:min-tools-rev>
-            <sdk:major>21</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:layoutlib>
-            <sdk:api>9</sdk:api>
-            <sdk:revision>1</sdk:revision>
-        </sdk:layoutlib>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>48057484</sdk:size>
-                <sdk:checksum type="sha1">c442c32c1b702173ab0929a74486e4f86fe528ec</sdk:checksum>
-                <sdk:url>android-17_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <sdk:platform>
-        <!-- Generated at Wed Sep 11 18:15:07 2013 from git_jb-mr2-dev @ 819563 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:description>Android SDK Platform 4.3</sdk:description>
-        <sdk:version>4.3</sdk:version>
-        <sdk:api-level>18</sdk:api-level>
-        <sdk:min-tools-rev>
-            <sdk:major>21</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:layoutlib>
-            <sdk:api>10</sdk:api>
-            <sdk:revision>1</sdk:revision>
-        </sdk:layoutlib>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>57319855</sdk:size>
-                <sdk:checksum type="sha1">62a9438d4cf6692f4d6510c27a380be195db9534</sdk:checksum>
-                <sdk:url>android-18_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-    <sdk:platform>
-        <!-- Generated at Mon Oct 28 23:34:31 2013 from git_klp-release @ 892118 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:description>Android SDK Platform 4.4</sdk:description>
-        <sdk:version>4.4</sdk:version>
-        <sdk:api-level>19</sdk:api-level>
-        <sdk:min-tools-rev>
-            <sdk:major>22</sdk:major>
-        </sdk:min-tools-rev>
-        <sdk:layoutlib>
-            <sdk:api>10</sdk:api>
-            <sdk:revision>1</sdk:revision>
-        </sdk:layoutlib>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>59279956</sdk:size>
-                <sdk:checksum type="sha1">96281811998272dce46e8285d15fce444a3d5a96</sdk:checksum>
-                <sdk:url>android-19_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform>
-
-
-    <!-- SYSTEM IMAGES ........................ -->
-
-    <sdk:system-image>
-        <!-- Generated at Wed Dec  7 13:47:01 2011 from git_ics-mr0 @ 229537 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:description>Android SDK Platform 4.0</sdk:description>
-        <sdk:api-level>14</sdk:api-level>
-        <sdk:abi>armeabi-v7a</sdk:abi>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>99621822</sdk:size>
-                <sdk:checksum type="sha1">d8991b0c06b18d7d6ed4169d67460ee1add6661b</sdk:checksum>
-                <sdk:url>sysimg_armv7a-14_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:system-image>
-
-    <sdk:system-image>
-        <!-- Generated at Fri Mar 30 10:43:23 2012 from ics-mr1 @ 302030 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:description>Android SDK Platform 4.0.3</sdk:description>
-        <sdk:api-level>15</sdk:api-level>
-        <sdk:abi>armeabi-v7a</sdk:abi>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>96227377</sdk:size>
-                <sdk:checksum type="sha1">1bf977d6cb4e0ad38dceac0c4863d1caa21f326e</sdk:checksum>
-                <sdk:url>sysimg_armv7a-15_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:system-image>
-
-    <sdk:system-image>
-        <!-- Generated at Tue Oct  9 13:43:08 2012 from git_jb-dev @ 495790 -->
-        <sdk:revision>3</sdk:revision>
-        <sdk:description>Android SDK Platform 4.1</sdk:description>
-        <sdk:api-level>16</sdk:api-level>
-        <sdk:abi>armeabi-v7a</sdk:abi>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>112528368</sdk:size>
-                <sdk:checksum type="sha1">d1cddb23f17aad5821a089c403d4cddad2cf9ef7</sdk:checksum>
-                <sdk:url>sysimg_armv7a-16_r03.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:system-image>
-
-    <sdk:system-image>
-        <!-- Generated at Wed Feb 13 11:29:12 2013 from git_jb-mr1.1-dev @ 576024 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:description>Android SDK Platform 4.2.2</sdk:description>
-        <sdk:api-level>17</sdk:api-level>
-        <sdk:abi>armeabi-v7a</sdk:abi>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>116553808</sdk:size>
-                <sdk:checksum type="sha1">1c321cda1af793b84d47d1a8d15f85444d265e3c</sdk:checksum>
-                <sdk:url>sysimg_armv7a-17_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:system-image>
-
-    <sdk:system-image>
-        <!-- Generated at Mon Aug 12 12:43:28 2013 from git_jb-mr2-dev @ 774058 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:description>Android SDK Platform 4.3</sdk:description>
-        <sdk:api-level>18</sdk:api-level>
-        <sdk:abi>armeabi-v7a</sdk:abi>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>125457135</sdk:size>
-                <sdk:checksum type="sha1">4a1a93200210d8c42793324362868846f67401ab</sdk:checksum>
-                <sdk:url>sysimg_armv7a-18_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:system-image>
-
-    <sdk:system-image>
-        <!-- Generated at Mon Oct 28 23:36:43 2013 from git_klp-release @ 892118 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:description>Android SDK Platform 4.4</sdk:description>
-        <sdk:api-level>19</sdk:api-level>
-        <sdk:abi>armeabi-v7a</sdk:abi>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>155838103</sdk:size>
-                <sdk:checksum type="sha1">12dd1187dfd953b1ffcef5067d94578590f9e600</sdk:checksum>
-                <sdk:url>sysimg_armv7a-19_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:system-image>
-
-
-    <!-- SAMPLES ........................ -->
-
-    <!-- Generated on Mon Feb 22 13:39:38 PST 2010 using eclair 25887: Samples. -->
-
-    <sdk:sample>
-        <sdk:api-level>7</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:description>Android SDK Samples for Android API 7, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>7677831</sdk:size>
-                <sdk:checksum type="sha1">51e4907f60f248ede5c58b54ce7b6ae0b473e0ca</sdk:checksum>
-                <sdk:url>samples-2.1_r01-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <!-- Generated on Tue May 11 19:15:20 PDT 2010 using froyo 36658: Samples. -->
-
-    <sdk:sample>
-        <sdk:api-level>8</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:description>Android SDK Samples for Android API 8, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>7969716</sdk:size>
-                <sdk:checksum type="sha1">d16d8bf2dd84cedf73b98b948d66461c8f19d6fb</sdk:checksum>
-                <sdk:url>samples-2.2_r01-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <!-- Generated on Tue Nov 30 19:39:34 PST 2010 using gingerbread 79962: Samples. -->
-
-    <sdk:sample>
-        <sdk:api-level>9</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:description>Android SDK Samples for Android API 9, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:obsolete/>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>8516326</sdk:size>
-                <sdk:checksum type="sha1">36f7dd6c8b5dbb50b3cf3e3ac5209f3fe55db2aa</sdk:checksum>
-                <sdk:url>samples-2.3_r01-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <!-- Generated on Tue Feb  8 17:37:15 PST 2011 using gingerbread 102121: Samples. -->
-
-    <sdk:sample>
-        <sdk:api-level>10</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:description>Android SDK Samples for Android API 10, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>8539583</sdk:size>
-                <sdk:checksum type="sha1">93b0c3f3bdf5b07f1f115100b4954f0665297a0d</sdk:checksum>
-                <sdk:url>samples-2.3.3_r01-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <!-- Generated on Thu Feb 17 08:45:49 PST 2011 using honeycomb 104254: Samples. -->
-
-    <sdk:sample>
-        <sdk:api-level>11</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:description>Android SDK Samples for Android API 11, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>11976920</sdk:size>
-                <sdk:checksum type="sha1">3749ace584631270268d65bb1d0ad61b0d691682</sdk:checksum>
-                <sdk:url>samples-3.0_r01-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <!-- Generated on Wed May  4 19:49:56 PDT 2011 using honeycomb-mr1 123685: Samples. -->
-
-    <sdk:sample>
-        <sdk:api-level>12</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:description>Android SDK Samples for Android API 12, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>12150514</sdk:size>
-                <sdk:checksum type="sha1">df0ace37cbca73373fe94080f94c71557cac73a7</sdk:checksum>
-                <sdk:url>samples-3.1_r01-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <!-- Generated on Fri Jul 15 11:52:24 PDT 2011 using honeycomb-mr2 142871: Samples. -->
-
-    <sdk:sample>
-        <sdk:api-level>13</sdk:api-level>
-        <sdk:codename/>
-        <sdk:revision>01</sdk:revision>
-        <sdk:description>Android SDK Samples for Android API 13, revision 1</sdk:description>
-        <sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>12193502</sdk:size>
-                <sdk:checksum type="sha1">078bcf1abc1cb8921f3fa482c252963a782bed60</sdk:checksum>
-                <sdk:url>samples-3.2_r01-linux.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <sdk:sample>
-        <!-- Generated at Wed Dec  7 13:48:27 2011 from git_ics-mr0 @ 234950 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:api-level>14</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>16253619</sdk:size>
-                <sdk:checksum type="sha1">1312c22ab0b650e26835cc3945d4ff8cea183416</sdk:checksum>
-                <sdk:url>samples-14_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <sdk:sample>
-        <!-- Generated at Fri Mar 16 11:27:52 2012 from ics-mr1 @ 291902 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:api-level>15</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>16366656</sdk:size>
-                <sdk:checksum type="sha1">042f368c5b09eca4d278264e6dbf9c12c5f73d1f</sdk:checksum>
-                <sdk:url>samples-15_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <sdk:sample>
-        <!-- Generated at Sun Jun 24 14:02:06 2012 from git_jb-release @ 391408 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>16</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>14729945</sdk:size>
-                <sdk:checksum type="sha1">dce3a2d41db50a381ef47ee8bddbe928520e685e</sdk:checksum>
-                <sdk:url>samples-16_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <sdk:sample>
-        <!-- Generated at Mon Nov 12 17:18:09 2012 from git_jb-mr1-dev @ 526865 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>17</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>14840030</sdk:size>
-                <sdk:checksum type="sha1">12d58cb26503610fc05bd7618c434cc6f983bc41</sdk:checksum>
-                <sdk:url>samples-17_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <sdk:sample>
-        <!-- Generated at Tue Jul 23 17:17:22 2013 from git_jb-mr2-ub-dev @ 751786 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>18</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>19897793</sdk:size>
-                <sdk:checksum type="sha1">73e879ce46c04a6e63ad1a9107018b4782945007</sdk:checksum>
-                <sdk:url>samples-18_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <sdk:sample>
-        <!-- Generated at Wed Oct 30 20:26:32 2013 from git_klp-dev @ 896074 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>19</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>20697510</sdk:size>
-                <sdk:checksum type="sha1">c2007694b5e5ad6737f647db8160155d5258cb7f</sdk:checksum>
-                <sdk:url>samples-19_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:sample>
-
-    <!-- PLATFORM-TOOLS ........................ -->
-
-    <sdk:platform-tool>
-        <!-- Generated at Mon Oct 28 23:35:14 2013 from git_klp-release @ 886418 -->
-        <sdk:revision>
-            <sdk:major>19</sdk:major>
-            <sdk:minor>0</sdk:minor>
-            <sdk:micro>0</sdk:micro>
-        </sdk:revision>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>1116358</sdk:size>
-                <sdk:checksum type="sha1">755dcb5b5b72bbca90dd055eec4c8d0b1fce7cfd</sdk:checksum>
-                <sdk:url>platform-tools_r19-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>1172749</sdk:size>
-                <sdk:checksum type="sha1">66ee37daf8a2a8f1aa8939ccd4093658e30aa49b</sdk:checksum>
-                <sdk:url>platform-tools_r19-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>1120849</sdk:size>
-                <sdk:checksum type="sha1">69af30f488163dfc3da8cef1bb6cc7e8a6df5681</sdk:checksum>
-                <sdk:url>platform-tools_r19-macosx.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:platform-tool>
-
-    <!-- BUILD-TOOLS ........................ -->
-
-    <sdk:build-tool>
-        <!-- Generated at Tue May 14 16:40:25 2013 from git_jb-mr1.1-dev @ 673949 -->
-        <sdk:revision>
-            <sdk:major>17</sdk:major>
-            <sdk:minor>0</sdk:minor>
-            <sdk:micro>0</sdk:micro>
-        </sdk:revision>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>11004914</sdk:size>
-                <sdk:checksum type="sha1">899897d327b0bad492d3a40d3db4d96119c15bc0</sdk:checksum>
-                <sdk:url>build-tools_r17-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>11696007</sdk:size>
-                <sdk:checksum type="sha1">2c2872bc3806aabf16a12e3959c2183ddc866e6d</sdk:checksum>
-                <sdk:url>build-tools_r17-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>12208114</sdk:size>
-                <sdk:checksum type="sha1">602ee709be9dbb8f179b1e4075148a57f9419930</sdk:checksum>
-                <sdk:url>build-tools_r17-macosx.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:build-tool>
-
-    <!-- Build tools version 18.0.0 was broken for renderscript, so it has been removed -->
-
-    <sdk:build-tool>
-        <!-- Generated at Mon Jul 29 15:14:00 2013 from git_jb-mr2-dev @ 754669 -->
-        <sdk:revision>
-            <sdk:major>18</sdk:major>
-            <sdk:minor>0</sdk:minor>
-            <sdk:micro>1</sdk:micro>
-        </sdk:revision>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>15413527</sdk:size>
-                <sdk:checksum type="sha1">a6c2afd0b6289d589351956d2f5212b37014ca7d</sdk:checksum>
-                <sdk:url>build-tools_r18.0.1-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>16627330</sdk:size>
-                <sdk:checksum type="sha1">f11618492b0d2270c332325d45d752d3656a9640</sdk:checksum>
-                <sdk:url>build-tools_r18.0.1-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>16633121</sdk:size>
-                <sdk:checksum type="sha1">d84f5692fb44d60fc53e5b2507cebf9f24626902</sdk:checksum>
-                <sdk:url>build-tools_r18.0.1-macosx.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:build-tool>
-
-    <sdk:build-tool>
-        <!-- Generated at Wed Sep 11 17:41:47 2013 from git_jb-mr2-dev @ 819563 -->
-        <sdk:revision>
-            <sdk:major>18</sdk:major>
-            <sdk:minor>1</sdk:minor>
-            <sdk:micro>0</sdk:micro>
-        </sdk:revision>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>19659547</sdk:size>
-                <sdk:checksum type="sha1">3a9810fc8559ab03c09378f07531e8cae2f1db30</sdk:checksum>
-                <sdk:url>build-tools_r18.1-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>20229298</sdk:size>
-                <sdk:checksum type="sha1">f314a0599e51397f0886fe888b50dd98f2f050d8</sdk:checksum>
-                <sdk:url>build-tools_r18.1-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>20451524</sdk:size>
-                <sdk:checksum type="sha1">16ddb299b8b43063e5bb3387ec17147c5053dfd8</sdk:checksum>
-                <sdk:url>build-tools_r18.1-macosx.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:build-tool>
-
-    <sdk:build-tool>
-        <!-- Generated at Thu Oct 10 14:18:15 2013 from git_jb-mr2-dev @ 867478 -->
-        <sdk:revision>
-            <sdk:major>18</sdk:major>
-            <sdk:minor>1</sdk:minor>
-            <sdk:micro>1</sdk:micro>
-        </sdk:revision>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>19660000</sdk:size>
-                <sdk:checksum type="sha1">c4605066e2f851387ea70bc1442b1968bd7b4a15</sdk:checksum>
-                <sdk:url>build-tools_r18.1.1-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>20229760</sdk:size>
-                <sdk:checksum type="sha1">68c9acbfc0cec2d51b19efaed39831a17055d998</sdk:checksum>
-                <sdk:url>build-tools_r18.1.1-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>20452157</sdk:size>
-                <sdk:checksum type="sha1">a9d9d37f6ddf859e57abc78802a77aaa166e48d4</sdk:checksum>
-                <sdk:url>build-tools_r18.1.1-macosx.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:build-tool>
-
-    <sdk:build-tool>
-        <!-- Generated at Mon Oct 28 23:12:03 2013 from git_klp-release @ 886418 -->
-        <sdk:revision>
-            <sdk:major>19</sdk:major>
-            <sdk:minor>0</sdk:minor>
-            <sdk:micro>0</sdk:micro>
-        </sdk:revision>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>20611447</sdk:size>
-                <sdk:checksum type="sha1">6edf505c20f5ece9c48fa0aff9a90488f9654d52</sdk:checksum>
-                <sdk:url>build-tools_r19-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>21339943</sdk:size>
-                <sdk:checksum type="sha1">55c1a6cf632e7d346f0002b275ec41fd3137fd83</sdk:checksum>
-                <sdk:url>build-tools_r19-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>21441270</sdk:size>
-                <sdk:checksum type="sha1">86ec1c12db1bc446b7bcaefc5cc14eb361044e90</sdk:checksum>
-                <sdk:url>build-tools_r19-macosx.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:build-tool>
-
-    <!-- TOOLS ........................ -->
-
-    <sdk:tool>
-        <!-- Generated at Mon Oct 28 23:45:30 2013 from git_mirror-aosp-tools_r22.2 @ 887826 -->
-        <sdk:revision>
-            <sdk:major>22</sdk:major>
-            <sdk:minor>3</sdk:minor>
-        </sdk:revision>
-        <sdk:min-platform-tools-rev>
-            <sdk:major>18</sdk:major>
-        </sdk:min-platform-tools-rev>
-        <sdk:archives>
-            <sdk:archive arch="any" os="windows">
-                <sdk:size>108726734</sdk:size>
-                <sdk:checksum type="sha1">1cdc825c9a84ccf69b4a6386076a881d962dd7a9</sdk:checksum>
-                <sdk:url>tools_r22.3-windows.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="linux">
-                <sdk:size>101224750</sdk:size>
-                <sdk:checksum type="sha1">f76251916a23cb3d85e579f01cc6711a334f9064</sdk:checksum>
-                <sdk:url>tools_r22.3-linux.zip</sdk:url>
-            </sdk:archive>
-            <sdk:archive arch="any" os="macosx">
-                <sdk:size>74859563</sdk:size>
-                <sdk:checksum type="sha1">697d7f6fa44f02e6894d0eeb948ea97e3cdc8c3c</sdk:checksum>
-                <sdk:url>tools_r22.3-macosx.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:tool>
-
-    <!-- DOCS ........................ -->
-
-    <sdk:doc>
-        <!-- Generated at Wed Oct 30 22:52:09 2013 from git_klp-dev @ 896129 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>19</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>181765706</sdk:size>
-                <sdk:checksum type="sha1">6c92bb045f75a2eabfbdc3e26ff64ce0a7a2b3fc</sdk:checksum>
-                <sdk:url>docs-19_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:doc>
-
-    <!-- SOURCES ........................ -->
-
-    <sdk:source>
-        <!-- Generated at Wed Dec  7 13:48:11 2011 from git_ics-mr0 @ 234950 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>14</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>16152383</sdk:size>
-                <sdk:checksum type="sha1">eaf4ed7dcac46e68516a1b4aa5b0d9e5a39a7555</sdk:checksum>
-                <sdk:url>sources-14_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:source>
-
-    <sdk:source>
-        <!-- Generated at Fri Mar 30 10:43:44 2012 from ics-mr1 @ 302030 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:api-level>15</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>16468746</sdk:size>
-                <sdk:checksum type="sha1">e5992a5747c9590783fbbdd700337bf0c9f6b1fa</sdk:checksum>
-                <sdk:url>sources-15_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:source>
-
-    <sdk:source>
-        <!-- Generated at Thu Jul 19 18:39:42 2012 from git_jb-release @ 403059 -->
-        <sdk:revision>2</sdk:revision>
-        <sdk:api-level>16</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>17876720</sdk:size>
-                <sdk:checksum type="sha1">0f83c14ed333c45d962279ab5d6bc98a0269ef84</sdk:checksum>
-                <sdk:url>sources-16_r02.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:source>
-
-    <sdk:source>
-        <!-- Generated at Mon Nov 12 17:16:08 2012 from git_jb-mr1-dev @ 526865 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>17</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>18976816</sdk:size>
-                <sdk:checksum type="sha1">6f1f18cd2d2b1852d7f6892df9cee3823349d43a</sdk:checksum>
-                <sdk:url>sources-17_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:source>
-
-    <sdk:source>
-        <!-- Generated at Tue Jul 23 17:18:30 2013 from git_jb-mr2-release @ 737497 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>18</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>20226735</sdk:size>
-                <sdk:checksum type="sha1">8b49fdf7433f4881a2bfb559b5dd05d8ec65fb78</sdk:checksum>
-                <sdk:url>sources-18_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:source>
-
-    <sdk:source>
-        <!-- Generated at Mon Oct 28 23:37:07 2013 from git_klp-release @ 892118 -->
-        <sdk:revision>1</sdk:revision>
-        <sdk:api-level>19</sdk:api-level>
-        <sdk:archives>
-            <sdk:archive arch="any" os="any">
-                <sdk:size>21656670</sdk:size>
-                <sdk:checksum type="sha1">91d9f5f4117723eecc4434b7de0e7f6295ea0508</sdk:checksum>
-                <sdk:url>sources-19_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-        <sdk:uses-license ref="android-sdk-license"/>
-    </sdk:source>
-</sdk:sdk-repository>
diff --git a/pkgs/development/mobile/androidenv/support-repository.nix b/pkgs/development/mobile/androidenv/support-repository.nix
new file mode 100644
index 00000000000..66a532328b1
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/support-repository.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+  name = "android-support-repository-r5";
+  src = fetchurl {
+    url = http://dl-ssl.google.com/android/repository/android_m2repository_r05.zip;
+    sha1 = "2ee9723da079ba0d4fe2a185e00ded842de96f13";
+  };
+
+  buildCommand = ''
+    mkdir -p $out
+    cd $out
+    unzip $src
+  '';
+
+  buildInputs = [ unzip ];
+}
diff --git a/pkgs/development/mobile/androidenv/sys-img-mips.xml b/pkgs/development/mobile/androidenv/sys-img-mips.xml
deleted file mode 100644
index c839d283f4e..00000000000
--- a/pkgs/development/mobile/androidenv/sys-img-mips.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-<sdk:sdk-sys-img xmlns:sdk="http://schemas.android.com/sdk/android/sys-img/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-    <sdk:license id="mips-android-sysimage-license" type="text">
-    <![CDATA[
-MIPS Technologies, Inc. (“MIPS”) Internal Evaluation License Agreement for MIPS Android™ System Images for Android Software Development Kit (SDK):
-This Internal Evaluation License Agreement (this "Agreement") is entered into by and between MIPS and you (as an individual developer or a legal entity -- identified below as “Recipient”). MIPS shall make the Evaluation Software available to Recipient as described in accordance with the terms and conditions set forth below.
- 
-By clicking on the “Accept” button, downloading, installing, or otherwise using the Evaluation Materials (defined below), you agree to be bound by the terms of this Agreement effective as of the date you click “Accept” (the “Effective Date”), and if doing so on behalf of an entity, you represent that you are authorized to bind the entity to the terms and conditions of this Agreement. If you do not agree to be bound by the terms and conditions of this Agreement, do not download, install, or use the Evaluation Materials.
- 
-1. DEFINITIONS. These terms shall have the following meanings:
- 
-1.1 “MIPS” shall mean MIPS Technologies, Inc., a Delaware corporation having a principal place of business at: 955 East Arques Ave., Sunnyvale, CA 94085
- 
-1.2 “Evaluation Software” shall mean MIPS Android™ emulator system images for Android Software Development Kit (SDK), as made available to Recipient.
- 
-1.3 “Evaluation Materials" means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications, reference manuals, and other related materials) related to the Evaluation Software as made available to Recipient.
- 
-1.4 “Open Source Software” means any software that requires (as a condition of use, modification and/or distribution of such software) that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).
- 
-1.5 “Pre-Release Materials” means “alpha” or “beta” designated pre-release features, which may not be fully functional, which MIPS may substantially modify in producing any production version of the Evaluation Materials, and/or which is still under development by MIPS and/or MIPS’ suppliers.
- 
-2. PURPOSE. MIPS desires to make the Evaluation Materials available to Recipient solely for Recipient's internal evaluation of the Evaluation Software to evaluate the desirability of cooperating with MIPS in developing products that are compatible with the Evaluation Software and/or to advise MIPS as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute, modify (except to facilitate the above-mentioned internal evaluation), or make commercial use of the Evaluation Materials or any modifications of the Evaluation Materials.
- 
-THE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE MODIFIED (EXCEPT TO FACILITATE THE INTERNAL EVALUATION) OR DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT A MIPS SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERCIAL VERSION OF THE EVALUATION SOFTWARE.
- 
-3. TITLE. Title to the Evaluation Materials remains with MIPS or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.
- 
-4. LICENSE. MIPS grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above and only for a period beginning on the Effective Date and extending to the first anniversary of the Effective Date (the “Evaluation Period”). Unless otherwise communicated in writing by MIPS to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a “Release”) the license grant in this Section 4 and the Evaluation Period shall apply to each Release, in which case the Evaluation Period shall begin on the date that the Release is made generally available and continue to the first anniversary of such date. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software that is not provided to Recipient in source code form.
-
-
-EXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER MIPS INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT. OTHER THAN AS EXPLICITLY SET FORTH IN PARAGRAPH 2 ABOVE, NO RIGHT TO COPY, TO REPRODUCE, TO MODIFY, OR TO CREATE DERIVATIVE WORKS OF, THE EVALUATION MATERIALS IS GRANTED HEREIN.
- 
-5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from MIPS. MIPS and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.
- 
-6. MODIFICATIONS. This Agreement does not obligate Recipient to provide MIPS with comments or suggestions regarding Evaluation Materials. However, should Recipient provide MIPS with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) MIPS products or processes which may embody the Evaluation Materials, then Recipient agrees to grant and hereby grants to MIPS a non-exclusive, irrevocable, worldwide, fully paid-up, royalty-free license, with the right to sublicense MIPS’ licensees and customers, under Recipient’s Intellectual property rights, to use and disclose such comments and suggestions in any manner MIPS chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of MIPS’ and its sublicensee’s products embodying such comments and suggestions in any manner and via any media MIPS chooses, without reference to the source.
- 
-7. WARRANTY DISCLAIMER. MIPS AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT WITH RESPECT TO THIRD PARTY INTELLECTUAL PROPERTY. RECIPIENT ACKNOWLEDGES AND AGREES THAT THE EVALUATION MATERIALS ARE PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND.
- 
-8. LIMITATION OF LIABILITY. MIPS AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR FOR ANY DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED OR ALLEGED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE, INCLUDING WITHOUT LIMITATION, UNDER TORT OR OTHER LEGAL THEORY. MIPS AND ITS SUPPLIERS DISCLAIM ANY AND ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS OF ANY KIND RELATING TO THE EVALUATION MATERIALS.
- 
-9. EXPIRATION. MIPS may terminate this Agreement immediately after a breach by Recipient or otherwise at MIPS’ reasonable discretion and upon five (5) business days’ notice to Recipient.
- 
-10. GENERAL.
- 
-10.1 Controlling Law. This Agreement shall be governed by California law excluding its choice of law rules. With the exception of MIPS’ rights to enforce its intellectual property rights and any confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, all disputes and any claims arising under or relating to this Agreement shall be subject to the exclusive jurisdiction and venue of the state and federal courts located in Santa Clara County, California. Each party hereby agrees to jurisdiction and venue in the courts set forth in the preceding sentence. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.
- 
-10.2 Remedies. Recipient acknowledges and agrees that any breach of confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, as well as any disclosure, commercialization, or public use of the Evaluation Materials, would cause irreparable injury to MIPS, and therefore Recipient agrees to consent to, and hereby consents to, the grant of an injunction by any court of competent jurisdiction in the event of an actual or threatened breach.
- 
-10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights, obligations, or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without MIPS’ express prior written consent, shall be ineffective, null and void. MIPS may freely assign this Agreement, and its rights and obligations hereunder, in its sole discretion.
- 
-10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and MIPS and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and MIPS with respect to the subject matter hereof. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed or otherwise accepted by duly authorized representatives of Recipient and MIPS.
- 
-10.5 Severability. In the event that any provision of this Agreement is finally adjudicated to be unenforceable or invalid under any applicable law, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such unenforceable or invalid provision shall be interpreted so as to best accomplish the objectives of such provision within the limits of applicable law or applicable court decisions.
- 
-10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other necessary approval from the U.S. Department of Commerce or any other governing agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all applicable laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is "deemed" to take place when information is released to a foreign national wherever located.
- 
-10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments or may not be suitable for certain applications and (iv) MIPS can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . MIPS is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.
- 
-ANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED “AS IS” AND “AS AVAILABLE”, POSSIBLY WITH FAULTS, AND WITHOUT REPRESENTATION OR WARRANTY OF ANY KIND.
- 
-10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header as indicated in the Evaluation Software. Additional detail may be available (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement.
-    ]]>
-    </sdk:license>
-
-    <sdk:system-image>
-        <sdk:revision>1</sdk:revision>
-        <sdk:description>Android 4.0.4</sdk:description>
-        <sdk:api-level>15</sdk:api-level>
-        <sdk:abi>mips</sdk:abi>
-        <sdk:uses-license ref="mips-android-sysimage-license"/>
-        <sdk:archives>
-            <sdk:archive os="any">
-                <sdk:size>117503178</sdk:size>
-                <sdk:checksum type="sha1">a753bb4a6783124dad726c500ce9aec9d2c1b2d9</sdk:checksum>
-                <sdk:url>sysimg_mips-15_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-    </sdk:system-image>
-
-    <sdk:system-image>
-        <sdk:revision>4</sdk:revision>
-        <!-- mipsia repo tag qa-dev-mips-jb-20130123,
-             github.com/MIPS branch dev-mips-jb, tag mips-jb-4.1.2_r1m1
-             repo init -u git://github.com/MIPS/manifests.git
-                 -b dev-mips-jb -m mips-jb-4.1.2_r1m1.xml           -->
-        <sdk:description>Android 4.1.2</sdk:description>
-        <sdk:api-level>16</sdk:api-level>
-        <sdk:abi>mips</sdk:abi>
-        <sdk:uses-license ref="mips-android-sysimage-license"/>
-        <sdk:archives>
-            <sdk:archive os="any">
-                <sdk:size>122482530</sdk:size>
-                <sdk:checksum type="sha1">67943c54fb3943943ffeb05fdd39c0b753681f6e</sdk:checksum>
-                <sdk:url>sysimg_mips-16_r04.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-    </sdk:system-image>
-
-    <sdk:system-image>
-        <sdk:revision>1</sdk:revision>
-        <!-- mipsia repo tag qa-dev-mips-jb-mr1-20121219,
-             github.com/MIPS tag mips-jb-4.2.1_r1 -->
-        <sdk:description>Android 4.2.1</sdk:description>
-        <sdk:api-level>17</sdk:api-level>
-        <sdk:abi>mips</sdk:abi>
-        <sdk:uses-license ref="mips-android-sysimage-license"/>
-        <sdk:archives>
-            <sdk:archive os="any">
-                <sdk:size>131781761</sdk:size>
-                <sdk:checksum type="sha1">f0c6e153bd584c29e51b5c9723cfbf30f996a05d</sdk:checksum>
-                <sdk:url>sysimg_mips-17_r01.zip</sdk:url>
-            </sdk:archive>
-        </sdk:archives>
-    </sdk:system-image>
-
-</sdk:sdk-sys-img>
diff --git a/pkgs/development/mobile/androidenv/sys-img-x86.xml b/pkgs/development/mobile/androidenv/sys-img-x86.xml
deleted file mode 100644
index 75ddf73eb1d..00000000000
--- a/pkgs/development/mobile/androidenv/sys-img-x86.xml
+++ /dev/null
@@ -1,154 +0,0 @@
-<!--
-* Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
--->
-<sdk:sdk-sys-img xmlns:sdk="http://schemas.android.com/sdk/android/sys-img/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-<sdk:license id="intel-android-sysimage-license" type="text">
-<![CDATA[
-Intel Corporation Internal Evaluation License Agreement for x86 Android* System Images for Android Software Development Kit (SDK)
-This Internal Evaluation License Agreement (this "Agreement") is entered into by and between Intel and you (as an individual developer or a legal entity -- identified below as Recipient). Intel shall provide the Evaluation Software to Recipient as described in accordance with the Internal Evaluation License Terms and Conditions.
-
-Definitions.
-These terms shall have the following meanings:
-
-"Intel" or "INTEL"
-Intel Corporation
-With an Address of:
-2200 Mission College Blvd.
-Santa Clara, CA 95052
-Office of the General Counsel
-Mail Stop: RNB-4-51
-Attn: Software and Services Group Legal
-
-"Evaluation Software"
-The x86 Android* emulator system images for Android  Software Development Kit (SDK), as provided by Intel.
-
-INTERNAL EVALUATION LICENSE TERMS AND CONDITIONS
-
-1. DEFINITIONS.
-
-1.1 Additional Defined Terms. "Agreement", "Evaluation Software",  "Intel", "Non-disclosure Agreement", "Recipient", and "Effective Date" shall have the meanings ascribed to them on the signature page(s) of this Agreement.
-
-1.2 Evaluation Materials means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications and other related materials) related to the Evaluation Software.
-
-1.3 "Open Source Software" means any software that requires as a condition of use, modification and/or distribution of such software that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).
-
-1.4 "Pre-Release Materials" means "alpha" or "beta" designated pre-release features, which may not be fully functional, which Intel may substantially modify in producing any production version of the Evaluation Materials and/or is still under development by Intel and/or Intel’s suppliers.
-
-2. PURPOSE. Intel desires to provide the Evaluation Materials to Recipient solely for Recipient's internal evaluation of the Evaluation Software and other Intel products, to evaluate the desirability of cooperating with Intel in developing products based on the Evaluation Software and/or to advise Intel as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute or make commercial use of the Evaluation Materials or any modifications to the Evaluation Materials.
-THE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT AN INTEL SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERICAL VERSION OF THE EVALUATION SOFTWARE.
-
-3. TITLE. Title to the Evaluation Materials remains with Intel or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.
-
-4. LICENSE. Intel grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above. Unless otherwise communicated in writing by Intel to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a "Release") the license grant in this Section 4 and the Evaluation Period shall apply to each Release. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software not provided to Recipient in source code form.
-EXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT.
-
-5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from Intel. Intel and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.
-
-6. MODIFICATIONS. This Agreement does NOT obligate Recipient to provide Intel with comments or suggestions regarding Evaluation Materials. However, should Recipient provide Intel with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) Intel products or processes which may embody the Evaluation Materials, Recipient grants to Intel a non-exclusive, irrevocable, worldwide, royalty-free license, with the right to sublicense Intel’s licensees and customers, under Recipient intellectual property rights, the rights to use and disclose such comments and suggestions in any manner Intel chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of Intel’s and its sublicensee’s products embodying such comments and suggestions in any manner and via any media Intel chooses, without reference to the source.
-
-7. WARRANTY DISCLAIMER. INTEL AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT. THE EVALUATION MATERIALS ARE PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND.
-
-8. LIMITATION OF LIABILITY. INTEL AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR ANY SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE. INTEL AND ITS SUPPLIERS DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS RELATING TO THE EVALUATION MATERIALS.
-
-9. EXPIRATION. Intel may terminate this Agreement immediately after a breach by Recipient.
-
-10. GENERAL.
-
-10.1 Controlling Law. Any claims arising under or relating to this Agreement shall be governed by the internal substantive laws of the State of Delaware or federal courts located in Delaware, without regard to principles of conflict of laws. Each party hereby agrees to jurisdiction and venue in the courts of the State of Delaware for all disputes and litigation arising under or relating to this Agreement. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.
-
-10.2 Remedies. Recipient acknowledges that any disclosure, commercialization, or public use of the Evaluation Materials would cause irreparable injury to Intel and consents to the grant of an injunction by any court of competent jurisdiction in the event of a threatened breach.
-
-10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without Intel’s express prior written consent, shall be null and void. Intel may assign this Agreement, and its rights and obligations hereunder, in its sole discretion.
-
-10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and Intel and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and Intel with respect to the subject matter hereof. This Agreement supersedes any and all "click-to-accept" or shrink-wrapped licenses, in hard-copy or electronic form, embedded in or included with the Evaluation Materials. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed by duly authorized representatives of Recipient and Intel. Without limiting the foregoing, terms and conditions on any purchase orders or similar materials submitted by Recipient to Intel, and any terms contained in Intel’s standard acknowledgment form that are in conflict with these terms, shall be of no force or effect.
-
-10.5 Severability. In the event that any provision of this Agreement shall be unenforceable or invalid under any applicable law or be so held by applicable court decision, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such provision shall be changed and interpreted so as to best accomplish the objectives of such unenforceable or invalid provision within the limits of applicable law or applicable court decisions.
-
-10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other approval from the U.S. Department of Commerce or any other agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is "deemed" to take place when information is released to a foreign national wherever located.
-
-10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments and (iv) Intel can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . Intel is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.
-
-10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header provided with Evaluation Software. Additional detail may be provided (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement.
-ANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED POSSIBLY WITH FAULTS
-]]>
-</sdk:license>
-
-<!-- SYSTEM IMAGES ........................ -->
-
-<sdk:system-image>
-    <sdk:description>Android SDK Platform 2.3.7</sdk:description>
-    <sdk:revision>2</sdk:revision>
-    <sdk:api-level>10</sdk:api-level>
-    <sdk:abi>x86</sdk:abi>
-    <sdk:uses-license ref="intel-android-sysimage-license"/>
-    <sdk:archives>
-      <sdk:archive arch="any" os="any">
-        <sdk:size>55463895</sdk:size>
-        <sdk:checksum type="sha1">34e2436f69606cdfe35d3ef9112f0c64e3ff021d</sdk:checksum>
-        <sdk:url>sysimg_x86-10_r02.zip</sdk:url>
-      </sdk:archive>
-    </sdk:archives>
-</sdk:system-image>
-
-<sdk:system-image>
-    <sdk:description>Android SDK Platform 4.0.4</sdk:description>
-    <sdk:revision>1</sdk:revision>
-    <sdk:api-level>15</sdk:api-level>
-    <sdk:abi>x86</sdk:abi>
-    <sdk:uses-license ref="intel-android-sysimage-license"/>
-    <sdk:archives>
-      <sdk:archive arch="any" os="any">
-        <sdk:size>112619605</sdk:size>
-        <sdk:checksum type="sha1">d540325952e0f097509622b9e685737584b83e40</sdk:checksum>
-        <sdk:url>sysimg_x86-15_r01.zip</sdk:url>
-      </sdk:archive>
-    </sdk:archives>
-</sdk:system-image>
-
-<sdk:system-image>
-    <sdk:description>Android SDK Platform 4.1.1</sdk:description>
-    <sdk:revision>1</sdk:revision>
-    <sdk:api-level>16</sdk:api-level>
-    <sdk:abi>x86</sdk:abi>
-    <sdk:uses-license ref="intel-android-sysimage-license"/>
-    <sdk:archives>
-      <sdk:archive arch="any" os="any">
-        <sdk:size>131840348</sdk:size>
-        <sdk:checksum type="sha1">9d35bcaa4f9b40443941f32b8a50337f413c021a</sdk:checksum>
-        <sdk:url>sysimg_x86-16_r01.zip</sdk:url>
-      </sdk:archive>
-    </sdk:archives>
-</sdk:system-image>
-
-<sdk:system-image>
-    <sdk:description>Android SDK Platform 4.2</sdk:description>
-    <sdk:revision>1</sdk:revision>
-    <sdk:api-level>17</sdk:api-level>
-    <sdk:abi>x86</sdk:abi>
-    <sdk:uses-license ref="intel-android-sysimage-license"/>
-    <sdk:archives>
-        <sdk:archive arch="any" os="any">
-            <sdk:size>138799122</sdk:size>
-            <sdk:checksum type="sha1">ddb3313e8dcd07926003f7b828eafea1115ea35b</sdk:checksum>
-            <sdk:url>sysimg_x86-17_r01.zip</sdk:url>
-        </sdk:archive>
-    </sdk:archives>
-</sdk:system-image>
-
-<sdk:system-image>
-    <sdk:description>Android SDK Platform 4.3</sdk:description>
-    <sdk:revision>1</sdk:revision>
-    <sdk:api-level>18</sdk:api-level>
-    <sdk:abi>x86</sdk:abi>
-    <sdk:uses-license ref="intel-android-sysimage-license"/>
-    <sdk:archives>
-        <sdk:archive arch="any" os="any">
-            <sdk:size>155656419</sdk:size>
-            <sdk:checksum type="sha1">f11bc9fccd3e7e46c07d8b26e112a8d0b45966c1</sdk:checksum>
-            <sdk:url>sysimg_x86-18_r01.zip</sdk:url>
-        </sdk:archive>
-    </sdk:archives>
-</sdk:system-image>
-
-</sdk:sdk-sys-img>
diff --git a/pkgs/development/mobile/androidenv/sys-img.xml b/pkgs/development/mobile/androidenv/sys-img.xml
new file mode 100644
index 00000000000..5d2b0f7a883
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/sys-img.xml
@@ -0,0 +1,712 @@
+<!--
+* Copyright (C) 2012 The Android Open Source Project
+*
+* Licensed under the Apache License, version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+-->
+<sdk:sdk-sys-img xmlns:sdk="http://schemas.android.com/sdk/android/sys-img/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+
+    <sdk:license id="android-sdk-license" type="text">To get started with the Android SDK, you must agree to the following terms and conditions.
+
+This is the Android SDK License Agreement (the &quot;License Agreement&quot;).
+
+1. Introduction
+
+1.1 The Android SDK (referred to in the License Agreement as the &quot;SDK&quot; and specifically including the Android system files, packaged APIs, and SDK library files and tools , if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
+
+1.2 &quot;Android&quot; means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.3 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting the License Agreement
+
+2.1 In order to use the SDK, you must first agree to the License Agreement. You may not use the SDK if you do not accept the License Agreement.
+
+2.2 By clicking to accept and/or using the SDK, you hereby agree to the terms of the License Agreement.
+
+2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.
+
+2.4 If you will use the SDK internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.
+
+3. SDK License from Google
+
+3.1 Subject to the terms of the License Agreement, Google grants you a royalty-free, non-assignable, non-exclusive, non-sublicensable, limited, revocable license to use the SDK, personally or internally within your company or organization, solely to develop and distribute applications to run on the Android platform.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the SDK for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.
+
+3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
+
+3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
+
+4. Use of the SDK by You
+
+4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the SDK to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
+
+7. Third Party Applications
+
+7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
+
+8. Using Google APIs
+
+8.1 Google APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+9. Terminating the License Agreement
+
+9.1 The License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
+
+9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
+
+9.4 The License Agreement will automatically terminate without notice or other action when Google ceases to provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service.
+
+9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the SDK, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
+
+10. DISCLAIMERS
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE SDK MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.
+
+14. General Legal Terms
+
+14.1 The License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
+
+14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+June 2014.
+    </sdk:license>
+
+    <sdk:license id="android-sdk-preview-license" type="text">To get started with the Android SDK Preview, you must agree to the following terms and conditions.
+As described below, please note that this is a preview version of the Android SDK, subject to change, that you use at your own risk.  The Android SDK Preview is not a stable release, and may contain errors and defects that can result in serious damage to your computer systems, devices and data.
+
+This is the Android SDK Preview License Agreement (the &quot;License Agreement&quot;).
+
+1. Introduction
+
+1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
+
+1.2 &quot;Android&quot; means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.3 &quot;Google&quot; means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting the License Agreement
+
+2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.
+
+2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.
+
+2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.
+
+2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.
+
+3. Preview License from Google
+
+3.1 Subject to the terms of the License Agreement, Google grants you a royalty-free, non-assignable, non-exclusive, non-sublicensable, limited, revocable license to use the Preview, personally or internally within your company or organization, solely to develop applications to run on the Android platform.
+
+3.2 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. &quot;Intellectual Property Rights&quot; means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Preview.
+
+3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
+
+3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.
+
+4. Use of the Preview by You
+
+4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
+
+7. Third Party Applications
+
+7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
+
+8. Using Google APIs
+
+8.1 Google APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+9. Terminating the License Agreement
+
+9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.
+
+9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
+
+9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of:
+(A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and
+(B) Google issues a final release version of the Android SDK.
+
+9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
+
+10. DISCLAIMERS
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED &quot;AS IS&quot; AND &quot;AS AVAILABLE&quot; WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.
+
+14. General Legal Terms
+
+14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
+
+14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+June 2014.
+    </sdk:license>
+
+    <sdk:license id="intel-android-sysimage-license" type="text">
+<![CDATA[
+Intel Corporation Internal Evaluation License Agreement for x86 Android* System Images for Android Software Development Kit (SDK)
+This Internal Evaluation License Agreement (this "Agreement") is entered into by and between Intel and you (as an individual developer or a legal entity -- identified below as Recipient). Intel shall provide the Evaluation Software to Recipient as described in accordance with the Internal Evaluation License Terms and Conditions.
+
+Definitions.
+These terms shall have the following meanings:
+
+"Intel" or "INTEL"
+Intel Corporation
+With an Address of:
+2200 Mission College Blvd.
+Santa Clara, CA 95052
+Office of the General Counsel
+Mail Stop: RNB-4-51
+Attn: Software and Services Group Legal
+
+"Evaluation Software"
+The x86 Android* emulator system images for Android  Software Development Kit (SDK), as provided by Intel.
+
+INTERNAL EVALUATION LICENSE TERMS AND CONDITIONS
+
+1. DEFINITIONS.
+
+1.1 Additional Defined Terms. "Agreement", "Evaluation Software",  "Intel", "Non-disclosure Agreement", "Recipient", and "Effective Date" shall have the meanings ascribed to them on the signature page(s) of this Agreement.
+
+1.2 Evaluation Materials means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications and other related materials) related to the Evaluation Software.
+
+1.3 "Open Source Software" means any software that requires as a condition of use, modification and/or distribution of such software that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).
+
+1.4 "Pre-Release Materials" means "alpha" or "beta" designated pre-release features, which may not be fully functional, which Intel may substantially modify in producing any production version of the Evaluation Materials and/or is still under development by Intel and/or Intel’s suppliers.
+
+2. PURPOSE. Intel desires to provide the Evaluation Materials to Recipient solely for Recipient's internal evaluation of the Evaluation Software and other Intel products, to evaluate the desirability of cooperating with Intel in developing products based on the Evaluation Software and/or to advise Intel as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute or make commercial use of the Evaluation Materials or any modifications to the Evaluation Materials.
+THE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT AN INTEL SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERICAL VERSION OF THE EVALUATION SOFTWARE.
+
+3. TITLE. Title to the Evaluation Materials remains with Intel or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.
+
+4. LICENSE. Intel grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above. Unless otherwise communicated in writing by Intel to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a "Release") the license grant in this Section 4 and the Evaluation Period shall apply to each Release. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software not provided to Recipient in source code form.
+EXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT.
+
+5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from Intel. Intel and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.
+
+6. MODIFICATIONS. This Agreement does NOT obligate Recipient to provide Intel with comments or suggestions regarding Evaluation Materials. However, should Recipient provide Intel with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) Intel products or processes which may embody the Evaluation Materials, Recipient grants to Intel a non-exclusive, irrevocable, worldwide, royalty-free license, with the right to sublicense Intel’s licensees and customers, under Recipient intellectual property rights, the rights to use and disclose such comments and suggestions in any manner Intel chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of Intel’s and its sublicensee’s products embodying such comments and suggestions in any manner and via any media Intel chooses, without reference to the source.
+
+7. WARRANTY DISCLAIMER. INTEL AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT. THE EVALUATION MATERIALS ARE PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND.
+
+8. LIMITATION OF LIABILITY. INTEL AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR ANY SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE. INTEL AND ITS SUPPLIERS DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS RELATING TO THE EVALUATION MATERIALS.
+
+9. EXPIRATION. Intel may terminate this Agreement immediately after a breach by Recipient.
+
+10. GENERAL.
+
+10.1 Controlling Law. Any claims arising under or relating to this Agreement shall be governed by the internal substantive laws of the State of Delaware or federal courts located in Delaware, without regard to principles of conflict of laws. Each party hereby agrees to jurisdiction and venue in the courts of the State of Delaware for all disputes and litigation arising under or relating to this Agreement. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.
+
+10.2 Remedies. Recipient acknowledges that any disclosure, commercialization, or public use of the Evaluation Materials would cause irreparable injury to Intel and consents to the grant of an injunction by any court of competent jurisdiction in the event of a threatened breach.
+
+10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without Intel’s express prior written consent, shall be null and void. Intel may assign this Agreement, and its rights and obligations hereunder, in its sole discretion.
+
+10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and Intel and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and Intel with respect to the subject matter hereof. This Agreement supersedes any and all "click-to-accept" or shrink-wrapped licenses, in hard-copy or electronic form, embedded in or included with the Evaluation Materials. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed by duly authorized representatives of Recipient and Intel. Without limiting the foregoing, terms and conditions on any purchase orders or similar materials submitted by Recipient to Intel, and any terms contained in Intel’s standard acknowledgment form that are in conflict with these terms, shall be of no force or effect.
+
+10.5 Severability. In the event that any provision of this Agreement shall be unenforceable or invalid under any applicable law or be so held by applicable court decision, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such provision shall be changed and interpreted so as to best accomplish the objectives of such unenforceable or invalid provision within the limits of applicable law or applicable court decisions.
+
+10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other approval from the U.S. Department of Commerce or any other agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is "deemed" to take place when information is released to a foreign national wherever located.
+
+10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments and (iv) Intel can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . Intel is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.
+
+10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header provided with Evaluation Software. Additional detail may be provided (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement.
+ANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED POSSIBLY WITH FAULTS
+]]>
+    </sdk:license>
+    <sdk:license id="mips-android-sysimage-license" type="text">
+<![CDATA[
+MIPS Technologies, Inc. (“MIPS”) Internal Evaluation License Agreement for MIPS Android™ System Images for Android Software Development Kit (SDK):
+This Internal Evaluation License Agreement (this "Agreement") is entered into by and between MIPS and you (as an individual developer or a legal entity -- identified below as “Recipient”). MIPS shall make the Evaluation Software available to Recipient as described in accordance with the terms and conditions set forth below.
+
+By clicking on the “Accept” button, downloading, installing, or otherwise using the Evaluation Materials (defined below), you agree to be bound by the terms of this Agreement effective as of the date you click “Accept” (the “Effective Date”), and if doing so on behalf of an entity, you represent that you are authorized to bind the entity to the terms and conditions of this Agreement. If you do not agree to be bound by the terms and conditions of this Agreement, do not download, install, or use the Evaluation Materials.
+
+1. DEFINITIONS. These terms shall have the following meanings:
+
+1.1 “MIPS” shall mean MIPS Technologies, Inc., a Delaware corporation having a principal place of business at: 955 East Arques Ave., Sunnyvale, CA 94085
+
+1.2 “Evaluation Software” shall mean MIPS Android™ emulator system images for Android Software Development Kit (SDK), as made available to Recipient.
+
+1.3 “Evaluation Materials" means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications, reference manuals, and other related materials) related to the Evaluation Software as made available to Recipient.
+
+1.4 “Open Source Software” means any software that requires (as a condition of use, modification and/or distribution of such software) that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).
+
+1.5 “Pre-Release Materials” means “alpha” or “beta” designated pre-release features, which may not be fully functional, which MIPS may substantially modify in producing any production version of the Evaluation Materials, and/or which is still under development by MIPS and/or MIPS’ suppliers.
+
+2. PURPOSE. MIPS desires to make the Evaluation Materials available to Recipient solely for Recipient's internal evaluation of the Evaluation Software to evaluate the desirability of cooperating with MIPS in developing products that are compatible with the Evaluation Software and/or to advise MIPS as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute, modify (except to facilitate the above-mentioned internal evaluation), or make commercial use of the Evaluation Materials or any modifications of the Evaluation Materials.
+
+THE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE MODIFIED (EXCEPT TO FACILITATE THE INTERNAL EVALUATION) OR DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT A MIPS SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERCIAL VERSION OF THE EVALUATION SOFTWARE.
+
+3. TITLE. Title to the Evaluation Materials remains with MIPS or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.
+
+4. LICENSE. MIPS grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above and only for a period beginning on the Effective Date and extending to the first anniversary of the Effective Date (the “Evaluation Period”). Unless otherwise communicated in writing by MIPS to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a “Release”) the license grant in this Section 4 and the Evaluation Period shall apply to each Release, in which case the Evaluation Period shall begin on the date that the Release is made generally available and continue to the first anniversary of such date. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software that is not provided to Recipient in source code form.
+
+
+EXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER MIPS INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT. OTHER THAN AS EXPLICITLY SET FORTH IN PARAGRAPH 2 ABOVE, NO RIGHT TO COPY, TO REPRODUCE, TO MODIFY, OR TO CREATE DERIVATIVE WORKS OF, THE EVALUATION MATERIALS IS GRANTED HEREIN.
+
+5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from MIPS. MIPS and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.
+
+6. MODIFICATIONS. This Agreement does not obligate Recipient to provide MIPS with comments or suggestions regarding Evaluation Materials. However, should Recipient provide MIPS with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) MIPS products or processes which may embody the Evaluation Materials, then Recipient agrees to grant and hereby grants to MIPS a non-exclusive, irrevocable, worldwide, fully paid-up, royalty-free license, with the right to sublicense MIPS’ licensees and customers, under Recipient’s Intellectual property rights, to use and disclose such comments and suggestions in any manner MIPS chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of MIPS’ and its sublicensee’s products embodying such comments and suggestions in any manner and via any media MIPS chooses, without reference to the source.
+
+7. WARRANTY DISCLAIMER. MIPS AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT WITH RESPECT TO THIRD PARTY INTELLECTUAL PROPERTY. RECIPIENT ACKNOWLEDGES AND AGREES THAT THE EVALUATION MATERIALS ARE PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND.
+
+8. LIMITATION OF LIABILITY. MIPS AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR FOR ANY DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED OR ALLEGED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE, INCLUDING WITHOUT LIMITATION, UNDER TORT OR OTHER LEGAL THEORY. MIPS AND ITS SUPPLIERS DISCLAIM ANY AND ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS OF ANY KIND RELATING TO THE EVALUATION MATERIALS.
+
+9. EXPIRATION. MIPS may terminate this Agreement immediately after a breach by Recipient or otherwise at MIPS’ reasonable discretion and upon five (5) business days’ notice to Recipient.
+
+10. GENERAL.
+
+10.1 Controlling Law. This Agreement shall be governed by California law excluding its choice of law rules. With the exception of MIPS’ rights to enforce its intellectual property rights and any confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, all disputes and any claims arising under or relating to this Agreement shall be subject to the exclusive jurisdiction and venue of the state and federal courts located in Santa Clara County, California. Each party hereby agrees to jurisdiction and venue in the courts set forth in the preceding sentence. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.
+
+10.2 Remedies. Recipient acknowledges and agrees that any breach of confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, as well as any disclosure, commercialization, or public use of the Evaluation Materials, would cause irreparable injury to MIPS, and therefore Recipient agrees to consent to, and hereby consents to, the grant of an injunction by any court of competent jurisdiction in the event of an actual or threatened breach.
+
+10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights, obligations, or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without MIPS’ express prior written consent, shall be ineffective, null and void. MIPS may freely assign this Agreement, and its rights and obligations hereunder, in its sole discretion.
+
+10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and MIPS and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and MIPS with respect to the subject matter hereof. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed or otherwise accepted by duly authorized representatives of Recipient and MIPS.
+
+10.5 Severability. In the event that any provision of this Agreement is finally adjudicated to be unenforceable or invalid under any applicable law, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such unenforceable or invalid provision shall be interpreted so as to best accomplish the objectives of such provision within the limits of applicable law or applicable court decisions.
+
+10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other necessary approval from the U.S. Department of Commerce or any other governing agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all applicable laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is "deemed" to take place when information is released to a foreign national wherever located.
+
+10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments or may not be suitable for certain applications and (iv) MIPS can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . MIPS is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.
+
+ANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED “AS IS” AND “AS AVAILABLE”, POSSIBLY WITH FAULTS, AND WITHOUT REPRESENTATION OR WARRANTY OF ANY KIND.
+
+10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header as indicated in the Evaluation Software. Additional detail may be available (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement.
+    ]]>
+    </sdk:license>
+
+    <!-- ARM SYSTEM IMAGES ........................ -->
+
+    <sdk:system-image>
+        <!-- Generated at Wed Dec  7 13:47:01 2011 from git_ics-mr0 @ 229537 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:description>Android SDK Platform 4.0</sdk:description>
+        <sdk:api-level>14</sdk:api-level>
+        <sdk:abi>armeabi-v7a</sdk:abi>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>99621822</sdk:size>
+                <sdk:checksum type="sha1">d8991b0c06b18d7d6ed4169d67460ee1add6661b</sdk:checksum>
+                <sdk:url>sysimg_armv7a-14_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <!-- Generated at Fri Mar 30 10:43:23 2012 from ics-mr1 @ 302030 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:description>Android SDK Platform 4.0.3</sdk:description>
+        <sdk:api-level>15</sdk:api-level>
+        <sdk:abi>armeabi-v7a</sdk:abi>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>96227377</sdk:size>
+                <sdk:checksum type="sha1">1bf977d6cb4e0ad38dceac0c4863d1caa21f326e</sdk:checksum>
+                <sdk:url>sysimg_armv7a-15_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <!-- Generated at Tue Oct  9 13:43:08 2012 from git_jb-dev @ 495790 -->
+        <sdk:revision>3</sdk:revision>
+        <sdk:description>Android SDK Platform 4.1</sdk:description>
+        <sdk:api-level>16</sdk:api-level>
+        <sdk:abi>armeabi-v7a</sdk:abi>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>112528368</sdk:size>
+                <sdk:checksum type="sha1">d1cddb23f17aad5821a089c403d4cddad2cf9ef7</sdk:checksum>
+                <sdk:url>sysimg_armv7a-16_r03.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <!-- Generated at Wed Feb 13 11:29:12 2013 from git_jb-mr1.1-dev @ 576024 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:description>Android SDK Platform 4.2.2</sdk:description>
+        <sdk:api-level>17</sdk:api-level>
+        <sdk:abi>armeabi-v7a</sdk:abi>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>116553808</sdk:size>
+                <sdk:checksum type="sha1">1c321cda1af793b84d47d1a8d15f85444d265e3c</sdk:checksum>
+                <sdk:url>sysimg_armv7a-17_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <!-- Generated at Mon Aug 12 12:43:28 2013 from git_jb-mr2-dev @ 774058 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:description>Android SDK Platform 4.3</sdk:description>
+        <sdk:api-level>18</sdk:api-level>
+        <sdk:abi>armeabi-v7a</sdk:abi>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>125457135</sdk:size>
+                <sdk:checksum type="sha1">4a1a93200210d8c42793324362868846f67401ab</sdk:checksum>
+                <sdk:url>sysimg_armv7a-18_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <!-- Generated at Thu Dec  5 14:04:05 2013 from git_klp-dev @ 938007 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:description>Android SDK Platform 4.4.2</sdk:description>
+        <sdk:api-level>19</sdk:api-level>
+        <sdk:abi>armeabi-v7a</sdk:abi>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>158478012</sdk:size>
+                <sdk:checksum type="sha1">e0d375397e28e3d5d9577a00132463a4696248e5</sdk:checksum>
+                <sdk:url>sysimg_armv7a-19_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <!-- Generated at Mon Jun 23 19:22:34 2014 from git_lmp-preview-release @ 1242878 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:description>Android SDK Platform L</sdk:description>
+        <sdk:api-level>20</sdk:api-level>
+        <sdk:codename>L</sdk:codename>
+        <sdk:abi>armeabi-v7a</sdk:abi>
+        <sdk:tag-id>default</sdk:tag-id>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>227716008</sdk:size>
+                <sdk:checksum type="sha1">1d5d81a7078b5b2a685620d93e1e04a51d2e786a</sdk:checksum>
+                <sdk:url>sysimg_armv7a-L_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-preview-license"/>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <!-- Generated at Mon Jun 23 19:23:13 2014 from git_lmp-preview-release @ 1242878 -->
+        <sdk:revision>1</sdk:revision>
+        <sdk:description>Android SDK Platform L</sdk:description>
+        <sdk:api-level>20</sdk:api-level>
+        <sdk:codename>L</sdk:codename>
+        <sdk:abi>x86</sdk:abi>
+        <sdk:tag-id>default</sdk:tag-id>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>245850484</sdk:size>
+                <sdk:checksum type="sha1">c2d32d6244821ff59f370469778525f6a5345010</sdk:checksum>
+                <sdk:url>sysimg_x86-L_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-preview-license"/>
+    </sdk:system-image>
+    <!-- X86 SYSTEM IMAGES ........................ -->
+
+    <sdk:system-image>
+        <sdk:description>Android SDK Platform 2.3.7</sdk:description>
+        <sdk:revision>2</sdk:revision>
+        <sdk:api-level>10</sdk:api-level>
+        <sdk:abi>x86</sdk:abi>
+        <sdk:uses-license ref="intel-android-sysimage-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>55463895</sdk:size>
+                <sdk:checksum type="sha1">34e2436f69606cdfe35d3ef9112f0c64e3ff021d</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-10_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <sdk:description>Android SDK Platform 4.0.4</sdk:description>
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>15</sdk:api-level>
+        <sdk:abi>x86</sdk:abi>
+        <sdk:uses-license ref="intel-android-sysimage-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>112619605</sdk:size>
+                <sdk:checksum type="sha1">d540325952e0f097509622b9e685737584b83e40</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-15_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <sdk:description>Android SDK Platform 4.1.1</sdk:description>
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>16</sdk:api-level>
+        <sdk:abi>x86</sdk:abi>
+        <sdk:uses-license ref="intel-android-sysimage-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>131840348</sdk:size>
+                <sdk:checksum type="sha1">9d35bcaa4f9b40443941f32b8a50337f413c021a</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-16_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <sdk:description>Android SDK Platform 4.2</sdk:description>
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>17</sdk:api-level>
+        <sdk:abi>x86</sdk:abi>
+        <sdk:uses-license ref="intel-android-sysimage-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>138799122</sdk:size>
+                <sdk:checksum type="sha1">ddb3313e8dcd07926003f7b828eafea1115ea35b</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-17_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <sdk:description>Android SDK Platform 4.3</sdk:description>
+        <sdk:revision>1</sdk:revision>
+        <sdk:api-level>18</sdk:api-level>
+        <sdk:abi>x86</sdk:abi>
+        <sdk:uses-license ref="intel-android-sysimage-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>155656419</sdk:size>
+                <sdk:checksum type="sha1">f11bc9fccd3e7e46c07d8b26e112a8d0b45966c1</sdk:checksum>
+                <sdk:url>https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-18_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <!-- Generated at Thu Feb 20 15:52:49 2014 from git_klp-sdk-release @ 999428 -->
+        <sdk:revision>2</sdk:revision>
+        <sdk:description>Android SDK Platform 4.4.2</sdk:description>
+        <sdk:api-level>19</sdk:api-level>
+        <sdk:abi>x86</sdk:abi>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>178922720</sdk:size>
+                <sdk:checksum type="sha1">8889cb418984a2a7916a359da7c429d2431ed060</sdk:checksum>
+                <sdk:url>sysimg_x86-19_r02.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:uses-license ref="android-sdk-license"/>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <!-- MIPS SYSTEM IMAGES ........................ -->
+
+    <sdk:system-image>
+        <sdk:revision>1</sdk:revision>
+        <sdk:description>Android 4.0.4</sdk:description>
+        <sdk:api-level>15</sdk:api-level>
+        <sdk:abi>mips</sdk:abi>
+        <sdk:uses-license ref="mips-android-sysimage-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>117503178</sdk:size>
+                <sdk:checksum type="sha1">a753bb4a6783124dad726c500ce9aec9d2c1b2d9</sdk:checksum>
+                <sdk:url>sysimg_mips-15_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <sdk:revision>4</sdk:revision>
+        <!-- mipsia repo tag qa-dev-mips-jb-20130123,
+             github.com/MIPS branch dev-mips-jb, tag mips-jb-4.1.2_r1m1
+             repo init -u git://github.com/MIPS/manifests.git
+                 -b dev-mips-jb -m mips-jb-4.1.2_r1m1.xml           -->
+        <sdk:description>Android 4.1.2</sdk:description>
+        <sdk:api-level>16</sdk:api-level>
+        <sdk:abi>mips</sdk:abi>
+        <sdk:uses-license ref="mips-android-sysimage-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>122482530</sdk:size>
+                <sdk:checksum type="sha1">67943c54fb3943943ffeb05fdd39c0b753681f6e</sdk:checksum>
+                <sdk:url>sysimg_mips-16_r04.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+    <sdk:system-image>
+        <sdk:revision>1</sdk:revision>
+        <!-- mipsia repo tag qa-dev-mips-jb-mr1-20121219,
+             github.com/MIPS tag mips-jb-4.2.1_r1 -->
+        <sdk:description>Android 4.2.1</sdk:description>
+        <sdk:api-level>17</sdk:api-level>
+        <sdk:abi>mips</sdk:abi>
+        <sdk:uses-license ref="mips-android-sysimage-license"/>
+        <sdk:archives>
+            <sdk:archive>
+                <sdk:size>131781761</sdk:size>
+                <sdk:checksum type="sha1">f0c6e153bd584c29e51b5c9723cfbf30f996a05d</sdk:checksum>
+                <sdk:url>sysimg_mips-17_r01.zip</sdk:url>
+            </sdk:archive>
+        </sdk:archives>
+        <sdk:tag-id>default</sdk:tag-id>
+    </sdk:system-image>
+
+</sdk:sdk-sys-img>
diff --git a/pkgs/development/mobile/androidenv/sysimages.nix b/pkgs/development/mobile/androidenv/sysimages.nix
index bbbf3a4fc68..ddc6dd99d39 100644
--- a/pkgs/development/mobile/androidenv/sysimages.nix
+++ b/pkgs/development/mobile/androidenv/sysimages.nix
@@ -14,113 +14,137 @@ in
 {
 
   sysimg_armeabi-v7a_14 = buildSystemImage {
-    name = "armeabi-v7a-14";
+    name = "sysimg-armeabi-v7a-14";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sysimg_armv7a-14_r02.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_armv7a-14_r02.zip;
       sha1 = "d8991b0c06b18d7d6ed4169d67460ee1add6661b";
     };
   };
     
   sysimg_armeabi-v7a_15 = buildSystemImage {
-    name = "armeabi-v7a-15";
+    name = "sysimg-armeabi-v7a-15";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sysimg_armv7a-15_r02.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_armv7a-15_r02.zip;
       sha1 = "1bf977d6cb4e0ad38dceac0c4863d1caa21f326e";
     };
   };
     
   sysimg_armeabi-v7a_16 = buildSystemImage {
-    name = "armeabi-v7a-16";
+    name = "sysimg-armeabi-v7a-16";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sysimg_armv7a-16_r03.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_armv7a-16_r03.zip;
       sha1 = "d1cddb23f17aad5821a089c403d4cddad2cf9ef7";
     };
   };
     
   sysimg_armeabi-v7a_17 = buildSystemImage {
-    name = "armeabi-v7a-17";
+    name = "sysimg-armeabi-v7a-17";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sysimg_armv7a-17_r02.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_armv7a-17_r02.zip;
       sha1 = "1c321cda1af793b84d47d1a8d15f85444d265e3c";
     };
   };
     
   sysimg_armeabi-v7a_18 = buildSystemImage {
-    name = "armeabi-v7a-18";
+    name = "sysimg-armeabi-v7a-18";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sysimg_armv7a-18_r02.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_armv7a-18_r02.zip;
       sha1 = "4a1a93200210d8c42793324362868846f67401ab";
     };
   };
     
   sysimg_armeabi-v7a_19 = buildSystemImage {
-    name = "armeabi-v7a-19";
+    name = "sysimg-armeabi-v7a-19";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sysimg_armv7a-19_r01.zip;
-      sha1 = "12dd1187dfd953b1ffcef5067d94578590f9e600";
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_armv7a-19_r02.zip;
+      sha1 = "e0d375397e28e3d5d9577a00132463a4696248e5";
+    };
+  };
+    
+  sysimg_armeabi-v7a_20 = buildSystemImage {
+    name = "sysimg-armeabi-v7a-20";
+    src = fetchurl {
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_armv7a-L_r01.zip;
+      sha1 = "1d5d81a7078b5b2a685620d93e1e04a51d2e786a";
+    };
+  };
+    
+  sysimg_x86_20 = buildSystemImage {
+    name = "sysimg-x86-20";
+    src = fetchurl {
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-L_r01.zip;
+      sha1 = "c2d32d6244821ff59f370469778525f6a5345010";
     };
   };
     
   sysimg_x86_10 = buildSystemImage {
-    name = "x86-10";
+    name = "sysimg-x86-10";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/x86/sysimg_x86-10_r02.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-10_r02.zip;
       sha1 = "34e2436f69606cdfe35d3ef9112f0c64e3ff021d";
     };
   };
     
   sysimg_x86_15 = buildSystemImage {
-    name = "x86-15";
+    name = "sysimg-x86-15";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/x86/sysimg_x86-15_r01.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-15_r01.zip;
       sha1 = "d540325952e0f097509622b9e685737584b83e40";
     };
   };
     
   sysimg_x86_16 = buildSystemImage {
-    name = "x86-16";
+    name = "sysimg-x86-16";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/x86/sysimg_x86-16_r01.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-16_r01.zip;
       sha1 = "9d35bcaa4f9b40443941f32b8a50337f413c021a";
     };
   };
     
   sysimg_x86_17 = buildSystemImage {
-    name = "x86-17";
+    name = "sysimg-x86-17";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/x86/sysimg_x86-17_r01.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-17_r01.zip;
       sha1 = "ddb3313e8dcd07926003f7b828eafea1115ea35b";
     };
   };
     
   sysimg_x86_18 = buildSystemImage {
-    name = "x86-18";
+    name = "sysimg-x86-18";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/x86/sysimg_x86-18_r01.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-18_r01.zip;
       sha1 = "f11bc9fccd3e7e46c07d8b26e112a8d0b45966c1";
     };
   };
     
+  sysimg_x86_19 = buildSystemImage {
+    name = "sysimg-x86-19";
+    src = fetchurl {
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_x86-19_r02.zip;
+      sha1 = "8889cb418984a2a7916a359da7c429d2431ed060";
+    };
+  };
+    
   sysimg_mips_15 = buildSystemImage {
-    name = "mips-15";
+    name = "sysimg-mips-15";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/mips/sysimg_mips-15_r01.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_mips-15_r01.zip;
       sha1 = "a753bb4a6783124dad726c500ce9aec9d2c1b2d9";
     };
   };
     
   sysimg_mips_16 = buildSystemImage {
-    name = "mips-16";
+    name = "sysimg-mips-16";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/mips/sysimg_mips-16_r04.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_mips-16_r04.zip;
       sha1 = "67943c54fb3943943ffeb05fdd39c0b753681f6e";
     };
   };
     
   sysimg_mips_17 = buildSystemImage {
-    name = "mips-17";
+    name = "sysimg-mips-17";
     src = fetchurl {
-      url = https://dl-ssl.google.com/android/repository/sys-img/mips/sysimg_mips-17_r01.zip;
+      url = https://dl-ssl.google.com/android/repository/sys-img/android/sysimg_mips-17_r01.zip;
       sha1 = "f0c6e153bd584c29e51b5c9723cfbf30f996a05d";
     };
   };
diff --git a/pkgs/development/mobile/xpwn/default.nix b/pkgs/development/mobile/xpwn/default.nix
index 049595c49a5..e1b2b0cb2fa 100644
--- a/pkgs/development/mobile/xpwn/default.nix
+++ b/pkgs/development/mobile/xpwn/default.nix
@@ -1,13 +1,12 @@
-{ stdenv, fetchgit, cmake, zlib, libpng, bzip2, libusb, openssl }:
+{ stdenv, fetchgit, cmake, zlib, libpng, bzip2, libusb1, openssl }:
 
 stdenv.mkDerivation {
   name = "xpwn-0.5.8git";
 
   src = fetchgit {
-    url = "git://github.com/dborca/xpwn.git";
-    rev = "4534da88d4e8a32cdc9da9b5326e2cc482c95ef0";
-    sha256 =
-      "1h1ak40fg5bym0hifpii9q2hqdp2m387cwfzb4bl6qq36xpkd6wv";
+    url    = "git://github.com/dborca/xpwn.git";
+    rev    = "4534da88d4e8a32cdc9da9b5326e2cc482c95ef0";
+    sha256 = "1h1ak40fg5bym0hifpii9q2hqdp2m387cwfzb4bl6qq36xpkd6wv";
   };
 
   preConfigure = ''
@@ -19,11 +18,16 @@ stdenv.mkDerivation {
     sed -i -e '/install/d' CMakeLists.txt
   '';
 
-  buildInputs = [ cmake zlib libpng bzip2 libusb openssl ];
+  buildInputs = [ cmake zlib libpng bzip2 libusb1 openssl ];
 
-  meta = {
-    homepage = "http://planetbeing.lighthouseapp.com/projects/15246-xpwn";
+  cmakeFlags = [
+    "-DCMAKE_OSX_DEPLOYMENT_TARGET="
+  ];
+
+  meta = with stdenv.lib; {
+    homepage    = "http://planetbeing.lighthouseapp.com/projects/15246-xpwn";
     description = "Custom NOR firmware loader/IPSW generator for the iPhone";
-    license = stdenv.lib.licenses.gpl3Plus;
+    license     = licenses.gpl3Plus;
+    platforms   = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/development/ocaml-modules/calendar/default.nix b/pkgs/development/ocaml-modules/calendar/default.nix
new file mode 100644
index 00000000000..6af7ce25077
--- /dev/null
+++ b/pkgs/development/ocaml-modules/calendar/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, ocaml, findlib}:
+
+stdenv.mkDerivation {
+  name = "ocaml-calendar-2.03.2";
+  src = fetchurl {
+    url = https://forge.ocamlcore.org/frs/download.php/915/calendar-2.03.2.tar.gz;
+    sha256 = "04pvhwb664g3s644c7v7419a3kvf5s3pynkhmk5j59dvlfm1yf0f";
+    };
+
+  buildInputs = [ocaml findlib];
+
+  createFindlibDestdir = true;
+
+  meta =  {
+    homepage = https://forge.ocamlcore.org/projects/calendar/;
+    description = "An Objective Caml library managing dates and times";
+    license = "LGPL";
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.gal_bolle
+    ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/cmdliner/default.nix b/pkgs/development/ocaml-modules/cmdliner/default.nix
new file mode 100644
index 00000000000..3a00f0c3888
--- /dev/null
+++ b/pkgs/development/ocaml-modules/cmdliner/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, ocaml, findlib, opam}:
+
+let
+  pname = "cmdliner";
+  version = "0.9.5";
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+stdenv.mkDerivation {
+
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
+    sha256 = "a0e199c4930450e12edf81604eeceddeeb32d55c43438be689e60df282277a7e";
+  };
+
+  unpackCmd = "tar xjf $src";
+  buildInputs = [ ocaml findlib opam ];
+
+  createFindlibDestdir = true;
+
+  configurePhase = "ocaml pkg/git.ml";
+  buildPhase     = "ocaml pkg/build.ml native=true native-dynlink=true";
+  installPhase   = ''
+    opam-installer --script --prefix=$out ${pname}.install > install.sh
+    sh install.sh
+    ln -s $out/lib/${pname} $out/lib/ocaml/${ocaml_version}/site-lib/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://erratique.ch/software/cmdliner;
+    description = "An OCaml module for the declarative definition of command line interfaces";
+    license = licenses.bsd3;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
new file mode 100644
index 00000000000..af85a0a8f94
--- /dev/null
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, ocaml, findlib, which, ocsigen_server, ocsigen_deriving,
+  js_of_ocaml, ocaml_react, ocaml_lwt, calendar, cryptokit, tyxml,
+  ocaml_ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp}:
+
+stdenv.mkDerivation
+{
+  name = "eliom-4.0.0";
+
+  src = fetchurl {
+    url = https://github.com/ocsigen/eliom/archive/4.0.0.tar.gz;
+    sha256 = "1xf2l6lvngxzwaw6lvr6sgi48rz0wxg65q9lz4jzqjarkp0sx206";
+  };
+
+  buildInputs = [ocaml which ocsigen_server findlib ocsigen_deriving
+                 js_of_ocaml ocaml_react ocaml_lwt calendar
+                 cryptokit tyxml ocaml_ipaddr ocamlnet ocaml_ssl
+                 ocaml_pcre ocaml_optcomp];
+
+  preConfigure =
+  ''chmod a+x configure
+    sed s/deriving-ocsigen/deriving/g -i configure
+  '';
+
+  configureFlags = "--root $(out) --prefix /";
+
+  dontAddPrefix = true;  
+
+  createFindlibDestdir = true;
+}
diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix
index 2fa72dcf07f..365fcc677cc 100644
--- a/pkgs/development/ocaml-modules/javalib/default.nix
+++ b/pkgs/development/ocaml-modules/javalib/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
 
   createFindlibDestdir = true;
 
+  preConfigure = "patchShebangs ./configure.sh";
+
   configureScript = "./configure.sh";
   dontAddPrefix = "true";
 
diff --git a/pkgs/development/ocaml-modules/ocaml-ipaddr/default.nix b/pkgs/development/ocaml-modules/ocaml-ipaddr/default.nix
new file mode 100644
index 00000000000..e96f3f179a9
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocaml-ipaddr/default.nix
@@ -0,0 +1,15 @@
+{ocaml, findlib, stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "ocaml-ipaddr-2.4.0";
+  
+  src = fetchurl {
+    url = https://github.com/mirage/ocaml-ipaddr/archive/2.4.0.tar.gz;
+    sha256 = "0g7qg35w3vzcg37798rhbx7iia83286md3gj5gdhs1qgizlg56wx";
+  };
+
+  buildInputs = [ocaml findlib];
+
+  createFindlibDestdir = true;
+  
+}
diff --git a/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix b/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix
new file mode 100644
index 00000000000..d2a1ed3a624
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchgit, ocaml, findlib, ocaml_oasis, ocaml_data_notation, ocaml_optcomp}:
+
+stdenv.mkDerivation {
+  name = "ocsigen-deriving";
+  src = fetchgit {
+    url = "git://github.com/ocsigen/deriving";
+    rev = "refs/tags/0.6.2";
+    sha256 = "2b3bf3f4972d0e6eaf075f7353ce482b776726e0cd04947a89b7156384ec0662";
+    };
+  
+  buildInputs = [ocaml findlib ocaml_oasis ocaml_data_notation ocaml_optcomp];
+
+  configurePhase = ''
+  make setup-dev.exe
+  ./setup-dev.exe -configure --prefix $out
+  '';
+
+  createFindlibDestdir = true;
+
+
+  meta =  {
+    homepage = https://github.com/ocsigen/deriving;
+    description = "Extension to OCaml for deriving functions from type declarations";
+    license = "MIT";
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.gal_bolle
+    ];
+  };
+
+
+}
diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
new file mode 100644
index 00000000000..6f68958aeab
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, ocaml, findlib, which, ocaml_react, ocaml_ssl, ocaml_lwt, ocamlnet, ocaml_pcre, cryptokit, tyxml, ocaml_ipaddr, zlib, libev, openssl, ocaml_sqlite3, tree}:
+
+stdenv.mkDerivation {
+  name = "ocsigenserver-2.4.0";
+  
+  src = fetchurl {
+    url = https://github.com/ocsigen/ocsigenserver/archive/2.4.0.tar.gz;
+    sha256 = "1fjj8g6ivyfsa0446w77rjihhbw0gh5pgx7brywql2shk999riby";
+  };
+
+  buildInputs = [ocaml which findlib ocaml_react ocaml_ssl ocaml_lwt ocamlnet ocaml_pcre cryptokit tyxml ocaml_ipaddr zlib libev openssl ocaml_sqlite3 tree];
+
+  configureFlags = "--root $(out) --prefix /";
+
+  dontAddPrefix = true;
+
+  createFindlibDestdir = true;
+
+  postFixup = 
+  ''
+  rm -rf $out/var/run
+  '';
+
+  dontPatchShebangs = true;
+
+  meta = {
+    homepage = http://ocsigen.org/ocsigenserver/;
+    description = "A full featured Web server";
+    longDescription =''
+      A full featured Web server. It implements most features of the HTTP protocol, and has a very powerful extension mechanism that make very easy to plug your own OCaml modules for generating pages.
+      '';
+    license = "LGPL"; # <- todo: check
+    platforms = ocaml.meta.platforms;
+    maintainers = [ stdenv.lib.maintainers.gal_bolle ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/optcomp/default.nix b/pkgs/development/ocaml-modules/optcomp/default.nix
new file mode 100644
index 00000000000..6075bc4ab2a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/optcomp/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, ocaml, findlib}:
+
+stdenv.mkDerivation {
+  name = "ocaml-optcomp";
+  src = fetchurl {
+    url = https://github.com/diml/optcomp/archive/1.6.tar.gz;
+    md5 = "d3587244dba1b8b10f24d0b60a8c700d";
+    };
+  
+  createFindlibDestdir = true;
+
+  buildInputs = [ocaml findlib];
+
+
+  meta =  {
+    homepage = https://github.com/diml/optcomp;
+    description = "Optional compilation for OCaml with cpp-like directives";
+    license = "BSD";
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.gal_bolle
+    ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix
index bed87a50f81..ef3ab9a46b9 100644
--- a/pkgs/development/ocaml-modules/sawja/default.nix
+++ b/pkgs/development/ocaml-modules/sawja/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
 
   createFindlibDestdir = true;
 
+  preConfigure = "patchShebangs ./configure.sh";
+
   configureScript = "./configure.sh";
   dontAddPrefix = "true";
 
diff --git a/pkgs/development/ocaml-modules/sqlite3EZ/default.nix b/pkgs/development/ocaml-modules/sqlite3EZ/default.nix
new file mode 100644
index 00000000000..e8ec8e6f5da
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sqlite3EZ/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, ocaml, findlib, twt, ocaml_sqlite3 }:
+
+stdenv.mkDerivation {
+  name = "ocaml-sqlite3EZ-0.1.0";
+
+  src = fetchurl {
+    url = https://github.com/mlin/ocaml-sqlite3EZ/archive/v0.1.0.tar.gz;
+    sha256 = "8ed2c5d5914a65cbd95589ef11bfb8b38a020eb850cdd49b8adce7ee3a563748";
+  };
+
+  buildInputs = [ ocaml findlib twt ];
+
+  propagatedBuildInputs = [ ocaml_sqlite3 ];
+
+  createFindlibDestdir = true;
+
+  meta = {
+    homepage = http://github.com/mlin/ocaml-sqlite3EZ;
+    description = "A thin wrapper for sqlite3-ocaml with a simplified interface";
+    license = stdenv.lib.licenses.mit;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/twt/default.nix b/pkgs/development/ocaml-modules/twt/default.nix
new file mode 100644
index 00000000000..c06449f68b4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/twt/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, ocaml, findlib }:
+
+stdenv.mkDerivation {
+  name = "ocaml-twt-0.93.2";
+
+  src = fetchurl {
+    url = https://github.com/mlin/twt/archive/v0.93.2.tar.gz;
+    sha256 = "aec091fbd1e6c4d252cf9664237418b4bc8c7d6b7a17475589be78365397e768";
+  };
+
+  buildInputs = [ ocaml findlib ];
+
+  createFindlibDestdir = true;
+
+  configurePhase = ''
+    mkdir $out/bin
+  '';
+
+  dontBuild = true;
+
+  installFlags = "PREFIX=$(out)";
+
+  meta = {
+    homepage = http://people.csail.mit.edu/mikelin/ocaml+twt/;
+    description = "“The Whitespace Thing” for OCaml";
+    license = stdenv.lib.licenses.mit;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/tyxml/default.nix b/pkgs/development/ocaml-modules/tyxml/default.nix
new file mode 100644
index 00000000000..02ac7f381e5
--- /dev/null
+++ b/pkgs/development/ocaml-modules/tyxml/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, ocaml, findlib, ocaml_oasis}:
+
+stdenv.mkDerivation {
+  name = "tyxml-3.0.0";
+
+  src = fetchurl {
+    url = http://ocsigen.org/download/tyxml-3.0.0.tar.gz;
+    sha256 = "0cvbmyg4g0lg4f23032cjlxqklisccbjgj47117wm6gva8xi7xa3";
+    };
+
+  buildInputs = [ocaml findlib ocaml_oasis];
+
+  createFindlibDestdir = true;
+
+  configurePhase = ''
+  make setup-dev.exe
+  ./setup-dev.exe -configure --prefix $out
+  '';
+
+  meta = {
+    homepage = http://ocsigen.org/tyxml/;
+    description = "A library that makes it almost impossible for your OCaml programs to generate wrong XML ouput, using static typing";
+    license = "LGPL";
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.gal_bolle
+      ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix
index 9237db080d6..562d25550da 100644
--- a/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/pkgs/development/ocaml-modules/yojson/default.nix
@@ -4,16 +4,18 @@ let
   version = "1.1.8";
   webpage = "http://mjambon.com/${pname}.html";
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
 
-  name = "${pname}-${version}";
+  name = "ocaml-${pname}-${version}";
 
   src = fetchurl {
-    url = "http://mjambon.com/releases/${pname}/${name}.tar.gz";
+    url = "http://mjambon.com/releases/${pname}/${pname}-${version}.tar.gz";
     sha256 = "0ayx17dimnpavdfyq6dk9xv2x1fx69by85vc6vl3nqxjkcv5d2rv";
   };
 
-  buildInputs = [ ocaml findlib cppo easy-format biniou ];
+  buildInputs = [ ocaml findlib ];
+
+  propagatedBuildInputs = [ cppo easy-format biniou ];
 
   createFindlibDestdir = true;
 
diff --git a/pkgs/development/pharo/vm/default.nix b/pkgs/development/pharo/vm/default.nix
index 7022206c5cc..361785374bb 100644
--- a/pkgs/development/pharo/vm/default.nix
+++ b/pkgs/development/pharo/vm/default.nix
@@ -4,8 +4,8 @@ stdenv.mkDerivation rec {
   name = "pharo-vm-core-i386-2014.06.25";
   system = "x86_32-linux";
   src = fetchurl {
-    url = http://files.pharo.org/vm/src/vm-unix-sources/pharo-vm-2014.06.25.tar.bz2;
-    md5 = "4d80d8169c2f2f0355c43ee90bbad23f";
+    url = http://files.pharo.org/vm/src/vm-unix-sources/blessed/pharo-vm-2014.08.14.tar.bz2;
+    md5 = "8e9e8dfde4f4bb69aac4590ecf82dd3b";
   };
 
   sources10Zip = fetchurl {
diff --git a/pkgs/development/python-modules/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix
index d88504379ed..bc386e7e5ac 100644
--- a/pkgs/development/python-modules/dbus/default.nix
+++ b/pkgs/development/python-modules/dbus/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, python, pkgconfig, dbus, dbus_glib, dbus_tools }:
+{ stdenv, fetchurl, python, pkgconfig, dbus, dbus_glib, dbus_tools, isPyPy }:
 
-stdenv.mkDerivation rec {
+if isPyPy then throw "dbus-python not supported for interpreter ${python.executable}" else stdenv.mkDerivation rec {
   name = "dbus-python-1.2.0";
 
   src = fetchurl {
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
index 282aeca9ed1..857f002cace 100644
--- a/pkgs/development/python-modules/generic/wrap.sh
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -26,6 +26,12 @@ wrapPythonProgramsIn() {
             # dont wrap EGG-INFO scripts since they are called from python
             if echo "$i" | grep -v EGG-INFO/scripts; then
                 echo "wrapping \`$i'..."
+                sed -i "$i" -re '1 {
+                    /^#!/!b; :r
+                    /\\$/{N;b r}
+                    /__future__|^ *(#.*)?$/{n;b r}
+                    /^ *[^# ]/i import sys; sys.argv[0] = '"'$(basename "$i")'"'
+                }'
                 wrapProgram "$i" \
                     --prefix PYTHONPATH ":" $program_PYTHONPATH \
                     --prefix PATH ":" $program_PATH
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
new file mode 100644
index 00000000000..39a35ad49c6
--- /dev/null
+++ b/pkgs/development/python-modules/h5py/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, python, buildPythonPackage
+, numpy, hdf5, cython
+, mpiSupport ? false, mpi4py ? null, mpi ? null }:
+
+assert mpiSupport == hdf5.mpiSupport;
+assert mpiSupport -> mpi != null
+  && mpi4py != null
+  && mpi == mpi4py.mpi
+  && mpi == hdf5.mpi
+  ;
+
+with stdenv.lib;
+
+buildPythonPackage rec {
+  name = "h5py-2.3.1";
+
+  src = fetchurl {
+    url = "https://pypi.python.org/packages/source/h/h5py/${name}.tar.gz";
+    md5 = "8f32f96d653e904d20f9f910c6d9dd91";
+  };
+
+  setupPyBuildFlags = [ "--hdf5=${hdf5}" ]
+    ++ optional mpiSupport "--mpi"
+    ;
+  setupPyInstallFlags = setupPyBuildFlags;
+
+  preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else "";
+
+  buildInputs = [ hdf5 cython ]
+    ++ optional mpiSupport mpi
+    ;
+  propagatedBuildInputs = [ numpy ]
+    ++ optional mpiSupport mpi4py
+    ;
+
+  meta = {
+    description =
+      "Pythonic interface to the HDF5 binary data format";
+    homepage = "http://www.h5py.org/";
+    license = stdenv.lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
new file mode 100644
index 00000000000..c38d948dd6b
--- /dev/null
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, python, buildPythonPackage, mpi, openssh, isPy3k, isPyPy }:
+
+buildPythonPackage rec {
+  name = "mpi4py-1.3.1";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/mpi4py/mpi4py/downloads/${name}.tar.gz";
+    sha256 = "e7bd2044aaac5a6ea87a87b2ecc73b310bb6efe5026031e33067ea3c2efc3507";
+  };
+
+  passthru = {
+    inherit mpi;
+  };
+
+  # The tests in the `test_spawn` module fail in the chroot build environment.
+  # However, they do pass in a pure, or non-pure nix-shell. Hence, we
+  # deactivate these particular tests.
+  # Unfortunately, the command-line arguments to `./setup.py test` are not
+  # correctly passed to the test-runner. Hence, these arguments are patched
+  # directly into `setup.py`.
+  patchPhase = ''
+    sed 's/err = main(cmd.args or \[\])/err = main(cmd.args or ["-v", "-e", "test_spawn"])/' -i setup.py
+  '';
+
+  configurePhase = "";
+
+  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"
+
+    # --install-lib:
+    # sometimes packages specify where files should be installed outside the usual
+    # python lib prefix, we override that back so all infrastructure (setup hooks)
+    # work as expected
+  '';
+
+  setupPyBuildFlags = ["--mpicc=${mpi}/bin/mpicc"];
+
+  buildInputs = [ mpi ];
+  # Requires openssh for tests. Tests of dependent packages will also fail,
+  # if openssh is not present. E.g. h5py with mpi support.
+  propagatedBuildInputs = [ openssh ];
+
+  disabled = isPy3k || isPyPy;
+
+  meta = {
+    description =
+      "Python bindings for the Message Passing Interface standard";
+    homepage = "http://code.google.com/p/mpi4py/";
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix
index 3dc64f68129..0589bec36b9 100644
--- a/pkgs/development/python-modules/pycairo/default.nix
+++ b/pkgs/development/python-modules/pycairo/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, fetchpatch, python, pkgconfig, cairo, x11 }:
+{ stdenv, fetchurl, fetchpatch, python, pkgconfig, cairo, x11, isPyPy }:
 
-stdenv.mkDerivation rec {
+if isPyPy then throw "pycairo not supported for interpreter ${python.executable}" else stdenv.mkDerivation rec {
   version = "1.10.0";
   name = "pycairo-${version}";
   src = if python.is_py3k or false
diff --git a/pkgs/development/python-modules/rbtools/default.nix b/pkgs/development/python-modules/rbtools/default.nix
index 7d82ef9adf2..b874d3d5c52 100644
--- a/pkgs/development/python-modules/rbtools/default.nix
+++ b/pkgs/development/python-modules/rbtools/default.nix
@@ -1,13 +1,11 @@
 { stdenv, fetchurl, pythonPackages }:
 
 pythonPackages.buildPythonPackage rec {
-  name = "rbtools-0.4.1";
+  name = "rbtools-0.6.1";
   namePrefix = "";
 
   src = fetchurl {
-    url = "http://downloads.reviewboard.org/releases/RBTools/0.4/RBTools-0.4.1.tar.gz";
-    sha256 = "1v0r7rfzrasj56s53mib51wl056g7ykh2y1c6dwv12r6hzqsycgv";
+    url = "http://downloads.reviewboard.org/releases/RBTools/0.6/RBTools-0.6.1.tar.gz";
+    sha256 = "0dbpd08b0k00fszi3r7wlgn2989aypgd60jq6wc99lq4yxsmhp28";
   };
-
-  propagatedBuildInputs = [ pythonPackages.setuptools ];
 }
diff --git a/pkgs/development/python-modules/sip/4.16.nix b/pkgs/development/python-modules/sip/4.16.nix
index aa1fb198438..210346062f9 100644
--- a/pkgs/development/python-modules/sip/4.16.nix
+++ b/pkgs/development/python-modules/sip/4.16.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, python }:
+{ stdenv, fetchurl, python, isPyPy }:
 
-stdenv.mkDerivation rec {
+if isPyPy then throw "sip not supported for interpreter ${python.executable}" else stdenv.mkDerivation rec {
   name = "sip-4.16.1";
 
   src = fetchurl {
diff --git a/pkgs/development/python-modules/sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index db397f95944..cf3a0149844 100644
--- a/pkgs/development/python-modules/sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, python }:
+{ stdenv, fetchurl, python, isPyPy }:
 
-stdenv.mkDerivation rec {
+if isPyPy then throw "sip not supported for interpreter ${python.executable}" else stdenv.mkDerivation rec {
   name = "sip-4.14.7"; # kde410.pykde4 doesn't build with 4.15
 
   src = fetchurl {
diff --git a/pkgs/development/python-modules/wxPython/2.8.nix b/pkgs/development/python-modules/wxPython/2.8.nix
index 8819605528d..64dd59242c2 100644
--- a/pkgs/development/python-modules/wxPython/2.8.nix
+++ b/pkgs/development/python-modules/wxPython/2.8.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages }:
+{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages, python, isPyPy }:
 
 assert wxGTK.unicode;
 
 let version = "2.8.12.1"; in
 
-stdenv.mkDerivation {
+if isPyPy then throw "wxPython-${version} not supported for interpreter ${python.executable}" else stdenv.mkDerivation {
   name = "wxPython-${version}";
   
   builder = ./builder.sh;
diff --git a/pkgs/development/python-modules/wxPython/3.0.nix b/pkgs/development/python-modules/wxPython/3.0.nix
index 9aa6148643b..4f89dbeb410 100644
--- a/pkgs/development/python-modules/wxPython/3.0.nix
+++ b/pkgs/development/python-modules/wxPython/3.0.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages, openglSupport ? true }:
+{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages, openglSupport ? true, python, isPyPy }:
 
 assert wxGTK.unicode;
 
@@ -6,7 +6,7 @@ with stdenv.lib;
 
 let version = "3.0.0.0"; in
 
-stdenv.mkDerivation {
+if isPyPy then throw "wxPython-${version} not supported for interpreter ${python.executable}" else stdenv.mkDerivation {
   name = "wxPython-${version}";
   
   builder = ./builder3.0.sh;
diff --git a/pkgs/development/r-modules/cran-packages.nix b/pkgs/development/r-modules/cran-packages.nix
index dcffbccb510..e986944d45d 100644
--- a/pkgs/development/r-modules/cran-packages.nix
+++ b/pkgs/development/r-modules/cran-packages.nix
@@ -38,7 +38,7 @@
 
 let
 
-  inherit (pkgs) R fetchurl stdenv;
+  inherit (pkgs) R fetchurl stdenv curl;
 
   buildRPackage = import ./generic-builder.nix R;
 
@@ -4252,7 +4252,7 @@ let self = _self // overrides; _self = with self; {
   rcqp = derive { name="rcqp"; version="0.3"; sha256="0vxcgchnxdsdamclcshjbkn00ysmfmqp586a36wsyv3zqrd6rg7p"; depends=[plyr]; };
   Rcsdp = derive { name="Rcsdp"; version="0.1.53"; sha256="0x91hyx6z9f4zd7djxlq7dnznmr9skyzwbbcbjyid9hxbcfyvhcp"; depends=[]; };
   rCUR = derive { name="rCUR"; version="1.3"; sha256="1f38xbc5n91k2y88cg0sv1z2p4g5vl7v2k1024f42f7526g2p2lx"; depends=[MASS Matrix lattice]; };
-  RCurl = derive { name="RCurl"; version="1.95-4.3"; sha256="1gyjarnxwz3ldpm1vwq9ls6al66rvs7yshzhrl1fv9lbm1qi8yfg"; depends=[bitops]; };
+  RCurl = derive { name="RCurl"; version="1.95-4.3"; sha256="1gyjarnxwz3ldpm1vwq9ls6al66rvs7yshzhrl1fv9lbm1qi8yfg"; depends=[bitops curl]; };
   Rd2roxygen = derive { name="Rd2roxygen"; version="1.4"; sha256="09dxgp65zac5b9mxbjrvy3ihdwski98xva5afq659b8yfvkviq4g"; depends=[roxygen2 formatR]; };
   rda = derive { name="rda"; version="1.0.2-2"; sha256="1g2q7c0y138i9r7jgjrlpqznvwpqsj6f7vljqqfzh2l6kcj43vjj"; depends=[]; };
   rdatamarket = derive { name="rdatamarket"; version="0.6.4"; sha256="16a1yxvf841505a8gh7jf09fx6ipysymrpvsd4b07xdg5hvbzx25"; depends=[zoo RCurl RJSONIO]; };
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index ca4176dbe1e..094cabb7306 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -4,14 +4,14 @@
 
 let
   name = "cppcheck";
-  version = "1.65";
+  version = "1.66";
 in
 stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/${name}-${version}.tar.bz2";
-    sha256 = "0rsxnqvjyiviqsq4y5x4p1jpvcmhf8hh7d710rsvnv5d4cj7lmqn";
+    sha256 = "1dy1jd9ckqs565iwcv281pc3xmp9fnfw5ydh3wq06pyz74yw4scl";
   };
 
   configurePhase = ''
diff --git a/pkgs/development/tools/analysis/massif-visualizer/default.nix b/pkgs/development/tools/analysis/massif-visualizer/default.nix
new file mode 100644
index 00000000000..e21f5ed15e9
--- /dev/null
+++ b/pkgs/development/tools/analysis/massif-visualizer/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, kdelibs, kgraphviewer, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "massif-visualizer-${version}";
+  version = "0.3.90";
+
+  src = fetchurl {
+    url = "mirror://kde/unstable/massif-visualizer/${version}/src/${name}.tar.xz";
+    sha256 = "9940fa90137ca5eef08b9ec220825fadbf03db423a670a2c7fe3edab271d9922";
+  };
+
+  buildInputs = [ kdelibs kgraphviewer gettext ];
+
+  meta = with stdenv.lib; {
+    description = "Tool that visualizes massif data generated by valgrind";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/pmd/default.nix b/pkgs/development/tools/analysis/pmd/default.nix
index 14007d80b0f..2709caaab06 100644
--- a/pkgs/development/tools/analysis/pmd/default.nix
+++ b/pkgs/development/tools/analysis/pmd/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, unzip}:
 
 stdenv.mkDerivation {
-  name = "pmd-4.2.5";
+  name = "pmd-4.2.6";
   buildInputs = [unzip] ;
 
   src = fetchurl {
-    url = mirror://sourceforge/pmd/pmd-bin-4.2.5.zip ;
-    sha256 = "07cb18mv7rplksy3iw3rxyjaav4m7kcjqfhzv20ki73hfkqxa85c";
+    url = mirror://sourceforge/pmd/pmd-bin-4.2.6.zip ;
+    sha256 = "0gg1px2jmqn09f5vjzgy9gck37qjm9p2d7gf9grsmrr2xncbipp8";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/radare/default.nix b/pkgs/development/tools/analysis/radare/default.nix
index 2ab8c05ebf8..3c83f0e9d49 100644
--- a/pkgs/development/tools/analysis/radare/default.nix
+++ b/pkgs/development/tools/analysis/radare/default.nix
@@ -12,15 +12,15 @@ let
   optional = stdenv.lib.optional;
 in
 stdenv.mkDerivation rec {
-  name = "radare-1.5";
+  name = "radare-1.5.2";
 
   src = fetchurl {
     url = "http://radare.org/get/${name}.tar.gz";
-    sha256 = "1r0c9cc7z9likma8zicp2pbv2y85vjjmnk0k45wdhbvhgqh6il1h";
+    sha256 = "1qdrmcnzfvfvqb27c7pknwm8jl2hqa6c4l66wzyddwlb8yjm46hd";
   };
 
 
-  buildInputs = [pkgconfig readline libusb libewf perl]
+  buildInputs = [pkgconfig readline libusb perl]
     ++ optional useX11 [gtkdialog vte gtk]
     ++ optional rubyBindings [ruby]
     ++ optional pythonBindings [python]
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
new file mode 100644
index 00000000000..7e199c29aed
--- /dev/null
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchurl, pkgconfig, libusb, readline, libewf, perl, zlib, openssl,
+gtk ? null, vte ? null, gtkdialog ? null,
+python ? null,
+ruby ? null,
+lua ? null,
+useX11, rubyBindings, pythonBindings, luaBindings}:
+
+assert useX11 -> (gtk != null && vte != null && gtkdialog != null);
+assert rubyBindings -> ruby != null;
+assert pythonBindings -> python != null;
+
+let 
+  optional = stdenv.lib.optional;
+in
+stdenv.mkDerivation rec {
+  version = "0.9.7";
+  name = "radare2-${version}";
+
+  src = fetchurl {
+    url = "http://radare.org/get/${name}.tar.xz";
+    sha256 = "01sdsnbvx1qzyradj03sg24rk2bi9x58m40r0aqj8skv92c87s7l";
+  };
+
+
+  buildInputs = [pkgconfig readline libusb libewf perl zlib openssl]
+    ++ optional useX11 [gtkdialog vte gtk]
+    ++ optional rubyBindings [ruby]
+    ++ optional pythonBindings [python]
+    ++ optional luaBindings [lua];
+
+  meta = {
+    description = "Free advanced command line hexadecimal editor";
+    homepage = http://radare.org/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    platforms = with stdenv.lib.platforms; linux;
+    inherit version;
+  };
+}
diff --git a/pkgs/development/tools/analysis/spin/default.nix b/pkgs/development/tools/analysis/spin/default.nix
index 06c04ca41b5..a40215592f4 100644
--- a/pkgs/development/tools/analysis/spin/default.nix
+++ b/pkgs/development/tools/analysis/spin/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     description = "Formal verification tool for distributed software systems";
     homepage = http://spinroot.com/;
     license = "free";
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/apache-ant/default.nix b/pkgs/development/tools/build-managers/apache-ant/default.nix
index 0dfb634c594..751b40e714e 100644
--- a/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, makeWrapper }:
 
-let version = "1.9.3"; in
+let version = "1.9.4"; in
 
 stdenv.mkDerivation {
   name = "ant-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
-    sha1 = "efcf206e24b0dd1583c501182ad163af277951a4";
+    sha256 = "1kw801p8h5x4f0g8i5yknppssrj5a3xy1aqrkpfnk22bd1snbh90";
   };
 
   contrib = fetchurl {
diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix
index d10d9d6d1a3..d62ae35b854 100644
--- a/pkgs/development/tools/build-managers/rebar/default.nix
+++ b/pkgs/development/tools/build-managers/rebar/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
       variety of locations (git, hg, etc).
       '';
 
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.the-kenny ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/simple-build-tool/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index b54f894d8eb..39937f7d378 100644
--- a/pkgs/development/tools/build-managers/simple-build-tool/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -14,8 +14,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     cat > $out/bin/sbt << EOF
-    #!/bin/sh
-    SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M"
+    #! ${stdenv.shell}
     ${jre}/bin/java \$SBT_OPTS -jar ${src} "\$@"
     EOF
     chmod +x $out/bin/sbt
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 5194684261c..7ba30991d20 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "jenkins";
-  version = "1.550";
+  name = "jenkins-${version}";
+  version = "1.579";
 
   src = fetchurl {
     url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war";
-    sha256 = "1ziimbfs9kylga0xmxlfsfcc7qsirs5bnx00pa99m2l5sz2ki793";
+    sha256 = "1l2a8h3js42gkqn8kiysbgrxksqmhmmfp9l4kbrmw609q2wn5119";
   };
-  meta = {
-    description = "An extendable open source continuous integration server.";
+  meta = with stdenv.lib; {
+    description = "An extendable open source continuous integration server";
     homepage = http://jenkins-ci.org;
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.coconnor ];
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = [ maintainers.coconnor ];
   };
 
   buildCommand = "ln -s $src $out";
diff --git a/pkgs/development/tools/documentation/haddock/2.15.0.nix b/pkgs/development/tools/documentation/haddock/2.15.0.nix
new file mode 100644
index 00000000000..3b3d91a1f2f
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/2.15.0.nix
@@ -0,0 +1,20 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, Cabal, filepath, haddockApi }:
+
+cabal.mkDerivation (self: {
+  pname = "haddock";
+  version = "2.15.0";
+  sha256 = "1vay0v0a02xj2m40w71vmjadlm6pzv309r1jhr61xv1wnj88i75w";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ haddockApi ];
+  testDepends = [ Cabal filepath ];
+  preCheck = "unset GHC_PACKAGE_PATH";
+  meta = {
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/haskell/haskell-docs/default.nix b/pkgs/development/tools/haskell/haskell-docs/default.nix
index b9cd34c716e..9cc92aafc21 100644
--- a/pkgs/development/tools/haskell/haskell-docs/default.nix
+++ b/pkgs/development/tools/haskell/haskell-docs/default.nix
@@ -20,5 +20,7 @@ cabal.mkDerivation (self: {
     description = "A program to find and display the docs and type of a name";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
+    broken = true;
   };
 })
diff --git a/pkgs/development/tools/haskell/timeplot/default.nix b/pkgs/development/tools/haskell/timeplot/default.nix
index 4342b877a2e..a07383778ed 100644
--- a/pkgs/development/tools/haskell/timeplot/default.nix
+++ b/pkgs/development/tools/haskell/timeplot/default.nix
@@ -20,5 +20,7 @@ cabal.mkDerivation (self: {
     description = "A tool for visualizing time series from log files";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
+    broken = true;
   };
 })
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index fc48a4aabad..adff07ac35a 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -2,6 +2,8 @@
 , cross ? null, gold ? true, bison ? null
 }:
 
+assert !stdenv.isDarwin;
+
 let basename = "binutils-2.23.1"; in
 
 with { inherit (stdenv.lib) optional optionals optionalString; };
diff --git a/pkgs/development/tools/misc/d-feet/default.nix b/pkgs/development/tools/misc/d-feet/default.nix
index 852c1b74219..df5fdbfab5a 100644
--- a/pkgs/development/tools/misc/d-feet/default.nix
+++ b/pkgs/development/tools/misc/d-feet/default.nix
@@ -26,7 +26,6 @@ stdenv.mkDerivation rec {
       wrapProgram $out/bin/d-feet \
         --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pygobject3})" \
         --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-        --prefix LD_LIBRARY_PATH : "${gtk3}/lib:${atk}/lib:${libwnck3}/lib" \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$out/share"
 
       rm $out/share/icons/hicolor/icon-theme.cache
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 5ee0f64a4e4..d9af1e3eb54 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo
-, dejagnu, python, target ? null
+, dejagnu, python, pkgconfig, guile, target ? null
 
 # Additional dependencies for GNU/Hurd.
 , mig ? null, hurd ? null
@@ -8,7 +8,7 @@
 
 let
 
-  basename = "gdb-7.7";
+  basename = "gdb-7.8";
 
   # Whether (cross-)building for GNU/Hurd.  This is an approximation since
   # having `stdenv ? cross' doesn't tell us if we're building `crossDrv' and
@@ -26,8 +26,8 @@ stdenv.mkDerivation rec {
       ("-" + target.config);
 
   src = fetchurl {
-    url = "mirror://gnu/gdb/${basename}.tar.bz2";
-    sha256 = "08vcb97j1b7vxwq6088wb6s3g3bm8iwikd922y0xsgbbxv3d2104";
+    url = "mirror://gnu/gdb/${basename}.tar.xz";
+    sha256 = "49c4abe174f79f54e1f9e75210ffb590d9b497d5b5200b5398c0e073a4ecb875";
   };
 
   patches = [ ./edit-signals.patch ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ texinfo python ]
     ++ stdenv.lib.optional isGNU mig;
 
-  buildInputs = [ ncurses readline gmp mpfr expat ]
+  buildInputs = [ ncurses readline gmp mpfr expat pkgconfig guile ]
     ++ stdenv.lib.optional isGNU hurd
     ++ stdenv.lib.optional doCheck dejagnu;
 
diff --git a/pkgs/development/tools/misc/go-repo-root/default.nix b/pkgs/development/tools/misc/go-repo-root/default.nix
new file mode 100644
index 00000000000..c4eaf03a358
--- /dev/null
+++ b/pkgs/development/tools/misc/go-repo-root/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, go, fetchgit, fetchhg, fetchFromGitHub }:
+
+let
+  version = "0.0.1";
+in
+
+with lib;
+stdenv.mkDerivation {
+  name = "go-repo-root-${version}";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchhg fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o go-repo-root github.com/cstrahan/go-repo-root
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp go-repo-root $out/bin
+  '';
+
+  meta = with lib; {
+    homepage    = "https://github.com/cstrahan/go-repo-root";
+    maintainers = with maintainers; [ cstrahan ];
+    license     = licenses.mit;
+    platforms   = platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/misc/go-repo-root/deps.nix b/pkgs/development/tools/misc/go-repo-root/deps.nix
new file mode 100644
index 00000000000..585e9955ab2
--- /dev/null
+++ b/pkgs/development/tools/misc/go-repo-root/deps.nix
@@ -0,0 +1,67 @@
+{ stdenv, lib, fetchFromGitHub, fetchhg }:
+
+let
+  goDeps = [
+    {
+      root = "code.google.com/p/go.net";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.net";
+        rev = "ad01a6fcc8a19d3a4478c836895ffe883bd2ceab";
+        sha256 = "0s0aa8hxrpggn6wwx4x591k6abvawrmhsk8ji327pgj08fdy3ahq";
+      };
+    }
+    {
+      root = "code.google.com/p/go.text";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.text";
+        rev = "12288f41f508af9490f03a9780afa295c9b0a063";
+        sha256 = "17kr0h79pznb3nn5znbh1d7dinmqjwvg5iqqk4l05569q50gqwww";
+      };
+    }
+    {
+      root = "code.google.com/p/go.tools";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.tools";
+        rev = "140fcaadc5860b1a014ec69fdeec807fe3b787e8";
+        sha256 = "1vgz4kxy0p56qh6pfbs2c68156hakgx4cmrci9jbg7lnrdaz4y56";
+      };
+    }
+    {
+      root = "code.google.com/p/goauth2";
+      src = fetchhg {
+        url = "http://code.google.com/p/goauth2";
+        rev = "afe77d958c701557ec5dc56f6936fcc194d15520";
+        sha256 = "0xgkgcb97hv2rvzvh21rvydq5cc83j7sdsdb1chrymq8k7l4dzc1";
+      };
+    }
+    {
+      root = "code.google.com/p/google-api-go-client";
+      src = fetchhg {
+        url = "http://code.google.com/p/google-api-go-client";
+        rev = "e1c259484b495133836706f46319f5897f1e9bf6";
+        sha256 = "051dqhjhp3bz2xp7lv9v60xlmphbxj1vyc46wg8v74yjvqvsiwzd";
+      };
+    }
+    {
+      root = "github.com/cstrahan/go-repo-root";
+      src = fetchFromGitHub {
+        owner = "cstrahan";
+        repo = "go-repo-root";
+        rev = "90041e5c7dc634651549f96814a452f4e0e680f9";
+        sha256 = "1rlzp8kjv0a3dnfhyqcggny0ad648j5csr2x0siq5prahlp48mg4";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix
index c8cff116282..e8e50999f3e 100644
--- a/pkgs/development/tools/misc/help2man/default.nix
+++ b/pkgs/development/tools/misc/help2man/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gettext, LocaleGettext, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "help2man-1.46.1";
+  name = "help2man-1.46.2";
 
   src = fetchurl {
     url = "mirror://gnu/help2man/${name}.tar.xz";
-    sha256 = "0iqwb3qirl7rp1wwpbh01q89qxvi4h3bc73wi03av6hl4sh05z9x";
+    sha256 = "0483cpizy0mqngibv56p6p8jxwh8678qksf5zs5wh963r3n1s6cj";
   };
 
   buildInputs = [ makeWrapper perl gettext LocaleGettext ];
diff --git a/pkgs/development/tools/misc/lsof/default.nix b/pkgs/development/tools/misc/lsof/default.nix
index ec3a5e9bcbf..1ef292407a4 100644
--- a/pkgs/development/tools/misc/lsof/default.nix
+++ b/pkgs/development/tools/misc/lsof/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation {
       socket (IPv6/IPv4/UNIX local), or partition (by opening a file
       from it).
     '';
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 }
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 732423da5cd..7cc878a2839 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     description = "A system call tracer for Linux";
     license = licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/development/tools/misc/swig/default.nix b/pkgs/development/tools/misc/swig/default.nix
index 66d6b65453e..c4fcd315845 100644
--- a/pkgs/development/tools/misc/swig/default.nix
+++ b/pkgs/development/tools/misc/swig/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   # 'make check' uses boost and tcl
   buildInputs = stdenv.lib.optionals doCheck [ boost tcl ];
 
-  configureFlags = stdenv.lib.optionalString stdenv.isDarwin "--disable-ccache";
+  configureFlags = "--disable-ccache";
 
   meta = {
     description = "Interface compiler that connects C/C++ code to higher-level languages";
diff --git a/pkgs/development/tools/node-webkit/default.nix b/pkgs/development/tools/node-webkit/default.nix
index 1f101776064..f79a5f562c0 100644
--- a/pkgs/development/tools/node-webkit/default.nix
+++ b/pkgs/development/tools/node-webkit/default.nix
@@ -9,8 +9,9 @@ let
     name = "node-webkit-env";
     paths = [
       xlibs.libX11 xlibs.libXrender glib gtk atk pango cairo gdk_pixbuf
-      freetype fontconfig xlibs.libXcomposite alsaLib xlibs.libXdamage xlibs.libXext
-      xlibs.libXfixes nss nspr gconf expat dbus udev stdenv.gcc.gcc
+      freetype fontconfig xlibs.libXcomposite alsaLib xlibs.libXdamage
+      xlibs.libXext xlibs.libXfixes nss nspr gconf expat dbus stdenv.gcc.gcc
+      xlibs.libXtst xlibs.libXi
     ];
   };
 
@@ -19,28 +20,27 @@ in stdenv.mkDerivation rec {
   version = "0.9.2";
 
   src = fetchurl {
-    url = "https://s3.amazonaws.com/node-webkit/v${version}/node-webkit-v${version}-linux-${bits}.tar.gz";
+    url = "http://dl.node-webkit.org/v${version}/node-webkit-v${version}-linux-${bits}.tar.gz";
     sha256 = if bits == "x64" then
       "04b9hgrxxnvrzyc7kmlabvrfbzj9d6lif7z69zgsbn3x25nxxd2n" else
       "0icwdl564sbx27124js1l4whfld0n6nbysdd522frzk1759dzgri";
   };
 
-  patchPhase = ''
-    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" nw
-    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" nwsnapshot
-  '';
-
-  installPhase = let
-    LD_LIBRARY_PATH = "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit";
-  in ''
-    mkdir -p $out/bin
+  installPhase = ''
     mkdir -p $out/share/node-webkit
     cp -R * $out/share/node-webkit
 
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/share/node-webkit/nw
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/share/node-webkit/nwsnapshot
+
     ln -s ${udev}/lib/libudev.so $out/share/node-webkit/libudev.so.0
 
-    makeWrapper $out/share/node-webkit/nw $out/bin/nw --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}"
-    makeWrapper $out/share/node-webkit/nwsnapshot $out/bin/nwsnapshot --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}"
+    patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nw
+    patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nwsnapshot
+
+    mkdir -p $out/bin
+    ln -s $out/share/node-webkit/nw $out/bin
+    ln -s $out/share/node-webkit/nwsnapshot $out/bin
   '';
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff b/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff
new file mode 100644
index 00000000000..ee39855fec9
--- /dev/null
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff
@@ -0,0 +1,10 @@
+--- old/Makefile.conf	2014-05-19 16:53:09.263564921 +0200
++++ new/Makefile.conf	2014-05-19 16:53:42.213152994 +0200
+@@ -1,6 +1,6 @@
+ 
+ # Where binaries are installed:
+-BINDIR := /usr/local/bin
++BINDIR := $(out)/bin
+ 
+ ####
+ 
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
new file mode 100644
index 00000000000..a7167d0c226
--- /dev/null
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, ocaml, findlib, ocaml_lwt, menhir, ocsigen_deriving}:
+
+stdenv.mkDerivation {
+  name = "js_of_ocaml";
+  src = fetchurl {
+    url = https://github.com/ocsigen/js_of_ocaml/archive/2.2.tar.gz;
+    sha256 = "1cp81gpvyxgvzxg0vzyl8aa2zvcixp6m433w8zjifrg6vb7lhp97";
+    };
+  
+  buildInputs = [ocaml findlib ocaml_lwt menhir ocsigen_deriving];
+
+  patches = [ ./Makefile.conf.diff ];  
+
+  createFindlibDestdir = true;
+
+
+  meta =  {
+    homepage = http://ocsigen.org/js_of_ocaml/;
+    description = "Compiler of OCaml bytecode to Javascript. It makes it possible to run Ocaml programs in a Web browser";
+    license = "LGPL";
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.gal_bolle
+    ];
+  };
+
+
+}
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index c0882439f5c..623b84bafd1 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -1,19 +1,19 @@
-{stdenv, fetchurl, ocaml, findlib, easy-format, biniou, yojson, menhir}:
+{stdenv, fetchurl, ocaml, findlib, yojson, menhir}:
 stdenv.mkDerivation {
 
-  name = "merlin-1.6";
+  name = "merlin-1.7.1";
 
   src = fetchurl {
-    url = "https://github.com/the-lambda-church/merlin/archive/v1.6.tar.gz";
-    sha256 = "0wq75hgffaszazrhkl0nfjxgx8bvazi2sjannd8q64hvax8hxzcy";
+    url = https://github.com/the-lambda-church/merlin/archive/v1.7.1.tar.gz;
+    sha256 = "c3b60c7b3fddaa2860e0d8ac0d4fed2ed60e319875734c7ac1a93df524c67aff";
   };
 
-  buildInputs = [ ocaml findlib biniou yojson menhir easy-format ];
+  buildInputs = [ ocaml findlib yojson menhir ];
 
   prefixKey = "--prefix ";
 
   meta = {
-    description = "An editor-independant tool to ease the developpement of programs in OCaml";
+    description = "An editor-independent tool to ease the development of programs in OCaml";
     homepage = "http://the-lambda-church.github.io/merlin/";
     license = stdenv.lib.licenses.mit;
   };
diff --git a/pkgs/development/tools/ocaml/oasis/default.nix b/pkgs/development/tools/ocaml/oasis/default.nix
index 3ab935705a2..a5260b499c4 100644
--- a/pkgs/development/tools/ocaml/oasis/default.nix
+++ b/pkgs/development/tools/ocaml/oasis/default.nix
@@ -13,9 +13,11 @@ stdenv.mkDerivation {
 
   buildInputs =
     [
-      ocaml findlib ocaml_data_notation ocaml_typeconv ocamlmod ocamlify ounit
+      ocaml findlib ocaml_typeconv ocamlmod ocamlify ounit
     ];
 
+  propagatedBuildInputs = [ ocaml_data_notation ];
+
   configurePhase = "ocaml setup.ml -configure --prefix $out";
   buildPhase     = "ocaml setup.ml -build";
   installPhase   = "ocaml setup.ml -install";
diff --git a/pkgs/development/tools/ocaml/opam/1.0.0.nix b/pkgs/development/tools/ocaml/opam/1.0.0.nix
index f8f680ef4a5..4c74063d116 100644
--- a/pkgs/development/tools/ocaml/opam/1.0.0.nix
+++ b/pkgs/development/tools/ocaml/opam/1.0.0.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    maintainers = stdenv.lib.maintainers.orbitz;
+    maintainers = [ stdenv.lib.maintainers.orbitz ];
     description = "A package manager for OCaml";
     platforms   = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index 072b8eeff5c..3b2929f178d 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -3,19 +3,21 @@
 
 assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
 
+let version = "1.6.5";
+in
 stdenv.mkDerivation rec {
-  name = "vagrant-1.6.3";
+  name = "vagrant-${version}";
 
   src =
     if stdenv.system == "x86_64-linux" then
       fetchurl {
-        url    = https://dl.bintray.com/mitchellh/vagrant/vagrant_1.6.3_x86_64.deb;
-        sha256 = "1gmdg92dw7afnvpji0wg4nzr7vhk8mrmcqk3hcrkwscby2f2bhqg";
+        url    = "https://dl.bintray.com/mitchellh/vagrant/vagrant_${version}_x86_64.deb";
+        sha256 = "12m2mnpnfzqv2s4j58cnzg4h4i5nkk5nb4irsvmm3i9a0dnsziz2";
       }
     else
       fetchurl {
-        url    = https://dl.bintray.com/mitchellh/vagrant/vagrant_1.6.3_i686.deb;
-        sha256 = "1z26b6yghqgx8jbi2igf4kk4h6rzy869gli2vj7ayl7vbqdfvb60";
+        url    = "https://dl.bintray.com/mitchellh/vagrant/vagrant_${version}_i686.deb";
+        sha256 = "047zij0lvrlpyg6icnp4knl0q87icsavbd2g98bkcp79yh2y91d0";
       };
 
   meta = with stdenv.lib; {
@@ -84,10 +86,10 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     # 'hide' the template file from shebang-patching
-    chmod -x $out/opt/vagrant/embedded/gems/gems/bundler-1.6.2/lib/bundler/templates/Executable
+    chmod -x $out/opt/vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/templates/Executable
   '';
 
   postFixup = ''
-    chmod +x $out/opt/vagrant/embedded/gems/gems/bundler-1.6.2/lib/bundler/templates/Executable
+    chmod +x $out/opt/vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/templates/Executable
   '';
 }
diff --git a/pkgs/development/web/nodejs/build-node-package.nix b/pkgs/development/web/nodejs/build-node-package.nix
index ca3439df4c4..46067632410 100644
--- a/pkgs/development/web/nodejs/build-node-package.nix
+++ b/pkgs/development/web/nodejs/build-node-package.nix
@@ -1,6 +1,6 @@
 { stdenv, runCommand, nodejs, neededNatives}:
 
-args @ { name, src, deps ? [], peerDependencies ? [], flags ? [], preShellHook ? "",  postShellHook ? "", ... }:
+args @ { name, src, deps ? {}, peerDependencies ? [], flags ? [], preShellHook ? "",  postShellHook ? "", resolvedDeps ? {}, bin ? null, ... }:
 
 with stdenv.lib;
 
@@ -12,88 +12,135 @@ let
     mv *node* $out
   '';
 
+  # Convert deps to attribute set
+  attrDeps = if isAttrs deps then deps else
+    (listToAttrs (map (dep: nameValuePair dep.name dep) deps));
+
+  # All required node modules, without already resolved dependencies
+  requiredDeps = removeAttrs attrDeps (attrNames resolvedDeps);
+
+  # Recursive dependencies that we want to avoid with shim creation
+  recursiveDeps = removeAttrs attrDeps (attrNames requiredDeps);
+
   peerDeps = listToAttrs (concatMap (dep: map (name: {
     inherit name;
     value = dep;
   }) (filter (nm: !(elem nm (args.passthru.names or []))) dep.names)) (peerDependencies));
-in
-stdenv.mkDerivation ({
-  unpackPhase = "true";
-
-  inherit src;
-
-  configurePhase = ''
-    runHook preConfigure
-    mkdir node_modules
-    ${concatStrings (concatMap (dep: map (name: ''
-      ln -sv ${dep}/lib/node_modules/${name} node_modules/
-    '') dep.names) deps)}
-    ${concatStrings (mapAttrsToList (name: dep: ''
-      ln -sv ${dep}/lib/node_modules/${name} node_modules/
-    '') peerDeps)}
-    export HOME=$(pwd)
-    runHook postConfigure
-  '';
 
-  buildPhase = ''
-    runHook preBuild
-    npm --registry http://www.example.com --nodedir=${sources} install $src ${npmFlags}
-    runHook postBuild
-  '';
+  self = let
+    # Pass resolved dependencies to dependencies of this package 
+    deps = map (
+      dep: dep.override {
+        resolvedDeps = resolvedDeps // { "${name}" = self; };
+      }
+    ) (attrValues requiredDeps);
+
+  in stdenv.mkDerivation ({
+    unpackPhase = "true";
+
+    inherit src;
+    
+    configurePhase = ''
+      runHook preConfigure
+      mkdir node_modules
+
+      # Symlink dependencies for node modules
+      ${concatStrings (concatMap (dep: map (name: ''
+        ln -sv ${dep}/lib/node_modules/${name} node_modules/
+      '') dep.names) deps)}
+
+      # Symlink peer dependencies
+      ${concatStrings (mapAttrsToList (name: dep: ''
+        ln -sv ${dep}/lib/node_modules/${name} node_modules/
+      '') peerDeps)}
+
+      # Create shims for recursive dependenceies
+      ${concatStrings (concatMap (dep: map (name: ''
+        mkdir -p node_modules/${name}
+        cat > node_modules/${name}/package.json <<EOF
+        {
+            "name": "${name}",
+            "version": "${(builtins.parseDrvName dep.name).version}"
+        }
+        EOF
+      '') dep.names) (attrValues recursiveDeps))}
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/lib/node_modules
-    ${concatStrings (map (name: ''
-      mv node_modules/${name} $out/lib/node_modules
-      rm -fR $out/lib/node_modules/${name}/node_modules
-      ln -sv $out/.dependent-node-modules $out/lib/node_modules/${name}/node_modules
-      if [ -e "$out/lib/node_modules/${name}/man" ]; then
-        mkdir -p $out/share
-        for dir in "$out/lib/node_modules/${name}/man/"*; do
-          mkdir -p $out/share/man/$(basename "$dir")
-          for page in "$dir"/*; do
-            ln -sv $page $out/share/man/$(basename "$dir")
+      export HOME=$(pwd)
+      runHook postConfigure
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+      npm --registry http://www.example.com --nodedir=${sources} install $src ${npmFlags}
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      # Remove shims
+      ${concatStrings (concatMap (dep: map (name: ''
+        rm  node_modules/${name}/package.json
+        rmdir node_modules/${name}
+      '') dep.names) (attrValues recursiveDeps))}
+
+      mkdir -p $out/lib/node_modules
+      ${concatStrings (map (name: ''
+        mv node_modules/${name} $out/lib/node_modules
+        rm -fR $out/lib/node_modules/${name}/node_modules
+        ln -sv $out/.dependent-node-modules $out/lib/node_modules/${name}/node_modules
+        if [ -e "$out/lib/node_modules/${name}/man" ]; then
+          mkdir -p $out/share
+          for dir in "$out/lib/node_modules/${name}/man/"*; do
+            mkdir -p $out/share/man/$(basename "$dir")
+            for page in "$dir"/*; do
+              ln -sv $page $out/share/man/$(basename "$dir")
+            done
           done
-        done
+        fi
+      '') args.passthru.names)}
+      ${concatStrings (mapAttrsToList (name: dep: ''
+        mv node_modules/${name} $out/lib/node_modules
+      '') peerDeps)}
+      mv node_modules/.bin $out/lib/node_modules 2>/dev/null || true
+      mv node_modules $out/.dependent-node-modules
+      if [ -d "$out/lib/node_modules/.bin" ]; then
+        ln -sv $out/lib/node_modules/.bin $out/bin
+        node=`type -p node`
+        coffee=`type -p coffee || true`
+        find -L $out/lib/node_modules/.bin/* -type f -print0 | \
+          xargs -0 sed --follow-symlinks -i \
+            -e 's@#!/usr/bin/env node@#!'"$node"'@' \
+            -e 's@#!/usr/bin/env coffee@#!'"$coffee"'@' \
+            -e 's@#!/.*/node@#!'"$node"'@' \
+            -e 's@#!/.*/coffee@#!'"$coffee"'@'
       fi
-    '') args.passthru.names)}
-    ${concatStrings (mapAttrsToList (name: dep: ''
-      mv node_modules/${name} $out/lib/node_modules
-    '') peerDeps)}
-    mv node_modules/.bin $out/lib/node_modules 2>/dev/null || true
-    mv node_modules $out/.dependent-node-modules
-    if [ -d "$out/lib/node_modules/.bin" ]; then
-      ln -sv $out/lib/node_modules/.bin $out/bin
-      node=`type -p node`
-      coffee=`type -p coffee || true`
-      find -L $out/lib/node_modules/.bin/* -type f -print0 | \
-        xargs -0 sed --follow-symlinks -i \
-          -e 's@#!/usr/bin/env node@#!'"$node"'@' \
-          -e 's@#!/usr/bin/env coffee@#!'"$coffee"'@' \
-          -e 's@#!/.*/node@#!'"$node"'@' \
-          -e 's@#!/.*/coffee@#!'"$coffee"'@'
-    fi
-    runHook postInstall
-  '';
+      runHook postInstall
+    '';
 
-  preFixup = concatStringsSep "\n" (map (src: ''
-    find $out -type f -print0 | xargs -0 sed -i 's|${src}|${src.name}|g'
-  '') src);
-
-  shellHook = ''
-    ${preShellHook}
-    export PATH=${nodejs}/bin:$(pwd)/node_modules/.bin:$PATH
-    mkdir -p node_modules
-    ${concatStrings (concatMap (dep: map (name: ''
-      ln -sfv ${dep}/lib/node_modules/${name} node_modules/
-    '') dep.names) deps)}
-    ${postShellHook}
-  '';
-} // args // {
-  # Run the node setup hook when this package is a build input
-  propagatedNativeBuildInputs = (args.propagatedNativeBuildInputs or []) ++ [ nodejs ];
+    preFixup = concatStringsSep "\n" (map (src: ''
+      find $out -type f -print0 | xargs -0 sed -i 's|${src}|${src.name}|g'
+    '') src);
+
+    shellHook = ''
+      ${preShellHook}
+      export PATH=${nodejs}/bin:$(pwd)/node_modules/.bin:$PATH
+      mkdir -p node_modules
+      ${concatStrings (concatMap (dep: map (name: ''
+        ln -sfv ${dep}/lib/node_modules/${name} node_modules/
+      '') dep.names) deps)}
+      ${postShellHook}
+    '';
+  } // (filterAttrs (n: v: n != "deps" && n != "resolvedDeps") args) // {
+    name = "${
+      if bin == true then "bin-" else if bin == false then "node-" else ""
+    }${name}";
+
+    # Run the node setup hook when this package is a build input
+    propagatedNativeBuildInputs = (args.propagatedNativeBuildInputs or []) ++ [ nodejs ];
+
+    # Make buildNodePackage useful with --run-env
+    nativeBuildInputs = (args.nativeBuildInputs or []) ++ deps ++ peerDependencies ++ neededNatives;
+  });
 
-  # Make buildNodePackage useful with --run-env
-  nativeBuildInputs = (args.nativeBuildInputs or []) ++ deps ++ peerDependencies ++ neededNatives;
-} )
+in self
diff --git a/pkgs/games/bsdgames/default.nix b/pkgs/games/bsdgames/default.nix
index 59423d7a5a6..882f5f3cde6 100644
--- a/pkgs/games/bsdgames/default.nix
+++ b/pkgs/games/bsdgames/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
     bsd_games_cfg_varlibdir=.
     bsd_games_cfg_non_interactive=y
     bsd_games_cfg_no_build_dirs="dab hack phantasia sail"
-    bsd_games_cfg_dictionary_src=${miscfiles}/share/dict/words
+    bsd_games_cfg_dictionary_src=${miscfiles}/share/web2
     bsd_games_cfg_pager=${less}
     EOF
 
diff --git a/pkgs/games/chocolate-doom/default.nix b/pkgs/games/chocolate-doom/default.nix
new file mode 100644
index 00000000000..157d1b42af6
--- /dev/null
+++ b/pkgs/games/chocolate-doom/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, autoconf, automake, pkgconfig, SDL, SDL_mixer, SDL_net, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "chocolate-doom-2.0.0";
+  src = fetchurl {
+    url = https://github.com/chocolate-doom/chocolate-doom/archive/chocolate-doom-2.0.0.tar.gz;
+    sha256 = "1n9lkx97h987bq8z586jgissdhs07xyfr0xfdk7m2wpw4yhw10k1";
+  };
+  buildInputs = [ autoconf autoconf automake pkgconfig SDL SDL_mixer SDL_net ];
+  patchPhase = ''
+    sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
+    ./autogen.sh --prefix=$out
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://chocolate-doom.org/;
+    description = "A Doom source port that accurately reproduces the experience of Doom as it was played in the 1990s";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/pkgs/games/chocolate-doom/master.nix b/pkgs/games/chocolate-doom/master.nix
new file mode 100644
index 00000000000..f0dc62aaaae
--- /dev/null
+++ b/pkgs/games/chocolate-doom/master.nix
@@ -0,0 +1,24 @@
+{ stdenv, autoconf, automake, pkgconfig, SDL, SDL_mixer, SDL_net, git, fetchgit }:
+
+stdenv.mkDerivation rec {
+  name = "chocolate-doom-20140902";
+  src = fetchgit {
+    url = git://github.com/fragglet/chocolate-doom.git;
+    rev = "204814c7bb16a8ad45435a15328072681978ea57";
+    sha256 = "1xcdxpkgb9dk3zwqf4xcr3qn7dh5rx6hmniky67imbvi1h74p587";
+  };
+  buildInputs = [ autoconf autoconf automake pkgconfig SDL SDL_mixer SDL_net git ];
+  patchPhase = ''
+    sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
+    ./autogen.sh --prefix=$out
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://chocolate-doom.org/;
+    description = "A Doom source port that accurately reproduces the experience of Doom as it was played in the 1990s";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/pkgs/games/dwarf-fortress/df2014.nix b/pkgs/games/dwarf-fortress/df2014.nix
index 6a0d30ea89f..300d7557e02 100644
--- a/pkgs/games/dwarf-fortress/df2014.nix
+++ b/pkgs/games/dwarf-fortress/df2014.nix
@@ -1,17 +1,41 @@
-{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, gtk, glib, mesa, openal, glibc, libsndfile
-, copyDataDirectory ? false }:
+{ stdenv, fetchgit, fetchurl, cmake, glew, ncurses, SDL, SDL_image, SDL_ttf, gtk2, glib, mesa, openal, pango, atk, gdk_pixbuf, glibc, libsndfile
+  , copyDataDirectory ? true }:
+
+/* set copyDataDirectory as true by default since df 40 does not seem to run without it */
+
+let
+
+  srcs = {
+    df_unfuck = fetchgit {
+      url = "https://github.com/svenstaro/dwarf_fortress_unfuck";
+      rev = "4681508dd799aaf20b47c2ac0e9da18fa4876993";
+      sha256 = "16495214a19742cb97351109b124ad9d691ee52bbb1b86c9c1907978734b5ca0";
+    };
+
+    df = fetchurl {
+      url = "http://www.bay12games.com/dwarves/df_40_10_linux.tar.bz2";
+      sha256 = "0hfm4395y0lacgsl7wqr6vwcw42pqm03xp7giqfk3mfsn32wqnm7";
+    };
+  };
+
+in
 
 assert stdenv.system == "i686-linux";
 
 stdenv.mkDerivation rec {
-  name = "dwarf-fortress-0.40.05";
+  name = "dwarf-fortress-0.40.10";
 
-  src = fetchurl {
-    url = "http://www.bay12games.com/dwarves/df_40_05_linux.tar.bz2";
-    sha256 = "1b9nd33yz5a945v9jyqii1k4s71i701m2d0h7fw6f5g9p6nvx43s";
-  };
 
-  phases = "unpackPhase patchPhase installPhase";
+  buildInputs = [ SDL SDL_image SDL_ttf gtk2 glib glew mesa ncurses openal glibc libsndfile pango atk cmake gdk_pixbuf];
+  src = "${srcs.df_unfuck} ${srcs.df}";
+  phases = "unpackPhase patchPhase configurePhase buildPhase installPhase";
+
+  sourceRoot = "git-export";
+
+  cmakeFlags = [
+    "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include"
+    "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include"
+  ];
 
   /* :TODO: Game options should be configurable by patching the default configuration files */
 
@@ -21,11 +45,15 @@ stdenv.mkDerivation rec {
     set -x
     mkdir -p $out/bin
     mkdir -p $out/share/df_linux
-    cp -r * $out/share/df_linux
+    cd ../../
+    cp -r ./df_linux/* $out/share/df_linux
+    rm $out/share/df_linux/libs/lib*
+    patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.gcc.gcc stdenv.glibc ]}:$out/share/df_linux/libs"  $out/share/df_linux/libs/Dwarf_Fortress
+    cp -f ./git-export/build/libgraphics.so $out/share/df_linux/libs/libgraphics.so
+
     cp $permission $out/share/df_linux/nix_permission
 
     patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 $out/share/df_linux/libs/Dwarf_Fortress
-    ln -s ${libsndfile}/lib/libsndfile.so $out/share/df_linux/libs/
 
     cat > $out/bin/dwarf-fortress << EOF
     #!${stdenv.shell}
@@ -66,7 +94,7 @@ stdenv.mkDerivation rec {
     ''}
 
     # now run Dwarf Fortress!
-    export LD_LIBRARY_PATH=\$DF_DIR/df_linux/libs/:${SDL}/lib:${SDL_image}/lib/:${SDL_ttf}/lib/:${gtk}/lib/:${glib}/lib/:${mesa}/lib/:${openal}/lib/
+    export LD_LIBRARY_PATH=\${stdenv.gcc}/lib:${SDL}/lib:${SDL_image}/lib/:${SDL_ttf}/lib/:${gtk2}/lib/:${glib}/lib/:${mesa}/lib/:${openal}/lib/:${libsndfile}/lib:$DF_DIR/df_linux/libs/
     \$DF_DIR/df "\$@"
     EOF
 
diff --git a/pkgs/games/eternity-engine/default.nix b/pkgs/games/eternity-engine/default.nix
new file mode 100644
index 00000000000..2e04c76a990
--- /dev/null
+++ b/pkgs/games/eternity-engine/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, cmake, mesa, SDL, SDL_mixer, SDL_net, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "eternity-engine-3.40.46";
+  src = fetchurl {
+    url = https://github.com/team-eternity/eternity/archive/3.40.46.tar.gz;
+    sha256 = "0jq8q0agw7lgab9q2h8wcaakvg913l9j3a6ss0hn9661plkw2yb4";
+  };
+
+  cmakeFlags = ''
+    -DCMAKE_BUILD_TYPE=Release
+  '';
+
+  buildInputs = [ stdenv cmake mesa SDL SDL_mixer SDL_net ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+  mkdir -p $out/bin
+  cp source/eternity $out/bin
+  '';
+
+  meta = {
+    homepage = http://doomworld.com/eternity;
+    description = "New school Doom port by James Haley";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/pkgs/games/gtypist/default.nix b/pkgs/games/gtypist/default.nix
index 3db7aecfe1a..c47a2317b0e 100644
--- a/pkgs/games/gtypist/default.nix
+++ b/pkgs/games/gtypist/default.nix
@@ -1,20 +1,26 @@
-{stdenv, fetchurl, ncurses}:
+{stdenv, fetchurl, makeWrapper, ncurses, perl, fortune}:
 
-stdenv.mkDerivation {
-  name = "gtypist-2.9.4";
+stdenv.mkDerivation rec {
+  name = "gtypist-${version}";
+  version = "2.9.5";
 
   src = fetchurl {
-    url = "mirror://gnu/gtypist/gtypist-2.9.4.tar.xz";
-    sha256 = "18f54lh7ihhfvgwk3xd9d087kmganrgi2jd7avhvwn5gcc31vrqq";
+    url = "mirror://gnu/gtypist/gtypist-${version}.tar.xz";
+    sha256 = "0xzrkkmj0b1dw3yr0m9hml2y634cc4h61im6zwcq57s7285z8fn1";
   };
 
-  buildInputs = [ncurses];
+  buildInputs = [ makeWrapper ncurses perl fortune ];
 
-  patchPhase = "sed -e 's#ncursesw/##' -i configure src/*";
+  preFixup = ''
+     wrapProgram "$out/bin/typefortune" \
+       --prefix PATH : "${fortune}/bin" \
+  '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.gnu.org/software/gtypist;
     description = "Universal typing tutor";
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index ff96622cb59..c26c27aaf02 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "openttd-${version}";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchurl {
     url = "http://binaries.openttd.org/releases/${version}/${name}-source.tar.xz";
-    sha256 = "0gkmf2jj1rab81y10dp8cirr90kv9dpr3ww4wb06j8cvgapy7b0z";
+    sha256 = "1kzca8nxz9isb2r5q5pdxhkzy92rdibapzq256sxbaf55zlcg1p2";
   };
 
   buildInputs = [ SDL libpng pkgconfig xz zlib freetype fontconfig ];
diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix
index 539be06bf7f..69387f0cfd3 100644
--- a/pkgs/games/spring/default.nix
+++ b/pkgs/games/spring/default.nix
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
   # reported upstream http://springrts.com/mantis/view.php?id=4305
   #enableParallelBuilding = true; # occasionally missing generated files on Hydra
 
+  NIX_CFLAGS_COMPILE = "-fpermissive"; # GL header minor incompatibility
+
   postInstall = ''
     wrapProgram "$out/bin/spring" \
       --prefix LD_LIBRARY_PATH : "${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib::${systemd}/lib"
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index 2173d12666e..75bbca67ab0 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -1,12 +1,73 @@
-{ buildFHSChrootEnv, steam
-, xterm, libX11, zenity, python, mesa, xdg_utils, dbus_tools, alsaLib
-}:
+{ buildFHSChrootEnv, config }:
 
 buildFHSChrootEnv {
   name = "steam";
-  pkgs = [ steam xterm libX11 zenity python mesa xdg_utils dbus_tools alsaLib ];
+
+  targetPkgs = pkgs:
+    [ pkgs.steam
+      pkgs.corefonts
+      pkgs.curl
+      pkgs.dbus
+      pkgs.dpkg
+      pkgs.mono
+      pkgs.python
+      pkgs.gnome2.zenity
+      pkgs.xdg_utils
+    ]
+    ++ (if config.steam.java or false then [ pkgs.jdk ] else [ ])
+    ;
+
+  multiPkgs = pkgs:
+    [ pkgs.cairo
+      pkgs.glib
+      pkgs.gtk
+      pkgs.gdk_pixbuf
+      pkgs.pango
+
+      pkgs.freetype
+      pkgs.xlibs.libICE
+      pkgs.xlibs.libSM
+      pkgs.xlibs.libX11
+      pkgs.xlibs.libXau
+      pkgs.xlibs.libxcb
+      pkgs.xlibs.libXcursor
+      pkgs.xlibs.libXdamage
+      pkgs.xlibs.libXdmcp
+      pkgs.xlibs.libXext
+      pkgs.xlibs.libXfixes
+      pkgs.xlibs.libXi
+      pkgs.xlibs.libXinerama
+      pkgs.xlibs.libXrandr
+      pkgs.xlibs.libXrender
+      pkgs.xlibs.libXScrnSaver
+      pkgs.xlibs.libXtst
+      pkgs.xlibs.libXxf86vm
+
+      pkgs.ffmpeg
+      pkgs.libpng12
+      pkgs.mesa
+      pkgs.SDL
+      pkgs.SDL2
+
+      pkgs.libgcrypt
+      pkgs.zlib
+
+      pkgs.alsaLib
+      pkgs.libvorbis
+      pkgs.openal
+      pkgs.pulseaudio
+
+      pkgs.flashplayer
+    ];
+
+  extraBuildCommandsMulti = ''
+    cd usr/lib
+    ln -sf ../lib64/steam steam
+  '';
+
   profile = ''
-    export LD_LIBRARY_PATH=/run/opengl-driver/lib:/run/opengl-driver-32/lib:/lib
+    export LD_LIBRARY_PATH=/run/opengl-driver/lib:/run/opengl-driver-32/lib:/lib:/lib32:/lib64
+    export PATH=$PATH:/usr/bin:/usr/sbin
     export FONTCONFIG_FILE=/etc/fonts/fonts.conf
   '';
 }
diff --git a/pkgs/games/steam/default.nix b/pkgs/games/steam/default.nix
index c1273e9a20f..9104bb40f77 100644
--- a/pkgs/games/steam/default.nix
+++ b/pkgs/games/steam/default.nix
@@ -1,118 +1,19 @@
-/*{ stdenv, fetchurl, dpkg, makeWrapper, xz, libX11, gcc, glibc
-, libselinux, libXrandr, pango, freetype, fontconfig, glib, gtk
-, gdk_pixbuf, cairo, libXi, alsaLib, libXrender, nss, nspr, zlib
-, dbus, libpng12, libXfixes, cups, libgcrypt, openal, pulseaudio
-, libxcb, libXau, libXdmcp, flashplayer, libSM, libICE, libXext
-, dbus_glib, libusb1, networkmanager
-, SDL # World of Goo
-, libvorbis # Osmos
-, curl, mesa # Superbrothers: S&S EP
-, patchelf }:
-
-assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
-
-let version = "1.0.0.39"; in
-
-stdenv.mkDerivation rec {
-  name = "steam-${version}";
-
-  src = fetchurl {
-    url = "http://repo.steampowered.com/steam/pool/steam/s/steam/steam-launcher_${version}_all.deb";
-    sha256 = "1z1cnlr2qw2ndnqsfwjck9617m2p0f3p9q9409vczj909h2a9wyk";
-  };
-
-  buildInputs = [ dpkg makeWrapper ];
-
-  phases = "installPhase";
-
-  installPhase = ''
-    mkdir -p $out
-    dpkg-deb -x $src $out
-    cp -r $out/usr/* $out/
-    rm -rf $out/usr
-    substituteInPlace "$out/bin/steam" --replace "/usr/bin/env bash" "/bin/sh"
-    substituteInPlace "$out/bin/steam" --replace "/usr/" "$out/"
-    sed -i 's,STEAMPACKAGE=.*,STEAMPACKAGE=steam,' $out/bin/steam
-    sed -i '/STEAMSCRIPT/d' $out/bin/steam
-
-    mv $out/bin/steam $out/bin/.steam-wrapped
-    cat > $out/bin/steam << EOF
-
-    export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${libX11}/lib:${gcc.gcc}/lib:${libselinux}/lib:${libXrandr}/lib:${pango}/lib:${freetype}/lib:${fontconfig}/lib:${glib}/lib:${gtk}/lib:${gdk_pixbuf}/lib:${cairo}/lib:${libXi}/lib:${alsaLib}/lib:${libXrender}/lib:${nss}/lib:${nspr}/lib:${zlib}/lib:${dbus}/lib:${libpng12}/lib:${libXfixes}/lib:${cups}/lib:${libgcrypt}/lib:${openal}/lib:${pulseaudio}/lib:${libxcb}/lib:${libXau}/lib:${libXdmcp}/lib:${SDL}/lib:${libvorbis}/lib:${curl}/lib:${libSM}/lib:${libICE}/lib:${dbus_glib}/lib:${networkmanager}/lib:${libXext}/lib:${libusb1}/lib
-    STEAMBOOTSTRAP=~/.steam/steam/steam.sh
-    if [ -f \$STEAMBOOTSTRAP ]; then
-      PLATFORM32=ubuntu12_32
-      STEAMCONFIG=~/.steam
-      STEAMROOT=~/.local/share/Steam
-      STEAMDATA="\$STEAMROOT"
-      PIDFILE="\$STEAMCONFIG/steam.pid"
-      STEAMBIN32LINK="\$STEAMCONFIG/bin32"
-      STEAMBIN64LINK="\$STEAMCONFIG/bin64"
-      STEAMSDK32LINK="\$STEAMCONFIG/sdk32"
-      STEAMSDK64LINK="\$STEAMCONFIG/sdk64"
-      STEAMROOTLINK="\$STEAMCONFIG/root"
-      STEAMDATALINK="\$STEAMCONFIG/steam"
-      STEAMSTARTING="\$STEAMCONFIG/starting"
-      # Create symbolic links for the Steam API
-      if [ ! -e "\$STEAMCONFIG" ]; then
-          mkdir "\$STEAMCONFIG"
-      fi
-      if [ "\$STEAMROOT" != "\$STEAMROOTLINK" -a "\$STEAMROOT" != "\$STEAMDATALINK" ]; then
-          rm -f "\$STEAMBIN32LINK" && ln -s "\$STEAMROOT/\$PLATFORM32" "\$STEAMBIN32LINK"
-          rm -f "\$STEAMBIN64LINK" && ln -s "\$STEAMROOT/\$PLATFORM64" "\$STEAMBIN64LINK"
-          rm -f "\$STEAMSDK32LINK" && ln -s "\$STEAMROOT/linux32" "\$STEAMSDK32LINK"
-          rm -f "\$STEAMSDK64LINK" && ln -s "\$STEAMROOT/linux64" "\$STEAMSDK64LINK"
-          rm -f "\$STEAMROOTLINK" && ln -s "\$STEAMROOT" "\$STEAMROOTLINK"
-          if [ "\$STEAMDATALINK" ]; then
-              rm -f "\$STEAMDATALINK" && ln -s "\$STEAMDATA" "\$STEAMDATALINK"
-          fi
-      fi
-      # Temporary bandaid until everyone has the new libsteam_api.so
-      rm -f ~/.steampath && ln -s "\$STEAMCONFIG/bin32/steam" ~/.steampath
-      rm -f ~/.steampid && ln -s "\$PIDFILE" ~/.steampid
-      rm -f ~/.steam/bin && ln -s "\$STEAMBIN32LINK" ~/.steam/bin
-      export LD_LIBRARY_PATH="\$STEAMBIN32LINK:\$LD_LIBRARY_PATH:${mesa}/lib"
-      export SDL_VIDEO_X11_DGAMOUSE=0
-      cd "\$STEAMROOT"
-      FLASHLINK="\$STEAMCONFIG/bin32/plugins"
-      rm -f "\$FLASHLINK" && ln -s "${flashplayer}/lib/mozilla/plugins" "\$FLASHLINK"
-      LDSO="\$STEAMBIN32LINK/ld.so"
-      cp ${glibc}/lib/ld-linux.so.2 "\$LDSO"
-      chmod u+w "\$LDSO"
-      echo \$\$ > "\$PIDFILE" # pid of the shell will become pid of steam
-      export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${glibc}/lib
-      exec "\$LDSO" "\$STEAMBIN32LINK/steam"
-    else
-      export PATH=${xz}/bin:\$PATH
-      exec $out/bin/.steam-wrapped
-    fi
-    EOF
-
-    chmod +x $out/bin/steam
-  '';
-
-  meta = {
-    description = "A digital distribution platform";
-    homepage = http://store.steampowered.com/;
-    license = stdenv.lib.licenses.unfree;
-  };
-}
-*/
-
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
   name = "steam-1.0.0.48";
+
   src = fetchurl {
     url = http://repo.steampowered.com/steam/pool/steam/s/steam/steam_1.0.0.48.tar.gz;
     sha256 = "08y5qf75ssk4fnazyv2yz1c5zs7gjiwigaibv8yz1gbr290r0b52";
   };
+
   installPhase = ''
     make DESTDIR=$out install
     mv $out/usr/* $out #*/
     rmdir $out/usr
   '';
-  
+
   meta = {
     description = "A digital distribution platform";
     homepage = http://store.steampowered.com/;
diff --git a/pkgs/games/stepmania/default.nix b/pkgs/games/stepmania/default.nix
index 6a54dd7512f..2379ac9ecd4 100644
--- a/pkgs/games/stepmania/default.nix
+++ b/pkgs/games/stepmania/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
       platforms = platforms.linux;
-      maintainers = maintainers.mornfall;
+      maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix
index 284d420fe7f..248b58a4e1a 100644
--- a/pkgs/games/warzone2100/default.nix
+++ b/pkgs/games/warzone2100/default.nix
@@ -28,9 +28,13 @@ stdenv.mkDerivation rec {
                       --replace "which %s" "${which}/bin/which %s"
   '';
   configureFlags = "--with-backend=qt --with-distributor=NixOS";
+
+  NIX_CFLAGS_COMPILE = "-fpermissive"; # GL header minor incompatibility
+
   postInstall = []
     ++ stdenv.lib.optional withVideos "cp ${sequences_src} $out/share/warzone2100/sequences.wz";
-  meta = {
+
+  meta = with stdenv.lib; {
     description = "A free RTS game, originally developed by Pumpkin Studios";
     longDescription = ''
         Warzone 2100 is an open source real-time strategy and real-time tactics
@@ -44,8 +48,8 @@ stdenv.mkDerivation rec {
       variety of possible units and tactics. 
     '';
     homepage = http://wz2100.net;
-    license = [ "GPLv2+" ];
-    maintainers = with stdenv.lib.maintainers; [ astsmtl ];
-    platforms = with stdenv.lib.platforms; linux;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.astsmtl ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/misc/drivers/foomatic-filters/default.nix b/pkgs/misc/drivers/foomatic-filters/default.nix
index f618a28b4d6..ffc5e093c21 100644
--- a/pkgs/misc/drivers/foomatic-filters/default.nix
+++ b/pkgs/misc/drivers/foomatic-filters/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Foomatic printing filters";
-    maintainers = stdenv.lib.maintainers.raskin;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
     platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.gpl2Plus;
   };
diff --git a/pkgs/misc/emulators/dolphin-emu/default.nix b/pkgs/misc/emulators/dolphin-emu/default.nix
new file mode 100644
index 00000000000..bf03e1e52aa
--- /dev/null
+++ b/pkgs/misc/emulators/dolphin-emu/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib
+, gettext, libpthreadstubs, libXrandr, libXext, readline
+, openal, libXdmcp, portaudio, SDL, wxGTK30, fetchurl
+, pulseaudio ? null }:
+
+stdenv.mkDerivation rec {
+  name = "dolphin-emu-4.0.2";
+  src = fetchurl {
+    url = https://github.com/dolphin-emu/dolphin/archive/4.0.2.tar.gz;
+    sha256 = "0a8ikcxdify9d7lqz8fn2axk2hq4q1nvbcsi1b8vb9z0mdrhzw89";
+  };
+
+  cmakeFlags = ''
+    -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include
+    -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include
+    -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0
+    -DCMAKE_BUILD_TYPE=Release
+    -DENABLE_LTO=True
+  '';
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ stdenv pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
+                  gettext libpthreadstubs libXrandr libXext readline openal
+                  libXdmcp portaudio SDL wxGTK30 pulseaudio ];
+
+  meta = {
+    homepage = http://dolphin-emu.org/;
+    description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix
new file mode 100644
index 00000000000..4823d41d1ac
--- /dev/null
+++ b/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -0,0 +1,34 @@
+{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib
+, gettext, git, libpthreadstubs, libXrandr, libXext, readline
+, openal, libXdmcp, portaudio, SDL, wxGTK30, fetchgit
+, pulseaudio ? null }:
+
+stdenv.mkDerivation rec {
+  name = "dolphin-emu-20140902";
+  src = fetchgit {
+    url = git://github.com/dolphin-emu/dolphin.git;
+    rev = "cc6db8cf26c1508ae382912bc25e64aaf12e0543";
+    sha256 = "17pc4kk1v0p1llc12ifih02j2klfjz29qh8nhz5lapb0a1wr6lb3";
+  };
+
+  cmakeFlags = ''
+    -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include
+    -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include
+    -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0
+    -DCMAKE_BUILD_TYPE=Release
+    -DENABLE_LTO=True
+  '';
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ stdenv pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
+                  gettext libpthreadstubs libXrandr libXext readline openal
+                  git libXdmcp portaudio SDL wxGTK30 pulseaudio ];
+
+  meta = {
+    homepage = http://dolphin-emu.org/;
+    description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/pkgs/misc/emulators/emulationstation/default.nix b/pkgs/misc/emulators/emulationstation/default.nix
index 5767786e814..6ff0a21135a 100644
--- a/pkgs/misc/emulators/emulationstation/default.nix
+++ b/pkgs/misc/emulators/emulationstation/default.nix
@@ -1,25 +1,22 @@
-{ stdenv, fetchurl, pkgconfig, cmake, boost, eigen, freeimage, freetype
-, mesa, SDL, dejavu_fonts }:
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, curl, boost, eigen
+, freeimage, freetype, mesa, SDL2, alsaLib, libarchive }:
 
 stdenv.mkDerivation rec {
   name = "emulationstation-${version}";
-  version = "1.0.2";
-  src = fetchurl {
-    url = "https://github.com/Aloshi/EmulationStation/archive/v${version}.tar.gz";
-    sha256 = "809d67aaa727809c1426fb543e36bb788ca6a3404f8c46dd1917088b57ab5f50";
-  };
+  version = "2.0.0-rc1";
 
-  buildInputs = [ pkgconfig cmake boost eigen freeimage freetype mesa SDL ];
+  src = fetchFromGitHub {
+    owner = "Aloshi";
+    repo = "EmulationStation";
+    rev = "8739519e1591819cab85e1d2056804d20c197dac";
+    sha256 = "1psq5cqyq2yy1lqxrcj7pfp8szfmzhamxf3111l97w2h2zzcgvq9";
+  };
 
-  prePatch = ''
-    sed -i \
-      -e 's,/usr\(.*\)/ttf-dejavu\(.*\),${dejavu_fonts}\1\2,' src/Font.cpp
-  '';
+  buildInputs = [ pkgconfig cmake alsaLib boost curl eigen freeimage freetype libarchive mesa SDL2 ];
 
   buildPhase = "cmake . && make";
   installPhase = ''
-    mkdir -p $out/bin
-    mv ../emulationstation $out/bin/.
+    install -D ../emulationstation $out/bin/emulationstation
   '';
 
   meta = {
diff --git a/pkgs/misc/emulators/higan/builder.sh b/pkgs/misc/emulators/higan/builder.sh
index 144c23d39de..0d01f7dc971 100644
--- a/pkgs/misc/emulators/higan/builder.sh
+++ b/pkgs/misc/emulators/higan/builder.sh
@@ -18,3 +18,18 @@ install -m 644 ananke/libananke.so $out/lib/libananke.so.1
 (cd $out/lib && ln -s libananke.so.1 libananke.so)
 oldRPath=$(patchelf --print-rpath $out/bin/higan)
 patchelf --set-rpath $oldRPath:$out/lib $out/bin/higan
+
+# A dirty workaround, suggested by @cpages:
+# we create a first-run script to populate
+# the local $HOME with all the auxiliary
+# stuff needed by higan at runtime
+
+cat <<EOF > $out/bin/higan-config.sh
+#!${shell}
+
+cp --update --recursive $out/share/higan \$HOME/.config
+chmod --recursive u+w \$HOME/.config/higan
+
+EOF
+
+chmod +x $out/bin/higan-config.sh
diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix
index aceb55b1396..532eeef2280 100644
--- a/pkgs/misc/emulators/higan/default.nix
+++ b/pkgs/misc/emulators/higan/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
 # TODO:
 #   - options to choose profiles (accuracy, balanced, performance)
 #     and different GUIs (gtk2, qt4)
-#   - fix the BML and BIOS paths - maybe a custom patch to Higan project?
+#   - fix the BML and BIOS paths - maybe submitting
+#     a custom patch to Higan project would not be a bad idea...
 #
diff --git a/pkgs/misc/emulators/mednafen/default.nix b/pkgs/misc/emulators/mednafen/default.nix
index e3bb3965739..407d96a2bb9 100644
--- a/pkgs/misc/emulators/mednafen/default.nix
+++ b/pkgs/misc/emulators/mednafen/default.nix
@@ -1,8 +1,7 @@
 { stdenv, fetchurl, pkgconfig
 , libX11, mesa, freeglut
 , jack2, libcdio, libsndfile, libsamplerate
-, SDL, SDL_net, zlib
-}:
+, SDL, SDL_net, zlib }:
 
 stdenv.mkDerivation rec {
 
@@ -25,11 +24,11 @@ stdenv.mkDerivation rec {
     install -m 644 -t $out/share/doc/$name *.css *.def *.html *.php *.png *.txt
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A portable, CLI-driven, SDL+OpenGL-based, multi-system emulator";
     homepage = http://mednafen.sourceforge.net/;
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/misc/emulators/mednafen/server.nix b/pkgs/misc/emulators/mednafen/server.nix
index d4515b7db03..ce361ef9fbc 100644
--- a/pkgs/misc/emulators/mednafen/server.nix
+++ b/pkgs/misc/emulators/mednafen/server.nix
@@ -15,11 +15,11 @@ stdenv.mkDerivation rec {
     install -m 644 -t $out/share/$name standard.conf
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Netplay server for Mednafen";
     homepage = http://mednafen.sourceforge.net/;
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
new file mode 100644
index 00000000000..f1cef0acc1c
--- /dev/null
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -0,0 +1,170 @@
+{ stdenv, fetchgit, pkgconfig, makeWrapper, python27
+, retroarch, fluidsynth, mesa, SDL, libpng, libjpeg, libvorbis, zlib }:
+
+let
+
+  d2u = stdenv.lib.replaceChars ["-"] ["_"];
+
+  mkLibRetroCore = ({ core, src, description, ... }@a:
+  stdenv.lib.makeOverridable stdenv.mkDerivation rec {
+
+    name = "libretro-${core}-${version}";
+    version = "20140902";
+    inherit src;
+
+    buildInputs = [ makeWrapper retroarch zlib ] ++ a.extraBuildInputs or [];
+
+    buildPhase = "make -f Makefile.libretro";
+    installPhase = ''
+      COREDIR="$out/lib/retroarch/cores"
+      mkdir -p $out/bin
+      mkdir -p $COREDIR
+      mv ${d2u core}_libretro.so $COREDIR/.
+      makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
+        --add-flags "-L $COREDIR/${d2u core}_libretro.so $@"
+    '';
+
+    passthru.libretroCore = "/lib/retroarch/cores";
+
+    meta = with stdenv.lib; {
+      inherit description;
+      homepage = "http://www.libretro.com/";
+      license = licenses.gpl3Plus;
+      maintainers = [ maintainers.edwtjo ];
+      platforms = platforms.linux;
+    };
+  } // a);
+
+  fetchRetro = { repo, rev, sha256 }:
+  fetchgit {
+    inherit rev sha256;
+    url = "https://github.com/libretro/${repo}.git";
+    fetchSubmodules = true;
+  };
+
+in
+
+{
+
+  _4do = (mkLibRetroCore rec {
+    core = "4do";
+    src = fetchRetro {
+      repo = core + "-libretro";
+      rev = "961812bc421f3fbfd83ea211783bb511a0b6d31c";
+      sha256 = "0217iq8sj8gn161c3mj632csl1da8ir2ffxxdillpcddv6ppsayl";
+    };
+    description = "Port of 4DO/libfreedo to libretro";
+  }).override {
+    buildPhase = "make";
+  };
+
+  desmume = mkLibRetroCore rec {
+    core = "desmume";
+    src = fetchRetro {
+      repo = core + "-libretro";
+      rev = "1dd58e4a9fa375b6909cd8718165a429d4b8bd6d";
+      sha256 = "137bw9316qxm8s6p0bzyvk39dv5b5bn60fgllmyj9z5y8x5lrc9l";
+    };
+    description = "libretro wrapper for desmume NDS emulator";
+  };
+
+  fceumm = mkLibRetroCore rec {
+    core = "fceumm";
+    src = fetchRetro {
+      repo = "libretro-" + core;
+      rev = "17e081541c9d36d0658e7139afa5b085aa0316c9";
+      sha256 = "0cn74z976rgjh7hf0yb1sdjlm347157893s2z397rgjvks8xssb0";
+    };
+    description = "FCEUmm libretro port";
+  };
+
+  mupen64plus = (mkLibRetroCore rec {
+    core = "mupen64plus";
+    src = fetchRetro {
+      repo = core + "-libretro";
+      rev = "2251b3aba2a5bb233ff49dd9b6472f2c0feb9b83";
+      sha256 = "04g93kj6n5vddbzfb30d8n711kg0yxfnl5v567aa854misn6gfxd";
+    };
+    description = "Libretro port of Mupen64 Plus, GL only";
+
+    extraBuildInputs = [ mesa ];
+  }).override {
+    buildPhase = "make WITH_DYNAREC=${if stdenv.system == "x86_64-linux" then "x86_64" else "x86"}";
+  };
+
+  scummvm = (mkLibRetroCore rec {
+    core = "scummvm";
+    src = fetchRetro {
+      repo = core;
+      rev = "c00247171ba8201614e85556c638b8825dc9f225";
+      sha256 = "1wir3x928b37va6gn14bmwsydkpk4afma5hppmbivw4qp8mj25pa";
+    };
+    description = "Libretro port of ScummVM";
+
+    extraBuildInputs = [ fluidsynth libjpeg libvorbis mesa SDL ];
+  }).override {
+    buildPhase = "cd backends/platform/libretro/build/;make";
+  };
+
+  snes9x-next = mkLibRetroCore rec {
+    core = "snes9x-next";
+    src = fetchRetro {
+      repo = core;
+      rev = "461d92be09e1857d215f51aeea448a8e180bbfdd";
+      sha256 = "0ci453qsyrv3brmy2szngis2xyvxilcv9yhc2qjz285mirg6fj57";
+    };
+    description = "Optimized port/rewrite of SNES9x 1.52+ to Libretro";
+  };
+
+  stella = (mkLibRetroCore rec {
+    core = "stella";
+    src = fetchRetro {
+      repo = core + "-libretro";
+      rev = "c7ee7ca7e8a29c986f49306c75832972f5749f72";
+      sha256 = "15wy9h3a2qk66lh8x40b3a9il0zkdflqil1h51zjmhq2zzsq8p95";
+    };
+    description = "Port of Stella to libretro";
+  }).override {
+    buildPhase = "make";
+  };
+
+  picodrive = (mkLibRetroCore rec {
+    core = "picodrive";
+    src = fetchRetro {
+      repo = core;
+      rev = "d84817550ac064fbba7ee718fb3baeda7d5546da";
+      sha256 = "17zh9m2v7h1cifzz8dcwqm4wn94zyhz6g85gf0aw6xylxahza627";
+    };
+    description = "Fast MegaDrive/MegaCD/32X emulator";
+
+    extraBuildInputs = [ libpng SDL ];
+  }).override {
+    patchPhase = "sed -i -e 's,SDL_CONFIG=\".*\",SDL_CONFIG=\"${SDL}/bin/sdl-config\",' configure";
+    configurePhase = "./configure";
+  };
+
+  ppsspp = (mkLibRetroCore rec {
+    core = "ppsspp";
+    src = fetchRetro {
+      repo = "libretro-" + core;
+      rev = "6ee828171218b26e124c5e8fa7877e6ee1d5ff79";
+      sha256 = "1559d4k3h0a2dv3684j4w924p2dg8z2j1fwhy7w9mhb5z4kddjhk";
+    };
+    description = "ppsspp libretro port";
+
+    extraBuildInputs = [ mesa ];
+  }).override{
+    buildPhase = "cd libretro && make";
+  };
+
+  vba-next = mkLibRetroCore rec {
+    core = "vba-next";
+    src = fetchRetro {
+      repo = core;
+      rev = "fb095107f83df5f93b8ba4833eaf43901f42c0c0";
+      sha256 = "0fvq1dfll27vjbmyh4qsp2nw166jsd91sjmf1sl84z56ab3q3iw8";
+    };
+    description = "VBA-M libretro port";
+  };
+
+}
\ No newline at end of file
diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix
index 8bc53da8f0c..d110f2b789e 100644
--- a/pkgs/misc/emulators/retroarch/default.nix
+++ b/pkgs/misc/emulators/retroarch/default.nix
@@ -4,7 +4,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "retroarch-0.9.9.7";
+  name = "retroarch-bare-0.9.9.7";
 
   src = fetchgit {
     url = "https://github.com/libretro/RetroArch.git";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     configureFlags="--global-config-dir=$out/etc"
   '';
- 
+
   meta = {
     description = "Modular multi-system game/emulator system";
     homepage = "http://www.libretro.com/";
diff --git a/pkgs/misc/emulators/retroarch/master.nix b/pkgs/misc/emulators/retroarch/master.nix
new file mode 100644
index 00000000000..2efb43e5d5e
--- /dev/null
+++ b/pkgs/misc/emulators/retroarch/master.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, pkgconfig, ffmpeg, mesa, nvidia_cg_toolkit
+, freetype, libxml2, libv4l, coreutils, python34, which, udev, alsaLib
+, libX11, libXext, libXxf86vm, libXdmcp, SDL, pulseaudio ? null }:
+
+stdenv.mkDerivation rec {
+  name = "retroarch-bare-${version}";
+  version = "20140902";
+
+  src = fetchgit {
+    url = git://github.com/libretro/RetroArch.git;
+    rev = "0856091296c2e47409f36e13007805d71db69483";
+    sha256 = "152dfp6jd7yzvasqrqw4ydjbdcwq4khisia2dax3gydvxkq87nl4";
+  };
+
+  buildInputs = [ pkgconfig ffmpeg mesa nvidia_cg_toolkit freetype libxml2 libv4l coreutils
+                  python34 which udev alsaLib libX11 libXext libXxf86vm libXdmcp SDL pulseaudio ];
+
+  patchPhase = ''
+    export GLOBAL_CONFIG_DIR=$out/etc
+    sed -e 's#/bin/true#${coreutils}/bin/true#' -i qb/qb.libs.sh
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://libretro.org/;
+    description = "Multi-platform emulator frontend for libretro cores";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ MP2E ];
+  };
+}
diff --git a/pkgs/misc/emulators/retroarch/wrapper.nix b/pkgs/misc/emulators/retroarch/wrapper.nix
new file mode 100644
index 00000000000..f7e903ef529
--- /dev/null
+++ b/pkgs/misc/emulators/retroarch/wrapper.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, makeWrapper, retroarch, cores }:
+
+let
+
+  p = builtins.parseDrvName retroarch.name;
+
+in
+
+stdenv.mkDerivation {
+  name = "retroarch-" + p.version;
+  version = p.version;
+
+  buildInputs = [ makeWrapper ];
+
+  buildCommand = ''
+    mkdir -p $out/lib
+    $(for coreDir in $cores
+    do
+      $(ln -s $coreDir/*.so $out/lib/.)
+    done)
+    makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch \
+      --suffix-each LD_LIBRARY_PATH ':' "$cores" \
+      --add-flags "-L $out/lib/ --menu" \
+  '';
+
+  cores = map (x: x + x.libretroCore) cores;
+  preferLocalBuild = true;
+
+  meta = with retroarch.meta; {
+    inherit license homepage;
+    description = description
+                  + " (with cores: "
+                  + lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) cores))
+                  + ")";
+  };
+}
diff --git a/pkgs/misc/emulators/stella/default.nix b/pkgs/misc/emulators/stella/default.nix
index 3f10d7afb6e..768d018ba51 100644
--- a/pkgs/misc/emulators/stella/default.nix
+++ b/pkgs/misc/emulators/stella/default.nix
@@ -1,6 +1,5 @@
-{ stdenv, fetchurl
-, pkgconfig, SDL2
-}:
+{ stdenv, fetchurl, pkgconfig
+, SDL2 }:
 
 stdenv.mkDerivation rec {
 
diff --git a/pkgs/misc/phabricator/default.nix b/pkgs/misc/phabricator/default.nix
new file mode 100644
index 00000000000..3162dd0079d
--- /dev/null
+++ b/pkgs/misc/phabricator/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, pkgs, ...  }:
+
+stdenv.mkDerivation rec {
+  version = "2014-07-16";
+  name = "phabricator-${version}";
+  srcLibphutil = pkgs.fetchgit {
+      url = git://github.com/facebook/libphutil.git;
+      rev = "48a04395363d6c1dd9f66057bd11fd70d4665ba9";
+      sha256 = "d570d2c1e68471c2eda35b8722d8083bcc13163fbd5c944529464f2c7b55a2e5";
+  };
+  srcArcanist = pkgs.fetchgit {
+      url = git://github.com/facebook/arcanist.git;
+      rev = "97501da16416fbfdc6e84bd60abcbf5ad9506225";
+      sha256 = "9031c4ae228bdc986131e0c93c98fb73290bb0e297be1ec32f22ab09cdacafa3";
+  };
+  srcPhabricator = pkgs.fetchgit {
+      url = git://github.com/phacility/phabricator.git;
+      rev = "7ac5abb97934f7399b67762aa98f59f667711bf3";
+      sha256 = "6a1d449597ae4432e40a3e6cdb14e3a5a8a40e019f3930493064c35911f2adcc";
+  };
+
+  buildCommand = ''
+    mkdir -p $out
+    cp -R ${srcLibphutil} $out/libphutil
+    cp -R ${srcArcanist} $out/arcanist
+    cp -R ${srcPhabricator} $out/phabricator
+  '';
+}
diff --git a/pkgs/misc/screensavers/xscreensaver/default.nix b/pkgs/misc/screensavers/xscreensaver/default.nix
index 04791749810..40fad768b16 100644
--- a/pkgs/misc/screensavers/xscreensaver/default.nix
+++ b/pkgs/misc/screensavers/xscreensaver/default.nix
@@ -41,5 +41,8 @@ stdenv.mkDerivation rec {
     description = "A set of screensavers";
     maintainers = with stdenv.lib.maintainers; [ raskin urkud ];
     platforms = with stdenv.lib.platforms; allBut cygwin;
+    inherit version;
+    downloadPage = "http://www.jwz.org/xscreensaver/download.html";
+    updateWalker = true;
   };
 }
diff --git a/pkgs/misc/themes/gtk3/oxygen-gtk3/default.nix b/pkgs/misc/themes/gtk3/oxygen-gtk3/default.nix
new file mode 100644
index 00000000000..34141c91f91
--- /dev/null
+++ b/pkgs/misc/themes/gtk3/oxygen-gtk3/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl
+, cmake, dbus_glib, glib, gtk3, gdk_pixbuf, pkgconfig, xorg }:
+
+stdenv.mkDerivation rec {
+  version = "1.4.0";
+  name = "oxygen-gtk3-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/oxygen-gtk3/${version}/src/${name}.tar.bz2";
+    sha256 = "d119bcc94ffc04b67e7d238fc922b37f2904447085a06758451b8c0b0302ab80";
+  };
+
+  buildInputs = [ cmake dbus_glib glib gtk3 gdk_pixbuf
+   pkgconfig xorg.libXau xorg.libXdmcp xorg.libpthreadstubs
+   xorg.libxcb xorg.pixman ];
+
+  meta = with stdenv.lib; {
+    description = "Port of the default KDE widget theme (Oxygen), to gtk 3";
+    homepage = https://projects.kde.org/projects/playground/artwork/oxygen-gtk;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/acpi/default.nix b/pkgs/os-specific/linux/acpi/default.nix
index 0fc79922515..b815cd778fa 100644
--- a/pkgs/os-specific/linux/acpi/default.nix
+++ b/pkgs/os-specific/linux/acpi/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     homepage = http://sourceforge.net/projects/acpiclient/;
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/os-specific/linux/batman-adv/default.nix b/pkgs/os-specific/linux/batman-adv/default.nix
index fee955bcca2..f7b2a984e40 100644
--- a/pkgs/os-specific/linux/batman-adv/default.nix
+++ b/pkgs/os-specific/linux/batman-adv/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, kernel }:
 
-let base = "batman-adv-2013.4.0"; in
+let base = "batman-adv-2014.3.0"; in
 
 stdenv.mkDerivation rec {
   name = "${base}-${kernel.version}";
 
   src = fetchurl {
     url = "http://downloads.open-mesh.org/batman/releases/${base}/${base}.tar.gz";
-    sha1 = "870a85df5410b3b5623be69e75297e642c91a7d4";
+    sha1 = "wh3if8v4wfwskvzwqsjsyr929krzfmsx";
   };
 
   preBuild = ''
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index d6513f7ebb5..036ece4627b 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     homepage = http://fuse.sourceforge.net/;
     description = "Kernel module and library that allows filesystems to be implemented in user space";
     platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/os-specific/linux/gradm/default.nix b/pkgs/os-specific/linux/gradm/default.nix
index 87e8fa5b074..404d785146c 100644
--- a/pkgs/os-specific/linux/gradm/default.nix
+++ b/pkgs/os-specific/linux/gradm/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name    = "gradm-${version}";
-  version = "3.0-201405281853";
+  version = "3.0-201408301734";
 
   src  = fetchurl {
     url    = "http://grsecurity.net/stable/${name}.tar.gz";
-    sha256 = "0yjmbjhm71cik5j8h2prgk40wki3sflwbf2zqmc4pwaqlvis9s2f";
+    sha256 = "171i1jyw82dnv2fi4dnh40dw1wa5hrllnpjf181cafnzxjpyb45i";
   };
 
   buildInputs = [ gcc coreutils findutils binutils pam flex bison bash ];
diff --git a/pkgs/os-specific/linux/iw/default.nix b/pkgs/os-specific/linux/iw/default.nix
index ab01231f334..a3b2f23c8c7 100644
--- a/pkgs/os-specific/linux/iw/default.nix
+++ b/pkgs/os-specific/linux/iw/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libnl, pkgconfig}:
 
 stdenv.mkDerivation rec {
-  name = "iw-3.14";
+  name = "iw-3.15";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/iw/${name}.tar.xz";
-    sha256 = "16fr13cl02702d9yjqlgvnxvpv0w0mqn0acba39iwn2lln5b4747";
+    sha256 = "12jby9nv5nypadgdksbqw0y2kfm3j47zw7a3rwmy56d7rs90lp5x";
   };
 
   buildInputs = [ libnl pkgconfig ];
diff --git a/pkgs/os-specific/linux/kernel/linux-3.10.nix b/pkgs/os-specific/linux/kernel/linux-3.10.nix
index 8fa684e407c..e888afc2c6d 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.10.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.10.53";
+  version = "3.10.54";
   extraMeta.branch = "3.10";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "1sxa6ppgpy9fgj4lyj8d53y309v6r5nmifbrcf5pqs6l944frhq6";
+    sha256 = "0rhwdkw0ia8bpi237006y0m84vfvqz38l0z2dvqy2shg8ywf24ya";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix
index c67c531667a..2c448cfb20d 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.12.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.12.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.12.27";
+  version = "3.12.28";
   extraMeta.branch = "3.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0c8psz9k6k413b48dphclqs6wkh9wiwf5nslykg27afdqd6v4ycc";
+    sha256 = "1b9lnnmsamlgr1712q9qj258p0d4lxn39hjd09baaqki69jmfzdy";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.14.nix b/pkgs/os-specific/linux/kernel/linux-3.14.nix
index 74d83345ec1..5dc570f1998 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.14.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.14.17";
+  version = "3.14.18";
   extraMeta.branch = "3.14";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "1dl9skwd1xvkdm9gblidcawkck6x5slb41gbx0i8jxby2k6w6i5n";
+    sha256 = "0i0b35qmpxvfkflf079dhfx3yfjbh0dgqs7qzxrhs9sw4jf73z75";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.16.nix b/pkgs/os-specific/linux/kernel/linux-3.16.nix
index be2e68ab81e..c41e1bce107 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.16.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.16.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.16.1";
+  version = "3.16.2";
   extraMeta.branch = "3.16";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0wbxqlmk7w9047ir51dsz6vi7ww0hpycgrb43mk2a189xaldsdxy";
+    sha256 = "16l5l099qv367d3gknpbycgrakli2mdklvgaifsn3hcrrjs44ybf";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index c91b8ddfb44..d0794b23421 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -60,17 +60,17 @@ rec {
   };
 
   grsecurity_stable = grsecPatch
-    { kversion  = "3.14.17";
-      revision  = "201408260041";
+    { kversion  = "3.14.18";
+      revision  = "201409060013";
       branch    = "stable";
-      sha256    = "1brcfxbdd5f29vci3bj2dk3878z24ncrjw268j4i1n8ms65jqda0";
+      sha256    = "0dlri42z8rihhib0ahagia8z2ga4di1mc8y63n3s7ja0f2bvzy19";
     };
 
   grsecurity_unstable = grsecPatch
-    { kversion  = "3.15.10";
-      revision  = "201408212335";
+    { kversion  = "3.16.2";
+      revision  = "201409060014";
       branch    = "test";
-      sha256    = "0ynnci7jms5a1acn8cpdw4w2j4jz5xai1da5w1l5r65909kwmx0k";
+      sha256    = "1fnvmzfjpx74g5r1nilnynjyp18s5nnyw78znxdn33xxr5kdfzr4";
     };
 
   grsec_fix_path =
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix
index df44cb68d8b..b948dbff2c1 100644
--- a/pkgs/os-specific/linux/klibc/default.nix
+++ b/pkgs/os-specific/linux/klibc/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, kernelHeaders, kernel, perl }:
 
 let
-  version = "2.0.3";
+  version = "2.0.4";
 
   commonMakeFlags = [
     "prefix=$(out)"
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://kernel/linux/libs/klibc/2.0/klibc-${version}.tar.xz";
-    sha256 = "02035f2b230020de569d40605485121e0fe481ed33a93bdb8bf8c6ee2695fffa";
+    sha256 = "7f9a0850586def7cf4faeeb75e5d0f66e613674c524f6e77b0f4d93a26c801cb";
   };
 
   patches = [ ./no-reinstall-kernel-headers.patch ];
diff --git a/pkgs/os-specific/linux/openvswitch/default.nix b/pkgs/os-specific/linux/openvswitch/default.nix
index 6b82cc5f9b6..2e25c0383b7 100644
--- a/pkgs/os-specific/linux/openvswitch/default.nix
+++ b/pkgs/os-specific/linux/openvswitch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, python27, iproute, perl510, kernel ? null}:
+{ stdenv, fetchurl, openssl, python27, iproute, perl, kernel ? null}:
 let
 
   version = "2.1.2";
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   buildInputs = [
     openssl
     python27
-    perl510
+    perl
   ];
   configureFlags = [
     "--localstatedir=/var"
diff --git a/pkgs/os-specific/linux/pam_krb5/default.nix b/pkgs/os-specific/linux/pam_krb5/default.nix
index ad60e63c263..0c182b5baa6 100644
--- a/pkgs/os-specific/linux/pam_krb5/default.nix
+++ b/pkgs/os-specific/linux/pam_krb5/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation {
       pam_krb5 can optionally convert Kerberos 5 credentials to Kerberos IV
       credentials and/or use them to set up AFS tokens for a user's session.
     '';
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 }
diff --git a/pkgs/os-specific/linux/paxctl/default.nix b/pkgs/os-specific/linux/paxctl/default.nix
index 8e70ddd8434..148048f6505 100644
--- a/pkgs/os-specific/linux/paxctl/default.nix
+++ b/pkgs/os-specific/linux/paxctl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "paxctl-${version}";
-  version = "0.8";
+  version = "0.9";
 
   src = fetchurl {
     url = "http://pax.grsecurity.net/${name}.tar.gz";
-    sha256 = "107gmriq5icsk9yni5q949rnjapjkcs0823pw6zra6h1xml2f0mm";
+    sha256 = "0biw882fp1lmgs6kpxznp1v6758r7dg9x8iv5a06k0b82bcdsc53";
   };
 
   preBuild = ''
diff --git a/pkgs/os-specific/linux/s6-linux-utils/default.nix b/pkgs/os-specific/linux/s6-linux-utils/default.nix
new file mode 100644
index 00000000000..0f0967079df
--- /dev/null
+++ b/pkgs/os-specific/linux/s6-linux-utils/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, skalibs }:
+
+let
+
+  version = "1.0.3.1";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-linux-utils-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6-linux-utils/${name}.tar.gz";
+    sha256 = "1s17g03z5hfpiz32g001g5wyamyvn9l36fr2csk3k7r0jkqfnl0d";
+  };
+
+  buildInputs = [ skalibs ];
+
+  sourceRoot = "admin/${name}";
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"           > conf-install-command
+    printf "$out/include"       > conf-install-include
+    printf "$out/lib"           > conf-install-library
+    printf "$out/lib"           > conf-install-library.so
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps"      > import
+    printf "%s" "${skalibs}/include" > path-include
+    printf "%s" "${skalibs}/lib"     > path-library
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6-linux-utils/;
+    description = "A set of minimalistic Linux-specific system utilities.";
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/os-specific/linux/smem/default.nix b/pkgs/os-specific/linux/smem/default.nix
new file mode 100644
index 00000000000..a61a54afc38
--- /dev/null
+++ b/pkgs/os-specific/linux/smem/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, python }:
+
+stdenv.mkDerivation rec {
+  name = "smem-1.4";
+
+  src = fetchurl {
+    url = "http://www.selenic.com/smem/download/${name}.tar.gz";
+    sha256 = "1v31vy23s7szl6vdrllq9zbg58bp36jf5xy3fikjfg6gyiwgia9f";
+  };
+
+  buildInputs = [ python ];
+
+  buildPhase =
+    ''
+      gcc -O2 smemcap.c -o smemcap
+    '';
+
+  installPhase =
+    ''
+      mkdir -p $out/bin
+      cp smem smemcap $out/bin/
+
+      mkdir -p $out/share/man/man8
+      cp smem.8 $out/share/man/man8/
+    '';
+
+  meta = {
+    homepage = http://www.selenic.com/smem/;
+    description = "A memory usage reporting tool that takes shared memory into account";
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/os-specific/linux/systemd/fixes.patch b/pkgs/os-specific/linux/systemd/fixes.patch
index 7410c87e277..72cf0e92bb8 100644
--- a/pkgs/os-specific/linux/systemd/fixes.patch
+++ b/pkgs/os-specific/linux/systemd/fixes.patch
@@ -1,7 +1,25 @@
 diff --git a/Makefile.am b/Makefile.am
-index 3d9e5c1..4d43cb4 100644
+index 3d9e5c1..46487f6 100644
 --- a/Makefile.am
 +++ b/Makefile.am
+@@ -1095,7 +1095,7 @@ BUILT_SOURCES += \
+ 
+ src/shared/errno-list.txt:
+ 	$(AM_V_at)$(MKDIR_P) $(dir $@)
+-	$(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+[0-9]/ { print $$2; }'  > $@
++	$(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }'  > $@
+ 
+ src/shared/errno-from-name.gperf: src/shared/errno-list.txt
+ 	$(AM_V_at)$(MKDIR_P) $(dir $@)
+@@ -1107,7 +1107,7 @@ src/shared/errno-from-name.h: src/shared/errno-from-name.gperf
+ 
+ src/shared/errno-to-name.h: src/shared/errno-list.txt
+ 	$(AM_V_at)$(MKDIR_P) $(dir $@)
+-	$(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@
++	$(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@
+ 
+ src/shared/af-list.txt:
+ 	$(AM_V_at)$(MKDIR_P) $(dir $@)
 @@ -1707,7 +1707,9 @@ dist_tmpfiles_DATA += \
  endif
  
@@ -13,8 +31,42 @@ index 3d9e5c1..4d43cb4 100644
  	systemd-tmpfiles-setup.service
  
  dist_zshcompletion_DATA += \
+@@ -1961,6 +1963,7 @@ systemd_cgls_SOURCES = \
+ 	src/cgls/cgls.c
+ 
+ systemd_cgls_LDADD = \
++	libsystemd-internal.la \
+ 	libsystemd-shared.la
+ 
+ # ------------------------------------------------------------------------------
+diff --git a/TODO b/TODO
+index e2ca1e6..d7efdd5 100644
+--- a/TODO
++++ b/TODO
+@@ -1,4 +1,6 @@
+ Bugfixes:
++* Should systemctl status \* work on all unit types, not just .service?
++
+ * enabling an instance unit creates a pointless link, and
+   the unit will be started with getty@getty.service:
+     $ systemctl enable getty@.service
+diff --git a/rules/42-usb-hid-pm.rules b/rules/42-usb-hid-pm.rules
+index c675b5b..4c300da 100644
+--- a/rules/42-usb-hid-pm.rules
++++ b/rules/42-usb-hid-pm.rules
+@@ -12,10 +12,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!=
+ ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto"
+ ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto"
+ 
+-# Catch-all for Avocent HID devices. Keyed off interface in order to only
+-# trigger on HID class devices.
+-ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{bInterfaceClass}=="03", TEST=="../power/control", ATTR{../power/control}="auto"
+-
+ # Dell DRAC 4
+ ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="2500", TEST=="power/control", ATTR{power/control}="auto"
+ 
 diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
-index db72373..2fc12ca 100644
+index db72373..2875958 100644
 --- a/rules/99-systemd.rules.in
 +++ b/rules/99-systemd.rules.in
 @@ -14,10 +14,6 @@ KERNEL=="vport*", TAG+="systemd"
@@ -28,11 +80,329 @@ index db72373..2fc12ca 100644
  # Ignore raid devices that are not yet assembled and started
  SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0"
  SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0"
+@@ -43,7 +39,7 @@ SUBSYSTEM=="net", KERNEL!="lo", TAG+="systemd", ENV{SYSTEMD_ALIAS}+="/sys/subsys
+ SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/bluetooth/devices/%k"
+ 
+ SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_WANTS}+="bluetooth.target"
+-ENV{ID_SMARTCARD_READER}=="*?", TAG+="systemd", ENV{SYSTEMD_WANTS}+="smartcard.target"
++ENV{ID_SMARTCARD_READER}=="?*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="smartcard.target"
+ SUBSYSTEM=="sound", KERNEL=="card*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sound.target"
+ 
+ SUBSYSTEM=="printer", TAG+="systemd", ENV{SYSTEMD_WANTS}+="printer.target"
+diff --git a/src/cgls/cgls.c b/src/cgls/cgls.c
+index b8e275d..1840594 100644
+--- a/src/cgls/cgls.c
++++ b/src/cgls/cgls.c
+@@ -35,6 +35,10 @@
+ #include "build.h"
+ #include "output-mode.h"
+ #include "fileio.h"
++#include "sd-bus.h"
++#include "bus-util.h"
++#include "bus-error.h"
++#include "unit-name.h"
+ 
+ static bool arg_no_pager = false;
+ static bool arg_kernel_threads = false;
+@@ -127,6 +131,7 @@ int main(int argc, char *argv[]) {
+         int r = 0, retval = EXIT_FAILURE;
+         int output_flags;
+         char _cleanup_free_ *root = NULL;
++        _cleanup_bus_unref_ sd_bus *bus = NULL;
+ 
+         log_parse_environment();
+         log_open();
+@@ -151,6 +156,12 @@ int main(int argc, char *argv[]) {
+                 arg_all * OUTPUT_SHOW_ALL |
+                 (arg_full > 0) * OUTPUT_FULL_WIDTH;
+ 
++        r = bus_open_transport(BUS_TRANSPORT_LOCAL, NULL, false, &bus);
++        if (r < 0) {
++                log_error("Failed to create bus connection: %s", strerror(-r));
++                goto finish;
++        }
++
+         if (optind < argc) {
+                 int i;
+ 
+@@ -189,8 +200,52 @@ int main(int argc, char *argv[]) {
+                 } else {
+                         if (arg_machine) {
+                                 char *m;
++                                const char *cgroup;
++                                _cleanup_free_ char *scope = NULL;
++                                _cleanup_free_ char *path = NULL;
++                                _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
++                                _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
++
+                                 m = strappenda("/run/systemd/machines/", arg_machine);
+-                                r = parse_env_file(m, NEWLINE, "CGROUP", &root, NULL);
++                                r = parse_env_file(m, NEWLINE, "SCOPE", &scope, NULL);
++                                if (r < 0) {
++                                        log_error("Failed to get machine path: %s", strerror(-r));
++                                        goto finish;
++                                }
++
++                                path = unit_dbus_path_from_name(scope);
++                                if (!path) {
++                                        r = log_oom();
++                                        goto finish;
++                                }
++
++                                r = sd_bus_get_property(
++                                                bus,
++                                                "org.freedesktop.systemd1",
++                                                path,
++                                                "org.freedesktop.systemd1.Scope",
++                                                "ControlGroup",
++                                                &error,
++                                                &reply,
++                                                "s");
++
++                                if (r < 0) {
++                                        log_error("Failed to query ControlGroup: %s", bus_error_message(&error, -r));
++                                        goto finish;
++                                }
++
++                                r = sd_bus_message_read(reply, "s", &cgroup);
++                                if (r < 0) {
++                                        bus_log_parse_error(r);
++                                        goto finish;
++                                }
++
++                                root = strdup(cgroup);
++                                if (!root) {
++                                        r = log_oom();
++                                        goto finish;
++                                }
++
+                         } else
+                                 r = cg_get_root_path(&root);
+                         if (r < 0) {
+diff --git a/src/core/cgroup.c b/src/core/cgroup.c
+index 3dd4c91..4201e1e 100644
+--- a/src/core/cgroup.c
++++ b/src/core/cgroup.c
+@@ -871,7 +871,7 @@ int manager_setup_cgroup(Manager *m) {
+         safe_close(m->pin_cgroupfs_fd);
+ 
+         m->pin_cgroupfs_fd = open(path, O_RDONLY|O_CLOEXEC|O_DIRECTORY|O_NOCTTY|O_NONBLOCK);
+-        if (r < 0) {
++        if (m->pin_cgroupfs_fd < 0) {
+                 log_error("Failed to open pin file: %m");
+                 return -errno;
+         }
+diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
+index 775825b..5b1c4e3 100644
+--- a/src/core/dbus-cgroup.c
++++ b/src/core/dbus-cgroup.c
+@@ -173,6 +173,7 @@ int bus_cgroup_set_property(
+ 
+                 if (mode != UNIT_CHECK) {
+                         c->cpu_accounting = b;
++                        u->cgroup_realized_mask &= ~CGROUP_CPUACCT;
+                         unit_write_drop_in_private(u, mode, name, b ? "CPUAccounting=yes" : "CPUAccounting=no");
+                 }
+ 
+@@ -192,6 +193,7 @@ int bus_cgroup_set_property(
+ 
+                 if (mode != UNIT_CHECK) {
+                         c->cpu_shares = ul;
++                        u->cgroup_realized_mask &= ~CGROUP_CPU;
+                         unit_write_drop_in_private_format(u, mode, name, "CPUShares=%lu", ul);
+                 }
+ 
+@@ -206,6 +208,7 @@ int bus_cgroup_set_property(
+ 
+                 if (mode != UNIT_CHECK) {
+                         c->blockio_accounting = b;
++                        u->cgroup_realized_mask &= ~CGROUP_BLKIO;
+                         unit_write_drop_in_private(u, mode, name, b ? "BlockIOAccounting=yes" : "BlockIOAccounting=no");
+                 }
+ 
+@@ -225,6 +228,7 @@ int bus_cgroup_set_property(
+ 
+                 if (mode != UNIT_CHECK) {
+                         c->blockio_weight = ul;
++                        u->cgroup_realized_mask &= ~CGROUP_BLKIO;
+                         unit_write_drop_in_private_format(u, mode, name, "BlockIOWeight=%lu", ul);
+                 }
+ 
+@@ -294,6 +298,8 @@ int bus_cgroup_set_property(
+                                                 cgroup_context_free_blockio_device_bandwidth(c, a);
+                         }
+ 
++                        u->cgroup_realized_mask &= ~CGROUP_BLKIO;
++
+                         f = open_memstream(&buf, &size);
+                         if (!f)
+                                 return -ENOMEM;
+@@ -375,6 +381,8 @@ int bus_cgroup_set_property(
+                                         cgroup_context_free_blockio_device_weight(c, c->blockio_device_weights);
+                         }
+ 
++                        u->cgroup_realized_mask &= ~CGROUP_BLKIO;
++
+                         f = open_memstream(&buf, &size);
+                         if (!f)
+                                 return -ENOMEM;
+@@ -398,6 +406,7 @@ int bus_cgroup_set_property(
+ 
+                 if (mode != UNIT_CHECK) {
+                         c->memory_accounting = b;
++                        u->cgroup_realized_mask &= ~CGROUP_MEMORY;
+                         unit_write_drop_in_private(u, mode, name, b ? "MemoryAccounting=yes" : "MemoryAccounting=no");
+                 }
+ 
+@@ -412,6 +421,7 @@ int bus_cgroup_set_property(
+ 
+                 if (mode != UNIT_CHECK) {
+                         c->memory_limit = limit;
++                        u->cgroup_realized_mask &= ~CGROUP_MEMORY;
+                         unit_write_drop_in_private_format(u, mode, name, "%s=%" PRIu64, name, limit);
+                 }
+ 
+@@ -433,6 +443,7 @@ int bus_cgroup_set_property(
+                         char *buf;
+ 
+                         c->device_policy = p;
++                        u->cgroup_realized_mask &= ~CGROUP_DEVICE;
+ 
+                         buf = strappenda("DevicePolicy=", policy);
+                         unit_write_drop_in_private(u, mode, name, buf);
+@@ -511,6 +522,8 @@ int bus_cgroup_set_property(
+                                         cgroup_context_free_device_allow(c, c->device_allow);
+                         }
+ 
++                        u->cgroup_realized_mask &= ~CGROUP_DEVICE;
++
+                         f = open_memstream(&buf, &size);
+                         if (!f)
+                                 return -ENOMEM;
+diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
+index 13b3d0d..37d4154 100644
+--- a/src/core/dbus-execute.c
++++ b/src/core/dbus-execute.c
+@@ -842,7 +842,7 @@ int bus_exec_context_set_transient_property(
+                         strv_free(c->environment);
+                         c->environment = e;
+ 
+-                        joined = strv_join(c->environment, " ");
++                        joined = strv_join_quoted(c->environment);
+                         if (!joined)
+                                 return -ENOMEM;
+ 
+diff --git a/src/core/job.c b/src/core/job.c
+index 35a9de6..dc4f441 100644
+--- a/src/core/job.c
++++ b/src/core/job.c
+@@ -1060,6 +1060,9 @@ int job_coldplug(Job *j) {
+         if (r < 0)
+                 return r;
+ 
++        if (j->state == JOB_WAITING)
++                job_add_to_run_queue(j);
++
+         if (j->begin_usec == 0 || j->unit->job_timeout == 0)
+                 return 0;
+ 
+diff --git a/src/core/killall.c b/src/core/killall.c
+index 57ed41c..eab48f7 100644
+--- a/src/core/killall.c
++++ b/src/core/killall.c
+@@ -168,7 +168,7 @@ static int killall(int sig, Set *pids, bool send_sighup) {
+                         continue;
+ 
+                 if (sig == SIGKILL) {
+-                        _cleanup_free_ char *s;
++                        _cleanup_free_ char *s = NULL;
+ 
+                         get_process_comm(pid, &s);
+                         log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s));
+diff --git a/src/core/machine-id-setup.c b/src/core/machine-id-setup.c
+index d459afe..2a58e48 100644
+--- a/src/core/machine-id-setup.c
++++ b/src/core/machine-id-setup.c
+@@ -93,32 +93,9 @@ static int generate(char id[34], const char *root) {
+                 }
+         }
+ 
+-        /* If that didn't work, see if we are running in qemu/kvm and a
+-         * machine ID was passed in via -uuid on the qemu/kvm command
+-         * line */
+-
+-        r = detect_vm(&vm_id);
+-        if (r > 0 && streq(vm_id, "kvm")) {
+-                char uuid[37];
+-
+-                fd = open("/sys/class/dmi/id/product_uuid", O_RDONLY|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW);
+-                if (fd >= 0) {
+-                        k = loop_read(fd, uuid, 36, false);
+-                        safe_close(fd);
+-
+-                        if (k >= 36) {
+-                                r = shorten_uuid(id, uuid);
+-                                if (r >= 0) {
+-                                        log_info("Initializing machine ID from KVM UUID.");
+-                                        return 0;
+-                                }
+-                        }
+-                }
+-        }
+-
+-        /* If that didn't work either, see if we are running in a
+-         * container, and a machine ID was passed in via
+-         * $container_uuid the way libvirt/LXC does it */
++        /* If that didn't work, see if we are running in a container,
++         * and a machine ID was passed in via $container_uuid the way
++         * libvirt/LXC does it */
+         r = detect_container(NULL);
+         if (r > 0) {
+                 _cleanup_free_ char *e = NULL;
+@@ -133,6 +110,30 @@ static int generate(char id[34], const char *root) {
+                                 }
+                         }
+                 }
++
++        } else {
++                /* If we are not running in a container, see if we are
++                 * running in qemu/kvm and a machine ID was passed in
++                 * via -uuid on the qemu/kvm command line */
++
++                r = detect_vm(&vm_id);
++                if (r > 0 && streq(vm_id, "kvm")) {
++                        char uuid[37];
++
++                        fd = open("/sys/class/dmi/id/product_uuid", O_RDONLY|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW);
++                        if (fd >= 0) {
++                                k = loop_read(fd, uuid, 36, false);
++                                safe_close(fd);
++
++                                if (k >= 36) {
++                                        r = shorten_uuid(id, uuid);
++                                        if (r >= 0) {
++                                                log_info("Initializing machine ID from KVM UUID.");
++                                                return 0;
++                                        }
++                                }
++                        }
++                }
+         }
+ 
+         /* If that didn't work, generate a random machine id */
 diff --git a/src/core/main.c b/src/core/main.c
-index 41605ee..8517369 100644
+index 41605ee..c65701d 100644
 --- a/src/core/main.c
 +++ b/src/core/main.c
-@@ -1883,7 +1883,7 @@ finish:
+@@ -1840,6 +1840,7 @@ finish:
+         if (reexecute) {
+                 const char **args;
+                 unsigned i, args_size;
++                sigset_t ss;
+ 
+                 /* Close and disarm the watchdog, so that the new
+                  * instance can reinitialize it, but doesn't get
+@@ -1883,7 +1884,7 @@ finish:
                          char_array_0(sfd);
  
                          i = 0;
@@ -41,6 +411,83 @@ index 41605ee..8517369 100644
                          if (switch_root_dir)
                                  args[i++] = "--switched-root";
                          args[i++] = arg_running_as == SYSTEMD_SYSTEM ? "--system" : "--user";
+@@ -1923,6 +1924,13 @@ finish:
+                 args[i++] = NULL;
+                 assert(i <= args_size);
+ 
++                /* reenable any blocked signals, especially important
++                 * if we switch from initial ramdisk to init=... */
++                reset_all_signal_handlers();
++
++                assert_se(sigemptyset(&ss) == 0);
++                assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0);
++
+                 if (switch_root_init) {
+                         args[0] = switch_root_init;
+                         execv(args[0], (char* const*) args);
+diff --git a/src/core/manager.c b/src/core/manager.c
+index 224106c..7342095 100644
+--- a/src/core/manager.c
++++ b/src/core/manager.c
+@@ -422,7 +422,7 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) {
+                 return -ENOMEM;
+ 
+ #ifdef ENABLE_EFI
+-        if (detect_container(NULL) <= 0)
++        if (running_as == SYSTEMD_SYSTEM && detect_container(NULL) <= 0)
+                 boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp);
+ #endif
+ 
+@@ -2129,9 +2129,6 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) {
+                 if (u->id != t)
+                         continue;
+ 
+-                if (!unit_can_serialize(u))
+-                        continue;
+-
+                 /* Start marker */
+                 fputs(u->id, f);
+                 fputc('\n', f);
+diff --git a/src/core/namespace.c b/src/core/namespace.c
+index 9f15211..e41cf5b 100644
+--- a/src/core/namespace.c
++++ b/src/core/namespace.c
+@@ -42,6 +42,7 @@
+ #include "mkdir.h"
+ #include "dev-setup.h"
+ #include "def.h"
++#include "label.h"
+ 
+ typedef enum MountMode {
+         /* This is ordered by priority! */
+@@ -68,6 +69,7 @@ static int append_mounts(BindMount **p, char **strv, MountMode mode) {
+         STRV_FOREACH(i, strv) {
+ 
+                 (*p)->ignore = false;
++                (*p)->done = false;
+ 
+                 if ((mode == INACCESSIBLE || mode == READONLY || mode == READWRITE) && (*i)[0] == '-') {
+                         (*p)->ignore = true;
+@@ -217,7 +219,10 @@ static int mount_dev(BindMount *m) {
+                         goto fail;
+                 }
+ 
++                label_context_set(d, st.st_mode);
+                 r = mknod(dn, st.st_mode, st.st_rdev);
++                label_context_clear();
++
+                 if (r < 0) {
+                         r = -errno;
+                         goto fail;
+@@ -350,7 +355,7 @@ int setup_namespace(
+                 private_dev;
+ 
+         if (n > 0) {
+-                m = mounts = (BindMount *) alloca(n * sizeof(BindMount));
++                m = mounts = (BindMount *) alloca0(n * sizeof(BindMount));
+                 r = append_mounts(&m, read_write_dirs, READWRITE);
+                 if (r < 0)
+                         return r;
 diff --git a/src/core/service.c b/src/core/service.c
 index ae3695a..6b3aa45 100644
 --- a/src/core/service.c
@@ -58,7 +505,7 @@ index ae3695a..6b3aa45 100644
                  log_error_unit(UNIT(s)->id, "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id);
                  return -EINVAL;
 diff --git a/src/core/socket.c b/src/core/socket.c
-index 7c18a2b..eba67d5 100644
+index 7c18a2b..1a560a6 100644
 --- a/src/core/socket.c
 +++ b/src/core/socket.c
 @@ -663,16 +663,25 @@ static int instance_from_socket(int fd, unsigned nr, char **instance) {
@@ -96,6 +543,115 @@ index 7c18a2b..eba67d5 100644
                  break;
          }
  
+@@ -1242,6 +1251,8 @@ static int socket_spawn(Socket *s, ExecCommand *c, pid_t *_pid) {
+                        NULL,
+                        s->exec_runtime,
+                        &pid);
++        if (r < 0)
++                goto fail;
+ 
+         strv_free(argv);
+         if (r < 0)
+@@ -1497,6 +1508,12 @@ static void socket_enter_running(Socket *s, int cfd) {
+                         }
+ 
+                 if (!pending) {
++                        if (!UNIT_ISSET(s->service)) {
++                                log_error_unit(UNIT(s)->id, "%s: service to activate vanished, refusing activation.", UNIT(s)->id);
++                                r = -ENOENT;
++                                goto fail;
++                        }
++
+                         r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT_DEREF(s->service), JOB_REPLACE, true, &error, NULL);
+                         if (r < 0)
+                                 goto fail;
+diff --git a/src/core/timer.c b/src/core/timer.c
+index 6c85304..720b8af 100644
+--- a/src/core/timer.c
++++ b/src/core/timer.c
+@@ -111,6 +111,23 @@ static int timer_add_default_dependencies(Timer *t) {
+         return unit_add_two_dependencies_by_name(UNIT(t), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
+ }
+ 
++static void update_stampfile(Timer *t, usec_t timestamp) {
++        _cleanup_close_ int fd = -1;
++
++        mkdir_parents_label(t->stamp_path, 0755);
++
++        /* Update the file atime + mtime, if we can */
++        fd = open(t->stamp_path, O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0644);
++        if (fd >= 0) {
++                struct timespec ts[2];
++
++                timespec_store(&ts[0], timestamp);
++                ts[1] = ts[0];
++
++                futimens(fd, ts);
++        }
++}
++
+ static int timer_setup_persistent(Timer *t) {
+         int r;
+ 
+@@ -131,7 +148,7 @@ static int timer_setup_persistent(Timer *t) {
+ 
+                 e = getenv("XDG_DATA_HOME");
+                 if (e)
+-                        t->stamp_path = strjoin(e, "/systemd/timers/", UNIT(t)->id, NULL);
++                        t->stamp_path = strjoin(e, "/systemd/timers/stamp-", UNIT(t)->id, NULL);
+                 else {
+ 
+                         _cleanup_free_ char *h = NULL;
+@@ -496,22 +513,8 @@ static void timer_enter_running(Timer *t) {
+ 
+         dual_timestamp_get(&t->last_trigger);
+ 
+-        if (t->stamp_path) {
+-                _cleanup_close_ int fd = -1;
+-
+-                mkdir_parents_label(t->stamp_path, 0755);
+-
+-                /* Update the file atime + mtime, if we can */
+-                fd = open(t->stamp_path, O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0644);
+-                if (fd >= 0) {
+-                        struct timespec ts[2];
+-
+-                        timespec_store(&ts[0], t->last_trigger.realtime);
+-                        ts[1] = ts[0];
+-
+-                        futimens(fd, ts);
+-                }
+-        }
++        if (t->stamp_path)
++                update_stampfile(t, t->last_trigger.realtime);
+ 
+         timer_set_state(t, TIMER_RUNNING);
+         return;
+@@ -539,6 +542,11 @@ static int timer_start(Unit *u) {
+ 
+                 if (stat(t->stamp_path, &st) >= 0)
+                         t->last_trigger.realtime = timespec_load(&st.st_atim);
++                else if (errno == ENOENT)
++                        /* The timer has never run before,
++                         * make sure a stamp file exists.
++                         */
++                        update_stampfile(t, now(CLOCK_REALTIME));
+         }
+ 
+         t->result = TIMER_SUCCESS;
+diff --git a/src/core/transaction.c b/src/core/transaction.c
+index d00f427..2befc32 100644
+--- a/src/core/transaction.c
++++ b/src/core/transaction.c
+@@ -378,7 +378,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
+                                       "Found dependency on %s/%s",
+                                       k->unit->id, job_type_to_string(k->type));
+ 
+-                        if (!delete &&
++                        if (!delete && hashmap_get(tr->jobs, k->unit) &&
+                             !unit_matters_to_anchor(k->unit, k)) {
+                                 /* Ok, we can drop this one, so let's
+                                  * do so. */
 diff --git a/src/core/umount.c b/src/core/umount.c
 index d1258f0..0311812 100644
 --- a/src/core/umount.c
@@ -109,6 +665,195 @@ index d1258f0..0311812 100644
  #ifndef HAVE_SPLIT_USR
                      || path_equal(m->path, "/usr")
  #endif
+diff --git a/src/core/unit.c b/src/core/unit.c
+index 153b79b..ed52694 100644
+--- a/src/core/unit.c
++++ b/src/core/unit.c
+@@ -2287,25 +2287,25 @@ bool unit_can_serialize(Unit *u) {
+ }
+ 
+ int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs) {
+-        ExecRuntime *rt;
+         int r;
+ 
+         assert(u);
+         assert(f);
+         assert(fds);
+ 
+-        if (!unit_can_serialize(u))
+-                return 0;
+-
+-        r = UNIT_VTABLE(u)->serialize(u, f, fds);
+-        if (r < 0)
+-                return r;
++        if (unit_can_serialize(u)) {
++                ExecRuntime *rt;
+ 
+-        rt = unit_get_exec_runtime(u);
+-        if (rt) {
+-                r = exec_runtime_serialize(rt, u, f, fds);
++                r = UNIT_VTABLE(u)->serialize(u, f, fds);
+                 if (r < 0)
+                         return r;
++
++                rt = unit_get_exec_runtime(u);
++                if (rt) {
++                        r = exec_runtime_serialize(rt, u, f, fds);
++                        if (r < 0)
++                                return r;
++                }
+         }
+ 
+         dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp);
+@@ -2367,17 +2367,14 @@ void unit_serialize_item(Unit *u, FILE *f, const char *key, const char *value) {
+ }
+ 
+ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) {
+-        size_t offset;
+         ExecRuntime **rt = NULL;
++        size_t offset;
+         int r;
+ 
+         assert(u);
+         assert(f);
+         assert(fds);
+ 
+-        if (!unit_can_serialize(u))
+-                return 0;
+-
+         offset = UNIT_VTABLE(u)->exec_runtime_offset;
+         if (offset > 0)
+                 rt = (ExecRuntime**) ((uint8_t*) u + offset);
+@@ -2487,24 +2484,34 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) {
+                         if (!s)
+                                 return -ENOMEM;
+ 
+-                        free(u->cgroup_path);
+-                        u->cgroup_path = s;
++                        if (u->cgroup_path) {
++                                void *p;
+ 
++                                p = hashmap_remove(u->manager->cgroup_unit, u->cgroup_path);
++                                log_info("Removing cgroup_path %s from hashmap (%p)",
++                                         u->cgroup_path, p);
++                                free(u->cgroup_path);
++                        }
++
++                        u->cgroup_path = s;
+                         assert(hashmap_put(u->manager->cgroup_unit, s, u) == 1);
++
+                         continue;
+                 }
+ 
+-                if (rt) {
+-                        r = exec_runtime_deserialize_item(rt, u, l, v, fds);
++                if (unit_can_serialize(u)) {
++                        if (rt) {
++                                r = exec_runtime_deserialize_item(rt, u, l, v, fds);
++                                if (r < 0)
++                                        return r;
++                                if (r > 0)
++                                        continue;
++                        }
++
++                        r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds);
+                         if (r < 0)
+                                 return r;
+-                        if (r > 0)
+-                                continue;
+                 }
+-
+-                r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds);
+-                if (r < 0)
+-                        return r;
+         }
+ }
+ 
+diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
+index 75d56dd..be8fb2f 100644
+--- a/src/cryptsetup/cryptsetup-generator.c
++++ b/src/cryptsetup/cryptsetup-generator.c
+@@ -29,6 +29,7 @@
+ #include "mkdir.h"
+ #include "strv.h"
+ #include "fileio.h"
++#include "path-util.h"
+ 
+ static const char *arg_dest = "/tmp";
+ static bool arg_enabled = true;
+@@ -144,16 +145,19 @@ static int create_disk(
+                         if (!uu)
+                                 return log_oom();
+ 
+-                        if (is_device_path(uu)) {
+-                                _cleanup_free_ char *dd;
++                        if (!path_equal(uu, "/dev/null")) {
+ 
+-                                dd = unit_name_from_path(uu, ".device");
+-                                if (!dd)
+-                                        return log_oom();
++                                if (is_device_path(uu)) {
++                                        _cleanup_free_ char *dd;
+ 
+-                                fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
+-                        } else
+-                                fprintf(f, "RequiresMountsFor=%s\n", password);
++                                        dd = unit_name_from_path(uu, ".device");
++                                        if (!dd)
++                                                return log_oom();
++
++                                        fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
++                                } else
++                                        fprintf(f, "RequiresMountsFor=%s\n", password);
++                        }
+                 }
+         }
+ 
+@@ -287,7 +291,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value) {
+         } else if (STR_IN_SET(key, "luks.key", "rd.luks.key") && value) {
+ 
+                 free(arg_keyfile);
+-                arg_keyfile = strdup(key);
++                arg_keyfile = strdup(value);
+                 if (!arg_keyfile)
+                         return log_oom();
+ 
+diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c
+index 9b9074c..ad6c76c 100644
+--- a/src/cryptsetup/cryptsetup.c
++++ b/src/cryptsetup/cryptsetup.c
+@@ -88,6 +88,13 @@ static int parse_one_option(const char *option) {
+                         return 0;
+                 }
+ 
++                if (arg_key_size % 8) {
++                        log_error("size= not a multiple of 8, ignoring.");
++                        return 0;
++                }
++
++                arg_key_size /= 8;
++
+         } else if (startswith(option, "key-slot=")) {
+ 
+                 arg_type = CRYPT_LUKS1;
+@@ -404,7 +411,7 @@ static int attach_luks_or_plain(struct crypt_device *cd,
+                 /* for CRYPT_PLAIN limit reads
+                  * from keyfile to key length, and
+                  * ignore keyfile-size */
+-                arg_keyfile_size = arg_key_size / 8;
++                arg_keyfile_size = arg_key_size;
+ 
+                 /* In contrast to what the name
+                  * crypt_setup() might suggest this
+@@ -567,7 +574,7 @@ int main(int argc, char *argv[]) {
+                 else
+                         until = 0;
+ 
+-                arg_key_size = (arg_key_size > 0 ? arg_key_size : 256);
++                arg_key_size = (arg_key_size > 0 ? arg_key_size : (256 / 8));
+ 
+                 if (key_file) {
+                         struct stat st;
 diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
 index 18f2aca..2a2b1ea 100644
 --- a/src/fsck/fsck.c
@@ -131,11 +876,715 @@ index 18f2aca..2a2b1ea 100644
          cmdline[i++] = "-a";
          cmdline[i++] = "-T";
          cmdline[i++] = "-l";
+diff --git a/src/getty-generator/getty-generator.c b/src/getty-generator/getty-generator.c
+index 6a4aa2c..700e90a 100644
+--- a/src/getty-generator/getty-generator.c
++++ b/src/getty-generator/getty-generator.c
+@@ -72,7 +72,7 @@ static int add_serial_getty(const char *tty) {
+ 
+         log_debug("Automatically adding serial getty for /dev/%s.", tty);
+ 
+-        n = unit_name_replace_instance("serial-getty@.service", tty);
++        n = unit_name_from_path_instance("serial-getty", tty, ".service");
+         if (!n)
+                 return log_oom();
+ 
+@@ -86,7 +86,7 @@ static int add_container_getty(const char *tty) {
+ 
+         log_debug("Automatically adding container getty for /dev/pts/%s.", tty);
+ 
+-        n = unit_name_replace_instance("container-getty@.service", tty);
++        n = unit_name_from_path_instance("container-getty", tty, ".service");
+         if (!n)
+                 return log_oom();
+ 
+diff --git a/src/journal/catalog.c b/src/journal/catalog.c
+index 3ed0b7e..02dedc4 100644
+--- a/src/journal/catalog.c
++++ b/src/journal/catalog.c
+@@ -103,7 +103,7 @@ static int finish_item(
+                 const char *payload) {
+ 
+         ssize_t offset;
+-        CatalogItem *i;
++        _cleanup_free_ CatalogItem *i = NULL;
+         int r;
+ 
+         assert(h);
+@@ -126,13 +126,14 @@ static int finish_item(
+         i->offset = htole64((uint64_t) offset);
+ 
+         r = hashmap_put(h, i, i);
+-        if (r == EEXIST) {
++        if (r == -EEXIST) {
+                 log_warning("Duplicate entry for " SD_ID128_FORMAT_STR ".%s, ignoring.",
+                             SD_ID128_FORMAT_VAL(id), language ? language : "C");
+-                free(i);
+                 return 0;
+-        }
++        } else if (r < 0)
++                return r;
+ 
++        i = NULL;
+         return 0;
+ }
+ 
+@@ -383,8 +384,8 @@ error:
+ int catalog_update(const char* database, const char* root, const char* const* dirs) {
+         _cleanup_strv_free_ char **files = NULL;
+         char **f;
+-        Hashmap *h;
+         struct strbuf *sb = NULL;
++        _cleanup_hashmap_free_free_ Hashmap *h = NULL;
+         _cleanup_free_ CatalogItem *items = NULL;
+         CatalogItem *i;
+         Iterator j;
+@@ -406,13 +407,17 @@ int catalog_update(const char* database, const char* root, const char* const* di
+         }
+ 
+         STRV_FOREACH(f, files) {
+-                log_debug("reading file '%s'", *f);
+-                catalog_import_file(h, sb, *f);
++                log_debug("Reading file '%s'", *f);
++                r = catalog_import_file(h, sb, *f);
++                if (r < 0) {
++                        log_error("Failed to import file '%s': %s.",
++                                  *f, strerror(-r));
++                        goto finish;
++                }
+         }
+ 
+         if (hashmap_size(h) <= 0) {
+                 log_info("No items in catalog.");
+-                r = 0;
+                 goto finish;
+         } else
+                 log_debug("Found %u items in catalog.", hashmap_size(h));
+@@ -443,11 +448,7 @@ int catalog_update(const char* database, const char* root, const char* const* di
+                 log_debug("%s: wrote %u items, with %zu bytes of strings, %ld total size.",
+                           database, n, sb->len, r);
+ 
+-        r = 0;
+-
+ finish:
+-        if (h)
+-                hashmap_free_free(h);
+         if (sb)
+                 strbuf_cleanup(sb);
+ 
+diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
+index f2f1f35..fd9d2a8 100644
+--- a/src/journal/journal-file.c
++++ b/src/journal/journal-file.c
+@@ -274,12 +274,6 @@ static int journal_file_verify_header(JournalFile *f) {
+             !VALID64(le64toh(f->header->entry_array_offset)))
+                 return -ENODATA;
+ 
+-        if (le64toh(f->header->data_hash_table_offset) < le64toh(f->header->header_size) ||
+-            le64toh(f->header->field_hash_table_offset) < le64toh(f->header->header_size) ||
+-            le64toh(f->header->tail_object_offset) < le64toh(f->header->header_size) ||
+-            le64toh(f->header->entry_array_offset) < le64toh(f->header->header_size))
+-                return -ENODATA;
+-
+         if (f->writable) {
+                 uint8_t state;
+                 sd_id128_t machine_id;
+diff --git a/src/journal/journal-remote-parse.c b/src/journal/journal-remote-parse.c
+index 142de0e..239ff38 100644
+--- a/src/journal/journal-remote-parse.c
++++ b/src/journal/journal-remote-parse.c
+@@ -40,7 +40,7 @@ void source_free(RemoteSource *source) {
+ 
+ static int get_line(RemoteSource *source, char **line, size_t *size) {
+         ssize_t n, remain;
+-        char *c;
++        char *c = NULL;
+         char *newbuf = NULL;
+         size_t newsize = 0;
+ 
+@@ -49,7 +49,9 @@ static int get_line(RemoteSource *source, char **line, size_t *size) {
+         assert(source->filled <= source->size);
+         assert(source->buf == NULL || source->size > 0);
+ 
+-        c = memchr(source->buf, '\n', source->filled);
++        if (source->buf)
++                c = memchr(source->buf, '\n', source->filled);
++
+         if (c != NULL)
+                 goto docopy;
+ 
+diff --git a/src/journal/journald-kmsg.c b/src/journal/journald-kmsg.c
+index 35948ea..48725e4 100644
+--- a/src/journal/journald-kmsg.c
++++ b/src/journal/journald-kmsg.c
+@@ -152,7 +152,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) {
+                 /* Did we lose any? */
+                 if (serial > *s->kernel_seqnum)
+                         server_driver_message(s, SD_MESSAGE_JOURNAL_MISSED, "Missed %"PRIu64" kernel messages",
+-                                              serial - *s->kernel_seqnum - 1);
++                                              serial - *s->kernel_seqnum);
+ 
+                 /* Make sure we never read this one again. Note that
+                  * we always store the next message serial we expect
+diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
+index 6da81e7..b6f8e7e 100644
+--- a/src/journal/journald-server.c
++++ b/src/journal/journald-server.c
+@@ -67,6 +67,7 @@
+ #define DEFAULT_SYNC_INTERVAL_USEC (5*USEC_PER_MINUTE)
+ #define DEFAULT_RATE_LIMIT_INTERVAL (30*USEC_PER_SEC)
+ #define DEFAULT_RATE_LIMIT_BURST 1000
++#define DEFAULT_MAX_FILE_USEC USEC_PER_MONTH
+ 
+ #define RECHECK_AVAILABLE_SPACE_USEC (30*USEC_PER_SEC)
+ 
+@@ -1473,6 +1474,8 @@ int server_init(Server *s) {
+         s->forward_to_syslog = true;
+         s->forward_to_wall = true;
+ 
++        s->max_file_usec = DEFAULT_MAX_FILE_USEC;
++
+         s->max_level_store = LOG_DEBUG;
+         s->max_level_syslog = LOG_DEBUG;
+         s->max_level_kmsg = LOG_NOTICE;
+diff --git a/src/journal/microhttpd-util.c b/src/journal/microhttpd-util.c
+index f693e0f..9a8d5c6 100644
+--- a/src/journal/microhttpd-util.c
++++ b/src/journal/microhttpd-util.c
+@@ -129,7 +129,7 @@ void log_func_gnutls(int level, const char *message) {
+         if (0 <= level && level < (int) ELEMENTSOF(log_level_map))
+                 ourlevel = log_level_map[level];
+         else
+-                level = LOG_DEBUG;
++                ourlevel = LOG_DEBUG;
+ 
+         log_meta(ourlevel, NULL, 0, NULL, "gnutls: %s", message);
+ }
+diff --git a/src/journal/test-catalog.c b/src/journal/test-catalog.c
+index b087a8b..967ab67 100644
+--- a/src/journal/test-catalog.c
++++ b/src/journal/test-catalog.c
+@@ -157,7 +157,8 @@ int main(int argc, char *argv[]) {
+ 
+         setlocale(LC_ALL, "de_DE.UTF-8");
+ 
+-        log_set_max_level(LOG_DEBUG);
++        log_parse_environment();
++        log_open();
+ 
+         test_catalog_file_lang();
+ 
+diff --git a/src/libsystemd/sd-rtnl/rtnl-message.c b/src/libsystemd/sd-rtnl/rtnl-message.c
+index 84a8ffa..e79b318 100644
+--- a/src/libsystemd/sd-rtnl/rtnl-message.c
++++ b/src/libsystemd/sd-rtnl/rtnl-message.c
+@@ -335,24 +335,28 @@ int sd_rtnl_message_link_get_flags(sd_rtnl_message *m, unsigned *flags) {
+ /* If successful the updated message will be correctly aligned, if
+    unsuccessful the old message is untouched. */
+ static int add_rtattr(sd_rtnl_message *m, unsigned short type, const void *data, size_t data_length) {
+-        uint32_t rta_length, message_length;
++        uint32_t rta_length;
++        size_t message_length, padding_length;
+         struct nlmsghdr *new_hdr;
+         struct rtattr *rta;
+         char *padding;
+         unsigned i;
++        int offset;
+ 
+         assert(m);
+         assert(m->hdr);
+         assert(!m->sealed);
+         assert(NLMSG_ALIGN(m->hdr->nlmsg_len) == m->hdr->nlmsg_len);
+-        assert(!data || data_length > 0);
+-        assert(data || m->n_containers < RTNL_CONTAINER_DEPTH);
++        assert(!data || data_length);
++
++        /* get offset of the new attribute */
++        offset = m->hdr->nlmsg_len;
+ 
+         /* get the size of the new rta attribute (with padding at the end) */
+         rta_length = RTA_LENGTH(data_length);
+ 
+         /* get the new message size (with padding at the end) */
+-        message_length = m->hdr->nlmsg_len + RTA_ALIGN(rta_length);
++        message_length = offset + RTA_ALIGN(rta_length);
+ 
+         /* realloc to fit the new attribute */
+         new_hdr = realloc(m->hdr, message_length);
+@@ -361,32 +365,35 @@ static int add_rtattr(sd_rtnl_message *m, unsigned short type, const void *data,
+         m->hdr = new_hdr;
+ 
+         /* get pointer to the attribute we are about to add */
+-        rta = (struct rtattr *) ((uint8_t *) m->hdr + m->hdr->nlmsg_len);
++        rta = (struct rtattr *) ((uint8_t *) m->hdr + offset);
+ 
+         /* if we are inside containers, extend them */
+         for (i = 0; i < m->n_containers; i++)
+-                GET_CONTAINER(m, i)->rta_len += message_length - m->hdr->nlmsg_len;
++                GET_CONTAINER(m, i)->rta_len += message_length - offset;
+ 
+         /* fill in the attribute */
+         rta->rta_type = type;
+         rta->rta_len = rta_length;
+-        if (!data) {
+-                /* this is the start of a new container */
+-                m->container_offsets[m->n_containers ++] = m->hdr->nlmsg_len;
+-        } else {
++        if (data)
+                 /* we don't deal with the case where the user lies about the type
+                  * and gives us too little data (so don't do that)
+-                */
++                 */
+                 padding = mempcpy(RTA_DATA(rta), data, data_length);
+-                /* make sure also the padding at the end of the message is initialized */
+-                memzero(padding,
+-                        (uint8_t *) m->hdr + message_length - (uint8_t *) padding);
++        else {
++                /* if no data was passed, make sure we still initialize the padding
++                   note that we can have data_length > 0 (used by some containers) */
++                padding = RTA_DATA(rta);
++                data_length = 0;
+         }
+ 
++        /* make sure also the padding at the end of the message is initialized */
++        padding_length = (uint8_t*)m->hdr + message_length - (uint8_t*)padding;
++        memzero(padding, padding_length);
++
+         /* update message size */
+         m->hdr->nlmsg_len = message_length;
+ 
+-        return 0;
++        return offset;
+ }
+ 
+ int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, const char *data) {
+@@ -761,22 +768,29 @@ int sd_rtnl_message_open_container(sd_rtnl_message *m, unsigned short type) {
+ 
+         assert_return(m, -EINVAL);
+         assert_return(!m->sealed, -EPERM);
++        assert_return(m->n_containers < RTNL_CONTAINER_DEPTH, -ERANGE);
+ 
+         sd_rtnl_message_get_type(m, &rtm_type);
+ 
++        int r = -ENOTSUP;
++
+         if (rtnl_message_type_is_link(rtm_type)) {
+ 
+                 if ((type == IFLA_LINKINFO && m->n_containers == 0) ||
+                     (type == IFLA_INFO_DATA && m->n_containers == 1 &&
+                      GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO))
+-                        return add_rtattr(m, type, NULL, 0);
++                        r = add_rtattr(m, type, NULL, 0);
+                 else if (type == VETH_INFO_PEER && m->n_containers == 2 &&
+                          GET_CONTAINER(m, 1)->rta_type == IFLA_INFO_DATA &&
+                          GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)
+-                        return add_rtattr(m, type, NULL, sizeof(struct ifinfomsg));
++                        r=  add_rtattr(m, type, NULL, sizeof(struct ifinfomsg));
+         }
+ 
+-        return -ENOTSUP;
++        if (r < 0) return r;
++
++        m->container_offsets[m->n_containers ++] = r;
++
++        return 0;
+ }
+ 
+ int sd_rtnl_message_close_container(sd_rtnl_message *m) {
+diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c
+index ba1b04d..85b1e40 100644
+--- a/src/libudev/libudev-monitor.c
++++ b/src/libudev/libudev-monitor.c
+@@ -108,15 +108,13 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev)
+ 
+ /* we consider udev running when /dev is on devtmpfs */
+ static bool udev_has_devtmpfs(struct udev *udev) {
+-        struct file_handle *h;
++        union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, };
+         int mount_id;
+         _cleanup_fclose_ FILE *f = NULL;
+         char line[LINE_MAX], *e;
+         int r;
+ 
+-        h = alloca(MAX_HANDLE_SZ);
+-        h->handle_bytes = MAX_HANDLE_SZ;
+-        r = name_to_handle_at(AT_FDCWD, "/dev", h, &mount_id, 0);
++        r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0);
+         if (r < 0)
+                 return false;
+ 
+diff --git a/src/login/70-uaccess.rules b/src/login/70-uaccess.rules
+index e1cf897..57f619d 100644
+--- a/src/login/70-uaccess.rules
++++ b/src/login/70-uaccess.rules
+@@ -12,7 +12,7 @@ ENV{MAJOR}=="", GOTO="uaccess_end"
+ SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:060101:*", TAG+="uaccess"
+ 
+ # Digicams with proprietary protocol
+-ENV{ID_GPHOTO2}=="*?", TAG+="uaccess"
++ENV{ID_GPHOTO2}=="?*", TAG+="uaccess"
+ 
+ # SCSI and USB scanners
+ ENV{libsane_matched}=="yes", TAG+="uaccess"
+@@ -49,13 +49,13 @@ SUBSYSTEM=="drm", KERNEL=="card*|renderD*", TAG+="uaccess"
+ SUBSYSTEM=="misc", KERNEL=="kvm", TAG+="uaccess"
+ 
+ # smart-card readers
+-ENV{ID_SMARTCARD_READER}=="*?", TAG+="uaccess"
++ENV{ID_SMARTCARD_READER}=="?*", TAG+="uaccess"
+ 
+ # (USB) authentication devices
+-ENV{ID_SECURITY_TOKEN}=="*?", TAG+="uaccess"
++ENV{ID_SECURITY_TOKEN}=="?*", TAG+="uaccess"
+ 
+ # PDA devices
+-ENV{ID_PDA}=="*?", TAG+="uaccess"
++ENV{ID_PDA}=="?*", TAG+="uaccess"
+ 
+ # Programmable remote control
+ ENV{ID_REMOTE_CONTROL}=="1", TAG+="uaccess"
+@@ -64,10 +64,10 @@ ENV{ID_REMOTE_CONTROL}=="1", TAG+="uaccess"
+ SUBSYSTEM=="input", ENV{ID_INPUT_JOYSTICK}=="?*", TAG+="uaccess"
+ 
+ # color measurement devices
+-ENV{COLOR_MEASUREMENT_DEVICE}=="*?", TAG+="uaccess"
++ENV{COLOR_MEASUREMENT_DEVICE}=="?*", TAG+="uaccess"
+ 
+ # DDC/CI device, usually high-end monitors such as the DreamColor
+-ENV{DDC_DEVICE}=="*?", TAG+="uaccess"
++ENV{DDC_DEVICE}=="?*", TAG+="uaccess"
+ 
+ # media player raw devices (for user-mode drivers, Android SDK, etc.)
+ SUBSYSTEM=="usb", ENV{ID_MEDIA_PLAYER}=="?*", TAG+="uaccess"
+diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c
+index dc86f0f..4bbeb64 100644
+--- a/src/login/logind-acl.c
++++ b/src/login/logind-acl.c
+@@ -279,7 +279,9 @@ int devnode_acl_all(struct udev *udev,
+ 
+                 log_debug("Fixing up ACLs at %s for seat %s", n, seat);
+                 k = devnode_acl(n, flush, del, old_uid, add, new_uid);
+-                if (k < 0)
++                if (k == -ENOENT)
++                        log_debug("Device %s disappeared while setting ACLs", n);
++                else if (k < 0)
+                         r = k;
+         }
+ 
+diff --git a/src/login/logind-action.c b/src/login/logind-action.c
+index 1928f43..d69c7ad 100644
+--- a/src/login/logind-action.c
++++ b/src/login/logind-action.c
+@@ -79,14 +79,12 @@ int manager_handle_action(
+                         return 0;
+                 }
+ 
+-                /* If we have more than one or no displays connected,
+-                 * don't react to lid closing. The no display case we
+-                 * treat like this under the assumption that there is
+-                 * no modern drm driver available. */
++                /* If we have more than one display connected,
++                 * don't react to lid closing. */
+                 n = manager_count_displays(m);
+                 if (n < 0)
+                         log_warning("Display counting failed: %s", strerror(-n));
+-                else if (n != 1) {
++                else if (n > 1) {
+                         log_debug("Ignoring lid switch request, %i displays connected.", n);
+                         return 0;
+                 }
+diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c
+index 3f5efdc..1ee6ced 100644
+--- a/src/login/logind-seat.c
++++ b/src/login/logind-seat.c
+@@ -275,8 +275,13 @@ int seat_switch_to(Seat *s, unsigned int num) {
+         if (!num)
+                 return -EINVAL;
+ 
+-        if (num >= s->position_count || !s->positions[num])
++        if (num >= s->position_count || !s->positions[num]) {
++                /* allow switching to unused VTs to trigger auto-activate */
++                if (seat_has_vts(s) && num < 64)
++                        return chvt(num);
++
+                 return -EINVAL;
++        }
+ 
+         return session_activate(s->positions[num]);
+ }
+diff --git a/src/login/logind-session.c b/src/login/logind-session.c
+index 4ca6b5d..02a780d 100644
+--- a/src/login/logind-session.c
++++ b/src/login/logind-session.c
+@@ -213,7 +213,6 @@ int session_save(Session *s) {
+ 
+         if (s->scope)
+                 fprintf(f, "SCOPE=%s\n", s->scope);
+-
+         if (s->scope_job)
+                 fprintf(f, "SCOPE_JOB=%s\n", s->scope_job);
+ 
+@@ -229,17 +228,54 @@ int session_save(Session *s) {
+         if (s->display)
+                 fprintf(f, "DISPLAY=%s\n", s->display);
+ 
+-        if (s->remote_host)
+-                fprintf(f, "REMOTE_HOST=%s\n", s->remote_host);
++        if (s->remote_host) {
++                _cleanup_free_ char *escaped;
++
++                escaped = cescape(s->remote_host);
++                if (!escaped) {
++                        r = -ENOMEM;
++                        goto finish;
++                }
++
++                fprintf(f, "REMOTE_HOST=%s\n", escaped);
++        }
++
++        if (s->remote_user) {
++                _cleanup_free_ char *escaped;
++
++                escaped = cescape(s->remote_user);
++                if (!escaped) {
++                        r = -ENOMEM;
++                        goto finish;
++                }
++
++                fprintf(f, "REMOTE_USER=%s\n", escaped);
++        }
++
++        if (s->service) {
++                _cleanup_free_ char *escaped;
+ 
+-        if (s->remote_user)
+-                fprintf(f, "REMOTE_USER=%s\n", s->remote_user);
++                escaped = cescape(s->service);
++                if (!escaped) {
++                        r = -ENOMEM;
++                        goto finish;
++                }
++
++                fprintf(f, "SERVICE=%s\n", escaped);
++        }
+ 
+-        if (s->service)
+-                fprintf(f, "SERVICE=%s\n", s->service);
++        if (s->desktop) {
++                _cleanup_free_ char *escaped;
+ 
+-        if (s->desktop)
+-                fprintf(f, "DESKTOP=%s\n", s->desktop);
++
++                escaped = cescape(s->desktop);
++                if (!escaped) {
++                        r = -ENOMEM;
++                        goto finish;
++                }
++
++                fprintf(f, "DESKTOP=%s\n", escaped);
++        }
+ 
+         if (s->seat && seat_has_vts(s->seat))
+                 fprintf(f, "VTNR=%u\n", s->vtnr);
+@@ -972,6 +1008,10 @@ void session_mute_vt(Session *s) {
+         if (vt < 0)
+                 return;
+ 
++        r = fchown(vt, s->user->uid, -1);
++        if (r < 0)
++                goto error;
++
+         r = ioctl(vt, KDSKBMODE, K_OFF);
+         if (r < 0)
+                 goto error;
+@@ -1026,6 +1066,8 @@ void session_restore_vt(Session *s) {
+         mode.mode = VT_AUTO;
+         ioctl(vt, VT_SETMODE, &mode);
+ 
++        fchown(vt, 0, -1);
++
+         s->vtfd = safe_close(s->vtfd);
+ }
+ 
+diff --git a/src/login/org.freedesktop.login1.policy.in b/src/login/org.freedesktop.login1.policy.in
+index b96d32d..b8e90f1 100644
+--- a/src/login/org.freedesktop.login1.policy.in
++++ b/src/login/org.freedesktop.login1.policy.in
+@@ -254,7 +254,7 @@
+                 <defaults>
+                         <allow_any>auth_admin_keep</allow_any>
+                         <allow_inactive>auth_admin_keep</allow_inactive>
+-                        <allow_active>auth_admin_keep</allow_active>
++                        <allow_active>yes</allow_active>
+                 </defaults>
+                 <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.hibernate</annotate>
+         </action>
+diff --git a/src/login/pam-module.c b/src/login/pam-module.c
+index 9873dd5..1259457 100644
+--- a/src/login/pam-module.c
++++ b/src/login/pam-module.c
+@@ -475,7 +475,7 @@ _public_ PAM_EXTERN int pam_sm_open_session(
+         }
+ 
+         if (session_fd >= 0) {
+-                session_fd = dup(session_fd);
++                session_fd = fcntl(session_fd, F_DUPFD_CLOEXEC, 3);
+                 if (session_fd < 0) {
+                         pam_syslog(handle, LOG_ERR, "Failed to dup session fd: %m");
+                         return PAM_SESSION_ERR;
+diff --git a/src/machine/machine.c b/src/machine/machine.c
+index 9a5cc9a..de701ad 100644
+--- a/src/machine/machine.c
++++ b/src/machine/machine.c
+@@ -123,17 +123,42 @@ int machine_save(Machine *m) {
+                 "NAME=%s\n",
+                 m->name);
+ 
+-        if (m->unit)
+-                fprintf(f, "SCOPE=%s\n", m->unit); /* We continue to call this "SCOPE=" because it is internal only, and we want to stay compatible with old files */
++        if (m->unit) {
++                _cleanup_free_ char *escaped;
++
++                escaped = cescape(m->unit);
++                if (!escaped) {
++                        r = -ENOMEM;
++                        goto finish;
++                }
++
++                fprintf(f, "SCOPE=%s\n", escaped); /* We continue to call this "SCOPE=" because it is internal only, and we want to stay compatible with old files */
++        }
+ 
+         if (m->scope_job)
+                 fprintf(f, "SCOPE_JOB=%s\n", m->scope_job);
+ 
+-        if (m->service)
+-                fprintf(f, "SERVICE=%s\n", m->service);
++        if (m->service) {
++                _cleanup_free_ char *escaped;
+ 
+-        if (m->root_directory)
+-                fprintf(f, "ROOT=%s\n", m->root_directory);
++                escaped = cescape(m->service);
++                if (!escaped) {
++                        r = -ENOMEM;
++                        goto finish;
++                }
++                fprintf(f, "SERVICE=%s\n", escaped);
++        }
++
++        if (m->root_directory) {
++                _cleanup_free_ char *escaped;
++
++                escaped = cescape(m->root_directory);
++                if (!escaped) {
++                        r = -ENOMEM;
++                        goto finish;
++                }
++                fprintf(f, "ROOT=%s\n", escaped);
++        }
+ 
+         if (!sd_id128_equal(m->id, SD_ID128_NULL))
+                 fprintf(f, "ID=" SD_ID128_FORMAT_STR "\n", SD_ID128_FORMAT_VAL(m->id));
+@@ -330,16 +355,18 @@ static int machine_stop_scope(Machine *m) {
+         if (!m->unit)
+                 return 0;
+ 
+-        r = manager_stop_unit(m->manager, m->unit, &error, &job);
+-        if (r < 0) {
+-                log_error("Failed to stop machine scope: %s", bus_error_message(&error, r));
+-                return r;
++        if (!m->registered) {
++                r = manager_stop_unit(m->manager, m->unit, &error, &job);
++                if (r < 0) {
++                        log_error("Failed to stop machine scope: %s", bus_error_message(&error, r));
++                        return r;
++                }
+         }
+ 
+         free(m->scope_job);
+         m->scope_job = job;
+ 
+-        return r;
++        return 0;
+ }
+ 
+ int machine_stop(Machine *m) {
+@@ -415,6 +442,8 @@ int machine_kill(Machine *m, KillWho who, int signo) {
+ 
+                 if (kill(m->leader, signo) < 0)
+                         return -errno;
++
++                return 0;
+         }
+ 
+         /* Otherwise make PID 1 do it for us, for the entire cgroup */
+diff --git a/src/machine/machine.h b/src/machine/machine.h
+index f4aefc5..de3536d 100644
+--- a/src/machine/machine.h
++++ b/src/machine/machine.h
+@@ -72,6 +72,7 @@ struct Machine {
+ 
+         bool in_gc_queue:1;
+         bool started:1;
++        bool registered:1;
+ 
+         sd_bus_message *create_message;
+ 
+diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c
+index 9473105..154a335 100644
+--- a/src/machine/machined-dbus.c
++++ b/src/machine/machined-dbus.c
+@@ -241,6 +241,7 @@ static int method_create_or_register_machine(Manager *manager, sd_bus_message *m
+         m->leader = leader;
+         m->class = c;
+         m->id = id;
++        m->registered = true;
+ 
+         if (!isempty(service)) {
+                 m->service = strdup(service);
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 9a9ed9d..9e46e18 100644
+index 9a9ed9d..c3e6d23 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -2667,6 +2667,7 @@ int main(int argc, char *argv[]) {
+@@ -769,6 +769,15 @@ static int setup_resolv_conf(const char *dest) {
+         return 0;
+ }
+ 
++static char* id128_format_as_uuid(sd_id128_t id, char s[37]) {
++
++        snprintf(s, 37,
++                 "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
++                 SD_ID128_FORMAT_VAL(id));
++
++        return s;
++}
++
+ static int setup_boot_id(const char *dest) {
+         _cleanup_free_ char *from = NULL, *to = NULL;
+         sd_id128_t rnd = {};
+@@ -794,10 +803,7 @@ static int setup_boot_id(const char *dest) {
+                 return r;
+         }
+ 
+-        snprintf(as_uuid, sizeof(as_uuid),
+-                 "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+-                 SD_ID128_FORMAT_VAL(rnd));
+-        char_array_0(as_uuid);
++        id128_format_as_uuid(rnd, as_uuid);
+ 
+         r = write_string_file(from, as_uuid);
+         if (r < 0) {
+@@ -2378,7 +2384,7 @@ static int change_uid_gid(char **_home) {
+         _cleanup_fclose_ FILE *f = NULL;
+         _cleanup_close_ int fd = -1;
+         unsigned n_uids = 0;
+-        size_t sz, l;
++        size_t sz = 0, l;
+         uid_t uid;
+         gid_t gid;
+         pid_t pid;
+@@ -2667,6 +2673,7 @@ int main(int argc, char *argv[]) {
                                  goto finish;
                          }
                  } else {
@@ -143,7 +1592,7 @@ index 9a9ed9d..9e46e18 100644
                          const char *p;
  
                          p = strappenda(arg_directory,
-@@ -2676,6 +2677,7 @@ int main(int argc, char *argv[]) {
+@@ -2676,6 +2683,7 @@ int main(int argc, char *argv[]) {
                                  goto finish;
  
                          }
@@ -151,6 +1600,46 @@ index 9a9ed9d..9e46e18 100644
                  }
          } else {
                  char template[] = "/tmp/nspawn-root-XXXXXX";
+@@ -2748,8 +2756,6 @@ int main(int argc, char *argv[]) {
+                 goto finish;
+         }
+ 
+-        sd_notify(0, "READY=1");
+-
+         assert_se(sigemptyset(&mask) == 0);
+         sigset_add_many(&mask, SIGCHLD, SIGWINCH, SIGTERM, SIGINT, -1);
+         assert_se(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
+@@ -2966,7 +2972,9 @@ int main(int argc, char *argv[]) {
+                         }
+ 
+                         if (!sd_id128_equal(arg_uuid, SD_ID128_NULL)) {
+-                                if (asprintf((char**)(envp + n_env++), "container_uuid=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(arg_uuid)) < 0) {
++                                char as_uuid[37];
++
++                                if (asprintf((char**)(envp + n_env++), "container_uuid=%s", id128_format_as_uuid(arg_uuid, as_uuid)) < 0) {
+                                         log_oom();
+                                         goto child_fail;
+                                 }
+@@ -3086,6 +3094,8 @@ int main(int argc, char *argv[]) {
+                 if (r < 0)
+                         goto finish;
+ 
++                sd_notify(0, "READY=1");
++
+                 /* Notify the child that the parent is ready with all
+                  * its setup, and thtat the child can now hand over
+                  * control to the code to run inside the container. */
+@@ -3136,6 +3146,10 @@ int main(int argc, char *argv[]) {
+ 
+                         if (!arg_quiet)
+                                 log_info("Container %s is being rebooted.", arg_machine);
++                        if (getenv("EXIT_ON_REBOOT") != 0) {
++                                r = 10;
++                                break;
++                        }
+                         continue;
+                 } else if (status.si_code == CLD_KILLED ||
+                            status.si_code == CLD_DUMPED) {
 diff --git a/src/nss-myhostname/netlink.c b/src/nss-myhostname/netlink.c
 index d61ecdf..228a3a4 100644
 --- a/src/nss-myhostname/netlink.c
@@ -166,6 +1655,88 @@ index d61ecdf..228a3a4 100644
                  if (ifaddrmsg->ifa_flags & IFA_F_DEPRECATED)
                          continue;
  
+diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c
+index 059b904..9a19a10 100644
+--- a/src/python-systemd/_reader.c
++++ b/src/python-systemd/_reader.c
+@@ -902,7 +902,6 @@ static PyObject* get_catalog(PyObject *self, PyObject *args) {
+         sd_id128_t id;
+         _cleanup_free_ char *msg = NULL;
+ 
+-        assert(!self);
+         assert(args);
+ 
+         if (!PyArg_ParseTuple(args, "z:get_catalog", &id_))
+diff --git a/src/python-systemd/journal.py b/src/python-systemd/journal.py
+index 9c7e004..dd1f229 100644
+--- a/src/python-systemd/journal.py
++++ b/src/python-systemd/journal.py
+@@ -293,7 +293,7 @@ class Reader(_Reader):
+             monotonic = monotonic.totalseconds()
+         monotonic = int(monotonic * 1000000)
+         if isinstance(bootid, _uuid.UUID):
+-            bootid = bootid.get_hex()
++            bootid = bootid.hex
+         return super(Reader, self).seek_monotonic(monotonic, bootid)
+ 
+     def log_level(self, level):
+@@ -314,7 +314,7 @@ class Reader(_Reader):
+         Equivalent to add_match(MESSAGE_ID=`messageid`).
+         """
+         if isinstance(messageid, _uuid.UUID):
+-            messageid = messageid.get_hex()
++            messageid = messageid.hex
+         self.add_match(MESSAGE_ID=messageid)
+ 
+     def this_boot(self, bootid=None):
+@@ -346,7 +346,7 @@ class Reader(_Reader):
+ 
+ def get_catalog(mid):
+     if isinstance(mid, _uuid.UUID):
+-        mid = mid.get_hex()
++        mid = mid.hex
+     return _get_catalog(mid)
+ 
+ def _make_line(field, value):
+diff --git a/src/readahead/readahead-common.c b/src/readahead/readahead-common.c
+index 5ffa88b..49679fc 100644
+--- a/src/readahead/readahead-common.c
++++ b/src/readahead/readahead-common.c
+@@ -75,7 +75,7 @@ int fs_on_ssd(const char *p) {
+         if (major(st.st_dev) == 0) {
+                 _cleanup_fclose_ FILE *f = NULL;
+                 int mount_id;
+-                struct file_handle *h;
++                union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, };
+ 
+                 /* Might be btrfs, which exposes "ssd" as mount flag if it is on ssd.
+                  *
+@@ -83,9 +83,7 @@ int fs_on_ssd(const char *p) {
+                  * and then lookup the mount ID in mountinfo to find
+                  * the mount options. */
+ 
+-                h = alloca(MAX_HANDLE_SZ);
+-                h->handle_bytes = MAX_HANDLE_SZ;
+-                r = name_to_handle_at(AT_FDCWD, p, h, &mount_id, AT_SYMLINK_FOLLOW);
++                r = name_to_handle_at(AT_FDCWD, p, &h.handle, &mount_id, AT_SYMLINK_FOLLOW);
+                 if (r < 0)
+                         return false;
+ 
+diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c
+index d27b1b7..905a2e1 100644
+--- a/src/shared/conf-parser.c
++++ b/src/shared/conf-parser.c
+@@ -336,8 +336,8 @@ int config_parse(const char *unit,
+         if (!f) {
+                 f = ours = fopen(filename, "re");
+                 if (!f) {
+-                        log_error("Failed to open configuration file '%s': %m", filename);
+-                        return -errno;
++                        log_full(errno == ENOENT ? LOG_DEBUG : LOG_ERR, "Failed to open configuration file '%s': %m", filename);
++                        return errno == ENOENT ? 0 : -errno;
+                 }
+         }
+ 
 diff --git a/src/shared/generator.c b/src/shared/generator.c
 index 6110303..e679cb1 100644
 --- a/src/shared/generator.c
@@ -179,10 +1750,359 @@ index 6110303..e679cb1 100644
                  r = access(checker, X_OK);
                  if (r < 0) {
                          log_warning("Checking was requested for %s, but %s cannot be used: %m", what, checker);
+diff --git a/src/shared/install.c b/src/shared/install.c
+index 7409046..4517c9c 100644
+--- a/src/shared/install.c
++++ b/src/shared/install.c
+@@ -560,7 +560,7 @@ int unit_file_mask(
+                 unsigned *n_changes) {
+ 
+         char **i;
+-        _cleanup_free_ char *prefix;
++        _cleanup_free_ char *prefix = NULL;
+         int r;
+ 
+         assert(scope >= 0);
+diff --git a/src/shared/log.c b/src/shared/log.c
+index a4b3b68..890a9fa 100644
+--- a/src/shared/log.c
++++ b/src/shared/log.c
+@@ -878,6 +878,9 @@ void log_parse_environment(void) {
+                         if (l == 5 && startswith(w, "debug")) {
+                                 log_set_max_level(LOG_DEBUG);
+                                 break;
++                        } else if (l == 5 && startswith(w, "quiet")) {
++                                log_set_max_level(LOG_WARNING);
++                                break;
+                         }
+                 }
+         }
+diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
+index 9d14933..b0b66f6 100644
+--- a/src/shared/logs-show.c
++++ b/src/shared/logs-show.c
+@@ -547,7 +547,9 @@ static int output_export(
+                     startswith(data, "_BOOT_ID="))
+                         continue;
+ 
+-                if (!utf8_is_printable(data, length)) {
++                if (utf8_is_printable_newline(data, length, false))
++                        fwrite(data, length, 1, f);
++                else {
+                         const char *c;
+                         uint64_t le64;
+ 
+@@ -562,8 +564,7 @@ static int output_export(
+                         le64 = htole64(length - (c - (const char*) data) - 1);
+                         fwrite(&le64, sizeof(le64), 1, f);
+                         fwrite(c + 1, length - (c - (const char*) data) - 1, 1, f);
+-                } else
+-                        fwrite(data, length, 1, f);
++                }
+ 
+                 fputc('\n', f);
+         }
+diff --git a/src/shared/unit-name.c b/src/shared/unit-name.c
+index 6c167b4..d0e71f2 100644
+--- a/src/shared/unit-name.c
++++ b/src/shared/unit-name.c
+@@ -332,7 +332,7 @@ char *unit_name_path_unescape(const char *f) {
+ }
+ 
+ bool unit_name_is_template(const char *n) {
+-        const char *p;
++        const char *p, *e;
+ 
+         assert(n);
+ 
+@@ -340,11 +340,15 @@ bool unit_name_is_template(const char *n) {
+         if (!p)
+                 return false;
+ 
+-        return p[1] == '.';
++        e = strrchr(p+1, '.');
++        if (!e)
++                return false;
++
++        return e == p + 1;
+ }
+ 
+ bool unit_name_is_instance(const char *n) {
+-        const char *p;
++        const char *p, *e;
+ 
+         assert(n);
+ 
+@@ -352,7 +356,11 @@ bool unit_name_is_instance(const char *n) {
+         if (!p)
+                 return false;
+ 
+-        return p[1] != '.';
++        e = strrchr(p+1, '.');
++        if (!e)
++                return false;
++
++        return e > p + 1;
+ }
+ 
+ char *unit_name_replace_instance(const char *f, const char *i) {
+diff --git a/src/shared/utf8.c b/src/shared/utf8.c
+index 0b524d8..c559c13 100644
+--- a/src/shared/utf8.c
++++ b/src/shared/utf8.c
+@@ -136,7 +136,7 @@ int utf8_encoded_to_unichar(const char *str) {
+         return unichar;
+ }
+ 
+-bool utf8_is_printable(const char* str, size_t length) {
++bool utf8_is_printable_newline(const char* str, size_t length, bool newline) {
+         const uint8_t *p;
+ 
+         assert(str);
+@@ -145,7 +145,8 @@ bool utf8_is_printable(const char* str, size_t length) {
+                 int encoded_len = utf8_encoded_valid_unichar((const char *)p);
+                 int val = utf8_encoded_to_unichar((const char*)p);
+ 
+-                if (encoded_len < 0 || val < 0 || is_unicode_control(val))
++                if (encoded_len < 0 || val < 0 || is_unicode_control(val) ||
++                    (!newline && val == '\n'))
+                         return false;
+ 
+                 length -= encoded_len;
+diff --git a/src/shared/utf8.h b/src/shared/utf8.h
+index c0eb73a..c087995 100644
+--- a/src/shared/utf8.h
++++ b/src/shared/utf8.h
+@@ -31,7 +31,10 @@ const char *utf8_is_valid(const char *s) _pure_;
+ char *ascii_is_valid(const char *s) _pure_;
+ char *utf8_escape_invalid(const char *s);
+ 
+-bool utf8_is_printable(const char* str, size_t length) _pure_;
++bool utf8_is_printable_newline(const char* str, size_t length, bool newline) _pure_;
++_pure_ static inline bool utf8_is_printable(const char* str, size_t length) {
++        return utf8_is_printable_newline(str, length, true);
++}
+ 
+ char *utf16_to_utf8(const void *s, size_t length);
+ 
+diff --git a/src/shared/util.c b/src/shared/util.c
+index ffe6624..2a2b2b2 100644
+--- a/src/shared/util.c
++++ b/src/shared/util.c
+@@ -166,19 +166,19 @@ int close_nointr(int fd) {
+ 
+         assert(fd >= 0);
+         r = close(fd);
+-
+-        /* Just ignore EINTR; a retry loop is the wrong
+-         * thing to do on Linux.
+-         *
+-         * http://lkml.indiana.edu/hypermail/linux/kernel/0509.1/0877.html
+-         * https://bugzilla.gnome.org/show_bug.cgi?id=682819
+-         * http://utcc.utoronto.ca/~cks/space/blog/unix/CloseEINTR
+-         * https://sites.google.com/site/michaelsafyan/software-engineering/checkforeintrwheninvokingclosethinkagain
+-         */
+-        if (_unlikely_(r < 0 && errno == EINTR))
+-                return 0;
+-        else if (r >= 0)
++        if (r >= 0)
+                 return r;
++        else if (errno == EINTR)
++                /*
++                 * Just ignore EINTR; a retry loop is the wrong
++                 * thing to do on Linux.
++                 *
++                 * http://lkml.indiana.edu/hypermail/linux/kernel/0509.1/0877.html
++                 * https://bugzilla.gnome.org/show_bug.cgi?id=682819
++                 * http://utcc.utoronto.ca/~cks/space/blog/unix/CloseEINTR
++                 * https://sites.google.com/site/michaelsafyan/software-engineering/checkforeintrwheninvokingclosethinkagain
++                 */
++                return 0;
+         else
+                 return -errno;
+ }
+@@ -195,7 +195,13 @@ int safe_close(int fd) {
+ 
+         if (fd >= 0) {
+                 PROTECT_ERRNO;
+-                assert_se(close_nointr(fd) == 0);
++
++                /* The kernel might return pretty much any error code
++                 * via close(), but the fd will be closed anyway. The
++                 * only condition we want to check for here is whether
++                 * the fd was invalid at all... */
++
++                assert_se(close_nointr(fd) != -EBADF);
+         }
+ 
+         return -1;
+@@ -1365,7 +1371,7 @@ bool ignore_file(const char *filename) {
+         assert(filename);
+ 
+         if (endswith(filename, "~"))
+-                return false;
++                return true;
+ 
+         return ignore_file_allow_backup(filename);
+ }
+@@ -1495,6 +1501,7 @@ bool fstype_is_network(const char *fstype) {
+         static const char table[] =
+                 "cifs\0"
+                 "smbfs\0"
++                "sshfs\0"
+                 "ncpfs\0"
+                 "ncp\0"
+                 "nfs\0"
+@@ -1581,8 +1588,9 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) {
+                 if (fd_wait_for_event(fileno(f), POLLIN, t) <= 0)
+                         return -ETIMEDOUT;
+ 
++        errno = 0;
+         if (!fgets(line, sizeof(line), f))
+-                return -EIO;
++                return errno ? -errno : -EIO;
+ 
+         truncate_nl(line);
+ 
+@@ -5327,6 +5335,9 @@ bool string_is_safe(const char *p) {
+                 if (*t > 0 && *t < ' ')
+                         return false;
+ 
++                if (*t == 127)
++                        return false;
++
+                 if (strchr("\\\"\'", *t))
+                         return false;
+         }
+@@ -5343,10 +5354,14 @@ bool string_has_cc(const char *p) {
+ 
+         assert(p);
+ 
+-        for (t = p; *t; t++)
++        for (t = p; *t; t++) {
+                 if (*t > 0 && *t < ' ' && *t != '\t')
+                         return true;
+ 
++                if (*t == 127)
++                        return true;
++        }
++
+         return false;
+ }
+ 
+@@ -6391,3 +6406,19 @@ void hexdump(FILE *f, const void *p, size_t s) {
+                 s -= 16;
+         }
+ }
++
++int update_reboot_param_file(const char *param)
++{
++        int r = 0;
++
++        if (param) {
++
++                r = write_string_file(REBOOT_PARAM_FILE, param);
++                if (r < 0)
++                        log_error("Failed to write reboot param to "
++                                  REBOOT_PARAM_FILE": %s", strerror(-r));
++        } else
++                unlink(REBOOT_PARAM_FILE);
++
++        return r;
++}
+diff --git a/src/shared/util.h b/src/shared/util.h
+index 90464c9..122ac91 100644
+--- a/src/shared/util.h
++++ b/src/shared/util.h
+@@ -22,6 +22,7 @@
+ ***/
+ 
+ #include <alloca.h>
++#include <fcntl.h>
+ #include <inttypes.h>
+ #include <time.h>
+ #include <sys/time.h>
+@@ -922,3 +923,10 @@ uint64_t physical_memory(void);
+ char* mount_test_option(const char *haystack, const char *needle);
+ 
+ void hexdump(FILE *f, const void *p, size_t s);
++
++union file_handle_union {
++        struct file_handle handle;
++        char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ];
++};
++
++int update_reboot_param_file(const char *param);
+diff --git a/src/shared/virt.c b/src/shared/virt.c
+index ec2ddcf..f03e790 100644
+--- a/src/shared/virt.c
++++ b/src/shared/virt.c
+@@ -149,7 +149,7 @@ static int detect_vm_dmi(const char **_id) {
+ 
+ /* Returns a short identifier for the various VM implementations */
+ int detect_vm(const char **id) {
+-        _cleanup_free_ char *hvtype = NULL, *cpuinfo_contents = NULL;
++        _cleanup_free_ char *domcap = NULL, *cpuinfo_contents = NULL;
+         static thread_local int cached_found = -1;
+         static thread_local const char *cached_id = NULL;
+         const char *_id = NULL;
+@@ -163,17 +163,37 @@ int detect_vm(const char **id) {
+                 return cached_found;
+         }
+ 
+-        /* Try high-level hypervisor sysfs file first:
++        /* Try xen capabilities file first, if not found try high-level hypervisor sysfs file:
+          *
+-         * https://bugs.freedesktop.org/show_bug.cgi?id=61491 */
+-        r = read_one_line_file("/sys/hypervisor/type", &hvtype);
++         * https://bugs.freedesktop.org/show_bug.cgi?id=77271 */
++        r = read_one_line_file("/proc/xen/capabilities", &domcap);
+         if (r >= 0) {
+-                if (streq(hvtype, "xen")) {
++                char *cap, *i = domcap;
++
++                while ((cap = strsep(&i, ",")))
++                        if (streq(cap, "control_d"))
++                                break;
++
++                if (!i)  {
+                         _id = "xen";
+                         r = 1;
+-                        goto finish;
+                 }
+-        } else if (r != -ENOENT)
++
++                goto finish;
++
++        } else if (r == -ENOENT) {
++                _cleanup_free_ char *hvtype = NULL;
++
++                r = read_one_line_file("/sys/hypervisor/type", &hvtype);
++                if (r >= 0) {
++                        if (streq(hvtype, "xen")) {
++                                _id = "xen";
++                                r = 1;
++                                goto finish;
++                        }
++                } else if (r != -ENOENT)
++                        return r;
++        } else
+                 return r;
+ 
+         /* this will set _id to "other" and return 0 for unknown hypervisors */
 diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
-index 0887bc3..6b502ce 100644
+index 0887bc3..d02ee2b 100644
 --- a/src/systemctl/systemctl.c
 +++ b/src/systemctl/systemctl.c
+@@ -461,7 +461,7 @@ static int output_units_list(const UnitInfo *unit_infos, unsigned c) {
+                 }
+ 
+                 if (circle_len > 0)
+-                        printf("%s%s%s", on_circle, circle ? draw_special_char(DRAW_BLACK_CIRCLE) : "  ", off_circle);
++                        printf("%s%s%s ", on_circle, circle ? draw_special_char(DRAW_BLACK_CIRCLE) : " ", off_circle);
+ 
+                 printf("%s%-*s%s %s%-*s%s %s%-*s %-*s%s %-*s",
+                        on_active, id_len, id, off_active,
 @@ -2561,7 +2561,7 @@ static int start_unit_one(
  
                  log_debug("Adding %s to the set", p);
@@ -192,6 +2112,523 @@ index 0887bc3..6b502ce 100644
                          return log_oom();
          }
  
+@@ -4240,7 +4240,7 @@ static int show_all(
+         _cleanup_free_ UnitInfo *unit_infos = NULL;
+         const UnitInfo *u;
+         unsigned c;
+-        int r;
++        int r, ret = 0;
+ 
+         r = get_unit_list(bus, NULL, NULL, &unit_infos, 0, &reply);
+         if (r < 0)
+@@ -4262,9 +4262,11 @@ static int show_all(
+                 r = show_one(verb, bus, p, show_properties, new_line, ellipsized);
+                 if (r < 0)
+                         return r;
++                else if (r > 0 && ret == 0)
++                        ret = r;
+         }
+ 
+-        return 0;
++        return ret;
+ }
+ 
+ static int show_system_status(sd_bus *bus) {
+@@ -4386,7 +4388,12 @@ static int show(sd_bus *bus, char **args) {
+                                 }
+                         }
+ 
+-                        show_one(args[0], bus, unit, show_properties, &new_line, &ellipsized);
++                        r = show_one(args[0], bus, unit, show_properties,
++                                     &new_line, &ellipsized);
++                        if (r < 0)
++                                return r;
++                        else if (r > 0 && ret == 0)
++                                ret = r;
+                 }
+ 
+                 if (!strv_isempty(patterns)) {
+@@ -4403,7 +4410,12 @@ static int show(sd_bus *bus, char **args) {
+                                 if (!unit)
+                                         return log_oom();
+ 
+-                                show_one(args[0], bus, unit, show_properties, &new_line, &ellipsized);
++                                r = show_one(args[0], bus, unit, show_properties,
++                                             &new_line, &ellipsized);
++                                if (r < 0)
++                                        return r;
++                                else if (r > 0 && ret == 0)
++                                        ret = r;
+                         }
+                 }
+         }
+@@ -5403,15 +5415,15 @@ static int systemctl_help(void) {
+                "                                  otherwise restart if active\n"
+                "  isolate NAME                    Start one unit and stop all others\n"
+                "  kill NAME...                    Send signal to processes of a unit\n"
+-               "  is-active NAME...               Check whether units are active\n"
+-               "  is-failed NAME...               Check whether units are failed\n"
+-               "  status [NAME...|PID...]         Show runtime status of one or more units\n"
+-               "  show [NAME...|JOB...]           Show properties of one or more\n"
++               "  is-active PATTERN...            Check whether units are active\n"
++               "  is-failed PATTERN...            Check whether units are failed\n"
++               "  status [PATTERN...|PID...]      Show runtime status of one or more units\n"
++               "  show [PATTERN...|JOB...]        Show properties of one or more\n"
+                "                                  units/jobs or the manager\n"
+-               "  cat NAME...                     Show files and drop-ins of one or more units\n"
++               "  cat PATTERN...                  Show files and drop-ins of one or more units\n"
+                "  set-property NAME ASSIGNMENT... Sets one or more properties of a unit\n"
+-               "  help NAME...|PID...             Show manual for one or more units\n"
+-               "  reset-failed [NAME...]          Reset failed state for all, one, or more\n"
++               "  help PATTERN...|PID...          Show manual for one or more units\n"
++               "  reset-failed [PATTERN...]       Reset failed state for all, one, or more\n"
+                "                                  units\n"
+                "  list-dependencies [NAME]        Recursively show units which are required\n"
+                "                                  or wanted by this unit or by which this\n"
+@@ -5973,13 +5985,10 @@ static int halt_parse_argv(int argc, char *argv[]) {
+                 }
+         }
+ 
+-        if (arg_action == ACTION_REBOOT && argc == optind + 1) {
+-                r = write_string_file(REBOOT_PARAM_FILE, argv[optind]);
+-                if (r < 0) {
+-                        log_error("Failed to write reboot param to "
+-                                  REBOOT_PARAM_FILE": %s", strerror(-r));
++        if (arg_action == ACTION_REBOOT && (argc == optind || argc == optind + 1)) {
++                r = update_reboot_param_file(argc == optind + 1 ? argv[optind] : NULL);
++                if (r < 0)
+                         return r;
+-                }
+         } else if (optind < argc) {
+                 log_error("Too many arguments.");
+                 return -EINVAL;
+diff --git a/src/test/test-udev.c b/src/test/test-udev.c
+index b064744..b057cc8 100644
+--- a/src/test/test-udev.c
++++ b/src/test/test-udev.c
+@@ -155,9 +155,8 @@ int main(int argc, char *argv[]) {
+                 }
+         }
+ 
+-        err = udev_event_execute_rules(event, rules, &sigmask_orig);
+-        if (err == 0)
+-                udev_event_execute_run(event, NULL);
++        udev_event_execute_rules(event, rules, &sigmask_orig);
++        udev_event_execute_run(event, NULL);
+ out:
+         if (event != NULL && event->fd_signal >= 0)
+                 close(event->fd_signal);
+diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
+index 33e7cbc..04b472d 100644
+--- a/src/tmpfiles/tmpfiles.c
++++ b/src/tmpfiles/tmpfiles.c
+@@ -217,19 +217,16 @@ static bool unix_socket_alive(const char *fn) {
+ }
+ 
+ static int dir_is_mount_point(DIR *d, const char *subdir) {
+-        struct file_handle *h;
++        union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ };
+         int mount_id_parent, mount_id;
+         int r_p, r;
+ 
+-        h = alloca(MAX_HANDLE_SZ);
+-
+-        h->handle_bytes = MAX_HANDLE_SZ;
+-        r_p = name_to_handle_at(dirfd(d), ".", h, &mount_id_parent, 0);
++        r_p = name_to_handle_at(dirfd(d), ".", &h.handle, &mount_id_parent, 0);
+         if (r_p < 0)
+                 r_p = -errno;
+ 
+-        h->handle_bytes = MAX_HANDLE_SZ;
+-        r = name_to_handle_at(dirfd(d), subdir, h, &mount_id, 0);
++        h.handle.handle_bytes = MAX_HANDLE_SZ;
++        r = name_to_handle_at(dirfd(d), subdir, &h.handle, &mount_id, 0);
+         if (r < 0)
+                 r = -errno;
+ 
+diff --git a/src/tty-ask-password-agent/tty-ask-password-agent.c b/src/tty-ask-password-agent/tty-ask-password-agent.c
+index 1d067af..3203474 100644
+--- a/src/tty-ask-password-agent/tty-ask-password-agent.c
++++ b/src/tty-ask-password-agent/tty-ask-password-agent.c
+@@ -432,7 +432,7 @@ static int wall_tty_block(void) {
+ 
+         r = get_ctty_devnr(0, &devnr);
+         if (r < 0)
+-                return -r;
++                return r;
+ 
+         if (asprintf(&p, "/run/systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0)
+                 return -ENOMEM;
+diff --git a/src/udev/accelerometer/accelerometer.c b/src/udev/accelerometer/accelerometer.c
+index 925d38d..32adf27 100644
+--- a/src/udev/accelerometer/accelerometer.c
++++ b/src/udev/accelerometer/accelerometer.c
+@@ -180,7 +180,7 @@ get_prev_orientation(struct udev_device *dev)
+         return string_to_orientation(value);
+ }
+ 
+-#define SET_AXIS(axis, code_) if (ev[i].code == code_) { if (got_##axis == 0) { axis = ev[i].value; got_##axis = true; } }
++#define READ_AXIS(axis, var) { memzero(&abs_info, sizeof(abs_info)); r = ioctl(fd, EVIOCGABS(axis), &abs_info); if (r < 0) return; var = abs_info.value; }
+ 
+ /* accelerometers */
+ static void test_orientation(struct udev *udev,
+@@ -189,10 +189,9 @@ static void test_orientation(struct udev *udev,
+ {
+         OrientationUp old, new;
+         _cleanup_close_ int fd = -1;
+-        struct input_event ev[64];
+-        bool got_syn = false;
+-        bool got_x = false, got_y = false, got_z = false;
++        struct input_absinfo abs_info;
+         int x = 0, y = 0, z = 0;
++        int r;
+         char text[64];
+ 
+         old = get_prev_orientation(dev);
+@@ -201,30 +200,10 @@ static void test_orientation(struct udev *udev,
+         if (fd < 0)
+                 return;
+ 
+-        while (1) {
+-                int i, r;
+-
+-                r = read(fd, ev, sizeof(struct input_event) * 64);
+-
+-                if (r < (int) sizeof(struct input_event))
+-                        return;
+-
+-                for (i = 0; i < r / (int) sizeof(struct input_event); i++) {
+-                        if (got_syn) {
+-                                if (ev[i].type == EV_ABS) {
+-                                        SET_AXIS(x, ABS_X);
+-                                        SET_AXIS(y, ABS_Y);
+-                                        SET_AXIS(z, ABS_Z);
+-                                }
+-                        }
+-                        if (ev[i].type == EV_SYN && ev[i].code == SYN_REPORT)
+-                                got_syn = true;
+-                        if (got_x && got_y && got_z)
+-                                goto read_dev;
+-                }
+-        }
++        READ_AXIS(ABS_X, x);
++        READ_AXIS(ABS_Y, y);
++        READ_AXIS(ABS_Z, z);
+ 
+-read_dev:
+         new = orientation_calc(old, x, y, z);
+         snprintf(text, sizeof(text),
+                  "ID_INPUT_ACCELEROMETER_ORIENTATION=%s", orientation_to_string(new));
+diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
+index 5bb6b02..b31ad80 100644
+--- a/src/udev/net/link-config.c
++++ b/src/udev/net/link-config.c
+@@ -184,7 +184,7 @@ failure:
+ }
+ 
+ static bool enable_name_policy(void) {
+-        _cleanup_free_ char *line;
++        _cleanup_free_ char *line = NULL;
+         char *w, *state;
+         int r;
+         size_t l;
+@@ -391,7 +391,9 @@ int link_config_apply(link_config_ctx *ctx, link_config *config, struct udev_dev
+                 case MACPOLICY_PERSISTENT:
+                         if (!mac_is_permanent(device)) {
+                                 r = get_mac(device, false, &generated_mac);
+-                                if (r < 0)
++                                if (r == -ENOENT)
++                                        break;
++                                else if (r < 0)
+                                         return r;
+                                 mac = &generated_mac;
+                         }
+@@ -399,7 +401,9 @@ int link_config_apply(link_config_ctx *ctx, link_config *config, struct udev_dev
+                 case MACPOLICY_RANDOM:
+                         if (!mac_is_random(device)) {
+                                 r = get_mac(device, true, &generated_mac);
+-                                if (r < 0)
++                                if (r == -ENOENT)
++                                        break;
++                                else if (r < 0)
+                                         return r;
+                                 mac = &generated_mac;
+                         }
+diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
+index 5998be2..5213a4a 100644
+--- a/src/udev/udev-event.c
++++ b/src/udev/udev-event.c
+@@ -771,18 +771,17 @@ static int rename_netif(struct udev_event *event)
+                 log_error("error changing net interface name %s to %s: %s",
+                           oldname, name, strerror(-r));
+         else
+-                print_kmsg("renamed network interface %s to %s", oldname, name);
++                print_kmsg("renamed network interface %s to %s\n", oldname, name);
+ 
+         return r;
+ }
+ 
+-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask)
++void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask)
+ {
+         struct udev_device *dev = event->dev;
+-        int err = 0;
+ 
+         if (udev_device_get_subsystem(dev) == NULL)
+-                return -1;
++                return;
+ 
+         if (streq(udev_device_get_action(dev), "remove")) {
+                 udev_device_read_db(dev, NULL);
+@@ -816,9 +815,10 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
+                     event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) {
+                         char syspath[UTIL_PATH_SIZE];
+                         char *pos;
++                        int r;
+ 
+-                        err = rename_netif(event);
+-                        if (err == 0) {
++                        r = rename_netif(event);
++                        if (r >= 0) {
+                                 log_debug("renamed netif to '%s'", event->name);
+ 
+                                 /* remember old name */
+@@ -881,7 +881,6 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
+                 udev_device_unref(event->dev_db);
+                 event->dev_db = NULL;
+         }
+-        return err;
+ }
+ 
+ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask)
+diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
+index 2630264..17f47f2 100644
+--- a/src/udev/udev-rules.c
++++ b/src/udev/udev-rules.c
+@@ -2555,10 +2555,15 @@ int udev_rules_apply_static_dev_perms(struct udev_rules *rules)
+                         struct stat stats;
+ 
+                         /* we assure, that the permissions tokens are sorted before the static token */
++
+                         if (mode == 0 && uid == 0 && gid == 0 && tags == NULL)
+                                 goto next;
+ 
+                         strscpyl(device_node, sizeof(device_node), "/dev/", rules_str(rules, cur->key.value_off), NULL);
++                        if (stat(device_node, &stats) != 0)
++                                break;
++                        if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode))
++                                break;
+ 
+                         /* export the tags to a directory as symlinks, allowing otherwise dead nodes to be tagged */
+                         if (tags) {
+@@ -2588,11 +2593,6 @@ int udev_rules_apply_static_dev_perms(struct udev_rules *rules)
+                         if (mode == 0 && uid == 0 && gid == 0)
+                                 break;
+ 
+-                        if (stat(device_node, &stats) != 0)
+-                                break;
+-                        if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode))
+-                                break;
+-
+                         if (mode == 0) {
+                                 if (gid > 0)
+                                         mode = 0660;
+diff --git a/src/udev/udev.h b/src/udev/udev.h
+index 936adfb..62538bc 100644
+--- a/src/udev/udev.h
++++ b/src/udev/udev.h
+@@ -84,7 +84,7 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string,
+ int udev_event_spawn(struct udev_event *event,
+                      const char *cmd, char **envp, const sigset_t *sigmask,
+                      char *result, size_t ressize);
+-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset);
++void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset);
+ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset);
+ int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]);
+ 
+diff --git a/src/udev/udevadm-test.c b/src/udev/udevadm-test.c
+index 6cd311b..6a2f548 100644
+--- a/src/udev/udevadm-test.c
++++ b/src/udev/udevadm-test.c
+@@ -43,7 +43,6 @@ static int adm_test(struct udev *udev, int argc, char *argv[])
+         _cleanup_udev_device_unref_ struct udev_device *dev = NULL;
+         _cleanup_udev_event_unref_ struct udev_event *event = NULL;
+         sigset_t mask, sigmask_orig;
+-        int err;
+         int rc = 0, c;
+ 
+         static const struct option options[] = {
+@@ -139,18 +138,16 @@ static int adm_test(struct udev *udev, int argc, char *argv[])
+                 goto out;
+         }
+ 
+-        err = udev_event_execute_rules(event, rules, &sigmask_orig);
++        udev_event_execute_rules(event, rules, &sigmask_orig);
+ 
+         udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev))
+                 printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry));
+ 
+-        if (err == 0) {
+-                udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) {
+-                        char program[UTIL_PATH_SIZE];
++        udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) {
++                char program[UTIL_PATH_SIZE];
+ 
+-                        udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program));
+-                        printf("run: '%s'\n", program);
+-                }
++                udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program));
++                printf("run: '%s'\n", program);
+         }
+ out:
+         if (event != NULL && event->fd_signal >= 0)
+diff --git a/src/udev/udevd.c b/src/udev/udevd.c
+index f21c227..93afca1 100644
+--- a/src/udev/udevd.c
++++ b/src/udev/udevd.c
+@@ -288,10 +288,9 @@ static void worker_new(struct event *event)
+                                 udev_event->exec_delay = exec_delay;
+ 
+                         /* apply rules, create node, symlinks */
+-                        err = udev_event_execute_rules(udev_event, rules, &sigmask_orig);
++                        udev_event_execute_rules(udev_event, rules, &sigmask_orig);
+ 
+-                        if (err == 0)
+-                                udev_event_execute_run(udev_event, &sigmask_orig);
++                        udev_event_execute_run(udev_event, &sigmask_orig);
+ 
+                         /* apply/restore inotify watch */
+                         if (err == 0 && udev_event->inotify_watch) {
+diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
+index 0f2b706..645b1e6 100644
+--- a/src/vconsole/vconsole-setup.c
++++ b/src/vconsole/vconsole-setup.c
+@@ -180,6 +180,10 @@ static int font_load(const char *vc, const char *font, const char *map, const ch
+  */
+ static void font_copy_to_all_vcs(int fd) {
+         struct vt_stat vcs = {};
++        unsigned char map8[E_TABSZ];
++        unsigned short map16[E_TABSZ];
++        struct unimapdesc unimapd;
++        struct unipair unipairs[USHRT_MAX];
+         int i, r;
+ 
+         /* get active, and 16 bit mask of used VT numbers */
+@@ -209,17 +213,35 @@ static void font_copy_to_all_vcs(int fd) {
+                 cfo.op = KD_FONT_OP_COPY;
+                 cfo.height = vcs.v_active-1; /* tty1 == index 0 */
+                 ioctl(vcfd, KDFONTOP, &cfo);
++
++                /* copy map of 8bit chars */
++                if (ioctl(fd, GIO_SCRNMAP, map8) >= 0)
++                    ioctl(vcfd, PIO_SCRNMAP, map8);
++
++                /* copy map of 8bit chars -> 16bit Unicode values */
++                if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0)
++                    ioctl(vcfd, PIO_UNISCRNMAP, map16);
++
++                /* copy unicode translation table */
++                /* unimapd is a ushort count and a pointer to an
++                   array of struct unipair { ushort, ushort } */
++                unimapd.entries  = unipairs;
++                unimapd.entry_ct = USHRT_MAX;
++                if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) {
++                        struct unimapinit adv = { 0, 0, 0 };
++
++                        ioctl(vcfd, PIO_UNIMAPCLR, &adv);
++                        ioctl(vcfd, PIO_UNIMAP, &unimapd);
++                }
+         }
+ }
+ 
+ int main(int argc, char **argv) {
+         const char *vc;
+-        char *vc_keymap = NULL;
+-        char *vc_keymap_toggle = NULL;
+-        char *vc_font = NULL;
+-        char *vc_font_map = NULL;
+-        char *vc_font_unimap = NULL;
+-        int fd = -1;
++        _cleanup_free_ char
++                *vc_keymap = NULL, *vc_keymap_toggle = NULL,
++                *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL;
++        _cleanup_close_ int fd = -1;
+         bool utf8;
+         pid_t font_pid = 0, keymap_pid = 0;
+         bool font_copy = false;
+@@ -241,12 +263,12 @@ int main(int argc, char **argv) {
+         fd = open_terminal(vc, O_RDWR|O_CLOEXEC);
+         if (fd < 0) {
+                 log_error("Failed to open %s: %m", vc);
+-                goto finish;
++                return EXIT_FAILURE;
+         }
+ 
+         if (!is_vconsole(fd)) {
+                 log_error("Device %s is not a virtual console.", vc);
+-                goto finish;
++                return EXIT_FAILURE;
+         }
+ 
+         utf8 = is_locale_utf8();
+@@ -281,27 +303,27 @@ int main(int argc, char **argv) {
+         else
+                 disable_utf8(fd);
+ 
+-        r = EXIT_FAILURE;
+-        if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 &&
+-            font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0)
+-                r = EXIT_SUCCESS;
+-
+-finish:
+-        if (keymap_pid > 0)
+-                wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
++        r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid);
++        if (r < 0) {
++                log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r));
++                return EXIT_FAILURE;
++        }
+ 
+-        if (font_pid > 0) {
++        if (font_pid > 0)
+                 wait_for_terminate_and_warn(KBD_SETFONT, font_pid);
+-                if (font_copy)
+-                        font_copy_to_all_vcs(fd);
++
++        r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid);
++        if (r < 0) {
++                log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r));
++                return EXIT_FAILURE;
+         }
+ 
+-        free(vc_keymap);
+-        free(vc_font);
+-        free(vc_font_map);
+-        free(vc_font_unimap);
++        if (keymap_pid > 0)
++                wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
+ 
+-        safe_close(fd);
++        /* Only copy the font when we started setfont successfully */
++        if (font_copy && font_pid > 0)
++                font_copy_to_all_vcs(fd);
+ 
+-        return r;
++        return EXIT_SUCCESS;
+ }
+diff --git a/tmpfiles.d/systemd.conf b/tmpfiles.d/systemd.conf
+index 7c6d6b9..c470045 100644
+--- a/tmpfiles.d/systemd.conf
++++ b/tmpfiles.d/systemd.conf
+@@ -23,6 +23,6 @@ d /run/systemd/machines 0755 root root -
+ d /run/systemd/shutdown 0755 root root -
+ 
+ m /var/log/journal 2755 root systemd-journal - -
+-m /var/log/journal/%m 2755 root systemd-journal - -
++Z /var/log/journal/%m 2755 root systemd-journal - -
+ m /run/log/journal 2755 root systemd-journal - -
+-m /run/log/journal/%m 2755 root systemd-journal - -
++Z /run/log/journal/%m 2755 root systemd-journal - -
 diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in
 index 8ac51a4..cae9fb5 100644
 --- a/units/console-getty.service.m4.in
@@ -294,17 +2731,20 @@ index 552ef89..af3915f 100644
  ExecStart=-/sbin/sulogin
  ExecStopPost=-@SYSTEMCTL@ --fail --no-block default
 diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4
-index 4ac51e7..86a3b59 100644
+index 4ac51e7..96daa5c 100644
 --- a/units/serial-getty@.service.m4
 +++ b/units/serial-getty@.service.m4
-@@ -22,7 +22,6 @@ Before=getty.target
+@@ -22,10 +22,8 @@ Before=getty.target
  IgnoreOnIsolate=yes
  
  [Service]
 -ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
  Type=idle
  Restart=always
- RestartSec=0
+-RestartSec=0
+ UtmpIdentifier=%I
+ TTYPath=/dev/%I
+ TTYReset=yes
 diff --git a/units/sysinit.target b/units/sysinit.target
 index 8f4fb8f..e0f0147 100644
 --- a/units/sysinit.target
@@ -354,6 +2794,18 @@ index de93879..c9a49f3 100644
 +# journald to stop logging (see
 +# https://bugs.freedesktop.org/show_bug.cgi?id=56043).
 +X-RestartIfChanged=no
+diff --git a/units/systemd-nspawn@.service.in b/units/systemd-nspawn@.service.in
+index ff36e90..e373628 100644
+--- a/units/systemd-nspawn@.service.in
++++ b/units/systemd-nspawn@.service.in
+@@ -11,6 +11,7 @@ Documentation=man:systemd-nspawn(1)
+ 
+ [Service]
+ ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --directory=/var/lib/container/%i
++KillMode=mixed
+ Type=notify
+ 
+ [Install]
 diff --git a/units/systemd-random-seed.service.in b/units/systemd-random-seed.service.in
 index 1879b2f..9b895b9 100644
 --- a/units/systemd-random-seed.service.in
diff --git a/pkgs/servers/computing/torque/default.nix b/pkgs/servers/computing/torque/default.nix
new file mode 100644
index 00000000000..d95e929ff82
--- /dev/null
+++ b/pkgs/servers/computing/torque/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, openssl, flex, bison, pkgconfig, groff, libxml2, utillinux }:
+
+stdenv.mkDerivation rec {
+  name = "torque-4.2.8";
+
+  src = fetchurl {
+    name = "${name}.tar.gz";
+    url = "http://www.adaptivecomputing.com/index.php?wpfb_dl=2730";
+    sha256 = "1sjpvndzm9ccdmfwdf9887ppmapawfsh5qdkzr92kadg5jxp796j";
+  };
+
+  buildInputs = [ openssl flex bison pkgconfig groff libxml2 utillinux ];
+
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+   for s in fifo cray_t3e dec_cluster msic_cluster sgi_origin umn_cluster; do
+     substituteInPlace src/scheduler.cc/samples/$s/Makefile.in \
+       --replace "schedprivdir = " "schedprivdir = $out/"
+   done
+
+   for f in $(find ./ -name Makefile.in); do
+     echo patching $f...
+     sed -i $f -e '/PBS_MKDIRS/d'
+   done
+  '';
+
+  postInstall = ''
+    mv $out/sbin/* $out/bin/
+    rmdir $out/sbin
+    cp -v buildutils/pbs_mkdirs $out/bin/
+    cp -v torque.setup $out/bin/
+    chmod +x $out/bin/pbs_mkdirs $out/bin/torque.setup
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.adaptivecomputing.com/products/open-source/torque;
+    description = "Resource management system for submitting and controlling jobs on supercomputers, clusters, and grids";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix
index 5282541e2f9..9244ee2f2cf 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/servers/consul/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, lib, go, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+{ stdenv, lib, go, fetchgit, fetchhg, fetchbzr, fetchFromGitHub
+, ruby, rubyLibs, nodejs }:
 
 let
-  version = "0.3.0";
+  version = "0.4.0";
 in
 
+with lib;
 stdenv.mkDerivation {
   name = "consul-${version}";
 
@@ -11,22 +13,44 @@ stdenv.mkDerivation {
     inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
   };
 
-  buildInputs = [ go ];
+  buildInputs = [ go ruby rubyLibs.sass nodejs ];
+
+  configurePhase = flip concatMapStrings
+    (with rubyLibs; [ execjs json minitest rake rdoc sass uglifier ])
+    (gem: ''
+      export GEM_PATH="$GEM_PATH:${gem}/${ruby.gemPath}"
+    '');
 
   buildPhase = ''
+    # Build consul binary
     export GOPATH=$src
     go build -v -o consul github.com/hashicorp/consul
+
+    # Build ui static files
+    ({
+      cp -r src/github.com/hashicorp/consul/ui .
+      cd ui
+      chmod -R u+w .
+      make dist
+    })
   '';
 
+  outputs = [ "out" "ui" ];
+
   installPhase = ''
-    ensureDir $out/bin
+    # Install consul binary
+    mkdir -p $out/bin
     cp consul $out/bin
+
+    # Install ui static files
+    mkdir -p $ui
+    mv ui/dist/* $ui
   '';
 
   meta = with lib; {
     homepage    = http://www.consul.io/;
     description = "A tool for service discovery, monitoring and configuration";
-    maintainers = with maintainers; [ cstrahan ];
+    maintainers = with maintainers; [ cstrahan wkennington ];
     license     = licenses.mpl20 ;
     platforms   = platforms.unix;
   };
diff --git a/pkgs/servers/consul/deps.nix b/pkgs/servers/consul/deps.nix
index c1ebcf80928..c6e7cb735fe 100644
--- a/pkgs/servers/consul/deps.nix
+++ b/pkgs/servers/consul/deps.nix
@@ -3,22 +3,6 @@
 let
   goDeps = [
     {
-      root = "code.google.com/p/go.net";
-      src = fetchhg {
-        url = "http://code.google.com/p/go.net";
-        rev = "134";
-        sha256 = "1jycpgrfwgkfac60zjbx6babcz7sgyn9xgy6cr3l811j6k8r2pbv";
-      };
-    }
-    {
-      root = "code.google.com/p/go.text";
-      src = fetchhg {
-        url = "http://code.google.com/p/go.text";
-        rev = "85";
-        sha256 = "1x8h6vq9g5gbi7iiwla6dkaaqqf7wmkdm4szj7wvzlsijf2x8dwr";
-      };
-    }
-    {
       root = "github.com/armon/circbuf";
       src = fetchFromGitHub {
         owner = "armon";
@@ -28,12 +12,30 @@ let
       };
     }
     {
+      root = "github.com/armon/consul-api";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "consul-api";
+        rev = "045662de1042be0662fe4a1e21b57c8f7669261a";
+        sha256 = "1cdf9mpfa97qwzc0nz0788d97xmwh08dsvqmkmijrdm2a6c07q1r";
+      };
+    }
+    {
       root = "github.com/armon/go-metrics";
       src = fetchFromGitHub {
         owner = "armon";
         repo = "go-metrics";
-        rev = "02567bbc4f518a43853d262b651a3c8257c3f141";
-        sha256 = "08fk3zmw0ywmdfp2qhrpv0vrk1y97hzqczrgr3y2yip3x8sr37ar";
+        rev = "2b75159ce5d3641fb35b5a159cff309ac3cf4177";
+        sha256 = "1fjsa7r97zlpdzi5l7qvgyabznn5pm6bpwi1rgrwaxh7gc3a28vi";
+      };
+    }
+    {
+      root = "github.com/armon/go-radix";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "go-radix";
+        rev = "b045fc0ad3587e8620fb42a0dea882cf8c08aef9";
+        sha256 = "1p09dwhngaszbr9si68xl1la74i359l0wibhhirpxrc8q4pgjplx";
       };
     }
     {
@@ -46,21 +48,21 @@ let
       };
     }
     {
-      root = "github.com/armon/mdns";
+      root = "github.com/hashicorp/consul";
       src = fetchFromGitHub {
-        owner = "armon";
-        repo = "mdns";
-        rev = "70462deb060d44247356ee238ebafd7699ddcffe";
-        sha256 = "0xkm3d0hsixdm1yrkx9c39723kfjkb3wvrzrmx3np9ylcwn6h5p5";
+        owner = "hashicorp";
+        repo = "consul";
+        rev = "e1d87dee26c05cea64342fadd2a728894b764aec";
+        sha256 = "0y05pjvvxlamf74s15pcgv48xyd6116m5lyyd7jkh28lb3l2fykf";
       };
     }
     {
-      root = "github.com/hashicorp/consul";
+      root = "github.com/hashicorp/go-checkpoint";
       src = fetchFromGitHub {
         owner = "hashicorp";
-        repo = "consul";
-        rev = "441d613e1bd96254c78c46ee7c1b35c161fc7295";
-        sha256 = "1v06ygzsvc9c02yxpxnnm407kd30fc46b2146k5zrk1v8lq0f91j";
+        repo = "go-checkpoint";
+        rev = "89ef2a697dd8cdb4623097d5bb9acdb19a470767";
+        sha256 = "0mfykh9jkh1m2zxlm2df4j5i6hd6iq1kc8afjladdhcqyrkwcch0";
       };
     }
     {
@@ -73,6 +75,24 @@ let
       };
     }
     {
+      root = "github.com/hashicorp/golang-lru";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "golang-lru";
+        rev = "4dfff096c4973178c8f35cf6dd1a732a0a139370";
+        sha256 = "16x78183xzk9bjn7il71l3mff3rqjwc88q9fpbj5i65kvl5ws9di";
+      };
+    }
+    {
+      root = "github.com/hashicorp/hcl";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "hcl";
+        rev = "9b5d9eb9b09475889ae49a4a613c60280875b3d1";
+        sha256 = "02x5by78a3bblzqnhl9dm98wz61h0vkk1wcw7mx6480a7qj5jx3m";
+      };
+    }
+    {
       root = "github.com/hashicorp/logutils";
       src = fetchFromGitHub {
         owner = "hashicorp";
@@ -86,8 +106,8 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "memberlist";
-        rev = "17d39b695094be943bfb98442a80b082e6b9ac47";
-        sha256 = "0nvgjnwmfqhv2wvr77d2q5mq1bfw4xbpil6wgyj4fyrmhsfzrv3g";
+        rev = "def5afe3702fce72d72922fb44ef2b8e5608b205";
+        sha256 = "1ch8c160nkqb79ql59vgpnf9kfq2v38xjrprvfv4hmnpmf6yx6i2";
       };
     }
     {
@@ -95,8 +115,8 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "raft";
-        rev = "8bdafd1e83e7d85ffeb5dc8f0857dbddd61edba5";
-        sha256 = "1yv3v0vhw5hgqqhh20jhyba2lpkkmmj80lfgf7v4vgjb0y3jqy6x";
+        rev = "35f5fa082f5a064595d84715b0cf8821f002e9ac";
+        sha256 = "0s5qhs19n0rxdhsxw77q5sjw4hrkfggxz3w0p3szcd8rsnpfswkg";
       };
     }
     {
@@ -104,8 +124,8 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "raft-mdb";
-        rev = "70e1c88f4b6fb06fc94cc02109243160a443609d";
-        sha256 = "1031yqgb91ch79m41gl8prrymlh4y4k9yklmbv3qvxkfqirdv247";
+        rev = "95d26447c3c54581de2bb102ecc3344079b234bd";
+        sha256 = "1fqf7s2snzbjzxy1k04wdfkqsrxddp6iz72b9hxz9jmgx3l7nl2z";
       };
     }
     {
@@ -113,8 +133,17 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "serf";
-        rev = "83f220b4faa0614f49649156118b750b5b12fafb";
-        sha256 = "144a4g5yfcjv1jnl3mi4jcwy4cd970h1924cdas2s7bcdx6kpnv4";
+        rev = "v0.6.3";
+        sha256 = "0ck77ji28bvm4ahzxyyi4sm17c3fxc16k0k5mihl1nlkgdd73m8y";
+      };
+    }
+    {
+      root = "github.com/hashicorp/terraform";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "terraform";
+        rev = "v0.2.2";
+        sha256 = "05hy9vq8b05nxbmm277ll6p7ncjhxifnqii8y1dralz5x3cw27r3";
       };
     }
     {
@@ -140,8 +169,8 @@ let
       src = fetchFromGitHub {
         owner = "miekg";
         repo = "dns";
-        rev = "05cfaca9f0712f44206ecbfa65a6769434164e7a";
-        sha256 = "1qc12v5yqlsi1mg18i10pvz9g4a5diqzp73q5n4m00gyk41q855j";
+        rev = "5cdb7e11a3f60c88cf2dbce42866e7b42c74b394";
+        sha256 = "0glzs9r2i5vrncb3skdl987mdzqj2w86fqr5aj64lqgp7ghwj6hw";
       };
     }
     {
@@ -149,8 +178,8 @@ let
       src = fetchFromGitHub {
         owner = "mitchellh";
         repo = "cli";
-        rev = "975a7477b1507ea6bb888c48108e05d26fb30434";
-        sha256 = "0gxjizg8pf5p3zj04k7cpkwf8l2q9j1j270j2bw0wv2d2pgn6z5l";
+        rev = "bfacda5ba006a32b10ddfe2abad56c11661573eb";
+        sha256 = "0lzvsya04nh7m804azanhs28vsk4g8knw3yay2yx4wffikbkjbgk";
       };
     }
     {
@@ -158,8 +187,8 @@ let
       src = fetchFromGitHub {
         owner = "mitchellh";
         repo = "mapstructure";
-        rev = "6fb2c832bcac61d01212ab1d172f7a14a8585b07";
-        sha256 = "0mx855lwhv0rk461wmbnbzbpkhmq5p2ipmrm5bhzimagrr1w17hw";
+        rev = "740c764bc6149d3f1806231418adb9f52c11bcbf";
+        sha256 = "0rlz93rmz465nr0wmzvq1n58yc0qdw7v1chr6zmj9jj9pix0a7cb";
       };
     }
     {
@@ -167,7 +196,7 @@ let
       src = fetchFromGitHub {
         owner = "ryanuber";
         repo = "columnize";
-        rev = "785d943a7b6886e0bb2f139a60487b823dd8d9de";
+        rev = "v2.0.1";
         sha256 = "1h3sxzhiwz65vf3cvclirlf6zhdr97v01dpn5cmf3m09rxxpnp3f";
       };
     }
@@ -176,51 +205,8 @@ let
       src = fetchFromGitHub {
         owner = "ugorji";
         repo = "go";
-        rev = "71c2886f5a673a35f909803f38ece5810165097b";
-        sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j";
-      };
-    }
-    {
-      root = "github.com/ugorji/go-msgpack";
-      src = fetchFromGitHub {
-        owner = "ugorji";
-        repo = "go-msgpack";
-        rev = "75092644046c5e38257395b86ed26c702dc95b92";
-        sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98";
-      };
-    }
-    {
-      root = "github.com/vmihailenco/bufio";
-      src = fetchFromGitHub {
-        owner = "vmihailenco";
-        repo = "bufio";
-        rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66";
-        sha256 = "0x46qnf2f15v7m0j2dcb16raxjamk5rdc7hqwgyxfr1sqmmw3983";
-      };
-    }
-    {
-      root = "github.com/vmihailenco/msgpack";
-      src = fetchFromGitHub {
-        owner = "vmihailenco";
-        repo = "msgpack";
-        rev = "20c1b88a6c7fc5432037439f4e8c582e236fb205";
-        sha256 = "1dj5scpfhgnw0yrh0w6jlrb9d03halvsv4l3wgjhazrrimdqf0q0";
-      };
-    }
-    {
-      root = "launchpad.net/gocheck";
-      src = fetchbzr {
-        url = "https://launchpad.net/gocheck";
-        rev = "87";
-        sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0";
-      };
-    }
-    {
-      root = "launchpad.net/mgo";
-      src = fetchbzr {
-        url = "https://launchpad.net/mgo";
-        rev = "2";
-        sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x";
+        rev = "e906e395b9d45d3230e800c8ad1f92f99764e753";
+        sha256 = "0dqzbxa4ziw10sa5ksl8sfzm0rhrddp6gs732zs9bjkq4rl50j89";
       };
     }
   ];
diff --git a/pkgs/servers/consul/ui.nix b/pkgs/servers/consul/ui.nix
deleted file mode 100644
index d1c04f959cb..00000000000
--- a/pkgs/servers/consul/ui.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchzip }:
-
-let
-  version = "0.3.0";
-  meta = with stdenv.lib; {
-    homepage = http://www.consul.io/intro/getting-started/ui.html;
-    description = "The static files for Consul's UI (used via -ui-dir)";
-    maintainers = with maintainers; [ cstrahan ];
-    license = licenses.mpl20 ;
-    platforms = platforms.all;
-  };
-in (fetchzip {
-  name = "consul-ui-${version}";
-  url = "https://dl.bintray.com/mitchellh/consul/${version}_web_ui.zip";
-  sha256 = "0p4mhlrqidd6p3899wd3i9p41bdbb5avbz5986mnxg9f7dvhjdrc";
-}) // { inherit meta; }
-
diff --git a/pkgs/servers/dict/default.nix b/pkgs/servers/dict/default.nix
index 1fb7c24418f..ee0477734c2 100644
--- a/pkgs/servers/dict/default.nix
+++ b/pkgs/servers/dict/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Dict protocol server and client";
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/dict/libmaa.nix b/pkgs/servers/dict/libmaa.nix
index c63306e1ff4..833aaa95b0c 100644
--- a/pkgs/servers/dict/libmaa.nix
+++ b/pkgs/servers/dict/libmaa.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Dict protocol server and client";
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/diod/default.nix b/pkgs/servers/diod/default.nix
index 0753df43be5..4f0597ab3c3 100644
--- a/pkgs/servers/diod/default.nix
+++ b/pkgs/servers/diod/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, munge, lua5, libcap, perl, ncurses }:
+{ stdenv, fetchurl, munge, lua, libcap, perl, ncurses }:
 
 stdenv.mkDerivation rec {
   name = "diod-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0h92zadbkq4fjhqjzq17cl3x7bdkz2yakpcl0nccv4ml0gwfbx27";
   };
 
-  buildInputs = [ munge lua5 libcap perl ncurses ];
+  buildInputs = [ munge lua libcap perl ncurses ];
 
   meta = {
     description = "An I/O forwarding server that implements a variant of the 9P protocol";
diff --git a/pkgs/servers/dns/nsd/default.nix b/pkgs/servers/dns/nsd/default.nix
index 7279aa6d4ef..f5cf9544b9b 100644
--- a/pkgs/servers/dns/nsd/default.nix
+++ b/pkgs/servers/dns/nsd/default.nix
@@ -1,4 +1,13 @@
 { config, stdenv, fetchurl, libevent, openssl
+, bind8Stats       ? false
+, checking         ? false
+, ipv6             ? true
+, mmap             ? false
+, minimalResponses ? true
+, nsec3            ? true
+, ratelimit        ? false
+, recvmmsg         ? false
+, rootServer       ? false
 }:
 
 stdenv.mkDerivation rec {
@@ -12,17 +21,16 @@ stdenv.mkDerivation rec {
   buildInputs = [ libevent openssl ];
 
   configureFlags =
-    let flag = state: flags: if state then map (x: "--enable-${x}")  flags
-                                      else map (x: "--disable-${x}") flags;
-     in flag (config.nsd.bind8Stats       or false) [ "bind8-stats" ]
-     ++ flag (config.nsd.checking         or false) [ "checking" ]
-     ++ flag (config.nsd.ipv6             or true)  [ "ipv6" ]
-     ++ flag (config.nsd.mmap             or false) [ "mmap" ]
-     ++ flag (config.nsd.minimalResponses or true)  [ "minimal-responses" ]
-     ++ flag (config.nsd.nsec3            or true)  [ "nsec3" ]
-     ++ flag (config.nsd.ratelimit        or false) [ "ratelimit" ]
-     ++ flag (config.nsd.recvmmsg         or false) [ "recvmmsg" ]
-     ++ flag (config.nsd.rootServer       or false) [ "root-server" ]
+    let edf = c: o: if c then ["--enable-${o}"] else ["--disable-${o}"];
+     in edf bind8Stats       "bind8-stats"
+     ++ edf checking         "checking"
+     ++ edf ipv6             "ipv6"
+     ++ edf mmap             "mmap"
+     ++ edf minimalResponses "minimal-responses"
+     ++ edf nsec3            "nsec3"
+     ++ edf ratelimit        "ratelimit"
+     ++ edf recvmmsg         "recvmmsg"
+     ++ edf rootServer       "root-server"
      ++ [ "--with-ssl=${openssl}" "--with-libevent=${libevent}" ];
 
   meta = {
diff --git a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
index 07dff1cf585..7aded47dad1 100644
--- a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, apacheHttpd, python }:
 
-stdenv.mkDerivation {
-  name = "mod_wsgi-3.4";
+stdenv.mkDerivation rec {
+  name = "mod_wsgi-${version}";
+  version = "3.5";
 
   src = fetchurl {
-    url = "http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz";
-    sha256 = "1s5nnjssvcl6lzy7kxmrk47yz6sgfzk90i1y7jml0s0lks7ck1df";
+    url = "https://github.com/GrahamDumpleton/mod_wsgi/archive/${version}.tar.gz";
+    sha256 = "14xz422jlakdhxzsl8xs9if86yf1fnkwdg0havjyqs7my0w4qrzh";
   };
 
   buildInputs = [ apacheHttpd python ];
@@ -17,7 +18,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    homepage = "http://code.google.com/p/modwsgi/";
+    homepage = http://code.google.com/p/modwsgi/;
     description = "Host Python applications in Apache through the WSGI interface";
     license = stdenv.lib.licenses.asl20;
 
diff --git a/pkgs/servers/http/nginx/default.nix b/pkgs/servers/http/nginx/default.nix
index 903cf038d6e..700317bc799 100644
--- a/pkgs/servers/http/nginx/default.nix
+++ b/pkgs/servers/http/nginx/default.nix
@@ -1,10 +1,11 @@
 { stdenv, fetchurl, fetchgit, openssl, zlib, pcre, libxml2, libxslt, expat
-, gd, geoip
+, gd, geoip, luajit
 , rtmp ? false
 , fullWebDAV ? false
 , syslog ? false
 , moreheaders ? false
-, echo ? false }:
+, echo ? false
+, ngx_lua ? false }:
 
 with stdenv.lib;
 
@@ -44,6 +45,19 @@ let
     rev = "refs/tags/v0.53";
     sha256 = "90d4e3a49c678019f4f335bc18529aa108fcc9cfe0747ea4e2f6084a70da2868";
   };
+
+  develkit-ext = fetchgit {
+    url = https://github.com/simpl/ngx_devel_kit.git;
+    rev = "refs/tags/v0.2.19";
+    sha256 = "169m6gsa5b6zh1ws8qx2k7dbswld1zmhm4dh57qka0h07gs5dqjg";
+  };
+
+  lua-ext = fetchgit {
+    url = https://github.com/openresty/lua-nginx-module.git;
+    rev = "refs/tags/v0.9.11";
+    sha256 = "0y7238bvb907n7fsz5sivxbhfz2xnf4f0lzwk3k3h9j20fsyvwqq";
+  };
+
 in
 
 stdenv.mkDerivation rec {
@@ -52,7 +66,11 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ openssl zlib pcre libxml2 libxslt gd geoip
-    ] ++ optional fullWebDAV expat;
+    ] ++ optional fullWebDAV expat
+      ++ optional ngx_lua luajit;
+
+  LUAJIT_LIB = if ngx_lua then "${luajit}/lib" else "";
+  LUAJIT_INC = if ngx_lua then "${luajit}/include/luajit-2.0" else "";
 
   patches = if syslog then [ "${syslog-ext}/syslog-1.5.6.patch" ] else [];
 
@@ -83,6 +101,7 @@ stdenv.mkDerivation rec {
     ++ optional syslog "--add-module=${syslog-ext}"
     ++ optional moreheaders "--add-module=${moreheaders-ext}"
     ++ optional echo "--add-module=${echo-ext}"
+    ++ optional ngx_lua "--add-module=${develkit-ext} --add-module=${lua-ext}"
     ++ optional (elem stdenv.system (with platforms; linux ++ freebsd)) "--with-file-aio";
 
 
diff --git a/pkgs/servers/http/tomcat/6.0.nix b/pkgs/servers/http/tomcat/6.0.nix
index ee0049ce08f..19f20cc8823 100644
--- a/pkgs/servers/http/tomcat/6.0.nix
+++ b/pkgs/servers/http/tomcat/6.0.nix
@@ -1,23 +1,6 @@
-{ stdenv, fetchurl }:
-
-let version = "6.0.39"; in
-
-stdenv.mkDerivation rec {
-  name = "apache-tomcat-${version}";
-
-  src = fetchurl {
-    url = "mirror://apache/tomcat/tomcat-6/v${version}/bin/${name}.tar.gz";
+import ./recent.nix 
+  {
+    versionMajor = "6";
+    versionMinor = "0.39";
     sha256 = "19qix6affhc252n03smjf482drg3nxd27shni1gvhphgj3zfmgfy";
-  };
-
-  installPhase =
-    ''
-      mkdir $out
-      mv * $out
-    '';
-
-  meta = {
-    homepage = http://tomcat.apache.org/;
-    description = "An implementation of the Java Servlet and JavaServer Pages technologies";
-  };
-}
+  }
diff --git a/pkgs/servers/http/tomcat/7.0.nix b/pkgs/servers/http/tomcat/7.0.nix
new file mode 100644
index 00000000000..87bc57eb2b6
--- /dev/null
+++ b/pkgs/servers/http/tomcat/7.0.nix
@@ -0,0 +1,6 @@
+import ./recent.nix 
+  {
+    versionMajor = "7";
+    versionMinor = "0.55";
+    sha256 = "c20934fda63bc7311e2d8e067d67f886890c8be72280425c5f6f8fdd7a376c15";
+  }
diff --git a/pkgs/servers/http/tomcat/8.0.nix b/pkgs/servers/http/tomcat/8.0.nix
new file mode 100644
index 00000000000..63b8d2bbc94
--- /dev/null
+++ b/pkgs/servers/http/tomcat/8.0.nix
@@ -0,0 +1,6 @@
+import ./recent.nix 
+  {
+    versionMajor = "8";
+    versionMinor = "0.9";
+    sha256 = "5ea3c8260088ee4fd223a532a4b0c23a10e549c34705e2f190279a1a7f1f83d9";
+  }
diff --git a/pkgs/servers/http/tomcat/recent.nix b/pkgs/servers/http/tomcat/recent.nix
new file mode 100644
index 00000000000..0d11ba7a104
--- /dev/null
+++ b/pkgs/servers/http/tomcat/recent.nix
@@ -0,0 +1,24 @@
+{ versionMajor, versionMinor, sha256 }:
+{ stdenv, fetchurl }:
+
+let version = "${versionMajor}.${versionMinor}"; in
+
+stdenv.mkDerivation rec {
+  name = "apache-tomcat-${version}";
+
+  src = fetchurl {
+    url = "mirror://apache/tomcat/tomcat-${versionMajor}/v${version}/bin/${name}.tar.gz";
+    inherit sha256;
+  };
+
+  installPhase =
+    ''
+      mkdir $out
+      mv * $out
+    '';
+
+  meta = {
+    homepage = http://tomcat.apache.org/;
+    description = "An implementation of the Java Servlet and JavaServer Pages technologies";
+  };
+}
diff --git a/pkgs/servers/irc/ircd-hybrid/default.nix b/pkgs/servers/irc/ircd-hybrid/default.nix
index b37aaca1eaa..f27bb009a43 100644
--- a/pkgs/servers/irc/ircd-hybrid/default.nix
+++ b/pkgs/servers/irc/ircd-hybrid/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, zlib }:
 
 stdenv.mkDerivation {
-  name = "ircd-hybrid-7.2.2";
+  name = "ircd-hybrid-7.2.3";
 
   src = fetchurl {
-    url = mirror://sourceforge/ircd-hybrid/ircd-hybrid-7.2.2.tgz;
-    sha256 = "1xn4dfbgx019mhismfnr2idhslvarlajyahj7c6bqzmarcwwrvck";
+    url = mirror://sourceforge/ircd-hybrid/ircd-hybrid-7.2.3.tgz;
+    sha256 = "0w28w10vx3j2s6h2p0qx2p08gafyad7ddxa4f8i94vmx193l7w37";
   };
 
   buildInputs = [ openssl zlib ];
diff --git a/pkgs/servers/news/leafnode/default.nix b/pkgs/servers/news/leafnode/default.nix
index 23f236a9a34..a3579aa8309 100644
--- a/pkgs/servers/news/leafnode/default.nix
+++ b/pkgs/servers/news/leafnode/default.nix
@@ -10,6 +10,11 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--enable-runas-user=nobody";
 
+  preConfigure = ''
+    # configure uses id to check environment; we don't want this check
+    sed -re 's/^ID[=].*/ID="echo whatever"/' -i configure
+  '';
+
   postConfigure = ''
       # The is_validfqdn is far too restrictive, and only allows
       # Internet-facing servers to run.  In order to run leafnode via
@@ -24,6 +29,5 @@ stdenv.mkDerivation rec {
     description = "Leafnode implements a store & forward NNTP proxy";
     license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.unix;
-    broken = true; # The user check in the configure does not work in a chroot
   };
 }
diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix
index 6c6fb213cb8..3eba1b9f895 100644
--- a/pkgs/servers/nosql/influxdb/default.nix
+++ b/pkgs/servers/nosql/influxdb/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, makeWrapper }:
+{ stdenv, fetchurl, makeWrapper, zlib, bzip2 }:
 
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   name = "influxdb-${version}";
-  version = "0.7.0";
+  version = "0.8.2";
   arch = if stdenv.system == "x86_64-linux" then "amd64" else "386";
 
   src = fetchurl {
     url = "http://s3.amazonaws.com/influxdb/${name}.${arch}.tar.gz";
     sha256 = if arch == "amd64" then
-        "1mvi21z83abnprzj0n8r64ly9s48i5l7ndcrci7nk96z8xab7w3q" else
-        "1zgxbfnam4r31g9yfwznhb7l4hf7s5sylhll92zr8q0qjhr4cj2b";
+        "0m27agjf9v76w5xms8w3z91k4hxw832nxqr030qzqxynwbxj0vg6" else
+        "0bdjpdq4yhfsmvl756xhkd1d8565d19g66l5rlymksc71ps8kbj6";
   };
 
   buildInputs = [ makeWrapper ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     install -D influxdb $out/bin/influxdb
     patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/bin/influxdb
     wrapProgram "$out/bin/influxdb" \
-        --prefix LD_LIBRARY_PATH : "${stdenv.gcc.gcc}/lib:${stdenv.gcc.gcc}/lib64"
+        --prefix LD_LIBRARY_PATH : "${stdenv.gcc.gcc}/lib:${stdenv.gcc.gcc}/lib64:${zlib}/lib:${bzip2}/lib"
 
     mkdir -p $out/share/influxdb
     cp -R admin scripts config.toml $out/share/influxdb
diff --git a/pkgs/servers/nosql/riak/1.3.1.nix b/pkgs/servers/nosql/riak/1.3.1.nix
index 96315c52f6b..e773f6ddcc3 100644
--- a/pkgs/servers/nosql/riak/1.3.1.nix
+++ b/pkgs/servers/nosql/riak/1.3.1.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    maintainers = stdenv.lib.maintainers.orbitz;
+    maintainers = [ stdenv.lib.maintainers.orbitz ];
     description = "Dynamo inspired NoSQL DB by Basho";
     longDescription = ''
       This patches the riak and riak-admin scripts to work better in Nix.
diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix
index 47c8c12edef..162b12f8adc 100644
--- a/pkgs/servers/openafs-client/default.nix
+++ b/pkgs/servers/openafs-client/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation {
     homepage = http://www.openafs.org;
     license = stdenv.lib.licenses.ipl10;
     platforms = stdenv.lib.platforms.linux;
-    maintainers = stdenv.lib.maintainers.z77z;
+    maintainers = [ stdenv.lib.maintainers.z77z ];
   };
 }
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index a918007b47c..de262af095c 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -45,10 +45,15 @@ stdenv.mkDerivation rec {
        -e "s|chmod r+s |true |"
   '';
 
-  configureFlags =
-    [ "--disable-solaris" "--disable-jack" "--disable-oss-output"
-      "--disable-oss-wrapper" "--localstatedir=/var" "--sysconfdir=/etc" ]
-    ++ stdenv.lib.optional jackaudioSupport "--enable-jack"
+  configureFlags = [
+    "--disable-solaris"
+    "--disable-jack"
+    "--disable-oss-output"
+    "--disable-oss-wrapper"
+    "--localstatedir=/var"
+    "--sysconfdir=/etc"
+    "--with-access-group=audio"
+  ] ++ stdenv.lib.optional jackaudioSupport "--enable-jack"
     ++ stdenv.lib.optional stdenv.isDarwin "--with-mac-sysroot=/";
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/rippled/default.nix b/pkgs/servers/rippled/default.nix
index 66a0743b367..1325cebae40 100644
--- a/pkgs/servers/rippled/default.nix
+++ b/pkgs/servers/rippled/default.nix
@@ -24,8 +24,8 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Ripple P2P payment network reference server";
-    homepage = "https://ripple.com";
-    maintainers = stdenv.lib.maintainers.emery;
+    homepage = https://ripple.com;
+    maintainers = [ stdenv.lib.maintainers.emery ];
     license = stdenv.lib.licenses.isc;
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix
index c03a2feae5f..568737b1138 100644
--- a/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/pkgs/servers/search/elasticsearch/plugins.nix
@@ -50,4 +50,24 @@ in {
       license = licenses.asl20;
     };
   };
+
+  elasticsearch_http_basic = stdenv.mkDerivation rec {
+    name = "elasticsearch-http-basic-${version}";
+    version = "1.2.0";
+
+    src = fetchurl {
+      url = "https://github.com/Asquera/elasticsearch-http-basic/releases/download/${version}/${name}.jar";
+      sha256 = "0makhlsgxlawfscz70mc2ikh68vp6mdmmzz4ggcgwrravzvyw5vq";
+    };
+
+    phases = ["installPhase"];
+    installPhase = "install -D $src $out/plugins/http-basic/${name}.jar";
+
+    meta = {
+      homepage = https://github.com/Asquera/elasticsearch-http-basic;
+      description = "HTTP Basic Authentication for Elasticsearch";
+      license = licenses.mit;
+      platforms = elasticsearch.meta.platforms;
+    };
+  };
 }
diff --git a/pkgs/servers/search/sphinxsearch/default.nix b/pkgs/servers/search/sphinxsearch/default.nix
new file mode 100644
index 00000000000..a72240064f2
--- /dev/null
+++ b/pkgs/servers/search/sphinxsearch/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig,
+  version ? "2.1.9",
+  mainSrc ? fetchurl {
+    url = "http://sphinxsearch.com/files/sphinx-${version}-release.tar.gz";
+    sha256 = "00vwxf3zr0g1fq9mls1z2rd8nxw74b76pkl1j466lig1qc5am2b2";
+  }
+}:
+
+stdenv.mkDerivation rec {
+  name = "sphinxsearch-${version}";
+  src = mainSrc;
+
+  configureFlags = [
+    "--program-prefix=sphinxsearch-"
+    "--without-mysql"
+    "--enable-id64"
+  ];
+
+  buildInputs = [
+    pkgconfig
+  ];
+
+  meta = {
+    description = "An open source full text search server";
+    homepage    = http://sphinxsearch.com;
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ ederoyd46 ];
+  };
+}
diff --git a/pkgs/servers/sql/mysql/5.1.x.nix b/pkgs/servers/sql/mysql/5.1.x.nix
index c309158a670..b422b993832 100644
--- a/pkgs/servers/sql/mysql/5.1.x.nix
+++ b/pkgs/servers/sql/mysql/5.1.x.nix
@@ -3,11 +3,11 @@
 # Note: zlib is not required; MySQL can use an internal zlib.
 
 stdenv.mkDerivation rec {
-  name = "mysql-5.1.72";
+  name = "mysql-5.1.73";
 
   src = fetchurl {
     url = "http://cdn.mysql.com/Downloads/MySQL-5.1/${name}.tar.gz";
-    md5 = "ed79cd48e3e7402143548917813cdb80";
+    sha256 = "1dfwi4ck0vq6sdci6gz0031s7zz5lc3pddqlgm0292s00l9y5sq5";
   };
 
   buildInputs = [ncurses zlib perl openssl] ++ stdenv.lib.optional stdenv.isLinux ps;
diff --git a/pkgs/servers/sql/mysql/5.5.x.nix b/pkgs/servers/sql/mysql/5.5.x.nix
index 7c31bd7c582..7266727fdad 100644
--- a/pkgs/servers/sql/mysql/5.5.x.nix
+++ b/pkgs/servers/sql/mysql/5.5.x.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "mysql-${version}";
-  version = "5.5.37";
+  version = "5.5.39";
 
   src = fetchurl {
     url = "http://cdn.mysql.com/Downloads/MySQL-5.5/${name}.tar.gz";
-    md5 = "bf1d80c66d4822ec6036300399a33c03";
+    sha256 = "0qj8bc83v6vf8jyn4ag179nclpn6ilw4h4xqb50zz9jd0c5s14qq";
   };
 
   preConfigure = stdenv.lib.optional stdenv.isDarwin ''
diff --git a/pkgs/servers/sql/postgresql/8.4.x.nix b/pkgs/servers/sql/postgresql/8.4.x.nix
index 5151299e3b9..4807052478c 100644
--- a/pkgs/servers/sql/postgresql/8.4.x.nix
+++ b/pkgs/servers/sql/postgresql/8.4.x.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.postgresql.org/;
     description = "A powerful, open source object-relational database system";
-    license = "bsd";
+    license = stdenv.lib.licenses.postgresql;
     maintainers = [ stdenv.lib.maintainers.ocharles ];
     hydraPlatforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/servers/sql/postgresql/9.0.x.nix b/pkgs/servers/sql/postgresql/9.0.x.nix
index 97e98217f8a..85c14931eed 100644
--- a/pkgs/servers/sql/postgresql/9.0.x.nix
+++ b/pkgs/servers/sql/postgresql/9.0.x.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.postgresql.org/;
     description = "A powerful, open source object-relational database system";
-    license = "bsd";
+    license = stdenv.lib.licenses.postgresql;
     maintainers = [ stdenv.lib.maintainers.ocharles ];
     hydraPlatforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/servers/sql/postgresql/9.1.x.nix b/pkgs/servers/sql/postgresql/9.1.x.nix
index 92417dc730c..ef335a77ab6 100644
--- a/pkgs/servers/sql/postgresql/9.1.x.nix
+++ b/pkgs/servers/sql/postgresql/9.1.x.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.postgresql.org/;
     description = "A powerful, open source object-relational database system";
-    license = "bsd";
+    license = stdenv.lib.licenses.postgresql;
     maintainers = [ stdenv.lib.maintainers.ocharles ];
     hydraPlatforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/servers/sql/postgresql/9.2.x.nix b/pkgs/servers/sql/postgresql/9.2.x.nix
index e5dbdd034d3..fdfb5a17b54 100644
--- a/pkgs/servers/sql/postgresql/9.2.x.nix
+++ b/pkgs/servers/sql/postgresql/9.2.x.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.postgresql.org/;
     description = "A powerful, open source object-relational database system";
-    license = "bsd";
+    license = stdenv.lib.licenses.postgresql;
     maintainers = [ stdenv.lib.maintainers.ocharles ];
     hydraPlatforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/servers/sql/postgresql/9.3.x.nix b/pkgs/servers/sql/postgresql/9.3.x.nix
index 6c6ef132e81..40f07d8ffe1 100644
--- a/pkgs/servers/sql/postgresql/9.3.x.nix
+++ b/pkgs/servers/sql/postgresql/9.3.x.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.postgresql.org/;
     description = "A powerful, open source object-relational database system";
-    license = "bsd";
+    license = stdenv.lib.licenses.postgresql;
     maintainers = [ stdenv.lib.maintainers.ocharles ];
     hydraPlatforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/servers/sql/postgresql/9.4.x.nix b/pkgs/servers/sql/postgresql/9.4.x.nix
new file mode 100644
index 00000000000..2608dcae504
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/9.4.x.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, zlib, readline, libossp_uuid }:
+
+with stdenv.lib;
+
+let version = "9.4beta2"; in
+
+stdenv.mkDerivation rec {
+  name = "postgresql-${version}";
+
+  src = fetchurl {
+    url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
+    sha256 = "131q3b9hv4pw02xhjsfi5is9i7pp5f4srxwfdn8ifs9qb37hcx2n";
+  };
+
+  buildInputs = [ zlib readline ] ++ optionals (!stdenv.isDarwin) [ libossp_uuid ];
+
+  enableParallelBuilding = true;
+
+  makeFlags = [ "world" ];
+
+  configureFlags = optional (!stdenv.isDarwin)
+    ''
+      --with-ossp-uuid
+    '';
+
+  patches = [ ./disable-resolve_symlinks-94.patch ./less-is-more.patch ];
+
+  installTargets = [ "install-world" ];
+
+  LC_ALL = "C";
+
+  passthru = {
+    inherit readline;
+    psqlSchema = "9.4";
+  };
+
+  meta = {
+    homepage = http://www.postgresql.org/ ;
+    description = "A powerful, open source object-relational database system";
+    license = stdenv.lib.licenses.postgresql;
+    maintainers = with stdenv.lib.maintainers; [ aristid ocharles ];
+    hydraPlatforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/disable-resolve_symlinks-94.patch b/pkgs/servers/sql/postgresql/disable-resolve_symlinks-94.patch
new file mode 100644
index 00000000000..fadeea90ac4
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/disable-resolve_symlinks-94.patch
@@ -0,0 +1,12 @@
+--- a/src/common/exec.c	2014-09-04 20:19:12.236057588 +0200
++++ b/src/common/exec.c	2014-09-04 20:19:50.550251633 +0200
+@@ -218,6 +218,9 @@
+ static int
+ resolve_symlinks(char *path)
+ {
++	// On NixOS we *want* stuff relative to symlinks.
++	return 0;
++
+ #ifdef HAVE_READLINK
+ 	struct stat buf;
+ 	char		orig_wd[MAXPGPATH],
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index c4dfa983f55..5dd7c0fa75d 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -915,11 +915,11 @@ let
   }) // {inherit ;};
 
   libxcb = (mkDerivation "libxcb" {
-    name = "libxcb-1.10";
+    name = "libxcb-1.11";
     builder = ./builder.sh;
     src = fetchurl {
-      url = http://xcb.freedesktop.org/dist/libxcb-1.10.tar.bz2;
-      sha256 = "1dfmyb1zjx6n0zhr4y40mc1crlmj3bfjjhmn0f30ip9nnq2spncq";
+      url = http://xcb.freedesktop.org/dist/libxcb-1.11.tar.bz2;
+      sha256 = "1xqgc81krx14f2c8yl5chzg5g2l26mhm2rwffy8dx7jv0iq5sqq3";
     };
     buildInputs = [pkgconfig libxslt libpthreadstubs python libXau xcbproto libXdmcp ];
   }) // {inherit libxslt libpthreadstubs python libXau xcbproto libXdmcp ;};
@@ -1175,11 +1175,11 @@ let
   }) // {inherit ;};
 
   xcbproto = (mkDerivation "xcbproto" {
-    name = "xcb-proto-1.10";
+    name = "xcb-proto-1.11";
     builder = ./builder.sh;
     src = fetchurl {
-      url = http://xcb.freedesktop.org/dist/xcb-proto-1.10.tar.bz2;
-      sha256 = "01dgp802i4ic9wkmpa7g1wm50pp547d3b96jjz2hnxavhpfhvx3y";
+      url = http://xcb.freedesktop.org/dist/xcb-proto-1.11.tar.bz2;
+      sha256 = "0bp3f53l9fy5x3mn1rkj1g81aiyzl90wacwvqdgy831aa3kfxb5l";
     };
     buildInputs = [pkgconfig python ];
   }) // {inherit python ;};
@@ -1405,11 +1405,11 @@ let
   }) // {inherit inputproto xorgserver xproto ;};
 
   xf86inputmouse = (mkDerivation "xf86inputmouse" {
-    name = "xf86-input-mouse-1.9.0";
+    name = "xf86-input-mouse-1.9.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-mouse-1.9.0.tar.bz2;
-      sha256 = "12344w0cxac1ld54qqwynxwazbmmpvqh1mzcskmfkmakmr5iwq2x";
+      url = mirror://xorg/individual/driver/xf86-input-mouse-1.9.1.tar.bz2;
+      sha256 = "1kn5kx3qyn9qqvd6s24a2l1wfgck2pgfvzl90xpl024wfxsx719l";
     };
     buildInputs = [pkgconfig inputproto xorgserver xproto ];
   }) // {inherit inputproto xorgserver xproto ;};
@@ -1515,11 +1515,11 @@ let
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;};
 
   xf86videogeode = (mkDerivation "xf86videogeode" {
-    name = "xf86-video-geode-2.11.15";
+    name = "xf86-video-geode-2.11.16";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-geode-2.11.15.tar.bz2;
-      sha256 = "1w4ghr2a41kaw4g9na8ws5fjbmy8zkbxpxa21vmqc8mkjzb3pnq0";
+      url = mirror://xorg/individual/driver/xf86-video-geode-2.11.16.tar.bz2;
+      sha256 = "19y13xl7yfrgyis92rmxi0ld95ajgr5il0n9j1dridwzw9aizz1q";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   }) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@@ -2035,11 +2035,11 @@ let
   }) // {inherit ;};
 
   xrandr = (mkDerivation "xrandr" {
-    name = "xrandr-1.4.2";
+    name = "xrandr-1.4.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xrandr-1.4.2.tar.bz2;
-      sha256 = "1g4hnj53wknsjwiqivyy3jl4qw7jwrpncz7d5p2z29zq5zlnxrxj";
+      url = mirror://xorg/individual/app/xrandr-1.4.3.tar.bz2;
+      sha256 = "06xy0kr6ih7ilrwl6b5g6ay75vm2j4lxnv1d5xlj6sdqhqsaqm3i";
     };
     buildInputs = [pkgconfig libX11 xproto libXrandr libXrender ];
   }) // {inherit libX11 xproto libXrandr libXrender ;};
diff --git a/pkgs/servers/x11/xorg/extra.list b/pkgs/servers/x11/xorg/extra.list
index 2d105241c2d..84795ed980b 100644
--- a/pkgs/servers/x11/xorg/extra.list
+++ b/pkgs/servers/x11/xorg/extra.list
@@ -1,6 +1,6 @@
 http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2
-http://xcb.freedesktop.org/dist/libxcb-1.10.tar.bz2
-http://xcb.freedesktop.org/dist/xcb-proto-1.10.tar.bz2
+http://xcb.freedesktop.org/dist/libxcb-1.11.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-proto-1.11.tar.bz2
 http://xcb.freedesktop.org/dist/xcb-util-0.3.9.tar.bz2
 http://xcb.freedesktop.org/dist/xcb-util-image-0.3.9.tar.bz2
 http://xcb.freedesktop.org/dist/xcb-util-keysyms-0.3.9.tar.bz2
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index 93acd927f3b..1cc028e60d7 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -118,7 +118,7 @@ mirror://xorg/X11R7.7/src/everything/xf86driproto-2.1.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-evdev-2.8.4.tar.bz2
 mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
 mirror://xorg/individual/driver/xf86-input-keyboard-1.8.0.tar.bz2
-mirror://xorg/individual/driver/xf86-input-mouse-1.9.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-mouse-1.9.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-synaptics-1.7.6.tar.bz2
 mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
 mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2
@@ -130,7 +130,7 @@ mirror://xorg/individual/driver/xf86-video-nouveau-1.0.10.tar.bz2
 mirror://xorg/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
 mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2
 mirror://xorg/individual/driver/xf86-video-fbdev-0.4.4.tar.bz2
-mirror://xorg/individual/driver/xf86-video-geode-2.11.15.tar.bz2
+mirror://xorg/individual/driver/xf86-video-geode-2.11.16.tar.bz2
 mirror://xorg/individual/driver/xf86-video-glide-1.2.2.tar.bz2
 mirror://xorg/individual/driver/xf86-video-glint-1.2.8.tar.bz2
 mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2
@@ -176,7 +176,7 @@ mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
 mirror://xorg/individual/app/xprop-1.2.2.tar.bz2
 mirror://xorg/individual/proto/xproto-7.0.26.tar.bz2
-mirror://xorg/individual/app/xrandr-1.4.2.tar.bz2
+mirror://xorg/individual/app/xrandr-1.4.3.tar.bz2
 mirror://xorg/individual/app/xrdb-1.1.0.tar.bz2
 mirror://xorg/individual/app/xrefresh-1.0.5.tar.bz2
 mirror://xorg/individual/app/xset-1.2.3.tar.bz2
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 11731c1c1c1..29e4455f7cb 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -154,7 +154,8 @@ let
              || system == "x86_64-kfreebsd-gnu";
       isSunOS = system == "i686-solaris"
              || system == "x86_64-solaris";
-      isCygwin = system == "i686-cygwin";
+      isCygwin = system == "i686-cygwin"
+              || system == "x86_64-cygwin";
       isFreeBSD = system == "i686-freebsd"
               || system == "x86_64-freebsd";
       isOpenBSD = system == "i686-openbsd"
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 23cccf223f4..6f8b42c2266 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -35,8 +35,8 @@ rec {
   # The bootstrap process proceeds in several steps.
 
 
-  # 1) Create a standard environment by downloading pre-built binaries
-  # of coreutils, GCC, etc.
+  # Create a standard environment by downloading pre-built binaries of
+  # coreutils, GCC, etc.
 
 
   # Download and unpack the bootstrap tools (coreutils, GCC, Glibc, ...).
@@ -46,7 +46,7 @@ rec {
     builder = bootstrapFiles.sh;
 
     args =
-      if system == "armv5tel-linux" || system == "armv6l-linux" 
+      if system == "armv5tel-linux" || system == "armv6l-linux"
         || system == "armv7l-linux"
       then [ ./scripts/unpack-bootstrap-tools-arm.sh ]
       else [ ./scripts/unpack-bootstrap-tools.sh ];
@@ -66,137 +66,136 @@ rec {
   };
 
 
-  # This function builds the various standard environments used during
-  # the bootstrap.
-  stdenvBootFun =
-    {gcc, extraAttrs ? {}, overrides ? (pkgs: {}), extraPath ? [], fetchurl}:
-
-    import ../generic {
-      inherit system config;
-      name = "stdenv-linux-boot";
-      preHook =
-        ''
-          # Don't patch #!/interpreter because it leads to retained
-          # dependencies on the bootstrapTools in the final stdenv.
-          dontPatchShebangs=1
-          ${commonPreHook}
-        '';
-      shell = "${bootstrapTools}/bin/sh";
-      initialPath = [bootstrapTools] ++ extraPath;
-      fetchurlBoot = fetchurl;
-      inherit gcc;
-      # Having the proper 'platform' in all the stdenvs allows getting proper
-      # linuxHeaders for example.
-      extraAttrs = extraAttrs // { inherit platform; };
-      overrides = pkgs: (overrides pkgs) // {
-        inherit fetchurl;
-      };
-    };
+  # A helper function to call gcc-wrapper.
+  wrapGCC =
+    { gcc, libc, binutils, coreutils, name }:
 
-  # Build a dummy stdenv with no GCC or working fetchurl.  This is
-  # because we need a stdenv to build the GCC wrapper and fetchurl.
-  stdenvLinuxBoot0 = stdenvBootFun {
-    gcc = "/no-such-path";
-    fetchurl = null;
-  };
+    lib.makeOverridable (import ../../build-support/gcc-wrapper) {
+      nativeTools = false;
+      nativeLibc = false;
+      inherit gcc binutils coreutils libc name;
+      stdenv = stage0.stdenv;
+    };
 
 
-  fetchurl = import ../../build-support/fetchurl {
-    stdenv = stdenvLinuxBoot0;
-    curl = bootstrapTools;
-  };
+  # This function builds the various standard environments used during
+  # the bootstrap.  In all stages, we build an stdenv and the package
+  # set that can be built with that stdenv.
+  stageFun =
+    {gcc, extraAttrs ? {}, overrides ? (pkgs: {}), extraPath ? []}:
+
+    let
+
+      thisStdenv = import ../generic {
+        inherit system config;
+        name = "stdenv-linux-boot";
+        preHook =
+          ''
+            # Don't patch #!/interpreter because it leads to retained
+            # dependencies on the bootstrapTools in the final stdenv.
+            dontPatchShebangs=1
+            ${commonPreHook}
+          '';
+        shell = "${bootstrapTools}/bin/sh";
+        initialPath = [bootstrapTools] ++ extraPath;
+        fetchurlBoot = import ../../build-support/fetchurl {
+          stdenv = stage0.stdenv;
+          curl = bootstrapTools;
+        };
+        inherit gcc;
+        # Having the proper 'platform' in all the stdenvs allows getting proper
+        # linuxHeaders for example.
+        extraAttrs = extraAttrs // { inherit platform; };
+        overrides = pkgs: (overrides pkgs) // { fetchurl = thisStdenv.fetchurlBoot; };
+      };
 
+      thisPkgs = allPackages {
+        inherit system platform;
+        bootStdenv = thisStdenv;
+      };
 
-  # The Glibc include directory cannot have the same prefix as the GCC
-  # include directory, since GCC gets confused otherwise (it will
-  # search the Glibc headers before the GCC headers).  So create a
-  # dummy Glibc.
-  bootstrapGlibc = stdenvLinuxBoot0.mkDerivation {
-    name = "bootstrap-glibc";
-    buildCommand = ''
-      mkdir -p $out
-      ln -s ${bootstrapTools}/lib $out/lib
-      ln -s ${bootstrapTools}/include-glibc $out/include
-    '';
-  };
+    in { stdenv = thisStdenv; pkgs = thisPkgs; };
 
 
-  # A helper function to call gcc-wrapper.
-  wrapGCC =
-    { gcc ? bootstrapTools, libc, binutils, coreutils, shell ? "", name ? "bootstrap-gcc-wrapper" }:
+  # Build a dummy stdenv with no GCC or working fetchurl.  This is
+  # because we need a stdenv to build the GCC wrapper and fetchurl.
+  stage0 = stageFun {
+    gcc = "/no-such-path";
 
-    lib.makeOverridable (import ../../build-support/gcc-wrapper) {
-      nativeTools = false;
-      nativeLibc = false;
-      inherit gcc binutils coreutils libc shell name;
-      stdenv = stdenvLinuxBoot0;
+    overrides = pkgs: {
+      # The Glibc include directory cannot have the same prefix as the
+      # GCC include directory, since GCC gets confused otherwise (it
+      # will search the Glibc headers before the GCC headers).  So
+      # create a dummy Glibc here, which will be used in the stdenv of
+      # stage1.
+      glibc = stage0.stdenv.mkDerivation {
+        name = "bootstrap-glibc";
+        buildCommand = ''
+          mkdir -p $out
+          ln -s ${bootstrapTools}/lib $out/lib
+          ln -s ${bootstrapTools}/include-glibc $out/include
+        '';
+      };
     };
+  };
 
 
   # Create the first "real" standard environment.  This one consists
   # of bootstrap tools only, and a minimal Glibc to keep the GCC
   # configure script happy.
-  stdenvLinuxBoot1 = stdenvBootFun {
+  #
+  # For clarity, we only use the previous stage when specifying these
+  # stages.  So stageN should only ever have references for stage{N-1}.
+  #
+  # If we ever need to use a package from more than one stage back, we
+  # simply re-export those packages in the middle stage(s) using the
+  # overrides attribute and the inherit syntax.
+  stage1 = stageFun {
     gcc = wrapGCC {
-      libc = bootstrapGlibc;
+      gcc = bootstrapTools;
+      libc = stage0.pkgs.glibc;
       binutils = bootstrapTools;
       coreutils = bootstrapTools;
+      name = "bootstrap-gcc-wrapper";
+    };
+    # Rebuild binutils to use from stage2 onwards.
+    overrides = pkgs: {
+      binutils = pkgs.binutils.override { gold = false; };
+      inherit (stage0.pkgs) glibc;
     };
-    inherit fetchurl;
-  };
-
-
-  # 2) These are the packages that we can build with the first
-  #    stdenv.  We only need binutils, because recent Glibcs
-  #    require recent Binutils, and those in bootstrap-tools may
-  #    be too old.
-  stdenvLinuxBoot1Pkgs = allPackages {
-    inherit system platform;
-    bootStdenv = stdenvLinuxBoot1;
   };
 
-  binutils1 = stdenvLinuxBoot1Pkgs.binutils.override { gold = false; };
 
-
-  # 3) 2nd stdenv that we will use to build only Glibc.
-  stdenvLinuxBoot2 = stdenvBootFun {
+  # 2nd stdenv that contains our own rebuilt binutils and is used for
+  # compiling our own Glibc.
+  stage2 = stageFun {
     gcc = wrapGCC {
-      libc = bootstrapGlibc;
-      binutils = binutils1;
+      gcc = bootstrapTools;
+      libc = stage1.pkgs.glibc;
+      binutils = stage1.pkgs.binutils;
       coreutils = bootstrapTools;
+      name = "bootstrap-gcc-wrapper";
     };
     overrides = pkgs: {
-      inherit (stdenvLinuxBoot1Pkgs) perl;
+      inherit (stage1.pkgs) perl binutils paxctl;
+      # This also contains the full, dynamically linked, final Glibc.
     };
-    inherit fetchurl;
-  };
-
-
-  # 4) These are the packages that we can build with the 2nd
-  #    stdenv.
-  stdenvLinuxBoot2Pkgs = allPackages {
-    inherit system platform;
-    bootStdenv = stdenvLinuxBoot2;
   };
 
 
-  # 5) Build Glibc with the bootstrap tools.  The result is the full,
-  #    dynamically linked, final Glibc.
-  stdenvLinuxGlibc = stdenvLinuxBoot2Pkgs.glibc;
-
-
-  # 6) Construct a third stdenv identical to the 2nd, except that this
-  #    one uses the Glibc built in step 5.  It still uses the recent
-  #    binutils and rest of the bootstrap tools, including GCC.
-  stdenvLinuxBoot3 = stdenvBootFun {
+  # Construct a third stdenv identical to the 2nd, except that this
+  # one uses the rebuilt Glibc from stage2.  It still uses the recent
+  # binutils and rest of the bootstrap tools, including GCC.
+  stage3 = stageFun {
     gcc = wrapGCC {
-      binutils = binutils1;
+      gcc = bootstrapTools;
+      libc = stage2.pkgs.glibc;
+      binutils = stage2.pkgs.binutils;
       coreutils = bootstrapTools;
-      libc = stdenvLinuxGlibc;
+      name = "bootstrap-gcc-wrapper";
     };
     overrides = pkgs: {
-      glibc = stdenvLinuxGlibc;
-      inherit (stdenvLinuxBoot1Pkgs) perl;
+      inherit (stage2.pkgs) binutils glibc perl;
       # Link GCC statically against GMP etc.  This makes sense because
       # these builds of the libraries are only used by GCC, so it
       # reduces the size of the stdenv closure.
@@ -208,54 +207,40 @@ rec {
       ppl = pkgs.ppl.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
     };
     extraAttrs = {
-      glibc = stdenvLinuxGlibc;   # Required by gcc47 build
+      glibc = stage2.pkgs.glibc;  # Required by gcc47 build
     };
-    extraPath = [ stdenvLinuxBoot1Pkgs.paxctl ];
-    inherit fetchurl;
+    extraPath = [ stage2.pkgs.paxctl ];
   };
 
 
-  # 7) The packages that can be built using the third stdenv.
-  stdenvLinuxBoot3Pkgs = allPackages {
-    inherit system platform;
-    bootStdenv = stdenvLinuxBoot3;
-  };
-
-
-  # 8) Construct a fourth stdenv identical to the second, except that
-  #    this one uses the new GCC from step 7.  The other tools
-  #    (e.g. coreutils) are still from the bootstrap tools.
-  stdenvLinuxBoot4 = stdenvBootFun {
-    gcc = wrapGCC rec {
-      binutils = binutils1;
+  # Construct a fourth stdenv that uses the new GCC.  But coreutils is
+  # still from the bootstrap tools.
+  stage4 = stageFun {
+    gcc = wrapGCC {
+      gcc = stage3.pkgs.gcc.gcc;
+      libc = stage3.pkgs.glibc;
+      binutils = stage3.pkgs.binutils;
       coreutils = bootstrapTools;
-      libc = stdenvLinuxGlibc;
-      gcc = stdenvLinuxBoot3Pkgs.gcc.gcc;
       name = "";
     };
-    extraPath = [ stdenvLinuxBoot3Pkgs.xz ];
+    extraPath = [ stage3.pkgs.xz ];
     overrides = pkgs: {
-      inherit (stdenvLinuxBoot1Pkgs) perl;
-      inherit (stdenvLinuxBoot3Pkgs) gettext gnum4 gmp;
+      # Zlib has to be inherited and not rebuilt in this stage,
+      # because gcc (since JAR support) already depends on zlib, and
+      # then if we already have a zlib we want to use that for the
+      # other purposes (binutils and top-level pkgs) too.
+      inherit (stage3.pkgs) gettext gnum4 gmp perl glibc zlib;
     };
-    inherit fetchurl;
   };
 
 
-  # 9) The packages that can be built using the fourth stdenv.
-  stdenvLinuxBoot4Pkgs = allPackages {
-    inherit system platform;
-    bootStdenv = stdenvLinuxBoot4;
-  };
-
-
-  # 10) Construct the final stdenv.  It uses the Glibc and GCC, and
-  #     adds in a new binutils that doesn't depend on bootstrap-tools,
-  #     as well as dynamically linked versions of all other tools.
+  # Construct the final stdenv.  It uses the Glibc and GCC, and adds
+  # in a new binutils that doesn't depend on bootstrap-tools, as well
+  # as dynamically linked versions of all other tools.
   #
-  #     When updating stdenvLinux, make sure that the result has no
-  #     dependency (`nix-store -qR') on bootstrapTools or the
-  #     first binutils built.
+  # When updating stdenvLinux, make sure that the result has no
+  # dependency (`nix-store -qR') on bootstrapTools or the first
+  # binutils built.
   stdenvLinux = import ../generic rec {
     inherit system config;
 
@@ -268,35 +253,32 @@ rec {
       '';
 
     initialPath =
-      ((import ../common-path.nix) {pkgs = stdenvLinuxBoot4Pkgs;})
-      ++ [stdenvLinuxBoot4Pkgs.patchelf stdenvLinuxBoot4Pkgs.paxctl ];
-
-    gcc = wrapGCC rec {
-      inherit (stdenvLinuxBoot4Pkgs) binutils coreutils;
-      libc = stdenvLinuxGlibc;
-      gcc = stdenvLinuxBoot4.gcc.gcc;
-      shell = stdenvLinuxBoot4Pkgs.bash + "/bin/bash";
-      name = "";
-    };
+      ((import ../common-path.nix) {pkgs = stage4.pkgs;})
+      ++ [stage4.pkgs.patchelf stage4.pkgs.paxctl ];
+
+    shell = stage4.pkgs.bash + "/bin/bash";
 
-    shell = stdenvLinuxBoot4Pkgs.bash + "/bin/bash";
+    gcc = (wrapGCC rec {
+      gcc = stage4.stdenv.gcc.gcc;
+      libc = stage4.pkgs.glibc;
+      inherit (stage4.pkgs) binutils coreutils;
+      name = "";
+    }).override { inherit shell; };
 
-    fetchurlBoot = fetchurl;
+    inherit (stage4.stdenv) fetchurlBoot;
 
     extraAttrs = {
-      inherit (stdenvLinuxBoot3Pkgs) glibc;
+      inherit (stage4.pkgs) glibc;
       inherit platform bootstrapTools;
-      shellPackage = stdenvLinuxBoot4Pkgs.bash;
+      shellPackage = stage4.pkgs.bash;
     };
 
     overrides = pkgs: {
       inherit gcc;
-      inherit (stdenvLinuxBoot3Pkgs) glibc;
-      inherit (stdenvLinuxBoot4Pkgs) binutils;
-      inherit (stdenvLinuxBoot4Pkgs)
-        gzip bzip2 xz bash coreutils diffutils findutils gawk
-        gnumake gnused gnutar gnugrep gnupatch patchelf
-        attr acl paxctl;
+      inherit (stage4.pkgs)
+        gzip bzip2 xz bash binutils coreutils diffutils findutils gawk
+        glibc gnumake gnused gnutar gnugrep gnupatch patchelf
+        attr acl paxctl zlib;
     };
   };
 
diff --git a/pkgs/test/openftd/default.nix b/pkgs/test/openftd/default.nix
index 34cff9ac93f..91042fe0591 100644
--- a/pkgs/test/openftd/default.nix
+++ b/pkgs/test/openftd/default.nix
@@ -6,7 +6,7 @@ Systeemvereisten
 * glib >= 2.2.0
 * gtk >= 2.2.0
 
-Glib 2 is een 'dependancy' van gtk2. Als je gtk2 op je systeem hebt staan dan heb je ongetwijfeld ook glib2 op je systeem. Zie: www.gtk.org voor meer informatie omtrent Glib/gtk2
+Glib 2 is een 'dependency' van gtk2. Als je gtk2 op je systeem hebt staan dan heb je ongetwijfeld ook glib2 op je systeem. Zie: www.gtk.org voor meer informatie omtrent Glib/gtk2
 Alhoewel FTD4Linux gtk 2.2 als minimumvereiste heeft raden we toch aan om gtk 2.4 te gebruiken. Dit vanwege een bug in gtk versies 2.2.2 t/m 2.2.4.
 
 * libxml2 >= 2.2.5
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index a88c0b345d7..9ef93a30b68 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -1,32 +1,29 @@
 {stdenv, fetchurl}:
 
 let
-  version = "5.1.5";
+  version = "5.1.7";
 in
 stdenv.mkDerivation {
   name = "unrar-${version}";
 
   src = fetchurl {
     url = "http://www.rarlab.com/rar/unrarsrc-${version}.tar.gz";
-    sha256 = "1jrla255911rbl953br2xbgvyw15kpi11r4lpqm3jlw553ccw912";
+    sha256 = "13ida8vcamiagl40d9yfjma9k6givxczhx278f1p7bv9wgb8gfmc";
   };
 
-  patchPhase = ''
-    sed -i \
-      -e "/CXX=/d" \
-      -e "/CXXFLAGS=/d" \
-      makefile
-  '';
-
   installPhase = ''
-    mkdir -p $out/bin
-    cp unrar $out/bin
+    installBin unrar
+
+    mkdir -p $out/share/doc/unrar
+    cp acknow.txt license.txt \
+        $out/share/doc/unrar
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Utility for RAR archives";
-    license = "freeware";
-    maintainers = [ stdenv.lib.maintainers.emery ];
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; # arbitrary
+    homepage = http://www.rarlab.com/;
+    license = licenses.unfreeRedistributable;
+    maintainers = [ maintainers.emery ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/audio/gvolicon/default.nix b/pkgs/tools/audio/gvolicon/default.nix
index 69c62985154..9bf9ee0d224 100644
--- a/pkgs/tools/audio/gvolicon/default.nix
+++ b/pkgs/tools/audio/gvolicon/default.nix
@@ -19,9 +19,9 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A simple and lightweight volume icon that sits in your system tray.";
-    homepage = "https://github.com/Unia/gvolicon";
+    homepage = https://github.com/Unia/gvolicon;
     platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.gpl3Plus;
-    maintainers = stdenv.lib.maintainers.bennofs;
+    maintainers = [ stdenv.lib.maintainers.bennofs ];
   };
 }
\ No newline at end of file
diff --git a/pkgs/tools/audio/volumeicon/default.nix b/pkgs/tools/audio/volumeicon/default.nix
new file mode 100644
index 00000000000..0de3af28c19
--- /dev/null
+++ b/pkgs/tools/audio/volumeicon/default.nix
@@ -0,0 +1,23 @@
+{ pkgs, fetchurl, stdenv, gtk3, pkgconfig, intltool, alsaLib }:
+
+stdenv.mkDerivation rec {
+  name = "volumeicon-${version}";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "http://softwarebakery.com/maato/files/volumeicon/volumeicon-0.5.0.tar.gz";
+    sha256 = "10np3fvfzyxkjw0kfzg81a7kcxda1fz6nkqffkijbay5ksgigwg5";
+  };
+
+  buildInputs = [ gtk3 pkgconfig intltool alsaLib ];
+
+  meta = with stdenv.lib; {
+    description = "A lightweight volume control that sits in your systray.";
+    homepage = "http://softwarebakery.com/maato/volumeicon.html";
+    platforms = pkgs.lib.platforms.linux;
+    maintainers = with maintainers; [ bobvanderlinden ];
+    license = pkgs.lib.licenses.gpl3;
+  };
+
+}
+
diff --git a/pkgs/tools/backup/httrack/default.nix b/pkgs/tools/backup/httrack/default.nix
index 4df142afe3a..fc5b8330522 100644
--- a/pkgs/tools/backup/httrack/default.nix
+++ b/pkgs/tools/backup/httrack/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, zlib, openssl }:
 
 stdenv.mkDerivation rec {
-  version = "3.48.17";
+  version = "3.48.19";
   name = "httrack-${version}";
 
   src = fetchurl {
     url = "http://mirror.httrack.com/httrack-${version}.tar.gz";
-    sha256 = "03q8sk7qihw9x4bfgfhv6523khgj13nilqps28qy7ndpzpggw9vn";
+    sha256 = "1zlayvl6x0ck1g5rvmj7cc88w0an5f4y93r3g5l10hhhl87cvw0n";
   };
 
   buildInputs = [ zlib openssl ];
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.httrack.com";
     description = "Easy-to-use offline browser utility";
     license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
   };
 }
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 095337d1251..a9a167355ed 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -5,11 +5,11 @@
 }:
    
 stdenv.mkDerivation rec {
-  name = "blueman-1.21";
+  name = "blueman-1.23";
    
   src = fetchurl {
     url = "http://download.tuxfamily.org/blueman/${name}.tar.gz";
-    sha256 = "1bz31w0cqcl77r7vfjwm9c4gmk4hvq3nqn1pjnd5qndia2mhs846";
+    sha256 = "04ghlh4h5bwp9mqr5jxcmjm01595l5fq5561qxvf369fvjy63cjh";
   };
 
   configureFlags = "--disable-polkit";
diff --git a/pkgs/tools/cd-dvd/unetbootin/default.nix b/pkgs/tools/cd-dvd/unetbootin/default.nix
index 516f0750807..9c538842816 100644
--- a/pkgs/tools/cd-dvd/unetbootin/default.nix
+++ b/pkgs/tools/cd-dvd/unetbootin/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, makeWrapper, qt4, utillinux, coreutils, which, p7zip, mtools, syslinux }:
 
-let version = "603"; in
+let version = "608"; in
 
 stdenv.mkDerivation {
   name = "unetbootin-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/unetbootin/UNetbootin/${version}/unetbootin-source-${version}.tar.gz";
-    sha256 = "03nhy1w9q0ycpcni6w61ps1mji859nvmvr1bhnlzi04z0s5ldbwx";
+    sha256 = "1010ccdrblsjr5zid6wl3c3b75ld37lrr1a1xc6dlrhz1gvcb6ff";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index b644f46dff8..e1d7c26fa43 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -10,6 +10,9 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  # In stdenv-linux, prevent a dependency on bootstrap-tools.
+  preHook = "unset CONFIG_SHELL";
+
   meta = {
     homepage = http://tukaani.org/xz/;
     description = "XZ, general-purpose data compression software, successor of LZMA";
diff --git a/pkgs/tools/filesystems/btrfsprogs/default.nix b/pkgs/tools/filesystems/btrfsprogs/default.nix
index 02f214ad430..79566d15bb9 100644
--- a/pkgs/tools/filesystems/btrfsprogs/default.nix
+++ b/pkgs/tools/filesystems/btrfsprogs/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
     asciidoc xmlto docbook_xml_dtd_45 docbook_xsl libxslt
   ];
 
+  patches = [ ./multiple_mounts.patch ];
+
   # for btrfs to get the rpath to libgcc_s, needed for pthread_cancel to work
   NIX_CFLAGS_LINK = "-lgcc_s";
 
diff --git a/pkgs/tools/filesystems/btrfsprogs/multiple_mounts.patch b/pkgs/tools/filesystems/btrfsprogs/multiple_mounts.patch
new file mode 100644
index 00000000000..0ba6550a2d3
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfsprogs/multiple_mounts.patch
@@ -0,0 +1,13 @@
+Only in btrfs-progs-v3.16-orig: btrfs-progs-v3.16
+diff -U3 -r btrfs-progs-v3.16-orig/utils.c btrfs-progs-v3.16/utils.c
+--- btrfs-progs-v3.16-orig/utils.c	2014-09-03 09:57:45.644858545 +0400
++++ btrfs-progs-v3.16/utils.c	2014-09-03 09:59:26.968855663 +0400
+@@ -2360,7 +2360,7 @@
+ 		len = strlen(ent->mnt_dir);
+ 		if (strncmp(ent->mnt_dir, path, len) == 0) {
+ 			/* match found */
+-			if (longest_matchlen < len) {
++			if ((longest_matchlen < len) || (longest_matchlen==len && not_btrfs)) {
+ 				free(longest_match);
+ 				longest_matchlen = len;
+ 				longest_match = strdup(ent->mnt_dir);
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index c9078a0cb8b..e33f46ea9cc 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -6,17 +6,17 @@ let
   p = if stdenv.is64bit then {
       arch = "x86_64";
       gcclib = "${stdenv.gcc.gcc}/lib64";
-      sha256 = "1fmmlvvh97d60n9k08bn4k6ghwr3yhs8sib82025nwpw1sq08vim";
+      sha256 = "09kw7f0qsvx3vx1c1zb117yf3yk7kkz66agspz5xx9b0zh6i82jw";
     }
     else {
       arch = "i386";
       gcclib = "${stdenv.gcc.gcc}/lib";
-      sha256 = "3940420bd9d1fe1ecec1a117bfd9d21d545bca59f5e0a4364304ab808c976f7f";
+      sha256 = "0f2230c91120f05159281b39c620ab6bad6559ce8a17a0874d0a82350ebba426";
     };
 in 
 stdenv.mkDerivation rec {
 
-  name = "yandex-disk-0.1.2.481";
+  name = "yandex-disk-0.1.4.504";
 
   src = fetchurl {
     url = "http://repo.yandex.ru/yandex-disk/rpm/stable/${p.arch}/${name}-1.fedora.${p.arch}.rpm";
diff --git a/pkgs/tools/graphics/pngcrush/default.nix b/pkgs/tools/graphics/pngcrush/default.nix
index b27e5132804..0419732949d 100644
--- a/pkgs/tools/graphics/pngcrush/default.nix
+++ b/pkgs/tools/graphics/pngcrush/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libpng }:
 
 stdenv.mkDerivation rec {
-  name = "pngcrush-1.7.76";
+  name = "pngcrush-1.7.77";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmt/${name}-nolib.tar.xz";
-    sha256 = "0jbv3ijc0nfhy6pkhv4dwbk2v488rwixd8rv1c7lfs59wblb44hv";
+    sha256 = "0404275rb6934aiwrysgapg0irbimcb2y8giqlc63gfspnvy67fa";
   };
 
   configurePhase = ''
diff --git a/pkgs/tools/graphics/qrencode/default.nix b/pkgs/tools/graphics/qrencode/default.nix
index 892ef54cdee..936956cbd17 100644
--- a/pkgs/tools/graphics/qrencode/default.nix
+++ b/pkgs/tools/graphics/qrencode/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libpng, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "qrencode-3.4.3";
+  name = "qrencode-3.4.4";
 
   src = fetchurl {
     url = "${meta.homepage}/${name}.tar.bz2";
-    sha256 = "163sb580p570p27imc6jhkfdw15kzp8vy1jq92nip1rwa63i9myz";
+    sha256 = "198zvsfa2y5bb3ccikrhmhd4i43apr3b26dqcf3zkjyv3n5iirgg";
   };
 
   buildInputs = [ libpng ];
diff --git a/pkgs/tools/graphics/wkhtmltopdf/default.nix b/pkgs/tools/graphics/wkhtmltopdf/default.nix
index 84b271acf2b..2f3929b82b8 100644
--- a/pkgs/tools/graphics/wkhtmltopdf/default.nix
+++ b/pkgs/tools/graphics/wkhtmltopdf/default.nix
@@ -1,22 +1,88 @@
-{ stdenv, fetchurl, qt4 }:
+{ stdenv, fetchgit, qt4, fontconfig, freetype, libpng, zlib, libjpeg
+, openssl, libX11, libXext, libXrender, overrideDerivation }:
 
 stdenv.mkDerivation rec {
-  name = "wkhtmltopdf-0.11.0_rc1";
+  version = "0.12.1";
+  name = "wkhtmltopdf-${version}";
 
-  src = fetchurl {
-    url = "http://wkhtmltopdf.googlecode.com/files/${name}.tar.bz2";
-    sha1 = "db03922d281856e503b3d562614e3936285728c7";
+  src = fetchgit {
+    url = "https://github.com/wkhtmltopdf/wkhtmltopdf.git";
+    rev = "refs/tags/${version}";
+    sha256 = "0wjzaaviy1k3z8r2kzb2rmyx6xdj23a338b86sxcb15ws3kzwgwh";
   };
 
-  buildInputs = [ qt4 ];
+  wkQt = overrideDerivation qt4 (deriv: {
+    name = "qt-mod-4.8.6";
+    src = fetchgit {
+      url = "https://github.com/wkhtmltopdf/qt.git";
+      rev = "82b568b"; # From git submodule spec in wkhtml repo.
+      sha256 = "0whppwxnymh5bdayqsqx54n074m99yk6v78z7f0k5prja55yvwyx";
+    };
+    configureFlags =
+      ''
+        -v -no-separate-debug-info -release -confirm-license -opensource
+        -qdbus -glib -dbus-linked -openssl-linked
+      ''
+      + # This is taken from the wkhtml build script that we don't run
+      ''
+        -fast
+        -static
+        -exceptions
+        -xmlpatterns
+        -webkit
+        -system-zlib
+        -system-libpng
+        -system-libjpeg
+        -no-libmng
+        -no-libtiff
+        -no-accessibility
+        -no-stl
+        -no-qt3support
+        -no-phonon
+        -no-phonon-backend
+        -no-opengl
+        -no-declarative
+        -no-sql-ibase
+        -no-sql-mysql
+        -no-sql-odbc
+        -no-sql-psql
+        -no-sql-sqlite
+        -no-sql-sqlite2
+        -no-mmx
+        -no-3dnow
+        -no-sse
+        -no-sse2
+        -no-multimedia
+        -nomake demos
+        -nomake docs
+        -nomake examples
+        -nomake tools
+        -nomake tests
+        -nomake translations
+      '';
+  });
+
+  buildInputs = [ wkQt fontconfig freetype libpng zlib libjpeg openssl
+    libX11 libXext libXrender
+    ];
 
   configurePhase = "qmake wkhtmltopdf.pro INSTALLBASE=$out";
   
+  patches = [ ./makefix.patch ];
+
   enableParallelBuilding = true;
 
   meta = {
-    homepage = http://code.google.com/p/wkhtmltopdf/;
+    homepage = http://wkhtmltopdf.org/;
     description = "Tools for rendering web pages to PDF or images";
+    longDescription = ''
+      wkhtmltopdf and wkhtmltoimage are open source (LGPL) command line tools
+      to render HTML into PDF and various image formats using the QT Webkit
+      rendering engine. These run entirely "headless" and do not require a
+      display or display service.
+
+      There is also a C library, if you're into that kind of thing.
+    '';
     license = stdenv.lib.licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/tools/graphics/wkhtmltopdf/makefix.patch b/pkgs/tools/graphics/wkhtmltopdf/makefix.patch
new file mode 100644
index 00000000000..0642a23afa9
--- /dev/null
+++ b/pkgs/tools/graphics/wkhtmltopdf/makefix.patch
@@ -0,0 +1,24 @@
+diff -Naur a/src/image/image.pro b/src/image/image.pro
+--- a/src/image/image.pro	2014-08-28 14:07:51.024561967 +0200
++++ b/src/image/image.pro	2014-08-28 14:08:22.383623390 +0200
+@@ -25,7 +25,7 @@
+ 
+ unix {
+     man.path=$$INSTALLBASE/share/man/man1
+-    man.extra=LD_LIBRARY_PATH=../../bin/ ../../bin/wkhtmltoimage --manpage | gzip > $(INSTALL_ROOT)/share/man/man1/wkhtmltoimage.1.gz
++    man.extra=LD_LIBRARY_PATH=../../bin/ ../../bin/wkhtmltoimage --manpage | gzip > $$INSTALLBASE/share/man/man1/wkhtmltoimage.1.gz
+ 
+     QMAKE_EXTRA_TARGETS += man
+     INSTALLS += man
+diff -Naur a/src/pdf/pdf.pro b/src/pdf/pdf.pro
+--- a/src/pdf/pdf.pro	2014-08-28 14:10:02.305818775 +0200
++++ b/src/pdf/pdf.pro	2014-08-28 14:09:47.360789555 +0200
+@@ -25,7 +25,7 @@
+ 
+ unix {
+     man.path=$$INSTALLBASE/share/man/man1
+-    man.extra=LD_LIBRARY_PATH=../../bin/ ../../bin/wkhtmltopdf --manpage | gzip > $(INSTALL_ROOT)/share/man/man1/wkhtmltopdf.1.gz
++    man.extra=LD_LIBRARY_PATH=../../bin/ ../../bin/wkhtmltopdf --manpage | gzip > $$INSTALLBASE/share/man/man1/wkhtmltopdf.1.gz
+ 
+     QMAKE_EXTRA_TARGETS += man
+     INSTALLS += man
diff --git a/pkgs/tools/inputmethods/fcitx/default.nix b/pkgs/tools/inputmethods/fcitx/default.nix
index 2795b0d4d87..2db5d36a10d 100644
--- a/pkgs/tools/inputmethods/fcitx/default.nix
+++ b/pkgs/tools/inputmethods/fcitx/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "fcitx-4.2.8.3";
+  name = "fcitx-4.2.8.4";
 
   src = fetchurl {
     url = "http://download.fcitx-im.org/fcitx/${name}_dict.tar.xz";
-    sha256 = "05dw6cbjh2jyjrkr4qx2bcq6nyhhrs0akf6fcjk5a72bgphhwqnb";
+    sha256 = "1yhvqg4q0knywdrh8sljqjn1i72rd8ya0fr70pc0w7fq25013x37";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/inputmethods/fcitx/fcitx-anthy.nix b/pkgs/tools/inputmethods/fcitx/fcitx-anthy.nix
new file mode 100644
index 00000000000..2099220f2a1
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx/fcitx-anthy.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, cmake, fcitx, anthy }:
+
+stdenv.mkDerivation rec {
+  name = "fcitx-anthy-0.2.1";
+
+  meta = with stdenv.lib; {
+    description = "Fcitx Wrapper for anthy";
+    license     = licenses.gpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "http://download.fcitx-im.org/fcitx-anthy/${name}.tar.xz";
+    sha256 = "13fpfhhxkzbq53h10i3hifa37nngm47jq361i70z22bgcrs8887x";
+  };
+
+  buildInputs = [ cmake fcitx anthy ];
+
+  preInstall = ''
+    substituteInPlace src/cmake_install.cmake \
+      --replace ${fcitx} $out
+  '';
+}
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 1b6205db7ce..36d49ce9b23 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "ethtool-3.14";
+  name = "ethtool-3.15";
 
   src = fetchurl {
     url = "mirror://kernel/software/network/ethtool/${name}.tar.xz";
-    sha256 = "01v7a757757bk68vvap2x0v6jbqicchnjxvh52w8dccixxq2nkj3";
+    sha256 = "16kgw9y4fisldf1z6zpw3v965cc8nram0dycacwkc0js4l76klw8";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index 16c7f652dec..cc07ac95db8 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -2,11 +2,11 @@
 , pkgconfig, gtkmm, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "gparted-0.18.0";
+  name = "gparted-0.19.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gparted/${name}.tar.bz2";
-    sha256 = "0slyf0sbv7a7xvdcpn9ibnixpy0w4s6zwpz6sklkxcyfybw1j7xz";
+    sha256 = "1x0mbks94jpzphb8hm8w0iqjrn665jkdm4qnzrvxrnvy0x3m2fwd";
   };
 
   configureFlags = "--disable-doc";
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index b1877bdcf98..e5471a6c404 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,30 +1,52 @@
-{ fetchurl, stdenv, flex, bison, gettext, ncurses, libusb, freetype, qemu
-, devicemapper, EFIsupport ? false }:
-
+{ stdenv, fetchurl, fetchgit, autogen, flex, bison, python, autoconf, automake
+, gettext, ncurses, libusb, freetype, qemu, devicemapper
+, linuxPackages ? null
+, efiSupport ? false
+, zfsSupport ? false
+}:
+
+with stdenv.lib;
 let
+  efiSystems = {
+    "i686-linux".target = "i386";
+    "x86_64-linux".target = "x86_64";
+  };
 
-  prefix = "grub${if EFIsupport then "-efi" else ""}";
+  canEfi = any (system: stdenv.system == system) (mapAttrsToList (name: _: name) efiSystems);
 
-  version = "2.00";
+  prefix = "grub${if efiSupport then "-efi" else ""}${optionalString zfsSupport "-zfs"}";
+
+  version = "2.02-git-1de3a4";
 
   unifont_bdf = fetchurl {
     url = "http://unifoundry.com/unifont-5.1.20080820.bdf.gz";
     sha256 = "0s0qfff6n6282q28nwwblp5x295zd6n71kl43xj40vgvdqxv0fxx";
   };
 
-in
+  po_src = fetchurl {
+    name = "grub-2.02-beta2.tar.gz";
+    url = "http://alpha.gnu.org/gnu/grub/grub-2.02~beta2.tar.gz";
+    sha256 = "1lr9h3xcx0wwrnkxdnkfjwy08j7g7mdlmmbdip2db4zfgi69h0rm";
+  };
+
+in (
+
+assert efiSupport -> canEfi;
+assert zfsSupport -> linuxPackages != null && linuxPackages.zfs != null;
 
 stdenv.mkDerivation rec {
   name = "${prefix}-${version}";
 
-  src = fetchurl {
-    url = "mirror://gnu/grub/grub-${version}.tar.xz";
-    sha256 = "0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq";
+  src = fetchgit {
+    url = "git://git.savannah.gnu.org/grub.git";
+    rev = "1de3a48098053aaebd35232bd73e3ce3f3fdf51c";
+    sha256 = "0d1953nmi251czkm1dmd7vnm3iz2rkqbznlp6ph33va0d7kw1kfc";
   };
 
-  nativeBuildInputs = [ flex bison ];
+  nativeBuildInputs = [ autogen flex bison python autoconf automake ];
   buildInputs = [ ncurses libusb freetype gettext devicemapper ]
-    ++ stdenv.lib.optional doCheck qemu;
+    ++ optional doCheck qemu
+    ++ optional zfsSupport linuxPackages.zfs;
 
   preConfigure =
     '' for i in "tests/util/"*.in
@@ -43,27 +65,22 @@ stdenv.mkDerivation rec {
        # See <http://www.mail-archive.com/qemu-devel@nongnu.org/msg22775.html>.
        sed -i "tests/util/grub-shell.in" \
            -e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
-
-       # Fix for building on Glibc 2.16.  Won't be needed once the
-       # gnulib in grub is updated.
-       sed -i '/gets is a security hole/d' grub-core/gnulib/stdio.in.h
     '';
 
   prePatch =
-    '' gunzip < "${unifont_bdf}" > "unifont.bdf"
+    '' tar zxf ${po_src} grub-2.02~beta2/po
+       rm -rf po
+       mv grub-2.02~beta2/po po
+       sh autogen.sh
+       gunzip < "${unifont_bdf}" > "unifont.bdf"
        sed -i "configure" \
            -e "s|/usr/src/unifont.bdf|$PWD/unifont.bdf|g"
     '';
 
   patches = [ ./fix-bash-completion.patch ];
 
-  configureFlags =
-    let arch = if stdenv.system == "i686-linux" then "i386"
-               else if stdenv.system == "x86_64-linux" then "x86_64"
-               else throw "unsupported EFI firmware architecture";
-    in
-      stdenv.lib.optionals EFIsupport
-        [ "--with-platform=efi" "--target=${arch}" "--program-prefix=" ];
+  configureFlags = optional zfsSupport "--enable-libzfs"
+    ++ optionals efiSupport [ "--with-platform=efi" "--target=${efiSystems.${stdenv.system}.target}" "--program-prefix=" ];
 
   doCheck = false;
   enableParallelBuilding = true;
@@ -72,7 +89,7 @@ stdenv.mkDerivation rec {
     paxmark pms $out/sbin/grub-{probe,bios-setup}
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "GNU GRUB, the Grand Unified Boot Loader (2.x beta)";
 
     longDescription =
@@ -89,11 +106,8 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnu.org/software/grub/;
 
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
 
-    platforms = if EFIsupport then
-      [ "i686-linux" "x86_64-linux" ]
-    else
-      stdenv.lib.platforms.gnu;
+    platforms = platforms.gnu;
   };
-}
+})
diff --git a/pkgs/tools/misc/ised/default.nix b/pkgs/tools/misc/ised/default.nix
index 02cb65b1060..96acc6c8ab9 100644
--- a/pkgs/tools/misc/ised/default.nix
+++ b/pkgs/tools/misc/ised/default.nix
@@ -10,16 +10,15 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="ised";
-    version="2.5.0";
+    version = "2.6.0";
     name="${baseName}-${version}";
     url="mirror://sourceforge/project/ised/${name}.tar.bz2";
-    hash="1avfb4ivq6iz50rraci0pcxl0w94899sz6icdqc0l4954y4zs8qd";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "0rf9brqkrad8f3czpfc1bxq9ybv3nxci9276wdxas033c82cqkjs";
   };
 
   inherit (sourceInfo) name version;
@@ -37,11 +36,7 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.gpl3Plus;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "ised.sf.net";
-    };
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/tools/misc/ised/default.upstream b/pkgs/tools/misc/ised/default.upstream
new file mode 100644
index 00000000000..6539bf477e5
--- /dev/null
+++ b/pkgs/tools/misc/ised/default.upstream
@@ -0,0 +1,4 @@
+url http://ised.sourceforge.net/web_nav.html
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/pkgs/tools/misc/mdbtools/git.nix b/pkgs/tools/misc/mdbtools/git.nix
index 2805514965e..b97af331093 100644
--- a/pkgs/tools/misc/mdbtools/git.nix
+++ b/pkgs/tools/misc/mdbtools/git.nix
@@ -3,12 +3,13 @@
   scrollkeeper}:
 
 stdenv.mkDerivation {
-  name = "mdbtools-git";
+  name = "mdbtools-git-2014-07-25";
 
   src = fetchgit {
     url = "http://github.com/brianb/mdbtools.git";
-    rev = "dfd752ec022097ee1e0999173aa604d8a0c0ca8b";
-    sha256 = "0ibj36yxlhwjgi7cj170lwpbzdbgidkq5p8raa59v76bdrxwmb0n";
+    rev = "9ab40e83e6789015c965c92bdb62f92f8cdd0dbd";
+    sha256 = "18j1a9y9xhl7hhx30zvmx2n4w7dc8c7sdr6722sf3mh5230mvv59";
+    name = "mdbtools-git-export";
   };
 
   buildInputs = [glib readline bison flex pkgconfig libiconv autoconf automake
diff --git a/pkgs/tools/misc/memtest86/default.nix b/pkgs/tools/misc/memtest86/default.nix
index ebf0a89a707..6fccff7781d 100644
--- a/pkgs/tools/misc/memtest86/default.nix
+++ b/pkgs/tools/misc/memtest86/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "memtest86-4.3.3";
+  name = "memtest86-4.3.6";
   
   src = fetchurl {
-    url = http://www.memtest86.com/downloads/memtest86-4.3.3-src.tar.gz;
-    sha256 = "1fzpk0s97lx8h1wbv2bgr6m8v4ag8i58kzr8fa25bvwyl8hks9sl";
+    url = http://www.memtest86.com/downloads/memtest86-4.3.6-src.tar.gz;
+    sha256 = "0qbksyl2hmkm12n7zbmf2m2n3q811skhykxx6a9a7y6r7k8y5qmv";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/misc/mstflint/default.nix b/pkgs/tools/misc/mstflint/default.nix
new file mode 100644
index 00000000000..32953483daa
--- /dev/null
+++ b/pkgs/tools/misc/mstflint/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, zlib, libibmad }:
+
+stdenv.mkDerivation {
+  name = "mstflint-3.7.0-1.18";
+
+  src = fetchurl {
+    url = "https://www.openfabrics.org/downloads/mstflint/mstflint-3.7.0-1.18.gcdb9f80.tar.gz";
+    sha256 = "10x4l3i58ynnni18i8qq1gfbqd2028r4jd3frshiwrl9yrj7sxn2";
+  };
+
+  buildInputs = [ zlib libibmad ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.openfabrics.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index a8b6e046a9b..0af7143a320 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl } :
 
 stdenv.mkDerivation rec {
-  name = "pv-1.5.3";
+  name = "pv-1.5.7";
 
   src = fetchurl {
     url = "http://www.ivarch.com/programs/sources/${name}.tar.bz2";
-    sha256 = "03prg025kzivl1a5xqlf45szpnpqrmkzcvnf7lb2fc1v3jdrkwvn";
+    sha256 = "15srxzyssr8l25bl3rws476nx3fl58bdlh55gyv8cc3hpdhm0ly8";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix
new file mode 100644
index 00000000000..f8e7dfaddc9
--- /dev/null
+++ b/pkgs/tools/misc/s6-portable-utils/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, skalibs }:
+
+let
+
+  version = "1.0.3.2";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-portable-utils-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6-portable-utils/${name}.tar.gz";
+    sha256 = "040nmls7qbgw8yn502lym4kgqh5zxr2ks734bqajpi2ricnasvhl";
+  };
+
+  buildInputs = [ skalibs ];
+
+  sourceRoot = "admin/${name}";
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"           > conf-install-command
+    printf "$out/libexec"       > conf-install-libexec
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps"      > import
+    printf "%s" "${skalibs}/include" > path-include
+    printf "%s" "${skalibs}/lib"     > path-library
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/libexec"
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6-portable-utils/;
+    description = "A set of tiny general Unix utilities optimized for simplicity and small size.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/tools/misc/screenfetch/default.nix b/pkgs/tools/misc/screenfetch/default.nix
index 0ebc712fcf0..826f4e4d869 100644
--- a/pkgs/tools/misc/screenfetch/default.nix
+++ b/pkgs/tools/misc/screenfetch/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchgit, xdpyinfo, xprop }:
 
 let
-  version = "2014-05-27";
+  version = "3.6.2";
 in
 stdenv.mkDerivation {
   name = "screenFetch-${version}";
@@ -9,8 +9,8 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = git://github.com/KittyKatt/screenFetch.git;
-    rev = "69c46cb94b5765dbcb36905c5a35c42eb8e6e470";
-    sha256 = "0479na831120bpyrg5nb3nb1jr8p8ahkixk1znwg730q3vdcjd6j";
+    rev = "dec1cd6c2471defe4459967fbc8ae15b55714338";
+    sha256 = "138a7g0za5dq27jx7x8gqg7gjkgyq0017v0nbcg68ys7dqlxsdl3";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/sutils/default.nix b/pkgs/tools/misc/sutils/default.nix
index 6d2bee23813..53945113e7f 100644
--- a/pkgs/tools/misc/sutils/default.nix
+++ b/pkgs/tools/misc/sutils/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
 
    meta = {
      description = "Small command-line utilities.";
-     homepage = "https://github.com/baskerville/sutils";
-     maintainers = stdenv.lib.maintainers.meisternu;
+     homepage = https://github.com/baskerville/sutils;
+     maintainers = [ stdenv.lib.maintainers.meisternu ];
      license = "Custom";
      platforms = stdenv.lib.platforms.linux;
    };
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
index 79c6a743bce..df1a7eedeff 100644
--- a/pkgs/tools/misc/xdaliclock/default.nix
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -12,17 +12,16 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="xdaliclock";
-    version="2.40";
+    version = "2.41";
     name="${baseName}-${version}";
     project="${baseName}";
     url="http://www.jwz.org/${project}/${name}.tar.gz";
-    hash="03i8vwi9vz3gr938wr4miiymwv283mg11wgfaf2jhl6aqbmz4id7";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "1crkjvza692irkqm9vwgn58m8ps93n0rxigm6pasgl5dnx3p6d1d";
   };
 
   inherit (sourceInfo) name version;
@@ -46,10 +45,8 @@ rec {
     platforms = with a.lib.platforms;
       linux ++ freebsd;
     license = "free"; #TODO BSD on Gentoo, looks like MIT
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://www.jwz.org/xdaliclock/";
-    };
+    downloadPage = "http://www.jwz.org/xdaliclock/";
+    inherit version;
+    updateWalker = true;
   };
 }) x
diff --git a/pkgs/tools/misc/xdo/default.nix b/pkgs/tools/misc/xdo/default.nix
index 9a059c9dbb5..e7a3d91967e 100644
--- a/pkgs/tools/misc/xdo/default.nix
+++ b/pkgs/tools/misc/xdo/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
 
    meta = {
      description = "Small X utility to perform elementary actions on windows";
-     homepage = "https://github.com/baskerville/xdo";
-     maintainers = stdenv.lib.maintainers.meisternu;
+     homepage = https://github.com/baskerville/xdo;
+     maintainers = [ stdenv.lib.maintainers.meisternu ];
      license = "Custom";
      platforms = stdenv.lib.platforms.linux;
    };
diff --git a/pkgs/tools/misc/xtitle/default.nix b/pkgs/tools/misc/xtitle/default.nix
index ca8be4c08ea..600f40a67b7 100644
--- a/pkgs/tools/misc/xtitle/default.nix
+++ b/pkgs/tools/misc/xtitle/default.nix
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
 
    meta = {
      description = "Outputs X window titles";
-     homepage = "https://github.com/baskerville/xtitle";
-     maintainers = stdenv.lib.maintainers.meisternu;
+     homepage = https://github.com/baskerville/xtitle;
+     maintainers = [ stdenv.lib.maintainers.meisternu ];
      license = "Custom";
      platforms = stdenv.lib.platforms.linux;
    };
diff --git a/pkgs/tools/networking/atftp/default.nix b/pkgs/tools/networking/atftp/default.nix
index b6bdfc7fabc..8524a964f15 100644
--- a/pkgs/tools/networking/atftp/default.nix
+++ b/pkgs/tools/networking/atftp/default.nix
@@ -4,31 +4,31 @@ assert stdenv.gcc.gcc != null;
 let
 version = "0.7";
 debianPatch = fetchurl {
-url = "mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg-11.diff.gz";
-sha256 = "07g4qbmp0lnscg2dkj6nsj657jaghibvfysdm1cdxcn215n3zwqd";
+  url = "mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg-11.diff.gz";
+  sha256 = "07g4qbmp0lnscg2dkj6nsj657jaghibvfysdm1cdxcn215n3zwqd";
 };
 in
 stdenv.mkDerivation {
-name = "atftp";
-inherit version;
-src = fetchurl {
-url = "mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg.orig.tar.gz";
-sha256 = "0nd5dl14d6z5abgcbxcn41rfn3syza6s57bbgh4aq3r9cxdmz08q";
-};
-buildInputs = [ readline tcp_wrappers pcre makeWrapper ];
-patches = [ debianPatch ];
-postInstall = ''
-wrapProgram $out/sbin/atftpd --prefix LD_LIBRARY_PATH : ${stdenv.gcc.gcc}/lib${if stdenv.system == "x86_64-linux" then "64" else ""}
-'';
-meta = {
-description = "Advanced tftp tools";
-maintainers = lib.maintainers.raskin;
-platforms = lib.platforms.linux;
-license = lib.licenses.gpl2Plus;
-passthru = {
-updateInfo = {
-downloadPage = "http://packages.debian.org/source/wheezy/atftp";
-};
-};
+  name = "atftp";
+  inherit version;
+  src = fetchurl {
+    url = "mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg.orig.tar.gz";
+    sha256 = "0nd5dl14d6z5abgcbxcn41rfn3syza6s57bbgh4aq3r9cxdmz08q";
+  };
+  buildInputs = [ readline tcp_wrappers pcre makeWrapper ];
+  patches = [ debianPatch ];
+  postInstall = ''
+    wrapProgram $out/sbin/atftpd --prefix LD_LIBRARY_PATH : ${stdenv.gcc.gcc}/lib${if stdenv.system == "x86_64-linux" then "64" else ""}
+  '';
+  meta = {
+    description = "Advanced tftp tools";
+    maintainers = [ lib.maintainers.raskin ];
+    platforms = lib.platforms.linux;
+    license = lib.licenses.gpl2Plus;
+    passthru = {
+      updateInfo = {
+      downloadPage = "http://packages.debian.org/source/wheezy/atftp";
+    };
+  };
 };
 }
diff --git a/pkgs/tools/networking/curl-unix-socket/default.nix b/pkgs/tools/networking/curl-unix-socket/default.nix
new file mode 100644
index 00000000000..88d75ba570e
--- /dev/null
+++ b/pkgs/tools/networking/curl-unix-socket/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, go }:
+
+stdenv.mkDerivation {
+  name = "curl-unix-socket";
+
+  src = fetchFromGitHub {
+    owner = "Soulou";
+    repo = "curl-unix-socket";
+    rev = "e926dca77ba7d4a1eeae073918fdd3db92f1a350";
+    sha256 = "1ynrrav90y3dhk8jq2fxm3jswj5nvrffwslgykj429hk6n0czb3d";
+  };
+
+  buildInputs = [ go ];
+  buildPhase = "go build";
+  installPhase = "install -D curl-unix-socket* $out/bin/curl-unix-socket";
+
+  meta = with stdenv.lib; {
+    description = "Run HTTP requests over UNIX socket";
+    license = licenses.mit;
+    homepage = https://github.com/Soulou/curl-unix-socket;
+    maintainers = with maintainers; [offline];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index 8e93c424cb1..451e2954f40 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, udev }:
 
 stdenv.mkDerivation rec {
-  name = "dhcpcd-6.4.2";
+  name = "dhcpcd-6.4.3";
 
   src = fetchurl {
     url = "http://roy.marples.name/downloads/dhcpcd/${name}.tar.bz2";
-    sha256 = "1dr08aqvazg4ncq5p93v6givwh7naj75dn2npgplf3dl2fg9zfzf";
+    sha256 = "175bsmif76vigzljc4rpcjs5skx171y1bl37aj0w66p8krhh3b9n";
   };
 
   patches = [ /* ./lxc_ro_promote_secondaries.patch */ ];
diff --git a/pkgs/tools/networking/fping/default.nix b/pkgs/tools/networking/fping/default.nix
index 10f31fb8297..c71f6b04084 100644
--- a/pkgs/tools/networking/fping/default.nix
+++ b/pkgs/tools/networking/fping/default.nix
@@ -1,15 +1,16 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "fping-3.8";
+  name = "fping-3.10";
 
   src = fetchurl {
     url = "http://www.fping.org/dist/${name}.tar.gz";
-    sha256 = "04iwj4x3wns09wp777mb3kwfi7ypb4m9m73p0s2y699px77hcx67";
+    sha256 = "1n2psfxgww6wg5rz8rly06xkghgp8lshx2lx6rramrigyd1fhiyd";
   };
 
   meta = {
     homepage = "http://fping.org/";
     description = "Send ICMP echo probes to network hosts";
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
   };
 }
diff --git a/pkgs/tools/networking/getmail/default.nix b/pkgs/tools/networking/getmail/default.nix
index 6d9666506b8..8c9103790b9 100644
--- a/pkgs/tools/networking/getmail/default.nix
+++ b/pkgs/tools/networking/getmail/default.nix
@@ -1,12 +1,13 @@
 { stdenv, fetchurl, buildPythonPackage }:
 
 buildPythonPackage rec {
-  name = "getmail-4.43.0";
+  version = "4.46.0";
+  name = "getmail-${version}";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://pyropus.ca/software/getmail/old-versions/${name}.tar.gz";
-    sha256 = "0abcj4d2jp9y56c85kq7265d8wcij91w9lpzib9q6j9lcs4la8hy";
+    sha256 = "15rqmm25pq6ll8aaqh8h6pfdkpqs7y6yismb3h3w1bz8j292c8zl";
   };
 
   doCheck = false;
@@ -15,5 +16,9 @@ buildPythonPackage rec {
     description = "A program for retrieving mail";
     maintainers = [ stdenv.lib.maintainers.raskin stdenv.lib.maintainers.iElectric ];
     platforms = stdenv.lib.platforms.linux;
+
+    homepage = "http://pyropus.ca/software/getmail/";
+    inherit version;
+    updateWalker = true;
   };
 }
diff --git a/pkgs/tools/networking/iftop/default.nix b/pkgs/tools/networking/iftop/default.nix
index c40764866eb..cb1bf546bf6 100644
--- a/pkgs/tools/networking/iftop/default.nix
+++ b/pkgs/tools/networking/iftop/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     homepage = http://ex-parrot.com/pdw/iftop/;
     platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index fec6679a14b..a894de64758 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -10,8 +10,8 @@ assert withKerberos -> kerberos != null;
 let
 
   hpnSrc = fetchurl {
-    url = mirror://sourceforge/hpnssh/openssh-6.3p1-hpnssh14v2.diff.gz;
-    sha256 = "1jldqjwry9qpxxzb3mikfmmmv90mfb7xkmcfdbvwqac6nl3r7bi3";
+    url = mirror://sourceforge/hpnssh/openssh-6.6p1-hpnssh14v5.diff.gz;
+    sha256 = "682b4a6880d224ee0b7447241b684330b731018585f1ba519f46660c10d63950";
   };
   optionalString = stdenv.lib.optionalString;
 
@@ -83,6 +83,5 @@ stdenv.mkDerivation rec {
     license = "bsd"; # multi BSD GPL-2
     platforms = platforms.unix;
     maintainers = with maintainers; [ eelco ];
-    broken = hpnSupport; # cf. https://github.com/NixOS/nixpkgs/pull/1640
   };
 }
diff --git a/pkgs/tools/networking/p2p/bittorrent/builder.sh b/pkgs/tools/networking/p2p/bittorrent/builder.sh
deleted file mode 100644
index 3f30aa5c851..00000000000
--- a/pkgs/tools/networking/p2p/bittorrent/builder.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-source $stdenv/setup
-
-
-# Workaround for:
-#  File "...-python-2.4.4/lib/python2.4/posixpath.py", line 62, in join
-#    elif path == '' or path.endswith('/'):
-# AttributeError: 'NoneType' object has no attribute 'endswith'
-export HOME=$TMP
-
-
-buildPhase() {
-    python setup.py build
-}
-
-
-installPhase() {
-    python setup.py install --prefix=$out
-
-    # Create wrappers that set the environment correctly.
-    for i in $(cd $out/bin && ls); do
-        wrapProgram $out/bin/$i \
-            --set PYTHONPATH "$(toPythonPath $out):$PYTHONPATH"
-    done
-}
-
-
-genericBuild
diff --git a/pkgs/tools/networking/p2p/bittorrent/default.nix b/pkgs/tools/networking/p2p/bittorrent/default.nix
deleted file mode 100644
index 1d4f43445bf..00000000000
--- a/pkgs/tools/networking/p2p/bittorrent/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ gui ? false
-, stdenv, fetchurl, makeWrapper
-, python, wxPython ? null, pycrypto, twisted
-}:
-
-assert gui -> wxPython != null;
-
-stdenv.mkDerivation {
-  name = "bittorrent-5.2.2";
-  
-  builder = ./builder.sh;
-  
-  src = fetchurl {
-    url = http://download.bittorrent.com/dl/archive/BitTorrent-5.2.2.tar.gz;
-    sha256 = "05k803hbwsyn51j4aibzdsnqxz24kw4rvr60v2c0wji8gcvy3kx9";
-  };
-  
-  buildInputs = [ python pycrypto twisted makeWrapper ]
-    ++ stdenv.lib.optional gui wxPython;
-
-  meta = {
-    description = "The original client for the BitTorrent peer-to-peer file sharing protocol";
-  };
-}
diff --git a/pkgs/tools/networking/radvd/default.nix b/pkgs/tools/networking/radvd/default.nix
index e74106ec67f..fa0a87099ae 100644
--- a/pkgs/tools/networking/radvd/default.nix
+++ b/pkgs/tools/networking/radvd/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libdaemon, bison, flex, check }:
 
 stdenv.mkDerivation rec {
-  name = "radvd-2.5";
+  name = "radvd-2.6";
   
   src = fetchurl {
     url = "http://www.litech.org/radvd/dist/${name}.tar.xz";
-    sha256 = "0hsa647l236q9rhrwjb44xqmjfz4fxzcixlbf2chk4lzh8lzwjp0";
+    sha256 = "1vp86a2jcrrbyc62rglby3nx11i8rz5bsxbh6bp6049a0s9m4k4r";
   };
 
   buildInputs = [ pkgconfig libdaemon bison flex check ];
diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix
new file mode 100644
index 00000000000..3165434de3d
--- /dev/null
+++ b/pkgs/tools/networking/s6-dns/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, skalibs }:
+
+let
+
+  version = "0.1.0.0";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-dns-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6-dns/${name}.tar.gz";
+    sha256 = "1r82l5fnz2rrwm5wq2sldqp74lk9fifr0d8hyq98xdyh24hish68";
+  };
+
+  buildInputs = [ skalibs ];
+
+  sourceRoot = "web/${name}";
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"           > conf-install-command
+    printf "$out/include"       > conf-install-include
+    printf "$out/lib"           > conf-install-library
+    printf "$out/lib"           > conf-install-library.so
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps"      > import
+    printf "%s" "${skalibs}/include" > path-include
+    printf "%s" "${skalibs}/lib"     > path-library
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6-dns/;
+    description = "A suite of DNS client programs and libraries for Unix systems.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix
new file mode 100644
index 00000000000..3d5e3e04811
--- /dev/null
+++ b/pkgs/tools/networking/s6-networking/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, execline
+, fetchurl
+, s6Dns
+, skalibs
+}:
+
+let
+
+  version = "0.1.0.0";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-networking-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6-networking/${name}.tar.gz";
+    sha256 = "1np9m2j1i2450mbcjvpbb56kv3wc2fbyvmv2a039q61j2lk6vjz7";
+  };
+
+  buildInputs = [ skalibs s6Dns execline ];
+
+  sourceRoot = "net/${name}";
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"           > conf-install-command
+    printf "$out/include"       > conf-install-include
+    printf "$out/lib"           > conf-install-library
+    printf "$out/lib"           > conf-install-library.so
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps"      > import
+
+    rm -f path-include
+    rm -f path-library
+    for dep in "${execline}" "${s6Dns}" "${skalibs}"; do
+      printf "%s\n" "$dep/include" >> path-include
+      printf "%s\n" "$dep/lib"     >> path-library
+    done
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6-networking/;
+    description = "A suite of small networking utilities for Unix systems.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/tools/networking/socat/2.x.nix b/pkgs/tools/networking/socat/2.x.nix
index fbd24946381..9f9e8dbe374 100644
--- a/pkgs/tools/networking/socat/2.x.nix
+++ b/pkgs/tools/networking/socat/2.x.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     repositories.git = git://repo.or.cz/socat.git;
     platforms = stdenv.lib.platforms.unix;
     license = stdenv.lib.licenses.gpl2;
-    maintainers = stdenv.lib.maintainers.eelco;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
   };
 }
diff --git a/pkgs/tools/networking/socat/default.nix b/pkgs/tools/networking/socat/default.nix
index 84ba2106a26..e33edaa32da 100644
--- a/pkgs/tools/networking/socat/default.nix
+++ b/pkgs/tools/networking/socat/default.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     repositories.git = git://repo.or.cz/socat.git;
     platforms = stdenv.lib.platforms.unix;
     license = stdenv.lib.licenses.gpl2;
-    maintainers = stdenv.lib.maintainers.eelco;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
   };
 }
diff --git a/pkgs/tools/networking/sproxy-web/default.nix b/pkgs/tools/networking/sproxy-web/default.nix
index fa3221a7759..67daab08359 100644
--- a/pkgs/tools/networking/sproxy-web/default.nix
+++ b/pkgs/tools/networking/sproxy-web/default.nix
@@ -22,5 +22,6 @@ cabal.mkDerivation (self: {
     description = "Web interface to sproxy";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    broken = true;
   };
 })
diff --git a/pkgs/tools/networking/sshpass/default.nix b/pkgs/tools/networking/sshpass/default.nix
new file mode 100644
index 00000000000..3a8e106155f
--- /dev/null
+++ b/pkgs/tools/networking/sshpass/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "sshpass-${version}";
+  version = "1.05";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/sshpass/sshpass-${version}.tar.gz";
+    sha256 = "0gj8r05h1hy01vh4csygyw21z2hcxb72qcxkxxi3y34alr98gxy3";
+  };
+  
+  meta = {
+    homepage = http://sourceforge.net/projects/sshpass/;
+    description = "Non-interactive ssh password auth";
+    maintainers = [ stdenv.lib.maintainers.madjar ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/tcpdump/default.nix b/pkgs/tools/networking/tcpdump/default.nix
index ed295e95a38..2db270c3f66 100644
--- a/pkgs/tools/networking/tcpdump/default.nix
+++ b/pkgs/tools/networking/tcpdump/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     description = "Network sniffer";
     homepage = http://www.tcpdump.org/;
     license = "BSD-style";
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 }
diff --git a/pkgs/tools/networking/tinc/pre.nix b/pkgs/tools/networking/tinc/pre.nix
new file mode 100644
index 00000000000..030cb30a150
--- /dev/null
+++ b/pkgs/tools/networking/tinc/pre.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, autoreconfHook, texinfo, ncurses, readline, zlib, lzo, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "tinc-1.1pre38d7e73";
+
+  src = fetchgit {
+    url = "git://tinc-vpn.org/tinc";
+    rev = "38d7e730e619a8b86dfbf68d77773564595f12a1";
+    sha256 = "0xac1jm6x9lkybd6sz8lfcdrb8h69kh1ckg35ag1rssr45hxikbz";
+  };
+
+  buildInputs = [ autoreconfHook texinfo ncurses readline zlib lzo openssl ];
+
+  configureFlags = [
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "VPN daemon with full mesh routing";
+    longDescription = ''
+      tinc is a Virtual Private Network (VPN) daemon that uses tunnelling and
+      encryption to create a secure private network between hosts on the
+      Internet.  It features full mesh routing, as well as encryption,
+      authentication, compression and ethernet bridging.
+    '';
+    homepage="http://www.tinc-vpn.org/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index 4843f07c8f2..1be71942e70 100644
--- a/pkgs/tools/networking/urlwatch/default.nix
+++ b/pkgs/tools/networking/urlwatch/default.nix
@@ -12,6 +12,10 @@ python3Packages.buildPythonPackage rec {
     ./convert-to-python3.sh
   '';
 
+  postFixup = ''
+    wrapProgram "$out/bin/urlwatch" --prefix "PYTHONPATH" : "$PYTHONPATH"
+  '';
+
   meta = {
     description = "A tool for monitoring webpages for updates";
     homepage = https://thp.io/2008/urlwatch/;
diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix
index e9c102817e1..b5927fd2478 100644
--- a/pkgs/tools/networking/wavemon/default.nix
+++ b/pkgs/tools/networking/wavemon/default.nix
@@ -11,16 +11,15 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="wavemon";
-    version="0.7.5";
+    version = "0.7.6";
     name="${baseName}-${version}";
     url="http://eden-feed.erg.abdn.ac.uk/wavemon/stable-releases/${name}.tar.bz2";
-    hash="0b1fx00aar2fsw49a10w5bpiyjpz8h8f4nrlwb1acfw36yi1pfkd";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "18cwlzgmwzy7z9dfr6lwd8kmkv0pqiihizm4gi0kkm52bzz6836y";
   };
 
   inherit (sourceInfo) name version;
@@ -38,11 +37,9 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.gpl2Plus;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://eden-feed.erg.abdn.ac.uk/wavemon/";
-    };
+    downloadPage = "http://eden-feed.erg.abdn.ac.uk/wavemon/";
+    inherit version;
+    updateWalker = true;
   };
 }) x
 
diff --git a/pkgs/tools/package-management/disnix/default.nix b/pkgs/tools/package-management/disnix/default.nix
index 61e998fd545..b6b88aef022 100644
--- a/pkgs/tools/package-management/disnix/default.nix
+++ b/pkgs/tools/package-management/disnix/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, dbus_glib, libxml2, libxslt, getopt, nixUnstable, dysnomia, libintlOrEmpty, libiconvOrEmpty }:
 
 stdenv.mkDerivation {
-  name = "disnix-0.3pre174e883b7b09da822494876d2f297736f33707a7";
+  name = "disnix-0.3pre24d959b3b37ce285971810245643a7f18cb85fcc";
   
   src = fetchurl {
-    url = http://hydra.nixos.org/build/11773951/download/4/disnix-0.3pre174e883b7b09da822494876d2f297736f33707a7.tar.gz;
-    sha256 = "19hdh2mrlyiq1g3z6lnnqqvripmfcdnm18jpm4anp5iarhnwh3y4";
+    url = http://hydra.nixos.org/build/13612993/download/4/disnix-0.3pre24d959b3b37ce285971810245643a7f18cb85fcc.tar.gz;
+    sha256 = "0ml8g6h7x79mvv84il9vb9b88kqak9m3yzavmar66i3dvyqr1dwb";
   };
   
   buildInputs = [ pkgconfig dbus_glib libxml2 libxslt getopt nixUnstable libintlOrEmpty libiconvOrEmpty dysnomia ];
diff --git a/pkgs/tools/package-management/disnix/disnixos/default.nix b/pkgs/tools/package-management/disnix/disnixos/default.nix
index 65ae91f6e18..0190a5fd679 100644
--- a/pkgs/tools/package-management/disnix/disnixos/default.nix
+++ b/pkgs/tools/package-management/disnix/disnixos/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, disnix, socat, pkgconfig, getopt }:
 
 stdenv.mkDerivation {
-  name = "disnixos-0.2prebb320d396f93d7062c28d6a54105d8e8196b9d99";
+  name = "disnixos-0.2prec3310e2d8975c45e4ffacec940049fb781739b8d";
   
   src = fetchurl {
-    url = http://hydra.nixos.org/build/9877039/download/3/disnixos-0.2preb10c56eeb1be3046645eea90c779e2d64045581f.tar.gz;
-    sha256 = "1pkpf6vp9q3jjp212lghbs1km8iqh4rm9xa5jm0dqb5ya25f0jf2";
+    url = http://hydra.nixos.org/build/13617499/download/3/disnixos-0.2prec3310e2d8975c45e4ffacec940049fb781739b8d.tar.gz;
+    sha256 = "1kcpzzwy9jc1zz700whnp6sc77yp3wxzr935f07jy55ddkl8mdi5";
   };
   
   buildInputs = [ socat pkgconfig disnix getopt ];
diff --git a/pkgs/tools/package-management/disnix/dysnomia/default.nix b/pkgs/tools/package-management/disnix/dysnomia/default.nix
index a1914224dbd..574bf8f9ab3 100644
--- a/pkgs/tools/package-management/disnix/dysnomia/default.nix
+++ b/pkgs/tools/package-management/disnix/dysnomia/default.nix
@@ -19,10 +19,10 @@ assert enableEjabberdDump -> ejabberd != null;
 assert enableMongoDatabase -> mongodb != null;
 
 stdenv.mkDerivation {
-  name = "dysnomia-0.3pre09cc08f5ffc737d988923bb7329a7ec711badd82";
+  name = "dysnomia-0.3precf347cbd508f488f115f8961371a3cecf03fd530";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/11407191/download/1/dysnomia-0.3pre09cc08f5ffc737d988923bb7329a7ec711badd82.tar.gz;
-    sha256 = "1i7yb299bq1z7cy4sk83m5faahj8inh73xn5bi6jcv492zv3kgwz";
+    url = http://hydra.nixos.org/build/13281061/download/1/dysnomia-0.3precf347cbd508f488f115f8961371a3cecf03fd530.tar.gz;
+    sha256 = "0xiqpz2c3dh4pbdprvrd7plvq3ipngqbjkwpmbhw1nw90x5rpa2d";
   };
   
   preConfigure = if enableEjabberdDump then "export PATH=$PATH:${ejabberd}/sbin" else "";
diff --git a/pkgs/tools/package-management/dpkg/default.nix b/pkgs/tools/package-management/dpkg/default.nix
index 01dea9c35e3..8ef32dab95a 100644
--- a/pkgs/tools/package-management/dpkg/default.nix
+++ b/pkgs/tools/package-management/dpkg/default.nix
@@ -43,6 +43,6 @@ stdenv.mkDerivation {
     description = "The Debian package manager";
     homepage = http://wiki.debian.org/Teams/Dpkg;
     platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/tools/package-management/gem-nix/default.nix b/pkgs/tools/package-management/gem-nix/default.nix
new file mode 100644
index 00000000000..de5f3a9e044
--- /dev/null
+++ b/pkgs/tools/package-management/gem-nix/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, rubygems, rubyLibs, ruby, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "gem-nix";
+
+  buildInputs = [ ruby rubygems rubyLibs.nix makeWrapper ];
+
+  phases = ["installPhase"];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    echo 'exec ${rubygems}/bin/gem nix "$@"' >> $out/bin/gem-nix
+    chmod +x $out/bin/gem-nix
+    wrapProgram $out/bin/gem-nix \
+      --set GEM_PATH $GEM_PATH
+  '';
+
+  meta = with stdenv.lib; {
+    description = "gem nix command in a nice wrapper";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.iElectric ];
+  };
+}
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index bba53b0002f..5c20c7eb72a 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-1.8pre3766_809ca33";
+  name = "nix-1.8pre3782_d2d5543";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/13584170/download/5/${name}.tar.xz";
-    sha256 = "e6d91e73aabf8e8912f9701bf87b66089c197c5b8c8fbcc1707b888c88b96dfd";
+    url = "http://hydra.nixos.org/build/13991590/download/5/${name}.tar.xz";
+    sha256 = "dcef54f49d2ea6fcb7f31ec3fdcb64ac74b2d4ca4224eaf2d00587ae1133a64c";
   };
 
   nativeBuildInputs = [ perl pkgconfig ];
diff --git a/pkgs/tools/package-management/nox/default.nix b/pkgs/tools/package-management/nox/default.nix
index 93c671287d6..0bd10dd66d3 100644
--- a/pkgs/tools/package-management/nox/default.nix
+++ b/pkgs/tools/package-management/nox/default.nix
@@ -7,7 +7,7 @@ pythonPackages.buildPythonPackage rec {
   src = fetchgit {
     url = "git://github.com/madjar/nox.git";
     rev = "49e4bb7de473ac5e446a76c292bdaefa7e20a1c6";
-    sha256 = "1w1b2g44lj6nbs7f2j5dz5pijhfah3fyldspfb34zcv17j2nlv0b";
+    sha256 = "0rsw0hs5swv6lwkfmj5fw3j22ah8g5gdb0hb5ikk321c6ww5dm5p";
     leaveDotGit = true; # required by pbr
   };
 
diff --git a/pkgs/tools/package-management/python2nix/default.nix b/pkgs/tools/package-management/python2nix/default.nix
new file mode 100644
index 00000000000..3fabfd3f721
--- /dev/null
+++ b/pkgs/tools/package-management/python2nix/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+
+pythonPackages.buildPythonPackage rec {
+  name = "python2nix-dev";
+ 
+  # TODO: change to upstream once https://github.com/proger/python2nix/pull/3 is merged
+  src = fetchFromGitHub {
+    owner = "iElectric";
+    repo = "python2nix";
+    rev = "734de5f680425c6298eff46481e5e717d6e141a9";
+    sha256 = "09qpzml38rplbr7vhplhzy3iy5n9fd3ba5b9r9cp6d08sk5xidqf";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [ requests pip setuptools ];
+
+  meta = with stdenv.lib; {
+    maintainers = [ maintainers.iElectric ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/security/aespipe/default.nix b/pkgs/tools/security/aespipe/default.nix
index dbbdb8e57a6..2fad2fe29e6 100644
--- a/pkgs/tools/security/aespipe/default.nix
+++ b/pkgs/tools/security/aespipe/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     description = "AES encrypting or decrypting pipe";
     homepage = http://loop-aes.sourceforge.net/aespipe.README;
     license = stdenv.lib.licenses.gpl2;
-    maintainers = stdenv.lib.maintainers.goibhniu;
+    maintainers = [ stdenv.lib.maintainers.goibhniu ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/ccid/default.nix b/pkgs/tools/security/ccid/default.nix
index 42af2e0b57e..c9a261ba97a 100644
--- a/pkgs/tools/security/ccid/default.nix
+++ b/pkgs/tools/security/ccid/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, pcsclite, pkgconfig, libusb1, perl }:
+
 stdenv.mkDerivation rec {
-  version = "1.4.16";
+  version = "1.4.18";
   name = "ccid-${version}";
 
   src = fetchurl {
     url = "http://ftp.de.debian.org/debian/pool/main/c/ccid/ccid_${version}.orig.tar.bz2";
-    sha256 = "0a0e6aa38863c79e38673c085254fa94fd0aa040b9622304a8d6d4222b7e7ea0";
+    sha256 = "1aj14lkmfaxkhk5swqfgn2x18j7fijxs0jnxnx9cdc9f5mxaknsz";
   };
 
   patchPhase = ''
@@ -18,11 +19,11 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pcsclite pkgconfig libusb1 ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "ccid drivers for pcsclite";
     homepage = http://pcsclite.alioth.debian.org/;
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ viric wkennington ];
+    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/tools/security/haveged/default.nix b/pkgs/tools/security/haveged/default.nix
index 1701d4cb46f..91949cf0893 100644
--- a/pkgs/tools/security/haveged/default.nix
+++ b/pkgs/tools/security/haveged/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://www.issihosts.com/haveged/;
     license = stdenv.lib.licenses.gpl3;
-    maintainers = stdenv.lib.maintainers.iElectric;
+    maintainers = [ stdenv.lib.maintainers.iElectric ];
     platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/john/default.nix b/pkgs/tools/security/john/default.nix
new file mode 100644
index 00000000000..97f67dfbd71
--- /dev/null
+++ b/pkgs/tools/security/john/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, openssl, nss, nspr, krb5, gmp, zlib, libpcap, re2 }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "JohnTheRipper-${version}";
+  version = "8a3e3c1d";
+  buildInputs = [ openssl nss nspr krb5 gmp zlib libpcap re2 ];
+  preConfigure = ''cd src'';
+  installPhase = ''
+    ensureDir $out/share/john/
+    ensureDir $out/bin
+    cp -R ../run/* $out/share/john
+    ln -s $out/share/john/john $out/bin/john
+  '';
+  src = fetchgit {
+    url = https://github.com/magnumripper/JohnTheRipper.git;
+    rev = "93f061bc41652c94ae049b52572aac709d18aa4c";
+    sha256 = "1rnfi09830n34jcqaxmsam54p4zsq9a49ic2ljh44lahcipympvy";
+  };
+  meta = {
+    description = "John the Ripper password cracker";
+    license = licenses.gpl2;
+    homepage = https://github.com/magnumripper/JohnTheRipper/;
+    maintainers = with maintainers; [offline];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/tools/security/logkeys/default.nix b/pkgs/tools/security/logkeys/default.nix
new file mode 100644
index 00000000000..ae7fa2316bc
--- /dev/null
+++ b/pkgs/tools/security/logkeys/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchgit, which, procps, kbd }:
+
+stdenv.mkDerivation rec {
+  name = "logkeys-${version}";
+  version = "5ef6b0dcb9e3";
+
+  src = fetchgit {
+    url = "https://code.google.com/p/logkeys/";
+    rev = "5ef6b0dcb9e38e6137ad1579d624ec12107c56c3";
+    sha256 = "02p0l92l0fq069g31ks6xbqavzxa9njj9460vw2jsa7livcn2z9d";
+  };
+
+  buildInputs = [ which procps kbd ];
+
+  postPatch = ''
+    substituteInPlace src/Makefile.in --replace 'root' '$(id -u)'
+    substituteInPlace configure --replace '/dev/input' '/tmp'
+ '';
+
+  meta = with stdenv.lib; {
+    description = "A GNU/Linux keylogger that works!";
+    license = licenses.gpl3;
+    homepage = http://code.google.com/p/logkeys/;
+    maintainers = with maintainers; [offline];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index 2737cc43575..fe459b2c476 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Middleware to access a smart card using SCard API (PC/SC)";
     homepage = http://pcsclite.alioth.debian.org/;
     license = licenses.bsd3;
-    maintainers = with maintainers; [viric];
+    maintainers = with maintainers; [ viric wkennington ];
     platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index ab46af5a1cd..167c369e3bb 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, coreutils, pam, groff }:
+{ stdenv, fetchurl, coreutils, pam, groff
+, sendmailPath ? "/var/setuid-wrappers/sendmail"
+}:
 
 stdenv.mkDerivation rec {
   name = "sudo-1.8.10p3";
@@ -17,6 +19,11 @@ stdenv.mkDerivation rec {
     "--with-rundir=/var/run"
     "--with-vardir=/var/db/sudo"
     "--with-logpath=/var/log/sudo.log"
+    "--with-sendmail=${sendmailPath}"
+  ];
+
+  configureFlagsArray = [
+    "--with-passprompt=[sudo] password for %p: "  # intentional trailing space
   ];
 
   postConfigure =
diff --git a/pkgs/tools/security/super/default.nix b/pkgs/tools/security/super/default.nix
index 0d2e34a4125..c88efb23531 100644
--- a/pkgs/tools/security/super/default.nix
+++ b/pkgs/tools/security/super/default.nix
@@ -1,14 +1,20 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   name = "super-3.30.0";
 
   src = fetchurl {
     name = "${name}.tar.gz";
-    url = "http://ftp.ucolick.org/pub/users/will/${name}-tar.gz";
-    sha256 = "1sxgixx1yg7h8g9799v79rk15gb39gn7p7fx032c078wxx38qwq4";
+    url = "http://www.ucolick.org/~will/RUE/super/${name}-tar.gz";
+    sha256 = "0k476f83w7f45y9jpyxwr00ikv1vhjiq0c26fgjch9hnv18icvwy";
   };
 
+  patches = [
+   (fetchpatch { url = http://anonscm.debian.org/cgit/users/robert/super.git/plain/debian/patches/14-Fix-unchecked-setuid-call.patch;
+                 sha256 = "08m9hw4kyfjv0kqns1cqha4v5hkgp4s4z0q1rgif1fnk14xh7wqh";
+               })
+  ];
+
   NIX_CFLAGS_COMPILE = "-D_GNU_SOURCE";
 
   configureFlags = "--sysconfdir=/etc --localstatedir=/var";
@@ -16,7 +22,7 @@ stdenv.mkDerivation rec {
   installFlags = "sysconfdir=$(out)/etc localstatedir=$(TMPDIR)";
 
   meta = {
-    homepage = http://ftp.ucolick.org/pub/users/will/;
+    homepage = http://www.ucolick.org/~will/;
     description = "Allows users to execute scripts as if they were root";
     longDescription =
       ''
diff --git a/pkgs/tools/system/at/default.nix b/pkgs/tools/system/at/default.nix
index 2964db34e12..5108174c887 100644
--- a/pkgs/tools/system/at/default.nix
+++ b/pkgs/tools/system/at/default.nix
@@ -1,26 +1,22 @@
-{ fetchurl, stdenv, bison, flex, pam, ssmtp }:
+{ fetchurl, stdenv, bison, flex, pam, sendmailPath ? "/var/setuid-wrappers/sendmail" }:
 
 stdenv.mkDerivation {
-  name = "at-3.1.14";
+  name = "at-3.1.15";
 
   src = fetchurl {
     # Debian is apparently the last location where it can be found.
-    url = mirror://debian/pool/main/a/at/at_3.1.14.orig.tar.gz;
-    sha256 = "cd092bf05d29c25b286f55a960ce8b8c3c5beb571d86ed8eb1dfb3b61291b3ae";
+    url = mirror://debian/pool/main/a/at/at_3.1.15.orig.tar.gz;
+    sha256 = "1z7pgglr0zmwapb4sc1bdb3z0hgig1asyzqv4gs5xafmjd94za03";
   };
 
   patches = [ ./install.patch ];
 
   buildInputs =
-    [ bison flex pam
-      # `configure' and `atd' want the `sendmail' command.
-      ssmtp
-    ];
+    [ bison flex pam ];
 
   preConfigure =
     ''
-      export PATH="${ssmtp}/sbin:$PATH"
-
+      export SENDMAIL=${sendmailPath}
       # Purity: force atd.pid to be placed in /var/run regardless of
       # whether it exists now.
       substituteInPlace ./configure --replace "test -d /var/run" "true"
diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix
index 48562adffeb..8f94b21a771 100644
--- a/pkgs/tools/system/freeipmi/default.nix
+++ b/pkgs/tools/system/freeipmi/default.nix
@@ -1,11 +1,12 @@
 { fetchurl, stdenv, libgcrypt, readline }:
 
 stdenv.mkDerivation rec {
-  name = "freeipmi-1.3.4";
+  version = "1.4.5";
+  name = "freeipmi-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${name}.tar.gz";
-    sha256 = "0gadf3yj019y3rvgf34pxk502p0p6nrhy6nwldvvir5rknndxh63";
+    sha256 = "033zakrk3kvi4y41kslicr90b3yb2kj052cl6nbja7ybn70y9nkz";
   };
 
   buildInputs = [ libgcrypt readline ];
@@ -30,10 +31,14 @@ stdenv.mkDerivation rec {
       '';
 
     homepage = http://www.gnu.org/software/freeipmi/;
+    downloadPage = "http://www.gnu.org/software/freeipmi/download.html";
 
     license = stdenv.lib.licenses.gpl3Plus;
 
     maintainers = with stdenv.lib.maintainers; [ raskin ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+
+    updateWalker = true;
+    inherit version;
   };
 }
diff --git a/pkgs/tools/system/ioping/default.nix b/pkgs/tools/system/ioping/default.nix
index 52d32b4e838..588da0624ce 100644
--- a/pkgs/tools/system/ioping/default.nix
+++ b/pkgs/tools/system/ioping/default.nix
@@ -10,16 +10,15 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="ioping";
-    version="0.7";
+    version = "0.8";
     name="${baseName}-${version}";
     url="http://ioping.googlecode.com/files/${name}.tar.gz";
-    hash="1c0k9gsq7rr9fqh6znn3i196l84zsm44nq3pl1b7grsnnbp2hki3";
   };
 in
 rec {
   src = a.fetchurl {
     url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "0j7yal61nby1lkg9wnr6lxfljbd7wl3n0z8khqwvc9lf57bxngz2";
   };
 
   inherit (sourceInfo) name version;
@@ -40,11 +39,8 @@ rec {
     platforms = with a.lib.platforms;
       linux;
     license = a.lib.licenses.gpl3Plus;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://code.google.com/p/ioping/downloads/list";
-    };
+    downloadPage = "http://code.google.com/p/ioping/downloads/list";
+    inherit version;
   };
 }) x
 
diff --git a/pkgs/tools/system/ioping/default.upstream b/pkgs/tools/system/ioping/default.upstream
new file mode 100644
index 00000000000..e51cb487852
--- /dev/null
+++ b/pkgs/tools/system/ioping/default.upstream
@@ -0,0 +1,5 @@
+url http://code.google.com/p/ioping/downloads/list
+version_link '[.]tar[.][a-z0-9]+$'
+process 'code[.]google[.]com//' ''
+
+do_overwrite() { do_overwrite_just_version; }
diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix
index c5f33c32359..6590b1ad209 100644
--- a/pkgs/tools/system/ipmiutil/default.nix
+++ b/pkgs/tools/system/ipmiutil/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   baseName = "ipmiutil";
-  version = "2.9.3";
+  version = "2.7.3";
   name = "${baseName}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${baseName}/${name}.tar.gz";
-    sha256 = "1dwyxp4jn5wxzyahd0x839kj1q7z6xin1wybpx9na4xsgscj6v27";
+    sha256 = "0z6ykz5db4ws7hpi25waf9vznwsh0vp819h5s7s8r054vxslrfpq";
   };
 
   buildInputs = [ openssl ];
@@ -26,11 +26,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.bsd3;
-  };
-
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://sourceforge.net/projects/ipmiutil/files/ipmiutil/";
-    };
+    downloadPage = "http://sourceforge.net/projects/ipmiutil/files/ipmiutil/";
+    inherit version;
   };
 }
diff --git a/pkgs/tools/system/ipmiutil/default.upstream b/pkgs/tools/system/ipmiutil/default.upstream
new file mode 100644
index 00000000000..18dc096a36b
--- /dev/null
+++ b/pkgs/tools/system/ipmiutil/default.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/ipmiutil/files/ipmiutil/
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/pkgs/tools/system/sleuthkit/default.nix b/pkgs/tools/system/sleuthkit/default.nix
index 0148e3c699e..016e2ccda37 100644
--- a/pkgs/tools/system/sleuthkit/default.nix
+++ b/pkgs/tools/system/sleuthkit/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, libewf, afflib, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "sleuthkit-3.2.2";
+  version = "4.1.3";
+  name = "sleuthkit-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/sleuthkit/${name}.tar.gz";
-    sha256 = "02hik5xvbgh1dpisvc3wlhhq1aprnlsk0spbw6h5khpbq9wqnmgj";
+    sha256 = "09q3ky4rpv18jasf5gc2hlivzadzl70jy4nnk23db1483aix5yb7";
   };
 
   enableParallelBuilding = true;
@@ -20,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.raskin ];
     platforms = stdenv.lib.platforms.linux;
     license = "IBM Public License";
+    inherit version;
   };
 }
diff --git a/pkgs/tools/system/sleuthkit/default.upstream b/pkgs/tools/system/sleuthkit/default.upstream
new file mode 100644
index 00000000000..f8ffe9352ed
--- /dev/null
+++ b/pkgs/tools/system/sleuthkit/default.upstream
@@ -0,0 +1,5 @@
+url http://sourceforge.net/projects/sleuthkit/files/sleuthkit/
+SF_version_dir
+SF_version_tarball
+SF_redirect
+minimize_overwrite
diff --git a/pkgs/tools/text/diffstat/default.nix b/pkgs/tools/text/diffstat/default.nix
index e70dfaedddf..62b696715d9 100644
--- a/pkgs/tools/text/diffstat/default.nix
+++ b/pkgs/tools/text/diffstat/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "diffstat-1.58";
+  name = "diffstat-1.59";
 
   src = fetchurl {
     url = "ftp://invisible-island.net/diffstat/${name}.tgz";
-    sha256 = "14rpf5c05ff30f6vn6pn6pzy0k4g4is5im656ahsxff3k58i7mgs";
+    sha256 = "0w7jvfilbnfa9v3h8j8ipirvrj7n2x5gszfanzxvx748p10i8z96";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/text/dos2unix/default.nix b/pkgs/tools/text/dos2unix/default.nix
index a87901eb5eb..6851ca89678 100644
--- a/pkgs/tools/text/dos2unix/default.nix
+++ b/pkgs/tools/text/dos2unix/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, perl, gettext }:
 
 stdenv.mkDerivation {
-  name = "dos2unix-6.0.5";
+  name = "dos2unix-6.0.6";
   
   src = fetchurl {
-    url = http://waterlan.home.xs4all.nl/dos2unix/dos2unix-6.0.5.tar.gz;
-    sha256 = "13w5blhv0i473y9lyrxh4axz4niyrxcpj4v2qiq3w5kamyp20czx";
+    url = http://waterlan.home.xs4all.nl/dos2unix/dos2unix-6.0.6.tar.gz;
+    sha256 = "0xnj4gmav1ypkgwmqldnq41b6l3cg08dyngkbygn9vrhlvlx9fwa";
   };
 
   configurePhase = ''
diff --git a/pkgs/tools/text/highlight/default.nix b/pkgs/tools/text/highlight/default.nix
index 9bca0a91d4f..585f501e1fc 100644
--- a/pkgs/tools/text/highlight/default.nix
+++ b/pkgs/tools/text/highlight/default.nix
@@ -1,19 +1,16 @@
-{ stdenv, fetchurl, getopt, lua, boost }:
-        
+{ stdenv, fetchurl, getopt, lua, boost, pkgconfig }:
+
 stdenv.mkDerivation rec {
-  name = "highlight-3.9";
+  name = "highlight-3.18";
 
   src = fetchurl {
     url = "http://www.andre-simon.de/zip/${name}.tar.bz2";
-    sha256 = "1vysj34zz8gk5yhlzm7g6lbphb8y6zfbd9smfgsgwkyawfargrja";
+    sha256 = "0jsq78qb75sawwggbpx5pdqxk00wgjr1a0la0w8wihmamsjzgijm";
   };
 
-  buildInputs = [ getopt lua boost ];
+  buildInputs = [ getopt lua boost pkgconfig ];
 
-  makeFlags = [
-    "PREFIX=$(out)"
-    "conf_dir=$(out)/etc/highlight/"
-  ];
+  preConfigure = ''makeFlags="PREFIX=$out conf_dir=$out/etc/highlight"'';
 
   meta = {
     description = "Source code highlighting tool";
diff --git a/pkgs/tools/text/numdiff/default.nix b/pkgs/tools/text/numdiff/default.nix
index d5f8bb9ff35..9cef82e5e53 100644
--- a/pkgs/tools/text/numdiff/default.nix
+++ b/pkgs/tools/text/numdiff/default.nix
@@ -15,9 +15,9 @@ stdenv.mkDerivation {
       line by line and field by field, ignoring small numeric differences
       or/and different numeric formats.
     '';
-    homepage = "http://www.nongnu.org/numdiff/";
+    homepage = http://www.nongnu.org/numdiff/;
     license = stdenv.lib.licenses.gpl3Plus;
-    maintainers = stdenv.lib.maintainers.bbenoist;
+    maintainers = [ stdenv.lib.maintainers.bbenoist ];
     platforms = stdenv.lib.platforms.gnu;
   };
 }
diff --git a/pkgs/tools/typesetting/pdfjam/default.nix b/pkgs/tools/typesetting/pdfjam/default.nix
index 426cef3c85d..1b8d7b5e8d8 100644
--- a/pkgs/tools/typesetting/pdfjam/default.nix
+++ b/pkgs/tools/typesetting/pdfjam/default.nix
@@ -7,6 +7,6 @@
   };
   meta = with stdenv.lib; {
     platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+    maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/tools/typesetting/tex/texlive/beamer.nix b/pkgs/tools/typesetting/tex/texlive/beamer.nix
index 8b06cbb5a2b..8afaf7b5f3e 100644
--- a/pkgs/tools/typesetting/tex/texlive/beamer.nix
+++ b/pkgs/tools/typesetting/tex/texlive/beamer.nix
@@ -20,6 +20,6 @@ rec {
 
   meta = {
     description = "Extra components for TeXLive: beamer class";
-    maintainers = stdenv.lib.maintainers.mornfall;
+    maintainers = [ stdenv.lib.maintainers.mornfall ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 659d51cb07c..71cd7c3fac3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -262,9 +262,14 @@ let
   };
 
   buildFHSChrootEnv = import ../build-support/build-fhs-chrootenv {
-    inherit stdenv glibc glibcLocales gcc coreutils diffutils findutils;
-    inherit gnused gnugrep gnutar gzip bzip2 bashInteractive xz shadow gawk;
-    inherit less buildEnv;
+    inherit buildEnv system;
+    inherit stdenv glibc glibc_multi glibcLocales;
+    inherit bashInteractive coreutils less shadow su;
+    inherit gawk gcc gcc_multi diffutils findutils gnused gnugrep;
+    inherit gnutar gzip bzip2 xz;
+
+    nixpkgs      = pkgs;
+    nixpkgs_i686 = pkgsi686Linux;
   };
 
   dotnetenv = import ../build-support/dotnetenv {
@@ -418,6 +423,8 @@ let
     { deps = [ pkgs.lcov pkgs.enableGCOVInstrumentation ]; }
     ../build-support/setup-hooks/make-coverage-analysis-report.sh;
 
+  # intended to be used like nix-build -E 'with <nixpkgs> {}; enableDebugging fooPackage'
+  enableDebugging = pkg : pkg.override { stdenv = stdenvAdapters.keepDebugInfo pkg.stdenv; };
 
   ### TOOLS
 
@@ -437,7 +444,6 @@ let
 
   aegisub = callPackage ../applications/video/aegisub {
     wxGTK = wxGTK30;
-    lua = lua5_1;
   };
 
   aespipe = callPackage ../tools/security/aespipe { };
@@ -528,7 +534,7 @@ let
     pkgs_i686 = pkgsi686Linux;
   };
 
-  inherit (androidenv) androidsdk_4_1;
+  inherit (androidenv) androidsdk_4_4 androidndk;
 
   aria2 = callPackage ../tools/networking/aria2 { };
   aria = aria2;
@@ -605,8 +611,11 @@ let
 
   ccnet = callPackage ../tools/networking/ccnet { };
 
-  consul = callPackage ../servers/consul { };
-  consul_ui = callPackage ../servers/consul/ui.nix { };
+  consul = callPackage ../servers/consul {
+    inherit ruby rubyLibs;
+  };
+
+  consul_ui = consul.ui;
 
   chntpw = callPackage ../tools/security/chntpw { };
 
@@ -648,6 +657,8 @@ let
 
   mcrypt = callPackage ../tools/misc/mcrypt { };
 
+  mstflint = callPackage ../tools/misc/mstflint { };
+
   mcelog = callPackage ../os-specific/linux/mcelog { };
 
   apparix = callPackage ../tools/misc/apparix { };
@@ -685,10 +696,6 @@ let
     inherit (strategoPackages016) strategoxt sdf;
   };
 
-  bittorrent = callPackage ../tools/networking/p2p/bittorrent {
-    gui = true;
-  };
-
   bittornado = callPackage ../tools/networking/p2p/bit-tornado { };
 
   blueman = callPackage ../tools/bluetooth/blueman {
@@ -753,6 +760,10 @@ let
 
   chkrootkit = callPackage ../tools/security/chkrootkit { };
 
+  chocolateDoom = callPackage ../games/chocolate-doom { };
+  # master is here because chocolateDoom v2.0 has broken netplay
+  chocolateDoomMaster = callPackage ../games/chocolate-doom/master.nix { };
+
   chrony = callPackage ../tools/networking/chrony { };
 
   chunkfs = callPackage ../tools/filesystems/chunkfs { };
@@ -855,6 +866,8 @@ let
     sslSupport = zlibSupport;
   };
 
+  curl_unix_socket = callPackage ../tools/networking/curl-unix-socket rec { };
+
   cunit = callPackage ../tools/misc/cunit { };
 
   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
@@ -933,6 +946,9 @@ let
 
   dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
 
+  dolphinEmu = callPackage ../misc/emulators/dolphin-emu { };
+  dolphinEmuMaster = callPackage ../misc/emulators/dolphin-emu/master.nix { };
+
   dropbear = callPackage ../tools/networking/dropbear { };
 
   dtach = callPackage ../tools/misc/dtach { };
@@ -993,6 +1009,8 @@ let
 
   ethtool = callPackage ../tools/misc/ethtool { };
 
+  eternity = callPackage ../games/eternity-engine { };
+
   ettercap = callPackage ../applications/networking/sniffers/ettercap { };
 
   euca2ools = callPackage ../tools/virtualization/euca2ools { pythonPackages = python26Packages; };
@@ -1029,6 +1047,8 @@ let
 
   fcitx = callPackage ../tools/inputmethods/fcitx { };
 
+  fcitx-anthy = callPackage ../tools/inputmethods/fcitx/fcitx-anthy.nix { };
+
   fcron = callPackage ../tools/system/fcron { };
 
   fdm = callPackage ../tools/networking/fdm {};
@@ -1213,7 +1233,7 @@ let
    * objections before removal. The feature is integer coordinates
    */
   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix { };
-  
+
   /* Readded by Michael Raskin. There are programs in the wild
    * 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.
@@ -1232,9 +1252,11 @@ let
     buggyBiosCDSupport = config.grub.buggyBiosCDSupport or true;
   };
 
-  grub2 = callPackage ../tools/misc/grub/2.0x.nix { libusb = libusb1; flex = flex_2_5_35; };
+  grub2 = callPackage ../tools/misc/grub/2.0x.nix { };
+
+  grub2_efi = grub2.override { efiSupport = true; };
 
-  grub2_efi = grub2.override { EFIsupport = true; };
+  grub2_zfs = grub2.override { zfsSupport = true; };
 
   gssdp = callPackage ../development/libraries/gssdp {
     inherit (gnome) libsoup;
@@ -1387,6 +1409,8 @@ let
 
   jnettop = callPackage ../tools/networking/jnettop { };
 
+  john = callPackage ../tools/security/john { };
+
   jq = callPackage ../development/tools/jq {};
 
   jscoverage = callPackage ../development/tools/misc/jscoverage { };
@@ -1469,6 +1493,8 @@ let
     inherit (perlPackages) mimeConstruct;
   };
 
+  logkeys = callPackage ../tools/security/logkeys { };
+
   logrotate = callPackage ../tools/system/logrotate { };
 
   logstalgia = callPackage ../tools/graphics/logstalgia {};
@@ -1972,6 +1998,10 @@ let
 
   qjoypad = callPackage ../tools/misc/qjoypad { };
 
+  qscintilla = callPackage ../development/libraries/qscintilla {
+    qt = qt4;
+  };
+
   qshowdiff = callPackage ../tools/text/qshowdiff { };
 
   quilt = callPackage ../development/tools/quilt { };
@@ -2062,6 +2092,14 @@ let
     ruby = ruby18;
   };
 
+  s6Dns = callPackage ../tools/networking/s6-dns { };
+
+  s6LinuxUtils = callPackage ../os-specific/linux/s6-linux-utils { };
+
+  s6Networking = callPackage ../tools/networking/s6-networking { };
+
+  s6PortableUtils = callPackage ../tools/misc/s6-portable-utils { };
+
   sablotron = callPackage ../tools/text/xml/sablotron { };
 
   safecopy = callPackage ../tools/system/safecopy { };
@@ -2178,6 +2216,8 @@ let
 
   ssdeep = callPackage ../tools/security/ssdeep { };
 
+  sshpass = callPackage ../tools/networking/sshpass { };
+
   ssmtp = callPackage ../tools/networking/ssmtp {
     tlsSupport = true;
   };
@@ -2249,6 +2289,8 @@ let
 
   tinc = callPackage ../tools/networking/tinc { };
 
+  tinc_pre = callPackage ../tools/networking/tinc/pre.nix { };
+
   tiny8086 = callPackage ../applications/virtualization/8086tiny { };
 
   tmpwatch = callPackage ../tools/misc/tmpwatch  { };
@@ -2452,6 +2494,8 @@ let
 
   vlan = callPackage ../tools/networking/vlan { };
 
+  volumeicon = callPackage ../tools/audio/volumeicon { };
+
   wakelan = callPackage ../tools/networking/wakelan { };
 
   wavemon = callPackage ../tools/networking/wavemon { };
@@ -2481,7 +2525,10 @@ let
 
   wicd = callPackage ../tools/networking/wicd { };
 
-  wkhtmltopdf = callPackage ../tools/graphics/wkhtmltopdf { };
+  wkhtmltopdf = callPackage ../tools/graphics/wkhtmltopdf {
+    overrideDerivation = lib.overrideDerivation;
+    inherit (xlibs) libX11 libXext libXrender;
+  };
 
   wv = callPackage ../tools/misc/wv { };
 
@@ -2592,7 +2639,6 @@ let
 
   bashInteractive = appendToName "interactive" (callPackage ../shells/bash {
     interactive = true;
-    readline = readline63; # Includes many vi mode fixes
   });
 
   bashCompletion = callPackage ../shells/bash-completion { };
@@ -2688,10 +2734,6 @@ let
   cython = pythonPackages.cython;
   cython3 = python3Packages.cython;
 
-  dylan = callPackage ../development/compilers/gwydion-dylan {
-    dylan = callPackage ../development/compilers/gwydion-dylan/binary.nix {  };
-  };
-
   ecl = callPackage ../development/compilers/ecl { };
 
   eql = callPackage ../development/compilers/eql {};
@@ -2702,7 +2744,8 @@ let
 
   gambit = callPackage ../development/compilers/gambit { };
 
-  gcc = gcc48;
+  gcc       = gcc48;
+  gcc_multi = gcc48_multi;
 
   gcc33 = wrapGCC (import ../development/compilers/gcc/3.3 {
     inherit fetchurl stdenv noSysDirs;
@@ -3047,6 +3090,8 @@ let
 
   fsharp = callPackage ../development/compilers/fsharp {};
 
+  gem-nix = callPackage ../tools/package-management/gem-nix { };
+
   go_1_0 = callPackage ../development/compilers/go { };
 
   go_1_1 =
@@ -3061,6 +3106,8 @@ let
 
   go = go_1_3;
 
+  go-repo-root = callPackage ../development/tools/misc/go-repo-root { };
+
   gox = callPackage ../development/compilers/go/gox.nix { };
 
   gprolog = callPackage ../development/compilers/gprolog { };
@@ -3261,6 +3308,8 @@ let
 
     camlp5_transitional = camlp5_6_transitional;
 
+    calendar = callPackage ../development/ocaml-modules/calendar { };
+
     camlzip = callPackage ../development/ocaml-modules/camlzip { };
 
     camomile_0_8_2 = callPackage ../development/ocaml-modules/camomile/0.8.2.nix { };
@@ -3275,6 +3324,8 @@ let
 
     ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
 
+    cmdliner = callPackage ../development/ocaml-modules/cmdliner { };
+
     cppo = callPackage ../development/tools/ocaml/cppo { };
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
@@ -3285,6 +3336,8 @@ let
 
     easy-format = callPackage ../development/ocaml-modules/easy-format { };
 
+    eliom = callPackage ../development/ocaml-modules/eliom { };
+
     findlib = callPackage ../development/tools/ocaml/findlib { };
 
     javalib = callPackage ../development/ocaml-modules/javalib {
@@ -3297,6 +3350,8 @@ let
 
     gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
 
+    js_of_ocaml = callPackage ../development/tools/ocaml/js_of_ocaml { };
+
     lablgl = callPackage ../development/ocaml-modules/lablgl { };
 
     lablgtk = callPackage ../development/ocaml-modules/lablgtk {
@@ -3331,6 +3386,8 @@ let
 
     ocamlify = callPackage ../development/tools/ocaml/ocamlify { };
 
+    ocaml_ipaddr = callPackage ../development/ocaml-modules/ocaml-ipaddr { };
+
     ocaml_lwt = callPackage ../development/ocaml-modules/lwt { };
 
     ocamlmod = callPackage ../development/tools/ocaml/ocamlmod { };
@@ -3341,6 +3398,8 @@ let
 
     ocaml_oasis = callPackage ../development/tools/ocaml/oasis { };
 
+    ocaml_optcomp = callPackage ../development/ocaml-modules/optcomp { };
+
     ocaml_pcre = callPackage ../development/ocaml-modules/pcre {
       inherit pcre;
     };
@@ -3355,8 +3414,12 @@ let
 
     ocaml_text = callPackage ../development/ocaml-modules/ocaml-text { };
 
+    ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server { };
+
     ounit = callPackage ../development/ocaml-modules/ounit { };
 
+    tyxml = callPackage ../development/ocaml-modules/tyxml { };
+
     ulex = callPackage ../development/ocaml-modules/ulex { };
 
     ulex08 = callPackage ../development/ocaml-modules/ulex/0.8 {
@@ -3380,6 +3443,10 @@ let
     opam_1_1 = callPackage ../development/tools/ocaml/opam/1.1.nix { };
     opam = opam_1_1;
 
+    sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { };
+
+    twt = callPackage ../development/ocaml-modules/twt { };
+
     utop = callPackage ../development/tools/ocaml/utop { };
 
     sawja = callPackage ../development/ocaml-modules/sawja { };
@@ -3395,6 +3462,8 @@ let
 
     zed = callPackage ../development/ocaml-modules/zed { };
 
+    ocsigen_deriving = callPackage ../development/ocaml-modules/ocsigen-deriving { };
+
   };
 
   ocamlPackages = recurseIntoAttrs ocamlPackages_4_01_0;
@@ -3428,6 +3497,10 @@ let
   sbcl = callPackage ../development/compilers/sbcl {
     clisp = clisp;
   };
+  # 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 { };
@@ -3519,11 +3592,13 @@ let
   ### DEVELOPMENT / INTERPRETERS
 
   acl2 = builderDefsPackage ../development/interpreters/acl2 {
-    inherit sbcl;
+    sbcl = sbcl_1_2_0;
   };
 
   angelscript = callPackage ../development/interpreters/angelscript {};
 
+  chibi = callPackage ../development/interpreters/chibi { };
+
   clisp = callPackage ../development/interpreters/clisp { };
 
   # compatibility issues in 2.47 - at list 2.44.1 is known good
@@ -3539,8 +3614,11 @@ let
   erlangR14 = callPackage ../development/interpreters/erlang/R14.nix { };
   erlangR15 = callPackage ../development/interpreters/erlang/R15.nix { };
   erlangR16 = callPackage ../development/interpreters/erlang/R16.nix { };
+  erlangR16_odbc = callPackage ../development/interpreters/erlang/R16.nix { odbcSupport = true; };
   erlangR17 = callPackage ../development/interpreters/erlang/R17.nix { };
+  erlangR17_odbc = callPackage ../development/interpreters/erlang/R17.nix { odbcSupport = true; };
   erlang = erlangR17;
+  erlang_odbc = erlangR17_odbc;
 
   rebar = callPackage ../development/tools/build-managers/rebar { };
 
@@ -3560,6 +3638,8 @@ let
 
   j = callPackage ../development/interpreters/j {};
 
+  jimtcl = callPackage ../development/interpreters/jimtcl {};
+
   jmeter = callPackage ../applications/networking/jmeter {};
 
   davmail = callPackage ../applications/networking/davmail {};
@@ -3579,13 +3659,15 @@ let
   lua5_2_compat = callPackage ../development/interpreters/lua-5/5.2.nix {
     compat = true;
   };
-  lua5 = lua5_1;
+  lua5 = lua5_2_compat;
   lua = lua5;
 
-  lua5_sockets = callPackage ../development/interpreters/lua-5/sockets.nix {};
+  lua5_1_sockets = callPackage ../development/interpreters/lua-5/sockets.nix {
+    lua5 = lua5_1; # version 2.* only works with 5.1
+  };
   lua5_expat = callPackage ../development/interpreters/lua-5/expat.nix {};
   lua5_filesystem = callPackage ../development/interpreters/lua-5/filesystem.nix {};
-  lua5_sec = callPackage ../development/interpreters/lua-5/sec.nix {};
+  lua5_sec = callPackage ../development/interpreters/lua-5/sec.nix { };
 
   luarocks = callPackage ../development/tools/misc/luarocks {
      lua = lua5;
@@ -3617,7 +3699,6 @@ let
     suitesparse = null;
     openjdk = null;
     gnuplot = null;
-    readline = readline63;
   };
   octaveFull = (lowPrio (callPackage ../development/interpreters/octave {
     fltk = fltk13;
@@ -3701,6 +3782,8 @@ let
     inherit (python27Packages) recursivePthLoader;
   };
 
+  python2nix = callPackage ../tools/package-management/python2nix { };
+
   pythonDocs = recurseIntoAttrs (import ../development/interpreters/python/docs {
     inherit stdenv fetchurl lib;
   });
@@ -3779,8 +3862,6 @@ let
     inherit (pythonPackages) pysqlite;
   };
 
-  xulrunner_30 = firefox30Pkgs.xulrunner;
-
 
   ### DEVELOPMENT / MISC
 
@@ -3887,9 +3968,11 @@ let
 
   bam = callPackage ../development/tools/build-managers/bam {};
 
-  binutils = callPackage ../development/tools/misc/binutils {
-    inherit noSysDirs;
-  };
+  binutils = if stdenv.isDarwin
+    then stdenv.gcc.binutils
+    else callPackage ../development/tools/misc/binutils {
+      inherit noSysDirs;
+    };
 
   binutils_nogold = lowPrio (callPackage ../development/tools/misc/binutils {
     inherit noSysDirs;
@@ -4210,6 +4293,15 @@ let
     rubyBindings = config.radare.rubyBindings or false;
     luaBindings = config.radare.luaBindings or false;
   };
+  radare2 = callPackage ../development/tools/analysis/radare2 {
+    inherit (gnome) vte;
+    lua = lua5;
+    useX11 = config.radare.useX11 or false;
+    pythonBindings = config.radare.pythonBindings or false;
+    rubyBindings = config.radare.rubyBindings or false;
+    luaBindings = config.radare.luaBindings or false;
+  };
+
 
   ragel = callPackage ../development/tools/parsing/ragel { };
 
@@ -4228,7 +4320,8 @@ let
 
   scons = callPackage ../development/tools/build-managers/scons { };
 
-  simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
+  sbt = callPackage ../development/tools/build-managers/sbt { };
+  simpleBuildTool = sbt;
 
   sigrok-cli = callPackage ../development/tools/sigrok-cli { };
 
@@ -4294,11 +4387,13 @@ let
   };
 
   gdb = callPackage ../development/tools/misc/gdb {
+    guile = null;
     hurd = gnu.hurdCross;
-    readline = readline63;
     inherit (gnu) mig;
   };
 
+  gdbGuile = lowPrio (gdb.override { inherit guile; });
+
   gdbCross = lowPrio (callPackage ../development/tools/misc/gdb {
     target = crossSystem;
   });
@@ -4427,6 +4522,8 @@ let
 
   capnproto = callPackage ../development/libraries/capnproto { };
 
+  cimg = callPackage  ../development/libraries/cimg { };
+
   scmccid = callPackage ../development/libraries/scmccid { };
 
   ccrtp = callPackage ../development/libraries/ccrtp { };
@@ -4537,7 +4634,9 @@ let
   dbus_cplusplus  = callPackage ../development/libraries/dbus-cplusplus { };
   dbus_glib       = callPackage ../development/libraries/dbus-glib { };
   dbus_java       = callPackage ../development/libraries/java/dbus-java { };
-  dbus_python     = callPackage ../development/python-modules/dbus { };
+  dbus_python     = callPackage ../development/python-modules/dbus {
+    isPyPy = python.executable == "pypy";
+  };
 
   # Should we deprecate these? Currently there are many references.
   dbus_tools = pkgs.dbus.tools;
@@ -4685,6 +4784,8 @@ let
 
   gdbm = callPackage ../development/libraries/gdbm { };
 
+  gecode = callPackage ../development/libraries/gecode { };
+
   gegl = callPackage ../development/libraries/gegl {
     #  avocodec avformat librsvg
   };
@@ -4964,6 +5065,8 @@ let
 
   gtkspell3 = callPackage ../development/libraries/gtkspell/3.nix { };
 
+  gtkspellmm = callPackage ../development/libraries/gtkspellmm { };
+
   gts = callPackage ../development/libraries/gts { };
 
   gvfs = callPackage ../development/libraries/gvfs { gconf = gnome.GConf; };
@@ -5065,7 +5168,6 @@ let
 
   keybinder3 = callPackage ../development/libraries/keybinder3 {
     automake = automake111x;
-    lua = lua5_1;
   };
 
   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
@@ -5090,9 +5192,7 @@ let
     libpng = libpng12;
   };
 
-  lgi = callPackage ../development/libraries/lgi {
-    lua = lua5_1;
-  };
+  lgi = callPackage ../development/libraries/lgi { };
 
   lib3ds = callPackage ../development/libraries/lib3ds { };
 
@@ -5283,6 +5383,8 @@ let
 
   libffi = callPackage ../development/libraries/libffi { };
 
+  libfreefare = callPackage ../development/libraries/libfreefare { };
+
   libftdi = callPackage ../development/libraries/libftdi { };
 
   libftdi1 = callPackage ../development/libraries/libftdi/1.x.nix { };
@@ -5309,6 +5411,10 @@ let
 
   libHX = callPackage ../development/libraries/libHX { };
 
+  libibmad = callPackage ../development/libraries/libibmad { };
+
+  libibumad = callPackage ../development/libraries/libibumad { };
+
   libical = callPackage ../development/libraries/libical { };
 
   libicns = callPackage ../development/libraries/libicns { };
@@ -5998,7 +6104,7 @@ let
 
   pocketsphinx = callPackage ../development/libraries/pocketsphinx { };
 
-  podofo = callPackage ../development/libraries/podofo { };
+  podofo = callPackage ../development/libraries/podofo { lua5 = lua5_1; };
 
   polkit = callPackage ../development/libraries/polkit {
     spidermonkey = spidermonkey_185;
@@ -6050,6 +6156,8 @@ let
 
   qoauth = callPackage ../development/libraries/qoauth { };
 
+  quazip = callPackage ../development/libraries/quazip { };
+
   qt3 = callPackage ../development/libraries/qt-3 {
     openglSupport = mesaSupported;
     libpng = libpng12;
@@ -6069,24 +6177,24 @@ let
       else stdenv;
   };
 
-  qt48Full = qt48.override {
+  qt48Full = appendToName "full" (qt48.override {
     docs = true;
     demos = true;
     examples = true;
     developerBuild = true;
-  };
+  });
 
   qt4SDK = qtcreator.override {
     sdkBuild = true;
     qtLib = qt48Full;
   };
 
-  qt53Full = qt53.override {
+  qt53Full = appendToName "full" (qt53.override {
     buildDocs = true;
     buildExamples = true;
     buildTests = true;
     developerBuild = true;
-  };
+  });
 
   qt53 = callPackage ../development/libraries/qt-5/qt-5.3.nix {
     mesa = mesa_noglu;
@@ -6104,12 +6212,12 @@ let
     bison = bison2; # error: too few arguments to function 'int yylex(...
   };
 
-  qt5Full = qt5.override {
+  qt5Full = appendToName "full" (qt5.override {
     buildDocs = true;
     buildExamples = true;
     buildTests = true;
     developerBuild = true;
-  };
+  });
 
   qt5SDK = qtcreator.override {
     sdkBuild = true;
@@ -6134,15 +6242,14 @@ let
 
   raul = callPackage ../development/libraries/audio/raul { };
 
-  readline = readline6; # 6.2 works, 6.3 breaks python, parted
-
-  readline4 = callPackage ../development/libraries/readline/readline4.nix { };
+  readline = readline6;
+  readline6 = readline63;
 
-  readline5 = callPackage ../development/libraries/readline/readline5.nix { };
+  readline5 = callPackage ../development/libraries/readline/5.x.nix { };
 
-  readline6 = callPackage ../development/libraries/readline/readline6.nix { };
+  readline62 = callPackage ../development/libraries/readline/6.2.nix { };
 
-  readline63 = callPackage ../development/libraries/readline/readline6.3.nix { };
+  readline63 = callPackage ../development/libraries/readline/6.3.nix { };
 
   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
 
@@ -6275,6 +6382,8 @@ let
 
   sphinxbase = callPackage ../development/libraries/sphinxbase { };
 
+  sphinxsearch = callPackage ../servers/search/sphinxsearch { };
+
   spice = callPackage ../development/libraries/spice {
     celt = celt_0_5_1;
     inherit (xlibs) libXrandr libXfixes libXext libXrender libXinerama;
@@ -6540,6 +6649,22 @@ let
 
   zziplib = callPackage ../development/libraries/zziplib { };
 
+  ### DEVELOPMENT / LIBRARIES / AGDA
+
+  agda = callPackage ../build-support/agda {
+    glibcLocales = if pkgs.stdenv.isLinux then pkgs.glibcLocales else null;
+    extension = self : super : {};
+    Agda = haskellPackages.Agda;
+    inherit writeScriptBin;
+  };
+
+  AgdaStdlib = callPackage ../development/compilers/agda/stdlib.nix {
+    inherit (haskellPackages) ghc filemanip;
+  };
+
+  AgdaSheaves = callPackage ../development/libraries/agda/AgdaSheaves {};
+
+  bitvector = callPackage ../development/libraries/agda/bitvector {};
 
   ### DEVELOPMENT / LIBRARIES / JAVA
 
@@ -6604,7 +6729,9 @@ let
 
   ### DEVELOPMENT / LIBRARIES / JAVASCRIPT
 
-  jquery_ui = callPackage ../development/libraries/javascript/jquery-ui { };
+  jquery = callPackage ../development/libraries/javascript/jquery { };
+
+  jquery-ui = callPackage ../development/libraries/javascript/jquery-ui { };
 
   yuicompressor = callPackage ../development/tools/yuicompressor { };
 
@@ -6734,7 +6861,7 @@ let
 
   rhpl = callPackage ../development/python-modules/rhpl { };
 
-  sip = callPackage ../development/python-modules/sip { };
+  sip = pythonPackages.sip;
 
   pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
     stdenv = if stdenv.isDarwin
@@ -6838,7 +6965,7 @@ let
 
   dictdWordnet = callPackage ../servers/dict/dictd-wordnet.nix {};
 
-  diod = callPackage ../servers/diod { };
+  diod = callPackage ../servers/diod { lua = lua5_1; };
 
   dovecot = dovecot21;
 
@@ -6935,7 +7062,7 @@ let
 
   nix-binary-cache = callPackage ../servers/http/nix-binary-cache {};
 
-  nsd = callPackage ../servers/dns/nsd { };
+  nsd = callPackage ../servers/dns/nsd (config.nsd or {});
 
   nsq = callPackage ../servers/nsq { };
 
@@ -7027,6 +7154,8 @@ let
 
   postgresql93 = callPackage ../servers/sql/postgresql/9.3.x.nix { };
 
+  postgresql94 = callPackage ../servers/sql/postgresql/9.4.x.nix { };
+
   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
 
   psqlodbc = callPackage ../servers/sql/postgresql/psqlodbc { };
@@ -7100,8 +7229,14 @@ let
 
   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
 
+  tomcat7 = callPackage ../servers/http/tomcat/7.0.nix { };
+
+  tomcat8 = callPackage ../servers/http/tomcat/8.0.nix { };
+
   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
 
+  torque = callPackage ../servers/computing/torque { };
+
   axis2 = callPackage ../servers/http/tomcat/axis2 { };
 
   unifi = callPackage ../servers/unifi { };
@@ -7807,6 +7942,8 @@ let
 
   shadow = callPackage ../os-specific/linux/shadow { };
 
+  smem = callPackage ../os-specific/linux/smem { };
+
   statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
 
   sysdig = callPackage ../os-specific/linux/sysdig {
@@ -8023,6 +8160,8 @@ let
 
   aurulent-sans = callPackage ../data/fonts/aurulent-sans { };
 
+  baekmuk-ttf = callPackage ../data/fonts/baekmuk-ttf { };
+
   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
 
   cacert = callPackage ../data/misc/cacert { };
@@ -8128,6 +8267,8 @@ let
 
   posix_man_pages = callPackage ../data/documentation/man-pages-posix { };
 
+  proggyfonts = callPackage ../data/fonts/proggyfonts { };
+
   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
 
   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
@@ -8136,6 +8277,8 @@ let
 
   stdmanpages = callPackage ../data/documentation/std-man-pages { };
 
+  stix-otf = callPackage ../data/fonts/stix-otf { };
+
   symbola = callPackage ../data/fonts/symbola { };
 
   iana_etc = callPackage ../data/misc/iana-etc { };
@@ -8278,11 +8421,9 @@ let
   avxsynth = callPackage ../applications/video/avxsynth { };
 
   awesome-3-4 = callPackage ../applications/window-managers/awesome/3.4.nix {
-    lua = lua5;
     cairo = cairo.override { xcbSupport = true; };
   };
   awesome-3-5 = callPackage ../applications/window-managers/awesome {
-    lua   = lua5_1;
     cairo = cairo.override { xcbSupport = true; };
   };
   awesome = awesome-3-5;
@@ -8320,13 +8461,11 @@ let
   bitcoind = callPackage ../applications/misc/bitcoin { gui = false; };
 
   altcoins = recurseIntoAttrs (
-    callPackage ../applications/misc/bitcoin/altcoins.nix {}
+    (callPackage ../applications/misc/bitcoin/altcoins.nix {}) //
+    (callPackage ../applications/misc/bitcoin/dogecoin.nix {})
   );
 
-  bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee {
-    gnutls = gnutls;
-    libotr = libotr_3_2;
-  };
+  bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
 
   blender = callPackage  ../applications/misc/blender {
     python = python34;
@@ -8564,9 +8703,9 @@ let
 
     darcsum = callPackage ../applications/editors/emacs-modes/darcsum { };
 
-    # ecb = callPackage ../applications/editors/emacs-modes/ecb { };
+    dash = callPackage ../applications/editors/emacs-modes/dash { };
 
-    jabber = callPackage ../applications/editors/emacs-modes/jabber { };
+    # ecb = callPackage ../applications/editors/emacs-modes/ecb { };
 
     emacsClangCompleteAsync = callPackage ../applications/editors/emacs-modes/emacs-clang-complete-async { };
 
@@ -8576,6 +8715,8 @@ let
 
     emms = callPackage ../applications/editors/emacs-modes/emms { };
 
+    ensime = callPackage ../applications/editors/emacs-modes/ensime { };
+
     ess = callPackage ../applications/editors/emacs-modes/ess { };
 
     flymakeCursor = callPackage ../applications/editors/emacs-modes/flymake-cursor { };
@@ -8586,31 +8727,21 @@ let
 
     gist = callPackage ../applications/editors/emacs-modes/gist { };
 
-    idris = callPackage ../applications/editors/emacs-modes/idris { };
-
-    jade = callPackage ../applications/editors/emacs-modes/jade { };
-
-    jdee = callPackage ../applications/editors/emacs-modes/jdee {
-      # Requires Emacs 23, for `avl-tree'.
-    };
-
-    js2 = callPackage ../applications/editors/emacs-modes/js2 { };
+    haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
 
-    stratego = callPackage ../applications/editors/emacs-modes/stratego { };
+    hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
 
-    haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
+    htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
 
-    ocamlMode = callPackage ../applications/editors/emacs-modes/ocaml { };
+    idris = callPackage ../applications/editors/emacs-modes/idris { };
 
-    structuredHaskellMode = callPackage ../applications/editors/emacs-modes/structured-haskell-mode {
-      inherit (haskellPackages) cabal haskellSrcExts;
-    };
+    jabber = callPackage ../applications/editors/emacs-modes/jabber { };
 
-    tuaregMode = callPackage ../applications/editors/emacs-modes/tuareg { };
+    jade = callPackage ../applications/editors/emacs-modes/jade { };
 
-    hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
+    jdee = callPackage ../applications/editors/emacs-modes/jdee { };
 
-    htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
+    js2 = callPackage ../applications/editors/emacs-modes/js2 { };
 
     logito = callPackage ../applications/editors/emacs-modes/logito { };
 
@@ -8624,6 +8755,8 @@ let
 
     notmuch = lowPrio (callPackage ../applications/networking/mailreaders/notmuch { });
 
+    ocamlMode = callPackage ../applications/editors/emacs-modes/ocaml { };
+
     offlineimap = callPackage ../applications/editors/emacs-modes/offlineimap {};
 
     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
@@ -8654,19 +8787,31 @@ let
 
     quack = callPackage ../applications/editors/emacs-modes/quack { };
 
+    rainbowDelimiters = callPackage ../applications/editors/emacs-modes/rainbow-delimiters { };
+
     rectMark = callPackage ../applications/editors/emacs-modes/rect-mark { };
 
     remember = callPackage ../applications/editors/emacs-modes/remember { };
 
     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
 
+    s = callPackage ../applications/editors/emacs-modes/s { };
+
     sbtMode = callPackage ../applications/editors/emacs-modes/sbt-mode { };
 
     scalaMode1 = callPackage ../applications/editors/emacs-modes/scala-mode/v1.nix { };
     scalaMode2 = callPackage ../applications/editors/emacs-modes/scala-mode/v2.nix { };
 
+    stratego = callPackage ../applications/editors/emacs-modes/stratego { };
+
+    structuredHaskellMode = callPackage ../applications/editors/emacs-modes/structured-haskell-mode {
+      inherit (haskellPackages) cabal haskellSrcExts;
+    };
+
     sunriseCommander = callPackage ../applications/editors/emacs-modes/sunrise-commander { };
 
+    tuaregMode = callPackage ../applications/editors/emacs-modes/tuareg { };
+
     writeGood = callPackage ../applications/editors/emacs-modes/writegood { };
 
     xmlRpc = callPackage ../applications/editors/emacs-modes/xml-rpc { };
@@ -8794,12 +8939,6 @@ let
 
   firefox13Wrapper = wrapFirefox { browser = firefox13Pkgs.firefox; };
 
-  firefox30Pkgs = callPackage ../applications/networking/browsers/firefox/30.nix {
-    inherit (gnome) libIDL;
-    inherit (pythonPackages) pysqlite;
-    libpng = libpng_apng;
-  };
-
   firefox = callPackage ../applications/networking/browsers/firefox {
     inherit (gnome) libIDL;
     inherit (pythonPackages) pysqlite;
@@ -8822,6 +8961,11 @@ let
 
   fluxbox = callPackage ../applications/window-managers/fluxbox { };
 
+  fme = callPackage ../applications/misc/fme {
+    inherit (gnome) libglademm;
+    inherit pkgconfig autoconf automake gettext;
+  };
+
   freecad = callPackage ../applications/graphics/freecad {
     opencascade = opencascade_6_5;
     inherit (pythonPackages) matplotlib pycollada;
@@ -8911,11 +9055,16 @@ let
 
   libquvi = callPackage ../applications/video/quvi/library.nix { };
 
+  linssid = callPackage ../applications/networking/linssid { };
+
   mi2ly = callPackage ../applications/audio/mi2ly {};
 
   praat = callPackage ../applications/audio/praat { };
 
-  quvi = callPackage ../applications/video/quvi/tool.nix { };
+  quvi = callPackage ../applications/video/quvi/tool.nix {
+    lua5_sockets = lua5_1_sockets;
+    lua5 = lua5_1;
+  };
 
   quvi_scripts = callPackage ../applications/video/quvi/scripts.nix { };
 
@@ -9061,7 +9210,7 @@ let
 
   ii = callPackage ../applications/networking/irc/ii { };
 
-  ike = callPackage ../applications/ike { };
+  ike = callPackage ../applications/networking/ike { };
 
   ikiwiki = callPackage ../applications/misc/ikiwiki {
     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
@@ -9379,6 +9528,7 @@ let
 
   mpv = callPackage ../applications/video/mpv {
     lua = lua5_1;
+    lua5_sockets = lua5_1_sockets;
     bs2bSupport = config.mpv.bs2bSupport or true;
     quviSupport = config.mpv.quviSupport or false;
     cacaSupport = config.mpv.cacaSupport or true;
@@ -9406,8 +9556,13 @@ let
     iceSupport = config.murmur.iceSupport or true;
   };
 
+  musescore = callPackage ../applications/audio/musescore { };
+
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
 
+  namecoin = callPackage ../applications/misc/namecoin { };
+  namecoinqt = callPackage ../applications/misc/namecoin/qt.nix { };
+
   pcmanfm = callPackage ../applications/misc/pcmanfm { };
 
   ruby_gpgme = callPackage ../development/libraries/ruby_gpgme {
@@ -9742,7 +9897,7 @@ let
   };
 
   stella = callPackage ../misc/emulators/stella { };
-  
+
   linuxstopmotion = callPackage ../applications/video/linuxstopmotion { };
 
   sweethome3d = recurseIntoAttrs (  (callPackage ../applications/misc/sweethome3d { })
@@ -9755,6 +9910,8 @@ let
 
   bittorrentSync = callPackage ../applications/networking/bittorrentsync { };
 
+  copy-com = callPackage ../applications/networking/copy-com { };
+
   dropbox = callPackage ../applications/networking/dropbox { };
 
   dropbox-cli = callPackage ../applications/networking/dropbox-cli { };
@@ -9779,6 +9936,8 @@ let
     libpng = libpng12;
   };
 
+  smartgithg = callPackage ../applications/version-management/smartgithg { };
+
   smartdeblur = callPackage ../applications/graphics/smartdeblur { };
 
   snd = callPackage ../applications/audio/snd { };
@@ -9976,6 +10135,8 @@ let
 
   vanitygen = callPackage ../applications/misc/vanitygen { };
 
+  vanubi = callPackage ../applications/editors/vanubi { };
+
   vbindiff = callPackage ../applications/editors/vbindiff { };
 
   vcprompt = callPackage ../applications/version-management/vcprompt { };
@@ -10136,8 +10297,36 @@ let
       gtk_modules = [ libcanberra ];
     };
 
+  wrapRetroArch = { retroarch }:
+  let
+    cfg = stdenv.lib.attrByPath [ "retroarch" ] {} config;
+  in
+    import ../misc/emulators/retroarch/wrapper.nix {
+      inherit stdenv lib makeWrapper retroarch;
+      cores = with libretro;
+      ([ ]
+      ++ lib.optional (cfg.enable4do or false) _4do
+      ++ lib.optional (cfg.enableDesmume or false) desmume
+      ++ lib.optional (cfg.enableFceumm or false) fceumm
+      ++ lib.optional (cfg.enableMupen64Plus or false) mupen64plus
+      ++ lib.optional (cfg.enablePicodrive or false) picodrive
+      ++ lib.optional (cfg.enablePPSSPP or false) ppsspp
+      ++ lib.optional (cfg.enableScummVM or false) scummvm
+      ++ lib.optional (cfg.enableSnes9xNext or false) snes9x-next
+      ++ lib.optional (cfg.enableStella or false) stella
+      ++ lib.optional (cfg.enableVbaNext or false) vba-next
+      );
+  };
+
   wxhexeditor = callPackage ../applications/editors/wxhexeditor { };
 
+  wxcam = callPackage ../applications/video/wxcam {
+    inherit (gnome) libglade;
+    inherit intltool;
+    wxGTK = wxGTK28;
+    gtk = gtk2;
+  };
+
   x11vnc = callPackage ../tools/X11/x11vnc { };
 
   x2vnc = callPackage ../tools/X11/x2vnc { };
@@ -10204,6 +10393,13 @@ let
     inherit (gnome) libglade GConf;
   };
 
+  xiphos = callPackage ../applications/misc/xiphos {
+    gconf = gnome2.GConf;
+    inherit (gnome2) gtkhtml libgtkhtml libglade scrollkeeper;
+    python = python27;
+    webkitgtk = webkitgtk2;
+  };
+
   xournal = callPackage ../applications/graphics/xournal {
     inherit (gnome) libgnomeprint libgnomeprintui libgnomecanvas;
   };
@@ -10280,12 +10476,13 @@ let
 
   zgrviewer = callPackage ../applications/graphics/zgrviewer {};
 
-  zotero = callPackage ../applications/office/zotero {
-    xulrunner = xulrunner_30;
+  zim = callPackage ../applications/office/zim {
+    pygtk = pyGtkGlade;
   };
 
-  zynaddsubfx = callPackage ../applications/audio/zynaddsubfx { };
+  zotero = callPackage ../applications/office/zotero { };
 
+  zynaddsubfx = callPackage ../applications/audio/zynaddsubfx { };
 
   ### GAMES
 
@@ -10455,7 +10652,7 @@ let
 
   oilrush = callPackage ../games/oilrush { };
 
-  openra = callPackage ../games/openra { };
+  openra = callPackage ../games/openra { lua = lua5_1; };
 
   openttd = callPackage ../games/openttd {
     zlib = zlibStatic;
@@ -10530,11 +10727,9 @@ let
 
   stardust = callPackage ../games/stardust {};
 
-  steam = callPackage_i686 ../games/steam {};
+  steam = callPackage ../games/steam {};
 
-  steamChrootEnv = callPackage_i686 ../games/steam/chrootenv.nix {
-    zenity = gnome2.zenity;
-  };
+  steamChrootEnv = callPackage ../games/steam/chrootenv.nix { };
 
   stuntrally = callPackage ../games/stuntrally { };
 
@@ -10766,6 +10961,8 @@ let
 
       kdiff3 = callPackage ../tools/text/kdiff3 { };
 
+      kgraphviewer = callPackage ../applications/graphics/kgraphviewer { };
+
       kile = callPackage ../applications/editors/kile { };
 
       kmplayer = callPackage ../applications/video/kmplayer { };
@@ -10800,6 +10997,8 @@ let
 
       libnm-qt = callPackage ../development/libraries/libnm-qt { };
 
+      massif-visualizer = callPackage ../development/tools/analysis/massif-visualizer { };
+
       networkmanagement = callPackage ../tools/networking/networkmanagement { };
 
       partitionManager = callPackage ../tools/misc/partition-manager { };
@@ -10863,7 +11062,11 @@ let
     geoclue = geoclue2;
   };
 
-  oxygen_gtk = callPackage ../misc/themes/gtk2/oxygen-gtk { };
+  oxygen-gtk2 = callPackage ../misc/themes/gtk2/oxygen-gtk { };
+
+  oxygen-gtk3 = callPackage ../misc/themes/gtk3/oxygen-gtk3 { };
+
+  oxygen_gtk = oxygen-gtk2; # backwards compatibility
 
   gtk_engines = callPackage ../misc/themes/gtk2/gtk-engines { };
 
@@ -11366,6 +11569,8 @@ let
 
   pgfplots = callPackage ../tools/typesetting/tex/pgfplots { };
 
+  phabricator = callPackage ../misc/phabricator { };
+
   pjsip = callPackage ../applications/networking/pjsip { };
 
   polytable = callPackage ../tools/typesetting/tex/polytable { };
@@ -11376,7 +11581,15 @@ let
 
   putty = callPackage ../applications/networking/remote/putty { };
 
-  retroarch = callPackage ../misc/emulators/retroarch { };
+  retroarchBare = callPackage ../misc/emulators/retroarch { };
+
+  retroarchBareMaster = callPackage ../misc/emulators/retroarch/master.nix { };
+
+  retroarch = wrapRetroArch { retroarch = retroarchBareMaster; };
+
+  libretro = recurseIntoAttrs (callPackage ../misc/emulators/retroarch/cores.nix {
+    retroarch = retroarchBareMaster;
+  });
 
   rssglx = callPackage ../misc/screensavers/rss-glx { };
 
@@ -11623,6 +11836,7 @@ let
   asciidocFull = asciidoc-full;  # added 2014-06-22
   lttngTools = lttng-tools;  # added 2014-07-31
   lttngUst = lttng-ust;  # added 2014-07-31
+  jquery_ui = jquery-ui;  # added 2014-09-07
 
 
 }; in self; in pkgs
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index 9a064212a40..4fcab8e9d6d 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -131,6 +131,7 @@
     network = super.network_2_2_1_7.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     OpenGLRaw = self.OpenGLRaw_1_3_0_0;
     OpenGL = self.OpenGL_2_6_0_1;
+    parsec = super.parsec.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     QuickCheck = super.QuickCheck.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     stm = self.stm_2_4_2.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     systemFilepath = super.systemFilepath.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index cfb06b0880d..ea010bf48a5 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -190,8 +190,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   async_2_0_1_3 = callPackage ../development/libraries/haskell/async/2.0.1.3.nix {};
   async_2_0_1_4 = callPackage ../development/libraries/haskell/async/2.0.1.4.nix {};
-  async_2_0_1_5 = callPackage ../development/libraries/haskell/async/2.0.1.5.nix {};
-  async = self.async_2_0_1_5;
+  async_2_0_1_6 = callPackage ../development/libraries/haskell/async/2.0.1.6.nix {};
+  async = self.async_2_0_1_6;
 
   atomicPrimops = callPackage ../development/libraries/haskell/atomic-primops {};
 
@@ -202,8 +202,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   attoparsec_0_10_4_0 = callPackage ../development/libraries/haskell/attoparsec/0.10.4.0.nix {};
   attoparsec_0_11_3_1 = callPackage ../development/libraries/haskell/attoparsec/0.11.3.1.nix {};
   attoparsec_0_11_3_4 = callPackage ../development/libraries/haskell/attoparsec/0.11.3.4.nix {};
-  attoparsec_0_12_1_1 = callPackage ../development/libraries/haskell/attoparsec/0.12.1.1.nix {};
-  attoparsec = self.attoparsec_0_12_1_1;
+  attoparsec_0_12_1_2 = callPackage ../development/libraries/haskell/attoparsec/0.12.1.2.nix {};
+  attoparsec = self.attoparsec_0_12_1_2;
 
   attoparsecBinary = callPackage ../development/libraries/haskell/attoparsec-binary {};
 
@@ -301,9 +301,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   boolExtras = callPackage ../development/libraries/haskell/bool-extras {};
 
-  boundingboxes_0_1_1 = callPackage ../development/libraries/haskell/boundingboxes/0.1.1.nix {};
-  boundingboxes_0_2 = callPackage ../development/libraries/haskell/boundingboxes/0.2.nix {};
-  boundingboxes = self.boundingboxes_0_2;
+  boundingboxes = callPackage ../development/libraries/haskell/boundingboxes {};
 
   BoundedChan = callPackage ../development/libraries/haskell/BoundedChan {};
 
@@ -372,8 +370,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   caseInsensitive_1_0_0_1 = callPackage ../development/libraries/haskell/case-insensitive/1.0.0.1.nix {};
   caseInsensitive_1_1_0_3 = callPackage ../development/libraries/haskell/case-insensitive/1.1.0.3.nix {};
-  caseInsensitive_1_2_0_0 = callPackage ../development/libraries/haskell/case-insensitive/1.2.0.0.nix {};
-  caseInsensitive = self.caseInsensitive_1_2_0_0;
+  caseInsensitive_1_2_0_1 = callPackage ../development/libraries/haskell/case-insensitive/1.2.0.1.nix {};
+  caseInsensitive = self.caseInsensitive_1_2_0_1;
 
   cautiousFile = callPackage ../development/libraries/haskell/cautious-file {};
 
@@ -407,7 +405,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   cheapskate = callPackage ../development/libraries/haskell/cheapskate {};
 
-  checkers = callPackage ../development/libraries/haskell/checkers { QuickCheck = self.QuickCheck_2_6; };
+  checkers = callPackage ../development/libraries/haskell/checkers {};
 
   chell = callPackage ../development/libraries/haskell/chell {};
 
@@ -873,6 +871,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   fuzzcheck = callPackage ../development/libraries/haskell/fuzzcheck {};
 
+  functorInfix = callPackage ../development/libraries/haskell/functor-infix {};
+
   gamma = callPackage ../development/libraries/haskell/gamma {};
 
   geniplate = callPackage ../development/libraries/haskell/geniplate {};
@@ -901,12 +901,15 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
     cabal = self.cabal.override { enableLibraryProfiling = false; }; # pkg cannot be built with profiling enabled
   };
 
+
+  ghcServer = callPackage ../development/libraries/haskell/ghc-server {};
+
   ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-codemirror {};
 
   ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {};
 
   ghcMod_4_1_6 = callPackage ../development/libraries/haskell/ghc-mod/4.1.6.nix { inherit (pkgs) emacs; };
-  ghcMod_5_0_1_1 = callPackage ../development/libraries/haskell/ghc-mod/5.0.1.1.nix { inherit (pkgs) emacs; };
+  ghcMod_5_0_1_2 = callPackage ../development/libraries/haskell/ghc-mod/5.0.1.2.nix { inherit (pkgs) emacs; };
   ghcMod = self.ghcMod_4_1_6;
 
   ghcMtl = callPackage ../development/libraries/haskell/ghc-mtl {};
@@ -1154,7 +1157,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   haxl = callPackage ../development/libraries/haskell/haxl {};
 
-  haxr = callPackage ../development/libraries/haskell/haxr {};
+  haxr = callPackage ../development/libraries/haskell/haxr {
+    HTTP = self.HTTP.override { network = self.network_2_6_0_2; };
+  };
 
   haxr_th = callPackage ../development/libraries/haskell/haxr-th {};
 
@@ -1188,6 +1193,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   hi = callPackage ../development/libraries/haskell/hi {};
 
+  hindent = callPackage ../development/libraries/haskell/hindent {};
+
   hint = callPackage ../development/libraries/haskell/hint {};
 
   hit = callPackage ../development/libraries/haskell/hit {};
@@ -1227,9 +1234,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   hoodleTypes = callPackage ../development/libraries/haskell/hoodle-types {};
 
   hoogle = callPackage ../development/libraries/haskell/hoogle {};
-  hoogleLocal = callPackage ../development/libraries/haskell/hoogle/local.nix {
-    parallel = pkgs.parallel;
-  };
+  hoogleLocal = callPackage ../development/libraries/haskell/hoogle/local.nix {};
 
   hopenssl = callPackage ../development/libraries/haskell/hopenssl {};
 
@@ -1346,7 +1351,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   imm = callPackage ../development/libraries/haskell/imm {};
 
-  implicit = callPackage ../development/libraries/haskell/implicit {};
+  implicit = callPackage ../development/libraries/haskell/implicit {
+    optparseApplicative = self.optparseApplicative_0_9_1_1;
+  };
 
   indents = callPackage ../development/libraries/haskell/indents {};
 
@@ -1543,6 +1550,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   machines = callPackage ../development/libraries/haskell/machines {};
 
+  managed = callPackage ../development/libraries/haskell/managed {};
+
   markdown = callPackage ../development/libraries/haskell/markdown {};
 
   markdownUnlit = callPackage ../development/libraries/haskell/markdown-unlit {};
@@ -1719,8 +1728,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   network_2_3_1_0 = callPackage ../development/libraries/haskell/network/2.3.1.0.nix {};
   network_2_4_1_2 = callPackage ../development/libraries/haskell/network/2.4.1.2.nix {};
   network_2_5_0_0 = callPackage ../development/libraries/haskell/network/2.5.0.0.nix {};
-  network_2_6_0_1 = callPackage ../development/libraries/haskell/network/2.6.0.1.nix {};
-  network = self.network_2_5_0_0; # the latest version break HTTP on all platforms
+  network_2_6_0_2 = callPackage ../development/libraries/haskell/network/2.6.0.2.nix {};
+  network = self.network_2_5_0_0;
 
   networkCarbon = callPackage ../development/libraries/haskell/network-carbon {};
 
@@ -1793,7 +1802,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   options = callPackage ../development/libraries/haskell/options {};
 
-  optparseApplicative = callPackage ../development/libraries/haskell/optparse-applicative {};
+  optparseApplicative_0_9_1_1 = callPackage ../development/libraries/haskell/optparse-applicative/0.9.1.1.nix {};
+  optparseApplicative_0_10_0 = callPackage ../development/libraries/haskell/optparse-applicative/0.10.0.nix {};
+  optparseApplicative = self.optparseApplicative_0_10_0;
 
   pathPieces = callPackage ../development/libraries/haskell/path-pieces {};
 
@@ -1826,8 +1837,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   parsec_3_1_1   = callPackage ../development/libraries/haskell/parsec/3.1.1.nix {};
   parsec_3_1_2   = callPackage ../development/libraries/haskell/parsec/3.1.2.nix {};
   parsec_3_1_3   = callPackage ../development/libraries/haskell/parsec/3.1.3.nix {};
-  parsec_3_1_5   = callPackage ../development/libraries/haskell/parsec/3.1.5.nix {};
-  parsec = self.parsec_3_1_5;
+  parsec_3_1_6   = callPackage ../development/libraries/haskell/parsec/3.1.6.nix {};
+  parsec = self.parsec_3_1_6;
 
   parsers = callPackage ../development/libraries/haskell/parsers {};
 
@@ -1847,6 +1858,12 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   pcreLight = callPackage ../development/libraries/haskell/pcre-light {};
 
+  pdfToolboxContent = callPackage ../development/libraries/haskell/pdf-toolbox-content {};
+
+  pdfToolboxCore = callPackage ../development/libraries/haskell/pdf-toolbox-core {};
+
+  pdfToolboxDocument = callPackage ../development/libraries/haskell/pdf-toolbox-document {};
+
   pem = callPackage ../development/libraries/haskell/pem {};
 
   permutation = callPackage ../development/libraries/haskell/permutation {};
@@ -2065,6 +2082,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   regexCompatTdfa = callPackage ../development/libraries/haskell/regex-compat-tdfa {};
 
+  regexPcreBuiltin = callPackage ../development/libraries/haskell/regex-pcre-builtin {};
+
   regexPosix_0_72_0_3 = callPackage ../development/libraries/haskell/regex-posix/0.72.0.3.nix {};
   regexPosix_0_94_1 = callPackage ../development/libraries/haskell/regex-posix/0.94.1.nix {};
   regexPosix_0_94_2 = callPackage ../development/libraries/haskell/regex-posix/0.94.2.nix {};
@@ -2130,6 +2149,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   robotsTxt = callPackage ../development/libraries/haskell/robots-txt {};
 
+  rope = callPackage ../development/libraries/haskell/rope {};
+
   rosezipper = callPackage ../development/libraries/haskell/rosezipper {};
 
   RSA = callPackage ../development/libraries/haskell/RSA {};
@@ -2147,8 +2168,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   sbv = callPackage ../development/libraries/haskell/sbv {};
 
   scientific_0_2_0_2 = callPackage ../development/libraries/haskell/scientific/0.2.0.2.nix {};
-  scientific_0_3_3_0 = callPackage ../development/libraries/haskell/scientific/0.3.3.0.nix {};
-  scientific = self.scientific_0_3_3_0;
+  scientific_0_3_3_1 = callPackage ../development/libraries/haskell/scientific/0.3.3.1.nix {};
+  scientific = self.scientific_0_3_3_1;
 
   scotty = callPackage ../development/libraries/haskell/scotty {};
 
@@ -2526,7 +2547,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   threepennyGui = callPackage ../development/libraries/haskell/threepenny-gui {};
 
   time_1_1_2_4 = callPackage ../development/libraries/haskell/time/1.1.2.4.nix {};
-  time_1_4_2 = callPackage ../development/libraries/haskell/time/1.4.2.nix {};
+  time_1_5 = callPackage ../development/libraries/haskell/time/1.5.nix {};
   time = null;                  # core package since ghc >= 6.12.x
 
   timerep = callPackage ../development/libraries/haskell/timerep {};
@@ -2541,13 +2562,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   timeCompat = callPackage ../development/libraries/haskell/time-compat {};
 
-  tls_1_1_5 = callPackage ../development/libraries/haskell/tls/1.1.5.nix {};
-  tls_1_2_8 = callPackage ../development/libraries/haskell/tls/1.2.8.nix {};
-  tls = self.tls_1_2_8;
-
-  tlsExtra = callPackage ../development/libraries/haskell/tls-extra {
-    tls = self.tls_1_1_5;
-  };
+  tls = callPackage ../development/libraries/haskell/tls {};
 
   tostring = callPackage ../development/libraries/haskell/tostring {};
 
@@ -2890,7 +2905,6 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   # Compilers.
 
   Agda = callPackage ../development/compilers/agda {};
-  AgdaStdlib = callPackage ../development/compilers/agda/stdlib.nix {};
 
   uhc = callPackage ../development/compilers/uhc {};
 
@@ -2912,7 +2926,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   BNFC = callPackage ../development/tools/haskell/BNFC {};
 
-  cake3 = callPackage ../development/tools/haskell/cake3 {};
+  cake3 = callPackage ../development/tools/haskell/cake3 {
+    optparseApplicative = self.optparseApplicative_0_9_1_1;
+  };
 
   cpphs = callPackage ../development/tools/misc/cpphs {};
 
@@ -2928,7 +2944,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   haddock_2_13_2 = callPackage ../development/tools/documentation/haddock/2.13.2.nix {};
   haddock_2_14_2 = callPackage ../development/tools/documentation/haddock/2.14.2.nix {};
   haddock_2_14_3 = callPackage ../development/tools/documentation/haddock/2.14.3.nix {};
-  haddock = self.haddock_2_14_3;
+  haddock_2_15_0 = callPackage ../development/tools/documentation/haddock/2.15.0.nix {};
+  haddock = self.haddock_2_15_0;
+
+  haddockApi = callPackage ../development/libraries/haskell/haddock-api {};
 
   haddockLibrary = callPackage ../development/libraries/haskell/haddock-library {};
 
@@ -3000,7 +3019,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   nc-indicators = callPackage ../applications/misc/nc-indicators {};
 
-  sloane = callPackage ../applications/science/math/sloane {};
+  sloane = callPackage ../applications/science/math/sloane {
+    optparseApplicative = self.optparseApplicative_0_9_1_1;
+  };
 
   taffybar = callPackage ../applications/misc/taffybar {};
 
@@ -3027,12 +3048,19 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   cabal2nix = callPackage ../development/tools/haskell/cabal2nix {};
 
   # Build a cabal package given a local .cabal file
-  buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; } }: let
-    cabalExpr = pkgs.stdenv.mkDerivation ({
+  buildLocalCabalWithArgs = { src
+                            , name
+                            , args ? {}
+                            , cabalDrvArgs ? { jailbreak = true; }
+                            # for import-from-derivation, want to use current system
+                            , nativePkgs ? import pkgs.path {}
+                            }: let
+    cabalExpr = nativePkgs.stdenv.mkDerivation ({
       name = "${name}.nix";
 
       buildCommand = ''
-      ${self.cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \
+      export HOME="$TMPDIR"
+      ${nativePkgs.haskellPackages.cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \
           | grep -v FILTERME | sed \
             -e 's/licenses.proprietary/licenses.unfree/' \
             -e 's/{ cabal/{ cabal, cabalInstall, cabalDrvArgs ? {}, src/' \
@@ -3041,9 +3069,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
             -e 's/pname = \([^\n]*\)/pname = \1\n  inherit src;\n/'  > $out
       '';
 
-    } // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux {
+    } // pkgs.lib.optionalAttrs nativePkgs.stdenv.isLinux {
       LANG = "en_US.UTF-8";
-      LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
+      LOCALE_ARCHIVE = "${nativePkgs.glibcLocales}/lib/locale/locale-archive";
     });
   in callPackage cabalExpr ({ inherit src cabalDrvArgs; } // args);
 
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index fb12a10e5df..c1b0eafcb7d 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -4,7 +4,8 @@
   by-spec."Base64"."~0.2.0" =
     self.by-version."Base64"."0.2.1";
   by-version."Base64"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-Base64-0.2.1";
+    name = "Base64-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz";
@@ -14,8 +15,8 @@
     ];
     buildInputs =
       (self.nativeDeps."Base64" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "Base64" ];
@@ -23,7 +24,8 @@
   by-spec."JSONStream"."~0.7.1" =
     self.by-version."JSONStream"."0.7.4";
   by-version."JSONStream"."0.7.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-JSONStream-0.7.4";
+    name = "JSONStream-0.7.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/JSONStream/-/JSONStream-0.7.4.tgz";
@@ -33,10 +35,10 @@
     ];
     buildInputs =
       (self.nativeDeps."JSONStream" or []);
-    deps = [
-      self.by-version."jsonparse"."0.0.5"
-      self.by-version."through"."2.3.4"
-    ];
+    deps = {
+      "jsonparse-0.0.5" = self.by-version."jsonparse"."0.0.5";
+      "through-2.3.4" = self.by-version."through"."2.3.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "JSONStream" ];
@@ -45,6 +47,7 @@
     self.by-version."JSONStream"."0.8.4";
   by-version."JSONStream"."0.8.4" = lib.makeOverridable self.buildNodePackage {
     name = "JSONStream-0.8.4";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz";
@@ -54,10 +57,10 @@
     ];
     buildInputs =
       (self.nativeDeps."JSONStream" or []);
-    deps = [
-      self.by-version."jsonparse"."0.0.5"
-      self.by-version."through"."2.3.4"
-    ];
+    deps = {
+      "jsonparse-0.0.5" = self.by-version."jsonparse"."0.0.5";
+      "through-2.3.4" = self.by-version."through"."2.3.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "JSONStream" ];
@@ -67,7 +70,8 @@
   by-spec."StringScanner"."~0.0.3" =
     self.by-version."StringScanner"."0.0.3";
   by-version."StringScanner"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-StringScanner-0.0.3";
+    name = "StringScanner-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/StringScanner/-/StringScanner-0.0.3.tgz";
@@ -77,8 +81,8 @@
     ];
     buildInputs =
       (self.nativeDeps."StringScanner" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "StringScanner" ];
@@ -86,7 +90,8 @@
   by-spec."abbrev"."1" =
     self.by-version."abbrev"."1.0.5";
   by-version."abbrev"."1.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-abbrev-1.0.5";
+    name = "abbrev-1.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz";
@@ -96,8 +101,8 @@
     ];
     buildInputs =
       (self.nativeDeps."abbrev" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "abbrev" ];
@@ -109,7 +114,8 @@
   by-spec."accepts"."1.0.0" =
     self.by-version."accepts"."1.0.0";
   by-version."accepts"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-accepts-1.0.0";
+    name = "accepts-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/accepts/-/accepts-1.0.0.tgz";
@@ -119,18 +125,19 @@
     ];
     buildInputs =
       (self.nativeDeps."accepts" or []);
-    deps = [
-      self.by-version."mime"."1.2.11"
-      self.by-version."negotiator"."0.3.0"
-    ];
+    deps = {
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "negotiator-0.3.0" = self.by-version."negotiator"."0.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "accepts" ];
   };
-  by-spec."accepts"."~1.0.0" =
+  by-spec."accepts"."~1.0.7" =
     self.by-version."accepts"."1.0.7";
   by-version."accepts"."1.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-accepts-1.0.7";
+    name = "accepts-1.0.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz";
@@ -140,24 +147,41 @@
     ];
     buildInputs =
       (self.nativeDeps."accepts" or []);
-    deps = [
-      self.by-version."mime-types"."1.0.2"
-      self.by-version."negotiator"."0.4.7"
+    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";
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "accepts" ];
+  };
+  by-spec."accepts"."~1.1.0" =
+    self.by-version."accepts"."1.1.0";
+  by-version."accepts"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "accepts-1.1.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/accepts/-/accepts-1.1.0.tgz";
+        name = "accepts-1.1.0.tgz";
+        sha1 = "43ba6d946374c80f91823eaec6bb43dc4955500b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."accepts" or []);
+    deps = {
+      "mime-types-2.0.1" = self.by-version."mime-types"."2.0.1";
+      "negotiator-0.4.7" = self.by-version."negotiator"."0.4.7";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "accepts" ];
   };
-  by-spec."accepts"."~1.0.4" =
-    self.by-version."accepts"."1.0.7";
-  by-spec."accepts"."~1.0.5" =
-    self.by-version."accepts"."1.0.7";
-  by-spec."accepts"."~1.0.7" =
-    self.by-version."accepts"."1.0.7";
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-active-x-obfuscator-0.0.1";
+    name = "active-x-obfuscator-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz";
@@ -167,9 +191,9 @@
     ];
     buildInputs =
       (self.nativeDeps."active-x-obfuscator" or []);
-    deps = [
-      self.by-version."zeparser"."0.0.5"
-    ];
+    deps = {
+      "zeparser-0.0.5" = self.by-version."zeparser"."0.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "active-x-obfuscator" ];
@@ -177,7 +201,8 @@
   by-spec."addressparser"."~0.2.1" =
     self.by-version."addressparser"."0.2.1";
   by-version."addressparser"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-addressparser-0.2.1";
+    name = "addressparser-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/addressparser/-/addressparser-0.2.1.tgz";
@@ -187,8 +212,8 @@
     ];
     buildInputs =
       (self.nativeDeps."addressparser" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "addressparser" ];
@@ -196,7 +221,8 @@
   by-spec."adm-zip"."0.2.1" =
     self.by-version."adm-zip"."0.2.1";
   by-version."adm-zip"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-adm-zip-0.2.1";
+    name = "adm-zip-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/adm-zip/-/adm-zip-0.2.1.tgz";
@@ -206,8 +232,8 @@
     ];
     buildInputs =
       (self.nativeDeps."adm-zip" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "adm-zip" ];
@@ -215,7 +241,8 @@
   by-spec."adm-zip"."~0.4.3" =
     self.by-version."adm-zip"."0.4.4";
   by-version."adm-zip"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-adm-zip-0.4.4";
+    name = "adm-zip-0.4.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz";
@@ -225,36 +252,38 @@
     ];
     buildInputs =
       (self.nativeDeps."adm-zip" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "adm-zip" ];
   };
   by-spec."almond"."*" =
-    self.by-version."almond"."0.2.9";
-  by-version."almond"."0.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-almond-0.2.9";
+    self.by-version."almond"."0.3.0";
+  by-version."almond"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "almond-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/almond/-/almond-0.2.9.tgz";
-        name = "almond-0.2.9.tgz";
-        sha1 = "ee4543d653a2306d682091c11050d441034f5ed8";
+        url = "http://registry.npmjs.org/almond/-/almond-0.3.0.tgz";
+        name = "almond-0.3.0.tgz";
+        sha1 = "701510c31038354f85ea31410b89ff3392058014";
       })
     ];
     buildInputs =
       (self.nativeDeps."almond" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "almond" ];
   };
-  "almond" = self.by-version."almond"."0.2.9";
+  "almond" = self.by-version."almond"."0.3.0";
   by-spec."amdefine"."*" =
     self.by-version."amdefine"."0.1.0";
   by-version."amdefine"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-amdefine-0.1.0";
+    name = "amdefine-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz";
@@ -264,8 +293,8 @@
     ];
     buildInputs =
       (self.nativeDeps."amdefine" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "amdefine" ];
@@ -276,7 +305,8 @@
   by-spec."ansi"."~0.3.0" =
     self.by-version."ansi"."0.3.0";
   by-version."ansi"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansi-0.3.0";
+    name = "ansi-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz";
@@ -286,35 +316,17 @@
     ];
     buildInputs =
       (self.nativeDeps."ansi" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ansi" ];
   };
-  by-spec."ansi-regex"."^0.1.0" =
-    self.by-version."ansi-regex"."0.1.0";
-  by-version."ansi-regex"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansi-regex-0.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/ansi-regex/-/ansi-regex-0.1.0.tgz";
-        name = "ansi-regex-0.1.0.tgz";
-        sha1 = "55ca60db6900857c423ae9297980026f941ed903";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."ansi-regex" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "ansi-regex" ];
-  };
   by-spec."ansi-regex"."^0.2.0" =
     self.by-version."ansi-regex"."0.2.1";
   by-version."ansi-regex"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansi-regex-0.2.1";
+    name = "ansi-regex-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz";
@@ -324,8 +336,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ansi-regex" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ansi-regex" ];
@@ -335,7 +347,8 @@
   by-spec."ansi-remover"."*" =
     self.by-version."ansi-remover"."0.0.2";
   by-version."ansi-remover"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansi-remover-0.0.2";
+    name = "ansi-remover-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ansi-remover/-/ansi-remover-0.0.2.tgz";
@@ -345,8 +358,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ansi-remover" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ansi-remover" ];
@@ -355,7 +368,8 @@
   by-spec."ansi-styles"."^1.1.0" =
     self.by-version."ansi-styles"."1.1.0";
   by-version."ansi-styles"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansi-styles-1.1.0";
+    name = "ansi-styles-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz";
@@ -365,8 +379,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ansi-styles" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ansi-styles" ];
@@ -374,7 +388,8 @@
   by-spec."ansi-styles"."~1.0.0" =
     self.by-version."ansi-styles"."1.0.0";
   by-version."ansi-styles"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansi-styles-1.0.0";
+    name = "ansi-styles-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz";
@@ -384,8 +399,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ansi-styles" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ansi-styles" ];
@@ -393,7 +408,8 @@
   by-spec."ansicolors"."~0.3.2" =
     self.by-version."ansicolors"."0.3.2";
   by-version."ansicolors"."0.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansicolors-0.3.2";
+    name = "ansicolors-0.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz";
@@ -403,8 +419,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ansicolors" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ansicolors" ];
@@ -412,7 +428,8 @@
   by-spec."ansistyles"."~0.1.3" =
     self.by-version."ansistyles"."0.1.3";
   by-version."ansistyles"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansistyles-0.1.3";
+    name = "ansistyles-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz";
@@ -422,8 +439,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ansistyles" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ansistyles" ];
@@ -431,7 +448,8 @@
   by-spec."apparatus".">= 0.0.6" =
     self.by-version."apparatus"."0.0.8";
   by-version."apparatus"."0.0.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-apparatus-0.0.8";
+    name = "apparatus-0.0.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/apparatus/-/apparatus-0.0.8.tgz";
@@ -441,35 +459,37 @@
     ];
     buildInputs =
       (self.nativeDeps."apparatus" or []);
-    deps = [
-      self.by-version."sylvester"."0.0.21"
-    ];
+    deps = {
+      "sylvester-0.0.21" = self.by-version."sylvester"."0.0.21";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "apparatus" ];
   };
-  by-spec."archiver"."~0.10.0" =
-    self.by-version."archiver"."0.10.1";
-  by-version."archiver"."0.10.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-archiver-0.10.1";
+  by-spec."archiver"."~0.11.0" =
+    self.by-version."archiver"."0.11.0";
+  by-version."archiver"."0.11.0" = lib.makeOverridable self.buildNodePackage {
+    name = "archiver-0.11.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/archiver/-/archiver-0.10.1.tgz";
-        name = "archiver-0.10.1.tgz";
-        sha1 = "c88a50fe114f744d059a07dfc4690f3a204146e4";
+        url = "http://registry.npmjs.org/archiver/-/archiver-0.11.0.tgz";
+        name = "archiver-0.11.0.tgz";
+        sha1 = "98177da7a6c0192b7f2798f30cd6eab8abd76690";
       })
     ];
     buildInputs =
       (self.nativeDeps."archiver" or []);
-    deps = [
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."readable-stream"."1.0.31"
-      self.by-version."tar-stream"."0.4.5"
-      self.by-version."zip-stream"."0.3.7"
-      self.by-version."lazystream"."0.1.0"
-      self.by-version."file-utils"."0.2.0"
-      self.by-version."lodash"."2.4.1"
-    ];
+    deps = {
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
+      "glob-3.2.11" = self.by-version."glob"."3.2.11";
+      "lazystream-0.1.0" = self.by-version."lazystream"."0.1.0";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+      "tar-stream-0.4.5" = self.by-version."tar-stream"."0.4.5";
+      "zip-stream-0.4.1" = self.by-version."zip-stream"."0.4.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "archiver" ];
@@ -477,7 +497,8 @@
   by-spec."archy"."0" =
     self.by-version."archy"."0.0.2";
   by-version."archy"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-archy-0.0.2";
+    name = "archy-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/archy/-/archy-0.0.2.tgz";
@@ -487,16 +508,19 @@
     ];
     buildInputs =
       (self.nativeDeps."archy" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "archy" ];
   };
+  by-spec."archy"."^0.0.2" =
+    self.by-version."archy"."0.0.2";
   by-spec."argparse"."0.1.15" =
     self.by-version."argparse"."0.1.15";
   by-version."argparse"."0.1.15" = lib.makeOverridable self.buildNodePackage {
-    name = "node-argparse-0.1.15";
+    name = "argparse-0.1.15";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/argparse/-/argparse-0.1.15.tgz";
@@ -506,10 +530,10 @@
     ];
     buildInputs =
       (self.nativeDeps."argparse" or []);
-    deps = [
-      self.by-version."underscore"."1.4.4"
-      self.by-version."underscore.string"."2.3.3"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "argparse" ];
@@ -519,7 +543,8 @@
   by-spec."asap"."^1.0.0" =
     self.by-version."asap"."1.0.0";
   by-version."asap"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-asap-1.0.0";
+    name = "asap-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/asap/-/asap-1.0.0.tgz";
@@ -529,8 +554,8 @@
     ];
     buildInputs =
       (self.nativeDeps."asap" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "asap" ];
@@ -538,7 +563,8 @@
   by-spec."ascii-json"."~0.2" =
     self.by-version."ascii-json"."0.2.0";
   by-version."ascii-json"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ascii-json-0.2.0";
+    name = "ascii-json-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ascii-json/-/ascii-json-0.2.0.tgz";
@@ -548,8 +574,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ascii-json" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ascii-json" ];
@@ -557,7 +583,8 @@
   by-spec."asn1"."0.1.11" =
     self.by-version."asn1"."0.1.11";
   by-version."asn1"."0.1.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-asn1-0.1.11";
+    name = "asn1-0.1.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz";
@@ -567,39 +594,41 @@
     ];
     buildInputs =
       (self.nativeDeps."asn1" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "asn1" ];
   };
   by-spec."assert"."*" =
-    self.by-version."assert"."1.1.1";
-  by-version."assert"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-assert-1.1.1";
+    self.by-version."assert"."1.1.2";
+  by-version."assert"."1.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "assert-1.1.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/assert/-/assert-1.1.1.tgz";
-        name = "assert-1.1.1.tgz";
-        sha1 = "766549ef4a6014b1e19c7c53f9816eabda440760";
+        url = "http://registry.npmjs.org/assert/-/assert-1.1.2.tgz";
+        name = "assert-1.1.2.tgz";
+        sha1 = "adaa04c46bb58c6dd1f294da3eb26e6228eb6e44";
       })
     ];
     buildInputs =
       (self.nativeDeps."assert" or []);
-    deps = [
-      self.by-version."util"."0.10.2"
-    ];
+    deps = {
+      "util-0.10.3" = self.by-version."util"."0.10.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "assert" ];
   };
-  "assert" = self.by-version."assert"."1.1.1";
+  "assert" = self.by-version."assert"."1.1.2";
   by-spec."assert"."~1.1.0" =
-    self.by-version."assert"."1.1.1";
+    self.by-version."assert"."1.1.2";
   by-spec."assert-plus"."0.1.2" =
     self.by-version."assert-plus"."0.1.2";
   by-version."assert-plus"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-assert-plus-0.1.2";
+    name = "assert-plus-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz";
@@ -609,8 +638,8 @@
     ];
     buildInputs =
       (self.nativeDeps."assert-plus" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "assert-plus" ];
@@ -618,7 +647,8 @@
   by-spec."assert-plus"."0.1.3" =
     self.by-version."assert-plus"."0.1.3";
   by-version."assert-plus"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-assert-plus-0.1.3";
+    name = "assert-plus-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.3.tgz";
@@ -628,8 +658,8 @@
     ];
     buildInputs =
       (self.nativeDeps."assert-plus" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "assert-plus" ];
@@ -637,7 +667,8 @@
   by-spec."assertion-error"."1.0.0" =
     self.by-version."assertion-error"."1.0.0";
   by-version."assertion-error"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-assertion-error-1.0.0";
+    name = "assertion-error-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz";
@@ -647,8 +678,8 @@
     ];
     buildInputs =
       (self.nativeDeps."assertion-error" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "assertion-error" ];
@@ -656,7 +687,8 @@
   by-spec."astw"."~1.1.0" =
     self.by-version."astw"."1.1.0";
   by-version."astw"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-astw-1.1.0";
+    name = "astw-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/astw/-/astw-1.1.0.tgz";
@@ -666,9 +698,9 @@
     ];
     buildInputs =
       (self.nativeDeps."astw" or []);
-    deps = [
-      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
-    ];
+    deps = {
+      "esprima-fb-3001.1.0-dev-harmony-fb" = self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "astw" ];
@@ -676,7 +708,8 @@
   by-spec."async"."*" =
     self.by-version."async"."0.9.0";
   by-version."async"."0.9.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.9.0";
+    name = "async-0.9.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/async/-/async-0.9.0.tgz";
@@ -686,36 +719,18 @@
     ];
     buildInputs =
       (self.nativeDeps."async" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "async" ];
   };
   "async" = self.by-version."async"."0.9.0";
-  by-spec."async"."0.1.15" =
-    self.by-version."async"."0.1.15";
-  by-version."async"."0.1.15" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.1.15";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/async/-/async-0.1.15.tgz";
-        name = "async-0.1.15.tgz";
-        sha1 = "2180eaca2cf2a6ca5280d41c0585bec9b3e49bd3";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."async" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "async" ];
-  };
   by-spec."async"."0.1.22" =
     self.by-version."async"."0.1.22";
   by-version."async"."0.1.22" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.1.22";
+    name = "async-0.1.22";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/async/-/async-0.1.22.tgz";
@@ -725,8 +740,8 @@
     ];
     buildInputs =
       (self.nativeDeps."async" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "async" ];
@@ -736,7 +751,8 @@
   by-spec."async"."0.2.9" =
     self.by-version."async"."0.2.9";
   by-version."async"."0.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.2.9";
+    name = "async-0.2.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/async/-/async-0.2.9.tgz";
@@ -746,8 +762,8 @@
     ];
     buildInputs =
       (self.nativeDeps."async" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "async" ];
@@ -755,7 +771,8 @@
   by-spec."async"."0.2.x" =
     self.by-version."async"."0.2.10";
   by-version."async"."0.2.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.2.10";
+    name = "async-0.2.10";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/async/-/async-0.2.10.tgz";
@@ -765,8 +782,8 @@
     ];
     buildInputs =
       (self.nativeDeps."async" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "async" ];
@@ -777,6 +794,8 @@
     self.by-version."async"."0.2.10";
   by-spec."async"."~0.1.22" =
     self.by-version."async"."0.1.22";
+  by-spec."async"."~0.2.0" =
+    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" =
@@ -786,7 +805,8 @@
   by-spec."async"."~0.7.0" =
     self.by-version."async"."0.7.0";
   by-version."async"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.7.0";
+    name = "async-0.7.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/async/-/async-0.7.0.tgz";
@@ -796,8 +816,8 @@
     ];
     buildInputs =
       (self.nativeDeps."async" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "async" ];
@@ -805,7 +825,8 @@
   by-spec."async"."~0.8" =
     self.by-version."async"."0.8.0";
   by-version."async"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.8.0";
+    name = "async-0.8.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/async/-/async-0.8.0.tgz";
@@ -815,18 +836,19 @@
     ];
     buildInputs =
       (self.nativeDeps."async" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "async" ];
   };
   by-spec."async"."~0.9.0" =
     self.by-version."async"."0.9.0";
-  by-spec."async-some"."~1.0.0" =
+  by-spec."async-some"."~1.0.1" =
     self.by-version."async-some"."1.0.1";
   by-version."async-some"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-some-1.0.1";
+    name = "async-some-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/async-some/-/async-some-1.0.1.tgz";
@@ -836,40 +858,42 @@
     ];
     buildInputs =
       (self.nativeDeps."async-some" or []);
-    deps = [
-      self.by-version."dezalgo"."1.0.0"
-    ];
+    deps = {
+      "dezalgo-1.0.0" = self.by-version."dezalgo"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "async-some" ];
   };
   by-spec."aws-sdk"."*" =
-    self.by-version."aws-sdk"."2.0.14";
-  by-version."aws-sdk"."2.0.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-aws-sdk-2.0.14";
+    self.by-version."aws-sdk"."2.0.15";
+  by-version."aws-sdk"."2.0.15" = lib.makeOverridable self.buildNodePackage {
+    name = "aws-sdk-2.0.15";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-2.0.14.tgz";
-        name = "aws-sdk-2.0.14.tgz";
-        sha1 = "ee6668b97d62924b3d27d577658411c06ad7f2ad";
+        url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-2.0.15.tgz";
+        name = "aws-sdk-2.0.15.tgz";
+        sha1 = "2448f90ed553ab9eba130e4e256b6797386293b2";
       })
     ];
     buildInputs =
       (self.nativeDeps."aws-sdk" or []);
-    deps = [
-      self.by-version."aws-sdk-apis"."3.1.6"
-      self.by-version."xml2js"."0.2.6"
-      self.by-version."xmlbuilder"."0.4.2"
-    ];
+    deps = {
+      "aws-sdk-apis-3.1.7" = self.by-version."aws-sdk-apis"."3.1.7";
+      "xml2js-0.2.6" = self.by-version."xml2js"."0.2.6";
+      "xmlbuilder-0.4.2" = self.by-version."xmlbuilder"."0.4.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "aws-sdk" ];
   };
-  "aws-sdk" = self.by-version."aws-sdk"."2.0.14";
+  "aws-sdk" = self.by-version."aws-sdk"."2.0.15";
   by-spec."aws-sdk".">=1.2.0 <2" =
     self.by-version."aws-sdk"."1.18.0";
   by-version."aws-sdk"."1.18.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-aws-sdk-1.18.0";
+    name = "aws-sdk-1.18.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-1.18.0.tgz";
@@ -879,29 +903,30 @@
     ];
     buildInputs =
       (self.nativeDeps."aws-sdk" or []);
-    deps = [
-      self.by-version."xml2js"."0.2.4"
-      self.by-version."xmlbuilder"."0.4.2"
-    ];
+    deps = {
+      "xml2js-0.2.4" = self.by-version."xml2js"."0.2.4";
+      "xmlbuilder-0.4.2" = self.by-version."xmlbuilder"."0.4.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "aws-sdk" ];
   };
   by-spec."aws-sdk-apis".">=3.1.0 <4.0.0" =
-    self.by-version."aws-sdk-apis"."3.1.6";
-  by-version."aws-sdk-apis"."3.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-aws-sdk-apis-3.1.6";
+    self.by-version."aws-sdk-apis"."3.1.7";
+  by-version."aws-sdk-apis"."3.1.7" = lib.makeOverridable self.buildNodePackage {
+    name = "aws-sdk-apis-3.1.7";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/aws-sdk-apis/-/aws-sdk-apis-3.1.6.tgz";
-        name = "aws-sdk-apis-3.1.6.tgz";
-        sha1 = "1831a16ef8d5dd7d7278c749aff3d33ee7b1dacb";
+        url = "http://registry.npmjs.org/aws-sdk-apis/-/aws-sdk-apis-3.1.7.tgz";
+        name = "aws-sdk-apis-3.1.7.tgz";
+        sha1 = "646f59b8cf3e2b65b77aa3de2e66f3d1031aac61";
       })
     ];
     buildInputs =
       (self.nativeDeps."aws-sdk-apis" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "aws-sdk-apis" ];
@@ -909,7 +934,8 @@
   by-spec."aws-sign"."~0.2.0" =
     self.by-version."aws-sign"."0.2.0";
   by-version."aws-sign"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-aws-sign-0.2.0";
+    name = "aws-sign-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz";
@@ -919,8 +945,8 @@
     ];
     buildInputs =
       (self.nativeDeps."aws-sign" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "aws-sign" ];
@@ -928,7 +954,8 @@
   by-spec."aws-sign"."~0.3.0" =
     self.by-version."aws-sign"."0.3.0";
   by-version."aws-sign"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-aws-sign-0.3.0";
+    name = "aws-sign-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/aws-sign/-/aws-sign-0.3.0.tgz";
@@ -938,8 +965,8 @@
     ];
     buildInputs =
       (self.nativeDeps."aws-sign" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "aws-sign" ];
@@ -947,7 +974,8 @@
   by-spec."aws-sign2"."~0.5.0" =
     self.by-version."aws-sign2"."0.5.0";
   by-version."aws-sign2"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-aws-sign2-0.5.0";
+    name = "aws-sign2-0.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz";
@@ -957,8 +985,8 @@
     ];
     buildInputs =
       (self.nativeDeps."aws-sign2" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "aws-sign2" ];
@@ -966,7 +994,8 @@
   by-spec."backbone"."*" =
     self.by-version."backbone"."1.1.2";
   by-version."backbone"."1.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-backbone-1.1.2";
+    name = "backbone-1.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/backbone/-/backbone-1.1.2.tgz";
@@ -976,9 +1005,9 @@
     ];
     buildInputs =
       (self.nativeDeps."backbone" or []);
-    deps = [
-      self.by-version."underscore"."1.6.0"
-    ];
+    deps = {
+      "underscore-1.7.0" = self.by-version."underscore"."1.7.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "backbone" ];
@@ -987,7 +1016,8 @@
   by-spec."backoff"."2.1.0" =
     self.by-version."backoff"."2.1.0";
   by-version."backoff"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-backoff-2.1.0";
+    name = "backoff-2.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/backoff/-/backoff-2.1.0.tgz";
@@ -997,8 +1027,8 @@
     ];
     buildInputs =
       (self.nativeDeps."backoff" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "backoff" ];
@@ -1006,7 +1036,8 @@
   by-spec."base62"."0.1.1" =
     self.by-version."base62"."0.1.1";
   by-version."base62"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-base62-0.1.1";
+    name = "base62-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/base62/-/base62-0.1.1.tgz";
@@ -1016,8 +1047,8 @@
     ];
     buildInputs =
       (self.nativeDeps."base62" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "base62" ];
@@ -1025,7 +1056,8 @@
   by-spec."base64-js"."~0.0.4" =
     self.by-version."base64-js"."0.0.7";
   by-version."base64-js"."0.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-base64-js-0.0.7";
+    name = "base64-js-0.0.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/base64-js/-/base64-js-0.0.7.tgz";
@@ -1035,8 +1067,8 @@
     ];
     buildInputs =
       (self.nativeDeps."base64-js" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "base64-js" ];
@@ -1044,7 +1076,8 @@
   by-spec."base64-url"."1" =
     self.by-version."base64-url"."1.0.0";
   by-version."base64-url"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-base64-url-1.0.0";
+    name = "base64-url-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/base64-url/-/base64-url-1.0.0.tgz";
@@ -1054,16 +1087,19 @@
     ];
     buildInputs =
       (self.nativeDeps."base64-url" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "base64-url" ];
   };
+  by-spec."base64-url"."1.0.0" =
+    self.by-version."base64-url"."1.0.0";
   by-spec."base64id"."0.1.0" =
     self.by-version."base64id"."0.1.0";
   by-version."base64id"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-base64id-0.1.0";
+    name = "base64id-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz";
@@ -1073,8 +1109,8 @@
     ];
     buildInputs =
       (self.nativeDeps."base64id" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "base64id" ];
@@ -1082,7 +1118,8 @@
   by-spec."basic-auth"."1.0.0" =
     self.by-version."basic-auth"."1.0.0";
   by-version."basic-auth"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-basic-auth-1.0.0";
+    name = "basic-auth-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz";
@@ -1092,8 +1129,8 @@
     ];
     buildInputs =
       (self.nativeDeps."basic-auth" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "basic-auth" ];
@@ -1101,7 +1138,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-basic-auth-connect-1.0.0";
+    name = "basic-auth-connect-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz";
@@ -1111,8 +1149,8 @@
     ];
     buildInputs =
       (self.nativeDeps."basic-auth-connect" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "basic-auth-connect" ];
@@ -1120,7 +1158,8 @@
   by-spec."batch"."0.5.0" =
     self.by-version."batch"."0.5.0";
   by-version."batch"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-batch-0.5.0";
+    name = "batch-0.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/batch/-/batch-0.5.0.tgz";
@@ -1130,8 +1169,8 @@
     ];
     buildInputs =
       (self.nativeDeps."batch" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "batch" ];
@@ -1139,7 +1178,8 @@
   by-spec."batch"."0.5.1" =
     self.by-version."batch"."0.5.1";
   by-version."batch"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-batch-0.5.1";
+    name = "batch-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/batch/-/batch-0.5.1.tgz";
@@ -1149,8 +1189,8 @@
     ];
     buildInputs =
       (self.nativeDeps."batch" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "batch" ];
@@ -1158,7 +1198,8 @@
   by-spec."bcrypt"."*" =
     self.by-version."bcrypt"."0.8.0";
   by-version."bcrypt"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bcrypt-0.8.0";
+    name = "bcrypt-0.8.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bcrypt/-/bcrypt-0.8.0.tgz";
@@ -1168,10 +1209,10 @@
     ];
     buildInputs =
       (self.nativeDeps."bcrypt" or []);
-    deps = [
-      self.by-version."bindings"."1.0.0"
-      self.by-version."nan"."1.3.0"
-    ];
+    deps = {
+      "bindings-1.0.0" = self.by-version."bindings"."1.0.0";
+      "nan-1.3.0" = self.by-version."nan"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bcrypt" ];
@@ -1180,7 +1221,8 @@
   by-spec."bindings"."*" =
     self.by-version."bindings"."1.2.1";
   by-version."bindings"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bindings-1.2.1";
+    name = "bindings-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz";
@@ -1190,8 +1232,8 @@
     ];
     buildInputs =
       (self.nativeDeps."bindings" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bindings" ];
@@ -1199,7 +1241,8 @@
   by-spec."bindings"."1.0.0" =
     self.by-version."bindings"."1.0.0";
   by-version."bindings"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bindings-1.0.0";
+    name = "bindings-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bindings/-/bindings-1.0.0.tgz";
@@ -1209,8 +1252,8 @@
     ];
     buildInputs =
       (self.nativeDeps."bindings" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bindings" ];
@@ -1218,7 +1261,8 @@
   by-spec."bindings"."1.1.1" =
     self.by-version."bindings"."1.1.1";
   by-version."bindings"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bindings-1.1.1";
+    name = "bindings-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bindings/-/bindings-1.1.1.tgz";
@@ -1228,8 +1272,8 @@
     ];
     buildInputs =
       (self.nativeDeps."bindings" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bindings" ];
@@ -1239,29 +1283,33 @@
   by-spec."bindings"."~1.2.1" =
     self.by-version."bindings"."1.2.1";
   by-spec."bl"."^0.9.0" =
-    self.by-version."bl"."0.9.1";
-  by-version."bl"."0.9.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bl-0.9.1";
+    self.by-version."bl"."0.9.3";
+  by-version."bl"."0.9.3" = lib.makeOverridable self.buildNodePackage {
+    name = "bl-0.9.3";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bl/-/bl-0.9.1.tgz";
-        name = "bl-0.9.1.tgz";
-        sha1 = "d262c5b83aa5cf4386cea1d998c82b36d7ae2942";
+        url = "http://registry.npmjs.org/bl/-/bl-0.9.3.tgz";
+        name = "bl-0.9.3.tgz";
+        sha1 = "c41eff3e7cb31bde107c8f10076d274eff7f7d44";
       })
     ];
     buildInputs =
       (self.nativeDeps."bl" or []);
-    deps = [
-      self.by-version."readable-stream"."1.0.31"
-    ];
+    deps = {
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bl" ];
   };
+  by-spec."bl"."~0.9.0" =
+    self.by-version."bl"."0.9.3";
   by-spec."block-stream"."*" =
     self.by-version."block-stream"."0.0.7";
   by-version."block-stream"."0.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-block-stream-0.0.7";
+    name = "block-stream-0.0.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz";
@@ -1271,9 +1319,9 @@
     ];
     buildInputs =
       (self.nativeDeps."block-stream" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "block-stream" ];
@@ -1281,20 +1329,21 @@
   by-spec."block-stream"."0.0.7" =
     self.by-version."block-stream"."0.0.7";
   by-spec."bluebird".">= 1.2.1" =
-    self.by-version."bluebird"."2.3.0";
-  by-version."bluebird"."2.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bluebird-2.3.0";
+    self.by-version."bluebird"."2.3.2";
+  by-version."bluebird"."2.3.2" = lib.makeOverridable self.buildNodePackage {
+    name = "bluebird-2.3.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bluebird/-/bluebird-2.3.0.tgz";
-        name = "bluebird-2.3.0.tgz";
-        sha1 = "0d9260735ca30c8a28b3427a291fe2b9287da0f8";
+        url = "http://registry.npmjs.org/bluebird/-/bluebird-2.3.2.tgz";
+        name = "bluebird-2.3.2.tgz";
+        sha1 = "7475ac7ca0c1674077ac3dd4092ddb80233cf26b";
       })
     ];
     buildInputs =
       (self.nativeDeps."bluebird" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bluebird" ];
@@ -1302,7 +1351,8 @@
   by-spec."blueimp-md5"."~1.1.0" =
     self.by-version."blueimp-md5"."1.1.0";
   by-version."blueimp-md5"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-blueimp-md5-1.1.0";
+    name = "blueimp-md5-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/blueimp-md5/-/blueimp-md5-1.1.0.tgz";
@@ -1312,61 +1362,64 @@
     ];
     buildInputs =
       (self.nativeDeps."blueimp-md5" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "blueimp-md5" ];
   };
-  by-spec."body-parser"."~1.4.3" =
-    self.by-version."body-parser"."1.4.3";
-  by-version."body-parser"."1.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-body-parser-1.4.3";
+  by-spec."body-parser"."~1.6.5" =
+    self.by-version."body-parser"."1.6.7";
+  by-version."body-parser"."1.6.7" = lib.makeOverridable self.buildNodePackage {
+    name = "body-parser-1.6.7";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.4.3.tgz";
-        name = "body-parser-1.4.3.tgz";
-        sha1 = "4727952cff4af0773eefa4b226c2f4122f5e234d";
+        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.6.7.tgz";
+        name = "body-parser-1.6.7.tgz";
+        sha1 = "82306becadf44543e826b3907eae93f0237c4e5c";
       })
     ];
     buildInputs =
       (self.nativeDeps."body-parser" or []);
-    deps = [
-      self.by-version."bytes"."1.0.0"
-      self.by-version."depd"."0.3.0"
-      self.by-version."iconv-lite"."0.4.3"
-      self.by-version."media-typer"."0.2.0"
-      self.by-version."qs"."0.6.6"
-      self.by-version."raw-body"."1.2.2"
-      self.by-version."type-is"."1.3.1"
-    ];
+    deps = {
+      "bytes-1.0.0" = self.by-version."bytes"."1.0.0";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "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";
+      "on-finished-2.1.0" = self.by-version."on-finished"."2.1.0";
+      "qs-2.2.2" = self.by-version."qs"."2.2.2";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "body-parser" ];
   };
-  by-spec."body-parser"."~1.6.5" =
-    self.by-version."body-parser"."1.6.5";
-  by-version."body-parser"."1.6.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-body-parser-1.6.5";
+  by-spec."body-parser"."~1.8.1" =
+    self.by-version."body-parser"."1.8.1";
+  by-version."body-parser"."1.8.1" = lib.makeOverridable self.buildNodePackage {
+    name = "body-parser-1.8.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.6.5.tgz";
-        name = "body-parser-1.6.5.tgz";
-        sha1 = "536f01e08ee2b6df6a941d6c8c9647ee99ee4de7";
+        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.8.1.tgz";
+        name = "body-parser-1.8.1.tgz";
+        sha1 = "f9f96d221c435c95d18aeaad2bcdea1371902aad";
       })
     ];
     buildInputs =
       (self.nativeDeps."body-parser" or []);
-    deps = [
-      self.by-version."bytes"."1.0.0"
-      self.by-version."depd"."0.4.4"
-      self.by-version."iconv-lite"."0.4.4"
-      self.by-version."media-typer"."0.2.0"
-      self.by-version."on-finished"."2.1.0"
-      self.by-version."qs"."1.2.2"
-      self.by-version."raw-body"."1.3.0"
-      self.by-version."type-is"."1.3.2"
-    ];
+    deps = {
+      "bytes-1.0.0" = self.by-version."bytes"."1.0.0";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "iconv-lite-0.4.4" = self.by-version."iconv-lite"."0.4.4";
+      "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0";
+      "on-finished-2.1.0" = self.by-version."on-finished"."2.1.0";
+      "qs-2.2.3" = self.by-version."qs"."2.2.3";
+      "raw-body-1.3.0" = self.by-version."raw-body"."1.3.0";
+      "type-is-1.5.1" = self.by-version."type-is"."1.5.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "body-parser" ];
@@ -1374,7 +1427,8 @@
   by-spec."boom"."0.3.x" =
     self.by-version."boom"."0.3.8";
   by-version."boom"."0.3.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-boom-0.3.8";
+    name = "boom-0.3.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/boom/-/boom-0.3.8.tgz";
@@ -1384,9 +1438,9 @@
     ];
     buildInputs =
       (self.nativeDeps."boom" or []);
-    deps = [
-      self.by-version."hoek"."0.7.6"
-    ];
+    deps = {
+      "hoek-0.7.6" = self.by-version."hoek"."0.7.6";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "boom" ];
@@ -1394,7 +1448,8 @@
   by-spec."boom"."0.4.x" =
     self.by-version."boom"."0.4.2";
   by-version."boom"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-boom-0.4.2";
+    name = "boom-0.4.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/boom/-/boom-0.4.2.tgz";
@@ -1404,9 +1459,9 @@
     ];
     buildInputs =
       (self.nativeDeps."boom" or []);
-    deps = [
-      self.by-version."hoek"."0.9.1"
-    ];
+    deps = {
+      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "boom" ];
@@ -1414,7 +1469,8 @@
   by-spec."broadway"."0.2.9" =
     self.by-version."broadway"."0.2.9";
   by-version."broadway"."0.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-broadway-0.2.9";
+    name = "broadway-0.2.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/broadway/-/broadway-0.2.9.tgz";
@@ -1424,23 +1480,47 @@
     ];
     buildInputs =
       (self.nativeDeps."broadway" or []);
-    deps = [
-      self.by-version."cliff"."0.1.8"
-      self.by-version."eventemitter2"."0.4.12"
-      self.by-version."nconf"."0.6.9"
-      self.by-version."winston"."0.7.2"
-      self.by-version."utile"."0.2.1"
-    ];
+    deps = {
+      "cliff-0.1.8" = self.by-version."cliff"."0.1.8";
+      "eventemitter2-0.4.12" = self.by-version."eventemitter2"."0.4.12";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "broadway" ];
   };
   by-spec."broadway"."0.2.x" =
-    self.by-version."broadway"."0.2.9";
+    self.by-version."broadway"."0.2.10";
+  by-version."broadway"."0.2.10" = lib.makeOverridable self.buildNodePackage {
+    name = "broadway-0.2.10";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/broadway/-/broadway-0.2.10.tgz";
+        name = "broadway-0.2.10.tgz";
+        sha1 = "0f58532be140426e9000e49a93e242a0d1263238";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."broadway" or []);
+    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";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "broadway" ];
+  };
   by-spec."browser-pack"."^3.0.0" =
     self.by-version."browser-pack"."3.1.1";
   by-version."browser-pack"."3.1.1" = lib.makeOverridable self.buildNodePackage {
     name = "browser-pack-3.1.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/browser-pack/-/browser-pack-3.1.1.tgz";
@@ -1450,13 +1530,13 @@
     ];
     buildInputs =
       (self.nativeDeps."browser-pack" or []);
-    deps = [
-      self.by-version."JSONStream"."0.8.4"
-      self.by-version."combine-source-map"."0.3.0"
-      self.by-version."concat-stream"."1.4.6"
-      self.by-version."through2"."0.5.1"
-      self.by-version."umd"."2.1.0"
-    ];
+    deps = {
+      "JSONStream-0.8.4" = self.by-version."JSONStream"."0.8.4";
+      "combine-source-map-0.3.0" = self.by-version."combine-source-map"."0.3.0";
+      "concat-stream-1.4.6" = self.by-version."concat-stream"."1.4.6";
+      "through2-0.5.1" = self.by-version."through2"."0.5.1";
+      "umd-2.1.0" = self.by-version."umd"."2.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "browser-pack" ];
@@ -1464,7 +1544,8 @@
   by-spec."browser-resolve"."^1.3.0" =
     self.by-version."browser-resolve"."1.3.2";
   by-version."browser-resolve"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-browser-resolve-1.3.2";
+    name = "browser-resolve-1.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/browser-resolve/-/browser-resolve-1.3.2.tgz";
@@ -1474,9 +1555,9 @@
     ];
     buildInputs =
       (self.nativeDeps."browser-resolve" or []);
-    deps = [
-      self.by-version."resolve"."0.7.4"
-    ];
+    deps = {
+      "resolve-0.7.4" = self.by-version."resolve"."0.7.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "browser-resolve" ];
@@ -1486,7 +1567,8 @@
   by-spec."browserchannel"."*" =
     self.by-version."browserchannel"."2.0.0";
   by-version."browserchannel"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-browserchannel-2.0.0";
+    name = "browserchannel-2.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/browserchannel/-/browserchannel-2.0.0.tgz";
@@ -1496,91 +1578,93 @@
     ];
     buildInputs =
       (self.nativeDeps."browserchannel" or []);
-    deps = [
-      self.by-version."hat"."0.0.3"
-      self.by-version."connect"."2.25.7"
-      self.by-version."request"."2.40.0"
-      self.by-version."ascii-json"."0.2.0"
-    ];
+    deps = {
+      "hat-0.0.3" = self.by-version."hat"."0.0.3";
+      "connect-2.26.0" = self.by-version."connect"."2.26.0";
+      "request-2.42.0" = self.by-version."request"."2.42.0";
+      "ascii-json-0.2.0" = self.by-version."ascii-json"."0.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "browserchannel" ];
   };
   "browserchannel" = self.by-version."browserchannel"."2.0.0";
   by-spec."browserify"."*" =
-    self.by-version."browserify"."5.10.1";
-  by-version."browserify"."5.10.1" = lib.makeOverridable self.buildNodePackage {
-    name = "browserify-5.10.1";
+    self.by-version."browserify"."5.11.1";
+  by-version."browserify"."5.11.1" = lib.makeOverridable self.buildNodePackage {
+    name = "browserify-5.11.1";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/browserify/-/browserify-5.10.1.tgz";
-        name = "browserify-5.10.1.tgz";
-        sha1 = "a79cc8b647d6bfe25f96434ff8ecaeb5c01f6bae";
+        url = "http://registry.npmjs.org/browserify/-/browserify-5.11.1.tgz";
+        name = "browserify-5.11.1.tgz";
+        sha1 = "138119e82ae8fe7e6d9d518ee1720971b5926fcc";
       })
     ];
     buildInputs =
       (self.nativeDeps."browserify" or []);
-    deps = [
-      self.by-version."JSONStream"."0.8.4"
-      self.by-version."assert"."1.1.1"
-      self.by-version."browser-pack"."3.1.1"
-      self.by-version."browser-resolve"."1.3.2"
-      self.by-version."browserify-zlib"."0.1.4"
-      self.by-version."buffer"."2.5.0"
-      self.by-version."builtins"."0.0.5"
-      self.by-version."commondir"."0.0.1"
-      self.by-version."concat-stream"."1.4.6"
-      self.by-version."console-browserify"."1.1.0"
-      self.by-version."constants-browserify"."0.0.1"
-      self.by-version."crypto-browserify"."3.0.1"
-      self.by-version."deep-equal"."0.2.1"
-      self.by-version."defined"."0.0.0"
-      self.by-version."deps-sort"."1.3.5"
-      self.by-version."domain-browser"."1.1.2"
-      self.by-version."duplexer2"."0.0.2"
-      self.by-version."events"."1.0.1"
-      self.by-version."glob"."4.0.5"
-      self.by-version."http-browserify"."1.5.0"
-      self.by-version."https-browserify"."0.0.0"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."insert-module-globals"."6.1.0"
-      self.by-version."isarray"."0.0.1"
-      self.by-version."labeled-stream-splicer"."1.0.0"
-      self.by-version."module-deps"."3.5.5"
-      self.by-version."os-browserify"."0.1.2"
-      self.by-version."parents"."0.0.3"
-      self.by-version."path-browserify"."0.0.0"
-      self.by-version."process"."0.7.0"
-      self.by-version."punycode"."1.2.4"
-      self.by-version."querystring-es3"."0.2.1-0"
-      self.by-version."readable-stream"."1.1.13"
-      self.by-version."resolve"."0.7.4"
-      self.by-version."shallow-copy"."0.0.1"
-      self.by-version."shasum"."1.0.0"
-      self.by-version."shell-quote"."0.0.1"
-      self.by-version."stream-browserify"."1.0.0"
-      self.by-version."stream-combiner"."0.0.4"
-      self.by-version."string_decoder"."0.0.1"
-      self.by-version."subarg"."0.0.1"
-      self.by-version."syntax-error"."1.1.1"
-      self.by-version."through2"."1.1.1"
-      self.by-version."timers-browserify"."1.0.3"
-      self.by-version."tty-browserify"."0.0.0"
-      self.by-version."umd"."2.1.0"
-      self.by-version."url"."0.10.1"
-      self.by-version."util"."0.10.3"
-      self.by-version."vm-browserify"."0.0.4"
-      self.by-version."xtend"."3.0.0"
-    ];
+    deps = {
+      "JSONStream-0.8.4" = self.by-version."JSONStream"."0.8.4";
+      "assert-1.1.2" = self.by-version."assert"."1.1.2";
+      "browser-pack-3.1.1" = self.by-version."browser-pack"."3.1.1";
+      "browser-resolve-1.3.2" = self.by-version."browser-resolve"."1.3.2";
+      "browserify-zlib-0.1.4" = self.by-version."browserify-zlib"."0.1.4";
+      "buffer-2.5.0" = self.by-version."buffer"."2.5.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.6" = self.by-version."concat-stream"."1.4.6";
+      "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.0.2" = self.by-version."crypto-browserify"."3.0.2";
+      "deep-equal-0.2.1" = self.by-version."deep-equal"."0.2.1";
+      "defined-0.0.0" = self.by-version."defined"."0.0.0";
+      "deps-sort-1.3.5" = self.by-version."deps-sort"."1.3.5";
+      "domain-browser-1.1.2" = self.by-version."domain-browser"."1.1.2";
+      "duplexer2-0.0.2" = self.by-version."duplexer2"."0.0.2";
+      "events-1.0.2" = self.by-version."events"."1.0.2";
+      "glob-4.0.5" = self.by-version."glob"."4.0.5";
+      "http-browserify-1.6.0" = self.by-version."http-browserify"."1.6.0";
+      "https-browserify-0.0.0" = self.by-version."https-browserify"."0.0.0";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "insert-module-globals-6.1.0" = self.by-version."insert-module-globals"."6.1.0";
+      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
+      "labeled-stream-splicer-1.0.0" = self.by-version."labeled-stream-splicer"."1.0.0";
+      "module-deps-3.5.5" = self.by-version."module-deps"."3.5.5";
+      "os-browserify-0.1.2" = self.by-version."os-browserify"."0.1.2";
+      "parents-0.0.3" = self.by-version."parents"."0.0.3";
+      "path-browserify-0.0.0" = self.by-version."path-browserify"."0.0.0";
+      "process-0.7.0" = self.by-version."process"."0.7.0";
+      "punycode-1.2.4" = self.by-version."punycode"."1.2.4";
+      "querystring-es3-0.2.1-0" = self.by-version."querystring-es3"."0.2.1-0";
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+      "resolve-0.7.4" = self.by-version."resolve"."0.7.4";
+      "shallow-copy-0.0.1" = self.by-version."shallow-copy"."0.0.1";
+      "shasum-1.0.0" = self.by-version."shasum"."1.0.0";
+      "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";
+      "stream-combiner-0.0.4" = self.by-version."stream-combiner"."0.0.4";
+      "string_decoder-0.0.1" = self.by-version."string_decoder"."0.0.1";
+      "subarg-0.0.1" = self.by-version."subarg"."0.0.1";
+      "syntax-error-1.1.1" = self.by-version."syntax-error"."1.1.1";
+      "through2-1.1.1" = self.by-version."through2"."1.1.1";
+      "timers-browserify-1.1.0" = self.by-version."timers-browserify"."1.1.0";
+      "tty-browserify-0.0.0" = self.by-version."tty-browserify"."0.0.0";
+      "umd-2.1.0" = self.by-version."umd"."2.1.0";
+      "url-0.10.1" = self.by-version."url"."0.10.1";
+      "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-3.0.0" = self.by-version."xtend"."3.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "browserify" ];
   };
-  "browserify" = self.by-version."browserify"."5.10.1";
+  "browserify" = self.by-version."browserify"."5.11.1";
   by-spec."browserify-zlib"."^0.1.4" =
     self.by-version."browserify-zlib"."0.1.4";
   by-version."browserify-zlib"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-browserify-zlib-0.1.4";
+    name = "browserify-zlib-0.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz";
@@ -1590,9 +1674,9 @@
     ];
     buildInputs =
       (self.nativeDeps."browserify-zlib" or []);
-    deps = [
-      self.by-version."pako"."0.2.5"
-    ];
+    deps = {
+      "pako-0.2.5" = self.by-version."pako"."0.2.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "browserify-zlib" ];
@@ -1602,7 +1686,8 @@
   by-spec."bson"."0.1.8" =
     self.by-version."bson"."0.1.8";
   by-version."bson"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bson-0.1.8";
+    name = "bson-0.1.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bson/-/bson-0.1.8.tgz";
@@ -1612,28 +1697,29 @@
     ];
     buildInputs =
       (self.nativeDeps."bson" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bson" ];
   };
-  by-spec."bson"."0.2.11" =
-    self.by-version."bson"."0.2.11";
-  by-version."bson"."0.2.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bson-0.2.11";
+  by-spec."bson"."0.2.12" =
+    self.by-version."bson"."0.2.12";
+  by-version."bson"."0.2.12" = lib.makeOverridable self.buildNodePackage {
+    name = "bson-0.2.12";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bson/-/bson-0.2.11.tgz";
-        name = "bson-0.2.11.tgz";
-        sha1 = "7a1b9df70b36a247ada83d795e566a049f78bbb8";
+        url = "http://registry.npmjs.org/bson/-/bson-0.2.12.tgz";
+        name = "bson-0.2.12.tgz";
+        sha1 = "78bedbef1fd1f629b1c3b8d2f2d1fd87b8d64dd2";
       })
     ];
     buildInputs =
       (self.nativeDeps."bson" or []);
-    deps = [
-      self.by-version."nan"."1.2.0"
-    ];
+    deps = {
+      "nan-1.2.0" = self.by-version."nan"."1.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bson" ];
@@ -1641,7 +1727,8 @@
   by-spec."bson"."0.2.2" =
     self.by-version."bson"."0.2.2";
   by-version."bson"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bson-0.2.2";
+    name = "bson-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bson/-/bson-0.2.2.tgz";
@@ -1651,8 +1738,8 @@
     ];
     buildInputs =
       (self.nativeDeps."bson" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bson" ];
@@ -1660,7 +1747,8 @@
   by-spec."bson"."0.2.5" =
     self.by-version."bson"."0.2.5";
   by-version."bson"."0.2.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bson-0.2.5";
+    name = "bson-0.2.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bson/-/bson-0.2.5.tgz";
@@ -1670,28 +1758,29 @@
     ];
     buildInputs =
       (self.nativeDeps."bson" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bson" ];
   };
-  by-spec."bson"."0.2.9" =
-    self.by-version."bson"."0.2.9";
-  by-version."bson"."0.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bson-0.2.9";
+  by-spec."bson"."~0.2" =
+    self.by-version."bson"."0.2.15";
+  by-version."bson"."0.2.15" = lib.makeOverridable self.buildNodePackage {
+    name = "bson-0.2.15";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bson/-/bson-0.2.9.tgz";
-        name = "bson-0.2.9.tgz";
-        sha1 = "ee3716a52c985ff3074b6ece3257c75ee12f3a05";
+        url = "http://registry.npmjs.org/bson/-/bson-0.2.15.tgz";
+        name = "bson-0.2.15.tgz";
+        sha1 = "556402c74bf33d8008122cc3091dc8b3b90e330c";
       })
     ];
     buildInputs =
       (self.nativeDeps."bson" or []);
-    deps = [
-      self.by-version."nan"."1.0.0"
-    ];
+    deps = {
+      "nan-1.3.0" = self.by-version."nan"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bson" ];
@@ -1699,7 +1788,8 @@
   by-spec."buffer"."^2.3.0" =
     self.by-version."buffer"."2.5.0";
   by-version."buffer"."2.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffer-2.5.0";
+    name = "buffer-2.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/buffer/-/buffer-2.5.0.tgz";
@@ -1709,10 +1799,10 @@
     ];
     buildInputs =
       (self.nativeDeps."buffer" or []);
-    deps = [
-      self.by-version."base64-js"."0.0.7"
-      self.by-version."ieee754"."1.1.3"
-    ];
+    deps = {
+      "base64-js-0.0.7" = self.by-version."base64-js"."0.0.7";
+      "ieee754-1.1.4" = self.by-version."ieee754"."1.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "buffer" ];
@@ -1720,7 +1810,8 @@
   by-spec."buffer"."~2.3.2" =
     self.by-version."buffer"."2.3.4";
   by-version."buffer"."2.3.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffer-2.3.4";
+    name = "buffer-2.3.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/buffer/-/buffer-2.3.4.tgz";
@@ -1730,10 +1821,10 @@
     ];
     buildInputs =
       (self.nativeDeps."buffer" or []);
-    deps = [
-      self.by-version."base64-js"."0.0.7"
-      self.by-version."ieee754"."1.1.3"
-    ];
+    deps = {
+      "base64-js-0.0.7" = self.by-version."base64-js"."0.0.7";
+      "ieee754-1.1.4" = self.by-version."ieee754"."1.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "buffer" ];
@@ -1741,7 +1832,8 @@
   by-spec."buffer-crc32"."0.1.1" =
     self.by-version."buffer-crc32"."0.1.1";
   by-version."buffer-crc32"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffer-crc32-0.1.1";
+    name = "buffer-crc32-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.1.1.tgz";
@@ -1751,8 +1843,8 @@
     ];
     buildInputs =
       (self.nativeDeps."buffer-crc32" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "buffer-crc32" ];
@@ -1760,7 +1852,8 @@
   by-spec."buffer-crc32"."0.2.1" =
     self.by-version."buffer-crc32"."0.2.1";
   by-version."buffer-crc32"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffer-crc32-0.2.1";
+    name = "buffer-crc32-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz";
@@ -1770,8 +1863,8 @@
     ];
     buildInputs =
       (self.nativeDeps."buffer-crc32" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "buffer-crc32" ];
@@ -1779,7 +1872,8 @@
   by-spec."buffer-crc32"."0.2.3" =
     self.by-version."buffer-crc32"."0.2.3";
   by-version."buffer-crc32"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffer-crc32-0.2.3";
+    name = "buffer-crc32-0.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz";
@@ -1789,8 +1883,8 @@
     ];
     buildInputs =
       (self.nativeDeps."buffer-crc32" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "buffer-crc32" ];
@@ -1800,7 +1894,8 @@
   by-spec."buffertools"."*" =
     self.by-version."buffertools"."2.1.2";
   by-version."buffertools"."2.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffertools-2.1.2";
+    name = "buffertools-2.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/buffertools/-/buffertools-2.1.2.tgz";
@@ -1810,8 +1905,8 @@
     ];
     buildInputs =
       (self.nativeDeps."buffertools" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "buffertools" ];
@@ -1820,7 +1915,8 @@
   by-spec."buffertools".">=1.1.1 <2.0.0" =
     self.by-version."buffertools"."1.1.1";
   by-version."buffertools"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffertools-1.1.1";
+    name = "buffertools-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/buffertools/-/buffertools-1.1.1.tgz";
@@ -1830,27 +1926,28 @@
     ];
     buildInputs =
       (self.nativeDeps."buffertools" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "buffertools" ];
   };
   by-spec."builtins"."~0.0.3" =
-    self.by-version."builtins"."0.0.5";
-  by-version."builtins"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-builtins-0.0.5";
+    self.by-version."builtins"."0.0.7";
+  by-version."builtins"."0.0.7" = lib.makeOverridable self.buildNodePackage {
+    name = "builtins-0.0.7";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/builtins/-/builtins-0.0.5.tgz";
-        name = "builtins-0.0.5.tgz";
-        sha1 = "86dd881f9862856e62fd7ed7767b438c4d79b7ab";
+        url = "http://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz";
+        name = "builtins-0.0.7.tgz";
+        sha1 = "355219cd6cf18dbe7c01cc7fd2dce765cfdc549a";
       })
     ];
     buildInputs =
       (self.nativeDeps."builtins" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "builtins" ];
@@ -1859,6 +1956,7 @@
     self.by-version."bunyan"."0.21.1";
   by-version."bunyan"."0.21.1" = lib.makeOverridable self.buildNodePackage {
     name = "bunyan-0.21.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bunyan/-/bunyan-0.21.1.tgz";
@@ -1868,10 +1966,10 @@
     ];
     buildInputs =
       (self.nativeDeps."bunyan" or []);
-    deps = [
-      self.by-version."mv"."0.0.5"
-      self.by-version."dtrace-provider"."0.2.8"
-    ];
+    deps = {
+      "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 = [
     ];
     passthru.names = [ "bunyan" ];
@@ -1879,7 +1977,8 @@
   by-spec."bytes"."0.1.0" =
     self.by-version."bytes"."0.1.0";
   by-version."bytes"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bytes-0.1.0";
+    name = "bytes-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz";
@@ -1889,8 +1988,8 @@
     ];
     buildInputs =
       (self.nativeDeps."bytes" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bytes" ];
@@ -1898,7 +1997,8 @@
   by-spec."bytes"."0.2.0" =
     self.by-version."bytes"."0.2.0";
   by-version."bytes"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bytes-0.2.0";
+    name = "bytes-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz";
@@ -1908,8 +2008,8 @@
     ];
     buildInputs =
       (self.nativeDeps."bytes" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bytes" ];
@@ -1917,7 +2017,8 @@
   by-spec."bytes"."0.2.1" =
     self.by-version."bytes"."0.2.1";
   by-version."bytes"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bytes-0.2.1";
+    name = "bytes-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz";
@@ -1927,8 +2028,8 @@
     ];
     buildInputs =
       (self.nativeDeps."bytes" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bytes" ];
@@ -1936,7 +2037,8 @@
   by-spec."bytes"."1" =
     self.by-version."bytes"."1.0.0";
   by-version."bytes"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bytes-1.0.0";
+    name = "bytes-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz";
@@ -1946,8 +2048,8 @@
     ];
     buildInputs =
       (self.nativeDeps."bytes" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "bytes" ];
@@ -1959,7 +2061,8 @@
   by-spec."callsite"."~1.0.0" =
     self.by-version."callsite"."1.0.0";
   by-version."callsite"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-callsite-1.0.0";
+    name = "callsite-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz";
@@ -1969,16 +2072,37 @@
     ];
     buildInputs =
       (self.nativeDeps."callsite" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "callsite" ];
   };
+  by-spec."caseless"."~0.6.0" =
+    self.by-version."caseless"."0.6.0";
+  by-version."caseless"."0.6.0" = lib.makeOverridable self.buildNodePackage {
+    name = "caseless-0.6.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz";
+        name = "caseless-0.6.0.tgz";
+        sha1 = "8167c1ab8397fb5bb95f96d28e5a81c50f247ac4";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."caseless" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "caseless" ];
+  };
   by-spec."chai"."*" =
     self.by-version."chai"."1.9.1";
   by-version."chai"."1.9.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chai-1.9.1";
+    name = "chai-1.9.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/chai/-/chai-1.9.1.tgz";
@@ -1988,10 +2112,10 @@
     ];
     buildInputs =
       (self.nativeDeps."chai" or []);
-    deps = [
-      self.by-version."assertion-error"."1.0.0"
-      self.by-version."deep-eql"."0.1.3"
-    ];
+    deps = {
+      "assertion-error-1.0.0" = self.by-version."assertion-error"."1.0.0";
+      "deep-eql-0.1.3" = self.by-version."deep-eql"."0.1.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "chai" ];
@@ -2000,7 +2124,8 @@
   by-spec."chalk"."^0.4.0" =
     self.by-version."chalk"."0.4.0";
   by-version."chalk"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chalk-0.4.0";
+    name = "chalk-0.4.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz";
@@ -2010,11 +2135,11 @@
     ];
     buildInputs =
       (self.nativeDeps."chalk" or []);
-    deps = [
-      self.by-version."has-color"."0.1.7"
-      self.by-version."ansi-styles"."1.0.0"
-      self.by-version."strip-ansi"."0.1.1"
-    ];
+    deps = {
+      "has-color-0.1.7" = self.by-version."has-color"."0.1.7";
+      "ansi-styles-1.0.0" = self.by-version."ansi-styles"."1.0.0";
+      "strip-ansi-0.1.1" = self.by-version."strip-ansi"."0.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "chalk" ];
@@ -2022,7 +2147,8 @@
   by-spec."chalk"."^0.5.0" =
     self.by-version."chalk"."0.5.1";
   by-version."chalk"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chalk-0.5.1";
+    name = "chalk-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz";
@@ -2032,13 +2158,13 @@
     ];
     buildInputs =
       (self.nativeDeps."chalk" or []);
-    deps = [
-      self.by-version."ansi-styles"."1.1.0"
-      self.by-version."escape-string-regexp"."1.0.1"
-      self.by-version."has-ansi"."0.1.0"
-      self.by-version."strip-ansi"."0.3.0"
-      self.by-version."supports-color"."0.2.0"
-    ];
+    deps = {
+      "ansi-styles-1.1.0" = self.by-version."ansi-styles"."1.1.0";
+      "escape-string-regexp-1.0.1" = self.by-version."escape-string-regexp"."1.0.1";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "chalk" ];
@@ -2050,7 +2176,8 @@
   by-spec."char-spinner"."~1.0.1" =
     self.by-version."char-spinner"."1.0.1";
   by-version."char-spinner"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-char-spinner-1.0.1";
+    name = "char-spinner-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz";
@@ -2060,8 +2187,8 @@
     ];
     buildInputs =
       (self.nativeDeps."char-spinner" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "char-spinner" ];
@@ -2069,7 +2196,8 @@
   by-spec."character-parser"."1.2.0" =
     self.by-version."character-parser"."1.2.0";
   by-version."character-parser"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-character-parser-1.2.0";
+    name = "character-parser-1.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/character-parser/-/character-parser-1.2.0.tgz";
@@ -2079,8 +2207,8 @@
     ];
     buildInputs =
       (self.nativeDeps."character-parser" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "character-parser" ];
@@ -2088,7 +2216,8 @@
   by-spec."child-process-close"."~0.1.1" =
     self.by-version."child-process-close"."0.1.1";
   by-version."child-process-close"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-child-process-close-0.1.1";
+    name = "child-process-close-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/child-process-close/-/child-process-close-0.1.1.tgz";
@@ -2098,8 +2227,8 @@
     ];
     buildInputs =
       (self.nativeDeps."child-process-close" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "child-process-close" ];
@@ -2107,7 +2236,8 @@
   by-spec."chmodr"."~0.1.0" =
     self.by-version."chmodr"."0.1.0";
   by-version."chmodr"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chmodr-0.1.0";
+    name = "chmodr-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/chmodr/-/chmodr-0.1.0.tgz";
@@ -2117,8 +2247,8 @@
     ];
     buildInputs =
       (self.nativeDeps."chmodr" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "chmodr" ];
@@ -2126,7 +2256,8 @@
   by-spec."chokidar".">=0.8.2" =
     self.by-version."chokidar"."0.8.4";
   by-version."chokidar"."0.8.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chokidar-0.8.4";
+    name = "chokidar-0.8.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/chokidar/-/chokidar-0.8.4.tgz";
@@ -2136,10 +2267,10 @@
     ];
     buildInputs =
       (self.nativeDeps."chokidar" or []);
-    deps = [
-      self.by-version."fsevents"."0.2.1"
-      self.by-version."recursive-readdir"."0.0.2"
-    ];
+    deps = {
+      "fsevents-0.2.1" = self.by-version."fsevents"."0.2.1";
+      "recursive-readdir-0.0.2" = self.by-version."recursive-readdir"."0.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "chokidar" ];
@@ -2147,7 +2278,8 @@
   by-spec."chownr"."0" =
     self.by-version."chownr"."0.0.1";
   by-version."chownr"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chownr-0.0.1";
+    name = "chownr-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/chownr/-/chownr-0.0.1.tgz";
@@ -2157,69 +2289,53 @@
     ];
     buildInputs =
       (self.nativeDeps."chownr" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "chownr" ];
   };
-  by-spec."clean-css"."2.1.x" =
-    self.by-version."clean-css"."2.1.8";
-  by-version."clean-css"."2.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "clean-css-2.1.8";
+  by-spec."clean-css"."2.2.x" =
+    self.by-version."clean-css"."2.2.15";
+  by-version."clean-css"."2.2.15" = lib.makeOverridable self.buildNodePackage {
+    name = "clean-css-2.2.15";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.1.8.tgz";
-        name = "clean-css-2.1.8.tgz";
-        sha1 = "2b4b2fd60f32441096216ae25a21faa74580dc83";
+        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.2.15.tgz";
+        name = "clean-css-2.2.15.tgz";
+        sha1 = "0de5c85219cce60f5cc9e11b3c8ae621a25ff613";
       })
     ];
     buildInputs =
       (self.nativeDeps."clean-css" or []);
-    deps = [
-      self.by-version."commander"."2.1.0"
-    ];
+    deps = {
+      "commander-2.2.0" = self.by-version."commander"."2.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "clean-css" ];
   };
   by-spec."clean-css"."~2.2.0" =
-    self.by-version."clean-css"."2.2.13";
-  by-version."clean-css"."2.2.13" = lib.makeOverridable self.buildNodePackage {
-    name = "clean-css-2.2.13";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.2.13.tgz";
-        name = "clean-css-2.2.13.tgz";
-        sha1 = "c63aba2723a410f79ed7b34ff163aaa627bc2362";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."clean-css" or []);
-    deps = [
-      self.by-version."commander"."2.2.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "clean-css" ];
-  };
+    self.by-version."clean-css"."2.2.15";
   by-spec."cli"."0.6.x" =
-    self.by-version."cli"."0.6.3";
-  by-version."cli"."0.6.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cli-0.6.3";
+    self.by-version."cli"."0.6.4";
+  by-version."cli"."0.6.4" = lib.makeOverridable self.buildNodePackage {
+    name = "cli-0.6.4";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/cli/-/cli-0.6.3.tgz";
-        name = "cli-0.6.3.tgz";
-        sha1 = "31418ed08d60a1b02cf180c6d6fee3204bfe65cd";
+        url = "http://registry.npmjs.org/cli/-/cli-0.6.4.tgz";
+        name = "cli-0.6.4.tgz";
+        sha1 = "105c4e9b29ecdbc1ee0c8e418276f62d8351f88e";
       })
     ];
     buildInputs =
       (self.nativeDeps."cli" or []);
-    deps = [
-      self.by-version."glob"."3.2.11"
-      self.by-version."exit"."0.1.2"
-    ];
+    deps = {
+      "glob-3.2.11" = self.by-version."glob"."3.2.11";
+      "exit-0.1.2" = self.by-version."exit"."0.1.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cli" ];
@@ -2227,7 +2343,8 @@
   by-spec."cliff"."0.1.8" =
     self.by-version."cliff"."0.1.8";
   by-version."cliff"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cliff-0.1.8";
+    name = "cliff-0.1.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cliff/-/cliff-0.1.8.tgz";
@@ -2237,11 +2354,11 @@
     ];
     buildInputs =
       (self.nativeDeps."cliff" or []);
-    deps = [
-      self.by-version."colors"."0.6.2"
-      self.by-version."eyes"."0.1.8"
-      self.by-version."winston"."0.6.2"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cliff" ];
@@ -2249,7 +2366,8 @@
   by-spec."clone"."0.1.5" =
     self.by-version."clone"."0.1.5";
   by-version."clone"."0.1.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-clone-0.1.5";
+    name = "clone-0.1.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/clone/-/clone-0.1.5.tgz";
@@ -2259,8 +2377,8 @@
     ];
     buildInputs =
       (self.nativeDeps."clone" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "clone" ];
@@ -2268,7 +2386,8 @@
   by-spec."clone"."0.1.6" =
     self.by-version."clone"."0.1.6";
   by-version."clone"."0.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-clone-0.1.6";
+    name = "clone-0.1.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/clone/-/clone-0.1.6.tgz";
@@ -2278,16 +2397,37 @@
     ];
     buildInputs =
       (self.nativeDeps."clone" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "clone" ];
+  };
+  by-spec."clone"."~0.1.5" =
+    self.by-version."clone"."0.1.18";
+  by-version."clone"."0.1.18" = lib.makeOverridable self.buildNodePackage {
+    name = "clone-0.1.18";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/clone/-/clone-0.1.18.tgz";
+        name = "clone-0.1.18.tgz";
+        sha1 = "64a0d5d57eaa85a1a8af380cd1db8c7b3a895f66";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."clone" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "clone" ];
   };
-  by-spec."clone-stats"."~0.0.1" =
+  by-spec."clone-stats"."^0.0.1" =
     self.by-version."clone-stats"."0.0.1";
   by-version."clone-stats"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-clone-stats-0.0.1";
+    name = "clone-stats-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz";
@@ -2297,29 +2437,32 @@
     ];
     buildInputs =
       (self.nativeDeps."clone-stats" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "clone-stats" ];
   };
-  by-spec."cmd-shim"."~1.1.1" =
-    self.by-version."cmd-shim"."1.1.2";
-  by-version."cmd-shim"."1.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cmd-shim-1.1.2";
+  by-spec."clone-stats"."~0.0.1" =
+    self.by-version."clone-stats"."0.0.1";
+  by-spec."cmd-shim"."~2.0.0" =
+    self.by-version."cmd-shim"."2.0.1";
+  by-version."cmd-shim"."2.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "cmd-shim-2.0.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/cmd-shim/-/cmd-shim-1.1.2.tgz";
-        name = "cmd-shim-1.1.2.tgz";
-        sha1 = "e4f9198802e361e8eb43b591959ef4dc6cdb6754";
+        url = "http://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.1.tgz";
+        name = "cmd-shim-2.0.1.tgz";
+        sha1 = "4512a373d2391679aec51ad1d4733559e9b85d4a";
       })
     ];
     buildInputs =
       (self.nativeDeps."cmd-shim" or []);
-    deps = [
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."graceful-fs"."2.0.3"
-    ];
+    deps = {
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cmd-shim" ];
@@ -2327,7 +2470,8 @@
   by-spec."cmdln"."1.3.2" =
     self.by-version."cmdln"."1.3.2";
   by-version."cmdln"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cmdln-1.3.2";
+    name = "cmdln-1.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cmdln/-/cmdln-1.3.2.tgz";
@@ -2337,60 +2481,43 @@
     ];
     buildInputs =
       (self.nativeDeps."cmdln" or []);
-    deps = [
-      self.by-version."assert-plus"."0.1.3"
-      self.by-version."extsprintf"."1.0.2"
-      self.by-version."verror"."1.3.6"
-      self.by-version."dashdash"."1.3.2"
-    ];
+    deps = {
+      "assert-plus-0.1.3" = self.by-version."assert-plus"."0.1.3";
+      "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2";
+      "verror-1.3.6" = self.by-version."verror"."1.3.6";
+      "dashdash-1.3.2" = self.by-version."dashdash"."1.3.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cmdln" ];
   };
-  by-spec."co"."~3.1.0" =
-    self.by-version."co"."3.1.0";
-  by-version."co"."3.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-co-3.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/co/-/co-3.1.0.tgz";
-        name = "co-3.1.0.tgz";
-        sha1 = "4ea54ea5a08938153185e15210c68d9092bc1b78";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."co" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "co" ];
-  };
   by-spec."coffee-script"."*" =
-    self.by-version."coffee-script"."1.7.1";
-  by-version."coffee-script"."1.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "coffee-script-1.7.1";
+    self.by-version."coffee-script"."1.8.0";
+  by-version."coffee-script"."1.8.0" = lib.makeOverridable self.buildNodePackage {
+    name = "coffee-script-1.8.0";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz";
-        name = "coffee-script-1.7.1.tgz";
-        sha1 = "62996a861780c75e6d5069d13822723b73404bfc";
+        url = "http://registry.npmjs.org/coffee-script/-/coffee-script-1.8.0.tgz";
+        name = "coffee-script-1.8.0.tgz";
+        sha1 = "9c9f1d2b4a52a000ded15b659791703648263c1d";
       })
     ];
     buildInputs =
       (self.nativeDeps."coffee-script" or []);
-    deps = [
-      self.by-version."mkdirp"."0.3.5"
-    ];
+    deps = {
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "coffee-script" ];
   };
-  "coffee-script" = self.by-version."coffee-script"."1.7.1";
+  "coffee-script" = self.by-version."coffee-script"."1.8.0";
   by-spec."coffee-script"."1.6.3" =
     self.by-version."coffee-script"."1.6.3";
   by-version."coffee-script"."1.6.3" = lib.makeOverridable self.buildNodePackage {
     name = "coffee-script-1.6.3";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz";
@@ -2400,20 +2527,21 @@
     ];
     buildInputs =
       (self.nativeDeps."coffee-script" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "coffee-script" ];
   };
   by-spec."coffee-script".">= 0.0.1" =
-    self.by-version."coffee-script"."1.7.1";
+    self.by-version."coffee-script"."1.8.0";
   by-spec."coffee-script".">=1.2.0" =
-    self.by-version."coffee-script"."1.7.1";
+    self.by-version."coffee-script"."1.8.0";
   by-spec."coffee-script"."~1.3.3" =
     self.by-version."coffee-script"."1.3.3";
   by-version."coffee-script"."1.3.3" = lib.makeOverridable self.buildNodePackage {
     name = "coffee-script-1.3.3";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz";
@@ -2423,8 +2551,8 @@
     ];
     buildInputs =
       (self.nativeDeps."coffee-script" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "coffee-script" ];
@@ -2433,6 +2561,7 @@
     self.by-version."coffee-script-redux"."2.0.0-beta8";
   by-version."coffee-script-redux"."2.0.0-beta8" = lib.makeOverridable self.buildNodePackage {
     name = "coffee-script-redux-2.0.0-beta8";
+    bin = true;
     src = [
       (self.patchSource fetchurl {
         url = "http://registry.npmjs.org/coffee-script-redux/-/coffee-script-redux-2.0.0-beta8.tgz";
@@ -2442,14 +2571,14 @@
     ];
     buildInputs =
       (self.nativeDeps."coffee-script-redux" or []);
-    deps = [
-      self.by-version."StringScanner"."0.0.3"
-      self.by-version."nopt"."2.1.2"
-      self.by-version."esmangle"."0.0.17"
-      self.by-version."source-map"."0.1.11"
-      self.by-version."escodegen"."0.0.28"
-      self.by-version."cscodegen"."0.1.0"
-    ];
+    deps = {
+      "StringScanner-0.0.3" = self.by-version."StringScanner"."0.0.3";
+      "nopt-2.1.2" = self.by-version."nopt"."2.1.2";
+      "esmangle-0.0.17" = self.by-version."esmangle"."0.0.17";
+      "source-map-0.1.11" = self.by-version."source-map"."0.1.11";
+      "escodegen-0.0.28" = self.by-version."escodegen"."0.0.28";
+      "cscodegen-0.1.0" = self.by-version."cscodegen"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "coffee-script-redux" ];
@@ -2457,7 +2586,8 @@
   by-spec."collections".">=2.0.1 <3.0.0" =
     self.by-version."collections"."2.0.1";
   by-version."collections"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-collections-2.0.1";
+    name = "collections-2.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/collections/-/collections-2.0.1.tgz";
@@ -2467,69 +2597,72 @@
     ];
     buildInputs =
       (self.nativeDeps."collections" or []);
-    deps = [
-      self.by-version."weak-map"."1.0.5"
-    ];
+    deps = {
+      "weak-map-1.0.5" = self.by-version."weak-map"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "collections" ];
   };
-  by-spec."color"."~0.6.0" =
-    self.by-version."color"."0.6.0";
-  by-version."color"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-color-0.6.0";
+  by-spec."color"."~0.7.1" =
+    self.by-version."color"."0.7.1";
+  by-version."color"."0.7.1" = lib.makeOverridable self.buildNodePackage {
+    name = "color-0.7.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/color/-/color-0.6.0.tgz";
-        name = "color-0.6.0.tgz";
-        sha1 = "53f4b27698e1fe42a19423dc092dd8ee529b4267";
+        url = "http://registry.npmjs.org/color/-/color-0.7.1.tgz";
+        name = "color-0.7.1.tgz";
+        sha1 = "a2676f19c6ccb708b7586dc98b5c6e37dc9a199c";
       })
     ];
     buildInputs =
       (self.nativeDeps."color" or []);
-    deps = [
-      self.by-version."color-convert"."0.2.1"
-      self.by-version."color-string"."0.1.3"
-    ];
+    deps = {
+      "color-convert-0.5.0" = self.by-version."color-convert"."0.5.0";
+      "color-string-0.2.1" = self.by-version."color-string"."0.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "color" ];
   };
-  by-spec."color-convert"."0.2.x" =
-    self.by-version."color-convert"."0.2.1";
-  by-version."color-convert"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-color-convert-0.2.1";
+  by-spec."color-convert"."0.5.x" =
+    self.by-version."color-convert"."0.5.0";
+  by-version."color-convert"."0.5.0" = lib.makeOverridable self.buildNodePackage {
+    name = "color-convert-0.5.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/color-convert/-/color-convert-0.2.1.tgz";
-        name = "color-convert-0.2.1.tgz";
-        sha1 = "363cab23c94b31a0d64db71048b8c6a940f8c68c";
+        url = "http://registry.npmjs.org/color-convert/-/color-convert-0.5.0.tgz";
+        name = "color-convert-0.5.0.tgz";
+        sha1 = "4032cab2128c81670c7b394d77b6783f49caaaf7";
       })
     ];
     buildInputs =
       (self.nativeDeps."color-convert" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "color-convert" ];
   };
-  by-spec."color-string"."0.1.x" =
-    self.by-version."color-string"."0.1.3";
-  by-version."color-string"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-color-string-0.1.3";
+  by-spec."color-string"."0.2.x" =
+    self.by-version."color-string"."0.2.1";
+  by-version."color-string"."0.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "color-string-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/color-string/-/color-string-0.1.3.tgz";
-        name = "color-string-0.1.3.tgz";
-        sha1 = "e865d2e3e59f665c3af0de14383f6bf0705685f3";
+        url = "http://registry.npmjs.org/color-string/-/color-string-0.2.1.tgz";
+        name = "color-string-0.2.1.tgz";
+        sha1 = "2f3c1e6c1d04ddf751633b28db7fbc152055d34e";
       })
     ];
     buildInputs =
       (self.nativeDeps."color-string" or []);
-    deps = [
-      self.by-version."color-convert"."0.2.1"
-    ];
+    deps = {
+      "color-convert-0.5.0" = self.by-version."color-convert"."0.5.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "color-string" ];
@@ -2537,7 +2670,8 @@
   by-spec."colors"."0.5.x" =
     self.by-version."colors"."0.5.1";
   by-version."colors"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-colors-0.5.1";
+    name = "colors-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/colors/-/colors-0.5.1.tgz";
@@ -2547,8 +2681,8 @@
     ];
     buildInputs =
       (self.nativeDeps."colors" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "colors" ];
@@ -2556,7 +2690,8 @@
   by-spec."colors"."0.6.x" =
     self.by-version."colors"."0.6.2";
   by-version."colors"."0.6.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-colors-0.6.2";
+    name = "colors-0.6.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/colors/-/colors-0.6.2.tgz";
@@ -2566,8 +2701,8 @@
     ];
     buildInputs =
       (self.nativeDeps."colors" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "colors" ];
@@ -2576,23 +2711,24 @@
     self.by-version."colors"."0.6.2";
   by-spec."colors"."~0.6.2" =
     self.by-version."colors"."0.6.2";
-  by-spec."columnify"."~1.1.0" =
-    self.by-version."columnify"."1.1.0";
-  by-version."columnify"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-columnify-1.1.0";
+  by-spec."columnify"."~1.2.1" =
+    self.by-version."columnify"."1.2.1";
+  by-version."columnify"."1.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "columnify-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/columnify/-/columnify-1.1.0.tgz";
-        name = "columnify-1.1.0.tgz";
-        sha1 = "0b908e6d4f1c80194358a1933aaf9dc49271c679";
+        url = "http://registry.npmjs.org/columnify/-/columnify-1.2.1.tgz";
+        name = "columnify-1.2.1.tgz";
+        sha1 = "921ec51c178f4126d3c07e9acecd67a55c7953e4";
       })
     ];
     buildInputs =
       (self.nativeDeps."columnify" or []);
-    deps = [
-      self.by-version."strip-ansi"."0.2.2"
-      self.by-version."wcwidth.js"."0.0.4"
-    ];
+    deps = {
+      "strip-ansi-1.0.0" = self.by-version."strip-ansi"."1.0.0";
+      "wcwidth-1.0.0" = self.by-version."wcwidth"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "columnify" ];
@@ -2600,7 +2736,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-combine-source-map-0.3.0";
+    name = "combine-source-map-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/combine-source-map/-/combine-source-map-0.3.0.tgz";
@@ -2610,11 +2747,11 @@
     ];
     buildInputs =
       (self.nativeDeps."combine-source-map" or []);
-    deps = [
-      self.by-version."inline-source-map"."0.3.0"
-      self.by-version."convert-source-map"."0.3.5"
-      self.by-version."source-map"."0.1.38"
-    ];
+    deps = {
+      "inline-source-map-0.3.0" = self.by-version."inline-source-map"."0.3.0";
+      "convert-source-map-0.3.5" = self.by-version."convert-source-map"."0.3.5";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "combine-source-map" ];
@@ -2622,7 +2759,8 @@
   by-spec."combined-stream"."~0.0.4" =
     self.by-version."combined-stream"."0.0.5";
   by-version."combined-stream"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-combined-stream-0.0.5";
+    name = "combined-stream-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/combined-stream/-/combined-stream-0.0.5.tgz";
@@ -2632,9 +2770,9 @@
     ];
     buildInputs =
       (self.nativeDeps."combined-stream" or []);
-    deps = [
-      self.by-version."delayed-stream"."0.0.5"
-    ];
+    deps = {
+      "delayed-stream-0.0.5" = self.by-version."delayed-stream"."0.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "combined-stream" ];
@@ -2642,7 +2780,8 @@
   by-spec."commander"."0.6.1" =
     self.by-version."commander"."0.6.1";
   by-version."commander"."0.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commander-0.6.1";
+    name = "commander-0.6.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/commander/-/commander-0.6.1.tgz";
@@ -2652,8 +2791,8 @@
     ];
     buildInputs =
       (self.nativeDeps."commander" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "commander" ];
@@ -2661,7 +2800,8 @@
   by-spec."commander"."1.3.1" =
     self.by-version."commander"."1.3.1";
   by-version."commander"."1.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commander-1.3.1";
+    name = "commander-1.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/commander/-/commander-1.3.1.tgz";
@@ -2671,9 +2811,9 @@
     ];
     buildInputs =
       (self.nativeDeps."commander" or []);
-    deps = [
-      self.by-version."keypress"."0.1.0"
-    ];
+    deps = {
+      "keypress-0.1.0" = self.by-version."keypress"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "commander" ];
@@ -2681,7 +2821,8 @@
   by-spec."commander"."1.3.2" =
     self.by-version."commander"."1.3.2";
   by-version."commander"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commander-1.3.2";
+    name = "commander-1.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/commander/-/commander-1.3.2.tgz";
@@ -2691,9 +2832,9 @@
     ];
     buildInputs =
       (self.nativeDeps."commander" or []);
-    deps = [
-      self.by-version."keypress"."0.1.0"
-    ];
+    deps = {
+      "keypress-0.1.0" = self.by-version."keypress"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "commander" ];
@@ -2701,7 +2842,8 @@
   by-spec."commander"."2.0.0" =
     self.by-version."commander"."2.0.0";
   by-version."commander"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commander-2.0.0";
+    name = "commander-2.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/commander/-/commander-2.0.0.tgz";
@@ -2711,8 +2853,8 @@
     ];
     buildInputs =
       (self.nativeDeps."commander" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "commander" ];
@@ -2720,7 +2862,8 @@
   by-spec."commander"."2.1.0" =
     self.by-version."commander"."2.1.0";
   by-version."commander"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commander-2.1.0";
+    name = "commander-2.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/commander/-/commander-2.1.0.tgz";
@@ -2730,18 +2873,17 @@
     ];
     buildInputs =
       (self.nativeDeps."commander" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "commander" ];
   };
-  by-spec."commander"."2.1.x" =
-    self.by-version."commander"."2.1.0";
   by-spec."commander"."2.2.x" =
     self.by-version."commander"."2.2.0";
   by-version."commander"."2.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commander-2.2.0";
+    name = "commander-2.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/commander/-/commander-2.2.0.tgz";
@@ -2751,8 +2893,8 @@
     ];
     buildInputs =
       (self.nativeDeps."commander" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "commander" ];
@@ -2760,7 +2902,8 @@
   by-spec."commander"."2.x" =
     self.by-version."commander"."2.3.0";
   by-version."commander"."2.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commander-2.3.0";
+    name = "commander-2.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/commander/-/commander-2.3.0.tgz";
@@ -2770,8 +2913,8 @@
     ];
     buildInputs =
       (self.nativeDeps."commander" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "commander" ];
@@ -2783,7 +2926,8 @@
   by-spec."commondir"."0.0.1" =
     self.by-version."commondir"."0.0.1";
   by-version."commondir"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commondir-0.0.1";
+    name = "commondir-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/commondir/-/commondir-0.0.1.tgz";
@@ -2793,8 +2937,8 @@
     ];
     buildInputs =
       (self.nativeDeps."commondir" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "commondir" ];
@@ -2802,7 +2946,8 @@
   by-spec."component-emitter"."1.1.2" =
     self.by-version."component-emitter"."1.1.2";
   by-version."component-emitter"."1.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-component-emitter-1.1.2";
+    name = "component-emitter-1.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz";
@@ -2812,52 +2957,78 @@
     ];
     buildInputs =
       (self.nativeDeps."component-emitter" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "component-emitter" ];
   };
-  by-spec."compressible"."~1.1.1" =
-    self.by-version."compressible"."1.1.1";
-  by-version."compressible"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-compressible-1.1.1";
+  by-spec."compress-commons"."~0.1.0" =
+    self.by-version."compress-commons"."0.1.6";
+  by-version."compress-commons"."0.1.6" = lib.makeOverridable self.buildNodePackage {
+    name = "compress-commons-0.1.6";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/compressible/-/compressible-1.1.1.tgz";
-        name = "compressible-1.1.1.tgz";
-        sha1 = "23b71ea90ea6c6a66289701a918182c24d0729ef";
+        url = "http://registry.npmjs.org/compress-commons/-/compress-commons-0.1.6.tgz";
+        name = "compress-commons-0.1.6.tgz";
+        sha1 = "0c740870fde58cba516f0ac0c822e33a0b85dfa3";
       })
     ];
     buildInputs =
-      (self.nativeDeps."compressible" or []);
-    deps = [
+      (self.nativeDeps."compress-commons" or []);
+    deps = {
+      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
+      "crc32-stream-0.3.1" = self.by-version."crc32-stream"."0.3.1";
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "compress-commons" ];
+  };
+  by-spec."compressible"."~2.0.0" =
+    self.by-version."compressible"."2.0.0";
+  by-version."compressible"."2.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "compressible-2.0.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/compressible/-/compressible-2.0.0.tgz";
+        name = "compressible-2.0.0.tgz";
+        sha1 = "90086ce57102e9e2427ee945a5fb2a98dd51dfb4";
+      })
     ];
+    buildInputs =
+      (self.nativeDeps."compressible" or []);
+    deps = {
+      "mime-db-1.0.1" = self.by-version."mime-db"."1.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "compressible" ];
   };
-  by-spec."compression"."~1.0.11" =
-    self.by-version."compression"."1.0.11";
-  by-version."compression"."1.0.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-compression-1.0.11";
+  by-spec."compression"."~1.1.0" =
+    self.by-version."compression"."1.1.0";
+  by-version."compression"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "compression-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/compression/-/compression-1.0.11.tgz";
-        name = "compression-1.0.11.tgz";
-        sha1 = "69700cf1ee8963454356ac192a6e5e91e232bffb";
+        url = "http://registry.npmjs.org/compression/-/compression-1.1.0.tgz";
+        name = "compression-1.1.0.tgz";
+        sha1 = "58243eded272fc531d7c744d8e8daa7cc0b99215";
       })
     ];
     buildInputs =
       (self.nativeDeps."compression" or []);
-    deps = [
-      self.by-version."accepts"."1.0.7"
-      self.by-version."bytes"."1.0.0"
-      self.by-version."compressible"."1.1.1"
-      self.by-version."debug"."1.0.4"
-      self.by-version."on-headers"."1.0.0"
-      self.by-version."vary"."1.0.0"
-    ];
+    deps = {
+      "accepts-1.1.0" = self.by-version."accepts"."1.1.0";
+      "bytes-1.0.0" = self.by-version."bytes"."1.0.0";
+      "compressible-2.0.0" = self.by-version."compressible"."2.0.0";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "on-headers-1.0.0" = self.by-version."on-headers"."1.0.0";
+      "vary-1.0.0" = self.by-version."vary"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "compression" ];
@@ -2865,7 +3036,8 @@
   by-spec."concat-stream"."^1.4.1" =
     self.by-version."concat-stream"."1.4.6";
   by-version."concat-stream"."1.4.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-concat-stream-1.4.6";
+    name = "concat-stream-1.4.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/concat-stream/-/concat-stream-1.4.6.tgz";
@@ -2875,11 +3047,11 @@
     ];
     buildInputs =
       (self.nativeDeps."concat-stream" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-      self.by-version."typedarray"."0.0.6"
-      self.by-version."readable-stream"."1.1.13"
-    ];
+    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.13" = self.by-version."readable-stream"."1.1.13";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "concat-stream" ];
@@ -2891,7 +3063,8 @@
   by-spec."config"."0.4.15" =
     self.by-version."config"."0.4.15";
   by-version."config"."0.4.15" = lib.makeOverridable self.buildNodePackage {
-    name = "node-config-0.4.15";
+    name = "config-0.4.15";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/config/-/config-0.4.15.tgz";
@@ -2901,11 +3074,11 @@
     ];
     buildInputs =
       (self.nativeDeps."config" or []);
-    deps = [
-      self.by-version."js-yaml"."0.3.7"
-      self.by-version."coffee-script"."1.7.1"
-      self.by-version."vows"."0.7.0"
-    ];
+    deps = {
+      "js-yaml-0.3.7" = self.by-version."js-yaml"."0.3.7";
+      "coffee-script-1.8.0" = self.by-version."coffee-script"."1.8.0";
+      "vows-0.7.0" = self.by-version."vows"."0.7.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "config" ];
@@ -2913,7 +3086,8 @@
   by-spec."config-chain"."~1.1.1" =
     self.by-version."config-chain"."1.1.8";
   by-version."config-chain"."1.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-config-chain-1.1.8";
+    name = "config-chain-1.1.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/config-chain/-/config-chain-1.1.8.tgz";
@@ -2923,10 +3097,10 @@
     ];
     buildInputs =
       (self.nativeDeps."config-chain" or []);
-    deps = [
-      self.by-version."proto-list"."1.2.3"
-      self.by-version."ini"."1.2.1"
-    ];
+    deps = {
+      "proto-list-1.2.3" = self.by-version."proto-list"."1.2.3";
+      "ini-1.2.1" = self.by-version."ini"."1.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "config-chain" ];
@@ -2936,7 +3110,8 @@
   by-spec."configstore"."^0.3.0" =
     self.by-version."configstore"."0.3.1";
   by-version."configstore"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-configstore-0.3.1";
+    name = "configstore-0.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/configstore/-/configstore-0.3.1.tgz";
@@ -2946,45 +3121,23 @@
     ];
     buildInputs =
       (self.nativeDeps."configstore" or []);
-    deps = [
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."js-yaml"."3.0.2"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."object-assign"."0.3.1"
-      self.by-version."osenv"."0.1.0"
-      self.by-version."uuid"."1.4.1"
-    ];
+    deps = {
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "js-yaml-3.0.2" = self.by-version."js-yaml"."3.0.2";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "object-assign-0.3.1" = self.by-version."object-assign"."0.3.1";
+      "osenv-0.1.0" = self.by-version."osenv"."0.1.0";
+      "uuid-1.4.1" = self.by-version."uuid"."1.4.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "configstore" ];
   };
-  by-spec."connect"."*" =
-    self.by-version."connect"."3.1.1";
-  by-version."connect"."3.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-3.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/connect/-/connect-3.1.1.tgz";
-        name = "connect-3.1.1.tgz";
-        sha1 = "a73e2449c3efc2dfd1661865977a09184d120196";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."finalhandler"."0.1.0"
-      self.by-version."parseurl"."1.3.0"
-      self.by-version."utils-merge"."1.0.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "connect" ];
-  };
   by-spec."connect"."1.x" =
     self.by-version."connect"."1.9.2";
   by-version."connect"."1.9.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-1.9.2";
+    name = "connect-1.9.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect/-/connect-1.9.2.tgz";
@@ -2994,11 +3147,11 @@
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."qs"."1.2.2"
-      self.by-version."mime"."1.2.11"
-      self.by-version."formidable"."1.0.15"
-    ];
+    deps = {
+      "qs-2.2.3" = self.by-version."qs"."2.2.3";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "formidable-1.0.15" = self.by-version."formidable"."1.0.15";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
@@ -3006,7 +3159,8 @@
   by-spec."connect"."2.11.0" =
     self.by-version."connect"."2.11.0";
   by-version."connect"."2.11.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.11.0";
+    name = "connect-2.11.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect/-/connect-2.11.0.tgz";
@@ -3016,70 +3170,71 @@
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."qs"."0.6.5"
-      self.by-version."cookie-signature"."1.0.1"
-      self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."cookie"."0.1.0"
-      self.by-version."send"."0.1.4"
-      self.by-version."bytes"."0.2.1"
-      self.by-version."fresh"."0.2.0"
-      self.by-version."pause"."0.0.1"
-      self.by-version."uid2"."0.0.3"
-      self.by-version."debug"."1.0.4"
-      self.by-version."methods"."0.0.1"
-      self.by-version."raw-body"."0.0.3"
-      self.by-version."negotiator"."0.3.0"
-      self.by-version."multiparty"."2.2.0"
-    ];
+    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.0.0" = self.by-version."debug"."2.0.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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
   };
-  by-spec."connect"."2.25.7" =
-    self.by-version."connect"."2.25.7";
-  by-version."connect"."2.25.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.25.7";
+  by-spec."connect"."2.26.0" =
+    self.by-version."connect"."2.26.0";
+  by-version."connect"."2.26.0" = lib.makeOverridable self.buildNodePackage {
+    name = "connect-2.26.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/connect/-/connect-2.25.7.tgz";
-        name = "connect-2.25.7.tgz";
-        sha1 = "22a29ebf710c6379ca0e20f0974c268a15ec4d29";
+        url = "http://registry.npmjs.org/connect/-/connect-2.26.0.tgz";
+        name = "connect-2.26.0.tgz";
+        sha1 = "998bebbf54d81225f7794d2fabd076d0f9f0e712";
       })
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."basic-auth-connect"."1.0.0"
-      self.by-version."body-parser"."1.6.5"
-      self.by-version."bytes"."1.0.0"
-      self.by-version."cookie"."0.1.2"
-      self.by-version."cookie-parser"."1.3.2"
-      self.by-version."cookie-signature"."1.0.4"
-      self.by-version."compression"."1.0.11"
-      self.by-version."connect-timeout"."1.2.2"
-      self.by-version."csurf"."1.4.0"
-      self.by-version."debug"."1.0.4"
-      self.by-version."depd"."0.4.4"
-      self.by-version."errorhandler"."1.1.1"
-      self.by-version."express-session"."1.7.6"
-      self.by-version."finalhandler"."0.1.0"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."media-typer"."0.2.0"
-      self.by-version."method-override"."2.1.3"
-      self.by-version."morgan"."1.2.3"
-      self.by-version."multiparty"."3.3.2"
-      self.by-version."on-headers"."1.0.0"
-      self.by-version."parseurl"."1.3.0"
-      self.by-version."qs"."1.2.2"
-      self.by-version."response-time"."2.0.1"
-      self.by-version."serve-favicon"."2.0.1"
-      self.by-version."serve-index"."1.1.6"
-      self.by-version."serve-static"."1.5.3"
-      self.by-version."type-is"."1.3.2"
-      self.by-version."vhost"."2.0.0"
-      self.by-version."pause"."0.0.1"
-    ];
+    deps = {
+      "basic-auth-connect-1.0.0" = self.by-version."basic-auth-connect"."1.0.0";
+      "body-parser-1.8.1" = self.by-version."body-parser"."1.8.1";
+      "bytes-1.0.0" = self.by-version."bytes"."1.0.0";
+      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
+      "cookie-parser-1.3.3" = self.by-version."cookie-parser"."1.3.3";
+      "cookie-signature-1.0.5" = self.by-version."cookie-signature"."1.0.5";
+      "compression-1.1.0" = self.by-version."compression"."1.1.0";
+      "connect-timeout-1.3.0" = self.by-version."connect-timeout"."1.3.0";
+      "csurf-1.6.1" = self.by-version."csurf"."1.6.1";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "errorhandler-1.2.0" = self.by-version."errorhandler"."1.2.0";
+      "express-session-1.8.1" = self.by-version."express-session"."1.8.1";
+      "finalhandler-0.2.0" = self.by-version."finalhandler"."0.2.0";
+      "fresh-0.2.4" = self.by-version."fresh"."0.2.4";
+      "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0";
+      "method-override-2.2.0" = self.by-version."method-override"."2.2.0";
+      "morgan-1.3.0" = self.by-version."morgan"."1.3.0";
+      "multiparty-3.3.2" = self.by-version."multiparty"."3.3.2";
+      "on-headers-1.0.0" = self.by-version."on-headers"."1.0.0";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+      "qs-2.2.3" = self.by-version."qs"."2.2.3";
+      "response-time-2.0.1" = self.by-version."response-time"."2.0.1";
+      "serve-favicon-2.1.3" = self.by-version."serve-favicon"."2.1.3";
+      "serve-index-1.2.1" = self.by-version."serve-index"."1.2.1";
+      "serve-static-1.6.1" = self.by-version."serve-static"."1.6.1";
+      "type-is-1.5.1" = self.by-version."type-is"."1.5.1";
+      "vhost-3.0.0" = self.by-version."vhost"."3.0.0";
+      "pause-0.0.1" = self.by-version."pause"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
@@ -3087,7 +3242,8 @@
   by-spec."connect"."2.3.x" =
     self.by-version."connect"."2.3.9";
   by-version."connect"."2.3.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.3.9";
+    name = "connect-2.3.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect/-/connect-2.3.9.tgz";
@@ -3097,16 +3253,16 @@
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."qs"."0.4.2"
-      self.by-version."formidable"."1.0.11"
-      self.by-version."crc"."0.2.0"
-      self.by-version."cookie"."0.0.4"
-      self.by-version."bytes"."0.1.0"
-      self.by-version."send"."0.0.3"
-      self.by-version."fresh"."0.1.0"
-      self.by-version."debug"."1.0.4"
-    ];
+    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.0.0" = self.by-version."debug"."2.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
@@ -3114,7 +3270,8 @@
   by-spec."connect"."2.7.5" =
     self.by-version."connect"."2.7.5";
   by-version."connect"."2.7.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.7.5";
+    name = "connect-2.7.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect/-/connect-2.7.5.tgz";
@@ -3124,18 +3281,18 @@
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."qs"."0.5.1"
-      self.by-version."formidable"."1.0.11"
-      self.by-version."cookie-signature"."1.0.0"
-      self.by-version."buffer-crc32"."0.1.1"
-      self.by-version."cookie"."0.0.5"
-      self.by-version."send"."0.1.0"
-      self.by-version."bytes"."0.2.0"
-      self.by-version."fresh"."0.1.0"
-      self.by-version."pause"."0.0.1"
-      self.by-version."debug"."1.0.4"
-    ];
+    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.0" = self.by-version."cookie-signature"."1.0.0";
+      "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.0.0" = self.by-version."debug"."2.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
@@ -3143,7 +3300,8 @@
   by-spec."connect"."2.7.6" =
     self.by-version."connect"."2.7.6";
   by-version."connect"."2.7.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.7.6";
+    name = "connect-2.7.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect/-/connect-2.7.6.tgz";
@@ -3153,28 +3311,29 @@
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."qs"."0.5.1"
-      self.by-version."formidable"."1.0.11"
-      self.by-version."cookie-signature"."1.0.1"
-      self.by-version."buffer-crc32"."0.1.1"
-      self.by-version."cookie"."0.0.5"
-      self.by-version."send"."0.1.0"
-      self.by-version."bytes"."0.2.0"
-      self.by-version."fresh"."0.1.0"
-      self.by-version."pause"."0.0.1"
-      self.by-version."debug"."1.0.4"
-    ];
+    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.0.0" = self.by-version."debug"."2.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
   };
   by-spec."connect"."~2" =
-    self.by-version."connect"."2.25.7";
+    self.by-version."connect"."2.26.0";
   by-spec."connect"."~2.12.0" =
     self.by-version."connect"."2.12.0";
   by-version."connect"."2.12.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.12.0";
+    name = "connect-2.12.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect/-/connect-2.12.0.tgz";
@@ -3184,23 +3343,23 @@
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."batch"."0.5.0"
-      self.by-version."qs"."0.6.6"
-      self.by-version."cookie-signature"."1.0.1"
-      self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."cookie"."0.1.0"
-      self.by-version."send"."0.1.4"
-      self.by-version."bytes"."0.2.1"
-      self.by-version."fresh"."0.2.0"
-      self.by-version."pause"."0.0.1"
-      self.by-version."uid2"."0.0.3"
-      self.by-version."debug"."0.8.1"
-      self.by-version."methods"."0.1.0"
-      self.by-version."raw-body"."1.1.2"
-      self.by-version."negotiator"."0.3.0"
-      self.by-version."multiparty"."2.2.0"
-    ];
+    deps = {
+      "batch-0.5.0" = self.by-version."batch"."0.5.0";
+      "qs-0.6.6" = self.by-version."qs"."0.6.6";
+      "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-0.8.1" = self.by-version."debug"."0.8.1";
+      "methods-0.1.0" = self.by-version."methods"."0.1.0";
+      "raw-body-1.1.2" = self.by-version."raw-body"."1.1.2";
+      "negotiator-0.3.0" = self.by-version."negotiator"."0.3.0";
+      "multiparty-2.2.0" = self.by-version."multiparty"."2.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
@@ -3208,7 +3367,8 @@
   by-spec."connect-flash"."*" =
     self.by-version."connect-flash"."0.1.1";
   by-version."connect-flash"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-flash-0.1.1";
+    name = "connect-flash-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz";
@@ -3218,8 +3378,8 @@
     ];
     buildInputs =
       (self.nativeDeps."connect-flash" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect-flash" ];
@@ -3228,7 +3388,8 @@
   by-spec."connect-flash"."0.1.0" =
     self.by-version."connect-flash"."0.1.0";
   by-version."connect-flash"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-flash-0.1.0";
+    name = "connect-flash-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect-flash/-/connect-flash-0.1.0.tgz";
@@ -3238,8 +3399,8 @@
     ];
     buildInputs =
       (self.nativeDeps."connect-flash" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect-flash" ];
@@ -3247,7 +3408,8 @@
   by-spec."connect-jade-static"."*" =
     self.by-version."connect-jade-static"."0.1.3";
   by-version."connect-jade-static"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-jade-static-0.1.3";
+    name = "connect-jade-static-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect-jade-static/-/connect-jade-static-0.1.3.tgz";
@@ -3257,9 +3419,9 @@
     ];
     buildInputs =
       (self.nativeDeps."connect-jade-static" or []);
-    deps = [
-      self.by-version."jade"."1.5.0"
-    ];
+    deps = {
+      "jade-1.6.0" = self.by-version."jade"."1.6.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect-jade-static" ];
@@ -3268,7 +3430,8 @@
   by-spec."connect-mongo"."*" =
     self.by-version."connect-mongo"."0.4.1";
   by-version."connect-mongo"."0.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-mongo-0.4.1";
+    name = "connect-mongo-0.4.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connect-mongo/-/connect-mongo-0.4.1.tgz";
@@ -3278,32 +3441,33 @@
     ];
     buildInputs =
       (self.nativeDeps."connect-mongo" or []);
-    deps = [
-      self.by-version."mongodb"."1.3.23"
-    ];
+    deps = {
+      "mongodb-1.3.23" = self.by-version."mongodb"."1.3.23";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect-mongo" ];
   };
   "connect-mongo" = self.by-version."connect-mongo"."0.4.1";
-  by-spec."connect-timeout"."~1.2.2" =
-    self.by-version."connect-timeout"."1.2.2";
-  by-version."connect-timeout"."1.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-timeout-1.2.2";
+  by-spec."connect-timeout"."~1.3.0" =
+    self.by-version."connect-timeout"."1.3.0";
+  by-version."connect-timeout"."1.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "connect-timeout-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/connect-timeout/-/connect-timeout-1.2.2.tgz";
-        name = "connect-timeout-1.2.2.tgz";
-        sha1 = "5953602bb66abfd5fa21ae911a7221c5e825a1c0";
+        url = "http://registry.npmjs.org/connect-timeout/-/connect-timeout-1.3.0.tgz";
+        name = "connect-timeout-1.3.0.tgz";
+        sha1 = "d9d1d2df2900d490ed54190809f37e6b4508a1ec";
       })
     ];
     buildInputs =
       (self.nativeDeps."connect-timeout" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."ms"."0.6.2"
-      self.by-version."on-headers"."1.0.0"
-    ];
+    deps = {
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "ms-0.6.2" = self.by-version."ms"."0.6.2";
+      "on-headers-1.0.0" = self.by-version."on-headers"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connect-timeout" ];
@@ -3311,7 +3475,8 @@
   by-spec."connection-parse"."0.0.x" =
     self.by-version."connection-parse"."0.0.7";
   by-version."connection-parse"."0.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connection-parse-0.0.7";
+    name = "connection-parse-0.0.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/connection-parse/-/connection-parse-0.0.7.tgz";
@@ -3321,8 +3486,8 @@
     ];
     buildInputs =
       (self.nativeDeps."connection-parse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "connection-parse" ];
@@ -3330,7 +3495,8 @@
   by-spec."console-browserify"."1.1.x" =
     self.by-version."console-browserify"."1.1.0";
   by-version."console-browserify"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-console-browserify-1.1.0";
+    name = "console-browserify-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz";
@@ -3340,9 +3506,9 @@
     ];
     buildInputs =
       (self.nativeDeps."console-browserify" or []);
-    deps = [
-      self.by-version."date-now"."0.1.4"
-    ];
+    deps = {
+      "date-now-0.1.4" = self.by-version."date-now"."0.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "console-browserify" ];
@@ -3352,7 +3518,8 @@
   by-spec."constantinople"."~1.0.1" =
     self.by-version."constantinople"."1.0.2";
   by-version."constantinople"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-constantinople-1.0.2";
+    name = "constantinople-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/constantinople/-/constantinople-1.0.2.tgz";
@@ -3362,9 +3529,9 @@
     ];
     buildInputs =
       (self.nativeDeps."constantinople" or []);
-    deps = [
-      self.by-version."uglify-js"."2.4.15"
-    ];
+    deps = {
+      "uglify-js-2.4.15" = self.by-version."uglify-js"."2.4.15";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "constantinople" ];
@@ -3374,7 +3541,8 @@
   by-spec."constantinople"."~2.0.0" =
     self.by-version."constantinople"."2.0.1";
   by-version."constantinople"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-constantinople-2.0.1";
+    name = "constantinople-2.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz";
@@ -3384,9 +3552,9 @@
     ];
     buildInputs =
       (self.nativeDeps."constantinople" or []);
-    deps = [
-      self.by-version."uglify-js"."2.4.15"
-    ];
+    deps = {
+      "uglify-js-2.4.15" = self.by-version."uglify-js"."2.4.15";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "constantinople" ];
@@ -3394,7 +3562,8 @@
   by-spec."constants-browserify"."~0.0.1" =
     self.by-version."constants-browserify"."0.0.1";
   by-version."constants-browserify"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-constants-browserify-0.0.1";
+    name = "constants-browserify-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz";
@@ -3404,8 +3573,8 @@
     ];
     buildInputs =
       (self.nativeDeps."constants-browserify" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "constants-browserify" ];
@@ -3413,7 +3582,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-convert-source-map-0.3.5";
+    name = "convert-source-map-0.3.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz";
@@ -3423,8 +3593,8 @@
     ];
     buildInputs =
       (self.nativeDeps."convert-source-map" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "convert-source-map" ];
@@ -3432,7 +3602,8 @@
   by-spec."cookie"."0.0.4" =
     self.by-version."cookie"."0.0.4";
   by-version."cookie"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-0.0.4";
+    name = "cookie-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz";
@@ -3442,8 +3613,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie" ];
@@ -3451,7 +3622,8 @@
   by-spec."cookie"."0.0.5" =
     self.by-version."cookie"."0.0.5";
   by-version."cookie"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-0.0.5";
+    name = "cookie-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie/-/cookie-0.0.5.tgz";
@@ -3461,8 +3633,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie" ];
@@ -3470,7 +3642,8 @@
   by-spec."cookie"."0.1.0" =
     self.by-version."cookie"."0.1.0";
   by-version."cookie"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-0.1.0";
+    name = "cookie-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz";
@@ -3480,8 +3653,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie" ];
@@ -3489,7 +3662,8 @@
   by-spec."cookie"."0.1.2" =
     self.by-version."cookie"."0.1.2";
   by-version."cookie"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-0.1.2";
+    name = "cookie-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz";
@@ -3499,8 +3673,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie" ];
@@ -3508,7 +3682,8 @@
   by-spec."cookie-jar"."~0.2.0" =
     self.by-version."cookie-jar"."0.2.0";
   by-version."cookie-jar"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-jar-0.2.0";
+    name = "cookie-jar-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz";
@@ -3518,8 +3693,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie-jar" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie-jar" ];
@@ -3527,7 +3702,8 @@
   by-spec."cookie-jar"."~0.3.0" =
     self.by-version."cookie-jar"."0.3.0";
   by-version."cookie-jar"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-jar-0.3.0";
+    name = "cookie-jar-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie-jar/-/cookie-jar-0.3.0.tgz";
@@ -3537,39 +3713,41 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie-jar" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie-jar" ];
   };
-  by-spec."cookie-parser"."1.3.2" =
-    self.by-version."cookie-parser"."1.3.2";
-  by-version."cookie-parser"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-parser-1.3.2";
+  by-spec."cookie-parser"."~1.3.2" =
+    self.by-version."cookie-parser"."1.3.3";
+  by-version."cookie-parser"."1.3.3" = lib.makeOverridable self.buildNodePackage {
+    name = "cookie-parser-1.3.3";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.2.tgz";
-        name = "cookie-parser-1.3.2.tgz";
-        sha1 = "52211cc82c955d79ff0c088954407724e19cf562";
+        url = "http://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.3.tgz";
+        name = "cookie-parser-1.3.3.tgz";
+        sha1 = "7e3a2c745f4b460d5a340e578a0baa5d7725fe37";
       })
     ];
     buildInputs =
       (self.nativeDeps."cookie-parser" or []);
-    deps = [
-      self.by-version."cookie"."0.1.2"
-      self.by-version."cookie-signature"."1.0.4"
-    ];
+    deps = {
+      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
+      "cookie-signature-1.0.5" = self.by-version."cookie-signature"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie-parser" ];
   };
-  by-spec."cookie-parser"."~1.3.2" =
-    self.by-version."cookie-parser"."1.3.2";
+  by-spec."cookie-parser"."~1.3.3" =
+    self.by-version."cookie-parser"."1.3.3";
   by-spec."cookie-signature"."1.0.0" =
     self.by-version."cookie-signature"."1.0.0";
   by-version."cookie-signature"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-signature-1.0.0";
+    name = "cookie-signature-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.0.tgz";
@@ -3579,8 +3757,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie-signature" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie-signature" ];
@@ -3588,7 +3766,8 @@
   by-spec."cookie-signature"."1.0.1" =
     self.by-version."cookie-signature"."1.0.1";
   by-version."cookie-signature"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-signature-1.0.1";
+    name = "cookie-signature-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz";
@@ -3598,8 +3777,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie-signature" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie-signature" ];
@@ -3607,7 +3786,8 @@
   by-spec."cookie-signature"."1.0.3" =
     self.by-version."cookie-signature"."1.0.3";
   by-version."cookie-signature"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-signature-1.0.3";
+    name = "cookie-signature-1.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz";
@@ -3617,8 +3797,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie-signature" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie-signature" ];
@@ -3626,7 +3806,8 @@
   by-spec."cookie-signature"."1.0.4" =
     self.by-version."cookie-signature"."1.0.4";
   by-version."cookie-signature"."1.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-signature-1.0.4";
+    name = "cookie-signature-1.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.4.tgz";
@@ -3636,8 +3817,28 @@
     ];
     buildInputs =
       (self.nativeDeps."cookie-signature" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "cookie-signature" ];
+  };
+  by-spec."cookie-signature"."1.0.5" =
+    self.by-version."cookie-signature"."1.0.5";
+  by-version."cookie-signature"."1.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "cookie-signature-1.0.5";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz";
+        name = "cookie-signature-1.0.5.tgz";
+        sha1 = "a122e3f1503eca0f5355795b0711bb2368d450f9";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cookie-signature" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookie-signature" ];
@@ -3645,7 +3846,8 @@
   by-spec."cookiejar"."1.3.0" =
     self.by-version."cookiejar"."1.3.0";
   by-version."cookiejar"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookiejar-1.3.0";
+    name = "cookiejar-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookiejar/-/cookiejar-1.3.0.tgz";
@@ -3655,8 +3857,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookiejar" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookiejar" ];
@@ -3664,7 +3866,8 @@
   by-spec."cookiejar"."1.3.2" =
     self.by-version."cookiejar"."1.3.2";
   by-version."cookiejar"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookiejar-1.3.2";
+    name = "cookiejar-1.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookiejar/-/cookiejar-1.3.2.tgz";
@@ -3674,8 +3877,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookiejar" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookiejar" ];
@@ -3683,7 +3886,8 @@
   by-spec."cookiejar"."2.0.1" =
     self.by-version."cookiejar"."2.0.1";
   by-version."cookiejar"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookiejar-2.0.1";
+    name = "cookiejar-2.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookiejar/-/cookiejar-2.0.1.tgz";
@@ -3693,8 +3897,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cookiejar" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookiejar" ];
@@ -3702,7 +3906,8 @@
   by-spec."cookies".">= 0.2.2" =
     self.by-version."cookies"."0.5.0";
   by-version."cookies"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookies-0.5.0";
+    name = "cookies-0.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cookies/-/cookies-0.5.0.tgz";
@@ -3712,19 +3917,18 @@
     ];
     buildInputs =
       (self.nativeDeps."cookies" or []);
-    deps = [
-      self.by-version."keygrip"."1.0.1"
-    ];
+    deps = {
+      "keygrip-1.0.1" = self.by-version."keygrip"."1.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cookies" ];
   };
-  by-spec."cookies"."~0.5.0" =
-    self.by-version."cookies"."0.5.0";
   by-spec."core-util-is"."~1.0.0" =
     self.by-version."core-util-is"."1.0.1";
   by-version."core-util-is"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-core-util-is-1.0.1";
+    name = "core-util-is-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz";
@@ -3734,8 +3938,8 @@
     ];
     buildInputs =
       (self.nativeDeps."core-util-is" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "core-util-is" ];
@@ -3743,7 +3947,8 @@
   by-spec."couch-login"."~0.1.15" =
     self.by-version."couch-login"."0.1.20";
   by-version."couch-login"."0.1.20" = lib.makeOverridable self.buildNodePackage {
-    name = "node-couch-login-0.1.20";
+    name = "couch-login-0.1.20";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/couch-login/-/couch-login-0.1.20.tgz";
@@ -3753,9 +3958,9 @@
     ];
     buildInputs =
       (self.nativeDeps."couch-login" or []);
-    deps = [
-      self.by-version."request"."2.40.0"
-    ];
+    deps = {
+      "request-2.42.0" = self.by-version."request"."2.42.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "couch-login" ];
@@ -3764,6 +3969,7 @@
     self.by-version."coveralls"."2.11.1";
   by-version."coveralls"."2.11.1" = lib.makeOverridable self.buildNodePackage {
     name = "coveralls-2.11.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/coveralls/-/coveralls-2.11.1.tgz";
@@ -3773,12 +3979,12 @@
     ];
     buildInputs =
       (self.nativeDeps."coveralls" or []);
-    deps = [
-      self.by-version."js-yaml"."3.0.1"
-      self.by-version."lcov-parse"."0.0.6"
-      self.by-version."log-driver"."1.2.4"
-      self.by-version."request"."2.36.0"
-    ];
+    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.36.0" = self.by-version."request"."2.36.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "coveralls" ];
@@ -3787,7 +3993,8 @@
   by-spec."crc"."0.2.0" =
     self.by-version."crc"."0.2.0";
   by-version."crc"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-crc-0.2.0";
+    name = "crc-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/crc/-/crc-0.2.0.tgz";
@@ -3797,29 +4004,30 @@
     ];
     buildInputs =
       (self.nativeDeps."crc" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "crc" ];
   };
-  by-spec."crc32-stream"."~0.2.0" =
-    self.by-version."crc32-stream"."0.2.0";
-  by-version."crc32-stream"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-crc32-stream-0.2.0";
+  by-spec."crc32-stream"."~0.3.1" =
+    self.by-version."crc32-stream"."0.3.1";
+  by-version."crc32-stream"."0.3.1" = lib.makeOverridable self.buildNodePackage {
+    name = "crc32-stream-0.3.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/crc32-stream/-/crc32-stream-0.2.0.tgz";
-        name = "crc32-stream-0.2.0.tgz";
-        sha1 = "5c80d480c8682f904b6f15530dbbe0b8c063dbbe";
+        url = "http://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.1.tgz";
+        name = "crc32-stream-0.3.1.tgz";
+        sha1 = "615fcf05ed08342a3d1e938041aed84430ce7837";
       })
     ];
     buildInputs =
       (self.nativeDeps."crc32-stream" or []);
-    deps = [
-      self.by-version."readable-stream"."1.0.31"
-      self.by-version."buffer-crc32"."0.2.3"
-    ];
+    deps = {
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "crc32-stream" ];
@@ -3827,7 +4035,8 @@
   by-spec."crossroads"."~0.12.0" =
     self.by-version."crossroads"."0.12.0";
   by-version."crossroads"."0.12.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-crossroads-0.12.0";
+    name = "crossroads-0.12.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/crossroads/-/crossroads-0.12.0.tgz";
@@ -3837,9 +4046,9 @@
     ];
     buildInputs =
       (self.nativeDeps."crossroads" or []);
-    deps = [
-      self.by-version."signals"."1.0.0"
-    ];
+    deps = {
+      "signals-1.0.0" = self.by-version."signals"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "crossroads" ];
@@ -3847,7 +4056,8 @@
   by-spec."cryptiles"."0.1.x" =
     self.by-version."cryptiles"."0.1.3";
   by-version."cryptiles"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cryptiles-0.1.3";
+    name = "cryptiles-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz";
@@ -3857,9 +4067,9 @@
     ];
     buildInputs =
       (self.nativeDeps."cryptiles" or []);
-    deps = [
-      self.by-version."boom"."0.3.8"
-    ];
+    deps = {
+      "boom-0.3.8" = self.by-version."boom"."0.3.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cryptiles" ];
@@ -3867,7 +4077,8 @@
   by-spec."cryptiles"."0.2.x" =
     self.by-version."cryptiles"."0.2.2";
   by-version."cryptiles"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cryptiles-0.2.2";
+    name = "cryptiles-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz";
@@ -3877,9 +4088,9 @@
     ];
     buildInputs =
       (self.nativeDeps."cryptiles" or []);
-    deps = [
-      self.by-version."boom"."0.4.2"
-    ];
+    deps = {
+      "boom-0.4.2" = self.by-version."boom"."0.4.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cryptiles" ];
@@ -3887,7 +4098,8 @@
   by-spec."crypto"."0.0.3" =
     self.by-version."crypto"."0.0.3";
   by-version."crypto"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-crypto-0.0.3";
+    name = "crypto-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/crypto/-/crypto-0.0.3.tgz";
@@ -3897,29 +4109,30 @@
     ];
     buildInputs =
       (self.nativeDeps."crypto" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "crypto" ];
   };
   by-spec."crypto-browserify"."^3.0.0" =
-    self.by-version."crypto-browserify"."3.0.1";
-  by-version."crypto-browserify"."3.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-crypto-browserify-3.0.1";
+    self.by-version."crypto-browserify"."3.0.2";
+  by-version."crypto-browserify"."3.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "crypto-browserify-3.0.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.0.1.tgz";
-        name = "crypto-browserify-3.0.1.tgz";
-        sha1 = "770fd68e8422f9b1e53d6812f1c2ce2ea7ab917c";
+        url = "http://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.0.2.tgz";
+        name = "crypto-browserify-3.0.2.tgz";
+        sha1 = "43218365d9d086e8c1b88f968fb7134f13505c84";
       })
     ];
     buildInputs =
       (self.nativeDeps."crypto-browserify" or []);
-    deps = [
-      self.by-version."ripemd160"."0.2.0"
-      self.by-version."sha.js"."2.1.7"
-    ];
+    deps = {
+      "ripemd160-0.2.0" = self.by-version."ripemd160"."0.2.0";
+      "sha.js-2.1.8" = self.by-version."sha.js"."2.1.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "crypto-browserify" ];
@@ -3928,6 +4141,7 @@
     self.by-version."cscodegen"."0.1.0";
   by-version."cscodegen"."0.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "cscodegen-0.1.0";
+    bin = true;
     src = [
       (fetchgit {
         url = "git://github.com/michaelficarra/cscodegen.git";
@@ -3937,39 +4151,41 @@
     ];
     buildInputs =
       (self.nativeDeps."cscodegen" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cscodegen" ];
   };
-  by-spec."csrf-tokens"."~2.0.0" =
-    self.by-version."csrf-tokens"."2.0.0";
-  by-version."csrf-tokens"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-csrf-tokens-2.0.0";
+  by-spec."csrf"."~2.0.1" =
+    self.by-version."csrf"."2.0.1";
+  by-version."csrf"."2.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "csrf-2.0.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/csrf-tokens/-/csrf-tokens-2.0.0.tgz";
-        name = "csrf-tokens-2.0.0.tgz";
-        sha1 = "c821003fb8b6ad17bc977d6fd1a84bedc3ed619b";
+        url = "http://registry.npmjs.org/csrf/-/csrf-2.0.1.tgz";
+        name = "csrf-2.0.1.tgz";
+        sha1 = "d673a2efb4db7d0e6805dadd838c57e30ae0ee73";
       })
     ];
     buildInputs =
-      (self.nativeDeps."csrf-tokens" or []);
-    deps = [
-      self.by-version."rndm"."1.0.0"
-      self.by-version."scmp"."0.0.3"
-      self.by-version."uid-safe"."1.0.1"
-      self.by-version."base64-url"."1.0.0"
-    ];
+      (self.nativeDeps."csrf" or []);
+    deps = {
+      "rndm-1.0.0" = self.by-version."rndm"."1.0.0";
+      "scmp-0.0.3" = self.by-version."scmp"."0.0.3";
+      "uid-safe-1.0.1" = self.by-version."uid-safe"."1.0.1";
+      "base64-url-1.0.0" = self.by-version."base64-url"."1.0.0";
+    };
     peerDependencies = [
     ];
-    passthru.names = [ "csrf-tokens" ];
+    passthru.names = [ "csrf" ];
   };
   by-spec."css"."~1.0.8" =
     self.by-version."css"."1.0.8";
   by-version."css"."1.0.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-css-1.0.8";
+    name = "css-1.0.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/css/-/css-1.0.8.tgz";
@@ -3979,10 +4195,10 @@
     ];
     buildInputs =
       (self.nativeDeps."css" or []);
-    deps = [
-      self.by-version."css-parse"."1.0.4"
-      self.by-version."css-stringify"."1.0.5"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "css" ];
@@ -3990,7 +4206,8 @@
   by-spec."css-parse"."1.0.4" =
     self.by-version."css-parse"."1.0.4";
   by-version."css-parse"."1.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-css-parse-1.0.4";
+    name = "css-parse-1.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz";
@@ -4000,8 +4217,8 @@
     ];
     buildInputs =
       (self.nativeDeps."css-parse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "css-parse" ];
@@ -4009,7 +4226,8 @@
   by-spec."css-parse"."1.7.x" =
     self.by-version."css-parse"."1.7.0";
   by-version."css-parse"."1.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-css-parse-1.7.0";
+    name = "css-parse-1.7.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz";
@@ -4019,8 +4237,8 @@
     ];
     buildInputs =
       (self.nativeDeps."css-parse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "css-parse" ];
@@ -4028,7 +4246,8 @@
   by-spec."css-stringify"."1.0.5" =
     self.by-version."css-stringify"."1.0.5";
   by-version."css-stringify"."1.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-css-stringify-1.0.5";
+    name = "css-stringify-1.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz";
@@ -4038,30 +4257,31 @@
     ];
     buildInputs =
       (self.nativeDeps."css-stringify" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "css-stringify" ];
   };
-  by-spec."csurf"."~1.4.0" =
-    self.by-version."csurf"."1.4.0";
-  by-version."csurf"."1.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-csurf-1.4.0";
+  by-spec."csurf"."~1.6.1" =
+    self.by-version."csurf"."1.6.1";
+  by-version."csurf"."1.6.1" = lib.makeOverridable self.buildNodePackage {
+    name = "csurf-1.6.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/csurf/-/csurf-1.4.0.tgz";
-        name = "csurf-1.4.0.tgz";
-        sha1 = "035628ab6644d7709ac9d1adc78ef05a2d576efe";
+        url = "http://registry.npmjs.org/csurf/-/csurf-1.6.1.tgz";
+        name = "csurf-1.6.1.tgz";
+        sha1 = "78da376f016bcaa48275d553d133585e478f4054";
       })
     ];
     buildInputs =
       (self.nativeDeps."csurf" or []);
-    deps = [
-      self.by-version."cookie"."0.1.2"
-      self.by-version."cookie-signature"."1.0.4"
-      self.by-version."csrf-tokens"."2.0.0"
-    ];
+    deps = {
+      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
+      "cookie-signature-1.0.5" = self.by-version."cookie-signature"."1.0.5";
+      "csrf-2.0.1" = self.by-version."csrf"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "csurf" ];
@@ -4069,7 +4289,8 @@
   by-spec."ctype"."0.5.0" =
     self.by-version."ctype"."0.5.0";
   by-version."ctype"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ctype-0.5.0";
+    name = "ctype-0.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ctype/-/ctype-0.5.0.tgz";
@@ -4079,8 +4300,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ctype" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ctype" ];
@@ -4088,7 +4309,8 @@
   by-spec."ctype"."0.5.2" =
     self.by-version."ctype"."0.5.2";
   by-version."ctype"."0.5.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ctype-0.5.2";
+    name = "ctype-0.5.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz";
@@ -4098,8 +4320,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ctype" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ctype" ];
@@ -4107,7 +4329,8 @@
   by-spec."cycle"."1.0.x" =
     self.by-version."cycle"."1.0.3";
   by-version."cycle"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cycle-1.0.3";
+    name = "cycle-1.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
@@ -4117,8 +4340,8 @@
     ];
     buildInputs =
       (self.nativeDeps."cycle" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "cycle" ];
@@ -4126,7 +4349,8 @@
   by-spec."dashdash"."1.3.2" =
     self.by-version."dashdash"."1.3.2";
   by-version."dashdash"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dashdash-1.3.2";
+    name = "dashdash-1.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/dashdash/-/dashdash-1.3.2.tgz";
@@ -4136,9 +4360,9 @@
     ];
     buildInputs =
       (self.nativeDeps."dashdash" or []);
-    deps = [
-      self.by-version."assert-plus"."0.1.2"
-    ];
+    deps = {
+      "assert-plus-0.1.2" = self.by-version."assert-plus"."0.1.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "dashdash" ];
@@ -4146,7 +4370,8 @@
   by-spec."dashdash"."1.5.0" =
     self.by-version."dashdash"."1.5.0";
   by-version."dashdash"."1.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dashdash-1.5.0";
+    name = "dashdash-1.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/dashdash/-/dashdash-1.5.0.tgz";
@@ -4156,9 +4381,9 @@
     ];
     buildInputs =
       (self.nativeDeps."dashdash" or []);
-    deps = [
-      self.by-version."assert-plus"."0.1.2"
-    ];
+    deps = {
+      "assert-plus-0.1.2" = self.by-version."assert-plus"."0.1.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "dashdash" ];
@@ -4166,7 +4391,8 @@
   by-spec."date-now"."^0.1.4" =
     self.by-version."date-now"."0.1.4";
   by-version."date-now"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-date-now-0.1.4";
+    name = "date-now-0.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz";
@@ -4176,8 +4402,8 @@
     ];
     buildInputs =
       (self.nativeDeps."date-now" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "date-now" ];
@@ -4185,7 +4411,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dateformat-1.0.2-1.2.3";
+    name = "dateformat-1.0.2-1.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz";
@@ -4195,16 +4422,17 @@
     ];
     buildInputs =
       (self.nativeDeps."dateformat" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "dateformat" ];
   };
-  by-spec."dateformat"."~1.0.6" =
+  by-spec."dateformat"."^1.0.7-1.2.3" =
     self.by-version."dateformat"."1.0.8-1.2.3";
   by-version."dateformat"."1.0.8-1.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dateformat-1.0.8-1.2.3";
+    name = "dateformat-1.0.8-1.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/dateformat/-/dateformat-1.0.8-1.2.3.tgz";
@@ -4214,28 +4442,31 @@
     ];
     buildInputs =
       (self.nativeDeps."dateformat" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "dateformat" ];
   };
+  by-spec."dateformat"."~1.0.6" =
+    self.by-version."dateformat"."1.0.8-1.2.3";
   by-spec."debug"."*" =
-    self.by-version."debug"."1.0.4";
-  by-version."debug"."1.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debug-1.0.4";
+    self.by-version."debug"."2.0.0";
+  by-version."debug"."2.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "debug-2.0.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz";
-        name = "debug-1.0.4.tgz";
-        sha1 = "5b9c256bd54b6ec02283176fa8a0ede6d154cbf8";
+        url = "http://registry.npmjs.org/debug/-/debug-2.0.0.tgz";
+        name = "debug-2.0.0.tgz";
+        sha1 = "89bd9df6732b51256bc6705342bba02ed12131ef";
       })
     ];
     buildInputs =
       (self.nativeDeps."debug" or []);
-    deps = [
-      self.by-version."ms"."0.6.2"
-    ];
+    deps = {
+      "ms-0.6.2" = self.by-version."ms"."0.6.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "debug" ];
@@ -4243,7 +4474,8 @@
   by-spec."debug"."0.5.0" =
     self.by-version."debug"."0.5.0";
   by-version."debug"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debug-0.5.0";
+    name = "debug-0.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/debug/-/debug-0.5.0.tgz";
@@ -4253,8 +4485,8 @@
     ];
     buildInputs =
       (self.nativeDeps."debug" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "debug" ];
@@ -4262,7 +4494,8 @@
   by-spec."debug"."0.7.4" =
     self.by-version."debug"."0.7.4";
   by-version."debug"."0.7.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debug-0.7.4";
+    name = "debug-0.7.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/debug/-/debug-0.7.4.tgz";
@@ -4272,58 +4505,38 @@
     ];
     buildInputs =
       (self.nativeDeps."debug" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "debug" ];
   };
-  by-spec."debug"."1.0.2" =
-    self.by-version."debug"."1.0.2";
-  by-version."debug"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debug-1.0.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/debug/-/debug-1.0.2.tgz";
-        name = "debug-1.0.2.tgz";
-        sha1 = "3849591c10cce648476c3c7c2e2e3416db5963c4";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."debug" or []);
-    deps = [
-      self.by-version."ms"."0.6.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "debug" ];
-  };
-  by-spec."debug"."1.0.3" =
-    self.by-version."debug"."1.0.3";
-  by-version."debug"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debug-1.0.3";
+  by-spec."debug"."1.0.4" =
+    self.by-version."debug"."1.0.4";
+  by-version."debug"."1.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "debug-1.0.4";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/debug/-/debug-1.0.3.tgz";
-        name = "debug-1.0.3.tgz";
-        sha1 = "fc8c6b2d6002804b4081c0208e0f6460ba1fa3e4";
+        url = "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz";
+        name = "debug-1.0.4.tgz";
+        sha1 = "5b9c256bd54b6ec02283176fa8a0ede6d154cbf8";
       })
     ];
     buildInputs =
       (self.nativeDeps."debug" or []);
-    deps = [
-      self.by-version."ms"."0.6.2"
-    ];
+    deps = {
+      "ms-0.6.2" = self.by-version."ms"."0.6.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "debug" ];
   };
-  by-spec."debug"."1.0.4" =
-    self.by-version."debug"."1.0.4";
   by-spec."debug".">= 0.7.3 < 1" =
     self.by-version."debug"."0.8.1";
   by-version."debug"."0.8.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debug-0.8.1";
+    name = "debug-0.8.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/debug/-/debug-0.8.1.tgz";
@@ -4333,8 +4546,8 @@
     ];
     buildInputs =
       (self.nativeDeps."debug" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "debug" ];
@@ -4347,12 +4560,33 @@
     self.by-version."debug"."0.8.1";
   by-spec."debug"."~1.0.1" =
     self.by-version."debug"."1.0.4";
-  by-spec."debug"."~1.0.2" =
-    self.by-version."debug"."1.0.4";
+  by-spec."debug"."~2.0.0" =
+    self.by-version."debug"."2.0.0";
+  by-spec."debuglog"."^1.0.1" =
+    self.by-version."debuglog"."1.0.1";
+  by-version."debuglog"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "debuglog-1.0.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz";
+        name = "debuglog-1.0.1.tgz";
+        sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."debuglog" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "debuglog" ];
+  };
   by-spec."deep-eql"."0.1.3" =
     self.by-version."deep-eql"."0.1.3";
   by-version."deep-eql"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-deep-eql-0.1.3";
+    name = "deep-eql-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz";
@@ -4362,9 +4596,9 @@
     ];
     buildInputs =
       (self.nativeDeps."deep-eql" or []);
-    deps = [
-      self.by-version."type-detect"."0.1.1"
-    ];
+    deps = {
+      "type-detect-0.1.1" = self.by-version."type-detect"."0.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "deep-eql" ];
@@ -4372,7 +4606,8 @@
   by-spec."deep-equal"."*" =
     self.by-version."deep-equal"."0.2.1";
   by-version."deep-equal"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-deep-equal-0.2.1";
+    name = "deep-equal-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/deep-equal/-/deep-equal-0.2.1.tgz";
@@ -4382,8 +4617,8 @@
     ];
     buildInputs =
       (self.nativeDeps."deep-equal" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "deep-equal" ];
@@ -4391,7 +4626,8 @@
   by-spec."deep-equal"."0.0.0" =
     self.by-version."deep-equal"."0.0.0";
   by-version."deep-equal"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-deep-equal-0.0.0";
+    name = "deep-equal-0.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/deep-equal/-/deep-equal-0.0.0.tgz";
@@ -4401,8 +4637,8 @@
     ];
     buildInputs =
       (self.nativeDeps."deep-equal" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "deep-equal" ];
@@ -4411,10 +4647,11 @@
     self.by-version."deep-equal"."0.0.0";
   by-spec."deep-equal"."~0.2.1" =
     self.by-version."deep-equal"."0.2.1";
-  by-spec."deep-extend"."~0.2.10" =
+  by-spec."deep-extend"."~0.2.11" =
     self.by-version."deep-extend"."0.2.11";
   by-version."deep-extend"."0.2.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-deep-extend-0.2.11";
+    name = "deep-extend-0.2.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz";
@@ -4424,8 +4661,8 @@
     ];
     buildInputs =
       (self.nativeDeps."deep-extend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "deep-extend" ];
@@ -4435,7 +4672,8 @@
   by-spec."deepmerge"."*" =
     self.by-version."deepmerge"."0.2.7";
   by-version."deepmerge"."0.2.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-deepmerge-0.2.7";
+    name = "deepmerge-0.2.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/deepmerge/-/deepmerge-0.2.7.tgz";
@@ -4445,56 +4683,59 @@
     ];
     buildInputs =
       (self.nativeDeps."deepmerge" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "deepmerge" ];
   };
   "deepmerge" = self.by-version."deepmerge"."0.2.7";
-  by-spec."defined"."~0.0.0" =
-    self.by-version."defined"."0.0.0";
-  by-version."defined"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-defined-0.0.0";
+  by-spec."defaults"."^1.0.0" =
+    self.by-version."defaults"."1.0.0";
+  by-version."defaults"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "defaults-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/defined/-/defined-0.0.0.tgz";
-        name = "defined-0.0.0.tgz";
-        sha1 = "f35eea7d705e933baf13b2f03b3f83d921403b3e";
+        url = "http://registry.npmjs.org/defaults/-/defaults-1.0.0.tgz";
+        name = "defaults-1.0.0.tgz";
+        sha1 = "3ae25f44416c6c01f9809a25fcdd285912d2a6b1";
       })
     ];
     buildInputs =
-      (self.nativeDeps."defined" or []);
-    deps = [
-    ];
+      (self.nativeDeps."defaults" or []);
+    deps = {
+      "clone-0.1.18" = self.by-version."clone"."0.1.18";
+    };
     peerDependencies = [
     ];
-    passthru.names = [ "defined" ];
+    passthru.names = [ "defaults" ];
   };
-  by-spec."deflate-crc32-stream"."~0.1.0" =
-    self.by-version."deflate-crc32-stream"."0.1.1";
-  by-version."deflate-crc32-stream"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-deflate-crc32-stream-0.1.1";
+  by-spec."defined"."~0.0.0" =
+    self.by-version."defined"."0.0.0";
+  by-version."defined"."0.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "defined-0.0.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/deflate-crc32-stream/-/deflate-crc32-stream-0.1.1.tgz";
-        name = "deflate-crc32-stream-0.1.1.tgz";
-        sha1 = "5df9e343174f56e7d6056e8ba1f91e5576c02160";
+        url = "http://registry.npmjs.org/defined/-/defined-0.0.0.tgz";
+        name = "defined-0.0.0.tgz";
+        sha1 = "f35eea7d705e933baf13b2f03b3f83d921403b3e";
       })
     ];
     buildInputs =
-      (self.nativeDeps."deflate-crc32-stream" or []);
-    deps = [
-      self.by-version."buffer-crc32"."0.2.3"
-    ];
+      (self.nativeDeps."defined" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
-    passthru.names = [ "deflate-crc32-stream" ];
+    passthru.names = [ "defined" ];
   };
   by-spec."delayed-stream"."0.0.5" =
     self.by-version."delayed-stream"."0.0.5";
   by-version."delayed-stream"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-delayed-stream-0.0.5";
+    name = "delayed-stream-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
@@ -4504,73 +4745,57 @@
     ];
     buildInputs =
       (self.nativeDeps."delayed-stream" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "delayed-stream" ];
   };
-  by-spec."delegates"."0.0.3" =
-    self.by-version."delegates"."0.0.3";
-  by-version."delegates"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-delegates-0.0.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/delegates/-/delegates-0.0.3.tgz";
-        name = "delegates-0.0.3.tgz";
-        sha1 = "4f25cbf8e1c061967f834e003f3bd18ded4baeea";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."delegates" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "delegates" ];
-  };
-  by-spec."depd"."0.3.0" =
-    self.by-version."depd"."0.3.0";
-  by-version."depd"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-depd-0.3.0";
+  by-spec."depd"."0.4.4" =
+    self.by-version."depd"."0.4.4";
+  by-version."depd"."0.4.4" = lib.makeOverridable self.buildNodePackage {
+    name = "depd-0.4.4";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/depd/-/depd-0.3.0.tgz";
-        name = "depd-0.3.0.tgz";
-        sha1 = "11c9bc28e425325fbd8b38940beff69fa5326883";
+        url = "http://registry.npmjs.org/depd/-/depd-0.4.4.tgz";
+        name = "depd-0.4.4.tgz";
+        sha1 = "07091fae75f97828d89b4a02a2d4778f0e7c0662";
       })
     ];
     buildInputs =
       (self.nativeDeps."depd" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "depd" ];
   };
-  by-spec."depd"."0.4.4" =
-    self.by-version."depd"."0.4.4";
-  by-version."depd"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-depd-0.4.4";
+  by-spec."deprecated"."^0.0.1" =
+    self.by-version."deprecated"."0.0.1";
+  by-version."deprecated"."0.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "deprecated-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/depd/-/depd-0.4.4.tgz";
-        name = "depd-0.4.4.tgz";
-        sha1 = "07091fae75f97828d89b4a02a2d4778f0e7c0662";
+        url = "http://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz";
+        name = "deprecated-0.0.1.tgz";
+        sha1 = "f9c9af5464afa1e7a971458a8bdef2aa94d5bb19";
       })
     ];
     buildInputs =
-      (self.nativeDeps."depd" or []);
-    deps = [
-    ];
+      (self.nativeDeps."deprecated" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
-    passthru.names = [ "depd" ];
+    passthru.names = [ "deprecated" ];
   };
   by-spec."deps-sort"."^1.3.5" =
     self.by-version."deps-sort"."1.3.5";
   by-version."deps-sort"."1.3.5" = lib.makeOverridable self.buildNodePackage {
     name = "deps-sort-1.3.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/deps-sort/-/deps-sort-1.3.5.tgz";
@@ -4580,13 +4805,13 @@
     ];
     buildInputs =
       (self.nativeDeps."deps-sort" or []);
-    deps = [
-      self.by-version."JSONStream"."0.8.4"
-      self.by-version."isarray"."0.0.1"
-      self.by-version."minimist"."0.2.0"
-      self.by-version."shasum"."1.0.0"
-      self.by-version."through2"."0.5.1"
-    ];
+    deps = {
+      "JSONStream-0.8.4" = self.by-version."JSONStream"."0.8.4";
+      "isarray-0.0.1" = self.by-version."isarray"."0.0.1";
+      "minimist-0.2.0" = self.by-version."minimist"."0.2.0";
+      "shasum-1.0.0" = self.by-version."shasum"."1.0.0";
+      "through2-0.5.1" = self.by-version."through2"."0.5.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "deps-sort" ];
@@ -4594,7 +4819,8 @@
   by-spec."destroy"."1.0.3" =
     self.by-version."destroy"."1.0.3";
   by-version."destroy"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-destroy-1.0.3";
+    name = "destroy-1.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz";
@@ -4604,8 +4830,8 @@
     ];
     buildInputs =
       (self.nativeDeps."destroy" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "destroy" ];
@@ -4613,7 +4839,8 @@
   by-spec."detective"."^3.1.0" =
     self.by-version."detective"."3.1.0";
   by-version."detective"."3.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-detective-3.1.0";
+    name = "detective-3.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/detective/-/detective-3.1.0.tgz";
@@ -4623,37 +4850,19 @@
     ];
     buildInputs =
       (self.nativeDeps."detective" or []);
-    deps = [
-      self.by-version."escodegen"."1.1.0"
-      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
-    ];
+    deps = {
+      "escodegen-1.1.0" = self.by-version."escodegen"."1.1.0";
+      "esprima-fb-3001.1.0-dev-harmony-fb" = self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "detective" ];
   };
-  by-spec."dethroy"."~1.0.0" =
-    self.by-version."dethroy"."1.0.2";
-  by-version."dethroy"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dethroy-1.0.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/dethroy/-/dethroy-1.0.2.tgz";
-        name = "dethroy-1.0.2.tgz";
-        sha1 = "c82003317693dcbcda3f752b0182e3bf16dd4421";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."dethroy" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "dethroy" ];
-  };
   by-spec."dezalgo"."^1.0.0" =
     self.by-version."dezalgo"."1.0.0";
   by-version."dezalgo"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dezalgo-1.0.0";
+    name = "dezalgo-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/dezalgo/-/dezalgo-1.0.0.tgz";
@@ -4663,9 +4872,9 @@
     ];
     buildInputs =
       (self.nativeDeps."dezalgo" or []);
-    deps = [
-      self.by-version."asap"."1.0.0"
-    ];
+    deps = {
+      "asap-1.0.0" = self.by-version."asap"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "dezalgo" ];
@@ -4673,7 +4882,8 @@
   by-spec."di"."~0.0.1" =
     self.by-version."di"."0.0.1";
   by-version."di"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-di-0.0.1";
+    name = "di-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/di/-/di-0.0.1.tgz";
@@ -4683,8 +4893,8 @@
     ];
     buildInputs =
       (self.nativeDeps."di" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "di" ];
@@ -4692,7 +4902,8 @@
   by-spec."diff"."1.0.7" =
     self.by-version."diff"."1.0.7";
   by-version."diff"."1.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-diff-1.0.7";
+    name = "diff-1.0.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/diff/-/diff-1.0.7.tgz";
@@ -4702,8 +4913,8 @@
     ];
     buildInputs =
       (self.nativeDeps."diff" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "diff" ];
@@ -4711,7 +4922,8 @@
   by-spec."diff"."~1.0.3" =
     self.by-version."diff"."1.0.8";
   by-version."diff"."1.0.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-diff-1.0.8";
+    name = "diff-1.0.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/diff/-/diff-1.0.8.tgz";
@@ -4721,8 +4933,8 @@
     ];
     buildInputs =
       (self.nativeDeps."diff" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "diff" ];
@@ -4732,7 +4944,8 @@
   by-spec."director"."1.1.10" =
     self.by-version."director"."1.1.10";
   by-version."director"."1.1.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-director-1.1.10";
+    name = "director-1.1.10";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/director/-/director-1.1.10.tgz";
@@ -4742,8 +4955,8 @@
     ];
     buildInputs =
       (self.nativeDeps."director" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "director" ];
@@ -4751,7 +4964,8 @@
   by-spec."dkim-signer"."~0.1.1" =
     self.by-version."dkim-signer"."0.1.2";
   by-version."dkim-signer"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dkim-signer-0.1.2";
+    name = "dkim-signer-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/dkim-signer/-/dkim-signer-0.1.2.tgz";
@@ -4761,10 +4975,10 @@
     ];
     buildInputs =
       (self.nativeDeps."dkim-signer" or []);
-    deps = [
-      self.by-version."punycode"."1.2.4"
-      self.by-version."mimelib"."0.2.17"
-    ];
+    deps = {
+      "punycode-1.2.4" = self.by-version."punycode"."1.2.4";
+      "mimelib-0.2.17" = self.by-version."mimelib"."0.2.17";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "dkim-signer" ];
@@ -4772,7 +4986,8 @@
   by-spec."domain-browser"."~1.1.0" =
     self.by-version."domain-browser"."1.1.2";
   by-version."domain-browser"."1.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domain-browser-1.1.2";
+    name = "domain-browser-1.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/domain-browser/-/domain-browser-1.1.2.tgz";
@@ -4782,8 +4997,8 @@
     ];
     buildInputs =
       (self.nativeDeps."domain-browser" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "domain-browser" ];
@@ -4791,7 +5006,8 @@
   by-spec."domelementtype"."1" =
     self.by-version."domelementtype"."1.1.1";
   by-version."domelementtype"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domelementtype-1.1.1";
+    name = "domelementtype-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.1.tgz";
@@ -4801,8 +5017,8 @@
     ];
     buildInputs =
       (self.nativeDeps."domelementtype" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "domelementtype" ];
@@ -4810,7 +5026,8 @@
   by-spec."domhandler"."2.2" =
     self.by-version."domhandler"."2.2.0";
   by-version."domhandler"."2.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domhandler-2.2.0";
+    name = "domhandler-2.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/domhandler/-/domhandler-2.2.0.tgz";
@@ -4820,9 +5037,9 @@
     ];
     buildInputs =
       (self.nativeDeps."domhandler" or []);
-    deps = [
-      self.by-version."domelementtype"."1.1.1"
-    ];
+    deps = {
+      "domelementtype-1.1.1" = self.by-version."domelementtype"."1.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "domhandler" ];
@@ -4830,7 +5047,8 @@
   by-spec."domutils"."1.5" =
     self.by-version."domutils"."1.5.0";
   by-version."domutils"."1.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domutils-1.5.0";
+    name = "domutils-1.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/domutils/-/domutils-1.5.0.tgz";
@@ -4840,9 +5058,9 @@
     ];
     buildInputs =
       (self.nativeDeps."domutils" or []);
-    deps = [
-      self.by-version."domelementtype"."1.1.1"
-    ];
+    deps = {
+      "domelementtype-1.1.1" = self.by-version."domelementtype"."1.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "domutils" ];
@@ -4851,6 +5069,7 @@
     self.by-version."dox"."0.4.6";
   by-version."dox"."0.4.6" = lib.makeOverridable self.buildNodePackage {
     name = "dox-0.4.6";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/dox/-/dox-0.4.6.tgz";
@@ -4860,10 +5079,10 @@
     ];
     buildInputs =
       (self.nativeDeps."dox" or []);
-    deps = [
-      self.by-version."marked"."0.3.2"
-      self.by-version."commander"."0.6.1"
-    ];
+    deps = {
+      "marked-0.3.2" = self.by-version."marked"."0.3.2";
+      "commander-0.6.1" = self.by-version."commander"."0.6.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "dox" ];
@@ -4871,7 +5090,8 @@
   by-spec."dtrace-provider"."0.2.8" =
     self.by-version."dtrace-provider"."0.2.8";
   by-version."dtrace-provider"."0.2.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dtrace-provider-0.2.8";
+    name = "dtrace-provider-0.2.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.2.8.tgz";
@@ -4881,8 +5101,8 @@
     ];
     buildInputs =
       (self.nativeDeps."dtrace-provider" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "dtrace-provider" ];
@@ -4890,7 +5110,8 @@
   by-spec."duplexer"."~0.1.1" =
     self.by-version."duplexer"."0.1.1";
   by-version."duplexer"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-duplexer-0.1.1";
+    name = "duplexer-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz";
@@ -4900,8 +5121,8 @@
     ];
     buildInputs =
       (self.nativeDeps."duplexer" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "duplexer" ];
@@ -4909,7 +5130,8 @@
   by-spec."duplexer2"."0.0.2" =
     self.by-version."duplexer2"."0.0.2";
   by-version."duplexer2"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-duplexer2-0.0.2";
+    name = "duplexer2-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz";
@@ -4919,9 +5141,9 @@
     ];
     buildInputs =
       (self.nativeDeps."duplexer2" or []);
-    deps = [
-      self.by-version."readable-stream"."1.1.13"
-    ];
+    deps = {
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "duplexer2" ];
@@ -4931,7 +5153,8 @@
   by-spec."editor"."~0.1.0" =
     self.by-version."editor"."0.1.0";
   by-version."editor"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-editor-0.1.0";
+    name = "editor-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/editor/-/editor-0.1.0.tgz";
@@ -4941,35 +5164,17 @@
     ];
     buildInputs =
       (self.nativeDeps."editor" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "editor" ];
   };
-  by-spec."ee-first"."1.0.3" =
-    self.by-version."ee-first"."1.0.3";
-  by-version."ee-first"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ee-first-1.0.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/ee-first/-/ee-first-1.0.3.tgz";
-        name = "ee-first-1.0.3.tgz";
-        sha1 = "6c98c4089abecb5a7b85c1ac449aa603d3b3dabe";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."ee-first" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "ee-first" ];
-  };
   by-spec."ee-first"."1.0.5" =
     self.by-version."ee-first"."1.0.5";
   by-version."ee-first"."1.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ee-first-1.0.5";
+    name = "ee-first-1.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz";
@@ -4979,8 +5184,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ee-first" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ee-first" ];
@@ -4988,7 +5193,8 @@
   by-spec."ejs"."0.8.3" =
     self.by-version."ejs"."0.8.3";
   by-version."ejs"."0.8.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ejs-0.8.3";
+    name = "ejs-0.8.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ejs/-/ejs-0.8.3.tgz";
@@ -4998,8 +5204,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ejs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ejs" ];
@@ -5007,7 +5213,8 @@
   by-spec."emitter-component"."0.0.6" =
     self.by-version."emitter-component"."0.0.6";
   by-version."emitter-component"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-emitter-component-0.0.6";
+    name = "emitter-component-0.0.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/emitter-component/-/emitter-component-0.0.6.tgz";
@@ -5017,8 +5224,8 @@
     ];
     buildInputs =
       (self.nativeDeps."emitter-component" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "emitter-component" ];
@@ -5026,7 +5233,8 @@
   by-spec."encoding"."~0.1.7" =
     self.by-version."encoding"."0.1.8";
   by-version."encoding"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-encoding-0.1.8";
+    name = "encoding-0.1.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/encoding/-/encoding-0.1.8.tgz";
@@ -5036,29 +5244,51 @@
     ];
     buildInputs =
       (self.nativeDeps."encoding" or []);
-    deps = [
-      self.by-version."iconv-lite"."0.4.4"
-    ];
+    deps = {
+      "iconv-lite-0.4.4" = self.by-version."iconv-lite"."0.4.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "encoding" ];
   };
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-end-of-stream-1.0.0";
+    self.by-version."end-of-stream"."1.1.0";
+  by-version."end-of-stream"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "end-of-stream-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz";
-        name = "end-of-stream-1.0.0.tgz";
-        sha1 = "d4596e702734a93e40e9af864319eabd99ff2f0e";
+        url = "http://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz";
+        name = "end-of-stream-1.1.0.tgz";
+        sha1 = "e9353258baa9108965efc41cb0ef8ade2f3cfb07";
       })
     ];
     buildInputs =
       (self.nativeDeps."end-of-stream" or []);
-    deps = [
-      self.by-version."once"."1.3.0"
+    deps = {
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "end-of-stream" ];
+  };
+  by-spec."end-of-stream"."~0.1.5" =
+    self.by-version."end-of-stream"."0.1.5";
+  by-version."end-of-stream"."0.1.5" = lib.makeOverridable self.buildNodePackage {
+    name = "end-of-stream-0.1.5";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz";
+        name = "end-of-stream-0.1.5.tgz";
+        sha1 = "8e177206c3c80837d85632e8b9359dfe8b2f6eaf";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."end-of-stream" or []);
+    deps = {
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "end-of-stream" ];
@@ -5066,7 +5296,8 @@
   by-spec."entities"."1.0" =
     self.by-version."entities"."1.0.0";
   by-version."entities"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-entities-1.0.0";
+    name = "entities-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/entities/-/entities-1.0.0.tgz";
@@ -5076,8 +5307,8 @@
     ];
     buildInputs =
       (self.nativeDeps."entities" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "entities" ];
@@ -5086,6 +5317,7 @@
     self.by-version."envify"."2.0.1";
   by-version."envify"."2.0.1" = lib.makeOverridable self.buildNodePackage {
     name = "envify-2.0.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/envify/-/envify-2.0.1.tgz";
@@ -5095,52 +5327,34 @@
     ];
     buildInputs =
       (self.nativeDeps."envify" or []);
-    deps = [
-      self.by-version."xtend"."2.1.2"
-      self.by-version."through"."2.3.4"
-      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
-      self.by-version."jstransform"."3.0.0"
-    ];
+    deps = {
+      "xtend-2.1.2" = self.by-version."xtend"."2.1.2";
+      "through-2.3.4" = self.by-version."through"."2.3.4";
+      "esprima-fb-3001.1.0-dev-harmony-fb" = self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
+      "jstransform-3.0.0" = self.by-version."jstransform"."3.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "envify" ];
   };
-  by-spec."error-inject"."~1.0.0" =
-    self.by-version."error-inject"."1.0.0";
-  by-version."error-inject"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-error-inject-1.0.0";
+  by-spec."errorhandler"."~1.2.0" =
+    self.by-version."errorhandler"."1.2.0";
+  by-version."errorhandler"."1.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "errorhandler-1.2.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz";
-        name = "error-inject-1.0.0.tgz";
-        sha1 = "e2b3d91b54aed672f309d950d154850fa11d4f37";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."error-inject" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "error-inject" ];
-  };
-  by-spec."errorhandler"."1.1.1" =
-    self.by-version."errorhandler"."1.1.1";
-  by-version."errorhandler"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-errorhandler-1.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/errorhandler/-/errorhandler-1.1.1.tgz";
-        name = "errorhandler-1.1.1.tgz";
-        sha1 = "18defd436d8ca2efe0a2d886c5c4d6ee6d76d691";
+        url = "http://registry.npmjs.org/errorhandler/-/errorhandler-1.2.0.tgz";
+        name = "errorhandler-1.2.0.tgz";
+        sha1 = "2f89db72c150580c65e8dd5180504f5b8a398bd9";
       })
     ];
     buildInputs =
       (self.nativeDeps."errorhandler" or []);
-    deps = [
-      self.by-version."accepts"."1.0.7"
-      self.by-version."escape-html"."1.0.1"
-    ];
+    deps = {
+      "accepts-1.1.0" = self.by-version."accepts"."1.1.0";
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "errorhandler" ];
@@ -5148,7 +5362,8 @@
   by-spec."escape-html"."*" =
     self.by-version."escape-html"."1.0.1";
   by-version."escape-html"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-escape-html-1.0.1";
+    name = "escape-html-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz";
@@ -5158,8 +5373,8 @@
     ];
     buildInputs =
       (self.nativeDeps."escape-html" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "escape-html" ];
@@ -5167,12 +5382,11 @@
   "escape-html" = self.by-version."escape-html"."1.0.1";
   by-spec."escape-html"."1.0.1" =
     self.by-version."escape-html"."1.0.1";
-  by-spec."escape-html"."~1.0.1" =
-    self.by-version."escape-html"."1.0.1";
   by-spec."escape-string-regexp"."^1.0.0" =
     self.by-version."escape-string-regexp"."1.0.1";
   by-version."escape-string-regexp"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-escape-string-regexp-1.0.1";
+    name = "escape-string-regexp-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.1.tgz";
@@ -5182,8 +5396,8 @@
     ];
     buildInputs =
       (self.nativeDeps."escape-string-regexp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "escape-string-regexp" ];
@@ -5192,6 +5406,7 @@
     self.by-version."escodegen"."1.3.3";
   by-version."escodegen"."1.3.3" = lib.makeOverridable self.buildNodePackage {
     name = "escodegen-1.3.3";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz";
@@ -5201,12 +5416,12 @@
     ];
     buildInputs =
       (self.nativeDeps."escodegen" or []);
-    deps = [
-      self.by-version."esutils"."1.0.0"
-      self.by-version."estraverse"."1.5.1"
-      self.by-version."esprima"."1.1.1"
-      self.by-version."source-map"."0.1.38"
-    ];
+    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";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "escodegen" ];
@@ -5215,6 +5430,7 @@
     self.by-version."escodegen"."0.0.28";
   by-version."escodegen"."0.0.28" = lib.makeOverridable self.buildNodePackage {
     name = "escodegen-0.0.28";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz";
@@ -5224,11 +5440,11 @@
     ];
     buildInputs =
       (self.nativeDeps."escodegen" or []);
-    deps = [
-      self.by-version."esprima"."1.0.4"
-      self.by-version."estraverse"."1.3.2"
-      self.by-version."source-map"."0.1.38"
-    ];
+    deps = {
+      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
+      "estraverse-1.3.2" = self.by-version."estraverse"."1.3.2";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "escodegen" ];
@@ -5239,6 +5455,7 @@
     self.by-version."escodegen"."1.1.0";
   by-version."escodegen"."1.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "escodegen-1.1.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/escodegen/-/escodegen-1.1.0.tgz";
@@ -5248,12 +5465,12 @@
     ];
     buildInputs =
       (self.nativeDeps."escodegen" or []);
-    deps = [
-      self.by-version."esprima"."1.0.4"
-      self.by-version."estraverse"."1.5.1"
-      self.by-version."esutils"."1.0.0"
-      self.by-version."source-map"."0.1.38"
-    ];
+    deps = {
+      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
+      "estraverse-1.5.1" = self.by-version."estraverse"."1.5.1";
+      "esutils-1.0.0" = self.by-version."esutils"."1.0.0";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "escodegen" ];
@@ -5261,7 +5478,8 @@
   by-spec."escope"."~ 1.0.0" =
     self.by-version."escope"."1.0.1";
   by-version."escope"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-escope-1.0.1";
+    name = "escope-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/escope/-/escope-1.0.1.tgz";
@@ -5271,9 +5489,9 @@
     ];
     buildInputs =
       (self.nativeDeps."escope" or []);
-    deps = [
-      self.by-version."estraverse"."1.5.1"
-    ];
+    deps = {
+      "estraverse-1.5.1" = self.by-version."estraverse"."1.5.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "escope" ];
@@ -5282,6 +5500,7 @@
     self.by-version."esmangle"."0.0.17";
   by-version."esmangle"."0.0.17" = lib.makeOverridable self.buildNodePackage {
     name = "esmangle-0.0.17";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/esmangle/-/esmangle-0.0.17.tgz";
@@ -5291,15 +5510,15 @@
     ];
     buildInputs =
       (self.nativeDeps."esmangle" or []);
-    deps = [
-      self.by-version."esprima"."1.0.4"
-      self.by-version."escope"."1.0.1"
-      self.by-version."escodegen"."0.0.28"
-      self.by-version."estraverse"."1.3.2"
-      self.by-version."source-map"."0.1.38"
-      self.by-version."esshorten"."0.0.2"
-      self.by-version."optimist"."0.6.1"
-    ];
+    deps = {
+      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
+      "escope-1.0.1" = self.by-version."escope"."1.0.1";
+      "escodegen-0.0.28" = self.by-version."escodegen"."0.0.28";
+      "estraverse-1.3.2" = self.by-version."estraverse"."1.3.2";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+      "esshorten-0.0.2" = self.by-version."esshorten"."0.0.2";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "esmangle" ];
@@ -5308,6 +5527,7 @@
     self.by-version."esprima"."1.2.2";
   by-version."esprima"."1.2.2" = lib.makeOverridable self.buildNodePackage {
     name = "esprima-1.2.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz";
@@ -5317,8 +5537,8 @@
     ];
     buildInputs =
       (self.nativeDeps."esprima" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "esprima" ];
@@ -5327,6 +5547,7 @@
     self.by-version."esprima"."1.0.4";
   by-version."esprima"."1.0.4" = lib.makeOverridable self.buildNodePackage {
     name = "esprima-1.0.4";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz";
@@ -5336,8 +5557,8 @@
     ];
     buildInputs =
       (self.nativeDeps."esprima" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "esprima" ];
@@ -5350,6 +5571,7 @@
     self.by-version."esprima"."1.1.1";
   by-version."esprima"."1.1.1" = lib.makeOverridable self.buildNodePackage {
     name = "esprima-1.1.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz";
@@ -5359,8 +5581,8 @@
     ];
     buildInputs =
       (self.nativeDeps."esprima" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "esprima" ];
@@ -5369,6 +5591,7 @@
     self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
   by-version."esprima-fb"."3001.1.0-dev-harmony-fb" = lib.makeOverridable self.buildNodePackage {
     name = "esprima-fb-3001.1.0-dev-harmony-fb";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz";
@@ -5378,8 +5601,8 @@
     ];
     buildInputs =
       (self.nativeDeps."esprima-fb" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "esprima-fb" ];
@@ -5389,7 +5612,8 @@
   by-spec."esshorten"."~ 0.0.2" =
     self.by-version."esshorten"."0.0.2";
   by-version."esshorten"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-esshorten-0.0.2";
+    name = "esshorten-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/esshorten/-/esshorten-0.0.2.tgz";
@@ -5399,10 +5623,10 @@
     ];
     buildInputs =
       (self.nativeDeps."esshorten" or []);
-    deps = [
-      self.by-version."escope"."1.0.1"
-      self.by-version."estraverse"."1.2.0"
-    ];
+    deps = {
+      "escope-1.0.1" = self.by-version."escope"."1.0.1";
+      "estraverse-1.2.0" = self.by-version."estraverse"."1.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "esshorten" ];
@@ -5410,7 +5634,8 @@
   by-spec."estraverse".">= 0.0.2" =
     self.by-version."estraverse"."1.5.1";
   by-version."estraverse"."1.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-estraverse-1.5.1";
+    name = "estraverse-1.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz";
@@ -5420,8 +5645,8 @@
     ];
     buildInputs =
       (self.nativeDeps."estraverse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "estraverse" ];
@@ -5429,7 +5654,8 @@
   by-spec."estraverse"."~ 1.2.0" =
     self.by-version."estraverse"."1.2.0";
   by-version."estraverse"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-estraverse-1.2.0";
+    name = "estraverse-1.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/estraverse/-/estraverse-1.2.0.tgz";
@@ -5439,8 +5665,8 @@
     ];
     buildInputs =
       (self.nativeDeps."estraverse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "estraverse" ];
@@ -5448,7 +5674,8 @@
   by-spec."estraverse"."~ 1.3.2" =
     self.by-version."estraverse"."1.3.2";
   by-version."estraverse"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-estraverse-1.3.2";
+    name = "estraverse-1.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz";
@@ -5458,8 +5685,8 @@
     ];
     buildInputs =
       (self.nativeDeps."estraverse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "estraverse" ];
@@ -5471,7 +5698,8 @@
   by-spec."esutils"."~1.0.0" =
     self.by-version."esutils"."1.0.0";
   by-version."esutils"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-esutils-1.0.0";
+    name = "esutils-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz";
@@ -5481,16 +5709,38 @@
     ];
     buildInputs =
       (self.nativeDeps."esutils" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "esutils" ];
   };
+  by-spec."etag"."~1.3.0" =
+    self.by-version."etag"."1.3.0";
+  by-version."etag"."1.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "etag-1.3.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/etag/-/etag-1.3.0.tgz";
+        name = "etag-1.3.0.tgz";
+        sha1 = "c837debfbfe0baf7eb8e2f0bbb3d1d9cc3229697";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."etag" or []);
+    deps = {
+      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "etag" ];
+  };
   by-spec."event-stream"."~0.5" =
     self.by-version."event-stream"."0.5.3";
   by-version."event-stream"."0.5.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-event-stream-0.5.3";
+    name = "event-stream-0.5.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz";
@@ -5500,9 +5750,9 @@
     ];
     buildInputs =
       (self.nativeDeps."event-stream" or []);
-    deps = [
-      self.by-version."optimist"."0.2.8"
-    ];
+    deps = {
+      "optimist-0.2.8" = self.by-version."optimist"."0.2.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "event-stream" ];
@@ -5510,7 +5760,8 @@
   by-spec."eventemitter2"."0.4.12" =
     self.by-version."eventemitter2"."0.4.12";
   by-version."eventemitter2"."0.4.12" = lib.makeOverridable self.buildNodePackage {
-    name = "node-eventemitter2-0.4.12";
+    name = "eventemitter2-0.4.12";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.12.tgz";
@@ -5520,16 +5771,17 @@
     ];
     buildInputs =
       (self.nativeDeps."eventemitter2" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "eventemitter2" ];
   };
-  by-spec."eventemitter2"."~0.4.11" =
+  by-spec."eventemitter2"."0.4.14" =
     self.by-version."eventemitter2"."0.4.14";
   by-version."eventemitter2"."0.4.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-eventemitter2-0.4.14";
+    name = "eventemitter2-0.4.14";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz";
@@ -5539,48 +5791,52 @@
     ];
     buildInputs =
       (self.nativeDeps."eventemitter2" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "eventemitter2" ];
   };
+  by-spec."eventemitter2"."~0.4.11" =
+    self.by-version."eventemitter2"."0.4.14";
   by-spec."eventemitter2"."~0.4.13" =
     self.by-version."eventemitter2"."0.4.14";
   by-spec."eventemitter3"."*" =
-    self.by-version."eventemitter3"."0.1.4";
-  by-version."eventemitter3"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-eventemitter3-0.1.4";
+    self.by-version."eventemitter3"."0.1.5";
+  by-version."eventemitter3"."0.1.5" = lib.makeOverridable self.buildNodePackage {
+    name = "eventemitter3-0.1.5";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/eventemitter3/-/eventemitter3-0.1.4.tgz";
-        name = "eventemitter3-0.1.4.tgz";
-        sha1 = "da2be74b7a1a4760272e1390f975503be5cb7e24";
+        url = "http://registry.npmjs.org/eventemitter3/-/eventemitter3-0.1.5.tgz";
+        name = "eventemitter3-0.1.5.tgz";
+        sha1 = "fbb0655172b87911ba782bb7175409c801e5059f";
       })
     ];
     buildInputs =
       (self.nativeDeps."eventemitter3" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "eventemitter3" ];
   };
   by-spec."events"."~1.0.0" =
-    self.by-version."events"."1.0.1";
-  by-version."events"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-events-1.0.1";
+    self.by-version."events"."1.0.2";
+  by-version."events"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "events-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/events/-/events-1.0.1.tgz";
-        name = "events-1.0.1.tgz";
-        sha1 = "386f6471cbb609e7925e7bfe7468634b9e069ac2";
+        url = "http://registry.npmjs.org/events/-/events-1.0.2.tgz";
+        name = "events-1.0.2.tgz";
+        sha1 = "75849dcfe93d10fb057c30055afdbd51d06a8e24";
       })
     ];
     buildInputs =
       (self.nativeDeps."events" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "events" ];
@@ -5588,7 +5844,8 @@
   by-spec."events.node".">= 0.4.0" =
     self.by-version."events.node"."0.4.9";
   by-version."events.node"."0.4.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-events.node-0.4.9";
+    name = "events.node-0.4.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/events.node/-/events.node-0.4.9.tgz";
@@ -5598,8 +5855,8 @@
     ];
     buildInputs =
       (self.nativeDeps."events.node" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "events.node" ];
@@ -5607,7 +5864,8 @@
   by-spec."everyauth"."0.4.5" =
     self.by-version."everyauth"."0.4.5";
   by-version."everyauth"."0.4.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-everyauth-0.4.5";
+    name = "everyauth-0.4.5";
+    bin = false;
     src = [
       (self.patchSource fetchurl {
         url = "http://registry.npmjs.org/everyauth/-/everyauth-0.4.5.tgz";
@@ -5617,17 +5875,17 @@
     ];
     buildInputs =
       (self.nativeDeps."everyauth" or []);
-    deps = [
-      self.by-version."oauth"."0.9.11"
-      self.by-version."request"."2.9.203"
-      self.by-version."connect"."2.3.9"
-      self.by-version."openid"."0.5.9"
-      self.by-version."xml2js"."0.4.4"
-      self.by-version."node-swt"."0.1.1"
-      self.by-version."node-wsfederation"."0.1.1"
-      self.by-version."debug"."0.5.0"
-      self.by-version."express"."3.16.7"
-    ];
+    deps = {
+      "oauth-0.9.11" = self.by-version."oauth"."0.9.11";
+      "request-2.9.203" = self.by-version."request"."2.9.203";
+      "connect-2.3.9" = self.by-version."connect"."2.3.9";
+      "openid-0.5.9" = self.by-version."openid"."0.5.9";
+      "xml2js-0.4.4" = self.by-version."xml2js"."0.4.4";
+      "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.17.1" = self.by-version."express"."3.17.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "everyauth" ];
@@ -5635,7 +5893,8 @@
   by-spec."exit"."0.1.2" =
     self.by-version."exit"."0.1.2";
   by-version."exit"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-exit-0.1.2";
+    name = "exit-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/exit/-/exit-0.1.2.tgz";
@@ -5645,8 +5904,8 @@
     ];
     buildInputs =
       (self.nativeDeps."exit" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "exit" ];
@@ -5656,51 +5915,55 @@
   by-spec."exit"."~0.1.1" =
     self.by-version."exit"."0.1.2";
   by-spec."express"."*" =
-    self.by-version."express"."4.8.5";
-  by-version."express"."4.8.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-4.8.5";
+    self.by-version."express"."4.9.0";
+  by-version."express"."4.9.0" = lib.makeOverridable self.buildNodePackage {
+    name = "express-4.9.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express/-/express-4.8.5.tgz";
-        name = "express-4.8.5.tgz";
-        sha1 = "59cf7666c29bf7cb8545a1acd43dd81a52cb26d9";
+        url = "http://registry.npmjs.org/express/-/express-4.9.0.tgz";
+        name = "express-4.9.0.tgz";
+        sha1 = "9b2ea4ebce57c7ac710604c74f6c303ab344a7f3";
       })
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
-    deps = [
-      self.by-version."accepts"."1.0.7"
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."debug"."1.0.4"
-      self.by-version."depd"."0.4.4"
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."finalhandler"."0.1.0"
-      self.by-version."media-typer"."0.2.0"
-      self.by-version."methods"."1.1.0"
-      self.by-version."parseurl"."1.3.0"
-      self.by-version."path-to-regexp"."0.1.3"
-      self.by-version."proxy-addr"."1.0.1"
-      self.by-version."qs"."1.2.2"
-      self.by-version."range-parser"."1.0.0"
-      self.by-version."send"."0.8.3"
-      self.by-version."serve-static"."1.5.3"
-      self.by-version."type-is"."1.3.2"
-      self.by-version."vary"."0.1.0"
-      self.by-version."cookie"."0.1.2"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."cookie-signature"."1.0.4"
-      self.by-version."merge-descriptors"."0.0.2"
-      self.by-version."utils-merge"."1.0.0"
-    ];
+    deps = {
+      "accepts-1.1.0" = self.by-version."accepts"."1.1.0";
+      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
+      "cookie-signature-1.0.5" = self.by-version."cookie-signature"."1.0.5";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+      "etag-1.3.0" = self.by-version."etag"."1.3.0";
+      "finalhandler-0.2.0" = self.by-version."finalhandler"."0.2.0";
+      "fresh-0.2.4" = self.by-version."fresh"."0.2.4";
+      "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0";
+      "methods-1.1.0" = self.by-version."methods"."1.1.0";
+      "on-finished-2.1.0" = self.by-version."on-finished"."2.1.0";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+      "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";
+      "qs-2.2.3" = self.by-version."qs"."2.2.3";
+      "range-parser-1.0.2" = self.by-version."range-parser"."1.0.2";
+      "send-0.9.1" = self.by-version."send"."0.9.1";
+      "serve-static-1.6.1" = self.by-version."serve-static"."1.6.1";
+      "type-is-1.5.1" = self.by-version."type-is"."1.5.1";
+      "vary-1.0.0" = self.by-version."vary"."1.0.0";
+      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
+      "merge-descriptors-0.0.2" = self.by-version."merge-descriptors"."0.0.2";
+      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
-  "express" = self.by-version."express"."4.8.5";
+  "express" = self.by-version."express"."4.9.0";
   by-spec."express"."2.5.11" =
     self.by-version."express"."2.5.11";
   by-version."express"."2.5.11" = lib.makeOverridable self.buildNodePackage {
     name = "express-2.5.11";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/express/-/express-2.5.11.tgz";
@@ -5710,12 +5973,12 @@
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
-    deps = [
-      self.by-version."connect"."1.9.2"
-      self.by-version."mime"."1.2.4"
-      self.by-version."qs"."0.4.2"
-      self.by-version."mkdirp"."0.3.0"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
@@ -5724,6 +5987,7 @@
     self.by-version."express"."3.2.0";
   by-version."express"."3.2.0" = lib.makeOverridable self.buildNodePackage {
     name = "express-3.2.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/express/-/express-3.2.0.tgz";
@@ -5733,19 +5997,19 @@
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
-    deps = [
-      self.by-version."connect"."2.7.6"
-      self.by-version."commander"."0.6.1"
-      self.by-version."range-parser"."0.0.4"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."cookie"."0.0.5"
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."fresh"."0.1.0"
-      self.by-version."methods"."0.0.1"
-      self.by-version."send"."0.1.0"
-      self.by-version."cookie-signature"."1.0.1"
-      self.by-version."debug"."1.0.4"
-    ];
+    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.3" = self.by-version."buffer-crc32"."0.2.3";
+      "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.0.0" = self.by-version."debug"."2.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
@@ -5754,6 +6018,7 @@
     self.by-version."express"."3.4.4";
   by-version."express"."3.4.4" = lib.makeOverridable self.buildNodePackage {
     name = "express-3.4.4";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/express/-/express-3.4.4.tgz";
@@ -5763,67 +6028,69 @@
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
-    deps = [
-      self.by-version."connect"."2.11.0"
-      self.by-version."commander"."1.3.2"
-      self.by-version."range-parser"."0.0.4"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."cookie"."0.1.0"
-      self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."fresh"."0.2.0"
-      self.by-version."methods"."0.1.0"
-      self.by-version."send"."0.1.4"
-      self.by-version."cookie-signature"."1.0.1"
-      self.by-version."debug"."1.0.4"
-    ];
+    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.0.0" = self.by-version."debug"."2.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
   by-spec."express"."3.x" =
-    self.by-version."express"."3.16.7";
-  by-version."express"."3.16.7" = lib.makeOverridable self.buildNodePackage {
-    name = "express-3.16.7";
+    self.by-version."express"."3.17.1";
+  by-version."express"."3.17.1" = lib.makeOverridable self.buildNodePackage {
+    name = "express-3.17.1";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express/-/express-3.16.7.tgz";
-        name = "express-3.16.7.tgz";
-        sha1 = "788aab5d66e85060211d6fea08eb2986f2f2631c";
+        url = "http://registry.npmjs.org/express/-/express-3.17.1.tgz";
+        name = "express-3.17.1.tgz";
+        sha1 = "82b357f0bc78733b1ac1070224f89a37dea76a74";
       })
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
-    deps = [
-      self.by-version."basic-auth"."1.0.0"
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."connect"."2.25.7"
-      self.by-version."commander"."1.3.2"
-      self.by-version."debug"."1.0.4"
-      self.by-version."depd"."0.4.4"
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."media-typer"."0.2.0"
-      self.by-version."methods"."1.1.0"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."parseurl"."1.3.0"
-      self.by-version."proxy-addr"."1.0.1"
-      self.by-version."range-parser"."1.0.0"
-      self.by-version."send"."0.8.3"
-      self.by-version."vary"."0.1.0"
-      self.by-version."cookie"."0.1.2"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."cookie-signature"."1.0.4"
-      self.by-version."merge-descriptors"."0.0.2"
-    ];
+    deps = {
+      "basic-auth-1.0.0" = self.by-version."basic-auth"."1.0.0";
+      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
+      "connect-2.26.0" = self.by-version."connect"."2.26.0";
+      "commander-1.3.2" = self.by-version."commander"."1.3.2";
+      "cookie-signature-1.0.5" = self.by-version."cookie-signature"."1.0.5";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+      "fresh-0.2.4" = self.by-version."fresh"."0.2.4";
+      "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0";
+      "methods-1.1.0" = self.by-version."methods"."1.1.0";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+      "proxy-addr-1.0.1" = self.by-version."proxy-addr"."1.0.1";
+      "range-parser-1.0.2" = self.by-version."range-parser"."1.0.2";
+      "send-0.9.1" = self.by-version."send"."0.9.1";
+      "vary-1.0.0" = self.by-version."vary"."1.0.0";
+      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
+      "merge-descriptors-0.0.2" = self.by-version."merge-descriptors"."0.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
   by-spec."express".">=3.0.0" =
-    self.by-version."express"."4.8.5";
+    self.by-version."express"."4.9.0";
   by-spec."express"."~3.1.1" =
     self.by-version."express"."3.1.2";
   by-version."express"."3.1.2" = lib.makeOverridable self.buildNodePackage {
     name = "express-3.1.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/express/-/express-3.1.2.tgz";
@@ -5833,19 +6100,19 @@
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
-    deps = [
-      self.by-version."connect"."2.7.5"
-      self.by-version."commander"."0.6.1"
-      self.by-version."range-parser"."0.0.4"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."cookie"."0.0.5"
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."fresh"."0.1.0"
-      self.by-version."methods"."0.0.1"
-      self.by-version."send"."0.1.0"
-      self.by-version."cookie-signature"."1.0.0"
-      self.by-version."debug"."1.0.4"
-    ];
+    deps = {
+      "connect-2.7.5" = self.by-version."connect"."2.7.5";
+      "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.3" = self.by-version."buffer-crc32"."0.2.3";
+      "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.0" = self.by-version."cookie-signature"."1.0.0";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
@@ -5853,7 +6120,8 @@
   by-spec."express"."~4.0" =
     self.by-version."express"."4.0.0";
   by-version."express"."4.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-4.0.0";
+    name = "express-4.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/express/-/express-4.0.0.tgz";
@@ -5863,63 +6131,67 @@
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
-    deps = [
-      self.by-version."parseurl"."1.0.1"
-      self.by-version."accepts"."1.0.0"
-      self.by-version."type-is"."1.0.0"
-      self.by-version."range-parser"."1.0.0"
-      self.by-version."cookie"."0.1.0"
-      self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."methods"."0.1.0"
-      self.by-version."send"."0.2.0"
-      self.by-version."cookie-signature"."1.0.3"
-      self.by-version."merge-descriptors"."0.0.2"
-      self.by-version."utils-merge"."1.0.0"
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."qs"."0.6.6"
-      self.by-version."serve-static"."1.0.1"
-      self.by-version."path-to-regexp"."0.1.2"
-      self.by-version."debug"."0.8.1"
-    ];
+    deps = {
+      "parseurl-1.0.1" = self.by-version."parseurl"."1.0.1";
+      "accepts-1.0.0" = self.by-version."accepts"."1.0.0";
+      "type-is-1.0.0" = self.by-version."type-is"."1.0.0";
+      "range-parser-1.0.0" = self.by-version."range-parser"."1.0.0";
+      "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.2" = self.by-version."fresh"."0.2.2";
+      "methods-0.1.0" = self.by-version."methods"."0.1.0";
+      "send-0.2.0" = self.by-version."send"."0.2.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";
+      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+      "qs-0.6.6" = self.by-version."qs"."0.6.6";
+      "serve-static-1.0.1" = self.by-version."serve-static"."1.0.1";
+      "path-to-regexp-0.1.2" = self.by-version."path-to-regexp"."0.1.2";
+      "debug-0.8.1" = self.by-version."debug"."0.8.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
-  by-spec."express"."~4.4.5" =
-    self.by-version."express"."4.4.5";
-  by-version."express"."4.4.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-4.4.5";
+  by-spec."express"."~4.8.5" =
+    self.by-version."express"."4.8.8";
+  by-version."express"."4.8.8" = lib.makeOverridable self.buildNodePackage {
+    name = "express-4.8.8";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express/-/express-4.4.5.tgz";
-        name = "express-4.4.5.tgz";
-        sha1 = "5f2f302f277187abd721c3a36e44d86c5e3f03eb";
+        url = "http://registry.npmjs.org/express/-/express-4.8.8.tgz";
+        name = "express-4.8.8.tgz";
+        sha1 = "6aba348ccdfa87608040b12ca0010107a0aac28e";
       })
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
-    deps = [
-      self.by-version."accepts"."1.0.7"
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."debug"."1.0.2"
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."methods"."1.0.1"
-      self.by-version."parseurl"."1.0.1"
-      self.by-version."proxy-addr"."1.0.1"
-      self.by-version."range-parser"."1.0.0"
-      self.by-version."send"."0.4.3"
-      self.by-version."serve-static"."1.2.3"
-      self.by-version."type-is"."1.2.1"
-      self.by-version."vary"."0.1.0"
-      self.by-version."cookie"."0.1.2"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."cookie-signature"."1.0.4"
-      self.by-version."merge-descriptors"."0.0.2"
-      self.by-version."utils-merge"."1.0.0"
-      self.by-version."qs"."0.6.6"
-      self.by-version."path-to-regexp"."0.1.2"
-    ];
+    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.4" = self.by-version."debug"."1.0.4";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+      "finalhandler-0.1.0" = self.by-version."finalhandler"."0.1.0";
+      "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.3.0" = self.by-version."parseurl"."1.3.0";
+      "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";
+      "qs-2.2.2" = self.by-version."qs"."2.2.2";
+      "range-parser-1.0.0" = self.by-version."range-parser"."1.0.0";
+      "send-0.8.5" = self.by-version."send"."0.8.5";
+      "serve-static-1.5.4" = self.by-version."serve-static"."1.5.4";
+      "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";
+      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
@@ -5927,7 +6199,8 @@
   by-spec."express-form"."*" =
     self.by-version."express-form"."0.12.3";
   by-version."express-form"."0.12.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-form-0.12.3";
+    name = "express-form-0.12.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/express-form/-/express-form-0.12.3.tgz";
@@ -5937,13 +6210,13 @@
     ];
     buildInputs =
       (self.nativeDeps."express-form" or []);
-    deps = [
-      self.by-version."validator"."0.4.28"
-      self.by-version."object-additions"."0.5.1"
-      self.by-version."async"."0.7.0"
-    ];
+    deps = {
+      "validator-0.4.28" = self.by-version."validator"."0.4.28";
+      "object-additions-0.5.1" = self.by-version."object-additions"."0.5.1";
+      "async-0.7.0" = self.by-version."async"."0.7.0";
+    };
     peerDependencies = [
-      self.by-version."express"."4.8.5"
+      self.by-version."express"."4.9.0"
     ];
     passthru.names = [ "express-form" ];
   };
@@ -5951,7 +6224,8 @@
   by-spec."express-partials"."0.0.6" =
     self.by-version."express-partials"."0.0.6";
   by-version."express-partials"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-partials-0.0.6";
+    name = "express-partials-0.0.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/express-partials/-/express-partials-0.0.6.tgz";
@@ -5961,63 +6235,66 @@
     ];
     buildInputs =
       (self.nativeDeps."express-partials" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express-partials" ];
   };
-  by-spec."express-session"."~1.6.1" =
-    self.by-version."express-session"."1.6.5";
-  by-version."express-session"."1.6.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-session-1.6.5";
+  by-spec."express-session"."~1.7.6" =
+    self.by-version."express-session"."1.7.6";
+  by-version."express-session"."1.7.6" = lib.makeOverridable self.buildNodePackage {
+    name = "express-session-1.7.6";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express-session/-/express-session-1.6.5.tgz";
-        name = "express-session-1.6.5.tgz";
-        sha1 = "c4ca7740025fe4561f88041157931071f91e957b";
+        url = "http://registry.npmjs.org/express-session/-/express-session-1.7.6.tgz";
+        name = "express-session-1.7.6.tgz";
+        sha1 = "e1c369ba2176f7afdb79e77d65dcd8c7c46e48a5";
       })
     ];
     buildInputs =
       (self.nativeDeps."express-session" or []);
-    deps = [
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."cookie"."0.1.2"
-      self.by-version."cookie-signature"."1.0.4"
-      self.by-version."debug"."1.0.3"
-      self.by-version."depd"."0.3.0"
-      self.by-version."on-headers"."0.0.0"
-      self.by-version."uid-safe"."1.0.1"
-      self.by-version."utils-merge"."1.0.0"
-    ];
+    deps = {
+      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
+      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
+      "cookie-signature-1.0.4" = self.by-version."cookie-signature"."1.0.4";
+      "debug-1.0.4" = self.by-version."debug"."1.0.4";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "on-headers-1.0.0" = self.by-version."on-headers"."1.0.0";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+      "uid-safe-1.0.1" = self.by-version."uid-safe"."1.0.1";
+      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express-session" ];
   };
-  by-spec."express-session"."~1.7.6" =
-    self.by-version."express-session"."1.7.6";
-  by-version."express-session"."1.7.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-session-1.7.6";
+  by-spec."express-session"."~1.8.1" =
+    self.by-version."express-session"."1.8.1";
+  by-version."express-session"."1.8.1" = lib.makeOverridable self.buildNodePackage {
+    name = "express-session-1.8.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express-session/-/express-session-1.7.6.tgz";
-        name = "express-session-1.7.6.tgz";
-        sha1 = "e1c369ba2176f7afdb79e77d65dcd8c7c46e48a5";
+        url = "http://registry.npmjs.org/express-session/-/express-session-1.8.1.tgz";
+        name = "express-session-1.8.1.tgz";
+        sha1 = "04c1fa87c5e369ed737be6ae834a3b1773c5f01b";
       })
     ];
     buildInputs =
       (self.nativeDeps."express-session" or []);
-    deps = [
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."cookie"."0.1.2"
-      self.by-version."cookie-signature"."1.0.4"
-      self.by-version."debug"."1.0.4"
-      self.by-version."depd"."0.4.4"
-      self.by-version."on-headers"."1.0.0"
-      self.by-version."parseurl"."1.3.0"
-      self.by-version."uid-safe"."1.0.1"
-      self.by-version."utils-merge"."1.0.0"
-    ];
+    deps = {
+      "buffer-crc32-0.2.3" = self.by-version."buffer-crc32"."0.2.3";
+      "cookie-0.1.2" = self.by-version."cookie"."0.1.2";
+      "cookie-signature-1.0.5" = self.by-version."cookie-signature"."1.0.5";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "on-headers-1.0.0" = self.by-version."on-headers"."1.0.0";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+      "uid-safe-1.0.1" = self.by-version."uid-safe"."1.0.1";
+      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "express-session" ];
@@ -6025,7 +6302,8 @@
   by-spec."extend"."*" =
     self.by-version."extend"."1.3.0";
   by-version."extend"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-extend-1.3.0";
+    name = "extend-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/extend/-/extend-1.3.0.tgz";
@@ -6035,8 +6313,8 @@
     ];
     buildInputs =
       (self.nativeDeps."extend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "extend" ];
@@ -6045,7 +6323,8 @@
   by-spec."extend"."~1.2.1" =
     self.by-version."extend"."1.2.1";
   by-version."extend"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-extend-1.2.1";
+    name = "extend-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/extend/-/extend-1.2.1.tgz";
@@ -6055,16 +6334,19 @@
     ];
     buildInputs =
       (self.nativeDeps."extend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "extend" ];
   };
+  by-spec."extend"."~1.3.0" =
+    self.by-version."extend"."1.3.0";
   by-spec."extract-opts"."~2.2.0" =
     self.by-version."extract-opts"."2.2.0";
   by-version."extract-opts"."2.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-extract-opts-2.2.0";
+    name = "extract-opts-2.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/extract-opts/-/extract-opts-2.2.0.tgz";
@@ -6074,9 +6356,9 @@
     ];
     buildInputs =
       (self.nativeDeps."extract-opts" or []);
-    deps = [
-      self.by-version."typechecker"."2.0.8"
-    ];
+    deps = {
+      "typechecker-2.0.8" = self.by-version."typechecker"."2.0.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "extract-opts" ];
@@ -6084,7 +6366,8 @@
   by-spec."extsprintf"."1.0.0" =
     self.by-version."extsprintf"."1.0.0";
   by-version."extsprintf"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-extsprintf-1.0.0";
+    name = "extsprintf-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/extsprintf/-/extsprintf-1.0.0.tgz";
@@ -6094,8 +6377,8 @@
     ];
     buildInputs =
       (self.nativeDeps."extsprintf" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "extsprintf" ];
@@ -6103,7 +6386,8 @@
   by-spec."extsprintf"."1.0.2" =
     self.by-version."extsprintf"."1.0.2";
   by-version."extsprintf"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-extsprintf-1.0.2";
+    name = "extsprintf-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz";
@@ -6113,8 +6397,8 @@
     ];
     buildInputs =
       (self.nativeDeps."extsprintf" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "extsprintf" ];
@@ -6122,7 +6406,8 @@
   by-spec."eyes"."0.1.x" =
     self.by-version."eyes"."0.1.8";
   by-version."eyes"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-eyes-0.1.8";
+    name = "eyes-0.1.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz";
@@ -6132,8 +6417,8 @@
     ];
     buildInputs =
       (self.nativeDeps."eyes" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "eyes" ];
@@ -6143,7 +6428,8 @@
   by-spec."faye-websocket"."*" =
     self.by-version."faye-websocket"."0.7.2";
   by-version."faye-websocket"."0.7.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-faye-websocket-0.7.2";
+    name = "faye-websocket-0.7.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.2.tgz";
@@ -6153,9 +6439,9 @@
     ];
     buildInputs =
       (self.nativeDeps."faye-websocket" or []);
-    deps = [
-      self.by-version."websocket-driver"."0.3.5"
-    ];
+    deps = {
+      "websocket-driver-0.3.5" = self.by-version."websocket-driver"."0.3.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "faye-websocket" ];
@@ -6164,23 +6450,24 @@
   by-spec."faye-websocket"."0.7.2" =
     self.by-version."faye-websocket"."0.7.2";
   by-spec."fields"."~0.1.11" =
-    self.by-version."fields"."0.1.12";
-  by-version."fields"."0.1.12" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fields-0.1.12";
+    self.by-version."fields"."0.1.13";
+  by-version."fields"."0.1.13" = lib.makeOverridable self.buildNodePackage {
+    name = "fields-0.1.13";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/fields/-/fields-0.1.12.tgz";
-        name = "fields-0.1.12.tgz";
-        sha1 = "ded2dfe1e0aad3576aed554bfb8f65a7e7404bc1";
+        url = "http://registry.npmjs.org/fields/-/fields-0.1.13.tgz";
+        name = "fields-0.1.13.tgz";
+        sha1 = "59feff36b6b737c67a9ecc4de1b16d24ed4465a5";
       })
     ];
     buildInputs =
       (self.nativeDeps."fields" or []);
-    deps = [
-      self.by-version."colors"."0.6.2"
-      self.by-version."keypress"."0.1.0"
-      self.by-version."sprintf"."0.1.4"
-    ];
+    deps = {
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "keypress-0.1.0" = self.by-version."keypress"."0.1.0";
+      "sprintf-0.1.4" = self.by-version."sprintf"."0.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fields" ];
@@ -6188,7 +6475,8 @@
   by-spec."figures"."^1.0.1" =
     self.by-version."figures"."1.3.2";
   by-version."figures"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-figures-1.3.2";
+    name = "figures-1.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/figures/-/figures-1.3.2.tgz";
@@ -6198,42 +6486,17 @@
     ];
     buildInputs =
       (self.nativeDeps."figures" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "figures" ];
   };
-  by-spec."file-utils"."~0.2.0" =
-    self.by-version."file-utils"."0.2.0";
-  by-version."file-utils"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-file-utils-0.2.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/file-utils/-/file-utils-0.2.0.tgz";
-        name = "file-utils-0.2.0.tgz";
-        sha1 = "0372c89b19bd96fc9a02a180c91fad29e4dbacaa";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."file-utils" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-      self.by-version."iconv-lite"."0.2.11"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."glob"."3.2.11"
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."findup-sync"."0.1.3"
-      self.by-version."isbinaryfile"."2.0.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "file-utils" ];
-  };
   by-spec."fileset"."0.1.x" =
     self.by-version."fileset"."0.1.5";
   by-version."fileset"."0.1.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fileset-0.1.5";
+    name = "fileset-0.1.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fileset/-/fileset-0.1.5.tgz";
@@ -6243,10 +6506,10 @@
     ];
     buildInputs =
       (self.nativeDeps."fileset" or []);
-    deps = [
-      self.by-version."minimatch"."0.4.0"
-      self.by-version."glob"."3.2.11"
-    ];
+    deps = {
+      "minimatch-0.4.0" = self.by-version."minimatch"."0.4.0";
+      "glob-3.2.11" = self.by-version."glob"."3.2.11";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fileset" ];
@@ -6254,7 +6517,8 @@
   by-spec."finalhandler"."0.1.0" =
     self.by-version."finalhandler"."0.1.0";
   by-version."finalhandler"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-finalhandler-0.1.0";
+    name = "finalhandler-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz";
@@ -6264,10 +6528,32 @@
     ];
     buildInputs =
       (self.nativeDeps."finalhandler" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."escape-html"."1.0.1"
+    deps = {
+      "debug-1.0.4" = self.by-version."debug"."1.0.4";
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "finalhandler" ];
+  };
+  by-spec."finalhandler"."0.2.0" =
+    self.by-version."finalhandler"."0.2.0";
+  by-version."finalhandler"."0.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "finalhandler-0.2.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/finalhandler/-/finalhandler-0.2.0.tgz";
+        name = "finalhandler-0.2.0.tgz";
+        sha1 = "794082424b17f6a4b2a0eda39f9db6948ee4be8d";
+      })
     ];
+    buildInputs =
+      (self.nativeDeps."finalhandler" or []);
+    deps = {
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "finalhandler" ];
@@ -6275,7 +6561,8 @@
   by-spec."findit".">=1.1.0 <2.0.0" =
     self.by-version."findit"."1.2.0";
   by-version."findit"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-findit-1.2.0";
+    name = "findit-1.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/findit/-/findit-1.2.0.tgz";
@@ -6285,8 +6572,8 @@
     ];
     buildInputs =
       (self.nativeDeps."findit" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "findit" ];
@@ -6294,7 +6581,8 @@
   by-spec."findup-sync"."~0.1.0" =
     self.by-version."findup-sync"."0.1.3";
   by-version."findup-sync"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-findup-sync-0.1.3";
+    name = "findup-sync-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz";
@@ -6304,53 +6592,32 @@
     ];
     buildInputs =
       (self.nativeDeps."findup-sync" or []);
-    deps = [
-      self.by-version."glob"."3.2.11"
-      self.by-version."lodash"."2.4.1"
-    ];
+    deps = {
+      "glob-3.2.11" = self.by-version."glob"."3.2.11";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "findup-sync" ];
   };
   by-spec."findup-sync"."~0.1.2" =
     self.by-version."findup-sync"."0.1.3";
-  by-spec."finished"."1.2.2" =
-    self.by-version."finished"."1.2.2";
-  by-version."finished"."1.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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" = lib.makeOverridable self.buildNodePackage {
+    name = "first-chunk-stream-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/finished/-/finished-1.2.2.tgz";
-        name = "finished-1.2.2.tgz";
-        sha1 = "41608eafadfd65683b46a1220bc4b1ec3daedcd8";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."finished" or []);
-    deps = [
-      self.by-version."ee-first"."1.0.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "finished" ];
-  };
-  by-spec."finished"."~1.2.0" =
-    self.by-version."finished"."1.2.2";
-  by-spec."first-chunk-stream"."^0.1.0" =
-    self.by-version."first-chunk-stream"."0.1.0";
-  by-version."first-chunk-stream"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-first-chunk-stream-0.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-0.1.0.tgz";
-        name = "first-chunk-stream-0.1.0.tgz";
-        sha1 = "755d3ec14d49a86e3d2fcc08beead5c0ca2b9c0a";
+        url = "http://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz";
+        name = "first-chunk-stream-1.0.0.tgz";
+        sha1 = "59bfb50cd905f60d7c394cd3d9acaab4e6ad934e";
       })
     ];
     buildInputs =
       (self.nativeDeps."first-chunk-stream" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "first-chunk-stream" ];
@@ -6359,6 +6626,7 @@
     self.by-version."flatiron"."0.3.11";
   by-version."flatiron"."0.3.11" = lib.makeOverridable self.buildNodePackage {
     name = "flatiron-0.3.11";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/flatiron/-/flatiron-0.3.11.tgz";
@@ -6368,12 +6636,12 @@
     ];
     buildInputs =
       (self.nativeDeps."flatiron" or []);
-    deps = [
-      self.by-version."broadway"."0.2.9"
-      self.by-version."optimist"."0.6.0"
-      self.by-version."prompt"."0.2.11"
-      self.by-version."director"."1.1.10"
-    ];
+    deps = {
+      "broadway-0.2.9" = self.by-version."broadway"."0.2.9";
+      "optimist-0.6.0" = self.by-version."optimist"."0.6.0";
+      "prompt-0.2.11" = self.by-version."prompt"."0.2.11";
+      "director-1.1.10" = self.by-version."director"."1.1.10";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "flatiron" ];
@@ -6384,7 +6652,8 @@
   by-spec."follow-redirects"."0.0.3" =
     self.by-version."follow-redirects"."0.0.3";
   by-version."follow-redirects"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-follow-redirects-0.0.3";
+    name = "follow-redirects-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.3.tgz";
@@ -6394,9 +6663,9 @@
     ];
     buildInputs =
       (self.nativeDeps."follow-redirects" or []);
-    deps = [
-      self.by-version."underscore"."1.6.0"
-    ];
+    deps = {
+      "underscore-1.7.0" = self.by-version."underscore"."1.7.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "follow-redirects" ];
@@ -6404,7 +6673,8 @@
   by-spec."forEachAsync"."~2.2" =
     self.by-version."forEachAsync"."2.2.1";
   by-version."forEachAsync"."2.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-forEachAsync-2.2.1";
+    name = "forEachAsync-2.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/forEachAsync/-/forEachAsync-2.2.1.tgz";
@@ -6414,9 +6684,9 @@
     ];
     buildInputs =
       (self.nativeDeps."forEachAsync" or []);
-    deps = [
-      self.by-version."sequence"."2.2.1"
-    ];
+    deps = {
+      "sequence-2.2.1" = self.by-version."sequence"."2.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "forEachAsync" ];
@@ -6424,7 +6694,8 @@
   by-spec."foreachasync"."3.x" =
     self.by-version."foreachasync"."3.0.0";
   by-version."foreachasync"."3.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-foreachasync-3.0.0";
+    name = "foreachasync-3.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz";
@@ -6434,8 +6705,8 @@
     ];
     buildInputs =
       (self.nativeDeps."foreachasync" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "foreachasync" ];
@@ -6444,6 +6715,7 @@
     self.by-version."forever"."0.11.1";
   by-version."forever"."0.11.1" = lib.makeOverridable self.buildNodePackage {
     name = "forever-0.11.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/forever/-/forever-0.11.1.tgz";
@@ -6453,20 +6725,20 @@
     ];
     buildInputs =
       (self.nativeDeps."forever" or []);
-    deps = [
-      self.by-version."colors"."0.6.2"
-      self.by-version."cliff"."0.1.8"
-      self.by-version."flatiron"."0.3.11"
-      self.by-version."forever-monitor"."1.2.3"
-      self.by-version."nconf"."0.6.9"
-      self.by-version."nssocket"."0.5.1"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."pkginfo"."0.3.0"
-      self.by-version."timespan"."2.3.0"
-      self.by-version."watch"."0.8.0"
-      self.by-version."utile"."0.2.1"
-      self.by-version."winston"."0.7.3"
-    ];
+    deps = {
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "cliff-0.1.8" = self.by-version."cliff"."0.1.8";
+      "flatiron-0.3.11" = self.by-version."flatiron"."0.3.11";
+      "forever-monitor-1.2.3" = self.by-version."forever-monitor"."1.2.3";
+      "nconf-0.6.9" = self.by-version."nconf"."0.6.9";
+      "nssocket-0.5.1" = self.by-version."nssocket"."0.5.1";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+      "pkginfo-0.3.0" = self.by-version."pkginfo"."0.3.0";
+      "timespan-2.3.0" = self.by-version."timespan"."2.3.0";
+      "watch-0.8.0" = self.by-version."watch"."0.8.0";
+      "utile-0.2.1" = self.by-version."utile"."0.2.1";
+      "winston-0.7.3" = self.by-version."winston"."0.7.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "forever" ];
@@ -6475,7 +6747,8 @@
   by-spec."forever-agent"."~0.2.0" =
     self.by-version."forever-agent"."0.2.0";
   by-version."forever-agent"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-forever-agent-0.2.0";
+    name = "forever-agent-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz";
@@ -6485,8 +6758,8 @@
     ];
     buildInputs =
       (self.nativeDeps."forever-agent" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "forever-agent" ];
@@ -6494,7 +6767,8 @@
   by-spec."forever-agent"."~0.5.0" =
     self.by-version."forever-agent"."0.5.2";
   by-version."forever-agent"."0.5.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-forever-agent-0.5.2";
+    name = "forever-agent-0.5.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz";
@@ -6504,8 +6778,8 @@
     ];
     buildInputs =
       (self.nativeDeps."forever-agent" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "forever-agent" ];
@@ -6513,7 +6787,8 @@
   by-spec."forever-monitor"."*" =
     self.by-version."forever-monitor"."1.3.0";
   by-version."forever-monitor"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-forever-monitor-1.3.0";
+    name = "forever-monitor-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/forever-monitor/-/forever-monitor-1.3.0.tgz";
@@ -6523,14 +6798,14 @@
     ];
     buildInputs =
       (self.nativeDeps."forever-monitor" or []);
-    deps = [
-      self.by-version."broadway"."0.2.9"
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."pkginfo"."0.3.0"
-      self.by-version."ps-tree"."0.0.3"
-      self.by-version."watch"."0.5.1"
-      self.by-version."utile"."0.1.7"
-    ];
+    deps = {
+      "broadway-0.2.10" = self.by-version."broadway"."0.2.10";
+      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
+      "pkginfo-0.3.0" = self.by-version."pkginfo"."0.3.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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "forever-monitor" ];
@@ -6539,7 +6814,8 @@
   by-spec."forever-monitor"."1.1.0" =
     self.by-version."forever-monitor"."1.1.0";
   by-version."forever-monitor"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-forever-monitor-1.1.0";
+    name = "forever-monitor-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/forever-monitor/-/forever-monitor-1.1.0.tgz";
@@ -6549,14 +6825,14 @@
     ];
     buildInputs =
       (self.nativeDeps."forever-monitor" or []);
-    deps = [
-      self.by-version."broadway"."0.2.9"
-      self.by-version."minimatch"."0.0.5"
-      self.by-version."pkginfo"."0.3.0"
-      self.by-version."ps-tree"."0.0.3"
-      self.by-version."watch"."0.5.1"
-      self.by-version."utile"."0.1.7"
-    ];
+    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.3.0" = self.by-version."pkginfo"."0.3.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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "forever-monitor" ];
@@ -6564,7 +6840,8 @@
   by-spec."forever-monitor"."1.2.3" =
     self.by-version."forever-monitor"."1.2.3";
   by-version."forever-monitor"."1.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-forever-monitor-1.2.3";
+    name = "forever-monitor-1.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/forever-monitor/-/forever-monitor-1.2.3.tgz";
@@ -6574,14 +6851,14 @@
     ];
     buildInputs =
       (self.nativeDeps."forever-monitor" or []);
-    deps = [
-      self.by-version."broadway"."0.2.9"
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."pkginfo"."0.3.0"
-      self.by-version."ps-tree"."0.0.3"
-      self.by-version."watch"."0.5.1"
-      self.by-version."utile"."0.1.7"
-    ];
+    deps = {
+      "broadway-0.2.10" = self.by-version."broadway"."0.2.10";
+      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
+      "pkginfo-0.3.0" = self.by-version."pkginfo"."0.3.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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "forever-monitor" ];
@@ -6589,7 +6866,8 @@
   by-spec."form-data"."0.1.2" =
     self.by-version."form-data"."0.1.2";
   by-version."form-data"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-form-data-0.1.2";
+    name = "form-data-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/form-data/-/form-data-0.1.2.tgz";
@@ -6599,11 +6877,11 @@
     ];
     buildInputs =
       (self.nativeDeps."form-data" or []);
-    deps = [
-      self.by-version."combined-stream"."0.0.5"
-      self.by-version."mime"."1.2.11"
-      self.by-version."async"."0.2.10"
-    ];
+    deps = {
+      "combined-stream-0.0.5" = self.by-version."combined-stream"."0.0.5";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "form-data" ];
@@ -6611,7 +6889,8 @@
   by-spec."form-data"."0.1.3" =
     self.by-version."form-data"."0.1.3";
   by-version."form-data"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-form-data-0.1.3";
+    name = "form-data-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/form-data/-/form-data-0.1.3.tgz";
@@ -6621,11 +6900,11 @@
     ];
     buildInputs =
       (self.nativeDeps."form-data" or []);
-    deps = [
-      self.by-version."combined-stream"."0.0.5"
-      self.by-version."mime"."1.2.11"
-      self.by-version."async"."0.9.0"
-    ];
+    deps = {
+      "combined-stream-0.0.5" = self.by-version."combined-stream"."0.0.5";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "form-data" ];
@@ -6633,7 +6912,8 @@
   by-spec."form-data"."~0.0.3" =
     self.by-version."form-data"."0.0.10";
   by-version."form-data"."0.0.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-form-data-0.0.10";
+    name = "form-data-0.0.10";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz";
@@ -6643,11 +6923,11 @@
     ];
     buildInputs =
       (self.nativeDeps."form-data" or []);
-    deps = [
-      self.by-version."combined-stream"."0.0.5"
-      self.by-version."mime"."1.2.11"
-      self.by-version."async"."0.2.10"
-    ];
+    deps = {
+      "combined-stream-0.0.5" = self.by-version."combined-stream"."0.0.5";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "form-data" ];
@@ -6655,7 +6935,8 @@
   by-spec."form-data"."~0.1.0" =
     self.by-version."form-data"."0.1.4";
   by-version."form-data"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-form-data-0.1.4";
+    name = "form-data-0.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz";
@@ -6665,11 +6946,11 @@
     ];
     buildInputs =
       (self.nativeDeps."form-data" or []);
-    deps = [
-      self.by-version."combined-stream"."0.0.5"
-      self.by-version."mime"."1.2.11"
-      self.by-version."async"."0.9.0"
-    ];
+    deps = {
+      "combined-stream-0.0.5" = self.by-version."combined-stream"."0.0.5";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "form-data" ];
@@ -6677,7 +6958,8 @@
   by-spec."formatio"."~1.0" =
     self.by-version."formatio"."1.0.2";
   by-version."formatio"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-formatio-1.0.2";
+    name = "formatio-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/formatio/-/formatio-1.0.2.tgz";
@@ -6687,9 +6969,9 @@
     ];
     buildInputs =
       (self.nativeDeps."formatio" or []);
-    deps = [
-      self.by-version."samsam"."1.1.1"
-    ];
+    deps = {
+      "samsam-1.1.1" = self.by-version."samsam"."1.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "formatio" ];
@@ -6697,7 +6979,8 @@
   by-spec."formidable"."1.0.11" =
     self.by-version."formidable"."1.0.11";
   by-version."formidable"."1.0.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-formidable-1.0.11";
+    name = "formidable-1.0.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz";
@@ -6707,8 +6990,8 @@
     ];
     buildInputs =
       (self.nativeDeps."formidable" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "formidable" ];
@@ -6716,7 +6999,8 @@
   by-spec."formidable"."1.0.13" =
     self.by-version."formidable"."1.0.13";
   by-version."formidable"."1.0.13" = lib.makeOverridable self.buildNodePackage {
-    name = "node-formidable-1.0.13";
+    name = "formidable-1.0.13";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/formidable/-/formidable-1.0.13.tgz";
@@ -6726,8 +7010,8 @@
     ];
     buildInputs =
       (self.nativeDeps."formidable" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "formidable" ];
@@ -6735,7 +7019,8 @@
   by-spec."formidable"."1.0.14" =
     self.by-version."formidable"."1.0.14";
   by-version."formidable"."1.0.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-formidable-1.0.14";
+    name = "formidable-1.0.14";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz";
@@ -6745,8 +7030,8 @@
     ];
     buildInputs =
       (self.nativeDeps."formidable" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "formidable" ];
@@ -6754,7 +7039,8 @@
   by-spec."formidable"."1.0.9" =
     self.by-version."formidable"."1.0.9";
   by-version."formidable"."1.0.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-formidable-1.0.9";
+    name = "formidable-1.0.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/formidable/-/formidable-1.0.9.tgz";
@@ -6764,8 +7050,8 @@
     ];
     buildInputs =
       (self.nativeDeps."formidable" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "formidable" ];
@@ -6773,7 +7059,8 @@
   by-spec."formidable"."1.0.x" =
     self.by-version."formidable"."1.0.15";
   by-version."formidable"."1.0.15" = lib.makeOverridable self.buildNodePackage {
-    name = "node-formidable-1.0.15";
+    name = "formidable-1.0.15";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/formidable/-/formidable-1.0.15.tgz";
@@ -6783,8 +7070,8 @@
     ];
     buildInputs =
       (self.nativeDeps."formidable" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "formidable" ];
@@ -6792,7 +7079,8 @@
   by-spec."fresh"."0.1.0" =
     self.by-version."fresh"."0.1.0";
   by-version."fresh"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fresh-0.1.0";
+    name = "fresh-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz";
@@ -6802,8 +7090,8 @@
     ];
     buildInputs =
       (self.nativeDeps."fresh" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fresh" ];
@@ -6811,7 +7099,8 @@
   by-spec."fresh"."0.2.0" =
     self.by-version."fresh"."0.2.0";
   by-version."fresh"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fresh-0.2.0";
+    name = "fresh-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz";
@@ -6821,8 +7110,8 @@
     ];
     buildInputs =
       (self.nativeDeps."fresh" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fresh" ];
@@ -6830,7 +7119,8 @@
   by-spec."fresh"."0.2.2" =
     self.by-version."fresh"."0.2.2";
   by-version."fresh"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fresh-0.2.2";
+    name = "fresh-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz";
@@ -6840,18 +7130,39 @@
     ];
     buildInputs =
       (self.nativeDeps."fresh" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "fresh" ];
+  };
+  by-spec."fresh"."0.2.4" =
+    self.by-version."fresh"."0.2.4";
+  by-version."fresh"."0.2.4" = lib.makeOverridable self.buildNodePackage {
+    name = "fresh-0.2.4";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz";
+        name = "fresh-0.2.4.tgz";
+        sha1 = "3582499206c9723714190edd74b4604feb4a614c";
+      })
     ];
+    buildInputs =
+      (self.nativeDeps."fresh" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fresh" ];
   };
   by-spec."fresh"."~0.2.1" =
-    self.by-version."fresh"."0.2.2";
+    self.by-version."fresh"."0.2.4";
   by-spec."fs-extra"."~0.6.1" =
     self.by-version."fs-extra"."0.6.4";
   by-version."fs-extra"."0.6.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fs-extra-0.6.4";
+    name = "fs-extra-0.6.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fs-extra/-/fs-extra-0.6.4.tgz";
@@ -6861,12 +7172,12 @@
     ];
     buildInputs =
       (self.nativeDeps."fs-extra" or []);
-    deps = [
-      self.by-version."ncp"."0.4.2"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."jsonfile"."1.0.1"
-      self.by-version."rimraf"."2.2.8"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fs-extra" ];
@@ -6874,7 +7185,8 @@
   by-spec."fs-vacuum"."~1.2.1" =
     self.by-version."fs-vacuum"."1.2.1";
   by-version."fs-vacuum"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fs-vacuum-1.2.1";
+    name = "fs-vacuum-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.1.tgz";
@@ -6884,10 +7196,10 @@
     ];
     buildInputs =
       (self.nativeDeps."fs-vacuum" or []);
-    deps = [
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."rimraf"."2.2.8"
-    ];
+    deps = {
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fs-vacuum" ];
@@ -6895,7 +7207,8 @@
   by-spec."fs-walk"."*" =
     self.by-version."fs-walk"."0.0.1";
   by-version."fs-walk"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fs-walk-0.0.1";
+    name = "fs-walk-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fs-walk/-/fs-walk-0.0.1.tgz";
@@ -6905,9 +7218,9 @@
     ];
     buildInputs =
       (self.nativeDeps."fs-walk" or []);
-    deps = [
-      self.by-version."async"."0.9.0"
-    ];
+    deps = {
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fs-walk" ];
@@ -6916,7 +7229,8 @@
   by-spec."fs.extra".">=1.2.0 <2.0.0" =
     self.by-version."fs.extra"."1.2.1";
   by-version."fs.extra"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fs.extra-1.2.1";
+    name = "fs.extra-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fs.extra/-/fs.extra-1.2.1.tgz";
@@ -6926,11 +7240,11 @@
     ];
     buildInputs =
       (self.nativeDeps."fs.extra" or []);
-    deps = [
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."fs-extra"."0.6.4"
-      self.by-version."walk"."2.2.1"
-    ];
+    deps = {
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+      "fs-extra-0.6.4" = self.by-version."fs-extra"."0.6.4";
+      "walk-2.2.1" = self.by-version."walk"."2.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fs.extra" ];
@@ -6938,7 +7252,8 @@
   by-spec."fsevents"."pipobscure/fsevents#7dcdf9fa3f8956610fd6f69f72c67bace2de7138" =
     self.by-version."fsevents"."0.2.1";
   by-version."fsevents"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fsevents-0.2.1";
+    name = "fsevents-0.2.1";
+    bin = false;
     src = [
       (fetchgit {
         url = "git://github.com/pipobscure/fsevents.git";
@@ -6948,71 +7263,70 @@
     ];
     buildInputs =
       (self.nativeDeps."fsevents" or []);
-    deps = [
-      self.by-version."nan"."0.8.0"
-    ];
+    deps = {
+      "nan-0.8.0" = self.by-version."nan"."0.8.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fsevents" ];
   };
-  by-spec."fstream"."0" =
-    self.by-version."fstream"."0.1.31";
-  by-version."fstream"."0.1.31" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fstream-0.1.31";
+  by-spec."fstream"."^1.0.0" =
+    self.by-version."fstream"."1.0.2";
+  by-version."fstream"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "fstream-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz";
-        name = "fstream-0.1.31.tgz";
-        sha1 = "7337f058fbbbbefa8c9f561a28cab0849202c988";
+        url = "http://registry.npmjs.org/fstream/-/fstream-1.0.2.tgz";
+        name = "fstream-1.0.2.tgz";
+        sha1 = "56930ff1b4d4d7b1a689c8656b3a11e744ab92c6";
       })
     ];
     buildInputs =
       (self.nativeDeps."fstream" or []);
-    deps = [
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."rimraf"."2.2.8"
-    ];
+    deps = {
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fstream" ];
   };
-  by-spec."fstream"."^1.0.0" =
+  by-spec."fstream"."^1.0.2" =
     self.by-version."fstream"."1.0.2";
-  by-version."fstream"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fstream-1.0.2";
+  by-spec."fstream"."~0.1.8" =
+    self.by-version."fstream"."0.1.31";
+  by-version."fstream"."0.1.31" = lib.makeOverridable self.buildNodePackage {
+    name = "fstream-0.1.31";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/fstream/-/fstream-1.0.2.tgz";
-        name = "fstream-1.0.2.tgz";
-        sha1 = "56930ff1b4d4d7b1a689c8656b3a11e744ab92c6";
+        url = "http://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz";
+        name = "fstream-0.1.31.tgz";
+        sha1 = "7337f058fbbbbefa8c9f561a28cab0849202c988";
       })
     ];
     buildInputs =
       (self.nativeDeps."fstream" or []);
-    deps = [
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."rimraf"."2.2.8"
-    ];
+    deps = {
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fstream" ];
   };
-  by-spec."fstream"."^1.0.2" =
+  by-spec."fstream"."~1.0.2" =
     self.by-version."fstream"."1.0.2";
-  by-spec."fstream"."~0.1.28" =
-    self.by-version."fstream"."0.1.31";
-  by-spec."fstream"."~0.1.29" =
-    self.by-version."fstream"."0.1.31";
-  by-spec."fstream"."~0.1.8" =
-    self.by-version."fstream"."0.1.31";
   by-spec."fstream-ignore"."^1.0.0" =
     self.by-version."fstream-ignore"."1.0.1";
   by-version."fstream-ignore"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fstream-ignore-1.0.1";
+    name = "fstream-ignore-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.1.tgz";
@@ -7022,32 +7336,33 @@
     ];
     buildInputs =
       (self.nativeDeps."fstream-ignore" or []);
-    deps = [
-      self.by-version."fstream"."1.0.2"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."minimatch"."1.0.0"
-    ];
+    deps = {
+      "fstream-1.0.2" = self.by-version."fstream"."1.0.2";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fstream-ignore" ];
   };
-  by-spec."fstream-npm"."~0.1.7" =
-    self.by-version."fstream-npm"."0.1.8";
-  by-version."fstream-npm"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fstream-npm-0.1.8";
+  by-spec."fstream-npm"."~1.0.0" =
+    self.by-version."fstream-npm"."1.0.0";
+  by-version."fstream-npm"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "fstream-npm-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/fstream-npm/-/fstream-npm-0.1.8.tgz";
-        name = "fstream-npm-0.1.8.tgz";
-        sha1 = "38a70fdeb510a443e1a5378d90413403fc724fa8";
+        url = "http://registry.npmjs.org/fstream-npm/-/fstream-npm-1.0.0.tgz";
+        name = "fstream-npm-1.0.0.tgz";
+        sha1 = "0262c95c771d393e7cf59fcfeabce621703f3d27";
       })
     ];
     buildInputs =
       (self.nativeDeps."fstream-npm" or []);
-    deps = [
-      self.by-version."fstream-ignore"."1.0.1"
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "fstream-ignore-1.0.1" = self.by-version."fstream-ignore"."1.0.1";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "fstream-npm" ];
@@ -7055,7 +7370,8 @@
   by-spec."gaze"."^0.5.1" =
     self.by-version."gaze"."0.5.1";
   by-version."gaze"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-gaze-0.5.1";
+    name = "gaze-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/gaze/-/gaze-0.5.1.tgz";
@@ -7065,9 +7381,9 @@
     ];
     buildInputs =
       (self.nativeDeps."gaze" or []);
-    deps = [
-      self.by-version."globule"."0.1.0"
-    ];
+    deps = {
+      "globule-0.1.0" = self.by-version."globule"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "gaze" ];
@@ -7076,6 +7392,7 @@
     self.by-version."getmac"."1.0.6";
   by-version."getmac"."1.0.6" = lib.makeOverridable self.buildNodePackage {
     name = "getmac-1.0.6";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/getmac/-/getmac-1.0.6.tgz";
@@ -7085,9 +7402,9 @@
     ];
     buildInputs =
       (self.nativeDeps."getmac" or []);
-    deps = [
-      self.by-version."extract-opts"."2.2.0"
-    ];
+    deps = {
+      "extract-opts-2.2.0" = self.by-version."extract-opts"."2.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "getmac" ];
@@ -7095,7 +7412,8 @@
   by-spec."getobject"."~0.1.0" =
     self.by-version."getobject"."0.1.0";
   by-version."getobject"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-getobject-0.1.0";
+    name = "getobject-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz";
@@ -7105,115 +7423,86 @@
     ];
     buildInputs =
       (self.nativeDeps."getobject" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "getobject" ];
   };
-  by-spec."github-url-from-git"."^1.3.0" =
-    self.by-version."github-url-from-git"."1.3.0";
-  by-version."github-url-from-git"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-github-url-from-git-1.3.0";
+  by-spec."git-run"."*" =
+    self.by-version."git-run"."0.2.0";
+  by-version."git-run"."0.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "git-run-0.2.0";
+    bin = true;
     src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.3.0.tgz";
-        name = "github-url-from-git-1.3.0.tgz";
-        sha1 = "6e79d9779632ca78aa645c67bb419f70e51d69f7";
+      (self.patchSource fetchurl {
+        url = "http://registry.npmjs.org/git-run/-/git-run-0.2.0.tgz";
+        name = "git-run-0.2.0.tgz";
+        sha1 = "9aa3b203edbb7fcfbc06604c43454d47627d8ac0";
       })
     ];
     buildInputs =
-      (self.nativeDeps."github-url-from-git" or []);
-    deps = [
-    ];
+      (self.nativeDeps."git-run" or []);
+    deps = {
+      "minilog-2.0.6" = self.by-version."minilog"."2.0.6";
+      "tabtab-0.0.2" = self.by-version."tabtab"."0.0.2";
+    };
     peerDependencies = [
     ];
-    passthru.names = [ "github-url-from-git" ];
+    passthru.names = [ "git-run" ];
   };
-  by-spec."github-url-from-git"."~1.1.1" =
-    self.by-version."github-url-from-git"."1.1.1";
-  by-version."github-url-from-git"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-github-url-from-git-1.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.1.1.tgz";
-        name = "github-url-from-git-1.1.1.tgz";
-        sha1 = "1f89623453123ef9623956e264c60bf4c3cf5ccf";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."github-url-from-git" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "github-url-from-git" ];
-  };
-  by-spec."github-url-from-git"."~1.2.0" =
-    self.by-version."github-url-from-git"."1.2.0";
-  by-version."github-url-from-git"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-github-url-from-git-1.2.0";
+  "git-run" = self.by-version."git-run"."0.2.0";
+  by-spec."github-url-from-git"."^1.3.0" =
+    self.by-version."github-url-from-git"."1.4.0";
+  by-version."github-url-from-git"."1.4.0" = lib.makeOverridable self.buildNodePackage {
+    name = "github-url-from-git-1.4.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.2.0.tgz";
-        name = "github-url-from-git-1.2.0.tgz";
-        sha1 = "7ace1fc6920f790d2967faed61688902320c37d2";
+        url = "http://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";
       })
     ];
     buildInputs =
       (self.nativeDeps."github-url-from-git" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "github-url-from-git" ];
   };
-  by-spec."github-url-from-username-repo"."^0.2.0" =
-    self.by-version."github-url-from-username-repo"."0.2.0";
-  by-version."github-url-from-username-repo"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-github-url-from-username-repo-0.2.0";
+  by-spec."github-url-from-git"."~1.4.0" =
+    self.by-version."github-url-from-git"."1.4.0";
+  by-spec."github-url-from-username-repo"."^1.0.0" =
+    self.by-version."github-url-from-username-repo"."1.0.2";
+  by-version."github-url-from-username-repo"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "github-url-from-username-repo-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/github-url-from-username-repo/-/github-url-from-username-repo-0.2.0.tgz";
-        name = "github-url-from-username-repo-0.2.0.tgz";
-        sha1 = "7590b4fa605b7a6cbb7e06ffcd9d253210f9dbe1";
+        url = "http://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";
       })
     ];
     buildInputs =
       (self.nativeDeps."github-url-from-username-repo" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "github-url-from-username-repo" ];
   };
-  by-spec."github-url-from-username-repo"."~0.2.0" =
-    self.by-version."github-url-from-username-repo"."0.2.0";
-  by-spec."glob"."3" =
-    self.by-version."glob"."3.2.11";
-  by-version."glob"."3.2.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob-3.2.11";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/glob/-/glob-3.2.11.tgz";
-        name = "glob-3.2.11.tgz";
-        sha1 = "4a973f635b9190f715d10987d5c00fd2815ebe3d";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."glob" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-      self.by-version."minimatch"."0.3.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "glob" ];
-  };
+  by-spec."github-url-from-username-repo"."~1.0.0" =
+    self.by-version."github-url-from-username-repo"."1.0.2";
+  by-spec."github-url-from-username-repo"."~1.0.2" =
+    self.by-version."github-url-from-username-repo"."1.0.2";
   by-spec."glob"."3 || 4" =
     self.by-version."glob"."4.0.5";
   by-version."glob"."4.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob-4.0.5";
+    name = "glob-4.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/glob/-/glob-4.0.5.tgz";
@@ -7223,12 +7512,12 @@
     ];
     buildInputs =
       (self.nativeDeps."glob" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-      self.by-version."minimatch"."1.0.0"
-      self.by-version."once"."1.3.0"
-      self.by-version."graceful-fs"."3.0.2"
-    ];
+    deps = {
+      "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.0" = self.by-version."once"."1.3.0";
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "glob" ];
@@ -7236,7 +7525,8 @@
   by-spec."glob"."3.2.3" =
     self.by-version."glob"."3.2.3";
   by-version."glob"."3.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob-3.2.3";
+    name = "glob-3.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/glob/-/glob-3.2.3.tgz";
@@ -7246,17 +7536,37 @@
     ];
     buildInputs =
       (self.nativeDeps."glob" or []);
-    deps = [
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
+      "graceful-fs-2.0.3" = self.by-version."graceful-fs"."2.0.3";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "glob" ];
   };
   by-spec."glob"."3.2.x" =
     self.by-version."glob"."3.2.11";
+  by-version."glob"."3.2.11" = lib.makeOverridable self.buildNodePackage {
+    name = "glob-3.2.11";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/glob/-/glob-3.2.11.tgz";
+        name = "glob-3.2.11.tgz";
+        sha1 = "4a973f635b9190f715d10987d5c00fd2815ebe3d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."glob" or []);
+    deps = {
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "minimatch-0.3.0" = self.by-version."minimatch"."0.3.0";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "glob" ];
+  };
   by-spec."glob"."3.x" =
     self.by-version."glob"."3.2.11";
   by-spec."glob"."4.x" =
@@ -7272,7 +7582,8 @@
   by-spec."glob"."~3.1.21" =
     self.by-version."glob"."3.1.21";
   by-version."glob"."3.1.21" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob-3.1.21";
+    name = "glob-3.1.21";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/glob/-/glob-3.1.21.tgz";
@@ -7282,11 +7593,11 @@
     ];
     buildInputs =
       (self.nativeDeps."glob" or []);
-    deps = [
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."graceful-fs"."1.2.3"
-      self.by-version."inherits"."1.0.0"
-    ];
+    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.0" = self.by-version."inherits"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "glob" ];
@@ -7299,12 +7610,13 @@
     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.3" =
+  by-spec."glob"."~4.0.5" =
     self.by-version."glob"."4.0.5";
   by-spec."glob-stream"."^3.1.5" =
     self.by-version."glob-stream"."3.1.15";
   by-version."glob-stream"."3.1.15" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob-stream-3.1.15";
+    name = "glob-stream-3.1.15";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/glob-stream/-/glob-stream-3.1.15.tgz";
@@ -7314,14 +7626,14 @@
     ];
     buildInputs =
       (self.nativeDeps."glob-stream" or []);
-    deps = [
-      self.by-version."glob"."4.0.5"
-      self.by-version."minimatch"."1.0.0"
-      self.by-version."ordered-read-streams"."0.0.8"
-      self.by-version."glob2base"."0.0.11"
-      self.by-version."unique-stream"."1.0.0"
-      self.by-version."through2"."0.6.1"
-    ];
+    deps = {
+      "glob-4.0.5" = self.by-version."glob"."4.0.5";
+      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
+      "ordered-read-streams-0.0.8" = self.by-version."ordered-read-streams"."0.0.8";
+      "glob2base-0.0.11" = self.by-version."glob2base"."0.0.11";
+      "unique-stream-1.0.0" = self.by-version."unique-stream"."1.0.0";
+      "through2-0.6.1" = self.by-version."through2"."0.6.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "glob-stream" ];
@@ -7329,7 +7641,8 @@
   by-spec."glob-watcher"."^0.0.6" =
     self.by-version."glob-watcher"."0.0.6";
   by-version."glob-watcher"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob-watcher-0.0.6";
+    name = "glob-watcher-0.0.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz";
@@ -7339,9 +7652,9 @@
     ];
     buildInputs =
       (self.nativeDeps."glob-watcher" or []);
-    deps = [
-      self.by-version."gaze"."0.5.1"
-    ];
+    deps = {
+      "gaze-0.5.1" = self.by-version."gaze"."0.5.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "glob-watcher" ];
@@ -7349,7 +7662,8 @@
   by-spec."glob2base"."^0.0.11" =
     self.by-version."glob2base"."0.0.11";
   by-version."glob2base"."0.0.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob2base-0.0.11";
+    name = "glob2base-0.0.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/glob2base/-/glob2base-0.0.11.tgz";
@@ -7359,9 +7673,9 @@
     ];
     buildInputs =
       (self.nativeDeps."glob2base" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-    ];
+    deps = {
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "glob2base" ];
@@ -7369,7 +7683,8 @@
   by-spec."globule"."~0.1.0" =
     self.by-version."globule"."0.1.0";
   by-version."globule"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-globule-0.1.0";
+    name = "globule-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/globule/-/globule-0.1.0.tgz";
@@ -7379,38 +7694,20 @@
     ];
     buildInputs =
       (self.nativeDeps."globule" or []);
-    deps = [
-      self.by-version."lodash"."1.0.1"
-      self.by-version."glob"."3.1.21"
-      self.by-version."minimatch"."0.2.14"
-    ];
+    deps = {
+      "lodash-1.0.1" = self.by-version."lodash"."1.0.1";
+      "glob-3.1.21" = self.by-version."glob"."3.1.21";
+      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "globule" ];
   };
-  by-spec."graceful-fs"."2" =
-    self.by-version."graceful-fs"."2.0.3";
-  by-version."graceful-fs"."2.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-graceful-fs-2.0.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz";
-        name = "graceful-fs-2.0.3.tgz";
-        sha1 = "7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."graceful-fs" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "graceful-fs" ];
-  };
   by-spec."graceful-fs"."2 || 3" =
     self.by-version."graceful-fs"."3.0.2";
   by-version."graceful-fs"."3.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-graceful-fs-3.0.2";
+    name = "graceful-fs-3.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz";
@@ -7420,14 +7717,16 @@
     ];
     buildInputs =
       (self.nativeDeps."graceful-fs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "graceful-fs" ];
   };
   by-spec."graceful-fs"."3" =
     self.by-version."graceful-fs"."3.0.2";
+  by-spec."graceful-fs".">3.0.1 <4.0.0-0" =
+    self.by-version."graceful-fs"."3.0.2";
   by-spec."graceful-fs"."^3.0.0" =
     self.by-version."graceful-fs"."3.0.2";
   by-spec."graceful-fs"."^3.0.2" =
@@ -7435,7 +7734,8 @@
   by-spec."graceful-fs"."~1" =
     self.by-version."graceful-fs"."1.2.3";
   by-version."graceful-fs"."1.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-graceful-fs-1.2.3";
+    name = "graceful-fs-1.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz";
@@ -7445,8 +7745,8 @@
     ];
     buildInputs =
       (self.nativeDeps."graceful-fs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "graceful-fs" ];
@@ -7455,10 +7755,26 @@
     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" = lib.makeOverridable self.buildNodePackage {
+    name = "graceful-fs-2.0.3";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz";
+        name = "graceful-fs-2.0.3.tgz";
+        sha1 = "7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."graceful-fs" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "graceful-fs" ];
+  };
   by-spec."graceful-fs"."~2.0.1" =
     self.by-version."graceful-fs"."2.0.3";
-  by-spec."graceful-fs"."~2.0.3" =
-    self.by-version."graceful-fs"."2.0.3";
   by-spec."graceful-fs"."~3.0.0" =
     self.by-version."graceful-fs"."3.0.2";
   by-spec."graceful-fs"."~3.0.1" =
@@ -7468,7 +7784,8 @@
   by-spec."gridfs-stream"."*" =
     self.by-version."gridfs-stream"."0.5.1";
   by-version."gridfs-stream"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-gridfs-stream-0.5.1";
+    name = "gridfs-stream-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/gridfs-stream/-/gridfs-stream-0.5.1.tgz";
@@ -7478,8 +7795,8 @@
     ];
     buildInputs =
       (self.nativeDeps."gridfs-stream" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "gridfs-stream" ];
@@ -7488,7 +7805,8 @@
   by-spec."growl"."1.7.x" =
     self.by-version."growl"."1.7.0";
   by-version."growl"."1.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-growl-1.7.0";
+    name = "growl-1.7.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/growl/-/growl-1.7.0.tgz";
@@ -7498,8 +7816,8 @@
     ];
     buildInputs =
       (self.nativeDeps."growl" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "growl" ];
@@ -7507,7 +7825,8 @@
   by-spec."growl"."1.8.x" =
     self.by-version."growl"."1.8.1";
   by-version."growl"."1.8.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-growl-1.8.1";
+    name = "growl-1.8.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/growl/-/growl-1.8.1.tgz";
@@ -7517,8 +7836,8 @@
     ];
     buildInputs =
       (self.nativeDeps."growl" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "growl" ];
@@ -7526,7 +7845,8 @@
   by-spec."grunt"."0.4.x" =
     self.by-version."grunt"."0.4.5";
   by-version."grunt"."0.4.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-0.4.5";
+    name = "grunt-0.4.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz";
@@ -7536,28 +7856,28 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt" or []);
-    deps = [
-      self.by-version."async"."0.1.22"
-      self.by-version."coffee-script"."1.3.3"
-      self.by-version."colors"."0.6.2"
-      self.by-version."dateformat"."1.0.2-1.2.3"
-      self.by-version."eventemitter2"."0.4.14"
-      self.by-version."findup-sync"."0.1.3"
-      self.by-version."glob"."3.1.21"
-      self.by-version."hooker"."0.2.3"
-      self.by-version."iconv-lite"."0.2.11"
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."nopt"."1.0.10"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."lodash"."0.9.2"
-      self.by-version."underscore.string"."2.2.1"
-      self.by-version."which"."1.0.5"
-      self.by-version."js-yaml"."2.0.5"
-      self.by-version."exit"."0.1.2"
-      self.by-version."getobject"."0.1.0"
-      self.by-version."grunt-legacy-util"."0.2.0"
-      self.by-version."grunt-legacy-log"."0.1.1"
-    ];
+    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.5" = self.by-version."which"."1.0.5";
+      "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.1" = self.by-version."grunt-legacy-log"."0.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "grunt" ];
@@ -7572,6 +7892,7 @@
     self.by-version."grunt-cli"."0.1.13";
   by-version."grunt-cli"."0.1.13" = lib.makeOverridable self.buildNodePackage {
     name = "grunt-cli-0.1.13";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-cli/-/grunt-cli-0.1.13.tgz";
@@ -7581,11 +7902,11 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-cli" or []);
-    deps = [
-      self.by-version."nopt"."1.0.10"
-      self.by-version."findup-sync"."0.1.3"
-      self.by-version."resolve"."0.3.1"
-    ];
+    deps = {
+      "nopt-1.0.10" = self.by-version."nopt"."1.0.10";
+      "findup-sync-0.1.3" = self.by-version."findup-sync"."0.1.3";
+      "resolve-0.3.1" = self.by-version."resolve"."0.3.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "grunt-cli" ];
@@ -7594,7 +7915,8 @@
   by-spec."grunt-contrib-cssmin"."*" =
     self.by-version."grunt-contrib-cssmin"."0.10.0";
   by-version."grunt-contrib-cssmin"."0.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-cssmin-0.10.0";
+    name = "grunt-contrib-cssmin-0.10.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.10.0.tgz";
@@ -7604,11 +7926,11 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-cssmin" or []);
-    deps = [
-      self.by-version."chalk"."0.4.0"
-      self.by-version."clean-css"."2.2.13"
-      self.by-version."maxmin"."0.2.2"
-    ];
+    deps = {
+      "chalk-0.4.0" = self.by-version."chalk"."0.4.0";
+      "clean-css-2.2.15" = self.by-version."clean-css"."2.2.15";
+      "maxmin-0.2.2" = self.by-version."maxmin"."0.2.2";
+    };
     peerDependencies = [
       self.by-version."grunt"."0.4.5"
     ];
@@ -7618,7 +7940,8 @@
   by-spec."grunt-contrib-jshint"."*" =
     self.by-version."grunt-contrib-jshint"."0.10.0";
   by-version."grunt-contrib-jshint"."0.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-jshint-0.10.0";
+    name = "grunt-contrib-jshint-0.10.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.10.0.tgz";
@@ -7628,10 +7951,10 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-jshint" or []);
-    deps = [
-      self.by-version."jshint"."2.5.4"
-      self.by-version."hooker"."0.2.3"
-    ];
+    deps = {
+      "jshint-2.5.5" = self.by-version."jshint"."2.5.5";
+      "hooker-0.2.3" = self.by-version."hooker"."0.2.3";
+    };
     peerDependencies = [
       self.by-version."grunt"."0.4.5"
     ];
@@ -7641,7 +7964,8 @@
   by-spec."grunt-contrib-less"."*" =
     self.by-version."grunt-contrib-less"."0.11.4";
   by-version."grunt-contrib-less"."0.11.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-less-0.11.4";
+    name = "grunt-contrib-less-0.11.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-0.11.4.tgz";
@@ -7651,13 +7975,13 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-less" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."chalk"."0.5.1"
-      self.by-version."less"."1.7.4"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."maxmin"."0.1.0"
-    ];
+    deps = {
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+      "chalk-0.5.1" = self.by-version."chalk"."0.5.1";
+      "less-1.7.5" = self.by-version."less"."1.7.5";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "maxmin-0.1.0" = self.by-version."maxmin"."0.1.0";
+    };
     peerDependencies = [
       self.by-version."grunt"."0.4.5"
     ];
@@ -7667,7 +7991,8 @@
   by-spec."grunt-contrib-requirejs"."*" =
     self.by-version."grunt-contrib-requirejs"."0.4.4";
   by-version."grunt-contrib-requirejs"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-requirejs-0.4.4";
+    name = "grunt-contrib-requirejs-0.4.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-0.4.4.tgz";
@@ -7677,9 +8002,9 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-requirejs" or []);
-    deps = [
-      self.by-version."requirejs"."2.1.14"
-    ];
+    deps = {
+      "requirejs-2.1.15" = self.by-version."requirejs"."2.1.15";
+    };
     peerDependencies = [
       self.by-version."grunt"."0.4.5"
     ];
@@ -7689,7 +8014,8 @@
   by-spec."grunt-contrib-uglify"."*" =
     self.by-version."grunt-contrib-uglify"."0.5.1";
   by-version."grunt-contrib-uglify"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-uglify-0.5.1";
+    name = "grunt-contrib-uglify-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.5.1.tgz";
@@ -7699,12 +8025,12 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-uglify" or []);
-    deps = [
-      self.by-version."chalk"."0.5.1"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."maxmin"."0.2.2"
-      self.by-version."uglify-js"."2.4.15"
-    ];
+    deps = {
+      "chalk-0.5.1" = self.by-version."chalk"."0.5.1";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "maxmin-0.2.2" = self.by-version."maxmin"."0.2.2";
+      "uglify-js-2.4.15" = self.by-version."uglify-js"."2.4.15";
+    };
     peerDependencies = [
       self.by-version."grunt"."0.4.5"
     ];
@@ -7712,32 +8038,34 @@
   };
   "grunt-contrib-uglify" = self.by-version."grunt-contrib-uglify"."0.5.1";
   by-spec."grunt-karma"."*" =
-    self.by-version."grunt-karma"."0.8.3";
-  by-version."grunt-karma"."0.8.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-karma-0.8.3";
+    self.by-version."grunt-karma"."0.9.0";
+  by-version."grunt-karma"."0.9.0" = lib.makeOverridable self.buildNodePackage {
+    name = "grunt-karma-0.9.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-karma/-/grunt-karma-0.8.3.tgz";
-        name = "grunt-karma-0.8.3.tgz";
-        sha1 = "e9ecf718153af1914aa53602a37f85de04310e7f";
+        url = "http://registry.npmjs.org/grunt-karma/-/grunt-karma-0.9.0.tgz";
+        name = "grunt-karma-0.9.0.tgz";
+        sha1 = "de3d6ac478ffca350e729f3457457d5b0910e96b";
       })
     ];
     buildInputs =
       (self.nativeDeps."grunt-karma" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-    ];
+    deps = {
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+    };
     peerDependencies = [
       self.by-version."grunt"."0.4.5"
-      self.by-version."karma"."0.12.22"
+      self.by-version."karma"."0.12.23"
     ];
     passthru.names = [ "grunt-karma" ];
   };
-  "grunt-karma" = self.by-version."grunt-karma"."0.8.3";
+  "grunt-karma" = self.by-version."grunt-karma"."0.9.0";
   by-spec."grunt-legacy-log"."~0.1.0" =
     self.by-version."grunt-legacy-log"."0.1.1";
   by-version."grunt-legacy-log"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-legacy-log-0.1.1";
+    name = "grunt-legacy-log-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.1.tgz";
@@ -7747,12 +8075,12 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-legacy-log" or []);
-    deps = [
-      self.by-version."hooker"."0.2.3"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."underscore.string"."2.3.3"
-      self.by-version."colors"."0.6.2"
-    ];
+    deps = {
+      "hooker-0.2.3" = self.by-version."hooker"."0.2.3";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "underscore.string-2.3.3" = self.by-version."underscore.string"."2.3.3";
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "grunt-legacy-log" ];
@@ -7760,7 +8088,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-legacy-util-0.2.0";
+    name = "grunt-legacy-util-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz";
@@ -7770,15 +8099,15 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-legacy-util" or []);
-    deps = [
-      self.by-version."hooker"."0.2.3"
-      self.by-version."async"."0.1.22"
-      self.by-version."lodash"."0.9.2"
-      self.by-version."exit"."0.1.2"
-      self.by-version."underscore.string"."2.2.1"
-      self.by-version."getobject"."0.1.0"
-      self.by-version."which"."1.0.5"
-    ];
+    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.5" = self.by-version."which"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "grunt-legacy-util" ];
@@ -7786,7 +8115,8 @@
   by-spec."grunt-sed"."*" =
     self.by-version."grunt-sed"."0.1.1";
   by-version."grunt-sed"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-sed-0.1.1";
+    name = "grunt-sed-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/grunt-sed/-/grunt-sed-0.1.1.tgz";
@@ -7796,9 +8126,9 @@
     ];
     buildInputs =
       (self.nativeDeps."grunt-sed" or []);
-    deps = [
-      self.by-version."replace"."0.2.9"
-    ];
+    deps = {
+      "replace-0.2.10" = self.by-version."replace"."0.2.10";
+    };
     peerDependencies = [
       self.by-version."grunt"."0.4.5"
     ];
@@ -7809,6 +8139,7 @@
     self.by-version."guifi-earth"."0.2.1";
   by-version."guifi-earth"."0.2.1" = lib.makeOverridable self.buildNodePackage {
     name = "guifi-earth-0.2.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "https://github.com/jmendeth/guifi-earth/tarball/f3ee96835fd4fb0e3e12fadbd2cb782770d64854";
@@ -7818,22 +8149,85 @@
     ];
     buildInputs =
       (self.nativeDeps."guifi-earth" or []);
-    deps = [
-      self.by-version."coffee-script"."1.7.1"
-      self.by-version."jade"."1.5.0"
-      self.by-version."q"."2.0.2"
-      self.by-version."xml2js"."0.4.4"
-      self.by-version."msgpack"."0.2.4"
-    ];
+    deps = {
+      "coffee-script-1.8.0" = self.by-version."coffee-script"."1.8.0";
+      "jade-1.6.0" = self.by-version."jade"."1.6.0";
+      "q-2.0.2" = self.by-version."q"."2.0.2";
+      "xml2js-0.4.4" = self.by-version."xml2js"."0.4.4";
+      "msgpack-0.2.4" = self.by-version."msgpack"."0.2.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "guifi-earth" ];
   };
   "guifi-earth" = self.by-version."guifi-earth"."0.2.1";
+  by-spec."gulp"."*" =
+    self.by-version."gulp"."3.8.8";
+  by-version."gulp"."3.8.8" = lib.makeOverridable self.buildNodePackage {
+    name = "gulp-3.8.8";
+    bin = true;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/gulp/-/gulp-3.8.8.tgz";
+        name = "gulp-3.8.8.tgz";
+        sha1 = "0b0473e7cdfd04c785184513938397d4552cfe96";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."gulp" or []);
+    deps = {
+      "archy-0.0.2" = self.by-version."archy"."0.0.2";
+      "chalk-0.5.1" = self.by-version."chalk"."0.5.1";
+      "deprecated-0.0.1" = self.by-version."deprecated"."0.0.1";
+      "gulp-util-3.0.1" = self.by-version."gulp-util"."3.0.1";
+      "interpret-0.3.6" = self.by-version."interpret"."0.3.6";
+      "liftoff-0.12.1" = self.by-version."liftoff"."0.12.1";
+      "minimist-1.1.0" = self.by-version."minimist"."1.1.0";
+      "orchestrator-0.3.7" = self.by-version."orchestrator"."0.3.7";
+      "pretty-hrtime-0.2.1" = self.by-version."pretty-hrtime"."0.2.1";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+      "tildify-1.0.0" = self.by-version."tildify"."1.0.0";
+      "vinyl-fs-0.3.7" = self.by-version."vinyl-fs"."0.3.7";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "gulp" ];
+  };
+  "gulp" = self.by-version."gulp"."3.8.8";
+  by-spec."gulp-util"."^3.0.0" =
+    self.by-version."gulp-util"."3.0.1";
+  by-version."gulp-util"."3.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "gulp-util-3.0.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/gulp-util/-/gulp-util-3.0.1.tgz";
+        name = "gulp-util-3.0.1.tgz";
+        sha1 = "8214894d05c2bb6cc7f5544918a51ddf88180f00";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."gulp-util" or []);
+    deps = {
+      "chalk-0.5.1" = self.by-version."chalk"."0.5.1";
+      "dateformat-1.0.8-1.2.3" = self.by-version."dateformat"."1.0.8-1.2.3";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "lodash._reinterpolate-2.4.1" = self.by-version."lodash._reinterpolate"."2.4.1";
+      "lodash.template-2.4.1" = self.by-version."lodash.template"."2.4.1";
+      "minimist-1.1.0" = self.by-version."minimist"."1.1.0";
+      "multipipe-0.1.1" = self.by-version."multipipe"."0.1.1";
+      "through2-0.6.1" = self.by-version."through2"."0.6.1";
+      "vinyl-0.4.3" = self.by-version."vinyl"."0.4.3";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "gulp-util" ];
+  };
   by-spec."gzip-size"."^0.1.0" =
     self.by-version."gzip-size"."0.1.1";
   by-version."gzip-size"."0.1.1" = lib.makeOverridable self.buildNodePackage {
     name = "gzip-size-0.1.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/gzip-size/-/gzip-size-0.1.1.tgz";
@@ -7843,10 +8237,10 @@
     ];
     buildInputs =
       (self.nativeDeps."gzip-size" or []);
-    deps = [
-      self.by-version."concat-stream"."1.4.6"
-      self.by-version."zlib-browserify"."0.0.3"
-    ];
+    deps = {
+      "concat-stream-1.4.6" = self.by-version."concat-stream"."1.4.6";
+      "zlib-browserify-0.0.3" = self.by-version."zlib-browserify"."0.0.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "gzip-size" ];
@@ -7855,6 +8249,7 @@
     self.by-version."gzip-size"."0.2.0";
   by-version."gzip-size"."0.2.0" = lib.makeOverridable self.buildNodePackage {
     name = "gzip-size-0.2.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/gzip-size/-/gzip-size-0.2.0.tgz";
@@ -7864,10 +8259,10 @@
     ];
     buildInputs =
       (self.nativeDeps."gzip-size" or []);
-    deps = [
-      self.by-version."concat-stream"."1.4.6"
-      self.by-version."browserify-zlib"."0.1.4"
-    ];
+    deps = {
+      "concat-stream-1.4.6" = self.by-version."concat-stream"."1.4.6";
+      "browserify-zlib-0.1.4" = self.by-version."browserify-zlib"."0.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "gzip-size" ];
@@ -7875,7 +8270,8 @@
   by-spec."gzippo"."*" =
     self.by-version."gzippo"."0.2.0";
   by-version."gzippo"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-gzippo-0.2.0";
+    name = "gzippo-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/gzippo/-/gzippo-0.2.0.tgz";
@@ -7885,9 +8281,9 @@
     ];
     buildInputs =
       (self.nativeDeps."gzippo" or []);
-    deps = [
-      self.by-version."send"."0.8.3"
-    ];
+    deps = {
+      "send-0.9.1" = self.by-version."send"."0.9.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "gzippo" ];
@@ -7897,6 +8293,7 @@
     self.by-version."handlebars"."1.3.0";
   by-version."handlebars"."1.3.0" = lib.makeOverridable self.buildNodePackage {
     name = "handlebars-1.3.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/handlebars/-/handlebars-1.3.0.tgz";
@@ -7906,10 +8303,10 @@
     ];
     buildInputs =
       (self.nativeDeps."handlebars" or []);
-    deps = [
-      self.by-version."optimist"."0.3.7"
-      self.by-version."uglify-js"."2.3.6"
-    ];
+    deps = {
+      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
+      "uglify-js-2.3.6" = self.by-version."uglify-js"."2.3.6";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "handlebars" ];
@@ -7918,6 +8315,7 @@
     self.by-version."has-ansi"."0.1.0";
   by-version."has-ansi"."0.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "has-ansi-0.1.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz";
@@ -7927,9 +8325,9 @@
     ];
     buildInputs =
       (self.nativeDeps."has-ansi" or []);
-    deps = [
-      self.by-version."ansi-regex"."0.2.1"
-    ];
+    deps = {
+      "ansi-regex-0.2.1" = self.by-version."ansi-regex"."0.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "has-ansi" ];
@@ -7937,7 +8335,8 @@
   by-spec."has-color"."~0.1.0" =
     self.by-version."has-color"."0.1.7";
   by-version."has-color"."0.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-has-color-0.1.7";
+    name = "has-color-0.1.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz";
@@ -7947,8 +8346,8 @@
     ];
     buildInputs =
       (self.nativeDeps."has-color" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "has-color" ];
@@ -7956,7 +8355,8 @@
   by-spec."hasher"."~1.2.0" =
     self.by-version."hasher"."1.2.0";
   by-version."hasher"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hasher-1.2.0";
+    name = "hasher-1.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hasher/-/hasher-1.2.0.tgz";
@@ -7966,9 +8366,9 @@
     ];
     buildInputs =
       (self.nativeDeps."hasher" or []);
-    deps = [
-      self.by-version."signals"."1.0.0"
-    ];
+    deps = {
+      "signals-1.0.0" = self.by-version."signals"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hasher" ];
@@ -7976,7 +8376,8 @@
   by-spec."hashring"."1.0.1" =
     self.by-version."hashring"."1.0.1";
   by-version."hashring"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hashring-1.0.1";
+    name = "hashring-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hashring/-/hashring-1.0.1.tgz";
@@ -7986,10 +8387,10 @@
     ];
     buildInputs =
       (self.nativeDeps."hashring" or []);
-    deps = [
-      self.by-version."connection-parse"."0.0.7"
-      self.by-version."simple-lru-cache"."0.0.1"
-    ];
+    deps = {
+      "connection-parse-0.0.7" = self.by-version."connection-parse"."0.0.7";
+      "simple-lru-cache-0.0.1" = self.by-version."simple-lru-cache"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hashring" ];
@@ -7997,7 +8398,8 @@
   by-spec."hat"."*" =
     self.by-version."hat"."0.0.3";
   by-version."hat"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hat-0.0.3";
+    name = "hat-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hat/-/hat-0.0.3.tgz";
@@ -8007,8 +8409,8 @@
     ];
     buildInputs =
       (self.nativeDeps."hat" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hat" ];
@@ -8016,7 +8418,8 @@
   by-spec."hawk"."1.1.1" =
     self.by-version."hawk"."1.1.1";
   by-version."hawk"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hawk-1.1.1";
+    name = "hawk-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz";
@@ -8026,12 +8429,12 @@
     ];
     buildInputs =
       (self.nativeDeps."hawk" or []);
-    deps = [
-      self.by-version."hoek"."0.9.1"
-      self.by-version."boom"."0.4.2"
-      self.by-version."cryptiles"."0.2.2"
-      self.by-version."sntp"."0.2.4"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hawk" ];
@@ -8039,7 +8442,8 @@
   by-spec."hawk"."~0.10.2" =
     self.by-version."hawk"."0.10.2";
   by-version."hawk"."0.10.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hawk-0.10.2";
+    name = "hawk-0.10.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz";
@@ -8049,12 +8453,12 @@
     ];
     buildInputs =
       (self.nativeDeps."hawk" or []);
-    deps = [
-      self.by-version."hoek"."0.7.6"
-      self.by-version."boom"."0.3.8"
-      self.by-version."cryptiles"."0.1.3"
-      self.by-version."sntp"."0.1.4"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hawk" ];
@@ -8062,7 +8466,8 @@
   by-spec."hawk"."~1.0.0" =
     self.by-version."hawk"."1.0.0";
   by-version."hawk"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hawk-1.0.0";
+    name = "hawk-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz";
@@ -8072,12 +8477,12 @@
     ];
     buildInputs =
       (self.nativeDeps."hawk" or []);
-    deps = [
-      self.by-version."hoek"."0.9.1"
-      self.by-version."boom"."0.4.2"
-      self.by-version."cryptiles"."0.2.2"
-      self.by-version."sntp"."0.2.4"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hawk" ];
@@ -8086,6 +8491,7 @@
     self.by-version."he"."0.3.6";
   by-version."he"."0.3.6" = lib.makeOverridable self.buildNodePackage {
     name = "he-0.3.6";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/he/-/he-0.3.6.tgz";
@@ -8095,8 +8501,8 @@
     ];
     buildInputs =
       (self.nativeDeps."he" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "he" ];
@@ -8105,6 +8511,7 @@
     self.by-version."hipache"."0.3.1";
   by-version."hipache"."0.3.1" = lib.makeOverridable self.buildNodePackage {
     name = "hipache-0.3.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hipache/-/hipache-0.3.1.tgz";
@@ -8114,12 +8521,12 @@
     ];
     buildInputs =
       (self.nativeDeps."hipache" or []);
-    deps = [
-      self.by-version."http-proxy"."1.0.2"
-      self.by-version."redis"."0.10.3"
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."minimist"."0.0.8"
-    ];
+    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.0" = self.by-version."lru-cache"."2.5.0";
+      "minimist-0.0.8" = self.by-version."minimist"."0.0.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hipache" ];
@@ -8128,7 +8535,8 @@
   by-spec."hiredis"."*" =
     self.by-version."hiredis"."0.1.17";
   by-version."hiredis"."0.1.17" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hiredis-0.1.17";
+    name = "hiredis-0.1.17";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz";
@@ -8138,10 +8546,10 @@
     ];
     buildInputs =
       (self.nativeDeps."hiredis" or []);
-    deps = [
-      self.by-version."bindings"."1.2.1"
-      self.by-version."nan"."1.1.2"
-    ];
+    deps = {
+      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
+      "nan-1.1.2" = self.by-version."nan"."1.1.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hiredis" ];
@@ -8149,7 +8557,8 @@
   by-spec."hoek"."0.7.x" =
     self.by-version."hoek"."0.7.6";
   by-version."hoek"."0.7.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hoek-0.7.6";
+    name = "hoek-0.7.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz";
@@ -8159,8 +8568,8 @@
     ];
     buildInputs =
       (self.nativeDeps."hoek" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hoek" ];
@@ -8168,7 +8577,8 @@
   by-spec."hoek"."0.9.x" =
     self.by-version."hoek"."0.9.1";
   by-version."hoek"."0.9.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hoek-0.9.1";
+    name = "hoek-0.9.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz";
@@ -8178,8 +8588,8 @@
     ];
     buildInputs =
       (self.nativeDeps."hoek" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hoek" ];
@@ -8187,7 +8597,8 @@
   by-spec."hooker"."~0.2.3" =
     self.by-version."hooker"."0.2.3";
   by-version."hooker"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hooker-0.2.3";
+    name = "hooker-0.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz";
@@ -8197,8 +8608,8 @@
     ];
     buildInputs =
       (self.nativeDeps."hooker" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hooker" ];
@@ -8206,7 +8617,8 @@
   by-spec."hooks"."0.2.1" =
     self.by-version."hooks"."0.2.1";
   by-version."hooks"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hooks-0.2.1";
+    name = "hooks-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/hooks/-/hooks-0.2.1.tgz";
@@ -8216,8 +8628,8 @@
     ];
     buildInputs =
       (self.nativeDeps."hooks" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "hooks" ];
@@ -8225,7 +8637,8 @@
   by-spec."htmlparser2"."3.7.x" =
     self.by-version."htmlparser2"."3.7.3";
   by-version."htmlparser2"."3.7.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-htmlparser2-3.7.3";
+    name = "htmlparser2-3.7.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.7.3.tgz";
@@ -8235,13 +8648,13 @@
     ];
     buildInputs =
       (self.nativeDeps."htmlparser2" or []);
-    deps = [
-      self.by-version."domhandler"."2.2.0"
-      self.by-version."domutils"."1.5.0"
-      self.by-version."domelementtype"."1.1.1"
-      self.by-version."readable-stream"."1.1.13"
-      self.by-version."entities"."1.0.0"
-    ];
+    deps = {
+      "domhandler-2.2.0" = self.by-version."domhandler"."2.2.0";
+      "domutils-1.5.0" = self.by-version."domutils"."1.5.0";
+      "domelementtype-1.1.1" = self.by-version."domelementtype"."1.1.1";
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+      "entities-1.0.0" = self.by-version."entities"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "htmlparser2" ];
@@ -8249,7 +8662,8 @@
   by-spec."http-auth"."2.0.7" =
     self.by-version."http-auth"."2.0.7";
   by-version."http-auth"."2.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-http-auth-2.0.7";
+    name = "http-auth-2.0.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/http-auth/-/http-auth-2.0.7.tgz";
@@ -8259,31 +8673,32 @@
     ];
     buildInputs =
       (self.nativeDeps."http-auth" or []);
-    deps = [
-      self.by-version."coffee-script"."1.6.3"
-      self.by-version."node-uuid"."1.4.1"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "http-auth" ];
   };
   by-spec."http-browserify"."^1.4.0" =
-    self.by-version."http-browserify"."1.5.0";
-  by-version."http-browserify"."1.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-http-browserify-1.5.0";
+    self.by-version."http-browserify"."1.6.0";
+  by-version."http-browserify"."1.6.0" = lib.makeOverridable self.buildNodePackage {
+    name = "http-browserify-1.6.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/http-browserify/-/http-browserify-1.5.0.tgz";
-        name = "http-browserify-1.5.0.tgz";
-        sha1 = "9ecc18daa92289793fed28f9f14b0a0ce6f98040";
+        url = "http://registry.npmjs.org/http-browserify/-/http-browserify-1.6.0.tgz";
+        name = "http-browserify-1.6.0.tgz";
+        sha1 = "0525508f61e351ca7fad6a8a53c8bf104be0a847";
       })
     ];
     buildInputs =
       (self.nativeDeps."http-browserify" or []);
-    deps = [
-      self.by-version."Base64"."0.2.1"
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "Base64-0.2.1" = self.by-version."Base64"."0.2.1";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "http-browserify" ];
@@ -8291,7 +8706,8 @@
   by-spec."http-proxy"."1.0.2" =
     self.by-version."http-proxy"."1.0.2";
   by-version."http-proxy"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-http-proxy-1.0.2";
+    name = "http-proxy-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/http-proxy/-/http-proxy-1.0.2.tgz";
@@ -8301,9 +8717,9 @@
     ];
     buildInputs =
       (self.nativeDeps."http-proxy" or []);
-    deps = [
-      self.by-version."eventemitter3"."0.1.4"
-    ];
+    deps = {
+      "eventemitter3-0.1.5" = self.by-version."eventemitter3"."0.1.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "http-proxy" ];
@@ -8312,6 +8728,7 @@
     self.by-version."http-proxy"."0.10.4";
   by-version."http-proxy"."0.10.4" = lib.makeOverridable self.buildNodePackage {
     name = "http-proxy-0.10.4";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/http-proxy/-/http-proxy-0.10.4.tgz";
@@ -8321,12 +8738,12 @@
     ];
     buildInputs =
       (self.nativeDeps."http-proxy" or []);
-    deps = [
-      self.by-version."colors"."0.6.2"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."pkginfo"."0.3.0"
-      self.by-version."utile"."0.2.1"
-    ];
+    deps = {
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+      "pkginfo-0.3.0" = self.by-version."pkginfo"."0.3.0";
+      "utile-0.2.1" = self.by-version."utile"."0.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "http-proxy" ];
@@ -8334,7 +8751,8 @@
   by-spec."http-signature"."0.9.11" =
     self.by-version."http-signature"."0.9.11";
   by-version."http-signature"."0.9.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-http-signature-0.9.11";
+    name = "http-signature-0.9.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/http-signature/-/http-signature-0.9.11.tgz";
@@ -8344,11 +8762,11 @@
     ];
     buildInputs =
       (self.nativeDeps."http-signature" or []);
-    deps = [
-      self.by-version."assert-plus"."0.1.2"
-      self.by-version."asn1"."0.1.11"
-      self.by-version."ctype"."0.5.2"
-    ];
+    deps = {
+      "assert-plus-0.1.2" = self.by-version."assert-plus"."0.1.2";
+      "asn1-0.1.11" = self.by-version."asn1"."0.1.11";
+      "ctype-0.5.2" = self.by-version."ctype"."0.5.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "http-signature" ];
@@ -8356,7 +8774,8 @@
   by-spec."http-signature"."~0.10.0" =
     self.by-version."http-signature"."0.10.0";
   by-version."http-signature"."0.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-http-signature-0.10.0";
+    name = "http-signature-0.10.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz";
@@ -8366,11 +8785,11 @@
     ];
     buildInputs =
       (self.nativeDeps."http-signature" or []);
-    deps = [
-      self.by-version."assert-plus"."0.1.2"
-      self.by-version."asn1"."0.1.11"
-      self.by-version."ctype"."0.5.2"
-    ];
+    deps = {
+      "assert-plus-0.1.2" = self.by-version."assert-plus"."0.1.2";
+      "asn1-0.1.11" = self.by-version."asn1"."0.1.11";
+      "ctype-0.5.2" = self.by-version."ctype"."0.5.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "http-signature" ];
@@ -8378,7 +8797,8 @@
   by-spec."https-browserify"."~0.0.0" =
     self.by-version."https-browserify"."0.0.0";
   by-version."https-browserify"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-https-browserify-0.0.0";
+    name = "https-browserify-0.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz";
@@ -8388,8 +8808,8 @@
     ];
     buildInputs =
       (self.nativeDeps."https-browserify" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "https-browserify" ];
@@ -8397,7 +8817,8 @@
   by-spec."humanize"."~0.0.9" =
     self.by-version."humanize"."0.0.9";
   by-version."humanize"."0.0.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-humanize-0.0.9";
+    name = "humanize-0.0.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/humanize/-/humanize-0.0.9.tgz";
@@ -8407,8 +8828,8 @@
     ];
     buildInputs =
       (self.nativeDeps."humanize" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "humanize" ];
@@ -8416,7 +8837,8 @@
   by-spec."i"."0.3.x" =
     self.by-version."i"."0.3.2";
   by-version."i"."0.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-i-0.3.2";
+    name = "i-0.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/i/-/i-0.3.2.tgz";
@@ -8426,8 +8848,8 @@
     ];
     buildInputs =
       (self.nativeDeps."i" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "i" ];
@@ -8435,7 +8857,8 @@
   by-spec."i18next"."*" =
     self.by-version."i18next"."1.7.4";
   by-version."i18next"."1.7.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-i18next-1.7.4";
+    name = "i18next-1.7.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/i18next/-/i18next-1.7.4.tgz";
@@ -8445,9 +8868,9 @@
     ];
     buildInputs =
       (self.nativeDeps."i18next" or []);
-    deps = [
-      self.by-version."cookies"."0.5.0"
-    ];
+    deps = {
+      "cookies-0.5.0" = self.by-version."cookies"."0.5.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "i18next" ];
@@ -8457,6 +8880,7 @@
     self.by-version."ibrik"."1.1.1";
   by-version."ibrik"."1.1.1" = lib.makeOverridable self.buildNodePackage {
     name = "ibrik-1.1.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ibrik/-/ibrik-1.1.1.tgz";
@@ -8466,43 +8890,25 @@
     ];
     buildInputs =
       (self.nativeDeps."ibrik" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-      self.by-version."coffee-script-redux"."2.0.0-beta8"
-      self.by-version."istanbul"."0.2.16"
-      self.by-version."estraverse"."1.5.1"
-      self.by-version."escodegen"."1.1.0"
-      self.by-version."which"."1.0.5"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."optimist"."0.6.1"
-    ];
+    deps = {
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "coffee-script-redux-2.0.0-beta8" = self.by-version."coffee-script-redux"."2.0.0-beta8";
+      "istanbul-0.2.16" = self.by-version."istanbul"."0.2.16";
+      "estraverse-1.5.1" = self.by-version."estraverse"."1.5.1";
+      "escodegen-1.1.0" = self.by-version."escodegen"."1.1.0";
+      "which-1.0.5" = self.by-version."which"."1.0.5";
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ibrik" ];
   };
-  by-spec."iconv-lite"."0.4.3" =
-    self.by-version."iconv-lite"."0.4.3";
-  by-version."iconv-lite"."0.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-iconv-lite-0.4.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.3.tgz";
-        name = "iconv-lite-0.4.3.tgz";
-        sha1 = "9e7887793b769cc695eb22d2546a4fd2d79b7a1e";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."iconv-lite" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "iconv-lite" ];
-  };
   by-spec."iconv-lite"."0.4.4" =
     self.by-version."iconv-lite"."0.4.4";
   by-version."iconv-lite"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-iconv-lite-0.4.4";
+    name = "iconv-lite-0.4.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz";
@@ -8512,8 +8918,8 @@
     ];
     buildInputs =
       (self.nativeDeps."iconv-lite" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "iconv-lite" ];
@@ -8521,7 +8927,8 @@
   by-spec."iconv-lite"."~0.2.11" =
     self.by-version."iconv-lite"."0.2.11";
   by-version."iconv-lite"."0.2.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-iconv-lite-0.2.11";
+    name = "iconv-lite-0.2.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz";
@@ -8531,8 +8938,8 @@
     ];
     buildInputs =
       (self.nativeDeps."iconv-lite" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "iconv-lite" ];
@@ -8540,20 +8947,21 @@
   by-spec."iconv-lite"."~0.4.3" =
     self.by-version."iconv-lite"."0.4.4";
   by-spec."ieee754"."~1.1.1" =
-    self.by-version."ieee754"."1.1.3";
-  by-version."ieee754"."1.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ieee754-1.1.3";
+    self.by-version."ieee754"."1.1.4";
+  by-version."ieee754"."1.1.4" = lib.makeOverridable self.buildNodePackage {
+    name = "ieee754-1.1.4";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ieee754/-/ieee754-1.1.3.tgz";
-        name = "ieee754-1.1.3.tgz";
-        sha1 = "1d4baae872e15ba69f6ab7588a965e09d485ec50";
+        url = "http://registry.npmjs.org/ieee754/-/ieee754-1.1.4.tgz";
+        name = "ieee754-1.1.4.tgz";
+        sha1 = "e3ec65200d4ad531d359aabdb6d3ec812699a30b";
       })
     ];
     buildInputs =
       (self.nativeDeps."ieee754" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ieee754" ];
@@ -8561,7 +8969,8 @@
   by-spec."indexof"."0.0.1" =
     self.by-version."indexof"."0.0.1";
   by-version."indexof"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-indexof-0.0.1";
+    name = "indexof-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz";
@@ -8571,8 +8980,8 @@
     ];
     buildInputs =
       (self.nativeDeps."indexof" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "indexof" ];
@@ -8580,7 +8989,8 @@
   by-spec."inflight"."~1.0.1" =
     self.by-version."inflight"."1.0.1";
   by-version."inflight"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-inflight-1.0.1";
+    name = "inflight-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/inflight/-/inflight-1.0.1.tgz";
@@ -8590,9 +9000,9 @@
     ];
     buildInputs =
       (self.nativeDeps."inflight" or []);
-    deps = [
-      self.by-version."once"."1.3.0"
-    ];
+    deps = {
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "inflight" ];
@@ -8600,7 +9010,8 @@
   by-spec."inherits"."1" =
     self.by-version."inherits"."1.0.0";
   by-version."inherits"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-inherits-1.0.0";
+    name = "inherits-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz";
@@ -8610,8 +9021,8 @@
     ];
     buildInputs =
       (self.nativeDeps."inherits" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "inherits" ];
@@ -8621,7 +9032,8 @@
   by-spec."inherits"."2" =
     self.by-version."inherits"."2.0.1";
   by-version."inherits"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-inherits-2.0.1";
+    name = "inherits-2.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
@@ -8631,8 +9043,8 @@
     ];
     buildInputs =
       (self.nativeDeps."inherits" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "inherits" ];
@@ -8650,7 +9062,8 @@
   by-spec."ini"."1" =
     self.by-version."ini"."1.2.1";
   by-version."ini"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ini-1.2.1";
+    name = "ini-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ini/-/ini-1.2.1.tgz";
@@ -8660,8 +9073,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ini" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ini" ];
@@ -8673,7 +9086,8 @@
   by-spec."ini"."~1.1.0" =
     self.by-version."ini"."1.1.0";
   by-version."ini"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ini-1.1.0";
+    name = "ini-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ini/-/ini-1.1.0.tgz";
@@ -8683,34 +9097,35 @@
     ];
     buildInputs =
       (self.nativeDeps."ini" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ini" ];
   };
   by-spec."ini"."~1.2.0" =
     self.by-version."ini"."1.2.1";
-  by-spec."init-package-json"."~0.1.1" =
-    self.by-version."init-package-json"."0.1.2";
-  by-version."init-package-json"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-init-package-json-0.1.2";
+  by-spec."init-package-json"."~1.0.0" =
+    self.by-version."init-package-json"."1.0.1";
+  by-version."init-package-json"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "init-package-json-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/init-package-json/-/init-package-json-0.1.2.tgz";
-        name = "init-package-json-0.1.2.tgz";
-        sha1 = "9e232ccae0d5cf712cd7773b0f1fcd59b7edc2da";
+        url = "http://registry.npmjs.org/init-package-json/-/init-package-json-1.0.1.tgz";
+        name = "init-package-json-1.0.1.tgz";
+        sha1 = "c01b08cc90504ebc448d57b468e66fc08293e8a8";
       })
     ];
     buildInputs =
       (self.nativeDeps."init-package-json" or []);
-    deps = [
-      self.by-version."glob"."4.0.5"
-      self.by-version."promzard"."0.2.2"
-      self.by-version."read"."1.0.5"
-      self.by-version."read-package-json"."1.2.6"
-      self.by-version."semver"."3.0.1"
-    ];
+    deps = {
+      "glob-4.0.5" = self.by-version."glob"."4.0.5";
+      "promzard-0.2.2" = self.by-version."promzard"."0.2.2";
+      "read-1.0.5" = self.by-version."read"."1.0.5";
+      "read-package-json-1.2.7" = self.by-version."read-package-json"."1.2.7";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "init-package-json" ];
@@ -8718,7 +9133,8 @@
   by-spec."inline-source-map"."~0.3.0" =
     self.by-version."inline-source-map"."0.3.0";
   by-version."inline-source-map"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-inline-source-map-0.3.0";
+    name = "inline-source-map-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/inline-source-map/-/inline-source-map-0.3.0.tgz";
@@ -8728,9 +9144,9 @@
     ];
     buildInputs =
       (self.nativeDeps."inline-source-map" or []);
-    deps = [
-      self.by-version."source-map"."0.1.38"
-    ];
+    deps = {
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "inline-source-map" ];
@@ -8739,6 +9155,7 @@
     self.by-version."insert-module-globals"."6.1.0";
   by-version."insert-module-globals"."6.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "insert-module-globals-6.1.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/insert-module-globals/-/insert-module-globals-6.1.0.tgz";
@@ -8748,22 +9165,43 @@
     ];
     buildInputs =
       (self.nativeDeps."insert-module-globals" or []);
-    deps = [
-      self.by-version."JSONStream"."0.7.4"
-      self.by-version."concat-stream"."1.4.6"
-      self.by-version."lexical-scope"."1.1.0"
-      self.by-version."process"."0.6.0"
-      self.by-version."through"."2.3.4"
-      self.by-version."xtend"."3.0.0"
-    ];
+    deps = {
+      "JSONStream-0.7.4" = self.by-version."JSONStream"."0.7.4";
+      "concat-stream-1.4.6" = self.by-version."concat-stream"."1.4.6";
+      "lexical-scope-1.1.0" = self.by-version."lexical-scope"."1.1.0";
+      "process-0.6.0" = self.by-version."process"."0.6.0";
+      "through-2.3.4" = self.by-version."through"."2.3.4";
+      "xtend-3.0.0" = self.by-version."xtend"."3.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "insert-module-globals" ];
   };
+  by-spec."interpret"."^0.3.2" =
+    self.by-version."interpret"."0.3.6";
+  by-version."interpret"."0.3.6" = lib.makeOverridable self.buildNodePackage {
+    name = "interpret-0.3.6";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/interpret/-/interpret-0.3.6.tgz";
+        name = "interpret-0.3.6.tgz";
+        sha1 = "51b6927f372a92f1e4a2a5af0d14699de9618799";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."interpret" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "interpret" ];
+  };
   by-spec."ipaddr.js"."0.1.2" =
     self.by-version."ipaddr.js"."0.1.2";
   by-version."ipaddr.js"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ipaddr.js-0.1.2";
+    name = "ipaddr.js-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.2.tgz";
@@ -8773,8 +9211,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ipaddr.js" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ipaddr.js" ];
@@ -8782,7 +9220,8 @@
   by-spec."ironhorse"."*" =
     self.by-version."ironhorse"."0.0.10";
   by-version."ironhorse"."0.0.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ironhorse-0.0.10";
+    name = "ironhorse-0.0.10";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ironhorse/-/ironhorse-0.0.10.tgz";
@@ -8792,24 +9231,24 @@
     ];
     buildInputs =
       (self.nativeDeps."ironhorse" or []);
-    deps = [
-      self.by-version."underscore"."1.5.2"
-      self.by-version."winston"."0.7.3"
-      self.by-version."nconf"."0.6.9"
-      self.by-version."fs-walk"."0.0.1"
-      self.by-version."async"."0.9.0"
-      self.by-version."express"."4.8.5"
-      self.by-version."jade"."1.5.0"
-      self.by-version."passport"."0.2.0"
-      self.by-version."passport-http"."0.2.2"
-      self.by-version."js-yaml"."3.1.0"
-      self.by-version."mongoose"."3.8.15"
-      self.by-version."gridfs-stream"."0.5.1"
-      self.by-version."temp"."0.8.1"
-      self.by-version."kue"."0.8.5"
-      self.by-version."redis"."0.12.1"
-      self.by-version."hiredis"."0.1.17"
-    ];
+    deps = {
+      "underscore-1.5.2" = self.by-version."underscore"."1.5.2";
+      "winston-0.7.3" = self.by-version."winston"."0.7.3";
+      "nconf-0.6.9" = self.by-version."nconf"."0.6.9";
+      "fs-walk-0.0.1" = self.by-version."fs-walk"."0.0.1";
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+      "express-4.9.0" = self.by-version."express"."4.9.0";
+      "jade-1.6.0" = self.by-version."jade"."1.6.0";
+      "passport-0.2.1" = self.by-version."passport"."0.2.1";
+      "passport-http-0.2.2" = self.by-version."passport-http"."0.2.2";
+      "js-yaml-3.2.2" = self.by-version."js-yaml"."3.2.2";
+      "mongoose-3.8.16" = self.by-version."mongoose"."3.8.16";
+      "gridfs-stream-0.5.1" = self.by-version."gridfs-stream"."0.5.1";
+      "temp-0.8.1" = self.by-version."temp"."0.8.1";
+      "kue-0.8.6" = self.by-version."kue"."0.8.6";
+      "redis-0.12.1" = self.by-version."redis"."0.12.1";
+      "hiredis-0.1.17" = self.by-version."hiredis"."0.1.17";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ironhorse" ];
@@ -8818,7 +9257,8 @@
   by-spec."is-promise"."~1" =
     self.by-version."is-promise"."1.0.1";
   by-version."is-promise"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-is-promise-1.0.1";
+    name = "is-promise-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz";
@@ -8828,8 +9268,8 @@
     ];
     buildInputs =
       (self.nativeDeps."is-promise" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "is-promise" ];
@@ -8837,7 +9277,8 @@
   by-spec."is-utf8"."^0.2.0" =
     self.by-version."is-utf8"."0.2.0";
   by-version."is-utf8"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-is-utf8-0.2.0";
+    name = "is-utf8-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/is-utf8/-/is-utf8-0.2.0.tgz";
@@ -8847,8 +9288,8 @@
     ];
     buildInputs =
       (self.nativeDeps."is-utf8" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "is-utf8" ];
@@ -8856,7 +9297,8 @@
   by-spec."isarray"."0.0.1" =
     self.by-version."isarray"."0.0.1";
   by-version."isarray"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-isarray-0.0.1";
+    name = "isarray-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
@@ -8866,70 +9308,53 @@
     ];
     buildInputs =
       (self.nativeDeps."isarray" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "isarray" ];
   };
   by-spec."isarray"."~0.0.1" =
     self.by-version."isarray"."0.0.1";
-  by-spec."isbinaryfile"."~2.0.0" =
-    self.by-version."isbinaryfile"."2.0.1";
-  by-version."isbinaryfile"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-isbinaryfile-2.0.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/isbinaryfile/-/isbinaryfile-2.0.1.tgz";
-        name = "isbinaryfile-2.0.1.tgz";
-        sha1 = "b92369bfdaf616027133e077c5ba145f36699d55";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."isbinaryfile" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "isbinaryfile" ];
-  };
   by-spec."istanbul"."*" =
-    self.by-version."istanbul"."0.3.0";
-  by-version."istanbul"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "istanbul-0.3.0";
+    self.by-version."istanbul"."0.3.2";
+  by-version."istanbul"."0.3.2" = lib.makeOverridable self.buildNodePackage {
+    name = "istanbul-0.3.2";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.3.0.tgz";
-        name = "istanbul-0.3.0.tgz";
-        sha1 = "5b7179104942adbb0ec3e140d5e3d071db55abbd";
+        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.3.2.tgz";
+        name = "istanbul-0.3.2.tgz";
+        sha1 = "e1ce9a9ec80d51dcbbeca82149f3befdc21d6835";
       })
     ];
     buildInputs =
       (self.nativeDeps."istanbul" or []);
-    deps = [
-      self.by-version."esprima"."1.2.2"
-      self.by-version."escodegen"."1.3.3"
-      self.by-version."handlebars"."1.3.0"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."nopt"."3.0.1"
-      self.by-version."fileset"."0.1.5"
-      self.by-version."which"."1.0.5"
-      self.by-version."async"."0.9.0"
-      self.by-version."abbrev"."1.0.5"
-      self.by-version."wordwrap"."0.0.2"
-      self.by-version."resolve"."0.7.4"
-      self.by-version."js-yaml"."3.1.0"
-      self.by-version."once"."1.3.0"
-    ];
+    deps = {
+      "esprima-1.2.2" = self.by-version."esprima"."1.2.2";
+      "escodegen-1.3.3" = self.by-version."escodegen"."1.3.3";
+      "handlebars-1.3.0" = self.by-version."handlebars"."1.3.0";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "nopt-3.0.1" = self.by-version."nopt"."3.0.1";
+      "fileset-0.1.5" = self.by-version."fileset"."0.1.5";
+      "which-1.0.5" = self.by-version."which"."1.0.5";
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+      "abbrev-1.0.5" = self.by-version."abbrev"."1.0.5";
+      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
+      "resolve-0.7.4" = self.by-version."resolve"."0.7.4";
+      "js-yaml-3.2.2" = self.by-version."js-yaml"."3.2.2";
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "istanbul" ];
   };
-  "istanbul" = self.by-version."istanbul"."0.3.0";
+  "istanbul" = self.by-version."istanbul"."0.3.2";
   by-spec."istanbul"."~0.2.4" =
     self.by-version."istanbul"."0.2.16";
   by-version."istanbul"."0.2.16" = lib.makeOverridable self.buildNodePackage {
     name = "istanbul-0.2.16";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/istanbul/-/istanbul-0.2.16.tgz";
@@ -8939,57 +9364,60 @@
     ];
     buildInputs =
       (self.nativeDeps."istanbul" or []);
-    deps = [
-      self.by-version."esprima"."1.2.2"
-      self.by-version."escodegen"."1.3.3"
-      self.by-version."handlebars"."1.3.0"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."nopt"."3.0.1"
-      self.by-version."fileset"."0.1.5"
-      self.by-version."which"."1.0.5"
-      self.by-version."async"."0.9.0"
-      self.by-version."abbrev"."1.0.5"
-      self.by-version."wordwrap"."0.0.2"
-      self.by-version."resolve"."0.7.4"
-      self.by-version."js-yaml"."3.1.0"
-    ];
+    deps = {
+      "esprima-1.2.2" = self.by-version."esprima"."1.2.2";
+      "escodegen-1.3.3" = self.by-version."escodegen"."1.3.3";
+      "handlebars-1.3.0" = self.by-version."handlebars"."1.3.0";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "nopt-3.0.1" = self.by-version."nopt"."3.0.1";
+      "fileset-0.1.5" = self.by-version."fileset"."0.1.5";
+      "which-1.0.5" = self.by-version."which"."1.0.5";
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+      "abbrev-1.0.5" = self.by-version."abbrev"."1.0.5";
+      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
+      "resolve-0.7.4" = self.by-version."resolve"."0.7.4";
+      "js-yaml-3.2.2" = self.by-version."js-yaml"."3.2.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "istanbul" ];
   };
   by-spec."istanbul"."~0.3.0" =
-    self.by-version."istanbul"."0.3.0";
+    self.by-version."istanbul"."0.3.2";
   by-spec."jade"."*" =
-    self.by-version."jade"."1.5.0";
-  by-version."jade"."1.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "jade-1.5.0";
+    self.by-version."jade"."1.6.0";
+  by-version."jade"."1.6.0" = lib.makeOverridable self.buildNodePackage {
+    name = "jade-1.6.0";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jade/-/jade-1.5.0.tgz";
-        name = "jade-1.5.0.tgz";
-        sha1 = "74a93a5a290e11296c8b919b7a4d72301739b27e";
+        url = "http://registry.npmjs.org/jade/-/jade-1.6.0.tgz";
+        name = "jade-1.6.0.tgz";
+        sha1 = "c02540cd97b1014db3c15743746bc3dcd54170f9";
       })
     ];
     buildInputs =
       (self.nativeDeps."jade" or []);
-    deps = [
-      self.by-version."commander"."2.1.0"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."transformers"."2.1.0"
-      self.by-version."character-parser"."1.2.0"
-      self.by-version."monocle"."1.1.51"
-      self.by-version."with"."3.0.1"
-      self.by-version."constantinople"."2.0.1"
-    ];
+    deps = {
+      "character-parser-1.2.0" = self.by-version."character-parser"."1.2.0";
+      "commander-2.1.0" = self.by-version."commander"."2.1.0";
+      "constantinople-2.0.1" = self.by-version."constantinople"."2.0.1";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "monocle-1.1.51" = self.by-version."monocle"."1.1.51";
+      "transformers-2.1.0" = self.by-version."transformers"."2.1.0";
+      "void-elements-1.0.0" = self.by-version."void-elements"."1.0.0";
+      "with-3.0.1" = self.by-version."with"."3.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jade" ];
   };
-  "jade" = self.by-version."jade"."1.5.0";
+  "jade" = self.by-version."jade"."1.6.0";
   by-spec."jade"."0.26.3" =
     self.by-version."jade"."0.26.3";
   by-version."jade"."0.26.3" = lib.makeOverridable self.buildNodePackage {
     name = "jade-0.26.3";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jade/-/jade-0.26.3.tgz";
@@ -8999,10 +9427,10 @@
     ];
     buildInputs =
       (self.nativeDeps."jade" or []);
-    deps = [
-      self.by-version."commander"."0.6.1"
-      self.by-version."mkdirp"."0.3.0"
-    ];
+    deps = {
+      "commander-0.6.1" = self.by-version."commander"."0.6.1";
+      "mkdirp-0.3.0" = self.by-version."mkdirp"."0.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jade" ];
@@ -9011,6 +9439,7 @@
     self.by-version."jade"."0.27.0";
   by-version."jade"."0.27.0" = lib.makeOverridable self.buildNodePackage {
     name = "jade-0.27.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jade/-/jade-0.27.0.tgz";
@@ -9020,10 +9449,10 @@
     ];
     buildInputs =
       (self.nativeDeps."jade" or []);
-    deps = [
-      self.by-version."commander"."0.6.1"
-      self.by-version."mkdirp"."0.3.0"
-    ];
+    deps = {
+      "commander-0.6.1" = self.by-version."commander"."0.6.1";
+      "mkdirp-0.3.0" = self.by-version."mkdirp"."0.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jade" ];
@@ -9032,6 +9461,7 @@
     self.by-version."jade"."1.1.5";
   by-version."jade"."1.1.5" = lib.makeOverridable self.buildNodePackage {
     name = "jade-1.1.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jade/-/jade-1.1.5.tgz";
@@ -9041,25 +9471,26 @@
     ];
     buildInputs =
       (self.nativeDeps."jade" or []);
-    deps = [
-      self.by-version."commander"."2.1.0"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."transformers"."2.1.0"
-      self.by-version."character-parser"."1.2.0"
-      self.by-version."monocle"."1.1.51"
-      self.by-version."with"."2.0.0"
-      self.by-version."constantinople"."1.0.2"
-    ];
+    deps = {
+      "commander-2.1.0" = self.by-version."commander"."2.1.0";
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+      "transformers-2.1.0" = self.by-version."transformers"."2.1.0";
+      "character-parser-1.2.0" = self.by-version."character-parser"."1.2.0";
+      "monocle-1.1.51" = self.by-version."monocle"."1.1.51";
+      "with-2.0.0" = self.by-version."with"."2.0.0";
+      "constantinople-1.0.2" = self.by-version."constantinople"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jade" ];
   };
   by-spec."jade".">= 0.0.1" =
-    self.by-version."jade"."1.5.0";
+    self.by-version."jade"."1.6.0";
   by-spec."jade"."~0.35.0" =
     self.by-version."jade"."0.35.0";
   by-version."jade"."0.35.0" = lib.makeOverridable self.buildNodePackage {
     name = "jade-0.35.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jade/-/jade-0.35.0.tgz";
@@ -9069,66 +9500,69 @@
     ];
     buildInputs =
       (self.nativeDeps."jade" or []);
-    deps = [
-      self.by-version."commander"."2.0.0"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."transformers"."2.1.0"
-      self.by-version."character-parser"."1.2.0"
-      self.by-version."monocle"."1.1.50"
-      self.by-version."with"."1.1.1"
-      self.by-version."constantinople"."1.0.2"
-    ];
+    deps = {
+      "commander-2.0.0" = self.by-version."commander"."2.0.0";
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+      "transformers-2.1.0" = self.by-version."transformers"."2.1.0";
+      "character-parser-1.2.0" = self.by-version."character-parser"."1.2.0";
+      "monocle-1.1.50" = self.by-version."monocle"."1.1.50";
+      "with-1.1.1" = self.by-version."with"."1.1.1";
+      "constantinople-1.0.2" = self.by-version."constantinople"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jade" ];
   };
   by-spec."jayschema"."*" =
-    self.by-version."jayschema"."0.2.8";
-  by-version."jayschema"."0.2.8" = lib.makeOverridable self.buildNodePackage {
-    name = "jayschema-0.2.8";
+    self.by-version."jayschema"."0.3.0";
+  by-version."jayschema"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "jayschema-0.3.0";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jayschema/-/jayschema-0.2.8.tgz";
-        name = "jayschema-0.2.8.tgz";
-        sha1 = "ea7883f501a4cdc7b91f48889f5774ea43159f17";
+        url = "http://registry.npmjs.org/jayschema/-/jayschema-0.3.0.tgz";
+        name = "jayschema-0.3.0.tgz";
+        sha1 = "21089cbc978630932014f4508d7f709467d3d300";
       })
     ];
     buildInputs =
       (self.nativeDeps."jayschema" or []);
-    deps = [
-      self.by-version."when"."3.1.0"
-    ];
+    deps = {
+      "when-3.4.5" = self.by-version."when"."3.4.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jayschema" ];
   };
-  "jayschema" = self.by-version."jayschema"."0.2.8";
+  "jayschema" = self.by-version."jayschema"."0.3.0";
   by-spec."js-yaml"."*" =
-    self.by-version."js-yaml"."3.1.0";
-  by-version."js-yaml"."3.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "js-yaml-3.1.0";
+    self.by-version."js-yaml"."3.2.2";
+  by-version."js-yaml"."3.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "js-yaml-3.2.2";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/js-yaml/-/js-yaml-3.1.0.tgz";
-        name = "js-yaml-3.1.0.tgz";
-        sha1 = "36ba02e618c50748e772dd352428904cbbadcf44";
+        url = "http://registry.npmjs.org/js-yaml/-/js-yaml-3.2.2.tgz";
+        name = "js-yaml-3.2.2.tgz";
+        sha1 = "a34e77fe8d5e10270e225d21d07790fa17fd2927";
       })
     ];
     buildInputs =
       (self.nativeDeps."js-yaml" or []);
-    deps = [
-      self.by-version."argparse"."0.1.15"
-      self.by-version."esprima"."1.0.4"
-    ];
+    deps = {
+      "argparse-0.1.15" = self.by-version."argparse"."0.1.15";
+      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "js-yaml" ];
   };
-  "js-yaml" = self.by-version."js-yaml"."3.1.0";
+  "js-yaml" = self.by-version."js-yaml"."3.2.2";
   by-spec."js-yaml"."0.3.x" =
     self.by-version."js-yaml"."0.3.7";
   by-version."js-yaml"."0.3.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-js-yaml-0.3.7";
+    name = "js-yaml-0.3.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/js-yaml/-/js-yaml-0.3.7.tgz";
@@ -9138,8 +9572,8 @@
     ];
     buildInputs =
       (self.nativeDeps."js-yaml" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "js-yaml" ];
@@ -9148,6 +9582,7 @@
     self.by-version."js-yaml"."2.1.0";
   by-version."js-yaml"."2.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "js-yaml-2.1.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/js-yaml/-/js-yaml-2.1.0.tgz";
@@ -9157,10 +9592,10 @@
     ];
     buildInputs =
       (self.nativeDeps."js-yaml" or []);
-    deps = [
-      self.by-version."argparse"."0.1.15"
-      self.by-version."esprima"."1.0.4"
-    ];
+    deps = {
+      "argparse-0.1.15" = self.by-version."argparse"."0.1.15";
+      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "js-yaml" ];
@@ -9169,6 +9604,7 @@
     self.by-version."js-yaml"."3.0.1";
   by-version."js-yaml"."3.0.1" = lib.makeOverridable self.buildNodePackage {
     name = "js-yaml-3.0.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/js-yaml/-/js-yaml-3.0.1.tgz";
@@ -9178,20 +9614,21 @@
     ];
     buildInputs =
       (self.nativeDeps."js-yaml" or []);
-    deps = [
-      self.by-version."argparse"."0.1.15"
-      self.by-version."esprima"."1.0.4"
-    ];
+    deps = {
+      "argparse-0.1.15" = self.by-version."argparse"."0.1.15";
+      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "js-yaml" ];
   };
   by-spec."js-yaml"."3.x" =
-    self.by-version."js-yaml"."3.1.0";
+    self.by-version."js-yaml"."3.2.2";
   by-spec."js-yaml"."~2.0.5" =
     self.by-version."js-yaml"."2.0.5";
   by-version."js-yaml"."2.0.5" = lib.makeOverridable self.buildNodePackage {
     name = "js-yaml-2.0.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz";
@@ -9201,10 +9638,10 @@
     ];
     buildInputs =
       (self.nativeDeps."js-yaml" or []);
-    deps = [
-      self.by-version."argparse"."0.1.15"
-      self.by-version."esprima"."1.0.4"
-    ];
+    deps = {
+      "argparse-0.1.15" = self.by-version."argparse"."0.1.15";
+      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "js-yaml" ];
@@ -9213,6 +9650,7 @@
     self.by-version."js-yaml"."3.0.2";
   by-version."js-yaml"."3.0.2" = lib.makeOverridable self.buildNodePackage {
     name = "js-yaml-3.0.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/js-yaml/-/js-yaml-3.0.2.tgz";
@@ -9222,10 +9660,10 @@
     ];
     buildInputs =
       (self.nativeDeps."js-yaml" or []);
-    deps = [
-      self.by-version."argparse"."0.1.15"
-      self.by-version."esprima"."1.0.4"
-    ];
+    deps = {
+      "argparse-0.1.15" = self.by-version."argparse"."0.1.15";
+      "esprima-1.0.4" = self.by-version."esprima"."1.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "js-yaml" ];
@@ -9234,6 +9672,7 @@
     self.by-version."jsesc"."0.4.3";
   by-version."jsesc"."0.4.3" = lib.makeOverridable self.buildNodePackage {
     name = "jsesc-0.4.3";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jsesc/-/jsesc-0.4.3.tgz";
@@ -9243,8 +9682,8 @@
     ];
     buildInputs =
       (self.nativeDeps."jsesc" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jsesc" ];
@@ -9252,39 +9691,41 @@
   by-spec."jsesc"."~0.4.3" =
     self.by-version."jsesc"."0.4.3";
   by-spec."jshint"."*" =
-    self.by-version."jshint"."2.5.4";
-  by-version."jshint"."2.5.4" = lib.makeOverridable self.buildNodePackage {
-    name = "jshint-2.5.4";
+    self.by-version."jshint"."2.5.5";
+  by-version."jshint"."2.5.5" = lib.makeOverridable self.buildNodePackage {
+    name = "jshint-2.5.5";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jshint/-/jshint-2.5.4.tgz";
-        name = "jshint-2.5.4.tgz";
-        sha1 = "3dc82cb37b381b65f0e95ec7a616d39b4e95faef";
+        url = "http://registry.npmjs.org/jshint/-/jshint-2.5.5.tgz";
+        name = "jshint-2.5.5.tgz";
+        sha1 = "9f24958dcd11c5e2ceba96ec92225873b02f4775";
       })
     ];
     buildInputs =
       (self.nativeDeps."jshint" or []);
-    deps = [
-      self.by-version."shelljs"."0.3.0"
-      self.by-version."underscore"."1.6.0"
-      self.by-version."cli"."0.6.3"
-      self.by-version."minimatch"."0.4.0"
-      self.by-version."htmlparser2"."3.7.3"
-      self.by-version."console-browserify"."1.1.0"
-      self.by-version."exit"."0.1.2"
-      self.by-version."strip-json-comments"."0.1.3"
-    ];
+    deps = {
+      "shelljs-0.3.0" = self.by-version."shelljs"."0.3.0";
+      "underscore-1.6.0" = self.by-version."underscore"."1.6.0";
+      "cli-0.6.4" = self.by-version."cli"."0.6.4";
+      "minimatch-0.4.0" = self.by-version."minimatch"."0.4.0";
+      "htmlparser2-3.7.3" = self.by-version."htmlparser2"."3.7.3";
+      "console-browserify-1.1.0" = self.by-version."console-browserify"."1.1.0";
+      "exit-0.1.2" = self.by-version."exit"."0.1.2";
+      "strip-json-comments-0.1.3" = self.by-version."strip-json-comments"."0.1.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jshint" ];
   };
-  "jshint" = self.by-version."jshint"."2.5.4";
+  "jshint" = self.by-version."jshint"."2.5.5";
   by-spec."jshint"."~2.5.0" =
-    self.by-version."jshint"."2.5.4";
+    self.by-version."jshint"."2.5.5";
   by-spec."json-schema"."0.2.2" =
     self.by-version."json-schema"."0.2.2";
   by-version."json-schema"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-json-schema-0.2.2";
+    name = "json-schema-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz";
@@ -9294,8 +9735,8 @@
     ];
     buildInputs =
       (self.nativeDeps."json-schema" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "json-schema" ];
@@ -9303,7 +9744,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-json-stable-stringify-0.0.1";
+    name = "json-stable-stringify-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz";
@@ -9313,9 +9755,9 @@
     ];
     buildInputs =
       (self.nativeDeps."json-stable-stringify" or []);
-    deps = [
-      self.by-version."jsonify"."0.0.0"
-    ];
+    deps = {
+      "jsonify-0.0.0" = self.by-version."jsonify"."0.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "json-stable-stringify" ];
@@ -9323,7 +9765,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-json-stringify-safe-3.0.0";
+    name = "json-stringify-safe-3.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz";
@@ -9333,8 +9776,8 @@
     ];
     buildInputs =
       (self.nativeDeps."json-stringify-safe" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "json-stringify-safe" ];
@@ -9342,7 +9785,8 @@
   by-spec."json-stringify-safe"."~5.0.0" =
     self.by-version."json-stringify-safe"."5.0.0";
   by-version."json-stringify-safe"."5.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-json-stringify-safe-5.0.0";
+    name = "json-stringify-safe-5.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz";
@@ -9352,8 +9796,8 @@
     ];
     buildInputs =
       (self.nativeDeps."json-stringify-safe" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "json-stringify-safe" ];
@@ -9361,7 +9805,8 @@
   by-spec."jsonfile"."~1.0.1" =
     self.by-version."jsonfile"."1.0.1";
   by-version."jsonfile"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-jsonfile-1.0.1";
+    name = "jsonfile-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jsonfile/-/jsonfile-1.0.1.tgz";
@@ -9371,8 +9816,8 @@
     ];
     buildInputs =
       (self.nativeDeps."jsonfile" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jsonfile" ];
@@ -9380,7 +9825,8 @@
   by-spec."jsonify"."~0.0.0" =
     self.by-version."jsonify"."0.0.0";
   by-version."jsonify"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-jsonify-0.0.0";
+    name = "jsonify-0.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
@@ -9390,8 +9836,8 @@
     ];
     buildInputs =
       (self.nativeDeps."jsonify" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jsonify" ];
@@ -9399,7 +9845,8 @@
   by-spec."jsonparse"."0.0.5" =
     self.by-version."jsonparse"."0.0.5";
   by-version."jsonparse"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-jsonparse-0.0.5";
+    name = "jsonparse-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz";
@@ -9409,8 +9856,8 @@
     ];
     buildInputs =
       (self.nativeDeps."jsonparse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jsonparse" ];
@@ -9419,6 +9866,7 @@
     self.by-version."jsontool"."7.0.2";
   by-version."jsontool"."7.0.2" = lib.makeOverridable self.buildNodePackage {
     name = "jsontool-7.0.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jsontool/-/jsontool-7.0.2.tgz";
@@ -9428,8 +9876,8 @@
     ];
     buildInputs =
       (self.nativeDeps."jsontool" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jsontool" ];
@@ -9438,7 +9886,8 @@
   by-spec."jsprim"."0.3.0" =
     self.by-version."jsprim"."0.3.0";
   by-version."jsprim"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-jsprim-0.3.0";
+    name = "jsprim-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jsprim/-/jsprim-0.3.0.tgz";
@@ -9448,11 +9897,11 @@
     ];
     buildInputs =
       (self.nativeDeps."jsprim" or []);
-    deps = [
-      self.by-version."extsprintf"."1.0.0"
-      self.by-version."json-schema"."0.2.2"
-      self.by-version."verror"."1.3.3"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jsprim" ];
@@ -9460,7 +9909,8 @@
   by-spec."jstransform"."~3.0.0" =
     self.by-version."jstransform"."3.0.0";
   by-version."jstransform"."3.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-jstransform-3.0.0";
+    name = "jstransform-3.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz";
@@ -9470,66 +9920,68 @@
     ];
     buildInputs =
       (self.nativeDeps."jstransform" or []);
-    deps = [
-      self.by-version."base62"."0.1.1"
-      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
-      self.by-version."source-map"."0.1.31"
-    ];
+    deps = {
+      "base62-0.1.1" = self.by-version."base62"."0.1.1";
+      "esprima-fb-3001.1.0-dev-harmony-fb" = self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
+      "source-map-0.1.31" = self.by-version."source-map"."0.1.31";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "jstransform" ];
   };
   by-spec."karma"."*" =
-    self.by-version."karma"."0.12.22";
-  by-version."karma"."0.12.22" = lib.makeOverridable self.buildNodePackage {
-    name = "karma-0.12.22";
+    self.by-version."karma"."0.12.23";
+  by-version."karma"."0.12.23" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-0.12.23";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma/-/karma-0.12.22.tgz";
-        name = "karma-0.12.22.tgz";
-        sha1 = "05073db2a1ba0638f15cb76a515563be34460dc7";
+        url = "http://registry.npmjs.org/karma/-/karma-0.12.23.tgz";
+        name = "karma-0.12.23.tgz";
+        sha1 = "2a01041019234f76f59b8c7c2128f06c839fe8c3";
       })
     ];
     buildInputs =
       (self.nativeDeps."karma" or []);
-    deps = [
-      self.by-version."di"."0.0.1"
-      self.by-version."socket.io"."0.9.17"
-      self.by-version."chokidar"."0.8.4"
-      self.by-version."glob"."3.2.11"
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."http-proxy"."0.10.4"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."q"."0.9.7"
-      self.by-version."colors"."0.6.2"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."mime"."1.2.11"
-      self.by-version."log4js"."0.6.18"
-      self.by-version."useragent"."2.0.9"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."connect"."2.12.0"
-      self.by-version."source-map"."0.1.38"
-    ];
+    deps = {
+      "di-0.0.1" = self.by-version."di"."0.0.1";
+      "socket.io-0.9.17" = self.by-version."socket.io"."0.9.17";
+      "chokidar-0.8.4" = self.by-version."chokidar"."0.8.4";
+      "glob-3.2.11" = self.by-version."glob"."3.2.11";
+      "minimatch-0.2.14" = self.by-version."minimatch"."0.2.14";
+      "http-proxy-0.10.4" = self.by-version."http-proxy"."0.10.4";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+      "q-0.9.7" = self.by-version."q"."0.9.7";
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "log4js-0.6.21" = self.by-version."log4js"."0.6.21";
+      "useragent-2.0.9" = self.by-version."useragent"."2.0.9";
+      "graceful-fs-2.0.3" = self.by-version."graceful-fs"."2.0.3";
+      "connect-2.12.0" = self.by-version."connect"."2.12.0";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "karma" ];
   };
-  "karma" = self.by-version."karma"."0.12.22";
+  "karma" = self.by-version."karma"."0.12.23";
   by-spec."karma".">=0.11.11" =
-    self.by-version."karma"."0.12.22";
+    self.by-version."karma"."0.12.23";
   by-spec."karma".">=0.12.8" =
-    self.by-version."karma"."0.12.22";
+    self.by-version."karma"."0.12.23";
   by-spec."karma".">=0.9" =
-    self.by-version."karma"."0.12.22";
+    self.by-version."karma"."0.12.23";
   by-spec."karma".">=0.9.3" =
-    self.by-version."karma"."0.12.22";
+    self.by-version."karma"."0.12.23";
   by-spec."karma"."~0.12.0" =
-    self.by-version."karma"."0.12.22";
+    self.by-version."karma"."0.12.23";
   by-spec."karma-chrome-launcher"."*" =
     self.by-version."karma-chrome-launcher"."0.1.4";
   by-version."karma-chrome-launcher"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-chrome-launcher-0.1.4";
+    name = "karma-chrome-launcher-0.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.1.4.tgz";
@@ -9539,10 +9991,10 @@
     ];
     buildInputs =
       (self.nativeDeps."karma-chrome-launcher" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
-      self.by-version."karma"."0.12.22"
+      self.by-version."karma"."0.12.23"
     ];
     passthru.names = [ "karma-chrome-launcher" ];
   };
@@ -9550,7 +10002,8 @@
   by-spec."karma-coverage"."*" =
     self.by-version."karma-coverage"."0.2.6";
   by-version."karma-coverage"."0.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-coverage-0.2.6";
+    name = "karma-coverage-0.2.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/karma-coverage/-/karma-coverage-0.2.6.tgz";
@@ -9560,14 +10013,14 @@
     ];
     buildInputs =
       (self.nativeDeps."karma-coverage" or []);
-    deps = [
-      self.by-version."istanbul"."0.3.0"
-      self.by-version."ibrik"."1.1.1"
-      self.by-version."dateformat"."1.0.8-1.2.3"
-      self.by-version."minimatch"."0.3.0"
-    ];
+    deps = {
+      "istanbul-0.3.2" = self.by-version."istanbul"."0.3.2";
+      "ibrik-1.1.1" = self.by-version."ibrik"."1.1.1";
+      "dateformat-1.0.8-1.2.3" = self.by-version."dateformat"."1.0.8-1.2.3";
+      "minimatch-0.3.0" = self.by-version."minimatch"."0.3.0";
+    };
     peerDependencies = [
-      self.by-version."karma"."0.12.22"
+      self.by-version."karma"."0.12.23"
     ];
     passthru.names = [ "karma-coverage" ];
   };
@@ -9575,7 +10028,8 @@
   by-spec."karma-junit-reporter"."*" =
     self.by-version."karma-junit-reporter"."0.2.2";
   by-version."karma-junit-reporter"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-junit-reporter-0.2.2";
+    name = "karma-junit-reporter-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-0.2.2.tgz";
@@ -9585,41 +10039,43 @@
     ];
     buildInputs =
       (self.nativeDeps."karma-junit-reporter" or []);
-    deps = [
-      self.by-version."xmlbuilder"."0.4.2"
-    ];
+    deps = {
+      "xmlbuilder-0.4.2" = self.by-version."xmlbuilder"."0.4.2";
+    };
     peerDependencies = [
-      self.by-version."karma"."0.12.22"
+      self.by-version."karma"."0.12.23"
     ];
     passthru.names = [ "karma-junit-reporter" ];
   };
   "karma-junit-reporter" = self.by-version."karma-junit-reporter"."0.2.2";
   by-spec."karma-mocha"."*" =
-    self.by-version."karma-mocha"."0.1.8";
-  by-version."karma-mocha"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-mocha-0.1.8";
+    self.by-version."karma-mocha"."0.1.9";
+  by-version."karma-mocha"."0.1.9" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-mocha-0.1.9";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.8.tgz";
-        name = "karma-mocha-0.1.8.tgz";
-        sha1 = "7f086bd06ab6151cbd5b0cf1614c15344963fdf6";
+        url = "http://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.9.tgz";
+        name = "karma-mocha-0.1.9.tgz";
+        sha1 = "d777a98d655e08330f7893e833c369f82bd10191";
       })
     ];
     buildInputs =
       (self.nativeDeps."karma-mocha" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
-      self.by-version."karma"."0.12.22"
+      self.by-version."karma"."0.12.23"
       self.by-version."mocha"."1.21.4"
     ];
     passthru.names = [ "karma-mocha" ];
   };
-  "karma-mocha" = self.by-version."karma-mocha"."0.1.8";
+  "karma-mocha" = self.by-version."karma-mocha"."0.1.9";
   by-spec."karma-requirejs"."*" =
     self.by-version."karma-requirejs"."0.2.2";
   by-version."karma-requirejs"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-requirejs-0.2.2";
+    name = "karma-requirejs-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/karma-requirejs/-/karma-requirejs-0.2.2.tgz";
@@ -9629,11 +10085,11 @@
     ];
     buildInputs =
       (self.nativeDeps."karma-requirejs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
-      self.by-version."karma"."0.12.22"
-      self.by-version."requirejs"."2.1.14"
+      self.by-version."karma"."0.12.23"
+      self.by-version."requirejs"."2.1.15"
     ];
     passthru.names = [ "karma-requirejs" ];
   };
@@ -9641,7 +10097,8 @@
   by-spec."karma-sauce-launcher"."*" =
     self.by-version."karma-sauce-launcher"."0.2.10";
   by-version."karma-sauce-launcher"."0.2.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-sauce-launcher-0.2.10";
+    name = "karma-sauce-launcher-0.2.10";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-0.2.10.tgz";
@@ -9651,14 +10108,14 @@
     ];
     buildInputs =
       (self.nativeDeps."karma-sauce-launcher" or []);
-    deps = [
-      self.by-version."wd"."0.3.4"
-      self.by-version."sauce-connect-launcher"."0.6.1"
-      self.by-version."q"."0.9.7"
-      self.by-version."saucelabs"."0.1.1"
-    ];
+    deps = {
+      "wd-0.3.7" = self.by-version."wd"."0.3.7";
+      "sauce-connect-launcher-0.6.1" = self.by-version."sauce-connect-launcher"."0.6.1";
+      "q-0.9.7" = self.by-version."q"."0.9.7";
+      "saucelabs-0.1.1" = self.by-version."saucelabs"."0.1.1";
+    };
     peerDependencies = [
-      self.by-version."karma"."0.12.22"
+      self.by-version."karma"."0.12.23"
     ];
     passthru.names = [ "karma-sauce-launcher" ];
   };
@@ -9666,7 +10123,8 @@
   by-spec."keen.io"."~0.1.2" =
     self.by-version."keen.io"."0.1.2";
   by-version."keen.io"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-keen.io-0.1.2";
+    name = "keen.io-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/keen.io/-/keen.io-0.1.2.tgz";
@@ -9676,10 +10134,10 @@
     ];
     buildInputs =
       (self.nativeDeps."keen.io" or []);
-    deps = [
-      self.by-version."superagent"."0.13.0"
-      self.by-version."underscore"."1.5.2"
-    ];
+    deps = {
+      "superagent-0.13.0" = self.by-version."superagent"."0.13.0";
+      "underscore-1.5.2" = self.by-version."underscore"."1.5.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "keen.io" ];
@@ -9687,7 +10145,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-keep-alive-agent-0.0.1";
+    name = "keep-alive-agent-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/keep-alive-agent/-/keep-alive-agent-0.0.1.tgz";
@@ -9697,8 +10156,8 @@
     ];
     buildInputs =
       (self.nativeDeps."keep-alive-agent" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "keep-alive-agent" ];
@@ -9706,7 +10165,8 @@
   by-spec."kerberos"."0.0.3" =
     self.by-version."kerberos"."0.0.3";
   by-version."kerberos"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-kerberos-0.0.3";
+    name = "kerberos-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/kerberos/-/kerberos-0.0.3.tgz";
@@ -9716,8 +10176,28 @@
     ];
     buildInputs =
       (self.nativeDeps."kerberos" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "kerberos" ];
+  };
+  by-spec."kerberos"."0.0.4" =
+    self.by-version."kerberos"."0.0.4";
+  by-version."kerberos"."0.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "kerberos-0.0.4";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/kerberos/-/kerberos-0.0.4.tgz";
+        name = "kerberos-0.0.4.tgz";
+        sha1 = "11836638f729a2f6c5bae056a7d7a15898c9ba7c";
+      })
     ];
+    buildInputs =
+      (self.nativeDeps."kerberos" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "kerberos" ];
@@ -9725,7 +10205,8 @@
   by-spec."kew"."~0.1.7" =
     self.by-version."kew"."0.1.7";
   by-version."kew"."0.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-kew-0.1.7";
+    name = "kew-0.1.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/kew/-/kew-0.1.7.tgz";
@@ -9735,8 +10216,8 @@
     ];
     buildInputs =
       (self.nativeDeps."kew" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "kew" ];
@@ -9744,7 +10225,8 @@
   by-spec."keygrip"."~1.0.0" =
     self.by-version."keygrip"."1.0.1";
   by-version."keygrip"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-keygrip-1.0.1";
+    name = "keygrip-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/keygrip/-/keygrip-1.0.1.tgz";
@@ -9754,8 +10236,8 @@
     ];
     buildInputs =
       (self.nativeDeps."keygrip" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "keygrip" ];
@@ -9763,7 +10245,8 @@
   by-spec."keypress"."0.1.x" =
     self.by-version."keypress"."0.1.0";
   by-version."keypress"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-keypress-0.1.0";
+    name = "keypress-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz";
@@ -9773,166 +10256,94 @@
     ];
     buildInputs =
       (self.nativeDeps."keypress" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "keypress" ];
   };
   by-spec."keypress"."~0.1.0" =
     self.by-version."keypress"."0.1.0";
-  by-spec."knockout"."~3.1.0" =
-    self.by-version."knockout"."3.1.0";
-  by-version."knockout"."3.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-knockout-3.1.0";
+  by-spec."knockout"."~3.2.0" =
+    self.by-version."knockout"."3.2.0";
+  by-version."knockout"."3.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "knockout-3.2.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/knockout/-/knockout-3.1.0.tgz";
-        name = "knockout-3.1.0.tgz";
-        sha1 = "8960ecfafa20e1d5795badfbf6256693f17b7bf5";
+        url = "http://registry.npmjs.org/knockout/-/knockout-3.2.0.tgz";
+        name = "knockout-3.2.0.tgz";
+        sha1 = "3f394eb67d721bea115e2d0d7be082256ca46a11";
       })
     ];
     buildInputs =
       (self.nativeDeps."knockout" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "knockout" ];
   };
   by-spec."knox"."*" =
-    self.by-version."knox"."0.9.0";
-  by-version."knox"."0.9.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-knox-0.9.0";
+    self.by-version."knox"."0.9.1";
+  by-version."knox"."0.9.1" = lib.makeOverridable self.buildNodePackage {
+    name = "knox-0.9.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/knox/-/knox-0.9.0.tgz";
-        name = "knox-0.9.0.tgz";
-        sha1 = "8810e1dfe4332db505a796f5c9a11aee8b393e2c";
+        url = "http://registry.npmjs.org/knox/-/knox-0.9.1.tgz";
+        name = "knox-0.9.1.tgz";
+        sha1 = "3e53398e3d2307d27822abdcd74cd6aa32dc1ccf";
       })
     ];
     buildInputs =
       (self.nativeDeps."knox" or []);
-    deps = [
-      self.by-version."mime"."1.2.11"
-      self.by-version."xml2js"."0.4.4"
-      self.by-version."debug"."1.0.4"
-      self.by-version."stream-counter"."1.0.0"
-      self.by-version."once"."1.3.0"
-    ];
+    deps = {
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "xml2js-0.4.4" = self.by-version."xml2js"."0.4.4";
+      "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.0" = self.by-version."once"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "knox" ];
   };
-  "knox" = self.by-version."knox"."0.9.0";
-  by-spec."koa"."*" =
-    self.by-version."koa"."0.10.0";
-  by-version."koa"."0.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-koa-0.10.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/koa/-/koa-0.10.0.tgz";
-        name = "koa-0.10.0.tgz";
-        sha1 = "876f6ab92ee19b89c7157a108d3c046d48377146";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."koa" or []);
-    deps = [
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."statuses"."1.0.4"
-      self.by-version."accepts"."1.0.7"
-      self.by-version."type-is"."1.3.2"
-      self.by-version."mime-types"."1.0.2"
-      self.by-version."media-typer"."0.2.0"
-      self.by-version."finished"."1.2.2"
-      self.by-version."co"."3.1.0"
-      self.by-version."debug"."1.0.4"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."koa-compose"."2.3.0"
-      self.by-version."koa-is-json"."1.0.0"
-      self.by-version."cookies"."0.5.0"
-      self.by-version."delegates"."0.0.3"
-      self.by-version."dethroy"."1.0.2"
-      self.by-version."error-inject"."1.0.0"
-      self.by-version."vary"."0.1.0"
-      self.by-version."parseurl"."1.2.0"
-      self.by-version."only"."0.0.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "koa" ];
-  };
-  by-spec."koa-compose"."~2.3.0" =
-    self.by-version."koa-compose"."2.3.0";
-  by-version."koa-compose"."2.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-koa-compose-2.3.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/koa-compose/-/koa-compose-2.3.0.tgz";
-        name = "koa-compose-2.3.0.tgz";
-        sha1 = "4617fa832a16412a56967334304efd797d6ed35c";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."koa-compose" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "koa-compose" ];
-  };
-  by-spec."koa-is-json"."~1.0.0" =
-    self.by-version."koa-is-json"."1.0.0";
-  by-version."koa-is-json"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-koa-is-json-1.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz";
-        name = "koa-is-json-1.0.0.tgz";
-        sha1 = "273c07edcdcb8df6a2c1ab7d59ee76491451ec14";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."koa-is-json" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "koa-is-json" ];
-  };
+  "knox" = self.by-version."knox"."0.9.1";
   by-spec."kue"."*" =
-    self.by-version."kue"."0.8.5";
-  by-version."kue"."0.8.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-kue-0.8.5";
+    self.by-version."kue"."0.8.6";
+  by-version."kue"."0.8.6" = lib.makeOverridable self.buildNodePackage {
+    name = "kue-0.8.6";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/kue/-/kue-0.8.5.tgz";
-        name = "kue-0.8.5.tgz";
-        sha1 = "253d7a9a0bdd086100e48bbcce6c7dfad3381ed4";
+        url = "http://registry.npmjs.org/kue/-/kue-0.8.6.tgz";
+        name = "kue-0.8.6.tgz";
+        sha1 = "62e707137d2e90f98fb2dda7f5b8543dbc9de11e";
       })
     ];
     buildInputs =
       (self.nativeDeps."kue" or []);
-    deps = [
-      self.by-version."redis"."0.10.3"
-      self.by-version."express"."3.1.2"
-      self.by-version."jade"."1.1.5"
-      self.by-version."stylus"."0.42.2"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."lodash-deep"."1.2.1"
-      self.by-version."nib"."0.5.0"
-      self.by-version."reds"."0.2.4"
-    ];
+    deps = {
+      "redis-0.10.3" = self.by-version."redis"."0.10.3";
+      "express-3.1.2" = self.by-version."express"."3.1.2";
+      "jade-1.1.5" = self.by-version."jade"."1.1.5";
+      "stylus-0.42.2" = self.by-version."stylus"."0.42.2";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "lodash-deep-1.2.1" = self.by-version."lodash-deep"."1.2.1";
+      "nib-0.5.0" = self.by-version."nib"."0.5.0";
+      "reds-0.2.4" = self.by-version."reds"."0.2.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "kue" ];
   };
-  "kue" = self.by-version."kue"."0.8.5";
+  "kue" = self.by-version."kue"."0.8.6";
   by-spec."labeled-stream-splicer"."^1.0.0" =
     self.by-version."labeled-stream-splicer"."1.0.0";
   by-version."labeled-stream-splicer"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-labeled-stream-splicer-1.0.0";
+    name = "labeled-stream-splicer-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-1.0.0.tgz";
@@ -9942,11 +10353,11 @@
     ];
     buildInputs =
       (self.nativeDeps."labeled-stream-splicer" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-      self.by-version."isarray"."0.0.1"
-      self.by-version."stream-splicer"."1.3.0"
-    ];
+    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.0" = self.by-version."stream-splicer"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "labeled-stream-splicer" ];
@@ -9954,7 +10365,8 @@
   by-spec."lazy"."~1.0.11" =
     self.by-version."lazy"."1.0.11";
   by-version."lazy"."1.0.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lazy-1.0.11";
+    name = "lazy-1.0.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz";
@@ -9964,8 +10376,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lazy" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lazy" ];
@@ -9973,7 +10385,8 @@
   by-spec."lazystream"."~0.1.0" =
     self.by-version."lazystream"."0.1.0";
   by-version."lazystream"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lazystream-0.1.0";
+    name = "lazystream-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lazystream/-/lazystream-0.1.0.tgz";
@@ -9983,9 +10396,9 @@
     ];
     buildInputs =
       (self.nativeDeps."lazystream" or []);
-    deps = [
-      self.by-version."readable-stream"."1.0.31"
-    ];
+    deps = {
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lazystream" ];
@@ -9993,7 +10406,8 @@
   by-spec."lcov-parse"."0.0.6" =
     self.by-version."lcov-parse"."0.0.6";
   by-version."lcov-parse"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lcov-parse-0.0.6";
+    name = "lcov-parse-0.0.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.6.tgz";
@@ -10003,8 +10417,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lcov-parse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lcov-parse" ];
@@ -10013,6 +10427,7 @@
     self.by-version."lcov-result-merger"."1.0.0";
   by-version."lcov-result-merger"."1.0.0" = lib.makeOverridable self.buildNodePackage {
     name = "lcov-result-merger-1.0.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lcov-result-merger/-/lcov-result-merger-1.0.0.tgz";
@@ -10022,48 +10437,50 @@
     ];
     buildInputs =
       (self.nativeDeps."lcov-result-merger" or []);
-    deps = [
-      self.by-version."through2"."0.5.1"
-      self.by-version."vinyl"."0.2.3"
-      self.by-version."vinyl-fs"."0.3.6"
-    ];
+    deps = {
+      "through2-0.5.1" = self.by-version."through2"."0.5.1";
+      "vinyl-0.2.3" = self.by-version."vinyl"."0.2.3";
+      "vinyl-fs-0.3.7" = self.by-version."vinyl-fs"."0.3.7";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lcov-result-merger" ];
   };
   "lcov-result-merger" = self.by-version."lcov-result-merger"."1.0.0";
   by-spec."less"."*" =
-    self.by-version."less"."1.7.4";
-  by-version."less"."1.7.4" = lib.makeOverridable self.buildNodePackage {
-    name = "less-1.7.4";
+    self.by-version."less"."1.7.5";
+  by-version."less"."1.7.5" = lib.makeOverridable self.buildNodePackage {
+    name = "less-1.7.5";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/less/-/less-1.7.4.tgz";
-        name = "less-1.7.4.tgz";
-        sha1 = "1db03afd0d1b848d898d10d2690d79ee3834026d";
+        url = "http://registry.npmjs.org/less/-/less-1.7.5.tgz";
+        name = "less-1.7.5.tgz";
+        sha1 = "4f220cf7288a27eaca739df6e4808a2d4c0d5756";
       })
     ];
     buildInputs =
       (self.nativeDeps."less" or []);
-    deps = [
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."mime"."1.2.11"
-      self.by-version."request"."2.34.0"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."clean-css"."2.1.8"
-      self.by-version."source-map"."0.1.38"
-    ];
+    deps = {
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "request-2.40.0" = self.by-version."request"."2.40.0";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "clean-css-2.2.15" = self.by-version."clean-css"."2.2.15";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "less" ];
   };
-  "less" = self.by-version."less"."1.7.4";
+  "less" = self.by-version."less"."1.7.5";
   by-spec."less"."^1.7.2" =
-    self.by-version."less"."1.7.4";
+    self.by-version."less"."1.7.5";
   by-spec."lexical-scope"."~1.1.0" =
     self.by-version."lexical-scope"."1.1.0";
   by-version."lexical-scope"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lexical-scope-1.1.0";
+    name = "lexical-scope-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lexical-scope/-/lexical-scope-1.1.0.tgz";
@@ -10073,9 +10490,9 @@
     ];
     buildInputs =
       (self.nativeDeps."lexical-scope" or []);
-    deps = [
-      self.by-version."astw"."1.1.0"
-    ];
+    deps = {
+      "astw-1.1.0" = self.by-version."astw"."1.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lexical-scope" ];
@@ -10083,7 +10500,8 @@
   by-spec."libxmljs"."~0.10.0" =
     self.by-version."libxmljs"."0.10.0";
   by-version."libxmljs"."0.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-libxmljs-0.10.0";
+    name = "libxmljs-0.10.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/libxmljs/-/libxmljs-0.10.0.tgz";
@@ -10093,49 +10511,75 @@
     ];
     buildInputs =
       (self.nativeDeps."libxmljs" or []);
-    deps = [
-      self.by-version."bindings"."1.1.1"
-      self.by-version."nan"."1.1.2"
-    ];
+    deps = {
+      "bindings-1.1.1" = self.by-version."bindings"."1.1.1";
+      "nan-1.1.2" = self.by-version."nan"."1.1.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "libxmljs" ];
   };
   by-spec."libyaml"."*" =
-    self.by-version."libyaml"."0.2.4";
-  by-version."libyaml"."0.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-libyaml-0.2.4";
+    self.by-version."libyaml"."0.2.5";
+  by-version."libyaml"."0.2.5" = lib.makeOverridable self.buildNodePackage {
+    name = "libyaml-0.2.5";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/libyaml/-/libyaml-0.2.4.tgz";
-        name = "libyaml-0.2.4.tgz";
-        sha1 = "46b6abe00ef0bc0ac60ca599c0e7c80ff920e959";
+        url = "http://registry.npmjs.org/libyaml/-/libyaml-0.2.5.tgz";
+        name = "libyaml-0.2.5.tgz";
+        sha1 = "f34a920b728d8c1eddea56a6fa8698c28ceab6df";
       })
     ];
     buildInputs =
       (self.nativeDeps."libyaml" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "libyaml" ];
   };
-  "libyaml" = self.by-version."libyaml"."0.2.4";
-  by-spec."lockfile"."~0.4.0" =
-    self.by-version."lockfile"."0.4.3";
-  by-version."lockfile"."0.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lockfile-0.4.3";
+  "libyaml" = self.by-version."libyaml"."0.2.5";
+  by-spec."liftoff"."^0.12.0" =
+    self.by-version."liftoff"."0.12.1";
+  by-version."liftoff"."0.12.1" = lib.makeOverridable self.buildNodePackage {
+    name = "liftoff-0.12.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/lockfile/-/lockfile-0.4.3.tgz";
-        name = "lockfile-0.4.3.tgz";
-        sha1 = "79b965ee9b32d9dd24b59cf81205e6dcb6d3b224";
+        url = "http://registry.npmjs.org/liftoff/-/liftoff-0.12.1.tgz";
+        name = "liftoff-0.12.1.tgz";
+        sha1 = "bcaa49759c68396b83b984ad0b2d8cc226f9526d";
       })
     ];
     buildInputs =
-      (self.nativeDeps."lockfile" or []);
-    deps = [
+      (self.nativeDeps."liftoff" or []);
+    deps = {
+      "findup-sync-0.1.3" = self.by-version."findup-sync"."0.1.3";
+      "resolve-0.7.4" = self.by-version."resolve"."0.7.4";
+      "minimist-0.2.0" = self.by-version."minimist"."0.2.0";
+      "extend-1.3.0" = self.by-version."extend"."1.3.0";
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "liftoff" ];
+  };
+  by-spec."lockfile"."~1.0.0" =
+    self.by-version."lockfile"."1.0.0";
+  by-version."lockfile"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "lockfile-1.0.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lockfile/-/lockfile-1.0.0.tgz";
+        name = "lockfile-1.0.0.tgz";
+        sha1 = "b3a7609dda6012060083bacb0ab0ecbca58e9203";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lockfile" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lockfile" ];
@@ -10143,7 +10587,8 @@
   by-spec."lodash"."2.4.1" =
     self.by-version."lodash"."2.4.1";
   by-version."lodash"."2.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-2.4.1";
+    name = "lodash-2.4.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz";
@@ -10153,8 +10598,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lodash" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lodash" ];
@@ -10166,7 +10611,8 @@
   by-spec."lodash"."~0.9.2" =
     self.by-version."lodash"."0.9.2";
   by-version."lodash"."0.9.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-0.9.2";
+    name = "lodash-0.9.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz";
@@ -10176,8 +10622,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lodash" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lodash" ];
@@ -10185,7 +10631,8 @@
   by-spec."lodash"."~1.0.1" =
     self.by-version."lodash"."1.0.1";
   by-version."lodash"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-1.0.1";
+    name = "lodash-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lodash/-/lodash-1.0.1.tgz";
@@ -10195,8 +10642,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lodash" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lodash" ];
@@ -10206,7 +10653,8 @@
   by-spec."lodash-deep"."^1.1.0" =
     self.by-version."lodash-deep"."1.2.1";
   by-version."lodash-deep"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-deep-1.2.1";
+    name = "lodash-deep-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lodash-deep/-/lodash-deep-1.2.1.tgz";
@@ -10216,9 +10664,9 @@
     ];
     buildInputs =
       (self.nativeDeps."lodash-deep" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-    ];
+    deps = {
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lodash-deep" ];
@@ -10226,7 +10674,8 @@
   by-spec."lodash-node"."~2.4.1" =
     self.by-version."lodash-node"."2.4.1";
   by-version."lodash-node"."2.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-node-2.4.1";
+    name = "lodash-node-2.4.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lodash-node/-/lodash-node-2.4.1.tgz";
@@ -10236,16 +10685,342 @@
     ];
     buildInputs =
       (self.nativeDeps."lodash-node" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lodash-node" ];
   };
+  by-spec."lodash._escapehtmlchar"."~2.4.1" =
+    self.by-version."lodash._escapehtmlchar"."2.4.1";
+  by-version."lodash._escapehtmlchar"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash._escapehtmlchar-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz";
+        name = "lodash._escapehtmlchar-2.4.1.tgz";
+        sha1 = "df67c3bb6b7e8e1e831ab48bfa0795b92afe899d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash._escapehtmlchar" or []);
+    deps = {
+      "lodash._htmlescapes-2.4.1" = self.by-version."lodash._htmlescapes"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash._escapehtmlchar" ];
+  };
+  by-spec."lodash._escapestringchar"."~2.4.1" =
+    self.by-version."lodash._escapestringchar"."2.4.1";
+  by-version."lodash._escapestringchar"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash._escapestringchar-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz";
+        name = "lodash._escapestringchar-2.4.1.tgz";
+        sha1 = "ecfe22618a2ade50bfeea43937e51df66f0edb72";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash._escapestringchar" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash._escapestringchar" ];
+  };
+  by-spec."lodash._htmlescapes"."~2.4.1" =
+    self.by-version."lodash._htmlescapes"."2.4.1";
+  by-version."lodash._htmlescapes"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash._htmlescapes-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz";
+        name = "lodash._htmlescapes-2.4.1.tgz";
+        sha1 = "32d14bf0844b6de6f8b62a051b4f67c228b624cb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash._htmlescapes" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash._htmlescapes" ];
+  };
+  by-spec."lodash._isnative"."~2.4.1" =
+    self.by-version."lodash._isnative"."2.4.1";
+  by-version."lodash._isnative"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash._isnative-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz";
+        name = "lodash._isnative-2.4.1.tgz";
+        sha1 = "3ea6404b784a7be836c7b57580e1cdf79b14832c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash._isnative" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash._isnative" ];
+  };
+  by-spec."lodash._objecttypes"."~2.4.1" =
+    self.by-version."lodash._objecttypes"."2.4.1";
+  by-version."lodash._objecttypes"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash._objecttypes-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz";
+        name = "lodash._objecttypes-2.4.1.tgz";
+        sha1 = "7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash._objecttypes" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash._objecttypes" ];
+  };
+  by-spec."lodash._reinterpolate"."^2.4.1" =
+    self.by-version."lodash._reinterpolate"."2.4.1";
+  by-version."lodash._reinterpolate"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash._reinterpolate-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz";
+        name = "lodash._reinterpolate-2.4.1.tgz";
+        sha1 = "4f1227aa5a8711fc632f5b07a1f4607aab8b3222";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash._reinterpolate" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash._reinterpolate" ];
+  };
+  by-spec."lodash._reinterpolate"."~2.4.1" =
+    self.by-version."lodash._reinterpolate"."2.4.1";
+  by-spec."lodash._reunescapedhtml"."~2.4.1" =
+    self.by-version."lodash._reunescapedhtml"."2.4.1";
+  by-version."lodash._reunescapedhtml"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash._reunescapedhtml-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz";
+        name = "lodash._reunescapedhtml-2.4.1.tgz";
+        sha1 = "747c4fc40103eb3bb8a0976e571f7a2659e93ba7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash._reunescapedhtml" or []);
+    deps = {
+      "lodash._htmlescapes-2.4.1" = self.by-version."lodash._htmlescapes"."2.4.1";
+      "lodash.keys-2.4.1" = self.by-version."lodash.keys"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash._reunescapedhtml" ];
+  };
+  by-spec."lodash._shimkeys"."~2.4.1" =
+    self.by-version."lodash._shimkeys"."2.4.1";
+  by-version."lodash._shimkeys"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash._shimkeys-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz";
+        name = "lodash._shimkeys-2.4.1.tgz";
+        sha1 = "6e9cc9666ff081f0b5a6c978b83e242e6949d203";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash._shimkeys" or []);
+    deps = {
+      "lodash._objecttypes-2.4.1" = self.by-version."lodash._objecttypes"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash._shimkeys" ];
+  };
+  by-spec."lodash.defaults"."~2.4.1" =
+    self.by-version."lodash.defaults"."2.4.1";
+  by-version."lodash.defaults"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash.defaults-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.4.1.tgz";
+        name = "lodash.defaults-2.4.1.tgz";
+        sha1 = "a7e8885f05e68851144b6e12a8f3678026bc4c54";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash.defaults" or []);
+    deps = {
+      "lodash.keys-2.4.1" = self.by-version."lodash.keys"."2.4.1";
+      "lodash._objecttypes-2.4.1" = self.by-version."lodash._objecttypes"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash.defaults" ];
+  };
+  by-spec."lodash.escape"."~2.4.1" =
+    self.by-version."lodash.escape"."2.4.1";
+  by-version."lodash.escape"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash.escape-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash.escape/-/lodash.escape-2.4.1.tgz";
+        name = "lodash.escape-2.4.1.tgz";
+        sha1 = "2ce12c5e084db0a57dda5e5d1eeeb9f5d175a3b4";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash.escape" or []);
+    deps = {
+      "lodash._escapehtmlchar-2.4.1" = self.by-version."lodash._escapehtmlchar"."2.4.1";
+      "lodash.keys-2.4.1" = self.by-version."lodash.keys"."2.4.1";
+      "lodash._reunescapedhtml-2.4.1" = self.by-version."lodash._reunescapedhtml"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash.escape" ];
+  };
+  by-spec."lodash.isobject"."~2.4.1" =
+    self.by-version."lodash.isobject"."2.4.1";
+  by-version."lodash.isobject"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash.isobject-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz";
+        name = "lodash.isobject-2.4.1.tgz";
+        sha1 = "5a2e47fe69953f1ee631a7eba1fe64d2d06558f5";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash.isobject" or []);
+    deps = {
+      "lodash._objecttypes-2.4.1" = self.by-version."lodash._objecttypes"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash.isobject" ];
+  };
+  by-spec."lodash.keys"."~2.4.1" =
+    self.by-version."lodash.keys"."2.4.1";
+  by-version."lodash.keys"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash.keys-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz";
+        name = "lodash.keys-2.4.1.tgz";
+        sha1 = "48dea46df8ff7632b10d706b8acb26591e2b3727";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash.keys" or []);
+    deps = {
+      "lodash._isnative-2.4.1" = self.by-version."lodash._isnative"."2.4.1";
+      "lodash.isobject-2.4.1" = self.by-version."lodash.isobject"."2.4.1";
+      "lodash._shimkeys-2.4.1" = self.by-version."lodash._shimkeys"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash.keys" ];
+  };
+  by-spec."lodash.template"."^2.4.1" =
+    self.by-version."lodash.template"."2.4.1";
+  by-version."lodash.template"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash.template-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash.template/-/lodash.template-2.4.1.tgz";
+        name = "lodash.template-2.4.1.tgz";
+        sha1 = "9e611007edf629129a974ab3c48b817b3e1cf20d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash.template" or []);
+    deps = {
+      "lodash.defaults-2.4.1" = self.by-version."lodash.defaults"."2.4.1";
+      "lodash.escape-2.4.1" = self.by-version."lodash.escape"."2.4.1";
+      "lodash._escapestringchar-2.4.1" = self.by-version."lodash._escapestringchar"."2.4.1";
+      "lodash.keys-2.4.1" = self.by-version."lodash.keys"."2.4.1";
+      "lodash._reinterpolate-2.4.1" = self.by-version."lodash._reinterpolate"."2.4.1";
+      "lodash.templatesettings-2.4.1" = self.by-version."lodash.templatesettings"."2.4.1";
+      "lodash.values-2.4.1" = self.by-version."lodash.values"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash.template" ];
+  };
+  by-spec."lodash.templatesettings"."~2.4.1" =
+    self.by-version."lodash.templatesettings"."2.4.1";
+  by-version."lodash.templatesettings"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash.templatesettings-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz";
+        name = "lodash.templatesettings-2.4.1.tgz";
+        sha1 = "ea76c75d11eb86d4dbe89a83893bb861929ac699";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash.templatesettings" or []);
+    deps = {
+      "lodash.escape-2.4.1" = self.by-version."lodash.escape"."2.4.1";
+      "lodash._reinterpolate-2.4.1" = self.by-version."lodash._reinterpolate"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash.templatesettings" ];
+  };
+  by-spec."lodash.values"."~2.4.1" =
+    self.by-version."lodash.values"."2.4.1";
+  by-version."lodash.values"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "lodash.values-2.4.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz";
+        name = "lodash.values-2.4.1.tgz";
+        sha1 = "abf514436b3cb705001627978cbcf30b1280eea4";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash.values" or []);
+    deps = {
+      "lodash.keys-2.4.1" = self.by-version."lodash.keys"."2.4.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "lodash.values" ];
+  };
   by-spec."log-driver"."1.2.4" =
     self.by-version."log-driver"."1.2.4";
   by-version."log-driver"."1.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-log-driver-1.2.4";
+    name = "log-driver-1.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/log-driver/-/log-driver-1.2.4.tgz";
@@ -10255,30 +11030,31 @@
     ];
     buildInputs =
       (self.nativeDeps."log-driver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "log-driver" ];
   };
   by-spec."log4js"."~0.6.3" =
-    self.by-version."log4js"."0.6.18";
-  by-version."log4js"."0.6.18" = lib.makeOverridable self.buildNodePackage {
-    name = "node-log4js-0.6.18";
+    self.by-version."log4js"."0.6.21";
+  by-version."log4js"."0.6.21" = lib.makeOverridable self.buildNodePackage {
+    name = "log4js-0.6.21";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/log4js/-/log4js-0.6.18.tgz";
-        name = "log4js-0.6.18.tgz";
-        sha1 = "b362d629b02e111434839502b5a24b3201f5d805";
+        url = "http://registry.npmjs.org/log4js/-/log4js-0.6.21.tgz";
+        name = "log4js-0.6.21.tgz";
+        sha1 = "674ed09ef0ffe913c2a35074f697bd047bb53b5f";
       })
     ];
     buildInputs =
       (self.nativeDeps."log4js" or []);
-    deps = [
-      self.by-version."async"."0.1.15"
-      self.by-version."semver"."1.1.4"
-      self.by-version."readable-stream"."1.0.31"
-    ];
+    deps = {
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+      "semver-1.1.4" = self.by-version."semver"."1.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "log4js" ];
@@ -10286,7 +11062,8 @@
   by-spec."longjohn"."~0.2.2" =
     self.by-version."longjohn"."0.2.4";
   by-version."longjohn"."0.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-longjohn-0.2.4";
+    name = "longjohn-0.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/longjohn/-/longjohn-0.2.4.tgz";
@@ -10296,8 +11073,8 @@
     ];
     buildInputs =
       (self.nativeDeps."longjohn" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "longjohn" ];
@@ -10305,7 +11082,8 @@
   by-spec."lru-cache"."2" =
     self.by-version."lru-cache"."2.5.0";
   by-version."lru-cache"."2.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lru-cache-2.5.0";
+    name = "lru-cache-2.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz";
@@ -10315,8 +11093,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lru-cache" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lru-cache" ];
@@ -10324,7 +11102,8 @@
   by-spec."lru-cache"."2.2.0" =
     self.by-version."lru-cache"."2.2.0";
   by-version."lru-cache"."2.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lru-cache-2.2.0";
+    name = "lru-cache-2.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lru-cache/-/lru-cache-2.2.0.tgz";
@@ -10334,8 +11113,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lru-cache" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lru-cache" ];
@@ -10343,7 +11122,8 @@
   by-spec."lru-cache"."2.2.x" =
     self.by-version."lru-cache"."2.2.4";
   by-version."lru-cache"."2.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lru-cache-2.2.4";
+    name = "lru-cache-2.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz";
@@ -10353,8 +11133,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lru-cache" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lru-cache" ];
@@ -10362,7 +11142,8 @@
   by-spec."lru-cache"."2.3.0" =
     self.by-version."lru-cache"."2.3.0";
   by-version."lru-cache"."2.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lru-cache-2.3.0";
+    name = "lru-cache-2.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lru-cache/-/lru-cache-2.3.0.tgz";
@@ -10372,8 +11153,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lru-cache" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lru-cache" ];
@@ -10383,7 +11164,8 @@
   by-spec."lru-cache"."~1.0.2" =
     self.by-version."lru-cache"."1.0.6";
   by-version."lru-cache"."1.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lru-cache-1.0.6";
+    name = "lru-cache-1.0.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lru-cache/-/lru-cache-1.0.6.tgz";
@@ -10393,8 +11175,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lru-cache" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lru-cache" ];
@@ -10404,7 +11186,8 @@
   by-spec."lsmod"."~0.0.3" =
     self.by-version."lsmod"."0.0.3";
   by-version."lsmod"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lsmod-0.0.3";
+    name = "lsmod-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/lsmod/-/lsmod-0.0.3.tgz";
@@ -10414,8 +11197,8 @@
     ];
     buildInputs =
       (self.nativeDeps."lsmod" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "lsmod" ];
@@ -10423,7 +11206,8 @@
   by-spec."mailcomposer".">= 0.1.27" =
     self.by-version."mailcomposer"."0.2.12";
   by-version."mailcomposer"."0.2.12" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mailcomposer-0.2.12";
+    name = "mailcomposer-0.2.12";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.12.tgz";
@@ -10433,13 +11217,13 @@
     ];
     buildInputs =
       (self.nativeDeps."mailcomposer" or []);
-    deps = [
-      self.by-version."mimelib"."0.2.17"
-      self.by-version."mime"."1.2.11"
-      self.by-version."he"."0.3.6"
-      self.by-version."follow-redirects"."0.0.3"
-      self.by-version."dkim-signer"."0.1.2"
-    ];
+    deps = {
+      "mimelib-0.2.17" = self.by-version."mimelib"."0.2.17";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mailcomposer" ];
@@ -10448,6 +11232,7 @@
     self.by-version."marked"."0.3.2";
   by-version."marked"."0.3.2" = lib.makeOverridable self.buildNodePackage {
     name = "marked-0.3.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/marked/-/marked-0.3.2.tgz";
@@ -10457,8 +11242,8 @@
     ];
     buildInputs =
       (self.nativeDeps."marked" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "marked" ];
@@ -10469,7 +11254,8 @@
   by-spec."maxmin"."^0.1.0" =
     self.by-version."maxmin"."0.1.0";
   by-version."maxmin"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-maxmin-0.1.0";
+    name = "maxmin-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/maxmin/-/maxmin-0.1.0.tgz";
@@ -10479,11 +11265,11 @@
     ];
     buildInputs =
       (self.nativeDeps."maxmin" or []);
-    deps = [
-      self.by-version."gzip-size"."0.1.1"
-      self.by-version."pretty-bytes"."0.1.2"
-      self.by-version."chalk"."0.4.0"
-    ];
+    deps = {
+      "gzip-size-0.1.1" = self.by-version."gzip-size"."0.1.1";
+      "pretty-bytes-0.1.2" = self.by-version."pretty-bytes"."0.1.2";
+      "chalk-0.4.0" = self.by-version."chalk"."0.4.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "maxmin" ];
@@ -10491,7 +11277,8 @@
   by-spec."maxmin"."^0.2.0" =
     self.by-version."maxmin"."0.2.2";
   by-version."maxmin"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-maxmin-0.2.2";
+    name = "maxmin-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/maxmin/-/maxmin-0.2.2.tgz";
@@ -10501,12 +11288,12 @@
     ];
     buildInputs =
       (self.nativeDeps."maxmin" or []);
-    deps = [
-      self.by-version."chalk"."0.5.1"
-      self.by-version."figures"."1.3.2"
-      self.by-version."gzip-size"."0.2.0"
-      self.by-version."pretty-bytes"."0.1.2"
-    ];
+    deps = {
+      "chalk-0.5.1" = self.by-version."chalk"."0.5.1";
+      "figures-1.3.2" = self.by-version."figures"."1.3.2";
+      "gzip-size-0.2.0" = self.by-version."gzip-size"."0.2.0";
+      "pretty-bytes-0.1.2" = self.by-version."pretty-bytes"."0.1.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "maxmin" ];
@@ -10517,6 +11304,7 @@
     self.by-version."meat"."0.2.5";
   by-version."meat"."0.2.5" = lib.makeOverridable self.buildNodePackage {
     name = "meat-0.2.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/meat/-/meat-0.2.5.tgz";
@@ -10526,14 +11314,14 @@
     ];
     buildInputs =
       (self.nativeDeps."meat" or []);
-    deps = [
-      self.by-version."express"."2.5.11"
-      self.by-version."jade"."0.27.0"
-      self.by-version."open"."0.0.2"
-      self.by-version."winston"."0.6.2"
-      self.by-version."mkdirp"."0.3.0"
-      self.by-version."node.extend"."1.0.0"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "meat" ];
@@ -10542,7 +11330,8 @@
   by-spec."media-typer"."0.2.0" =
     self.by-version."media-typer"."0.2.0";
   by-version."media-typer"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-media-typer-0.2.0";
+    name = "media-typer-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/media-typer/-/media-typer-0.2.0.tgz";
@@ -10552,18 +11341,37 @@
     ];
     buildInputs =
       (self.nativeDeps."media-typer" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "media-typer" ];
+  };
+  by-spec."media-typer"."0.3.0" =
+    self.by-version."media-typer"."0.3.0";
+  by-version."media-typer"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "media-typer-0.3.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+        name = "media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."media-typer" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "media-typer" ];
   };
-  by-spec."media-typer"."~0.2.0" =
-    self.by-version."media-typer"."0.2.0";
   by-spec."merge-descriptors"."0.0.2" =
     self.by-version."merge-descriptors"."0.0.2";
   by-version."merge-descriptors"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-merge-descriptors-0.0.2";
+    name = "merge-descriptors-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz";
@@ -10573,31 +11381,32 @@
     ];
     buildInputs =
       (self.nativeDeps."merge-descriptors" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "merge-descriptors" ];
   };
-  by-spec."method-override"."~2.1.3" =
-    self.by-version."method-override"."2.1.3";
-  by-version."method-override"."2.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-method-override-2.1.3";
+  by-spec."method-override"."~2.2.0" =
+    self.by-version."method-override"."2.2.0";
+  by-version."method-override"."2.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "method-override-2.2.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/method-override/-/method-override-2.1.3.tgz";
-        name = "method-override-2.1.3.tgz";
-        sha1 = "511f41c4fb1dccdb6ab1844da5dc6ea81b7c1135";
+        url = "http://registry.npmjs.org/method-override/-/method-override-2.2.0.tgz";
+        name = "method-override-2.2.0.tgz";
+        sha1 = "177e852b6add3b4f9177033a9446b01e7801a0c0";
       })
     ];
     buildInputs =
       (self.nativeDeps."method-override" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."methods"."1.1.0"
-      self.by-version."parseurl"."1.3.0"
-      self.by-version."vary"."1.0.0"
-    ];
+    deps = {
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "methods-1.1.0" = self.by-version."methods"."1.1.0";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+      "vary-1.0.0" = self.by-version."vary"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "method-override" ];
@@ -10605,7 +11414,8 @@
   by-spec."methods"."0.0.1" =
     self.by-version."methods"."0.0.1";
   by-version."methods"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-methods-0.0.1";
+    name = "methods-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/methods/-/methods-0.0.1.tgz";
@@ -10615,8 +11425,8 @@
     ];
     buildInputs =
       (self.nativeDeps."methods" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "methods" ];
@@ -10624,7 +11434,8 @@
   by-spec."methods"."0.1.0" =
     self.by-version."methods"."0.1.0";
   by-version."methods"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-methods-0.1.0";
+    name = "methods-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/methods/-/methods-0.1.0.tgz";
@@ -10634,8 +11445,8 @@
     ];
     buildInputs =
       (self.nativeDeps."methods" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "methods" ];
@@ -10643,7 +11454,8 @@
   by-spec."methods"."1.0.0" =
     self.by-version."methods"."1.0.0";
   by-version."methods"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-methods-1.0.0";
+    name = "methods-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/methods/-/methods-1.0.0.tgz";
@@ -10653,8 +11465,8 @@
     ];
     buildInputs =
       (self.nativeDeps."methods" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "methods" ];
@@ -10662,7 +11474,8 @@
   by-spec."methods"."1.0.1" =
     self.by-version."methods"."1.0.1";
   by-version."methods"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-methods-1.0.1";
+    name = "methods-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/methods/-/methods-1.0.1.tgz";
@@ -10672,8 +11485,8 @@
     ];
     buildInputs =
       (self.nativeDeps."methods" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "methods" ];
@@ -10681,7 +11494,8 @@
   by-spec."methods"."1.1.0" =
     self.by-version."methods"."1.1.0";
   by-version."methods"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-methods-1.1.0";
+    name = "methods-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/methods/-/methods-1.1.0.tgz";
@@ -10691,16 +11505,37 @@
     ];
     buildInputs =
       (self.nativeDeps."methods" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "methods" ];
   };
+  by-spec."microee"."0.0.2" =
+    self.by-version."microee"."0.0.2";
+  by-version."microee"."0.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "microee-0.0.2";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/microee/-/microee-0.0.2.tgz";
+        name = "microee-0.0.2.tgz";
+        sha1 = "72e80d477075e5e799470f5defea96d1dd121587";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."microee" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "microee" ];
+  };
   by-spec."mime"."*" =
     self.by-version."mime"."1.2.11";
   by-version."mime"."1.2.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mime-1.2.11";
+    name = "mime-1.2.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mime/-/mime-1.2.11.tgz";
@@ -10710,8 +11545,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mime" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mime" ];
@@ -10721,7 +11556,8 @@
   by-spec."mime"."1.2.4" =
     self.by-version."mime"."1.2.4";
   by-version."mime"."1.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mime-1.2.4";
+    name = "mime-1.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mime/-/mime-1.2.4.tgz";
@@ -10731,8 +11567,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mime" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mime" ];
@@ -10740,7 +11576,8 @@
   by-spec."mime"."1.2.5" =
     self.by-version."mime"."1.2.5";
   by-version."mime"."1.2.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mime-1.2.5";
+    name = "mime-1.2.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mime/-/mime-1.2.5.tgz";
@@ -10750,8 +11587,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mime" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mime" ];
@@ -10759,7 +11596,8 @@
   by-spec."mime"."1.2.6" =
     self.by-version."mime"."1.2.6";
   by-version."mime"."1.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mime-1.2.6";
+    name = "mime-1.2.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mime/-/mime-1.2.6.tgz";
@@ -10769,8 +11607,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mime" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mime" ];
@@ -10778,7 +11616,8 @@
   by-spec."mime"."1.2.9" =
     self.by-version."mime"."1.2.9";
   by-version."mime"."1.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mime-1.2.9";
+    name = "mime-1.2.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mime/-/mime-1.2.9.tgz";
@@ -10788,8 +11627,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mime" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mime" ];
@@ -10804,29 +11643,31 @@
     self.by-version."mime"."1.2.11";
   by-spec."mime"."~1.2.9" =
     self.by-version."mime"."1.2.11";
-  by-spec."mime-types"."1.0.0" =
-    self.by-version."mime-types"."1.0.0";
-  by-version."mime-types"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mime-types-1.0.0";
+  by-spec."mime-db"."~1.0.1" =
+    self.by-version."mime-db"."1.0.1";
+  by-version."mime-db"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "mime-db-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mime-types/-/mime-types-1.0.0.tgz";
-        name = "mime-types-1.0.0.tgz";
-        sha1 = "6a7b4a6af2e7d92f97afe03f047c7801e8f001d2";
+        url = "http://registry.npmjs.org/mime-db/-/mime-db-1.0.1.tgz";
+        name = "mime-db-1.0.1.tgz";
+        sha1 = "35d99b0965967253bb30633a7d07a8de9975a952";
       })
     ];
     buildInputs =
-      (self.nativeDeps."mime-types" or []);
-    deps = [
-    ];
+      (self.nativeDeps."mime-db" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
-    passthru.names = [ "mime-types" ];
+    passthru.names = [ "mime-db" ];
   };
   by-spec."mime-types"."~1.0.0" =
     self.by-version."mime-types"."1.0.2";
   by-version."mime-types"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mime-types-1.0.2";
+    name = "mime-types-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz";
@@ -10836,18 +11677,42 @@
     ];
     buildInputs =
       (self.nativeDeps."mime-types" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mime-types" ];
   };
   by-spec."mime-types"."~1.0.1" =
     self.by-version."mime-types"."1.0.2";
+  by-spec."mime-types"."~2.0.0" =
+    self.by-version."mime-types"."2.0.1";
+  by-version."mime-types"."2.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "mime-types-2.0.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mime-types/-/mime-types-2.0.1.tgz";
+        name = "mime-types-2.0.1.tgz";
+        sha1 = "7f5b4712592e7dd46ca733fd1c5f5d71356de615";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mime-types" or []);
+    deps = {
+      "mime-db-1.0.1" = self.by-version."mime-db"."1.0.1";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "mime-types" ];
+  };
+  by-spec."mime-types"."~2.0.1" =
+    self.by-version."mime-types"."2.0.1";
   by-spec."mimelib"."~0.2.15" =
     self.by-version."mimelib"."0.2.17";
   by-version."mimelib"."0.2.17" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mimelib-0.2.17";
+    name = "mimelib-0.2.17";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mimelib/-/mimelib-0.2.17.tgz";
@@ -10857,39 +11722,40 @@
     ];
     buildInputs =
       (self.nativeDeps."mimelib" or []);
-    deps = [
-      self.by-version."encoding"."0.1.8"
-      self.by-version."addressparser"."0.2.1"
-    ];
+    deps = {
+      "encoding-0.1.8" = self.by-version."encoding"."0.1.8";
+      "addressparser-0.2.1" = self.by-version."addressparser"."0.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mimelib" ];
   };
-  by-spec."minimatch"."0" =
-    self.by-version."minimatch"."0.4.0";
-  by-version."minimatch"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimatch-0.4.0";
+  by-spec."minilog"."~2.0.2" =
+    self.by-version."minilog"."2.0.6";
+  by-version."minilog"."2.0.6" = lib.makeOverridable self.buildNodePackage {
+    name = "minilog-2.0.6";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/minimatch/-/minimatch-0.4.0.tgz";
-        name = "minimatch-0.4.0.tgz";
-        sha1 = "bd2c7d060d2c8c8fd7cde7f1f2ed2d5b270fdb1b";
+        url = "http://registry.npmjs.org/minilog/-/minilog-2.0.6.tgz";
+        name = "minilog-2.0.6.tgz";
+        sha1 = "665601f32a08bda58406c0e933b08713b3a50ad4";
       })
     ];
     buildInputs =
-      (self.nativeDeps."minimatch" or []);
-    deps = [
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."sigmund"."1.0.0"
-    ];
+      (self.nativeDeps."minilog" or []);
+    deps = {
+      "microee-0.0.2" = self.by-version."microee"."0.0.2";
+    };
     peerDependencies = [
     ];
-    passthru.names = [ "minimatch" ];
+    passthru.names = [ "minilog" ];
   };
   by-spec."minimatch"."0.0.x" =
     self.by-version."minimatch"."0.0.5";
   by-version."minimatch"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimatch-0.0.5";
+    name = "minimatch-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/minimatch/-/minimatch-0.0.5.tgz";
@@ -10899,9 +11765,9 @@
     ];
     buildInputs =
       (self.nativeDeps."minimatch" or []);
-    deps = [
-      self.by-version."lru-cache"."1.0.6"
-    ];
+    deps = {
+      "lru-cache-1.0.6" = self.by-version."lru-cache"."1.0.6";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "minimatch" ];
@@ -10909,7 +11775,8 @@
   by-spec."minimatch"."0.2.x" =
     self.by-version."minimatch"."0.2.14";
   by-version."minimatch"."0.2.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimatch-0.2.14";
+    name = "minimatch-0.2.14";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz";
@@ -10919,10 +11786,10 @@
     ];
     buildInputs =
       (self.nativeDeps."minimatch" or []);
-    deps = [
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."sigmund"."1.0.0"
-    ];
+    deps = {
+      "lru-cache-2.5.0" = self.by-version."lru-cache"."2.5.0";
+      "sigmund-1.0.0" = self.by-version."sigmund"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "minimatch" ];
@@ -10930,7 +11797,8 @@
   by-spec."minimatch"."0.3" =
     self.by-version."minimatch"."0.3.0";
   by-version."minimatch"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimatch-0.3.0";
+    name = "minimatch-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz";
@@ -10940,22 +11808,43 @@
     ];
     buildInputs =
       (self.nativeDeps."minimatch" or []);
-    deps = [
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."sigmund"."1.0.0"
-    ];
+    deps = {
+      "lru-cache-2.5.0" = self.by-version."lru-cache"."2.5.0";
+      "sigmund-1.0.0" = self.by-version."sigmund"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "minimatch" ];
   };
   by-spec."minimatch"."0.x" =
     self.by-version."minimatch"."0.4.0";
+  by-version."minimatch"."0.4.0" = lib.makeOverridable self.buildNodePackage {
+    name = "minimatch-0.4.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimatch/-/minimatch-0.4.0.tgz";
+        name = "minimatch-0.4.0.tgz";
+        sha1 = "bd2c7d060d2c8c8fd7cde7f1f2ed2d5b270fdb1b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimatch" or []);
+    deps = {
+      "lru-cache-2.5.0" = self.by-version."lru-cache"."2.5.0";
+      "sigmund-1.0.0" = self.by-version."sigmund"."1.0.0";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimatch" ];
+  };
   by-spec."minimatch"."0.x.x" =
     self.by-version."minimatch"."0.4.0";
   by-spec."minimatch"."1" =
     self.by-version."minimatch"."1.0.0";
   by-version."minimatch"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimatch-1.0.0";
+    name = "minimatch-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz";
@@ -10965,10 +11854,10 @@
     ];
     buildInputs =
       (self.nativeDeps."minimatch" or []);
-    deps = [
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."sigmund"."1.0.0"
-    ];
+    deps = {
+      "lru-cache-2.5.0" = self.by-version."lru-cache"."2.5.0";
+      "sigmund-1.0.0" = self.by-version."sigmund"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "minimatch" ];
@@ -10987,10 +11876,13 @@
     self.by-version."minimatch"."0.2.14";
   by-spec."minimatch"."~0.3.0" =
     self.by-version."minimatch"."0.3.0";
+  by-spec."minimatch"."~1.0.0" =
+    self.by-version."minimatch"."1.0.0";
   by-spec."minimist"."0.0.8" =
     self.by-version."minimist"."0.0.8";
   by-version."minimist"."0.0.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimist-0.0.8";
+    name = "minimist-0.0.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
@@ -11000,8 +11892,8 @@
     ];
     buildInputs =
       (self.nativeDeps."minimist" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "minimist" ];
@@ -11009,7 +11901,8 @@
   by-spec."minimist"."^0.1.0" =
     self.by-version."minimist"."0.1.0";
   by-version."minimist"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimist-0.1.0";
+    name = "minimist-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz";
@@ -11019,8 +11912,28 @@
     ];
     buildInputs =
       (self.nativeDeps."minimist" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "minimist" ];
+  };
+  by-spec."minimist"."^1.1.0" =
+    self.by-version."minimist"."1.1.0";
+  by-version."minimist"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "minimist-1.1.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimist/-/minimist-1.1.0.tgz";
+        name = "minimist-1.1.0.tgz";
+        sha1 = "cdf225e8898f840a258ded44fc91776770afdc93";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimist" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "minimist" ];
@@ -11028,7 +11941,8 @@
   by-spec."minimist"."~0.0.1" =
     self.by-version."minimist"."0.0.10";
   by-version."minimist"."0.0.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimist-0.0.10";
+    name = "minimist-0.0.10";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz";
@@ -11038,8 +11952,8 @@
     ];
     buildInputs =
       (self.nativeDeps."minimist" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "minimist" ];
@@ -11049,7 +11963,8 @@
   by-spec."minimist"."~0.2.0" =
     self.by-version."minimist"."0.2.0";
   by-version."minimist"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimist-0.2.0";
+    name = "minimist-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz";
@@ -11059,8 +11974,8 @@
     ];
     buildInputs =
       (self.nativeDeps."minimist" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "minimist" ];
@@ -11068,7 +11983,8 @@
   by-spec."ministyle"."~0.1.3" =
     self.by-version."ministyle"."0.1.4";
   by-version."ministyle"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ministyle-0.1.4";
+    name = "ministyle-0.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ministyle/-/ministyle-0.1.4.tgz";
@@ -11078,8 +11994,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ministyle" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ministyle" ];
@@ -11087,7 +12003,8 @@
   by-spec."miniwrite"."~0.1.3" =
     self.by-version."miniwrite"."0.1.3";
   by-version."miniwrite"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-miniwrite-0.1.3";
+    name = "miniwrite-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/miniwrite/-/miniwrite-0.1.3.tgz";
@@ -11097,9 +12014,9 @@
     ];
     buildInputs =
       (self.nativeDeps."miniwrite" or []);
-    deps = [
-      self.by-version."mkdirp"."0.3.5"
-    ];
+    deps = {
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "miniwrite" ];
@@ -11108,6 +12025,7 @@
     self.by-version."mkdirp"."0.5.0";
   by-version."mkdirp"."0.5.0" = lib.makeOverridable self.buildNodePackage {
     name = "mkdirp-0.5.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz";
@@ -11117,20 +12035,19 @@
     ];
     buildInputs =
       (self.nativeDeps."mkdirp" or []);
-    deps = [
-      self.by-version."minimist"."0.0.8"
-    ];
+    deps = {
+      "minimist-0.0.8" = self.by-version."minimist"."0.0.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mkdirp" ];
   };
   "mkdirp" = self.by-version."mkdirp"."0.5.0";
-  by-spec."mkdirp"."0" =
-    self.by-version."mkdirp"."0.5.0";
   by-spec."mkdirp"."0.3.0" =
     self.by-version."mkdirp"."0.3.0";
   by-version."mkdirp"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mkdirp-0.3.0";
+    name = "mkdirp-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz";
@@ -11140,8 +12057,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mkdirp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mkdirp" ];
@@ -11149,7 +12066,8 @@
   by-spec."mkdirp"."0.3.5" =
     self.by-version."mkdirp"."0.3.5";
   by-version."mkdirp"."0.3.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mkdirp-0.3.5";
+    name = "mkdirp-0.3.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
@@ -11159,8 +12077,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mkdirp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mkdirp" ];
@@ -11191,6 +12109,7 @@
     self.by-version."mocha"."1.21.4";
   by-version."mocha"."1.21.4" = lib.makeOverridable self.buildNodePackage {
     name = "mocha-1.21.4";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mocha/-/mocha-1.21.4.tgz";
@@ -11200,15 +12119,15 @@
     ];
     buildInputs =
       (self.nativeDeps."mocha" or []);
-    deps = [
-      self.by-version."commander"."2.0.0"
-      self.by-version."growl"."1.8.1"
-      self.by-version."jade"."0.26.3"
-      self.by-version."diff"."1.0.7"
-      self.by-version."debug"."1.0.4"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."glob"."3.2.3"
-    ];
+    deps = {
+      "commander-2.0.0" = self.by-version."commander"."2.0.0";
+      "growl-1.8.1" = self.by-version."growl"."1.8.1";
+      "jade-0.26.3" = self.by-version."jade"."0.26.3";
+      "diff-1.0.7" = self.by-version."diff"."1.0.7";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+      "glob-3.2.3" = self.by-version."glob"."3.2.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mocha" ];
@@ -11218,6 +12137,7 @@
     self.by-version."mocha"."1.20.1";
   by-version."mocha"."1.20.1" = lib.makeOverridable self.buildNodePackage {
     name = "mocha-1.20.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mocha/-/mocha-1.20.1.tgz";
@@ -11227,15 +12147,15 @@
     ];
     buildInputs =
       (self.nativeDeps."mocha" or []);
-    deps = [
-      self.by-version."commander"."2.0.0"
-      self.by-version."growl"."1.7.0"
-      self.by-version."jade"."0.26.3"
-      self.by-version."diff"."1.0.7"
-      self.by-version."debug"."1.0.4"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."glob"."3.2.3"
-    ];
+    deps = {
+      "commander-2.0.0" = self.by-version."commander"."2.0.0";
+      "growl-1.7.0" = self.by-version."growl"."1.7.0";
+      "jade-0.26.3" = self.by-version."jade"."0.26.3";
+      "diff-1.0.7" = self.by-version."diff"."1.0.7";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+      "glob-3.2.3" = self.by-version."glob"."3.2.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mocha" ];
@@ -11244,6 +12164,7 @@
     self.by-version."mocha-phantomjs"."3.5.0";
   by-version."mocha-phantomjs"."3.5.0" = lib.makeOverridable self.buildNodePackage {
     name = "mocha-phantomjs-3.5.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mocha-phantomjs/-/mocha-phantomjs-3.5.0.tgz";
@@ -11253,10 +12174,10 @@
     ];
     buildInputs =
       (self.nativeDeps."mocha-phantomjs" or []);
-    deps = [
-      self.by-version."mocha"."1.20.1"
-      self.by-version."commander"."2.0.0"
-    ];
+    deps = {
+      "mocha-1.20.1" = self.by-version."mocha"."1.20.1";
+      "commander-2.0.0" = self.by-version."commander"."2.0.0";
+    };
     peerDependencies = [
       self.by-version."phantomjs"."1.9.7-15"
     ];
@@ -11266,7 +12187,8 @@
   by-spec."mocha-unfunk-reporter"."*" =
     self.by-version."mocha-unfunk-reporter"."0.4.0";
   by-version."mocha-unfunk-reporter"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mocha-unfunk-reporter-0.4.0";
+    name = "mocha-unfunk-reporter-0.4.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mocha-unfunk-reporter/-/mocha-unfunk-reporter-0.4.0.tgz";
@@ -11276,12 +12198,12 @@
     ];
     buildInputs =
       (self.nativeDeps."mocha-unfunk-reporter" or []);
-    deps = [
-      self.by-version."jsesc"."0.4.3"
-      self.by-version."unfunk-diff"."0.0.2"
-      self.by-version."miniwrite"."0.1.3"
-      self.by-version."ministyle"."0.1.4"
-    ];
+    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.3" = self.by-version."miniwrite"."0.1.3";
+      "ministyle-0.1.4" = self.by-version."ministyle"."0.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mocha-unfunk-reporter" ];
@@ -11291,6 +12213,7 @@
     self.by-version."module-deps"."3.5.5";
   by-version."module-deps"."3.5.5" = lib.makeOverridable self.buildNodePackage {
     name = "module-deps-3.5.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/module-deps/-/module-deps-3.5.5.tgz";
@@ -11300,22 +12223,22 @@
     ];
     buildInputs =
       (self.nativeDeps."module-deps" or []);
-    deps = [
-      self.by-version."JSONStream"."0.7.4"
-      self.by-version."browser-resolve"."1.3.2"
-      self.by-version."concat-stream"."1.4.6"
-      self.by-version."detective"."3.1.0"
-      self.by-version."duplexer2"."0.0.2"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."minimist"."0.2.0"
-      self.by-version."parents"."1.0.0"
-      self.by-version."readable-stream"."1.1.13"
-      self.by-version."resolve"."0.7.4"
-      self.by-version."shallow-copy"."0.0.1"
-      self.by-version."stream-combiner2"."1.0.1"
-      self.by-version."subarg"."0.0.1"
-      self.by-version."through2"."0.4.2"
-    ];
+    deps = {
+      "JSONStream-0.7.4" = self.by-version."JSONStream"."0.7.4";
+      "browser-resolve-1.3.2" = self.by-version."browser-resolve"."1.3.2";
+      "concat-stream-1.4.6" = self.by-version."concat-stream"."1.4.6";
+      "detective-3.1.0" = self.by-version."detective"."3.1.0";
+      "duplexer2-0.0.2" = self.by-version."duplexer2"."0.0.2";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "minimist-0.2.0" = self.by-version."minimist"."0.2.0";
+      "parents-1.0.0" = self.by-version."parents"."1.0.0";
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+      "resolve-0.7.4" = self.by-version."resolve"."0.7.4";
+      "shallow-copy-0.0.1" = self.by-version."shallow-copy"."0.0.1";
+      "stream-combiner2-1.0.1" = self.by-version."stream-combiner2"."1.0.1";
+      "subarg-0.0.1" = self.by-version."subarg"."0.0.1";
+      "through2-0.4.2" = self.by-version."through2"."0.4.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "module-deps" ];
@@ -11323,7 +12246,8 @@
   by-spec."moment"."2.1.0" =
     self.by-version."moment"."2.1.0";
   by-version."moment"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-moment-2.1.0";
+    name = "moment-2.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/moment/-/moment-2.1.0.tgz";
@@ -11333,8 +12257,8 @@
     ];
     buildInputs =
       (self.nativeDeps."moment" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "moment" ];
@@ -11342,7 +12266,8 @@
   by-spec."moment"."~2.4.0" =
     self.by-version."moment"."2.4.0";
   by-version."moment"."2.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-moment-2.4.0";
+    name = "moment-2.4.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/moment/-/moment-2.4.0.tgz";
@@ -11352,58 +12277,60 @@
     ];
     buildInputs =
       (self.nativeDeps."moment" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "moment" ];
   };
-  by-spec."moment"."~2.7.0" =
-    self.by-version."moment"."2.7.0";
-  by-version."moment"."2.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-moment-2.7.0";
+  by-spec."moment"."~2.8.2" =
+    self.by-version."moment"."2.8.3";
+  by-version."moment"."2.8.3" = lib.makeOverridable self.buildNodePackage {
+    name = "moment-2.8.3";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/moment/-/moment-2.7.0.tgz";
-        name = "moment-2.7.0.tgz";
-        sha1 = "359a19ec634cda3c706c8709adda54c0329aaec4";
+        url = "http://registry.npmjs.org/moment/-/moment-2.8.3.tgz";
+        name = "moment-2.8.3.tgz";
+        sha1 = "a01427bf8910f014fc4baa1b8d96f17f7e3f29a2";
       })
     ];
     buildInputs =
       (self.nativeDeps."moment" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "moment" ];
   };
   by-spec."mongodb"."*" =
-    self.by-version."mongodb"."1.4.8";
-  by-version."mongodb"."1.4.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongodb-1.4.8";
+    self.by-version."mongodb"."2.0.0-alpha1";
+  by-version."mongodb"."2.0.0-alpha1" = lib.makeOverridable self.buildNodePackage {
+    name = "mongodb-2.0.0-alpha1";
+    bin = false;
     src = [
-      (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/mongodb/-/mongodb-1.4.8.tgz";
-        name = "mongodb-1.4.8.tgz";
-        sha1 = "808802e296f78e5062ef46a87a90abd68031552f";
+      (fetchurl {
+        url = "http://registry.npmjs.org/mongodb/-/mongodb-2.0.0-alpha1.tgz";
+        name = "mongodb-2.0.0-alpha1.tgz";
+        sha1 = "6d46f08fc00d5189715b66f715dd9a74b4c67123";
       })
     ];
     buildInputs =
       (self.nativeDeps."mongodb" or []);
-    deps = [
-      self.by-version."bson"."0.2.11"
-      self.by-version."kerberos"."0.0.3"
-      self.by-version."readable-stream"."1.1.13"
-    ];
+    deps = {
+      "mongodb-core-1.0.0-alpha7" = self.by-version."mongodb-core"."1.0.0-alpha7";
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongodb" ];
   };
-  "mongodb" = self.by-version."mongodb"."1.4.8";
+  "mongodb" = self.by-version."mongodb"."2.0.0-alpha1";
   by-spec."mongodb"."1.2.14" =
     self.by-version."mongodb"."1.2.14";
   by-version."mongodb"."1.2.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongodb-1.2.14";
+    name = "mongodb-1.2.14";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mongodb/-/mongodb-1.2.14.tgz";
@@ -11413,9 +12340,9 @@
     ];
     buildInputs =
       (self.nativeDeps."mongodb" or []);
-    deps = [
-      self.by-version."bson"."0.1.8"
-    ];
+    deps = {
+      "bson-0.1.8" = self.by-version."bson"."0.1.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongodb" ];
@@ -11423,7 +12350,8 @@
   by-spec."mongodb"."1.3.19" =
     self.by-version."mongodb"."1.3.19";
   by-version."mongodb"."1.3.19" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongodb-1.3.19";
+    name = "mongodb-1.3.19";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mongodb/-/mongodb-1.3.19.tgz";
@@ -11433,10 +12361,10 @@
     ];
     buildInputs =
       (self.nativeDeps."mongodb" or []);
-    deps = [
-      self.by-version."bson"."0.2.2"
-      self.by-version."kerberos"."0.0.3"
-    ];
+    deps = {
+      "bson-0.2.2" = self.by-version."bson"."0.2.2";
+      "kerberos-0.0.3" = self.by-version."kerberos"."0.0.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongodb" ];
@@ -11444,7 +12372,8 @@
   by-spec."mongodb"."1.3.x" =
     self.by-version."mongodb"."1.3.23";
   by-version."mongodb"."1.3.23" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongodb-1.3.23";
+    name = "mongodb-1.3.23";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mongodb/-/mongodb-1.3.23.tgz";
@@ -11454,40 +12383,66 @@
     ];
     buildInputs =
       (self.nativeDeps."mongodb" or []);
-    deps = [
-      self.by-version."bson"."0.2.5"
-      self.by-version."kerberos"."0.0.3"
-    ];
+    deps = {
+      "bson-0.2.5" = self.by-version."bson"."0.2.5";
+      "kerberos-0.0.3" = self.by-version."kerberos"."0.0.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongodb" ];
   };
-  by-spec."mongodb"."1.4.7" =
-    self.by-version."mongodb"."1.4.7";
-  by-version."mongodb"."1.4.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongodb-1.4.7";
+  by-spec."mongodb"."1.4.9" =
+    self.by-version."mongodb"."1.4.9";
+  by-version."mongodb"."1.4.9" = lib.makeOverridable self.buildNodePackage {
+    name = "mongodb-1.4.9";
+    bin = false;
     src = [
       (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/mongodb/-/mongodb-1.4.7.tgz";
-        name = "mongodb-1.4.7.tgz";
-        sha1 = "f605b5d43c6c018c7d56d2fb53984dd60a7be128";
+        url = "http://registry.npmjs.org/mongodb/-/mongodb-1.4.9.tgz";
+        name = "mongodb-1.4.9.tgz";
+        sha1 = "c30b9724248be471d30235e2d542646d3b869bc2";
       })
     ];
     buildInputs =
       (self.nativeDeps."mongodb" or []);
-    deps = [
-      self.by-version."bson"."0.2.9"
-      self.by-version."kerberos"."0.0.3"
-      self.by-version."readable-stream"."1.1.13"
-    ];
+    deps = {
+      "bson-0.2.12" = self.by-version."bson"."0.2.12";
+      "kerberos-0.0.3" = self.by-version."kerberos"."0.0.3";
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongodb" ];
   };
+  by-spec."mongodb-core"."~1.0" =
+    self.by-version."mongodb-core"."1.0.0-alpha7";
+  by-version."mongodb-core"."1.0.0-alpha7" = lib.makeOverridable self.buildNodePackage {
+    name = "mongodb-core-1.0.0-alpha7";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mongodb-core/-/mongodb-core-1.0.0-alpha7.tgz";
+        name = "mongodb-core-1.0.0-alpha7.tgz";
+        sha1 = "6c3c54e777d26576b66e6fd22612d06ec60df44e";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mongodb-core" or []);
+    deps = {
+      "bson-0.2.15" = self.by-version."bson"."0.2.15";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "rimraf-2.2.6" = self.by-version."rimraf"."2.2.6";
+      "kerberos-0.0.4" = self.by-version."kerberos"."0.0.4";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "mongodb-core" ];
+  };
   by-spec."mongoose"."3.6.7" =
     self.by-version."mongoose"."3.6.7";
   by-version."mongoose"."3.6.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongoose-3.6.7";
+    name = "mongoose-3.6.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mongoose/-/mongoose-3.6.7.tgz";
@@ -11497,15 +12452,15 @@
     ];
     buildInputs =
       (self.nativeDeps."mongoose" or []);
-    deps = [
-      self.by-version."hooks"."0.2.1"
-      self.by-version."mongodb"."1.2.14"
-      self.by-version."ms"."0.1.0"
-      self.by-version."sliced"."0.0.3"
-      self.by-version."muri"."0.3.1"
-      self.by-version."mpromise"."0.2.1"
-      self.by-version."mpath"."0.1.1"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongoose" ];
@@ -11513,7 +12468,8 @@
   by-spec."mongoose"."3.6.x" =
     self.by-version."mongoose"."3.6.20";
   by-version."mongoose"."3.6.20" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongoose-3.6.20";
+    name = "mongoose-3.6.20";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mongoose/-/mongoose-3.6.20.tgz";
@@ -11523,45 +12479,46 @@
     ];
     buildInputs =
       (self.nativeDeps."mongoose" or []);
-    deps = [
-      self.by-version."hooks"."0.2.1"
-      self.by-version."mongodb"."1.3.19"
-      self.by-version."ms"."0.1.0"
-      self.by-version."sliced"."0.0.5"
-      self.by-version."muri"."0.3.1"
-      self.by-version."mpromise"."0.2.1"
-      self.by-version."mpath"."0.1.1"
-      self.by-version."regexp-clone"."0.0.1"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongoose" ];
   };
   "mongoose" = self.by-version."mongoose"."3.6.20";
   by-spec."mongoose"."3.8.x" =
-    self.by-version."mongoose"."3.8.15";
-  by-version."mongoose"."3.8.15" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongoose-3.8.15";
+    self.by-version."mongoose"."3.8.16";
+  by-version."mongoose"."3.8.16" = lib.makeOverridable self.buildNodePackage {
+    name = "mongoose-3.8.16";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mongoose/-/mongoose-3.8.15.tgz";
-        name = "mongoose-3.8.15.tgz";
-        sha1 = "2bc089d011f9e4e662e3aa2aab00771ef43847c1";
+        url = "http://registry.npmjs.org/mongoose/-/mongoose-3.8.16.tgz";
+        name = "mongoose-3.8.16.tgz";
+        sha1 = "485df4669b5a66b642a29af76605f11664c023ae";
       })
     ];
     buildInputs =
       (self.nativeDeps."mongoose" or []);
-    deps = [
-      self.by-version."mongodb"."1.4.7"
-      self.by-version."hooks"."0.2.1"
-      self.by-version."ms"."0.1.0"
-      self.by-version."sliced"."0.0.5"
-      self.by-version."muri"."0.3.1"
-      self.by-version."mpromise"."0.4.3"
-      self.by-version."mpath"."0.1.1"
-      self.by-version."regexp-clone"."0.0.1"
-      self.by-version."mquery"."0.8.0"
-    ];
+    deps = {
+      "mongodb-1.4.9" = self.by-version."mongodb"."1.4.9";
+      "hooks-0.2.1" = self.by-version."hooks"."0.2.1";
+      "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.4.3" = self.by-version."mpromise"."0.4.3";
+      "mpath-0.1.1" = self.by-version."mpath"."0.1.1";
+      "regexp-clone-0.0.1" = self.by-version."regexp-clone"."0.0.1";
+      "mquery-0.8.0" = self.by-version."mquery"."0.8.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongoose" ];
@@ -11569,7 +12526,8 @@
   by-spec."mongoose-lifecycle"."1.0.0" =
     self.by-version."mongoose-lifecycle"."1.0.0";
   by-version."mongoose-lifecycle"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongoose-lifecycle-1.0.0";
+    name = "mongoose-lifecycle-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mongoose-lifecycle/-/mongoose-lifecycle-1.0.0.tgz";
@@ -11579,8 +12537,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mongoose-lifecycle" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongoose-lifecycle" ];
@@ -11588,7 +12546,8 @@
   by-spec."mongoose-schema-extend"."*" =
     self.by-version."mongoose-schema-extend"."0.1.7";
   by-version."mongoose-schema-extend"."0.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongoose-schema-extend-0.1.7";
+    name = "mongoose-schema-extend-0.1.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mongoose-schema-extend/-/mongoose-schema-extend-0.1.7.tgz";
@@ -11598,9 +12557,9 @@
     ];
     buildInputs =
       (self.nativeDeps."mongoose-schema-extend" or []);
-    deps = [
-      self.by-version."owl-deepcopy"."0.0.4"
-    ];
+    deps = {
+      "owl-deepcopy-0.0.4" = self.by-version."owl-deepcopy"."0.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mongoose-schema-extend" ];
@@ -11609,7 +12568,8 @@
   by-spec."monocle"."1.1.50" =
     self.by-version."monocle"."1.1.50";
   by-version."monocle"."1.1.50" = lib.makeOverridable self.buildNodePackage {
-    name = "node-monocle-1.1.50";
+    name = "monocle-1.1.50";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/monocle/-/monocle-1.1.50.tgz";
@@ -11619,9 +12579,9 @@
     ];
     buildInputs =
       (self.nativeDeps."monocle" or []);
-    deps = [
-      self.by-version."readdirp"."0.2.5"
-    ];
+    deps = {
+      "readdirp-0.2.5" = self.by-version."readdirp"."0.2.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "monocle" ];
@@ -11629,7 +12589,8 @@
   by-spec."monocle"."1.1.51" =
     self.by-version."monocle"."1.1.51";
   by-version."monocle"."1.1.51" = lib.makeOverridable self.buildNodePackage {
-    name = "node-monocle-1.1.51";
+    name = "monocle-1.1.51";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/monocle/-/monocle-1.1.51.tgz";
@@ -11639,32 +12600,33 @@
     ];
     buildInputs =
       (self.nativeDeps."monocle" or []);
-    deps = [
-      self.by-version."readdirp"."0.2.5"
-    ];
+    deps = {
+      "readdirp-0.2.5" = self.by-version."readdirp"."0.2.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "monocle" ];
   };
-  by-spec."morgan"."~1.2.3" =
-    self.by-version."morgan"."1.2.3";
-  by-version."morgan"."1.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-morgan-1.2.3";
+  by-spec."morgan"."~1.3.0" =
+    self.by-version."morgan"."1.3.0";
+  by-version."morgan"."1.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "morgan-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/morgan/-/morgan-1.2.3.tgz";
-        name = "morgan-1.2.3.tgz";
-        sha1 = "3b0f1704df90255a542591abacd797891a8c40a1";
+        url = "http://registry.npmjs.org/morgan/-/morgan-1.3.0.tgz";
+        name = "morgan-1.3.0.tgz";
+        sha1 = "ae8e835e365b306a10803a90ddfe27b4a33594f9";
       })
     ];
     buildInputs =
       (self.nativeDeps."morgan" or []);
-    deps = [
-      self.by-version."basic-auth"."1.0.0"
-      self.by-version."bytes"."1.0.0"
-      self.by-version."depd"."0.4.4"
-      self.by-version."on-finished"."2.1.0"
-    ];
+    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.4" = self.by-version."depd"."0.4.4";
+      "on-finished-2.1.0" = self.by-version."on-finished"."2.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "morgan" ];
@@ -11672,7 +12634,8 @@
   by-spec."mpath"."0.1.1" =
     self.by-version."mpath"."0.1.1";
   by-version."mpath"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mpath-0.1.1";
+    name = "mpath-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mpath/-/mpath-0.1.1.tgz";
@@ -11682,8 +12645,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mpath" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mpath" ];
@@ -11691,7 +12654,8 @@
   by-spec."mpromise"."0.2.1" =
     self.by-version."mpromise"."0.2.1";
   by-version."mpromise"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mpromise-0.2.1";
+    name = "mpromise-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mpromise/-/mpromise-0.2.1.tgz";
@@ -11701,9 +12665,9 @@
     ];
     buildInputs =
       (self.nativeDeps."mpromise" or []);
-    deps = [
-      self.by-version."sliced"."0.0.4"
-    ];
+    deps = {
+      "sliced-0.0.4" = self.by-version."sliced"."0.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mpromise" ];
@@ -11711,7 +12675,8 @@
   by-spec."mpromise"."0.4.3" =
     self.by-version."mpromise"."0.4.3";
   by-version."mpromise"."0.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mpromise-0.4.3";
+    name = "mpromise-0.4.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mpromise/-/mpromise-0.4.3.tgz";
@@ -11721,8 +12686,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mpromise" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mpromise" ];
@@ -11730,7 +12695,8 @@
   by-spec."mquery"."0.8.0" =
     self.by-version."mquery"."0.8.0";
   by-version."mquery"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mquery-0.8.0";
+    name = "mquery-0.8.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mquery/-/mquery-0.8.0.tgz";
@@ -11740,11 +12706,11 @@
     ];
     buildInputs =
       (self.nativeDeps."mquery" or []);
-    deps = [
-      self.by-version."sliced"."0.0.5"
-      self.by-version."debug"."0.7.4"
-      self.by-version."regexp-clone"."0.0.1"
-    ];
+    deps = {
+      "sliced-0.0.5" = self.by-version."sliced"."0.0.5";
+      "debug-0.7.4" = self.by-version."debug"."0.7.4";
+      "regexp-clone-0.0.1" = self.by-version."regexp-clone"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mquery" ];
@@ -11752,7 +12718,8 @@
   by-spec."ms"."0.1.0" =
     self.by-version."ms"."0.1.0";
   by-version."ms"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ms-0.1.0";
+    name = "ms-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ms/-/ms-0.1.0.tgz";
@@ -11762,8 +12729,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ms" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ms" ];
@@ -11771,7 +12738,8 @@
   by-spec."ms"."0.6.2" =
     self.by-version."ms"."0.6.2";
   by-version."ms"."0.6.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ms-0.6.2";
+    name = "ms-0.6.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz";
@@ -11781,8 +12749,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ms" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ms" ];
@@ -11791,6 +12759,7 @@
     self.by-version."msgpack"."0.2.4";
   by-version."msgpack"."0.2.4" = lib.makeOverridable self.buildNodePackage {
     name = "msgpack-0.2.4";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/msgpack/-/msgpack-0.2.4.tgz";
@@ -11800,9 +12769,9 @@
     ];
     buildInputs =
       (self.nativeDeps."msgpack" or []);
-    deps = [
-      self.by-version."nan"."1.0.0"
-    ];
+    deps = {
+      "nan-1.0.0" = self.by-version."nan"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "msgpack" ];
@@ -11810,7 +12779,8 @@
   by-spec."multiparty"."2.2.0" =
     self.by-version."multiparty"."2.2.0";
   by-version."multiparty"."2.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-multiparty-2.2.0";
+    name = "multiparty-2.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz";
@@ -11820,10 +12790,10 @@
     ];
     buildInputs =
       (self.nativeDeps."multiparty" or []);
-    deps = [
-      self.by-version."readable-stream"."1.1.13"
-      self.by-version."stream-counter"."0.2.0"
-    ];
+    deps = {
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+      "stream-counter-0.2.0" = self.by-version."stream-counter"."0.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "multiparty" ];
@@ -11831,7 +12801,8 @@
   by-spec."multiparty"."3.3.2" =
     self.by-version."multiparty"."3.3.2";
   by-version."multiparty"."3.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-multiparty-3.3.2";
+    name = "multiparty-3.3.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz";
@@ -11841,18 +12812,40 @@
     ];
     buildInputs =
       (self.nativeDeps."multiparty" or []);
-    deps = [
-      self.by-version."readable-stream"."1.1.13"
-      self.by-version."stream-counter"."0.2.0"
-    ];
+    deps = {
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+      "stream-counter-0.2.0" = self.by-version."stream-counter"."0.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "multiparty" ];
   };
+  by-spec."multipipe"."^0.1.0" =
+    self.by-version."multipipe"."0.1.1";
+  by-version."multipipe"."0.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "multipipe-0.1.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/multipipe/-/multipipe-0.1.1.tgz";
+        name = "multipipe-0.1.1.tgz";
+        sha1 = "bc271fbb2bf3a5ed3e43cc6ba3d7dbc1c4eb07fb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."multipipe" or []);
+    deps = {
+      "duplexer2-0.0.2" = self.by-version."duplexer2"."0.0.2";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "multipipe" ];
+  };
   by-spec."muri"."0.3.1" =
     self.by-version."muri"."0.3.1";
   by-version."muri"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-muri-0.3.1";
+    name = "muri-0.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/muri/-/muri-0.3.1.tgz";
@@ -11862,8 +12855,8 @@
     ];
     buildInputs =
       (self.nativeDeps."muri" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "muri" ];
@@ -11871,7 +12864,8 @@
   by-spec."mute-stream"."~0.0.4" =
     self.by-version."mute-stream"."0.0.4";
   by-version."mute-stream"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mute-stream-0.0.4";
+    name = "mute-stream-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz";
@@ -11881,8 +12875,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mute-stream" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mute-stream" ];
@@ -11890,7 +12884,8 @@
   by-spec."mv"."0.0.5" =
     self.by-version."mv"."0.0.5";
   by-version."mv"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mv-0.0.5";
+    name = "mv-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mv/-/mv-0.0.5.tgz";
@@ -11900,8 +12895,8 @@
     ];
     buildInputs =
       (self.nativeDeps."mv" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mv" ];
@@ -11909,7 +12904,8 @@
   by-spec."mz"."1" =
     self.by-version."mz"."1.0.1";
   by-version."mz"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mz-1.0.1";
+    name = "mz-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/mz/-/mz-1.0.1.tgz";
@@ -11919,9 +12915,9 @@
     ];
     buildInputs =
       (self.nativeDeps."mz" or []);
-    deps = [
-      self.by-version."native-or-bluebird"."1.0.0"
-    ];
+    deps = {
+      "native-or-bluebird-1.1.1" = self.by-version."native-or-bluebird"."1.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "mz" ];
@@ -11929,7 +12925,8 @@
   by-spec."nan"."1.1.2" =
     self.by-version."nan"."1.1.2";
   by-version."nan"."1.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nan-1.1.2";
+    name = "nan-1.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nan/-/nan-1.1.2.tgz";
@@ -11939,8 +12936,8 @@
     ];
     buildInputs =
       (self.nativeDeps."nan" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nan" ];
@@ -11948,7 +12945,8 @@
   by-spec."nan"."1.2.0" =
     self.by-version."nan"."1.2.0";
   by-version."nan"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nan-1.2.0";
+    name = "nan-1.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nan/-/nan-1.2.0.tgz";
@@ -11958,8 +12956,8 @@
     ];
     buildInputs =
       (self.nativeDeps."nan" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nan" ];
@@ -11967,7 +12965,8 @@
   by-spec."nan"."1.3.0" =
     self.by-version."nan"."1.3.0";
   by-version."nan"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nan-1.3.0";
+    name = "nan-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nan/-/nan-1.3.0.tgz";
@@ -11977,18 +12976,19 @@
     ];
     buildInputs =
       (self.nativeDeps."nan" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nan" ];
   };
-  by-spec."nan".">=1.1.0" =
+  by-spec."nan".">=1.3.0" =
     self.by-version."nan"."1.3.0";
   by-spec."nan"."~0.8.0" =
     self.by-version."nan"."0.8.0";
   by-version."nan"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nan-0.8.0";
+    name = "nan-0.8.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nan/-/nan-0.8.0.tgz";
@@ -11998,8 +12998,8 @@
     ];
     buildInputs =
       (self.nativeDeps."nan" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nan" ];
@@ -12007,7 +13007,8 @@
   by-spec."nan"."~1.0.0" =
     self.by-version."nan"."1.0.0";
   by-version."nan"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nan-1.0.0";
+    name = "nan-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nan/-/nan-1.0.0.tgz";
@@ -12017,8 +13018,8 @@
     ];
     buildInputs =
       (self.nativeDeps."nan" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nan" ];
@@ -12028,20 +13029,21 @@
   by-spec."nan"."~1.2.0" =
     self.by-version."nan"."1.2.0";
   by-spec."native-or-bluebird"."1" =
-    self.by-version."native-or-bluebird"."1.0.0";
-  by-version."native-or-bluebird"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-native-or-bluebird-1.0.0";
+    self.by-version."native-or-bluebird"."1.1.1";
+  by-version."native-or-bluebird"."1.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "native-or-bluebird-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.0.0.tgz";
-        name = "native-or-bluebird-1.0.0.tgz";
-        sha1 = "2259f00d3b8621a9e6389f0d99badfcc2d8fccfe";
+        url = "http://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.1.tgz";
+        name = "native-or-bluebird-1.1.1.tgz";
+        sha1 = "9131a6d6532afdfb5635f9703734cc6652c905ee";
       })
     ];
     buildInputs =
       (self.nativeDeps."native-or-bluebird" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "native-or-bluebird" ];
@@ -12049,7 +13051,8 @@
   by-spec."natural"."0.1.17" =
     self.by-version."natural"."0.1.17";
   by-version."natural"."0.1.17" = lib.makeOverridable self.buildNodePackage {
-    name = "node-natural-0.1.17";
+    name = "natural-0.1.17";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/natural/-/natural-0.1.17.tgz";
@@ -12059,11 +13062,11 @@
     ];
     buildInputs =
       (self.nativeDeps."natural" or []);
-    deps = [
-      self.by-version."sylvester"."0.0.21"
-      self.by-version."apparatus"."0.0.8"
-      self.by-version."underscore"."1.6.0"
-    ];
+    deps = {
+      "sylvester-0.0.21" = self.by-version."sylvester"."0.0.21";
+      "apparatus-0.0.8" = self.by-version."apparatus"."0.0.8";
+      "underscore-1.7.0" = self.by-version."underscore"."1.7.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "natural" ];
@@ -12071,7 +13074,8 @@
   by-spec."nconf"."*" =
     self.by-version."nconf"."0.6.9";
   by-version."nconf"."0.6.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nconf-0.6.9";
+    name = "nconf-0.6.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz";
@@ -12081,11 +13085,11 @@
     ];
     buildInputs =
       (self.nativeDeps."nconf" or []);
-    deps = [
-      self.by-version."async"."0.2.9"
-      self.by-version."ini"."1.2.1"
-      self.by-version."optimist"."0.6.0"
-    ];
+    deps = {
+      "async-0.2.9" = self.by-version."async"."0.2.9";
+      "ini-1.2.1" = self.by-version."ini"."1.2.1";
+      "optimist-0.6.0" = self.by-version."optimist"."0.6.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nconf" ];
@@ -12099,6 +13103,7 @@
     self.by-version."ncp"."0.2.7";
   by-version."ncp"."0.2.7" = lib.makeOverridable self.buildNodePackage {
     name = "ncp-0.2.7";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ncp/-/ncp-0.2.7.tgz";
@@ -12108,8 +13113,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ncp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ncp" ];
@@ -12118,6 +13123,7 @@
     self.by-version."ncp"."0.4.2";
   by-version."ncp"."0.4.2" = lib.makeOverridable self.buildNodePackage {
     name = "ncp-0.4.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz";
@@ -12127,8 +13133,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ncp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ncp" ];
@@ -12140,7 +13146,8 @@
   by-spec."negotiator"."0.2.5" =
     self.by-version."negotiator"."0.2.5";
   by-version."negotiator"."0.2.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-negotiator-0.2.5";
+    name = "negotiator-0.2.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/negotiator/-/negotiator-0.2.5.tgz";
@@ -12150,8 +13157,8 @@
     ];
     buildInputs =
       (self.nativeDeps."negotiator" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "negotiator" ];
@@ -12159,7 +13166,8 @@
   by-spec."negotiator"."0.3.0" =
     self.by-version."negotiator"."0.3.0";
   by-version."negotiator"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-negotiator-0.3.0";
+    name = "negotiator-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz";
@@ -12169,8 +13177,8 @@
     ];
     buildInputs =
       (self.nativeDeps."negotiator" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "negotiator" ];
@@ -12178,7 +13186,8 @@
   by-spec."negotiator"."0.4.7" =
     self.by-version."negotiator"."0.4.7";
   by-version."negotiator"."0.4.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-negotiator-0.4.7";
+    name = "negotiator-0.4.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz";
@@ -12188,8 +13197,8 @@
     ];
     buildInputs =
       (self.nativeDeps."negotiator" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "negotiator" ];
@@ -12199,7 +13208,8 @@
   by-spec."net-ping"."1.1.7" =
     self.by-version."net-ping"."1.1.7";
   by-version."net-ping"."1.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-net-ping-1.1.7";
+    name = "net-ping-1.1.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/net-ping/-/net-ping-1.1.7.tgz";
@@ -12209,9 +13219,9 @@
     ];
     buildInputs =
       (self.nativeDeps."net-ping" or []);
-    deps = [
-      self.by-version."raw-socket"."1.2.2"
-    ];
+    deps = {
+      "raw-socket-1.2.2" = self.by-version."raw-socket"."1.2.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "net-ping" ];
@@ -12219,7 +13229,8 @@
   by-spec."nib"."0.5.0" =
     self.by-version."nib"."0.5.0";
   by-version."nib"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nib-0.5.0";
+    name = "nib-0.5.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nib/-/nib-0.5.0.tgz";
@@ -12229,38 +13240,40 @@
     ];
     buildInputs =
       (self.nativeDeps."nib" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nib" ];
   };
   by-spec."nijs"."*" =
-    self.by-version."nijs"."0.0.14";
-  by-version."nijs"."0.0.14" = lib.makeOverridable self.buildNodePackage {
-    name = "nijs-0.0.14";
+    self.by-version."nijs"."0.0.15";
+  by-version."nijs"."0.0.15" = lib.makeOverridable self.buildNodePackage {
+    name = "nijs-0.0.15";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nijs/-/nijs-0.0.14.tgz";
-        name = "nijs-0.0.14.tgz";
-        sha1 = "e4851865ee94567e33c7c7e6d7d92c031e8f1eab";
+        url = "http://registry.npmjs.org/nijs/-/nijs-0.0.15.tgz";
+        name = "nijs-0.0.15.tgz";
+        sha1 = "71c3963969f5b1b6a4bb99d3cd574e87aac14592";
       })
     ];
     buildInputs =
       (self.nativeDeps."nijs" or []);
-    deps = [
-      self.by-version."optparse"."1.0.5"
-      self.by-version."slasp"."0.0.3"
-    ];
+    deps = {
+      "optparse-1.0.5" = self.by-version."optparse"."1.0.5";
+      "slasp-0.0.4" = self.by-version."slasp"."0.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nijs" ];
   };
-  "nijs" = self.by-version."nijs"."0.0.14";
+  "nijs" = self.by-version."nijs"."0.0.15";
   by-spec."node-appc"."0.2.0" =
     self.by-version."node-appc"."0.2.0";
   by-version."node-appc"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-appc-0.2.0";
+    name = "node-appc-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-appc/-/node-appc-0.2.0.tgz";
@@ -12270,23 +13283,23 @@
     ];
     buildInputs =
       (self.nativeDeps."node-appc" or []);
-    deps = [
-      self.by-version."adm-zip"."0.4.4"
-      self.by-version."async"."0.2.10"
-      self.by-version."colors"."0.6.2"
-      self.by-version."diff"."1.0.8"
-      self.by-version."dox"."0.4.6"
-      self.by-version."jade"."0.35.0"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."request"."2.27.0"
-      self.by-version."semver"."2.1.0"
-      self.by-version."sprintf"."0.1.4"
-      self.by-version."temp"."0.6.0"
-      self.by-version."wrench"."1.5.8"
-      self.by-version."uglify-js"."2.3.6"
-      self.by-version."xmldom"."0.1.19"
-    ];
+    deps = {
+      "adm-zip-0.4.4" = self.by-version."adm-zip"."0.4.4";
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "diff-1.0.8" = self.by-version."diff"."1.0.8";
+      "dox-0.4.6" = self.by-version."dox"."0.4.6";
+      "jade-0.35.0" = self.by-version."jade"."0.35.0";
+      "node-uuid-1.4.1" = self.by-version."node-uuid"."1.4.1";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+      "request-2.27.0" = self.by-version."request"."2.27.0";
+      "semver-2.1.0" = self.by-version."semver"."2.1.0";
+      "sprintf-0.1.4" = self.by-version."sprintf"."0.1.4";
+      "temp-0.6.0" = self.by-version."temp"."0.6.0";
+      "wrench-1.5.8" = self.by-version."wrench"."1.5.8";
+      "uglify-js-2.3.6" = self.by-version."uglify-js"."2.3.6";
+      "xmldom-0.1.19" = self.by-version."xmldom"."0.1.19";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-appc" ];
@@ -12294,7 +13307,8 @@
   by-spec."node-expat"."*" =
     self.by-version."node-expat"."2.3.1";
   by-version."node-expat"."2.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-expat-2.3.1";
+    name = "node-expat-2.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-expat/-/node-expat-2.3.1.tgz";
@@ -12304,84 +13318,56 @@
     ];
     buildInputs =
       (self.nativeDeps."node-expat" or []);
-    deps = [
-      self.by-version."bindings"."1.2.1"
-      self.by-version."nan"."1.2.0"
-    ];
+    deps = {
+      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
+      "nan-1.2.0" = self.by-version."nan"."1.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-expat" ];
   };
   "node-expat" = self.by-version."node-expat"."2.3.1";
   by-spec."node-gyp"."*" =
-    self.by-version."node-gyp"."1.0.1";
-  by-version."node-gyp"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-gyp-1.0.1";
+    self.by-version."node-gyp"."1.0.2";
+  by-version."node-gyp"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-gyp-1.0.2";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/node-gyp/-/node-gyp-1.0.1.tgz";
-        name = "node-gyp-1.0.1.tgz";
-        sha1 = "d5e364145ff10b259be9986855c83b5a76a2d975";
+        url = "http://registry.npmjs.org/node-gyp/-/node-gyp-1.0.2.tgz";
+        name = "node-gyp-1.0.2.tgz";
+        sha1 = "b0bb6d2d762271408dd904853e7aa3000ed2eb57";
       })
     ];
     buildInputs =
       (self.nativeDeps."node-gyp" or []);
-    deps = [
-      self.by-version."fstream"."1.0.2"
-      self.by-version."glob"."4.0.5"
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."minimatch"."1.0.0"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."nopt"."3.0.1"
-      self.by-version."npmlog"."0.1.1"
-      self.by-version."osenv"."0.1.0"
-      self.by-version."request"."2.40.0"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."semver"."3.0.1"
-      self.by-version."tar"."1.0.1"
-      self.by-version."which"."1.0.5"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "node-gyp" ];
-  };
-  "node-gyp" = self.by-version."node-gyp"."1.0.1";
-  by-spec."node-gyp"."~0.13.0" =
-    self.by-version."node-gyp"."0.13.1";
-  by-version."node-gyp"."0.13.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-gyp-0.13.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/node-gyp/-/node-gyp-0.13.1.tgz";
-        name = "node-gyp-0.13.1.tgz";
-        sha1 = "5a484dd2dc13d5b894a8fe781a250c07eae7bffa";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."node-gyp" or []);
-    deps = [
-      self.by-version."glob"."3.2.11"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."fstream"."0.1.31"
-      self.by-version."minimatch"."0.4.0"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."nopt"."2.2.1"
-      self.by-version."npmlog"."0.1.1"
-      self.by-version."osenv"."0.1.0"
-      self.by-version."request"."2.40.0"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."semver"."2.2.1"
-      self.by-version."tar"."0.1.20"
-      self.by-version."which"."1.0.5"
-    ];
+    deps = {
+      "fstream-1.0.2" = self.by-version."fstream"."1.0.2";
+      "glob-4.0.5" = self.by-version."glob"."4.0.5";
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "nopt-3.0.1" = self.by-version."nopt"."3.0.1";
+      "npmlog-0.1.1" = self.by-version."npmlog"."0.1.1";
+      "osenv-0.1.0" = self.by-version."osenv"."0.1.0";
+      "request-2.42.0" = self.by-version."request"."2.42.0";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+      "tar-1.0.1" = self.by-version."tar"."1.0.1";
+      "which-1.0.5" = self.by-version."which"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-gyp" ];
   };
+  "node-gyp" = self.by-version."node-gyp"."1.0.2";
+  by-spec."node-gyp"."~1.0.1" =
+    self.by-version."node-gyp"."1.0.2";
   by-spec."node-inspector"."*" =
     self.by-version."node-inspector"."0.7.4";
   by-version."node-inspector"."0.7.4" = lib.makeOverridable self.buildNodePackage {
     name = "node-inspector-0.7.4";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-inspector/-/node-inspector-0.7.4.tgz";
@@ -12391,49 +13377,51 @@
     ];
     buildInputs =
       (self.nativeDeps."node-inspector" or []);
-    deps = [
-      self.by-version."express"."4.0.0"
-      self.by-version."async"."0.8.0"
-      self.by-version."glob"."3.2.11"
-      self.by-version."rc"."0.3.5"
-      self.by-version."strong-data-uri"."0.1.1"
-      self.by-version."debug"."0.8.1"
-      self.by-version."ws"."0.4.32"
-      self.by-version."opener"."1.3.0"
-      self.by-version."yargs"."1.2.6"
-      self.by-version."which"."1.0.5"
-    ];
+    deps = {
+      "express-4.0.0" = self.by-version."express"."4.0.0";
+      "async-0.8.0" = self.by-version."async"."0.8.0";
+      "glob-3.2.11" = self.by-version."glob"."3.2.11";
+      "rc-0.3.5" = self.by-version."rc"."0.3.5";
+      "strong-data-uri-0.1.1" = self.by-version."strong-data-uri"."0.1.1";
+      "debug-0.8.1" = self.by-version."debug"."0.8.1";
+      "ws-0.4.32" = self.by-version."ws"."0.4.32";
+      "opener-1.3.0" = self.by-version."opener"."1.3.0";
+      "yargs-1.2.6" = self.by-version."yargs"."1.2.6";
+      "which-1.0.5" = self.by-version."which"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-inspector" ];
   };
   "node-inspector" = self.by-version."node-inspector"."0.7.4";
   by-spec."node-protobuf"."*" =
-    self.by-version."node-protobuf"."1.2.0";
-  by-version."node-protobuf"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-protobuf-1.2.0";
+    self.by-version."node-protobuf"."1.2.1";
+  by-version."node-protobuf"."1.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-protobuf-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/node-protobuf/-/node-protobuf-1.2.0.tgz";
-        name = "node-protobuf-1.2.0.tgz";
-        sha1 = "c69ca29f149431b6b6ec8079ec2ee01aa0590bcc";
+        url = "http://registry.npmjs.org/node-protobuf/-/node-protobuf-1.2.1.tgz";
+        name = "node-protobuf-1.2.1.tgz";
+        sha1 = "d517eb4cdcfac002390ace6b8f0b865322eef049";
       })
     ];
     buildInputs =
       (self.nativeDeps."node-protobuf" or []);
-    deps = [
-      self.by-version."bindings"."1.2.1"
-      self.by-version."nan"."1.3.0"
-    ];
+    deps = {
+      "bindings-1.2.1" = self.by-version."bindings"."1.2.1";
+      "nan-1.3.0" = self.by-version."nan"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-protobuf" ];
   };
-  "node-protobuf" = self.by-version."node-protobuf"."1.2.0";
+  "node-protobuf" = self.by-version."node-protobuf"."1.2.1";
   by-spec."node-swt".">=0.1.1" =
     self.by-version."node-swt"."0.1.1";
   by-version."node-swt"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-swt-0.1.1";
+    name = "node-swt-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-swt/-/node-swt-0.1.1.tgz";
@@ -12443,8 +13431,8 @@
     ];
     buildInputs =
       (self.nativeDeps."node-swt" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-swt" ];
@@ -12452,7 +13440,8 @@
   by-spec."node-syslog"."1.1.7" =
     self.by-version."node-syslog"."1.1.7";
   by-version."node-syslog"."1.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-syslog-1.1.7";
+    name = "node-syslog-1.1.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-syslog/-/node-syslog-1.1.7.tgz";
@@ -12462,8 +13451,8 @@
     ];
     buildInputs =
       (self.nativeDeps."node-syslog" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-syslog" ];
@@ -12471,7 +13460,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-uptime-3.2.0";
+    name = "node-uptime-3.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "https://github.com/fzaninotto/uptime/tarball/1c65756575f90f563a752e2a22892ba2981c79b7";
@@ -12481,22 +13471,22 @@
     ];
     buildInputs =
       (self.nativeDeps."node-uptime" or []);
-    deps = [
-      self.by-version."mongoose"."3.6.7"
-      self.by-version."mongoose-lifecycle"."1.0.0"
-      self.by-version."express"."3.2.0"
-      self.by-version."express-partials"."0.0.6"
-      self.by-version."connect-flash"."0.1.0"
-      self.by-version."ejs"."0.8.3"
-      self.by-version."config"."0.4.15"
-      self.by-version."async"."0.1.22"
-      self.by-version."socket.io"."0.9.14"
-      self.by-version."semver"."1.1.0"
-      self.by-version."moment"."2.1.0"
-      self.by-version."nodemailer"."0.3.35"
-      self.by-version."net-ping"."1.1.7"
-      self.by-version."js-yaml"."2.1.0"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-uptime" ];
@@ -12505,7 +13495,8 @@
   by-spec."node-uuid"."*" =
     self.by-version."node-uuid"."1.4.1";
   by-version."node-uuid"."1.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-uuid-1.4.1";
+    name = "node-uuid-1.4.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz";
@@ -12515,8 +13506,8 @@
     ];
     buildInputs =
       (self.nativeDeps."node-uuid" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-uuid" ];
@@ -12525,7 +13516,8 @@
   by-spec."node-uuid"."1.3.3" =
     self.by-version."node-uuid"."1.3.3";
   by-version."node-uuid"."1.3.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-uuid-1.3.3";
+    name = "node-uuid-1.3.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.3.3.tgz";
@@ -12535,8 +13527,8 @@
     ];
     buildInputs =
       (self.nativeDeps."node-uuid" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-uuid" ];
@@ -12544,7 +13536,8 @@
   by-spec."node-uuid"."1.4.0" =
     self.by-version."node-uuid"."1.4.0";
   by-version."node-uuid"."1.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-uuid-1.4.0";
+    name = "node-uuid-1.4.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.0.tgz";
@@ -12554,8 +13547,8 @@
     ];
     buildInputs =
       (self.nativeDeps."node-uuid" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-uuid" ];
@@ -12569,7 +13562,8 @@
   by-spec."node-wsfederation".">=0.1.1" =
     self.by-version."node-wsfederation"."0.1.1";
   by-version."node-wsfederation"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-wsfederation-0.1.1";
+    name = "node-wsfederation-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node-wsfederation/-/node-wsfederation-0.1.1.tgz";
@@ -12579,9 +13573,9 @@
     ];
     buildInputs =
       (self.nativeDeps."node-wsfederation" or []);
-    deps = [
-      self.by-version."xml2js"."0.4.4"
-    ];
+    deps = {
+      "xml2js-0.4.4" = self.by-version."xml2js"."0.4.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node-wsfederation" ];
@@ -12589,7 +13583,8 @@
   by-spec."node.extend"."1.0.0" =
     self.by-version."node.extend"."1.0.0";
   by-version."node.extend"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node.extend-1.0.0";
+    name = "node.extend-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/node.extend/-/node.extend-1.0.0.tgz";
@@ -12599,8 +13594,8 @@
     ];
     buildInputs =
       (self.nativeDeps."node.extend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "node.extend" ];
@@ -12609,6 +13604,7 @@
     self.by-version."nodemailer"."0.3.35";
   by-version."nodemailer"."0.3.35" = lib.makeOverridable self.buildNodePackage {
     name = "nodemailer-0.3.35";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nodemailer/-/nodemailer-0.3.35.tgz";
@@ -12618,11 +13614,11 @@
     ];
     buildInputs =
       (self.nativeDeps."nodemailer" or []);
-    deps = [
-      self.by-version."mailcomposer"."0.2.12"
-      self.by-version."simplesmtp"."0.3.32"
-      self.by-version."optimist"."0.6.1"
-    ];
+    deps = {
+      "mailcomposer-0.2.12" = self.by-version."mailcomposer"."0.2.12";
+      "simplesmtp-0.3.33" = self.by-version."simplesmtp"."0.3.33";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nodemailer" ];
@@ -12631,6 +13627,7 @@
     self.by-version."nodemon"."1.2.1";
   by-version."nodemon"."1.2.1" = lib.makeOverridable self.buildNodePackage {
     name = "nodemon-1.2.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nodemon/-/nodemon-1.2.1.tgz";
@@ -12640,11 +13637,11 @@
     ];
     buildInputs =
       (self.nativeDeps."nodemon" or []);
-    deps = [
-      self.by-version."update-notifier"."0.1.10"
-      self.by-version."minimatch"."0.3.0"
-      self.by-version."ps-tree"."0.0.3"
-    ];
+    deps = {
+      "update-notifier-0.1.10" = self.by-version."update-notifier"."0.1.10";
+      "minimatch-0.3.0" = self.by-version."minimatch"."0.3.0";
+      "ps-tree-0.0.3" = self.by-version."ps-tree"."0.0.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nodemon" ];
@@ -12653,7 +13650,8 @@
   by-spec."nomnom"."1.6.x" =
     self.by-version."nomnom"."1.6.2";
   by-version."nomnom"."1.6.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nomnom-1.6.2";
+    name = "nomnom-1.6.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz";
@@ -12663,10 +13661,10 @@
     ];
     buildInputs =
       (self.nativeDeps."nomnom" or []);
-    deps = [
-      self.by-version."colors"."0.5.1"
-      self.by-version."underscore"."1.4.4"
-    ];
+    deps = {
+      "colors-0.5.1" = self.by-version."colors"."0.5.1";
+      "underscore-1.4.4" = self.by-version."underscore"."1.4.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nomnom" ];
@@ -12675,6 +13673,7 @@
     self.by-version."nopt"."2.2.1";
   by-version."nopt"."2.2.1" = lib.makeOverridable self.buildNodePackage {
     name = "nopt-2.2.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz";
@@ -12684,9 +13683,9 @@
     ];
     buildInputs =
       (self.nativeDeps."nopt" or []);
-    deps = [
-      self.by-version."abbrev"."1.0.5"
-    ];
+    deps = {
+      "abbrev-1.0.5" = self.by-version."abbrev"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nopt" ];
@@ -12695,6 +13694,7 @@
     self.by-version."nopt"."3.0.1";
   by-version."nopt"."3.0.1" = lib.makeOverridable self.buildNodePackage {
     name = "nopt-3.0.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz";
@@ -12704,9 +13704,9 @@
     ];
     buildInputs =
       (self.nativeDeps."nopt" or []);
-    deps = [
-      self.by-version."abbrev"."1.0.5"
-    ];
+    deps = {
+      "abbrev-1.0.5" = self.by-version."abbrev"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nopt" ];
@@ -12715,6 +13715,7 @@
     self.by-version."nopt"."2.0.0";
   by-version."nopt"."2.0.0" = lib.makeOverridable self.buildNodePackage {
     name = "nopt-2.0.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz";
@@ -12724,9 +13725,9 @@
     ];
     buildInputs =
       (self.nativeDeps."nopt" or []);
-    deps = [
-      self.by-version."abbrev"."1.0.5"
-    ];
+    deps = {
+      "abbrev-1.0.5" = self.by-version."abbrev"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nopt" ];
@@ -12737,6 +13738,7 @@
     self.by-version."nopt"."1.0.10";
   by-version."nopt"."1.0.10" = lib.makeOverridable self.buildNodePackage {
     name = "nopt-1.0.10";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz";
@@ -12746,9 +13748,9 @@
     ];
     buildInputs =
       (self.nativeDeps."nopt" or []);
-    deps = [
-      self.by-version."abbrev"."1.0.5"
-    ];
+    deps = {
+      "abbrev-1.0.5" = self.by-version."abbrev"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nopt" ];
@@ -12757,6 +13759,7 @@
     self.by-version."nopt"."2.1.2";
   by-version."nopt"."2.1.2" = lib.makeOverridable self.buildNodePackage {
     name = "nopt-2.1.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz";
@@ -12766,138 +13769,122 @@
     ];
     buildInputs =
       (self.nativeDeps."nopt" or []);
-    deps = [
-      self.by-version."abbrev"."1.0.5"
-    ];
+    deps = {
+      "abbrev-1.0.5" = self.by-version."abbrev"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nopt" ];
   };
   by-spec."nopt"."~3.0.1" =
     self.by-version."nopt"."3.0.1";
-  by-spec."normalize-package-data"."0.4" =
-    self.by-version."normalize-package-data"."0.4.2";
-  by-version."normalize-package-data"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-normalize-package-data-0.4.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/normalize-package-data/-/normalize-package-data-0.4.2.tgz";
-        name = "normalize-package-data-0.4.2.tgz";
-        sha1 = "166dc052a74e2f5ac1d3d23903ab3f2e2b7dd8e6";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."normalize-package-data" or []);
-    deps = [
-      self.by-version."github-url-from-git"."1.1.1"
-      self.by-version."github-url-from-username-repo"."0.2.0"
-      self.by-version."semver"."3.0.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "normalize-package-data" ];
-  };
   by-spec."normalize-package-data"."^1.0.0" =
-    self.by-version."normalize-package-data"."1.0.0";
-  by-version."normalize-package-data"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-normalize-package-data-1.0.0";
+    self.by-version."normalize-package-data"."1.0.2";
+  by-version."normalize-package-data"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "normalize-package-data-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/normalize-package-data/-/normalize-package-data-1.0.0.tgz";
-        name = "normalize-package-data-1.0.0.tgz";
-        sha1 = "5239d9921791a8ad027607f580a74c76166623c8";
+        url = "http://registry.npmjs.org/normalize-package-data/-/normalize-package-data-1.0.2.tgz";
+        name = "normalize-package-data-1.0.2.tgz";
+        sha1 = "32a902ad3cad3286f1106b9b9550062f44ee2118";
       })
     ];
     buildInputs =
       (self.nativeDeps."normalize-package-data" or []);
-    deps = [
-      self.by-version."github-url-from-git"."1.3.0"
-      self.by-version."github-url-from-username-repo"."0.2.0"
-      self.by-version."semver"."3.0.1"
-    ];
+    deps = {
+      "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";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "normalize-package-data" ];
   };
+  by-spec."normalize-package-data"."~1.0.1" =
+    self.by-version."normalize-package-data"."1.0.2";
   by-spec."npm"."*" =
-    self.by-version."npm"."2.0.0-alpha-5";
-  by-version."npm"."2.0.0-alpha-5" = lib.makeOverridable self.buildNodePackage {
-    name = "npm-2.0.0-alpha-5";
+    self.by-version."npm"."2.0.0-beta.3";
+  by-version."npm"."2.0.0-beta.3" = lib.makeOverridable self.buildNodePackage {
+    name = "npm-2.0.0-beta.3";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm/-/npm-2.0.0-alpha-5.tgz";
-        name = "npm-2.0.0-alpha-5.tgz";
-        sha1 = "5135b111cb6b8e56ab1bdc4e486b87c295862ca8";
+        url = "http://registry.npmjs.org/npm/-/npm-2.0.0-beta.3.tgz";
+        name = "npm-2.0.0-beta.3.tgz";
+        sha1 = "73857425b2b22a01949653d3fbe6ed917e6f850d";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm" or []);
-    deps = [
-      self.by-version."abbrev"."1.0.5"
-      self.by-version."ansi"."0.3.0"
-      self.by-version."ansicolors"."0.3.2"
-      self.by-version."ansistyles"."0.1.3"
-      self.by-version."archy"."0.0.2"
-      self.by-version."async-some"."1.0.1"
-      self.by-version."block-stream"."0.0.7"
-      self.by-version."char-spinner"."1.0.1"
-      self.by-version."child-process-close"."0.1.1"
-      self.by-version."chmodr"."0.1.0"
-      self.by-version."chownr"."0.0.1"
-      self.by-version."cmd-shim"."1.1.2"
-      self.by-version."columnify"."1.1.0"
-      self.by-version."editor"."0.1.0"
-      self.by-version."fs-vacuum"."1.2.1"
-      self.by-version."fstream"."0.1.31"
-      self.by-version."fstream-npm"."0.1.8"
-      self.by-version."github-url-from-git"."1.2.0"
-      self.by-version."github-url-from-username-repo"."0.2.0"
-      self.by-version."glob"."4.0.5"
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."inflight"."1.0.1"
-      self.by-version."ini"."1.2.1"
-      self.by-version."init-package-json"."0.1.2"
-      self.by-version."lockfile"."0.4.3"
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."minimatch"."0.3.0"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."node-gyp"."0.13.1"
-      self.by-version."nopt"."3.0.1"
-      self.by-version."npm-cache-filename"."1.0.1"
-      self.by-version."npm-install-checks"."1.0.3"
-      self.by-version."npm-package-arg"."2.0.2"
-      self.by-version."npm-registry-client"."3.0.6"
-      self.by-version."npm-user-validate"."0.1.0"
-      self.by-version."npmconf"."2.0.5"
-      self.by-version."npmlog"."0.1.1"
-      self.by-version."once"."1.3.0"
-      self.by-version."opener"."1.3.0"
-      self.by-version."osenv"."0.1.0"
-      self.by-version."path-is-inside"."1.0.1"
-      self.by-version."read"."1.0.5"
-      self.by-version."read-installed"."2.0.7"
-      self.by-version."read-package-json"."1.2.6"
-      self.by-version."request"."2.30.0"
-      self.by-version."retry"."0.6.1"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."semver"."2.3.2"
-      self.by-version."sha"."1.2.4"
-      self.by-version."slide"."1.1.5"
-      self.by-version."sorted-object"."1.0.0"
-      self.by-version."tar"."0.1.20"
-      self.by-version."text-table"."0.2.0"
-      self.by-version."uid-number"."0.0.5"
-      self.by-version."which"."1.0.5"
-    ];
+    deps = {
+      "abbrev-1.0.5" = self.by-version."abbrev"."1.0.5";
+      "ansi-0.3.0" = self.by-version."ansi"."0.3.0";
+      "ansicolors-0.3.2" = self.by-version."ansicolors"."0.3.2";
+      "ansistyles-0.1.3" = self.by-version."ansistyles"."0.1.3";
+      "archy-0.0.2" = self.by-version."archy"."0.0.2";
+      "async-some-1.0.1" = self.by-version."async-some"."1.0.1";
+      "block-stream-0.0.7" = self.by-version."block-stream"."0.0.7";
+      "char-spinner-1.0.1" = self.by-version."char-spinner"."1.0.1";
+      "child-process-close-0.1.1" = self.by-version."child-process-close"."0.1.1";
+      "chmodr-0.1.0" = self.by-version."chmodr"."0.1.0";
+      "chownr-0.0.1" = self.by-version."chownr"."0.0.1";
+      "cmd-shim-2.0.1" = self.by-version."cmd-shim"."2.0.1";
+      "columnify-1.2.1" = self.by-version."columnify"."1.2.1";
+      "editor-0.1.0" = self.by-version."editor"."0.1.0";
+      "fs-vacuum-1.2.1" = self.by-version."fs-vacuum"."1.2.1";
+      "fstream-1.0.2" = self.by-version."fstream"."1.0.2";
+      "fstream-npm-1.0.0" = self.by-version."fstream-npm"."1.0.0";
+      "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-4.0.5" = self.by-version."glob"."4.0.5";
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "inflight-1.0.1" = self.by-version."inflight"."1.0.1";
+      "ini-1.2.1" = self.by-version."ini"."1.2.1";
+      "init-package-json-1.0.1" = self.by-version."init-package-json"."1.0.1";
+      "lockfile-1.0.0" = self.by-version."lockfile"."1.0.0";
+      "lru-cache-2.5.0" = self.by-version."lru-cache"."2.5.0";
+      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "node-gyp-1.0.2" = self.by-version."node-gyp"."1.0.2";
+      "nopt-3.0.1" = self.by-version."nopt"."3.0.1";
+      "normalize-package-data-1.0.2" = self.by-version."normalize-package-data"."1.0.2";
+      "npm-cache-filename-1.0.1" = self.by-version."npm-cache-filename"."1.0.1";
+      "npm-install-checks-1.0.4" = self.by-version."npm-install-checks"."1.0.4";
+      "npm-package-arg-2.1.1" = self.by-version."npm-package-arg"."2.1.1";
+      "npm-registry-client-3.1.8" = self.by-version."npm-registry-client"."3.1.8";
+      "npm-user-validate-0.1.0" = self.by-version."npm-user-validate"."0.1.0";
+      "npmconf-2.0.9" = self.by-version."npmconf"."2.0.9";
+      "npmlog-0.1.1" = self.by-version."npmlog"."0.1.1";
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+      "opener-1.3.0" = self.by-version."opener"."1.3.0";
+      "osenv-0.1.0" = self.by-version."osenv"."0.1.0";
+      "path-is-inside-1.0.1" = self.by-version."path-is-inside"."1.0.1";
+      "read-1.0.5" = self.by-version."read"."1.0.5";
+      "read-installed-3.1.3" = self.by-version."read-installed"."3.1.3";
+      "read-package-json-1.2.7" = self.by-version."read-package-json"."1.2.7";
+      "request-2.42.0" = self.by-version."request"."2.42.0";
+      "retry-0.6.1" = self.by-version."retry"."0.6.1";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+      "sha-1.2.4" = self.by-version."sha"."1.2.4";
+      "slide-1.1.5" = self.by-version."slide"."1.1.5";
+      "sorted-object-1.0.0" = self.by-version."sorted-object"."1.0.0";
+      "tar-1.0.1" = self.by-version."tar"."1.0.1";
+      "text-table-0.2.0" = self.by-version."text-table"."0.2.0";
+      "uid-number-0.0.5" = self.by-version."uid-number"."0.0.5";
+      "which-1.0.5" = self.by-version."which"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npm" ];
   };
-  "npm" = self.by-version."npm"."2.0.0-alpha-5";
+  "npm" = self.by-version."npm"."2.0.0-beta.3";
   by-spec."npm-cache-filename"."^1.0.0" =
     self.by-version."npm-cache-filename"."1.0.1";
   by-version."npm-cache-filename"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-cache-filename-1.0.1";
+    name = "npm-cache-filename-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.1.tgz";
@@ -12907,8 +13894,8 @@
     ];
     buildInputs =
       (self.nativeDeps."npm-cache-filename" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npm-cache-filename" ];
@@ -12916,42 +13903,44 @@
   by-spec."npm-cache-filename"."~1.0.1" =
     self.by-version."npm-cache-filename"."1.0.1";
   by-spec."npm-install-checks"."~1.0.2" =
-    self.by-version."npm-install-checks"."1.0.3";
-  by-version."npm-install-checks"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-install-checks-1.0.3";
+    self.by-version."npm-install-checks"."1.0.4";
+  by-version."npm-install-checks"."1.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "npm-install-checks-1.0.4";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm-install-checks/-/npm-install-checks-1.0.3.tgz";
-        name = "npm-install-checks-1.0.3.tgz";
-        sha1 = "9301006141a8f1454ae6bfe9a2f89da91316de02";
+        url = "http://registry.npmjs.org/npm-install-checks/-/npm-install-checks-1.0.4.tgz";
+        name = "npm-install-checks-1.0.4.tgz";
+        sha1 = "9757c6f9d4d493c2489465da6d07a8ed416d44c8";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm-install-checks" or []);
-    deps = [
-      self.by-version."npmlog"."0.1.1"
-      self.by-version."semver"."3.0.1"
-    ];
+    deps = {
+      "npmlog-0.1.1" = self.by-version."npmlog"."0.1.1";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npm-install-checks" ];
   };
-  by-spec."npm-package-arg"."~2.0.0" =
-    self.by-version."npm-package-arg"."2.0.2";
-  by-version."npm-package-arg"."2.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-package-arg-2.0.2";
+  by-spec."npm-package-arg"."~2.1.0" =
+    self.by-version."npm-package-arg"."2.1.1";
+  by-version."npm-package-arg"."2.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "npm-package-arg-2.1.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm-package-arg/-/npm-package-arg-2.0.2.tgz";
-        name = "npm-package-arg-2.0.2.tgz";
-        sha1 = "e4f660c683068eccba9b27b4075cc00c0ccc6037";
+        url = "http://registry.npmjs.org/npm-package-arg/-/npm-package-arg-2.1.1.tgz";
+        name = "npm-package-arg-2.1.1.tgz";
+        sha1 = "05cd158bd581be9588b588d0937ebfe649ff04cd";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm-package-arg" or []);
-    deps = [
-      self.by-version."semver"."3.0.1"
-    ];
+    deps = {
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npm-package-arg" ];
@@ -12959,7 +13948,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-registry-client-0.2.27";
+    name = "npm-registry-client-0.2.27";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-0.2.27.tgz";
@@ -12969,58 +13959,61 @@
     ];
     buildInputs =
       (self.nativeDeps."npm-registry-client" or []);
-    deps = [
-      self.by-version."request"."2.40.0"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."semver"."2.0.11"
-      self.by-version."slide"."1.1.5"
-      self.by-version."chownr"."0.0.1"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."retry"."0.6.0"
-      self.by-version."couch-login"."0.1.20"
-      self.by-version."npmlog"."0.1.1"
-    ];
+    deps = {
+      "request-2.42.0" = self.by-version."request"."2.42.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.5" = self.by-version."slide"."1.1.5";
+      "chownr-0.0.1" = self.by-version."chownr"."0.0.1";
+      "mkdirp-0.3.5" = self.by-version."mkdirp"."0.3.5";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+      "retry-0.6.0" = self.by-version."retry"."0.6.0";
+      "couch-login-0.1.20" = self.by-version."couch-login"."0.1.20";
+      "npmlog-0.1.1" = self.by-version."npmlog"."0.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npm-registry-client" ];
   };
-  by-spec."npm-registry-client"."~3.0.0" =
-    self.by-version."npm-registry-client"."3.0.6";
-  by-version."npm-registry-client"."3.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-registry-client-3.0.6";
+  by-spec."npm-registry-client"."~3.1.4" =
+    self.by-version."npm-registry-client"."3.1.8";
+  by-version."npm-registry-client"."3.1.8" = lib.makeOverridable self.buildNodePackage {
+    name = "npm-registry-client-3.1.8";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-3.0.6.tgz";
-        name = "npm-registry-client-3.0.6.tgz";
-        sha1 = "14a17d9a60ed2a80b04edcbc596dbce0d96540ee";
+        url = "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-3.1.8.tgz";
+        name = "npm-registry-client-3.1.8.tgz";
+        sha1 = "8cc5e0e6523683a95ba0735e53fddb5819372033";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm-registry-client" or []);
-    deps = [
-      self.by-version."chownr"."0.0.1"
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."normalize-package-data"."0.4.2"
-      self.by-version."npm-cache-filename"."1.0.1"
-      self.by-version."request"."2.40.0"
-      self.by-version."retry"."0.6.0"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."semver"."3.0.1"
-      self.by-version."slide"."1.1.5"
-      self.by-version."npmlog"."0.1.1"
-    ];
+    deps = {
+      "chownr-0.0.1" = self.by-version."chownr"."0.0.1";
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "normalize-package-data-1.0.2" = self.by-version."normalize-package-data"."1.0.2";
+      "npm-cache-filename-1.0.1" = self.by-version."npm-cache-filename"."1.0.1";
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+      "request-2.42.0" = self.by-version."request"."2.42.0";
+      "retry-0.6.0" = self.by-version."retry"."0.6.0";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+      "slide-1.1.5" = self.by-version."slide"."1.1.5";
+      "npmlog-0.1.1" = self.by-version."npmlog"."0.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npm-registry-client" ];
   };
-  by-spec."npm-registry-client"."~3.0.2" =
-    self.by-version."npm-registry-client"."3.0.6";
+  by-spec."npm-registry-client"."~3.1.7" =
+    self.by-version."npm-registry-client"."3.1.8";
   by-spec."npm-user-validate"."~0.1.0" =
     self.by-version."npm-user-validate"."0.1.0";
   by-version."npm-user-validate"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-user-validate-0.1.0";
+    name = "npm-user-validate-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.0.tgz";
@@ -13030,44 +14023,46 @@
     ];
     buildInputs =
       (self.nativeDeps."npm-user-validate" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npm-user-validate" ];
   };
   by-spec."npm2nix"."*" =
-    self.by-version."npm2nix"."5.7.0";
-  by-version."npm2nix"."5.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "npm2nix-5.7.0";
+    self.by-version."npm2nix"."5.8.1";
+  by-version."npm2nix"."5.8.1" = lib.makeOverridable self.buildNodePackage {
+    name = "npm2nix-5.8.1";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm2nix/-/npm2nix-5.7.0.tgz";
-        name = "npm2nix-5.7.0.tgz";
-        sha1 = "ac4547c4ee35fd19fd8dfcf1b1f47eccfb6b6dfa";
+        url = "http://registry.npmjs.org/npm2nix/-/npm2nix-5.8.1.tgz";
+        name = "npm2nix-5.8.1.tgz";
+        sha1 = "0d8356b458caaa677b4a1225fea4900f2995982f";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm2nix" or []);
-    deps = [
-      self.by-version."semver"."2.3.2"
-      self.by-version."argparse"."0.1.15"
-      self.by-version."npm-registry-client"."0.2.27"
-      self.by-version."npmconf"."0.1.1"
-      self.by-version."tar"."0.1.17"
-      self.by-version."temp"."0.6.0"
-      self.by-version."fs.extra"."1.2.1"
-      self.by-version."findit"."1.2.0"
-    ];
+    deps = {
+      "semver-2.3.2" = self.by-version."semver"."2.3.2";
+      "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.2.1" = self.by-version."fs.extra"."1.2.1";
+      "findit-1.2.0" = self.by-version."findit"."1.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npm2nix" ];
   };
-  "npm2nix" = self.by-version."npm2nix"."5.7.0";
+  "npm2nix" = self.by-version."npm2nix"."5.8.1";
   by-spec."npmconf"."0.0.24" =
     self.by-version."npmconf"."0.0.24";
   by-version."npmconf"."0.0.24" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npmconf-0.0.24";
+    name = "npmconf-0.0.24";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/npmconf/-/npmconf-0.0.24.tgz";
@@ -13077,16 +14072,16 @@
     ];
     buildInputs =
       (self.nativeDeps."npmconf" or []);
-    deps = [
-      self.by-version."config-chain"."1.1.8"
-      self.by-version."inherits"."1.0.0"
-      self.by-version."once"."1.1.1"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."nopt"."2.2.1"
-      self.by-version."semver"."1.1.4"
-      self.by-version."ini"."1.1.0"
-    ];
+    deps = {
+      "config-chain-1.1.8" = self.by-version."config-chain"."1.1.8";
+      "inherits-1.0.0" = self.by-version."inherits"."1.0.0";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npmconf" ];
@@ -13094,7 +14089,8 @@
   by-spec."npmconf"."0.1.1" =
     self.by-version."npmconf"."0.1.1";
   by-version."npmconf"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npmconf-0.1.1";
+    name = "npmconf-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/npmconf/-/npmconf-0.1.1.tgz";
@@ -13104,16 +14100,16 @@
     ];
     buildInputs =
       (self.nativeDeps."npmconf" or []);
-    deps = [
-      self.by-version."config-chain"."1.1.8"
-      self.by-version."inherits"."1.0.0"
-      self.by-version."once"."1.1.1"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."nopt"."2.2.1"
-      self.by-version."semver"."2.3.2"
-      self.by-version."ini"."1.1.0"
-    ];
+    deps = {
+      "config-chain-1.1.8" = self.by-version."config-chain"."1.1.8";
+      "inherits-1.0.0" = self.by-version."inherits"."1.0.0";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npmconf" ];
@@ -13121,7 +14117,8 @@
   by-spec."npmconf"."~0.1.2" =
     self.by-version."npmconf"."0.1.16";
   by-version."npmconf"."0.1.16" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npmconf-0.1.16";
+    name = "npmconf-0.1.16";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/npmconf/-/npmconf-0.1.16.tgz";
@@ -13131,54 +14128,56 @@
     ];
     buildInputs =
       (self.nativeDeps."npmconf" or []);
-    deps = [
-      self.by-version."config-chain"."1.1.8"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."once"."1.3.0"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."nopt"."2.2.1"
-      self.by-version."semver"."2.3.2"
-      self.by-version."ini"."1.1.0"
-    ];
+    deps = {
+      "config-chain-1.1.8" = self.by-version."config-chain"."1.1.8";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npmconf" ];
   };
-  by-spec."npmconf"."~2.0.1" =
-    self.by-version."npmconf"."2.0.5";
-  by-version."npmconf"."2.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npmconf-2.0.5";
+  by-spec."npmconf"."~2.0.5" =
+    self.by-version."npmconf"."2.0.9";
+  by-version."npmconf"."2.0.9" = lib.makeOverridable self.buildNodePackage {
+    name = "npmconf-2.0.9";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npmconf/-/npmconf-2.0.5.tgz";
-        name = "npmconf-2.0.5.tgz";
-        sha1 = "70ad9975cd8d855e198a2deec8df6d04d932035c";
+        url = "http://registry.npmjs.org/npmconf/-/npmconf-2.0.9.tgz";
+        name = "npmconf-2.0.9.tgz";
+        sha1 = "5c87e5fb308104eceeca781e3d9115d216351ef2";
       })
     ];
     buildInputs =
       (self.nativeDeps."npmconf" or []);
-    deps = [
-      self.by-version."config-chain"."1.1.8"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."ini"."1.2.1"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."nopt"."3.0.1"
-      self.by-version."once"."1.3.0"
-      self.by-version."osenv"."0.1.0"
-      self.by-version."semver"."3.0.1"
-      self.by-version."uid-number"."0.0.5"
-    ];
+    deps = {
+      "config-chain-1.1.8" = self.by-version."config-chain"."1.1.8";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "ini-1.2.1" = self.by-version."ini"."1.2.1";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "nopt-3.0.1" = self.by-version."nopt"."3.0.1";
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+      "osenv-0.1.0" = self.by-version."osenv"."0.1.0";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+      "uid-number-0.0.5" = self.by-version."uid-number"."0.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npmconf" ];
   };
-  by-spec."npmconf"."~2.0.3" =
-    self.by-version."npmconf"."2.0.5";
+  by-spec."npmconf"."~2.0.8" =
+    self.by-version."npmconf"."2.0.9";
   by-spec."npmlog"."*" =
     self.by-version."npmlog"."0.1.1";
   by-version."npmlog"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npmlog-0.1.1";
+    name = "npmlog-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz";
@@ -13188,9 +14187,9 @@
     ];
     buildInputs =
       (self.nativeDeps."npmlog" or []);
-    deps = [
-      self.by-version."ansi"."0.3.0"
-    ];
+    deps = {
+      "ansi-0.3.0" = self.by-version."ansi"."0.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "npmlog" ];
@@ -13204,7 +14203,8 @@
   by-spec."nssocket"."~0.5.1" =
     self.by-version."nssocket"."0.5.1";
   by-version."nssocket"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nssocket-0.5.1";
+    name = "nssocket-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/nssocket/-/nssocket-0.5.1.tgz";
@@ -13214,10 +14214,10 @@
     ];
     buildInputs =
       (self.nativeDeps."nssocket" or []);
-    deps = [
-      self.by-version."eventemitter2"."0.4.14"
-      self.by-version."lazy"."1.0.11"
-    ];
+    deps = {
+      "eventemitter2-0.4.14" = self.by-version."eventemitter2"."0.4.14";
+      "lazy-1.0.11" = self.by-version."lazy"."1.0.11";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "nssocket" ];
@@ -13225,7 +14225,8 @@
   by-spec."oauth"."https://github.com/ciaranj/node-oauth/tarball/master" =
     self.by-version."oauth"."0.9.11";
   by-version."oauth"."0.9.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-oauth-0.9.11";
+    name = "oauth-0.9.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "https://github.com/ciaranj/node-oauth/tarball/master";
@@ -13235,8 +14236,8 @@
     ];
     buildInputs =
       (self.nativeDeps."oauth" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "oauth" ];
@@ -13244,7 +14245,8 @@
   by-spec."oauth-sign"."~0.2.0" =
     self.by-version."oauth-sign"."0.2.0";
   by-version."oauth-sign"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-oauth-sign-0.2.0";
+    name = "oauth-sign-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz";
@@ -13254,8 +14256,8 @@
     ];
     buildInputs =
       (self.nativeDeps."oauth-sign" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "oauth-sign" ];
@@ -13263,7 +14265,8 @@
   by-spec."oauth-sign"."~0.3.0" =
     self.by-version."oauth-sign"."0.3.0";
   by-version."oauth-sign"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-oauth-sign-0.3.0";
+    name = "oauth-sign-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz";
@@ -13273,8 +14276,28 @@
     ];
     buildInputs =
       (self.nativeDeps."oauth-sign" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "oauth-sign" ];
+  };
+  by-spec."oauth-sign"."~0.4.0" =
+    self.by-version."oauth-sign"."0.4.0";
+  by-version."oauth-sign"."0.4.0" = lib.makeOverridable self.buildNodePackage {
+    name = "oauth-sign-0.4.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz";
+        name = "oauth-sign-0.4.0.tgz";
+        sha1 = "f22956f31ea7151a821e5f2fb32c113cad8b9f69";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."oauth-sign" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "oauth-sign" ];
@@ -13282,7 +14305,8 @@
   by-spec."object-additions".">= 0.5.0" =
     self.by-version."object-additions"."0.5.1";
   by-version."object-additions"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-object-additions-0.5.1";
+    name = "object-additions-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/object-additions/-/object-additions-0.5.1.tgz";
@@ -13292,8 +14316,8 @@
     ];
     buildInputs =
       (self.nativeDeps."object-additions" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "object-additions" ];
@@ -13301,7 +14325,8 @@
   by-spec."object-assign"."~0.3.1" =
     self.by-version."object-assign"."0.3.1";
   by-version."object-assign"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-object-assign-0.3.1";
+    name = "object-assign-0.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/object-assign/-/object-assign-0.3.1.tgz";
@@ -13311,8 +14336,8 @@
     ];
     buildInputs =
       (self.nativeDeps."object-assign" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "object-assign" ];
@@ -13320,7 +14345,8 @@
   by-spec."object-keys"."~0.4.0" =
     self.by-version."object-keys"."0.4.0";
   by-version."object-keys"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-object-keys-0.4.0";
+    name = "object-keys-0.4.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz";
@@ -13330,8 +14356,8 @@
     ];
     buildInputs =
       (self.nativeDeps."object-keys" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "object-keys" ];
@@ -13339,7 +14365,8 @@
   by-spec."on-finished"."2.1.0" =
     self.by-version."on-finished"."2.1.0";
   by-version."on-finished"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-on-finished-2.1.0";
+    name = "on-finished-2.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz";
@@ -13349,36 +14376,20 @@
     ];
     buildInputs =
       (self.nativeDeps."on-finished" or []);
-    deps = [
-      self.by-version."ee-first"."1.0.5"
-    ];
+    deps = {
+      "ee-first-1.0.5" = self.by-version."ee-first"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "on-finished" ];
   };
-  by-spec."on-headers"."0.0.0" =
-    self.by-version."on-headers"."0.0.0";
-  by-version."on-headers"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-on-headers-0.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/on-headers/-/on-headers-0.0.0.tgz";
-        name = "on-headers-0.0.0.tgz";
-        sha1 = "ee2817f8344325785cd9c2df2b242bbc17caf4c4";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."on-headers" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "on-headers" ];
-  };
+  by-spec."on-finished"."~2.1.0" =
+    self.by-version."on-finished"."2.1.0";
   by-spec."on-headers"."~1.0.0" =
     self.by-version."on-headers"."1.0.0";
   by-version."on-headers"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-on-headers-1.0.0";
+    name = "on-headers-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/on-headers/-/on-headers-1.0.0.tgz";
@@ -13388,8 +14399,8 @@
     ];
     buildInputs =
       (self.nativeDeps."on-headers" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "on-headers" ];
@@ -13397,7 +14408,8 @@
   by-spec."once"."1.1.1" =
     self.by-version."once"."1.1.1";
   by-version."once"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-once-1.1.1";
+    name = "once-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/once/-/once-1.1.1.tgz";
@@ -13407,8 +14419,8 @@
     ];
     buildInputs =
       (self.nativeDeps."once" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "once" ];
@@ -13416,7 +14428,8 @@
   by-spec."once"."1.x" =
     self.by-version."once"."1.3.0";
   by-version."once"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-once-1.3.0";
+    name = "once-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/once/-/once-1.3.0.tgz";
@@ -13426,8 +14439,8 @@
     ];
     buildInputs =
       (self.nativeDeps."once" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "once" ];
@@ -13438,29 +14451,11 @@
     self.by-version."once"."1.1.1";
   by-spec."once"."~1.3.0" =
     self.by-version."once"."1.3.0";
-  by-spec."only"."0.0.2" =
-    self.by-version."only"."0.0.2";
-  by-version."only"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-only-0.0.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/only/-/only-0.0.2.tgz";
-        name = "only-0.0.2.tgz";
-        sha1 = "2afde84d03e50b9a8edc444e30610a70295edfb4";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."only" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "only" ];
-  };
   by-spec."open"."0.0.2" =
     self.by-version."open"."0.0.2";
   by-version."open"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-open-0.0.2";
+    name = "open-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/open/-/open-0.0.2.tgz";
@@ -13470,8 +14465,8 @@
     ];
     buildInputs =
       (self.nativeDeps."open" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "open" ];
@@ -13479,7 +14474,8 @@
   by-spec."open"."~0.0.5" =
     self.by-version."open"."0.0.5";
   by-version."open"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-open-0.0.5";
+    name = "open-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/open/-/open-0.0.5.tgz";
@@ -13489,8 +14485,8 @@
     ];
     buildInputs =
       (self.nativeDeps."open" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "open" ];
@@ -13499,6 +14495,7 @@
     self.by-version."opener"."1.3.0";
   by-version."opener"."1.3.0" = lib.makeOverridable self.buildNodePackage {
     name = "opener-1.3.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/opener/-/opener-1.3.0.tgz";
@@ -13508,8 +14505,8 @@
     ];
     buildInputs =
       (self.nativeDeps."opener" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "opener" ];
@@ -13517,7 +14514,8 @@
   by-spec."openid".">=0.2.0" =
     self.by-version."openid"."0.5.9";
   by-version."openid"."0.5.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-openid-0.5.9";
+    name = "openid-0.5.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/openid/-/openid-0.5.9.tgz";
@@ -13527,8 +14525,8 @@
     ];
     buildInputs =
       (self.nativeDeps."openid" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "openid" ];
@@ -13536,7 +14534,8 @@
   by-spec."optimist"."*" =
     self.by-version."optimist"."0.6.1";
   by-version."optimist"."0.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-optimist-0.6.1";
+    name = "optimist-0.6.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz";
@@ -13546,10 +14545,10 @@
     ];
     buildInputs =
       (self.nativeDeps."optimist" or []);
-    deps = [
-      self.by-version."wordwrap"."0.0.2"
-      self.by-version."minimist"."0.0.10"
-    ];
+    deps = {
+      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
+      "minimist-0.0.10" = self.by-version."minimist"."0.0.10";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "optimist" ];
@@ -13558,7 +14557,8 @@
   by-spec."optimist"."0.2" =
     self.by-version."optimist"."0.2.8";
   by-version."optimist"."0.2.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-optimist-0.2.8";
+    name = "optimist-0.2.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz";
@@ -13568,9 +14568,9 @@
     ];
     buildInputs =
       (self.nativeDeps."optimist" or []);
-    deps = [
-      self.by-version."wordwrap"."0.0.2"
-    ];
+    deps = {
+      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "optimist" ];
@@ -13578,7 +14578,8 @@
   by-spec."optimist"."0.6.0" =
     self.by-version."optimist"."0.6.0";
   by-version."optimist"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-optimist-0.6.0";
+    name = "optimist-0.6.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz";
@@ -13588,10 +14589,10 @@
     ];
     buildInputs =
       (self.nativeDeps."optimist" or []);
-    deps = [
-      self.by-version."wordwrap"."0.0.2"
-      self.by-version."minimist"."0.0.10"
-    ];
+    deps = {
+      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
+      "minimist-0.0.10" = self.by-version."minimist"."0.0.10";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "optimist" ];
@@ -13601,7 +14602,8 @@
   by-spec."optimist"."~0.3" =
     self.by-version."optimist"."0.3.7";
   by-version."optimist"."0.3.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-optimist-0.3.7";
+    name = "optimist-0.3.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz";
@@ -13611,9 +14613,9 @@
     ];
     buildInputs =
       (self.nativeDeps."optimist" or []);
-    deps = [
-      self.by-version."wordwrap"."0.0.2"
-    ];
+    deps = {
+      "wordwrap-0.0.2" = self.by-version."wordwrap"."0.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "optimist" ];
@@ -13627,7 +14629,8 @@
   by-spec."options".">=0.0.5" =
     self.by-version."options"."0.0.5";
   by-version."options"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-options-0.0.5";
+    name = "options-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/options/-/options-0.0.5.tgz";
@@ -13637,8 +14640,8 @@
     ];
     buildInputs =
       (self.nativeDeps."options" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "options" ];
@@ -13646,7 +14649,8 @@
   by-spec."optparse"."*" =
     self.by-version."optparse"."1.0.5";
   by-version."optparse"."1.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-optparse-1.0.5";
+    name = "optparse-1.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/optparse/-/optparse-1.0.5.tgz";
@@ -13656,8 +14660,8 @@
     ];
     buildInputs =
       (self.nativeDeps."optparse" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "optparse" ];
@@ -13665,10 +14669,34 @@
   "optparse" = self.by-version."optparse"."1.0.5";
   by-spec."optparse".">= 1.0.3" =
     self.by-version."optparse"."1.0.5";
+  by-spec."orchestrator"."^0.3.0" =
+    self.by-version."orchestrator"."0.3.7";
+  by-version."orchestrator"."0.3.7" = lib.makeOverridable self.buildNodePackage {
+    name = "orchestrator-0.3.7";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/orchestrator/-/orchestrator-0.3.7.tgz";
+        name = "orchestrator-0.3.7.tgz";
+        sha1 = "c45064e22c5a2a7b99734f409a95ffedc7d3c3df";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."orchestrator" or []);
+    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";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "orchestrator" ];
+  };
   by-spec."ordered-read-streams"."0.0.8" =
     self.by-version."ordered-read-streams"."0.0.8";
   by-version."ordered-read-streams"."0.0.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ordered-read-streams-0.0.8";
+    name = "ordered-read-streams-0.0.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.0.8.tgz";
@@ -13678,8 +14706,8 @@
     ];
     buildInputs =
       (self.nativeDeps."ordered-read-streams" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ordered-read-streams" ];
@@ -13687,7 +14715,8 @@
   by-spec."os-browserify"."~0.1.1" =
     self.by-version."os-browserify"."0.1.2";
   by-version."os-browserify"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-os-browserify-0.1.2";
+    name = "os-browserify-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz";
@@ -13697,8 +14726,8 @@
     ];
     buildInputs =
       (self.nativeDeps."os-browserify" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "os-browserify" ];
@@ -13706,7 +14735,8 @@
   by-spec."osenv"."0" =
     self.by-version."osenv"."0.1.0";
   by-version."osenv"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-osenv-0.1.0";
+    name = "osenv-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz";
@@ -13716,8 +14746,8 @@
     ];
     buildInputs =
       (self.nativeDeps."osenv" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "osenv" ];
@@ -13725,7 +14755,8 @@
   by-spec."osenv"."0.0.3" =
     self.by-version."osenv"."0.0.3";
   by-version."osenv"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-osenv-0.0.3";
+    name = "osenv-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/osenv/-/osenv-0.0.3.tgz";
@@ -13735,8 +14766,8 @@
     ];
     buildInputs =
       (self.nativeDeps."osenv" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "osenv" ];
@@ -13748,7 +14779,8 @@
   by-spec."owl-deepcopy"."*" =
     self.by-version."owl-deepcopy"."0.0.4";
   by-version."owl-deepcopy"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-owl-deepcopy-0.0.4";
+    name = "owl-deepcopy-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/owl-deepcopy/-/owl-deepcopy-0.0.4.tgz";
@@ -13758,8 +14790,8 @@
     ];
     buildInputs =
       (self.nativeDeps."owl-deepcopy" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "owl-deepcopy" ];
@@ -13770,7 +14802,8 @@
   by-spec."pako"."~0.2.0" =
     self.by-version."pako"."0.2.5";
   by-version."pako"."0.2.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-pako-0.2.5";
+    name = "pako-0.2.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/pako/-/pako-0.2.5.tgz";
@@ -13780,8 +14813,8 @@
     ];
     buildInputs =
       (self.nativeDeps."pako" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "pako" ];
@@ -13790,6 +14823,7 @@
     self.by-version."parents"."1.0.0";
   by-version."parents"."1.0.0" = lib.makeOverridable self.buildNodePackage {
     name = "parents-1.0.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/parents/-/parents-1.0.0.tgz";
@@ -13799,9 +14833,9 @@
     ];
     buildInputs =
       (self.nativeDeps."parents" or []);
-    deps = [
-      self.by-version."path-platform"."0.0.1"
-    ];
+    deps = {
+      "path-platform-0.0.1" = self.by-version."path-platform"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "parents" ];
@@ -13810,6 +14844,7 @@
     self.by-version."parents"."0.0.3";
   by-version."parents"."0.0.3" = lib.makeOverridable self.buildNodePackage {
     name = "parents-0.0.3";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/parents/-/parents-0.0.3.tgz";
@@ -13819,9 +14854,9 @@
     ];
     buildInputs =
       (self.nativeDeps."parents" or []);
-    deps = [
-      self.by-version."path-platform"."0.0.1"
-    ];
+    deps = {
+      "path-platform-0.0.1" = self.by-version."path-platform"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "parents" ];
@@ -13829,7 +14864,8 @@
   by-spec."parseurl"."1.0.1" =
     self.by-version."parseurl"."1.0.1";
   by-version."parseurl"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-parseurl-1.0.1";
+    name = "parseurl-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz";
@@ -13839,46 +14875,8 @@
     ];
     buildInputs =
       (self.nativeDeps."parseurl" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "parseurl" ];
-  };
-  by-spec."parseurl"."~1.1.3" =
-    self.by-version."parseurl"."1.1.3";
-  by-version."parseurl"."1.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-parseurl-1.1.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/parseurl/-/parseurl-1.1.3.tgz";
-        name = "parseurl-1.1.3.tgz";
-        sha1 = "1f005738ac71b417bc2d0845cbdfa2a8b63ea639";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."parseurl" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "parseurl" ];
-  };
-  by-spec."parseurl"."~1.2.0" =
-    self.by-version."parseurl"."1.2.0";
-  by-version."parseurl"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-parseurl-1.2.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/parseurl/-/parseurl-1.2.0.tgz";
-        name = "parseurl-1.2.0.tgz";
-        sha1 = "be7df2d698eb49ffb10ea62939693e152991c008";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."parseurl" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "parseurl" ];
@@ -13886,7 +14884,8 @@
   by-spec."parseurl"."~1.3.0" =
     self.by-version."parseurl"."1.3.0";
   by-version."parseurl"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-parseurl-1.3.0";
+    name = "parseurl-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz";
@@ -13896,38 +14895,40 @@
     ];
     buildInputs =
       (self.nativeDeps."parseurl" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "parseurl" ];
   };
   by-spec."passport"."*" =
-    self.by-version."passport"."0.2.0";
-  by-version."passport"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-passport-0.2.0";
+    self.by-version."passport"."0.2.1";
+  by-version."passport"."0.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "passport-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/passport/-/passport-0.2.0.tgz";
-        name = "passport-0.2.0.tgz";
-        sha1 = "ae5ebc5611300d51fdc44032c7ca442a548dbca5";
+        url = "http://registry.npmjs.org/passport/-/passport-0.2.1.tgz";
+        name = "passport-0.2.1.tgz";
+        sha1 = "a7d34c07b30fb605be885edbc8c93e5142e38574";
       })
     ];
     buildInputs =
       (self.nativeDeps."passport" or []);
-    deps = [
-      self.by-version."passport-strategy"."1.0.0"
-      self.by-version."pause"."0.0.1"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "passport" ];
   };
-  "passport" = self.by-version."passport"."0.2.0";
+  "passport" = self.by-version."passport"."0.2.1";
   by-spec."passport"."~0.1.3" =
     self.by-version."passport"."0.1.18";
   by-version."passport"."0.1.18" = lib.makeOverridable self.buildNodePackage {
-    name = "node-passport-0.1.18";
+    name = "passport-0.1.18";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/passport/-/passport-0.1.18.tgz";
@@ -13937,20 +14938,21 @@
     ];
     buildInputs =
       (self.nativeDeps."passport" or []);
-    deps = [
-      self.by-version."pkginfo"."0.2.3"
-      self.by-version."pause"."0.0.1"
-    ];
+    deps = {
+      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
+      "pause-0.0.1" = self.by-version."pause"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "passport" ];
   };
   by-spec."passport"."~0.2.0" =
-    self.by-version."passport"."0.2.0";
+    self.by-version."passport"."0.2.1";
   by-spec."passport-http"."*" =
     self.by-version."passport-http"."0.2.2";
   by-version."passport-http"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-passport-http-0.2.2";
+    name = "passport-http-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/passport-http/-/passport-http-0.2.2.tgz";
@@ -13960,10 +14962,10 @@
     ];
     buildInputs =
       (self.nativeDeps."passport-http" or []);
-    deps = [
-      self.by-version."pkginfo"."0.2.3"
-      self.by-version."passport"."0.1.18"
-    ];
+    deps = {
+      "pkginfo-0.2.3" = self.by-version."pkginfo"."0.2.3";
+      "passport-0.1.18" = self.by-version."passport"."0.1.18";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "passport-http" ];
@@ -13972,7 +14974,8 @@
   by-spec."passport-local"."*" =
     self.by-version."passport-local"."1.0.0";
   by-version."passport-local"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-passport-local-1.0.0";
+    name = "passport-local-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz";
@@ -13982,9 +14985,9 @@
     ];
     buildInputs =
       (self.nativeDeps."passport-local" or []);
-    deps = [
-      self.by-version."passport-strategy"."1.0.0"
-    ];
+    deps = {
+      "passport-strategy-1.0.0" = self.by-version."passport-strategy"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "passport-local" ];
@@ -13995,7 +14998,8 @@
   by-spec."passport-strategy"."1.x.x" =
     self.by-version."passport-strategy"."1.0.0";
   by-version."passport-strategy"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-passport-strategy-1.0.0";
+    name = "passport-strategy-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz";
@@ -14005,8 +15009,8 @@
     ];
     buildInputs =
       (self.nativeDeps."passport-strategy" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "passport-strategy" ];
@@ -14014,7 +15018,8 @@
   by-spec."path-browserify"."~0.0.0" =
     self.by-version."path-browserify"."0.0.0";
   by-version."path-browserify"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-path-browserify-0.0.0";
+    name = "path-browserify-0.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz";
@@ -14024,8 +15029,8 @@
     ];
     buildInputs =
       (self.nativeDeps."path-browserify" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "path-browserify" ];
@@ -14033,7 +15038,8 @@
   by-spec."path-is-inside"."~1.0.0" =
     self.by-version."path-is-inside"."1.0.1";
   by-version."path-is-inside"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-path-is-inside-1.0.1";
+    name = "path-is-inside-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz";
@@ -14043,8 +15049,8 @@
     ];
     buildInputs =
       (self.nativeDeps."path-is-inside" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "path-is-inside" ];
@@ -14052,7 +15058,8 @@
   by-spec."path-platform"."^0.0.1" =
     self.by-version."path-platform"."0.0.1";
   by-version."path-platform"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-path-platform-0.0.1";
+    name = "path-platform-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/path-platform/-/path-platform-0.0.1.tgz";
@@ -14062,8 +15069,8 @@
     ];
     buildInputs =
       (self.nativeDeps."path-platform" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "path-platform" ];
@@ -14071,7 +15078,8 @@
   by-spec."path-to-regexp"."0.1.2" =
     self.by-version."path-to-regexp"."0.1.2";
   by-version."path-to-regexp"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-path-to-regexp-0.1.2";
+    name = "path-to-regexp-0.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.2.tgz";
@@ -14081,8 +15089,8 @@
     ];
     buildInputs =
       (self.nativeDeps."path-to-regexp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "path-to-regexp" ];
@@ -14090,7 +15098,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-path-to-regexp-0.1.3";
+    name = "path-to-regexp-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz";
@@ -14100,8 +15109,8 @@
     ];
     buildInputs =
       (self.nativeDeps."path-to-regexp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "path-to-regexp" ];
@@ -14109,7 +15118,8 @@
   by-spec."pause"."0.0.1" =
     self.by-version."pause"."0.0.1";
   by-version."pause"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-pause-0.0.1";
+    name = "pause-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/pause/-/pause-0.0.1.tgz";
@@ -14119,8 +15129,8 @@
     ];
     buildInputs =
       (self.nativeDeps."pause" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "pause" ];
@@ -14129,6 +15139,7 @@
     self.by-version."phantomjs"."1.9.7-15";
   by-version."phantomjs"."1.9.7-15" = lib.makeOverridable self.buildNodePackage {
     name = "phantomjs-1.9.7-15";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/phantomjs/-/phantomjs-1.9.7-15.tgz";
@@ -14138,18 +15149,18 @@
     ];
     buildInputs =
       (self.nativeDeps."phantomjs" or []);
-    deps = [
-      self.by-version."adm-zip"."0.2.1"
-      self.by-version."kew"."0.1.7"
-      self.by-version."ncp"."0.4.2"
-      self.by-version."npmconf"."0.0.24"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."progress"."1.1.8"
-      self.by-version."request"."2.36.0"
-      self.by-version."request-progress"."0.3.1"
-      self.by-version."rimraf"."2.2.8"
-      self.by-version."which"."1.0.5"
-    ];
+    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.5" = self.by-version."which"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "phantomjs" ];
@@ -14162,7 +15173,8 @@
   by-spec."pkginfo"."0.2.x" =
     self.by-version."pkginfo"."0.2.3";
   by-version."pkginfo"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-pkginfo-0.2.3";
+    name = "pkginfo-0.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz";
@@ -14172,8 +15184,8 @@
     ];
     buildInputs =
       (self.nativeDeps."pkginfo" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "pkginfo" ];
@@ -14181,7 +15193,8 @@
   by-spec."pkginfo"."0.3.0" =
     self.by-version."pkginfo"."0.3.0";
   by-version."pkginfo"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-pkginfo-0.3.0";
+    name = "pkginfo-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/pkginfo/-/pkginfo-0.3.0.tgz";
@@ -14191,8 +15204,8 @@
     ];
     buildInputs =
       (self.nativeDeps."pkginfo" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "pkginfo" ];
@@ -14204,7 +15217,8 @@
   by-spec."plist-native"."*" =
     self.by-version."plist-native"."0.3.1";
   by-version."plist-native"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-plist-native-0.3.1";
+    name = "plist-native-0.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/plist-native/-/plist-native-0.3.1.tgz";
@@ -14214,9 +15228,9 @@
     ];
     buildInputs =
       (self.nativeDeps."plist-native" or []);
-    deps = [
-      self.by-version."libxmljs"."0.10.0"
-    ];
+    deps = {
+      "libxmljs-0.10.0" = self.by-version."libxmljs"."0.10.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "plist-native" ];
@@ -14225,7 +15239,8 @@
   by-spec."policyfile"."0.0.4" =
     self.by-version."policyfile"."0.0.4";
   by-version."policyfile"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-policyfile-0.0.4";
+    name = "policyfile-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz";
@@ -14235,8 +15250,8 @@
     ];
     buildInputs =
       (self.nativeDeps."policyfile" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "policyfile" ];
@@ -14244,7 +15259,8 @@
   by-spec."posix"."*" =
     self.by-version."posix"."1.0.3";
   by-version."posix"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-posix-1.0.3";
+    name = "posix-1.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/posix/-/posix-1.0.3.tgz";
@@ -14254,8 +15270,8 @@
     ];
     buildInputs =
       (self.nativeDeps."posix" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "posix" ];
@@ -14264,7 +15280,8 @@
   by-spec."posix-getopt"."1.0.0" =
     self.by-version."posix-getopt"."1.0.0";
   by-version."posix-getopt"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-posix-getopt-1.0.0";
+    name = "posix-getopt-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/posix-getopt/-/posix-getopt-1.0.0.tgz";
@@ -14274,8 +15291,8 @@
     ];
     buildInputs =
       (self.nativeDeps."posix-getopt" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "posix-getopt" ];
@@ -14284,6 +15301,7 @@
     self.by-version."pretty-bytes"."0.1.2";
   by-version."pretty-bytes"."0.1.2" = lib.makeOverridable self.buildNodePackage {
     name = "pretty-bytes-0.1.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/pretty-bytes/-/pretty-bytes-0.1.2.tgz";
@@ -14293,16 +15311,37 @@
     ];
     buildInputs =
       (self.nativeDeps."pretty-bytes" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "pretty-bytes" ];
   };
+  by-spec."pretty-hrtime"."^0.2.0" =
+    self.by-version."pretty-hrtime"."0.2.1";
+  by-version."pretty-hrtime"."0.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "pretty-hrtime-0.2.1";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-0.2.1.tgz";
+        name = "pretty-hrtime-0.2.1.tgz";
+        sha1 = "f341d39215fa5f7bff50af7d8572f8d4ec9d12f6";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."pretty-hrtime" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "pretty-hrtime" ];
+  };
   by-spec."process"."^0.7.0" =
     self.by-version."process"."0.7.0";
   by-version."process"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-process-0.7.0";
+    name = "process-0.7.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/process/-/process-0.7.0.tgz";
@@ -14312,8 +15351,8 @@
     ];
     buildInputs =
       (self.nativeDeps."process" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "process" ];
@@ -14321,7 +15360,8 @@
   by-spec."process"."~0.5.1" =
     self.by-version."process"."0.5.2";
   by-version."process"."0.5.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-process-0.5.2";
+    name = "process-0.5.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/process/-/process-0.5.2.tgz";
@@ -14331,8 +15371,8 @@
     ];
     buildInputs =
       (self.nativeDeps."process" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "process" ];
@@ -14340,7 +15380,8 @@
   by-spec."process"."~0.6.0" =
     self.by-version."process"."0.6.0";
   by-version."process"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-process-0.6.0";
+    name = "process-0.6.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/process/-/process-0.6.0.tgz";
@@ -14350,8 +15391,8 @@
     ];
     buildInputs =
       (self.nativeDeps."process" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "process" ];
@@ -14359,7 +15400,8 @@
   by-spec."progress"."^1.1.5" =
     self.by-version."progress"."1.1.8";
   by-version."progress"."1.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-progress-1.1.8";
+    name = "progress-1.1.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/progress/-/progress-1.1.8.tgz";
@@ -14369,8 +15411,8 @@
     ];
     buildInputs =
       (self.nativeDeps."progress" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "progress" ];
@@ -14378,7 +15420,8 @@
   by-spec."promise"."~2.0" =
     self.by-version."promise"."2.0.0";
   by-version."promise"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-promise-2.0.0";
+    name = "promise-2.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/promise/-/promise-2.0.0.tgz";
@@ -14388,9 +15431,9 @@
     ];
     buildInputs =
       (self.nativeDeps."promise" or []);
-    deps = [
-      self.by-version."is-promise"."1.0.1"
-    ];
+    deps = {
+      "is-promise-1.0.1" = self.by-version."is-promise"."1.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "promise" ];
@@ -14398,7 +15441,8 @@
   by-spec."prompt"."0.2.11" =
     self.by-version."prompt"."0.2.11";
   by-version."prompt"."0.2.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-prompt-0.2.11";
+    name = "prompt-0.2.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/prompt/-/prompt-0.2.11.tgz";
@@ -14408,13 +15452,13 @@
     ];
     buildInputs =
       (self.nativeDeps."prompt" or []);
-    deps = [
-      self.by-version."pkginfo"."0.3.0"
-      self.by-version."read"."1.0.5"
-      self.by-version."revalidator"."0.1.8"
-      self.by-version."utile"."0.2.1"
-      self.by-version."winston"."0.6.2"
-    ];
+    deps = {
+      "pkginfo-0.3.0" = self.by-version."pkginfo"."0.3.0";
+      "read-1.0.5" = self.by-version."read"."1.0.5";
+      "revalidator-0.1.8" = self.by-version."revalidator"."0.1.8";
+      "utile-0.2.1" = self.by-version."utile"."0.2.1";
+      "winston-0.6.2" = self.by-version."winston"."0.6.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "prompt" ];
@@ -14422,7 +15466,8 @@
   by-spec."promzard"."~0.2.0" =
     self.by-version."promzard"."0.2.2";
   by-version."promzard"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-promzard-0.2.2";
+    name = "promzard-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/promzard/-/promzard-0.2.2.tgz";
@@ -14432,9 +15477,9 @@
     ];
     buildInputs =
       (self.nativeDeps."promzard" or []);
-    deps = [
-      self.by-version."read"."1.0.5"
-    ];
+    deps = {
+      "read-1.0.5" = self.by-version."read"."1.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "promzard" ];
@@ -14442,7 +15487,8 @@
   by-spec."proto-list"."~1.2.1" =
     self.by-version."proto-list"."1.2.3";
   by-version."proto-list"."1.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-proto-list-1.2.3";
+    name = "proto-list-1.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/proto-list/-/proto-list-1.2.3.tgz";
@@ -14452,8 +15498,8 @@
     ];
     buildInputs =
       (self.nativeDeps."proto-list" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "proto-list" ];
@@ -14461,7 +15507,8 @@
   by-spec."proxy-addr"."1.0.1" =
     self.by-version."proxy-addr"."1.0.1";
   by-version."proxy-addr"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-proxy-addr-1.0.1";
+    name = "proxy-addr-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.1.tgz";
@@ -14471,9 +15518,9 @@
     ];
     buildInputs =
       (self.nativeDeps."proxy-addr" or []);
-    deps = [
-      self.by-version."ipaddr.js"."0.1.2"
-    ];
+    deps = {
+      "ipaddr.js-0.1.2" = self.by-version."ipaddr.js"."0.1.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "proxy-addr" ];
@@ -14481,7 +15528,8 @@
   by-spec."ps-tree"."0.0.x" =
     self.by-version."ps-tree"."0.0.3";
   by-version."ps-tree"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ps-tree-0.0.3";
+    name = "ps-tree-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz";
@@ -14491,9 +15539,9 @@
     ];
     buildInputs =
       (self.nativeDeps."ps-tree" or []);
-    deps = [
-      self.by-version."event-stream"."0.5.3"
-    ];
+    deps = {
+      "event-stream-0.5.3" = self.by-version."event-stream"."0.5.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ps-tree" ];
@@ -14503,7 +15551,8 @@
   by-spec."punycode"."1.2.4" =
     self.by-version."punycode"."1.2.4";
   by-version."punycode"."1.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-punycode-1.2.4";
+    name = "punycode-1.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/punycode/-/punycode-1.2.4.tgz";
@@ -14513,8 +15562,8 @@
     ];
     buildInputs =
       (self.nativeDeps."punycode" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "punycode" ];
@@ -14522,7 +15571,8 @@
   by-spec."punycode".">=0.2.0" =
     self.by-version."punycode"."1.3.1";
   by-version."punycode"."1.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-punycode-1.3.1";
+    name = "punycode-1.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/punycode/-/punycode-1.3.1.tgz";
@@ -14532,8 +15582,8 @@
     ];
     buildInputs =
       (self.nativeDeps."punycode" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "punycode" ];
@@ -14545,7 +15595,8 @@
   by-spec."pure-css"."git://github.com/yui/pure.git#v0.5.0-rc-1" =
     self.by-version."pure-css"."0.5.0-rc-1";
   by-version."pure-css"."0.5.0-rc-1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-pure-0.5.0-rc-1";
+    name = "pure-0.5.0-rc-1";
+    bin = false;
     src = [
       (fetchgit {
         url = "git://github.com/yui/pure.git";
@@ -14555,8 +15606,8 @@
     ];
     buildInputs =
       (self.nativeDeps."pure" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "pure" ];
@@ -14565,7 +15616,8 @@
   by-spec."q".">= 0.0.1" =
     self.by-version."q"."2.0.2";
   by-version."q"."2.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-q-2.0.2";
+    name = "q-2.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/q/-/q-2.0.2.tgz";
@@ -14575,10 +15627,10 @@
     ];
     buildInputs =
       (self.nativeDeps."q" or []);
-    deps = [
-      self.by-version."asap"."1.0.0"
-      self.by-version."collections"."2.0.1"
-    ];
+    deps = {
+      "asap-1.0.0" = self.by-version."asap"."1.0.0";
+      "collections-2.0.1" = self.by-version."collections"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "q" ];
@@ -14586,7 +15638,8 @@
   by-spec."q"."~0.9.6" =
     self.by-version."q"."0.9.7";
   by-version."q"."0.9.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-q-0.9.7";
+    name = "q-0.9.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/q/-/q-0.9.7.tgz";
@@ -14596,8 +15649,8 @@
     ];
     buildInputs =
       (self.nativeDeps."q" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "q" ];
@@ -14607,7 +15660,8 @@
   by-spec."q"."~1.0.1" =
     self.by-version."q"."1.0.1";
   by-version."q"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-q-1.0.1";
+    name = "q-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/q/-/q-1.0.1.tgz";
@@ -14617,8 +15671,8 @@
     ];
     buildInputs =
       (self.nativeDeps."q" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "q" ];
@@ -14626,7 +15680,8 @@
   by-spec."qs"."0.4.2" =
     self.by-version."qs"."0.4.2";
   by-version."qs"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-0.4.2";
+    name = "qs-0.4.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/qs/-/qs-0.4.2.tgz";
@@ -14636,8 +15691,8 @@
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
@@ -14647,7 +15702,8 @@
   by-spec."qs"."0.5.1" =
     self.by-version."qs"."0.5.1";
   by-version."qs"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-0.5.1";
+    name = "qs-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/qs/-/qs-0.5.1.tgz";
@@ -14657,8 +15713,8 @@
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
@@ -14666,7 +15722,8 @@
   by-spec."qs"."0.5.2" =
     self.by-version."qs"."0.5.2";
   by-version."qs"."0.5.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-0.5.2";
+    name = "qs-0.5.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/qs/-/qs-0.5.2.tgz";
@@ -14676,8 +15733,8 @@
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
@@ -14685,7 +15742,8 @@
   by-spec."qs"."0.5.5" =
     self.by-version."qs"."0.5.5";
   by-version."qs"."0.5.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-0.5.5";
+    name = "qs-0.5.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/qs/-/qs-0.5.5.tgz";
@@ -14695,8 +15753,8 @@
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
@@ -14704,7 +15762,8 @@
   by-spec."qs"."0.6.5" =
     self.by-version."qs"."0.6.5";
   by-version."qs"."0.6.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-0.6.5";
+    name = "qs-0.6.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/qs/-/qs-0.6.5.tgz";
@@ -14714,8 +15773,8 @@
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
@@ -14723,7 +15782,8 @@
   by-spec."qs"."0.6.6" =
     self.by-version."qs"."0.6.6";
   by-version."qs"."0.6.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-0.6.6";
+    name = "qs-0.6.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/qs/-/qs-0.6.6.tgz";
@@ -14733,37 +15793,59 @@
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
   };
-  by-spec."qs"."1.2.2" =
-    self.by-version."qs"."1.2.2";
-  by-version."qs"."1.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-1.2.2";
+  by-spec."qs"."2.2.2" =
+    self.by-version."qs"."2.2.2";
+  by-version."qs"."2.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "qs-2.2.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/qs/-/qs-1.2.2.tgz";
-        name = "qs-1.2.2.tgz";
-        sha1 = "19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88";
+        url = "http://registry.npmjs.org/qs/-/qs-2.2.2.tgz";
+        name = "qs-2.2.2.tgz";
+        sha1 = "dfe783f1854b1ac2b3ade92775ad03e27e03218c";
       })
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "qs" ];
+  };
+  by-spec."qs"."2.2.3" =
+    self.by-version."qs"."2.2.3";
+  by-version."qs"."2.2.3" = lib.makeOverridable self.buildNodePackage {
+    name = "qs-2.2.3";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/qs/-/qs-2.2.3.tgz";
+        name = "qs-2.2.3.tgz";
+        sha1 = "6139c1f47960eff5655e56aab0ef9f6dd16d4eeb";
+      })
     ];
+    buildInputs =
+      (self.nativeDeps."qs" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
   };
   by-spec."qs".">= 0.4.0" =
-    self.by-version."qs"."1.2.2";
+    self.by-version."qs"."2.2.3";
   by-spec."qs"."~0.5.4" =
     self.by-version."qs"."0.5.6";
   by-version."qs"."0.5.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-0.5.6";
+    name = "qs-0.5.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/qs/-/qs-0.5.6.tgz";
@@ -14773,8 +15855,8 @@
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
@@ -14784,7 +15866,8 @@
   by-spec."qs"."~1.0.0" =
     self.by-version."qs"."1.0.2";
   by-version."qs"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-qs-1.0.2";
+    name = "qs-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/qs/-/qs-1.0.2.tgz";
@@ -14794,8 +15877,28 @@
     ];
     buildInputs =
       (self.nativeDeps."qs" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "qs" ];
+  };
+  by-spec."qs"."~1.2.0" =
+    self.by-version."qs"."1.2.2";
+  by-version."qs"."1.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "qs-1.2.2";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/qs/-/qs-1.2.2.tgz";
+        name = "qs-1.2.2.tgz";
+        sha1 = "19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."qs" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "qs" ];
@@ -14803,7 +15906,8 @@
   by-spec."querystring-es3"."~0.2.0" =
     self.by-version."querystring-es3"."0.2.1-0";
   by-version."querystring-es3"."0.2.1-0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-querystring-es3-0.2.1-0";
+    name = "querystring-es3-0.2.1-0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1-0.tgz";
@@ -14813,8 +15917,8 @@
     ];
     buildInputs =
       (self.nativeDeps."querystring-es3" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "querystring-es3" ];
@@ -14822,7 +15926,8 @@
   by-spec."rai"."~0.1.11" =
     self.by-version."rai"."0.1.11";
   by-version."rai"."0.1.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rai-0.1.11";
+    name = "rai-0.1.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/rai/-/rai-0.1.11.tgz";
@@ -14832,8 +15937,8 @@
     ];
     buildInputs =
       (self.nativeDeps."rai" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rai" ];
@@ -14841,7 +15946,8 @@
   by-spec."range-parser"."0.0.4" =
     self.by-version."range-parser"."0.0.4";
   by-version."range-parser"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-range-parser-0.0.4";
+    name = "range-parser-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz";
@@ -14851,8 +15957,8 @@
     ];
     buildInputs =
       (self.nativeDeps."range-parser" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "range-parser" ];
@@ -14860,7 +15966,8 @@
   by-spec."range-parser"."1.0.0" =
     self.by-version."range-parser"."1.0.0";
   by-version."range-parser"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-range-parser-1.0.0";
+    name = "range-parser-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz";
@@ -14870,36 +15977,54 @@
     ];
     buildInputs =
       (self.nativeDeps."range-parser" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "range-parser" ];
   };
   by-spec."range-parser"."~1.0.0" =
-    self.by-version."range-parser"."1.0.0";
+    self.by-version."range-parser"."1.0.2";
+  by-version."range-parser"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "range-parser-1.0.2";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/range-parser/-/range-parser-1.0.2.tgz";
+        name = "range-parser-1.0.2.tgz";
+        sha1 = "06a12a42e5131ba8e457cd892044867f2344e549";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."range-parser" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "range-parser" ];
+  };
+  by-spec."range-parser"."~1.0.2" =
+    self.by-version."range-parser"."1.0.2";
   by-spec."raven"."~0.7.0" =
-    self.by-version."raven"."0.7.0";
-  by-version."raven"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "raven-0.7.0";
+    self.by-version."raven"."0.7.2";
+  by-version."raven"."0.7.2" = lib.makeOverridable self.buildNodePackage {
+    name = "raven-0.7.2";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/raven/-/raven-0.7.0.tgz";
-        name = "raven-0.7.0.tgz";
-        sha1 = "ec7fea6c0b87c59b252a9491c93d5bcf8d0c7ba0";
+        url = "http://registry.npmjs.org/raven/-/raven-0.7.2.tgz";
+        name = "raven-0.7.2.tgz";
+        sha1 = "51c1268e5d947e45c53fdb2e0a88b829c24a02a7";
       })
     ];
     buildInputs =
       (self.nativeDeps."raven" or []);
-    deps = [
-      self.by-version."cookie"."0.1.0"
-      self.by-version."lsmod"."0.0.3"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."stack-trace"."0.0.7"
-      self.by-version."connect"."3.1.1"
-      self.by-version."express"."4.8.5"
-      self.by-version."koa"."0.10.0"
-    ];
+    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.1" = self.by-version."node-uuid"."1.4.1";
+      "stack-trace-0.0.7" = self.by-version."stack-trace"."0.0.7";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "raven" ];
@@ -14907,7 +16032,8 @@
   by-spec."raw-body"."0.0.3" =
     self.by-version."raw-body"."0.0.3";
   by-version."raw-body"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-raw-body-0.0.3";
+    name = "raw-body-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/raw-body/-/raw-body-0.0.3.tgz";
@@ -14917,8 +16043,8 @@
     ];
     buildInputs =
       (self.nativeDeps."raw-body" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "raw-body" ];
@@ -14926,7 +16052,8 @@
   by-spec."raw-body"."1.1.2" =
     self.by-version."raw-body"."1.1.2";
   by-version."raw-body"."1.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-raw-body-1.1.2";
+    name = "raw-body-1.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz";
@@ -14936,30 +16063,9 @@
     ];
     buildInputs =
       (self.nativeDeps."raw-body" or []);
-    deps = [
-      self.by-version."bytes"."0.2.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "raw-body" ];
-  };
-  by-spec."raw-body"."1.2.2" =
-    self.by-version."raw-body"."1.2.2";
-  by-version."raw-body"."1.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-raw-body-1.2.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/raw-body/-/raw-body-1.2.2.tgz";
-        name = "raw-body-1.2.2.tgz";
-        sha1 = "0c68e1ee28cfed7dba4822234aec6078461cbc1f";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."raw-body" or []);
-    deps = [
-      self.by-version."bytes"."1.0.0"
-      self.by-version."iconv-lite"."0.4.3"
-    ];
+    deps = {
+      "bytes-0.2.1" = self.by-version."bytes"."0.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "raw-body" ];
@@ -14967,7 +16073,8 @@
   by-spec."raw-body"."1.3.0" =
     self.by-version."raw-body"."1.3.0";
   by-version."raw-body"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-raw-body-1.3.0";
+    name = "raw-body-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz";
@@ -14977,10 +16084,10 @@
     ];
     buildInputs =
       (self.nativeDeps."raw-body" or []);
-    deps = [
-      self.by-version."bytes"."1.0.0"
-      self.by-version."iconv-lite"."0.4.4"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "raw-body" ];
@@ -14988,7 +16095,8 @@
   by-spec."raw-socket"."*" =
     self.by-version."raw-socket"."1.2.2";
   by-version."raw-socket"."1.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-raw-socket-1.2.2";
+    name = "raw-socket-1.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/raw-socket/-/raw-socket-1.2.2.tgz";
@@ -14998,8 +16106,8 @@
     ];
     buildInputs =
       (self.nativeDeps."raw-socket" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "raw-socket" ];
@@ -15007,7 +16115,8 @@
   by-spec."rbytes"."*" =
     self.by-version."rbytes"."1.1.0";
   by-version."rbytes"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rbytes-1.1.0";
+    name = "rbytes-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/rbytes/-/rbytes-1.1.0.tgz";
@@ -15017,8 +16126,8 @@
     ];
     buildInputs =
       (self.nativeDeps."rbytes" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rbytes" ];
@@ -15028,6 +16137,7 @@
     self.by-version."rc"."0.3.5";
   by-version."rc"."0.3.5" = lib.makeOverridable self.buildNodePackage {
     name = "rc-0.3.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/rc/-/rc-0.3.5.tgz";
@@ -15037,34 +16147,35 @@
     ];
     buildInputs =
       (self.nativeDeps."rc" or []);
-    deps = [
-      self.by-version."minimist"."0.0.10"
-      self.by-version."deep-extend"."0.2.11"
-      self.by-version."ini"."1.1.0"
-    ];
+    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";
+      "ini-1.1.0" = self.by-version."ini"."1.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rc" ];
   };
-  by-spec."rc"."~0.4.0" =
-    self.by-version."rc"."0.4.0";
-  by-version."rc"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "rc-0.4.0";
+  by-spec."rc"."~0.5.0" =
+    self.by-version."rc"."0.5.1";
+  by-version."rc"."0.5.1" = lib.makeOverridable self.buildNodePackage {
+    name = "rc-0.5.1";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/rc/-/rc-0.4.0.tgz";
-        name = "rc-0.4.0.tgz";
-        sha1 = "ce24a2029ad94c3a40d09604a87227027d7210d3";
+        url = "http://registry.npmjs.org/rc/-/rc-0.5.1.tgz";
+        name = "rc-0.5.1.tgz";
+        sha1 = "b88ef9421a08151352a659e0c3a58c4b82eb7576";
       })
     ];
     buildInputs =
       (self.nativeDeps."rc" or []);
-    deps = [
-      self.by-version."minimist"."0.0.10"
-      self.by-version."deep-extend"."0.2.11"
-      self.by-version."strip-json-comments"."0.1.3"
-      self.by-version."ini"."1.1.0"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rc" ];
@@ -15072,7 +16183,8 @@
   by-spec."react"."*" =
     self.by-version."react"."0.11.1";
   by-version."react"."0.11.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-react-0.11.1";
+    name = "react-0.11.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/react/-/react-0.11.1.tgz";
@@ -15082,9 +16194,9 @@
     ];
     buildInputs =
       (self.nativeDeps."react" or []);
-    deps = [
-      self.by-version."envify"."2.0.1"
-    ];
+    deps = {
+      "envify-2.0.1" = self.by-version."envify"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "react" ];
@@ -15093,7 +16205,8 @@
   by-spec."read"."1" =
     self.by-version."read"."1.0.5";
   by-version."read"."1.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-read-1.0.5";
+    name = "read-1.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/read/-/read-1.0.5.tgz";
@@ -15103,9 +16216,9 @@
     ];
     buildInputs =
       (self.nativeDeps."read" or []);
-    deps = [
-      self.by-version."mute-stream"."0.0.4"
-    ];
+    deps = {
+      "mute-stream-0.0.4" = self.by-version."mute-stream"."0.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "read" ];
@@ -15116,60 +16229,66 @@
     self.by-version."read"."1.0.5";
   by-spec."read"."~1.0.4" =
     self.by-version."read"."1.0.5";
-  by-spec."read-installed"."~2.0.5" =
-    self.by-version."read-installed"."2.0.7";
-  by-version."read-installed"."2.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-read-installed-2.0.7";
+  by-spec."read-installed"."~3.1.1" =
+    self.by-version."read-installed"."3.1.3";
+  by-version."read-installed"."3.1.3" = lib.makeOverridable self.buildNodePackage {
+    name = "read-installed-3.1.3";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/read-installed/-/read-installed-2.0.7.tgz";
-        name = "read-installed-2.0.7.tgz";
-        sha1 = "a82157a5e273576c57f230ecec3702ab215a6d6c";
+        url = "http://registry.npmjs.org/read-installed/-/read-installed-3.1.3.tgz";
+        name = "read-installed-3.1.3.tgz";
+        sha1 = "c09092a13c2117f22842cad16804f3b059129d11";
       })
     ];
     buildInputs =
       (self.nativeDeps."read-installed" or []);
-    deps = [
-      self.by-version."read-package-json"."1.2.6"
-      self.by-version."semver"."3.0.1"
-      self.by-version."slide"."1.1.5"
-      self.by-version."util-extend"."1.0.1"
-      self.by-version."graceful-fs"."3.0.2"
-    ];
+    deps = {
+      "debuglog-1.0.1" = self.by-version."debuglog"."1.0.1";
+      "read-package-json-1.2.7" = self.by-version."read-package-json"."1.2.7";
+      "readdir-scoped-modules-1.0.0" = self.by-version."readdir-scoped-modules"."1.0.0";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+      "slide-1.1.5" = self.by-version."slide"."1.1.5";
+      "util-extend-1.0.1" = self.by-version."util-extend"."1.0.1";
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "read-installed" ];
   };
   by-spec."read-package-json"."1" =
-    self.by-version."read-package-json"."1.2.6";
-  by-version."read-package-json"."1.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-read-package-json-1.2.6";
+    self.by-version."read-package-json"."1.2.7";
+  by-version."read-package-json"."1.2.7" = lib.makeOverridable self.buildNodePackage {
+    name = "read-package-json-1.2.7";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/read-package-json/-/read-package-json-1.2.6.tgz";
-        name = "read-package-json-1.2.6.tgz";
-        sha1 = "eedcc11ba25a94f80e5941fdbccff4a21d8ab13a";
+        url = "http://registry.npmjs.org/read-package-json/-/read-package-json-1.2.7.tgz";
+        name = "read-package-json-1.2.7.tgz";
+        sha1 = "f0b440c461a218f4dbf48b094e80fc65c5248502";
       })
     ];
     buildInputs =
       (self.nativeDeps."read-package-json" or []);
-    deps = [
-      self.by-version."github-url-from-git"."1.3.0"
-      self.by-version."glob"."4.0.5"
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."normalize-package-data"."1.0.0"
-      self.by-version."graceful-fs"."3.0.2"
-    ];
+    deps = {
+      "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-4.0.5" = self.by-version."glob"."4.0.5";
+      "lru-cache-2.5.0" = self.by-version."lru-cache"."2.5.0";
+      "normalize-package-data-1.0.2" = self.by-version."normalize-package-data"."1.0.2";
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "read-package-json" ];
   };
-  by-spec."read-package-json"."~1.2.3" =
-    self.by-version."read-package-json"."1.2.6";
+  by-spec."read-package-json"."~1.2.7" =
+    self.by-version."read-package-json"."1.2.7";
   by-spec."readable-stream"."*" =
     self.by-version."readable-stream"."1.1.13";
   by-version."readable-stream"."1.1.13" = lib.makeOverridable self.buildNodePackage {
-    name = "node-readable-stream-1.1.13";
+    name = "readable-stream-1.1.13";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz";
@@ -15179,12 +16298,12 @@
     ];
     buildInputs =
       (self.nativeDeps."readable-stream" or []);
-    deps = [
-      self.by-version."core-util-is"."1.0.1"
-      self.by-version."isarray"."0.0.1"
-      self.by-version."string_decoder"."0.10.25"
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "core-util-is-1.0.1" = self.by-version."core-util-is"."1.0.1";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "readable-stream" ];
@@ -15192,7 +16311,8 @@
   by-spec."readable-stream"."1.0" =
     self.by-version."readable-stream"."1.0.31";
   by-version."readable-stream"."1.0.31" = lib.makeOverridable self.buildNodePackage {
-    name = "node-readable-stream-1.0.31";
+    name = "readable-stream-1.0.31";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz";
@@ -15202,12 +16322,12 @@
     ];
     buildInputs =
       (self.nativeDeps."readable-stream" or []);
-    deps = [
-      self.by-version."core-util-is"."1.0.1"
-      self.by-version."isarray"."0.0.1"
-      self.by-version."string_decoder"."0.10.25"
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "core-util-is-1.0.1" = self.by-version."core-util-is"."1.0.1";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "readable-stream" ];
@@ -15215,7 +16335,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-readable-stream-1.0.27-1";
+    name = "readable-stream-1.0.27-1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz";
@@ -15225,16 +16346,18 @@
     ];
     buildInputs =
       (self.nativeDeps."readable-stream" or []);
-    deps = [
-      self.by-version."core-util-is"."1.0.1"
-      self.by-version."isarray"."0.0.1"
-      self.by-version."string_decoder"."0.10.25"
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "core-util-is-1.0.1" = self.by-version."core-util-is"."1.0.1";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "readable-stream" ];
   };
+  by-spec."readable-stream"."1.0.31" =
+    self.by-version."readable-stream"."1.0.31";
   by-spec."readable-stream"."1.1" =
     self.by-version."readable-stream"."1.1.13";
   by-spec."readable-stream".">=1.0.27-1 <1.1.0-0" =
@@ -15260,7 +16383,8 @@
   by-spec."readable-wrap"."^1.0.0" =
     self.by-version."readable-wrap"."1.0.0";
   by-version."readable-wrap"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-readable-wrap-1.0.0";
+    name = "readable-wrap-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/readable-wrap/-/readable-wrap-1.0.0.tgz";
@@ -15270,17 +16394,41 @@
     ];
     buildInputs =
       (self.nativeDeps."readable-wrap" or []);
-    deps = [
-      self.by-version."readable-stream"."1.1.13"
-    ];
+    deps = {
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "readable-wrap" ];
   };
+  by-spec."readdir-scoped-modules"."^1.0.0" =
+    self.by-version."readdir-scoped-modules"."1.0.0";
+  by-version."readdir-scoped-modules"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "readdir-scoped-modules-1.0.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.0.tgz";
+        name = "readdir-scoped-modules-1.0.0.tgz";
+        sha1 = "e939de969b38b3e7dfaa14fbcfe7a2fd15a4ea37";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."readdir-scoped-modules" or []);
+    deps = {
+      "debuglog-1.0.1" = self.by-version."debuglog"."1.0.1";
+      "dezalgo-1.0.0" = self.by-version."dezalgo"."1.0.0";
+      "once-1.3.0" = self.by-version."once"."1.3.0";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "readdir-scoped-modules" ];
+  };
   by-spec."readdirp"."~0.2.3" =
     self.by-version."readdirp"."0.2.5";
   by-version."readdirp"."0.2.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-readdirp-0.2.5";
+    name = "readdirp-0.2.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz";
@@ -15290,9 +16438,9 @@
     ];
     buildInputs =
       (self.nativeDeps."readdirp" or []);
-    deps = [
-      self.by-version."minimatch"."1.0.0"
-    ];
+    deps = {
+      "minimatch-1.0.0" = self.by-version."minimatch"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "readdirp" ];
@@ -15300,7 +16448,8 @@
   by-spec."recursive-readdir"."0.0.2" =
     self.by-version."recursive-readdir"."0.0.2";
   by-version."recursive-readdir"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-recursive-readdir-0.0.2";
+    name = "recursive-readdir-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/recursive-readdir/-/recursive-readdir-0.0.2.tgz";
@@ -15310,8 +16459,8 @@
     ];
     buildInputs =
       (self.nativeDeps."recursive-readdir" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "recursive-readdir" ];
@@ -15319,7 +16468,8 @@
   by-spec."redis"."*" =
     self.by-version."redis"."0.12.1";
   by-version."redis"."0.12.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-redis-0.12.1";
+    name = "redis-0.12.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/redis/-/redis-0.12.1.tgz";
@@ -15329,8 +16479,8 @@
     ];
     buildInputs =
       (self.nativeDeps."redis" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "redis" ];
@@ -15339,7 +16489,8 @@
   by-spec."redis"."0.10.x" =
     self.by-version."redis"."0.10.3";
   by-version."redis"."0.10.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-redis-0.10.3";
+    name = "redis-0.10.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/redis/-/redis-0.10.3.tgz";
@@ -15349,8 +16500,8 @@
     ];
     buildInputs =
       (self.nativeDeps."redis" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "redis" ];
@@ -15358,7 +16509,8 @@
   by-spec."redis"."0.7.2" =
     self.by-version."redis"."0.7.2";
   by-version."redis"."0.7.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-redis-0.7.2";
+    name = "redis-0.7.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/redis/-/redis-0.7.2.tgz";
@@ -15368,9 +16520,9 @@
     ];
     buildInputs =
       (self.nativeDeps."redis" or []);
-    deps = [
-      self.by-version."hiredis"."0.1.17"
-    ];
+    deps = {
+      "hiredis-0.1.17" = self.by-version."hiredis"."0.1.17";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "redis" ];
@@ -15378,7 +16530,8 @@
   by-spec."redis"."0.7.3" =
     self.by-version."redis"."0.7.3";
   by-version."redis"."0.7.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-redis-0.7.3";
+    name = "redis-0.7.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/redis/-/redis-0.7.3.tgz";
@@ -15388,8 +16541,8 @@
     ];
     buildInputs =
       (self.nativeDeps."redis" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "redis" ];
@@ -15399,7 +16552,8 @@
   by-spec."reds"."~0.2.4" =
     self.by-version."reds"."0.2.4";
   by-version."reds"."0.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-reds-0.2.4";
+    name = "reds-0.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/reds/-/reds-0.2.4.tgz";
@@ -15409,10 +16563,10 @@
     ];
     buildInputs =
       (self.nativeDeps."reds" or []);
-    deps = [
-      self.by-version."natural"."0.1.17"
-      self.by-version."redis"."0.7.2"
-    ];
+    deps = {
+      "natural-0.1.17" = self.by-version."natural"."0.1.17";
+      "redis-0.7.2" = self.by-version."redis"."0.7.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "reds" ];
@@ -15420,7 +16574,8 @@
   by-spec."reduce-component"."1.0.1" =
     self.by-version."reduce-component"."1.0.1";
   by-version."reduce-component"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-reduce-component-1.0.1";
+    name = "reduce-component-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz";
@@ -15430,8 +16585,8 @@
     ];
     buildInputs =
       (self.nativeDeps."reduce-component" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "reduce-component" ];
@@ -15439,7 +16594,8 @@
   by-spec."regexp-clone"."0.0.1" =
     self.by-version."regexp-clone"."0.0.1";
   by-version."regexp-clone"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-regexp-clone-0.0.1";
+    name = "regexp-clone-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz";
@@ -15449,74 +16605,79 @@
     ];
     buildInputs =
       (self.nativeDeps."regexp-clone" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "regexp-clone" ];
   };
   by-spec."replace"."~0.2.4" =
-    self.by-version."replace"."0.2.9";
-  by-version."replace"."0.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "replace-0.2.9";
+    self.by-version."replace"."0.2.10";
+  by-version."replace"."0.2.10" = lib.makeOverridable self.buildNodePackage {
+    name = "replace-0.2.10";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/replace/-/replace-0.2.9.tgz";
-        name = "replace-0.2.9.tgz";
-        sha1 = "64428de4451717e8cc34965d2d133dd86dace404";
+        url = "http://registry.npmjs.org/replace/-/replace-0.2.10.tgz";
+        name = "replace-0.2.10.tgz";
+        sha1 = "1123397e995b3bfef9985fc63cddcf79a014fd64";
       })
     ];
     buildInputs =
       (self.nativeDeps."replace" or []);
-    deps = [
-      self.by-version."nomnom"."1.6.2"
-      self.by-version."colors"."0.5.1"
-      self.by-version."minimatch"."0.2.14"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "replace" ];
   };
   by-spec."request"."2" =
-    self.by-version."request"."2.40.0";
-  by-version."request"."2.40.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.40.0";
+    self.by-version."request"."2.42.0";
+  by-version."request"."2.42.0" = lib.makeOverridable self.buildNodePackage {
+    name = "request-2.42.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.40.0.tgz";
-        name = "request-2.40.0.tgz";
-        sha1 = "4dd670f696f1e6e842e66b4b5e839301ab9beb67";
+        url = "http://registry.npmjs.org/request/-/request-2.42.0.tgz";
+        name = "request-2.42.0.tgz";
+        sha1 = "572bd0148938564040ac7ab148b96423a063304a";
       })
     ];
     buildInputs =
       (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."qs"."1.0.2"
-      self.by-version."json-stringify-safe"."5.0.0"
-      self.by-version."mime-types"."1.0.2"
-      self.by-version."forever-agent"."0.5.2"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."tough-cookie"."0.12.1"
-      self.by-version."form-data"."0.1.4"
-      self.by-version."tunnel-agent"."0.4.0"
-      self.by-version."http-signature"."0.10.0"
-      self.by-version."oauth-sign"."0.3.0"
-      self.by-version."hawk"."1.1.1"
-      self.by-version."aws-sign2"."0.5.0"
-      self.by-version."stringstream"."0.0.4"
-    ];
+    deps = {
+      "bl-0.9.3" = self.by-version."bl"."0.9.3";
+      "caseless-0.6.0" = self.by-version."caseless"."0.6.0";
+      "forever-agent-0.5.2" = self.by-version."forever-agent"."0.5.2";
+      "qs-1.2.2" = self.by-version."qs"."1.2.2";
+      "json-stringify-safe-5.0.0" = self.by-version."json-stringify-safe"."5.0.0";
+      "mime-types-1.0.2" = self.by-version."mime-types"."1.0.2";
+      "node-uuid-1.4.1" = self.by-version."node-uuid"."1.4.1";
+      "tunnel-agent-0.4.0" = self.by-version."tunnel-agent"."0.4.0";
+      "tough-cookie-0.12.1" = self.by-version."tough-cookie"."0.12.1";
+      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
+      "http-signature-0.10.0" = self.by-version."http-signature"."0.10.0";
+      "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.4" = self.by-version."stringstream"."0.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "request" ];
   };
   by-spec."request"."2 >=2.20.0" =
-    self.by-version."request"."2.40.0";
+    self.by-version."request"."2.42.0";
   by-spec."request"."2 >=2.25.0" =
-    self.by-version."request"."2.40.0";
+    self.by-version."request"."2.42.0";
   by-spec."request"."2.16.x" =
     self.by-version."request"."2.16.6";
   by-version."request"."2.16.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.16.6";
+    name = "request-2.16.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/request/-/request-2.16.6.tgz";
@@ -15526,19 +16687,19 @@
     ];
     buildInputs =
       (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."form-data"."0.0.10"
-      self.by-version."mime"."1.2.11"
-      self.by-version."hawk"."0.10.2"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."cookie-jar"."0.2.0"
-      self.by-version."aws-sign"."0.2.0"
-      self.by-version."oauth-sign"."0.2.0"
-      self.by-version."forever-agent"."0.2.0"
-      self.by-version."tunnel-agent"."0.2.0"
-      self.by-version."json-stringify-safe"."3.0.0"
-      self.by-version."qs"."0.5.6"
-    ];
+    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.1" = self.by-version."node-uuid"."1.4.1";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "request" ];
@@ -15546,7 +16707,8 @@
   by-spec."request"."2.36.0" =
     self.by-version."request"."2.36.0";
   by-version."request"."2.36.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.36.0";
+    name = "request-2.36.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/request/-/request-2.36.0.tgz";
@@ -15556,20 +16718,20 @@
     ];
     buildInputs =
       (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."json-stringify-safe"."5.0.0"
-      self.by-version."mime"."1.2.11"
-      self.by-version."forever-agent"."0.5.2"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."tough-cookie"."0.12.1"
-      self.by-version."form-data"."0.1.4"
-      self.by-version."tunnel-agent"."0.4.0"
-      self.by-version."http-signature"."0.10.0"
-      self.by-version."oauth-sign"."0.3.0"
-      self.by-version."hawk"."1.0.0"
-      self.by-version."aws-sign2"."0.5.0"
-    ];
+    deps = {
+      "qs-0.6.6" = self.by-version."qs"."0.6.6";
+      "json-stringify-safe-5.0.0" = self.by-version."json-stringify-safe"."5.0.0";
+      "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.1" = self.by-version."node-uuid"."1.4.1";
+      "tough-cookie-0.12.1" = self.by-version."tough-cookie"."0.12.1";
+      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
+      "tunnel-agent-0.4.0" = self.by-version."tunnel-agent"."0.4.0";
+      "http-signature-0.10.0" = self.by-version."http-signature"."0.10.0";
+      "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 = [
     ];
     passthru.names = [ "request" ];
@@ -15577,7 +16739,8 @@
   by-spec."request"."2.9.x" =
     self.by-version."request"."2.9.203";
   by-version."request"."2.9.203" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.9.203";
+    name = "request-2.9.203";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/request/-/request-2.9.203.tgz";
@@ -15587,20 +16750,21 @@
     ];
     buildInputs =
       (self.nativeDeps."request" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "request" ];
   };
   by-spec."request"."^2.36.0" =
-    self.by-version."request"."2.40.0";
+    self.by-version."request"."2.42.0";
   by-spec."request"."~2" =
-    self.by-version."request"."2.40.0";
+    self.by-version."request"."2.42.0";
   by-spec."request"."~2.27.0" =
     self.by-version."request"."2.27.0";
   by-version."request"."2.27.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.27.0";
+    name = "request-2.27.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/request/-/request-2.27.0.tgz";
@@ -15610,121 +16774,64 @@
     ];
     buildInputs =
       (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."json-stringify-safe"."5.0.0"
-      self.by-version."forever-agent"."0.5.2"
-      self.by-version."tunnel-agent"."0.3.0"
-      self.by-version."http-signature"."0.10.0"
-      self.by-version."hawk"."1.0.0"
-      self.by-version."aws-sign"."0.3.0"
-      self.by-version."oauth-sign"."0.3.0"
-      self.by-version."cookie-jar"."0.3.0"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."mime"."1.2.11"
-      self.by-version."form-data"."0.1.4"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "request" ];
-  };
-  by-spec."request"."~2.30.0" =
-    self.by-version."request"."2.30.0";
-  by-version."request"."2.30.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.30.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.30.0.tgz";
-        name = "request-2.30.0.tgz";
-        sha1 = "8e0d36f0806e8911524b072b64c5ee535a09d861";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."json-stringify-safe"."5.0.0"
-      self.by-version."forever-agent"."0.5.2"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."mime"."1.2.11"
-      self.by-version."tough-cookie"."0.9.15"
-      self.by-version."form-data"."0.1.4"
-      self.by-version."tunnel-agent"."0.3.0"
-      self.by-version."http-signature"."0.10.0"
-      self.by-version."oauth-sign"."0.3.0"
-      self.by-version."hawk"."1.0.0"
-      self.by-version."aws-sign2"."0.5.0"
-    ];
+    deps = {
+      "qs-0.6.6" = self.by-version."qs"."0.6.6";
+      "json-stringify-safe-5.0.0" = self.by-version."json-stringify-safe"."5.0.0";
+      "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.0" = self.by-version."http-signature"."0.10.0";
+      "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.1" = self.by-version."node-uuid"."1.4.1";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "request" ];
   };
-  by-spec."request"."~2.34.0" =
-    self.by-version."request"."2.34.0";
-  by-version."request"."2.34.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.34.0";
+  by-spec."request"."~2.40.0" =
+    self.by-version."request"."2.40.0";
+  by-version."request"."2.40.0" = lib.makeOverridable self.buildNodePackage {
+    name = "request-2.40.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.34.0.tgz";
-        name = "request-2.34.0.tgz";
-        sha1 = "b5d8b9526add4a2d4629f4d417124573996445ae";
+        url = "http://registry.npmjs.org/request/-/request-2.40.0.tgz";
+        name = "request-2.40.0.tgz";
+        sha1 = "4dd670f696f1e6e842e66b4b5e839301ab9beb67";
       })
     ];
     buildInputs =
       (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."json-stringify-safe"."5.0.0"
-      self.by-version."forever-agent"."0.5.2"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."mime"."1.2.11"
-      self.by-version."tough-cookie"."0.12.1"
-      self.by-version."form-data"."0.1.4"
-      self.by-version."tunnel-agent"."0.3.0"
-      self.by-version."http-signature"."0.10.0"
-      self.by-version."oauth-sign"."0.3.0"
-      self.by-version."hawk"."1.0.0"
-      self.by-version."aws-sign2"."0.5.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "request" ];
-  };
-  by-spec."request"."~2.37.0" =
-    self.by-version."request"."2.37.0";
-  by-version."request"."2.37.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.37.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.37.0.tgz";
-        name = "request-2.37.0.tgz";
-        sha1 = "6c04c1f0f34af0c8b7408f1c1e30d4d6bd852d46";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."json-stringify-safe"."5.0.0"
-      self.by-version."mime-types"."1.0.2"
-      self.by-version."forever-agent"."0.5.2"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."tough-cookie"."0.12.1"
-      self.by-version."form-data"."0.1.4"
-      self.by-version."tunnel-agent"."0.4.0"
-      self.by-version."http-signature"."0.10.0"
-      self.by-version."oauth-sign"."0.3.0"
-      self.by-version."hawk"."1.1.1"
-      self.by-version."aws-sign2"."0.5.0"
-    ];
+    deps = {
+      "qs-1.0.2" = self.by-version."qs"."1.0.2";
+      "json-stringify-safe-5.0.0" = self.by-version."json-stringify-safe"."5.0.0";
+      "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.1" = self.by-version."node-uuid"."1.4.1";
+      "tough-cookie-0.12.1" = self.by-version."tough-cookie"."0.12.1";
+      "form-data-0.1.4" = self.by-version."form-data"."0.1.4";
+      "tunnel-agent-0.4.0" = self.by-version."tunnel-agent"."0.4.0";
+      "http-signature-0.10.0" = self.by-version."http-signature"."0.10.0";
+      "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.4" = self.by-version."stringstream"."0.0.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "request" ];
   };
+  by-spec."request"."~2.42.0" =
+    self.by-version."request"."2.42.0";
   by-spec."request-progress"."^0.3.1" =
     self.by-version."request-progress"."0.3.1";
   by-version."request-progress"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-progress-0.3.1";
+    name = "request-progress-0.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz";
@@ -15734,38 +16841,40 @@
     ];
     buildInputs =
       (self.nativeDeps."request-progress" or []);
-    deps = [
-      self.by-version."throttleit"."0.0.2"
-    ];
+    deps = {
+      "throttleit-0.0.2" = self.by-version."throttleit"."0.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "request-progress" ];
   };
   by-spec."requirejs"."~2.1" =
-    self.by-version."requirejs"."2.1.14";
-  by-version."requirejs"."2.1.14" = lib.makeOverridable self.buildNodePackage {
-    name = "requirejs-2.1.14";
+    self.by-version."requirejs"."2.1.15";
+  by-version."requirejs"."2.1.15" = lib.makeOverridable self.buildNodePackage {
+    name = "requirejs-2.1.15";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/requirejs/-/requirejs-2.1.14.tgz";
-        name = "requirejs-2.1.14.tgz";
-        sha1 = "de00290aa526192ff8df4dc0ba9370ce399a76b0";
+        url = "http://registry.npmjs.org/requirejs/-/requirejs-2.1.15.tgz";
+        name = "requirejs-2.1.15.tgz";
+        sha1 = "cbcfce55d584ae5983c00a20daa8eade37d18892";
       })
     ];
     buildInputs =
       (self.nativeDeps."requirejs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "requirejs" ];
   };
   by-spec."requirejs"."~2.1.0" =
-    self.by-version."requirejs"."2.1.14";
+    self.by-version."requirejs"."2.1.15";
   by-spec."resolve"."0.7.4" =
     self.by-version."resolve"."0.7.4";
   by-version."resolve"."0.7.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-resolve-0.7.4";
+    name = "resolve-0.7.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/resolve/-/resolve-0.7.4.tgz";
@@ -15775,8 +16884,8 @@
     ];
     buildInputs =
       (self.nativeDeps."resolve" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "resolve" ];
@@ -15786,7 +16895,8 @@
   by-spec."resolve"."~0.3.0" =
     self.by-version."resolve"."0.3.1";
   by-version."resolve"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-resolve-0.3.1";
+    name = "resolve-0.3.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz";
@@ -15796,14 +16906,16 @@
     ];
     buildInputs =
       (self.nativeDeps."resolve" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "resolve" ];
   };
   by-spec."resolve"."~0.3.1" =
     self.by-version."resolve"."0.3.1";
+  by-spec."resolve"."~0.7.0" =
+    self.by-version."resolve"."0.7.4";
   by-spec."resolve"."~0.7.1" =
     self.by-version."resolve"."0.7.4";
   by-spec."resolve"."~0.7.2" =
@@ -15811,7 +16923,8 @@
   by-spec."response-time"."~2.0.1" =
     self.by-version."response-time"."2.0.1";
   by-version."response-time"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-response-time-2.0.1";
+    name = "response-time-2.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/response-time/-/response-time-2.0.1.tgz";
@@ -15821,9 +16934,9 @@
     ];
     buildInputs =
       (self.nativeDeps."response-time" or []);
-    deps = [
-      self.by-version."on-headers"."1.0.0"
-    ];
+    deps = {
+      "on-headers-1.0.0" = self.by-version."on-headers"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "response-time" ];
@@ -15832,6 +16945,7 @@
     self.by-version."restify"."2.4.1";
   by-version."restify"."2.4.1" = lib.makeOverridable self.buildNodePackage {
     name = "restify-2.4.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/restify/-/restify-2.4.1.tgz";
@@ -15841,54 +16955,56 @@
     ];
     buildInputs =
       (self.nativeDeps."restify" or []);
-    deps = [
-      self.by-version."assert-plus"."0.1.2"
-      self.by-version."backoff"."2.1.0"
-      self.by-version."bunyan"."0.21.1"
-      self.by-version."deep-equal"."0.0.0"
-      self.by-version."formidable"."1.0.13"
-      self.by-version."http-signature"."0.9.11"
-      self.by-version."keep-alive-agent"."0.0.1"
-      self.by-version."lru-cache"."2.3.0"
-      self.by-version."mime"."1.2.9"
-      self.by-version."negotiator"."0.2.5"
-      self.by-version."node-uuid"."1.4.0"
-      self.by-version."once"."1.1.1"
-      self.by-version."qs"."0.5.5"
-      self.by-version."semver"."1.1.4"
-      self.by-version."spdy"."1.7.1"
-      self.by-version."verror"."1.3.6"
-      self.by-version."dtrace-provider"."0.2.8"
-    ];
+    deps = {
+      "assert-plus-0.1.2" = self.by-version."assert-plus"."0.1.2";
+      "backoff-2.1.0" = self.by-version."backoff"."2.1.0";
+      "bunyan-0.21.1" = self.by-version."bunyan"."0.21.1";
+      "deep-equal-0.0.0" = self.by-version."deep-equal"."0.0.0";
+      "formidable-1.0.13" = self.by-version."formidable"."1.0.13";
+      "http-signature-0.9.11" = self.by-version."http-signature"."0.9.11";
+      "keep-alive-agent-0.0.1" = self.by-version."keep-alive-agent"."0.0.1";
+      "lru-cache-2.3.0" = self.by-version."lru-cache"."2.3.0";
+      "mime-1.2.9" = self.by-version."mime"."1.2.9";
+      "negotiator-0.2.5" = self.by-version."negotiator"."0.2.5";
+      "node-uuid-1.4.0" = self.by-version."node-uuid"."1.4.0";
+      "once-1.1.1" = self.by-version."once"."1.1.1";
+      "qs-0.5.5" = self.by-version."qs"."0.5.5";
+      "semver-1.1.4" = self.by-version."semver"."1.1.4";
+      "spdy-1.7.1" = self.by-version."spdy"."1.7.1";
+      "verror-1.3.6" = self.by-version."verror"."1.3.6";
+      "dtrace-provider-0.2.8" = self.by-version."dtrace-provider"."0.2.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "restify" ];
   };
   by-spec."rethinkdb"."*" =
-    self.by-version."rethinkdb"."1.13.0-3";
-  by-version."rethinkdb"."1.13.0-3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rethinkdb-1.13.0-3";
+    self.by-version."rethinkdb"."1.14.0-0";
+  by-version."rethinkdb"."1.14.0-0" = lib.makeOverridable self.buildNodePackage {
+    name = "rethinkdb-1.14.0-0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/rethinkdb/-/rethinkdb-1.13.0-3.tgz";
-        name = "rethinkdb-1.13.0-3.tgz";
-        sha1 = "67db23e23ac3ff40fd4738414fc14d1935e6009e";
+        url = "http://registry.npmjs.org/rethinkdb/-/rethinkdb-1.14.0-0.tgz";
+        name = "rethinkdb-1.14.0-0.tgz";
+        sha1 = "d198a5bf9caffdaa38670ebd40afc4621b09b0f5";
       })
     ];
     buildInputs =
       (self.nativeDeps."rethinkdb" or []);
-    deps = [
-      self.by-version."bluebird"."2.3.0"
-    ];
+    deps = {
+      "bluebird-2.3.2" = self.by-version."bluebird"."2.3.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rethinkdb" ];
   };
-  "rethinkdb" = self.by-version."rethinkdb"."1.13.0-3";
+  "rethinkdb" = self.by-version."rethinkdb"."1.14.0-0";
   by-spec."retry"."0.6.0" =
     self.by-version."retry"."0.6.0";
   by-version."retry"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-retry-0.6.0";
+    name = "retry-0.6.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/retry/-/retry-0.6.0.tgz";
@@ -15898,8 +17014,8 @@
     ];
     buildInputs =
       (self.nativeDeps."retry" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "retry" ];
@@ -15907,7 +17023,8 @@
   by-spec."retry"."~0.6.0" =
     self.by-version."retry"."0.6.1";
   by-version."retry"."0.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-retry-0.6.1";
+    name = "retry-0.6.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/retry/-/retry-0.6.1.tgz";
@@ -15917,8 +17034,8 @@
     ];
     buildInputs =
       (self.nativeDeps."retry" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "retry" ];
@@ -15926,7 +17043,8 @@
   by-spec."revalidator"."0.1.x" =
     self.by-version."revalidator"."0.1.8";
   by-version."revalidator"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-revalidator-0.1.8";
+    name = "revalidator-0.1.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz";
@@ -15936,8 +17054,8 @@
     ];
     buildInputs =
       (self.nativeDeps."revalidator" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "revalidator" ];
@@ -15945,7 +17063,8 @@
   by-spec."rfile"."~1.0" =
     self.by-version."rfile"."1.0.0";
   by-version."rfile"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rfile-1.0.0";
+    name = "rfile-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/rfile/-/rfile-1.0.0.tgz";
@@ -15955,10 +17074,10 @@
     ];
     buildInputs =
       (self.nativeDeps."rfile" or []);
-    deps = [
-      self.by-version."callsite"."1.0.0"
-      self.by-version."resolve"."0.3.1"
-    ];
+    deps = {
+      "callsite-1.0.0" = self.by-version."callsite"."1.0.0";
+      "resolve-0.3.1" = self.by-version."resolve"."0.3.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rfile" ];
@@ -15968,7 +17087,8 @@
   by-spec."rimraf"."1.x.x" =
     self.by-version."rimraf"."1.0.9";
   by-version."rimraf"."1.0.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rimraf-1.0.9";
+    name = "rimraf-1.0.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/rimraf/-/rimraf-1.0.9.tgz";
@@ -15978,8 +17098,8 @@
     ];
     buildInputs =
       (self.nativeDeps."rimraf" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rimraf" ];
@@ -15988,6 +17108,7 @@
     self.by-version."rimraf"."2.2.8";
   by-version."rimraf"."2.2.8" = lib.makeOverridable self.buildNodePackage {
     name = "rimraf-2.2.8";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
@@ -15997,8 +17118,28 @@
     ];
     buildInputs =
       (self.nativeDeps."rimraf" or []);
-    deps = [
+    deps = {
+    };
+    peerDependencies = [
     ];
+    passthru.names = [ "rimraf" ];
+  };
+  by-spec."rimraf"."2.2.6" =
+    self.by-version."rimraf"."2.2.6";
+  by-version."rimraf"."2.2.6" = lib.makeOverridable self.buildNodePackage {
+    name = "rimraf-2.2.6";
+    bin = true;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz";
+        name = "rimraf-2.2.6.tgz";
+        sha1 = "c59597569b14d956ad29cacc42bdddf5f0ea4f4c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."rimraf" or []);
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rimraf" ];
@@ -16012,7 +17153,8 @@
   by-spec."rimraf"."~2.1.4" =
     self.by-version."rimraf"."2.1.4";
   by-version."rimraf"."2.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rimraf-2.1.4";
+    name = "rimraf-2.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz";
@@ -16022,9 +17164,9 @@
     ];
     buildInputs =
       (self.nativeDeps."rimraf" or []);
-    deps = [
-      self.by-version."graceful-fs"."1.2.3"
-    ];
+    deps = {
+      "graceful-fs-1.2.3" = self.by-version."graceful-fs"."1.2.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rimraf" ];
@@ -16042,7 +17184,8 @@
   by-spec."ripemd160"."0.2.0" =
     self.by-version."ripemd160"."0.2.0";
   by-version."ripemd160"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ripemd160-0.2.0";
+    name = "ripemd160-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz";
@@ -16052,16 +17195,17 @@
     ];
     buildInputs =
       (self.nativeDeps."ripemd160" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ripemd160" ];
   };
-  by-spec."rndm"."1" =
+  by-spec."rndm"."~1.0.0" =
     self.by-version."rndm"."1.0.0";
   by-version."rndm"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rndm-1.0.0";
+    name = "rndm-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/rndm/-/rndm-1.0.0.tgz";
@@ -16071,8 +17215,8 @@
     ];
     buildInputs =
       (self.nativeDeps."rndm" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "rndm" ];
@@ -16080,7 +17224,8 @@
   by-spec."ruglify"."~1.0.0" =
     self.by-version."ruglify"."1.0.0";
   by-version."ruglify"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ruglify-1.0.0";
+    name = "ruglify-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ruglify/-/ruglify-1.0.0.tgz";
@@ -16090,10 +17235,10 @@
     ];
     buildInputs =
       (self.nativeDeps."ruglify" or []);
-    deps = [
-      self.by-version."rfile"."1.0.0"
-      self.by-version."uglify-js"."2.2.5"
-    ];
+    deps = {
+      "rfile-1.0.0" = self.by-version."rfile"."1.0.0";
+      "uglify-js-2.2.5" = self.by-version."uglify-js"."2.2.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ruglify" ];
@@ -16102,6 +17247,7 @@
     self.by-version."s3http"."0.0.5";
   by-version."s3http"."0.0.5" = lib.makeOverridable self.buildNodePackage {
     name = "s3http-0.0.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/s3http/-/s3http-0.0.5.tgz";
@@ -16111,16 +17257,16 @@
     ];
     buildInputs =
       (self.nativeDeps."s3http" or []);
-    deps = [
-      self.by-version."aws-sdk"."1.18.0"
-      self.by-version."commander"."2.0.0"
-      self.by-version."http-auth"."2.0.7"
-      self.by-version."express"."3.4.4"
-      self.by-version."everyauth"."0.4.5"
-      self.by-version."string"."1.6.1"
-      self.by-version."util"."0.4.9"
-      self.by-version."crypto"."0.0.3"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "s3http" ];
@@ -16129,7 +17275,8 @@
   by-spec."samsam"."~1.1" =
     self.by-version."samsam"."1.1.1";
   by-version."samsam"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-samsam-1.1.1";
+    name = "samsam-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/samsam/-/samsam-1.1.1.tgz";
@@ -16139,8 +17286,8 @@
     ];
     buildInputs =
       (self.nativeDeps."samsam" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "samsam" ];
@@ -16148,7 +17295,8 @@
   by-spec."sauce-connect-launcher"."~0.6.0" =
     self.by-version."sauce-connect-launcher"."0.6.1";
   by-version."sauce-connect-launcher"."0.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sauce-connect-launcher-0.6.1";
+    name = "sauce-connect-launcher-0.6.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-0.6.1.tgz";
@@ -16158,12 +17306,12 @@
     ];
     buildInputs =
       (self.nativeDeps."sauce-connect-launcher" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-      self.by-version."async"."0.9.0"
-      self.by-version."adm-zip"."0.4.4"
-      self.by-version."rimraf"."2.2.8"
-    ];
+    deps = {
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+      "adm-zip-0.4.4" = self.by-version."adm-zip"."0.4.4";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sauce-connect-launcher" ];
@@ -16171,7 +17319,8 @@
   by-spec."saucelabs"."~0.1.0" =
     self.by-version."saucelabs"."0.1.1";
   by-version."saucelabs"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-saucelabs-0.1.1";
+    name = "saucelabs-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/saucelabs/-/saucelabs-0.1.1.tgz";
@@ -16181,8 +17330,8 @@
     ];
     buildInputs =
       (self.nativeDeps."saucelabs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "saucelabs" ];
@@ -16190,7 +17339,8 @@
   by-spec."sax"."0.4.2" =
     self.by-version."sax"."0.4.2";
   by-version."sax"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sax-0.4.2";
+    name = "sax-0.4.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sax/-/sax-0.4.2.tgz";
@@ -16200,8 +17350,8 @@
     ];
     buildInputs =
       (self.nativeDeps."sax" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sax" ];
@@ -16209,7 +17359,8 @@
   by-spec."sax"."0.5.x" =
     self.by-version."sax"."0.5.8";
   by-version."sax"."0.5.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sax-0.5.8";
+    name = "sax-0.5.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz";
@@ -16219,8 +17370,8 @@
     ];
     buildInputs =
       (self.nativeDeps."sax" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sax" ];
@@ -16228,7 +17379,8 @@
   by-spec."sax"."0.6.x" =
     self.by-version."sax"."0.6.0";
   by-version."sax"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sax-0.6.0";
+    name = "sax-0.6.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sax/-/sax-0.6.0.tgz";
@@ -16238,18 +17390,19 @@
     ];
     buildInputs =
       (self.nativeDeps."sax" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sax" ];
   };
   by-spec."sax".">=0.4.2" =
     self.by-version."sax"."0.6.0";
-  by-spec."scmp"."~0.0.3" =
+  by-spec."scmp"."0.0.3" =
     self.by-version."scmp"."0.0.3";
   by-version."scmp"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-scmp-0.0.3";
+    name = "scmp-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz";
@@ -16259,8 +17412,8 @@
     ];
     buildInputs =
       (self.nativeDeps."scmp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "scmp" ];
@@ -16268,7 +17421,8 @@
   by-spec."selenium-webdriver"."*" =
     self.by-version."selenium-webdriver"."2.42.1";
   by-version."selenium-webdriver"."2.42.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-selenium-webdriver-2.42.1";
+    name = "selenium-webdriver-2.42.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.42.1.tgz";
@@ -16278,8 +17432,8 @@
     ];
     buildInputs =
       (self.nativeDeps."selenium-webdriver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "selenium-webdriver" ];
@@ -16289,6 +17443,7 @@
     self.by-version."semver"."3.0.1";
   by-version."semver"."3.0.1" = lib.makeOverridable self.buildNodePackage {
     name = "semver-3.0.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/semver/-/semver-3.0.1.tgz";
@@ -16298,8 +17453,8 @@
     ];
     buildInputs =
       (self.nativeDeps."semver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "semver" ];
@@ -16309,6 +17464,7 @@
     self.by-version."semver"."1.1.0";
   by-version."semver"."1.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "semver-1.1.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/semver/-/semver-1.1.0.tgz";
@@ -16318,8 +17474,8 @@
     ];
     buildInputs =
       (self.nativeDeps."semver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "semver" ];
@@ -16328,6 +17484,7 @@
     self.by-version."semver"."1.1.4";
   by-version."semver"."1.1.4" = lib.makeOverridable self.buildNodePackage {
     name = "semver-1.1.4";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/semver/-/semver-1.1.4.tgz";
@@ -16337,8 +17494,8 @@
     ];
     buildInputs =
       (self.nativeDeps."semver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "semver" ];
@@ -16347,6 +17504,7 @@
     self.by-version."semver"."2.3.2";
   by-version."semver"."2.3.2" = lib.makeOverridable self.buildNodePackage {
     name = "semver-2.3.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/semver/-/semver-2.3.2.tgz";
@@ -16356,25 +17514,27 @@
     ];
     buildInputs =
       (self.nativeDeps."semver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "semver" ];
   };
-  by-spec."semver"."2 >=2.2.1 || 3.x" =
+  by-spec."semver"."2 >=2.2.1 || 3.x || 4" =
     self.by-version."semver"."3.0.1";
-  by-spec."semver"."2 || 3" =
+  by-spec."semver"."2 || 3 || 4" =
     self.by-version."semver"."3.0.1";
   by-spec."semver"."2.x" =
     self.by-version."semver"."2.3.2";
-  by-spec."semver"."2.x || 3.x" =
+  by-spec."semver"."2.x || 3.x || 4" =
     self.by-version."semver"."3.0.1";
   by-spec."semver".">=2.0.10 <3.0.0" =
     self.by-version."semver"."2.3.2";
   by-spec."semver"."^2.3.0" =
     self.by-version."semver"."2.3.2";
-  by-spec."semver"."^2.3.0 || 3.x" =
+  by-spec."semver"."^2.3.0 || 3.x || 4" =
+    self.by-version."semver"."3.0.1";
+  by-spec."semver"."^3.0.1" =
     self.by-version."semver"."3.0.1";
   by-spec."semver"."~1.1.0" =
     self.by-version."semver"."1.1.4";
@@ -16384,6 +17544,7 @@
     self.by-version."semver"."2.0.11";
   by-version."semver"."2.0.11" = lib.makeOverridable self.buildNodePackage {
     name = "semver-2.0.11";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/semver/-/semver-2.0.11.tgz";
@@ -16393,8 +17554,8 @@
     ];
     buildInputs =
       (self.nativeDeps."semver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "semver" ];
@@ -16403,6 +17564,7 @@
     self.by-version."semver"."2.1.0";
   by-version."semver"."2.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "semver-2.1.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/semver/-/semver-2.1.0.tgz";
@@ -16412,8 +17574,8 @@
     ];
     buildInputs =
       (self.nativeDeps."semver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "semver" ];
@@ -16422,6 +17584,7 @@
     self.by-version."semver"."2.2.1";
   by-version."semver"."2.2.1" = lib.makeOverridable self.buildNodePackage {
     name = "semver-2.2.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/semver/-/semver-2.2.1.tgz";
@@ -16431,40 +17594,40 @@
     ];
     buildInputs =
       (self.nativeDeps."semver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "semver" ];
   };
-  by-spec."semver"."~2.3.0" =
-    self.by-version."semver"."2.3.2";
-  by-spec."semver"."~2.3.1" =
-    self.by-version."semver"."2.3.2";
+  by-spec."semver"."~3.0.1" =
+    self.by-version."semver"."3.0.1";
   by-spec."send"."*" =
-    self.by-version."send"."0.8.3";
-  by-version."send"."0.8.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-send-0.8.3";
+    self.by-version."send"."0.9.1";
+  by-version."send"."0.9.1" = lib.makeOverridable self.buildNodePackage {
+    name = "send-0.9.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/send/-/send-0.8.3.tgz";
-        name = "send-0.8.3.tgz";
-        sha1 = "593886004fcb968a1b5727814a32b388b3b99083";
+        url = "http://registry.npmjs.org/send/-/send-0.9.1.tgz";
+        name = "send-0.9.1.tgz";
+        sha1 = "d93689f7c9ce36bd32f8ee572bb60bda032edc23";
       })
     ];
     buildInputs =
       (self.nativeDeps."send" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."depd"."0.4.4"
-      self.by-version."destroy"."1.0.3"
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."mime"."1.2.11"
-      self.by-version."ms"."0.6.2"
-      self.by-version."on-finished"."2.1.0"
-      self.by-version."range-parser"."1.0.0"
-    ];
+    deps = {
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "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.3.0" = self.by-version."etag"."1.3.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.2" = self.by-version."range-parser"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "send" ];
@@ -16472,7 +17635,8 @@
   by-spec."send"."0.0.3" =
     self.by-version."send"."0.0.3";
   by-version."send"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-send-0.0.3";
+    name = "send-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/send/-/send-0.0.3.tgz";
@@ -16482,12 +17646,12 @@
     ];
     buildInputs =
       (self.nativeDeps."send" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."mime"."1.2.6"
-      self.by-version."fresh"."0.1.0"
-      self.by-version."range-parser"."0.0.4"
-    ];
+    deps = {
+      "debug-2.0.0" = self.by-version."debug"."2.0.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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "send" ];
@@ -16495,7 +17659,8 @@
   by-spec."send"."0.1.0" =
     self.by-version."send"."0.1.0";
   by-version."send"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-send-0.1.0";
+    name = "send-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/send/-/send-0.1.0.tgz";
@@ -16505,12 +17670,12 @@
     ];
     buildInputs =
       (self.nativeDeps."send" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."mime"."1.2.6"
-      self.by-version."fresh"."0.1.0"
-      self.by-version."range-parser"."0.0.4"
-    ];
+    deps = {
+      "debug-2.0.0" = self.by-version."debug"."2.0.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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "send" ];
@@ -16518,7 +17683,8 @@
   by-spec."send"."0.1.4" =
     self.by-version."send"."0.1.4";
   by-version."send"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-send-0.1.4";
+    name = "send-0.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/send/-/send-0.1.4.tgz";
@@ -16528,12 +17694,12 @@
     ];
     buildInputs =
       (self.nativeDeps."send" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."mime"."1.2.11"
-      self.by-version."fresh"."0.2.0"
-      self.by-version."range-parser"."0.0.4"
-    ];
+    deps = {
+      "debug-2.0.0" = self.by-version."debug"."2.0.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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "send" ];
@@ -16541,7 +17707,8 @@
   by-spec."send"."0.2.0" =
     self.by-version."send"."0.2.0";
   by-version."send"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-send-0.2.0";
+    name = "send-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/send/-/send-0.2.0.tgz";
@@ -16551,74 +17718,52 @@
     ];
     buildInputs =
       (self.nativeDeps."send" or []);
-    deps = [
-      self.by-version."debug"."1.0.4"
-      self.by-version."mime"."1.2.11"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."range-parser"."1.0.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "send" ];
-  };
-  by-spec."send"."0.4.3" =
-    self.by-version."send"."0.4.3";
-  by-version."send"."0.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-send-0.4.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/send/-/send-0.4.3.tgz";
-        name = "send-0.4.3.tgz";
-        sha1 = "9627b23b7707fbf6373831cac5793330b594b640";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."send" or []);
-    deps = [
-      self.by-version."debug"."1.0.2"
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."finished"."1.2.2"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."mime"."1.2.11"
-      self.by-version."range-parser"."1.0.0"
-    ];
+    deps = {
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+      "fresh-0.2.4" = self.by-version."fresh"."0.2.4";
+      "range-parser-1.0.2" = self.by-version."range-parser"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "send" ];
   };
-  by-spec."send"."0.6.0" =
-    self.by-version."send"."0.6.0";
-  by-version."send"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-send-0.6.0";
+  by-spec."send"."0.8.5" =
+    self.by-version."send"."0.8.5";
+  by-version."send"."0.8.5" = lib.makeOverridable self.buildNodePackage {
+    name = "send-0.8.5";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/send/-/send-0.6.0.tgz";
-        name = "send-0.6.0.tgz";
-        sha1 = "a59da9265db7c35141e1079cf1f368ee0d59b3ab";
+        url = "http://registry.npmjs.org/send/-/send-0.8.5.tgz";
+        name = "send-0.8.5.tgz";
+        sha1 = "37f708216e6f50c175e74c69fec53484e2fd82c7";
       })
     ];
     buildInputs =
       (self.nativeDeps."send" or []);
-    deps = [
-      self.by-version."debug"."1.0.3"
-      self.by-version."depd"."0.3.0"
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."finished"."1.2.2"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."mime"."1.2.11"
-      self.by-version."ms"."0.6.2"
-      self.by-version."range-parser"."1.0.0"
-    ];
+    deps = {
+      "debug-1.0.4" = self.by-version."debug"."1.0.4";
+      "depd-0.4.4" = self.by-version."depd"."0.4.4";
+      "destroy-1.0.3" = self.by-version."destroy"."1.0.3";
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+      "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";
+      "on-finished-2.1.0" = self.by-version."on-finished"."2.1.0";
+      "range-parser-1.0.2" = self.by-version."range-parser"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "send" ];
   };
-  by-spec."send"."0.8.3" =
-    self.by-version."send"."0.8.3";
+  by-spec."send"."0.9.1" =
+    self.by-version."send"."0.9.1";
   by-spec."sequence"."2.2.1" =
     self.by-version."sequence"."2.2.1";
   by-version."sequence"."2.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sequence-2.2.1";
+    name = "sequence-2.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sequence/-/sequence-2.2.1.tgz";
@@ -16628,52 +17773,77 @@
     ];
     buildInputs =
       (self.nativeDeps."sequence" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sequence" ];
   };
   by-spec."sequence"."2.x" =
     self.by-version."sequence"."2.2.1";
-  by-spec."serve-favicon"."2.0.1" =
-    self.by-version."serve-favicon"."2.0.1";
-  by-version."serve-favicon"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-favicon-2.0.1";
+  by-spec."sequencify"."~0.0.7" =
+    self.by-version."sequencify"."0.0.7";
+  by-version."sequencify"."0.0.7" = lib.makeOverridable self.buildNodePackage {
+    name = "sequencify-0.0.7";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/serve-favicon/-/serve-favicon-2.0.1.tgz";
-        name = "serve-favicon-2.0.1.tgz";
-        sha1 = "4826975d9f173ca3a4158e9698161f75dec7afec";
+        url = "http://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz";
+        name = "sequencify-0.0.7.tgz";
+        sha1 = "90cff19d02e07027fd767f5ead3e7b95d1e7380c";
       })
     ];
     buildInputs =
-      (self.nativeDeps."serve-favicon" or []);
-    deps = [
-      self.by-version."fresh"."0.2.2"
+      (self.nativeDeps."sequencify" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "sequencify" ];
+  };
+  by-spec."serve-favicon"."~2.1.3" =
+    self.by-version."serve-favicon"."2.1.3";
+  by-version."serve-favicon"."2.1.3" = lib.makeOverridable self.buildNodePackage {
+    name = "serve-favicon-2.1.3";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/serve-favicon/-/serve-favicon-2.1.3.tgz";
+        name = "serve-favicon-2.1.3.tgz";
+        sha1 = "dfab1064b1ed5dd0099c890dccc1c7d45c936fed";
+      })
     ];
+    buildInputs =
+      (self.nativeDeps."serve-favicon" or []);
+    deps = {
+      "etag-1.3.0" = self.by-version."etag"."1.3.0";
+      "fresh-0.2.4" = self.by-version."fresh"."0.2.4";
+      "ms-0.6.2" = self.by-version."ms"."0.6.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "serve-favicon" ];
   };
-  by-spec."serve-index"."~1.1.6" =
-    self.by-version."serve-index"."1.1.6";
-  by-version."serve-index"."1.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-index-1.1.6";
+  by-spec."serve-index"."~1.2.1" =
+    self.by-version."serve-index"."1.2.1";
+  by-version."serve-index"."1.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "serve-index-1.2.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz";
-        name = "serve-index-1.1.6.tgz";
-        sha1 = "b758318fe781628383f66ac80dd447712ea7781f";
+        url = "http://registry.npmjs.org/serve-index/-/serve-index-1.2.1.tgz";
+        name = "serve-index-1.2.1.tgz";
+        sha1 = "854daef00ac9ff2f5bfda1c019b78fb0ed6d2e6f";
       })
     ];
     buildInputs =
       (self.nativeDeps."serve-index" or []);
-    deps = [
-      self.by-version."accepts"."1.0.7"
-      self.by-version."batch"."0.5.1"
-      self.by-version."parseurl"."1.3.0"
-    ];
+    deps = {
+      "accepts-1.1.0" = self.by-version."accepts"."1.1.0";
+      "batch-0.5.1" = self.by-version."batch"."0.5.1";
+      "debug-2.0.0" = self.by-version."debug"."2.0.0";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "serve-index" ];
@@ -16681,7 +17851,8 @@
   by-spec."serve-static"."1.0.1" =
     self.by-version."serve-static"."1.0.1";
   by-version."serve-static"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-static-1.0.1";
+    name = "serve-static-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/serve-static/-/serve-static-1.0.1.tgz";
@@ -16691,76 +17862,59 @@
     ];
     buildInputs =
       (self.nativeDeps."serve-static" or []);
-    deps = [
-      self.by-version."send"."0.1.4"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "serve-static" ];
-  };
-  by-spec."serve-static"."1.2.3" =
-    self.by-version."serve-static"."1.2.3";
-  by-version."serve-static"."1.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-static-1.2.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.2.3.tgz";
-        name = "serve-static-1.2.3.tgz";
-        sha1 = "93cecbc340f079ecb8589281d1dc31c26c0cd158";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."serve-static" or []);
-    deps = [
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."parseurl"."1.0.1"
-      self.by-version."send"."0.4.3"
-    ];
+    deps = {
+      "send-0.1.4" = self.by-version."send"."0.1.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "serve-static" ];
   };
-  by-spec."serve-static"."~1.3.0" =
-    self.by-version."serve-static"."1.3.2";
-  by-version."serve-static"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-static-1.3.2";
+  by-spec."serve-static"."~1.5.3" =
+    self.by-version."serve-static"."1.5.4";
+  by-version."serve-static"."1.5.4" = lib.makeOverridable self.buildNodePackage {
+    name = "serve-static-1.5.4";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.3.2.tgz";
-        name = "serve-static-1.3.2.tgz";
-        sha1 = "d904a6cbf55f511c78138f6f45ee6e69d9d105ca";
+        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.5.4.tgz";
+        name = "serve-static-1.5.4.tgz";
+        sha1 = "819fb37ae46bd02dd520b77fcf7fd8f5112f9782";
       })
     ];
     buildInputs =
       (self.nativeDeps."serve-static" or []);
-    deps = [
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."parseurl"."1.1.3"
-      self.by-version."send"."0.6.0"
-    ];
+    deps = {
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+      "send-0.8.5" = self.by-version."send"."0.8.5";
+      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "serve-static" ];
   };
-  by-spec."serve-static"."~1.5.3" =
-    self.by-version."serve-static"."1.5.3";
-  by-version."serve-static"."1.5.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-static-1.5.3";
+  by-spec."serve-static"."~1.5.4" =
+    self.by-version."serve-static"."1.5.4";
+  by-spec."serve-static"."~1.6.1" =
+    self.by-version."serve-static"."1.6.1";
+  by-version."serve-static"."1.6.1" = lib.makeOverridable self.buildNodePackage {
+    name = "serve-static-1.6.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.5.3.tgz";
-        name = "serve-static-1.5.3.tgz";
-        sha1 = "2e28efa5899686fd3ccdb97a80aa464002244581";
+        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.6.1.tgz";
+        name = "serve-static-1.6.1.tgz";
+        sha1 = "2f257563afbe931d28cee4aa3dfeddc975a87193";
       })
     ];
     buildInputs =
       (self.nativeDeps."serve-static" or []);
-    deps = [
-      self.by-version."escape-html"."1.0.1"
-      self.by-version."parseurl"."1.3.0"
-      self.by-version."send"."0.8.3"
-      self.by-version."utils-merge"."1.0.0"
-    ];
+    deps = {
+      "escape-html-1.0.1" = self.by-version."escape-html"."1.0.1";
+      "parseurl-1.3.0" = self.by-version."parseurl"."1.3.0";
+      "send-0.9.1" = self.by-version."send"."0.9.1";
+      "utils-merge-1.0.0" = self.by-version."utils-merge"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "serve-static" ];
@@ -16768,7 +17922,8 @@
   by-spec."sha"."~1.2.1" =
     self.by-version."sha"."1.2.4";
   by-version."sha"."1.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sha-1.2.4";
+    name = "sha-1.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sha/-/sha-1.2.4.tgz";
@@ -16778,30 +17933,31 @@
     ];
     buildInputs =
       (self.nativeDeps."sha" or []);
-    deps = [
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."readable-stream"."1.0.31"
-    ];
+    deps = {
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sha" ];
   };
-  by-spec."sha.js"."2.1.7" =
-    self.by-version."sha.js"."2.1.7";
-  by-version."sha.js"."2.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "sha.js-2.1.7";
+  by-spec."sha.js"."2.1.8" =
+    self.by-version."sha.js"."2.1.8";
+  by-version."sha.js"."2.1.8" = lib.makeOverridable self.buildNodePackage {
+    name = "sha.js-2.1.8";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/sha.js/-/sha.js-2.1.7.tgz";
-        name = "sha.js-2.1.7.tgz";
-        sha1 = "4ab5d386d5c1a26183e61bcc446a9370a3eb8859";
+        url = "http://registry.npmjs.org/sha.js/-/sha.js-2.1.8.tgz";
+        name = "sha.js-2.1.8.tgz";
+        sha1 = "9b89a99b030eed2280b06a2b79383a4ceecd7719";
       })
     ];
     buildInputs =
       (self.nativeDeps."sha.js" or []);
-    deps = [
-      self.by-version."buffer"."2.3.4"
-    ];
+    deps = {
+      "buffer-2.3.4" = self.by-version."buffer"."2.3.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sha.js" ];
@@ -16809,7 +17965,8 @@
   by-spec."shallow-copy"."0.0.1" =
     self.by-version."shallow-copy"."0.0.1";
   by-version."shallow-copy"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-shallow-copy-0.0.1";
+    name = "shallow-copy-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz";
@@ -16819,8 +17976,8 @@
     ];
     buildInputs =
       (self.nativeDeps."shallow-copy" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "shallow-copy" ];
@@ -16828,7 +17985,8 @@
   by-spec."shasum"."^1.0.0" =
     self.by-version."shasum"."1.0.0";
   by-version."shasum"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-shasum-1.0.0";
+    name = "shasum-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/shasum/-/shasum-1.0.0.tgz";
@@ -16838,9 +17996,9 @@
     ];
     buildInputs =
       (self.nativeDeps."shasum" or []);
-    deps = [
-      self.by-version."json-stable-stringify"."0.0.1"
-    ];
+    deps = {
+      "json-stable-stringify-0.0.1" = self.by-version."json-stable-stringify"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "shasum" ];
@@ -16848,7 +18006,8 @@
   by-spec."shell-quote"."~0.0.1" =
     self.by-version."shell-quote"."0.0.1";
   by-version."shell-quote"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-shell-quote-0.0.1";
+    name = "shell-quote-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz";
@@ -16858,8 +18017,8 @@
     ];
     buildInputs =
       (self.nativeDeps."shell-quote" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "shell-quote" ];
@@ -16868,6 +18027,7 @@
     self.by-version."shelljs"."0.3.0";
   by-version."shelljs"."0.3.0" = lib.makeOverridable self.buildNodePackage {
     name = "shelljs-0.3.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz";
@@ -16877,8 +18037,8 @@
     ];
     buildInputs =
       (self.nativeDeps."shelljs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "shelljs" ];
@@ -16889,7 +18049,8 @@
   by-spec."should"."*" =
     self.by-version."should"."4.0.4";
   by-version."should"."4.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-should-4.0.4";
+    name = "should-4.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/should/-/should-4.0.4.tgz";
@@ -16899,8 +18060,8 @@
     ];
     buildInputs =
       (self.nativeDeps."should" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "should" ];
@@ -16909,7 +18070,8 @@
   by-spec."sigmund"."~1.0.0" =
     self.by-version."sigmund"."1.0.0";
   by-version."sigmund"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sigmund-1.0.0";
+    name = "sigmund-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz";
@@ -16919,8 +18081,8 @@
     ];
     buildInputs =
       (self.nativeDeps."sigmund" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sigmund" ];
@@ -16928,7 +18090,8 @@
   by-spec."signals"."<2.0" =
     self.by-version."signals"."1.0.0";
   by-version."signals"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-signals-1.0.0";
+    name = "signals-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/signals/-/signals-1.0.0.tgz";
@@ -16938,8 +18101,8 @@
     ];
     buildInputs =
       (self.nativeDeps."signals" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "signals" ];
@@ -16951,7 +18114,8 @@
   by-spec."simple-lru-cache"."0.0.x" =
     self.by-version."simple-lru-cache"."0.0.1";
   by-version."simple-lru-cache"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-simple-lru-cache-0.0.1";
+    name = "simple-lru-cache-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/simple-lru-cache/-/simple-lru-cache-0.0.1.tgz";
@@ -16961,29 +18125,30 @@
     ];
     buildInputs =
       (self.nativeDeps."simple-lru-cache" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "simple-lru-cache" ];
   };
   by-spec."simplesmtp".">= 0.1.22" =
-    self.by-version."simplesmtp"."0.3.32";
-  by-version."simplesmtp"."0.3.32" = lib.makeOverridable self.buildNodePackage {
-    name = "node-simplesmtp-0.3.32";
+    self.by-version."simplesmtp"."0.3.33";
+  by-version."simplesmtp"."0.3.33" = lib.makeOverridable self.buildNodePackage {
+    name = "simplesmtp-0.3.33";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.32.tgz";
-        name = "simplesmtp-0.3.32.tgz";
-        sha1 = "b3589b4cbf90624e712ab0ec1a7480ec14fd1c12";
+        url = "http://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.33.tgz";
+        name = "simplesmtp-0.3.33.tgz";
+        sha1 = "f25e12431d8c6363755c106595b998f5f965aad9";
       })
     ];
     buildInputs =
       (self.nativeDeps."simplesmtp" or []);
-    deps = [
-      self.by-version."rai"."0.1.11"
-      self.by-version."xoauth2"."0.1.8"
-    ];
+    deps = {
+      "rai-0.1.11" = self.by-version."rai"."0.1.11";
+      "xoauth2-0.1.8" = self.by-version."xoauth2"."0.1.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "simplesmtp" ];
@@ -16991,7 +18156,8 @@
   by-spec."sinon"."*" =
     self.by-version."sinon"."1.10.3";
   by-version."sinon"."1.10.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sinon-1.10.3";
+    name = "sinon-1.10.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sinon/-/sinon-1.10.3.tgz";
@@ -17001,41 +18167,43 @@
     ];
     buildInputs =
       (self.nativeDeps."sinon" or []);
-    deps = [
-      self.by-version."formatio"."1.0.2"
-      self.by-version."util"."0.10.3"
-    ];
+    deps = {
+      "formatio-1.0.2" = self.by-version."formatio"."1.0.2";
+      "util-0.10.3" = self.by-version."util"."0.10.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sinon" ];
   };
   "sinon" = self.by-version."sinon"."1.10.3";
   by-spec."slasp"."*" =
-    self.by-version."slasp"."0.0.3";
-  by-version."slasp"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-slasp-0.0.3";
+    self.by-version."slasp"."0.0.4";
+  by-version."slasp"."0.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "slasp-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/slasp/-/slasp-0.0.3.tgz";
-        name = "slasp-0.0.3.tgz";
-        sha1 = "fb9aba74f30fc2f012d0ff2d34d4b5c678c11f9f";
+        url = "http://registry.npmjs.org/slasp/-/slasp-0.0.4.tgz";
+        name = "slasp-0.0.4.tgz";
+        sha1 = "9adc26ee729a0f95095851a5489f87a5258d57a9";
       })
     ];
     buildInputs =
       (self.nativeDeps."slasp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "slasp" ];
   };
-  "slasp" = self.by-version."slasp"."0.0.3";
-  by-spec."slasp"."0.0.3" =
-    self.by-version."slasp"."0.0.3";
+  "slasp" = self.by-version."slasp"."0.0.4";
+  by-spec."slasp"."0.0.4" =
+    self.by-version."slasp"."0.0.4";
   by-spec."sliced"."0.0.3" =
     self.by-version."sliced"."0.0.3";
   by-version."sliced"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sliced-0.0.3";
+    name = "sliced-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sliced/-/sliced-0.0.3.tgz";
@@ -17045,8 +18213,8 @@
     ];
     buildInputs =
       (self.nativeDeps."sliced" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sliced" ];
@@ -17054,7 +18222,8 @@
   by-spec."sliced"."0.0.4" =
     self.by-version."sliced"."0.0.4";
   by-version."sliced"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sliced-0.0.4";
+    name = "sliced-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sliced/-/sliced-0.0.4.tgz";
@@ -17064,8 +18233,8 @@
     ];
     buildInputs =
       (self.nativeDeps."sliced" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sliced" ];
@@ -17073,7 +18242,8 @@
   by-spec."sliced"."0.0.5" =
     self.by-version."sliced"."0.0.5";
   by-version."sliced"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sliced-0.0.5";
+    name = "sliced-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz";
@@ -17083,8 +18253,8 @@
     ];
     buildInputs =
       (self.nativeDeps."sliced" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sliced" ];
@@ -17092,7 +18262,8 @@
   by-spec."slide"."^1.1.3" =
     self.by-version."slide"."1.1.5";
   by-version."slide"."1.1.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-slide-1.1.5";
+    name = "slide-1.1.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/slide/-/slide-1.1.5.tgz";
@@ -17102,8 +18273,8 @@
     ];
     buildInputs =
       (self.nativeDeps."slide" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "slide" ];
@@ -17116,6 +18287,7 @@
     self.by-version."smartdc"."7.3.0";
   by-version."smartdc"."7.3.0" = lib.makeOverridable self.buildNodePackage {
     name = "smartdc-7.3.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/smartdc/-/smartdc-7.3.0.tgz";
@@ -17125,18 +18297,18 @@
     ];
     buildInputs =
       (self.nativeDeps."smartdc" or []);
-    deps = [
-      self.by-version."assert-plus"."0.1.2"
-      self.by-version."lru-cache"."2.2.0"
-      self.by-version."nopt"."2.0.0"
-      self.by-version."restify"."2.4.1"
-      self.by-version."bunyan"."0.21.1"
-      self.by-version."clone"."0.1.6"
-      self.by-version."smartdc-auth"."1.0.1"
-      self.by-version."cmdln"."1.3.2"
-      self.by-version."dashdash"."1.5.0"
-      self.by-version."vasync"."1.4.3"
-    ];
+    deps = {
+      "assert-plus-0.1.2" = self.by-version."assert-plus"."0.1.2";
+      "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-2.4.1" = self.by-version."restify"."2.4.1";
+      "bunyan-0.21.1" = self.by-version."bunyan"."0.21.1";
+      "clone-0.1.6" = self.by-version."clone"."0.1.6";
+      "smartdc-auth-1.0.1" = self.by-version."smartdc-auth"."1.0.1";
+      "cmdln-1.3.2" = self.by-version."cmdln"."1.3.2";
+      "dashdash-1.5.0" = self.by-version."dashdash"."1.5.0";
+      "vasync-1.4.3" = self.by-version."vasync"."1.4.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "smartdc" ];
@@ -17145,7 +18317,8 @@
   by-spec."smartdc-auth"."1.0.1" =
     self.by-version."smartdc-auth"."1.0.1";
   by-version."smartdc-auth"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-smartdc-auth-1.0.1";
+    name = "smartdc-auth-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/smartdc-auth/-/smartdc-auth-1.0.1.tgz";
@@ -17155,13 +18328,13 @@
     ];
     buildInputs =
       (self.nativeDeps."smartdc-auth" or []);
-    deps = [
-      self.by-version."assert-plus"."0.1.2"
-      self.by-version."clone"."0.1.5"
-      self.by-version."ssh-agent"."0.2.1"
-      self.by-version."once"."1.1.1"
-      self.by-version."vasync"."1.3.3"
-    ];
+    deps = {
+      "assert-plus-0.1.2" = self.by-version."assert-plus"."0.1.2";
+      "clone-0.1.5" = self.by-version."clone"."0.1.5";
+      "ssh-agent-0.2.1" = self.by-version."ssh-agent"."0.2.1";
+      "once-1.1.1" = self.by-version."once"."1.1.1";
+      "vasync-1.3.3" = self.by-version."vasync"."1.3.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "smartdc-auth" ];
@@ -17169,7 +18342,8 @@
   by-spec."sntp"."0.1.x" =
     self.by-version."sntp"."0.1.4";
   by-version."sntp"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sntp-0.1.4";
+    name = "sntp-0.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz";
@@ -17179,9 +18353,9 @@
     ];
     buildInputs =
       (self.nativeDeps."sntp" or []);
-    deps = [
-      self.by-version."hoek"."0.7.6"
-    ];
+    deps = {
+      "hoek-0.7.6" = self.by-version."hoek"."0.7.6";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sntp" ];
@@ -17189,7 +18363,8 @@
   by-spec."sntp"."0.2.x" =
     self.by-version."sntp"."0.2.4";
   by-version."sntp"."0.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sntp-0.2.4";
+    name = "sntp-0.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz";
@@ -17199,9 +18374,9 @@
     ];
     buildInputs =
       (self.nativeDeps."sntp" or []);
-    deps = [
-      self.by-version."hoek"."0.9.1"
-    ];
+    deps = {
+      "hoek-0.9.1" = self.by-version."hoek"."0.9.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sntp" ];
@@ -17209,7 +18384,8 @@
   by-spec."socket.io"."0.9.14" =
     self.by-version."socket.io"."0.9.14";
   by-version."socket.io"."0.9.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-socket.io-0.9.14";
+    name = "socket.io-0.9.14";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/socket.io/-/socket.io-0.9.14.tgz";
@@ -17219,12 +18395,12 @@
     ];
     buildInputs =
       (self.nativeDeps."socket.io" or []);
-    deps = [
-      self.by-version."socket.io-client"."0.9.11"
-      self.by-version."policyfile"."0.0.4"
-      self.by-version."base64id"."0.1.0"
-      self.by-version."redis"."0.7.3"
-    ];
+    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";
+      "redis-0.7.3" = self.by-version."redis"."0.7.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "socket.io" ];
@@ -17232,7 +18408,8 @@
   by-spec."socket.io"."~0.9.13" =
     self.by-version."socket.io"."0.9.17";
   by-version."socket.io"."0.9.17" = lib.makeOverridable self.buildNodePackage {
-    name = "node-socket.io-0.9.17";
+    name = "socket.io-0.9.17";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/socket.io/-/socket.io-0.9.17.tgz";
@@ -17242,12 +18419,12 @@
     ];
     buildInputs =
       (self.nativeDeps."socket.io" or []);
-    deps = [
-      self.by-version."socket.io-client"."0.9.16"
-      self.by-version."policyfile"."0.0.4"
-      self.by-version."base64id"."0.1.0"
-      self.by-version."redis"."0.7.3"
-    ];
+    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";
+      "redis-0.7.3" = self.by-version."redis"."0.7.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "socket.io" ];
@@ -17257,7 +18434,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-socket.io-client-0.9.11";
+    name = "socket.io-client-0.9.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.11.tgz";
@@ -17267,12 +18445,12 @@
     ];
     buildInputs =
       (self.nativeDeps."socket.io-client" or []);
-    deps = [
-      self.by-version."uglify-js"."1.2.5"
-      self.by-version."ws"."0.4.32"
-      self.by-version."xmlhttprequest"."1.4.2"
-      self.by-version."active-x-obfuscator"."0.0.1"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "socket.io-client" ];
@@ -17280,7 +18458,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-socket.io-client-0.9.16";
+    name = "socket.io-client-0.9.16";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz";
@@ -17290,12 +18469,12 @@
     ];
     buildInputs =
       (self.nativeDeps."socket.io-client" or []);
-    deps = [
-      self.by-version."uglify-js"."1.2.5"
-      self.by-version."ws"."0.4.32"
-      self.by-version."xmlhttprequest"."1.4.2"
-      self.by-version."active-x-obfuscator"."0.0.1"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "socket.io-client" ];
@@ -17303,7 +18482,8 @@
   by-spec."sockjs"."*" =
     self.by-version."sockjs"."0.3.9";
   by-version."sockjs"."0.3.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sockjs-0.3.9";
+    name = "sockjs-0.3.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sockjs/-/sockjs-0.3.9.tgz";
@@ -17313,10 +18493,10 @@
     ];
     buildInputs =
       (self.nativeDeps."sockjs" or []);
-    deps = [
-      self.by-version."node-uuid"."1.3.3"
-      self.by-version."faye-websocket"."0.7.2"
-    ];
+    deps = {
+      "node-uuid-1.3.3" = self.by-version."node-uuid"."1.3.3";
+      "faye-websocket-0.7.2" = self.by-version."faye-websocket"."0.7.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sockjs" ];
@@ -17325,7 +18505,8 @@
   by-spec."sorted-object"."~1.0.0" =
     self.by-version."sorted-object"."1.0.0";
   by-version."sorted-object"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sorted-object-1.0.0";
+    name = "sorted-object-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz";
@@ -17335,37 +18516,39 @@
     ];
     buildInputs =
       (self.nativeDeps."sorted-object" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sorted-object" ];
   };
   by-spec."source-map"."*" =
-    self.by-version."source-map"."0.1.38";
-  by-version."source-map"."0.1.38" = lib.makeOverridable self.buildNodePackage {
-    name = "node-source-map-0.1.38";
+    self.by-version."source-map"."0.1.39";
+  by-version."source-map"."0.1.39" = lib.makeOverridable self.buildNodePackage {
+    name = "source-map-0.1.39";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/source-map/-/source-map-0.1.38.tgz";
-        name = "source-map-0.1.38.tgz";
-        sha1 = "f93a6f9d96a5b9cf5494c043497d9542f9fa6b33";
+        url = "http://registry.npmjs.org/source-map/-/source-map-0.1.39.tgz";
+        name = "source-map-0.1.39.tgz";
+        sha1 = "64ad329c4761ab956ff7d011c6b205aeb66a2d4a";
       })
     ];
     buildInputs =
       (self.nativeDeps."source-map" or []);
-    deps = [
-      self.by-version."amdefine"."0.1.0"
-    ];
+    deps = {
+      "amdefine-0.1.0" = self.by-version."amdefine"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "source-map" ];
   };
-  "source-map" = self.by-version."source-map"."0.1.38";
+  "source-map" = self.by-version."source-map"."0.1.39";
   by-spec."source-map"."0.1.11" =
     self.by-version."source-map"."0.1.11";
   by-version."source-map"."0.1.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-source-map-0.1.11";
+    name = "source-map-0.1.11";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/source-map/-/source-map-0.1.11.tgz";
@@ -17375,9 +18558,9 @@
     ];
     buildInputs =
       (self.nativeDeps."source-map" or []);
-    deps = [
-      self.by-version."amdefine"."0.1.0"
-    ];
+    deps = {
+      "amdefine-0.1.0" = self.by-version."amdefine"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "source-map" ];
@@ -17385,7 +18568,8 @@
   by-spec."source-map"."0.1.31" =
     self.by-version."source-map"."0.1.31";
   by-version."source-map"."0.1.31" = lib.makeOverridable self.buildNodePackage {
-    name = "node-source-map-0.1.31";
+    name = "source-map-0.1.31";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz";
@@ -17395,9 +18579,9 @@
     ];
     buildInputs =
       (self.nativeDeps."source-map" or []);
-    deps = [
-      self.by-version."amdefine"."0.1.0"
-    ];
+    deps = {
+      "amdefine-0.1.0" = self.by-version."amdefine"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "source-map" ];
@@ -17405,7 +18589,8 @@
   by-spec."source-map"."0.1.34" =
     self.by-version."source-map"."0.1.34";
   by-version."source-map"."0.1.34" = lib.makeOverridable self.buildNodePackage {
-    name = "node-source-map-0.1.34";
+    name = "source-map-0.1.34";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz";
@@ -17415,31 +18600,32 @@
     ];
     buildInputs =
       (self.nativeDeps."source-map" or []);
-    deps = [
-      self.by-version."amdefine"."0.1.0"
-    ];
+    deps = {
+      "amdefine-0.1.0" = self.by-version."amdefine"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "source-map" ];
   };
   by-spec."source-map"."0.1.x" =
-    self.by-version."source-map"."0.1.38";
+    self.by-version."source-map"."0.1.39";
   by-spec."source-map".">= 0.1.2" =
-    self.by-version."source-map"."0.1.38";
+    self.by-version."source-map"."0.1.39";
   by-spec."source-map"."~ 0.1.8" =
-    self.by-version."source-map"."0.1.38";
+    self.by-version."source-map"."0.1.39";
   by-spec."source-map"."~0.1.30" =
-    self.by-version."source-map"."0.1.38";
+    self.by-version."source-map"."0.1.39";
   by-spec."source-map"."~0.1.31" =
-    self.by-version."source-map"."0.1.38";
+    self.by-version."source-map"."0.1.39";
   by-spec."source-map"."~0.1.33" =
-    self.by-version."source-map"."0.1.38";
+    self.by-version."source-map"."0.1.39";
   by-spec."source-map"."~0.1.7" =
-    self.by-version."source-map"."0.1.38";
+    self.by-version."source-map"."0.1.39";
   by-spec."spdy"."1.7.1" =
     self.by-version."spdy"."1.7.1";
   by-version."spdy"."1.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-spdy-1.7.1";
+    name = "spdy-1.7.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/spdy/-/spdy-1.7.1.tgz";
@@ -17449,8 +18635,8 @@
     ];
     buildInputs =
       (self.nativeDeps."spdy" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "spdy" ];
@@ -17458,7 +18644,8 @@
   by-spec."sprintf"."~0.1.2" =
     self.by-version."sprintf"."0.1.4";
   by-version."sprintf"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sprintf-0.1.4";
+    name = "sprintf-0.1.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sprintf/-/sprintf-0.1.4.tgz";
@@ -17468,8 +18655,8 @@
     ];
     buildInputs =
       (self.nativeDeps."sprintf" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sprintf" ];
@@ -17480,6 +18667,7 @@
     self.by-version."ssh-agent"."0.2.1";
   by-version."ssh-agent"."0.2.1" = lib.makeOverridable self.buildNodePackage {
     name = "ssh-agent-0.2.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ssh-agent/-/ssh-agent-0.2.1.tgz";
@@ -17489,10 +18677,10 @@
     ];
     buildInputs =
       (self.nativeDeps."ssh-agent" or []);
-    deps = [
-      self.by-version."ctype"."0.5.0"
-      self.by-version."posix-getopt"."1.0.0"
-    ];
+    deps = {
+      "ctype-0.5.0" = self.by-version."ctype"."0.5.0";
+      "posix-getopt-1.0.0" = self.by-version."posix-getopt"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ssh-agent" ];
@@ -17500,7 +18688,8 @@
   by-spec."stack-trace"."0.0.7" =
     self.by-version."stack-trace"."0.0.7";
   by-version."stack-trace"."0.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stack-trace-0.0.7";
+    name = "stack-trace-0.0.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz";
@@ -17510,8 +18699,8 @@
     ];
     buildInputs =
       (self.nativeDeps."stack-trace" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stack-trace" ];
@@ -17519,7 +18708,8 @@
   by-spec."stack-trace"."0.0.x" =
     self.by-version."stack-trace"."0.0.9";
   by-version."stack-trace"."0.0.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stack-trace-0.0.9";
+    name = "stack-trace-0.0.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz";
@@ -17529,8 +18719,8 @@
     ];
     buildInputs =
       (self.nativeDeps."stack-trace" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stack-trace" ];
@@ -17538,7 +18728,8 @@
   by-spec."stackdriver-statsd-backend"."*" =
     self.by-version."stackdriver-statsd-backend"."0.2.2";
   by-version."stackdriver-statsd-backend"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stackdriver-statsd-backend-0.2.2";
+    name = "stackdriver-statsd-backend-0.2.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stackdriver-statsd-backend/-/stackdriver-statsd-backend-0.2.2.tgz";
@@ -17548,8 +18739,8 @@
     ];
     buildInputs =
       (self.nativeDeps."stackdriver-statsd-backend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stackdriver-statsd-backend" ];
@@ -17559,6 +18750,7 @@
     self.by-version."statsd"."0.7.1";
   by-version."statsd"."0.7.1" = lib.makeOverridable self.buildNodePackage {
     name = "statsd-0.7.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/statsd/-/statsd-0.7.1.tgz";
@@ -17568,20 +18760,42 @@
     ];
     buildInputs =
       (self.nativeDeps."statsd" or []);
-    deps = [
-      self.by-version."node-syslog"."1.1.7"
-      self.by-version."hashring"."1.0.1"
-      self.by-version."winser"."0.1.6"
-    ];
+    deps = {
+      "node-syslog-1.1.7" = self.by-version."node-syslog"."1.1.7";
+      "hashring-1.0.1" = self.by-version."hashring"."1.0.1";
+      "winser-0.1.6" = self.by-version."winser"."0.1.6";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "statsd" ];
   };
   "statsd" = self.by-version."statsd"."0.7.1";
+  by-spec."statsd-influxdb-backend"."*" =
+    self.by-version."statsd-influxdb-backend"."0.3.0";
+  by-version."statsd-influxdb-backend"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "statsd-influxdb-backend-0.3.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/statsd-influxdb-backend/-/statsd-influxdb-backend-0.3.0.tgz";
+        name = "statsd-influxdb-backend-0.3.0.tgz";
+        sha1 = "f66197570545c04743c8637af1fbbc914096ec44";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."statsd-influxdb-backend" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "statsd-influxdb-backend" ];
+  };
+  "statsd-influxdb-backend" = self.by-version."statsd-influxdb-backend"."0.3.0";
   by-spec."statsd-librato-backend"."*" =
     self.by-version."statsd-librato-backend"."0.1.3";
   by-version."statsd-librato-backend"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-statsd-librato-backend-0.1.3";
+    name = "statsd-librato-backend-0.1.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/statsd-librato-backend/-/statsd-librato-backend-0.1.3.tgz";
@@ -17591,36 +18805,18 @@
     ];
     buildInputs =
       (self.nativeDeps."statsd-librato-backend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "statsd-librato-backend" ];
   };
   "statsd-librato-backend" = self.by-version."statsd-librato-backend"."0.1.3";
-  by-spec."statuses"."~1.0.1" =
-    self.by-version."statuses"."1.0.4";
-  by-version."statuses"."1.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-statuses-1.0.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/statuses/-/statuses-1.0.4.tgz";
-        name = "statuses-1.0.4.tgz";
-        sha1 = "a8b203f645cf475a66426f6be690205c85f3ebdd";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."statuses" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "statuses" ];
-  };
   by-spec."stream-browserify"."^1.0.0" =
     self.by-version."stream-browserify"."1.0.0";
   by-version."stream-browserify"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-browserify-1.0.0";
+    name = "stream-browserify-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz";
@@ -17630,10 +18826,10 @@
     ];
     buildInputs =
       (self.nativeDeps."stream-browserify" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-      self.by-version."readable-stream"."1.1.13"
-    ];
+    deps = {
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stream-browserify" ];
@@ -17641,7 +18837,8 @@
   by-spec."stream-combiner"."~0.0.2" =
     self.by-version."stream-combiner"."0.0.4";
   by-version."stream-combiner"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-combiner-0.0.4";
+    name = "stream-combiner-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz";
@@ -17651,9 +18848,9 @@
     ];
     buildInputs =
       (self.nativeDeps."stream-combiner" or []);
-    deps = [
-      self.by-version."duplexer"."0.1.1"
-    ];
+    deps = {
+      "duplexer-0.1.1" = self.by-version."duplexer"."0.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stream-combiner" ];
@@ -17661,7 +18858,8 @@
   by-spec."stream-combiner2"."~1.0.0" =
     self.by-version."stream-combiner2"."1.0.1";
   by-version."stream-combiner2"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-combiner2-1.0.1";
+    name = "stream-combiner2-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.0.1.tgz";
@@ -17671,18 +18869,39 @@
     ];
     buildInputs =
       (self.nativeDeps."stream-combiner2" or []);
-    deps = [
-      self.by-version."duplexer2"."0.0.2"
-      self.by-version."through2"."0.5.1"
-    ];
+    deps = {
+      "duplexer2-0.0.2" = self.by-version."duplexer2"."0.0.2";
+      "through2-0.5.1" = self.by-version."through2"."0.5.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stream-combiner2" ];
   };
+  by-spec."stream-consume"."~0.1.0" =
+    self.by-version."stream-consume"."0.1.0";
+  by-version."stream-consume"."0.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "stream-consume-0.1.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz";
+        name = "stream-consume-0.1.0.tgz";
+        sha1 = "a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."stream-consume" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "stream-consume" ];
+  };
   by-spec."stream-counter"."^1.0.0" =
     self.by-version."stream-counter"."1.0.0";
   by-version."stream-counter"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-counter-1.0.0";
+    name = "stream-counter-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz";
@@ -17692,8 +18911,8 @@
     ];
     buildInputs =
       (self.nativeDeps."stream-counter" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stream-counter" ];
@@ -17701,7 +18920,8 @@
   by-spec."stream-counter"."~0.2.0" =
     self.by-version."stream-counter"."0.2.0";
   by-version."stream-counter"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-counter-0.2.0";
+    name = "stream-counter-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz";
@@ -17711,9 +18931,9 @@
     ];
     buildInputs =
       (self.nativeDeps."stream-counter" or []);
-    deps = [
-      self.by-version."readable-stream"."1.1.13"
-    ];
+    deps = {
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stream-counter" ];
@@ -17721,7 +18941,8 @@
   by-spec."stream-splicer"."^1.1.0" =
     self.by-version."stream-splicer"."1.3.0";
   by-version."stream-splicer"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-splicer-1.3.0";
+    name = "stream-splicer-1.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stream-splicer/-/stream-splicer-1.3.0.tgz";
@@ -17731,14 +18952,14 @@
     ];
     buildInputs =
       (self.nativeDeps."stream-splicer" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-      self.by-version."isarray"."0.0.1"
-      self.by-version."readable-stream"."1.1.13"
-      self.by-version."readable-wrap"."1.0.0"
-      self.by-version."through2"."1.1.1"
-      self.by-version."indexof"."0.0.1"
-    ];
+    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.13" = self.by-version."readable-stream"."1.1.13";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stream-splicer" ];
@@ -17746,7 +18967,8 @@
   by-spec."stream-splitter-transform"."*" =
     self.by-version."stream-splitter-transform"."0.0.4";
   by-version."stream-splitter-transform"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-splitter-transform-0.0.4";
+    name = "stream-splitter-transform-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stream-splitter-transform/-/stream-splitter-transform-0.0.4.tgz";
@@ -17756,9 +18978,9 @@
     ];
     buildInputs =
       (self.nativeDeps."stream-splitter-transform" or []);
-    deps = [
-      self.by-version."buffertools"."1.1.1"
-    ];
+    deps = {
+      "buffertools-1.1.1" = self.by-version."buffertools"."1.1.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stream-splitter-transform" ];
@@ -17767,7 +18989,8 @@
   by-spec."string"."1.6.1" =
     self.by-version."string"."1.6.1";
   by-version."string"."1.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-string-1.6.1";
+    name = "string-1.6.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/string/-/string-1.6.1.tgz";
@@ -17777,8 +19000,8 @@
     ];
     buildInputs =
       (self.nativeDeps."string" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "string" ];
@@ -17786,7 +19009,8 @@
   by-spec."string_decoder"."~0.0.0" =
     self.by-version."string_decoder"."0.0.1";
   by-version."string_decoder"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-string_decoder-0.0.1";
+    name = "string_decoder-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/string_decoder/-/string_decoder-0.0.1.tgz";
@@ -17796,27 +19020,28 @@
     ];
     buildInputs =
       (self.nativeDeps."string_decoder" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "string_decoder" ];
   };
   by-spec."string_decoder"."~0.10.x" =
-    self.by-version."string_decoder"."0.10.25";
-  by-version."string_decoder"."0.10.25" = lib.makeOverridable self.buildNodePackage {
-    name = "node-string_decoder-0.10.25";
+    self.by-version."string_decoder"."0.10.31";
+  by-version."string_decoder"."0.10.31" = lib.makeOverridable self.buildNodePackage {
+    name = "string_decoder-0.10.31";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25.tgz";
-        name = "string_decoder-0.10.25.tgz";
-        sha1 = "668c9da4f8efbdc937a4a6b6bf1cfbec4e9a82e2";
+        url = "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+        name = "string_decoder-0.10.31.tgz";
+        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
       })
     ];
     buildInputs =
       (self.nativeDeps."string_decoder" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "string_decoder" ];
@@ -17824,7 +19049,8 @@
   by-spec."stringstream"."~0.0.4" =
     self.by-version."stringstream"."0.0.4";
   by-version."stringstream"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stringstream-0.0.4";
+    name = "stringstream-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz";
@@ -17834,48 +19060,50 @@
     ];
     buildInputs =
       (self.nativeDeps."stringstream" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stringstream" ];
   };
-  by-spec."strip-ansi"."^0.2.1" =
-    self.by-version."strip-ansi"."0.2.2";
-  by-version."strip-ansi"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "strip-ansi-0.2.2";
+  by-spec."strip-ansi"."^0.3.0" =
+    self.by-version."strip-ansi"."0.3.0";
+  by-version."strip-ansi"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "strip-ansi-0.3.0";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.2.2.tgz";
-        name = "strip-ansi-0.2.2.tgz";
-        sha1 = "854d290c981525fc8c397a910b025ae2d54ffc08";
+        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz";
+        name = "strip-ansi-0.3.0.tgz";
+        sha1 = "25f48ea22ca79187f3174a4db8759347bb126220";
       })
     ];
     buildInputs =
       (self.nativeDeps."strip-ansi" or []);
-    deps = [
-      self.by-version."ansi-regex"."0.1.0"
-    ];
+    deps = {
+      "ansi-regex-0.2.1" = self.by-version."ansi-regex"."0.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "strip-ansi" ];
   };
-  by-spec."strip-ansi"."^0.3.0" =
-    self.by-version."strip-ansi"."0.3.0";
-  by-version."strip-ansi"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "strip-ansi-0.3.0";
+  by-spec."strip-ansi"."^1.0.0" =
+    self.by-version."strip-ansi"."1.0.0";
+  by-version."strip-ansi"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "strip-ansi-1.0.0";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz";
-        name = "strip-ansi-0.3.0.tgz";
-        sha1 = "25f48ea22ca79187f3174a4db8759347bb126220";
+        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-1.0.0.tgz";
+        name = "strip-ansi-1.0.0.tgz";
+        sha1 = "6c021321d6ece161a3c608fbab268c7328901c73";
       })
     ];
     buildInputs =
       (self.nativeDeps."strip-ansi" or []);
-    deps = [
-      self.by-version."ansi-regex"."0.2.1"
-    ];
+    deps = {
+      "ansi-regex-0.2.1" = self.by-version."ansi-regex"."0.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "strip-ansi" ];
@@ -17884,6 +19112,7 @@
     self.by-version."strip-ansi"."0.1.1";
   by-version."strip-ansi"."0.1.1" = lib.makeOverridable self.buildNodePackage {
     name = "strip-ansi-0.1.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz";
@@ -17893,29 +19122,30 @@
     ];
     buildInputs =
       (self.nativeDeps."strip-ansi" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "strip-ansi" ];
   };
-  by-spec."strip-bom"."^0.3.0" =
-    self.by-version."strip-bom"."0.3.1";
-  by-version."strip-bom"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "strip-bom-0.3.1";
+  by-spec."strip-bom"."^1.0.0" =
+    self.by-version."strip-bom"."1.0.0";
+  by-version."strip-bom"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "strip-bom-1.0.0";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/strip-bom/-/strip-bom-0.3.1.tgz";
-        name = "strip-bom-0.3.1.tgz";
-        sha1 = "9e8a39eff456ff9abc2f059f5f2225bb0f3f7ca5";
+        url = "http://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz";
+        name = "strip-bom-1.0.0.tgz";
+        sha1 = "85b8862f3844b5a6d5ec8467a93598173a36f794";
       })
     ];
     buildInputs =
       (self.nativeDeps."strip-bom" or []);
-    deps = [
-      self.by-version."first-chunk-stream"."0.1.0"
-      self.by-version."is-utf8"."0.2.0"
-    ];
+    deps = {
+      "first-chunk-stream-1.0.0" = self.by-version."first-chunk-stream"."1.0.0";
+      "is-utf8-0.2.0" = self.by-version."is-utf8"."0.2.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "strip-bom" ];
@@ -17924,6 +19154,7 @@
     self.by-version."strip-json-comments"."0.1.3";
   by-version."strip-json-comments"."0.1.3" = lib.makeOverridable self.buildNodePackage {
     name = "strip-json-comments-0.1.3";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz";
@@ -17933,8 +19164,8 @@
     ];
     buildInputs =
       (self.nativeDeps."strip-json-comments" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "strip-json-comments" ];
@@ -17942,7 +19173,8 @@
   by-spec."strong-data-uri"."~0.1.0" =
     self.by-version."strong-data-uri"."0.1.1";
   by-version."strong-data-uri"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-strong-data-uri-0.1.1";
+    name = "strong-data-uri-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/strong-data-uri/-/strong-data-uri-0.1.1.tgz";
@@ -17952,43 +19184,45 @@
     ];
     buildInputs =
       (self.nativeDeps."strong-data-uri" or []);
-    deps = [
-      self.by-version."truncate"."1.0.2"
-    ];
+    deps = {
+      "truncate-1.0.2" = self.by-version."truncate"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "strong-data-uri" ];
   };
   by-spec."stylus"."*" =
-    self.by-version."stylus"."0.48.0";
-  by-version."stylus"."0.48.0" = lib.makeOverridable self.buildNodePackage {
-    name = "stylus-0.48.0";
+    self.by-version."stylus"."0.48.1";
+  by-version."stylus"."0.48.1" = lib.makeOverridable self.buildNodePackage {
+    name = "stylus-0.48.1";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/stylus/-/stylus-0.48.0.tgz";
-        name = "stylus-0.48.0.tgz";
-        sha1 = "a8de8341b1cd89efb9161050bf87a72d65485795";
+        url = "http://registry.npmjs.org/stylus/-/stylus-0.48.1.tgz";
+        name = "stylus-0.48.1.tgz";
+        sha1 = "612c1b8806ce2c35f37cd3a57ad932c883f7ff10";
       })
     ];
     buildInputs =
       (self.nativeDeps."stylus" or []);
-    deps = [
-      self.by-version."css-parse"."1.7.0"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."debug"."1.0.4"
-      self.by-version."sax"."0.5.8"
-      self.by-version."glob"."3.2.11"
-      self.by-version."source-map"."0.1.38"
-    ];
+    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.0.0" = self.by-version."debug"."2.0.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.39" = self.by-version."source-map"."0.1.39";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stylus" ];
   };
-  "stylus" = self.by-version."stylus"."0.48.0";
+  "stylus" = self.by-version."stylus"."0.48.1";
   by-spec."stylus"."0.42.2" =
     self.by-version."stylus"."0.42.2";
   by-version."stylus"."0.42.2" = lib.makeOverridable self.buildNodePackage {
     name = "stylus-0.42.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/stylus/-/stylus-0.42.2.tgz";
@@ -17998,13 +19232,13 @@
     ];
     buildInputs =
       (self.nativeDeps."stylus" or []);
-    deps = [
-      self.by-version."css-parse"."1.7.0"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."debug"."1.0.4"
-      self.by-version."sax"."0.5.8"
-      self.by-version."glob"."3.2.11"
-    ];
+    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.0.0" = self.by-version."debug"."2.0.0";
+      "sax-0.5.8" = self.by-version."sax"."0.5.8";
+      "glob-3.2.11" = self.by-version."glob"."3.2.11";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "stylus" ];
@@ -18012,7 +19246,8 @@
   by-spec."subarg"."0.0.1" =
     self.by-version."subarg"."0.0.1";
   by-version."subarg"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-subarg-0.0.1";
+    name = "subarg-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/subarg/-/subarg-0.0.1.tgz";
@@ -18022,9 +19257,9 @@
     ];
     buildInputs =
       (self.nativeDeps."subarg" or []);
-    deps = [
-      self.by-version."minimist"."0.0.10"
-    ];
+    deps = {
+      "minimist-0.0.10" = self.by-version."minimist"."0.0.10";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "subarg" ];
@@ -18032,7 +19267,8 @@
   by-spec."superagent"."0.18.0" =
     self.by-version."superagent"."0.18.0";
   by-version."superagent"."0.18.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-superagent-0.18.0";
+    name = "superagent-0.18.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/superagent/-/superagent-0.18.0.tgz";
@@ -18042,19 +19278,19 @@
     ];
     buildInputs =
       (self.nativeDeps."superagent" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."formidable"."1.0.14"
-      self.by-version."mime"."1.2.5"
-      self.by-version."component-emitter"."1.1.2"
-      self.by-version."methods"."0.0.1"
-      self.by-version."cookiejar"."1.3.2"
-      self.by-version."debug"."0.7.4"
-      self.by-version."reduce-component"."1.0.1"
-      self.by-version."extend"."1.2.1"
-      self.by-version."form-data"."0.1.2"
-      self.by-version."readable-stream"."1.0.27-1"
-    ];
+    deps = {
+      "qs-0.6.6" = self.by-version."qs"."0.6.6";
+      "formidable-1.0.14" = self.by-version."formidable"."1.0.14";
+      "mime-1.2.5" = self.by-version."mime"."1.2.5";
+      "component-emitter-1.1.2" = self.by-version."component-emitter"."1.1.2";
+      "methods-0.0.1" = self.by-version."methods"."0.0.1";
+      "cookiejar-1.3.2" = self.by-version."cookiejar"."1.3.2";
+      "debug-0.7.4" = self.by-version."debug"."0.7.4";
+      "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.2" = self.by-version."form-data"."0.1.2";
+      "readable-stream-1.0.27-1" = self.by-version."readable-stream"."1.0.27-1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "superagent" ];
@@ -18062,7 +19298,8 @@
   by-spec."superagent"."~0.13.0" =
     self.by-version."superagent"."0.13.0";
   by-version."superagent"."0.13.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-superagent-0.13.0";
+    name = "superagent-0.13.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/superagent/-/superagent-0.13.0.tgz";
@@ -18072,22 +19309,23 @@
     ];
     buildInputs =
       (self.nativeDeps."superagent" or []);
-    deps = [
-      self.by-version."qs"."0.5.2"
-      self.by-version."formidable"."1.0.9"
-      self.by-version."mime"."1.2.5"
-      self.by-version."emitter-component"."0.0.6"
-      self.by-version."methods"."0.0.1"
-      self.by-version."cookiejar"."1.3.0"
-    ];
+    deps = {
+      "qs-0.5.2" = self.by-version."qs"."0.5.2";
+      "formidable-1.0.9" = self.by-version."formidable"."1.0.9";
+      "mime-1.2.5" = self.by-version."mime"."1.2.5";
+      "emitter-component-0.0.6" = self.by-version."emitter-component"."0.0.6";
+      "methods-0.0.1" = self.by-version."methods"."0.0.1";
+      "cookiejar-1.3.0" = self.by-version."cookiejar"."1.3.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "superagent" ];
   };
-  by-spec."superagent"."~0.18.0" =
+  by-spec."superagent"."~0.18.2" =
     self.by-version."superagent"."0.18.2";
   by-version."superagent"."0.18.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-superagent-0.18.2";
+    name = "superagent-0.18.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/superagent/-/superagent-0.18.2.tgz";
@@ -18097,19 +19335,19 @@
     ];
     buildInputs =
       (self.nativeDeps."superagent" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."formidable"."1.0.14"
-      self.by-version."mime"."1.2.11"
-      self.by-version."component-emitter"."1.1.2"
-      self.by-version."methods"."1.0.1"
-      self.by-version."cookiejar"."2.0.1"
-      self.by-version."debug"."1.0.4"
-      self.by-version."reduce-component"."1.0.1"
-      self.by-version."extend"."1.2.1"
-      self.by-version."form-data"."0.1.3"
-      self.by-version."readable-stream"."1.0.27-1"
-    ];
+    deps = {
+      "qs-0.6.6" = self.by-version."qs"."0.6.6";
+      "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-1.0.4" = self.by-version."debug"."1.0.4";
+      "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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "superagent" ];
@@ -18117,7 +19355,8 @@
   by-spec."supertest"."*" =
     self.by-version."supertest"."0.13.0";
   by-version."supertest"."0.13.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-supertest-0.13.0";
+    name = "supertest-0.13.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/supertest/-/supertest-0.13.0.tgz";
@@ -18127,10 +19366,10 @@
     ];
     buildInputs =
       (self.nativeDeps."supertest" or []);
-    deps = [
-      self.by-version."superagent"."0.18.0"
-      self.by-version."methods"."1.0.0"
-    ];
+    deps = {
+      "superagent-0.18.0" = self.by-version."superagent"."0.18.0";
+      "methods-1.0.0" = self.by-version."methods"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "supertest" ];
@@ -18140,6 +19379,7 @@
     self.by-version."supports-color"."0.2.0";
   by-version."supports-color"."0.2.0" = lib.makeOverridable self.buildNodePackage {
     name = "supports-color-0.2.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz";
@@ -18149,8 +19389,8 @@
     ];
     buildInputs =
       (self.nativeDeps."supports-color" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "supports-color" ];
@@ -18158,7 +19398,8 @@
   by-spec."swig"."0.14.x" =
     self.by-version."swig"."0.14.0";
   by-version."swig"."0.14.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-swig-0.14.0";
+    name = "swig-0.14.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/swig/-/swig-0.14.0.tgz";
@@ -18168,9 +19409,9 @@
     ];
     buildInputs =
       (self.nativeDeps."swig" or []);
-    deps = [
-      self.by-version."underscore"."1.6.0"
-    ];
+    deps = {
+      "underscore-1.7.0" = self.by-version."underscore"."1.7.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "swig" ];
@@ -18179,7 +19420,8 @@
   by-spec."sylvester".">= 0.0.12" =
     self.by-version."sylvester"."0.0.21";
   by-version."sylvester"."0.0.21" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sylvester-0.0.21";
+    name = "sylvester-0.0.21";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/sylvester/-/sylvester-0.0.21.tgz";
@@ -18189,8 +19431,8 @@
     ];
     buildInputs =
       (self.nativeDeps."sylvester" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "sylvester" ];
@@ -18200,7 +19442,8 @@
   by-spec."syntax-error"."^1.1.1" =
     self.by-version."syntax-error"."1.1.1";
   by-version."syntax-error"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-syntax-error-1.1.1";
+    name = "syntax-error-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/syntax-error/-/syntax-error-1.1.1.tgz";
@@ -18210,17 +19453,38 @@
     ];
     buildInputs =
       (self.nativeDeps."syntax-error" or []);
-    deps = [
-      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
-    ];
+    deps = {
+      "esprima-fb-3001.1.0-dev-harmony-fb" = self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "syntax-error" ];
   };
+  by-spec."tabtab"."git+https://github.com/mixu/node-tabtab.git" =
+    self.by-version."tabtab"."0.0.2";
+  by-version."tabtab"."0.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "tabtab-0.0.2";
+    bin = false;
+    src = [
+      (fetchgit {
+        url = "https://github.com/mixu/node-tabtab.git";
+        rev = "94af2b878b174527b6636aec88acd46979247755";
+        sha256 = "7be2daa2fe7893478d38d90b213de359c9a662a7ef06ad9cbfaac11ad399a149";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."tabtab" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "tabtab" ];
+  };
   by-spec."tape"."~0.2.2" =
     self.by-version."tape"."0.2.2";
   by-version."tape"."0.2.2" = lib.makeOverridable self.buildNodePackage {
     name = "tape-0.2.2";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tape/-/tape-0.2.2.tgz";
@@ -18230,11 +19494,11 @@
     ];
     buildInputs =
       (self.nativeDeps."tape" or []);
-    deps = [
-      self.by-version."jsonify"."0.0.0"
-      self.by-version."deep-equal"."0.0.0"
-      self.by-version."defined"."0.0.0"
-    ];
+    deps = {
+      "jsonify-0.0.0" = self.by-version."jsonify"."0.0.0";
+      "deep-equal-0.0.0" = self.by-version."deep-equal"."0.0.0";
+      "defined-0.0.0" = self.by-version."defined"."0.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tape" ];
@@ -18242,7 +19506,8 @@
   by-spec."tar"."*" =
     self.by-version."tar"."1.0.1";
   by-version."tar"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tar-1.0.1";
+    name = "tar-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tar/-/tar-1.0.1.tgz";
@@ -18252,42 +19517,21 @@
     ];
     buildInputs =
       (self.nativeDeps."tar" or []);
-    deps = [
-      self.by-version."block-stream"."0.0.7"
-      self.by-version."fstream"."1.0.2"
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "block-stream-0.0.7" = self.by-version."block-stream"."0.0.7";
+      "fstream-1.0.2" = self.by-version."fstream"."1.0.2";
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tar" ];
   };
   "tar" = self.by-version."tar"."1.0.1";
-  by-spec."tar"."0" =
-    self.by-version."tar"."0.1.20";
-  by-version."tar"."0.1.20" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tar-0.1.20";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/tar/-/tar-0.1.20.tgz";
-        name = "tar-0.1.20.tgz";
-        sha1 = "42940bae5b5f22c74483699126f9f3f27449cb13";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."tar" or []);
-    deps = [
-      self.by-version."block-stream"."0.0.7"
-      self.by-version."fstream"."0.1.31"
-      self.by-version."inherits"."2.0.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "tar" ];
-  };
   by-spec."tar"."0.1.17" =
     self.by-version."tar"."0.1.17";
   by-version."tar"."0.1.17" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tar-0.1.17";
+    name = "tar-0.1.17";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tar/-/tar-0.1.17.tgz";
@@ -18297,23 +19541,24 @@
     ];
     buildInputs =
       (self.nativeDeps."tar" or []);
-    deps = [
-      self.by-version."inherits"."1.0.0"
-      self.by-version."block-stream"."0.0.7"
-      self.by-version."fstream"."0.1.31"
-    ];
+    deps = {
+      "inherits-1.0.0" = self.by-version."inherits"."1.0.0";
+      "block-stream-0.0.7" = self.by-version."block-stream"."0.0.7";
+      "fstream-0.1.31" = self.by-version."fstream"."0.1.31";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tar" ];
   };
   by-spec."tar"."^1.0.0" =
     self.by-version."tar"."1.0.1";
-  by-spec."tar"."~0.1.20" =
-    self.by-version."tar"."0.1.20";
+  by-spec."tar"."~1.0.1" =
+    self.by-version."tar"."1.0.1";
   by-spec."tar-stream"."~0.4.0" =
     self.by-version."tar-stream"."0.4.5";
   by-version."tar-stream"."0.4.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tar-stream-0.4.5";
+    name = "tar-stream-0.4.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tar-stream/-/tar-stream-0.4.5.tgz";
@@ -18323,12 +19568,12 @@
     ];
     buildInputs =
       (self.nativeDeps."tar-stream" or []);
-    deps = [
-      self.by-version."bl"."0.9.1"
-      self.by-version."end-of-stream"."1.0.0"
-      self.by-version."readable-stream"."1.1.13"
-      self.by-version."xtend"."4.0.0"
-    ];
+    deps = {
+      "bl-0.9.3" = self.by-version."bl"."0.9.3";
+      "end-of-stream-1.1.0" = self.by-version."end-of-stream"."1.1.0";
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+      "xtend-4.0.0" = self.by-version."xtend"."4.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tar-stream" ];
@@ -18336,7 +19581,8 @@
   by-spec."temp"."*" =
     self.by-version."temp"."0.8.1";
   by-version."temp"."0.8.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-temp-0.8.1";
+    name = "temp-0.8.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/temp/-/temp-0.8.1.tgz";
@@ -18346,9 +19592,9 @@
     ];
     buildInputs =
       (self.nativeDeps."temp" or []);
-    deps = [
-      self.by-version."rimraf"."2.2.8"
-    ];
+    deps = {
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "temp" ];
@@ -18357,7 +19603,8 @@
   by-spec."temp"."0.6.0" =
     self.by-version."temp"."0.6.0";
   by-version."temp"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-temp-0.6.0";
+    name = "temp-0.6.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/temp/-/temp-0.6.0.tgz";
@@ -18367,22 +19614,23 @@
     ];
     buildInputs =
       (self.nativeDeps."temp" or []);
-    deps = [
-      self.by-version."rimraf"."2.1.4"
-      self.by-version."osenv"."0.0.3"
-    ];
+    deps = {
+      "rimraf-2.1.4" = self.by-version."rimraf"."2.1.4";
+      "osenv-0.0.3" = self.by-version."osenv"."0.0.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "temp" ];
   };
   by-spec."temp"."~0.6.0" =
     self.by-version."temp"."0.6.0";
-  by-spec."temp"."~0.8.0" =
+  by-spec."temp"."~0.8.1" =
     self.by-version."temp"."0.8.1";
   by-spec."text-table"."~0.2.0" =
     self.by-version."text-table"."0.2.0";
   by-version."text-table"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-text-table-0.2.0";
+    name = "text-table-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
@@ -18392,8 +19640,8 @@
     ];
     buildInputs =
       (self.nativeDeps."text-table" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "text-table" ];
@@ -18401,7 +19649,8 @@
   by-spec."throttleit"."~0.0.2" =
     self.by-version."throttleit"."0.0.2";
   by-version."throttleit"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-throttleit-0.0.2";
+    name = "throttleit-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz";
@@ -18411,8 +19660,8 @@
     ];
     buildInputs =
       (self.nativeDeps."throttleit" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "throttleit" ];
@@ -18420,7 +19669,8 @@
   by-spec."through".">=2.2.7 <3" =
     self.by-version."through"."2.3.4";
   by-version."through"."2.3.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-through-2.3.4";
+    name = "through-2.3.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/through/-/through-2.3.4.tgz";
@@ -18430,8 +19680,8 @@
     ];
     buildInputs =
       (self.nativeDeps."through" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "through" ];
@@ -18441,7 +19691,8 @@
   by-spec."through2"."^0.5.1" =
     self.by-version."through2"."0.5.1";
   by-version."through2"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-through2-0.5.1";
+    name = "through2-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/through2/-/through2-0.5.1.tgz";
@@ -18451,10 +19702,10 @@
     ];
     buildInputs =
       (self.nativeDeps."through2" or []);
-    deps = [
-      self.by-version."readable-stream"."1.0.31"
-      self.by-version."xtend"."3.0.0"
-    ];
+    deps = {
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+      "xtend-3.0.0" = self.by-version."xtend"."3.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "through2" ];
@@ -18462,7 +19713,8 @@
   by-spec."through2"."^0.6.1" =
     self.by-version."through2"."0.6.1";
   by-version."through2"."0.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-through2-0.6.1";
+    name = "through2-0.6.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/through2/-/through2-0.6.1.tgz";
@@ -18472,10 +19724,10 @@
     ];
     buildInputs =
       (self.nativeDeps."through2" or []);
-    deps = [
-      self.by-version."readable-stream"."1.0.31"
-      self.by-version."xtend"."4.0.0"
-    ];
+    deps = {
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+      "xtend-4.0.0" = self.by-version."xtend"."4.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "through2" ];
@@ -18483,7 +19735,8 @@
   by-spec."through2"."^1.0.0" =
     self.by-version."through2"."1.1.1";
   by-version."through2"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-through2-1.1.1";
+    name = "through2-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/through2/-/through2-1.1.1.tgz";
@@ -18493,10 +19746,10 @@
     ];
     buildInputs =
       (self.nativeDeps."through2" or []);
-    deps = [
-      self.by-version."readable-stream"."1.1.13"
-      self.by-version."xtend"."4.0.0"
-    ];
+    deps = {
+      "readable-stream-1.1.13" = self.by-version."readable-stream"."1.1.13";
+      "xtend-4.0.0" = self.by-version."xtend"."4.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "through2" ];
@@ -18504,7 +19757,8 @@
   by-spec."through2"."~0.4.1" =
     self.by-version."through2"."0.4.2";
   by-version."through2"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-through2-0.4.2";
+    name = "through2-0.4.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/through2/-/through2-0.4.2.tgz";
@@ -18514,32 +19768,54 @@
     ];
     buildInputs =
       (self.nativeDeps."through2" or []);
-    deps = [
-      self.by-version."readable-stream"."1.0.31"
-      self.by-version."xtend"."2.1.2"
-    ];
+    deps = {
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+      "xtend-2.1.2" = self.by-version."xtend"."2.1.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "through2" ];
   };
   by-spec."through2"."~0.5.1" =
     self.by-version."through2"."0.5.1";
+  by-spec."tildify"."^1.0.0" =
+    self.by-version."tildify"."1.0.0";
+  by-version."tildify"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "tildify-1.0.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/tildify/-/tildify-1.0.0.tgz";
+        name = "tildify-1.0.0.tgz";
+        sha1 = "2a021db5e8fbde0a8f8b4df37adaa8fb1d39d7dd";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."tildify" or []);
+    deps = {
+      "user-home-1.0.0" = self.by-version."user-home"."1.0.0";
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "tildify" ];
+  };
   by-spec."timers-browserify"."^1.0.1" =
-    self.by-version."timers-browserify"."1.0.3";
-  by-version."timers-browserify"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-timers-browserify-1.0.3";
+    self.by-version."timers-browserify"."1.1.0";
+  by-version."timers-browserify"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "timers-browserify-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/timers-browserify/-/timers-browserify-1.0.3.tgz";
-        name = "timers-browserify-1.0.3.tgz";
-        sha1 = "ffba70c9c12eed916fd67318e629ac6f32295551";
+        url = "http://registry.npmjs.org/timers-browserify/-/timers-browserify-1.1.0.tgz";
+        name = "timers-browserify-1.1.0.tgz";
+        sha1 = "bffd11af00fe82b089b015e8de4dc6a911b7ec3e";
       })
     ];
     buildInputs =
       (self.nativeDeps."timers-browserify" or []);
-    deps = [
-      self.by-version."process"."0.5.2"
-    ];
+    deps = {
+      "process-0.5.2" = self.by-version."process"."0.5.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "timers-browserify" ];
@@ -18547,7 +19823,8 @@
   by-spec."timespan"."~2.3.0" =
     self.by-version."timespan"."2.3.0";
   by-version."timespan"."2.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-timespan-2.3.0";
+    name = "timespan-2.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz";
@@ -18557,8 +19834,8 @@
     ];
     buildInputs =
       (self.nativeDeps."timespan" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "timespan" ];
@@ -18566,7 +19843,8 @@
   by-spec."timezone"."*" =
     self.by-version."timezone"."0.0.34";
   by-version."timezone"."0.0.34" = lib.makeOverridable self.buildNodePackage {
-    name = "node-timezone-0.0.34";
+    name = "timezone-0.0.34";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/timezone/-/timezone-0.0.34.tgz";
@@ -18576,8 +19854,8 @@
     ];
     buildInputs =
       (self.nativeDeps."timezone" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "timezone" ];
@@ -18586,7 +19864,8 @@
   by-spec."tinycolor"."0.x" =
     self.by-version."tinycolor"."0.0.1";
   by-version."tinycolor"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tinycolor-0.0.1";
+    name = "tinycolor-0.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz";
@@ -18596,8 +19875,8 @@
     ];
     buildInputs =
       (self.nativeDeps."tinycolor" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tinycolor" ];
@@ -18606,6 +19885,7 @@
     self.by-version."titanium"."3.2.1";
   by-version."titanium"."3.2.1" = lib.makeOverridable self.buildNodePackage {
     name = "titanium-3.2.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/titanium/-/titanium-3.2.1.tgz";
@@ -18615,23 +19895,23 @@
     ];
     buildInputs =
       (self.nativeDeps."titanium" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."colors"."0.6.2"
-      self.by-version."fields"."0.1.12"
-      self.by-version."humanize"."0.0.9"
-      self.by-version."jade"."0.35.0"
-      self.by-version."longjohn"."0.2.4"
-      self.by-version."moment"."2.4.0"
-      self.by-version."node-appc"."0.2.0"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."request"."2.27.0"
-      self.by-version."semver"."2.2.1"
-      self.by-version."sprintf"."0.1.4"
-      self.by-version."temp"."0.6.0"
-      self.by-version."winston"."0.6.2"
-      self.by-version."wrench"."1.5.8"
-    ];
+    deps = {
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "fields-0.1.13" = self.by-version."fields"."0.1.13";
+      "humanize-0.0.9" = self.by-version."humanize"."0.0.9";
+      "jade-0.35.0" = self.by-version."jade"."0.35.0";
+      "longjohn-0.2.4" = self.by-version."longjohn"."0.2.4";
+      "moment-2.4.0" = self.by-version."moment"."2.4.0";
+      "node-appc-0.2.0" = self.by-version."node-appc"."0.2.0";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+      "request-2.27.0" = self.by-version."request"."2.27.0";
+      "semver-2.2.1" = self.by-version."semver"."2.2.1";
+      "sprintf-0.1.4" = self.by-version."sprintf"."0.1.4";
+      "temp-0.6.0" = self.by-version."temp"."0.6.0";
+      "winston-0.6.2" = self.by-version."winston"."0.6.2";
+      "wrench-1.5.8" = self.by-version."wrench"."1.5.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "titanium" ];
@@ -18640,7 +19920,8 @@
   by-spec."tmp"."~0.0.20" =
     self.by-version."tmp"."0.0.24";
   by-version."tmp"."0.0.24" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tmp-0.0.24";
+    name = "tmp-0.0.24";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz";
@@ -18650,8 +19931,8 @@
     ];
     buildInputs =
       (self.nativeDeps."tmp" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tmp" ];
@@ -18659,7 +19940,8 @@
   by-spec."tough-cookie".">=0.12.0" =
     self.by-version."tough-cookie"."0.12.1";
   by-version."tough-cookie"."0.12.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tough-cookie-0.12.1";
+    name = "tough-cookie-0.12.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz";
@@ -18669,29 +19951,9 @@
     ];
     buildInputs =
       (self.nativeDeps."tough-cookie" or []);
-    deps = [
-      self.by-version."punycode"."1.3.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "tough-cookie" ];
-  };
-  by-spec."tough-cookie"."~0.9.15" =
-    self.by-version."tough-cookie"."0.9.15";
-  by-version."tough-cookie"."0.9.15" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tough-cookie-0.9.15";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/tough-cookie/-/tough-cookie-0.9.15.tgz";
-        name = "tough-cookie-0.9.15.tgz";
-        sha1 = "75617ac347e3659052b0350131885829677399f6";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."tough-cookie" or []);
-    deps = [
-      self.by-version."punycode"."1.3.1"
-    ];
+    deps = {
+      "punycode-1.3.1" = self.by-version."punycode"."1.3.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tough-cookie" ];
@@ -18700,6 +19962,7 @@
     self.by-version."traceur"."0.0.55";
   by-version."traceur"."0.0.55" = lib.makeOverridable self.buildNodePackage {
     name = "traceur-0.0.55";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/traceur/-/traceur-0.0.55.tgz";
@@ -18709,11 +19972,11 @@
     ];
     buildInputs =
       (self.nativeDeps."traceur" or []);
-    deps = [
-      self.by-version."commander"."2.3.0"
-      self.by-version."glob"."4.0.5"
-      self.by-version."semver"."2.3.2"
-    ];
+    deps = {
+      "commander-2.3.0" = self.by-version."commander"."2.3.0";
+      "glob-4.0.5" = self.by-version."glob"."4.0.5";
+      "semver-2.3.2" = self.by-version."semver"."2.3.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "traceur" ];
@@ -18721,7 +19984,8 @@
   by-spec."transformers"."2.1.0" =
     self.by-version."transformers"."2.1.0";
   by-version."transformers"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-transformers-2.1.0";
+    name = "transformers-2.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz";
@@ -18731,11 +19995,11 @@
     ];
     buildInputs =
       (self.nativeDeps."transformers" or []);
-    deps = [
-      self.by-version."promise"."2.0.0"
-      self.by-version."css"."1.0.8"
-      self.by-version."uglify-js"."2.2.5"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "transformers" ];
@@ -18743,7 +20007,8 @@
   by-spec."truncate"."~1.0.2" =
     self.by-version."truncate"."1.0.2";
   by-version."truncate"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-truncate-1.0.2";
+    name = "truncate-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/truncate/-/truncate-1.0.2.tgz";
@@ -18753,8 +20018,8 @@
     ];
     buildInputs =
       (self.nativeDeps."truncate" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "truncate" ];
@@ -18762,7 +20027,8 @@
   by-spec."tty-browserify"."~0.0.0" =
     self.by-version."tty-browserify"."0.0.0";
   by-version."tty-browserify"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tty-browserify-0.0.0";
+    name = "tty-browserify-0.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz";
@@ -18772,8 +20038,8 @@
     ];
     buildInputs =
       (self.nativeDeps."tty-browserify" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tty-browserify" ];
@@ -18781,7 +20047,8 @@
   by-spec."tunnel-agent"."~0.2.0" =
     self.by-version."tunnel-agent"."0.2.0";
   by-version."tunnel-agent"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tunnel-agent-0.2.0";
+    name = "tunnel-agent-0.2.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz";
@@ -18791,8 +20058,8 @@
     ];
     buildInputs =
       (self.nativeDeps."tunnel-agent" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tunnel-agent" ];
@@ -18800,7 +20067,8 @@
   by-spec."tunnel-agent"."~0.3.0" =
     self.by-version."tunnel-agent"."0.3.0";
   by-version."tunnel-agent"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tunnel-agent-0.3.0";
+    name = "tunnel-agent-0.3.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz";
@@ -18810,8 +20078,8 @@
     ];
     buildInputs =
       (self.nativeDeps."tunnel-agent" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tunnel-agent" ];
@@ -18819,7 +20087,8 @@
   by-spec."tunnel-agent"."~0.4.0" =
     self.by-version."tunnel-agent"."0.4.0";
   by-version."tunnel-agent"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tunnel-agent-0.4.0";
+    name = "tunnel-agent-0.4.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz";
@@ -18829,8 +20098,8 @@
     ];
     buildInputs =
       (self.nativeDeps."tunnel-agent" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "tunnel-agent" ];
@@ -18838,7 +20107,8 @@
   by-spec."type-detect"."0.1.1" =
     self.by-version."type-detect"."0.1.1";
   by-version."type-detect"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-type-detect-0.1.1";
+    name = "type-detect-0.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz";
@@ -18848,8 +20118,8 @@
     ];
     buildInputs =
       (self.nativeDeps."type-detect" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "type-detect" ];
@@ -18857,7 +20127,8 @@
   by-spec."type-is"."1.0.0" =
     self.by-version."type-is"."1.0.0";
   by-version."type-is"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-type-is-1.0.0";
+    name = "type-is-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/type-is/-/type-is-1.0.0.tgz";
@@ -18867,81 +20138,62 @@
     ];
     buildInputs =
       (self.nativeDeps."type-is" or []);
-    deps = [
-      self.by-version."mime"."1.2.11"
-    ];
+    deps = {
+      "mime-1.2.11" = self.by-version."mime"."1.2.11";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "type-is" ];
   };
-  by-spec."type-is"."1.2.1" =
-    self.by-version."type-is"."1.2.1";
-  by-version."type-is"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-type-is-1.2.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/type-is/-/type-is-1.2.1.tgz";
-        name = "type-is-1.2.1.tgz";
-        sha1 = "73d448080a4f1dd18acb1eefff62968c5b5d54a2";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."type-is" or []);
-    deps = [
-      self.by-version."mime-types"."1.0.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "type-is" ];
-  };
-  by-spec."type-is"."1.3.1" =
-    self.by-version."type-is"."1.3.1";
-  by-version."type-is"."1.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-type-is-1.3.1";
+  by-spec."type-is"."~1.3.2" =
+    self.by-version."type-is"."1.3.2";
+  by-version."type-is"."1.3.2" = lib.makeOverridable self.buildNodePackage {
+    name = "type-is-1.3.2";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/type-is/-/type-is-1.3.1.tgz";
-        name = "type-is-1.3.1.tgz";
-        sha1 = "a6789b5a52138289ade1ef8f6d9f2874ffd70b6b";
+        url = "http://registry.npmjs.org/type-is/-/type-is-1.3.2.tgz";
+        name = "type-is-1.3.2.tgz";
+        sha1 = "4f2a5dc58775ca1630250afc7186f8b36309d1bb";
       })
     ];
     buildInputs =
       (self.nativeDeps."type-is" or []);
-    deps = [
-      self.by-version."media-typer"."0.2.0"
-      self.by-version."mime-types"."1.0.0"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "type-is" ];
   };
-  by-spec."type-is"."~1.3.1" =
-    self.by-version."type-is"."1.3.2";
-  by-version."type-is"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-type-is-1.3.2";
+  by-spec."type-is"."~1.5.1" =
+    self.by-version."type-is"."1.5.1";
+  by-version."type-is"."1.5.1" = lib.makeOverridable self.buildNodePackage {
+    name = "type-is-1.5.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/type-is/-/type-is-1.3.2.tgz";
-        name = "type-is-1.3.2.tgz";
-        sha1 = "4f2a5dc58775ca1630250afc7186f8b36309d1bb";
+        url = "http://registry.npmjs.org/type-is/-/type-is-1.5.1.tgz";
+        name = "type-is-1.5.1.tgz";
+        sha1 = "5c1e62d874f79199fb16b34d16972dba376ccbed";
       })
     ];
     buildInputs =
       (self.nativeDeps."type-is" or []);
-    deps = [
-      self.by-version."media-typer"."0.2.0"
-      self.by-version."mime-types"."1.0.2"
-    ];
+    deps = {
+      "media-typer-0.3.0" = self.by-version."media-typer"."0.3.0";
+      "mime-types-2.0.1" = self.by-version."mime-types"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "type-is" ];
   };
-  by-spec."type-is"."~1.3.2" =
-    self.by-version."type-is"."1.3.2";
   by-spec."typechecker"."~2.0.1" =
     self.by-version."typechecker"."2.0.8";
   by-version."typechecker"."2.0.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-typechecker-2.0.8";
+    name = "typechecker-2.0.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz";
@@ -18951,8 +20203,8 @@
     ];
     buildInputs =
       (self.nativeDeps."typechecker" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "typechecker" ];
@@ -18960,7 +20212,8 @@
   by-spec."typedarray"."~0.0.5" =
     self.by-version."typedarray"."0.0.6";
   by-version."typedarray"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-typedarray-0.0.6";
+    name = "typedarray-0.0.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
@@ -18970,8 +20223,8 @@
     ];
     buildInputs =
       (self.nativeDeps."typedarray" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "typedarray" ];
@@ -18980,6 +20233,7 @@
     self.by-version."typescript"."1.0.1";
   by-version."typescript"."1.0.1" = lib.makeOverridable self.buildNodePackage {
     name = "typescript-1.0.1";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/typescript/-/typescript-1.0.1.tgz";
@@ -18989,8 +20243,8 @@
     ];
     buildInputs =
       (self.nativeDeps."typescript" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "typescript" ];
@@ -19000,6 +20254,7 @@
     self.by-version."uglify-js"."2.4.15";
   by-version."uglify-js"."2.4.15" = lib.makeOverridable self.buildNodePackage {
     name = "uglify-js-2.4.15";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.4.15.tgz";
@@ -19009,12 +20264,12 @@
     ];
     buildInputs =
       (self.nativeDeps."uglify-js" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."source-map"."0.1.34"
-      self.by-version."optimist"."0.3.7"
-      self.by-version."uglify-to-browserify"."1.0.2"
-    ];
+    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";
+      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
+      "uglify-to-browserify-1.0.2" = self.by-version."uglify-to-browserify"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uglify-js" ];
@@ -19024,6 +20279,7 @@
     self.by-version."uglify-js"."1.2.5";
   by-version."uglify-js"."1.2.5" = lib.makeOverridable self.buildNodePackage {
     name = "uglify-js-1.2.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz";
@@ -19033,8 +20289,8 @@
     ];
     buildInputs =
       (self.nativeDeps."uglify-js" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uglify-js" ];
@@ -19043,6 +20299,7 @@
     self.by-version."uglify-js"."2.4.0";
   by-version."uglify-js"."2.4.0" = lib.makeOverridable self.buildNodePackage {
     name = "uglify-js-2.4.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.4.0.tgz";
@@ -19052,12 +20309,12 @@
     ];
     buildInputs =
       (self.nativeDeps."uglify-js" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."source-map"."0.1.38"
-      self.by-version."optimist"."0.3.7"
-      self.by-version."uglify-to-browserify"."1.0.2"
-    ];
+    deps = {
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
+      "uglify-to-browserify-1.0.2" = self.by-version."uglify-to-browserify"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uglify-js" ];
@@ -19068,6 +20325,7 @@
     self.by-version."uglify-js"."2.2.5";
   by-version."uglify-js"."2.2.5" = lib.makeOverridable self.buildNodePackage {
     name = "uglify-js-2.2.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz";
@@ -19077,10 +20335,10 @@
     ];
     buildInputs =
       (self.nativeDeps."uglify-js" or []);
-    deps = [
-      self.by-version."source-map"."0.1.38"
-      self.by-version."optimist"."0.3.7"
-    ];
+    deps = {
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uglify-js" ];
@@ -19091,6 +20349,7 @@
     self.by-version."uglify-js"."2.3.6";
   by-version."uglify-js"."2.3.6" = lib.makeOverridable self.buildNodePackage {
     name = "uglify-js-2.3.6";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz";
@@ -19100,11 +20359,11 @@
     ];
     buildInputs =
       (self.nativeDeps."uglify-js" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."source-map"."0.1.38"
-      self.by-version."optimist"."0.3.7"
-    ];
+    deps = {
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+      "source-map-0.1.39" = self.by-version."source-map"."0.1.39";
+      "optimist-0.3.7" = self.by-version."optimist"."0.3.7";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uglify-js" ];
@@ -19118,7 +20377,8 @@
   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" = lib.makeOverridable self.buildNodePackage {
-    name = "node-uglify-to-browserify-1.0.2";
+    name = "uglify-to-browserify-1.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
@@ -19128,8 +20388,8 @@
     ];
     buildInputs =
       (self.nativeDeps."uglify-to-browserify" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uglify-to-browserify" ];
@@ -19137,7 +20397,8 @@
   by-spec."uid-number"."0.0.5" =
     self.by-version."uid-number"."0.0.5";
   by-version."uid-number"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-uid-number-0.0.5";
+    name = "uid-number-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz";
@@ -19147,16 +20408,17 @@
     ];
     buildInputs =
       (self.nativeDeps."uid-number" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uid-number" ];
   };
-  by-spec."uid-safe"."1" =
+  by-spec."uid-safe"."1.0.1" =
     self.by-version."uid-safe"."1.0.1";
   by-version."uid-safe"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-uid-safe-1.0.1";
+    name = "uid-safe-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uid-safe/-/uid-safe-1.0.1.tgz";
@@ -19166,20 +20428,21 @@
     ];
     buildInputs =
       (self.nativeDeps."uid-safe" or []);
-    deps = [
-      self.by-version."mz"."1.0.1"
-      self.by-version."base64-url"."1.0.0"
-    ];
+    deps = {
+      "mz-1.0.1" = self.by-version."mz"."1.0.1";
+      "base64-url-1.0.0" = self.by-version."base64-url"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uid-safe" ];
   };
-  by-spec."uid-safe"."1.0.1" =
+  by-spec."uid-safe"."~1.0.1" =
     self.by-version."uid-safe"."1.0.1";
   by-spec."uid2"."0.0.3" =
     self.by-version."uid2"."0.0.3";
   by-version."uid2"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-uid2-0.0.3";
+    name = "uid2-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz";
@@ -19189,8 +20452,8 @@
     ];
     buildInputs =
       (self.nativeDeps."uid2" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uid2" ];
@@ -19199,6 +20462,7 @@
     self.by-version."umd"."2.1.0";
   by-version."umd"."2.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "umd-2.1.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/umd/-/umd-2.1.0.tgz";
@@ -19208,12 +20472,12 @@
     ];
     buildInputs =
       (self.nativeDeps."umd" or []);
-    deps = [
-      self.by-version."rfile"."1.0.0"
-      self.by-version."ruglify"."1.0.0"
-      self.by-version."through"."2.3.4"
-      self.by-version."uglify-js"."2.4.15"
-    ];
+    deps = {
+      "rfile-1.0.0" = self.by-version."rfile"."1.0.0";
+      "ruglify-1.0.0" = self.by-version."ruglify"."1.0.0";
+      "through-2.3.4" = self.by-version."through"."2.3.4";
+      "uglify-js-2.4.15" = self.by-version."uglify-js"."2.4.15";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "umd" ];
@@ -19221,9 +20485,31 @@
   by-spec."umd"."~2.1.0" =
     self.by-version."umd"."2.1.0";
   by-spec."underscore"."*" =
+    self.by-version."underscore"."1.7.0";
+  by-version."underscore"."1.7.0" = lib.makeOverridable self.buildNodePackage {
+    name = "underscore-1.7.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz";
+        name = "underscore-1.7.0.tgz";
+        sha1 = "6bbaf0877500d36be34ecaa584e0db9fef035209";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."underscore" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "underscore" ];
+  };
+  "underscore" = self.by-version."underscore"."1.7.0";
+  by-spec."underscore"."1.6.x" =
     self.by-version."underscore"."1.6.0";
   by-version."underscore"."1.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-underscore-1.6.0";
+    name = "underscore-1.6.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz";
@@ -19233,27 +20519,23 @@
     ];
     buildInputs =
       (self.nativeDeps."underscore" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "underscore" ];
   };
-  "underscore" = self.by-version."underscore"."1.6.0";
-  by-spec."underscore"."1.6.x" =
-    self.by-version."underscore"."1.6.0";
-  by-spec."underscore".">= 1.3.0" =
-    self.by-version."underscore"."1.6.0";
   by-spec."underscore".">=1.1.7" =
-    self.by-version."underscore"."1.6.0";
+    self.by-version."underscore"."1.7.0";
   by-spec."underscore".">=1.3.1" =
-    self.by-version."underscore"."1.6.0";
+    self.by-version."underscore"."1.7.0";
   by-spec."underscore".">=1.5.0" =
-    self.by-version."underscore"."1.6.0";
+    self.by-version."underscore"."1.7.0";
   by-spec."underscore"."~1.4.3" =
     self.by-version."underscore"."1.4.4";
   by-version."underscore"."1.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-underscore-1.4.4";
+    name = "underscore-1.4.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz";
@@ -19263,8 +20545,8 @@
     ];
     buildInputs =
       (self.nativeDeps."underscore" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "underscore" ];
@@ -19274,7 +20556,8 @@
   by-spec."underscore"."~1.5.2" =
     self.by-version."underscore"."1.5.2";
   by-version."underscore"."1.5.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-underscore-1.5.2";
+    name = "underscore-1.5.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz";
@@ -19284,8 +20567,8 @@
     ];
     buildInputs =
       (self.nativeDeps."underscore" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "underscore" ];
@@ -19293,7 +20576,8 @@
   by-spec."underscore.string"."~2.2.1" =
     self.by-version."underscore.string"."2.2.1";
   by-version."underscore.string"."2.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-underscore.string-2.2.1";
+    name = "underscore.string-2.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz";
@@ -19303,8 +20587,8 @@
     ];
     buildInputs =
       (self.nativeDeps."underscore.string" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "underscore.string" ];
@@ -19312,7 +20596,8 @@
   by-spec."underscore.string"."~2.3.1" =
     self.by-version."underscore.string"."2.3.3";
   by-version."underscore.string"."2.3.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-underscore.string-2.3.3";
+    name = "underscore.string-2.3.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz";
@@ -19322,8 +20607,8 @@
     ];
     buildInputs =
       (self.nativeDeps."underscore.string" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "underscore.string" ];
@@ -19333,7 +20618,8 @@
   by-spec."unfunk-diff"."~0.0.1" =
     self.by-version."unfunk-diff"."0.0.2";
   by-version."unfunk-diff"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-unfunk-diff-0.0.2";
+    name = "unfunk-diff-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/unfunk-diff/-/unfunk-diff-0.0.2.tgz";
@@ -19343,72 +20629,74 @@
     ];
     buildInputs =
       (self.nativeDeps."unfunk-diff" or []);
-    deps = [
-      self.by-version."diff"."1.0.8"
-      self.by-version."jsesc"."0.4.3"
-      self.by-version."ministyle"."0.1.4"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "unfunk-diff" ];
   };
   by-spec."ungit"."*" =
-    self.by-version."ungit"."0.8.2";
-  by-version."ungit"."0.8.2" = lib.makeOverridable self.buildNodePackage {
-    name = "ungit-0.8.2";
+    self.by-version."ungit"."0.8.3";
+  by-version."ungit"."0.8.3" = lib.makeOverridable self.buildNodePackage {
+    name = "ungit-0.8.3";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ungit/-/ungit-0.8.2.tgz";
-        name = "ungit-0.8.2.tgz";
-        sha1 = "11fe51329ab2aaafaccd155eb0c911a90036b27f";
+        url = "http://registry.npmjs.org/ungit/-/ungit-0.8.3.tgz";
+        name = "ungit-0.8.3.tgz";
+        sha1 = "93ea5734cb8408ef9ba3406102fa5254abfeaa4b";
       })
     ];
     buildInputs =
       (self.nativeDeps."ungit" or []);
-    deps = [
-      self.by-version."express"."4.4.5"
-      self.by-version."superagent"."0.18.2"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."temp"."0.8.1"
-      self.by-version."socket.io"."0.9.17"
-      self.by-version."moment"."2.7.0"
-      self.by-version."async"."0.9.0"
-      self.by-version."rc"."0.4.0"
-      self.by-version."uuid"."1.4.1"
-      self.by-version."winston"."0.7.3"
-      self.by-version."passport"."0.2.0"
-      self.by-version."passport-local"."1.0.0"
-      self.by-version."semver"."2.3.2"
-      self.by-version."forever-monitor"."1.1.0"
-      self.by-version."open"."0.0.5"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."crossroads"."0.12.0"
-      self.by-version."signals"."1.0.0"
-      self.by-version."hasher"."1.2.0"
-      self.by-version."blueimp-md5"."1.1.0"
-      self.by-version."color"."0.6.0"
-      self.by-version."keen.io"."0.1.2"
-      self.by-version."getmac"."1.0.6"
-      self.by-version."deep-extend"."0.2.11"
-      self.by-version."raven"."0.7.0"
-      self.by-version."knockout"."3.1.0"
-      self.by-version."npm-registry-client"."3.0.6"
-      self.by-version."npmconf"."2.0.5"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."body-parser"."1.4.3"
-      self.by-version."cookie-parser"."1.3.2"
-      self.by-version."express-session"."1.6.5"
-      self.by-version."serve-static"."1.3.2"
-    ];
+    deps = {
+      "express-4.8.8" = self.by-version."express"."4.8.8";
+      "superagent-0.18.2" = self.by-version."superagent"."0.18.2";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "temp-0.8.1" = self.by-version."temp"."0.8.1";
+      "socket.io-0.9.17" = self.by-version."socket.io"."0.9.17";
+      "moment-2.8.3" = self.by-version."moment"."2.8.3";
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+      "rc-0.5.1" = self.by-version."rc"."0.5.1";
+      "uuid-1.4.1" = self.by-version."uuid"."1.4.1";
+      "winston-0.7.3" = self.by-version."winston"."0.7.3";
+      "passport-0.2.1" = self.by-version."passport"."0.2.1";
+      "passport-local-1.0.0" = self.by-version."passport-local"."1.0.0";
+      "semver-3.0.1" = self.by-version."semver"."3.0.1";
+      "forever-monitor-1.1.0" = self.by-version."forever-monitor"."1.1.0";
+      "open-0.0.5" = self.by-version."open"."0.0.5";
+      "optimist-0.6.1" = self.by-version."optimist"."0.6.1";
+      "crossroads-0.12.0" = self.by-version."crossroads"."0.12.0";
+      "signals-1.0.0" = self.by-version."signals"."1.0.0";
+      "hasher-1.2.0" = self.by-version."hasher"."1.2.0";
+      "blueimp-md5-1.1.0" = self.by-version."blueimp-md5"."1.1.0";
+      "color-0.7.1" = self.by-version."color"."0.7.1";
+      "keen.io-0.1.2" = self.by-version."keen.io"."0.1.2";
+      "getmac-1.0.6" = self.by-version."getmac"."1.0.6";
+      "deep-extend-0.2.11" = self.by-version."deep-extend"."0.2.11";
+      "raven-0.7.2" = self.by-version."raven"."0.7.2";
+      "knockout-3.2.0" = self.by-version."knockout"."3.2.0";
+      "npm-registry-client-3.1.8" = self.by-version."npm-registry-client"."3.1.8";
+      "npmconf-2.0.9" = self.by-version."npmconf"."2.0.9";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "body-parser-1.6.7" = self.by-version."body-parser"."1.6.7";
+      "cookie-parser-1.3.3" = self.by-version."cookie-parser"."1.3.3";
+      "express-session-1.7.6" = self.by-version."express-session"."1.7.6";
+      "serve-static-1.5.4" = self.by-version."serve-static"."1.5.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ungit" ];
   };
-  "ungit" = self.by-version."ungit"."0.8.2";
+  "ungit" = self.by-version."ungit"."0.8.3";
   by-spec."unique-stream"."^1.0.0" =
     self.by-version."unique-stream"."1.0.0";
   by-version."unique-stream"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-unique-stream-1.0.0";
+    name = "unique-stream-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz";
@@ -19418,8 +20706,8 @@
     ];
     buildInputs =
       (self.nativeDeps."unique-stream" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "unique-stream" ];
@@ -19427,7 +20715,8 @@
   by-spec."update-notifier"."~0.1.8" =
     self.by-version."update-notifier"."0.1.10";
   by-version."update-notifier"."0.1.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-update-notifier-0.1.10";
+    name = "update-notifier-0.1.10";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/update-notifier/-/update-notifier-0.1.10.tgz";
@@ -19437,12 +20726,12 @@
     ];
     buildInputs =
       (self.nativeDeps."update-notifier" or []);
-    deps = [
-      self.by-version."chalk"."0.4.0"
-      self.by-version."configstore"."0.3.1"
-      self.by-version."request"."2.40.0"
-      self.by-version."semver"."2.3.2"
-    ];
+    deps = {
+      "chalk-0.4.0" = self.by-version."chalk"."0.4.0";
+      "configstore-0.3.1" = self.by-version."configstore"."0.3.1";
+      "request-2.42.0" = self.by-version."request"."2.42.0";
+      "semver-2.3.2" = self.by-version."semver"."2.3.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "update-notifier" ];
@@ -19450,7 +20739,8 @@
   by-spec."url"."~0.10.1" =
     self.by-version."url"."0.10.1";
   by-version."url"."0.10.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-url-0.10.1";
+    name = "url-0.10.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/url/-/url-0.10.1.tgz";
@@ -19460,17 +20750,38 @@
     ];
     buildInputs =
       (self.nativeDeps."url" or []);
-    deps = [
-      self.by-version."punycode"."1.2.4"
-    ];
+    deps = {
+      "punycode-1.2.4" = self.by-version."punycode"."1.2.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "url" ];
   };
+  by-spec."user-home"."^1.0.0" =
+    self.by-version."user-home"."1.0.0";
+  by-version."user-home"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "user-home-1.0.0";
+    bin = true;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/user-home/-/user-home-1.0.0.tgz";
+        name = "user-home-1.0.0.tgz";
+        sha1 = "54ecb631e0fa420e9b0a6b946b158d137825b38b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."user-home" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "user-home" ];
+  };
   by-spec."useragent"."~2.0.4" =
     self.by-version."useragent"."2.0.9";
   by-version."useragent"."2.0.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-useragent-2.0.9";
+    name = "useragent-2.0.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/useragent/-/useragent-2.0.9.tgz";
@@ -19480,29 +20791,30 @@
     ];
     buildInputs =
       (self.nativeDeps."useragent" or []);
-    deps = [
-      self.by-version."lru-cache"."2.2.4"
-    ];
+    deps = {
+      "lru-cache-2.2.4" = self.by-version."lru-cache"."2.2.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "useragent" ];
   };
-  by-spec."util"."0.10.2" =
-    self.by-version."util"."0.10.2";
-  by-version."util"."0.10.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-util-0.10.2";
+  by-spec."util"."0.10.3" =
+    self.by-version."util"."0.10.3";
+  by-version."util"."0.10.3" = lib.makeOverridable self.buildNodePackage {
+    name = "util-0.10.3";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/util/-/util-0.10.2.tgz";
-        name = "util-0.10.2.tgz";
-        sha1 = "8180519cf690fb88bc56480fe55087531f446304";
+        url = "http://registry.npmjs.org/util/-/util-0.10.3.tgz";
+        name = "util-0.10.3.tgz";
+        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
       })
     ];
     buildInputs =
       (self.nativeDeps."util" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-    ];
+    deps = {
+      "inherits-2.0.1" = self.by-version."inherits"."2.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "util" ];
@@ -19510,7 +20822,8 @@
   by-spec."util"."0.4.9" =
     self.by-version."util"."0.4.9";
   by-version."util"."0.4.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-util-0.4.9";
+    name = "util-0.4.9";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/util/-/util-0.4.9.tgz";
@@ -19520,39 +20833,22 @@
     ];
     buildInputs =
       (self.nativeDeps."util" or []);
-    deps = [
-      self.by-version."events.node"."0.4.9"
-    ];
+    deps = {
+      "events.node-0.4.9" = self.by-version."events.node"."0.4.9";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "util" ];
   };
   by-spec."util".">=0.10.3 <1" =
     self.by-version."util"."0.10.3";
-  by-version."util"."0.10.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-util-0.10.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/util/-/util-0.10.3.tgz";
-        name = "util-0.10.3.tgz";
-        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."util" or []);
-    deps = [
-      self.by-version."inherits"."2.0.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "util" ];
-  };
   by-spec."util"."~0.10.1" =
     self.by-version."util"."0.10.3";
   by-spec."util-extend"."^1.0.1" =
     self.by-version."util-extend"."1.0.1";
   by-version."util-extend"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-util-extend-1.0.1";
+    name = "util-extend-1.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz";
@@ -19562,8 +20858,8 @@
     ];
     buildInputs =
       (self.nativeDeps."util-extend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "util-extend" ];
@@ -19571,7 +20867,8 @@
   by-spec."utile"."0.1.x" =
     self.by-version."utile"."0.1.7";
   by-version."utile"."0.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-utile-0.1.7";
+    name = "utile-0.1.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/utile/-/utile-0.1.7.tgz";
@@ -19581,14 +20878,14 @@
     ];
     buildInputs =
       (self.nativeDeps."utile" or []);
-    deps = [
-      self.by-version."async"."0.1.22"
-      self.by-version."deep-equal"."0.2.1"
-      self.by-version."i"."0.3.2"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."ncp"."0.2.7"
-      self.by-version."rimraf"."1.0.9"
-    ];
+    deps = {
+      "async-0.1.22" = self.by-version."async"."0.1.22";
+      "deep-equal-0.2.1" = self.by-version."deep-equal"."0.2.1";
+      "i-0.3.2" = self.by-version."i"."0.3.2";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "ncp-0.2.7" = self.by-version."ncp"."0.2.7";
+      "rimraf-1.0.9" = self.by-version."rimraf"."1.0.9";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "utile" ];
@@ -19596,7 +20893,8 @@
   by-spec."utile"."0.2.1" =
     self.by-version."utile"."0.2.1";
   by-version."utile"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-utile-0.2.1";
+    name = "utile-0.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/utile/-/utile-0.2.1.tgz";
@@ -19606,14 +20904,14 @@
     ];
     buildInputs =
       (self.nativeDeps."utile" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."deep-equal"."0.2.1"
-      self.by-version."i"."0.3.2"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."ncp"."0.4.2"
-      self.by-version."rimraf"."2.2.8"
-    ];
+    deps = {
+      "async-0.2.10" = self.by-version."async"."0.2.10";
+      "deep-equal-0.2.1" = self.by-version."deep-equal"."0.2.1";
+      "i-0.3.2" = self.by-version."i"."0.3.2";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "ncp-0.4.2" = self.by-version."ncp"."0.4.2";
+      "rimraf-2.2.8" = self.by-version."rimraf"."2.2.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "utile" ];
@@ -19625,7 +20923,8 @@
   by-spec."utils-merge"."1.0.0" =
     self.by-version."utils-merge"."1.0.0";
   by-version."utils-merge"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-utils-merge-1.0.0";
+    name = "utils-merge-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz";
@@ -19635,8 +20934,8 @@
     ];
     buildInputs =
       (self.nativeDeps."utils-merge" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "utils-merge" ];
@@ -19644,7 +20943,8 @@
   by-spec."uuid"."1.4.1" =
     self.by-version."uuid"."1.4.1";
   by-version."uuid"."1.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-uuid-1.4.1";
+    name = "uuid-1.4.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/uuid/-/uuid-1.4.1.tgz";
@@ -19654,8 +20954,8 @@
     ];
     buildInputs =
       (self.nativeDeps."uuid" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "uuid" ];
@@ -19665,7 +20965,8 @@
   by-spec."validator"."0.4.x" =
     self.by-version."validator"."0.4.28";
   by-version."validator"."0.4.28" = lib.makeOverridable self.buildNodePackage {
-    name = "node-validator-0.4.28";
+    name = "validator-0.4.28";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/validator/-/validator-0.4.28.tgz";
@@ -19675,8 +20976,8 @@
     ];
     buildInputs =
       (self.nativeDeps."validator" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "validator" ];
@@ -19684,7 +20985,8 @@
   by-spec."vargs"."~0.1.0" =
     self.by-version."vargs"."0.1.0";
   by-version."vargs"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vargs-0.1.0";
+    name = "vargs-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/vargs/-/vargs-0.1.0.tgz";
@@ -19694,8 +20996,8 @@
     ];
     buildInputs =
       (self.nativeDeps."vargs" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vargs" ];
@@ -19703,7 +21005,8 @@
   by-spec."vary"."0.1.0" =
     self.by-version."vary"."0.1.0";
   by-version."vary"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vary-0.1.0";
+    name = "vary-0.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/vary/-/vary-0.1.0.tgz";
@@ -19713,18 +21016,17 @@
     ];
     buildInputs =
       (self.nativeDeps."vary" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vary" ];
   };
-  by-spec."vary"."~0.1.0" =
-    self.by-version."vary"."0.1.0";
   by-spec."vary"."~1.0.0" =
     self.by-version."vary"."1.0.0";
   by-version."vary"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vary-1.0.0";
+    name = "vary-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/vary/-/vary-1.0.0.tgz";
@@ -19734,8 +21036,8 @@
     ];
     buildInputs =
       (self.nativeDeps."vary" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vary" ];
@@ -19743,7 +21045,8 @@
   by-spec."vasync"."1.3.3" =
     self.by-version."vasync"."1.3.3";
   by-version."vasync"."1.3.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vasync-1.3.3";
+    name = "vasync-1.3.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/vasync/-/vasync-1.3.3.tgz";
@@ -19753,10 +21056,10 @@
     ];
     buildInputs =
       (self.nativeDeps."vasync" or []);
-    deps = [
-      self.by-version."jsprim"."0.3.0"
-      self.by-version."verror"."1.1.0"
-    ];
+    deps = {
+      "jsprim-0.3.0" = self.by-version."jsprim"."0.3.0";
+      "verror-1.1.0" = self.by-version."verror"."1.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vasync" ];
@@ -19764,7 +21067,8 @@
   by-spec."vasync"."1.4.3" =
     self.by-version."vasync"."1.4.3";
   by-version."vasync"."1.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vasync-1.4.3";
+    name = "vasync-1.4.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/vasync/-/vasync-1.4.3.tgz";
@@ -19774,10 +21078,10 @@
     ];
     buildInputs =
       (self.nativeDeps."vasync" or []);
-    deps = [
-      self.by-version."jsprim"."0.3.0"
-      self.by-version."verror"."1.1.0"
-    ];
+    deps = {
+      "jsprim-0.3.0" = self.by-version."jsprim"."0.3.0";
+      "verror-1.1.0" = self.by-version."verror"."1.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vasync" ];
@@ -19785,7 +21089,8 @@
   by-spec."verror"."1.1.0" =
     self.by-version."verror"."1.1.0";
   by-version."verror"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-verror-1.1.0";
+    name = "verror-1.1.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/verror/-/verror-1.1.0.tgz";
@@ -19795,9 +21100,9 @@
     ];
     buildInputs =
       (self.nativeDeps."verror" or []);
-    deps = [
-      self.by-version."extsprintf"."1.0.0"
-    ];
+    deps = {
+      "extsprintf-1.0.0" = self.by-version."extsprintf"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "verror" ];
@@ -19805,7 +21110,8 @@
   by-spec."verror"."1.3.3" =
     self.by-version."verror"."1.3.3";
   by-version."verror"."1.3.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-verror-1.3.3";
+    name = "verror-1.3.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/verror/-/verror-1.3.3.tgz";
@@ -19815,9 +21121,9 @@
     ];
     buildInputs =
       (self.nativeDeps."verror" or []);
-    deps = [
-      self.by-version."extsprintf"."1.0.0"
-    ];
+    deps = {
+      "extsprintf-1.0.0" = self.by-version."extsprintf"."1.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "verror" ];
@@ -19825,7 +21131,8 @@
   by-spec."verror"."1.3.6" =
     self.by-version."verror"."1.3.6";
   by-version."verror"."1.3.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-verror-1.3.6";
+    name = "verror-1.3.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/verror/-/verror-1.3.6.tgz";
@@ -19835,28 +21142,29 @@
     ];
     buildInputs =
       (self.nativeDeps."verror" or []);
-    deps = [
-      self.by-version."extsprintf"."1.0.2"
-    ];
+    deps = {
+      "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "verror" ];
   };
-  by-spec."vhost"."2.0.0" =
-    self.by-version."vhost"."2.0.0";
-  by-version."vhost"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vhost-2.0.0";
+  by-spec."vhost"."~3.0.0" =
+    self.by-version."vhost"."3.0.0";
+  by-version."vhost"."3.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "vhost-3.0.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/vhost/-/vhost-2.0.0.tgz";
-        name = "vhost-2.0.0.tgz";
-        sha1 = "1e26770bd0fce86c40945591e6f284c6891791e2";
+        url = "http://registry.npmjs.org/vhost/-/vhost-3.0.0.tgz";
+        name = "vhost-3.0.0.tgz";
+        sha1 = "2d0ec59a3e012278b65adbe17c1717a5a5023045";
       })
     ];
     buildInputs =
       (self.nativeDeps."vhost" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vhost" ];
@@ -19864,7 +21172,8 @@
   by-spec."view-helpers"."*" =
     self.by-version."view-helpers"."0.1.5";
   by-version."view-helpers"."0.1.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-view-helpers-0.1.5";
+    name = "view-helpers-0.1.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/view-helpers/-/view-helpers-0.1.5.tgz";
@@ -19874,8 +21183,8 @@
     ];
     buildInputs =
       (self.nativeDeps."view-helpers" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "view-helpers" ];
@@ -19884,7 +21193,8 @@
   by-spec."vinyl"."^0.2.3" =
     self.by-version."vinyl"."0.2.3";
   by-version."vinyl"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vinyl-0.2.3";
+    name = "vinyl-0.2.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz";
@@ -19894,65 +21204,70 @@
     ];
     buildInputs =
       (self.nativeDeps."vinyl" or []);
-    deps = [
-      self.by-version."clone-stats"."0.0.1"
-    ];
+    deps = {
+      "clone-stats-0.0.1" = self.by-version."clone-stats"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vinyl" ];
   };
-  by-spec."vinyl"."^0.3.2" =
-    self.by-version."vinyl"."0.3.2";
-  by-version."vinyl"."0.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vinyl-0.3.2";
+  by-spec."vinyl"."^0.4.0" =
+    self.by-version."vinyl"."0.4.3";
+  by-version."vinyl"."0.4.3" = lib.makeOverridable self.buildNodePackage {
+    name = "vinyl-0.4.3";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/vinyl/-/vinyl-0.3.2.tgz";
-        name = "vinyl-0.3.2.tgz";
-        sha1 = "2b422d7c5ff0abc0d22d90ed2275e409dab5e174";
+        url = "http://registry.npmjs.org/vinyl/-/vinyl-0.4.3.tgz";
+        name = "vinyl-0.4.3.tgz";
+        sha1 = "19f61a1b28e72b4c50697889dbe91d7503943ecf";
       })
     ];
     buildInputs =
       (self.nativeDeps."vinyl" or []);
-    deps = [
-      self.by-version."clone-stats"."0.0.1"
-      self.by-version."lodash"."2.4.1"
-    ];
+    deps = {
+      "clone-stats-0.0.1" = self.by-version."clone-stats"."0.0.1";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vinyl" ];
   };
-  by-spec."vinyl-fs"."^0.3.3" =
-    self.by-version."vinyl-fs"."0.3.6";
-  by-version."vinyl-fs"."0.3.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vinyl-fs-0.3.6";
+  by-spec."vinyl-fs"."^0.3.0" =
+    self.by-version."vinyl-fs"."0.3.7";
+  by-version."vinyl-fs"."0.3.7" = lib.makeOverridable self.buildNodePackage {
+    name = "vinyl-fs-0.3.7";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.6.tgz";
-        name = "vinyl-fs-0.3.6.tgz";
-        sha1 = "c96985527cd53eb4a3eeb8ffb3180bda3084ecfc";
+        url = "http://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.7.tgz";
+        name = "vinyl-fs-0.3.7.tgz";
+        sha1 = "2e25cfe6df5c80818f97ff417bf5c21a41e4a49b";
       })
     ];
     buildInputs =
       (self.nativeDeps."vinyl-fs" or []);
-    deps = [
-      self.by-version."glob-stream"."3.1.15"
-      self.by-version."glob-watcher"."0.0.6"
-      self.by-version."graceful-fs"."3.0.2"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."mkdirp"."0.5.0"
-      self.by-version."strip-bom"."0.3.1"
-      self.by-version."through2"."0.5.1"
-      self.by-version."vinyl"."0.3.2"
-    ];
+    deps = {
+      "glob-stream-3.1.15" = self.by-version."glob-stream"."3.1.15";
+      "glob-watcher-0.0.6" = self.by-version."glob-watcher"."0.0.6";
+      "graceful-fs-3.0.2" = self.by-version."graceful-fs"."3.0.2";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "mkdirp-0.5.0" = self.by-version."mkdirp"."0.5.0";
+      "strip-bom-1.0.0" = self.by-version."strip-bom"."1.0.0";
+      "through2-0.6.1" = self.by-version."through2"."0.6.1";
+      "vinyl-0.4.3" = self.by-version."vinyl"."0.4.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vinyl-fs" ];
   };
+  by-spec."vinyl-fs"."^0.3.3" =
+    self.by-version."vinyl-fs"."0.3.7";
   by-spec."vm-browserify"."~0.0.1" =
     self.by-version."vm-browserify"."0.0.4";
   by-version."vm-browserify"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vm-browserify-0.0.4";
+    name = "vm-browserify-0.0.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz";
@@ -19962,17 +21277,38 @@
     ];
     buildInputs =
       (self.nativeDeps."vm-browserify" or []);
-    deps = [
-      self.by-version."indexof"."0.0.1"
-    ];
+    deps = {
+      "indexof-0.0.1" = self.by-version."indexof"."0.0.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vm-browserify" ];
   };
+  by-spec."void-elements"."~1.0.0" =
+    self.by-version."void-elements"."1.0.0";
+  by-version."void-elements"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "void-elements-1.0.0";
+    bin = false;
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/void-elements/-/void-elements-1.0.0.tgz";
+        name = "void-elements-1.0.0.tgz";
+        sha1 = "6e5db1e35d591f5ac690ce1a340f793a817b2c2a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."void-elements" or []);
+    deps = {
+    };
+    peerDependencies = [
+    ];
+    passthru.names = [ "void-elements" ];
+  };
   by-spec."vows".">=0.5.13" =
     self.by-version."vows"."0.7.0";
   by-version."vows"."0.7.0" = lib.makeOverridable self.buildNodePackage {
     name = "vows-0.7.0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/vows/-/vows-0.7.0.tgz";
@@ -19982,10 +21318,10 @@
     ];
     buildInputs =
       (self.nativeDeps."vows" or []);
-    deps = [
-      self.by-version."eyes"."0.1.8"
-      self.by-version."diff"."1.0.8"
-    ];
+    deps = {
+      "eyes-0.1.8" = self.by-version."eyes"."0.1.8";
+      "diff-1.0.8" = self.by-version."diff"."1.0.8";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "vows" ];
@@ -19993,7 +21329,8 @@
   by-spec."walk"."*" =
     self.by-version."walk"."2.3.3";
   by-version."walk"."2.3.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-walk-2.3.3";
+    name = "walk-2.3.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/walk/-/walk-2.3.3.tgz";
@@ -20003,9 +21340,9 @@
     ];
     buildInputs =
       (self.nativeDeps."walk" or []);
-    deps = [
-      self.by-version."foreachasync"."3.0.0"
-    ];
+    deps = {
+      "foreachasync-3.0.0" = self.by-version."foreachasync"."3.0.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "walk" ];
@@ -20014,7 +21351,8 @@
   by-spec."walk"."~2.2.1" =
     self.by-version."walk"."2.2.1";
   by-version."walk"."2.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-walk-2.2.1";
+    name = "walk-2.2.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/walk/-/walk-2.2.1.tgz";
@@ -20024,9 +21362,9 @@
     ];
     buildInputs =
       (self.nativeDeps."walk" or []);
-    deps = [
-      self.by-version."forEachAsync"."2.2.1"
-    ];
+    deps = {
+      "forEachAsync-2.2.1" = self.by-version."forEachAsync"."2.2.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "walk" ];
@@ -20034,7 +21372,8 @@
   by-spec."watch"."0.5.x" =
     self.by-version."watch"."0.5.1";
   by-version."watch"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-watch-0.5.1";
+    name = "watch-0.5.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/watch/-/watch-0.5.1.tgz";
@@ -20044,8 +21383,8 @@
     ];
     buildInputs =
       (self.nativeDeps."watch" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "watch" ];
@@ -20053,7 +21392,8 @@
   by-spec."watch"."~0.8.0" =
     self.by-version."watch"."0.8.0";
   by-version."watch"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-watch-0.8.0";
+    name = "watch-0.8.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/watch/-/watch-0.8.0.tgz";
@@ -20063,55 +21403,57 @@
     ];
     buildInputs =
       (self.nativeDeps."watch" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "watch" ];
   };
-  by-spec."wcwidth.js"."~0.0.4" =
-    self.by-version."wcwidth.js"."0.0.4";
-  by-version."wcwidth.js"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-wcwidth.js-0.0.4";
+  by-spec."wcwidth"."^1.0.0" =
+    self.by-version."wcwidth"."1.0.0";
+  by-version."wcwidth"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "wcwidth-1.0.0";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/wcwidth.js/-/wcwidth.js-0.0.4.tgz";
-        name = "wcwidth.js-0.0.4.tgz";
-        sha1 = "44298a7c899c17501990fdaddd76ef6bd081be75";
+        url = "http://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz";
+        name = "wcwidth-1.0.0.tgz";
+        sha1 = "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f";
       })
     ];
     buildInputs =
-      (self.nativeDeps."wcwidth.js" or []);
-    deps = [
-      self.by-version."underscore"."1.6.0"
-    ];
+      (self.nativeDeps."wcwidth" or []);
+    deps = {
+      "defaults-1.0.0" = self.by-version."defaults"."1.0.0";
+    };
     peerDependencies = [
     ];
-    passthru.names = [ "wcwidth.js" ];
+    passthru.names = [ "wcwidth" ];
   };
   by-spec."wd"."~0.3.4" =
-    self.by-version."wd"."0.3.4";
-  by-version."wd"."0.3.4" = lib.makeOverridable self.buildNodePackage {
-    name = "wd-0.3.4";
+    self.by-version."wd"."0.3.7";
+  by-version."wd"."0.3.7" = lib.makeOverridable self.buildNodePackage {
+    name = "wd-0.3.7";
+    bin = true;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/wd/-/wd-0.3.4.tgz";
-        name = "wd-0.3.4.tgz";
-        sha1 = "da95a0998eb8acfd297e3a9baf28f610b6345543";
+        url = "http://registry.npmjs.org/wd/-/wd-0.3.7.tgz";
+        name = "wd-0.3.7.tgz";
+        sha1 = "311f03e56a7d67fe263aa446a360145c592a5dc8";
       })
     ];
     buildInputs =
       (self.nativeDeps."wd" or []);
-    deps = [
-      self.by-version."archiver"."0.10.1"
-      self.by-version."async"."0.9.0"
-      self.by-version."colors"."0.6.2"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."q"."1.0.1"
-      self.by-version."request"."2.37.0"
-      self.by-version."underscore.string"."2.3.3"
-      self.by-version."vargs"."0.1.0"
-    ];
+    deps = {
+      "archiver-0.11.0" = self.by-version."archiver"."0.11.0";
+      "async-0.9.0" = self.by-version."async"."0.9.0";
+      "colors-0.6.2" = self.by-version."colors"."0.6.2";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "q-1.0.1" = self.by-version."q"."1.0.1";
+      "request-2.40.0" = self.by-version."request"."2.40.0";
+      "underscore.string-2.3.3" = self.by-version."underscore.string"."2.3.3";
+      "vargs-0.1.0" = self.by-version."vargs"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "wd" ];
@@ -20119,7 +21461,8 @@
   by-spec."weak-map"."^1.0.4" =
     self.by-version."weak-map"."1.0.5";
   by-version."weak-map"."1.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-weak-map-1.0.5";
+    name = "weak-map-1.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz";
@@ -20129,8 +21472,8 @@
     ];
     buildInputs =
       (self.nativeDeps."weak-map" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "weak-map" ];
@@ -20139,6 +21482,7 @@
     self.by-version."webdrvr"."2.41.0-0";
   by-version."webdrvr"."2.41.0-0" = lib.makeOverridable self.buildNodePackage {
     name = "webdrvr-2.41.0-0";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/webdrvr/-/webdrvr-2.41.0-0.tgz";
@@ -20148,15 +21492,15 @@
     ];
     buildInputs =
       (self.nativeDeps."webdrvr" or []);
-    deps = [
-      self.by-version."adm-zip"."0.4.4"
-      self.by-version."kew"."0.1.7"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."npmconf"."0.1.16"
-      self.by-version."phantomjs"."1.9.7-15"
-      self.by-version."tmp"."0.0.24"
-      self.by-version."follow-redirects"."0.0.3"
-    ];
+    deps = {
+      "adm-zip-0.4.4" = self.by-version."adm-zip"."0.4.4";
+      "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.7-15" = self.by-version."phantomjs"."1.9.7-15";
+      "tmp-0.0.24" = self.by-version."tmp"."0.0.24";
+      "follow-redirects-0.0.3" = self.by-version."follow-redirects"."0.0.3";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "webdrvr" ];
@@ -20165,7 +21509,8 @@
   by-spec."websocket-driver".">=0.3.1" =
     self.by-version."websocket-driver"."0.3.5";
   by-version."websocket-driver"."0.3.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-websocket-driver-0.3.5";
+    name = "websocket-driver-0.3.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/websocket-driver/-/websocket-driver-0.3.5.tgz";
@@ -20175,27 +21520,28 @@
     ];
     buildInputs =
       (self.nativeDeps."websocket-driver" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "websocket-driver" ];
   };
-  by-spec."when"."~3.1.0" =
-    self.by-version."when"."3.1.0";
-  by-version."when"."3.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-when-3.1.0";
+  by-spec."when"."~3.4.4" =
+    self.by-version."when"."3.4.5";
+  by-version."when"."3.4.5" = lib.makeOverridable self.buildNodePackage {
+    name = "when-3.4.5";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/when/-/when-3.1.0.tgz";
-        name = "when-3.1.0.tgz";
-        sha1 = "a2479659ca15f725541ecf52ebae091b781ee134";
+        url = "http://registry.npmjs.org/when/-/when-3.4.5.tgz";
+        name = "when-3.4.5.tgz";
+        sha1 = "1f39cc46cfb349f0aee37c5b1abce6a527846969";
       })
     ];
     buildInputs =
       (self.nativeDeps."when" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "when" ];
@@ -20204,6 +21550,7 @@
     self.by-version."which"."1.0.5";
   by-version."which"."1.0.5" = lib.makeOverridable self.buildNodePackage {
     name = "which-1.0.5";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/which/-/which-1.0.5.tgz";
@@ -20213,8 +21560,8 @@
     ];
     buildInputs =
       (self.nativeDeps."which" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "which" ];
@@ -20227,6 +21574,7 @@
     self.by-version."winser"."0.1.6";
   by-version."winser"."0.1.6" = lib.makeOverridable self.buildNodePackage {
     name = "winser-0.1.6";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/winser/-/winser-0.1.6.tgz";
@@ -20236,10 +21584,10 @@
     ];
     buildInputs =
       (self.nativeDeps."winser" or []);
-    deps = [
-      self.by-version."sequence"."2.2.1"
-      self.by-version."commander"."1.3.1"
-    ];
+    deps = {
+      "sequence-2.2.1" = self.by-version."sequence"."2.2.1";
+      "commander-1.3.1" = self.by-version."commander"."1.3.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "winser" ];
@@ -20247,7 +21595,8 @@
   by-spec."winston"."*" =
     self.by-version."winston"."0.7.3";
   by-version."winston"."0.7.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-winston-0.7.3";
+    name = "winston-0.7.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/winston/-/winston-0.7.3.tgz";
@@ -20257,15 +21606,15 @@
     ];
     buildInputs =
       (self.nativeDeps."winston" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."colors"."0.6.2"
-      self.by-version."cycle"."1.0.3"
-      self.by-version."eyes"."0.1.8"
-      self.by-version."pkginfo"."0.3.0"
-      self.by-version."request"."2.16.6"
-      self.by-version."stack-trace"."0.0.9"
-    ];
+    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.0" = self.by-version."pkginfo"."0.3.0";
+      "request-2.16.6" = self.by-version."request"."2.16.6";
+      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "winston" ];
@@ -20274,7 +21623,8 @@
   by-spec."winston"."0.6.2" =
     self.by-version."winston"."0.6.2";
   by-version."winston"."0.6.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-winston-0.6.2";
+    name = "winston-0.6.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/winston/-/winston-0.6.2.tgz";
@@ -20284,15 +21634,15 @@
     ];
     buildInputs =
       (self.nativeDeps."winston" or []);
-    deps = [
-      self.by-version."async"."0.1.22"
-      self.by-version."colors"."0.6.2"
-      self.by-version."cycle"."1.0.3"
-      self.by-version."eyes"."0.1.8"
-      self.by-version."pkginfo"."0.2.3"
-      self.by-version."request"."2.9.203"
-      self.by-version."stack-trace"."0.0.9"
-    ];
+    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";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "winston" ];
@@ -20302,7 +21652,8 @@
   by-spec."winston"."0.7.2" =
     self.by-version."winston"."0.7.2";
   by-version."winston"."0.7.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-winston-0.7.2";
+    name = "winston-0.7.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/winston/-/winston-0.7.2.tgz";
@@ -20312,15 +21663,15 @@
     ];
     buildInputs =
       (self.nativeDeps."winston" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."colors"."0.6.2"
-      self.by-version."cycle"."1.0.3"
-      self.by-version."eyes"."0.1.8"
-      self.by-version."pkginfo"."0.3.0"
-      self.by-version."request"."2.16.6"
-      self.by-version."stack-trace"."0.0.9"
-    ];
+    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.0" = self.by-version."pkginfo"."0.3.0";
+      "request-2.16.6" = self.by-version."request"."2.16.6";
+      "stack-trace-0.0.9" = self.by-version."stack-trace"."0.0.9";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "winston" ];
@@ -20332,7 +21683,8 @@
   by-spec."with"."~1.1.0" =
     self.by-version."with"."1.1.1";
   by-version."with"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-with-1.1.1";
+    name = "with-1.1.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/with/-/with-1.1.1.tgz";
@@ -20342,9 +21694,9 @@
     ];
     buildInputs =
       (self.nativeDeps."with" or []);
-    deps = [
-      self.by-version."uglify-js"."2.4.0"
-    ];
+    deps = {
+      "uglify-js-2.4.0" = self.by-version."uglify-js"."2.4.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "with" ];
@@ -20352,7 +21704,8 @@
   by-spec."with"."~2.0.0" =
     self.by-version."with"."2.0.0";
   by-version."with"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-with-2.0.0";
+    name = "with-2.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/with/-/with-2.0.0.tgz";
@@ -20362,9 +21715,9 @@
     ];
     buildInputs =
       (self.nativeDeps."with" or []);
-    deps = [
-      self.by-version."uglify-js"."2.4.0"
-    ];
+    deps = {
+      "uglify-js-2.4.0" = self.by-version."uglify-js"."2.4.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "with" ];
@@ -20372,7 +21725,8 @@
   by-spec."with"."~3.0.0" =
     self.by-version."with"."3.0.1";
   by-version."with"."3.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-with-3.0.1";
+    name = "with-3.0.1";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/with/-/with-3.0.1.tgz";
@@ -20382,9 +21736,9 @@
     ];
     buildInputs =
       (self.nativeDeps."with" or []);
-    deps = [
-      self.by-version."uglify-js"."2.4.15"
-    ];
+    deps = {
+      "uglify-js-2.4.15" = self.by-version."uglify-js"."2.4.15";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "with" ];
@@ -20392,7 +21746,8 @@
   by-spec."wordwrap"."0.0.x" =
     self.by-version."wordwrap"."0.0.2";
   by-version."wordwrap"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-wordwrap-0.0.2";
+    name = "wordwrap-0.0.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
@@ -20402,8 +21757,8 @@
     ];
     buildInputs =
       (self.nativeDeps."wordwrap" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "wordwrap" ];
@@ -20415,7 +21770,8 @@
   by-spec."wrench"."~1.5.0" =
     self.by-version."wrench"."1.5.8";
   by-version."wrench"."1.5.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-wrench-1.5.8";
+    name = "wrench-1.5.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/wrench/-/wrench-1.5.8.tgz";
@@ -20425,8 +21781,8 @@
     ];
     buildInputs =
       (self.nativeDeps."wrench" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "wrench" ];
@@ -20437,6 +21793,7 @@
     self.by-version."ws"."0.4.32";
   by-version."ws"."0.4.32" = lib.makeOverridable self.buildNodePackage {
     name = "ws-0.4.32";
+    bin = true;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/ws/-/ws-0.4.32.tgz";
@@ -20446,12 +21803,12 @@
     ];
     buildInputs =
       (self.nativeDeps."ws" or []);
-    deps = [
-      self.by-version."commander"."2.1.0"
-      self.by-version."nan"."1.0.0"
-      self.by-version."tinycolor"."0.0.1"
-      self.by-version."options"."0.0.5"
-    ];
+    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.5" = self.by-version."options"."0.0.5";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "ws" ];
@@ -20461,7 +21818,8 @@
   by-spec."wu"."*" =
     self.by-version."wu"."2.0.0";
   by-version."wu"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-wu-2.0.0";
+    name = "wu-2.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/wu/-/wu-2.0.0.tgz";
@@ -20471,9 +21829,9 @@
     ];
     buildInputs =
       (self.nativeDeps."wu" or []);
-    deps = [
-      self.by-version."traceur"."0.0.55"
-    ];
+    deps = {
+      "traceur-0.0.55" = self.by-version."traceur"."0.0.55";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "wu" ];
@@ -20482,7 +21840,8 @@
   by-spec."x509"."*" =
     self.by-version."x509"."0.0.7";
   by-version."x509"."0.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-x509-0.0.7";
+    name = "x509-0.0.7";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/x509/-/x509-0.0.7.tgz";
@@ -20492,8 +21851,8 @@
     ];
     buildInputs =
       (self.nativeDeps."x509" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "x509" ];
@@ -20502,7 +21861,8 @@
   by-spec."xml2js"."0.2.4" =
     self.by-version."xml2js"."0.2.4";
   by-version."xml2js"."0.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xml2js-0.2.4";
+    name = "xml2js-0.2.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xml2js/-/xml2js-0.2.4.tgz";
@@ -20512,9 +21872,9 @@
     ];
     buildInputs =
       (self.nativeDeps."xml2js" or []);
-    deps = [
-      self.by-version."sax"."0.6.0"
-    ];
+    deps = {
+      "sax-0.6.0" = self.by-version."sax"."0.6.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xml2js" ];
@@ -20522,7 +21882,8 @@
   by-spec."xml2js"."0.2.6" =
     self.by-version."xml2js"."0.2.6";
   by-version."xml2js"."0.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xml2js-0.2.6";
+    name = "xml2js-0.2.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xml2js/-/xml2js-0.2.6.tgz";
@@ -20532,9 +21893,9 @@
     ];
     buildInputs =
       (self.nativeDeps."xml2js" or []);
-    deps = [
-      self.by-version."sax"."0.4.2"
-    ];
+    deps = {
+      "sax-0.4.2" = self.by-version."sax"."0.4.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xml2js" ];
@@ -20542,7 +21903,8 @@
   by-spec."xml2js".">= 0.0.1" =
     self.by-version."xml2js"."0.4.4";
   by-version."xml2js"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xml2js-0.4.4";
+    name = "xml2js-0.4.4";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz";
@@ -20552,10 +21914,10 @@
     ];
     buildInputs =
       (self.nativeDeps."xml2js" or []);
-    deps = [
-      self.by-version."sax"."0.6.0"
-      self.by-version."xmlbuilder"."2.4.3"
-    ];
+    deps = {
+      "sax-0.6.0" = self.by-version."sax"."0.6.0";
+      "xmlbuilder-2.4.4" = self.by-version."xmlbuilder"."2.4.4";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xml2js" ];
@@ -20567,7 +21929,8 @@
   by-spec."xmlbuilder"."0.4.2" =
     self.by-version."xmlbuilder"."0.4.2";
   by-version."xmlbuilder"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xmlbuilder-0.4.2";
+    name = "xmlbuilder-0.4.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.2.tgz";
@@ -20577,28 +21940,29 @@
     ];
     buildInputs =
       (self.nativeDeps."xmlbuilder" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xmlbuilder" ];
   };
   by-spec."xmlbuilder".">=1.0.0" =
-    self.by-version."xmlbuilder"."2.4.3";
-  by-version."xmlbuilder"."2.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xmlbuilder-2.4.3";
+    self.by-version."xmlbuilder"."2.4.4";
+  by-version."xmlbuilder"."2.4.4" = lib.makeOverridable self.buildNodePackage {
+    name = "xmlbuilder-2.4.4";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.4.3.tgz";
-        name = "xmlbuilder-2.4.3.tgz";
-        sha1 = "0589eeee0986adf0af605e878f24ff6557d7697f";
+        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.4.4.tgz";
+        name = "xmlbuilder-2.4.4.tgz";
+        sha1 = "6e2a84da5df79e11abb0a05bad2f0acc12e33893";
       })
     ];
     buildInputs =
       (self.nativeDeps."xmlbuilder" or []);
-    deps = [
-      self.by-version."lodash-node"."2.4.1"
-    ];
+    deps = {
+      "lodash-node-2.4.1" = self.by-version."lodash-node"."2.4.1";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xmlbuilder" ];
@@ -20606,7 +21970,8 @@
   by-spec."xmldom"."~0.1.16" =
     self.by-version."xmldom"."0.1.19";
   by-version."xmldom"."0.1.19" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xmldom-0.1.19";
+    name = "xmldom-0.1.19";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz";
@@ -20616,8 +21981,8 @@
     ];
     buildInputs =
       (self.nativeDeps."xmldom" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xmldom" ];
@@ -20625,7 +21990,8 @@
   by-spec."xmlhttprequest"."1.4.2" =
     self.by-version."xmlhttprequest"."1.4.2";
   by-version."xmlhttprequest"."1.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xmlhttprequest-1.4.2";
+    name = "xmlhttprequest-1.4.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz";
@@ -20635,8 +22001,8 @@
     ];
     buildInputs =
       (self.nativeDeps."xmlhttprequest" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xmlhttprequest" ];
@@ -20644,7 +22010,8 @@
   by-spec."xoauth2"."~0.1.8" =
     self.by-version."xoauth2"."0.1.8";
   by-version."xoauth2"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xoauth2-0.1.8";
+    name = "xoauth2-0.1.8";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xoauth2/-/xoauth2-0.1.8.tgz";
@@ -20654,8 +22021,8 @@
     ];
     buildInputs =
       (self.nativeDeps."xoauth2" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xoauth2" ];
@@ -20663,7 +22030,8 @@
   by-spec."xtend".">=4.0.0 <4.1.0-0" =
     self.by-version."xtend"."4.0.0";
   by-version."xtend"."4.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xtend-4.0.0";
+    name = "xtend-4.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz";
@@ -20673,8 +22041,8 @@
     ];
     buildInputs =
       (self.nativeDeps."xtend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xtend" ];
@@ -20682,7 +22050,8 @@
   by-spec."xtend"."^3.0.0" =
     self.by-version."xtend"."3.0.0";
   by-version."xtend"."3.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xtend-3.0.0";
+    name = "xtend-3.0.0";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz";
@@ -20692,8 +22061,8 @@
     ];
     buildInputs =
       (self.nativeDeps."xtend" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xtend" ];
@@ -20703,7 +22072,8 @@
   by-spec."xtend"."~2.1.1" =
     self.by-version."xtend"."2.1.2";
   by-version."xtend"."2.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xtend-2.1.2";
+    name = "xtend-2.1.2";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz";
@@ -20713,9 +22083,9 @@
     ];
     buildInputs =
       (self.nativeDeps."xtend" or []);
-    deps = [
-      self.by-version."object-keys"."0.4.0"
-    ];
+    deps = {
+      "object-keys-0.4.0" = self.by-version."object-keys"."0.4.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "xtend" ];
@@ -20727,7 +22097,8 @@
   by-spec."yargs"."~1.2.1" =
     self.by-version."yargs"."1.2.6";
   by-version."yargs"."1.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-yargs-1.2.6";
+    name = "yargs-1.2.6";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz";
@@ -20737,9 +22108,9 @@
     ];
     buildInputs =
       (self.nativeDeps."yargs" or []);
-    deps = [
-      self.by-version."minimist"."0.1.0"
-    ];
+    deps = {
+      "minimist-0.1.0" = self.by-version."minimist"."0.1.0";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "yargs" ];
@@ -20747,7 +22118,8 @@
   by-spec."zeparser"."0.0.5" =
     self.by-version."zeparser"."0.0.5";
   by-version."zeparser"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-zeparser-0.0.5";
+    name = "zeparser-0.0.5";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz";
@@ -20757,33 +22129,31 @@
     ];
     buildInputs =
       (self.nativeDeps."zeparser" or []);
-    deps = [
-    ];
+    deps = {
+    };
     peerDependencies = [
     ];
     passthru.names = [ "zeparser" ];
   };
-  by-spec."zip-stream"."~0.3.0" =
-    self.by-version."zip-stream"."0.3.7";
-  by-version."zip-stream"."0.3.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-zip-stream-0.3.7";
+  by-spec."zip-stream"."~0.4.0" =
+    self.by-version."zip-stream"."0.4.1";
+  by-version."zip-stream"."0.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "zip-stream-0.4.1";
+    bin = false;
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/zip-stream/-/zip-stream-0.3.7.tgz";
-        name = "zip-stream-0.3.7.tgz";
-        sha1 = "c84d057eb0bcc0139747bd3c6c97280bcf5f2bb2";
+        url = "http://registry.npmjs.org/zip-stream/-/zip-stream-0.4.1.tgz";
+        name = "zip-stream-0.4.1.tgz";
+        sha1 = "4ea795a8ce19e9fab49a31d1d0877214159f03a3";
       })
     ];
     buildInputs =
       (self.nativeDeps."zip-stream" or []);
-    deps = [
-      self.by-version."buffer-crc32"."0.2.3"
-      self.by-version."crc32-stream"."0.2.0"
-      self.by-version."debug"."1.0.4"
-      self.by-version."deflate-crc32-stream"."0.1.1"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."readable-stream"."1.0.31"
-    ];
+    deps = {
+      "compress-commons-0.1.6" = self.by-version."compress-commons"."0.1.6";
+      "lodash-2.4.1" = self.by-version."lodash"."2.4.1";
+      "readable-stream-1.0.31" = self.by-version."readable-stream"."1.0.31";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "zip-stream" ];
@@ -20791,7 +22161,8 @@
   by-spec."zlib-browserify"."^0.0.3" =
     self.by-version."zlib-browserify"."0.0.3";
   by-version."zlib-browserify"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-zlib-browserify-0.0.3";
+    name = "zlib-browserify-0.0.3";
+    bin = false;
     src = [
       (fetchurl {
         url = "http://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.3.tgz";
@@ -20801,9 +22172,9 @@
     ];
     buildInputs =
       (self.nativeDeps."zlib-browserify" or []);
-    deps = [
-      self.by-version."tape"."0.2.2"
-    ];
+    deps = {
+      "tape-0.2.2" = self.by-version."tape"."0.2.2";
+    };
     peerDependencies = [
     ];
     passthru.names = [ "zlib-browserify" ];
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
index 1ebb9f290b7..f4ce379d76e 100644
--- a/pkgs/top-level/node-packages.json
+++ b/pkgs/top-level/node-packages.json
@@ -72,6 +72,7 @@
 , "statsd"
 , "statsd-librato-backend"
 , "stackdriver-statsd-backend"
+, "statsd-influxdb-backend"
 , "ungit"
 , { "node-uptime": "https://github.com/fzaninotto/uptime/tarball/1c65756575f90f563a752e2a22892ba2981c79b7" }
 , { "guifi-earth": "https://github.com/jmendeth/guifi-earth/tarball/f3ee96835fd4fb0e3e12fadbd2cb782770d64854 " }
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index a50a5617794..6635d9dd910 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -25,10 +25,10 @@ let self = _self // overrides; _self = with self; {
 
 
   ack = buildPerlPackage rec {
-    name = "ack-2.12";
+    name = "ack-2.14";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PE/PETDANCE/${name}.tar.gz";
-      sha256 = "0avxpgg1fvib4354d9a9710j63sgxpb5j07if5qr83apq9xx7wjj";
+      sha256 = "0gqv30666vlclnwylhk9i64s7raa70x4ncy6bg48s5gcxwrshjc5";
     };
     # use gnused so that the preCheck command passes
     buildInputs = stdenv.lib.optional stdenv.isDarwin [ gnused ];
@@ -301,7 +301,7 @@ let self = _self // overrides; _self = with self; {
         and produces an XML document in Dia format (or images via graphviz
         and vcg).  Its goal is to be a UML / DB Schema diagram autocreation
         package.  The diagrams its creates are standard UML diagrams showing
-        dependancies, superclasses, packages, classes and inheritances, as
+        dependencies, superclasses, packages, classes and inheritances, as
         well as the methods, etc of each class.
 
         AutoDia supports any language that a Handler has been written for,
@@ -480,6 +480,7 @@ let self = _self // overrides; _self = with self; {
       sha256 = "14s75bsm5irisp8wkbwl3ycw160srr1rks7x9jcbvcxh79wr6gbh";
     };
     propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
+    doCheck = false; # randomly fails
   };
 
   CacheFastMmap = buildPerlPackage rec {
@@ -3784,10 +3785,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FinanceQuote = buildPerlPackage rec {
-    name = "Finance-Quote-1.29";
+    name = "Finance-Quote-1.35";
     src = fetchurl {
       url = "mirror://cpan/authors/id/E/EC/ECOCODE/${name}.tar.gz";
-      sha256 = "0rx8whixbhwq2imd3ffx3vcqdgfbjj6y1s01m38b52x3bjn9hw0f";
+      sha256 = "0mxfhi1ndckj4w7fw20rwy6ymalg2yncnp9xn0v2bnk5ibqj439w";
     };
     propagatedBuildInputs = [ CryptSSLeay HTMLTableExtract HTMLTree HTTPMessage LWP DateCalc JSON ];
     meta = {
@@ -6975,10 +6976,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Plack = buildPerlPackage {
-    name = "Plack-1.0030";
+    name = "Plack-1.0031";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0030.tar.gz;
-      sha256 = "0bb9aqb0h9q4qjgkw756gf695h4qg6vim54s6f2icgsazdi63zq7";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0031.tar.gz;
+      sha256 = "0vvppxs36729lggrx4s1gn37lzsm794wfkm3k386bwhkmk7sr31i";
     };
     buildInputs = [ FileShareDirInstall TestRequires ];
     propagatedBuildInputs = [ ApacheLogFormatCompiler DevelStackTrace DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HTTPBody HTTPMessage HashMultiValue LWP StreamBuffered TestTCP TryTiny URI ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 57032cf2ec4..9c477897901 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1,5 +1,6 @@
 { pkgs, python }:
-  with pkgs.lib;
+
+with pkgs.lib;
 
 let
   isPy26 = python.majorVersion == "2.6";
@@ -17,28 +18,34 @@ let
     if isPy34 then "python34" else
     if isPyPy then "pypy" else "";
 
-  modules = python.modules or { readline = null; sqlite3 = null; curses = null; curses_panel = null; ssl = null; crypt = null; };
-
-pythonPackages = modules // import ./python-packages-generated.nix {
-  inherit pkgs python;
-  inherit (pkgs) stdenv fetchurl;
-  self = pythonPackages;
-} //
+  modules = python.modules or {
+    readline = null;
+    sqlite3 = null;
+    curses = null;
+    curses_panel = null;
+    ssl = null;
+    crypt = null;
+  };
 
+  pythonPackages = modules // import ./python-packages-generated.nix {
+    inherit pkgs python;
+    inherit (pkgs) stdenv fetchurl;
+    self = pythonPackages;
+  }
 # Python packages for all python versions
-rec {
+// rec {
 
   inherit python isPy26 isPy27 isPy33 isPy34 isPyPy isPy3k pythonName;
   inherit (pkgs) fetchurl fetchsvn fetchgit stdenv unzip;
 
   # helpers
 
-  callPackage = callPackageWith (pkgs // pythonPackages);
+  callPackage = pkgs.newScope pythonPackages;
 
   # global distutils config used by buildPythonPackage
   distutils-cfg = callPackage ../development/python-modules/distutils-cfg { };
 
-  buildPythonPackage = callPackage ../development/python-modules/generic { };
+  buildPythonPackage = makeOverridable (callPackage ../development/python-modules/generic { });
 
   wrapPython = pkgs.makeSetupHook
     { deps = pkgs.makeWrapper;
@@ -49,23 +56,16 @@ rec {
 
   # specials
 
-  recursivePthLoader = import ../development/python-modules/recursive-pth-loader {
-    inherit (pkgs) stdenv;
-    inherit python;
-  };
+  recursivePthLoader = callPackage ../development/python-modules/recursive-pth-loader { };
 
-  setuptools = import ../development/python-modules/setuptools {
-    inherit (pkgs) stdenv fetchurl;
-    inherit python wrapPython distutils-cfg;
-  };
+  setuptools = callPackage ../development/python-modules/setuptools { };
 
   # packages defined elsewhere
 
   blivet = callPackage ../development/python-modules/blivet { };
 
-  dbus = import ../development/python-modules/dbus {
-    inherit (pkgs) stdenv fetchurl pkgconfig dbus dbus_glib dbus_tools;
-    inherit python;
+  dbus = callPackage ../development/python-modules/dbus {
+    dbus = pkgs.dbus;
   };
 
   discid = buildPythonPackage rec {
@@ -90,96 +90,70 @@ rec {
     '';
   };
 
-  ipython = import ../shells/ipython {
-    inherit (pkgs) stdenv fetchurl sip pyqt4;
-    inherit buildPythonPackage pythonPackages;
+  h5py = callPackage ../development/python-modules/h5py {
+    hdf5 = pkgs.hdf5.override { mpi = null; };
+  };
+
+  h5py-mpi = h5py.override {
+    mpiSupport = true;
+    mpi = pkgs.openmpi;
+    hdf5 = pkgs.hdf5.override { mpi = pkgs.openmpi; enableShared = true; };
+    inherit mpi4py;
+  };
+
+  ipython = callPackage ../shells/ipython {
     qtconsoleSupport = !pkgs.stdenv.isDarwin; # qt is not supported on darwin
     pylabQtSupport = !pkgs.stdenv.isDarwin;
     pylabSupport = !pkgs.stdenv.isDarwin; # cups is not supported on darwin
   };
 
-  ipythonLight = lowPrio (import ../shells/ipython {
-    inherit (pkgs) stdenv fetchurl;
-    inherit buildPythonPackage pythonPackages;
+  ipythonLight = lowPrio (ipython.override {
     qtconsoleSupport = false;
     pylabSupport = false;
     pylabQtSupport = false;
   });
 
+  mpi4py = callPackage ../development/python-modules/mpi4py {
+    mpi = pkgs.openmpi;
+  };
+
   nixpart = callPackage ../tools/filesystems/nixpart { };
 
   # This is used for NixOps to make sure we won't break it with the next major
   # version of nixpart.
   nixpart0 = nixpart;
 
-  pitz = import ../applications/misc/pitz {
-    inherit (pkgs) stdenv fetchurl;
-    inherit buildPythonPackage tempita jinja2 pyyaml clepy mock nose decorator docutils;
-  };
+  pitz = callPackage ../applications/misc/pitz { };
 
-  pycairo = import ../development/python-modules/pycairo {
-    inherit (pkgs) stdenv fetchurl fetchpatch pkgconfig cairo x11;
-    inherit python;
+  pycairo = callPackage ../development/python-modules/pycairo {
   };
 
-  pycrypto = import ../development/python-modules/pycrypto {
-    inherit (pkgs) fetchurl stdenv gmp;
-    inherit python buildPythonPackage;
-  };
+  pycrypto = callPackage ../development/python-modules/pycrypto { };
 
-  pygobject = import ../development/python-modules/pygobject {
-    inherit (pkgs) stdenv fetchurl pkgconfig glib;
-    inherit python;
-  };
+  pygobject = callPackage ../development/python-modules/pygobject { };
 
-  pygobject3 = import ../development/python-modules/pygobject/3.nix {
-    inherit (pkgs) stdenv fetchurl pkgconfig glib gobjectIntrospection cairo;
-    inherit python pycairo;
-  };
+  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix { };
 
-  pygtk = import ../development/python-modules/pygtk {
-    inherit (pkgs) fetchurl stdenv pkgconfig gtk;
-    inherit python buildPythonPackage pygobject pycairo isPy3k;
-  };
+  pygtk = callPackage ../development/python-modules/pygtk { libglade = null; };
 
-  # XXX: how can we get an override here?
-  #pyGtkGlade = pygtk.override {
-  #  inherit (pkgs.gnome) libglade;
-  #};
-  pyGtkGlade = import ../development/python-modules/pygtk {
-    inherit (pkgs) fetchurl stdenv pkgconfig gtk;
-    inherit (pkgs.gnome) libglade;
-    inherit python buildPythonPackage pygobject pycairo isPy3k;
+  pyGtkGlade = pygtk.override {
+    libglade = pkgs.gnome.libglade;
   };
 
-  pyqt4 = import ../development/python-modules/pyqt/4.x.nix {
-    inherit (pkgs) stdenv fetchurl pkgconfig qt4 makeWrapper;
-    inherit (pkgs.xorg) lndir;
-    inherit python sip;
+  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
     pythonDBus = dbus;
   };
 
-  pyqt5 = import ../development/python-modules/pyqt/5.x.nix {
-    inherit (pkgs) stdenv fetchurl pkgconfig qt5 makeWrapper;
-    inherit (pkgs.xorg) lndir;
-    inherit python;
+  pyqt5 = callPackage ../development/python-modules/pyqt/5.x.nix {
     sip = sip_4_16;
     pythonDBus = dbus;
   };
 
-  sip = import ../development/python-modules/sip {
-    inherit (pkgs) stdenv fetchurl;
-    inherit python;
-  };
+  sip = callPackage ../development/python-modules/sip { };
 
-  sip_4_16 = import ../development/python-modules/sip/4.16.nix {
-    inherit (pkgs) stdenv fetchurl;
-    inherit python;
-  };
+  sip_4_16 = callPackage ../development/python-modules/sip/4.16.nix { };
 
-  tables = import ../development/python-modules/tables {
-    inherit (pkgs) stdenv fetchurl bzip2 lzo;
-    inherit python buildPythonPackage cython numpy numexpr;
+  tables = callPackage ../development/python-modules/tables {
     hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
   };
 
@@ -421,6 +395,7 @@ rec {
 
   apsw = buildPythonPackage rec {
     name = "apsw-3.7.6.2-r1";
+    disabled = isPyPy;
 
     src = fetchurl {
       url = "http://apsw.googlecode.com/files/${name}.zip";
@@ -655,7 +630,7 @@ rec {
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/b/beautifulsoup4/${name}.tar.gz";
-      md5 = "c012adc06217b8532c446d181cc56586";
+      md5 = "f1481ed77336de77a2d8e5b061b6ad62";
     };
 
     # invalid command 'test'
@@ -1094,6 +1069,24 @@ rec {
   });
 
 
+  cairocffi = buildPythonPackage rec {
+    name = "cairocffi-0.5.4";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/c/cairocffi/${name}.tar.gz";
+      md5 = "e3fa4002583bfaa88b156e1af9c75bde";
+    };
+
+    propagatedBuildInputs = [ cffi ];
+
+    meta = {
+      homepage = https://github.com/SimonSapin/cairocffi;
+      license = "bsd";
+      description = "cffi-based cairo bindings for Python";
+    };
+  };
+
+
   carrot = buildPythonPackage rec {
     name = "carrot-0.10.7";
 
@@ -1835,6 +1828,27 @@ rec {
     };
   };
 
+  docker = buildPythonPackage rec {
+    name = "docker-py-0.4.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/docker-py/${name}.tar.gz";
+      md5 = "21ab8fd729105487e6423b654d6c0860";
+    };
+
+    propagatedBuildInputs = [ six requests websocket_client ];
+
+    # Version conflict
+    doCheck = false;
+
+    meta = {
+      description = "An API client for docker written in Python";
+      homepage = https://github.com/docker/docker-py;
+      license = licenses.asl20;
+    };
+  };
+
+
   dogpile_cache = buildPythonPackage rec {
     name = "dogpile.cache-0.5.4";
 
@@ -1871,6 +1885,23 @@ rec {
     };
   };
 
+  dotfiles = buildPythonPackage rec {
+    name = "dotfiles-0.6.3";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/dotfiles/${name}.tar.gz";
+      md5 = "95a0792eb92a8fc0db8a7e59389470fe";
+    };
+
+    doCheck = true;
+
+    meta = {
+      description = "Easily manage your dotfiles";
+      homepage = https://github.com/jbernard/dotfiles;
+      license = licenses.isc;
+    };
+  };
+
   dpkt = buildPythonPackage rec {
     name = "dpkt-1.8";
     disabled = isPy3k;
@@ -1965,6 +1996,7 @@ rec {
   eyeD3 = buildPythonPackage rec {
     version = "0.7.4";
     name    = "eyeD3-${version}";
+    disabled = isPyPy;
 
     src = fetchurl {
       url = "http://eyed3.nicfit.net/releases/${name}.tgz";
@@ -2069,6 +2101,7 @@ rec {
       sha256 = "103mzf0l15kyvw5nmf7bsdrqg6y3wpyxmkyl2h9lk7jxb5gdc9s1";
     };
     disabled = isPy3k;
+    doCheck = (!isPyPy);  # https://github.com/fabric/fabric/issues/11891
     propagatedBuildInputs = [ paramiko pycrypto ];
     buildInputs = [ fudge nose ];
   };
@@ -2129,6 +2162,21 @@ rec {
     };
   };
 
+  singledispatch = buildPythonPackage rec {
+    name = "singledispatch-3.4.0.3";
+
+    propagatedBuildInputs = [ six ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/s/singledispatch/${name}.tar.gz";
+      md5 = "af2fc6a3d6cc5a02d0bf54d909785fcb";
+    };
+
+    meta = with stdenv.lib; {
+      homepage = http://docs.python.org/3/library/functools.html;
+    };
+  };
+
   gcutil = buildPythonPackage rec {
     name = "gcutil-1.15.0";
     meta.maintainers = [ stdenv.lib.maintainers.phreedom ];
@@ -2138,6 +2186,10 @@ rec {
       sha256 = "12c98ivhjr01iz6lkga574xm8p0bsil6arydvpblyw8sjkgim5sq";
     };
 
+    patchPhase = ''
+      substituteInPlace setup.py --replace "httplib2==0.8" "httplib2"
+    '';
+
     propagatedBuildInputs = [ gflags iso8601_0_1_4 ipaddr httplib2 google_apputils google_api_python_client ];
   };
 
@@ -2242,6 +2294,34 @@ rec {
     };
   };
 
+  jsonwatch = buildPythonPackage rec {
+    name = "jsonwatch-0.2.0";
+
+    disabled = isPyPy; # doesn't find setuptools
+
+    src = fetchurl {
+      url = "https://github.com/dbohdan/jsonwatch/archive/v0.2.0.tar.gz";
+      sha256 = "04b616ef97b9d8c3887004995420e52b72a4e0480a92dbf60aa6c50317261e06";
+    };
+
+    propagatedBuildInputs = [ six ];
+
+    meta = {
+      description = "Like watch -d but for JSON";
+      longDescription = ''
+        jsonwatch is a command line utility with which you can track changes in
+        JSON data delivered by a shell command or a web (HTTP/HTTPS) API.
+        jsonwatch requests data from the designated source repeatedly at a set
+        interval and displays the differences when the data changes. It is
+        similar in its behavior to how watch(1) with the -d switch works
+        for plain-text data.
+      '';
+      homepage = "https://github.com/dbohdan/jsonwatch";
+      license = stdenv.lib.licenses.mit;
+      platforms = stdenv.lib.platforms.all;
+    };
+  };
+
   logilab_astng = buildPythonPackage rec {
     name = "logilab-astng-0.24.3";
 
@@ -2731,7 +2811,7 @@ rec {
 
   random2 = pythonPackages.buildPythonPackage rec {
     name = "random2-1.0.1";
-    
+
     doCheck = !isPyPy;
 
     src = fetchurl {
@@ -3375,6 +3455,23 @@ rec {
     };
   };
 
+  flask_cache = buildPythonPackage rec {
+    name = "Flask-Cache-0.13.1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/F/Flask-Cache/${name}.tar.gz";
+      md5 = "ab82a9cd0844891ccdb54fbb93fd6c59";
+    };
+
+    propagatedBuildInputs = [ werkzeug flask ];
+
+    meta = {
+      homepage = https://github.com/thadeusb/flask-cache;
+      description = "Adds cache support to your Flask application";
+      license = "BSD";
+    };
+  };
+
   flexget = buildPythonPackage rec {
     name = "FlexGet-1.2.161";
     disabled = isPy3k;
@@ -3385,7 +3482,7 @@ rec {
     };
 
     buildInputs = [ nose ];
-    # dateutil dependancy: requirement is dateutil !=2.0 and != 2.2,
+    # dateutil dependency: requirement is dateutil !=2.0 and != 2.2,
     # dateutil_1_5 is used as it's supported, but a newer version could be used
     propagatedBuildInputs = [ paver feedparser sqlalchemy pyyaml rpyc
 	    beautifulsoup4 html5lib pyrss2gen pynzb progressbar jinja2 flask
@@ -3784,6 +3881,7 @@ rec {
 
   greenlet = buildPythonPackage rec {
     name = "greenlet-0.4.3";
+    disabled = isPyPy;  # builtin for pypy
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/g/greenlet/${name}.zip";
@@ -3798,13 +3896,13 @@ rec {
 
 
   gyp = buildPythonPackage rec {
-    rev = "1944";
+    rev = "1977";
     name = "gyp-r${rev}";
 
     src = fetchsvn {
       url = "http://gyp.googlecode.com/svn/trunk";
       inherit rev;
-      sha256 = "15k3ivk3jyhx4rwdf1mn6qpyrwixvy01jpkir8d14c4g9hax1dx1";
+      sha256 = "0vnr75yd3bidysiwl9lljvf1dv6v9m9xqdnx0hdgyl92w689n9j8";
     };
 
     patches = optionals pkgs.stdenv.isDarwin [
@@ -3861,12 +3959,12 @@ rec {
 
   hetzner = buildPythonPackage rec {
     name = "hetzner-${version}";
-    version = "0.7.0";
+    version = "0.7.2";
 
     src = fetchurl {
       url = "https://github.com/RedMoonStudios/hetzner/archive/"
           + "v${version}.tar.gz";
-      sha256 = "1ldbhwy6yk18frv6n9znvdsrqfnpch4mfvc70jrpq3f9fw236src";
+      sha256 = "07jnrgy9fkh1hwgsa8491ljz9spazmifqsg92m3xnamja1536qfl";
     };
 
     # not there yet, but coming soon.
@@ -3956,11 +4054,11 @@ rec {
   };
 
   httplib2 = buildPythonPackage rec {
-    name = "httplib2-0.8";
+    name = "httplib2-0.9";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/h/httplib2/${name}.tar.gz";
-      sha256 = "174w6rz4na1sdlfz37h95l0pkfm9igf9nqmhbd8aqh3sm7d9zrff";
+      sha256 = "1asi5wpncnc6ki3bz33mhb9xh2lrkb24y4qng8bmqnczdmm8rsir";
     };
 
     meta = {
@@ -3975,6 +4073,7 @@ rec {
     name = "httpretty-${version}";
     version = "0.8.3";
     disabled = isPy3k;
+    doCheck = !isPyPy;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/h/httpretty/${name}.tar.gz";
@@ -4013,6 +4112,25 @@ rec {
     doCheck = false;
   }) else null;
 
+  influxdb = buildPythonPackage rec {
+    name = "influxdb-0.1.12";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/i/influxdb/${name}.tar.gz";
+      md5 = "6c975058ccc4df41dad8d8234c52d754";
+    };
+
+    # ImportError: No module named tests
+    doCheck = false;
+    propagatedBuildInputs = [ requests ];
+
+    meta = {
+      description = "Python client for InfluxDB";
+      homepage = https://github.com/influxdb/influxdb-python;
+      license = licenses.mit;
+    };
+  };
+
   iptools = buildPythonPackage rec {
     version = "0.6.1";
     name = "iptools-${version}";
@@ -4066,11 +4184,12 @@ rec {
     };
   };
 
-  ipdb = buildPythonPackage {
-    name = "ipdb-0.7";
+  ipdb = buildPythonPackage rec {
+    name = "ipdb-0.8";
+    disabled = isPyPy;  # setupterm: could not find terminfo database
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/i/ipdb/ipdb-0.7.tar.gz";
-      md5 = "d879f9b2b0f26e0e999809585dcaec61";
+      url = "http://pypi.python.org/packages/source/i/ipdb/${name}.zip";
+      md5 = "96dca0712efa01aa5eaf6b22071dd3ed";
     };
     propagatedBuildInputs = [ pythonPackages.ipythonLight ];
   };
@@ -4280,29 +4399,12 @@ rec {
     propagatedBuildInputs = [ unittest2 ];
   };
 
-  "lxml-2.3.6" = buildPythonPackage rec {
-    name = "lxml-2.3.6";
-    src = fetchurl {
-      url = "http://pypi.python.org/packages/source/l/lxml/lxml-2.3.6.tar.gz";
-      md5 = "d5d886088e78b1bdbfd66d328fc2d0bc";
-    };
-    buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
-    propagatedBuildInputs = [  ];
-    doCheck = false;
-
-    meta = {
-      description = "Pythonic binding for the libxml2 and libxslt libraries";
-      homepage = http://codespeak.net/lxml/index.html;
-      license = "BSD";
-    };
-  };
-
   lxml = buildPythonPackage ( rec {
-    name = "lxml-3.0.2";
+    name = "lxml-3.3.6";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/l/lxml/${name}.tar.gz";
-      md5 = "38b15b0dd5e9292cf98be800e84a3ce4";
+      md5 = "a804b36864c483fe7abdd7f493a0c379";
     };
 
     buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
@@ -4685,6 +4787,25 @@ rec {
     };
   });
 
+  moretools = buildPythonPackage rec {
+    name = "moretools-0.1a41";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/m/moretools/${name}.tar.gz";
+      sha256 = "1n442wprbl3cmg08233m1sr3g4z0i8hv9g6bhch7kzdmbl21399f";
+    };
+
+    buildInputs = [ six pathpy setuptools ];
+    propagatedBuildInputs = [ decorator ];
+
+    meta = with stdenv.lib; {
+      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;
+    };
+  };
+
 
   mox = buildPythonPackage rec {
     name = "mox-0.5.3";
@@ -5208,12 +5329,14 @@ rec {
   };
 
   numpy = buildPythonPackage ( rec {
-    name = "numpy-1.7.1";
+    name = "numpy-1.8.2";
 
     src = fetchurl {
       url = "mirror://sourceforge/numpy/${name}.tar.gz";
-      sha256 = "0jh832j439jj2b7m1z5a4rv5cpdn1yiw1r6gwrhdihw562d029am";
+      sha256 = "1gcxlk3mf43pzpxvbw8kcfg173g4105j9szsfc1kxwablail6myf";
     };
+    
+    disabled = isPyPy;  # WIP
 
     preConfigure = ''
       sed -i 's/-faltivec//' numpy/distutils/system_info.py
@@ -5263,17 +5386,18 @@ rec {
     };
   };
 
-  livestreamer = if isPy34 then null else (buildPythonPackage rec {
-    version = "1.8.2";
+  livestreamer = buildPythonPackage rec {
+    version = "1.10.2";
     name = "livestreamer-${version}";
+    disabled = isPyPy;
 
     src = fetchurl {
       url = "https://github.com/chrippa/livestreamer/archive/v${version}.tar.gz";
-      sha256 = "130h97qdb7qx8xg0gz54p5a6cb2zbffi5hsi305xf0ah9nf4rbrc";
+      sha256 = "0f1m51wax4q17ida4h0ckyakmlchf36kbhfa9qs6bpxc6xqqbry0";
     };
 
     buildInputs = [ pkgs.makeWrapper ];
-    propagatedBuildInputs = [ requests pkgs.rtmpdump pycrypto ];
+    propagatedBuildInputs = [ requests2 pkgs.rtmpdump pycrypto singledispatch futures ];
     postInstall = ''
       wrapProgram $out/bin/livestreamer --prefix PATH : ${pkgs.rtmpdump}/bin
     '';
@@ -5286,7 +5410,7 @@ rec {
       '';
       license = "bsd";
     };
-  });
+  };
 
   oauth2 = buildPythonPackage (rec {
     name = "oauth2-1.5.211";
@@ -5534,6 +5658,22 @@ rec {
     };
   };
 
+  pathpy = buildPythonPackage rec {
+    name = "path.py-5.2";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/path.py/${name}.zip";
+      sha256 = "0n1kpbbm1dg5f484yzxr7gb3ak6vjp92j70nw3bgjzsj9fh26afq";
+    };
+
+    meta = with stdenv.lib; {
+      description = "A module wrapper for os.path";
+      homepage = http://github.com/jaraco/path.py;
+      license = licenses.mit;
+      platforms = platforms.linux;
+    };
+  };
+
   paypalrestsdk = buildPythonPackage rec {
     name = "paypalrestsdk-0.7.0";
 
@@ -5680,8 +5820,9 @@ rec {
     buildInputs = [ python pkgs.libjpeg pkgs.zlib pkgs.freetype ];
 
     disabled = isPy3k;
-
     doCheck = true;
+    
+    postInstall = "ln -s $out/lib/${python.libPrefix}/site-packages $out/lib/${python.libPrefix}/site-packages/PIL";
 
     preConfigure = ''
       sed -i "setup.py" \
@@ -5690,13 +5831,8 @@ rec {
               s|^ZLIB_ROOT =.*$|ZLIB_ROOT = libinclude("${pkgs.zlib}")|g ;'
     '';
 
-    checkPhase   = "${python}/bin/${python.executable} selftest.py";
-    buildPhase   = "${python}/bin/${python.executable} setup.py build_ext -i";
-
-    postInstall = ''
-      cd "$out"/lib/python*/site-packages
-      ln -s $PWD PIL
-    '';
+    checkPhase = "${python}/bin/${python.executable} selftest.py";
+    buildPhase = "${python}/bin/${python.executable} setup.py build_ext -i";
 
     meta = {
       homepage = http://www.pythonware.com/products/pil/;
@@ -5879,6 +6015,7 @@ rec {
 
   psycopg2 = buildPythonPackage rec {
     name = "psycopg2-2.5.3";
+    disabled = isPyPy;
 
     # error: invalid command 'test'
     doCheck = false;
@@ -6099,6 +6236,7 @@ rec {
 
   pycurl = buildPythonPackage (rec {
     name = "pycurl-7.19.5";
+    disabled = isPyPy; # https://github.com/pycurl/pycurl/issues/208
 
     src = fetchurl {
       url = "http://pycurl.sourceforge.net/download/${name}.tar.gz";
@@ -6258,6 +6396,7 @@ rec {
   pygpgme = buildPythonPackage rec {
     version = "0.3";
     name = "pygpgme-${version}";
+    disabled = isPyPy;
 
     src = fetchurl {
       url = "https://launchpad.net/pygpgme/trunk/${version}/+download/${name}.tar.gz";
@@ -6334,6 +6473,7 @@ rec {
 
   pyodbc = buildPythonPackage rec {
     name = "pyodbc-3.0.7";
+    disabled = isPyPy;  # use pypypdbc instead
 
     src = fetchurl {
       url = "https://pyodbc.googlecode.com/files/${name}.zip";
@@ -6373,6 +6513,7 @@ rec {
   pyparted = buildPythonPackage rec {
     name = "pyparted-${version}";
     version = "3.10";
+    disabled = isPyPy;
 
     src = fetchurl {
       url = "https://fedorahosted.org/releases/p/y/pyparted/${name}.tar.gz";
@@ -6975,11 +7116,11 @@ rec {
 
 
   requests = buildPythonPackage rec {
-    name = "requests-1.2.0";
+    name = "requests-1.2.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/r/requests/${name}.tar.gz";
-      md5 = "22af2682233770e5468a986f451c51c0";
+      md5 = "adbd3f18445f7fe5e77f65c502e264fb";
     };
 
     meta = {
@@ -7196,6 +7337,26 @@ rec {
   };
 
 
+  robotframework-tools = buildPythonPackage rec {
+    version = "0.1a115";
+    name = "robotframework-tools-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/robotframework-tools/${name}.tar.gz";
+      sha256 = "04gkn1zpf3rsvbqdxrrjqqi8sa0md9gqwh6n5w2m03fdwjg4lc7q";
+    };
+
+    propagatedBuildInputs = [ robotframework moretools pathpy six setuptools ];
+
+    meta = with stdenv.lib; {
+      description = "Python Tools for Robot Framework and Test Libraries";
+      homepage = http://bitbucket.org/userzimmermann/robotframework-tools;
+      license = licenses.gpl3;
+      platforms = platforms.linux;
+    };
+  };
+
+
   robotsuite = buildPythonPackage rec {
     version = "1.4.2";
     name = "robotsuite-${version}";
@@ -7584,12 +7745,27 @@ rec {
     };
   };
 
+  pgpdump = pythonPackages.buildPythonPackage rec {
+    name = "pgpdump-1.5";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pgpdump/pgpdump-1.5.tar.gz";
+      md5 = "040a451c8e63de3e61fc5b66efa7fca5";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Python library for parsing PGP packets";
+      homepage = https://github.com/toofishes/python-pgpdump;
+      license = licenses.bsd3;
+    };
+  };
+
   spambayes = buildPythonPackage rec {
-    name = "spambayes-1.1a6";
+    name = "spambayes-1.1b1";
 
     src = fetchurl {
       url = "mirror://sourceforge/spambayes/${name}.tar.gz";
-      sha256 = "0lqhn2v0avgwxmk4dq9lkwr2g39ls2p6x8hqk5w07wd462cjsx8l";
+      sha256 = "0kqvjb89b02wp41p650ydfspi1s8d7akx1igcrw62diidqbxp04n";
     };
 
     propagatedBuildInputs = [ pydns lockfile ];
@@ -7852,7 +8028,7 @@ rec {
 
   skype4py = buildPythonPackage (rec {
     name = "Skype4Py-1.0.32.0";
-    disabled = isPy3k;
+    disabled = isPy3k || isPyPy;
 
     src = fetchurl {
       url = mirror://sourceforge/skype4py/Skype4Py-1.0.32.0.tar.gz;
@@ -8015,9 +8191,11 @@ rec {
     };
   });
 
-  sqlalchemy = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec {
+  sqlalchemy = sqlalchemy9.override rec {
     name = "SQLAlchemy-0.7.10";
-    disabled = isPy3k;
+    disabled = isPy34;
+    doCheck = !isPyPy;
+
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
       sha256 = "0rhxgr85xdhjn467qfs0dkyj8x46zxcv6ad3dfx3w14xbkb3kakp";
@@ -8030,10 +8208,13 @@ rec {
     preConfigure = optionalString isPy3k ''
       python3 sa2to3.py --no-diffs -w lib test examples
     '';
-  });
+  };
 
-  sqlalchemy8 = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec {
+  sqlalchemy8 = sqlalchemy9.override rec {
     name = "SQLAlchemy-0.8.7";
+    disabled = isPy34;
+    doCheck = !isPyPy;
+
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
       md5 = "4f3377306309e46739696721b1785335";
@@ -8041,7 +8222,7 @@ rec {
     preConfigure = optionalString isPy3k ''
       python3 sa2to3.py --no-diffs -w lib test examples
     '';
-  });
+  };
 
   sqlalchemy9 = buildPythonPackage rec {
     name = "SQLAlchemy-0.9.4";
@@ -8191,15 +8372,11 @@ rec {
       export LC_ALL="en_US.UTF-8"
     '';
 
-    # Not picking up from PyPI because it doesn't contain tests.
-    src = fetchgit {
-      url = "git://github.com/gabrielfalcao/sure.git";
-      rev = "86ab9faa97aa9c1720c7d090deac2be385ed3d7a";
-      sha256 = "02vffcdgr6vbj80lhl925w7zqy6cqnfvs088i0rbkjs5lxc511b3";
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/s/sure/${name}.tar.gz";
+      md5 = "6dbecef27dffc41c8cd8aab8a8b3fdfb";
     };
 
-
-
     buildInputs = [ nose ];
 
     propagatedBuildInputs = [ six mock ];
@@ -8212,6 +8389,22 @@ rec {
   };
 
 
+  structlog = buildPythonPackage rec {
+    name = "structlog-0.4.2";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/s/structlog/${name}.tar.gz";
+      md5 = "062cda36069e8573e00c265f451f899e";
+    };
+
+    meta = {
+      description = "Painless structural logging";
+      homepage = http://www.structlog.org/;
+      license = licenses.asl20;
+    };
+  };
+
+
   # XXX: ValueError: ZIP does not support timestamps before 1980
   # svneverever =  buildPythonPackage rec {
   #   name = "svneverever-778489a8";
@@ -8412,7 +8605,7 @@ rec {
 
   smmap = buildPythonPackage rec {
     name = "smmap-0.8.2";
-    disabled = isPy3k;  # next release will have py3k support
+    disabled = isPy3k || isPyPy;  # next release will have py3k/pypy support
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
     src = fetchurl {
@@ -8994,15 +9187,11 @@ rec {
   wxPython = wxPython28;
 
 
-  wxPython28 = import ../development/python-modules/wxPython/2.8.nix {
-    inherit (pkgs) stdenv fetchurl pkgconfig;
-    inherit pythonPackages;
+  wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix {
     wxGTK = pkgs.wxGTK28;
   };
 
-  wxPython30 = import ../development/python-modules/wxPython/3.0.nix {
-    inherit (pkgs) stdenv fetchurl pkgconfig;
-    inherit pythonPackages;
+  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
     wxGTK = pkgs.wxGTK30;
   };
 
@@ -9131,6 +9320,7 @@ rec {
 
   zfec = buildPythonPackage (rec {
     name = "zfec-1.4.24";
+    disabled = isPyPy;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zfec/${name}.tar.gz";
@@ -9161,6 +9351,7 @@ rec {
   zodb3 = buildPythonPackage rec {
     name = "zodb3-${version}";
     version = "3.11.0";
+    disabled = isPyPy;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/Z/ZODB3/ZODB3-${version}.tar.gz";
@@ -9179,6 +9370,8 @@ rec {
 
   zodb = buildPythonPackage rec {
     name = "zodb-${version}";
+    disabled = isPyPy;
+
     version = "4.0.1";
 
     src = fetchurl {
@@ -9204,6 +9397,7 @@ rec {
 
   zodbpickle = pythonPackages.buildPythonPackage rec {
     name = "zodbpickle-0.5.2";
+    disabled = isPyPy; # https://github.com/zopefoundation/zodbpickle/issues/10
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/z/zodbpickle/${name}.tar.gz";
@@ -9551,11 +9745,11 @@ rec {
 
 
   zope_schema = buildPythonPackage rec {
-    name = "zope.schema-4.4.1";
+    name = "zope.schema-4.4.2";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.schema/${name}.tar.gz";
-      sha256 = "0wpwfggd736ai8bbrwbsnqf522sh5j57d1zxq8m8p6i5nwml0q02";
+      sha256 = "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank";
     };
 
     propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
@@ -9602,11 +9796,13 @@ rec {
 
 
   zope_sqlalchemy = buildPythonPackage rec {
-    name = "zope.sqlalchemy-0.7.3";
+    name = "zope.sqlalchemy-0.7.5";
+
+    doCheck = !isPyPy; # https://github.com/zopefoundation/zope.sqlalchemy/issues/12
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.sqlalchemy/${name}.zip";
-      md5 = "8b317b41244fc2e67f2f286890ba59a0";
+      md5 = "0a468bd5b8884cd29fb71acbf7eaa31e";
     };
 
     buildInputs = [ zope_testing zope_interface ];
@@ -9655,8 +9851,7 @@ rec {
 
     propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit;
 
-    # a test is failing
-    doCheck = false;
+    doCheck = true;
 
     meta = {
       description = "A flexible test runner with layer support";
@@ -9927,6 +10122,24 @@ rec {
   };
 
 
+  websocket_client = buildPythonPackage rec {
+    name = "websocket-client-0.17.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/w/websocket-client/${name}.tar.gz";
+      md5 = "c86591719085eaf4a01c2275e0c834fc";
+    };
+
+    propagatedBuildInputs = [ six backports_ssl_match_hostname_3_4_0_2 unittest2 argparse ];
+
+    meta = {
+      homepage = https://github.com/liris/websocket-client;
+      description = "Websocket client for python";
+      license = licenses.lgpl2;
+    };
+  };
+
+
   webhelpers = buildPythonPackage rec {
     name = "WebHelpers-1.3";
 
@@ -10113,6 +10326,58 @@ rec {
     };
   };
 
+  graphite_api = buildPythonPackage rec {
+    name = "graphite-api-1.0.1";
+
+    src = fetchgit {
+      url = "https://github.com/brutasse/graphite-api.git";
+      rev = "b6f75e8a08fae695c094fece6de611b893fc65fb";
+      sha256 = "41b90d5f35e99a020a6b1b77938690652521d1841b3165574fcfcee807ce4e6a";
+    };
+
+    # ImportError: No module named tests
+    doCheck = false;
+
+    propagatedBuildInputs = [
+      flask
+      flask_cache
+      cairocffi
+      pyparsing
+      pytz
+      pyyaml
+      raven
+      six
+      structlog
+      tzlocal
+    ];
+
+    meta = {
+      description = "Graphite-web,  without the interface. Just the rendering HTTP API.";
+      homepage = https://github.com/brutasse/graphite-api;
+      license = licenses.asl20;
+    };
+  };
+
+  graphite_influxdb = buildPythonPackage rec {
+    name = "graphite-influxdb-0.3";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/g/graphite-influxdb/${name}.tar.gz";
+      md5 = "5ce64ff6bb0b41c99e57486d6ec86eb7";
+    };
+
+    propagatedBuildInputs = [ influxdb graphite_api ];
+
+    passthru.moduleName = "graphite_influxdb.InfluxdbFinder";
+
+    meta = {
+      description = "An influxdb backend for Graphite-web and graphite-api";
+      homepage = https://github.com/vimeo/graphite-influxdb;
+      license = licenses.asl20;
+    };
+  };
+
+
   pyspotify = buildPythonPackage rec {
     name = "pyspotify-${version}";
 
@@ -10509,6 +10774,24 @@ rec {
     };
   };
 
+  weboob = buildPythonPackage rec {
+    name = "weboob-0.j";
 
+    src = fetchurl {
+      url = "https://symlink.me/attachments/download/271/${name}.tar.gz";
+      md5 = "9e11b1f376ccb87d35995ec87bba5b38";
+    };
+
+    setupPyBuildFlags = ["--qt" "--xdg"];
+
+    propagatedBuildInputs = [ pillow prettytable pyyaml dateutil gdata requests2 mechanize feedparser lxml pkgs.gnupg pyqt4 pkgs.libyaml simplejson cssselect ];
+
+    meta = {
+      homepage = http://weboob.org;
+      description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
+      license = stdenv.lib.licenses.agpl3;
+      maintainers = [ stdenv.lib.maintainers.DamienCassou ];
+    };
+  };
 
 }); in pythonPackages
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index e2f5309ced3..0a8e7165d66 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -123,6 +123,8 @@ rec {
       packagesWithMetaPlatform attrSet
     else if attrSet.recurseForRelease or false then
       packagesWithMetaPlatform attrSet
+    else if attrSet.meta.broken or false then
+      []
     else
       attrSet.meta.hydraPlatforms or (attrSet.meta.platforms or []);
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 07c3126e5ab..71f51554719 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -48,39 +48,25 @@ let
     } // (mapTestOn ((packagesWithMetaPlatform pkgs) // rec {
 
       abcde = linux;
-      alsaUtils = linux;
       apacheHttpd = linux;
       aspell = all;
       at = linux;
       atlas = linux;
-      audacious = linux;
       autoconf = all;
       automake = all;
-      avahi = allBut cygwin;  # Cygwin builds fail
       bash = all;
       bashInteractive = all;
       bazaar = linux; # first let sqlite3 work on darwin
-      bc = all;
       binutils = linux;
       bind = linux;
-      bitlbee = linux;
-      bittorrent = linux;
-      blender = linux;
-      bsdiff = all;
-      btrfsProgs = linux;
       bvi = all;
-      bzip2 = all;
-      cabextract = all;
       castle_combat = linux;
       cdrkit = linux;
-      chatzilla = linux;
       cksfv = all;
       classpath = linux;
       coreutils = all;
-      cpio = all;
       cron = linux;
       cvs = linux;
-      db4 = all;
       ddrescue = linux;
       dhcp = linux;
       dico = linux;
@@ -97,22 +83,15 @@ let
       dosbox = linux;
       dovecot = linux;
       doxygen = linux;
-      dpkg = linux;
       drgeo = linux;
       ejabberd = linux;
       elinks = linux;
-      enscript = all;
       eprover = linux;
-      evince = linux;
       expect = linux;
       exult = linux;
-      fbterm = linux;
-      feh = linux;
-      file = all;
       findutils = all;
       flex = all;
       fontforge = linux;
-      fuse = linux;
       gajim = linux;
       gawk = all;
       gcc = linux;
@@ -120,53 +99,34 @@ let
       gcc34 = linux;
       gcc44 = linux;
       gcj = linux;
-      ghdl = linux;
       ghostscript = linux;
       ghostscriptX = linux;
-      gimp_2_8 = linux;
       git = linux;
       gitFull = linux;
       glibc = linux;
       glibcLocales = linux;
       glxinfo = linux;
-      gnash = linux;
-      gnat = linux;
-      gnugrep = all;
       gnum4 = all;
-      gnumake = all;
-      gnupatch = all;
       gnupg = linux;
       gnuplot = allBut cygwin;
-      gnused = all;
-      gnutar = all;
       gnutls = linux;
       gogoclient = linux;
       gphoto2 = linux;
       gpm = linux;
-      gprolog = linux;
       gpscorrelate = linux;
-      gpsd = linux;
       gqview = gtkSupported;
       graphviz = all;
       grub = linux;
-      grub2 = linux;
       gsl = linux;
       guile = linux;  # tests fail on Cygwin
-      gv = linux;
       gzip = all;
       hddtemp = linux;
-      hello = all;
       host = linux;
       htmlTidy = all;
-      hugin = linux;
       iana_etc = linux;
       icewm = linux;
-      idutils = all;
       ifplugd = linux;
-      impressive = linux;
-      inetutils = linux;
       inkscape = linux;
-      iputils = linux;
       irssi = linux;
       jfsutils = linux;
       jfsrec = linux;
@@ -175,19 +135,14 @@ let
       kbd = linux;
       keen4 = ["i686-linux"];
     #  klibc = linux;
-      kvm = linux;
-      qemu = linux;
-      qemu_kvm = linux;
       less = all;
       lftp = all;
       libarchive = linux;
-      libsmbios = linux;
       libtool = all;
       libtool_2 = all;
       lout = linux;
       lsof = linux;
       ltrace = linux;
-      lvm2 = linux;
       lynx = linux;
       lzma = linux;
       man = linux;
@@ -200,14 +155,11 @@ let
       mercurial = unix;
       mercurialFull = linux;
       mesa = mesaPlatforms;
-      midori = linux;
       mingetty = linux;
       mk = linux;
       mktemp = all;
       mod_python = linux;
       module_init_tools = linux;
-      mono = linux;
-      mpg321 = linux;
       mupen64plus = linux;
       mutt = linux;
       mysql = linux;
@@ -216,71 +168,53 @@ let
       nano = allBut cygwin;
       ncat = linux;
       netcat = all;
-      nfsUtils = linux;
-      nmap = linux;
       nss_ldap = linux;
       nssmdns = linux;
-      ntfs3g = linux;
-      ntp = linux;
       ocaml = linux;
-      octave = linux;
-      openssl = all;
       pam_console = linux;
       pam_login = linux;
       pan = gtkSupported;
       par2cmdline = all;
-      pavucontrol = linux;
       pciutils = linux;
       pdf2xml = all;
       perl = all;
       php = linux;
-      pidgin = linux;
       pinentry = linux;
       pltScheme = linux;
       pmccabe = linux;
       portmap = linux;
       postgresql = all;
-      postfix = linux;
       ppl = all;
       procps = linux;
       pthreadmanpages = linux;
       pygtk = linux;
-      pyqt4 = linux;
       python = allBut cygwin;
       pythonFull = linux;
       sbcl = linux;
       qt3 = linux;
       quake3demo = linux;
-      readline = all;
       reiserfsprogs = linux;
       rlwrap = all;
       rogue = all;
       rpm = linux;
       rsync = linux;
       rubber = allBut cygwin;
-      ruby = all;
       rxvt_unicode = linux;
       screen = linux ++ darwin;
       scrot = linux;
       sdparm = linux;
       seccure = linux;
       sgtpuzzles = linux;
-      sharutils = all;
-      slim = linux;
       sloccount = allBut cygwin;
-      smartmontools = linux;
       spidermonkey = linux;
-      sqlite = allBut cygwin;
       squid = linux;
       ssmtp = linux;
       stdenv = prio 175 all;
       stlport = linux;
-      strace = linux;
       su = linux;
       sudo = linux;
       superTuxKart = linux;
       swig = linux;
-      sylpheed = linux;
       sysklogd = linux;
       syslinux = ["i686-linux"];
       sysvinit = linux;
@@ -298,29 +232,23 @@ let
       time = linux;
       tinycc = linux;
       uae = linux;
-      udev = linux;
       unrar = linux;
       upstart = linux;
       usbutils = linux;
       utillinux = linux;
       utillinuxCurses = linux;
-      uzbl = linux;
       viking = linux;
       vice = linux;
       vim = linux;
       vimHugeX = linux;
       vncrec = linux;
       vorbisTools = linux;
-      vpnc = linux;
       vsftpd = linux;
       w3m = all;
-      webkit = linux;
       weechat = linux;
-      wget = all;
       which = all;
       wicd = linux;
       wine = ["i686-linux"];
-      wireshark = linux;
       wirelesstools = linux;
       wxGTK = linux;
       x11_ssh_askpass = linux;
@@ -334,10 +262,7 @@ let
       xscreensaver = linux;
       xsel = linux;
       xterm = linux;
-      xxdiff = linux;
       zdelta = linux;
-      zile = linux;
-      zip = all;
       zsh = linux;
       zsnes = ["i686-linux"];